aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Events/GameEventMgr.cpp
diff options
context:
space:
mode:
authorShocker <shocker@freakz.ro>2012-01-04 13:11:34 -0800
committerShocker <shocker@freakz.ro>2012-01-04 13:11:34 -0800
commit8d7f77eb00000cb1c83b246214672f6b04a23d0f (patch)
tree2e4175a7125bae58f29007751171e24372202346 /src/server/game/Events/GameEventMgr.cpp
parentde2bcb1caa8a8de77e5b14eae66622f57f6ac98b (diff)
parent46fb199ee1c5d27ea79f65d63f6fd8dbe29612c6 (diff)
Merge pull request #4616 from kandera/fix_seasonal_quest_reset
Core/Quests: Add implementation of seasonal quest reset
Diffstat (limited to 'src/server/game/Events/GameEventMgr.cpp')
-rwxr-xr-xsrc/server/game/Events/GameEventMgr.cpp43
1 files changed, 43 insertions, 0 deletions
diff --git a/src/server/game/Events/GameEventMgr.cpp b/src/server/game/Events/GameEventMgr.cpp
index 8b9e2fe047b..e1900c6c994 100755
--- a/src/server/game/Events/GameEventMgr.cpp
+++ b/src/server/game/Events/GameEventMgr.cpp
@@ -759,6 +759,47 @@ void GameEventMgr::LoadFromDB()
}
}
+ sLog->outString("Loading Game Event Seasonal Quest Relations...");
+ {
+ uint32 oldMSTime = getMSTime();
+
+ // 0 1
+ QueryResult result = WorldDatabase.Query("SELECT quest, event FROM game_event_seasonal_questrelation");
+
+ if (!result)
+ {
+ sLog->outString(">> Loaded 0 seasonal quests additions in game events. DB table `game_event_seasonal_questrelation` is empty.");
+ sLog->outString();
+ }
+ else
+ {
+ uint32 count = 0;
+ do
+ {
+ Field* fields = result->Fetch();
+
+ uint32 quest = fields[0].GetUInt32();
+ uint16 event_id = fields[1].GetUInt16();
+
+ if (event_id >= mGameEvent.size())
+ {
+ sLog->outErrorDb("`game_event_seasonal_questrelation` event id (%u) is out of range compared to max event in `game_event`", event_id);
+ continue;
+ }
+
+ Quest * qInfo = sObjectMgr->GetQuestTemplate(quest);
+ if (qInfo)
+ qInfo->SetSeasonalQuestEvent(event_id);
+
+ ++count;
+ }
+ while (result->NextRow());
+
+ sLog->outString(">> Loaded %u quests additions in game events in %u ms", count, GetMSTimeDiffToNow(oldMSTime));
+ sLog->outString();
+ }
+ }
+
sLog->outString("Loading Game Event Vendor Additions Data...");
{
uint32 oldMSTime = getMSTime();
@@ -1079,6 +1120,8 @@ void GameEventMgr::UnApplyEvent(uint16 event_id)
UpdateEventNPCVendor(event_id, false);
// update bg holiday
UpdateBattlegroundSettings();
+ // check for seasonal quest reset.
+ sWorld->ResetEventSeasonalQuests(event_id);
}
void GameEventMgr::ApplyNewEvent(uint16 event_id)