mirror of
https://github.com/mangosfour/server.git
synced 2025-12-15 10:37:02 +00:00
Allow constant only access to m_mapRefManager using Map::GetPlayers()
This commit is contained in:
parent
fc0e3e87a8
commit
5439dd0fd4
3 changed files with 8 additions and 8 deletions
|
|
@ -1783,9 +1783,9 @@ void InstanceMap::UnloadAll(bool pForce)
|
||||||
Map::UnloadAll(pForce);
|
Map::UnloadAll(pForce);
|
||||||
}
|
}
|
||||||
|
|
||||||
void InstanceMap::SendResetWarnings(uint32 timeLeft)
|
void InstanceMap::SendResetWarnings(uint32 timeLeft) const
|
||||||
{
|
{
|
||||||
for(MapRefManager::iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
|
for(MapRefManager::const_iterator itr = m_mapRefManager.begin(); itr != m_mapRefManager.end(); ++itr)
|
||||||
itr->getSource()->SendInstanceResetWarning(GetId(), timeLeft);
|
itr->getSource()->SendInstanceResetWarning(GetId(), timeLeft);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -125,6 +125,7 @@ typedef UNORDERED_MAP<Creature*, CreatureMover> CreatureMoveList;
|
||||||
|
|
||||||
class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::ObjectLevelLockable<Map, ZThread::Mutex>
|
class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::ObjectLevelLockable<Map, ZThread::Mutex>
|
||||||
{
|
{
|
||||||
|
friend class MapReference;
|
||||||
public:
|
public:
|
||||||
Map(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
|
Map(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
|
||||||
virtual ~Map();
|
virtual ~Map();
|
||||||
|
|
@ -240,8 +241,8 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj
|
||||||
|
|
||||||
void SendToPlayers(WorldPacket const* data) const;
|
void SendToPlayers(WorldPacket const* data) const;
|
||||||
|
|
||||||
MapRefManager m_mapRefManager;
|
typedef MapRefManager PlayerList;
|
||||||
|
PlayerList const& GetPlayers() const { return m_mapRefManager; }
|
||||||
private:
|
private:
|
||||||
void LoadVMap(int pX, int pY);
|
void LoadVMap(int pX, int pY);
|
||||||
void LoadMap(uint32 mapid, uint32 instanceid, int x,int y);
|
void LoadMap(uint32 mapid, uint32 instanceid, int x,int y);
|
||||||
|
|
@ -290,6 +291,7 @@ class MANGOS_DLL_SPEC Map : public GridRefManager<NGridType>, public MaNGOS::Obj
|
||||||
uint32 i_InstanceId;
|
uint32 i_InstanceId;
|
||||||
uint32 m_unloadTimer;
|
uint32 m_unloadTimer;
|
||||||
|
|
||||||
|
MapRefManager m_mapRefManager;
|
||||||
private:
|
private:
|
||||||
typedef GridReadGuard ReadGuard;
|
typedef GridReadGuard ReadGuard;
|
||||||
typedef GridWriteGuard WriteGuard;
|
typedef GridWriteGuard WriteGuard;
|
||||||
|
|
@ -329,8 +331,6 @@ enum InstanceResetMethod
|
||||||
class MANGOS_DLL_SPEC InstanceMap : public Map
|
class MANGOS_DLL_SPEC InstanceMap : public Map
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
typedef std::list<Player *> PlayerList; // online players only
|
|
||||||
|
|
||||||
InstanceMap(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
|
InstanceMap(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
|
||||||
~InstanceMap();
|
~InstanceMap();
|
||||||
bool Add(Player *);
|
bool Add(Player *);
|
||||||
|
|
@ -344,7 +344,7 @@ class MANGOS_DLL_SPEC InstanceMap : public Map
|
||||||
time_t GetResetTime();
|
time_t GetResetTime();
|
||||||
void UnloadAll(bool pForce);
|
void UnloadAll(bool pForce);
|
||||||
bool CanEnter(Player* player);
|
bool CanEnter(Player* player);
|
||||||
void SendResetWarnings(uint32 timeLeft);
|
void SendResetWarnings(uint32 timeLeft) const;
|
||||||
void SetResetSchedule(bool on);
|
void SetResetSchedule(bool on);
|
||||||
private:
|
private:
|
||||||
bool m_resetAfterUnload;
|
bool m_resetAfterUnload;
|
||||||
|
|
|
||||||
|
|
@ -336,7 +336,7 @@ uint32 MapManager::GetNumPlayersInInstances()
|
||||||
MapInstanced::InstancedMaps &maps = ((MapInstanced *)map)->GetInstancedMaps();
|
MapInstanced::InstancedMaps &maps = ((MapInstanced *)map)->GetInstancedMaps();
|
||||||
for(MapInstanced::InstancedMaps::iterator mitr = maps.begin(); mitr != maps.end(); ++mitr)
|
for(MapInstanced::InstancedMaps::iterator mitr = maps.begin(); mitr != maps.end(); ++mitr)
|
||||||
if(mitr->second->IsDungeon())
|
if(mitr->second->IsDungeon())
|
||||||
ret += ((InstanceMap*)mitr->second)->m_mapRefManager.getSize();
|
ret += ((InstanceMap*)mitr->second)->GetPlayers().getSize();
|
||||||
}
|
}
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue