diff options
| author | ccrs <ccrs@users.noreply.github.com> | 2019-10-26 23:33:30 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-10-26 23:33:30 +0200 |
| commit | 06c6b30ed484850228c57313dc2c024c38e2055f (patch) | |
| tree | b38bf9e9326fcde9936ca12d06bb35797d6e023f /src/server/game | |
| parent | 00703ee238729a8d5b3d17edf8dc16d6c6c6b601 (diff) | |
Scripts/ScarletMonastery: instance script cleanup (#23889)
Adapt InstanceScript into newer structure and style
Adapt existing boss scripts into newer structure and style
Improve existing boss related definitions
Should make each boss more functionally reliable, but nothing new has been added
Diffstat (limited to 'src/server/game')
| -rw-r--r-- | src/server/game/Entities/Unit/Unit.h | 2 | ||||
| -rw-r--r-- | src/server/game/Maps/MapRefManager.h | 6 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 11 |
3 files changed, 14 insertions, 5 deletions
diff --git a/src/server/game/Entities/Unit/Unit.h b/src/server/game/Entities/Unit/Unit.h index 1de18af19b7..4b45ca6af85 100644 --- a/src/server/game/Entities/Unit/Unit.h +++ b/src/server/game/Entities/Unit/Unit.h @@ -97,7 +97,7 @@ enum MovementGeneratorType : uint8; typedef std::list<Unit*> UnitList; -class DispelableAura +class TC_GAME_API DispelableAura { public: DispelableAura(Aura* aura, int32 dispelChance, uint8 dispelCharges); diff --git a/src/server/game/Maps/MapRefManager.h b/src/server/game/Maps/MapRefManager.h index 324b96fbd60..5b029ab2ea5 100644 --- a/src/server/game/Maps/MapRefManager.h +++ b/src/server/game/Maps/MapRefManager.h @@ -29,13 +29,13 @@ class MapRefManager : public RefManager<Map, Player> typedef LinkedListHead::Iterator<MapReference> iterator; typedef LinkedListHead::Iterator<MapReference const> const_iterator; - MapReference* getFirst() { return (MapReference*)RefManager<Map, Player>::getFirst(); } + MapReference* getFirst() { return (MapReference*)RefManager<Map, Player>::getFirst(); } MapReference const* getFirst() const { return (MapReference const*)RefManager<Map, Player>::getFirst(); } iterator begin() { return iterator(getFirst()); } - iterator end() { return iterator(nullptr); } + iterator end() { return iterator(nullptr); } const_iterator begin() const { return const_iterator(getFirst()); } - const_iterator end() const { return const_iterator(nullptr); } + const_iterator end() const { return const_iterator(nullptr); } }; #endif diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index b9677ff70b4..b0dea1e36b6 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -1108,7 +1108,7 @@ class GenericCreatureScript : public CreatureScript }; #define RegisterCreatureAI(ai_name) new GenericCreatureScript<ai_name>(#ai_name) -template <class AI, AI*(*AIFactory)(Creature*)> +template <class AI, AI* (*AIFactory)(Creature*)> class FactoryCreatureScript : public CreatureScript { public: @@ -1126,6 +1126,15 @@ class GenericGameObjectScript : public GameObjectScript }; #define RegisterGameObjectAI(ai_name) new GenericGameObjectScript<ai_name>(#ai_name) +template <class AI, AI* (*AIFactory)(GameObject*)> +class FactoryGameObjectScript : public GameObjectScript +{ + public: + FactoryGameObjectScript(char const* name) : GameObjectScript(name) { } + GameObjectAI* GetAI(GameObject* me) const override { return AIFactory(me); } +}; +#define RegisterGameObjectAIWithFactory(ai_name, factory_fn) new FactoryGameObjectScript<ai_name, &factory_fn>(#ai_name) + #define sScriptMgr ScriptMgr::instance() #endif |
