diff options
| author | megamage <none@none.none> | 2011-11-23 09:34:08 -0500 |
|---|---|---|
| committer | megamage <none@none.none> | 2011-11-23 09:34:08 -0500 |
| commit | 298c162c86130d59c6c60f2fedc7a9b2af034a8d (patch) | |
| tree | a9d678c04646a98aaf715d64252ab56411a1f0fd /src/server/game/Maps/MapInstanced.h | |
| parent | 1b3017472be902ddfb900230ea8efc07132927a1 (diff) | |
Do not allow an instance map to be created twice if it already exists. Fix #4018.
Diffstat (limited to 'src/server/game/Maps/MapInstanced.h')
| -rwxr-xr-x | src/server/game/Maps/MapInstanced.h | 15 |
1 files changed, 6 insertions, 9 deletions
diff --git a/src/server/game/Maps/MapInstanced.h b/src/server/game/Maps/MapInstanced.h index af303ed0e9e..9b714cb7fb3 100755 --- a/src/server/game/Maps/MapInstanced.h +++ b/src/server/game/Maps/MapInstanced.h @@ -39,8 +39,12 @@ class MapInstanced : public Map void UnloadAll(); bool CanEnter(Player* player); - Map* CreateInstance(const uint32 mapId, Player* player); - Map* FindMap(uint32 InstanceId) const { return _FindMap(InstanceId); } + Map* CreateInstanceForPlayer(const uint32 mapId, Player* player); + Map* FindInstanceMap(uint32 instanceId) const + { + InstancedMaps::const_iterator i = m_InstancedMaps.find(instanceId); + return(i == m_InstancedMaps.end() ? NULL : i->second); + } bool DestroyInstance(InstancedMaps::iterator &itr); void AddGridMapReference(const GridCoord &p) @@ -60,18 +64,11 @@ class MapInstanced : public Map virtual void InitVisibilityDistance(); private: - InstanceMap* CreateInstance(uint32 InstanceId, InstanceSave* save, Difficulty difficulty); BattlegroundMap* CreateBattleground(uint32 InstanceId, Battleground* bg); InstancedMaps m_InstancedMaps; - Map* _FindMap(uint32 InstanceId) const - { - InstancedMaps::const_iterator i = m_InstancedMaps.find(InstanceId); - return(i == m_InstancedMaps.end() ? NULL : i->second); - } - uint16 GridMapReference[MAX_NUMBER_OF_GRIDS][MAX_NUMBER_OF_GRIDS]; }; #endif |
