From c545216960e68ff835a9fab1ed91711fb9e4a933 Mon Sep 17 00:00:00 2001 From: Jeremy Date: Fri, 29 Dec 2023 14:02:37 +0100 Subject: Core/Maps: Properly set initial spawn group state for groups that have conditions (#29509) (cherry picked from commit fb64d7fe8efe5ecba40123cdc96195d3ca52d7c0) --- src/server/game/Maps/Map.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/server/game/Maps/Map.cpp') diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 43dec1baa5a..9e6560f648e 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2452,6 +2452,16 @@ bool Map::IsSpawnGroupActive(uint32 groupId) const return (_toggledSpawnGroupIds.find(groupId) != _toggledSpawnGroupIds.end()) != !(data->flags & SPAWNGROUP_FLAG_MANUAL_SPAWN); } +void Map::InitSpawnGroupState() +{ + std::vector const* spawnGroups = sObjectMgr->GetSpawnGroupsForMap(GetId()); + if (!spawnGroups) + return; + + for (uint32 spawnGroupId : *spawnGroups) + SetSpawnGroupActive(spawnGroupId, sConditionMgr->IsMapMeetingNotGroupedConditions(CONDITION_SOURCE_TYPE_SPAWN_GROUP, spawnGroupId, this)); +} + void Map::UpdateSpawnGroupConditions() { std::vector const* spawnGroups = sObjectMgr->GetSpawnGroupsForMap(GetId()); -- cgit v1.2.3