18#ifndef TRINITY_MOVEMENTGENERATOR_H
19#define TRINITY_MOVEMENTGENERATOR_H
85template<
class T,
class D>
91 return (
static_cast<D*
>(
this))->DoInitialize(
static_cast<T*
>(owner));
96 return (
static_cast<D*
>(
this))->DoReset(
static_cast<T*
>(owner));
101 return (
static_cast<D*
>(
this))->DoUpdate(
static_cast<T*
>(owner), diff);
106 (
static_cast<D*
>(
this))->DoDeactivate(
static_cast<T*
>(owner));
111 (
static_cast<D*
>(
this))->DoFinalize(
static_cast<T*
>(owner), active, movementInform);
117template<
class Movement>
151#define sMovementGeneratorRegistry MovementGeneratorRegistry::instance()
std::string GetDebugInfo()
@ MOVEMENTGENERATOR_FLAG_TIMED_PAUSED
@ MOVEMENTGENERATOR_FLAG_INITIALIZATION_PENDING
@ MOVEMENTGENERATOR_FLAG_PAUSED
@ MOVEMENTGENERATOR_FLAG_DEACTIVATED
@ MOVEMENTGENERATOR_FLAG_FINALIZED
@ MOVEMENTGENERATOR_FLAG_TRANSITORY
@ MOVEMENTGENERATOR_FLAG_INTERRUPTED
@ MOVEMENTGENERATOR_FLAG_INFORM_ENABLED
@ MOVEMENTGENERATOR_FLAG_IMMEDIATE
@ MOVEMENTGENERATOR_FLAG_PERSIST_ON_DEATH
@ MOVEMENTGENERATOR_FLAG_INITIALIZED
@ MOVEMENTGENERATOR_FLAG_NONE
@ MOVEMENTGENERATOR_FLAG_SPEED_UPDATE_PENDING
MovementGeneratorCreator::FactoryHolderRegistry MovementGeneratorRegistry
FactoryHolder< MovementGenerator, Unit, MovementGeneratorType > MovementGeneratorCreator
void Deactivate(Unit *owner) override
bool Reset(Unit *owner) override
void Finalize(Unit *owner, bool active, bool movementInform) override
bool Initialize(Unit *owner) override
bool Update(Unit *owner, uint32 diff) override
virtual void Deactivate(Unit *)=0
virtual void Pause(uint32)
virtual bool GetResetPosition(Unit *, float &, float &, float &)
virtual void Resume(uint32)
void AddFlag(uint16 const flag)
virtual bool Update(Unit *, uint32 diff)=0
bool HasFlag(uint16 const flag) const
virtual void UnitSpeedChanged()
virtual bool Initialize(Unit *)=0
virtual bool Reset(Unit *)=0
void RemoveFlag(uint16 const flag)
virtual MovementGeneratorType GetMovementGeneratorType() const =0
virtual void Finalize(Unit *, bool, bool)=0
MovementGenerator * Create(Unit *object) const override
MovementGenerator * Create(Unit *) const override
MovementGeneratorFactory(MovementGeneratorType movementGeneratorType)
MovementGenerator * Create(Unit *object) const override
MovementGenerator * Create(Unit *object) const override
WaypointMovementFactory()