Core/Creatures: Wrap all creature static flags in a structure

Port From (https://github.com/TrinityCore/TrinityCore/commit/6bcbc786e50390cd64f634c87a5871178dd9b36f)
This commit is contained in:
hondacrx
2023-03-14 02:19:34 -04:00
parent 5a79b3f385
commit ccea9d09df
2 changed files with 44 additions and 33 deletions
@@ -21,14 +21,7 @@ namespace Game.Entities
long _lastDamagedTime; // Part of Evade mechanics
MultiMap<byte, byte> m_textRepeat = new();
CreatureStaticFlags _staticFlags;
CreatureStaticFlags2 _staticFlags2;
CreatureStaticFlags3 _staticFlags3;
CreatureStaticFlags4 _staticFlags4;
CreatureStaticFlags5 _staticFlags5;
CreatureStaticFlags6 _staticFlags6;
CreatureStaticFlags7 _staticFlags7;
CreatureStaticFlags8 _staticFlags8;
CreatureStaticFlagsHolder _staticFlags;
// Regenerate health
bool _regenerateHealth; // Set on creation
@@ -108,4 +101,34 @@ namespace Game.Entities
public ObjectGuid Target; // the creature's "real" target while casting
public float Orientation; // the creature's "real" orientation while casting
}
struct CreatureStaticFlagsHolder
{
CreatureStaticFlags _flags;
CreatureStaticFlags2 _flags2;
CreatureStaticFlags3 _flags3;
CreatureStaticFlags4 _flags4;
CreatureStaticFlags5 _flags5;
CreatureStaticFlags6 _flags6;
CreatureStaticFlags7 _flags7;
CreatureStaticFlags8 _flags8;
public bool HasFlag(CreatureStaticFlags flag) { return _flags.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags2 flag) { return _flags2.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags3 flag) { return _flags3.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags4 flag) { return _flags4.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags5 flag) { return _flags5.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags6 flag) { return _flags6.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags7 flag) { return _flags7.HasFlag(flag); }
public bool HasFlag(CreatureStaticFlags8 flag) { return _flags8.HasFlag(flag); }
public void ApplyFlag(CreatureStaticFlags flag, bool apply) { if (apply) _flags |= flag; else _flags &= ~flag; }
public void ApplyFlag(CreatureStaticFlags2 flag, bool apply) { if (apply) _flags2 |= flag; else _flags2 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags3 flag, bool apply) { if (apply) _flags3 |= flag; else _flags3 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags4 flag, bool apply) { if (apply) _flags4 |= flag; else _flags4 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags5 flag, bool apply) { if (apply) _flags5 |= flag; else _flags5 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags6 flag, bool apply) { if (apply) _flags6 |= flag; else _flags6 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags7 flag, bool apply) { if (apply) _flags7 |= flag; else _flags7 &= ~flag; }
public void ApplyFlag(CreatureStaticFlags8 flag, bool apply) { if (apply) _flags8 |= flag; else _flags8 &= ~flag; }
}
}