BFA Update (still lots of testing to do tho)

This commit is contained in:
hondacrx
2018-12-10 12:46:25 -05:00
parent 468b053946
commit 8e20114e10
256 changed files with 35613 additions and 10459 deletions
+84 -75
View File
@@ -23,21 +23,30 @@ namespace Game.DataStorage
{
public class AchievementRecord
{
public string Title;
public string Description;
public string Title;
public string Reward;
public AchievementFlags Flags;
public uint Id;
public short InstanceID;
public AchievementFaction Faction;
public ushort Supercedes;
public ushort Category;
public ushort UiOrder;
public ushort SharesCriteria;
public AchievementFaction Faction;
public byte Points;
public byte MinimumCriteria;
public uint Id;
public byte Points;
public AchievementFlags Flags;
public ushort UiOrder;
public uint IconFileID;
public ushort CriteriaTree;
public uint CriteriaTree;
public ushort SharesCriteria;
}
public sealed class AnimationDataRecord
{
public uint Id;
public ushort Fallback;
public byte BehaviorTier;
public int BehaviorID;
public int[] Flags = new int[2];
}
public sealed class AnimKitRecord
@@ -60,27 +69,27 @@ namespace Game.DataStorage
public uint Id;
public string ZoneName;
public LocalizedString AreaName;
public AreaFlags[] Flags = new AreaFlags[2];
public float AmbientMultiplier;
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 byte SoundProviderPref;
public byte SoundProviderPrefUnderwater;
public ushort AmbienceID;
public ushort UwAmbience;
public ushort ZoneMusic;
public ushort UwZoneMusic;
public byte ExplorationLevel;
public ushort IntroSound;
public byte UwIntroSound;
public byte FactionGroupMask;
public float AmbientMultiplier;
public byte MountFlags;
public ushort PvpCombastWorldStateID;
public byte WildBattlePetLevelMin;
public byte WildBattlePetLevelMax;
public byte WindSettingsID;
public byte UwIntroSound;
public AreaFlags[] Flags = new AreaFlags[2];
public ushort[] LiquidTypeID = new ushort[4];
public bool IsSanctuary()
{
@@ -94,20 +103,20 @@ namespace Game.DataStorage
public sealed class AreaTriggerRecord
{
public Vector3 Pos;
public uint Id;
public ushort ContinentID;
public sbyte PhaseUseFlags;
public ushort PhaseID;
public ushort PhaseGroupID;
public float Radius;
public float BoxLength;
public float BoxWidth;
public float BoxHeight;
public float BoxYaw;
public ushort ContinentID;
public ushort PhaseID;
public ushort PhaseGroupID;
public ushort ShapeID;
public ushort AreaTriggerActionSetID;
public byte PhaseUseFlags;
public byte ShapeType;
public byte Flags;
public uint Id;
public sbyte ShapeType;
public short ShapeID;
public short AreaTriggerActionSetID;
public sbyte Flags;
}
public sealed class ArmorLocationRecord
@@ -122,67 +131,67 @@ namespace Game.DataStorage
public sealed class ArtifactRecord
{
public uint Id;
public string Name;
public uint UiBarOverlayColor;
public uint UiBarBackgroundColor;
public uint UiNameColor;
public uint Id;
public ushort UiTextureKitID;
public int UiNameColor;
public int UiBarOverlayColor;
public int UiBarBackgroundColor;
public ushort ChrSpecializationID;
public byte ArtifactCategoryID;
public byte Flags;
public byte UiModelSceneID;
public byte ArtifactCategoryID;
public uint UiModelSceneID;
public uint SpellVisualKitID;
}
public sealed class ArtifactAppearanceRecord
{
public string Name;
public uint UiSwatchColor;
public uint Id;
public ushort ArtifactAppearanceSetID;
public byte DisplayIndex;
public uint UnlockPlayerConditionID;
public byte ItemAppearanceModifierID;
public int UiSwatchColor;
public float UiModelSaturation;
public float UiModelOpacity;
public uint OverrideShapeshiftDisplayID;
public ushort ArtifactAppearanceSetID;
public ushort UiCameraID;
public byte DisplayIndex;
public byte ItemAppearanceModifierID;
public byte Flags;
public byte OverrideShapeshiftFormID;
public uint Id;
public ushort UnlockPlayerConditionID;
public byte UiItemAppearanceID;
public byte UiAltItemAppearanceID;
public uint OverrideShapeshiftDisplayID;
public uint UiItemAppearanceID;
public uint UiAltItemAppearanceID;
public byte Flags;
public ushort UiCameraID;
}
public sealed class ArtifactAppearanceSetRecord
{
public string Name;
public string Description;
public uint Id;
public byte DisplayIndex;
public ushort UiCameraID;
public ushort AltHandUICameraID;
public byte DisplayIndex;
public byte ForgeAttachmentOverride;
public sbyte ForgeAttachmentOverride;
public byte Flags;
public uint Id;
public uint ArtifactID;
public byte ArtifactID;
}
public sealed class ArtifactCategoryRecord
{
public uint Id;
public ushort XpMultCurrencyID;
public ushort XpMultCurveID;
public short XpMultCurrencyID;
public short XpMultCurveID;
}
public sealed class ArtifactPowerRecord
{
public Vector2 Pos;
public byte ArtifactID;
public ArtifactPowerFlag Flags;
public byte MaxPurchasableRank;
public byte Tier;
public Vector2 DisplayPos;
public uint Id;
public byte Label;
public byte ArtifactID;
public byte MaxPurchasableRank;
public int Label;
public ArtifactPowerFlag Flags;
public byte Tier;
}
public sealed class ArtifactPowerLinkRecord
@@ -195,17 +204,17 @@ namespace Game.DataStorage
public sealed class ArtifactPowerPickerRecord
{
public uint Id;
public ushort PlayerConditionID;
public uint PlayerConditionID;
}
public sealed class ArtifactPowerRankRecord
{
public uint Id;
public uint SpellID;
public float AuraPointsOverride;
public ushort ItemBonusListID;
public byte RankIndex;
public uint ArtifactPowerID;
public uint SpellID;
public ushort ItemBonusListID;
public float AuraPointsOverride;
public ushort ArtifactPowerID;
}
public sealed class ArtifactQuestXPRecord
@@ -214,31 +223,31 @@ namespace Game.DataStorage
public uint[] Difficulty = new uint[10];
}
public class ArtifactTierRecord
public sealed class ArtifactTierRecord
{
public uint ID;
public byte ArtifactTier;
public byte MaxNumTraits;
public byte MaxArtifactKnowledge;
public byte KnowledgePlayerCondition;
public byte MinimumEmpowerKnowledge;
public uint Id;
public uint ArtifactTier;
public uint MaxNumTraits;
public uint MaxArtifactKnowledge;
public uint KnowledgePlayerCondition;
public uint MinimumEmpowerKnowledge;
}
public class ArtifactUnlockRecord
public sealed class ArtifactUnlockRecord
{
public uint ID;
public ushort ItemBonusListID;
public byte PowerRank;
public uint Id;
public uint PowerID;
public ushort PlayerConditionID;
public uint ArtifactID;
public byte PowerRank;
public ushort ItemBonusListID;
public uint PlayerConditionID;
public byte ArtifactID;
}
public sealed class AuctionHouseRecord
{
public uint Id;
public string Name;
public ushort FactionID;
public ushort FactionID; // id of faction.dbc for player factions associated with city
public byte DepositRate;
public byte ConsignmentRate;
}
+37 -36
View File
@@ -23,24 +23,24 @@ namespace Game.DataStorage
public uint Cost;
}
public sealed class BannedAddOnsRecord
public sealed class BannedAddonsRecord
{
public uint Id;
public string Name;
public string Version;
public byte[] Flags = new byte[4];
public byte Flags;
}
public sealed class BarberShopStyleRecord
{
public string DisplayName;
public string Description;
public uint Id;
public byte Type; // value 0 -> hair, value 2 -> facialhair
public float CostModifier;
public byte Type;
public byte Race;
public byte Sex;
public byte Data;
public uint Id;
public byte Data; // real ID to hair/facial hair
}
public sealed class BattlePetBreedQualityRecord
@@ -53,32 +53,32 @@ namespace Game.DataStorage
public sealed class BattlePetBreedStateRecord
{
public uint Id;
public ushort Value;
public byte BattlePetStateID;
public uint BattlePetBreedID;
public ushort Value;
public byte BattlePetBreedID;
}
public sealed class BattlePetSpeciesRecord
{
public string SourceText;
public string Description;
public uint CreatureID;
public uint IconFileDataID;
public uint SummonSpellID;
public ushort Flags;
public byte PetTypeEnum;
public sbyte SourceTypeEnum;
public string SourceText;
public uint Id;
public byte CardUIModelSceneID;
public byte LoadoutUIModelSceneID;
public uint CreatureID;
public uint SummonSpellID;
public int IconFileDataID;
public byte PetTypeEnum;
public ushort Flags;
public sbyte SourceTypeEnum;
public int CardUIModelSceneID;
public int LoadoutUIModelSceneID;
}
public sealed class BattlePetSpeciesStateRecord
{
public uint Id;
public int Value;
public byte BattlePetStateID;
public uint BattlePetSpeciesID;
public int Value;
public ushort BattlePetSpeciesID;
}
public sealed class BattlemasterListRecord
@@ -88,32 +88,33 @@ namespace Game.DataStorage
public string GameType;
public string ShortDescription;
public string LongDescription;
public int IconFileDataID;
public short[] MapId = new short[16];
public sbyte InstanceType;
public sbyte MinLevel;
public sbyte MaxLevel;
public sbyte RatedPlayers;
public sbyte MinPlayers;
public sbyte MaxPlayers;
public sbyte GroupsAllowed;
public sbyte MaxGroupSize;
public ushort HolidayWorldState;
public ushort RequiredPlayerConditionID;
public byte InstanceType;
public byte GroupsAllowed;
public byte MaxGroupSize;
public byte MinLevel;
public byte MaxLevel;
public byte RatedPlayers;
public byte MinPlayers;
public byte MaxPlayers;
public byte Flags;
public sbyte Flags;
public int IconFileDataID;
public short RequiredPlayerConditionID;
public short[] MapId = new short[16];
}
public sealed class BroadcastTextRecord
{
public uint Id;
public LocalizedString Text;
public LocalizedString Text1;
public uint Id;
public byte LanguageID;
public int ConditionID;
public ushort EmotesID;
public byte Flags;
public uint ChatBubbleDurationMs;
public uint[] SoundEntriesID = new uint[2];
public ushort[] EmoteID = new ushort[3];
public ushort[] EmoteDelay = new ushort[3];
public ushort EmotesID;
public byte LanguageID;
public byte Flags;
public uint ConditionID;
public uint[] SoundEntriesID = new uint[2];
}
}
+140 -109
View File
@@ -20,9 +20,19 @@ using Framework.GameMath;
namespace Game.DataStorage
{
public sealed class Cfg_RegionsRecord
{
public uint Id;
public string Tag;
public ushort RegionID;
public uint Raidorigin; // Date of first raid reset, all other resets are calculated as this date plus interval
public byte RegionGroupMask;
public uint ChallengeOrigin;
}
public sealed class CharacterFacialHairStylesRecord
{
public uint ID;
public uint Id;
public int[] Geoset = new int[5];
public byte RaceID;
public byte SexID;
@@ -31,34 +41,34 @@ namespace Game.DataStorage
public sealed class CharBaseSectionRecord
{
public uint ID;
public uint Id;
public byte LayoutResType;
public CharBaseSectionVariation VariationEnum;
public byte ResolutionVariationEnum;
public byte LayoutResType;
}
public sealed class CharSectionsRecord
{
public uint Id;
public uint[] MaterialResourcesID = new uint[3];
public short Flags;
public byte RaceID;
public byte SexID;
public byte BaseSection;
public sbyte BaseSection;
public byte VariationIndex;
public byte ColorIndex;
public short Flags;
public int[] MaterialResourcesID = new int[3];
}
public sealed class CharStartOutfitRecord
{
public uint Id;
public int[] ItemID = new int[24];
public uint PetDisplayID;
public byte ClassID;
public byte SexID;
public byte OutfitID;
public byte PetFamilyID;
public uint RaceID;
public uint PetDisplayID; // Pet Model ID for starting pet
public byte PetFamilyID; // Pet Family Entry for starting pet
public int[] ItemID = new int[24];
public byte RaceID;
}
public sealed class CharTitlesRecord
@@ -81,75 +91,83 @@ namespace Game.DataStorage
public sealed class ChrClassesRecord
{
public string PetNameToken;
public LocalizedString Name;
public string NameFemale;
public string Filename;
public string NameMale;
public uint FileName;
public string NameFemale;
public string PetNameToken;
public uint Id;
public uint CreateScreenFileDataID;
public uint SelectScreenFileDataID;
public uint LowResScreenFileDataID;
public uint IconFileDataID;
public uint LowResScreenFileDataID;
public int StartingLevel;
public ushort Flags;
public ushort CinematicSequenceID;
public ushort DefaultSpec;
public PowerType DisplayPower;
public byte SpellClassSet;
public byte AttackPowerPerStrength;
public byte AttackPowerPerAgility;
public byte RangedAttackPowerPerAgility;
public byte PrimaryStatPriority;
public uint Id;
public PowerType DisplayPower;
public byte RangedAttackPowerPerAgility;
public byte AttackPowerPerAgility;
public byte AttackPowerPerStrength;
public byte SpellClassSet;
}
public sealed class ChrClassesXPowerTypesRecord
{
public uint Id;
public byte PowerType;
public uint ClassID;
public sbyte PowerType;
public byte ClassID;
}
public sealed class ChrRacesRecord
{
public uint ClientPrefix;
public uint ClientFileString;
public string ClientPrefix;
public string ClientFileString;
public LocalizedString Name;
public string NameFemale;
public string NameLowercase;
public string NameFemaleLowercase;
public uint Id;
public int Flags;
public uint MaleDisplayId;
public uint FemaleDisplayId;
public uint HighResMaleDisplayId;
public uint HighResFemaleDisplayId;
public int CreateScreenFileDataID;
public int SelectScreenFileDataID;
public float[] MaleCustomizeOffset = new float[3];
public float[] FemaleCustomizeOffset = new float[3];
public int LowResScreenFileDataID;
public uint[] AlteredFormStartVisualKitID = new uint[3];
public uint[] AlteredFormFinishVisualKitID = new uint[3];
public int HeritageArmorAchievementID;
public int StartingLevel;
public int UiDisplayOrder;
public int FemaleSkeletonFileDataID;
public int MaleSkeletonFileDataID;
public int HelmVisFallbackRaceID;
public ushort FactionID;
public ushort CinematicSequenceID;
public short ResSicknessSpellID;
public short SplashSoundID;
public ushort CinematicSequenceID;
public sbyte BaseLanguage;
public sbyte CreatureType;
public sbyte Alliance;
public sbyte RaceRelated;
public sbyte UnalteredVisualRaceID;
public sbyte CharComponentTextureLayoutID;
public sbyte CharComponentTexLayoutHiResID;
public sbyte DefaultClassID;
public sbyte NeutralRaceID;
public sbyte DisplayRaceID;
public sbyte CharComponentTexLayoutHiResID;
public uint Id;
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 sbyte MaleModelFallbackRaceID;
public sbyte MaleModelFallbackSex;
public sbyte FemaleModelFallbackRaceID;
public sbyte FemaleModelFallbackSex;
public sbyte MaleTextureFallbackRaceID;
public sbyte MaleTextureFallbackSex;
public sbyte FemaleTextureFallbackRaceID;
public sbyte FemaleTextureFallbackSex;
}
public sealed class ChrSpecializationRecord
@@ -157,16 +175,16 @@ namespace Game.DataStorage
public string Name;
public string FemaleName;
public string Description;
public uint[] MasterySpellID = new uint[PlayerConst.MaxMasterySpells];
public uint Id;
public byte ClassID;
public byte OrderIndex;
public byte PetTalentType;
public byte Role;
public byte PrimaryStatPriority;
public uint Id;
public int SpellIconFileID;
public sbyte PetTalentType;
public sbyte Role;
public ChrSpecializationFlag Flags;
public int SpellIconFileID;
public sbyte PrimaryStatPriority;
public int AnimReplacements;
public uint[] MasterySpellID = new uint[PlayerConst.MaxMasterySpells];
public bool IsPetSpecialization()
{
@@ -176,11 +194,11 @@ namespace Game.DataStorage
public sealed class CinematicCameraRecord
{
public uint ID;
public uint SoundID;
public Vector3 Origin;
public float OriginFacing;
public uint FileDataID;
public uint Id;
public Vector3 Origin; // Position in map used for basis for M2 co-ordinates
public uint SoundID; // Sound ID (voiceover for cinematic)
public float OriginFacing; // Orientation in map used for basis for M2 co
public uint FileDataID; // Model
}
public sealed class CinematicSequencesRecord
@@ -190,6 +208,16 @@ namespace Game.DataStorage
public ushort[] Camera = new ushort[8];
}
public sealed class ContentTuningRecord
{
public uint Id;
public int MinLevel;
public int MaxLevel;
public int Flags;
public int ExpectedStatModID;
public int DifficultyESMID;
}
public sealed class ConversationLineRecord
{
public uint Id;
@@ -206,45 +234,47 @@ namespace Game.DataStorage
public sealed class CreatureDisplayInfoRecord
{
public uint Id;
public float CreatureModelScale;
public ushort ModelID;
public ushort NPCSoundID;
public byte SizeClass;
public byte Flags;
public sbyte Gender;
public uint ExtendedDisplayInfoID;
public uint PortraitTextureFileDataID;
public byte CreatureModelAlpha;
public ushort SoundID;
public float PlayerOverrideScale;
public uint PortraitCreatureDisplayInfoID;
public sbyte SizeClass;
public float CreatureModelScale;
public byte CreatureModelAlpha;
public byte BloodID;
public int ExtendedDisplayInfoID;
public ushort NPCSoundID;
public ushort ParticleColorID;
public uint CreatureGeosetData;
public int PortraitCreatureDisplayInfoID;
public int PortraitTextureFileDataID;
public ushort ObjectEffectPackageID;
public ushort AnimReplacementSetID;
public byte Flags;
public int StateSpellVisualKitID;
public float PlayerOverrideScale;
public float PetInstanceScale; // scale of not own player pets inside dungeons/raids/scenarios
public sbyte UnarmedWeaponType;
public uint StateSpellVisualKitID;
public float PetInstanceScale; // scale of not own player pets inside dungeons/raids/scenarios
public uint MountPoofSpellVisualKitID;
public uint[] TextureVariationFileDataID = new uint[3];
public int MountPoofSpellVisualKitID;
public int DissolveEffectID;
public sbyte Gender;
public int DissolveOutEffectID;
public sbyte CreatureModelMinLod;
public int[] TextureVariationFileDataID = new int[3];
}
public sealed class CreatureDisplayInfoExtraRecord
{
public uint Id;
public uint BakeMaterialResourcesID;
public uint HDBakeMaterialResourcesID;
public byte DisplayRaceID;
public byte DisplaySexID;
public byte DisplayClassID;
public byte SkinID;
public byte FaceID;
public byte HairStyleID;
public byte HairColorID;
public byte FacialHairID;
public sbyte DisplayRaceID;
public sbyte DisplaySexID;
public sbyte DisplayClassID;
public sbyte SkinID;
public sbyte FaceID;
public sbyte HairStyleID;
public sbyte HairColorID;
public sbyte FacialHairID;
public sbyte Flags;
public int BakeMaterialResourcesID;
public int HDBakeMaterialResourcesID;
public byte[] CustomDisplayOption = new byte[3];
public byte Flags;
}
public sealed class CreatureFamilyRecord
@@ -252,46 +282,46 @@ namespace Game.DataStorage
public uint Id;
public LocalizedString Name;
public float MinScale;
public sbyte MinScaleLevel;
public float MaxScale;
public uint IconFileID;
public ushort[] SkillLine = new ushort[2];
public sbyte MaxScaleLevel;
public ushort PetFoodMask;
public byte MinScaleLevel;
public byte MaxScaleLevel;
public byte PetTalentType;
public sbyte PetTalentType;
public int IconFileID;
public short[] SkillLine = new short[2];
}
public sealed class CreatureModelDataRecord
{
public uint Id;
public float ModelScale;
public float[] GeoBox = new float[6];
public uint Flags;
public uint FileDataID;
public uint BloodID;
public uint FootprintTextureID;
public float FootprintTextureLength;
public float FootprintTextureWidth;
public float FootprintParticleScale;
public uint FoleyMaterialID;
public uint FootstepCameraEffectID;
public uint DeathThudCameraEffectID;
public uint SoundID;
public uint SizeClass;
public float CollisionWidth;
public float CollisionHeight;
public float MountHeight;
public float[] GeoBox = new float[6];
public float CollisionHeight;
public float WorldEffectScale;
public uint CreatureGeosetDataID;
public float HoverHeight;
public float AttachedEffectScale;
public float ModelScale;
public float MissileCollisionRadius;
public float MissileCollisionPush;
public float MissileCollisionRaise;
public float MountHeight;
public float OverrideLootEffectScale;
public float OverrideNameScale;
public float OverrideSelectionRadius;
public float TamedPetBaseScale;
public float HoverHeight;
public uint Flags;
public uint FileDataID;
public byte SizeClass;
public uint BloodID;
public byte FootprintTextureID;
public byte FoleyMaterialID;
public byte FootstepCameraEffectID;
public byte DeathThudCameraEffectID;
public uint SoundID;
public uint CreatureGeosetDataID;
}
public sealed class CreatureTypeRecord
@@ -304,16 +334,16 @@ namespace Game.DataStorage
public sealed class CriteriaRecord
{
public uint Id;
public uint Asset;
public uint StartAsset;
public uint FailAsset;
public uint ModifierTreeId;
public ushort StartTimer;
public ushort EligibilityWorldStateID;
public CriteriaTypes Type;
public uint Asset;
public uint ModifierTreeId;
public CriteriaTimedTypes StartEvent;
public uint StartAsset;
public ushort StartTimer;
public byte FailEvent;
public uint FailAsset;
public byte Flags;
public ushort EligibilityWorldStateID;
public byte EligibilityWorldStateValue;
}
@@ -321,12 +351,12 @@ namespace Game.DataStorage
{
public uint Id;
public string Description;
public uint Parent;
public uint Amount;
public CriteriaTreeFlags Flags;
public byte Operator;
public ushort CriteriaID;
public ushort Parent;
public sbyte Operator;
public uint CriteriaID;
public int OrderIndex;
public CriteriaTreeFlags Flags;
}
public sealed class CurrencyTypesRecord
@@ -334,19 +364,20 @@ namespace Game.DataStorage
public uint Id;
public string Name;
public string Description;
public byte CategoryID;
public int InventoryIconFileID;
public uint SpellWeight;
public byte SpellCategory;
public uint MaxQty;
public uint MaxEarnablePerWeek;
public CurrencyFlags Flags;
public byte CategoryID;
public byte SpellCategory;
public byte Quality;
public uint InventoryIconFileID;
public uint SpellWeight;
public uint Flags;
public sbyte Quality;
public int FactionID;
}
public sealed class CurveRecord
{
public uint ID;
public uint Id;
public byte Type;
public byte Flags;
}
+30 -30
View File
@@ -22,59 +22,59 @@ namespace Game.DataStorage
public sealed class DestructibleModelDataRecord
{
public uint Id;
public ushort State0Wmo;
public ushort State1Wmo;
public ushort State2Wmo;
public ushort State3Wmo;
public ushort HealEffectSpeed;
public byte State0ImpactEffectDoodadSet;
public sbyte State0ImpactEffectDoodadSet;
public byte State0AmbientDoodadSet;
public byte State0NameSet;
public byte State1DestructionDoodadSet;
public byte State1ImpactEffectDoodadSet;
public ushort State1Wmo;
public sbyte State1DestructionDoodadSet;
public sbyte State1ImpactEffectDoodadSet;
public byte State1AmbientDoodadSet;
public byte State1NameSet;
public byte State2DestructionDoodadSet;
public byte State2ImpactEffectDoodadSet;
public ushort State2Wmo;
public sbyte State2DestructionDoodadSet;
public sbyte State2ImpactEffectDoodadSet;
public byte State2AmbientDoodadSet;
public byte State2NameSet;
public ushort State3Wmo;
public byte State3InitDoodadSet;
public byte State3AmbientDoodadSet;
public byte State3NameSet;
public byte EjectDirection;
public byte DoNotHighlight;
public ushort State0Wmo;
public byte HealEffect;
public ushort HealEffectSpeed;
public byte State0NameSet;
public byte State1NameSet;
public byte State2NameSet;
public byte State3NameSet;
}
public sealed class DifficultyRecord
{
public uint Id;
public string Name;
public MapTypes InstanceType;
public byte OrderIndex;
public sbyte OldEnumValue;
public byte FallbackDifficultyID;
public byte MinPlayers;
public byte MaxPlayers;
public DifficultyFlags Flags;
public byte ItemContext;
public byte ToggleDifficultyID;
public ushort GroupSizeHealthCurveID;
public ushort GroupSizeDmgCurveID;
public ushort GroupSizeSpellPointsCurveID;
public byte FallbackDifficultyID;
public MapTypes InstanceType;
public byte MinPlayers;
public byte MaxPlayers;
public sbyte OldEnumValue;
public DifficultyFlags Flags;
public byte ToggleDifficultyID;
public byte ItemContext;
public byte OrderIndex;
}
public sealed class DungeonEncounterRecord
{
public LocalizedString Name;
public uint CreatureDisplayID;
public ushort MapID;
public byte DifficultyID;
public byte Bit;
public byte Flags;
public uint Id;
public uint OrderIndex;
public uint SpellIconFileID;
public short MapID;
public sbyte DifficultyID;
public int OrderIndex;
public sbyte Bit;
public int CreatureDisplayID;
public byte Flags;
public int SpellIconFileID;
}
public sealed class DurabilityCostsRecord
+38 -8
View File
@@ -21,30 +21,60 @@ namespace Game.DataStorage
{
public uint Id;
public long RaceMask;
public uint EmoteSlashCommand;
public string EmoteSlashCommand;
public int AnimId;
public uint EmoteFlags;
public uint SpellVisualKitID;
public ushort AnimID;
public byte EmoteSpecProc;
public uint EmoteSpecProcParam;
public uint EventSoundID;
public uint SpellVisualKitId;
public int ClassMask;
public byte EmoteSpecProcParam;
public ushort EmoteSoundID;
}
public sealed class EmotesTextRecord
{
public uint Id;
public string Name;
public ushort EmoteID;
public ushort EmoteId;
}
public sealed class EmotesTextSoundRecord
{
public uint Id;
public byte RaceId;
public byte SexId;
public byte ClassId;
public byte SexId;
public uint SoundId;
public uint EmotesTextId;
public ushort EmotesTextId;
}
public sealed class ExpectedStatRecord
{
public uint Id;
public int ExpansionID;
public float CreatureHealth;
public float PlayerHealth;
public float CreatureAutoAttackDps;
public float CreatureArmor;
public float PlayerMana;
public float PlayerPrimaryStat;
public float PlayerSecondaryStat;
public float ArmorConstant;
public float CreatureSpellDamage;
public uint Lvl;
}
public sealed class ExpectedStatModRecord
{
public uint Id;
public float CreatureHealthMod;
public float PlayerHealthMod;
public float CreatureAutoAttackDPSMod;
public float CreatureArmorMod;
public float PlayerManaMod;
public float PlayerPrimaryStatMod;
public float PlayerSecondaryStatMod;
public float ArmorConstantMod;
public float CreatureSpellDamageMod;
}
}
+22 -19
View File
@@ -22,23 +22,24 @@ namespace Game.DataStorage
{
public sealed class FactionRecord
{
public long[] ReputationRaceMask = new long[4];
public ulong[] ReputationRaceMask = new ulong[4];
public LocalizedString Name;
public string Description;
public uint Id;
public int[] ReputationBase = new int[4];
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[] ParentFactionCap = new byte[2]; // The highest rank the faction will profit from incoming spillover
public byte Expansion;
public byte Flags;
public byte FriendshipRepID;
public byte Flags;
public ushort ParagonFactionID;
public short[] ReputationClassMask = new short[4];
public ushort[] ReputationFlags = new ushort[4];
public int[] ReputationBase = new int[4];
public int[] ReputationMax = new int[4];
public float[] ParentFactionMod = new float[2]; // Faction outputs rep * ParentFactionModOut as spillover reputation
public byte[] ParentFactionCap = new byte[2]; // The highest rank the faction will profit from incoming spillover
// helpers
public bool CanHaveReputation()
{
return ReputationIndex >= 0;
@@ -50,16 +51,18 @@ namespace Game.DataStorage
public uint Id;
public ushort Faction;
public ushort Flags;
public ushort[] Enemies = new ushort[4];
public ushort[] Friend = new ushort[4];
public byte FactionGroup;
public byte FriendGroup;
public byte EnemyGroup;
public ushort[] Enemies = new ushort[4];
public ushort[] Friend = new ushort[4];
// helpers
public bool IsFriendlyTo(FactionTemplateRecord entry)
{
if (Id == entry.Id)
if (this == entry)
return true;
if (entry.Faction != 0)
{
for (int i = 0; i < 4; ++i)
@@ -69,12 +72,13 @@ namespace Game.DataStorage
if (Friend[i] == entry.Faction)
return true;
}
return Convert.ToBoolean(FriendGroup & entry.FactionGroup) || Convert.ToBoolean(FactionGroup & entry.FriendGroup);
return (FriendGroup & entry.FactionGroup) != 0 || (FactionGroup & entry.FriendGroup) != 0;
}
public bool IsHostileTo(FactionTemplateRecord entry)
{
if (Id == entry.Id)
if (this == entry)
return false;
if (entry.Faction != 0)
{
for (int i = 0; i < 4; ++i)
@@ -86,16 +90,15 @@ namespace Game.DataStorage
}
return (EnemyGroup & entry.FactionGroup) != 0;
}
public bool IsHostileToPlayers() { return (EnemyGroup & (uint)FactionMasks.Player) != 0; }
public bool IsHostileToPlayers() { return (EnemyGroup & (byte)FactionMasks.Player) != 0; }
public bool IsNeutralToAll()
{
for (int i = 0; i < 4; ++i)
if (Enemies[i] != 0)
return false;
return EnemyGroup == 0 && FriendGroup == 0;
}
public bool IsContestedGuardFaction() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.ContestedGuard); }
public bool ShouldSparAttack() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.EnemySpar); }
public bool IsContestedGuardFaction() { return (Flags & (ushort)FactionTemplateFlags.ContestedGuard) != 0; }
public bool ShouldSparAttack() { return (Flags & (ushort)FactionTemplateFlags.EnemySpar) != 0; }
}
}
}
+62 -61
View File
@@ -23,12 +23,12 @@ namespace Game.DataStorage
public sealed class GameObjectDisplayInfoRecord
{
public uint Id;
public uint FileDataID;
public Vector3 GeoBoxMin;
public Vector3 GeoBoxMax;
public int FileDataID;
public short ObjectEffectPackageID;
public float OverrideLootEffectScale;
public float OverrideNameScale;
public ushort ObjectEffectPackageID;
}
public sealed class GameObjectsRecord
@@ -36,65 +36,65 @@ namespace Game.DataStorage
public LocalizedString Name;
public Vector3 Pos;
public float[] Rot = new float[4];
public float Scale;
public int[] PropValue = new int[8];
public uint Id;
public ushort OwnerID;
public ushort DisplayID;
public float Scale;
public GameObjectTypes TypeID;
public byte PhaseUseFlags;
public ushort PhaseID;
public ushort PhaseGroupID;
public byte PhaseUseFlags;
public GameObjectTypes TypeID;
public uint Id;
public int[] PropValue = new int[8];
}
public sealed class GarrAbilityRecord
{
public string Name;
public string Description;
public uint IconFileDataID;
public GarrisonAbilityFlags Flags;
public ushort FactionChangeGarrAbilityID;
public uint Id;
public byte GarrAbilityCategoryID;
public byte GarrFollowerTypeID;
public uint Id;
public int IconFileDataID;
public ushort FactionChangeGarrAbilityID;
public GarrisonAbilityFlags Flags;
}
public sealed class GarrBuildingRecord
{
public uint Id;
public string AllianceName;
public string HordeName;
public string AllianceName;
public string Description;
public string Tooltip;
public byte GarrTypeID;
public byte BuildingType;
public uint HordeGameObjectID;
public uint AllianceGameObjectID;
public uint IconFileDataID;
public byte GarrSiteID;
public byte UpgradeLevel;
public int BuildSeconds;
public ushort CurrencyTypeID;
public int CurrencyQty;
public ushort HordeUiTextureKitID;
public ushort AllianceUiTextureKitID;
public int IconFileDataID;
public ushort AllianceSceneScriptPackageID;
public ushort HordeSceneScriptPackageID;
public int MaxAssignments;
public byte ShipmentCapacity;
public ushort GarrAbilityID;
public ushort BonusGarrAbilityID;
public short GoldCost;
public byte GarrSiteID;
public byte BuildingType;
public byte UpgradeLevel;
public ushort GoldCost;
public GarrisonBuildingFlags Flags;
public byte ShipmentCapacity;
public byte GarrTypeID;
public ushort BuildSeconds;
public int CurrencyQty;
public byte MaxAssignments;
}
public sealed class GarrBuildingPlotInstRecord
{
public Vector2 MapOffset;
public ushort UiTextureAtlasMemberID;
public ushort GarrSiteLevelPlotInstID;
public byte GarrBuildingID;
public uint Id;
public byte GarrBuildingID;
public ushort GarrSiteLevelPlotInstID;
public ushort UiTextureAtlasMemberID;
}
public sealed class GarrClassSpecRecord
@@ -102,11 +102,11 @@ namespace Game.DataStorage
public string ClassSpec;
public string ClassSpecMale;
public string ClassSpecFemale;
public ushort UiTextureAtlasMemberID; // UiTextureAtlasMember.db2 ref
public uint Id;
public ushort UiTextureAtlasMemberID;
public ushort GarrFollItemSetID;
public byte FollowerClassLimit;
public byte Flags;
public uint Id;
}
public sealed class GarrFollowerRecord
@@ -114,54 +114,55 @@ namespace Game.DataStorage
public string HordeSourceText;
public string AllianceSourceText;
public string TitleName;
public uint HordeCreatureID;
public uint AllianceCreatureID;
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 HordeUITextureKitID;
public ushort AllianceUITextureKitID;
public uint Id;
public byte GarrTypeID;
public byte GarrFollowerTypeID;
public int HordeCreatureID;
public int AllianceCreatureID;
public byte HordeGarrFollRaceID;
public byte AllianceGarrFollRaceID;
public byte Quality;
public byte HordeGarrClassSpecID;
public byte AllianceGarrClassSpecID;
public byte Quality;
public byte FollowerLevel;
public byte Gender;
public byte Flags;
public ushort ItemLevelWeapon;
public ushort ItemLevelArmor;
public sbyte HordeSourceTypeEnum;
public sbyte AllianceSourceTypeEnum;
public byte GarrTypeID;
public int HordeIconFileDataID;
public int AllianceIconFileDataID;
public ushort HordeGarrFollItemSetID;
public ushort AllianceGarrFollItemSetID;
public ushort HordeUITextureKitID;
public ushort AllianceUITextureKitID;
public byte Vitality;
public byte ChrClassID;
public byte HordeFlavorGarrStringID;
public byte AllianceFlavorGarrStringID;
public uint Id;
public uint HordeSlottingBroadcastTextID;
public uint AllySlottingBroadcastTextID;
public byte ChrClassID;
public byte Flags;
public byte Gender;
}
public sealed class GarrFollowerXAbilityRecord
{
public uint Id;
public ushort GarrAbilityID;
public byte OrderIndex;
public byte FactionIndex;
public uint GarrFollowerID;
public ushort GarrAbilityID;
public ushort GarrFollowerID;
}
public sealed class GarrPlotRecord
{
public uint Id;
public string Name;
public uint AllianceConstructObjID;
public uint HordeConstructObjID;
public byte UiCategoryID;
public byte PlotType;
public uint HordeConstructObjID;
public uint AllianceConstructObjID;
public byte Flags;
public byte UiCategoryID;
public uint[] UpgradeRequirement = new uint[2];
}
@@ -183,14 +184,14 @@ namespace Game.DataStorage
{
public uint Id;
public Vector2 TownHallUiPos;
public uint GarrSiteID;
public byte GarrLevel;
public ushort MapID;
public ushort UiTextureKitID;
public ushort UpgradeMovieID;
public ushort UiTextureKitID;
public byte MaxBuildingLevel;
public ushort UpgradeCost;
public ushort UpgradeGoldCost;
public byte GarrLevel;
public byte GarrSiteID;
public byte MaxBuildingLevel;
}
public sealed class GarrSiteLevelPlotInstRecord
@@ -205,16 +206,16 @@ namespace Game.DataStorage
public sealed class GemPropertiesRecord
{
public uint Id;
public SocketColor Type;
public ushort EnchantId;
public SocketColor Type;
public ushort MinItemLevel;
}
public sealed class GlyphBindableSpellRecord
{
public uint Id;
public uint SpellID;
public uint GlyphPropertiesID;
public int SpellID;
public short GlyphPropertiesID;
}
public sealed class GlyphPropertiesRecord
@@ -230,31 +231,31 @@ namespace Game.DataStorage
{
public uint Id;
public ushort ChrSpecializationID;
public uint GlyphPropertiesID;
public ushort GlyphPropertiesID;
}
public sealed class GuildColorBackgroundRecord
{
public uint Id;
public byte Red;
public byte Green;
public byte Blue;
public byte Green;
}
public sealed class GuildColorBorderRecord
{
public uint Id;
public byte Red;
public byte Green;
public byte Blue;
public byte Green;
}
public sealed class GuildColorEmblemRecord
{
public uint Id;
public byte Red;
public byte Green;
public byte Blue;
public byte Green;
}
public sealed class GuildPerkSpellsRecord
@@ -98,11 +98,6 @@ namespace Game.DataStorage
public float JewelryMultiplier;
}
public sealed class GtHonorLevelRecord
{
public float[] Prestige = new float[33];
}
public sealed class GtHpPerStaRecord
{
public float Health;
@@ -170,6 +165,7 @@ namespace Game.DataStorage
public float Gem2;
public float Gem3;
public float Health;
public float DamageReplaceStat;
}
public sealed class GtXpRecord
+13 -13
View File
@@ -22,30 +22,30 @@ namespace Game.DataStorage
public sealed class HeirloomRecord
{
public string SourceText;
public uint ItemID;
public uint LegacyItemID;
public uint LegacyUpgradedItemID;
public uint StaticUpgradedItemID;
public uint[] UpgradeItemID = new uint[3];
public ushort[] UpgradeItemBonusListID = new ushort[3];
public byte Flags;
public byte SourceTypeEnum;
public uint Id;
public uint ItemID;
public int LegacyUpgradedItemID;
public uint StaticUpgradedItemID;
public sbyte SourceTypeEnum;
public byte Flags;
public int LegacyItemID;
public int[] UpgradeItemID = new int[3];
public ushort[] UpgradeItemBonusListID = new ushort[3];
}
public sealed class HolidaysRecord
{
public uint Id;
public uint[] Date = new uint[SharedConst.MaxHolidayDates]; // dates in unix time starting at January, 1, 2000
public ushort[] Duration = new ushort[SharedConst.MaxHolidayDurations];
public ushort Region;
public byte Looping;
public byte[] CalendarFlags = new byte[SharedConst.MaxHolidayFlags];
public uint HolidayNameID;
public uint HolidayDescriptionID;
public byte Priority;
public sbyte CalendarFilterType;
public byte Flags;
public ushort HolidayNameID;
public ushort HolidayDescriptionID;
public ushort[] Duration = new ushort[SharedConst.MaxHolidayDurations];
public uint[] Date = new uint[SharedConst.MaxHolidayDates]; // dates in unix time starting at January, 1, 2000
public byte[] CalendarFlags = new byte[SharedConst.MaxHolidayFlags];
public int[] TextureFileDataID = new int[3];
}
}
+113 -115
View File
@@ -49,30 +49,29 @@ namespace Game.DataStorage
public sealed class ItemRecord
{
public uint Id;
public uint IconFileDataID;
public ItemClass ClassID;
public byte SubclassID;
public sbyte SoundOverrideSubclassID;
public byte Material;
public InventoryType inventoryType;
public byte SheatheType;
public sbyte SoundOverrideSubclassID;
public int IconFileDataID;
public byte ItemGroupSoundsID;
}
public sealed class ItemAppearanceRecord
{
public uint Id;
public uint ItemDisplayInfoID;
public uint DefaultIconFileDataID;
public uint UIOrder;
public byte DisplayType;
public uint ItemDisplayInfoID;
public int DefaultIconFileDataID;
public int UiOrder;
}
public sealed class ItemArmorQualityRecord
{
public uint Id;
public float[] QualityMod = new float[7];
public ushort ItemLevel;
}
public sealed class ItemArmorShieldRecord
@@ -85,17 +84,17 @@ namespace Game.DataStorage
public sealed class ItemArmorTotalRecord
{
public uint Id;
public short ItemLevel;
public float Cloth;
public float Leather;
public float Mail;
public float Plate;
public ushort ItemLevel;
}
public sealed class ItemBagFamilyRecord
{
public uint Id;
public uint Name;
public string Name;
}
public sealed class ItemBonusRecord
@@ -116,11 +115,11 @@ namespace Game.DataStorage
public sealed class ItemBonusTreeNodeRecord
{
public uint Id;
public byte ItemContext;
public ushort ChildItemBonusTreeID;
public ushort ChildItemBonusListID;
public ushort ChildItemLevelSelectorID;
public byte ItemContext;
public uint ParentItemBonusTreeID;
public ushort ParentItemBonusTreeID;
}
public sealed class ItemChildEquipmentRecord
@@ -135,8 +134,8 @@ namespace Game.DataStorage
{
public uint Id;
public string ClassName;
public sbyte ClassID;
public float PriceModifier;
public byte ClassID;
public byte Flags;
}
@@ -145,7 +144,6 @@ namespace Game.DataStorage
public uint Id;
public uint ItemID;
}
// common struct for:
// ItemDamageAmmo.dbc
// ItemDamageOneHand.dbc
@@ -158,71 +156,71 @@ namespace Game.DataStorage
public sealed class ItemDamageRecord
{
public uint Id;
public float[] Quality = new float[7];
public ushort ItemLevel;
public float[] Quality = new float[7];
}
public sealed class ItemDisenchantLootRecord
{
public uint Id;
public sbyte Subclass;
public byte Quality;
public ushort MinLevel;
public ushort MaxLevel;
public ushort SkillRequired;
public sbyte Subclass;
public byte Quality;
public sbyte ExpansionID;
public uint ClassID;
public byte Class;
}
public sealed class ItemEffectRecord
{
public uint Id;
public int SpellID;
public int CoolDownMSec;
public int CategoryCoolDownMSec;
public short Charges;
public ushort SpellCategoryID;
public ushort ChrSpecializationID;
public byte LegacySlotIndex;
public ItemSpelltriggerType TriggerType;
public uint ParentItemID;
public short Charges;
public int CoolDownMSec;
public int CategoryCoolDownMSec;
public ushort SpellCategoryID;
public int SpellID;
public ushort ChrSpecializationID;
public int ParentItemID;
}
public sealed class ItemExtendedCostRecord
{
public uint Id;
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 ushort RequiredArenaRating;
public byte ArenaBracket; // arena slot restrictions (min slot value)
public byte Flags;
public byte MinFactionID;
public byte MinReputation;
public byte Flags;
public byte RequiredAchievement;
public byte RequiredAchievement; // required personal arena rating
public uint[] ItemID = new uint[ItemConst.MaxItemExtCostItems]; // required item id
public ushort[] ItemCount = new ushort[ItemConst.MaxItemExtCostItems]; // required count of 1st item
public ushort[] CurrencyID = new ushort[ItemConst.MaxItemExtCostCurrencies]; // required curency id
public uint[] CurrencyCount = new uint[ItemConst.MaxItemExtCostCurrencies]; // required curency count
}
public sealed class ItemLevelSelectorRecord
{
public uint ID;
public uint Id;
public ushort MinItemLevel;
public ushort ItemLevelSelectorQualitySetID;
}
public sealed class ItemLevelSelectorQualityRecord
{
public uint ID;
public uint Id;
public uint QualityItemBonusListID;
public byte Quality;
public uint ParentILSQualitySetID;
public sbyte Quality;
public short ParentILSQualitySetID;
}
public sealed class ItemLevelSelectorQualitySetRecord
{
public uint ID;
public ushort IlvlRare;
public ushort IlvlEpic;
public uint Id;
public short IlvlRare;
public short IlvlEpic;
}
public sealed class ItemLimitCategoryRecord
@@ -237,26 +235,26 @@ namespace Game.DataStorage
{
public uint Id;
public sbyte AddQuantity;
public ushort PlayerConditionID;
public uint PlayerConditionID;
public uint ParentItemLimitCategoryID;
}
public sealed class ItemModifiedAppearanceRecord
{
public uint ItemID;
public uint Id;
public uint ItemID;
public byte ItemAppearanceModifierID;
public ushort ItemAppearanceID;
public byte OrderIndex;
public byte TransmogSourceTypeEnum;
public sbyte TransmogSourceTypeEnum;
}
public sealed class ItemPriceBaseRecord
{
public uint Id;
public ushort ItemLevel;
public float Armor;
public float Weapon;
public ushort ItemLevel;
}
public sealed class ItemRandomPropertiesRecord
@@ -276,119 +274,119 @@ namespace Game.DataStorage
public sealed class ItemSearchNameRecord
{
public ulong AllowableRace;
public long AllowableRace;
public string Display;
public uint Id;
public uint[] Flags = new uint[3];
public ushort ItemLevel;
public byte OverallQualityID;
public byte ExpansionID;
public byte RequiredLevel;
public ushort MinFactionID;
public byte MinReputation;
public short AllowableClass;
public int AllowableClass;
public sbyte RequiredLevel;
public ushort RequiredSkill;
public ushort RequiredSkillRank;
public uint RequiredAbility;
public ushort ItemLevel;
public int[] Flags = new int[4];
}
public sealed class ItemSetRecord
{
public uint Id;
public LocalizedString Name;
public uint[] ItemID = new uint[17];
public ushort RequiredSkillRank;
public byte RequiredSkill;
public ItemSetFlags SetFlags;
public uint RequiredSkill;
public ushort RequiredSkillRank;
public uint[] ItemID = new uint[ItemConst.MaxItemSetItems];
}
public sealed class ItemSetSpellRecord
{
public uint Id;
public uint SpellID;
public ushort ChrSpecID;
public uint SpellID;
public byte Threshold;
public uint ItemSetID;
public ushort ItemSetID;
}
public sealed class ItemSparseRecord
{
public uint Id;
public long AllowableRace;
public LocalizedString Display;
public string Display2;
public string Display3;
public string Display4;
public string Description;
public uint[] Flags = new uint[4];
public float PriceRandomValue;
public float PriceVariance;
public uint VendorStackCount;
public uint BuyPrice;
public uint SellPrice;
public uint RequiredAbility;
public uint MaxCount;
public uint Stackable;
public int[] StatPercentEditor = new int[ItemConst.MaxStats];
public float[] StatPercentageOfSocket = new float[ItemConst.MaxStats];
public float ItemRange;
public uint BagFamily;
public float QualityModifier;
public uint DurationInInventory;
public string Display3;
public string Display2;
public string Display1;
public LocalizedString Display;
public float DmgVariance;
public short AllowableClass;
public ushort ItemLevel;
public ushort RequiredSkill;
public ushort RequiredSkillRank;
public ushort MinFactionID;
public short[] ItemStatValue = new short[ItemConst.MaxStats];
public ushort ScalingStatDistributionID;
public ushort ItemDelay;
public ushort PageID;
public ushort StartQuestID;
public ushort LockID;
public ushort RandomSelect;
public ushort ItemRandomSuffixGroupID;
public ushort ItemSet;
public ushort ZoneBound;
public ushort InstanceBound;
public ushort TotemCategoryID;
public ushort SocketMatchEnchantmentId;
public ushort GemProperties;
public ushort LimitCategory;
public ushort RequiredHoliday;
public ushort RequiredTransmogHoliday;
public uint DurationInInventory;
public float QualityModifier;
public uint BagFamily;
public float ItemRange;
public float[] StatPercentageOfSocket = new float[ItemConst.MaxStats];
public int[] StatPercentEditor = new int[ItemConst.MaxStats];
public uint Stackable;
public uint MaxCount;
public uint RequiredAbility;
public uint SellPrice;
public uint BuyPrice;
public uint VendorStackCount;
public float PriceVariance;
public float PriceRandomValue;
public uint[] Flags = new uint[4];
public int FactionRelated;
public ushort ItemNameDescriptionID;
public byte OverallQualityID;
public InventoryType inventoryType;
public sbyte RequiredLevel;
public byte RequiredPVPRank;
public byte RequiredPVPMedal;
public byte MinReputation;
public byte ContainerSlots;
public sbyte[] StatModifierBonusStat = new sbyte[ItemConst.MaxStats];
public byte DamageType;
public byte Bonding;
public byte LanguageID;
public byte PageMaterialID;
public sbyte Material;
public byte SheatheType;
public byte[] SocketType = new byte[ItemConst.MaxGemSockets];
public byte SpellWeightCategory;
public byte SpellWeight;
public byte ArtifactID;
public ushort RequiredTransmogHoliday;
public ushort RequiredHoliday;
public ushort LimitCategory;
public ushort GemProperties;
public ushort SocketMatchEnchantmentId;
public ushort TotemCategoryID;
public ushort InstanceBound;
public ushort ZoneBound;
public ushort ItemSet;
public ushort ItemRandomSuffixGroupID;
public ushort RandomSelect;
public ushort LockID;
public ushort StartQuestID;
public ushort PageID;
public ushort ItemDelay;
public ushort ScalingStatDistributionID;
public ushort MinFactionID;
public ushort RequiredSkillRank;
public ushort RequiredSkill;
public ushort ItemLevel;
public short AllowableClass;
public byte ExpansionID;
public byte ArtifactID;
public byte SpellWeight;
public byte SpellWeightCategory;
public byte[] SocketType = new byte[ItemConst.MaxGemSockets];
public byte SheatheType;
public byte Material;
public byte PageMaterialID;
public byte LanguageID;
public byte Bonding;
public byte DamageType;
public sbyte[] StatModifierBonusStat = new sbyte[ItemConst.MaxStats];
public byte ContainerSlots;
public byte MinReputation;
public byte RequiredPVPMedal;
public byte RequiredPVPRank;
public sbyte RequiredLevel;
public InventoryType inventoryType;
public byte OverallQualityID;
}
public sealed class ItemSpecRecord
{
public uint Id;
public ushort SpecializationID;
public byte MinLevel;
public byte MaxLevel;
public byte ItemType;
public ItemSpecStat PrimaryStat;
public ItemSpecStat SecondaryStat;
public ushort SpecializationID;
}
public sealed class ItemSpecOverrideRecord
@@ -401,11 +399,11 @@ namespace Game.DataStorage
public sealed class ItemUpgradeRecord
{
public uint Id;
public uint CurrencyAmount;
public ushort PrerequisiteID;
public ushort CurrencyType;
public byte ItemUpgradePathID;
public byte ItemLevelIncrement;
public ushort PrerequisiteID;
public ushort CurrencyType;
public uint CurrencyAmount;
}
public sealed class ItemXBonusTreeRecord
+30 -28
View File
@@ -25,37 +25,37 @@ namespace Game.DataStorage
public uint Id;
public LocalizedString Name;
public string Description;
public LfgFlags Flags;
public float MinGear;
public byte MinLevel;
public ushort MaxLevel;
public ushort TargetLevelMax;
public LfgType TypeID;
public byte Subtype;
public sbyte Faction;
public int IconTextureFileID;
public int RewardsBgTextureFileID;
public int PopupBgTextureFileID;
public byte ExpansionLevel;
public short MapID;
public Difficulty DifficultyID;
public float MinGear;
public byte GroupID;
public byte OrderIndex;
public uint RequiredPlayerConditionId;
public byte TargetLevel;
public byte TargetLevelMin;
public ushort TargetLevelMax;
public ushort RandomID;
public ushort ScenarioID;
public ushort FinalEncounterID;
public ushort BonusReputationAmount;
public ushort MentorItemLevel;
public ushort RequiredPlayerConditionId;
public byte MinLevel;
public byte TargetLevel;
public byte TargetLevelMin;
public Difficulty DifficultyID;
public LfgType TypeID;
public byte Faction;
public byte ExpansionLevel;
public byte OrderIndex;
public byte GroupID;
public byte CountTank;
public byte CountHealer;
public byte CountDamage;
public byte MinCountTank;
public byte MinCountHealer;
public byte MinCountDamage;
public byte Subtype;
public ushort BonusReputationAmount;
public ushort MentorItemLevel;
public byte MentorCharLevel;
public int IconTextureFileID;
public int RewardsBgTextureFileID;
public int PopupBgTextureFileID;
public LfgFlags[] Flags = new LfgFlags[2];
// Helpers
public uint Entry() { return (uint)(Id + ((int)TypeID << 24)); }
@@ -67,7 +67,7 @@ namespace Game.DataStorage
public Vector3 GameCoords;
public float GameFalloffStart;
public float GameFalloffEnd;
public ushort ContinentID;
public short ContinentID;
public ushort[] LightParamsID = new ushort[8];
}
@@ -76,29 +76,31 @@ namespace Game.DataStorage
public uint Id;
public string Name;
public string[] Texture = new string[6];
public ushort Flags;
public byte SoundBank; // used to be "type", maybe needs fixing (works well for now)
public uint SoundID;
public uint SpellID;
public float MaxDarkenDepth;
public float FogDarkenIntensity;
public float AmbDarkenIntensity;
public float DirDarkenIntensity;
public float ParticleScale;
public uint[] Color = new uint[2];
public float[] Float = new float[18];
public uint[] Int = new uint[4];
public ushort Flags;
public ushort LightID;
public byte SoundBank;
public float ParticleScale;
public byte ParticleMovement;
public byte ParticleTexSlots;
public byte MaterialID;
public int MinimapStaticCol;
public byte[] FrameCountTexture = new byte[6];
public ushort SoundID;
public int[] Color = new int[2];
public float[] Float = new float[18];
public uint[] Int = new uint[4];
public float[] Coefficient = new float[4];
}
public sealed class LockRecord
{
public uint Id;
public uint[] Index = new uint[SharedConst.MaxLockCase];
public int[] Index = new int[SharedConst.MaxLockCase];
public ushort[] Skill = new ushort[SharedConst.MaxLockCase];
public byte[] LockType = new byte[SharedConst.MaxLockCase];
public byte[] Action = new byte[SharedConst.MaxLockCase];
+50 -48
View File
@@ -35,32 +35,32 @@ namespace Game.DataStorage
public string MapDescription1; // Alliance
public string PvpShortDescription;
public string PvpLongDescription;
public MapFlags[] Flags = new MapFlags[2];
public float MinimapIconScale;
public Vector2 Corpse; // entrance coordinates in ghost mode (in most cases = normal entrance)
public Vector2 Corpse; // entrance coordinates in ghost mode (in most cases = normal entrance)
public byte MapType;
public MapTypes InstanceType;
public byte ExpansionID;
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)
public ushort TimeOfDayOverride;
public short LoadingScreenID;
public short TimeOfDayOverride;
public short ParentMapID;
public short CosmeticParentMapID;
public ushort WindSettingsID;
public MapTypes InstanceType;
public byte MapType;
public byte ExpansionID;
public byte MaxPlayers;
public byte TimeOffset;
public float MinimapIconScale;
public short CorpseMapID; // map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
public byte MaxPlayers;
public short WindSettingsID;
public int ZmpFileDataID;
public MapFlags[] Flags = new MapFlags[2];
//Helpers
// Helpers
public Expansion Expansion() { return (Expansion)ExpansionID; }
public bool IsDungeon() { return (InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid || InstanceType == MapTypes.Scenario) && !IsGarrison(); }
public bool IsNonRaidDungeon() { return InstanceType == MapTypes.Instance; }
public bool Instanceable()
public bool IsDungeon()
{
return InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid
|| InstanceType == MapTypes.Battleground || InstanceType == MapTypes.Arena || InstanceType == MapTypes.Scenario;
return (InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid || InstanceType == MapTypes.Scenario) && !IsGarrison();
}
public bool IsNonRaidDungeon() { return InstanceType == MapTypes.Instance; }
public bool Instanceable() { return InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid || InstanceType == MapTypes.Battleground || InstanceType == MapTypes.Arena || InstanceType == MapTypes.Scenario; }
public bool IsRaid() { return InstanceType == MapTypes.Raid; }
public bool IsBattleground() { return InstanceType == MapTypes.Battleground; }
public bool IsBattleArena() { return InstanceType == MapTypes.Arena; }
@@ -75,6 +75,7 @@ namespace Game.DataStorage
if (CorpseMapID < 0)
return false;
mapid = (uint)CorpseMapID;
x = Corpse.X;
y = Corpse.Y;
@@ -86,22 +87,23 @@ namespace Game.DataStorage
return Id == 0 || Id == 1 || Id == 530 || Id == 571 || Id == 870 || Id == 1116 || Id == 1220;
}
public bool IsDynamicDifficultyMap() { return Flags[0].HasAnyFlag(MapFlags.CanToggleDifficulty); }
public bool IsGarrison() { return Flags[0].HasAnyFlag(MapFlags.Garrison); }
public bool IsDynamicDifficultyMap() { return (Flags[0] & MapFlags.CanToggleDifficulty) != 0; }
public bool IsGarrison() { return (Flags[0] & MapFlags.Garrison) != 0; }
}
public sealed class MapDifficultyRecord
{
public uint Id;
public LocalizedString Message; // m_message_lang (text showed when transfer to map failed)
public byte DifficultyID;
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 ItemContext;
public LocalizedString Message; // m_message_lang (text showed when transfer to map failed)
public uint ItemContextPickerID;
public uint MapID;
public int ContentTuningID;
public byte DifficultyID;
public byte LockID;
public byte ResetInterval;
public byte MaxPlayers;
public byte ItemContext;
public byte Flags;
public ushort MapID;
public uint GetRaidDuration()
{
@@ -116,42 +118,42 @@ namespace Game.DataStorage
public sealed class ModifierTreeRecord
{
public uint Id;
public uint Asset;
public uint SecondaryAsset;
public uint Parent;
public sbyte Operator;
public sbyte Amount;
public byte Type;
public byte TertiaryAsset;
public byte Operator;
public byte Amount;
public uint Asset;
public int SecondaryAsset;
public sbyte TertiaryAsset;
}
public sealed class MountRecord
{
public string Name;
public string Description;
public string SourceText;
public uint SourceSpellID;
public float MountFlyRideHeight;
public ushort MountTypeID;
public ushort Flags;
public byte SourceTypeEnum;
public string Description;
public uint Id;
public ushort MountTypeID;
public MountFlags Flags;
public sbyte SourceTypeEnum;
public uint SourceSpellID;
public uint PlayerConditionID;
public byte UiModelSceneID;
public float MountFlyRideHeight;
public int UiModelSceneID;
public bool IsSelfMount() { return (Flags & (ushort)MountFlags.SelfMount) != 0; }
}
public bool IsSelfMount() { return (Flags & MountFlags.SelfMount) != 0; }
}
public sealed class MountCapabilityRecord
{
public uint ReqSpellKnownID;
public uint ModSpellAuraID;
public uint Id;
public MountCapabilityFlags Flags;
public ushort ReqRidingSkill;
public ushort ReqAreaID;
public uint ReqSpellAuraID;
public uint ReqSpellKnownID;
public uint ModSpellAuraID;
public short ReqMapID;
public MountCapabilityFlags Flags;
public uint Id;
public byte ReqSpellAuraID;
}
public sealed class MountTypeXCapabilityRecord
@@ -173,9 +175,9 @@ namespace Game.DataStorage
public sealed class MovieRecord
{
public uint Id;
public uint AudioFileDataID;
public uint SubtitleFileDataID;
public byte Volume;
public byte KeyID;
public uint AudioFileDataID;
public uint SubtitleFileDataID;
}
}
@@ -44,4 +44,12 @@ namespace Game.DataStorage
public string Name;
public byte LocaleMask;
}
public sealed class NumTalentsAtLevelRecord
{
public uint Id;
public uint NumTalents;
public uint NumTalentsDeathKnight;
public uint NumTalentsDemonHunter;
}
}
+52 -51
View File
@@ -30,20 +30,17 @@ namespace Game.DataStorage
{
public uint Id;
public ushort PhaseId;
public uint PhaseGroupID;
public ushort PhaseGroupID;
}
public sealed class PlayerConditionRecord
{
public long RaceMask;
public ulong RaceMask;
public string FailureDescription;
public uint Id;
public byte Flags;
public ushort MinLevel;
public ushort MaxLevel;
public int ClassMask;
public sbyte Gender;
public sbyte NativeGender;
public uint SkillLogic;
public byte LanguageID;
public byte MinLanguage;
@@ -51,9 +48,7 @@ namespace Game.DataStorage
public ushort MaxFactionID;
public byte MaxReputation;
public uint ReputationLogic;
public byte CurrentPvpFaction;
public byte MinPVPRank;
public byte MaxPVPRank;
public sbyte CurrentPvpFaction;
public byte PvpMedal;
public uint PrevQuestLogic;
public uint CurrQuestLogic;
@@ -67,34 +62,39 @@ namespace Game.DataStorage
public byte PartyStatus;
public byte LifetimeMaxPVPRank;
public uint AchievementLogic;
public uint LfgLogic;
public sbyte Gender;
public sbyte NativeGender;
public uint AreaLogic;
public uint LfgLogic;
public uint CurrencyLogic;
public ushort QuestKillID;
public uint QuestKillLogic;
public sbyte MinExpansionLevel;
public sbyte MaxExpansionLevel;
public sbyte MinExpansionTier;
public sbyte MaxExpansionTier;
public byte MinGuildLevel;
public byte MaxGuildLevel;
public byte PhaseUseFlags;
public ushort PhaseID;
public uint PhaseGroupID;
public int MinAvgItemLevel;
public int MaxAvgItemLevel;
public ushort MinAvgEquippedItemLevel;
public ushort MaxAvgEquippedItemLevel;
public byte PhaseUseFlags;
public ushort PhaseID;
public uint PhaseGroupID;
public byte Flags;
public sbyte ChrSpecializationIndex;
public sbyte ChrSpecializationRole;
public uint ModifierTreeID;
public sbyte PowerType;
public byte PowerTypeComp;
public byte PowerTypeValue;
public uint ModifierTreeID;
public int WeaponSubclassMask;
public byte MaxGuildLevel;
public byte MinGuildLevel;
public sbyte MaxExpansionTier;
public sbyte MinExpansionTier;
public byte MinPVPRank;
public byte MaxPVPRank;
public ushort[] SkillID = new ushort[4];
public short[] MinSkill = new short[4];
public short[] MaxSkill = new short[4];
public ushort[] MinSkill = new ushort[4];
public ushort[] MaxSkill = new ushort[4];
public uint[] MinFactionID = new uint[3];
public byte[] MinReputation = new byte[3];
public ushort[] PrevQuestID = new ushort[4];
@@ -108,12 +108,12 @@ namespace Game.DataStorage
public uint[] AuraSpellID = new uint[4];
public byte[] AuraStacks = new byte[4];
public ushort[] Achievement = new ushort[4];
public ushort[] AreaID = new ushort[4];
public byte[] LfgStatus = new byte[4];
public byte[] LfgCompare = new byte[4];
public uint[] LfgValue = new uint[4];
public ushort[] AreaID = new ushort[4];
public uint[] CurrencyID = new uint[4];
public byte[] CurrencyCount = new byte[4];
public uint[] CurrencyCount = new uint[4];
public uint[] QuestKillMonster = new uint[6];
public int[] MovementFlags = new int[2];
}
@@ -121,7 +121,7 @@ namespace Game.DataStorage
public sealed class PowerDisplayRecord
{
public uint Id;
public uint GlobalStringBaseTag;
public string GlobalStringBaseTag;
public byte ActualType;
public byte Red;
public byte Green;
@@ -133,27 +133,28 @@ namespace Game.DataStorage
public uint Id;
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 MinPower;
public short MaxBasePower;
public sbyte CenterPower;
public sbyte DefaultPower;
public sbyte DisplayModifier;
public short RegenInterruptTimeMS;
public float RegenPeace;
public float RegenCombat;
public short Flags;
}
public sealed class PrestigeLevelInfoRecord
{
public uint Id;
public string Name;
public uint BadgeTextureFileDataID;
public byte PrestigeLevel;
public int PrestigeLevel;
public int BadgeTextureFileDataID;
public PrestigeLevelInfoFlags Flags;
public int AwardedAchievementID;
public bool IsDisabled() { return Flags.HasAnyFlag(PrestigeLevelInfoFlags.Disabled); }
public bool IsDisabled() { return (Flags & PrestigeLevelInfoFlags.Disabled) != 0; }
}
public sealed class PvpDifficultyRecord
@@ -162,10 +163,13 @@ namespace Game.DataStorage
public byte RangeIndex;
public byte MinLevel;
public byte MaxLevel;
public uint MapID;
public ushort MapID;
// helpers
public BattlegroundBracketId GetBracketId() { return (BattlegroundBracketId)RangeIndex; }
public BattlegroundBracketId GetBracketId()
{
return (BattlegroundBracketId)RangeIndex;
}
}
public sealed class PvpItemRecord
@@ -175,34 +179,31 @@ namespace Game.DataStorage
public byte ItemLevelDelta;
}
public sealed class PvpRewardRecord
{
public uint Id;
public byte HonorLevel;
public byte PrestigeLevel;
public ushort RewardPackID;
}
public sealed class PvpTalentRecord
{
public uint Id;
public string Description;
public uint Id;
public int SpecID;
public uint SpellID;
public uint OverridesSpellID;
public int Flags;
public int ActionBarSpellID;
public int TierID;
public byte ColumnIndex;
public byte Flags;
public byte ClassID;
public ushort SpecID;
public byte Role;
public int PvpTalentCategoryID;
public int LevelRequired;
}
public sealed class PvpTalentUnlockRecord
public sealed class PvpTalentCategoryRecord
{
public uint Id;
public byte TierID;
public byte ColumnIndex;
public byte HonorLevel;
public byte TalentSlotMask;
}
public sealed class PvpTalentSlotUnlockRecord
{
public uint Id;
public sbyte Slot;
public uint LevelRequired;
public uint DeathKnightLevelRequired;
public uint DemonHunterLevelRequired;
}
}
+2 -2
View File
@@ -34,10 +34,10 @@ namespace Game.DataStorage
public sealed class QuestPackageItemRecord
{
public uint Id;
public uint ItemID;
public ushort PackageID;
public QuestPackageFilter DisplayType;
public uint ItemID;
public byte ItemQuantity;
public QuestPackageFilter DisplayType;
}
public sealed class QuestSortRecord
+8 -7
View File
@@ -20,6 +20,7 @@ namespace Game.DataStorage
public sealed class RandPropPointsRecord
{
public uint Id;
public int DamageReplaceStat;
public uint[] Epic = new uint[5];
public uint[] Superior = new uint[5];
public uint[] Good = new uint[5];
@@ -28,19 +29,19 @@ namespace Game.DataStorage
public sealed class RewardPackRecord
{
public uint Id;
public uint Money;
public float ArtifactXPMultiplier;
public byte ArtifactXPDifficulty;
public byte ArtifactXPCategoryID;
public ushort CharTitleID;
public ushort TreasurePickerID;
public uint Money;
public byte ArtifactXPDifficulty;
public float ArtifactXPMultiplier;
public byte ArtifactXPCategoryID;
public uint TreasurePickerID;
}
public sealed class RewardPackXCurrencyTypeRecord
{
public uint Id;
public ushort CurrencyTypeID;
public short Quantity;
public uint CurrencyTypeID;
public int Quantity;
public uint RewardPackID;
}
+138 -140
View File
@@ -21,20 +21,12 @@ using System;
namespace Game.DataStorage
{
public sealed class SandboxScalingRecord
{
public uint Id;
public uint MinLevel;
public uint MaxLevel;
public uint Flags;
}
public sealed class ScalingStatDistributionRecord
{
public uint Id;
public ushort PlayerLevelToItemLevelCurveID;
public byte MinLevel;
public uint MaxLevel;
public int MinLevel;
public int MaxLevel;
}
public sealed class ScenarioRecord
@@ -42,8 +34,9 @@ namespace Game.DataStorage
public uint Id;
public string Name;
public ushort AreaTableID;
public byte Flags;
public byte Type;
public byte Flags;
public uint UiTextureKitID;
}
public sealed class ScenarioStepRecord
@@ -52,12 +45,14 @@ namespace Game.DataStorage
public string Description;
public string Title;
public ushort ScenarioID;
public ushort Supersedes; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
public uint CriteriaTreeId;
public ushort RewardQuestID;
public int RelatedStep; // Bonus step can only be completed if scenario is in the step specified in this field
public ushort Supersedes; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
public byte OrderIndex;
public ScenarioStepFlags Flags;
public ushort CriteriaTreeId;
public byte RelatedStep; // Bonus step can only be completed if scenario is in the step specified in this field
public uint VisibilityPlayerConditionID;
public ushort WidgetSetID;
// helpers
public bool IsBonusObjective()
@@ -95,33 +90,38 @@ namespace Game.DataStorage
public sealed class SkillLineRecord
{
public uint Id;
public LocalizedString DisplayName;
public string Description;
public string AlternateVerb;
public ushort Flags;
public string Description;
public string HordeDisplayName;
public string OverrideSourceInfoDisplayName;
public uint Id;
public SkillCategory CategoryID;
public byte CanLink;
public uint SpellIconFileID;
public byte ParentSkillLineID;
public int SpellIconFileID;
public sbyte CanLink;
public uint ParentSkillLineID;
public int ParentTierIndex;
public ushort Flags;
public int SpellBookSpellID;
}
public sealed class SkillLineAbilityRecord
{
public long RaceMask;
public ulong RaceMask;
public uint Id;
public uint Spell;
public uint SupercedesSpell;
public ushort SkillLine;
public uint Spell;
public short MinSkillLineRank;
public int ClassMask;
public uint SupercedesSpell;
public AbilityLearnType AcquireMethod;
public ushort TrivialSkillLineRankHigh;
public ushort TrivialSkillLineRankLow;
public ushort UniqueBit;
public ushort TradeSkillCategoryID;
public sbyte Flags;
public byte NumSkillUps;
public int ClassMask;
public ushort MinSkillLineRank;
public AbilytyLearnType AcquireMethod;
public byte Flags;
public short UniqueBit;
public short TradeSkillCategoryID;
public ushort SkillupSkillLineID;
}
public sealed class SkillRaceClassInfoRecord
@@ -129,28 +129,28 @@ namespace Game.DataStorage
public uint Id;
public long RaceMask;
public ushort SkillID;
public SkillRaceClassInfoFlags Flags;
public ushort SkillTierID;
public byte Availability;
public byte MinLevel;
public int ClassMask;
public SkillRaceClassInfoFlags Flags;
public sbyte Availability;
public sbyte MinLevel;
public ushort SkillTierID;
}
public sealed class SoundKitRecord
{
public uint Id;
public byte SoundType;
public float VolumeFloat;
public ushort Flags;
public float MinDistance;
public float DistanceCutoff;
public ushort Flags;
public ushort SoundEntriesAdvancedID;
public byte SoundType;
public byte DialogType;
public byte EAXDef;
public uint SoundKitAdvancedID;
public float VolumeVariationPlus;
public float VolumeVariationMinus;
public float PitchVariationPlus;
public float PitchVariationMinus;
public sbyte DialogType;
public float PitchAdjust;
public ushort BusOverwriteID;
public byte MaxInstances;
@@ -159,47 +159,38 @@ namespace Game.DataStorage
public sealed class SpecializationSpellsRecord
{
public string Description;
public uint Id;
public ushort SpecID;
public uint SpellID;
public uint OverridesSpellID;
public ushort SpecID;
public byte DisplayOrder;
public uint Id;
}
public sealed class SpellRecord
{
public uint Id;
public LocalizedString Name;
public string NameSubtext;
public string Description;
public string AuraDescription;
}
public sealed class SpellAuraOptionsRecord
{
public uint Id;
public uint ProcCharges;
public uint ProcTypeMask;
public uint ProcCategoryRecovery;
public ushort CumulativeAura;
public ushort SpellProcsPerMinuteID;
public byte DifficultyID;
public ushort CumulativeAura;
public uint ProcCategoryRecovery;
public byte ProcChance;
public uint ProcCharges;
public ushort SpellProcsPerMinuteID;
public int[] ProcTypeMask = new int[2];
public uint SpellID;
}
public sealed class SpellAuraRestrictionsRecord
{
public uint Id;
public uint CasterAuraSpell;
public uint TargetAuraSpell;
public uint ExcludeCasterAuraSpell;
public uint ExcludeTargetAuraSpell;
public byte DifficultyID;
public byte CasterAuraState;
public byte TargetAuraState;
public byte ExcludeCasterAuraState;
public byte ExcludeTargetAuraState;
public uint CasterAuraSpell;
public uint TargetAuraSpell;
public uint ExcludeCasterAuraSpell;
public uint ExcludeTargetAuraSpell;
public uint SpellID;
}
@@ -207,33 +198,33 @@ namespace Game.DataStorage
{
public uint Id;
public int Base;
public int Minimum;
public short PerLevel;
public int Minimum;
}
public sealed class SpellCastingRequirementsRecord
{
public uint Id;
public uint SpellID;
public ushort MinFactionID;
public ushort RequiredAreasID;
public ushort RequiresSpellFocus;
public byte FacingCasterFlags;
public byte MinReputation;
public ushort MinFactionID;
public sbyte MinReputation;
public ushort RequiredAreasID;
public byte RequiredAuraVision;
public ushort RequiresSpellFocus;
}
public sealed class SpellCategoriesRecord
{
public uint Id;
public byte DifficultyID;
public ushort Category;
public sbyte DefenseType;
public sbyte DispelType;
public sbyte Mechanic;
public sbyte PreventionType;
public ushort StartRecoveryCategory;
public ushort ChargeCategory;
public byte DifficultyID;
public byte DefenseType;
public byte DispelType;
public byte Mechanic;
public byte PreventionType;
public uint SpellID;
}
@@ -241,29 +232,29 @@ namespace Game.DataStorage
{
public uint Id;
public string Name;
public int ChargeRecoveryTime;
public SpellCategoryFlags Flags;
public byte UsesPerWeek;
public byte MaxCharges;
public byte TypeMask;
public int ChargeRecoveryTime;
public int TypeMask;
}
public sealed class SpellClassOptionsRecord
{
public uint Id;
public uint SpellID;
public FlagArray128 SpellClassMask;
public uint ModalNextSpell;
public byte SpellClassSet;
public ushort ModalNextSpell;
public FlagArray128 SpellClassMask;
}
public sealed class SpellCooldownsRecord
{
public uint Id;
public byte DifficultyID;
public uint CategoryRecoveryTime;
public uint RecoveryTime;
public uint StartRecoveryTime;
public byte DifficultyID;
public uint SpellID;
}
@@ -271,41 +262,40 @@ namespace Game.DataStorage
{
public uint Id;
public int Duration;
public uint DurationPerLevel;
public int MaxDuration;
public int DurationPerLevel;
}
public sealed class SpellEffectRecord
{
public uint Id;
public uint Effect;
public int EffectBasePoints;
public byte EffectIndex;
public uint EffectAura;
public uint DifficultyID;
public uint EffectIndex;
public uint Effect;
public float EffectAmplitude;
public int EffectAttributes;
public short EffectAura;
public uint EffectAuraPeriod;
public float EffectBonusCoefficient;
public float EffectChainAmplitude;
public int EffectChainTargets;
public int EffectDieSides;
public uint EffectItemType;
public uint EffectMechanic;
public int EffectMechanic;
public float EffectPointsPerResource;
public float EffectPosFacing;
public float EffectRealPointsPerLevel;
public uint EffectTriggerSpell;
public float EffectPosFacing;
public uint EffectAttributes;
public float BonusCoefficientFromAP;
public float PvpMultiplier;
public float Coefficient;
public float Variance;
public float ResourceCoefficient;
public float GroupSizeBasePointsCoefficient;
public FlagArray128 EffectSpellClassMask;
public float EffectBasePoints;
public int[] EffectMiscValue = new int[2];
public uint[] EffectRadiusIndex = new uint[2];
public uint[] ImplicitTarget = new uint[2];
public FlagArray128 EffectSpellClassMask;
public short[] ImplicitTarget = new short[2];
public uint SpellID;
}
@@ -313,9 +303,9 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
public sbyte EquippedItemClass;
public int EquippedItemInvTypes;
public int EquippedItemSubclass;
public sbyte EquippedItemClass;
}
public sealed class SpellFocusObjectRecord
@@ -328,7 +318,7 @@ namespace Game.DataStorage
{
public uint Id;
public byte DifficultyID;
public ushort InterruptFlags;
public short InterruptFlags;
public uint[] AuraInterruptFlags = new uint[2];
public uint[] ChannelInterruptFlags = new uint[2];
public uint SpellID;
@@ -338,10 +328,12 @@ namespace Game.DataStorage
{
public uint Id;
public string Name;
public string HordeName;
public uint[] EffectArg = new uint[ItemConst.MaxItemEnchantmentEffects];
public float[] EffectScalingPoints = new float[ItemConst.MaxItemEnchantmentEffects];
public uint TransmogCost;
public uint IconFileDataID;
public uint TransmogPlayerConditionID;
public ushort[] EffectPointsMin = new ushort[ItemConst.MaxItemEnchantmentEffects];
public ushort ItemVisual;
public EnchantmentSlotMask Flags;
@@ -350,19 +342,18 @@ namespace Game.DataStorage
public ushort ItemLevel;
public byte Charges;
public ItemEnchantmentType[] Effect = new ItemEnchantmentType[ItemConst.MaxItemEnchantmentEffects];
public sbyte ScalingClass;
public sbyte ScalingClassRestricted;
public byte ConditionID;
public byte MinLevel;
public byte MaxLevel;
public sbyte ScalingClass;
public sbyte ScalingClassRestricted;
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[] Operator = new byte[5];
public byte[] RtOperandType = new byte[5];
public byte[] RtOperand = new byte[5];
@@ -380,10 +371,10 @@ namespace Game.DataStorage
public sealed class SpellLevelsRecord
{
public uint Id;
public byte DifficultyID;
public ushort BaseLevel;
public ushort MaxLevel;
public ushort SpellLevel;
public byte DifficultyID;
public byte MaxPassiveAuraLevel;
public uint SpellID;
}
@@ -391,43 +382,50 @@ namespace Game.DataStorage
public sealed class SpellMiscRecord
{
public uint Id;
public byte DifficultyID;
public ushort CastingTimeIndex;
public ushort DurationIndex;
public ushort RangeIndex;
public byte SchoolMask;
public uint SpellIconFileDataID;
public float Speed;
public uint ActiveIconFileDataID;
public float LaunchDelay;
public byte DifficultyID;
public uint[] Attributes = new uint[14];
public float MinDuration;
public uint SpellIconFileDataID;
public uint ActiveIconFileDataID;
public int[] Attributes = new int[14];
public uint SpellID;
}
public sealed class SpellNameRecord
{
public uint Id; // SpellID
public LocalizedString Name;
}
public sealed class SpellPowerRecord
{
public int ManaCost;
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 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 byte OrderIndex;
public int ManaCost;
public int ManaCostPerLevel;
public int ManaPerSecond;
public uint PowerDisplayID;
public uint AltPowerBarID;
public int AltPowerBarID;
public float PowerCostPct;
public float PowerCostMaxPct;
public float PowerPctPerSecond;
public PowerType PowerType;
public uint RequiredAuraSpellID;
public uint 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 SpellID;
}
public sealed class SpellPowerDifficultyRecord
{
public uint Id;
public byte DifficultyID;
public byte OrderIndex;
public uint Id;
}
public sealed class SpellProcsPerMinuteRecord
@@ -440,10 +438,10 @@ namespace Game.DataStorage
public sealed class SpellProcsPerMinuteModRecord
{
public uint Id;
public float Coeff;
public ushort Param;
public SpellProcsPerMinuteModType Type;
public uint SpellProcsPerMinuteID;
public ushort Param;
public float Coeff;
public ushort SpellProcsPerMinuteID;
}
public sealed class SpellRadiusRecord
@@ -460,9 +458,9 @@ namespace Game.DataStorage
public uint Id;
public string DisplayName;
public string DisplayNameShort;
public SpellRangeFlag Flags;
public float[] RangeMin = new float[2];
public float[] RangeMax = new float[2];
public SpellRangeFlag Flags;
}
public sealed class SpellReagentsRecord
@@ -477,46 +475,46 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
public ushort ScalesFromItemLevel;
public sbyte Class;
public byte MinScalingLevel;
public int Class;
public uint MinScalingLevel;
public uint MaxScalingLevel;
public ushort ScalesFromItemLevel;
}
public sealed class SpellShapeshiftRecord
{
public uint Id;
public uint SpellID;
public sbyte StanceBarOrder;
public uint[] ShapeshiftExclude = new uint[2];
public uint[] ShapeshiftMask = new uint[2];
public byte StanceBarOrder;
}
public sealed class SpellShapeshiftFormRecord
{
public uint Id;
public string Name;
public float DamageVariance;
public SpellShapeshiftFormFlags Flags;
public ushort CombatRoundTime;
public ushort MountTypeID;
public sbyte CreatureType;
public byte BonusActionBar;
public uint AttackIconFileID;
public ushort[] CreatureDisplayID = new ushort[4];
public ushort[] PresetSpellID = new ushort[SpellConst.MaxShapeshift];
public SpellShapeshiftFormFlags Flags;
public int AttackIconFileID;
public sbyte BonusActionBar;
public ushort CombatRoundTime;
public float DamageVariance;
public ushort MountTypeID;
public uint[] CreatureDisplayID = new uint[4];
public uint[] PresetSpellID = new uint[SpellConst.MaxShapeshift];
}
public sealed class SpellTargetRestrictionsRecord
{
public uint Id;
public float ConeDegrees;
public float Width;
public uint Targets;
public ushort TargetCreatureType;
public byte DifficultyID;
public float ConeDegrees;
public byte MaxTargets;
public uint MaxTargetLevel;
public ushort TargetCreatureType;
public int Targets;
public float Width;
public uint SpellID;
}
@@ -524,34 +522,34 @@ namespace Game.DataStorage
{
public uint Id;
public uint SpellID;
public uint[] Totem = new uint[SpellConst.MaxTotems];
public ushort[] RequiredTotemCategoryID = new ushort[SpellConst.MaxTotems];
public uint[] Totem = new uint[SpellConst.MaxTotems];
}
public sealed class SpellXSpellVisualRecord
{
public uint SpellVisualID;
public uint Id;
public float Probability;
public ushort CasterPlayerConditionID;
public ushort CasterUnitConditionID;
public ushort ViewerPlayerConditionID;
public ushort ViewerUnitConditionID;
public uint SpellIconFileID;
public uint ActiveIconFileID;
public byte Flags;
public byte DifficultyID;
public uint SpellVisualID;
public float Probability;
public byte Flags;
public byte Priority;
public int SpellIconFileID;
public int ActiveIconFileID;
public ushort ViewerUnitConditionID;
public uint ViewerPlayerConditionID;
public ushort CasterUnitConditionID;
public uint CasterPlayerConditionID;
public uint SpellID;
}
public sealed class SummonPropertiesRecord
{
public uint Id;
public SummonPropFlags Flags;
public SummonCategory Control;
public ushort Faction;
public uint Faction;
public SummonType Title;
public sbyte Slot;
public int Slot;
public SummonPropFlags Flags;
}
}
+25 -23
View File
@@ -30,48 +30,49 @@ namespace Game.DataStorage
{
public uint Id;
public string Description;
public byte TierID;
public byte Flags;
public byte ColumnIndex;
public byte ClassID;
public ushort SpecID;
public uint SpellID;
public uint OverridesSpellID;
public ushort SpecID;
public byte TierID;
public byte ColumnIndex;
public byte Flags;
public byte[] CategoryMask = new byte[2];
public byte ClassID;
}
public sealed class TaxiNodesRecord
{
public uint Id;
public LocalizedString Name;
public Vector3 Pos;
public uint[] MountCreatureID = new uint[2];
public Vector2 MapOffset;
public float Facing;
public Vector2 FlightMapOffset;
public uint Id;
public ushort ContinentID;
public ushort ConditionID;
public ushort CharacterBitNumber;
public TaxiNodeFlags Flags;
public int UiTextureKitID;
public float Facing;
public uint SpecialIconConditionID;
public uint VisibilityConditionID;
public uint[] MountCreatureID = new uint[2];
}
public sealed class TaxiPathRecord
{
public uint Id;
public ushort FromTaxiNode;
public ushort ToTaxiNode;
public uint Id;
public uint Cost;
}
public sealed class TaxiPathNodeRecord
{
public Vector3 Loc;
public ushort PathID;
public ushort ContinentID;
public byte NodeIndex;
public uint Id;
public ushort PathID;
public uint NodeIndex;
public ushort ContinentID;
public TaxiPathNodeFlags Flags;
public uint Delay;
public ushort ArrivalEventID;
@@ -82,17 +83,17 @@ namespace Game.DataStorage
{
public uint Id;
public string Name;
public uint TotemCategoryMask;
public byte TotemCategoryType;
public int TotemCategoryMask;
}
public sealed class ToyRecord
{
public string SourceText;
public uint Id;
public uint ItemID;
public byte Flags;
public byte SourceTypeEnum;
public uint Id;
public sbyte SourceTypeEnum;
}
public sealed class TransmogHolidayRecord
@@ -104,15 +105,15 @@ namespace Game.DataStorage
public sealed class TransmogSetRecord
{
public string Name;
public ushort ParentTransmogSetID;
public ushort UIOrder;
public byte ExpansionID;
public uint Id;
public byte Flags;
public int TrackingQuestID;
public int ClassMask;
public uint TrackingQuestID;
public int Flags;
public uint TransmogSetGroupID;
public int ItemNameDescriptionID;
public byte TransmogSetGroupID;
public ushort ParentTransmogSetID;
public byte ExpansionID;
public short UiOrder;
}
public sealed class TransmogSetGroupRecord
@@ -132,17 +133,18 @@ namespace Game.DataStorage
public sealed class TransportAnimationRecord
{
public uint Id;
public uint TimeIndex;
public Vector3 Pos;
public byte SequenceID;
public uint TimeIndex;
public uint TransportID;
}
public sealed class TransportRotationRecord
{
public uint Id;
public uint TimeIndex;
public float[] Rot = new float[4];
public uint TimeIndex;
public uint GameObjectsID;
}
}
+59 -8
View File
@@ -14,9 +14,60 @@
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
using Framework.GameMath;
using Framework.Constants;
namespace Game.DataStorage
{
public sealed class UiMapRecord
{
public LocalizedString Name;
public uint Id;
public int ParentUiMapID;
public int Flags;
public int System;
public UiMapType Type;
public uint LevelRangeMin;
public uint LevelRangeMax;
public int BountySetID;
public uint BountyDisplayLocation;
public int VisibilityPlayerConditionID;
public sbyte HelpTextPosition;
public int BkgAtlasID;
}
public sealed class UiMapAssignmentRecord
{
public Vector2 UiMin;
public Vector2 UiMax;
public Vector3[] Region = new Vector3[2];
public uint Id;
public int UiMapID;
public int OrderIndex;
public int MapID;
public int AreaID;
public int WmoDoodadPlacementID;
public int WmoGroupID;
}
public sealed class UiMapLinkRecord
{
public Vector2 UiMin;
public Vector2 UiMax;
public uint Id;
public int ParentUiMapID;
public int OrderIndex;
public int ChildUiMapID;
}
public sealed class UiMapXMapArtRecord
{
public uint Id;
public int PhaseID;
public int UiMapArtID;
public int UiMapID;
}
public sealed class UnitPowerBarRecord
{
public uint Id;
@@ -24,17 +75,17 @@ namespace Game.DataStorage
public string Cost;
public string OutOfError;
public string ToolTip;
public uint MinPower;
public uint MaxPower;
public ushort StartPower;
public byte CenterPower;
public float RegenerationPeace;
public float RegenerationCombat;
public uint[] FileDataID = new uint[6];
public uint[] Color = new uint[6];
public byte BarType;
public ushort Flags;
public float StartInset;
public float EndInset;
public ushort StartPower;
public ushort Flags;
public byte CenterPower;
public byte BarType;
public byte MinPower;
public uint MaxPower;
public uint[] FileDataID = new uint[6];
public uint[] Color = new uint[6];
}
}
+37 -37
View File
@@ -25,6 +25,7 @@ namespace Game.DataStorage
{
public uint Id;
public VehicleFlags Flags;
public byte FlagsB;
public float TurnSpeed;
public float PitchSpeed;
public float PitchMin;
@@ -36,21 +37,22 @@ namespace Game.DataStorage
public float FacingLimitRight;
public float FacingLimitLeft;
public float CameraYawOffset;
public ushort[] SeatID = new ushort[SharedConst.MaxVehicleSeats];
public ushort VehicleUIIndicatorID;
public ushort[] PowerDisplayID = new ushort[3];
public byte FlagsB;
public byte UiLocomotionType;
public ushort MissileTargetingID;
public ushort VehicleUIIndicatorID;
public int MissileTargetingID;
public ushort[] SeatID = new ushort[8];
public ushort[] PowerDisplayID = new ushort[3];
}
public sealed class VehicleSeatRecord
{
public uint Id;
public Vector3 AttachmentOffset;
public Vector3 CameraOffset;
public VehicleSeatFlags Flags;
public VehicleSeatFlagsB FlagsB;
public uint FlagsC;
public Vector3 AttachmentOffset;
public int FlagsC;
public sbyte AttachmentID;
public float EnterPreDelay;
public float EnterSpeed;
public float EnterGravity;
@@ -58,6 +60,12 @@ namespace Game.DataStorage
public float EnterMaxDuration;
public float EnterMinArcHeight;
public float EnterMaxArcHeight;
public int EnterAnimStart;
public int EnterAnimLoop;
public int RideAnimStart;
public int RideAnimLoop;
public int RideUpperAnimStart;
public int RideUpperAnimLoop;
public float ExitPreDelay;
public float ExitSpeed;
public float ExitGravity;
@@ -65,49 +73,41 @@ namespace Game.DataStorage
public float ExitMaxDuration;
public float ExitMinArcHeight;
public float ExitMaxArcHeight;
public int ExitAnimStart;
public int ExitAnimLoop;
public int ExitAnimEnd;
public short VehicleEnterAnim;
public sbyte VehicleEnterAnimBone;
public short VehicleExitAnim;
public sbyte VehicleExitAnimBone;
public short VehicleRideAnimLoop;
public sbyte VehicleRideAnimLoopBone;
public sbyte PassengerAttachmentID;
public float PassengerYaw;
public float PassengerPitch;
public float PassengerRoll;
public float VehicleEnterAnimDelay;
public float VehicleExitAnimDelay;
public sbyte VehicleAbilityDisplay;
public uint EnterUISoundID;
public uint ExitUISoundID;
public int UiSkinFileDataID;
public float CameraEnteringDelay;
public float CameraEnteringDuration;
public float CameraExitingDelay;
public float CameraExitingDuration;
public Vector3 CameraOffset;
public float CameraPosChaseRate;
public float CameraFacingChaseRate;
public float CameraEnteringZoom;
public float CameraSeatZoomMin;
public float CameraSeatZoomMax;
public uint UiSkinFileDataID;
public short EnterAnimStart;
public short EnterAnimLoop;
public short RideAnimStart;
public short RideAnimLoop;
public short RideUpperAnimStart;
public short RideUpperAnimLoop;
public short ExitAnimStart;
public short ExitAnimLoop;
public short ExitAnimEnd;
public short VehicleEnterAnim;
public short VehicleExitAnim;
public short VehicleRideAnimLoop;
public ushort EnterAnimKitID;
public ushort RideAnimKitID;
public ushort ExitAnimKitID;
public ushort VehicleEnterAnimKitID;
public ushort VehicleRideAnimKitID;
public ushort VehicleExitAnimKitID;
public ushort CameraModeID;
public sbyte AttachmentID;
public sbyte PassengerAttachmentID;
public sbyte VehicleEnterAnimBone;
public sbyte VehicleExitAnimBone;
public sbyte VehicleRideAnimLoopBone;
public byte VehicleAbilityDisplay;
public uint EnterUISoundID;
public ushort ExitUISoundID;
public short EnterAnimKitID;
public short RideAnimKitID;
public short ExitAnimKitID;
public short VehicleEnterAnimKitID;
public short VehicleRideAnimKitID;
public short VehicleExitAnimKitID;
public short CameraModeID;
public bool CanEnterOrExit()
{
@@ -115,7 +115,7 @@ namespace Game.DataStorage
//If it has anmation for enter/ride, means it can be entered/exited by logic
Flags.HasAnyFlag(VehicleSeatFlags.HasLowerAnimForEnter | VehicleSeatFlags.HasLowerAnimForRide));
}
public bool CanSwitchFromSeat() { return Flags.HasAnyFlag(VehicleSeatFlags.CanSwitch); }
public bool CanSwitchFromSeat() { return (Flags & VehicleSeatFlags.CanSwitch) != 0; }
public bool IsUsableByOverride()
{
return Flags.HasAnyFlag(VehicleSeatFlags.Uncontrolled | VehicleSeatFlags.Unk18)
+27 -66
View File
@@ -23,87 +23,48 @@ namespace Game.DataStorage
public sealed class WMOAreaTableRecord
{
public string AreaName;
public uint Id;
public ushort WmoID; // used in root WMO
public byte NameSetID; // used in adt file
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 NameSetID; // used in adt file
public byte SoundProviderPref;
public byte SoundProviderPrefUnderwater;
public ushort AmbienceID;
public ushort UwAmbience;
public ushort ZoneMusic;
public uint UwZoneMusic;
public ushort IntroSound;
public ushort UwIntroSound;
public ushort AreaTableID;
public byte Flags;
public uint Id;
public byte UwZoneMusic;
public uint WmoID; // used in root WMO
}
public sealed class WorldEffectRecord
{
public uint ID;
public uint TargetAsset;
public ushort CombatConditionID;
public byte TargetType;
public byte WhenToDisplay;
public uint QuestFeedbackEffectID;
public ushort PlayerConditionID;
}
public sealed class WorldMapAreaRecord
{
public string AreaName;
public float LocLeft;
public float LocRight;
public float LocTop;
public float LocBottom;
public uint Flags;
public ushort MapID;
public ushort AreaID;
public short DisplayMapID;
public short DefaultDungeonFloor;
public ushort ParentWorldMapID;
public byte LevelRangeMin;
public byte LevelRangeMax;
public byte BountySetID;
public byte BountyDisplayLocation;
public uint Id;
public uint VisibilityPlayerConditionID;
public uint QuestFeedbackEffectID;
public byte WhenToDisplay;
public byte TargetType;
public int TargetAsset;
public uint PlayerConditionID;
public ushort CombatConditionID;
}
public sealed class WorldMapOverlayRecord
{
public string TextureName;
public uint Id;
public uint UiMapArtID;
public ushort TextureWidth;
public ushort TextureHeight;
public ushort MapAreaID; // idx in WorldMapArea.dbc
public ushort OffsetX;
public uint OffsetY;
public ushort HitRectTop;
public ushort HitRectLeft;
public ushort HitRectBottom;
public ushort HitRectRight;
public ushort PlayerConditionID;
public byte Flags;
public uint[] AreaID = new uint[SharedConst.MaxWorldMapOverlayArea]; // needs checked
}
public sealed class WorldMapTransformsRecord
{
public uint Id;
public Vector3 RegionMin;
public Vector3 RegionMax;
public Vector2 RegionOffset;
public float RegionScale;
public ushort MapID;
public ushort AreaID;
public ushort NewMapID;
public ushort NewDungeonMapID;
public ushort NewAreaID;
public byte Flags;
public int Priority;
public int OffsetX;
public int OffsetY;
public int HitRectTop;
public int HitRectBottom;
public int HitRectLeft;
public int HitRectRight;
public uint PlayerConditionID;
public uint Flags;
public uint[] AreaID = new uint[SharedConst.MaxWorldMapOverlayArea];
}
public sealed class WorldSafeLocsRecord
@@ -111,7 +72,7 @@ namespace Game.DataStorage
public uint Id;
public string AreaName;
public Vector3 Loc;
public float Facing;
public ushort MapID;
public float Facing;
}
}