diff options
Diffstat (limited to 'src/game/MiscHandler.cpp')
-rw-r--r-- | src/game/MiscHandler.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp index 713daf3a7e3..7881019a7ec 100644 --- a/src/game/MiscHandler.cpp +++ b/src/game/MiscHandler.cpp @@ -862,6 +862,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) missingItem = at->requiredItem2; uint32 missingKey = 0; + uint32 missingHeroicQuest = 0; if(GetPlayer()->GetDifficulty() == DIFFICULTY_HEROIC) { if(at->heroicKey) @@ -872,19 +873,24 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data) } else if(at->heroicKey2 && !GetPlayer()->HasItemCount(at->heroicKey2, 1)) missingKey = at->heroicKey2; + + if(at->heroicQuest && !GetPlayer()->GetQuestRewardStatus(at->heroicQuest)) + missingHeroicQuest = at->heroicQuest; } uint32 missingQuest = 0; if(at->requiredQuest && !GetPlayer()->GetQuestRewardStatus(at->requiredQuest)) missingQuest = at->requiredQuest; - if(missingLevel || missingItem || missingKey || missingQuest) + if(missingLevel || missingItem || missingKey || missingQuest || missingHeroicQuest) { // TODO: all this is probably wrong if(missingItem) SendAreaTriggerMessage(GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), at->requiredLevel, objmgr.GetItemPrototype(missingItem)->Name1); else if(missingKey) GetPlayer()->SendTransferAborted(at->target_mapId, TRANSFER_ABORT_DIFFICULTY, DIFFICULTY_HEROIC); + else if(missingHeroicQuest) + SendAreaTriggerMessage(at->heroicQuestFailedText.c_str()); else if(missingQuest) SendAreaTriggerMessage(at->requiredFailedText.c_str()); else if(missingLevel) |