[10032] Remove not needed local declaration of dialog status and rename some to clarify.

Additional cleanup for readability.

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2010-06-05 13:21:10 +02:00
parent 2760e7d353
commit c0be5c0926
2 changed files with 65 additions and 60 deletions

View file

@ -34,8 +34,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
{ {
uint64 guid; uint64 guid;
recv_data >> guid; recv_data >> guid;
uint8 questStatus = DIALOG_STATUS_NONE; uint8 dialogStatus = DIALOG_STATUS_NONE;
uint8 defstatus = DIALOG_STATUS_NONE;
Object* questgiver = _player->GetObjectByTypeMask(guid, TYPEMASK_CREATURE_OR_GAMEOBJECT); Object* questgiver = _player->GetObjectByTypeMask(guid, TYPEMASK_CREATURE_OR_GAMEOBJECT);
@ -55,10 +54,10 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
if (!cr_questgiver->IsHostileTo(_player)) // not show quest status to enemies if (!cr_questgiver->IsHostileTo(_player)) // not show quest status to enemies
{ {
questStatus = Script->NPCDialogStatus(_player, cr_questgiver); dialogStatus = Script->NPCDialogStatus(_player, cr_questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, cr_questgiver, defstatus); dialogStatus = getDialogStatus(_player, cr_questgiver, DIALOG_STATUS_NONE);
} }
break; break;
} }
@ -67,10 +66,10 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
DEBUG_LOG("WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject guid = %u", uint32(GUID_LOPART(guid))); DEBUG_LOG("WORLD: Received CMSG_QUESTGIVER_STATUS_QUERY for GameObject guid = %u", uint32(GUID_LOPART(guid)));
GameObject* go_questgiver = (GameObject*)questgiver; GameObject* go_questgiver = (GameObject*)questgiver;
questStatus = Script->GODialogStatus(_player, go_questgiver); dialogStatus = Script->GODialogStatus(_player, go_questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, go_questgiver, defstatus); dialogStatus = getDialogStatus(_player, go_questgiver, DIALOG_STATUS_NONE);
break; break;
} }
@ -80,7 +79,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
} }
//inform client about status of quest //inform client about status of quest
_player->PlayerTalkClass->SendQuestGiverStatus(questStatus, guid); _player->PlayerTalkClass->SendQuestGiverStatus(dialogStatus, guid);
} }
void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket & recv_data) void WorldSession::HandleQuestgiverHelloOpcode(WorldPacket & recv_data)
@ -550,7 +549,7 @@ void WorldSession::HandleQuestPushResult(WorldPacket& recvPacket)
uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32 defstatus) uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32 defstatus)
{ {
uint32 result = defstatus; uint32 dialogStatus = defstatus;
QuestRelations const* qir; QuestRelations const* qir;
QuestRelations const* qr; QuestRelations const* qr;
@ -575,66 +574,73 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
return DIALOG_STATUS_NONE; return DIALOG_STATUS_NONE;
} }
for(QuestRelations::const_iterator i = qir->lower_bound(questgiver->GetEntry()); i != qir->upper_bound(questgiver->GetEntry()); ++i ) for(QuestRelations::const_iterator i = qir->lower_bound(questgiver->GetEntry()); i != qir->upper_bound(questgiver->GetEntry()); ++i)
{ {
uint32 result2 = 0; uint32 dialogStatusNew = 0;
uint32 quest_id = i->second; uint32 quest_id = i->second;
Quest const *pQuest = sObjectMgr.GetQuestTemplate(quest_id); Quest const *pQuest = sObjectMgr.GetQuestTemplate(quest_id);
if ( !pQuest ) continue;
QuestStatus status = pPlayer->GetQuestStatus( quest_id ); if (!pQuest)
if( (status == QUEST_STATUS_COMPLETE && !pPlayer->GetQuestRewardStatus(quest_id)) ||
(pQuest->IsAutoComplete() && pPlayer->CanTakeQuest(pQuest, false)) )
{
if ( pQuest->IsAutoComplete() && pQuest->IsRepeatable() )
result2 = DIALOG_STATUS_REWARD_REP;
else
result2 = DIALOG_STATUS_REWARD;
}
else if ( status == QUEST_STATUS_INCOMPLETE )
result2 = DIALOG_STATUS_INCOMPLETE;
if (result2 > result)
result = result2;
}
for(QuestRelations::const_iterator i = qr->lower_bound(questgiver->GetEntry()); i != qr->upper_bound(questgiver->GetEntry()); ++i )
{
uint32 result2 = 0;
uint32 quest_id = i->second;
Quest const *pQuest = sObjectMgr.GetQuestTemplate(quest_id);
if ( !pQuest )
continue; continue;
QuestStatus status = pPlayer->GetQuestStatus( quest_id ); QuestStatus status = pPlayer->GetQuestStatus(quest_id);
if ( status == QUEST_STATUS_NONE )
if ((status == QUEST_STATUS_COMPLETE && !pPlayer->GetQuestRewardStatus(quest_id)) ||
(pQuest->IsAutoComplete() && pPlayer->CanTakeQuest(pQuest, false)))
{ {
if ( pPlayer->CanSeeStartQuest( pQuest ) ) if (pQuest->IsAutoComplete() && pQuest->IsRepeatable())
dialogStatusNew = DIALOG_STATUS_REWARD_REP;
else
dialogStatusNew = DIALOG_STATUS_REWARD;
}
else if (status == QUEST_STATUS_INCOMPLETE)
dialogStatusNew = DIALOG_STATUS_INCOMPLETE;
if (dialogStatusNew > dialogStatus)
dialogStatus = dialogStatusNew;
}
for(QuestRelations::const_iterator i = qr->lower_bound(questgiver->GetEntry()); i != qr->upper_bound(questgiver->GetEntry()); ++i)
{
uint32 dialogStatusNew = 0;
uint32 quest_id = i->second;
Quest const *pQuest = sObjectMgr.GetQuestTemplate(quest_id);
if (!pQuest)
continue;
QuestStatus status = pPlayer->GetQuestStatus(quest_id);
if (status == QUEST_STATUS_NONE)
{
if (pPlayer->CanSeeStartQuest(pQuest))
{ {
if ( pPlayer->SatisfyQuestLevel(pQuest, false) ) if (pPlayer->SatisfyQuestLevel(pQuest, false))
{ {
if ( pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->getQuestStatusMap()[quest_id].m_rewarded)) if (pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->getQuestStatusMap()[quest_id].m_rewarded))
result2 = DIALOG_STATUS_REWARD_REP; {
else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF) ) dialogStatusNew = DIALOG_STATUS_REWARD_REP;
}
else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF))
{ {
if (pQuest->HasFlag(QUEST_FLAGS_DAILY) || pQuest->HasFlag(QUEST_FLAGS_WEEKLY)) if (pQuest->HasFlag(QUEST_FLAGS_DAILY) || pQuest->HasFlag(QUEST_FLAGS_WEEKLY))
result2 = DIALOG_STATUS_AVAILABLE_REP; dialogStatusNew = DIALOG_STATUS_AVAILABLE_REP;
else else
result2 = DIALOG_STATUS_AVAILABLE; dialogStatusNew = DIALOG_STATUS_AVAILABLE;
} }
else else
result2 = DIALOG_STATUS_LOW_LEVEL_AVAILABLE; dialogStatusNew = DIALOG_STATUS_LOW_LEVEL_AVAILABLE;
} }
else else
result2 = DIALOG_STATUS_UNAVAILABLE; dialogStatusNew = DIALOG_STATUS_UNAVAILABLE;
} }
} }
if (result2 > result) if (dialogStatusNew > dialogStatus)
result = result2; dialogStatus = dialogStatusNew;
} }
return result; return dialogStatus;
} }
void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/) void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket*/)
@ -648,8 +654,7 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
for(ObjectGuidSet::const_iterator itr = _player->m_clientGUIDs.begin(); itr != _player->m_clientGUIDs.end(); ++itr) for(ObjectGuidSet::const_iterator itr = _player->m_clientGUIDs.begin(); itr != _player->m_clientGUIDs.end(); ++itr)
{ {
uint8 questStatus = DIALOG_STATUS_NONE; uint8 dialogStatus = DIALOG_STATUS_NONE;
uint8 defstatus = DIALOG_STATUS_NONE;
if (itr->IsCreatureOrPet()) if (itr->IsCreatureOrPet())
{ {
@ -662,13 +667,13 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER)) if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
continue; continue;
questStatus = Script->NPCDialogStatus(_player, questgiver); dialogStatus = Script->NPCDialogStatus(_player, questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, questgiver, defstatus); dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);
data << uint64(questgiver->GetGUID()); data << uint64(questgiver->GetGUID());
data << uint8(questStatus); data << uint8(dialogStatus);
++count; ++count;
} }
else if (itr->IsGameobject()) else if (itr->IsGameobject())
@ -681,13 +686,13 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER) if (questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
continue; continue;
questStatus = Script->GODialogStatus(_player, questgiver); dialogStatus = Script->GODialogStatus(_player, questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP) if (dialogStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, questgiver, defstatus); dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);
data << uint64(questgiver->GetGUID()); data << uint64(questgiver->GetGUID());
data << uint8(questStatus); data << uint8(dialogStatus);
++count; ++count;
} }
} }

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "10031" #define REVISION_NR "10032"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__