diff options
-rwxr-xr-x | src/server/game/Entities/Player/Player.cpp | 2 | ||||
-rwxr-xr-x | src/server/game/Maps/MapManager.cpp | 8 | ||||
-rwxr-xr-x | src/server/game/Maps/MapManager.h | 12 | ||||
-rwxr-xr-x | src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp | 2 |
4 files changed, 17 insertions, 7 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 84182ad1d25..3585f69fae1 100755 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -2207,7 +2207,7 @@ bool Player::TeleportTo(uint32 mapid, float x, float y, float z, float orientati // If the map is not created, assume it is possible to enter it. // It will be created in the WorldPortAck. - Map* map = sMapMgr->FindBaseMap(mapid); + Map* map = sMapMgr->FindBaseNonInstanceMap(mapid); if (!map || map->CanEnter(this)) { //lets reset near teleport flag if it wasn't reset during chained teleports diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index bb62912d204..1b1aeefb610 100755 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -119,6 +119,14 @@ Map* MapManager::CreateBaseMap(uint32 id) return m; } +Map* MapManager::FindBaseNonInstanceMap(uint32 mapId) const +{ + Map* map = FindBaseMap(mapId); + if(map && map->Instanceable()) + return NULL; + return map; +} + Map* MapManager::CreateMap(uint32 id, Player* player) { Map* m = CreateBaseMap(id); diff --git a/src/server/game/Maps/MapManager.h b/src/server/game/Maps/MapManager.h index 6ce641f81bd..3b168a57cd5 100755 --- a/src/server/game/Maps/MapManager.h +++ b/src/server/game/Maps/MapManager.h @@ -36,11 +36,7 @@ class MapManager public: Map* CreateBaseMap(uint32 mapId); - Map* FindBaseMap(uint32 mapId) const - { - MapMapType::const_iterator iter = i_maps.find(mapId); - return (iter == i_maps.end() ? NULL : iter->second); - } + Map* FindBaseNonInstanceMap(uint32 mapId) const; Map* CreateMap(uint32 mapId, Player* player); Map* FindMap(uint32 mapId, uint32 instanceId) const; @@ -164,6 +160,12 @@ class MapManager MapManager(); ~MapManager(); + Map* FindBaseMap(uint32 mapId) const + { + MapMapType::const_iterator iter = i_maps.find(mapId); + return (iter == i_maps.end() ? NULL : iter->second); + } + MapManager(const MapManager &); MapManager& operator=(const MapManager &); diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp index 48e662d08bf..396b0c489f2 100755 --- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp +++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp @@ -351,7 +351,7 @@ void FlightPathMovementGenerator::InitEndGridInfo() void FlightPathMovementGenerator::PreloadEndGrid() { // used to preload the final grid where the flightmaster is - Map* endMap = sMapMgr->FindBaseMap(m_endMapId); + Map* endMap = sMapMgr->FindBaseNonInstanceMap(m_endMapId); // Load the grid if (endMap) |