Add support for season-dependant gameevents

Patch by Liberate

--HG--
branch : trunk
This commit is contained in:
click
2010-04-22 16:22:39 +02:00
parent ca2b52af0d
commit ab396beb56
5 changed files with 53 additions and 0 deletions
+18
View File
@@ -1068,6 +1068,24 @@ uint32 GameEventMgr::Initialize() // return the next e
return delay;
}
void GameEventMgr::StartArenaSeason()
{
QueryResult_AutoPtr result = WorldDatabase.PQuery("SELECT event FROM season_linked_event WHERE season = '%i'",sWorld.getConfig(CONFIG_ARENA_SEASON_ID));
if (!result)
{
sLog.outError("ArenaSeason (%i) must be an existant Arena Season",sWorld.getConfig(CONFIG_ARENA_SEASON_ID));
return;
}
Field *fields = result->Fetch();
uint16 eventId = fields[0].GetUInt16();
StartEvent(eventId,true);
sLog.outString("Arena Season %i started...",sWorld.getConfig(CONFIG_ARENA_SEASON_ID));
}
uint32 GameEventMgr::Update() // return the next event delay in ms
{
time_t currenttime = time(NULL);
+1
View File
@@ -105,6 +105,7 @@ class GameEventMgr
uint32 Update();
bool IsActiveEvent(uint16 event_id) { return (m_ActiveEvents.find(event_id) != m_ActiveEvents.end()); }
uint32 Initialize();
void StartArenaSeason();
void StartInternalEvent(uint16 event_id);
bool StartEvent(uint16 event_id, bool overwrite = false);
void StopEvent(uint16 event_id, bool overwrite = false);
+3
View File
@@ -1656,6 +1656,9 @@ void World::SetInitialWorldSettings()
uint32 nextGameEvent = gameeventmgr.Initialize();
m_timers[WUPDATE_EVENTS].SetInterval(nextGameEvent); //depend on next event
sLog.outString("Starting Arena Season...");
gameeventmgr.StartArenaSeason();
sLog.outString("Loading World States..."); // must be loaded before battleground and outdoor PvP
LoadWorldStates();