aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Battlefield/Battlefield.cpp8
-rw-r--r--src/server/game/Battlefield/Battlefield.h1
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp4
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;
}