[8506] Add check for IsAutoComplete() in SendPreparedQuest().

For cases where quest is repeatable but has Method!=0, QuestDetails must be sent instead of RequestItems.
Some additional code cleanup.

Signed-off-by: NoFantasy <nofantasy@nf.no>
This commit is contained in:
NoFantasy 2009-09-16 13:57:47 +02:00
parent 744c6eaac0
commit 00cfea3b46
2 changed files with 19 additions and 17 deletions

View file

@ -12134,6 +12134,7 @@ void Player::PrepareQuestMenu( uint64 guid )
void Player::SendPreparedQuest(uint64 guid) void Player::SendPreparedQuest(uint64 guid)
{ {
QuestMenu& questMenu = PlayerTalkClass->GetQuestMenu(); QuestMenu& questMenu = PlayerTalkClass->GetQuestMenu();
if (questMenu.Empty()) if (questMenu.Empty())
return; return;
@ -12154,8 +12155,9 @@ void Player::SendPreparedQuest( uint64 guid )
PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanRewardQuest(pQuest, false), true); PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanRewardQuest(pQuest, false), true);
else if (status == DIALOG_STATUS_UNK2) else if (status == DIALOG_STATUS_UNK2)
PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanRewardQuest(pQuest, false), true); PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanRewardQuest(pQuest, false), true);
// Send completable on repeatable quest if player don't have quest // Send completable on repeatable and autoCompletable quest if player don't have quest
else if( pQuest->IsRepeatable() && !pQuest->IsDaily() ) // TODO: verify if check for !pQuest->IsDaily() is really correct (possibly not)
else if (pQuest->IsAutoComplete() && pQuest->IsRepeatable() && !pQuest->IsDaily())
PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanCompleteRepeatableQuest(pQuest), true); PlayerTalkClass->SendQuestGiverRequestItems(pQuest, guid, CanCompleteRepeatableQuest(pQuest), true);
else else
PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, guid, true); PlayerTalkClass->SendQuestGiverQuestDetails(pQuest, guid, true);

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 "8505" #define REVISION_NR "8506"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__