19 #ifndef TRINITY_MOVEMENTGENERATOR_H
20 #define TRINITY_MOVEMENTGENERATOR_H
36 virtual void Finalize(
Unit*) = 0;
38 virtual void Reset(
Unit*) = 0;
50 template<
class T,
class D>
57 (
static_cast<D*
>(
this))->DoInitialize(static_cast<T*>(u));
63 (
static_cast<D*
>(
this))->DoFinalize(static_cast<T*>(u));
69 (
static_cast<D*
>(
this))->DoReset(static_cast<T*>(u));
75 return (static_cast<D*>(
this))->DoUpdate(static_cast<T*>(u), time_diff);
84 template<
class REAL_MOVEMENT>
MovementGenerator * Create(void *) const override
Abstract Factory create method.
Definition: MovementGeneratorImpl.h:26
Definition: MovementGenerator.h:85
Definition: FactoryHolder.h:29
void Initialize(Unit *u) override
Definition: MovementGenerator.h:54
MovementGeneratorFactory(MovementGeneratorType mgt)
Definition: MovementGenerator.h:87
bool Update(Unit *u, uint32 time_diff) override
Definition: MovementGenerator.h:72
void Reset(Unit *u) override
Definition: MovementGenerator.h:66
Definition: MovementGenerator.h:79
virtual bool GetResetPosition(Unit *, float &, float &, float &)
Definition: MovementGenerator.h:47
FactoryHolder< MovementGenerator, MovementGeneratorType > MovementGeneratorCreator
Definition: MovementGenerator.h:92
uint32_t uint32
Definition: Define.h:150
static void Initialize(PCASC_SALSA20 pState, LPBYTE pbKey, DWORD cbKeyLength, LPBYTE pbVector)
Definition: CascDecrypt.cpp:81
Definition: MovementGenerator.h:51
FactoryHolder< MovementGenerator, MovementGeneratorType >::FactoryHolderRegistry MovementGeneratorRegistry
Definition: MovementGenerator.h:93
virtual void unitSpeedChanged()
Definition: MovementGenerator.h:44
#define TC_GAME_API
Definition: Define.h:134
void Finalize(Unit *u) override
Definition: MovementGenerator.h:60
MovementGeneratorType
Definition: MotionMaster.h:35
Definition: MovementGenerator.h:30
SelectableMovement(MovementGeneratorType mgt)
Definition: MovementGenerator.h:81
void Update(uint32 diff)
Definition: WeatherMgr.cpp:150