Core/Spawns: Exclude spawn groups with MANUAL_SPAWN flag from automatic spawning/despawning with conditions

Port From (https://github.com/TrinityCore/TrinityCore/commit/769591c99ef7bd9c58eacd5c0272387af9a74e4a)
This commit is contained in:
hondacrx
2022-10-03 20:39:18 -04:00
parent e4a18a7d04
commit 0c4e5802cd
+5 -1
View File
@@ -2420,6 +2420,10 @@ namespace Game.Maps
var spawnGroups = Global.ObjectMgr.GetSpawnGroupsForMap(GetId()); var spawnGroups = Global.ObjectMgr.GetSpawnGroupsForMap(GetId());
foreach (uint spawnGroupId in spawnGroups) foreach (uint spawnGroupId in spawnGroups)
{ {
SpawnGroupTemplateData spawnGroupTemplate = GetSpawnGroupData(spawnGroupId);
if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.ManualSpawn))
continue;
bool isActive = IsSpawnGroupActive(spawnGroupId); bool isActive = IsSpawnGroupActive(spawnGroupId);
bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this); bool shouldBeActive = Global.ConditionMgr.IsMapMeetingNotGroupedConditions(ConditionSourceType.SpawnGroup, spawnGroupId, this);
if (isActive == shouldBeActive) if (isActive == shouldBeActive)
@@ -2427,7 +2431,7 @@ namespace Game.Maps
if (shouldBeActive) if (shouldBeActive)
SpawnGroupSpawn(spawnGroupId); SpawnGroupSpawn(spawnGroupId);
else if (GetSpawnGroupData(spawnGroupId).flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure)) else if (spawnGroupTemplate.flags.HasFlag(SpawnGroupFlags.DespawnOnConditionFailure))
SpawnGroupDespawn(spawnGroupId, true); SpawnGroupDespawn(spawnGroupId, true);
else else
SetSpawnGroupInactive(spawnGroupId); SetSpawnGroupInactive(spawnGroupId);