[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>
This commit is contained in:
ApoC 2009-08-09 10:59:22 +02:00
parent 5c2ae96e38
commit 6d9448dd7f
12 changed files with 328 additions and 160 deletions

View file

@ -1043,7 +1043,7 @@ void BattleGround::RemovePlayerAtLeave(uint64 guid, bool Transport, bool SendPac
plr->SetBGTeam(0);
if (Transport)
plr->TeleportTo(plr->GetBattleGroundEntryPoint());
plr->TeleportToBGEntryPoint();
sLog.outDetail("BATTLEGROUND: Removed player %s from BattleGround.", plr->GetName());
}