aboutsummaryrefslogtreecommitdiff
path: root/src/game/Map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/Map.h')
-rw-r--r--src/game/Map.h27
1 files changed, 14 insertions, 13 deletions
diff --git a/src/game/Map.h b/src/game/Map.h
index 2ded7cf0975..1765d6d09fa 100644
--- a/src/game/Map.h
+++ b/src/game/Map.h
@@ -10,12 +10,12 @@
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#ifndef TRINITY_MAP_H
@@ -33,6 +33,7 @@
#include "Timer.h"
#include "SharedDefines.h"
#include "GameSystem/GridRefManager.h"
+#include "MapRefManager.h"
#include <bitset>
#include <list>
@@ -126,6 +127,7 @@ typedef UNORDERED_MAP<Creature*, CreatureMover> CreatureMoveList;
class TRINITY_DLL_SPEC Map : public GridRefManager<NGridType>, public Trinity::ObjectLevelLockable<Map, ZThread::Mutex>
{
+ friend class MapReference;
public:
Map(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
virtual ~Map();
@@ -237,6 +239,14 @@ class TRINITY_DLL_SPEC Map : public GridRefManager<NGridType>, public Trinity::O
Creature* GetCreatureInMap(uint64 guid);
GameObject* GetGameObjectInMap(uint64 guid);
+ bool HavePlayers() const { return !m_mapRefManager.isEmpty(); }
+ uint32 GetPlayersCountExceptGMs() const;
+ bool PlayersNearGrid(uint32 x,uint32 y) const;
+
+ void SendToPlayers(WorldPacket const* data) const;
+
+ typedef MapRefManager PlayerList;
+ PlayerList const& GetPlayers() const { return m_mapRefManager; }
template<class T> void SwitchGridContainers(T* obj, bool active);
private:
void LoadVMap(int pX, int pY);
@@ -286,6 +296,7 @@ class TRINITY_DLL_SPEC Map : public GridRefManager<NGridType>, public Trinity::O
uint32 i_InstanceId;
uint32 m_unloadTimer;
+ MapRefManager m_mapRefManager;
private:
typedef GridReadGuard ReadGuard;
typedef GridWriteGuard WriteGuard;
@@ -325,8 +336,6 @@ enum InstanceResetMethod
class TRINITY_DLL_SPEC InstanceMap : public Map
{
public:
- typedef std::list<Player *> PlayerList; // online players only
-
InstanceMap(uint32 id, time_t, uint32 InstanceId, uint8 SpawnMode);
~InstanceMap();
bool Add(Player *);
@@ -337,14 +346,10 @@ class TRINITY_DLL_SPEC InstanceMap : public Map
std::string GetScript() { return i_script; }
InstanceData* GetInstanceData() { return i_data; }
void PermBindAllPlayers(Player *player);
- PlayerList const& GetPlayers() const { return i_Players;}
- void SendToPlayers(WorldPacket const* data) const;
time_t GetResetTime();
void UnloadAll(bool pForce);
bool CanEnter(Player* player);
- uint32 GetPlayersCountExceptGMs() const;
- uint32 HavePlayers() const { return !i_Players.empty(); }
- void SendResetWarnings(uint32 timeLeft);
+ void SendResetWarnings(uint32 timeLeft) const;
void SetResetSchedule(bool on);
private:
bool m_resetAfterUnload;
@@ -359,8 +364,6 @@ class TRINITY_DLL_SPEC InstanceMap : public Map
class TRINITY_DLL_SPEC BattleGroundMap : public Map
{
public:
- typedef std::list<Player *> PlayerList; // online players only
-
BattleGroundMap(uint32 id, time_t, uint32 InstanceId);
~BattleGroundMap();
@@ -369,8 +372,6 @@ class TRINITY_DLL_SPEC BattleGroundMap : public Map
bool CanEnter(Player* player);
void SetUnload();
void UnloadAll(bool pForce);
- private:
- PlayerList i_Players;
};
/*inline