summaryrefslogtreecommitdiff
path: root/src/server/game/Scripting/ScriptDefines
diff options
context:
space:
mode:
authorStefano Borzì <stefanoborzi32@gmail.com>2024-09-08 20:05:58 +0200
committerGitHub <noreply@github.com>2024-09-08 20:05:58 +0200
commit0dd5c6e3b4703e93cf5c4015caf0e5d2f68d650f (patch)
tree8a09e00ff79b6bc7a039dc65738760f9628a3a6e /src/server/game/Scripting/ScriptDefines
parentcf95c1dfbdb252cfd18e32f8bdfef0da8ff01092 (diff)
feat(Battlegrounds): make it compatible with custom arena type (#18679)
* feat(Battlegrounds): make it compatible with custom arena type * fix(BattlegroundQueue.cpp): ignore bg for arena condition * feat(Scripting): add OnQueueUpdateValidity hook * fix: codestyle
Diffstat (limited to 'src/server/game/Scripting/ScriptDefines')
-rw-r--r--src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.cpp5
-rw-r--r--src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.h3
2 files changed, 8 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.cpp b/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.cpp
index 9367a748b5..af617ddba3 100644
--- a/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.cpp
+++ b/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.cpp
@@ -54,6 +54,11 @@ void ScriptMgr::OnQueueUpdate(BattlegroundQueue* queue, uint32 diff, Battlegroun
CALL_ENABLED_HOOKS(AllBattlegroundScript, ALLBATTLEGROUNDHOOK_ON_QUEUE_UPDATE, script->OnQueueUpdate(queue, diff, bgTypeId, bracket_id, arenaType, isRated, arenaRating));
}
+bool ScriptMgr::OnQueueUpdateValidity(BattlegroundQueue* queue, uint32 diff, BattlegroundTypeId bgTypeId, BattlegroundBracketId bracket_id, uint8 arenaType, bool isRated, uint32 arenaRating)
+{
+ CALL_ENABLED_BOOLEAN_HOOKS(AllBattlegroundScript, ALLBATTLEGROUNDHOOK_ON_QUEUE_UPDATE_VALIDITY, !script->OnQueueUpdateValidity(queue, diff, bgTypeId, bracket_id, arenaType, isRated, arenaRating));
+}
+
void ScriptMgr::OnAddGroup(BattlegroundQueue* queue, GroupQueueInfo* ginfo, uint32& index, Player* leader, Group* group, BattlegroundTypeId bgTypeId, PvPDifficultyEntry const* bracketEntry, uint8 arenaType, bool isRated, bool isPremade, uint32 arenaRating, uint32 matchmakerRating, uint32 arenaTeamId, uint32 opponentsArenaTeamId)
{
CALL_ENABLED_HOOKS(AllBattlegroundScript, ALLBATTLEGROUNDHOOK_ON_ADD_GROUP, script->OnAddGroup(queue, ginfo, index, leader, group, bgTypeId, bracketEntry, arenaType, isRated, isPremade, arenaRating, matchmakerRating, arenaTeamId, opponentsArenaTeamId));
diff --git a/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.h b/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.h
index 880518b5dc..9e8baba151 100644
--- a/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.h
+++ b/src/server/game/Scripting/ScriptDefines/AllBattlegroundScript.h
@@ -30,6 +30,7 @@ enum AllBattlegroundHook
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_BEFORE_ADD_PLAYER,
ALLBATTLEGROUNDHOOK_ON_BATTLEGROUND_REMOVE_PLAYER_AT_LEAVE,
ALLBATTLEGROUNDHOOK_ON_QUEUE_UPDATE,
+ ALLBATTLEGROUNDHOOK_ON_QUEUE_UPDATE_VALIDITY,
ALLBATTLEGROUNDHOOK_ON_ADD_GROUP,
ALLBATTLEGROUNDHOOK_CAN_FILL_PLAYERS_TO_BG,
ALLBATTLEGROUNDHOOK_IS_CHECK_NORMAL_MATCH,
@@ -78,6 +79,8 @@ public:
virtual void OnQueueUpdate(BattlegroundQueue* /*queue*/, uint32 /* diff */, BattlegroundTypeId /* bgTypeId */, BattlegroundBracketId /* bracket_id */, uint8 /* arenaType */, bool /* isRated */, uint32 /* arenaRating */) { }
+ [[nodiscard]] virtual bool OnQueueUpdateValidity(BattlegroundQueue* /*queue*/, uint32 /* diff */, BattlegroundTypeId /* bgTypeId */, BattlegroundBracketId /* bracket_id */, uint8 /* arenaType */, bool /* isRated */, uint32 /* arenaRating */) { return true; }
+
virtual void OnAddGroup(BattlegroundQueue* /*queue*/, GroupQueueInfo* /*ginfo*/, uint32& /*index*/, Player* /*leader*/, Group* /*group*/, BattlegroundTypeId /* bgTypeId */, PvPDifficultyEntry const* /* bracketEntry */,
uint8 /* arenaType */, bool /* isRated */, bool /* isPremade */, uint32 /* arenaRating */, uint32 /* matchmakerRating */, uint32 /* arenaTeamId */, uint32 /* opponentsArenaTeamId */) { }