Core/Misc: Implemented spawn tracking

Port From (https://github.com/TrinityCore/TrinityCore/commit/c9099c87567ead635811ef71b990ae7f19103509)
This commit is contained in:
Hondacrx
2025-05-25 20:13:24 -04:00
parent 84642c2ccf
commit 2043ac37f9
17 changed files with 953 additions and 44 deletions
+22 -1
View File
@@ -58,7 +58,10 @@ namespace Game.Maps
public ulong SpawnId;
public uint MapId = 0xFFFFFFFF;
public bool dbData = true;
public SpawnGroupTemplateData spawnGroupData = null;
public SpawnGroupTemplateData spawnGroupData;
public SpawnTrackingTemplateData spawnTrackingData;
public uint spawnTrackingQuestObjectiveId;
public SpawnTrackingStateData[] spawnTrackingStates = new SpawnTrackingStateData[(int)SpawnTrackingState.Max];
public static bool TypeInMask(SpawnObjectType type, SpawnObjectTypeMask mask) { return ((1 << (int)type) & (int)mask) != 0; }
public static bool TypeHasData(SpawnObjectType type) { return type < SpawnObjectType.NumSpawnTypesWithData; }
@@ -71,4 +74,22 @@ namespace Game.Maps
public SpawnData ToSpawnData() { return TypeHasData(type) ? (SpawnData)this : null; }
}
public class SpawnTrackingTemplateData
{
public uint SpawnTrackingId;
public uint MapId;
public uint PhaseId;
public uint PhaseGroup;
public byte PhaseUseFlags;
}
public class SpawnTrackingStateData
{
public bool Visible = true;
public uint? StateSpellVisualId;
public ushort? StateAnimId;
public ushort? StateAnimKitId;
public List<uint> StateWorldEffects = new();
}
}