From 813be46f1770d20dd8dca6f62fec652f8b4fe85d Mon Sep 17 00:00:00 2001 From: Gargarensis Date: Tue, 31 Jan 2017 01:19:01 +0100 Subject: [PATCH] moved hook from battleground script to formula script --- src/game/Scripting/ScriptMgr.cpp | 4 ++-- src/game/Scripting/ScriptMgr.h | 9 ++++++--- 2 files changed, 8 insertions(+), 5 deletions(-) diff --git a/src/game/Scripting/ScriptMgr.cpp b/src/game/Scripting/ScriptMgr.cpp index 1be672520..67caf6aed 100644 --- a/src/game/Scripting/ScriptMgr.cpp +++ b/src/game/Scripting/ScriptMgr.cpp @@ -1571,9 +1571,9 @@ void ScriptMgr::OnBeforeInitTalentForLevel(Player* player, uint8& level, uint32& FOREACH_SCRIPT(PlayerScript)->OnBeforeInitTalentForLevel(player, level, talentPointsForLevel); } -void ScriptMgr::OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange) +void ScriptMgr::OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange, int32 &winnerChange, int32 &loserChange) { - FOREACH_SCRIPT(BattlegroundScript)->OnAfterArenaRatingCalculation(bg, winnerMatchmakerChange, loserMatchmakerChange); + FOREACH_SCRIPT(FormulaScript)->OnAfterArenaRatingCalculation(bg, winnerMatchmakerChange, loserMatchmakerChange, winnerChange, loserChange); } AllMapScript::AllMapScript(const char* name) diff --git a/src/game/Scripting/ScriptMgr.h b/src/game/Scripting/ScriptMgr.h index b8f798cf6..ee717b3e6 100644 --- a/src/game/Scripting/ScriptMgr.h +++ b/src/game/Scripting/ScriptMgr.h @@ -287,6 +287,9 @@ class FormulaScript : public ScriptObject // Called when calculating the experience rate for group experience. virtual void OnGroupRateCalculation(float& /*rate*/, uint32 /*count*/, bool /*isRaid*/) { } + + // Called after calculating arena rating changes + virtual void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange, int32 &winnerChange, int32 &loserChange) { }; }; template class MapScript : public UpdatableScript @@ -599,7 +602,6 @@ class BattlegroundScript : public ScriptObject // Should return a fully valid Battleground object for the type ID. virtual Battleground* GetBattleground() const = 0; - virtual void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange) { }; }; class OutdoorPvPScript : public ScriptObject @@ -899,6 +901,7 @@ class PlayerScript : public ScriptObject virtual void OnBeforeUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, float& /*val2*/, bool /*ranged*/) { } virtual void OnAfterUpdateAttackPowerAndDamage(Player* /*player*/, float& /*level*/, float& /*base_attPower*/, float& /*attPowerMod*/, float& /*attPowerMultiplier*/, bool /*ranged*/) { } + virtual void OnBeforeInitTalentForLevel(Player* /*player*/, uint8& /*level*/, uint32& /*talentPointsForLevel*/) { } }; class GuildScript : public ScriptObject @@ -1053,6 +1056,7 @@ class ScriptMgr void OnBaseGainCalculation(uint32& gain, uint8 playerLevel, uint8 mobLevel, ContentLevels content); void OnGainCalculation(uint32& gain, Player* player, Unit* unit); void OnGroupRateCalculation(float& rate, uint32 count, bool isRaid); + void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange, int32 &winnerChange, int32 &loserChange); public: /* MapScript */ @@ -1113,8 +1117,6 @@ class ScriptMgr Battleground* CreateBattleground(BattlegroundTypeId typeId); - void OnAfterArenaRatingCalculation(Battleground *const bg, int32 &winnerMatchmakerChange, int32 &loserMatchmakerChange); - public: /* OutdoorPvPScript */ OutdoorPvP* CreateOutdoorPvP(OutdoorPvPData const* data); @@ -1216,6 +1218,7 @@ class ScriptMgr void OnAfterUpdateMaxHealth(Player* player, float& value); void OnBeforeUpdateAttackPowerAndDamage(Player* player, float& level, float& val2, bool ranged); void OnAfterUpdateAttackPowerAndDamage(Player* player, float& level, float& base_attPower, float& attPowerMod, float& attPowerMultiplier, bool ranged); + void OnBeforeInitTalentForLevel(Player* player, uint8& level, uint32& talentPointsForLevel); public: /* GuildScript */