[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;
recv_data >> guid;
uint8 questStatus = DIALOG_STATUS_NONE;
uint8 defstatus = DIALOG_STATUS_NONE;
uint8 dialogStatus = DIALOG_STATUS_NONE;
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
{
questStatus = Script->NPCDialogStatus(_player, cr_questgiver);
dialogStatus = Script->NPCDialogStatus(_player, cr_questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, cr_questgiver, defstatus);
if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, cr_questgiver, DIALOG_STATUS_NONE);
}
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)));
GameObject* go_questgiver = (GameObject*)questgiver;
questStatus = Script->GODialogStatus(_player, go_questgiver);
dialogStatus = Script->GODialogStatus(_player, go_questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, go_questgiver, defstatus);
if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, go_questgiver, DIALOG_STATUS_NONE);
break;
}
@ -80,7 +79,7 @@ void WorldSession::HandleQuestgiverStatusQueryOpcode( WorldPacket & recv_data )
}
//inform client about status of quest
_player->PlayerTalkClass->SendQuestGiverStatus(questStatus, guid);
_player->PlayerTalkClass->SendQuestGiverStatus(dialogStatus, guid);
}
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 result = defstatus;
uint32 dialogStatus = defstatus;
QuestRelations const* qir;
QuestRelations const* qr;
@ -575,66 +574,73 @@ uint32 WorldSession::getDialogStatus(Player *pPlayer, Object* questgiver, uint32
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;
Quest const *pQuest = sObjectMgr.GetQuestTemplate(quest_id);
if ( !pQuest ) continue;
QuestStatus status = pPlayer->GetQuestStatus( quest_id );
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 )
if (!pQuest)
continue;
QuestStatus status = pPlayer->GetQuestStatus( quest_id );
if ( status == QUEST_STATUS_NONE )
QuestStatus status = pPlayer->GetQuestStatus(quest_id);
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))
result2 = DIALOG_STATUS_REWARD_REP;
else if (pPlayer->getLevel() <= pPlayer->GetQuestLevelForPlayer(pQuest) + sWorld.getConfig(CONFIG_UINT32_QUEST_LOW_LEVEL_HIDE_DIFF) )
if (pQuest->IsAutoComplete() || (pQuest->IsRepeatable() && pPlayer->getQuestStatusMap()[quest_id].m_rewarded))
{
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))
result2 = DIALOG_STATUS_AVAILABLE_REP;
dialogStatusNew = DIALOG_STATUS_AVAILABLE_REP;
else
result2 = DIALOG_STATUS_AVAILABLE;
dialogStatusNew = DIALOG_STATUS_AVAILABLE;
}
else
result2 = DIALOG_STATUS_LOW_LEVEL_AVAILABLE;
dialogStatusNew = DIALOG_STATUS_LOW_LEVEL_AVAILABLE;
}
else
result2 = DIALOG_STATUS_UNAVAILABLE;
dialogStatusNew = DIALOG_STATUS_UNAVAILABLE;
}
}
if (result2 > result)
result = result2;
if (dialogStatusNew > dialogStatus)
dialogStatus = dialogStatusNew;
}
return result;
return dialogStatus;
}
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)
{
uint8 questStatus = DIALOG_STATUS_NONE;
uint8 defstatus = DIALOG_STATUS_NONE;
uint8 dialogStatus = DIALOG_STATUS_NONE;
if (itr->IsCreatureOrPet())
{
@ -662,13 +667,13 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (!questgiver->HasFlag(UNIT_NPC_FLAGS, UNIT_NPC_FLAG_QUESTGIVER))
continue;
questStatus = Script->NPCDialogStatus(_player, questgiver);
dialogStatus = Script->NPCDialogStatus(_player, questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, questgiver, defstatus);
if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);
data << uint64(questgiver->GetGUID());
data << uint8(questStatus);
data << uint8(dialogStatus);
++count;
}
else if (itr->IsGameobject())
@ -681,13 +686,13 @@ void WorldSession::HandleQuestgiverStatusMultipleQuery(WorldPacket& /*recvPacket
if (questgiver->GetGoType() != GAMEOBJECT_TYPE_QUESTGIVER)
continue;
questStatus = Script->GODialogStatus(_player, questgiver);
dialogStatus = Script->GODialogStatus(_player, questgiver);
if (questStatus > DIALOG_STATUS_REWARD_REP)
questStatus = getDialogStatus(_player, questgiver, defstatus);
if (dialogStatus > DIALOG_STATUS_REWARD_REP)
dialogStatus = getDialogStatus(_player, questgiver, DIALOG_STATUS_NONE);
data << uint64(questgiver->GetGUID());
data << uint8(questStatus);
data << uint8(dialogStatus);
++count;
}
}

View file

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