mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-29 00:23:48 +00:00
refactor(Core/AI): factory functions cleanup (#11779)
This commit is contained in:
committed by
GitHub
parent
02fa20b638
commit
cc52712ac1
@@ -82,19 +82,28 @@ public:
|
||||
}
|
||||
};
|
||||
|
||||
struct SelectableMovement : public FactoryHolder<MovementGenerator, MovementGeneratorType>
|
||||
typedef FactoryHolder<MovementGenerator, Unit, MovementGeneratorType> MovementGeneratorCreator;
|
||||
|
||||
template<class Movement>
|
||||
struct MovementGeneratorFactory : public MovementGeneratorCreator
|
||||
{
|
||||
SelectableMovement(MovementGeneratorType mgt) : FactoryHolder<MovementGenerator, MovementGeneratorType>(mgt) {}
|
||||
MovementGeneratorFactory(MovementGeneratorType movementGeneratorType) : MovementGeneratorCreator(movementGeneratorType) { }
|
||||
|
||||
MovementGenerator* Create(Unit* /*object*/) const
|
||||
{
|
||||
return new Movement();
|
||||
}
|
||||
};
|
||||
|
||||
template<class REAL_MOVEMENT>
|
||||
struct MovementGeneratorFactory : public SelectableMovement
|
||||
struct IdleMovementFactory : public MovementGeneratorCreator
|
||||
{
|
||||
MovementGeneratorFactory(MovementGeneratorType mgt) : SelectableMovement(mgt) {}
|
||||
IdleMovementFactory() : MovementGeneratorCreator(IDLE_MOTION_TYPE) { }
|
||||
|
||||
MovementGenerator* Create(void*) const;
|
||||
MovementGenerator* Create(Unit* object) const override;
|
||||
};
|
||||
|
||||
typedef FactoryHolder<MovementGenerator, MovementGeneratorType> MovementGeneratorCreator;
|
||||
typedef FactoryHolder<MovementGenerator, MovementGeneratorType>::FactoryHolderRegistry MovementGeneratorRegistry;
|
||||
typedef MovementGeneratorCreator::FactoryHolderRegistry MovementGeneratorRegistry;
|
||||
|
||||
#define sMovementGeneratorRegistry MovementGeneratorRegistry::instance()
|
||||
|
||||
#endif
|
||||
|
||||
Reference in New Issue
Block a user