Core/Quests: Reduced the need to expose internal Player's class member
This commit is contained in:
@@ -868,7 +868,7 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||||||
break;
|
break;
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST_COUNT:
|
||||||
{
|
{
|
||||||
SetCriteriaProgress(achievementCriteria, GetPlayer()->getRewardedQuests().size());
|
SetCriteriaProgress(achievementCriteria, GetPlayer()->GetRewardedQuestCount());
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
|
case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST_DAILY:
|
||||||
@@ -908,11 +908,13 @@ void AchievementMgr::UpdateAchievementCriteria(AchievementCriteriaTypes type, ui
|
|||||||
continue;
|
continue;
|
||||||
|
|
||||||
uint32 counter = 0;
|
uint32 counter = 0;
|
||||||
for (RewardedQuestSet::const_iterator itr = GetPlayer()->getRewardedQuests().begin(); itr != GetPlayer()->getRewardedQuests().end(); ++itr)
|
|
||||||
|
const RewardedQuestSet &rewQuests = GetPlayer()->getRewardedQuests();
|
||||||
|
for (RewardedQuestSet::const_iterator itr = rewQuests.begin(); itr != rewQuests.end(); ++itr)
|
||||||
{
|
{
|
||||||
Quest const* quest = sObjectMgr->GetQuestTemplate(*itr);
|
Quest const* quest = sObjectMgr->GetQuestTemplate(*itr);
|
||||||
if (quest && quest->GetZoneOrSort() >= 0 && uint32(quest->GetZoneOrSort()) == achievementCriteria->complete_quests_in_zone.zoneID)
|
if (quest && quest->GetZoneOrSort() >= 0 && uint32(quest->GetZoneOrSort()) == achievementCriteria->complete_quests_in_zone.zoneID)
|
||||||
counter++;
|
++counter;
|
||||||
}
|
}
|
||||||
SetCriteriaProgress(achievementCriteria, counter);
|
SetCriteriaProgress(achievementCriteria, counter);
|
||||||
break;
|
break;
|
||||||
@@ -2422,7 +2424,6 @@ void AchievementGlobalMgr::LoadRewards()
|
|||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
|
|
||||||
Field *fields = result->Fetch();
|
Field *fields = result->Fetch();
|
||||||
uint32 entry = fields[0].GetUInt32();
|
uint32 entry = fields[0].GetUInt32();
|
||||||
const AchievementEntry* pAchievement = sAchievementStore.LookupEntry(entry);
|
const AchievementEntry* pAchievement = sAchievementStore.LookupEntry(entry);
|
||||||
|
|||||||
@@ -1525,9 +1525,15 @@ class Player : public Unit, public GridObject<Player>
|
|||||||
UpdateAchievementCriteria(ACHIEVEMENT_CRITERIA_TYPE_HIGHEST_GOLD_VALUE_OWNED);
|
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; };
|
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; }
|
const uint64& GetSelection() const { return m_curSelection; }
|
||||||
Unit *GetSelectedUnit() const;
|
Unit *GetSelectedUnit() const;
|
||||||
Player *GetSelectedPlayer() const;
|
Player *GetSelectedPlayer() const;
|
||||||
|
|||||||
@@ -31,9 +31,6 @@
|
|||||||
#include "Battleground.h"
|
#include "Battleground.h"
|
||||||
#include "BattlegroundAV.h"
|
#include "BattlegroundAV.h"
|
||||||
#include "ScriptMgr.h"
|
#include "ScriptMgr.h"
|
||||||
#include "ConditionMgr.h"
|
|
||||||
#include "Creature.h"
|
|
||||||
#include "CreatureAI.h"
|
|
||||||
#include "GameObjectAI.h"
|
#include "GameObjectAI.h"
|
||||||
|
|
||||||
void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket & recv_data)
|
void WorldSession::HandleQuestgiverStatusQueryOpcode(WorldPacket & recv_data)
|
||||||
@@ -692,7 +689,7 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
|
|||||||
{
|
{
|
||||||
if (pPlayer->SatisfyQuestLevel(pQuest, false))
|
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;
|
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)))
|
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*/)
|
void WorldSession::HandleQueryQuestsCompleted(WorldPacket & /*recv_data*/)
|
||||||
{
|
{
|
||||||
WorldPacket data(SMSG_QUERY_QUESTS_COMPLETED_RESPONSE, 4+4*_player->getRewardedQuests().size());
|
size_t rew_count = _player->GetRewardedQuestCount();
|
||||||
data << uint32(_player->getRewardedQuests().size());
|
|
||||||
|
|
||||||
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);
|
data << uint32(*itr);
|
||||||
|
|
||||||
SendPacket(&data);
|
SendPacket(&data);
|
||||||
|
|||||||
Reference in New Issue
Block a user