aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Maps/Map.cpp
diff options
context:
space:
mode:
authorJeremy <Golrag@users.noreply.github.com>2023-12-29 14:02:37 +0100
committerfunjoker <funjoker109@gmail.com>2024-01-09 12:20:48 +0100
commitc545216960e68ff835a9fab1ed91711fb9e4a933 (patch)
tree884d0bf7c118792b1f626abd2e5712baa27a4e45 /src/server/game/Maps/Map.cpp
parentf9ba4672d9465c2c521a9edaf7882a0a7bcc4e0d (diff)
Core/Maps: Properly set initial spawn group state for groups that have conditions (#29509)
(cherry picked from commit fb64d7fe8efe5ecba40123cdc96195d3ca52d7c0)
Diffstat (limited to 'src/server/game/Maps/Map.cpp')
-rw-r--r--src/server/game/Maps/Map.cpp10
1 files changed, 10 insertions, 0 deletions
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<uint32> 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<uint32> const* spawnGroups = sObjectMgr->GetSpawnGroupsForMap(GetId());