aboutsummaryrefslogtreecommitdiff
path: root/src/game/MiscHandler.cpp
diff options
context:
space:
mode:
authorBlaymoira <none@none>2009-01-11 16:47:44 +0100
committerBlaymoira <none@none>2009-01-11 16:47:44 +0100
commitca342a8815f3c99119de6723c3f775baac6849c8 (patch)
tree1b94f263a8f96ca6c38806ba6d8eeb654a2c4145 /src/game/MiscHandler.cpp
parentd719fb27072e8dafb8b650c150cb8660e065388b (diff)
*Implemented requires_heroic_quest_done in areatrigger_teleport - by Anubisss
--HG-- branch : trunk
Diffstat (limited to 'src/game/MiscHandler.cpp')
-rw-r--r--src/game/MiscHandler.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/game/MiscHandler.cpp b/src/game/MiscHandler.cpp
index dcf1f158e92..cfba9a5f7c4 100644
--- a/src/game/MiscHandler.cpp
+++ b/src/game/MiscHandler.cpp
@@ -860,6 +860,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPacket & recv_data)
missingItem = at->requiredItem2;
uint32 missingKey = 0;
+ uint32 missingHeroicQuest = 0;
if(GetPlayer()->GetDifficulty() == DIFFICULTY_HEROIC)
{
if(at->heroicKey)
@@ -870,19 +871,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_DIFFICULTY2);
+ else if(missingHeroicQuest)
+ SendAreaTriggerMessage(at->heroicQuestFailedText.c_str());
else if(missingQuest)
SendAreaTriggerMessage(at->requiredFailedText.c_str());
else if(missingLevel)