Core/Races: Really fix bug in racemasks.
This commit is contained in:
@@ -278,6 +278,27 @@ namespace Framework.Constants
|
||||
MaxVisibilityDistance
|
||||
};
|
||||
|
||||
static int[] raceBits =
|
||||
{
|
||||
0, 0, 1, 2, 3, 4, 5, 6, 7, 8,
|
||||
9, 10, -1, -1, -1, -1, -1, -1, -1, -1,
|
||||
-1, -1, 21, -1, 23, 24, 25, 26, 27, 28,
|
||||
29, 30, 31, -1, 11, 12, 13, 14
|
||||
};
|
||||
|
||||
|
||||
public static ulong RaceMaskAllPlayable = (ulong)(GetMaskForRace(Race.Human) | GetMaskForRace(Race.Orc) | GetMaskForRace(Race.Dwarf) | GetMaskForRace(Race.NightElf) | GetMaskForRace(Race.Undead)
|
||||
| GetMaskForRace(Race.Tauren) | GetMaskForRace(Race.Gnome) | GetMaskForRace(Race.Troll) | GetMaskForRace(Race.BloodElf) | GetMaskForRace(Race.Draenei)
|
||||
| GetMaskForRace(Race.Goblin) | GetMaskForRace(Race.Worgen) | GetMaskForRace(Race.PandarenNeutral) | GetMaskForRace(Race.PandarenAlliance) | GetMaskForRace(Race.PandarenHorde)
|
||||
| GetMaskForRace(Race.Nightborne) | GetMaskForRace(Race.HighmountainTauren) | GetMaskForRace(Race.VoidElf) | GetMaskForRace(Race.LightforgedDraenei) | GetMaskForRace(Race.ZandalariTroll)
|
||||
| GetMaskForRace(Race.KulTiran) | GetMaskForRace(Race.DarkIronDwarf) | GetMaskForRace(Race.Vulpera) | GetMaskForRace(Race.MagharOrc) | GetMaskForRace(Race.MechaGnome));
|
||||
|
||||
public static ulong RaceMaskAlliance = (ulong)(GetMaskForRace(Race.Human) | GetMaskForRace(Race.Dwarf) | GetMaskForRace(Race.NightElf) | GetMaskForRace(Race.Gnome)
|
||||
| GetMaskForRace(Race.Draenei) | GetMaskForRace(Race.Worgen) | GetMaskForRace(Race.PandarenAlliance) | GetMaskForRace(Race.VoidElf) | GetMaskForRace(Race.LightforgedDraenei)
|
||||
| GetMaskForRace(Race.KulTiran) | GetMaskForRace(Race.DarkIronDwarf) | GetMaskForRace(Race.MechaGnome));
|
||||
|
||||
public static ulong RaceMaskHorde = RaceMaskAllPlayable & ~RaceMaskAlliance;
|
||||
|
||||
//Todo move these else where
|
||||
/// <summary>
|
||||
/// Method Const
|
||||
@@ -375,6 +396,11 @@ namespace Framework.Constants
|
||||
{
|
||||
return locale < Locale.Total && locale != Locale.None;
|
||||
}
|
||||
|
||||
public static long GetMaskForRace(Race raceId)
|
||||
{
|
||||
return raceId < Race.Max && raceBits[(int)raceId] >= 0 && raceBits[(int)raceId] < 64 ? (1 << raceBits[(int)raceId]) : 0;
|
||||
}
|
||||
}
|
||||
|
||||
public enum Locale
|
||||
@@ -565,23 +591,9 @@ namespace Framework.Constants
|
||||
Vulpera = 35,
|
||||
MagharOrc = 36,
|
||||
MechaGnome = 37,
|
||||
Max,
|
||||
Max
|
||||
}
|
||||
|
||||
public enum RaceMask : ulong
|
||||
{
|
||||
AllPlayable = ((1 << (Race.Human - 1)) | (1 << (Race.Orc - 1)) | (1 << (Race.Dwarf - 1)) | (1 << (Race.NightElf - 1)) | (1 << (Race.Undead - 1))
|
||||
| (1 << (Race.Tauren - 1)) | (1 << (Race.Gnome - 1)) | (1 << (Race.Troll - 1)) | (1 << (Race.BloodElf - 1)) | (1 << (Race.Draenei - 1))
|
||||
| (1 << (Race.Goblin - 1)) | (1 << (Race.Worgen - 1)) | (1 << (Race.PandarenNeutral - 1)) | (1 << (Race.PandarenAlliance - 1)) | (1 << (Race.PandarenHorde - 1))
|
||||
| (1 << (Race.Nightborne - 1)) | (1 << (Race.HighmountainTauren - 1)) | (1 << (Race.VoidElf - 1)) | (1 << (Race.LightforgedDraenei - 1)) | (1 << (Race.ZandalariTroll - 1))
|
||||
| (1ul << (Race.KulTiran - 1)) | (1ul << (Race.DarkIronDwarf - 1)) | (1ul << (Race.Vulpera - 1)) | (1ul << (Race.MagharOrc - 1)) | (1ul << (Race.MechaGnome - 1))),
|
||||
|
||||
Alliance = ((1 << (Race.Human - 1)) | (1 << (Race.Dwarf - 1)) | (1 << (Race.NightElf - 1)) | (1 << (Race.Gnome - 1))
|
||||
| (1 << (Race.Draenei - 1)) | (1 << (Race.Worgen - 1)) | (1 << (Race.PandarenAlliance - 1)) | (1 << (Race.VoidElf - 1)) | (1 << (Race.LightforgedDraenei - 1))
|
||||
| (1ul << (Race.KulTiran - 1)) | (1ul << (Race.DarkIronDwarf - 1)) | (1ul << (Race.MechaGnome - 1))),
|
||||
|
||||
Horde = AllPlayable & ~Alliance
|
||||
}
|
||||
public enum Expansion
|
||||
{
|
||||
LevelCurrent = -1,
|
||||
|
||||
Reference in New Issue
Block a user