aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/server/game/Maps/Map.h')
-rw-r--r--src/server/game/Maps/Map.h9
1 files changed, 9 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index fb85b3bdd4e..7f0a4e45853 100644
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -26,6 +26,7 @@
#include "GridDefines.h"
#include "GridRefManager.h"
#include "MapDefines.h"
+#include "MapReference.h"
#include "MapRefManager.h"
#include "MPSCQueue.h"
#include "ObjectGuid.h"
@@ -433,6 +434,14 @@ class TC_GAME_API Map : public GridRefManager<NGridType>
typedef MapRefManager PlayerList;
PlayerList const& GetPlayers() const { return m_mapRefManager; }
+ template <typename T>
+ void DoOnPlayers(T&& fn)
+ {
+ for (MapReference const& ref : GetPlayers())
+ if (Player* player = ref.GetSource())
+ fn(player);
+ }
+
//per-map script storage
void ScriptsStart(std::map<uint32, std::multimap<uint32, ScriptInfo>> const& scripts, uint32 id, Object* source, Object* target);
void ScriptCommandStart(ScriptInfo const& script, uint32 delay, Object* source, Object* target);