[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

@ -476,7 +476,7 @@ void Master::clearOnlineAccounts()
CharacterDatabase.Execute("UPDATE characters SET online = 0 WHERE online<>0");
// Battleground instance ids reset at server restart
CharacterDatabase.Execute("UPDATE characters SET bgid = 0 WHERE bgid<>0");
CharacterDatabase.Execute("UPDATE character_battleground_data SET instance_id = 0");
}
/// Handle termination signals