diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/game/Battlefield/Battlefield.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Battlefield/Battlefield.h | 1 | ||||
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 4 |
3 files changed, 11 insertions, 2 deletions
diff --git a/src/server/game/Battlefield/Battlefield.cpp b/src/server/game/Battlefield/Battlefield.cpp index 093fccb5977..bcbdb948708 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -375,6 +375,14 @@ void Battlefield::AskToLeaveQueue(Player* player) m_PlayersInQueue[player->GetTeamId()].erase(player->GetGUID()); } +// Called in WorldSession::HandleHearthAndResurrect +void Battlefield::PlayerAskToLeave(Player* player) +{ + // Player leaving Wintergrasp, teleport to Dalaran. + // ToDo: confirm teleport destination. + player->TeleportTo(571, 5804.1499f, 624.7710f, 647.7670f, 1.6400f); +} + // 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 566029cf9a1..a96b5400ccd 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -309,6 +309,7 @@ class TC_GAME_API Battlefield : public ZoneScript void PlayerAcceptInviteToWar(Player* player); uint32 GetBattleId() const { 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 ffb03708c8e..3ac638c246d 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -1741,9 +1741,9 @@ void WorldSession::HandleHearthAndResurrect(WorldPacket& /*recvData*/) 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; } |