aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/Player
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2012-01-05 13:27:17 +0100
committerShauren <shauren.trinity@gmail.com>2012-01-05 13:27:17 +0100
commit01900b5829af7970eee2bea2efe6e74a7830a84d (patch)
treea0110b7e81df404d8f06c2aac821c4a4e92282c9 /src/server/game/Entities/Player
parentfc987e9a2f948c7a68e352fe9a3024730e3ed839 (diff)
Core/Events
* Changed how quests are linked to events (no longer in Quest class) * Added quest validation when loading game_event_seasonal_questrelation * Renamed fields in new table to be consistent with game_event* tables * Corrected db data (some entries had -1 as event id)
Diffstat (limited to 'src/server/game/Entities/Player')
-rwxr-xr-xsrc/server/game/Entities/Player/Player.cpp18
1 files changed, 11 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index d6a33c1c4e8..f2e7e60a3e3 100755
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -15449,9 +15449,13 @@ bool Player::SatisfyQuestSeasonal(Quest const* qInfo, bool /*msg*/)
{
if (!qInfo->IsSeasonal() || m_seasonalquests.empty())
return true;
- if (m_seasonalquests.find(qInfo->GetSeasonalQuestEvent()) == m_seasonalquests.end()) return false;
+
+ uint16 eventId = sGameEventMgr->GetEventIdForQuest(qInfo);
+ if (m_seasonalquests.find(eventId) == m_seasonalquests.end())
+ return false;
+
// if not found in cooldown list
- return m_seasonalquests[qInfo->GetSeasonalQuestEvent()].find(qInfo->GetQuestId()) == m_seasonalquests[qInfo->GetSeasonalQuestEvent()].end();
+ return m_seasonalquests[eventId].find(qInfo->GetQuestId()) == m_seasonalquests[eventId].end();
}
bool Player::GiveQuestSourceItem(Quest const* quest)
@@ -19004,7 +19008,7 @@ void Player::_SaveSeasonalQuestStatus(SQLTransaction& trans)
PreparedStatement* stmt = CharacterDatabase.GetPreparedStatement(CHAR_DEL_QUEST_STATUS_SEASONAL_CHAR);
stmt->setUInt32(0, GetGUIDLow());
trans->Append(stmt);
-
+
for (SeasonalEventQuestMap::const_iterator iter = m_seasonalquests.begin(); iter != m_seasonalquests.end(); ++iter)
{
uint16 event_id = iter->first;
@@ -22117,11 +22121,11 @@ void Player::SetWeeklyQuestStatus(uint32 quest_id)
void Player::SetSeasonalQuestStatus(uint32 quest_id)
{
- Quest const* q = sObjectMgr->GetQuestTemplate(quest_id);
- if (!q)
+ Quest const* quest = sObjectMgr->GetQuestTemplate(quest_id);
+ if (!quest)
return;
-
- m_seasonalquests[q->GetSeasonalQuestEvent()].insert(quest_id);
+
+ m_seasonalquests[sGameEventMgr->GetEventIdForQuest(quest)].insert(quest_id);
m_SeasonalQuestChanged = true;
}