diff options
Diffstat (limited to 'src/game/MovementHandler.cpp')
-rw-r--r-- | src/game/MovementHandler.cpp | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/src/game/MovementHandler.cpp b/src/game/MovementHandler.cpp index 58bc5004e1f..18e84092ddf 100644 --- a/src/game/MovementHandler.cpp +++ b/src/game/MovementHandler.cpp @@ -70,11 +70,14 @@ void WorldSession::HandleMoveWorldportAckOpcode() Map * newMap = MapManager::Instance().CreateMap(loc.mapid, GetPlayer()); if (!newMap) { - sLog.outCrash("map %d could not be created for player "UI64FMTD, loc.mapid, GetPlayer()->GetGUID()); - assert (false); + sLog.outError("Map %d could not be created for player %d, porting player to homebind", loc.mapid, GetPlayer()->GetGUIDLow()); + GetPlayer()->RelocateToHomebind(); + newMap = MapManager::Instance().CreateMap(GetPlayer()->GetMapId(), GetPlayer()); } + else + GetPlayer()->Relocate(loc.coord_x, loc.coord_y, loc.coord_z, loc.orientation); + GetPlayer()->SetMap(newMap); - GetPlayer()->Relocate(loc.coord_x, loc.coord_y, loc.coord_z, loc.orientation); GetPlayer()->SendInitialPacketsBeforeAddToMap(); // the CanEnter checks are done in TeleporTo but conditions may change |