diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index 21b532056..6235ef3c0 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -396,6 +396,13 @@ void Battlefield::AskToLeaveQueue(Player* player) m_PlayersInQueue[player->GetTeamId()].erase(player->GetGUID()); } +// Called in WorldSession::HandleHearthAndResurrect +void Battlefield::PlayerAskToLeave(Player* player) +{ + // Player leaving Wintergrasp, trigger Hearthstone spell. + player->CastSpell(player, 8690, true); +} + // Called in WorldSession::HandleBfEntryInviteResponse void Battlefield::PlayerAcceptInviteToWar(Player* player) { diff --git a/src/server/game/Battlefield/Battlefield.h b/src/server/game/Battlefield/Battlefield.h index f6294746b..dfb1d4e52 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -321,6 +321,7 @@ class Battlefield : public ZoneScript void PlayerAcceptInviteToWar(Player* player); uint32 GetBattleId() { return m_BattleId; } void AskToLeaveQueue(Player* player); + void PlayerAskToLeave(Player* player); //virtual void DoCompleteOrIncrementAchievement(uint32 /*achievement*/, Player* /*player*/, uint8 /*incrementNumber = 1*/) {}; diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 95e57a7dd..943419937 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1927,9 +1927,9 @@ void WorldSession::HandleHearthAndResurrect(WorldPacket& /*recv_data*/) if (_player->IsInFlight()) return; - if(/*Battlefield* bf = */sBattlefieldMgr->GetBattlefieldToZoneId(_player->GetZoneId())) + if(Battlefield* bf = sBattlefieldMgr->GetBattlefieldToZoneId(_player->GetZoneId())) { - // bf->PlayerAskToLeave(_player); FIXME + bf->PlayerAskToLeave(_player); return; }