diff options
| author | Traesh <Traesh@users.noreply.github.com> | 2022-02-16 23:54:26 +0100 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-02-16 23:54:26 +0100 |
| commit | 543a7b79c3e5259ed3da413a6d91f00dfd85977e (patch) | |
| tree | da6ab6007675f5213ea3d12f7c9c9a9a624f9813 /src/server/game/Maps | |
| parent | 64e8e11377c9b0bf92e81afb38e0668ba3fdf3f4 (diff) | |
Core/Maps: Add Map::DoOnPlayers helper function (#25233)
Diffstat (limited to 'src/server/game/Maps')
| -rw-r--r-- | src/server/game/Maps/Map.h | 9 |
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); |
