From 4f4775a31bd6f6aa8e3896100aeded0f23c7169d Mon Sep 17 00:00:00 2001 From: megamage Date: Wed, 12 Aug 2009 20:27:00 -0500 Subject: [8339] Improved storing/restoring BG entry point * Introduced new table character_battleground_data * Entry point is now stored on BG enter event not join event * Entry point for dungeons is now correctly set to nearest graveyard (this prevent well known assert in GetInstance because of porting to already destroyed instance) * Teleporting from BG correctly restore mount state * Teleporting from BG correctly restore taxi flight (in multipath flight you will end up in nearest transition point on the route) Signed-off-by: ApoC --HG-- branch : trunk --- src/game/Level1.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/game/Level1.cpp') diff --git a/src/game/Level1.cpp b/src/game/Level1.cpp index 275dd5b1e8c..d2eeb42971c 100644 --- a/src/game/Level1.cpp +++ b/src/game/Level1.cpp @@ -822,7 +822,7 @@ bool ChatHandler::HandleNamegoCommand(const char* args) // when porting out from the bg, it will be reset to 0 target->SetBattleGroundId(m_session->GetPlayer()->GetBattleGroundId(), m_session->GetPlayer()->GetBattleGroundTypeId()); // remember current position as entry point for return at bg end teleportation - target->SetBattleGroundEntryPoint(target->GetMapId(),target->GetPositionX(),target->GetPositionY(),target->GetPositionZ(),target->GetOrientation()); + target->SetBattleGroundEntryPoint(); } else if (pMap->IsDungeon()) { @@ -936,7 +936,7 @@ bool ChatHandler::HandleGonameCommand(const char* args) // when porting out from the bg, it will be reset to 0 _player->SetBattleGroundId(target->GetBattleGroundId(), target->GetBattleGroundTypeId()); // remember current position as entry point for return at bg end teleportation - _player->SetBattleGroundEntryPoint(_player->GetMapId(),_player->GetPositionX(),_player->GetPositionY(),_player->GetPositionZ(),_player->GetOrientation()); + _player->SetBattleGroundEntryPoint(); } else if(cMap->IsDungeon()) { -- cgit v1.2.3