mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-02-17 09:14:34 +00:00
feat(Core/Hooks): added collection of hooks to extends AC (#3047)
This collection of hooks comes from the Maelstrom project. It allows to release modules such as : - 3v3-soloqueue - 1v1 arena - pvestats and many others
This commit is contained in:
@@ -468,19 +468,7 @@ Battleground* BattlegroundMgr::CreateNewBattleground(BattlegroundTypeId original
|
||||
// Set up correct min/max player counts for scoreboards
|
||||
if (bg->isArena())
|
||||
{
|
||||
uint32 maxPlayersPerTeam = 0;
|
||||
switch (arenaType)
|
||||
{
|
||||
case ARENA_TYPE_2v2:
|
||||
maxPlayersPerTeam = 2;
|
||||
break;
|
||||
case ARENA_TYPE_3v3:
|
||||
maxPlayersPerTeam = 3;
|
||||
break;
|
||||
case ARENA_TYPE_5v5:
|
||||
maxPlayersPerTeam = 5;
|
||||
break;
|
||||
}
|
||||
uint32 maxPlayersPerTeam = ArenaTeam::GetReqPlayersForType(arenaType) / 2;
|
||||
sScriptMgr->OnSetArenaMaxPlayersPerTeam(arenaType, maxPlayersPerTeam);
|
||||
bg->SetMaxPlayersPerTeam(maxPlayersPerTeam);
|
||||
}
|
||||
@@ -748,31 +736,24 @@ bool BattlegroundMgr::IsArenaType(BattlegroundTypeId bgTypeId)
|
||||
|
||||
BattlegroundQueueTypeId BattlegroundMgr::BGQueueTypeId(BattlegroundTypeId bgTypeId, uint8 arenaType)
|
||||
{
|
||||
if (arenaType) {
|
||||
uint32 queueTypeID = BATTLEGROUND_QUEUE_NONE;
|
||||
switch (arenaType) {
|
||||
case ARENA_TYPE_2v2:
|
||||
queueTypeID = BATTLEGROUND_QUEUE_2v2;
|
||||
break;
|
||||
case ARENA_TYPE_3v3:
|
||||
queueTypeID = BATTLEGROUND_QUEUE_3v3;
|
||||
break;
|
||||
case ARENA_TYPE_5v5:
|
||||
queueTypeID = BATTLEGROUND_QUEUE_5v5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
sScriptMgr->OnArenaTypeIDToQueueID(bgTypeId, arenaType, queueTypeID);
|
||||
return BattlegroundQueueTypeId(queueTypeID);
|
||||
}
|
||||
uint32 queueTypeID = BATTLEGROUND_QUEUE_NONE;
|
||||
|
||||
if (BattlegroundMgr::bgToQueue.find(bgTypeId) == BattlegroundMgr::bgToQueue.end())
|
||||
if (arenaType)
|
||||
{
|
||||
return BATTLEGROUND_QUEUE_NONE;
|
||||
if (BattlegroundMgr::ArenaTypeToQueue.find(arenaType) != BattlegroundMgr::ArenaTypeToQueue.end())
|
||||
{
|
||||
queueTypeID = BattlegroundMgr::ArenaTypeToQueue.at(arenaType);
|
||||
}
|
||||
|
||||
sScriptMgr->OnArenaTypeIDToQueueID(bgTypeId, arenaType, queueTypeID);
|
||||
}
|
||||
|
||||
return BattlegroundMgr::bgToQueue[bgTypeId];
|
||||
if (BattlegroundMgr::bgToQueue.find(bgTypeId) != BattlegroundMgr::bgToQueue.end())
|
||||
{
|
||||
queueTypeID = BattlegroundMgr::bgToQueue.at(bgTypeId);
|
||||
}
|
||||
|
||||
return static_cast<BattlegroundQueueTypeId>(queueTypeID);
|
||||
}
|
||||
|
||||
BattlegroundTypeId BattlegroundMgr::BGTemplateId(BattlegroundQueueTypeId bgQueueTypeId)
|
||||
@@ -788,21 +769,14 @@ BattlegroundTypeId BattlegroundMgr::BGTemplateId(BattlegroundQueueTypeId bgQueue
|
||||
uint8 BattlegroundMgr::BGArenaType(BattlegroundQueueTypeId bgQueueTypeId)
|
||||
{
|
||||
uint8 arenaType = 0;
|
||||
switch (bgQueueTypeId)
|
||||
|
||||
if (BattlegroundMgr::QueueToArenaType.find(bgQueueTypeId) != BattlegroundMgr::QueueToArenaType.end())
|
||||
{
|
||||
case BATTLEGROUND_QUEUE_2v2:
|
||||
arenaType = ARENA_TYPE_2v2;
|
||||
break;
|
||||
case BATTLEGROUND_QUEUE_3v3:
|
||||
arenaType = ARENA_TYPE_3v3;
|
||||
break;
|
||||
case BATTLEGROUND_QUEUE_5v5:
|
||||
arenaType = ARENA_TYPE_5v5;
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
arenaType = BattlegroundMgr::QueueToArenaType.at(bgQueueTypeId);
|
||||
}
|
||||
|
||||
sScriptMgr->OnArenaQueueIdToArenaType(bgQueueTypeId, arenaType);
|
||||
|
||||
return arenaType;
|
||||
}
|
||||
|
||||
@@ -1166,3 +1140,17 @@ std::unordered_map<int, bgTypeRef> BattlegroundMgr::getBgFromTypeID =
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
std::unordered_map<uint32, BattlegroundQueueTypeId> BattlegroundMgr::ArenaTypeToQueue =
|
||||
{
|
||||
{ ARENA_TYPE_2v2, BATTLEGROUND_QUEUE_2v2 },
|
||||
{ ARENA_TYPE_3v3, BATTLEGROUND_QUEUE_3v3 },
|
||||
{ ARENA_TYPE_5v5, BATTLEGROUND_QUEUE_5v5 }
|
||||
};
|
||||
|
||||
std::unordered_map<uint32, ArenaType> BattlegroundMgr::QueueToArenaType =
|
||||
{
|
||||
{ BATTLEGROUND_QUEUE_2v2, ARENA_TYPE_2v2 },
|
||||
{ BATTLEGROUND_QUEUE_3v3, ARENA_TYPE_3v3 },
|
||||
{ BATTLEGROUND_QUEUE_5v5, ARENA_TYPE_5v5 }
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user