18#ifndef TRINITY_MOVEMENTGENERATOR_H
19#define TRINITY_MOVEMENTGENERATOR_H
69 virtual void Finalize(
Unit* owner,
bool active,
bool movementInform) = 0;
96template<
class T,
class D>
102 (
static_cast<D*
>(
this))->DoInitialize(
static_cast<T*
>(owner));
107 (
static_cast<D*
>(
this))->DoReset(
static_cast<T*
>(owner));
112 return (
static_cast<D*
>(
this))->DoUpdate(
static_cast<T*
>(owner), diff);
117 (
static_cast<D*
>(
this))->DoDeactivate(
static_cast<T*
>(owner));
122 (
static_cast<D*
>(
this))->DoFinalize(
static_cast<T*
>(owner), active, movementInform);
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_PERSIST_ON_DEATH
@ MOVEMENTGENERATOR_FLAG_INITIALIZED
@ MOVEMENTGENERATOR_FLAG_NONE
@ MOVEMENTGENERATOR_FLAG_SPEED_UPDATE_PENDING
MovementGeneratorCreator::FactoryHolderRegistry MovementGeneratorRegistry
FactoryHolder< MovementGenerator, Unit, MovementGeneratorType > MovementGeneratorCreator
std::optional< T > Optional
Optional helper class to wrap optional values within.
void Deactivate(Unit *owner) override
void Reset(Unit *owner) override
void Initialize(Unit *owner) override
void Finalize(Unit *owner, bool active, bool movementInform) override
bool Update(Unit *owner, uint32 diff) override
virtual void Initialize(Unit *owner)=0
MovementGenerator(MovementGenerator const &)=delete
virtual void Pause(uint32)
virtual bool GetResetPosition(Unit *, float &, float &, float &)
MovementGenerator & operator=(MovementGenerator const &)=delete
MovementGenerator & operator=(MovementGenerator &&)=delete
virtual void Resume(uint32)
virtual bool Update(Unit *owner, uint32 diff)=0
virtual void Deactivate(Unit *owner)=0
void AddFlag(uint16 const flag)
Optional< Scripting::v2::ActionResultSetter< MovementStopReason > > ScriptResult
virtual void Finalize(Unit *owner, bool active, bool movementInform)=0
bool HasFlag(uint16 const flag) const
MovementGenerator(MovementGenerator &&)=delete
virtual void Reset(Unit *owner)=0
virtual void UnitSpeedChanged()
void RemoveFlag(uint16 const flag)
virtual MovementGeneratorType GetMovementGeneratorType() const =0
MovementGenerator * Create(Unit *object) const override
MovementGenerator * Create(Unit *object) const override
MovementGenerator * Create(Unit *object) const override
WaypointMovementFactory()