diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Maps/Map.cpp | 11 | ||||
| -rw-r--r-- | src/server/game/Maps/Map.h | 3 | 
2 files changed, 14 insertions, 0 deletions
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 595dbcb529..84e99e0571 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -3757,6 +3757,17 @@ void Map::SetZoneOverrideLight(uint32 zoneId, uint32 lightId, Milliseconds fadeI      }  } +void Map::DoForAllPlayers(std::function<void(Player*)> exec) +{ +    for (auto const& it : GetPlayers()) +    { +        if (Player* player = it.GetSource()) +        { +            exec(player); +        } +    } +} +  /**   * @brief Check if a given source can reach a specific point following a path   * and normalize the coords. Use this method for long paths, otherwise use the diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h index f19e540eb0..bb3618138a 100644 --- a/src/server/game/Maps/Map.h +++ b/src/server/game/Maps/Map.h @@ -606,6 +606,9 @@ public:      void UpdateEncounterState(EncounterCreditType type, uint32 creditEntry, Unit* source);      void LogEncounterFinished(EncounterCreditType type, uint32 creditEntry); +    // Do whatever you want to all the players in map [including GameMasters], i.e.: param exec = [&](Player* p) { p->Whatever(); } +    void DoForAllPlayers(std::function<void(Player*)> exec); +      GridMap* GetGrid(float x, float y);      void EnsureGridCreated(const GridCoord&);      [[nodiscard]] bool AllTransportsEmpty() const; // pussywizard  | 
