aboutsummaryrefslogtreecommitdiff
path: root/src/game/MovementHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/MovementHandler.cpp')
-rw-r--r--src/game/MovementHandler.cpp9
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