diff options
| author | Walter Pagani <paganiwalter@gmail.com> | 2024-09-21 17:25:22 -0300 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-21 22:25:22 +0200 |
| commit | cfd7bf416207f78028ed1532db3d2bfd44dab406 (patch) | |
| tree | 9b7d20af2f917e6e8357d1a86d0e2564fbbaac27 /src/server/game/Scripting/ScriptDefines | |
| parent | b364e00238c43cd326fa54aa3e5c4cd8a8c9d770 (diff) | |
chore(Core/AllMapScript) Update structure (#19979)
* fix(Core/AllMapScript) Update structure to use CALL_ENABLED_HOOKS
* fatal error: no template named 'vector' in namespace 'std'
* fix build
Co-authored-by: Anton Popovichenko <anton.popovichenko@mendix.com>
---------
Co-authored-by: Anton Popovichenko <anton.popovichenko@mendix.com>
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/AllMapScript.cpp | 45 | ||||
| -rw-r--r-- | src/server/game/Scripting/ScriptDefines/AllMapScript.h | 15 |
2 files changed, 28 insertions, 32 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/AllMapScript.cpp b/src/server/game/Scripting/ScriptDefines/AllMapScript.cpp index c778b8fffb..a439073651 100644 --- a/src/server/game/Scripting/ScriptDefines/AllMapScript.cpp +++ b/src/server/game/Scripting/ScriptDefines/AllMapScript.cpp @@ -88,10 +88,7 @@ void ScriptMgr::OnCreateMap(Map* map) { ASSERT(map); - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnCreateMap(map); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_CREATE_MAP, script->OnCreateMap(map)); ForeachMaps<WorldMapScript>(map, [&](WorldMapScript* script) @@ -116,10 +113,7 @@ void ScriptMgr::OnDestroyMap(Map* map) { ASSERT(map); - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnDestroyMap(map); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_DESTROY_MAP, script->OnDestroyMap(map)); ForeachMaps<WorldMapScript>(map, [&](WorldMapScript* script) @@ -193,10 +187,7 @@ void ScriptMgr::OnPlayerEnterMap(Map* map, Player* player) ASSERT(map); ASSERT(player); - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnPlayerEnterAll(map, player); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_PLAYER_ENTER_ALL, script->OnPlayerEnterAll(map, player)); ExecuteScript<PlayerScript>([=](PlayerScript* script) { @@ -227,10 +218,7 @@ void ScriptMgr::OnPlayerLeaveMap(Map* map, Player* player) ASSERT(map); ASSERT(player); - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnPlayerLeaveAll(map, player); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_PLAYER_LEAVE_ALL, script->OnPlayerLeaveAll(map, player)); ForeachMaps<WorldMapScript>(map, [&](WorldMapScript* script) @@ -255,10 +243,7 @@ void ScriptMgr::OnMapUpdate(Map* map, uint32 diff) { ASSERT(map); - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnMapUpdate(map, diff); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_MAP_UPDATE, script->OnMapUpdate(map, diff)); ForeachMaps<WorldMapScript>(map, [&](WorldMapScript* script) @@ -281,24 +266,22 @@ void ScriptMgr::OnMapUpdate(Map* map, uint32 diff) void ScriptMgr::OnBeforeCreateInstanceScript(InstanceMap* instanceMap, InstanceScript** instanceData, bool load, std::string data, uint32 completedEncounterMask) { - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnBeforeCreateInstanceScript(instanceMap, instanceData, load, data, completedEncounterMask); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT, script->OnBeforeCreateInstanceScript(instanceMap, instanceData, load, data, completedEncounterMask)); } void ScriptMgr::OnDestroyInstance(MapInstanced* mapInstanced, Map* map) { - ExecuteScript<AllMapScript>([&](AllMapScript* script) - { - script->OnDestroyInstance(mapInstanced, map); - }); + CALL_ENABLED_HOOKS(AllMapScript, ALLMAPHOOK_ON_DESTROY_INSTANCE, script->OnDestroyInstance(mapInstanced, map)); } -AllMapScript::AllMapScript(const char* name) : - ScriptObject(name) +AllMapScript::AllMapScript(const char* name, std::vector<uint16> enabledHooks) : ScriptObject(name, ALLMAPHOOK_END) { - ScriptRegistry<AllMapScript>::AddScript(this); + // If empty - enable all available hooks. + if (enabledHooks.empty()) + for (uint16 i = 0; i < ALLMAPHOOK_END; ++i) + enabledHooks.emplace_back(i); + + ScriptRegistry<AllMapScript>::AddScript(this, std::move(enabledHooks)); } template class AC_GAME_API ScriptRegistry<AllMapScript>; diff --git a/src/server/game/Scripting/ScriptDefines/AllMapScript.h b/src/server/game/Scripting/ScriptDefines/AllMapScript.h index 77479fc1b0..86e7a0e6d2 100644 --- a/src/server/game/Scripting/ScriptDefines/AllMapScript.h +++ b/src/server/game/Scripting/ScriptDefines/AllMapScript.h @@ -19,11 +19,24 @@ #define SCRIPT_OBJECT_ALL_MAP_SCRIPT_H_ #include "ScriptObject.h" +#include <vector> + +enum AllMapHook +{ + ALLMAPHOOK_ON_PLAYER_ENTER_ALL, + ALLMAPHOOK_ON_PLAYER_LEAVE_ALL, + ALLMAPHOOK_ON_BEFORE_CREATE_INSTANCE_SCRIPT, + ALLMAPHOOK_ON_DESTROY_INSTANCE, + ALLMAPHOOK_ON_CREATE_MAP, + ALLMAPHOOK_ON_DESTROY_MAP, + ALLMAPHOOK_ON_MAP_UPDATE, + ALLMAPHOOK_END +}; class AllMapScript : public ScriptObject { protected: - AllMapScript(const char* name); + AllMapScript(const char* name, std::vector<uint16> enabledHooks = std::vector<uint16>()); public: /** |
