aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2009-02-10 01:06:39 -0600
committermegamage <none@none>2009-02-10 01:06:39 -0600
commit58374f87b4b3eb2f92dfa8f28969b187a544e6b2 (patch)
tree53d2a174bf3c373c85e1e811c0a9caf8a50a9674 /src/game/Map.cpp
parentba7a8cc836d614f98f5284205c6504aba4a16067 (diff)
[7254] Cleanups and batter checking in homebind/bgEntryPoint code.
* Load homebind data early in Player::LoadFromDB and use instead initital race points in cases need some safe point if current coordinate broken by some reason. * Store BG entry point in to WorldLocation and simplify calls. * Set bg entry point at GM teleports to battleground for correct auto-recall position at battleground end. Author: VladimirMangos --HG-- branch : trunk
Diffstat (limited to 'src/game/Map.cpp')
-rw-r--r--src/game/Map.cpp14
1 files changed, 8 insertions, 6 deletions
diff --git a/src/game/Map.cpp b/src/game/Map.cpp
index 805724d49ec..8a05d4d8380 100644
--- a/src/game/Map.cpp
+++ b/src/game/Map.cpp
@@ -2147,12 +2147,14 @@ void BattleGroundMap::UnloadAll(bool pForce)
{
while(HavePlayers())
{
- Player * plr = m_mapRefManager.getFirst()->getSource();
- if(plr) (plr)->TeleportTo(plr->m_homebindMapId, plr->m_homebindX, plr->m_homebindY, plr->m_homebindZ, plr->GetOrientation());
- // TeleportTo removes the player from this map (if the map exists) -> calls BattleGroundMap::Remove -> invalidates the iterator.
- // just in case, remove the player from the list explicitly here as well to prevent a possible infinite loop
- // note that this remove is not needed if the code works well in other places
- plr->GetMapRef().unlink();
+ if(Player * plr = m_mapRefManager.getFirst()->getSource())
+ {
+ plr->TeleportTo(plr->GetBattleGroundEntryPoint());
+ // TeleportTo removes the player from this map (if the map exists) -> calls BattleGroundMap::Remove -> invalidates the iterator.
+ // just in case, remove the player from the list explicitly here as well to prevent a possible infinite loop
+ // note that this remove is not needed if the code works well in other places
+ plr->GetMapRef().unlink();
+ }
}
Map::UnloadAll(pForce);