aboutsummaryrefslogtreecommitdiff
path: root/src/game/BattleGroundHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/BattleGroundHandler.cpp')
-rw-r--r--src/game/BattleGroundHandler.cpp39
1 files changed, 33 insertions, 6 deletions
diff --git a/src/game/BattleGroundHandler.cpp b/src/game/BattleGroundHandler.cpp
index caf400f7364..bcd446cadfa 100644
--- a/src/game/BattleGroundHandler.cpp
+++ b/src/game/BattleGroundHandler.cpp
@@ -35,6 +35,11 @@
#include "Object.h"
#include "Opcodes.h"
+// Temporal fix to wintergrasp spirit guides till 3.2
+#include "Wintergrasp.h"
+#include "OutdoorPvPMgr.h"
+// WG end
+
void WorldSession::HandleBattlemasterHelloOpcode( WorldPacket & recv_data )
{
uint64 guid;
@@ -577,8 +582,6 @@ void WorldSession::HandleAreaSpiritHealerQueryOpcode( WorldPacket & recv_data )
sLog.outDebug("WORLD: CMSG_AREA_SPIRIT_HEALER_QUERY");
BattleGround *bg = _player->GetBattleGround();
- if (!bg)
- return;
uint64 guid;
recv_data >> guid;
@@ -590,7 +593,19 @@ void WorldSession::HandleAreaSpiritHealerQueryOpcode( WorldPacket & recv_data )
if(!unit->isSpiritService()) // it's not spirit service
return;
- sBattleGroundMgr.SendAreaSpiritHealerQueryOpcode(_player, bg, guid);
+ if (bg)
+ {
+ sBattleGroundMgr.SendAreaSpiritHealerQueryOpcode(_player, bg, guid);
+ }
+ else
+ { // Wintergrasp Hack till 3.2 and it's implemented as BG
+ if (GetPlayer()->GetZoneId() == 4197)
+ {
+ OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ if (pvpWG && pvpWG->isWarTime())
+ pvpWG->SendAreaSpiritHealerQueryOpcode(_player, guid);
+ }
+ }
}
void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
@@ -598,8 +613,6 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
sLog.outDebug("WORLD: CMSG_AREA_SPIRIT_HEALER_QUEUE");
BattleGround *bg = _player->GetBattleGround();
- if (!bg)
- return;
uint64 guid;
recv_data >> guid;
@@ -611,7 +624,21 @@ void WorldSession::HandleAreaSpiritHealerQueueOpcode( WorldPacket & recv_data )
if(!unit->isSpiritService()) // it's not spirit service
return;
- bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
+ if (bg)
+ {
+ bg->AddPlayerToResurrectQueue(guid, _player->GetGUID());
+ }
+ else
+ { // Wintergrasp Hack till 3.2 and it's implemented as BG
+ if (GetPlayer()->GetZoneId() == 4197)
+ {
+ OPvPWintergrasp *pvpWG = (OPvPWintergrasp*)sOutdoorPvPMgr.GetOutdoorPvPToZoneId(4197);
+ if (pvpWG && pvpWG->isWarTime())
+ pvpWG->AddPlayerToResurrectQueue(guid, _player->GetGUID());
+ }
+ }
+
+
}
void WorldSession::HandleBattlemasterJoinArena( WorldPacket & recv_data )