Core/DataStores: Fixed db2 structures after 7.3.5

This commit is contained in:
hondacrx
2018-03-13 15:43:03 -04:00
parent 2199e07955
commit 0ab3b8e8cd
97 changed files with 3139 additions and 1707 deletions
+42 -38
View File
@@ -27,7 +27,7 @@ namespace Game.DataStorage
public LocalizedString Description;
public LocalizedString Reward;
public AchievementFlags Flags;
public short MapID;
public short InstanceID;
public ushort Supercedes;
public ushort Category;
public ushort UiOrder;
@@ -36,7 +36,7 @@ namespace Game.DataStorage
public byte Points;
public byte MinimumCriteria;
public uint Id;
public uint IconFileDataID;
public uint IconFileID;
public ushort CriteriaTree;
}
@@ -62,16 +62,16 @@ namespace Game.DataStorage
public LocalizedString AreaName;
public AreaFlags[] Flags = new AreaFlags[2];
public float AmbientMultiplier;
public ushort MapId;
public ushort ContinentID;
public ushort ParentAreaID;
public short AreaBit;
public ushort AmbienceID;
public ushort ZoneMusic;
public ushort IntroSound;
public ushort[] LiquidTypeID = new ushort[4];
public ushort UWZoneMusic;
public ushort UWAmbience;
public ushort PvPCombastWorldStateID;
public ushort UwZoneMusic;
public ushort UwAmbience;
public ushort PvpCombastWorldStateID;
public byte SoundProviderPref;
public byte SoundProviderPrefUnderwater;
public byte ExplorationLevel;
@@ -80,11 +80,11 @@ namespace Game.DataStorage
public byte WildBattlePetLevelMin;
public byte WildBattlePetLevelMax;
public byte WindSettingsID;
public byte UWIntroSound;
public byte UwIntroSound;
public bool IsSanctuary()
{
if (MapId == 609)
if (ContinentID == 609)
return true;
return Flags[0].HasAnyFlag(AreaFlags.Sanctuary);
@@ -99,7 +99,7 @@ namespace Game.DataStorage
public float BoxWidth;
public float BoxHeight;
public float BoxYaw;
public ushort MapID;
public ushort ContinentID;
public ushort PhaseID;
public ushort PhaseGroupID;
public ushort ShapeID;
@@ -113,18 +113,22 @@ namespace Game.DataStorage
public sealed class ArmorLocationRecord
{
public uint Id;
public float[] Modifier = new float[5];
public float Clothmodifier;
public float Leathermodifier;
public float Chainmodifier;
public float Platemodifier;
public float Modifier;
}
public sealed class ArtifactRecord
{
public uint Id;
public LocalizedString Name;
public uint BarConnectedColor;
public uint BarDisconnectedColor;
public uint TitleColor;
public ushort ClassUiTextureKitID;
public ushort SpecID;
public uint UiBarOverlayColor;
public uint UiBarBackgroundColor;
public uint UiNameColor;
public ushort UiTextureKitID;
public ushort ChrSpecializationID;
public byte ArtifactCategoryID;
public byte Flags;
public byte UiModelSceneID;
@@ -134,30 +138,30 @@ namespace Game.DataStorage
public sealed class ArtifactAppearanceRecord
{
public LocalizedString Name;
public uint SwatchColor;
public float ModelDesaturation;
public float ModelAlpha;
public uint ShapeshiftDisplayID;
public uint UiSwatchColor;
public float UiModelSaturation;
public float UiModelOpacity;
public uint OverrideShapeshiftDisplayID;
public ushort ArtifactAppearanceSetID;
public ushort Unknown;
public ushort UiCameraID;
public byte DisplayIndex;
public byte AppearanceModID;
public byte ItemAppearanceModifierID;
public byte Flags;
public byte ModifiesShapeshiftFormDisplay;
public byte OverrideShapeshiftFormID;
public uint Id;
public ushort PlayerConditionID;
public byte ItemAppearanceID;
public byte AltItemAppearanceID;
public ushort UnlockPlayerConditionID;
public byte UiItemAppearanceID;
public byte UiAltItemAppearanceID;
}
public sealed class ArtifactAppearanceSetRecord
{
public LocalizedString Name;
public LocalizedString Name2;
public LocalizedString Description;
public ushort UiCameraID;
public ushort AltHandUICameraID;
public byte DisplayIndex;
public byte AttachmentPoint;
public byte ForgeAttachmentOverride;
public byte Flags;
public uint Id;
public uint ArtifactID;
@@ -166,8 +170,8 @@ namespace Game.DataStorage
public sealed class ArtifactCategoryRecord
{
public uint Id;
public ushort ArtifactKnowledgeCurrencyID;
public ushort ArtifactKnowledgeMultiplierCurveID;
public ushort XpMultCurrencyID;
public ushort XpMultCurveID;
}
public sealed class ArtifactPowerRecord
@@ -175,17 +179,17 @@ namespace Game.DataStorage
public Vector2 Pos;
public byte ArtifactID;
public ArtifactPowerFlag Flags;
public byte MaxRank;
public byte ArtifactTier;
public byte MaxPurchasableRank;
public byte Tier;
public uint Id;
public byte RelicType;
public byte Label;
}
public sealed class ArtifactPowerLinkRecord
{
public uint Id;
public ushort FromArtifactPowerID;
public ushort ToArtifactPowerID;
public ushort PowerA;
public ushort PowerB;
}
public sealed class ArtifactPowerPickerRecord
@@ -198,16 +202,16 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
public float Value;
public ushort Unknown;
public byte Rank;
public float AuraPointsOverride;
public ushort ItemBonusListID;
public byte RankIndex;
public uint ArtifactPowerID;
}
public sealed class ArtifactQuestXPRecord
{
public uint Id;
public uint[] Exp = new uint[10];
public uint[] Difficulty = new uint[10];
}
public sealed class AuctionHouseRecord
+21 -21
View File
@@ -46,16 +46,16 @@ namespace Game.DataStorage
public sealed class BattlePetBreedQualityRecord
{
public uint Id;
public float Modifier;
public byte Quality;
public float StateMultiplier;
public byte QualityEnum;
}
public sealed class BattlePetBreedStateRecord
{
public uint Id;
public short Value;
public byte State;
public uint BreedID;
public ushort Value;
public byte BattlePetStateID;
public uint BattlePetBreedID;
}
public sealed class BattlePetSpeciesRecord
@@ -63,22 +63,22 @@ namespace Game.DataStorage
public LocalizedString SourceText;
public LocalizedString Description;
public uint CreatureID;
public uint IconFileID;
public uint IconFileDataID;
public uint SummonSpellID;
public ushort Flags;
public byte PetType;
public sbyte Source;
public byte PetTypeEnum;
public sbyte SourceTypeEnum;
public uint Id;
public byte CardModelSceneID;
public byte LoadoutModelSceneID;
public byte CardUIModelSceneID;
public byte LoadoutUIModelSceneID;
}
public sealed class BattlePetSpeciesStateRecord
{
public uint Id;
public int Value;
public byte State;
public uint SpeciesID;
public byte BattlePetStateID;
public uint BattlePetSpeciesID;
}
public sealed class BattlemasterListRecord
@@ -88,10 +88,10 @@ namespace Game.DataStorage
public LocalizedString GameType;
public LocalizedString ShortDescription;
public LocalizedString LongDescription;
public uint IconFileDataID;
public int IconFileDataID;
public short[] MapId = new short[16];
public ushort HolidayWorldState;
public ushort PlayerConditionId;
public ushort RequiredPlayerConditionID;
public byte InstanceType;
public byte GroupsAllowed;
public byte MaxGroupSize;
@@ -106,14 +106,14 @@ namespace Game.DataStorage
public sealed class BroadcastTextRecord
{
public uint Id;
public LocalizedString MaleText;
public LocalizedString FemaleText;
public LocalizedString Text;
public LocalizedString Text1;
public ushort[] EmoteID = new ushort[3];
public ushort[] EmoteDelay = new ushort[3];
public ushort UnkEmoteID;
public byte Language;
public byte Type;
public uint PlayerConditionID;
public uint[] SoundID = new uint[2];
public ushort EmotesID;
public byte LanguageID;
public byte Flags;
public uint ConditionID;
public uint[] SoundEntriesID = new uint[2];
}
}
+72 -74
View File
@@ -23,7 +23,7 @@ namespace Game.DataStorage
public sealed class CharacterFacialHairStylesRecord
{
public uint ID;
public uint[] Geoset = new uint[5];
public int[] Geoset = new int[5];
public byte RaceID;
public byte SexID;
public byte VariationID;
@@ -32,16 +32,16 @@ namespace Game.DataStorage
public sealed class CharBaseSectionRecord
{
public uint ID;
public CharBaseSectionVariation Variation;
public byte ResolutionVariation;
public byte Resolution;
public CharBaseSectionVariation VariationEnum;
public byte ResolutionVariationEnum;
public byte LayoutResType;
}
public sealed class CharSectionsRecord
{
public uint Id;
public uint[] TextureFileDataID = new uint[3];
public ushort Flags;
public uint[] MaterialResourcesID = new uint[3];
public short Flags;
public byte RaceID;
public byte SexID;
public byte BaseSection;
@@ -55,7 +55,7 @@ namespace Game.DataStorage
public int[] ItemID = new int[24];
public uint PetDisplayID;
public byte ClassID;
public byte GenderID;
public byte SexID;
public byte OutfitID;
public byte PetFamilyID;
public uint RaceID;
@@ -64,10 +64,10 @@ namespace Game.DataStorage
public sealed class CharTitlesRecord
{
public uint Id;
public LocalizedString NameMale;
public LocalizedString NameFemale;
public LocalizedString Name;
public LocalizedString Name1;
public ushort MaskID;
public byte Flags;
public sbyte Flags;
}
public sealed class ChatChannelsRecord
@@ -76,7 +76,7 @@ namespace Game.DataStorage
public LocalizedString Name;
public LocalizedString Shortcut;
public ChannelDBCFlags Flags;
public byte FactionGroup;
public sbyte FactionGroup;
}
public sealed class ChrClassesRecord
@@ -88,18 +88,18 @@ namespace Game.DataStorage
public uint FileName;
public uint CreateScreenFileDataID;
public uint SelectScreenFileDataID;
public uint IconFileDataID;
public uint LowResScreenFileDataID;
public uint StartingLevel;
public uint IconFileDataID;
public int StartingLevel;
public ushort Flags;
public ushort CinematicSequenceID;
public ushort DefaultSpec;
public PowerType PowerType;
public PowerType DisplayPower;
public byte SpellClassSet;
public byte AttackPowerPerStrength;
public byte AttackPowerPerAgility;
public byte RangedAttackPowerPerAgility;
public byte Unk1;
public byte PrimaryStatPriority;
public uint Id;
}
@@ -116,57 +116,57 @@ namespace Game.DataStorage
public uint ClientFileString;
public LocalizedString Name;
public string NameFemale;
public string LowercaseName;
public string LowercaseNameFemale;
public uint Flags;
public uint MaleDisplayID;
public uint FemaleDisplayID;
public uint CreateScreenFileDataID;
public uint SelectScreenFileDataID;
public uint[] MaleCustomizeOffset = new uint[3];
public uint[] FemaleCustomizeOffset = new uint[3];
public uint LowResScreenFileDataID;
public uint StartingLevel;
public uint UIDisplayOrder;
public string NameLowercase;
public string NameFemaleLowercase;
public int Flags;
public uint MaleDisplayId;
public uint FemaleDisplayId;
public int CreateScreenFileDataID;
public int SelectScreenFileDataID;
public float[] MaleCustomizeOffset = new float[3];
public float[] FemaleCustomizeOffset = new float[3];
public int LowResScreenFileDataID;
public int StartingLevel;
public int UiDisplayOrder;
public ushort FactionID;
public ushort ResSicknessSpellID;
public ushort SplashSoundID;
public short ResSicknessSpellID;
public short SplashSoundID;
public ushort CinematicSequenceID;
public byte BaseLanguage;
public byte CreatureType;
public byte TeamID;
public byte RaceRelated;
public byte UnalteredVisualRaceID;
public byte CharComponentTextureLayoutID;
public byte DefaultClassID;
public byte NeutralRaceID;
public byte ItemAppearanceFrameRaceID;
public byte CharComponentTexLayoutHiResID;
public sbyte BaseLanguage;
public sbyte CreatureType;
public sbyte Alliance;
public sbyte RaceRelated;
public sbyte UnalteredVisualRaceID;
public sbyte CharComponentTextureLayoutID;
public sbyte DefaultClassID;
public sbyte NeutralRaceID;
public sbyte DisplayRaceID;
public sbyte CharComponentTexLayoutHiResID;
public uint Id;
public uint HighResMaleDisplayID;
public uint HighResFemaleDisplayID;
public uint HeritageArmorAchievementID;
public uint MaleCorpseBonesModelFileDataID;
public uint FemaleCorpseBonesModelFileDataID;
public uint[] AlteredFormTransitionSpellVisualID = new uint[3];
public uint[] AlteredFormTransitionSpellVisualKitID = new uint[3];
public uint HighResMaleDisplayId;
public uint HighResFemaleDisplayId;
public int HeritageArmorAchievementID;
public int MaleSkeletonFileDataID;
public int FemaleSkeletonFileDataID;
public uint[] AlteredFormStartVisualKitID = new uint[3];
public uint[] AlteredFormFinishVisualKitID = new uint[3];
}
public sealed class ChrSpecializationRecord
{
public string Name;
public string Name2;
public string FemaleName;
public string Description;
public uint[] MasterySpellID = new uint[PlayerConst.MaxMasterySpells];
public byte ClassID;
public byte OrderIndex;
public byte PetTalentType;
public byte Role;
public byte PrimaryStatOrder;
public byte PrimaryStatPriority;
public uint Id;
public uint IconFileDataID;
public int SpellIconFileID;
public ChrSpecializationFlag Flags;
public uint AnimReplacementSetID;
public int AnimReplacements;
public bool IsPetSpecialization()
{
@@ -180,7 +180,7 @@ namespace Game.DataStorage
public uint SoundID;
public Vector3 Origin;
public float OriginFacing;
public uint ModelFileDataID;
public uint FileDataID;
}
public sealed class CinematicSequencesRecord
@@ -195,12 +195,12 @@ namespace Game.DataStorage
public uint Id;
public uint BroadcastTextID;
public uint SpellVisualKitID;
public uint Duration;
public ushort NextLineID;
public ushort Unk1;
public byte Yell;
public byte Unk2;
public byte Unk3;
public int AdditionalDuration;
public ushort NextConversationLineID;
public ushort AnimKitID;
public byte SpeechType;
public byte StartAnimation;
public byte EndAnimation;
}
public sealed class CreatureDisplayInfoRecord
@@ -216,25 +216,25 @@ namespace Game.DataStorage
public uint PortraitTextureFileDataID;
public byte CreatureModelAlpha;
public ushort SoundID;
public float PlayerModelScale;
public float PlayerOverrideScale;
public uint PortraitCreatureDisplayInfoID;
public byte BloodID;
public ushort ParticleColorID;
public uint CreatureGeosetData;
public ushort ObjectEffectPackageID;
public ushort AnimReplacementSetID;
public sbyte UnarmedWeaponSubclass;
public sbyte UnarmedWeaponType;
public uint StateSpellVisualKitID;
public float InstanceOtherPlayerPetScale; // scale of not own player pets inside dungeons/raids/scenarios
public uint MountSpellVisualKitID;
public uint[] TextureVariation = new uint[3];
public float PetInstanceScale; // scale of not own player pets inside dungeons/raids/scenarios
public uint MountPoofSpellVisualKitID;
public uint[] TextureVariationFileDataID = new uint[3];
}
public sealed class CreatureDisplayInfoExtraRecord
{
public uint Id;
public uint FileDataID;
public uint HDFileDataID;
public uint BakeMaterialResourcesID;
public uint HDBakeMaterialResourcesID;
public byte DisplayRaceID;
public byte DisplaySexID;
public byte DisplayClassID;
@@ -253,7 +253,7 @@ namespace Game.DataStorage
public LocalizedString Name;
public float MinScale;
public float MaxScale;
public uint IconFileDataID;
public uint IconFileID;
public ushort[] SkillLine = new ushort[2];
public ushort PetFoodMask;
public byte MinScaleLevel;
@@ -271,8 +271,7 @@ namespace Game.DataStorage
public float CollisionWidth;
public float CollisionHeight;
public float MountHeight;
public float[] GeoBoxMin = new float[3];
public float[] GeoBoxMax = new float[3];
public float[] GeoBox = new float[6];
public float WorldEffectScale;
public float AttachedEffectScale;
public float MissileCollisionRadius;
@@ -289,8 +288,8 @@ namespace Game.DataStorage
public uint BloodID;
public byte FootprintTextureID;
public byte FoleyMaterialID;
public byte FootstepEffectID;
public byte DeathThudEffectID;
public byte FootstepCameraEffectID;
public byte DeathThudCameraEffectID;
public uint SoundID;
public uint CreatureGeosetDataID;
}
@@ -341,7 +340,7 @@ namespace Game.DataStorage
public byte CategoryID;
public byte SpellCategory;
public byte Quality;
public uint InventoryIconFileDataID;
public uint InventoryIconFileID;
public uint SpellWeight;
}
@@ -349,15 +348,14 @@ namespace Game.DataStorage
{
public uint ID;
public byte Type;
public byte Unused;
public byte Flags;
}
public sealed class CurvePointRecord
{
public uint Id;
public float X;
public float Y;
public Vector2 Pos;
public ushort CurveID;
public byte Index;
public byte OrderIndex;
}
}
+21 -21
View File
@@ -22,25 +22,25 @@ namespace Game.DataStorage
public sealed class DestructibleModelDataRecord
{
public uint Id;
public ushort StateDamagedDisplayID;
public ushort StateDestroyedDisplayID;
public ushort StateRebuildingDisplayID;
public ushort StateSmokeDisplayID;
public ushort State0Wmo;
public ushort State1Wmo;
public ushort State2Wmo;
public ushort State3Wmo;
public ushort HealEffectSpeed;
public byte StateDamagedImpactEffectDoodadSet;
public byte StateDamagedAmbientDoodadSet;
public byte StateDamagedNameSet;
public byte StateDestroyedDestructionDoodadSet;
public byte StateDestroyedImpactEffectDoodadSet;
public byte StateDestroyedAmbientDoodadSet;
public byte StateDestroyedNameSet;
public byte StateRebuildingDestructionDoodadSet;
public byte StateRebuildingImpactEffectDoodadSet;
public byte StateRebuildingAmbientDoodadSet;
public byte StateRebuildingNameSet;
public byte StateSmokeInitDoodadSet;
public byte StateSmokeAmbientDoodadSet;
public byte StateSmokeNameSet;
public byte State0ImpactEffectDoodadSet;
public byte State0AmbientDoodadSet;
public byte State0NameSet;
public byte State1DestructionDoodadSet;
public byte State1ImpactEffectDoodadSet;
public byte State1AmbientDoodadSet;
public byte State1NameSet;
public byte State2DestructionDoodadSet;
public byte State2ImpactEffectDoodadSet;
public byte State2AmbientDoodadSet;
public byte State2NameSet;
public byte State3InitDoodadSet;
public byte State3AmbientDoodadSet;
public byte State3NameSet;
public byte EjectDirection;
public byte DoNotHighlight;
public byte HealEffect;
@@ -60,7 +60,7 @@ namespace Game.DataStorage
public sbyte OldEnumValue;
public DifficultyFlags Flags;
public byte ToggleDifficultyID;
public byte ItemBonusTreeModID;
public byte ItemContext;
public byte OrderIndex;
}
@@ -74,7 +74,7 @@ namespace Game.DataStorage
public byte Flags;
public uint Id;
public uint OrderIndex;
public uint TextureFileDataID;
public uint SpellIconFileID;
}
public sealed class DurabilityCostsRecord
@@ -87,6 +87,6 @@ namespace Game.DataStorage
public sealed class DurabilityQualityRecord
{
public uint Id;
public float QualityMod;
public float Data;
}
}
+5 -5
View File
@@ -22,19 +22,19 @@ namespace Game.DataStorage
public uint Id;
public long RaceMask;
public uint EmoteSlashCommand;
public uint SpellVisualKitID;
public uint EmoteFlags;
public uint SpellVisualKitID;
public ushort AnimID;
public byte EmoteSpecProc;
public uint EmoteSpecProcParam;
public byte EmoteSoundID;
public short ClassMask;
public int ClassMask;
public byte EmoteSpecProcParam;
public ushort EmoteSoundID;
}
public sealed class EmotesTextRecord
{
public uint Id;
public LocalizedString Name;
public string Name;
public ushort EmoteID;
}
+13 -15
View File
@@ -22,21 +22,19 @@ namespace Game.DataStorage
{
public sealed class FactionRecord
{
public ulong[] ReputationRaceMask = new ulong[4];
public long[] ReputationRaceMask = new long[4];
public LocalizedString Name;
public string Description;
public uint Id;
public int[] ReputationBase = new int[4];
public float ParentFactionModIn; // Faction gains incoming rep * ParentFactionModIn
public float ParentFactionModOut; // Faction outputs rep * ParentFactionModOut as spillover reputation
public float[] ParentFactionMod = new float[2]; // Faction outputs rep * ParentFactionModOut as spillover reputation
public uint[] ReputationMax = new uint[4];
public short ReputationIndex;
public ushort[] ReputationClassMask = new ushort[4];
public ushort[] ReputationFlags = new ushort[4];
public ushort ParentFactionID;
public ushort ParagonFactionID;
public byte ParentFactionCapIn; // The highest rank the faction will profit from incoming spillover
public byte ParentFactionCapOut;
public byte[] ParentFactionCap = new byte[2]; // The highest rank the faction will profit from incoming spillover
public byte Expansion;
public byte Flags;
public byte FriendshipRepID;
@@ -53,10 +51,10 @@ namespace Game.DataStorage
public ushort Faction;
public ushort Flags;
public ushort[] Enemies = new ushort[4];
public ushort[] Friends = new ushort[4];
public byte Mask;
public byte FriendMask;
public byte EnemyMask;
public ushort[] Friend = new ushort[4];
public byte FactionGroup;
public byte FriendGroup;
public byte EnemyGroup;
public bool IsFriendlyTo(FactionTemplateRecord entry)
{
@@ -68,10 +66,10 @@ namespace Game.DataStorage
if (Enemies[i] == entry.Faction)
return false;
for (int i = 0; i < 4; ++i)
if (Friends[i] == entry.Faction)
if (Friend[i] == entry.Faction)
return true;
}
return Convert.ToBoolean(FriendMask & entry.Mask) || Convert.ToBoolean(Mask & entry.FriendMask);
return Convert.ToBoolean(FriendGroup & entry.FactionGroup) || Convert.ToBoolean(FactionGroup & entry.FriendGroup);
}
public bool IsHostileTo(FactionTemplateRecord entry)
{
@@ -83,19 +81,19 @@ namespace Game.DataStorage
if (Enemies[i] == entry.Faction)
return true;
for (int i = 0; i < 4; ++i)
if (Friends[i] == entry.Faction)
if (Friend[i] == entry.Faction)
return false;
}
return (EnemyMask & entry.Mask) != 0;
return (EnemyGroup & entry.FactionGroup) != 0;
}
public bool IsHostileToPlayers() { return (EnemyMask & (uint)FactionMasks.Player) != 0; }
public bool IsHostileToPlayers() { return (EnemyGroup & (uint)FactionMasks.Player) != 0; }
public bool IsNeutralToAll()
{
for (int i = 0; i < 4; ++i)
if (Enemies[i] != 0)
return false;
return EnemyMask == 0 && FriendMask == 0;
return EnemyGroup == 0 && FriendGroup == 0;
}
public bool IsContestedGuardFaction() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.ContestedGuard); }
public bool ShouldSparAttack() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.EnemySpar); }
+76 -79
View File
@@ -20,25 +20,6 @@ using Framework.GameMath;
namespace Game.DataStorage
{
public sealed class GameObjectsRecord
{
public LocalizedString Name;
public Vector3 Position;
public float RotationX;
public float RotationY;
public float RotationZ;
public float RotationW;
public float Size;
public int[] Data = new int[8];
public ushort MapID;
public ushort DisplayID;
public ushort PhaseID;
public ushort PhaseGroupID;
public byte PhaseUseFlags;
public GameObjectTypes Type;
public uint Id;
}
public sealed class GameObjectDisplayInfoRecord
{
public uint Id;
@@ -50,50 +31,66 @@ namespace Game.DataStorage
public ushort ObjectEffectPackageID;
}
public sealed class GameObjectsRecord
{
public LocalizedString Name;
public Vector3 Pos;
public float[] Rot = new float[4];
public float Scale;
public int[] PropValue = new int[8];
public ushort OwnerID;
public ushort DisplayID;
public ushort PhaseID;
public ushort PhaseGroupID;
public byte PhaseUseFlags;
public GameObjectTypes TypeID;
public uint Id;
}
public sealed class GarrAbilityRecord
{
public LocalizedString Name;
public LocalizedString Description;
public uint IconFileDataID;
public GarrisonAbilityFlags Flags;
public ushort OtherFactionGarrAbilityID;
public ushort FactionChangeGarrAbilityID;
public byte GarrAbilityCategoryID;
public byte FollowerTypeID;
public byte GarrFollowerTypeID;
public uint Id;
}
public sealed class GarrBuildingRecord
{
public uint Id;
public string NameAlliance;
public string NameHorde;
public string AllianceName;
public string HordeName;
public string Description;
public string Tooltip;
public uint HordeGameObjectID;
public uint AllianceGameObjectID;
public uint IconFileDataID;
public ushort CostCurrencyID;
public ushort HordeTexPrefixKitID;
public ushort AllianceTexPrefixKitID;
public ushort AllianceActivationScenePackageID;
public ushort HordeActivationScenePackageID;
public ushort FollowerRequiredGarrAbilityID;
public ushort FollowerGarrAbilityEffectID;
public short CostMoney;
public byte Unknown;
public byte Type;
public byte Level;
public ushort CurrencyTypeID;
public ushort HordeUiTextureKitID;
public ushort AllianceUiTextureKitID;
public ushort AllianceSceneScriptPackageID;
public ushort HordeSceneScriptPackageID;
public ushort GarrAbilityID;
public ushort BonusGarrAbilityID;
public short GoldCost;
public byte GarrSiteID;
public byte BuildingType;
public byte UpgradeLevel;
public GarrisonBuildingFlags Flags;
public byte MaxShipments;
public byte ShipmentCapacity;
public byte GarrTypeID;
public ushort BuildDuration;
public int CostCurrencyAmount;
public byte BonusAmount;
public ushort BuildSeconds;
public int CurrencyQty;
public byte MaxAssignments;
}
public sealed class GarrBuildingPlotInstRecord
{
public Vector2 LandmarkOffset;
public Vector2 MapOffset;
public ushort UiTextureAtlasMemberID;
public ushort GarrSiteLevelPlotInstID;
public byte GarrBuildingID;
@@ -102,12 +99,12 @@ namespace Game.DataStorage
public sealed class GarrClassSpecRecord
{
public LocalizedString NameMale;
public LocalizedString NameFemale;
public LocalizedString NameGenderless;
public ushort ClassAtlasID; // UiTextureAtlasMember.db2 ref
public LocalizedString ClassSpec;
public LocalizedString ClassSpecMale;
public LocalizedString ClassSpecFemale;
public ushort UiTextureAtlasMemberID; // UiTextureAtlasMember.db2 ref
public ushort GarrFollItemSetID;
public byte Limit;
public byte FollowerClassLimit;
public byte Flags;
public uint Id;
}
@@ -116,35 +113,35 @@ namespace Game.DataStorage
{
public string HordeSourceText;
public string AllianceSourceText;
public string Name;
public string TitleName;
public uint HordeCreatureID;
public uint AllianceCreatureID;
public uint HordePortraitIconID;
public uint AlliancePortraitIconID;
public uint HordeAddedBroadcastTextID;
public uint AllianceAddedBroadcastTextID;
public uint HordeIconFileDataID;
public uint AllianceIconFileDataID;
public uint HordeSlottingBroadcastTextID;
public uint AllySlottingBroadcastTextID;
public ushort HordeGarrFollItemSetID;
public ushort AllianceGarrFollItemSetID;
public ushort ItemLevelWeapon;
public ushort ItemLevelArmor;
public ushort HordeListPortraitTextureKitID;
public ushort AllianceListPortraitTextureKitID;
public byte FollowerTypeID;
public byte HordeUiAnimRaceInfoID;
public byte AllianceUiAnimRaceInfoID;
public ushort HordeUITextureKitID;
public ushort AllianceUITextureKitID;
public byte GarrFollowerTypeID;
public byte HordeGarrFollRaceID;
public byte AllianceGarrFollRaceID;
public byte Quality;
public byte HordeGarrClassSpecID;
public byte AllianceGarrClassSpecID;
public byte Level;
public byte Unknown1;
public byte FollowerLevel;
public byte Gender;
public byte Flags;
public sbyte Unknown2;
public sbyte Unknown3;
public sbyte HordeSourceTypeEnum;
public sbyte AllianceSourceTypeEnum;
public byte GarrTypeID;
public byte MaxDurability;
public byte Class;
public byte HordeFlavorTextGarrStringID;
public byte AllianceFlavorTextGarrStringID;
public byte Vitality;
public byte ChrClassID;
public byte HordeFlavorGarrStringID;
public byte AllianceFlavorGarrStringID;
public uint Id;
}
@@ -160,12 +157,12 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Name;
public uint AllianceConstructionGameObjectID;
public uint HordeConstructionGameObjectID;
public byte GarrPlotUICategoryID;
public uint AllianceConstructObjID;
public uint HordeConstructObjID;
public byte UiCategoryID;
public byte PlotType;
public byte Flags;
public uint[] Count = new uint[2];
public uint[] UpgradeRequirement = new uint[2];
}
public sealed class GarrPlotBuildingRecord
@@ -178,38 +175,38 @@ namespace Game.DataStorage
public sealed class GarrPlotInstanceRecord
{
public uint Id;
public LocalizedString Name;
public string Name;
public byte GarrPlotID;
}
public sealed class GarrSiteLevelRecord
{
public uint Id;
public Vector2 TownHall;
public Vector2 TownHallUiPos;
public ushort MapID;
public ushort SiteID;
public ushort MovieID;
public ushort UpgradeResourceCost;
public ushort UpgradeMoneyCost;
public byte Level;
public byte UITextureKitID;
public byte Level2;
public ushort UiTextureKitID;
public ushort UpgradeMovieID;
public ushort UpgradeCost;
public ushort UpgradeGoldCost;
public byte GarrLevel;
public byte GarrSiteID;
public byte MaxBuildingLevel;
}
public sealed class GarrSiteLevelPlotInstRecord
{
public uint Id;
public Vector2 Landmark;
public Vector2 UiMarkerPos;
public ushort GarrSiteLevelID;
public byte GarrPlotInstanceID;
public byte Unknown;
public byte UiMarkerSize;
}
public sealed class GemPropertiesRecord
{
public uint Id;
public SocketColor Type;
public ushort EnchantID;
public ushort EnchantId;
public ushort MinItemLevel;
}
@@ -225,7 +222,7 @@ namespace Game.DataStorage
public uint Id;
public uint SpellID;
public ushort SpellIconID;
public byte Type;
public byte GlyphType;
public byte GlyphExclusiveCategoryID;
}
+5 -4
View File
@@ -23,12 +23,13 @@ namespace Game.DataStorage
{
public string SourceText;
public uint ItemID;
public uint[] OldItem = new uint[2];
public uint NextDifficultyItemID;
public uint LegacyItemID;
public uint LegacyUpgradedItemID;
public uint StaticUpgradedItemID;
public uint[] UpgradeItemID = new uint[3];
public ushort[] ItemBonusListID = new ushort[3];
public ushort[] UpgradeItemBonusListID = new ushort[3];
public byte Flags;
public byte Source;
public byte SourceTypeEnum;
public uint Id;
}
+122 -119
View File
@@ -22,50 +22,50 @@ namespace Game.DataStorage
public sealed class ImportPriceArmorRecord
{
public uint Id;
public float ClothFactor;
public float LeatherFactor;
public float MailFactor;
public float PlateFactor;
public float ClothModifier;
public float LeatherModifier;
public float ChainModifier;
public float PlateModifier;
}
public sealed class ImportPriceQualityRecord
{
public uint Id;
public float Factor;
public float Data;
}
public sealed class ImportPriceShieldRecord
{
public uint Id;
public float Factor;
public float Data;
}
public sealed class ImportPriceWeaponRecord
{
public uint Id;
public float Factor;
public float Data;
}
public sealed class ItemRecord
{
public uint Id;
public uint FileDataID;
public ItemClass Class;
public byte SubClass;
public sbyte SoundOverrideSubclass;
public sbyte Material;
public uint IconFileDataID;
public ItemClass ClassID;
public byte SubclassID;
public sbyte SoundOverrideSubclassID;
public byte Material;
public InventoryType inventoryType;
public byte Sheath;
public byte GroupSoundsID;
public byte SheatheType;
public byte ItemGroupSoundsID;
}
public sealed class ItemAppearanceRecord
{
public uint Id;
public uint DisplayID;
public uint IconFileDataID;
public uint ItemDisplayInfoID;
public uint DefaultIconFileDataID;
public uint UIOrder;
public byte ObjectComponentSlot;
public byte DisplayType;
}
public sealed class ItemArmorQualityRecord
@@ -85,7 +85,10 @@ namespace Game.DataStorage
public sealed class ItemArmorTotalRecord
{
public uint Id;
public float[] Value = new float[4];
public float Cloth;
public float Leather;
public float Mail;
public float Plate;
public ushort ItemLevel;
}
@@ -99,48 +102,48 @@ namespace Game.DataStorage
{
public uint Id;
public int[] Value = new int[3];
public ushort BonusListID;
public ushort ParentItemBonusListID;
public ItemBonusType Type;
public byte Index;
public byte OrderIndex;
}
public sealed class ItemBonusListLevelDeltaRecord
{
public short Delta;
public short ItemLevelDelta;
public uint Id;
}
public sealed class ItemBonusTreeNodeRecord
{
public uint Id;
public ushort SubTreeID;
public ushort BonusListID;
public ushort ItemLevelSelectorID;
public byte BonusTreeModID;
public uint BonusTreeID;
public ushort ChildItemBonusTreeID;
public ushort ChildItemBonusListID;
public ushort ChildItemLevelSelectorID;
public byte ItemContext;
public uint ParentItemBonusTreeID;
}
public sealed class ItemChildEquipmentRecord
{
public uint Id;
public uint AltItemID;
public byte AltEquipmentSlot;
public uint ItemID;
public uint ChildItemID;
public byte ChildItemEquipSlot;
public uint ParentItemID;
}
public sealed class ItemClassRecord
{
public uint Id;
public string Name;
public float PriceMod;
public byte OldEnumValue;
public string ClassName;
public float PriceModifier;
public byte ClassID;
public byte Flags;
}
public sealed class ItemCurrencyCostRecord
{
public uint Id;
public uint ItemId;
public uint ItemID;
}
// common struct for:
@@ -155,71 +158,71 @@ namespace Game.DataStorage
public sealed class ItemDamageRecord
{
public uint Id;
public float[] DPS = new float[7];
public float[] Quality = new float[7];
public ushort ItemLevel;
}
public sealed class ItemDisenchantLootRecord
{
public uint Id;
public ushort MinItemLevel;
public ushort MaxItemLevel;
public ushort RequiredDisenchantSkill;
public sbyte ItemSubClass;
public byte ItemQuality;
public sbyte Expansion;
public uint ItemClass;
public ushort MinLevel;
public ushort MaxLevel;
public ushort SkillRequired;
public sbyte Subclass;
public byte Quality;
public sbyte ExpansionID;
public uint ClassID;
}
public sealed class ItemEffectRecord
{
public uint Id;
public uint SpellID;
public int Cooldown;
public int CategoryCooldown;
public int CoolDownMSec;
public int CategoryCoolDownMSec;
public short Charges;
public ushort Category;
public ushort SpellCategoryID;
public ushort ChrSpecializationID;
public byte OrderIndex;
public ItemSpelltriggerType Trigger;
public uint ItemID;
public byte LegacySlotIndex;
public ItemSpelltriggerType TriggerType;
public uint ParentItemID;
}
public sealed class ItemExtendedCostRecord
{
public uint Id;
public uint[] RequiredItem = new uint[ItemConst.MaxItemExtCostItems]; // required item id
public uint[] RequiredCurrencyCount = new uint[ItemConst.MaxItemExtCostCurrencies]; // required curency count
public ushort[] RequiredItemCount = new ushort[ItemConst.MaxItemExtCostItems]; // required count of 1st item
public ushort RequiredPersonalArenaRating; // required personal arena rating
public ushort[] RequiredCurrency = new ushort[ItemConst.MaxItemExtCostCurrencies]; // required curency id
public byte RequiredArenaSlot; // arena slot restrictions (min slot value)
public byte RequiredFactionId;
public byte RequiredFactionStanding;
public byte RequirementFlags;
public uint[] ItemID = new uint[ItemConst.MaxItemExtCostItems]; // required item id
public uint[] CurrencyCount = new uint[ItemConst.MaxItemExtCostCurrencies]; // required curency count
public ushort[] ItemCount = new ushort[ItemConst.MaxItemExtCostItems]; // required count of 1st item
public ushort RequiredArenaRating; // required personal arena rating
public ushort[] CurrencyID = new ushort[ItemConst.MaxItemExtCostCurrencies]; // required curency id
public byte ArenaBracket; // arena slot restrictions (min slot value)
public byte MinFactionID;
public byte MinReputation;
public byte Flags;
public byte RequiredAchievement;
}
public sealed class ItemLevelSelectorRecord
{
public uint ID;
public ushort ItemLevel;
public ushort MinItemLevel;
public ushort ItemLevelSelectorQualitySetID;
}
public sealed class ItemLevelSelectorQualityRecord
{
public uint ID;
public uint ItemBonusListID;
public uint QualityItemBonusListID;
public byte Quality;
public uint ItemLevelSelectorQualitySetID;
public uint ParentILSQualitySetID;
}
public sealed class ItemLevelSelectorQualitySetRecord
{
public uint ID;
public ushort ItemLevelMin;
public ushort ItemLevelMax;
public ushort IlvlRare;
public ushort IlvlEpic;
}
public sealed class ItemLimitCategoryRecord
@@ -234,17 +237,17 @@ namespace Game.DataStorage
{
public uint ItemID;
public uint Id;
public byte AppearanceModID;
public ushort AppearanceID;
public byte Index;
public byte SourceType;
public byte ItemAppearanceModifierID;
public ushort ItemAppearanceID;
public byte OrderIndex;
public byte TransmogSourceTypeEnum;
}
public sealed class ItemPriceBaseRecord
{
public uint Id;
public float ArmorFactor;
public float WeaponFactor;
public float Armor;
public float Weapon;
public ushort ItemLevel;
}
@@ -266,19 +269,19 @@ namespace Game.DataStorage
public sealed class ItemSearchNameRecord
{
public ulong AllowableRace;
public LocalizedString Name;
public LocalizedString Display;
public uint Id;
public uint[] Flags = new uint[3];
public ushort ItemLevel;
public byte Quality;
public byte RequiredExpansion;
public byte OverallQualityID;
public byte ExpansionID;
public byte RequiredLevel;
public ushort RequiredReputationFaction;
public byte RequiredReputationRank;
public ushort MinFactionID;
public byte MinReputation;
public short AllowableClass;
public ushort RequiredSkill;
public ushort RequiredSkillRank;
public uint RequiredSpell;
public uint RequiredAbility;
}
public sealed class ItemSetRecord
@@ -288,7 +291,7 @@ namespace Game.DataStorage
public uint[] ItemID = new uint[17];
public ushort RequiredSkillRank;
public byte RequiredSkill;
public ItemSetFlags Flags;
public ItemSetFlags SetFlags;
}
public sealed class ItemSetSpellRecord
@@ -304,75 +307,75 @@ namespace Game.DataStorage
{
public uint Id;
public long AllowableRace;
public LocalizedString Name;
public string Name2;
public string Name3;
public string Name4;
public LocalizedString Display;
public string Display2;
public string Display3;
public string Display4;
public string Description;
public uint[] Flags = new uint[4];
public float Unk1;
public float Unk2;
public uint BuyCount;
public float PriceRandomValue;
public float PriceVariance;
public uint VendorStackCount;
public uint BuyPrice;
public uint SellPrice;
public uint RequiredSpell;
public uint RequiredAbility;
public uint MaxCount;
public uint Stackable;
public int[] ItemStatAllocation = new int[ItemConst.MaxStats];
public float[] ItemStatSocketCostMultiplier = new float[ItemConst.MaxStats];
public float RangedModRange;
public int[] StatPercentEditor = new int[ItemConst.MaxStats];
public float[] StatPercentageOfSocket = new float[ItemConst.MaxStats];
public float ItemRange;
public uint BagFamily;
public float ArmorDamageModifier;//wrong?
public uint Duration;
public float StatScalingFactor;
public float QualityModifier;
public uint DurationInInventory;
public float DmgVariance;
public short AllowableClass;
public ushort ItemLevel;
public ushort RequiredSkill;
public ushort RequiredSkillRank;
public ushort RequiredReputationFaction;
public ushort MinFactionID;
public short[] ItemStatValue = new short[ItemConst.MaxStats];
public ushort ScalingStatDistribution;
public ushort Delay;
public ushort PageText;
public ushort StartQuest;
public ushort ScalingStatDistributionID;
public ushort ItemDelay;
public ushort PageID;
public ushort StartQuestID;
public ushort LockID;
public ushort RandomProperty;
public ushort RandomSuffix;
public ushort RandomSelect;
public ushort ItemRandomSuffixGroupID;
public ushort ItemSet;
public ushort Area;
public ushort Map;
public ushort TotemCategory;
public ushort SocketBonus;
public ushort ZoneBound;
public ushort InstanceBound;
public ushort TotemCategoryID;
public ushort SocketMatchEnchantmentId;
public ushort GemProperties;
public ushort ItemLimitCategory;
public ushort HolidayID;
public ushort RequiredTransmogHolidayID;
public ushort LimitCategory;
public ushort RequiredHoliday;
public ushort RequiredTransmogHoliday;
public ushort ItemNameDescriptionID;
public byte Quality;
public byte OverallQualityID;
public InventoryType inventoryType;
public sbyte RequiredLevel;
public byte RequiredHonorRank;
public byte RequiredCityRank;
public byte RequiredReputationRank;
public byte RequiredPVPRank;
public byte RequiredPVPMedal;
public byte MinReputation;
public byte ContainerSlots;
public sbyte[] ItemStatType = new sbyte[ItemConst.MaxStats];
public sbyte[] StatModifierBonusStat = new sbyte[ItemConst.MaxStats];
public byte DamageType;
public byte Bonding;
public byte LanguageID;
public byte PageMaterial;
public byte PageMaterialID;
public sbyte Material;
public byte Sheath;
public byte[] SocketColor = new byte[ItemConst.MaxGemSockets];
public byte CurrencySubstitutionID;
public byte CurrencySubstitutionCount;
public byte SheatheType;
public byte[] SocketType = new byte[ItemConst.MaxGemSockets];
public byte SpellWeightCategory;
public byte SpellWeight;
public byte ArtifactID;
public byte RequiredExpansion;
public byte ExpansionID;
}
public sealed class ItemSpecRecord
{
public uint Id;
public ushort SpecID;
public ushort SpecializationID;
public byte MinLevel;
public byte MaxLevel;
public byte ItemType;
@@ -390,17 +393,17 @@ namespace Game.DataStorage
public sealed class ItemUpgradeRecord
{
public uint Id;
public uint CurrencyCost;
public ushort PrevItemUpgradeID;
public ushort CurrencyID;
public uint CurrencyAmount;
public ushort PrerequisiteID;
public ushort CurrencyType;
public byte ItemUpgradePathID;
public byte ItemLevelBonus;
public byte ItemLevelIncrement;
}
public sealed class ItemXBonusTreeRecord
{
public uint Id;
public ushort BonusTreeID;
public ushort ItemBonusTreeID;
public uint ItemID;
}
}
+17 -17
View File
@@ -26,23 +26,23 @@ namespace Game.DataStorage
public LocalizedString Name;
public string Description;
public LfgFlags Flags;
public float MinItemLevel;
public float MinGear;
public ushort MaxLevel;
public ushort TargetLevelMax;
public short MapID;
public ushort RandomID;
public ushort ScenarioID;
public ushort LastBossJournalEncounterID;
public ushort FinalEncounterID;
public ushort BonusReputationAmount;
public ushort MentorItemLevel;
public ushort PlayerConditionID;
public ushort RequiredPlayerConditionId;
public byte MinLevel;
public byte TargetLevel;
public byte TargetLevelMin;
public Difficulty DifficultyID;
public LfgType Type;
public LfgType TypeID;
public byte Faction;
public byte Expansion;
public byte ExpansionLevel;
public byte OrderIndex;
public byte GroupID;
public byte CountTank;
@@ -51,30 +51,30 @@ namespace Game.DataStorage
public byte MinCountTank;
public byte MinCountHealer;
public byte MinCountDamage;
public byte SubType;
public byte Subtype;
public byte MentorCharLevel;
public int TextureFileDataID;
public int RewardIconFileDataID;
public int ProposalTextureFileDataID;
public int IconTextureFileID;
public int RewardsBgTextureFileID;
public int PopupBgTextureFileID;
// Helpers
public uint Entry() { return (uint)(Id + ((int)Type << 24)); }
public uint Entry() { return (uint)(Id + ((int)TypeID << 24)); }
}
public sealed class LightRecord
{
public uint Id;
public Vector3 Pos;
public float FalloffStart;
public float FalloffEnd;
public ushort MapID;
public Vector3 GameCoords;
public float GameFalloffStart;
public float GameFalloffEnd;
public ushort ContinentID;
public ushort[] LightParamsID = new ushort[8];
}
public sealed class LiquidTypeRecord
{
public uint Id;
public LocalizedString Name;
public string Name;
public string[] Texture = new string[6];
public uint SpellID;
public float MaxDarkenDepth;
@@ -87,11 +87,11 @@ namespace Game.DataStorage
public uint[] Int = new uint[4];
public ushort Flags;
public ushort LightID;
public byte LiquidType;
public byte SoundBank;
public byte ParticleMovement;
public byte ParticleTexSlots;
public byte MaterialID;
public byte[] DepthTexCount = new byte[6];
public byte[] FrameCountTexture = new byte[6];
public ushort SoundID;
}
+28 -27
View File
@@ -33,11 +33,11 @@ namespace Game.DataStorage
public LocalizedString MapName;
public string MapDescription0; // Horde
public string MapDescription1; // Alliance
public string ShortDescription;
public string LongDescription;
public string PvpShortDescription;
public string PvpLongDescription;
public MapFlags[] Flags = new MapFlags[2];
public float MinimapIconScale;
public Vector2 CorpsePos; // entrance coordinates in ghost mode (in most cases = normal entrance)
public Vector2 Corpse; // entrance coordinates in ghost mode (in most cases = normal entrance)
public ushort AreaTableID;
public ushort LoadingScreenID;
public short CorpseMapID; // map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
@@ -46,7 +46,7 @@ namespace Game.DataStorage
public short CosmeticParentMapID;
public ushort WindSettingsID;
public MapTypes InstanceType;
public byte unk5;
public byte MapType;
public byte ExpansionID;
public byte MaxPlayers;
public byte TimeOffset;
@@ -76,8 +76,8 @@ namespace Game.DataStorage
if (CorpseMapID < 0)
return false;
mapid = (uint)CorpseMapID;
x = CorpsePos.X;
y = CorpsePos.Y;
x = Corpse.X;
y = Corpse.Y;
return true;
}
@@ -93,21 +93,21 @@ namespace Game.DataStorage
public sealed class MapDifficultyRecord
{
public uint Id;
public LocalizedString Message_lang; // m_message_lang (text showed when transfer to map failed)
public LocalizedString Message; // m_message_lang (text showed when transfer to map failed)
public byte DifficultyID;
public byte RaidDurationType; // 1 means daily reset, 2 means weekly
public byte ResetInterval; // 1 means daily reset, 2 means weekly
public byte MaxPlayers; // m_maxPlayers some heroic versions have 0 when expected same amount as in normal version
public byte LockID;
public byte Flags;
public byte ItemBonusTreeModID;
public uint Context;
public byte ItemContext;
public uint ItemContextPickerID;
public uint MapID;
public uint GetRaidDuration()
{
if (RaidDurationType == 1)
if (ResetInterval == 1)
return 86400;
if (RaidDurationType == 2)
if (ResetInterval == 2)
return 604800;
return 0;
}
@@ -116,10 +116,11 @@ namespace Game.DataStorage
public sealed class ModifierTreeRecord
{
public uint Id;
public uint[] Asset = new uint[2];
public uint Asset;
public uint SecondaryAsset;
public uint Parent;
public byte Type;
public byte Unk700;
public byte TertiaryAsset;
public byte Operator;
public byte Amount;
}
@@ -128,14 +129,14 @@ namespace Game.DataStorage
{
public string Name;
public string Description;
public string SourceDescription;
public uint SpellId;
public float CameraPivotMultiplier;
public ushort MountTypeId;
public string SourceText;
public uint SourceSpellID;
public float MountFlyRideHeight;
public ushort MountTypeID;
public ushort Flags;
public byte Source;
public byte SourceTypeEnum;
public uint Id;
public uint PlayerConditionId;
public uint PlayerConditionID;
public byte UiModelSceneID;
public bool IsSelfMount() { return (Flags & (ushort)MountFlags.SelfMount) != 0; }
@@ -143,14 +144,14 @@ namespace Game.DataStorage
public sealed class MountCapabilityRecord
{
public uint RequiredSpell;
public uint SpeedModSpell;
public ushort RequiredRidingSkill;
public ushort RequiredArea;
public short RequiredMap;
public uint ReqSpellKnownID;
public uint ModSpellAuraID;
public ushort ReqRidingSkill;
public ushort ReqAreaID;
public short ReqMapID;
public MountCapabilityFlags Flags;
public uint Id;
public byte RequiredAura;
public byte ReqSpellAuraID;
}
public sealed class MountTypeXCapabilityRecord
@@ -164,7 +165,7 @@ namespace Game.DataStorage
public sealed class MountXDisplayRecord
{
public uint Id;
public uint DisplayID;
public uint CreatureDisplayInfoID;
public uint PlayerConditionID;
public uint MountID;
}
+2 -2
View File
@@ -20,8 +20,8 @@ namespace Game.DataStorage
public sealed class NameGenRecord
{
public uint Id;
public LocalizedString Name;
public byte Race;
public string Name;
public byte RaceID;
public byte Sex;
}
+2 -2
View File
@@ -22,8 +22,8 @@ namespace Game.DataStorage
public sealed class OverrideSpellDataRecord
{
public uint Id;
public uint[] SpellID = new uint[SharedConst.MaxOverrideSpell];
public uint PlayerActionbarFileDataID;
public uint[] Spells = new uint[SharedConst.MaxOverrideSpell];
public uint PlayerActionBarFileDataID;
public byte Flags;
}
}
+21 -21
View File
@@ -51,7 +51,7 @@ namespace Game.DataStorage
public ushort MaxFactionID;
public byte MaxReputation;
public uint ReputationLogic;
public byte Unknown1;
public byte CurrentPvpFaction;
public byte MinPVPRank;
public byte MaxPVPRank;
public byte PvpMedal;
@@ -91,7 +91,7 @@ namespace Game.DataStorage
public byte PowerTypeComp;
public byte PowerTypeValue;
public uint ModifierTreeID;
public int MainHandItemSubclassMask;
public int WeaponSubclassMask;
public ushort[] SkillID = new ushort[4];
public short[] MinSkill = new short[4];
public short[] MaxSkill = new short[4];
@@ -106,7 +106,7 @@ namespace Game.DataStorage
public ushort[] Explored = new ushort[2];
public uint[] Time = new uint[2];
public uint[] AuraSpellID = new uint[4];
public byte[] AuraCount = new byte[4];
public byte[] AuraStacks = new byte[4];
public ushort[] Achievement = new ushort[4];
public byte[] LfgStatus = new byte[4];
public byte[] LfgCompare = new byte[4];
@@ -122,7 +122,7 @@ namespace Game.DataStorage
{
public uint Id;
public uint GlobalStringBaseTag;
public byte PowerType;
public byte ActualType;
public byte Red;
public byte Green;
public byte Blue;
@@ -131,25 +131,25 @@ namespace Game.DataStorage
public sealed class PowerTypeRecord
{
public uint Id;
public string PowerTypeToken;
public string PowerCostToken;
public float RegenerationPeace;
public float RegenerationCombat;
public short MaxPower;
public ushort RegenerationDelay;
public string NameGlobalStringTag;
public string CostGlobalStringTag;
public float RegenPeace;
public float RegenCombat;
public short MaxBasePower;
public ushort RegenInterruptTimeMS;
public ushort Flags;
public PowerType PowerTypeEnum;
public sbyte RegenerationMin;
public sbyte RegenerationCenter;
public sbyte RegenerationMax;
public byte UIModifier;
public sbyte MinPower;
public sbyte CenterPower;
public sbyte DefaultPower;
public sbyte DisplayModifier;
}
public sealed class PrestigeLevelInfoRecord
{
public uint Id;
public string PrestigeText;
public uint IconID;
public string Name;
public uint BadgeTextureFileDataID;
public byte PrestigeLevel;
public PrestigeLevelInfoFlags Flags;
@@ -159,27 +159,27 @@ namespace Game.DataStorage
public sealed class PvpDifficultyRecord
{
public uint Id;
public byte BracketID;
public byte RangeIndex;
public byte MinLevel;
public byte MaxLevel;
public uint MapID;
// helpers
public BattlegroundBracketId GetBracketId() { return (BattlegroundBracketId)BracketID; }
public BattlegroundBracketId GetBracketId() { return (BattlegroundBracketId)RangeIndex; }
}
public sealed class PvpItemRecord
{
public uint Id;
public uint ItemID;
public byte ItemLevelBonus;
public byte ItemLevelDelta;
}
public sealed class PvpRewardRecord
{
public uint Id;
public byte HonorLevel;
public byte Prestige;
public byte PrestigeLevel;
public ushort RewardPackID;
}
@@ -189,7 +189,7 @@ namespace Game.DataStorage
public LocalizedString Description;
public uint SpellID;
public uint OverridesSpellID;
public int ExtraSpellID;
public int ActionBarSpellID;
public int TierID;
public byte ColumnIndex;
public byte Flags;
+7 -7
View File
@@ -22,29 +22,29 @@ namespace Game.DataStorage
public sealed class QuestFactionRewardRecord
{
public uint Id;
public short[] QuestRewFactionValue = new short[10];
public short[] Difficulty = new short[10];
}
public sealed class QuestMoneyRewardRecord
{
public uint Id;
public uint[] Money = new uint[10];
public uint[] Difficulty = new uint[10];
}
public sealed class QuestPackageItemRecord
{
public uint Id;
public uint ItemID;
public ushort QuestPackageID;
public QuestPackageFilter FilterType;
public byte ItemCount;
public ushort PackageID;
public QuestPackageFilter DisplayType;
public byte ItemQuantity;
}
public sealed class QuestSortRecord
{
public uint Id;
public LocalizedString SortName;
public byte SortOrder;
public byte UiOrderIndex;
}
public sealed class QuestV2Record
@@ -56,6 +56,6 @@ namespace Game.DataStorage
public sealed class QuestXPRecord
{
public uint Id;
public ushort[] Exp = new ushort[10];
public ushort[] Difficulty = new ushort[10];
}
}
+7 -7
View File
@@ -20,9 +20,9 @@ namespace Game.DataStorage
public sealed class RandPropPointsRecord
{
public uint Id;
public uint[] EpicPropertiesPoints = new uint[5];
public uint[] RarePropertiesPoints = new uint[5];
public uint[] UncommonPropertiesPoints = new uint[5];
public uint[] Epic = new uint[5];
public uint[] Superior = new uint[5];
public uint[] Good = new uint[5];
}
public sealed class RewardPackRecord
@@ -31,16 +31,16 @@ namespace Game.DataStorage
public uint Money;
public float ArtifactXPMultiplier;
public byte ArtifactXPDifficulty;
public byte ArtifactCategoryID;
public ushort TitleID;
public ushort Unused;
public byte ArtifactXPCategoryID;
public ushort CharTitleID;
public ushort TreasurePickerID;
}
public sealed class RewardPackXItemRecord
{
public uint Id;
public uint ItemID;
public uint Amount;
public uint ItemQuantity;
public uint RewardPackID;
}
+60 -77
View File
@@ -32,7 +32,7 @@ namespace Game.DataStorage
public sealed class ScalingStatDistributionRecord
{
public uint Id;
public ushort ItemLevelCurveID;
public ushort PlayerLevelToItemLevelCurveID;
public byte MinLevel;
public uint MaxLevel;
}
@@ -41,7 +41,7 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Name;
public ushort Data; // Seems to indicate different things, for zone invasions, this is the area id
public ushort AreaTableID;
public byte Flags;
public byte Type;
}
@@ -50,14 +50,14 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Description;
public LocalizedString Name;
public LocalizedString Title;
public ushort ScenarioID;
public ushort PreviousStepID; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
public ushort QuestRewardID;
public byte Step;
public ushort Supersedes; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
public ushort RewardQuestID;
public byte OrderIndex;
public ScenarioStepFlags Flags;
public ushort CriteriaTreeID;
public byte BonusRequiredStepID; // Bonus step can only be completed if scenario is in the step specified in this field
public ushort CriteriaTreeId;
public byte RelatedStep; // Bonus step can only be completed if scenario is in the step specified in this field
// helpers
public bool IsBonusObjective()
@@ -69,8 +69,8 @@ namespace Game.DataStorage
public sealed class SceneScriptRecord
{
public uint Id;
public ushort PrevScriptId;
public ushort NextScriptId;
public ushort FirstSceneScriptID;
public ushort NextSceneScriptID;
}
public sealed class SceneScriptGlobalTextRecord
@@ -102,15 +102,15 @@ namespace Game.DataStorage
public ushort Flags;
public SkillCategory CategoryID;
public byte CanLink;
public uint IconFileDataID;
public uint SpellIconFileID;
public byte ParentSkillLineID;
}
public sealed class SkillLineAbilityRecord
{
public ulong RaceMask;
public long RaceMask;
public uint Id;
public uint SpellID;
public uint Spell;
public uint SupercedesSpell;
public ushort SkillLine;
public ushort TrivialSkillLineRankHigh;
@@ -153,7 +153,7 @@ namespace Game.DataStorage
public float PitchVariationMinus;
public float PitchAdjust;
public ushort BusOverwriteID;
public byte Unk700;
public byte MaxInstances;
}
public sealed class SpecializationSpellsRecord
@@ -162,7 +162,7 @@ namespace Game.DataStorage
public uint SpellID;
public uint OverridesSpellID;
public ushort SpecID;
public byte OrderIndex;
public byte DisplayOrder;
public uint Id;
}
@@ -206,9 +206,9 @@ namespace Game.DataStorage
public sealed class SpellCastTimesRecord
{
public uint Id;
public int CastTime;
public int MinCastTime;
public short CastTimePerLevel;
public int Base;
public int Minimum;
public short PerLevel;
}
public sealed class SpellCastingRequirementsRecord
@@ -245,7 +245,7 @@ namespace Game.DataStorage
public SpellCategoryFlags Flags;
public byte UsesPerWeek;
public byte MaxCharges;
public byte ChargeCategoryType;
public byte TypeMask;
}
public sealed class SpellClassOptionsRecord
@@ -297,16 +297,14 @@ namespace Game.DataStorage
public float EffectPosFacing;
public uint EffectAttributes;
public float BonusCoefficientFromAP;
public float PvPMultiplier;
public float PvpMultiplier;
public float Coefficient;
public float Variance;
public float ResourceCoefficient;
public float GroupSizeCoefficient;
public float GroupSizeBasePointsCoefficient;
public FlagArray128 EffectSpellClassMask;
public int EffectMiscValue;
public int EffectMiscValueB;
public uint EffectRadiusIndex;
public uint EffectRadiusMaxIndex;
public int[] EffectMiscValue = new int[2];
public uint[] EffectRadiusIndex = new uint[2];
public uint[] ImplicitTarget = new uint[2];
public uint SpellID;
}
@@ -315,8 +313,8 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
public int EquippedItemInventoryTypeMask;
public int EquippedItemSubClassMask;
public int EquippedItemInvTypes;
public int EquippedItemSubclass;
public sbyte EquippedItemClass;
}
@@ -340,10 +338,10 @@ namespace Game.DataStorage
{
public uint Id;
public string Name;
public uint[] EffectSpellID = new uint[ItemConst.MaxItemEnchantmentEffects];
public uint[] EffectArg = new uint[ItemConst.MaxItemEnchantmentEffects];
public float[] EffectScalingPoints = new float[ItemConst.MaxItemEnchantmentEffects];
public uint TransmogCost;
public uint TextureFileDataID;
public uint IconFileDataID;
public ushort[] EffectPointsMin = new ushort[ItemConst.MaxItemEnchantmentEffects];
public ushort ItemVisual;
public EnchantmentSlotMask Flags;
@@ -357,25 +355,25 @@ namespace Game.DataStorage
public byte MaxLevel;
public sbyte ScalingClass;
public sbyte ScalingClassRestricted;
public ushort PlayerConditionID;
public ushort TransmogPlayerConditionID;
}
public sealed class SpellItemEnchantmentConditionRecord
{
public uint Id;
public uint[] LTOperand = new uint[5];
public byte[] LTOperandType = new byte[5];
public uint[] LtOperand = new uint[5];
public byte[] LtOperandType = new byte[5];
public byte[] Operator = new byte[5];
public byte[] RTOperandType = new byte[5];
public byte[] RTOperand = new byte[5];
public byte[] RtOperandType = new byte[5];
public byte[] RtOperand = new byte[5];
public byte[] Logic = new byte[5];
}
public sealed class SpellLearnSpellRecord
{
public uint Id;
public uint LearnSpellID;
public uint SpellID;
public uint LearnSpellID;
public uint OverridesSpellID;
}
@@ -386,7 +384,7 @@ namespace Game.DataStorage
public ushort MaxLevel;
public ushort SpellLevel;
public byte DifficultyID;
public byte MaxUsableLevel;
public byte MaxPassiveAuraLevel;
public uint SpellID;
}
@@ -397,51 +395,38 @@ namespace Game.DataStorage
public ushort DurationIndex;
public ushort RangeIndex;
public byte SchoolMask;
public uint IconFileDataID;
public uint SpellIconFileDataID;
public float Speed;
public uint ActiveIconFileDataID;
public float MultistrikeSpeedMod;
public float LaunchDelay;
public byte DifficultyID;
public uint Attributes;
public uint AttributesEx;
public uint AttributesExB;
public uint AttributesExC;
public uint AttributesExD;
public uint AttributesExE;
public uint AttributesExF;
public uint AttributesExG;
public uint AttributesExH;
public uint AttributesExI;
public uint AttributesExJ;
public uint AttributesExK;
public uint AttributesExL;
public uint AttributesExM;
public uint[] Attributes = new uint[14];
public uint SpellID;
}
public sealed class SpellPowerRecord
{
public int ManaCost;
public float ManaCostPercentage;
public float ManaCostPercentagePerSecond;
public uint RequiredAura;
public float HealthCostPercentage;
public byte PowerIndex;
public float PowerCostPct;
public float PowerPctPerSecond;
public uint RequiredAuraSpellID;
public float PowerCostMaxPct;
public byte OrderIndex;
public PowerType PowerType;
public uint Id;
public byte ManaCostPerLevel;
public ushort ManaCostPerSecond;
public int ManaCostAdditional; // Spell uses [ManaCost, ManaCost+ManaCostAdditional] power - affects tooltip parsing as multiplier on SpellEffectEntry::EffectPointsPerResource
public ushort ManaPerSecond;
public int OptionalCost; // Spell uses [ManaCost, ManaCost+ManaCostAdditional] power - affects tooltip parsing as multiplier on SpellEffectEntry::EffectPointsPerResource
// only SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_NORMALIZED_WEAPON_DMG
public uint PowerDisplayID;
public uint UnitPowerBarID;
public uint AltPowerBarID;
public uint SpellID;
}
public sealed class SpellPowerDifficultyRecord
{
public byte DifficultyID;
public byte PowerIndex;
public byte OrderIndex;
public uint Id;
}
@@ -475,10 +460,8 @@ namespace Game.DataStorage
public uint Id;
public string DisplayName;
public string DisplayNameShort;
public float MinRangeHostile;
public float MinRangeFriend;
public float MaxRangeHostile;
public float MaxRangeFriend;
public float[] RangeMin = new float[2];
public float[] RangeMax = new float[2];
public SpellRangeFlag Flags;
}
@@ -495,7 +478,7 @@ namespace Game.DataStorage
public uint Id;
public uint SpellID;
public ushort ScalesFromItemLevel;
public byte ScalingClass;
public byte Class;
public byte MinScalingLevel;
public uint MaxScalingLevel;
}
@@ -513,13 +496,13 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Name;
public float WeaponDamageVariance;
public float DamageVariance;
public SpellShapeshiftFormFlags Flags;
public ushort CombatRoundTime;
public ushort MountTypeID;
public sbyte CreatureType;
public byte BonusActionBar;
public uint AttackIconFileDataID;
public uint AttackIconFileID;
public ushort[] CreatureDisplayID = new ushort[4];
public ushort[] PresetSpellID = new ushort[SpellConst.MaxShapeshift];
}
@@ -527,12 +510,12 @@ namespace Game.DataStorage
public sealed class SpellTargetRestrictionsRecord
{
public uint Id;
public float ConeAngle;
public float ConeDegrees;
public float Width;
public uint Targets;
public ushort TargetCreatureType;
public byte DifficultyID;
public byte MaxAffectedTargets;
public byte MaxTargets;
public uint MaxTargetLevel;
public uint SpellID;
}
@@ -549,13 +532,13 @@ namespace Game.DataStorage
{
public uint SpellVisualID;
public uint Id;
public float Chance;
public float Probability;
public ushort CasterPlayerConditionID;
public ushort CasterUnitConditionID;
public ushort PlayerConditionID;
public ushort UnitConditionID;
public uint IconFileDataID;
public uint ActiveIconFileDataID;
public ushort ViewerPlayerConditionID;
public ushort ViewerUnitConditionID;
public uint SpellIconFileID;
public uint ActiveIconFileID;
public byte Flags;
public byte DifficultyID;
public byte Priority;
@@ -566,9 +549,9 @@ namespace Game.DataStorage
{
public uint Id;
public uint Flags;
public SummonCategory Category;
public SummonCategory Control;
public ushort Faction;
public SummonType Type;
public SummonType Title;
public byte Slot;
}
}
+18 -21
View File
@@ -47,20 +47,20 @@ namespace Game.DataStorage
public Vector3 Pos;
public uint[] MountCreatureID = new uint[2];
public Vector2 MapOffset;
public float Unk730;
public float Facing;
public Vector2 FlightMapOffset;
public ushort MapID;
public ushort ContinentID;
public ushort ConditionID;
public ushort LearnableIndex;
public ushort CharacterBitNumber;
public TaxiNodeFlags Flags;
public int UiTextureKitPrefixID;
public uint SpecialAtlasIconPlayerConditionID;
public int UiTextureKitID;
public uint SpecialIconConditionID;
}
public sealed class TaxiPathRecord
{
public ushort From;
public ushort To;
public ushort FromTaxiNode;
public ushort ToTaxiNode;
public uint Id;
public uint Cost;
}
@@ -69,7 +69,7 @@ namespace Game.DataStorage
{
public Vector3 Loc;
public ushort PathID;
public ushort MapID;
public ushort ContinentID;
public byte NodeIndex;
public uint Id;
public TaxiPathNodeFlags Flags;
@@ -82,34 +82,34 @@ namespace Game.DataStorage
{
public uint Id;
public LocalizedString Name;
public uint CategoryMask;
public byte CategoryType;
public uint TotemCategoryMask;
public byte TotemCategoryType;
}
public sealed class ToyRecord
{
public LocalizedString Description;
public LocalizedString SourceText;
public uint ItemID;
public byte Flags;
public byte CategoryFilter;
public byte SourceTypeEnum;
public uint Id;
}
public sealed class TransmogHolidayRecord
{
public uint Id;
public int HolidayID;
public int RequiredTransmogHoliday;
}
public sealed class TransmogSetRecord
{
public LocalizedString Name;
public ushort BaseSetID;
public ushort ParentTransmogSetID;
public ushort UIOrder;
public byte ExpansionID;
public uint Id;
public byte Flags;
public int QuestID;
public int TrackingQuestID;
public int ClassMask;
public int ItemNameDescriptionID;
public byte TransmogSetGroupID;
@@ -117,7 +117,7 @@ namespace Game.DataStorage
public sealed class TransmogSetGroupRecord
{
public LocalizedString Label;
public LocalizedString Name;
public uint Id;
}
@@ -142,10 +142,7 @@ namespace Game.DataStorage
{
public uint Id;
public uint TimeIndex;
public float X;
public float Y;
public float Z;
public float W;
public uint TransportID;
public float[] Rot = new float[4];
public uint GameObjectsID;
}
}
+12 -10
View File
@@ -40,14 +40,16 @@ namespace Game.DataStorage
public ushort VehicleUIIndicatorID;
public ushort[] PowerDisplayID = new ushort[3];
public byte FlagsB;
public byte UILocomotionType;
public byte UiLocomotionType;
public ushort MissileTargetingID;
}
public sealed class VehicleSeatRecord
{
public uint Id;
public uint[] Flags = new uint[3];
public VehicleSeatFlags Flags;
public VehicleSeatFlagsB FlagsB;
public uint FlagsC;
public Vector3 AttachmentOffset;
public float EnterPreDelay;
public float EnterSpeed;
@@ -78,7 +80,7 @@ namespace Game.DataStorage
public float CameraEnteringZoom;
public float CameraSeatZoomMin;
public float CameraSeatZoomMax;
public uint UISkinFileDataID;
public uint UiSkinFileDataID;
public short EnterAnimStart;
public short EnterAnimLoop;
public short RideAnimStart;
@@ -110,17 +112,17 @@ namespace Game.DataStorage
public bool CanEnterOrExit()
{
return (Flags[0].HasAnyFlag((uint)VehicleSeatFlags.CanEnterOrExit) ||
return (Flags.HasAnyFlag(VehicleSeatFlags.CanEnterOrExit) ||
//If it has anmation for enter/ride, means it can be entered/exited by logic
Flags[0].HasAnyFlag((uint)VehicleSeatFlags.HasLowerAnimForEnter | (uint)VehicleSeatFlags.HasLowerAnimForRide));
Flags.HasAnyFlag(VehicleSeatFlags.HasLowerAnimForEnter | VehicleSeatFlags.HasLowerAnimForRide));
}
public bool CanSwitchFromSeat() { return Flags[0].HasAnyFlag((uint)VehicleSeatFlags.CanSwitch); }
public bool CanSwitchFromSeat() { return Flags.HasAnyFlag(VehicleSeatFlags.CanSwitch); }
public bool IsUsableByOverride()
{
return Flags[0].HasAnyFlag((uint)VehicleSeatFlags.Uncontrolled | (uint)VehicleSeatFlags.Unk18)
|| Flags[1].HasAnyFlag((uint)VehicleSeatFlagsB.UsableForced | (uint)VehicleSeatFlagsB.UsableForced2 |
(uint)VehicleSeatFlagsB.UsableForced3 | (uint)VehicleSeatFlagsB.UsableForced4);
return Flags.HasAnyFlag(VehicleSeatFlags.Uncontrolled | VehicleSeatFlags.Unk18)
|| FlagsB.HasAnyFlag(VehicleSeatFlagsB.UsableForced | VehicleSeatFlagsB.UsableForced2 |
VehicleSeatFlagsB.UsableForced3 | VehicleSeatFlagsB.UsableForced4);
}
public bool IsEjectable() { return Flags[1].HasAnyFlag((uint)VehicleSeatFlagsB.Ejectable); }
public bool IsEjectable() { return FlagsB.HasAnyFlag(VehicleSeatFlagsB.Ejectable); }
}
}
+8 -8
View File
@@ -23,20 +23,20 @@ namespace Game.DataStorage
public sealed class WMOAreaTableRecord
{
public string AreaName;
public int WMOGroupID; // used in group WMO
public int WmoGroupID; // used in group WMO
public ushort AmbienceID;
public ushort ZoneMusic;
public ushort IntroSound;
public ushort AreaTableID;
public ushort UWIntroSound;
public ushort UWAmbience;
public sbyte NameSet; // used in adt file
public ushort UwIntroSound;
public ushort UwAmbience;
public sbyte NameSetID; // used in adt file
public byte SoundProviderPref;
public byte SoundProviderPrefUnderwater;
public byte Flags;
public uint Id;
public byte UWZoneMusic;
public uint WMOID; // used in root WMO
public byte UwZoneMusic;
public uint WmoID; // used in root WMO
}
public sealed class WorldEffectRecord
@@ -66,9 +66,9 @@ namespace Game.DataStorage
public byte LevelRangeMin;
public byte LevelRangeMax;
public byte BountySetID;
public byte BountyBoardLocation;
public byte BountyDisplayLocation;
public uint Id;
public uint PlayerConditionID;
public uint VisibilityPlayerConditionID;
}
public sealed class WorldMapOverlayRecord