diff options
author | SnapperRy <snapperryen@gmail.com> | 2016-10-04 19:13:11 +0200 |
---|---|---|
committer | joschiwald <joschiwald.trinity@gmail.com> | 2017-03-05 01:37:22 +0100 |
commit | ba93c3b2a9fb1779159d57628d1b9cb613c590d2 (patch) | |
tree | 1729d58d9b7e71bf0d316bf490e50c195d355607 /src | |
parent | 0aa3aeebae61fa352a7cb22c33b3954e80a4a6d7 (diff) |
Core/Wintergrasp: fix leaving Wintergrasp via the minimap button.
(cherry picked from commit b60db6c44ec892c8d5efcf844afeb8bb57208e1b)
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/BattleGroundHandler.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 152b73e4cee..3fbed11879d 100644 --- a/src/server/game/Battlefield/Battlefield.cpp +++ b/src/server/game/Battlefield/Battlefield.cpp @@ -373,6 +373,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 bce330b7eff..388c55d7017 100644 --- a/src/server/game/Battlefield/Battlefield.h +++ b/src/server/game/Battlefield/Battlefield.h @@ -323,6 +323,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/BattleGroundHandler.cpp b/src/server/game/Handlers/BattleGroundHandler.cpp index 56fcbb8bcd7..eccb616a4e4 100644 --- a/src/server/game/Handlers/BattleGroundHandler.cpp +++ b/src/server/game/Handlers/BattleGroundHandler.cpp @@ -677,9 +677,9 @@ void WorldSession::HandleHearthAndResurrect(WorldPackets::Battleground::HearthAn 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; } |