Core/Misc: Define and use ChrRacesFlag and CreatureModelDataFlags

Port From (https://github.com/TrinityCore/TrinityCore/commit/d30e4a20e52a5025c59bfc746570ff7ef06af6f4)
This commit is contained in:
hondacrx
2022-02-22 13:49:20 -05:00
parent c9fa7d22fc
commit 8ce8408f91
4 changed files with 58 additions and 8 deletions
+3 -1
View File
@@ -246,7 +246,7 @@ namespace Game.DataStorage
public int Flags;
public int FactionID;
public uint CinematicSequenceID;
public int ResSicknessSpellID;
public uint ResSicknessSpellID;
public int SplashSoundID;
public int Alliance;
public int RaceRelated;
@@ -471,6 +471,8 @@ namespace Game.DataStorage
public sbyte Unknown820_1; // scale related
public float Unknown820_2; // scale related
public float[] Unknown820_3 = new float[2]; // scale related
public CreatureModelDataFlags GetFlags() { return (CreatureModelDataFlags)Flags; }
}
public sealed class CreatureTypeRecord
+1 -1
View File
@@ -1883,7 +1883,7 @@ namespace Game.Entities
public uint GetStartLevel(Race race, Class playerClass, Optional<uint> characterTemplateId = default)
{
uint startLevel = WorldConfig.GetUIntValue(WorldCfg.StartPlayerLevel);
if (CliDB.ChrRacesStorage.LookupByKey(race).GetFlags().HasAnyFlag(ChrRacesFlag.AlliedRace))
if (CliDB.ChrRacesStorage.LookupByKey(race).GetFlags().HasAnyFlag(ChrRacesFlag.IsAlliedRace))
startLevel = WorldConfig.GetUIntValue(WorldCfg.StartAlliedRaceLevel);
if (playerClass == Class.Deathknight)
+2 -2
View File
@@ -301,8 +301,8 @@ namespace Game.Entities
CreatureModelDataRecord model = CliDB.CreatureModelDataStorage.LookupByKey(display.ModelID);
ChrRacesRecord race = CliDB.ChrRacesStorage.LookupByKey(displayExtra.DisplayRaceID);
if (model != null && !Convert.ToBoolean(model.Flags & 0x80))
if (race != null && !Convert.ToBoolean(race.Flags & 0x4))
if (model != null && !model.GetFlags().HasFlag(CreatureModelDataFlags.CanMountWhileTransformedAsThis))
if (race != null && !race.GetFlags().HasFlag(ChrRacesFlag.CanMount))
return true;
return false;