aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rwxr-xr-xsrc/server/game/Achievements/AchievementMgr.cpp11
-rwxr-xr-xsrc/server/game/Entities/Player/Player.h8
-rwxr-xr-xsrc/server/game/Server/Protocol/Handlers/QuestHandler.cpp14
3 files changed, 20 insertions, 13 deletions
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index fdf5c610486..a78f6d32b82 100755
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -868,7 +868,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
break;
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
{
- SetCriteriaProgress(achievementCriteria, GetPlayer()->getRewardedQuests().size());
+ SetCriteriaProgress(achievementCriteria, GetPlayer()->GetRewardedQuestCount());
break;
}
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
@@ -907,12 +907,14 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
if (miscValue1 && miscValue1 != achievementCriteria->complete_quests_in_zone.zoneID)
continue;
- uint32 counter =0;
- for (RewardedQuestSet::const_iterator itr = GetPlayer()->getRewardedQuests().begin(); itr != GetPlayer()->getRewardedQuests().end(); ++itr)
+ uint32 counter = 0;
+
+ const RewardedQuestSet &rewQuests = GetPlayer()->getRewardedQuests();
+ for (RewardedQuestSet::const_iterator itr = rewQuests.begin(); itr != rewQuests.end(); ++itr)
{
Quest const* quest = sObjectMgr->GetQuestTemplate(*itr);
if (quest && quest->GetZoneOrSort() >= 0 && uint32(quest->GetZoneOrSort()) == achievementCriteria->complete_quests_in_zone.zoneID)
- counter++;
+ ++counter;
}
SetCriteriaProgress(achievementCriteria, counter);
break;
@@ -2422,7 +2424,6 @@ void AchievementGlobalMgr::LoadRewards()
do
{
-
Field *fields = result->Fetch();
uint32 entry = fields[0].GetUInt32();
const AchievementEntry* pAchievement = sAchievementStore.LookupEntry(entry);
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 6520b67183c..89e4839b967 100755
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1525,9 +1525,15 @@ class Player : public Unit, public GridObject<Player>
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED);
}
- RewardedQuestSet& getRewardedQuests() { return m_RewardedQuests; }
+ const RewardedQuestSet& getRewardedQuests() const { return m_RewardedQuests; }
QuestStatusMap& getQuestStatusMap() { return m_QuestStatus; };
+ size_t GetRewardedQuestCount() const { return m_RewardedQuests.size(); }
+ bool IsQuestRewarded(uint32 quest_id) const
+ {
+ return m_RewardedQuests.find(quest_id) != m_RewardedQuests.end();
+ }
+
const uint64& GetSelection() const { return m_curSelection; }
Unit *GetSelectedUnit() const;
Player *GetSelectedPlayer() const;
diff --git a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
index 5a0c1ccde15..47ccd013f75 100755
--- a/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
+++ b/src/server/game/Server/Protocol/Handlers/QuestHandler.cpp
@@ -31,9 +31,6 @@
#include "Battleground.h"
#include "BattlegroundAV.h"
#include "ScriptMgr.h"
-#include "ConditionMgr.h"
-#include "Creature.h"
-#include "CreatureAI.h"
#include "GameObjectAI.h"
void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket & recv_data)
@@ -692,7 +689,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
{
if (pPlayer->SatisfyQuestLevel(pQuest, false))
{
- if (pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->getRewardedQuests().find(quest_id) != pPlayer->getRewardedQuests().end()))
+ if (pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->IsQuestRewarded(quest_id)))
result2 = DIALOG_STATUS_REWARD_REP;
else if (pPlayer->getLevel() <= ((pPlayer->GetQuestLevel(pQuest) == -1) ? pPlayer->getLevel() : pPlayer->GetQuestLevel(pQuest) + sWorld->getIntConfig(CONFIG_QUEST_LOW_LEVEL_HIDE_DIFF)))
{
@@ -769,10 +766,13 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
void WorldSession::HandleQueryQuestsCompleted(WorldPacket & /*recv_data*/)
{
- WorldPacket data(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, 4+4*_player->getRewardedQuests().size());
- data << uint32(_player->getRewardedQuests().size());
+ size_t rew_count = _player->GetRewardedQuestCount();
- for (RewardedQuestSet::const_iterator itr = _player->getRewardedQuests().begin(); itr != _player->getRewardedQuests().end(); ++itr)
+ WorldPacket data(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, 4 + 4 * rew_count);
+ data << uint32(rew_count);
+
+ const RewardedQuestSet &rewQuests = _player->getRewardedQuests();
+ for (RewardedQuestSet::const_iterator itr = rewQuests.begin(); itr != rewQuests.end(); ++itr)
data << uint32(*itr);
SendPacket(&data);