aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.cpp15
-rw-r--r--src/server/game/Battlegrounds/BattlegroundMgr.h3
-rw-r--r--src/server/game/Events/GameEventMgr.cpp18
-rw-r--r--src/server/game/Events/GameEventMgr.h6
4 files changed, 24 insertions, 18 deletions
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.cpp b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
index 7cca34a4246..4447665b892 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.cpp
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.cpp
@@ -620,12 +620,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);
}
bool BattlegroundMgr::IsValidQueueId(BattlegroundQueueTypeId bgQueueTypeId)
diff --git a/src/server/game/Battlegrounds/BattlegroundMgr.h b/src/server/game/Battlegrounds/BattlegroundMgr.h
index 7564c4ebdbb..7653ddd5ba1 100644
--- a/src/server/game/Battlegrounds/BattlegroundMgr.h
+++ b/src/server/game/Battlegrounds/BattlegroundMgr.h
@@ -118,7 +118,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 f2f0db87a59..0450104364f 100644
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -875,12 +875,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.");
@@ -1195,10 +1195,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)
@@ -1811,8 +1811,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 b889394d848..ba13beb0b59 100644
--- a/src/server/game/Events/GameEventMgr.h
+++ b/src/server/game/Events/GameEventMgr.h
@@ -156,7 +156,7 @@ class TC_GAME_API GameEventMgr
typedef std::pair<ObjectGuid::LowType /*guid*/, uint64 /*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;
@@ -165,7 +165,7 @@ class TC_GAME_API GameEventMgr
//GameEventGuidMap mGameEventGameobjectGuids;
GameEventIdMap mGameEventPoolIds;
GameEventDataMap mGameEvent;
- GameEventBitmask mGameEventBattlegroundHolidays;
+ GameEventBattlegroundMap mGameEventBattlegroundHolidays;
QuestIdToEventConditionMap mQuestToEventConditions;
GameEventNPCFlagMap mGameEventNPCFlags;
ActiveEvents m_ActiveEvents;
@@ -179,6 +179,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