diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlegrounds/BattlegroundMgr.cpp | 15 | ||||
-rw-r--r-- | src/server/game/Battlegrounds/BattlegroundMgr.h | 3 | ||||
-rw-r--r-- | src/server/game/Events/GameEventMgr.cpp | 18 | ||||
-rw-r--r-- | src/server/game/Events/GameEventMgr.h | 6 |
4 files changed, 24 insertions, 18 deletions
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp index 5b8e99f66f9..65e2561a257 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp +++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp @@ -828,12 +828,17 @@ void BattlegroundMgr::ToggleArenaTesting() sWorld->SendWorldText(m_ArenaTesting ? LANG_DEBUG_ARENA_ON : LANG_DEBUG_ARENA_OFF); } -void BattlegroundMgr::SetHolidayWeekends(uint32 mask) +void BattlegroundMgr::ResetHolidays() { - // The current code supports battlegrounds up to BattlegroundTypeId(31) - for (uint32 bgtype = 1; bgtype < MAX_BATTLEGROUND_TYPE_ID && bgtype < 32; ++bgtype) - if (Battleground* bg = GetBattlegroundTemplate(BattlegroundTypeId(bgtype))) - bg->SetHoliday((mask & (1 << bgtype)) != 0); + for (uint32 i = BATTLEGROUND_AV; i < MAX_BATTLEGROUND_TYPE_ID; i++) + if (Battleground* bg = GetBattlegroundTemplate(BattlegroundTypeId(i))) + bg->SetHoliday(false); +} + +void BattlegroundMgr::SetHolidayActive(uint32 battlegroundId) +{ + if (Battleground* bg = GetBattlegroundTemplate(BattlegroundTypeId(battlegroundId))) + bg->SetHoliday(true); } void BattlegroundMgr::ScheduleQueueUpdate(uint32 arenaMatchmakerRating, uint8 arenaType, BattlegroundQueueTypeId bgQueueTypeId, BattlegroundTypeId bgTypeId, BattlegroundBracketId bracket_id) diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h index 73b8589d2a9..7335abe190d 100644 --- a/src/server/game/Battlegrounds/BattlegroundMgr.h +++ b/src/server/game/Battlegrounds/BattlegroundMgr.h @@ -105,7 +105,8 @@ class TC_GAME_API BattlegroundMgr void ToggleArenaTesting(); void ToggleTesting(); - void SetHolidayWeekends(uint32 mask); + void ResetHolidays(); + void SetHolidayActive(uint32 battlegroundId); bool isArenaTesting() const { return m_ArenaTesting; } bool isTesting() const { return m_Testing; } diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp index 0384acb7e5f..3f52804fab5 100644 --- a/src/server/game/Events/GameEventMgr.cpp +++ b/src/server/game/Events/GameEventMgr.cpp @@ -866,12 +866,12 @@ void GameEventMgr::LoadFromDB() } } - TC_LOG_INFO("server.loading", "Loading Game Event Battleground Data..."); + TC_LOG_INFO("server.loading", "Loading Game Event Battleground Holiday Data..."); { uint32 oldMSTime = getMSTime(); - // 0 1 - QueryResult result = WorldDatabase.Query("SELECT eventEntry, bgflag FROM game_event_battleground_holiday"); + // 0 1 + QueryResult result = WorldDatabase.Query("SELECT EventEntry, BattlegroundID FROM game_event_battleground_holiday"); if (!result) TC_LOG_INFO("server.loading", ">> Loaded 0 battleground holidays in game events. DB table `game_event_battleground_holiday` is empty."); @@ -1232,10 +1232,10 @@ void GameEventMgr::UpdateEventNPCFlags(uint16 event_id) void GameEventMgr::UpdateBattlegroundSettings() { - uint32 mask = 0; - for (ActiveEvents::const_iterator itr = m_ActiveEvents.begin(); itr != m_ActiveEvents.end(); ++itr) - mask |= mGameEventBattlegroundHolidays[*itr]; - sBattlegroundMgr->SetHolidayWeekends(mask); + sBattlegroundMgr->ResetHolidays(); + + for (uint16 activeEventId : m_ActiveEvents) + sBattlegroundMgr->SetHolidayActive(mGameEventBattlegroundHolidays[activeEventId]); } void GameEventMgr::UpdateEventNPCVendor(uint16 event_id, bool activate) @@ -1843,8 +1843,8 @@ bool IsHolidayActive(HolidayIds id) return false; } -bool IsEventActive(uint16 event_id) +bool IsEventActive(uint16 eventId) { GameEventMgr::ActiveEvents const& ae = sGameEventMgr->GetActiveEventList(); - return ae.find(event_id) != ae.end(); + return ae.find(eventId) != ae.end(); } diff --git a/src/server/game/Events/GameEventMgr.h b/src/server/game/Events/GameEventMgr.h index 26b5ec7d712..4d51ae1ec9b 100644 --- a/src/server/game/Events/GameEventMgr.h +++ b/src/server/game/Events/GameEventMgr.h @@ -165,7 +165,7 @@ class TC_GAME_API GameEventMgr typedef std::pair<ObjectGuid::LowType /*guid*/, uint32 /*npcflag*/> GuidNPCFlagPair; typedef std::list<GuidNPCFlagPair> NPCFlagList; typedef std::vector<NPCFlagList> GameEventNPCFlagMap; - typedef std::vector<uint32> GameEventBitmask; + typedef std::vector<uint32> GameEventBattlegroundMap; GameEventQuestMap mGameEventCreatureQuests; GameEventQuestMap mGameEventGameObjectQuests; GameEventNPCVendorMap mGameEventVendors; @@ -174,7 +174,7 @@ class TC_GAME_API GameEventMgr //GameEventGuidMap mGameEventGameobjectGuids; GameEventIdMap mGameEventPoolIds; GameEventDataMap mGameEvent; - GameEventBitmask mGameEventBattlegroundHolidays; + GameEventBattlegroundMap mGameEventBattlegroundHolidays; QuestIdToEventConditionMap mQuestToEventConditions; GameEventNPCFlagMap mGameEventNPCFlags; ActiveEvents m_ActiveEvents; @@ -189,6 +189,6 @@ class TC_GAME_API GameEventMgr #define sGameEventMgr GameEventMgr::instance() TC_GAME_API bool IsHolidayActive(HolidayIds id); -TC_GAME_API bool IsEventActive(uint16 event_id); +TC_GAME_API bool IsEventActive(uint16 eventId); #endif |