Ported .Net Core commits:
hondacrx: - Initial commit: Switch to .Net Core 2.0 - Fix build and removed not needed files Fabi: - Updated solution platforms. - Changed folder structure. - Change library target framework to netstandard2.0. - Updated solution platforms again... - Removed windows specific kernel32 function usage (Ctrl-C handler).
This commit is contained in:
@@ -0,0 +1,221 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public class AchievementRecord
|
||||
{
|
||||
public LocalizedString Title;
|
||||
public LocalizedString Description;
|
||||
public AchievementFlags Flags;
|
||||
public LocalizedString Reward;
|
||||
public short MapID;
|
||||
public ushort Supercedes;
|
||||
public ushort Category;
|
||||
public ushort UiOrder;
|
||||
public ushort SharesCriteria;
|
||||
public ushort CriteriaTree;
|
||||
public AchievementFaction Faction;
|
||||
public byte Points;
|
||||
public byte MinimumCriteria;
|
||||
public uint Id;
|
||||
public uint IconFileDataID;
|
||||
}
|
||||
|
||||
public sealed class AnimKitRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint OneShotDuration;
|
||||
public ushort OneShotStopAnimKitID;
|
||||
public ushort LowDefAnimKitID;
|
||||
}
|
||||
|
||||
public sealed class AreaGroupMemberRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort AreaGroupID;
|
||||
public ushort AreaID;
|
||||
}
|
||||
|
||||
public sealed class AreaTableRecord
|
||||
{
|
||||
public uint Id;
|
||||
public AreaFlags[] Flags = new AreaFlags[2];
|
||||
public string ZoneName;
|
||||
public float AmbientMultiplier;
|
||||
public LocalizedString AreaName;
|
||||
public ushort MapId;
|
||||
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 byte ExplorationLevel;
|
||||
public byte FactionGroupMask;
|
||||
public byte MountFlags;
|
||||
public byte WildBattlePetLevelMin;
|
||||
public byte WildBattlePetLevelMax;
|
||||
public byte WindSettingsID;
|
||||
public byte[] UWIntroSound = new byte[2];
|
||||
|
||||
public bool IsSanctuary()
|
||||
{
|
||||
if (MapId == 609)
|
||||
return true;
|
||||
|
||||
return Flags[0].HasAnyFlag(AreaFlags.Sanctuary);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class AreaTriggerRecord
|
||||
{
|
||||
public Vector3 Pos;
|
||||
public float Radius;
|
||||
public float BoxLength;
|
||||
public float BoxWidth;
|
||||
public float BoxHeight;
|
||||
public float BoxYaw;
|
||||
public ushort MapID;
|
||||
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 sealed class ArmorLocationRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float[] Modifier = new float[5];
|
||||
}
|
||||
|
||||
public sealed class ArtifactRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint BarConnectedColor;
|
||||
public uint BarDisconnectedColor;
|
||||
public uint TitleColor;
|
||||
public ushort ClassUiTextureKitID;
|
||||
public ushort SpecID;
|
||||
public byte ArtifactCategoryID;
|
||||
public byte Flags;
|
||||
public uint UiModelSceneID;
|
||||
public uint SpellVisualKitID;
|
||||
}
|
||||
|
||||
public sealed class ArtifactAppearanceRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public uint SwatchColor;
|
||||
public float ModelDesaturation;
|
||||
public float ModelAlpha;
|
||||
public uint ShapeshiftDisplayID;
|
||||
public ushort ArtifactAppearanceSetID;
|
||||
public ushort Unknown;
|
||||
public byte DisplayIndex;
|
||||
public byte AppearanceModID;
|
||||
public byte Flags;
|
||||
public byte ModifiesShapeshiftFormDisplay;
|
||||
public uint Id;
|
||||
public uint PlayerConditionID;
|
||||
public uint ItemAppearanceID;
|
||||
public uint AltItemAppearanceID;
|
||||
}
|
||||
|
||||
public sealed class ArtifactAppearanceSetRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Name2;
|
||||
public ushort UiCameraID;
|
||||
public ushort AltHandUICameraID;
|
||||
public byte ArtifactID;
|
||||
public byte DisplayIndex;
|
||||
public byte AttachmentPoint;
|
||||
public byte Flags;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class ArtifactCategoryRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort ArtifactKnowledgeCurrencyID;
|
||||
public ushort ArtifactKnowledgeMultiplierCurveID;
|
||||
}
|
||||
|
||||
public sealed class ArtifactPowerRecord
|
||||
{
|
||||
public Vector2 Pos;
|
||||
public byte ArtifactID;
|
||||
public ArtifactPowerFlag Flags;
|
||||
public byte MaxRank;
|
||||
public byte ArtifactTier;
|
||||
public uint Id;
|
||||
public int RelicType;
|
||||
}
|
||||
|
||||
public sealed class ArtifactPowerLinkRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort FromArtifactPowerID;
|
||||
public ushort ToArtifactPowerID;
|
||||
}
|
||||
|
||||
public sealed class ArtifactPowerPickerRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint PlayerConditionID;
|
||||
}
|
||||
|
||||
public sealed class ArtifactPowerRankRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public float Value;
|
||||
public ushort ArtifactPowerID;
|
||||
public ushort Unknown;
|
||||
public byte Rank;
|
||||
}
|
||||
|
||||
public sealed class ArtifactQuestXPRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Exp = new uint[10];
|
||||
}
|
||||
|
||||
public sealed class AuctionHouseRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public ushort FactionID;
|
||||
public byte DepositRate;
|
||||
public byte ConsignmentRate;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,119 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class BankBagSlotPricesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Cost;
|
||||
}
|
||||
|
||||
public sealed class BannedAddOnsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public string Version;
|
||||
public byte[] Flags = new byte[4];
|
||||
}
|
||||
|
||||
public sealed class BarberShopStyleRecord
|
||||
{
|
||||
public LocalizedString DisplayName;
|
||||
public LocalizedString Description;
|
||||
public float CostModifier;
|
||||
public byte Type;
|
||||
public byte Race;
|
||||
public byte Sex;
|
||||
public byte Data;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class BattlePetBreedQualityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Modifier;
|
||||
public byte Quality;
|
||||
}
|
||||
|
||||
public sealed class BattlePetBreedStateRecord
|
||||
{
|
||||
public uint Id;
|
||||
public short Value;
|
||||
public byte BreedID;
|
||||
public byte State;
|
||||
}
|
||||
|
||||
public sealed class BattlePetSpeciesRecord
|
||||
{
|
||||
public uint CreatureID;
|
||||
public uint IconFileID;
|
||||
public uint SummonSpellID;
|
||||
public LocalizedString SourceText;
|
||||
public LocalizedString Description;
|
||||
public ushort Flags;
|
||||
public byte PetType;
|
||||
public sbyte Source;
|
||||
public uint Id;
|
||||
public uint CardModelSceneID;
|
||||
public uint LoadoutModelSceneID;
|
||||
}
|
||||
|
||||
public sealed class BattlePetSpeciesStateRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int Value;
|
||||
public ushort SpeciesID;
|
||||
public byte State;
|
||||
}
|
||||
|
||||
public sealed class BattlemasterListRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint IconFileDataID;
|
||||
public LocalizedString GameType;
|
||||
public LocalizedString ShortDescription;
|
||||
public LocalizedString LongDescription;
|
||||
public short[] MapId = new short[16];
|
||||
public ushort HolidayWorldState;
|
||||
public ushort PlayerConditionId;
|
||||
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 sealed class BroadcastTextRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString MaleText;
|
||||
public LocalizedString FemaleText;
|
||||
public ushort[] EmoteID = new ushort[3];
|
||||
public ushort[] EmoteDelay = new ushort[3];
|
||||
public ushort UnkEmoteID;
|
||||
public byte Language;
|
||||
public byte Type;
|
||||
public uint[] SoundID = new uint[2];
|
||||
public uint PlayerConditionID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,357 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class CharacterFacialHairStylesRecord
|
||||
{
|
||||
public uint ID;
|
||||
public uint[] Geoset = new uint[5];
|
||||
public byte RaceID;
|
||||
public byte SexID;
|
||||
public byte VariationID;
|
||||
}
|
||||
|
||||
public sealed class CharBaseSectionRecord
|
||||
{
|
||||
public uint ID;
|
||||
public CharBaseSectionVariation Variation;
|
||||
public byte ResolutionVariation;
|
||||
public byte Resolution;
|
||||
}
|
||||
|
||||
public sealed class CharSectionsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] TextureFileDataID = new uint[3];
|
||||
public ushort Flags;
|
||||
public byte RaceID;
|
||||
public byte SexID;
|
||||
public byte BaseSection;
|
||||
public byte VariationIndex;
|
||||
public byte ColorIndex;
|
||||
}
|
||||
|
||||
public sealed class CharStartOutfitRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int[] ItemID = new int[24];
|
||||
public uint PetDisplayID;
|
||||
public byte RaceID;
|
||||
public byte ClassID;
|
||||
public byte GenderID;
|
||||
public byte OutfitID;
|
||||
public byte PetFamilyID;
|
||||
}
|
||||
|
||||
public sealed class CharTitlesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString NameMale;
|
||||
public LocalizedString NameFemale;
|
||||
public ushort MaskID;
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class ChatChannelsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ChannelDBCFlags Flags;
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Shortcut;
|
||||
public byte FactionGroup;
|
||||
}
|
||||
|
||||
public sealed class ChrClassesRecord
|
||||
{
|
||||
public string PetNameToken;
|
||||
public LocalizedString Name;
|
||||
public LocalizedString NameFemale;
|
||||
public LocalizedString NameMale;
|
||||
public uint FileName;
|
||||
public uint CreateScreenFileDataID;
|
||||
public uint SelectScreenFileDataID;
|
||||
public uint IconFileDataID;
|
||||
public uint LowResScreenFileDataID;
|
||||
public ushort Flags;
|
||||
public ushort CinematicSequenceID;
|
||||
public ushort DefaultSpec;
|
||||
public PowerType PowerType;
|
||||
public byte SpellClassSet;
|
||||
public byte AttackPowerPerStrength;
|
||||
public byte AttackPowerPerAgility;
|
||||
public byte RangedAttackPowerPerAgility;
|
||||
public byte Unk1;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class ChrClassesXPowerTypesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte ClassID;
|
||||
public byte PowerType;
|
||||
}
|
||||
|
||||
public sealed class ChrRacesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Flags;
|
||||
public uint ClientPrefix;
|
||||
public uint ClientFileString;
|
||||
public LocalizedString Name;
|
||||
public LocalizedString NameFemale;
|
||||
public LocalizedString NameMale;
|
||||
public string[] FacialHairCustomization = new string[2];
|
||||
public string HairCustomization;
|
||||
public uint CreateScreenFileDataID;
|
||||
public uint SelectScreenFileDataID;
|
||||
public uint[] MaleCustomizeOffset = new uint[3];
|
||||
public uint[] FemaleCustomizeOffset = new uint[3];
|
||||
public uint LowResScreenFileDataID;
|
||||
public ushort FactionID;
|
||||
public ushort MaleDisplayID;
|
||||
public ushort FemaleDisplayID;
|
||||
public ushort ResSicknessSpellID;
|
||||
public ushort SplashSoundID;
|
||||
public ushort CinematicSequenceID;
|
||||
public byte BaseLanguage;
|
||||
public byte CreatureType;
|
||||
public byte TeamID;
|
||||
public byte RaceRelated;
|
||||
public byte UnalteredVisualRaceID;
|
||||
public byte CharComponentTextureLayoutID;
|
||||
public byte DefaultClassID;
|
||||
public byte NeutralRaceID;
|
||||
public byte ItemAppearanceFrameRaceID;
|
||||
public byte CharComponentTexLayoutHiResID;
|
||||
public uint HighResMaleDisplayID;
|
||||
public uint HighResFemaleDisplayID;
|
||||
public uint[] Unk = new uint[3];
|
||||
}
|
||||
|
||||
public sealed class ChrSpecializationRecord
|
||||
{
|
||||
public uint[] MasterySpellID = new uint[PlayerConst.MaxMasterySpells];
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Name2;
|
||||
public LocalizedString Description;
|
||||
public byte ClassID;
|
||||
public byte OrderIndex;
|
||||
public byte PetTalentType;
|
||||
public byte Role;
|
||||
public byte PrimaryStatOrder;
|
||||
public uint Id;
|
||||
public uint IconFileDataID;
|
||||
public ChrSpecializationFlag Flags;
|
||||
public uint AnimReplacementSetID;
|
||||
|
||||
public bool IsPetSpecialization()
|
||||
{
|
||||
return ClassID == 0;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class CinematicCameraRecord
|
||||
{
|
||||
public uint ID;
|
||||
public uint SoundID;
|
||||
public Vector3 Origin;
|
||||
public float OriginFacing;
|
||||
public uint ModelFileDataID;
|
||||
}
|
||||
|
||||
public sealed class CinematicSequencesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SoundID;
|
||||
public ushort[] Camera = new ushort[8];
|
||||
}
|
||||
|
||||
public sealed class ConversationLineRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint BroadcastTextID;
|
||||
public uint SpellVisualKitID;
|
||||
public uint Duration;
|
||||
public ushort NextLineID;
|
||||
public ushort Unk1;
|
||||
public byte Yell;
|
||||
public byte Unk2;
|
||||
public byte Unk3;
|
||||
}
|
||||
|
||||
public 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[] TextureVariation = new uint[3];
|
||||
public uint PortraitTextureFileDataID;
|
||||
public byte CreatureModelAlpha;
|
||||
public ushort SoundID;
|
||||
public float PlayerModelScale;
|
||||
public uint PortraitCreatureDisplayInfoID;
|
||||
public byte BloodID;
|
||||
public ushort ParticleColorID;
|
||||
public uint CreatureGeosetData;
|
||||
public ushort ObjectEffectPackageID;
|
||||
public ushort AnimReplacementSetID;
|
||||
public sbyte UnarmedWeaponSubclass;
|
||||
public uint StateSpellVisualKitID;
|
||||
public float InstanceOtherPlayerPetScale; // scale of not own player pets inside dungeons/raids/scenarios
|
||||
public uint MountSpellVisualKitID;
|
||||
}
|
||||
|
||||
public sealed class CreatureDisplayInfoExtraRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint FileDataID;
|
||||
public uint HDFileDataID;
|
||||
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 byte[] CustomDisplayOption = new byte[3];
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class CreatureFamilyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float MinScale;
|
||||
public float MaxScale;
|
||||
public LocalizedString Name;
|
||||
public uint IconFileDataID;
|
||||
public ushort[] SkillLine = new ushort[2];
|
||||
public ushort PetFoodMask;
|
||||
public byte MinScaleLevel;
|
||||
public byte MaxScaleLevel;
|
||||
public byte PetTalentType;
|
||||
}
|
||||
|
||||
public sealed class CreatureModelDataRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float ModelScale;
|
||||
public float FootprintTextureLength;
|
||||
public float FootprintTextureWidth;
|
||||
public float FootprintParticleScale;
|
||||
public float CollisionWidth;
|
||||
public float CollisionHeight;
|
||||
public float MountHeight;
|
||||
public float[] GeoBoxMin = new float[3];
|
||||
public float[] GeoBoxMax = new float[3];
|
||||
public float WorldEffectScale;
|
||||
public float AttachedEffectScale;
|
||||
public float MissileCollisionRadius;
|
||||
public float MissileCollisionPush;
|
||||
public float MissileCollisionRaise;
|
||||
public float OverrideLootEffectScale;
|
||||
public float OverrideNameScale;
|
||||
public float OverrideSelectionRadius;
|
||||
public float TamedPetBaseScale;
|
||||
public float HoverHeight;
|
||||
public uint Flags;
|
||||
public uint FileDataID;
|
||||
public uint SizeClass;
|
||||
public uint BloodID;
|
||||
public uint FootprintTextureID;
|
||||
public uint FoleyMaterialID;
|
||||
public uint FootstepEffectID;
|
||||
public uint DeathThudEffectID;
|
||||
public uint SoundID;
|
||||
public uint CreatureGeosetDataID;
|
||||
}
|
||||
|
||||
public sealed class CreatureTypeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class CriteriaRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Asset;
|
||||
public uint StartAsset;
|
||||
public uint FailAsset;
|
||||
public ushort StartTimer;
|
||||
public ushort ModifierTreeId;
|
||||
public ushort EligibilityWorldStateID;
|
||||
public CriteriaTypes Type;
|
||||
public CriteriaTimedTypes StartEvent;
|
||||
public byte FailEvent;
|
||||
public byte Flags;
|
||||
public byte EligibilityWorldStateValue;
|
||||
}
|
||||
|
||||
public sealed class CriteriaTreeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Amount;
|
||||
public LocalizedString Description;
|
||||
public ushort Parent;
|
||||
public CriteriaTreeFlags Flags;
|
||||
public byte Operator;
|
||||
public uint CriteriaID;
|
||||
public int OrderIndex;
|
||||
}
|
||||
|
||||
public sealed class CurrencyTypesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint MaxQty;
|
||||
public uint MaxEarnablePerWeek;
|
||||
public CurrencyFlags Flags;
|
||||
public LocalizedString Description;
|
||||
public byte CategoryID;
|
||||
public byte SpellCategory;
|
||||
public byte Quality;
|
||||
public uint InventoryIconFileDataID;
|
||||
public uint SpellWeight;
|
||||
}
|
||||
|
||||
public sealed class CurveRecord
|
||||
{
|
||||
public uint ID;
|
||||
public byte Type;
|
||||
public byte Unused;
|
||||
}
|
||||
|
||||
public sealed class CurvePointRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float X;
|
||||
public float Y;
|
||||
public ushort CurveID;
|
||||
public byte Index;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class DestructibleModelDataRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort StateDamagedDisplayID;
|
||||
public ushort StateDestroyedDisplayID;
|
||||
public ushort StateRebuildingDisplayID;
|
||||
public ushort StateSmokeDisplayID;
|
||||
public ushort HealEffectSpeed;
|
||||
public byte StateDamagedImpactEffectDoodadSet;
|
||||
public byte StateDamagedAmbientDoodadSet;
|
||||
public byte StateDamagedNameSet;
|
||||
public byte StateDestroyedDestructionDoodadSet;
|
||||
public byte StateDestroyedImpactEffectDoodadSet;
|
||||
public byte StateDestroyedAmbientDoodadSet;
|
||||
public byte StateDestroyedNameSet;
|
||||
public byte StateRebuildingDestructionDoodadSet;
|
||||
public byte StateRebuildingImpactEffectDoodadSet;
|
||||
public byte StateRebuildingAmbientDoodadSet;
|
||||
public byte StateRebuildingNameSet;
|
||||
public byte StateSmokeInitDoodadSet;
|
||||
public byte StateSmokeAmbientDoodadSet;
|
||||
public byte StateSmokeNameSet;
|
||||
public byte EjectDirection;
|
||||
public byte DoNotHighlight;
|
||||
public byte HealEffect;
|
||||
}
|
||||
|
||||
public sealed class DifficultyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
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 ItemBonusTreeModID;
|
||||
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 TextureFileDataID;
|
||||
}
|
||||
|
||||
public sealed class DurabilityCostsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort[] WeaponSubClassCost = new ushort[21];
|
||||
public ushort[] ArmorSubClassCost = new ushort[8];
|
||||
}
|
||||
|
||||
public sealed class DurabilityQualityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float QualityMod;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class EmotesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint EmoteSlashCommand;
|
||||
public uint SpellVisualKitID;
|
||||
public uint EmoteFlags;
|
||||
public int RaceMask;
|
||||
public ushort AnimID;
|
||||
public byte EmoteSpecProc;
|
||||
public uint EmoteSpecProcParam;
|
||||
public uint EmoteSoundID;
|
||||
public int ClassMask;
|
||||
}
|
||||
|
||||
public sealed class EmotesTextRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public ushort EmoteID;
|
||||
}
|
||||
|
||||
public sealed class EmotesTextSoundRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort EmotesTextId;
|
||||
public byte RaceId;
|
||||
public byte SexId;
|
||||
public byte ClassId;
|
||||
public uint SoundId;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,103 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class FactionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] ReputationRaceMask = new uint[4];
|
||||
public int[] ReputationBase = new int[4];
|
||||
public float ParentFactionModIn; // Faction gains incoming rep * ParentFactionModIn
|
||||
public float ParentFactionModOut; // Faction outputs rep * ParentFactionModOut as spillover reputation
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Description;
|
||||
public uint[] ReputationMax = new uint[4];
|
||||
public short ReputationIndex;
|
||||
public ushort[] ReputationClassMask = new ushort[4];
|
||||
public ushort[] ReputationFlags = new ushort[4];
|
||||
public ushort ParentFactionID;
|
||||
public ushort ParagonFactionID;
|
||||
public byte ParentFactionCapIn; // The highest rank the faction will profit from incoming spillover
|
||||
public byte ParentFactionCapOut;
|
||||
public byte Expansion;
|
||||
public byte Flags;
|
||||
public byte FriendshipRepID;
|
||||
|
||||
public bool CanHaveReputation()
|
||||
{
|
||||
return ReputationIndex >= 0;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class FactionTemplateRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort Faction;
|
||||
public ushort Flags;
|
||||
public ushort[] Enemies = new ushort[4];
|
||||
public ushort[] Friends = new ushort[4];
|
||||
public byte Mask;
|
||||
public byte FriendMask;
|
||||
public byte EnemyMask;
|
||||
|
||||
public bool IsFriendlyTo(FactionTemplateRecord entry)
|
||||
{
|
||||
if (Id == entry.Id)
|
||||
return true;
|
||||
if (entry.Faction != 0)
|
||||
{
|
||||
for (int i = 0; i < 4; ++i)
|
||||
if (Enemies[i] == entry.Faction)
|
||||
return false;
|
||||
for (int i = 0; i < 4; ++i)
|
||||
if (Friends[i] == entry.Faction)
|
||||
return true;
|
||||
}
|
||||
return Convert.ToBoolean(FriendMask & entry.Mask) || Convert.ToBoolean(Mask & entry.FriendMask);
|
||||
}
|
||||
public bool IsHostileTo(FactionTemplateRecord entry)
|
||||
{
|
||||
if (Id == entry.Id)
|
||||
return false;
|
||||
if (entry.Faction != 0)
|
||||
{
|
||||
for (int i = 0; i < 4; ++i)
|
||||
if (Enemies[i] == entry.Faction)
|
||||
return true;
|
||||
for (int i = 0; i < 4; ++i)
|
||||
if (Friends[i] == entry.Faction)
|
||||
return false;
|
||||
}
|
||||
return (EnemyMask & entry.Mask) != 0;
|
||||
}
|
||||
public bool IsHostileToPlayers() { return (EnemyMask & (uint)FactionMasks.Player) != 0; }
|
||||
public bool IsNeutralToAll()
|
||||
{
|
||||
for (int i = 0; i < 4; ++i)
|
||||
if (Enemies[i] != 0)
|
||||
return false;
|
||||
|
||||
return EnemyMask == 0 && FriendMask == 0;
|
||||
}
|
||||
public bool IsContestedGuardFaction() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.ContestedGuard); }
|
||||
public bool ShouldSparAttack() { return Flags.HasAnyFlag((ushort)FactionTemplateFlags.EnemySpar); }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,270 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class GameObjectsRecord
|
||||
{
|
||||
public Vector3 Position;
|
||||
public float RotationX;
|
||||
public float RotationY;
|
||||
public float RotationZ;
|
||||
public float RotationW;
|
||||
public float Size;
|
||||
public int[] Data = new int[8];
|
||||
public LocalizedString Name;
|
||||
public ushort MapID;
|
||||
public ushort DisplayID;
|
||||
public ushort PhaseID;
|
||||
public ushort PhaseGroupID;
|
||||
public byte PhaseUseFlags;
|
||||
public GameObjectTypes Type;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class GameObjectDisplayInfoRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint FileDataID;
|
||||
public Vector3 GeoBoxMin;
|
||||
public Vector3 GeoBoxMax;
|
||||
public float OverrideLootEffectScale;
|
||||
public float OverrideNameScale;
|
||||
public ushort ObjectEffectPackageID;
|
||||
}
|
||||
|
||||
public sealed class GarrAbilityRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Description;
|
||||
public uint IconFileDataID;
|
||||
public GarrisonAbilityFlags Flags;
|
||||
public ushort OtherFactionGarrAbilityID;
|
||||
public byte GarrAbilityCategoryID;
|
||||
public byte FollowerTypeID;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class GarrBuildingRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint HordeGameObjectID;
|
||||
public uint AllianceGameObjectID;
|
||||
public LocalizedString NameAlliance;
|
||||
public LocalizedString NameHorde;
|
||||
public LocalizedString Description;
|
||||
public LocalizedString Tooltip;
|
||||
public uint IconFileDataID;
|
||||
public ushort CostCurrencyID;
|
||||
public ushort HordeTexPrefixKitID;
|
||||
public ushort AllianceTexPrefixKitID;
|
||||
public ushort AllianceActivationScenePackageID;
|
||||
public ushort HordeActivationScenePackageID;
|
||||
public ushort FollowerRequiredGarrAbilityID;
|
||||
public ushort FollowerGarrAbilityEffectID;
|
||||
public short CostMoney;
|
||||
public byte Unknown;
|
||||
public byte Type;
|
||||
public byte Level;
|
||||
public GarrisonBuildingFlags Flags;
|
||||
public byte MaxShipments;
|
||||
public byte GarrTypeID;
|
||||
public int BuildDuration;
|
||||
public int CostCurrencyAmount;
|
||||
public int BonusAmount;
|
||||
}
|
||||
|
||||
public sealed class GarrBuildingPlotInstRecord
|
||||
{
|
||||
public Vector2 LandmarkOffset;
|
||||
public ushort UiTextureAtlasMemberID;
|
||||
public ushort GarrSiteLevelPlotInstID;
|
||||
public byte GarrBuildingID;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class GarrClassSpecRecord
|
||||
{
|
||||
public LocalizedString NameMale;
|
||||
public LocalizedString NameFemale;
|
||||
public LocalizedString NameGenderless;
|
||||
public ushort ClassAtlasID; // UiTextureAtlasMember.db2 ref
|
||||
public ushort GarrFollItemSetID;
|
||||
public byte Limit;
|
||||
public byte Flags;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class GarrFollowerRecord
|
||||
{
|
||||
public uint HordeCreatureID;
|
||||
public uint AllianceCreatureID;
|
||||
public LocalizedString HordeSourceText;
|
||||
public LocalizedString AllianceSourceText;
|
||||
public uint HordePortraitIconID;
|
||||
public uint AlliancePortraitIconID;
|
||||
public uint HordeAddedBroadcastTextID;
|
||||
public uint AllianceAddedBroadcastTextID;
|
||||
public LocalizedString Name;
|
||||
public ushort HordeGarrFollItemSetID;
|
||||
public ushort AllianceGarrFollItemSetID;
|
||||
public ushort ItemLevelWeapon;
|
||||
public ushort ItemLevelArmor;
|
||||
public ushort HordeListPortraitTextureKitID;
|
||||
public ushort AllianceListPortraitTextureKitID;
|
||||
public byte FollowerTypeID;
|
||||
public byte HordeUiAnimRaceInfoID;
|
||||
public byte AllianceUiAnimRaceInfoID;
|
||||
public byte Quality;
|
||||
public byte HordeGarrClassSpecID;
|
||||
public byte AllianceGarrClassSpecID;
|
||||
public byte Level;
|
||||
public byte Unknown1;
|
||||
public byte Flags;
|
||||
public sbyte Unknown2;
|
||||
public sbyte Unknown3;
|
||||
public byte GarrTypeID;
|
||||
public byte MaxDurability;
|
||||
public byte Class;
|
||||
public byte HordeFlavorTextGarrStringID;
|
||||
public byte AllianceFlavorTextGarrStringID;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class GarrFollowerXAbilityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort GarrFollowerID;
|
||||
public ushort GarrAbilityID;
|
||||
public byte FactionIndex;
|
||||
}
|
||||
|
||||
public sealed class GarrPlotRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint AllianceConstructionGameObjectID;
|
||||
public uint HordeConstructionGameObjectID;
|
||||
public byte GarrPlotUICategoryID;
|
||||
public byte PlotType;
|
||||
public byte Flags;
|
||||
public uint MinCount;
|
||||
public uint MaxCount;
|
||||
}
|
||||
|
||||
public sealed class GarrPlotBuildingRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte GarrPlotID;
|
||||
public byte GarrBuildingID;
|
||||
}
|
||||
|
||||
public sealed class GarrPlotInstanceRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public byte GarrPlotID;
|
||||
}
|
||||
|
||||
public sealed class GarrSiteLevelRecord
|
||||
{
|
||||
public uint Id;
|
||||
public Vector2 TownHall;
|
||||
public ushort MapID;
|
||||
public ushort SiteID;
|
||||
public ushort MovieID;
|
||||
public ushort UpgradeResourceCost;
|
||||
public ushort UpgradeMoneyCost;
|
||||
public byte Level;
|
||||
public byte UITextureKitID;
|
||||
public byte Level2;
|
||||
}
|
||||
|
||||
public sealed class GarrSiteLevelPlotInstRecord
|
||||
{
|
||||
public uint Id;
|
||||
public Vector2 Landmark;
|
||||
public ushort GarrSiteLevelID;
|
||||
public byte GarrPlotInstanceID;
|
||||
public byte Unknown;
|
||||
}
|
||||
|
||||
public sealed class GemPropertiesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public SocketColor Type;
|
||||
public ushort EnchantID;
|
||||
public ushort MinItemLevel;
|
||||
}
|
||||
|
||||
public sealed class GlyphBindableSpellRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort GlyphPropertiesID;
|
||||
}
|
||||
|
||||
public sealed class GlyphPropertiesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort SpellIconID;
|
||||
public byte Type;
|
||||
public byte GlyphExclusiveCategoryID;
|
||||
}
|
||||
|
||||
public sealed class GlyphRequiredSpecRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort GlyphPropertiesID;
|
||||
public ushort ChrSpecializationID;
|
||||
}
|
||||
|
||||
public sealed class GuildColorBackgroundRecord
|
||||
{
|
||||
public uint Id;
|
||||
|
||||
public byte Red;
|
||||
public byte Green;
|
||||
public byte Blue;
|
||||
}
|
||||
|
||||
public sealed class GuildColorBorderRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte Red;
|
||||
public byte Green;
|
||||
public byte Blue;
|
||||
}
|
||||
|
||||
public sealed class GuildColorEmblemRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte Red;
|
||||
public byte Green;
|
||||
public byte Blue;
|
||||
}
|
||||
|
||||
public sealed class GuildPerkSpellsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,183 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class GtArmorMitigationByLvlRecord
|
||||
{
|
||||
public float Mitigation;
|
||||
}
|
||||
|
||||
public sealed class GtArtifactKnowledgeMultiplierRecord
|
||||
{
|
||||
public float Multiplier;
|
||||
}
|
||||
|
||||
public sealed class GtArtifactLevelXPRecord
|
||||
{
|
||||
public float XP;
|
||||
public float XP2;
|
||||
}
|
||||
|
||||
public sealed class GtBarberShopCostBaseRecord
|
||||
{
|
||||
public float Cost;
|
||||
}
|
||||
|
||||
public sealed class GtBaseMPRecord
|
||||
{
|
||||
public float Rogue;
|
||||
public float Druid;
|
||||
public float Hunter;
|
||||
public float Mage;
|
||||
public float Paladin;
|
||||
public float Priest;
|
||||
public float Shaman;
|
||||
public float Warlock;
|
||||
public float Warrior;
|
||||
public float DeathKnight;
|
||||
public float Monk;
|
||||
public float DemonHunter;
|
||||
}
|
||||
|
||||
public sealed class GtCombatRatingsRecord
|
||||
{
|
||||
public float Amplify;
|
||||
public float DefenseSkill;
|
||||
public float Dodge;
|
||||
public float Parry;
|
||||
public float Block;
|
||||
public float HitMelee;
|
||||
public float HitRanged;
|
||||
public float HitSpell;
|
||||
public float CritMelee;
|
||||
public float CritRanged;
|
||||
public float CritSpell;
|
||||
public float MultiStrike;
|
||||
public float Readiness;
|
||||
public float Speed;
|
||||
public float ResilienceCritTaken;
|
||||
public float ResiliencePlayerDamage;
|
||||
public float Lifesteal;
|
||||
public float HasteMelee;
|
||||
public float HasteRanged;
|
||||
public float HasteSpell;
|
||||
public float Avoidance;
|
||||
public float Sturdiness;
|
||||
public float Unused7;
|
||||
public float Expertise;
|
||||
public float ArmorPenetration;
|
||||
public float Mastery;
|
||||
public float PvPPower;
|
||||
public float Cleave;
|
||||
public float VersatilityDamageDone;
|
||||
public float VersatilityHealingDone;
|
||||
public float VersatilityDamageTaken;
|
||||
public float Unused12;
|
||||
}
|
||||
|
||||
public sealed class GtCombatRatingsMultByILvlRecord
|
||||
{
|
||||
public float ArmorMultiplier;
|
||||
public float WeaponMultiplier;
|
||||
public float TrinketMultiplier;
|
||||
public float JewelryMultiplier;
|
||||
}
|
||||
|
||||
public sealed class GtHonorLevelRecord
|
||||
{
|
||||
public float[] Prestige = new float[33];
|
||||
}
|
||||
|
||||
public sealed class GtHpPerStaRecord
|
||||
{
|
||||
public float Health;
|
||||
}
|
||||
|
||||
public sealed class GtItemSocketCostPerLevelRecord
|
||||
{
|
||||
public float SocketCost;
|
||||
}
|
||||
|
||||
public sealed class GtNpcDamageByClassRecord
|
||||
{
|
||||
public float Rogue;
|
||||
public float Druid;
|
||||
public float Hunter;
|
||||
public float Mage;
|
||||
public float Paladin;
|
||||
public float Priest;
|
||||
public float Shaman;
|
||||
public float Warlock;
|
||||
public float Warrior;
|
||||
public float DeathKnight;
|
||||
public float Monk;
|
||||
public float DemonHunter;
|
||||
}
|
||||
|
||||
public sealed class GtNpcManaCostScalerRecord
|
||||
{
|
||||
public float Scaler;
|
||||
}
|
||||
|
||||
public sealed class GtNpcTotalHpRecord
|
||||
{
|
||||
public float Rogue;
|
||||
public float Druid;
|
||||
public float Hunter;
|
||||
public float Mage;
|
||||
public float Paladin;
|
||||
public float Priest;
|
||||
public float Shaman;
|
||||
public float Warlock;
|
||||
public float Warrior;
|
||||
public float DeathKnight;
|
||||
public float Monk;
|
||||
public float DemonHunter;
|
||||
}
|
||||
|
||||
public sealed class GtSpellScalingRecord
|
||||
{
|
||||
public float Rogue;
|
||||
public float Druid;
|
||||
public float Hunter;
|
||||
public float Mage;
|
||||
public float Paladin;
|
||||
public float Priest;
|
||||
public float Shaman;
|
||||
public float Warlock;
|
||||
public float Warrior;
|
||||
public float DeathKnight;
|
||||
public float Monk;
|
||||
public float DemonHunter;
|
||||
public float Item;
|
||||
public float Consumable;
|
||||
public float Gem1;
|
||||
public float Gem2;
|
||||
public float Gem3;
|
||||
public float Health;
|
||||
}
|
||||
|
||||
public sealed class GtXpRecord
|
||||
{
|
||||
public float Total;
|
||||
public float PerKill;
|
||||
public float Junk;
|
||||
public float Stats;
|
||||
public float Divisor;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,50 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class HeirloomRecord
|
||||
{
|
||||
public uint ItemID;
|
||||
public LocalizedString SourceText;
|
||||
public uint[] OldItem = new uint[2];
|
||||
public uint NextDifficultyItemID;
|
||||
public uint[] UpgradeItemID = new uint[3];
|
||||
public ushort[] ItemBonusListID = new ushort[3];
|
||||
public byte Flags;
|
||||
public byte Source;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
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 byte Priority;
|
||||
public sbyte CalendarFilterType;
|
||||
public byte Flags;
|
||||
public uint HolidayNameID;
|
||||
public uint HolidayDescriptionID;
|
||||
public int[] TextureFileDataID = new int[3];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,389 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class ImportPriceArmorRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float ClothFactor;
|
||||
public float LeatherFactor;
|
||||
public float MailFactor;
|
||||
public float PlateFactor;
|
||||
}
|
||||
|
||||
public sealed class ImportPriceQualityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Factor;
|
||||
}
|
||||
|
||||
public sealed class ImportPriceShieldRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Factor;
|
||||
}
|
||||
|
||||
public sealed class ImportPriceWeaponRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Factor;
|
||||
}
|
||||
|
||||
public sealed class ItemRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint FileDataID;
|
||||
public ItemClass Class;
|
||||
public byte SubClass;
|
||||
public sbyte SoundOverrideSubclass;
|
||||
public sbyte Material;
|
||||
public InventoryType inventoryType;
|
||||
public byte Sheath;
|
||||
public byte GroupSoundsID;
|
||||
}
|
||||
|
||||
public sealed class ItemAppearanceRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint DisplayID;
|
||||
public uint IconFileDataID;
|
||||
public uint UIOrder;
|
||||
public byte ObjectComponentSlot;
|
||||
}
|
||||
|
||||
public sealed class ItemArmorQualityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float[] QualityMod = new float[7];
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemArmorShieldRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float[] Quality = new float[7];
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemArmorTotalRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float[] Value = new float[4];
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemBagFamilyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Name;
|
||||
}
|
||||
|
||||
public sealed class ItemBonusRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int[] Value = new int[2];
|
||||
public ushort BonusListID;
|
||||
public ItemBonusType Type;
|
||||
public byte Index;
|
||||
}
|
||||
|
||||
public sealed class ItemBonusListLevelDeltaRecord
|
||||
{
|
||||
public short Delta;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class ItemBonusTreeNodeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort BonusTreeID;
|
||||
public ushort SubTreeID;
|
||||
public ushort BonusListID;
|
||||
public ushort ItemLevelSelectorID;
|
||||
public byte BonusTreeModID;
|
||||
}
|
||||
|
||||
public sealed class ItemChildEquipmentRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public uint AltItemID;
|
||||
public byte AltEquipmentSlot;
|
||||
}
|
||||
|
||||
public sealed class ItemClassRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float PriceMod;
|
||||
public LocalizedString Name;
|
||||
public byte OldEnumValue;
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class ItemCurrencyCostRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemId;
|
||||
}
|
||||
|
||||
// common struct for:
|
||||
// ItemDamageAmmo.dbc
|
||||
// ItemDamageOneHand.dbc
|
||||
// ItemDamageOneHandCaster.dbc
|
||||
// ItemDamageRanged.dbc
|
||||
// ItemDamageThrown.dbc
|
||||
// ItemDamageTwoHand.dbc
|
||||
// ItemDamageTwoHandCaster.dbc
|
||||
// ItemDamageWand.dbc
|
||||
public sealed class ItemDamageRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float[] DPS = new float[7];
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemDisenchantLootRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort MinItemLevel;
|
||||
public ushort MaxItemLevel;
|
||||
public ushort RequiredDisenchantSkill;
|
||||
public byte ItemClass;
|
||||
public sbyte ItemSubClass;
|
||||
public byte ItemQuality;
|
||||
}
|
||||
|
||||
public sealed class ItemEffectRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public uint SpellID;
|
||||
public int Cooldown;
|
||||
public int CategoryCooldown;
|
||||
public short Charges;
|
||||
public ushort Category;
|
||||
public ushort ChrSpecializationID;
|
||||
public byte OrderIndex;
|
||||
public ItemSpelltriggerType Trigger;
|
||||
}
|
||||
|
||||
public sealed class ItemExtendedCostRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] RequiredItem = new uint[ItemConst.MaxItemExtCostItems]; // required item id
|
||||
public uint[] RequiredCurrencyCount = new uint[ItemConst.MaxItemExtCostCurrencies]; // required curency count
|
||||
public ushort[] RequiredItemCount = new ushort[ItemConst.MaxItemExtCostItems]; // required count of 1st item
|
||||
public ushort RequiredPersonalArenaRating; // required personal arena rating
|
||||
public ushort[] RequiredCurrency = new ushort[ItemConst.MaxItemExtCostCurrencies]; // required curency id
|
||||
public byte RequiredArenaSlot; // arena slot restrictions (min slot value)
|
||||
public byte RequiredFactionId;
|
||||
public byte RequiredFactionStanding;
|
||||
public byte RequirementFlags;
|
||||
public byte RequiredAchievement;
|
||||
}
|
||||
|
||||
public sealed class ItemLevelSelectorRecord
|
||||
{
|
||||
public uint ID;
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemLimitCategoryRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public byte Quantity;
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class ItemModifiedAppearanceRecord
|
||||
{
|
||||
public uint ItemID;
|
||||
public ushort AppearanceID;
|
||||
public byte AppearanceModID;
|
||||
public byte Index;
|
||||
public byte SourceType;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class ItemPriceBaseRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float ArmorFactor;
|
||||
public float WeaponFactor;
|
||||
public ushort ItemLevel;
|
||||
}
|
||||
|
||||
public sealed class ItemRandomPropertiesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public ushort[] Enchantment = new ushort[ItemConst.MaxItemRandomProperties];
|
||||
}
|
||||
|
||||
public sealed class ItemRandomSuffixRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public ushort[] Enchantment = new ushort[ItemConst.MaxItemRandomProperties];
|
||||
public ushort[] AllocationPct = new ushort[ItemConst.MaxItemRandomProperties];
|
||||
}
|
||||
|
||||
public sealed class ItemSearchNameRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint[] Flags = new uint[3];
|
||||
public uint AllowableRace;
|
||||
public uint RequiredSpell;
|
||||
public ushort RequiredReputationFaction;
|
||||
public ushort RequiredSkill;
|
||||
public ushort RequiredSkillRank;
|
||||
public ushort ItemLevel;
|
||||
public byte Quality;
|
||||
public byte RequiredExpansion;
|
||||
public byte RequiredReputationRank;
|
||||
public byte RequiredLevel;
|
||||
public int AllowableClass;
|
||||
}
|
||||
|
||||
public sealed class ItemSetRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint[] ItemID = new uint[17];
|
||||
public ushort RequiredSkillRank;
|
||||
public uint RequiredSkill;
|
||||
public ItemSetFlags Flags;
|
||||
}
|
||||
|
||||
public sealed class ItemSetSpellRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort ItemSetID;
|
||||
public ushort ChrSpecID;
|
||||
public byte Threshold;
|
||||
}
|
||||
|
||||
public sealed class ItemSparseRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Flags = new uint[3];
|
||||
public float Unk1;
|
||||
public float Unk2;
|
||||
public uint BuyCount;
|
||||
public uint BuyPrice;
|
||||
public uint SellPrice;
|
||||
public int AllowableRace;
|
||||
public uint RequiredSpell;
|
||||
public uint MaxCount;
|
||||
public uint Stackable;
|
||||
public int[] ItemStatAllocation = new int[ItemConst.MaxStats];
|
||||
public float[] ItemStatSocketCostMultiplier = new float[ItemConst.MaxStats];
|
||||
public float RangedModRange;
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Name2;
|
||||
public LocalizedString Name3;
|
||||
public LocalizedString Name4;
|
||||
public LocalizedString Description;
|
||||
public uint BagFamily;
|
||||
public float ArmorDamageModifier;
|
||||
public uint Duration;
|
||||
public float StatScalingFactor;
|
||||
public short AllowableClass;
|
||||
public ushort ItemLevel;
|
||||
public ushort RequiredSkill;
|
||||
public ushort RequiredSkillRank;
|
||||
public ushort RequiredReputationFaction;
|
||||
public short[] ItemStatValue = new short[ItemConst.MaxStats];
|
||||
public ushort ScalingStatDistribution;
|
||||
public ushort Delay;
|
||||
public ushort PageText;
|
||||
public ushort StartQuest;
|
||||
public ushort LockID;
|
||||
public ushort RandomProperty;
|
||||
public ushort RandomSuffix;
|
||||
public ushort ItemSet;
|
||||
public ushort Area;
|
||||
public ushort Map;
|
||||
public ushort TotemCategory;
|
||||
public ushort SocketBonus;
|
||||
public ushort GemProperties;
|
||||
public ushort ItemLimitCategory;
|
||||
public ushort HolidayID;
|
||||
public ushort RequiredTransmogHolidayID;
|
||||
public ushort ItemNameDescriptionID;
|
||||
public byte Quality;
|
||||
public InventoryType inventoryType;
|
||||
public sbyte RequiredLevel;
|
||||
public byte RequiredHonorRank;
|
||||
public byte RequiredCityRank;
|
||||
public byte RequiredReputationRank;
|
||||
public byte ContainerSlots;
|
||||
public sbyte[] ItemStatType = new sbyte[ItemConst.MaxStats];
|
||||
public byte DamageType;
|
||||
public byte Bonding;
|
||||
public byte LanguageID;
|
||||
public byte PageMaterial;
|
||||
public sbyte Material;
|
||||
public byte Sheath;
|
||||
public byte[] SocketColor = new byte[ItemConst.MaxGemSockets];
|
||||
public byte CurrencySubstitutionID;
|
||||
public byte CurrencySubstitutionCount;
|
||||
public byte ArtifactID;
|
||||
public byte RequiredExpansion;
|
||||
}
|
||||
|
||||
public sealed class ItemSpecRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort SpecID;
|
||||
public byte MinLevel;
|
||||
public byte MaxLevel;
|
||||
public byte ItemType;
|
||||
public ItemSpecStat PrimaryStat;
|
||||
public ItemSpecStat SecondaryStat;
|
||||
}
|
||||
|
||||
public sealed class ItemSpecOverrideRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public ushort SpecID;
|
||||
}
|
||||
|
||||
public sealed class ItemUpgradeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint CurrencyCost;
|
||||
public ushort PrevItemUpgradeID;
|
||||
public ushort CurrencyID;
|
||||
public byte ItemUpgradePathID;
|
||||
public byte ItemLevelBonus;
|
||||
}
|
||||
|
||||
public sealed class ItemXBonusTreeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public ushort BonusTreeID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,25 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class KeyChainRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte[] Key = new byte[32];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class LfgDungeonsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public LfgFlags Flags;
|
||||
public LocalizedString Description;
|
||||
public float MinItemLevel;
|
||||
public ushort MaxLevel;
|
||||
public ushort TargetLevelMax;
|
||||
public short MapID;
|
||||
public ushort RandomID;
|
||||
public ushort ScenarioID;
|
||||
public ushort LastBossJournalEncounterID;
|
||||
public ushort BonusReputationAmount;
|
||||
public ushort MentorItemLevel;
|
||||
public uint PlayerConditionID;
|
||||
public byte MinLevel;
|
||||
public byte TargetLevel;
|
||||
public byte TargetLevelMin;
|
||||
public Difficulty DifficultyID;
|
||||
public LfgType Type;
|
||||
public byte Faction;
|
||||
public byte Expansion;
|
||||
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 byte MentorCharLevel;
|
||||
public int TextureFileDataID;
|
||||
public int RewardIconFileDataID;
|
||||
public int ProposalTextureFileDataID;
|
||||
|
||||
// Helpers
|
||||
public uint Entry() { return (uint)(Id + ((int)Type << 24)); }
|
||||
}
|
||||
|
||||
public sealed class LightRecord
|
||||
{
|
||||
public uint Id;
|
||||
public Vector3 Pos;
|
||||
public float FalloffStart;
|
||||
public float FalloffEnd;
|
||||
public ushort MapID;
|
||||
public ushort[] LightParamsID = new ushort[8];
|
||||
}
|
||||
|
||||
public sealed class LiquidTypeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint SpellID;
|
||||
public float MaxDarkenDepth;
|
||||
public float FogDarkenIntensity;
|
||||
public float AmbDarkenIntensity;
|
||||
public float DirDarkenIntensity;
|
||||
public float ParticleScale;
|
||||
public string[] Texture = new string[6];
|
||||
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 LiquidType;
|
||||
public byte ParticleMovement;
|
||||
public byte ParticleTexSlots;
|
||||
public byte MaterialID;
|
||||
public byte[] DepthTexCount = new byte[6];
|
||||
public uint SoundID;
|
||||
}
|
||||
|
||||
public sealed class LockRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Index = new uint[SharedConst.MaxLockCase];
|
||||
public ushort[] Skill = new ushort[SharedConst.MaxLockCase];
|
||||
public byte[] LockType = new byte[SharedConst.MaxLockCase];
|
||||
public byte[] Action = new byte[SharedConst.MaxLockCase];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,240 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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 System.IO;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
struct M2SplineKey
|
||||
{
|
||||
public M2SplineKey(BinaryReader reader)
|
||||
{
|
||||
p0 = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
|
||||
p1 = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
|
||||
p2 = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
|
||||
}
|
||||
|
||||
public Vector3 p0;
|
||||
public Vector3 p1;
|
||||
public Vector3 p2;
|
||||
}
|
||||
|
||||
struct M2Header
|
||||
{
|
||||
public M2Header(BinaryReader reader)
|
||||
{
|
||||
Magic = null;/// reader.ReadStringFromChars(4);
|
||||
Version = reader.ReadUInt32();
|
||||
lName = reader.ReadUInt32();
|
||||
ofsName = reader.ReadUInt32();
|
||||
GlobalModelFlags = reader.ReadUInt32();
|
||||
nGlobalSequences = reader.ReadUInt32();
|
||||
ofsGlobalSequences = reader.ReadUInt32();
|
||||
nAnimations = reader.ReadUInt32();
|
||||
ofsAnimations = reader.ReadUInt32();
|
||||
nAnimationLookup = reader.ReadUInt32();
|
||||
ofsAnimationLookup = reader.ReadUInt32();
|
||||
nBones = reader.ReadUInt32();
|
||||
ofsBones = reader.ReadUInt32();
|
||||
nKeyBoneLookup = reader.ReadUInt32();
|
||||
ofsKeyBoneLookup = reader.ReadUInt32();
|
||||
nVertices = reader.ReadUInt32();
|
||||
ofsVertices = reader.ReadUInt32();
|
||||
nViews = reader.ReadUInt32();
|
||||
nSubmeshAnimations = reader.ReadUInt32();
|
||||
ofsSubmeshAnimations = reader.ReadUInt32();
|
||||
nTextures = reader.ReadUInt32();
|
||||
ofsTextures = reader.ReadUInt32();
|
||||
nTransparency = reader.ReadUInt32();
|
||||
ofsTransparency = reader.ReadUInt32();
|
||||
nUVAnimation = reader.ReadUInt32();
|
||||
ofsUVAnimation = reader.ReadUInt32();
|
||||
nTexReplace = reader.ReadUInt32();
|
||||
ofsTexReplace = reader.ReadUInt32();
|
||||
nRenderFlags = reader.ReadUInt32();
|
||||
ofsRenderFlags = reader.ReadUInt32();
|
||||
nBoneLookupTable = reader.ReadUInt32();
|
||||
ofsBoneLookupTable = reader.ReadUInt32();
|
||||
nTexLookup = reader.ReadUInt32();
|
||||
ofsTexLookup = reader.ReadUInt32();
|
||||
nTexUnits = reader.ReadUInt32();
|
||||
ofsTexUnits = reader.ReadUInt32();
|
||||
nTransLookup = reader.ReadUInt32();
|
||||
ofsTransLookup = reader.ReadUInt32();
|
||||
nUVAnimLookup = reader.ReadUInt32();
|
||||
ofsUVAnimLookup = reader.ReadUInt32();
|
||||
BoundingBox = new AxisAlignedBox(new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle()) , new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle()));
|
||||
BoundingSphereRadius = reader.ReadSingle();
|
||||
CollisionBox = new AxisAlignedBox(new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle()), new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle()));
|
||||
CollisionSphereRadius = reader.ReadSingle();
|
||||
nBoundingTriangles = reader.ReadUInt32();
|
||||
ofsBoundingTriangles = reader.ReadUInt32();
|
||||
nBoundingVertices = reader.ReadUInt32();
|
||||
ofsBoundingVertices = reader.ReadUInt32();
|
||||
nBoundingNormals = reader.ReadUInt32();
|
||||
ofsBoundingNormals = reader.ReadUInt32();
|
||||
nAttachments = reader.ReadUInt32();
|
||||
ofsAttachments = reader.ReadUInt32();
|
||||
nAttachLookup = reader.ReadUInt32();
|
||||
ofsAttachLookup = reader.ReadUInt32();
|
||||
nEvents = reader.ReadUInt32();
|
||||
ofsEvents = reader.ReadUInt32();
|
||||
nLights = reader.ReadUInt32();
|
||||
ofsLights = reader.ReadUInt32();
|
||||
nCameras = reader.ReadUInt32();
|
||||
ofsCameras = reader.ReadUInt32();
|
||||
nCameraLookup = reader.ReadUInt32();
|
||||
ofsCameraLookup = reader.ReadUInt32();
|
||||
nRibbonEmitters = reader.ReadUInt32();
|
||||
ofsRibbonEmitters = reader.ReadUInt32();
|
||||
nParticleEmitters = reader.ReadUInt32();
|
||||
ofsParticleEmitters = reader.ReadUInt32();
|
||||
nBlendMaps = reader.ReadUInt32();
|
||||
ofsBlendMaps = reader.ReadUInt32();
|
||||
}
|
||||
|
||||
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
|
||||
public char[] Magic; // "MD20"
|
||||
public uint Version; // The version of the format.
|
||||
public uint lName; // Length of the model's name including the trailing \0
|
||||
public uint ofsName; // Offset to the name, it seems like models can get reloaded by this name.should be unique, i guess.
|
||||
public uint GlobalModelFlags; // 0x0001: tilt x, 0x0002: tilt y, 0x0008: add 2 fields in header, 0x0020: load .phys data (MoP+), 0x0080: has _lod .skin files (MoP?+), 0x0100: is camera related.
|
||||
public uint nGlobalSequences;
|
||||
public uint ofsGlobalSequences; // A list of timestamps.
|
||||
public uint nAnimations;
|
||||
public uint ofsAnimations; // Information about the animations in the model.
|
||||
public uint nAnimationLookup;
|
||||
public uint ofsAnimationLookup; // Mapping of global IDs to the entries in the Animation sequences block.
|
||||
public uint nBones; // MAX_BONES = 0x100
|
||||
public uint ofsBones; // Information about the bones in this model.
|
||||
public uint nKeyBoneLookup;
|
||||
public uint ofsKeyBoneLookup; // Lookup table for key skeletal bones.
|
||||
public uint nVertices;
|
||||
public uint ofsVertices; // Vertices of the model.
|
||||
public uint nViews; // Views (LOD) are now in .skins.
|
||||
public uint nSubmeshAnimations;
|
||||
public uint ofsSubmeshAnimations; // Submesh color and alpha animations definitions.
|
||||
public uint nTextures;
|
||||
public uint ofsTextures; // Textures of this model.
|
||||
public uint nTransparency;
|
||||
public uint ofsTransparency; // Transparency of textures.
|
||||
public uint nUVAnimation;
|
||||
public uint ofsUVAnimation;
|
||||
public uint nTexReplace;
|
||||
public uint ofsTexReplace; // Replaceable Textures.
|
||||
public uint nRenderFlags;
|
||||
public uint ofsRenderFlags; // Blending modes / render flags.
|
||||
public uint nBoneLookupTable;
|
||||
public uint ofsBoneLookupTable; // A bone lookup table.
|
||||
public uint nTexLookup;
|
||||
public uint ofsTexLookup; // The same for textures.
|
||||
public uint nTexUnits; // possibly removed with cata?!
|
||||
public uint ofsTexUnits; // And texture units. Somewhere they have to be too.
|
||||
public uint nTransLookup;
|
||||
public uint ofsTransLookup; // Everything needs its lookup. Here are the transparencies.
|
||||
public uint nUVAnimLookup;
|
||||
public uint ofsUVAnimLookup;
|
||||
public AxisAlignedBox BoundingBox; // min/max( [1].z, 2.0277779f ) - 0.16f seems to be the maximum camera height
|
||||
public float BoundingSphereRadius;
|
||||
public AxisAlignedBox CollisionBox;
|
||||
public float CollisionSphereRadius;
|
||||
public uint nBoundingTriangles;
|
||||
public uint ofsBoundingTriangles; // Our bounding volumes. Similar structure like in the old ofsViews.
|
||||
public uint nBoundingVertices;
|
||||
public uint ofsBoundingVertices;
|
||||
public uint nBoundingNormals;
|
||||
public uint ofsBoundingNormals;
|
||||
public uint nAttachments;
|
||||
public uint ofsAttachments; // Attachments are for weapons etc.
|
||||
public uint nAttachLookup;
|
||||
public uint ofsAttachLookup; // Of course with a lookup.
|
||||
public uint nEvents;
|
||||
public uint ofsEvents; // Used for playing sounds when dying and a lot else.
|
||||
public uint nLights;
|
||||
public uint ofsLights; // Lights are mainly used in loginscreens but in wands and some doodads too.
|
||||
public uint nCameras; // Format of Cameras changed with version 271!
|
||||
public uint ofsCameras; // The cameras are present in most models for having a model in the Character-Tab.
|
||||
public uint nCameraLookup;
|
||||
public uint ofsCameraLookup; // And lookup-time again.
|
||||
public uint nRibbonEmitters;
|
||||
public uint ofsRibbonEmitters; // Things swirling around. See the CoT-entrance for light-trails.
|
||||
public uint nParticleEmitters;
|
||||
public uint ofsParticleEmitters; // Spells and weapons, doodads and loginscreens use them. Blood dripping of a blade? Particles.
|
||||
public uint nBlendMaps; // This has to deal with blending. Exists IFF (flags & 0x8) != 0. When set, textures blending is overriden by the associated array. See M2/WotLK#Blend_mode_overrides
|
||||
public uint ofsBlendMaps; // Same as above. Points to an array of uint16 of nBlendMaps entries -- From WoD information.};
|
||||
}
|
||||
|
||||
struct M2Array
|
||||
{
|
||||
public M2Array(BinaryReader reader, uint offset)
|
||||
{
|
||||
if (offset != 0)
|
||||
reader.BaseStream.Position = offset;
|
||||
|
||||
number = reader.ReadUInt32();
|
||||
offset_elements = reader.ReadUInt32();
|
||||
}
|
||||
|
||||
public uint number;
|
||||
public uint offset_elements;
|
||||
}
|
||||
|
||||
struct M2Track
|
||||
{
|
||||
public void Read(BinaryReader reader)
|
||||
{
|
||||
interpolation_type = reader.ReadUInt16();
|
||||
global_sequence = reader.ReadUInt16();
|
||||
timestamps = new M2Array(reader, 0);
|
||||
values = new M2Array(reader, 0);
|
||||
}
|
||||
|
||||
public ushort interpolation_type;
|
||||
public ushort global_sequence;
|
||||
public M2Array timestamps;
|
||||
public M2Array values;
|
||||
}
|
||||
|
||||
struct M2Camera
|
||||
{
|
||||
public void Read(BinaryReader reader, M2Header header)
|
||||
{
|
||||
reader.BaseStream.Position = header.ofsCameras;
|
||||
type = reader.ReadUInt32();
|
||||
far_clip = reader.ReadSingle();
|
||||
near_clip = reader.ReadSingle();
|
||||
positions.Read(reader);
|
||||
position_base = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
|
||||
target_positions.Read(reader);
|
||||
target_position_base = new Vector3(reader.ReadSingle(), reader.ReadSingle(), reader.ReadSingle());
|
||||
rolldata.Read(reader);
|
||||
fovdata.Read(reader);
|
||||
}
|
||||
|
||||
public uint type; // 0: portrait, 1: characterinfo; -1: else (flyby etc.); referenced backwards in the lookup table.
|
||||
public float far_clip;
|
||||
public float near_clip;
|
||||
public M2Track positions; // How the camera's position moves. Should be 3*3 floats.
|
||||
public Vector3 position_base;
|
||||
public M2Track target_positions; // How the target moves. Should be 3*3 floats.
|
||||
public Vector3 target_position_base;
|
||||
public M2Track rolldata; // The camera can have some roll-effect. Its 0 to 2*Pi.
|
||||
public M2Track fovdata; // FoV for this segment
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,179 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class MailTemplateRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Body;
|
||||
}
|
||||
|
||||
public sealed class MapRecord
|
||||
{
|
||||
public uint Id;
|
||||
|
||||
public uint Directory;
|
||||
public MapFlags[] Flags = new MapFlags[2];
|
||||
public float MinimapIconScale;
|
||||
public Vector2 CorpsePos; // entrance coordinates in ghost mode (in most cases = normal entrance)
|
||||
public LocalizedString MapName;
|
||||
public LocalizedString MapDescription0; // Horde
|
||||
public LocalizedString MapDescription1; // Alliance
|
||||
public LocalizedString ShortDescription;
|
||||
public LocalizedString LongDescription;
|
||||
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 ParentMapID;
|
||||
public short CosmeticParentMapID;
|
||||
public ushort WindSettingsID;
|
||||
public MapTypes InstanceType;
|
||||
public byte unk5;
|
||||
public byte ExpansionID;
|
||||
public byte MaxPlayers;
|
||||
public byte TimeOffset;
|
||||
|
||||
//Helpers
|
||||
public Expansion Expansion() { return (Expansion)ExpansionID; }
|
||||
|
||||
public bool IsDungeon() { return (InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid) && !IsGarrison(); }
|
||||
public bool IsNonRaidDungeon() { return InstanceType == MapTypes.Instance; }
|
||||
public bool Instanceable()
|
||||
{
|
||||
return InstanceType == MapTypes.Instance || InstanceType == MapTypes.Raid
|
||||
|| InstanceType == MapTypes.Battleground || InstanceType == MapTypes.Arena;
|
||||
}
|
||||
public bool IsRaid() { return InstanceType == MapTypes.Raid; }
|
||||
public bool IsBattleground() { return InstanceType == MapTypes.Battleground; }
|
||||
public bool IsBattleArena() { return InstanceType == MapTypes.Arena; }
|
||||
public bool IsBattlegroundOrArena() { return InstanceType == MapTypes.Battleground || InstanceType == MapTypes.Arena; }
|
||||
public bool IsWorldMap() { return InstanceType == MapTypes.Common; }
|
||||
|
||||
public bool GetEntrancePos(out uint mapid, out float x, out float y)
|
||||
{
|
||||
mapid = 0;
|
||||
x = 0;
|
||||
y = 0;
|
||||
|
||||
if (CorpseMapID < 0)
|
||||
return false;
|
||||
mapid = (uint)CorpseMapID;
|
||||
x = CorpsePos.X;
|
||||
y = CorpsePos.Y;
|
||||
return true;
|
||||
}
|
||||
|
||||
public bool IsContinent()
|
||||
{
|
||||
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 sealed class MapDifficultyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Message_lang; // m_message_lang (text showed when transfer to map failed)
|
||||
public ushort MapID;
|
||||
public byte DifficultyID;
|
||||
public byte RaidDurationType; // 1 means daily reset, 2 means weekly
|
||||
public byte MaxPlayers; // m_maxPlayers some heroic versions have 0 when expected same amount as in normal version
|
||||
public byte LockID;
|
||||
public byte Flags;
|
||||
public byte ItemBonusTreeModID;
|
||||
public uint Context;
|
||||
|
||||
public uint GetRaidDuration()
|
||||
{
|
||||
if (RaidDurationType == 1)
|
||||
return 86400;
|
||||
if (RaidDurationType == 2)
|
||||
return 604800;
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class ModifierTreeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Asset = new uint[2];
|
||||
public ushort Parent;
|
||||
public byte Type;
|
||||
public byte Unk700;
|
||||
public byte Operator;
|
||||
public byte Amount;
|
||||
}
|
||||
|
||||
public sealed class MountRecord
|
||||
{
|
||||
public uint SpellId;
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Description;
|
||||
public LocalizedString SourceDescription;
|
||||
public float CameraPivotMultiplier;
|
||||
public ushort MountTypeId;
|
||||
public ushort Flags;
|
||||
public byte Source;
|
||||
public uint Id;
|
||||
public uint PlayerConditionId;
|
||||
public int UiModelSceneID;
|
||||
}
|
||||
|
||||
public sealed class MountCapabilityRecord
|
||||
{
|
||||
public uint RequiredSpell;
|
||||
public uint SpeedModSpell;
|
||||
public ushort RequiredRidingSkill;
|
||||
public ushort RequiredArea;
|
||||
public short RequiredMap;
|
||||
public MountCapabilityFlags Flags;
|
||||
public uint Id;
|
||||
public uint RequiredAura;
|
||||
}
|
||||
|
||||
public sealed class MountTypeXCapabilityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort MountTypeID;
|
||||
public ushort MountCapabilityID;
|
||||
public byte OrderIndex;
|
||||
}
|
||||
|
||||
public sealed class MountXDisplayRecord
|
||||
{
|
||||
public uint ID;
|
||||
public uint MountID;
|
||||
public uint DisplayID;
|
||||
public uint PlayerConditionID;
|
||||
}
|
||||
|
||||
public sealed class MovieRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint AudioFileDataID;
|
||||
public uint SubtitleFileDataID;
|
||||
public byte Volume;
|
||||
public byte KeyID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public struct WMOAreaTableTripple
|
||||
{
|
||||
public WMOAreaTableTripple(int r, int a, int g)
|
||||
{
|
||||
groupId = g;
|
||||
rootId = r;
|
||||
adtId = a;
|
||||
}
|
||||
|
||||
// ordered by entropy; that way memcmp will have a minimal medium runtime
|
||||
int groupId;
|
||||
int rootId;
|
||||
int adtId;
|
||||
}
|
||||
|
||||
public class TaxiPathBySourceAndDestination
|
||||
{
|
||||
public TaxiPathBySourceAndDestination(uint _id, uint _price)
|
||||
{
|
||||
ID = _id;
|
||||
price = _price;
|
||||
}
|
||||
|
||||
public uint ID;
|
||||
public uint price;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class NameGenRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public byte Race;
|
||||
public byte Sex;
|
||||
}
|
||||
|
||||
public sealed class NamesProfanityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public sbyte Language;
|
||||
}
|
||||
|
||||
public sealed class NamesReservedRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
}
|
||||
|
||||
public sealed class NamesReservedLocaleRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public byte LocaleMask;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class OverrideSpellDataRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] SpellID = new uint[SharedConst.MaxOverrideSpell];
|
||||
public uint PlayerActionbarFileDataID;
|
||||
public byte Flags;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class PhaseRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort Flags;
|
||||
}
|
||||
|
||||
public sealed class PhaseXPhaseGroupRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort PhaseId;
|
||||
public ushort PhaseGroupID;
|
||||
}
|
||||
|
||||
public sealed class PlayerConditionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint RaceMask;
|
||||
public uint SkillLogic;
|
||||
public uint ReputationLogic;
|
||||
public uint PrevQuestLogic;
|
||||
public uint CurrQuestLogic;
|
||||
public uint CurrentCompletedQuestLogic;
|
||||
public uint SpellLogic;
|
||||
public uint ItemLogic;
|
||||
public uint[] Time = new uint[2];
|
||||
public uint AuraSpellLogic;
|
||||
public uint[] AuraSpellID = new uint[4];
|
||||
public uint AchievementLogic;
|
||||
public uint AreaLogic;
|
||||
public uint QuestKillLogic;
|
||||
public LocalizedString FailureDescription;
|
||||
public ushort MinLevel;
|
||||
public ushort MaxLevel;
|
||||
public ushort[] SkillID = new ushort[4];
|
||||
public short[] MinSkill = new short[4];
|
||||
public short[] MaxSkill = new short[4];
|
||||
public ushort MaxFactionID;
|
||||
public ushort[] PrevQuestID = new ushort[4];
|
||||
public ushort[] CurrQuestID = new ushort[4];
|
||||
public ushort[] CurrentCompletedQuestID = new ushort[4];
|
||||
public ushort[] Explored = new ushort[2];
|
||||
public ushort WorldStateExpressionID;
|
||||
public ushort[] Achievement = new ushort[4];
|
||||
public ushort[] AreaID = new ushort[4];
|
||||
public ushort QuestKillID;
|
||||
public ushort PhaseID;
|
||||
public ushort MinAvgEquippedItemLevel;
|
||||
public ushort MaxAvgEquippedItemLevel;
|
||||
public ushort ModifierTreeID;
|
||||
public byte Flags;
|
||||
public sbyte Gender;
|
||||
public sbyte NativeGender;
|
||||
public byte MinLanguage;
|
||||
public byte MaxLanguage;
|
||||
public byte[] MinReputation = new byte[3];
|
||||
public byte MaxReputation;
|
||||
public byte Unknown1;
|
||||
public byte MinPVPRank;
|
||||
public byte MaxPVPRank;
|
||||
public byte PvpMedal;
|
||||
public byte ItemFlags;
|
||||
public byte[] AuraCount = new byte[4];
|
||||
public byte WeatherID;
|
||||
public byte PartyStatus;
|
||||
public byte LifetimeMaxPVPRank;
|
||||
public byte[] LfgStatus = new byte[4];
|
||||
public byte[] LfgCompare = new byte[4];
|
||||
public byte[] CurrencyCount = new byte[4];
|
||||
public sbyte MinExpansionLevel;
|
||||
public sbyte MaxExpansionLevel;
|
||||
public sbyte MinExpansionTier;
|
||||
public sbyte MaxExpansionTier;
|
||||
public byte MinGuildLevel;
|
||||
public byte MaxGuildLevel;
|
||||
public byte PhaseUseFlags;
|
||||
public sbyte ChrSpecializationIndex;
|
||||
public sbyte ChrSpecializationRole;
|
||||
public sbyte PowerType;
|
||||
public sbyte PowerTypeComp;
|
||||
public sbyte PowerTypeValue;
|
||||
public int ClassMask;
|
||||
public uint LanguageID;
|
||||
public uint[] MinFactionID = new uint[3];
|
||||
public uint[] SpellID = new uint[4];
|
||||
public uint[] ItemID = new uint[4];
|
||||
public uint[] ItemCount = new uint[4];
|
||||
public uint LfgLogic;
|
||||
public uint[] LfgValue = new uint[4];
|
||||
public uint CurrencyLogic;
|
||||
public uint[] CurrencyID = new uint[4];
|
||||
public uint[] QuestKillMonster = new uint[6];
|
||||
public uint PhaseGroupID;
|
||||
public uint MinAvgItemLevel;
|
||||
public uint MaxAvgItemLevel;
|
||||
public int[] MovementFlags = new int[2];
|
||||
public uint MainHandItemSubclassMask;
|
||||
}
|
||||
|
||||
public sealed class PowerDisplayRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint GlobalStringBaseTag;
|
||||
public byte PowerType;
|
||||
public byte Red;
|
||||
public byte Green;
|
||||
public byte Blue;
|
||||
}
|
||||
|
||||
public sealed class PowerTypeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string PowerTypeToken;
|
||||
public string PowerCostToken;
|
||||
public float RegenerationPeace;
|
||||
public float RegenerationCombat;
|
||||
public short MaxPower;
|
||||
public ushort RegenerationDelay;
|
||||
public ushort Flags;
|
||||
public PowerType PowerTypeEnum;
|
||||
public sbyte RegenerationMin;
|
||||
public sbyte RegenerationCenter;
|
||||
public sbyte RegenerationMax;
|
||||
public byte UIModifier;
|
||||
}
|
||||
|
||||
public sealed class PrestigeLevelInfoRecord
|
||||
{
|
||||
public uint ID;
|
||||
public uint IconID;
|
||||
public LocalizedString PrestigeText;
|
||||
public byte PrestigeLevel;
|
||||
public PrestigeLevelInfoFlags Flags;
|
||||
|
||||
public bool IsDisabled() { return Flags.HasAnyFlag(PrestigeLevelInfoFlags.Disabled); }
|
||||
}
|
||||
|
||||
public sealed class PvpDifficultyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort MapID;
|
||||
public byte BracketID;
|
||||
public byte MinLevel;
|
||||
public byte MaxLevel;
|
||||
|
||||
// helpers
|
||||
public BattlegroundBracketId GetBracketId() { return (BattlegroundBracketId)BracketID; }
|
||||
}
|
||||
|
||||
public sealed class PvpRewardRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint HonorLevel;
|
||||
public uint Prestige;
|
||||
public uint RewardPackID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class QuestFactionRewardRecord
|
||||
{
|
||||
public uint Id;
|
||||
public short[] QuestRewFactionValue = new short[10];
|
||||
}
|
||||
|
||||
public sealed class QuestMoneyRewardRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Money = new uint[10];
|
||||
}
|
||||
|
||||
public sealed class QuestPackageItemRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public ushort QuestPackageID;
|
||||
public QuestPackageFilter FilterType;
|
||||
public byte ItemCount;
|
||||
}
|
||||
|
||||
public sealed class QuestSortRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString SortName;
|
||||
public byte SortOrder;
|
||||
}
|
||||
|
||||
public sealed class QuestV2Record
|
||||
{
|
||||
public uint Id;
|
||||
public ushort UniqueBitFlag;
|
||||
}
|
||||
|
||||
public sealed class QuestXPRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort[] Exp = new ushort[10];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,53 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class RandPropPointsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] EpicPropertiesPoints = new uint[5];
|
||||
public uint[] RarePropertiesPoints = new uint[5];
|
||||
public uint[] UncommonPropertiesPoints = new uint[5];
|
||||
}
|
||||
|
||||
public sealed class RewardPackRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Money;
|
||||
public float ArtifactXPMultiplier;
|
||||
public byte ArtifactXPDifficulty;
|
||||
public byte ArtifactCategoryID;
|
||||
public uint TitleID;
|
||||
public uint Unused;
|
||||
}
|
||||
|
||||
public sealed class RewardPackXItemRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public uint RewardPackID;
|
||||
public uint Amount;
|
||||
}
|
||||
|
||||
public sealed class RulesetItemUpgradeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint ItemID;
|
||||
public ushort ItemUpgradeID;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,560 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.Dynamic;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class ScalingStatDistributionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public ushort ItemLevelCurveID;
|
||||
public uint MinLevel;
|
||||
public uint MaxLevel;
|
||||
}
|
||||
|
||||
public sealed class ScenarioRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public ushort Data; // Seems to indicate different things, for zone invasions, this is the area id
|
||||
public byte Flags;
|
||||
public byte Type;
|
||||
}
|
||||
|
||||
public sealed class ScenarioStepRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Description;
|
||||
public LocalizedString Name;
|
||||
public ushort CriteriaTreeID;
|
||||
public ushort ScenarioID;
|
||||
public ushort PreviousStepID; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
|
||||
public ushort QuestRewardID;
|
||||
public byte Step;
|
||||
public ScenarioStepFlags Flags;
|
||||
public uint BonusRequiredStepID; // Bonus step can only be completed if scenario is in the step specified in this field
|
||||
|
||||
// helpers
|
||||
public bool IsBonusObjective()
|
||||
{
|
||||
return Flags.HasAnyFlag(ScenarioStepFlags.BonusObjective);
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class SceneScriptRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
public string Script;
|
||||
public ushort PrevScriptId;
|
||||
public ushort NextScriptId;
|
||||
}
|
||||
|
||||
public sealed class SceneScriptPackageRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string Name;
|
||||
}
|
||||
|
||||
public sealed class SkillLineRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString DisplayName;
|
||||
public LocalizedString Description;
|
||||
public LocalizedString AlternateVerb;
|
||||
public ushort Flags;
|
||||
public SkillCategory CategoryID;
|
||||
public byte CanLink;
|
||||
public uint IconFileDataID;
|
||||
public uint ParentSkillLineID;
|
||||
}
|
||||
|
||||
public sealed class SkillLineAbilityRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint RaceMask;
|
||||
public uint SupercedesSpell;
|
||||
public ushort SkillLine;
|
||||
public ushort MinSkillLineRank;
|
||||
public ushort TrivialSkillLineRankHigh;
|
||||
public ushort TrivialSkillLineRankLow;
|
||||
public ushort UniqueBit;
|
||||
public ushort TradeSkillCategoryID;
|
||||
public AbilytyLearnType AcquireMethod;
|
||||
public byte NumSkillUps;
|
||||
public byte Unknown703;
|
||||
public int ClassMask;
|
||||
}
|
||||
|
||||
public sealed class SkillRaceClassInfoRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int RaceMask;
|
||||
public ushort SkillID;
|
||||
public SkillRaceClassInfoFlags Flags;
|
||||
public ushort SkillTierID;
|
||||
public byte Availability;
|
||||
public byte MinLevel;
|
||||
public int ClassMask;
|
||||
}
|
||||
|
||||
public sealed class SoundKitRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public float VolumeFloat;
|
||||
public float MinDistance;
|
||||
public float DistanceCutoff;
|
||||
public float VolumeVariationPlus;
|
||||
public float VolumeVariationMinus;
|
||||
public float PitchVariationPlus;
|
||||
public float PitchVariationMinus;
|
||||
public float PitchAdjust;
|
||||
public ushort Flags;
|
||||
public ushort SoundEntriesAdvancedID;
|
||||
public ushort BusOverwriteID;
|
||||
public byte SoundType;
|
||||
public byte EAXDef;
|
||||
public byte DialogType;
|
||||
public byte Unk700;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class SpecializationSpellsRecord
|
||||
{
|
||||
public uint SpellID;
|
||||
public uint OverridesSpellID;
|
||||
public LocalizedString Description;
|
||||
public ushort SpecID;
|
||||
public byte OrderIndex;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class SpellRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public LocalizedString NameSubtext;
|
||||
public LocalizedString Description;
|
||||
public LocalizedString AuraDescription;
|
||||
public uint MiscID;
|
||||
public uint Id;
|
||||
public uint DescriptionVariablesID;
|
||||
}
|
||||
|
||||
public sealed class SpellAuraOptionsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint ProcCharges;
|
||||
public uint ProcTypeMask;
|
||||
public uint ProcCategoryRecovery;
|
||||
public ushort CumulativeAura;
|
||||
public byte DifficultyID;
|
||||
public byte ProcChance;
|
||||
public byte SpellProcsPerMinuteID;
|
||||
}
|
||||
|
||||
public sealed class SpellAuraRestrictionsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
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 sealed class SpellCastTimesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int CastTime;
|
||||
public int MinCastTime;
|
||||
public short CastTimePerLevel;
|
||||
}
|
||||
|
||||
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 byte RequiredAuraVision;
|
||||
}
|
||||
|
||||
public sealed class SpellCategoriesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort Category;
|
||||
public ushort StartRecoveryCategory;
|
||||
public ushort ChargeCategory;
|
||||
public byte DifficultyID;
|
||||
public byte DefenseType;
|
||||
public byte DispelType;
|
||||
public byte Mechanic;
|
||||
public byte PreventionType;
|
||||
}
|
||||
|
||||
public sealed class SpellCategoryRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public int ChargeRecoveryTime;
|
||||
public SpellCategoryFlags Flags;
|
||||
public byte UsesPerWeek;
|
||||
public byte MaxCharges;
|
||||
public uint ChargeCategoryType;
|
||||
}
|
||||
|
||||
public sealed class SpellClassOptionsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public FlagArray128 SpellClassMask;
|
||||
public byte SpellClassSet;
|
||||
public uint ModalNextSpell;
|
||||
}
|
||||
|
||||
public sealed class SpellCooldownsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint CategoryRecoveryTime;
|
||||
public uint RecoveryTime;
|
||||
public uint StartRecoveryTime;
|
||||
public byte DifficultyID;
|
||||
}
|
||||
|
||||
public sealed class SpellDurationRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int Duration;
|
||||
public int MaxDuration;
|
||||
public int DurationPerLevel;
|
||||
}
|
||||
|
||||
public sealed class SpellEffectRecord
|
||||
{
|
||||
public FlagArray128 EffectSpellClassMask;
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint Effect;
|
||||
public uint EffectAura;
|
||||
public int EffectBasePoints;
|
||||
public uint EffectIndex;
|
||||
public int EffectMiscValue;
|
||||
public int EffectMiscValueB;
|
||||
public uint EffectRadiusIndex;
|
||||
public uint EffectRadiusMaxIndex;
|
||||
public uint[] ImplicitTarget = new uint[2];
|
||||
public uint DifficultyID;
|
||||
public float EffectAmplitude;
|
||||
public uint EffectAuraPeriod;
|
||||
public float EffectBonusCoefficient;
|
||||
public float EffectChainAmplitude;
|
||||
public uint EffectChainTargets;
|
||||
public int EffectDieSides;
|
||||
public uint EffectItemType;
|
||||
public uint EffectMechanic;
|
||||
public float EffectPointsPerResource;
|
||||
public float EffectRealPointsPerLevel;
|
||||
public uint EffectTriggerSpell;
|
||||
public float EffectPosFacing;
|
||||
public uint EffectAttributes;
|
||||
public float BonusCoefficientFromAP;
|
||||
public float PvPMultiplier;
|
||||
}
|
||||
|
||||
public sealed class SpellEffectScalingRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Coefficient;
|
||||
public float Variance;
|
||||
public float ResourceCoefficient;
|
||||
public uint SpellEffectID;
|
||||
}
|
||||
|
||||
public sealed class SpellEquippedItemsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public int EquippedItemInventoryTypeMask;
|
||||
public int EquippedItemSubClassMask;
|
||||
public sbyte EquippedItemClass;
|
||||
}
|
||||
|
||||
public sealed class SpellFocusObjectRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
}
|
||||
|
||||
public sealed class SpellInterruptsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint[] AuraInterruptFlags = new uint[2];
|
||||
public uint[] ChannelInterruptFlags = new uint[2];
|
||||
public ushort InterruptFlags;
|
||||
public byte DifficultyID;
|
||||
}
|
||||
|
||||
public sealed class SpellItemEnchantmentRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] EffectSpellID = new uint[ItemConst.MaxItemEnchantmentEffects];
|
||||
public LocalizedString Name;
|
||||
public float[] EffectScalingPoints = new float[ItemConst.MaxItemEnchantmentEffects];
|
||||
public uint TransmogCost;
|
||||
public uint TextureFileDataID;
|
||||
public ushort[] EffectPointsMin = new ushort[ItemConst.MaxItemEnchantmentEffects];
|
||||
public ushort ItemVisual;
|
||||
public EnchantmentSlotMask Flags;
|
||||
public ushort RequiredSkillID;
|
||||
public ushort RequiredSkillRank;
|
||||
public ushort ItemLevel;
|
||||
public byte Charges;
|
||||
public ItemEnchantmentType[] Effect = new ItemEnchantmentType[ItemConst.MaxItemEnchantmentEffects];
|
||||
public byte ConditionID;
|
||||
public byte MinLevel;
|
||||
public byte MaxLevel;
|
||||
public sbyte ScalingClass;
|
||||
public sbyte ScalingClassRestricted;
|
||||
public uint PlayerConditionID;
|
||||
}
|
||||
|
||||
public sealed class SpellItemEnchantmentConditionRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte[] LTOperandType = new byte[5];
|
||||
public byte[] Operator = new byte[5];
|
||||
public byte[] RTOperandType = new byte[5];
|
||||
public byte[] RTOperand = new byte[5];
|
||||
public byte[] Logic = new byte[5];
|
||||
public uint[] LTOperand = new uint[5];
|
||||
}
|
||||
|
||||
public sealed class SpellLearnSpellRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint LearnSpellID;
|
||||
public uint SpellID;
|
||||
public uint OverridesSpellID;
|
||||
}
|
||||
|
||||
public sealed class SpellLevelsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort BaseLevel;
|
||||
public ushort MaxLevel;
|
||||
public ushort SpellLevel;
|
||||
public byte DifficultyID;
|
||||
public byte MaxUsableLevel;
|
||||
}
|
||||
|
||||
public sealed class SpellMiscRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Attributes;
|
||||
public uint AttributesEx;
|
||||
public uint AttributesExB;
|
||||
public uint AttributesExC;
|
||||
public uint AttributesExD;
|
||||
public uint AttributesExE;
|
||||
public uint AttributesExF;
|
||||
public uint AttributesExG;
|
||||
public uint AttributesExH;
|
||||
public uint AttributesExI;
|
||||
public uint AttributesExJ;
|
||||
public uint AttributesExK;
|
||||
public uint AttributesExL;
|
||||
public uint AttributesExM;
|
||||
public float Speed;
|
||||
public float MultistrikeSpeedMod;
|
||||
public ushort CastingTimeIndex;
|
||||
public ushort DurationIndex;
|
||||
public ushort RangeIndex;
|
||||
public byte SchoolMask;
|
||||
public uint IconFileDataID;
|
||||
public uint ActiveIconFileDataID;
|
||||
}
|
||||
|
||||
public sealed class SpellPowerRecord
|
||||
{
|
||||
public uint SpellID;
|
||||
public int ManaCost;
|
||||
public float ManaCostPercentage;
|
||||
public float ManaCostPercentagePerSecond;
|
||||
public uint RequiredAura;
|
||||
public float HealthCostPercentage;
|
||||
public byte PowerIndex;
|
||||
public PowerType PowerType;
|
||||
public uint Id;
|
||||
public int ManaCostPerLevel;
|
||||
public int ManaCostPerSecond;
|
||||
public int ManaCostAdditional; // Spell uses [ManaCost, ManaCost+ManaCostAdditional] power - affects tooltip parsing as multiplier on SpellEffectEntry::EffectPointsPerResource
|
||||
// only SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_NORMALIZED_WEAPON_DMG
|
||||
public uint PowerDisplayID;
|
||||
public uint UnitPowerBarID;
|
||||
}
|
||||
|
||||
public sealed class SpellPowerDifficultyRecord
|
||||
{
|
||||
public byte DifficultyID;
|
||||
public byte PowerIndex;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class SpellProcsPerMinuteRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float BaseProcRate;
|
||||
public byte Flags;
|
||||
}
|
||||
|
||||
public sealed class SpellProcsPerMinuteModRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Coeff;
|
||||
public ushort Param;
|
||||
public SpellProcsPerMinuteModType Type;
|
||||
public byte SpellProcsPerMinuteID;
|
||||
}
|
||||
|
||||
public sealed class SpellRadiusRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float Radius;
|
||||
public float RadiusPerLevel;
|
||||
public float RadiusMin;
|
||||
public float RadiusMax;
|
||||
}
|
||||
|
||||
public sealed class SpellRangeRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float MinRangeHostile;
|
||||
public float MinRangeFriend;
|
||||
public float MaxRangeHostile;
|
||||
public float MaxRangeFriend;
|
||||
public LocalizedString DisplayName;
|
||||
public LocalizedString DisplayNameShort;
|
||||
public SpellRangeFlag Flags;
|
||||
}
|
||||
|
||||
public sealed class SpellReagentsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public int[] Reagent = new int[SpellConst.MaxReagents];
|
||||
public ushort[] ReagentCount = new ushort[SpellConst.MaxReagents];
|
||||
}
|
||||
|
||||
public sealed class SpellScalingRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public ushort ScalesFromItemLevel;
|
||||
public int ScalingClass;
|
||||
public uint MinScalingLevel;
|
||||
public uint MaxScalingLevel;
|
||||
}
|
||||
|
||||
public sealed class SpellShapeshiftRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint[] ShapeshiftExclude = new uint[2];
|
||||
public uint[] ShapeshiftMask = new uint[2];
|
||||
public byte StanceBarOrder;
|
||||
}
|
||||
|
||||
public sealed class SpellShapeshiftFormRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public float WeaponDamageVariance;
|
||||
public SpellShapeshiftFormFlags Flags;
|
||||
public ushort CombatRoundTime;
|
||||
public ushort MountTypeID;
|
||||
public sbyte CreatureType;
|
||||
public byte BonusActionBar;
|
||||
public uint AttackIconFileDataID;
|
||||
public ushort[] CreatureDisplayID = new ushort[4];
|
||||
public ushort[] PresetSpellID = new ushort[SpellConst.MaxShapeshift];
|
||||
}
|
||||
|
||||
public sealed class SpellTargetRestrictionsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public float ConeAngle;
|
||||
public float Width;
|
||||
public uint Targets;
|
||||
public ushort TargetCreatureType;
|
||||
public byte DifficultyID;
|
||||
public byte MaxAffectedTargets;
|
||||
public uint MaxTargetLevel;
|
||||
}
|
||||
|
||||
public sealed class SpellTotemsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint[] Totem = new uint[SpellConst.MaxTotems];
|
||||
public ushort[] RequiredTotemCategoryID = new ushort[SpellConst.MaxTotems];
|
||||
}
|
||||
|
||||
public sealed class SpellXSpellVisualRecord
|
||||
{
|
||||
public uint SpellID;
|
||||
public uint SpellVisualID;
|
||||
public uint Id;
|
||||
public float Chance;
|
||||
public ushort CasterPlayerConditionID;
|
||||
public ushort CasterUnitConditionID;
|
||||
public ushort PlayerConditionID;
|
||||
public ushort UnitConditionID;
|
||||
public uint IconFileDataID;
|
||||
public uint ActiveIconFileDataID;
|
||||
public byte Flags;
|
||||
public byte DifficultyID;
|
||||
public byte Priority;
|
||||
}
|
||||
|
||||
public sealed class SummonPropertiesRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint Flags;
|
||||
public SummonCategory Category;
|
||||
public uint Faction;
|
||||
public SummonType Type;
|
||||
public int Slot;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class TactKeyRecord
|
||||
{
|
||||
public uint Id;
|
||||
public byte[] Key = new byte[16];
|
||||
}
|
||||
|
||||
public sealed class TalentRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint SpellID;
|
||||
public uint OverridesSpellID;
|
||||
public LocalizedString Description;
|
||||
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 Vector3 Pos;
|
||||
public LocalizedString Name;
|
||||
public uint[] MountCreatureID = new uint[2];
|
||||
public Vector2 MapOffset;
|
||||
public ushort MapID;
|
||||
public ushort ConditionID;
|
||||
public ushort LearnableIndex;
|
||||
public TaxiNodeFlags Flags;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class TaxiPathRecord
|
||||
{
|
||||
public ushort From;
|
||||
public ushort To;
|
||||
public uint Id;
|
||||
public uint Cost;
|
||||
}
|
||||
|
||||
public sealed class TaxiPathNodeRecord
|
||||
{
|
||||
public Vector3 Loc;
|
||||
public uint Delay;
|
||||
public ushort PathID;
|
||||
public ushort MapID;
|
||||
public ushort ArrivalEventID;
|
||||
public ushort DepartureEventID;
|
||||
public byte NodeIndex;
|
||||
public TaxiPathNodeFlags Flags;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class TotemCategoryRecord
|
||||
{
|
||||
public uint Id;
|
||||
public LocalizedString Name;
|
||||
public uint CategoryMask;
|
||||
public byte CategoryType;
|
||||
}
|
||||
|
||||
public sealed class ToyRecord
|
||||
{
|
||||
public uint ItemID;
|
||||
public LocalizedString Description;
|
||||
public byte Flags;
|
||||
public byte CategoryFilter;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class TransmogHolidayRecord
|
||||
{
|
||||
public uint Id;
|
||||
public int HolidayID;
|
||||
}
|
||||
|
||||
public sealed class TransmogSetRecord
|
||||
{
|
||||
public LocalizedString Name;
|
||||
public ushort BaseSetID;
|
||||
public ushort UIOrder;
|
||||
public byte ExpansionID;
|
||||
public uint Id;
|
||||
public int Flags;
|
||||
public int QuestID;
|
||||
public int ClassMask;
|
||||
public int ItemNameDescriptionID;
|
||||
public uint TransmogSetGroupID;
|
||||
}
|
||||
|
||||
public sealed class TransmogSetGroupRecord
|
||||
{
|
||||
public LocalizedString Label;
|
||||
public uint Id;
|
||||
}
|
||||
|
||||
public sealed class TransmogSetItemRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint TransmogSetID;
|
||||
public uint ItemModifiedAppearanceID;
|
||||
public int Flags;
|
||||
}
|
||||
|
||||
public sealed class TransportAnimationRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint TransportID;
|
||||
public uint TimeIndex;
|
||||
public Vector3 Pos;
|
||||
public byte SequenceID;
|
||||
}
|
||||
|
||||
public sealed class TransportRotationRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint TransportID;
|
||||
public uint TimeIndex;
|
||||
public float X;
|
||||
public float Y;
|
||||
public float Z;
|
||||
public float W;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class UnitPowerBarRecord
|
||||
{
|
||||
public uint Id;
|
||||
public float RegenerationPeace;
|
||||
public float RegenerationCombat;
|
||||
public uint[] FileDataID = new uint[6];
|
||||
public uint[] Color = new uint[6];
|
||||
public LocalizedString Name;
|
||||
public LocalizedString Cost;
|
||||
public LocalizedString OutOfError;
|
||||
public LocalizedString ToolTip;
|
||||
public float StartInset;
|
||||
public float EndInset;
|
||||
public ushort StartPower;
|
||||
public ushort Flags;
|
||||
public byte CenterPower;
|
||||
public byte BarType;
|
||||
public uint MinPower;
|
||||
public uint MaxPower;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,137 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
using System;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class VehicleRecord
|
||||
{
|
||||
public uint Id;
|
||||
public VehicleFlags Flags;
|
||||
public float TurnSpeed;
|
||||
public float PitchSpeed;
|
||||
public float PitchMin;
|
||||
public float PitchMax;
|
||||
public float MouseLookOffsetPitch;
|
||||
public float CameraFadeDistScalarMin;
|
||||
public float CameraFadeDistScalarMax;
|
||||
public float CameraPitchOffset;
|
||||
public float FacingLimitRight;
|
||||
public float FacingLimitLeft;
|
||||
public float MsslTrgtTurnLingering;
|
||||
public float MsslTrgtPitchLingering;
|
||||
public float MsslTrgtMouseLingering;
|
||||
public float MsslTrgtEndOpacity;
|
||||
public float MsslTrgtArcSpeed;
|
||||
public float MsslTrgtArcRepeat;
|
||||
public float MsslTrgtArcWidth;
|
||||
public float[] MsslTrgtImpactRadius = new float[2];
|
||||
public string MsslTrgtArcTexture;
|
||||
public string MsslTrgtImpactTexture;
|
||||
public string[] MsslTrgtImpactModel = new string[2];
|
||||
public float CameraYawOffset;
|
||||
public float MsslTrgtImpactTexRadius;
|
||||
public ushort[] SeatID = new ushort[SharedConst.MaxVehicleSeats];
|
||||
public ushort VehicleUIIndicatorID;
|
||||
public ushort[] PowerDisplayID = new ushort[3];
|
||||
public byte FlagsB;
|
||||
public byte UILocomotionType;
|
||||
}
|
||||
|
||||
public sealed class VehicleSeatRecord
|
||||
{
|
||||
public uint Id;
|
||||
public uint[] Flags = new uint[3];
|
||||
public Vector3 AttachmentOffset;
|
||||
public float EnterPreDelay;
|
||||
public float EnterSpeed;
|
||||
public float EnterGravity;
|
||||
public float EnterMinDuration;
|
||||
public float EnterMaxDuration;
|
||||
public float EnterMinArcHeight;
|
||||
public float EnterMaxArcHeight;
|
||||
public float ExitPreDelay;
|
||||
public float ExitSpeed;
|
||||
public float ExitGravity;
|
||||
public float ExitMinDuration;
|
||||
public float ExitMaxDuration;
|
||||
public float ExitMinArcHeight;
|
||||
public float ExitMaxArcHeight;
|
||||
public float PassengerYaw;
|
||||
public float PassengerPitch;
|
||||
public float PassengerRoll;
|
||||
public float VehicleEnterAnimDelay;
|
||||
public float VehicleExitAnimDelay;
|
||||
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 uint ExitUISoundID;
|
||||
|
||||
|
||||
public bool CanEnterOrExit()
|
||||
{
|
||||
return (Flags[0].HasAnyFlag((uint)VehicleSeatFlags.CanEnterOrExit) ||
|
||||
//If it has anmation for enter/ride, means it can be entered/exited by logic
|
||||
Flags[0].HasAnyFlag((uint)VehicleSeatFlags.HasLowerAnimForEnter | (uint)VehicleSeatFlags.HasLowerAnimForRide));
|
||||
}
|
||||
public bool CanSwitchFromSeat() { return Flags[0].HasAnyFlag((uint)VehicleSeatFlags.CanSwitch); }
|
||||
public bool IsUsableByOverride()
|
||||
{
|
||||
return Flags[0].HasAnyFlag((uint)VehicleSeatFlags.Uncontrolled | (uint)VehicleSeatFlags.Unk18)
|
||||
|| Flags[1].HasAnyFlag((uint)VehicleSeatFlagsB.UsableForced | (uint)VehicleSeatFlagsB.UsableForced2 |
|
||||
(uint)VehicleSeatFlagsB.UsableForced3 | (uint)VehicleSeatFlagsB.UsableForced4);
|
||||
}
|
||||
public bool IsEjectable() { return Flags[1].HasAnyFlag((uint)VehicleSeatFlagsB.Ejectable); }
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* Copyright (C) 2012-2017 CypherCore <http://github.com/CypherCore>
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* 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.Constants;
|
||||
using Framework.GameMath;
|
||||
|
||||
namespace Game.DataStorage
|
||||
{
|
||||
public sealed class WMOAreaTableRecord
|
||||
{
|
||||
public int WMOGroupID; // used in group WMO
|
||||
public LocalizedString AreaName;
|
||||
public short WMOID; // used in root WMO
|
||||
public ushort AmbienceID;
|
||||
public ushort ZoneMusic;
|
||||
public ushort IntroSound;
|
||||
public ushort AreaTableID;
|
||||
public ushort UWIntroSound;
|
||||
public ushort UWAmbience;
|
||||
public sbyte NameSet; // used in adt file
|
||||
public byte SoundProviderPref;
|
||||
public byte SoundProviderPrefUnderwater;
|
||||
public byte Flags;
|
||||
public uint I;
|
||||
public uint UWZoneMusic;
|
||||
}
|
||||
|
||||
public sealed class WorldMapAreaRecord
|
||||
{
|
||||
public string AreaName;
|
||||
public float LocLeft;
|
||||
public float LocRight;
|
||||
public float LocTop;
|
||||
public float LocBottom;
|
||||
public ushort MapID;
|
||||
public ushort AreaID;
|
||||
public short DisplayMapID;
|
||||
public short DefaultDungeonFloor;
|
||||
public ushort ParentWorldMapID;
|
||||
public ushort Flags;
|
||||
public byte LevelRangeMin;
|
||||
public byte LevelRangeMax;
|
||||
public byte BountySetID;
|
||||
public byte BountyBoardLocation;
|
||||
public uint Id;
|
||||
public uint PlayerConditionID;
|
||||
}
|
||||
|
||||
public sealed class WorldMapOverlayRecord
|
||||
{
|
||||
public uint Id;
|
||||
public string TextureName;
|
||||
public ushort TextureWidth;
|
||||
public ushort TextureHeight;
|
||||
public uint MapAreaID; // idx in WorldMapArea.dbc
|
||||
public uint[] AreaID = new uint[SharedConst.MaxWorldMapOverlayArea];
|
||||
public int OffsetX;
|
||||
public int OffsetY;
|
||||
public int HitRectTop;
|
||||
public int HitRectLeft;
|
||||
public int HitRectBottom;
|
||||
public int HitRectRight;
|
||||
public uint PlayerConditionID;
|
||||
public uint Flags;
|
||||
}
|
||||
|
||||
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 sealed class WorldSafeLocsRecord
|
||||
{
|
||||
public uint Id;
|
||||
public Vector3 Loc;
|
||||
public float Facing;
|
||||
public LocalizedString AreaName;
|
||||
public ushort MapID;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user