From 95743d03803b9cff98a631d8d5fea16411334c28 Mon Sep 17 00:00:00 2001 From: moob0 Date: Sat, 26 Nov 2016 21:05:59 +0100 Subject: [PATCH] Core/ScriptMgr: added new hook OnBeforeUpdateArenaPoints (#261) --- src/game/Battlegrounds/ArenaTeamMgr.cpp | 4 ++++ src/game/Scripting/ScriptMgr.cpp | 5 +++++ src/game/Scripting/ScriptMgr.h | 5 +++++ 3 files changed, 14 insertions(+) diff --git a/src/game/Battlegrounds/ArenaTeamMgr.cpp b/src/game/Battlegrounds/ArenaTeamMgr.cpp index 1cbef2068..80bcdecea 100644 --- a/src/game/Battlegrounds/ArenaTeamMgr.cpp +++ b/src/game/Battlegrounds/ArenaTeamMgr.cpp @@ -12,6 +12,7 @@ #include "Language.h" #include "ObjectAccessor.h" #include "Player.h" +#include "ScriptMgr.h" ArenaTeamMgr::ArenaTeamMgr() { @@ -140,7 +141,10 @@ void ArenaTeamMgr::DistributeArenaPoints() // At first update all points for all team members for (ArenaTeamContainer::iterator teamItr = GetArenaTeamMapBegin(); teamItr != GetArenaTeamMapEnd(); ++teamItr) if (ArenaTeam* at = teamItr->second) + { at->UpdateArenaPointsHelper(PlayerPoints); + sScriptMgr->OnBeforeUpdateArenaPoints(at, PlayerPoints); + } SQLTransaction trans = CharacterDatabase.BeginTransaction(); diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index a9fab945d..6ca910a33 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1450,6 +1450,11 @@ void ScriptMgr::OnGlobalMirrorImageDisplayItem(const Item *item, uint32 &display FOREACH_SCRIPT(GlobalScript)->OnMirrorImageDisplayItem(item,display); } +void ScriptMgr::OnBeforeUpdateArenaPoints(ArenaTeam* at, std::map &ap) +{ + FOREACH_SCRIPT(GlobalScript)->OnBeforeUpdateArenaPoints(at,ap); +} + SpellScriptLoader::SpellScriptLoader(const char* name) : ScriptObject(name) { diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index 916d48c53..38edd234b 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -19,6 +19,7 @@ #include "Weather.h" #include "AchievementMgr.h" #include "DynamicObject.h" +#include "ArenaTeam.h" class AuctionHouseObject; class AuraScript; @@ -883,6 +884,9 @@ class GlobalScript : public ScriptObject // items virtual void OnItemDelFromDB(SQLTransaction& /*trans*/, uint32 /*itemGuid*/) { } virtual void OnMirrorImageDisplayItem(const Item* /*item*/, uint32& /*display*/) { } + + // On Before arena points distribution + virtual void OnBeforeUpdateArenaPoints(ArenaTeam* /*at*/, std::map & /*ap*/) { } }; // Placed here due to ScriptRegistry::AddScript dependency. @@ -1128,6 +1132,7 @@ class ScriptMgr public: /* GlobalScript */ void OnGlobalItemDelFromDB(SQLTransaction& trans, uint32 itemGuid); void OnGlobalMirrorImageDisplayItem(const Item *item, uint32 &display); + void OnBeforeUpdateArenaPoints(ArenaTeam* at, std::map &ap); public: /* Scheduled scripts */