mirror of
https://github.com/mangosfour/server.git
synced 2025-12-13 04:37:00 +00:00
[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:
parent
2760e7d353
commit
c0be5c0926
2 changed files with 65 additions and 60 deletions
|
|
@ -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;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "10031"
|
||||
#define REVISION_NR "10032"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue