diff options
author | megamage <none@none> | 2009-08-12 20:27:00 -0500 |
---|---|---|
committer | megamage <none@none> | 2009-08-12 20:27:00 -0500 |
commit | 4f4775a31bd6f6aa8e3896100aeded0f23c7169d (patch) | |
tree | fe17026bb66f34d231d4b778ea74fdebf4b22e45 /src/game/Level1.cpp | |
parent | ed637fbf1fec965c8eaaf6e41e939107a5ea9aab (diff) |
[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 <apoc@nymfe.net>
--HG--
branch : trunk
Diffstat (limited to 'src/game/Level1.cpp')
-rw-r--r-- | src/game/Level1.cpp | 4 |
1 files changed, 2 insertions, 2 deletions
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()) { |