mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2025-11-29 17:38:24 +08:00
chore(Core/GameObjectAI): Cleanup register macro (#19409)
This commit is contained in:
@@ -66,23 +66,21 @@ public:
|
|||||||
virtual GameObjectAI* GetAI(GameObject* /*go*/) const { return nullptr; }
|
virtual GameObjectAI* GetAI(GameObject* /*go*/) const { return nullptr; }
|
||||||
};
|
};
|
||||||
|
|
||||||
// Cannot be used due gob scripts not working like this
|
|
||||||
template <class AI>
|
template <class AI>
|
||||||
class GenericGameObjectScript : public GameObjectScript
|
class GenericGameObjectScript : public GameObjectScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
GenericGameObjectScript(char const* name) : GameObjectScript(name) { }
|
GenericGameObjectScript(char const* name) : GameObjectScript(name) { }
|
||||||
GameObjectAI* GetAI(GameObject* me) const override { return new AI(me); }
|
GameObjectAI* GetAI(GameObject* go) const override { return new AI(go); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define RegisterGameObjectAI(ai_name) new GenericGameObjectScript<ai_name>(#ai_name)
|
#define RegisterGameObjectAI(ai_name) new GenericGameObjectScript<ai_name>(#ai_name)
|
||||||
|
|
||||||
// Cannot be used due gob scripts not working like this
|
|
||||||
template <class AI, AI* (*AIFactory)(GameObject*)> class FactoryGameObjectScript : public GameObjectScript
|
template <class AI, AI* (*AIFactory)(GameObject*)> class FactoryGameObjectScript : public GameObjectScript
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
FactoryGameObjectScript(char const* name) : GameObjectScript(name) {}
|
FactoryGameObjectScript(char const* name) : GameObjectScript(name) {}
|
||||||
GameObjectAI* GetAI(GameObject* me) const override { return AIFactory(me); }
|
GameObjectAI* GetAI(GameObject* go) const override { return AIFactory(go); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#define RegisterGameObjectAIWithFactory(ai_name, factory_fn) new FactoryGameObjectScript<ai_name, &factory_fn>(#ai_name)
|
#define RegisterGameObjectAIWithFactory(ai_name, factory_fn) new FactoryGameObjectScript<ai_name, &factory_fn>(#ai_name)
|
||||||
|
|||||||
@@ -83,6 +83,5 @@ inline AI* GetAhnKahetAI(T* obj)
|
|||||||
}
|
}
|
||||||
|
|
||||||
#define RegisterAhnKahetCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetAhnKahetAI)
|
#define RegisterAhnKahetCreatureAI(ai_name) RegisterCreatureAIWithFactory(ai_name, GetAhnKahetAI)
|
||||||
#define RegisterAhnKahetGameObjectAI(ai_name) RegisterGameObjectAIWithFactory(ai_name, GetAhnKahetAI)
|
|
||||||
|
|
||||||
#endif // DEF_AHNKAHET_H
|
#endif // DEF_AHNKAHET_H
|
||||||
|
|||||||
Reference in New Issue
Block a user