From 79aeee0ebc4d4e5c5d733ed5b6ba3a8da6a6d6ff Mon Sep 17 00:00:00 2001 From: hondacrx Date: Mon, 20 Nov 2017 12:22:13 -0500 Subject: [PATCH] Updated db2 structures to 7.3.2.25480 --- .../Framework/Constants/AchievementConst.cs | 5 +- Source/Framework/Constants/PlayerConst.cs | 4 +- Source/Framework/Constants/SharedConst.cs | 6 + .../Framework/Constants/Spells/SpellConst.cs | 3 +- .../Database/Databases/HotfixDatabase.cs | 117 ++++++++++-------- Source/Game/BattleGrounds/BattleGround.cs | 2 +- .../Game/BattleGrounds/BattleGroundManager.cs | 2 +- .../Game/BattleGrounds/BattleGroundQueue.cs | 4 +- Source/Game/DataStorage/CliDB.cs | 16 ++- .../Game/DataStorage/ClientReader/DB6Meta.cs | 101 ++++++++------- Source/Game/DataStorage/DB2Manager.cs | 61 +++++++-- Source/Game/DataStorage/Structs/A_Records.cs | 2 +- Source/Game/DataStorage/Structs/C_Records.cs | 13 +- Source/Game/DataStorage/Structs/I_Records.cs | 28 ++++- Source/Game/DataStorage/Structs/L_Records.cs | 2 +- Source/Game/DataStorage/Structs/M_Records.cs | 2 +- Source/Game/DataStorage/Structs/P_Records.cs | 112 ++++++++--------- Source/Game/DataStorage/Structs/S_Records.cs | 19 ++- Source/Game/DataStorage/Structs/T_Records.cs | 14 ++- Source/Game/DataStorage/Structs/V_Records.cs | 13 +- Source/Game/DataStorage/Structs/W_Records.cs | 3 +- Source/Game/DungeonFinding/LFGManager.cs | 4 +- Source/Game/Entities/Item/ItemTemplate.cs | 1 + Source/Game/Entities/Player/Player.cs | 2 +- Source/Game/Groups/Group.cs | 6 +- Source/Game/Handlers/BattleGroundHandler.cs | 8 +- Source/Game/Handlers/LFGHandler.cs | 2 +- Source/Game/Spells/SpellInfo.cs | 3 +- 28 files changed, 322 insertions(+), 233 deletions(-) diff --git a/Source/Framework/Constants/AchievementConst.cs b/Source/Framework/Constants/AchievementConst.cs index 4334b0049..ee151a919 100644 --- a/Source/Framework/Constants/AchievementConst.cs +++ b/Source/Framework/Constants/AchievementConst.cs @@ -400,7 +400,10 @@ namespace Framework.Constants CompleteWorldQuest = 203, // 204 - Special criteria type to award players for some external events? Comes with what looks like an identifier, so guessing it's not unique. TransmogSetUnlocked = 205, - TotalTypes = 208 + GainParagonReputation = 206, + EarnHonorXp = 207, + RelicTalentUnlocked = 211, + TotalTypes = 212 } public enum CriteriaDataType diff --git a/Source/Framework/Constants/PlayerConst.cs b/Source/Framework/Constants/PlayerConst.cs index 5428dfa97..d925daa71 100644 --- a/Source/Framework/Constants/PlayerConst.cs +++ b/Source/Framework/Constants/PlayerConst.cs @@ -44,7 +44,7 @@ namespace Framework.Constants public const uint infinityCooldownDelayCheck = Time.Month / 2; public const int MaxPlayerSummonDelay = 2 * Time.Minute; - public const int TaxiMaskSize = 243; + public const int TaxiMaskSize = 253; // corpse reclaim times public const int DeathExpireStep = (5 * Time.Minute); @@ -97,7 +97,7 @@ namespace Framework.Constants public const byte FieldBytesOffsetRafGrantableLevel = 0; public const byte FieldBytesOffsetActionBarToggles = 1; public const byte FieldBytesOffsetLifetimeMaxPvpRank = 2; - public const byte FieldBytesOffsetMaxArtifactPowerRanks = 3; + public const byte FieldBytesOffsetNumRespecs = 3; public const byte FieldBytes2OffsetIgnorePowerRegenPredictionMask = 0; public const byte FieldBytes2OffsetAuraVision = 1; diff --git a/Source/Framework/Constants/SharedConst.cs b/Source/Framework/Constants/SharedConst.cs index 5bf189f5f..85418688f 100644 --- a/Source/Framework/Constants/SharedConst.cs +++ b/Source/Framework/Constants/SharedConst.cs @@ -703,6 +703,7 @@ namespace Framework.Constants EventScenario6 = 30, WorldPvPScenario2 = 32, TimewalkingRaid = 33, + Pvp = 34, Max } @@ -2319,4 +2320,9 @@ namespace Framework.Constants Unk16 = 0x10, // 16, most common value Unk32 = 0x20 } + + public enum WorldMapTransformsFlags + { + Dundeon = 0x04 + } } diff --git a/Source/Framework/Constants/Spells/SpellConst.cs b/Source/Framework/Constants/Spells/SpellConst.cs index 112eb6bb9..c228438d3 100644 --- a/Source/Framework/Constants/Spells/SpellConst.cs +++ b/Source/Framework/Constants/Spells/SpellConst.cs @@ -2333,7 +2333,8 @@ namespace Framework.Constants Unk146 = 146, Unk147 = 147, Unk148 = 148, - TotalSpellTargets = 149 + Unk149 = 149, + TotalSpellTargets } public enum SpellTargetSelectionCategories { diff --git a/Source/Framework/Database/Databases/HotfixDatabase.cs b/Source/Framework/Database/Databases/HotfixDatabase.cs index 348dd5fdd..71b6a7c16 100644 --- a/Source/Framework/Database/Databases/HotfixDatabase.cs +++ b/Source/Framework/Database/Databases/HotfixDatabase.cs @@ -23,7 +23,7 @@ namespace Framework.Database { // Achievement.db2 PrepareStatement(HotfixStatements.SEL_ACHIEVEMENT, "SELECT Title, Description, Flags, Reward, MapID, Supercedes, Category, UIOrder, SharesCriteria, " + - "CriteriaTree, Faction, Points, MinimumCriteria, ID, IconFileDataID FROM achievement ORDER BY ID DESC"); + "CriteriaTree, Faction, Points, MinimumCriteria, ID, IconFileDataID, CriteriaTree FROM achievement ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_ACHIEVEMENT_LOCALE, "SELECT ID, Title_lang, Description_lang, Reward_lang FROM achievement_locale WHERE locale = ?"); // AnimKit.db2 @@ -157,12 +157,14 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, ClassID, PowerType FROM chr_classes_x_power_types ORDER BY ID DESC"); // ChrRaces.db2 - PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ID, Flags, ClientPrefix, ClientFileString, Name, NameFemale, NameMale, FacialHairCustomization1, " + - "FacialHairCustomization2, HairCustomization, CreateScreenFileDataID, SelectScreenFileDataID, MaleCustomizeOffset1, MaleCustomizeOffset2, " + - "MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, LowResScreenFileDataID, FactionID, " + - "MaleDisplayID, FemaleDisplayID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, TeamID, RaceRelated, " + + PrepareStatement(HotfixStatements.SEL_CHR_RACES, "SELECT ID, Flags, MaleDisplayID, FemaleDisplayID, ClientPrefix, ClientFileString, Name, NameFemale, " + + "NameMale, FacialHairCustomization1, FacialHairCustomization2, HairCustomization, CreateScreenFileDataID, SelectScreenFileDataID, " + + "MaleCustomizeOffset1, MaleCustomizeOffset2, MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, " + + "LowResScreenFileDataID, FactionID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, TeamID, RaceRelated, " + "UnalteredVisualRaceID, CharComponentTextureLayoutID, DefaultClassID, NeutralRaceID, ItemAppearanceFrameRaceID, " + - "CharComponentTexLayoutHiResID, HighResMaleDisplayID, HighResFemaleDisplayID, Unk1, Unk2, Unk3 FROM chr_races ORDER BY ID DESC"); + "CharComponentTexLayoutHiResID, HighResMaleDisplayID, HighResFemaleDisplayID, AlteredFormTransitionSpellVisualID1, " + + "AlteredFormTransitionSpellVisualID2, AlteredFormTransitionSpellVisualID3, AlteredFormTransitionSpellVisualKitID1, " + + "AlteredFormTransitionSpellVisualKitID2, AlteredFormTransitionSpellVisualKitID3 FROM chr_races ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_CHR_RACES_LOCALE, "SELECT ID, Name_lang, NameFemale_lang, NameMale_lang FROM chr_races_locale WHERE locale = ?"); // ChrSpecialization.db2 @@ -211,12 +213,11 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_CREATURE_TYPE_LOCALE, "SELECT ID, Name_lang FROM creature_type_locale WHERE locale = ?"); // Criteria.db2 - PrepareStatement(HotfixStatements.SEL_CRITERIA, "SELECT ID, Asset, StartAsset, FailAsset, StartTimer, ModifierTreeId, EligibilityWorldStateID, Type, StartEvent, " + + PrepareStatement(HotfixStatements.SEL_CRITERIA, "SELECT ID, Asset, StartAsset, FailAsset, ModifierTreeId, StartTimer, EligibilityWorldStateID, Type, StartEvent, " + "FailEvent, Flags, EligibilityWorldStateValue FROM criteria ORDER BY ID DESC"); // CriteriaTree.db2 - PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE, "SELECT ID, Amount, Description, Parent, Flags, Operator, CriteriaID, OrderIndex FROM criteria_tree" + - " ORDER BY ID DESC"); + PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE, "SELECT ID, Amount, Description, Flags, Operator, CriteriaID, Parent, OrderIndex FROM criteria_tree ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_CRITERIA_TREE_LOCALE, "SELECT ID, Description_lang FROM criteria_tree_locale WHERE locale = ?"); // CurrencyTypes.db2 @@ -477,7 +478,15 @@ namespace Framework.Database "RequirementFlags, RequiredAchievement FROM item_extended_cost ORDER BY ID DESC"); // ItemLevelSelector.db2 - PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, ItemLevel FROM item_level_selector ORDER BY ID DESC"); + PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, ItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector ORDER BY ID DESC"); + + // ItemLevelSelectorQuality.db2 + PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, ItemBonusListID, ItemLevelSelectorQualitySetID, Quality" + + " FROM item_level_selector_quality ORDER BY ID DESC"); + + // ItemLevelSelectorQualitySet.db2 + PrepareStatement(HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET, "SELECT ID, ItemLevelMin, ItemLevelMax FROM item_level_selector_quality_set" + + " ORDER BY ID DESC"); // ItemLimitCategory.db2 PrepareStatement(HotfixStatements.SEL_ITEM_LIMIT_CATEGORY, "SELECT ID, Name, Quantity, Flags FROM item_limit_category ORDER BY ID DESC"); @@ -501,8 +510,8 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_ITEM_RANDOM_SUFFIX_LOCALE, "SELECT ID, Name_lang FROM item_random_suffix_locale WHERE locale = ?"); // ItemSearchName.db2 - PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT ID, Name, Flags1, Flags2, Flags3, AllowableRace, RequiredSpell, RequiredReputationFaction, " + - "RequiredSkill, RequiredSkillRank, ItemLevel, Quality, RequiredExpansion, RequiredReputationRank, RequiredLevel, AllowableClass" + + PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME, "SELECT ID, Name, Flags1, Flags2, Flags3, AllowableRace, ItemLevel, Quality, RequiredExpansion, " + + "RequiredLevel, AllowableClass, RequiredReputationFaction, RequiredReputationRank, RequiredSkill, RequiredSkillRank, RequiredSpell" + " FROM item_search_name ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_ITEM_SEARCH_NAME_LOCALE, "SELECT ID, Name_lang FROM item_search_name_locale WHERE locale = ?"); @@ -516,7 +525,7 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_ITEM_SET_SPELL, "SELECT ID, SpellID, ItemSetID, ChrSpecID, Threshold FROM item_set_spell ORDER BY ID DESC"); // ItemSparse.db2 - PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, Flags1, Flags2, Flags3, Unk1, Unk2, BuyCount, BuyPrice, SellPrice, AllowableRace, " + + PrepareStatement(HotfixStatements.SEL_ITEM_SPARSE, "SELECT ID, Flags1, Flags2, Flags3, Flags4, Unk1, Unk2, BuyCount, BuyPrice, SellPrice, AllowableRace, " + "RequiredSpell, MaxCount, Stackable, ItemStatAllocation1, ItemStatAllocation2, ItemStatAllocation3, ItemStatAllocation4, ItemStatAllocation5, " + "ItemStatAllocation6, ItemStatAllocation7, ItemStatAllocation8, ItemStatAllocation9, ItemStatAllocation10, ItemStatSocketCostMultiplier1, " + "ItemStatSocketCostMultiplier2, ItemStatSocketCostMultiplier3, ItemStatSocketCostMultiplier4, ItemStatSocketCostMultiplier5, " + @@ -547,9 +556,9 @@ namespace Framework.Database // ItemXBonusTree.db2 PrepareStatement(HotfixStatements.SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemID, BonusTreeID FROM item_x_bonus_tree ORDER BY ID DESC"); - // KeyChain.db2 - PrepareStatement(HotfixStatements.SEL_KEY_CHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, " + - "Key15, Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM key_chain" + + // Keychain.db2 + PrepareStatement(HotfixStatements.SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, " + + "Key16, Key17, Key18, Key19, Key20, Key21, Key22, Key23, Key24, Key25, Key26, Key27, Key28, Key29, Key30, Key31, Key32 FROM keychain" + " ORDER BY ID DESC"); // LfgDungeons.db2 @@ -639,22 +648,23 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_PHASE_X_PHASE_GROUP, "SELECT ID, PhaseID, PhaseGroupID FROM phase_x_phase_group ORDER BY ID DESC"); // PlayerCondition.db2 - PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, SkillLogic, ReputationLogic, PrevQuestLogic, CurrQuestLogic, " + - "CurrentCompletedQuestLogic, SpellLogic, ItemLogic, Time1, Time2, AuraSpellLogic, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, " + - "AchievementLogic, AreaLogic, QuestKillLogic, FailureDescription, MinLevel, MaxLevel, SkillID1, SkillID2, SkillID3, SkillID4, MinSkill1, " + - "MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, MaxSkill4, MaxFactionID, PrevQuestID1, PrevQuestID2, PrevQuestID3, " + - "PrevQuestID4, CurrQuestID1, CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, " + - "CurrentCompletedQuestID3, CurrentCompletedQuestID4, Explored1, Explored2, WorldStateExpressionID, Achievement1, Achievement2, Achievement3, " + - "Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, QuestKillID, PhaseID, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, ModifierTreeID, " + - "Flags, Gender, NativeGender, MinLanguage, MaxLanguage, MinReputation1, MinReputation2, MinReputation3, MaxReputation, Unknown1, MinPVPRank, " + - "MaxPVPRank, PvpMedal, ItemFlags, AuraCount1, AuraCount2, AuraCount3, AuraCount4, WeatherID, PartyStatus, LifetimeMaxPVPRank, LfgStatus1, " + - "LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, CurrencyCount1, CurrencyCount2, CurrencyCount3, " + - "CurrencyCount4, MinExpansionLevel, MaxExpansionLevel, MinExpansionTier, MaxExpansionTier, MinGuildLevel, MaxGuildLevel, PhaseUseFlags, " + - "ChrSpecializationIndex, ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ClassMask, LanguageID, MinFactionID1, " + - "MinFactionID2, MinFactionID3, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, " + - "ItemCount3, ItemCount4, LfgLogic, LfgValue1, LfgValue2, LfgValue3, LfgValue4, CurrencyLogic, CurrencyID1, CurrencyID2, CurrencyID3, " + - "CurrencyID4, QuestKillMonster1, QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, PhaseGroupID, " + - "MinAvgItemLevel, MaxAvgItemLevel, MovementFlags1, MovementFlags2, MainHandItemSubclassMask FROM player_condition ORDER BY ID DESC"); + PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, " + + "FailureDescription, SkillID1, SkillID2, SkillID3, SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, " + + "MaxSkill4, PrevQuestID1, PrevQuestID2, PrevQuestID3, PrevQuestID4, CurrQuestID1, CurrQuestID2, CurrQuestID3, CurrQuestID4, " + + "CurrentCompletedQuestID1, CurrentCompletedQuestID2, CurrentCompletedQuestID3, CurrentCompletedQuestID4, Explored1, Explored2, Achievement1, " + + "Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, Flags, MinReputation1, MinReputation2, MinReputation3, " + + "AuraCount1, AuraCount2, AuraCount3, AuraCount4, LfgStatus1, LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, " + + "LfgCompare4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, ClassMask, MinFactionID1, MinFactionID2, MinFactionID3, " + + "SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, ItemCount3, ItemCount4, LfgValue1, " + + "LfgValue2, LfgValue3, LfgValue4, CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, QuestKillMonster1, QuestKillMonster2, " + + "QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2, MinLevel, MaxLevel, Gender, " + + "NativeGender, SkillLogic, LanguageID, MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, Unknown1, MinPVPRank, " + + "MaxPVPRank, PvpMedal, PrevQuestLogic, CurrQuestLogic, CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, " + + "WorldStateExpressionID, WeatherID, PartyStatus, LifetimeMaxPVPRank, AchievementLogic, LfgLogic, AreaLogic, CurrencyLogic, QuestKillID, " + + "QuestKillLogic, MinExpansionLevel, MaxExpansionLevel, MinExpansionTier, MaxExpansionTier, MinGuildLevel, MaxGuildLevel, PhaseUseFlags, " + + "PhaseID, PhaseGroupID, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, ChrSpecializationIndex, " + + "ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ModifierTreeID, MainHandItemSubclassMask FROM player_condition" + + " ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_PLAYER_CONDITION_LOCALE, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE locale = ?"); // PowerDisplay.db2 @@ -721,7 +731,7 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_SCENARIO_LOCALE, "SELECT ID, Name_lang FROM scenario_locale WHERE locale = ?"); // ScenarioStep.db2 - PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP, "SELECT ID, Description, Name, CriteriaTreeID, ScenarioID, PreviousStepID, QuestRewardID, Step, Flags, " + + PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP, "SELECT ID, Description, Name, ScenarioID, PreviousStepID, QuestRewardID, Step, Flags, CriteriaTreeID," + "BonusRequiredStepID FROM scenario_step ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_SCENARIO_STEP_LOCALE, "SELECT ID, Description_lang, Name_lang FROM scenario_step_locale WHERE locale = ?"); @@ -747,10 +757,9 @@ namespace Framework.Database " FROM skill_race_class_info ORDER BY ID DESC"); // SoundKit.db2 - PrepareStatement(HotfixStatements.SEL_SOUND_KIT, "SELECT Name, VolumeFloat, MinDistance, DistanceCutoff, VolumeVariationPlus, VolumeVariationMinus, " + - "PitchVariationPlus, PitchVariationMinus, PitchAdjust, Flags, SoundEntriesAdvancedID, BusOverwriteID, SoundType, EAXDef, DialogType, Unk700, " + - "ID FROM sound_kit ORDER BY ID DESC"); - PrepareStatement(HotfixStatements.SEL_SOUND_KIT_LOCALE, "SELECT ID, Name_lang FROM sound_kit_locale WHERE locale = ?"); + PrepareStatement(HotfixStatements.SEL_SOUND_KIT, "SELECT ID, VolumeFloat, MinDistance, DistanceCutoff, Flags, SoundEntriesAdvancedID, SoundType, " + + "DialogType, EAXDef, VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, PitchAdjust, BusOverwriteID, Unk700" + + " FROM sound_kit ORDER BY ID DESC"); // SpecializationSpells.db2 PrepareStatement(HotfixStatements.SEL_SPECIALIZATION_SPELLS, "SELECT SpellID, OverridesSpellID, Description, SpecID, OrderIndex, ID" + @@ -765,7 +774,7 @@ namespace Framework.Database // SpellAuraOptions.db2 PrepareStatement(HotfixStatements.SEL_SPELL_AURA_OPTIONS, "SELECT ID, SpellID, ProcCharges, ProcTypeMask, ProcCategoryRecovery, CumulativeAura, " + - "DifficultyID, ProcChance, SpellProcsPerMinuteID FROM spell_aura_options ORDER BY ID DESC"); + "SpellProcsPerMinuteID, DifficultyID, ProcChance FROM spell_aura_options ORDER BY ID DESC"); // SpellAuraRestrictions.db2 PrepareStatement(HotfixStatements.SEL_SPELL_AURA_RESTRICTIONS, "SELECT ID, SpellID, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, " + @@ -860,7 +869,7 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE, "SELECT ID, BaseProcRate, Flags FROM spell_procs_per_minute ORDER BY ID DESC"); // SpellProcsPerMinuteMod.db2 - PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Coeff, Param, Type, SpellProcsPerMinuteID FROM spell_procs_per_minute_mod" + + PrepareStatement(HotfixStatements.SEL_SPELL_PROCS_PER_MINUTE_MOD, "SELECT ID, Coeff, Param, SpellProcsPerMinuteID, Type FROM spell_procs_per_minute_mod" + " ORDER BY ID DESC"); // SpellRadius.db2 @@ -917,16 +926,17 @@ namespace Framework.Database PrepareStatement(HotfixStatements.SEL_TALENT_LOCALE, "SELECT ID, Description_lang FROM talent_locale WHERE locale = ?"); // TaxiNodes.db2 - PrepareStatement(HotfixStatements.SEL_TAXI_NODES, "SELECT PosX, PosY, PosZ, Name, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, MapID, " + - "ConditionID, LearnableIndex, Flags, ID FROM taxi_nodes ORDER BY ID DESC"); + PrepareStatement(HotfixStatements.SEL_TAXI_NODES, "SELECT ID, PosX, PosY, PosZ, Name, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, Unk730, " + + "FlightMapOffsetX, FlightMapOffsetY, MapID, ConditionID, LearnableIndex, Flags, UiTextureKitPrefixID, SpecialAtlasIconPlayerConditionID" + + " FROM taxi_nodes ORDER BY ID DESC"); PrepareStatement(HotfixStatements.SEL_TAXI_NODES_LOCALE, "SELECT ID, Name_lang FROM taxi_nodes_locale WHERE locale = ?"); // TaxiPath.db2 PrepareStatement(HotfixStatements.SEL_TAXI_PATH, "SELECT `From`, `To`, ID, Cost FROM taxi_path ORDER BY ID DESC"); // TaxiPathNode.db2 - PrepareStatement(HotfixStatements.SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, Delay, PathID, MapID, ArrivalEventID, DepartureEventID, NodeIndex, Flags, " + - "ID FROM taxi_path_node ORDER BY ID DESC"); + PrepareStatement(HotfixStatements.SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, PathID, MapID, NodeIndex, ID, Flags, Delay, ArrivalEventID, " + + "DepartureEventID FROM taxi_path_node ORDER BY ID DESC"); // TotemCategory.db2 PrepareStatement(HotfixStatements.SEL_TOTEM_CATEGORY, "SELECT ID, Name, CategoryMask, CategoryType FROM totem_category ORDER BY ID DESC"); @@ -967,11 +977,9 @@ namespace Framework.Database // Vehicle.db2 PrepareStatement(HotfixStatements.SEL_VEHICLE, "SELECT ID, Flags, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, CameraFadeDistScalarMin, " + - "CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, MsslTrgtTurnLingering, MsslTrgtPitchLingering, " + - "MsslTrgtMouseLingering, MsslTrgtEndOpacity, MsslTrgtArcSpeed, MsslTrgtArcRepeat, MsslTrgtArcWidth, MsslTrgtImpactRadius1, " + - "MsslTrgtImpactRadius2, MsslTrgtArcTexture, MsslTrgtImpactTexture, MsslTrgtImpactModel1, MsslTrgtImpactModel2, CameraYawOffset, " + - "MsslTrgtImpactTexRadius, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, " + - "PowerDisplayID2, PowerDisplayID3, FlagsB, UILocomotionType FROM vehicle ORDER BY ID DESC"); + "CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, " + + "SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, PowerDisplayID2, PowerDisplayID3, FlagsB, UILocomotionType, " + + "MissileTargetingID FROM vehicle ORDER BY ID DESC"); // VehicleSeat.db2 PrepareStatement(HotfixStatements.SEL_VEHICLE_SEAT, "SELECT ID, Flags1, Flags2, Flags3, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, " + @@ -995,8 +1003,8 @@ namespace Framework.Database "PlayerConditionID FROM world_effect ORDER BY ID DESC"); // WorldMapArea.db2 - PrepareStatement(HotfixStatements.SEL_WORLD_MAP_AREA, "SELECT AreaName, LocLeft, LocRight, LocTop, LocBottom, MapID, AreaID, DisplayMapID, " + - "DefaultDungeonFloor, ParentWorldMapID, Flags, LevelRangeMin, LevelRangeMax, BountySetID, BountyBoardLocation, ID, PlayerConditionID" + + PrepareStatement(HotfixStatements.SEL_WORLD_MAP_AREA, "SELECT AreaName, LocLeft, LocRight, LocTop, LocBottom, Flags, MapID, AreaID, DisplayMapID, " + + "DefaultDungeonFloor, ParentWorldMapID, LevelRangeMin, LevelRangeMax, BountySetID, BountyBoardLocation, ID, PlayerConditionID" + " FROM world_map_area ORDER BY ID DESC"); // WorldMapOverlay.db2 @@ -1006,7 +1014,7 @@ namespace Framework.Database // WorldMapTransforms.db2 PrepareStatement(HotfixStatements.SEL_WORLD_MAP_TRANSFORMS, "SELECT ID, RegionMinX, RegionMinY, RegionMinZ, RegionMaxX, RegionMaxY, RegionMaxZ, " + - "RegionOffsetX, RegionOffsetY, RegionScale, MapID, AreaID, NewMapID, NewDungeonMapID, NewAreaID, Flags FROM world_map_transforms" + + "RegionOffsetX, RegionOffsetY, RegionScale, MapID, AreaID, NewMapID, NewDungeonMapID, NewAreaID, Flags, Priority FROM world_map_transforms" + " ORDER BY ID DESC"); // WorldSafeLocs.db2 @@ -1264,6 +1272,10 @@ namespace Framework.Database SEL_ITEM_LEVEL_SELECTOR, + SEL_ITEM_LEVEL_SELECTOR_QUALITY, + + SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET, + SEL_ITEM_LIMIT_CATEGORY, SEL_ITEM_LIMIT_CATEGORY_LOCALE, @@ -1296,7 +1308,7 @@ namespace Framework.Database SEL_ITEM_X_BONUS_TREE, - SEL_KEY_CHAIN, + SEL_KEYCHAIN, SEL_LFG_DUNGEONS, SEL_LFG_DUNGEONS_LOCALE, @@ -1400,7 +1412,6 @@ namespace Framework.Database SEL_SKILL_RACE_CLASS_INFO, SEL_SOUND_KIT, - SEL_SOUND_KIT_LOCALE, SEL_SPECIALIZATION_SPELLS, SEL_SPECIALIZATION_SPELLS_LOCALE, diff --git a/Source/Game/BattleGrounds/BattleGround.cs b/Source/Game/BattleGrounds/BattleGround.cs index 9ce7e7794..386ae3bd6 100644 --- a/Source/Game/BattleGrounds/BattleGround.cs +++ b/Source/Game/BattleGrounds/BattleGround.cs @@ -1757,7 +1757,7 @@ namespace Game.BattleGrounds } } - public void SetBracket(PvpDifficultyRecord bracketEntry) + public void SetBracket(PVPDifficultyRecord bracketEntry) { m_BracketId = bracketEntry.GetBracketId(); SetLevelRange(bracketEntry.MinLevel, bracketEntry.MaxLevel); diff --git a/Source/Game/BattleGrounds/BattleGroundManager.cs b/Source/Game/BattleGrounds/BattleGroundManager.cs index 51f261984..f654f58b9 100644 --- a/Source/Game/BattleGrounds/BattleGroundManager.cs +++ b/Source/Game/BattleGrounds/BattleGroundManager.cs @@ -249,7 +249,7 @@ namespace Game.BattleGrounds } // create a new Battleground that will really be used to play - public Battleground CreateNewBattleground(BattlegroundTypeId originalBgTypeId, PvpDifficultyRecord bracketEntry, ArenaTypes arenaType, bool isRated) + public Battleground CreateNewBattleground(BattlegroundTypeId originalBgTypeId, PVPDifficultyRecord bracketEntry, ArenaTypes arenaType, bool isRated) { BattlegroundTypeId bgTypeId = GetRandomBG(originalBgTypeId); diff --git a/Source/Game/BattleGrounds/BattleGroundQueue.cs b/Source/Game/BattleGrounds/BattleGroundQueue.cs index c3da68919..b383ed129 100644 --- a/Source/Game/BattleGrounds/BattleGroundQueue.cs +++ b/Source/Game/BattleGrounds/BattleGroundQueue.cs @@ -55,7 +55,7 @@ namespace Game.BattleGrounds } // add group or player (grp == null) to bg queue with the given leader and bg specifications - public GroupQueueInfo AddGroup(Player leader, Group grp, BattlegroundTypeId BgTypeId, PvpDifficultyRecord bracketEntry, ArenaTypes ArenaType, bool isRated, bool isPremade, uint ArenaRating, uint MatchmakerRating, uint arenateamid = 0) + public GroupQueueInfo AddGroup(Player leader, Group grp, BattlegroundTypeId BgTypeId, PVPDifficultyRecord bracketEntry, ArenaTypes ArenaType, bool isRated, bool isPremade, uint ArenaRating, uint MatchmakerRating, uint arenateamid = 0) { BattlegroundBracketId bracketId = bracketEntry.GetBracketId(); @@ -776,7 +776,7 @@ namespace Game.BattleGrounds return; } - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketById(bg_template.GetMapId(), bracket_id); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketById(bg_template.GetMapId(), bracket_id); if (bracketEntry == null) { Log.outError(LogFilter.Battleground, "Battleground: Update: bg bracket entry not found for map {0} bracket id {1}", bg_template.GetMapId(), bracket_id); diff --git a/Source/Game/DataStorage/CliDB.cs b/Source/Game/DataStorage/CliDB.cs index 665343d2a..06ca0f468 100644 --- a/Source/Game/DataStorage/CliDB.cs +++ b/Source/Game/DataStorage/CliDB.cs @@ -52,7 +52,7 @@ namespace Game.DataStorage //ArtifactQuestXPStorage = DB6Reader.Read("ArtifactQuestXP.db2", DB6Metas.ArtifactQuestXPMeta, HotfixStatements.SEL_ARTIFACT_QUEST_XP); AuctionHouseStorage = DB6Reader.Read("AuctionHouse.db2", DB6Metas.AuctionHouseMeta, HotfixStatements.SEL_AUCTION_HOUSE, HotfixStatements.SEL_AUCTION_HOUSE_LOCALE); BankBagSlotPricesStorage = DB6Reader.Read("BankBagSlotPrices.db2", DB6Metas.BankBagSlotPricesMeta, HotfixStatements.SEL_BANK_BAG_SLOT_PRICES); - //BannedAddOnsStorage = DB6Reader.Read("BannedAddOns.db2", DB6Metas.BannedAddOnsMeta, HotfixStatements.SEL_BANNED_ADDONS); + //BannedAddOnsStorage = DB6Reader.Read("BannedAddons.db2", DB6Metas.BannedAddOnsMeta, HotfixStatements.SEL_BANNED_ADDONS); BarberShopStyleStorage = DB6Reader.Read("BarberShopStyle.db2", DB6Metas.BarberShopStyleMeta, HotfixStatements.SEL_BARBER_SHOP_STYLE, HotfixStatements.SEL_BARBER_SHOP_STYLE_LOCALE); BattlePetBreedQualityStorage = DB6Reader.Read("BattlePetBreedQuality.db2", DB6Metas.BattlePetBreedQualityMeta, HotfixStatements.SEL_BATTLE_PET_BREED_QUALITY); BattlePetBreedStateStorage = DB6Reader.Read("BattlePetBreedState.db2", DB6Metas.BattlePetBreedStateMeta, HotfixStatements.SEL_BATTLE_PET_BREED_STATE); @@ -141,6 +141,8 @@ namespace Game.DataStorage ItemStorage = DB6Reader.Read("Item.db2", DB6Metas.ItemMeta, HotfixStatements.SEL_ITEM); ItemExtendedCostStorage = DB6Reader.Read("ItemExtendedCost.db2", DB6Metas.ItemExtendedCostMeta, HotfixStatements.SEL_ITEM_EXTENDED_COST); ItemLevelSelectorStorage = DB6Reader.Read("ItemLevelSelector.db2", DB6Metas.ItemLevelSelectorMeta, HotfixStatements.SEL_ITEM_LEVEL_SELECTOR); + ItemLevelSelectorQualityStorage = DB6Reader.Read("ItemLevelSelectorQuality.db2", DB6Metas.ItemLevelSelectorQualityMeta, HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY); + ItemLevelSelectorQualitySetStorage = DB6Reader.Read("ItemLevelSelectorQualitySet.db2", DB6Metas.ItemLevelSelectorQualitySetMeta, HotfixStatements.SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET); ItemLimitCategoryStorage = DB6Reader.Read("ItemLimitCategory.db2", DB6Metas.ItemLimitCategoryMeta, HotfixStatements.SEL_ITEM_LIMIT_CATEGORY, HotfixStatements.SEL_ITEM_LIMIT_CATEGORY_LOCALE); ItemModifiedAppearanceStorage = DB6Reader.Read("ItemModifiedAppearance.db2", DB6Metas.ItemModifiedAppearanceMeta, HotfixStatements.SEL_ITEM_MODIFIED_APPEARANCE); ItemPriceBaseStorage = DB6Reader.Read("ItemPriceBase.db2", DB6Metas.ItemPriceBaseMeta, HotfixStatements.SEL_ITEM_PRICE_BASE); @@ -155,7 +157,7 @@ namespace Game.DataStorage ItemUpgradeStorage = DB6Reader.Read("ItemUpgrade.db2", DB6Metas.ItemUpgradeMeta, HotfixStatements.SEL_ITEM_UPGRADE); ItemXBonusTreeStorage = DB6Reader.Read("ItemXBonusTree.db2", DB6Metas.ItemXBonusTreeMeta, HotfixStatements.SEL_ITEM_X_BONUS_TREE); //KeyChainStorage = DB6Reader.Read("KeyChain.db2", DB6Metas.KeyChainMeta, HotfixStatements.SEL_KEY_CHAIN); - LfgDungeonsStorage = DB6Reader.Read("LfgDungeons.db2", DB6Metas.LfgDungeonsMeta, HotfixStatements.SEL_LFG_DUNGEONS, HotfixStatements.SEL_LFG_DUNGEONS_LOCALE); + LFGDungeonsStorage = DB6Reader.Read("LFGDungeons.db2", DB6Metas.LFGDungeonsMeta, HotfixStatements.SEL_LFG_DUNGEONS, HotfixStatements.SEL_LFG_DUNGEONS_LOCALE); LightStorage = DB6Reader.Read("Light.db2", DB6Metas.LightMeta, HotfixStatements.SEL_LIGHT); LiquidTypeStorage = DB6Reader.Read("LiquidType.db2", DB6Metas.LiquidTypeMeta, HotfixStatements.SEL_LIQUID_TYPE, HotfixStatements.SEL_LIQUID_TYPE_LOCALE); LockStorage = DB6Reader.Read("Lock.db2", DB6Metas.LockMeta, HotfixStatements.SEL_LOCK); @@ -179,7 +181,7 @@ namespace Game.DataStorage PowerDisplayStorage = DB6Reader.Read("PowerDisplay.db2", DB6Metas.PowerDisplayMeta, HotfixStatements.SEL_POWER_DISPLAY); PowerTypeStorage = DB6Reader.Read("PowerType.db2", DB6Metas.PowerTypeMeta, HotfixStatements.SEL_POWER_TYPE); PrestigeLevelInfoStorage = DB6Reader.Read("PrestigeLevelInfo.db2", DB6Metas.PrestigeLevelInfoMeta, HotfixStatements.SEL_PRESTIGE_LEVEL_INFO, HotfixStatements.SEL_PRESTIGE_LEVEL_INFO_LOCALE); - PvpDifficultyStorage = DB6Reader.Read("PvpDifficulty.db2", DB6Metas.PvpDifficultyMeta, HotfixStatements.SEL_PVP_DIFFICULTY); + PVPDifficultyStorage = DB6Reader.Read("PVPDifficulty.db2", DB6Metas.PvpDifficultyMeta, HotfixStatements.SEL_PVP_DIFFICULTY); PvpRewardStorage = DB6Reader.Read("PvpReward.db2", DB6Metas.PvpRewardMeta, HotfixStatements.SEL_PVP_REWARD); QuestFactionRewardStorage = DB6Reader.Read("QuestFactionReward.db2", DB6Metas.QuestFactionRewardMeta, HotfixStatements.SEL_QUEST_FACTION_REWARD); QuestMoneyRewardStorage = DB6Reader.Read("QuestMoneyReward.db2", DB6Metas.QuestMoneyRewardMeta, HotfixStatements.SEL_QUEST_MONEY_REWARD); @@ -199,7 +201,7 @@ namespace Game.DataStorage SkillLineStorage = DB6Reader.Read("SkillLine.db2", DB6Metas.SkillLineMeta, HotfixStatements.SEL_SKILL_LINE, HotfixStatements.SEL_SKILL_LINE_LOCALE); SkillLineAbilityStorage = DB6Reader.Read("SkillLineAbility.db2", DB6Metas.SkillLineAbilityMeta, HotfixStatements.SEL_SKILL_LINE_ABILITY); SkillRaceClassInfoStorage = DB6Reader.Read("SkillRaceClassInfo.db2", DB6Metas.SkillRaceClassInfoMeta, HotfixStatements.SEL_SKILL_RACE_CLASS_INFO); - SoundKitStorage = DB6Reader.Read("SoundKit.db2", DB6Metas.SoundKitMeta, HotfixStatements.SEL_SOUND_KIT, HotfixStatements.SEL_SOUND_KIT_LOCALE); + SoundKitStorage = DB6Reader.Read("SoundKit.db2", DB6Metas.SoundKitMeta, HotfixStatements.SEL_SOUND_KIT); SpecializationSpellsStorage = DB6Reader.Read("SpecializationSpells.db2", DB6Metas.SpecializationSpellsMeta, HotfixStatements.SEL_SPECIALIZATION_SPELLS, HotfixStatements.SEL_SPECIALIZATION_SPELLS_LOCALE); SpellStorage = DB6Reader.Read("Spell.db2", DB6Metas.SpellMeta, HotfixStatements.SEL_SPELL, HotfixStatements.SEL_SPELL_LOCALE); SpellAuraOptionsStorage = DB6Reader.Read("SpellAuraOptions.db2", DB6Metas.SpellAuraOptionsMeta, HotfixStatements.SEL_SPELL_AURA_OPTIONS); @@ -467,6 +469,8 @@ namespace Game.DataStorage public static DB6Storage ItemStorage; public static DB6Storage ItemExtendedCostStorage; public static DB6Storage ItemLevelSelectorStorage; + public static DB6Storage ItemLevelSelectorQualityStorage; + public static DB6Storage ItemLevelSelectorQualitySetStorage; public static DB6Storage ItemLimitCategoryStorage; public static DB6Storage ItemModifiedAppearanceStorage; public static DB6Storage ItemPriceBaseStorage; @@ -481,7 +485,7 @@ namespace Game.DataStorage public static DB6Storage ItemUpgradeStorage; public static DB6Storage ItemXBonusTreeStorage; //public static DB6Storage KeyChainStorage; - public static DB6Storage LfgDungeonsStorage; + public static DB6Storage LFGDungeonsStorage; public static DB6Storage LightStorage; public static DB6Storage LiquidTypeStorage; public static DB6Storage LockStorage; @@ -505,7 +509,7 @@ namespace Game.DataStorage public static DB6Storage PowerDisplayStorage; public static DB6Storage PowerTypeStorage; public static DB6Storage PrestigeLevelInfoStorage; - public static DB6Storage PvpDifficultyStorage; + public static DB6Storage PVPDifficultyStorage; public static DB6Storage PvpRewardStorage; public static DB6Storage QuestFactionRewardStorage; public static DB6Storage QuestMoneyRewardStorage; diff --git a/Source/Game/DataStorage/ClientReader/DB6Meta.cs b/Source/Game/DataStorage/ClientReader/DB6Meta.cs index ee4c22e44..84fed3e9a 100644 --- a/Source/Game/DataStorage/ClientReader/DB6Meta.cs +++ b/Source/Game/DataStorage/ClientReader/DB6Meta.cs @@ -31,7 +31,7 @@ namespace Game.DataStorage public struct DB6Metas { - public static DB6Meta AchievementMeta = new DB6Meta(13, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta AchievementMeta = new DB6Meta(12, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta AchievementCategoryMeta = new DB6Meta(3, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta AdventureJournalMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1 }); public static DB6Meta AdventureMapPOIMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -42,12 +42,12 @@ namespace Game.DataStorage public static DB6Meta AnimKitConfigBoneSetMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta AnimKitPriorityMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta AnimKitReplacementMeta = new DB6Meta(4, new byte[] { 1, 1, 1, 1 }); - public static DB6Meta AnimKitSegmentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta AnimKitSegmentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta AnimReplacementMeta = new DB6Meta(4, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta AnimReplacementSetMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta AnimationDataMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta AnimationDataMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta AreaGroupMemberMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta AreaPOIMeta = new DB6Meta(-1, new byte[] { 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta AreaPOIMeta = new DB6Meta(-1, new byte[] { 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta AreaPOIStateMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta AreaTableMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta AreaTriggerMeta = new DB6Meta(14, new byte[] { 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -69,7 +69,7 @@ namespace Game.DataStorage public static DB6Meta ArtifactUnlockMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta AuctionHouseMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta BankBagSlotPricesMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta BannedAddOnsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta BannedAddonsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta BarberShopStyleMeta = new DB6Meta(7, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta BattlePetAbilityMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta BattlePetAbilityEffectMeta = new DB6Meta(6, new byte[] { 1, 1, 1, 1, 6, 1, 1 }); @@ -88,7 +88,7 @@ namespace Game.DataStorage public static DB6Meta BeamEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta BoneWindModifierModelMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta BoneWindModifiersMeta = new DB6Meta(-1, new byte[] { 1, 3, 1 }); - public static DB6Meta BountyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); + public static DB6Meta BountyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta BountySetMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta BroadcastTextMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 3, 3, 1, 1, 1, 2, 1 }); public static DB6Meta CameraEffectMeta = new DB6Meta(-1, new byte[] { 1, 1 }); @@ -122,7 +122,7 @@ namespace Game.DataStorage public static DB6Meta ChrClassVillainMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ChrClassesMeta = new DB6Meta(18, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ChrClassesXPowerTypesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta ChrRacesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 }); + public static DB6Meta ChrRacesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3 }); public static DB6Meta ChrSpecializationMeta = new DB6Meta(9, new byte[] { 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ChrUpgradeBucketMeta = new DB6Meta(2, new byte[] { 1, 1, 1 }); public static DB6Meta ChrUpgradeBucketSpellMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); @@ -135,6 +135,7 @@ namespace Game.DataStorage public static DB6Meta CommentatorTrackedCooldownMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta ComponentModelFileDataMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta ComponentTextureFileDataMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta ConfigurationWarningMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta ContributionMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 4, 1 }); public static DB6Meta ConversationLineMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta CreatureMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -142,9 +143,9 @@ namespace Game.DataStorage public static DB6Meta CreatureDispXUiCameraMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta CreatureDisplayInfoMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta CreatureDisplayInfoCondMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 2, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 }); - public static DB6Meta CreatureDisplayInfoEvtMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta CreatureDisplayInfoEvtMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta CreatureDisplayInfoExtraMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1 }); - public static DB6Meta CreatureDisplayInfoTrnMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); + public static DB6Meta CreatureDisplayInfoTrnMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta CreatureFamilyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 2, 1, 1, 1, 1 }); public static DB6Meta CreatureImmunitiesMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 1, 1, 1, 1, 1, 8, 16 }); public static DB6Meta CreatureModelDataMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -167,14 +168,14 @@ namespace Game.DataStorage public static DB6Meta DeviceBlacklistMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta DeviceDefaultSettingsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta DifficultyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta DissolveEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta DissolveEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta DriverBlacklistMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta DungeonEncounterMeta = new DB6Meta(6, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta DungeonMapMeta = new DB6Meta(7, new byte[] { 2, 2, 1, 1, 1, 1, 1 }); public static DB6Meta DungeonMapChunkMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta DurabilityCostsMeta = new DB6Meta(-1, new byte[] { 1, 21, 8 }); public static DB6Meta DurabilityQualityMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta EdgeGlowEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta EdgeGlowEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta EmotesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta EmotesTextMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta EmotesTextDataMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); @@ -188,12 +189,12 @@ namespace Game.DataStorage public static DB6Meta FootstepTerrainLookupMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta FriendshipRepReactionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta FriendshipReputationMeta = new DB6Meta(3, new byte[] { 1, 1, 1, 1 }); - public static DB6Meta FullScreenEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta FullScreenEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta GMSurveyAnswersMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta GMSurveyCurrentSurveyMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta GMSurveyQuestionsMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta GMSurveySurveysMeta = new DB6Meta(-1, new byte[] { 1, 15 }); - public static DB6Meta GameObjectArtKitMeta = new DB6Meta(-1, new byte[] { 1, 3, 4 }); + public static DB6Meta GameObjectArtKitMeta = new DB6Meta(-1, new byte[] { 1, 3, 1 }); public static DB6Meta GameObjectDiffAnimMapMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta GameObjectDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 6, 1, 1, 1 }); public static DB6Meta GameObjectDisplayInfoXSoundKitMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); @@ -239,8 +240,8 @@ namespace Game.DataStorage public static DB6Meta GarrStringMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta GarrTalentMeta = new DB6Meta(7, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta GarrTalentTreeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); - public static DB6Meta GarrTypeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); - public static DB6Meta GarrUiAnimClassInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); + public static DB6Meta GarrTypeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 2 }); + public static DB6Meta GarrUiAnimClassInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta GarrUiAnimRaceInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta GemPropertiesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta GlobalStringsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); @@ -282,7 +283,7 @@ namespace Game.DataStorage public static DB6Meta ItemBonusTreeNodeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemChildEquipmentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ItemClassMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta ItemContextPickerEntryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ItemContextPickerEntryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemCurrencyCostMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta ItemDamageAmmoMeta = new DB6Meta(-1, new byte[] { 1, 7, 1 }); public static DB6Meta ItemDamageOneHandMeta = new DB6Meta(-1, new byte[] { 1, 7, 1 }); @@ -290,13 +291,15 @@ namespace Game.DataStorage public static DB6Meta ItemDamageTwoHandMeta = new DB6Meta(-1, new byte[] { 1, 7, 1 }); public static DB6Meta ItemDamageTwoHandCasterMeta = new DB6Meta(-1, new byte[] { 1, 7, 1 }); public static DB6Meta ItemDisenchantLootMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta ItemDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 2, 2, 3, 3, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ItemDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 2, 2, 4, 4, 1, 1, 2, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemDisplayInfoMaterialResMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ItemDisplayXUiCameraMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta ItemEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemExtendedCostMeta = new DB6Meta(-1, new byte[] { 1, 5, 5, 5, 1, 5, 1, 1, 1, 1, 1 }); public static DB6Meta ItemGroupSoundsMeta = new DB6Meta(-1, new byte[] { 1, 4 }); - public static DB6Meta ItemLevelSelectorMeta = new DB6Meta(-1, new byte[] { 1, 1 }); + public static DB6Meta ItemLevelSelectorMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); + public static DB6Meta ItemLevelSelectorQualityMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta ItemLevelSelectorQualitySetMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta ItemLimitCategoryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ItemLimitCategoryConditionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ItemModifiedAppearanceMeta = new DB6Meta(5, new byte[] { 1, 1, 1, 1, 1, 1 }); @@ -307,16 +310,15 @@ namespace Game.DataStorage public static DB6Meta ItemRandomPropertiesMeta = new DB6Meta(-1, new byte[] { 1, 1, 5 }); public static DB6Meta ItemRandomSuffixMeta = new DB6Meta(-1, new byte[] { 1, 1, 5, 5 }); public static DB6Meta ItemRangedDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta ItemSearchNameMeta = new DB6Meta(-1, new byte[] { 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ItemSearchNameMeta = new DB6Meta(0, new byte[] { 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemSetMeta = new DB6Meta(-1, new byte[] { 1, 1, 17, 1, 1, 1 }); public static DB6Meta ItemSetSpellMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta ItemSparseMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1 }); + public static DB6Meta ItemSparseMeta = new DB6Meta(-1, new byte[] { 1, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 10, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1 }); public static DB6Meta ItemSpecMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemSpecOverrideMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta ItemSubClassMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ItemSubClassMaskMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ItemUpgradeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); - public static DB6Meta ItemVisualEffectsMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta ItemVisualsMeta = new DB6Meta(-1, new byte[] { 1, 5 }); public static DB6Meta ItemXBonusTreeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta JournalEncounterMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -324,18 +326,19 @@ namespace Game.DataStorage public static DB6Meta JournalEncounterItemMeta = new DB6Meta(5, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta JournalEncounterSectionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta JournalEncounterXDifficultyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); + public static DB6Meta JournalEncounterXMapLocMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 1, 1, 1, 1 }); public static DB6Meta JournalInstanceMeta = new DB6Meta(10, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta JournalItemXDifficultyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta JournalSectionXDifficultyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta JournalTierMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta JournalTierXInstanceMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta KeyChainMeta = new DB6Meta(-1, new byte[] { 1, 32 }); + public static DB6Meta KeychainMeta = new DB6Meta(-1, new byte[] { 1, 32 }); public static DB6Meta KeystoneAffixMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta LanguageWordsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta LanguagesMeta = new DB6Meta(1, new byte[] { 1, 1 }); public static DB6Meta LfgDungeonExpansionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta LfgDungeonGroupMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta LfgDungeonsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta LFGDungeonsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta LfgDungeonsGroupingMapMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta LfgRoleRequirementMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta LightMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 1, 1, 8 }); @@ -366,9 +369,11 @@ namespace Game.DataStorage public static DB6Meta MapChallengeModeMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 3, 1 }); public static DB6Meta MapDifficultyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta MapDifficultyXConditionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); + public static DB6Meta MapLoadingScreenMeta = new DB6Meta(-1, new byte[] { 1, 2, 2, 1, 1, 1 }); public static DB6Meta MarketingPromotionsXLocaleMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta MaterialMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta MinorTalentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta MissileTargetingMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 1, 2 }); public static DB6Meta ModelAnimCloakDampeningMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta ModelFileDataMeta = new DB6Meta(1, new byte[] { 1, 1, 1 }); public static DB6Meta ModelRibbonQualityMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); @@ -380,13 +385,13 @@ namespace Game.DataStorage public static DB6Meta MovieMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta MovieFileDataMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta MovieVariationMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta NPCModelItemSlotDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta NPCSoundsMeta = new DB6Meta(-1, new byte[] { 1, 4 }); public static DB6Meta NameGenMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta NamesProfanityMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta NamesReservedMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta NamesReservedLocaleMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta NpcModelItemSlotDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); - public static DB6Meta ObjectEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 3, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ObjectEffectMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ObjectEffectGroupMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta ObjectEffectModifierMeta = new DB6Meta(-1, new byte[] { 1, 4, 1, 1, 1 }); public static DB6Meta ObjectEffectPackageMeta = new DB6Meta(-1, new byte[] { 1, 1 }); @@ -404,7 +409,7 @@ namespace Game.DataStorage public static DB6Meta PhaseMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta PhaseShiftZoneSoundsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta PhaseXPhaseGroupMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta PlayerConditionMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 4, 1, 1, 1, 1, 1, 1, 4, 4, 4, 1, 4, 4, 4, 2, 1, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 4, 1, 1, 1, 4, 4, 4, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 4, 4, 4, 1, 4, 1, 4, 6, 1, 1, 1, 2, 1 }); + public static DB6Meta PlayerConditionMeta = new DB6Meta(0, new byte[] { 1, 1, 2, 4, 1, 4, 4, 4, 4, 4, 4, 2, 4, 4, 1, 3, 4, 4, 4, 4, 1, 3, 4, 4, 4, 4, 4, 6, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta PositionerMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta PositionerStateMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta PositionerStateEntryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -427,7 +432,7 @@ namespace Game.DataStorage public static DB6Meta QuestMoneyRewardMeta = new DB6Meta(-1, new byte[] { 1, 10 }); public static DB6Meta QuestObjectiveMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta QuestPOIBlobMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta QuestPOIPointMeta = new DB6Meta(3, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta QuestPOIPointMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta QuestPOIPointCliTaskMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta QuestPackageItemMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta QuestSortMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); @@ -436,7 +441,9 @@ namespace Game.DataStorage public static DB6Meta QuestXGroupActivityMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta QuestXPMeta = new DB6Meta(-1, new byte[] { 1, 10 }); public static DB6Meta RandPropPointsMeta = new DB6Meta(-1, new byte[] { 1, 5, 5, 5 }); - public static DB6Meta ResearchBranchMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta RelicSlotTierRequirementMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta RelicTalentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ResearchBranchMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ResearchFieldMeta = new DB6Meta(2, new byte[] { 1, 1, 1 }); public static DB6Meta ResearchProjectMeta = new DB6Meta(7, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ResearchSiteMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); @@ -461,7 +468,7 @@ namespace Game.DataStorage public static DB6Meta ScreenLocationMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta SeamlessSiteMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta ServerMessagesMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta ShadowyEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta ShadowyEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SkillLineMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SkillLineAbilityMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SkillRaceClassInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -471,13 +478,15 @@ namespace Game.DataStorage public static DB6Meta SoundBusOverrideMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SoundEmitterPillPointsMeta = new DB6Meta(-1, new byte[] { 1, 3, 1 }); public static DB6Meta SoundEmittersMeta = new DB6Meta(9, new byte[] { 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SoundEnvelopeMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SoundFilterMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta SoundFilterElemMeta = new DB6Meta(-1, new byte[] { 1, 9, 1, 1 }); - public static DB6Meta SoundKitMeta = new DB6Meta(16, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta SoundKitAdvancedMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SoundKitMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SoundKitAdvancedMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SoundKitChildMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta SoundKitEntryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta SoundKitFallbackMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); + public static DB6Meta SoundKitNameMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta SoundOverrideMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta SoundProviderPreferencesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SourceInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); @@ -494,7 +503,7 @@ namespace Game.DataStorage public static DB6Meta SpellCastingRequirementsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellCategoriesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellCategoryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta SpellChainEffectsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 }); + public static DB6Meta SpellChainEffectsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 3, 3, 3, 1, 1, 1, 1, 1, 1, 1, 11, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3 }); public static DB6Meta SpellClassOptionsMeta = new DB6Meta(-1, new byte[] { 1, 1, 4, 1, 1 }); public static DB6Meta SpellCooldownsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellDescriptionVariablesMeta = new DB6Meta(-1, new byte[] { 1, 1 }); @@ -535,11 +544,12 @@ namespace Game.DataStorage public static DB6Meta SpellSpecialUnitEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta SpellTargetRestrictionsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellTotemsMeta = new DB6Meta(-1, new byte[] { 1, 1, 2, 2 }); - public static DB6Meta SpellVisualMeta = new DB6Meta(7, new byte[] { 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SpellVisualMeta = new DB6Meta(4, new byte[] { 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellVisualAnimMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta SpellVisualColorEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellVisualEffectNameMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta SpellVisualKitMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SpellVisualEventMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta SpellVisualKitMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellVisualKitAreaModelMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta SpellVisualKitEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta SpellVisualKitModelAttachMeta = new DB6Meta(6, new byte[] { 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); @@ -547,13 +557,12 @@ namespace Game.DataStorage public static DB6Meta SpellXSpellVisualMeta = new DB6Meta(2, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta StartupFilesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta Startup_StringsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); - public static DB6Meta StationeryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); - public static DB6Meta StringLookupsMeta = new DB6Meta(-1, new byte[] { 1, 1 }); + public static DB6Meta StationeryMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 2 }); public static DB6Meta SummonPropertiesMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta TactKeyMeta = new DB6Meta(-1, new byte[] { 1, 16 }); public static DB6Meta TactKeyLookupMeta = new DB6Meta(-1, new byte[] { 1, 8 }); public static DB6Meta TalentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 2, 1 }); - public static DB6Meta TaxiNodesMeta = new DB6Meta(8, new byte[] { 3, 1, 2, 2, 1, 1, 1, 1, 1 }); + public static DB6Meta TaxiNodesMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 2, 2, 1, 2, 1, 1, 1, 1, 1, 1 }); public static DB6Meta TaxiPathMeta = new DB6Meta(2, new byte[] { 1, 1, 1, 1 }); public static DB6Meta TaxiPathNodeMeta = new DB6Meta(8, new byte[] { 3, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta TerrainMaterialMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); @@ -574,6 +583,8 @@ namespace Game.DataStorage public static DB6Meta TransportPhysicsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta TransportRotationMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 4 }); public static DB6Meta TrophyMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); + public static DB6Meta UIExpansionDisplayInfoMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); + public static DB6Meta UIExpansionDisplayInfoIconMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta UiCamFbackTransmogChrRaceMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta UiCamFbackTransmogWeaponMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta UiCameraMeta = new DB6Meta(-1, new byte[] { 1, 1, 3, 3, 3, 1, 1, 1, 1, 1 }); @@ -584,21 +595,22 @@ namespace Game.DataStorage public static DB6Meta UiModelSceneActorDisplayMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta UiModelSceneCameraMeta = new DB6Meta(14, new byte[] { 1, 3, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta UiTextureAtlasMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); - public static DB6Meta UiTextureAtlasMemberMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta UiTextureAtlasMemberMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta UiTextureKitMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta UnitBloodMeta = new DB6Meta(-1, new byte[] { 1, 5, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta UnitBloodMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta UnitBloodLevelsMeta = new DB6Meta(-1, new byte[] { 1, 3 }); public static DB6Meta UnitConditionMeta = new DB6Meta(-1, new byte[] { 1, 8, 1, 8, 8 }); public static DB6Meta UnitPowerBarMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 6, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta UnitTestMeta = new DB6Meta(2, new byte[] { 1, 1, 1, 1, 1 }); - public static DB6Meta VehicleMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 1, 1, 2, 1, 1, 8, 1, 3, 1, 1 }); + public static DB6Meta VehicleMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 8, 1, 3, 1, 1, 1 }); public static DB6Meta VehicleSeatMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta VehicleUIIndSeatMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta VehicleUIIndicatorMeta = new DB6Meta(-1, new byte[] { 1, 1 }); public static DB6Meta VideoHardwareMeta = new DB6Meta(14, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta VignetteMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta VirtualAttachmentMeta = new DB6Meta(-1, new byte[] { 1, 1, 1}); + public static DB6Meta VirtualAttachmentCustomizationMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1 }); public static DB6Meta VocalUISoundsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 2 }); - public static DB6Meta WMOAreaTableMeta = new DB6Meta(13, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WbAccessControlListMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); public static DB6Meta WbCertWhitelistMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); public static DB6Meta WeaponImpactSoundsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 11, 11, 11, 11 }); @@ -608,7 +620,8 @@ namespace Game.DataStorage public static DB6Meta WeaponTrailParamMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WeatherMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 3, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WindSettingsMeta = new DB6Meta(-1, new byte[] { 1, 1, 3, 1, 1, 3, 1, 3, 1, 1, 1 }); - public static DB6Meta WmoMinimapTextureMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1 }); + public static DB6Meta WMOAreaTableMeta = new DB6Meta(13, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta WMOMinimapTextureMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1}); public static DB6Meta WorldBossLockoutMeta = new DB6Meta(-1, new byte[] { 1, 1, 1 }); public static DB6Meta WorldChunkSoundsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WorldEffectMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1 }); @@ -616,10 +629,10 @@ namespace Game.DataStorage public static DB6Meta WorldMapAreaMeta = new DB6Meta(15, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WorldMapContinentMeta = new DB6Meta(-1, new byte[] { 1, 2, 1, 2, 2, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WorldMapOverlayMeta = new DB6Meta(0, new byte[] { 1, 1, 1, 1, 1, 4, 1, 1, 1, 1, 1, 1, 1, 1 }); - public static DB6Meta WorldMapTransformsMeta = new DB6Meta(-1, new byte[] { 1, 6, 2, 1, 1, 1, 1, 1, 1, 1 }); + public static DB6Meta WorldMapTransformsMeta = new DB6Meta(-1, new byte[] { 1, 6, 2, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WorldSafeLocsMeta = new DB6Meta(-1, new byte[] { 1, 3, 1, 1, 1 }); public static DB6Meta WorldStateExpressionMeta = new DB6Meta(-1, new byte[] { 1, 1 }); - public static DB6Meta WorldStateUIMeta = new DB6Meta(15, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1 }); + public static DB6Meta WorldStateUIMeta = new DB6Meta(14, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 3, 1, 1, 1, 1, 1, 1 }); public static DB6Meta WorldStateZoneSoundsMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta World_PVP_AreaMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1, 1, 1, 1 }); public static DB6Meta ZoneIntroMusicTableMeta = new DB6Meta(-1, new byte[] { 1, 1, 1, 1, 1 }); diff --git a/Source/Game/DataStorage/DB2Manager.cs b/Source/Game/DataStorage/DB2Manager.cs index b475cbf18..ed85bbf6d 100644 --- a/Source/Game/DataStorage/DB2Manager.cs +++ b/Source/Game/DataStorage/DB2Manager.cs @@ -191,6 +191,9 @@ namespace Game.DataStorage foreach (ItemCurrencyCostRecord itemCurrencyCost in CliDB.ItemCurrencyCostStorage.Values) _itemsWithCurrencyCost.Add(itemCurrencyCost.ItemId); + foreach (ItemLevelSelectorQualityRecord itemLevelSelectorQuality in CliDB.ItemLevelSelectorQualityStorage.Values) + _itemLevelQualitySelectorQualities.Add(itemLevelSelectorQuality.ItemLevelSelectorQualitySetID, itemLevelSelectorQuality); + foreach (var appearanceMod in CliDB.ItemModifiedAppearanceStorage.Values) { //ASSERT(appearanceMod.ItemID <= 0xFFFFFF); @@ -812,6 +815,25 @@ namespace Game.DataStorage uint bonus = GetItemBonusListForItemLevelDelta(delta); if (bonus != 0) bonusListIDs.Add(bonus); + + ItemLevelSelectorQualitySetRecord selectorQualitySet = CliDB.ItemLevelSelectorQualitySetStorage.LookupByKey(selector.ItemLevelSelectorQualitySetID); + if (selectorQualitySet != null) + { + var itemSelectorQualities = _itemLevelQualitySelectorQualities.LookupByKey(selector.ItemLevelSelectorQualitySetID); + if (itemSelectorQualities != null) + { + ItemQuality quality = ItemQuality.Uncommon; + if (selector.ItemLevel >= selectorQualitySet.ItemLevelMax) + quality = ItemQuality.Epic; + else if (selector.ItemLevel >= selectorQualitySet.ItemLevelMin) + quality = ItemQuality.Rare; + + var itemSelectorQuality = itemSelectorQualities.FirstOrDefault(p => p.Quality < (byte)quality); + + if (itemSelectorQuality != null) + bonusListIDs.Add(itemSelectorQuality.ItemBonusListID); + } + } } } } @@ -874,9 +896,9 @@ namespace Game.DataStorage return _itemSpecOverrides.LookupByKey(itemId); } - public LfgDungeonsRecord GetLfgDungeon(uint mapId, Difficulty difficulty) + public LFGDungeonsRecord GetLfgDungeon(uint mapId, Difficulty difficulty) { - foreach (LfgDungeonsRecord dungeon in CliDB.LfgDungeonsStorage.Values) + foreach (LFGDungeonsRecord dungeon in CliDB.LFGDungeonsStorage.Values) if (dungeon.MapID == mapId && (Difficulty)dungeon.DifficultyID == difficulty) return dungeon; @@ -1032,10 +1054,10 @@ namespace Game.DataStorage return max; } - public PvpDifficultyRecord GetBattlegroundBracketByLevel(uint mapid, uint level) + public PVPDifficultyRecord GetBattlegroundBracketByLevel(uint mapid, uint level) { - PvpDifficultyRecord maxEntry = null; // used for level > max listed level case - foreach (var entry in CliDB.PvpDifficultyStorage.Values) + PVPDifficultyRecord maxEntry = null; // used for level > max listed level case + foreach (var entry in CliDB.PVPDifficultyStorage.Values) { // skip unrelated and too-high brackets if (entry.MapID != mapid || entry.MinLevel > level) @@ -1053,9 +1075,9 @@ namespace Game.DataStorage return maxEntry; } - public PvpDifficultyRecord GetBattlegroundBracketById(uint mapid, BattlegroundBracketId id) + public PVPDifficultyRecord GetBattlegroundBracketById(uint mapid, BattlegroundBracketId id) { - foreach (var entry in CliDB.PvpDifficultyStorage.Values) + foreach (var entry in CliDB.PVPDifficultyStorage.Values) if (entry.MapID == mapid && entry.GetBracketId() == id) return entry; @@ -1309,7 +1331,10 @@ namespace Game.DataStorage { if (transform.MapID != mapId) continue; - + if (transform.AreaID != 0) + continue; + if (Convert.ToBoolean(transform.Flags & (byte)WorldMapTransformsFlags.Dundeon)) + continue; if (transform.RegionMin.X > x || transform.RegionMax.X < x) continue; if (transform.RegionMin.Y > y || transform.RegionMax.Y < y) @@ -1317,8 +1342,8 @@ namespace Game.DataStorage if (transform.RegionMin.Z > z || transform.RegionMax.Z < z) continue; - transformation = transform; - break; + if (transformation == null || transformation.Priority < transform.Priority) + transformation = transform; } if (transformation == null) @@ -1332,7 +1357,7 @@ namespace Game.DataStorage newMapId = transformation.NewMapID; - if (transformation.RegionScale > 0.0f && transformation.RegionScale < 1.0f) + if (Math.Abs(transformation.RegionScale - 1.0f) > 0.001f) { x = (x - transformation.RegionMin.X) * transformation.RegionScale + transformation.RegionMin.X; y = (y - transformation.RegionMin.Y) * transformation.RegionScale + transformation.RegionMin.Y; @@ -1376,6 +1401,7 @@ namespace Game.DataStorage Dictionary _itemChildEquipment = new Dictionary(); Array _itemClassByOldEnum = new Array(19); List _itemsWithCurrencyCost = new List(); + MultiMap _itemLevelQualitySelectorQualities = new MultiMap(); Dictionary _itemModifiedAppearancesByItem = new Dictionary(); MultiMap _itemToBonusTree = new MultiMap(); MultiMap _itemSetSpells = new MultiMap(); @@ -1426,6 +1452,19 @@ namespace Game.DataStorage } } + struct ItemLevelSelectorQualityEntryComparator : IComparer + { + public bool Compare(ItemLevelSelectorQualityRecord left, ItemQuality quality) + { + return left.Quality < (byte)quality; + } + + public int Compare(ItemLevelSelectorQualityRecord left, ItemLevelSelectorQualityRecord right) + { + return left.Quality.CompareTo(right.Quality); + } + } + enum CurveInterpolationMode { Linear = 0, diff --git a/Source/Game/DataStorage/Structs/A_Records.cs b/Source/Game/DataStorage/Structs/A_Records.cs index 97363c80f..f7b19a637 100644 --- a/Source/Game/DataStorage/Structs/A_Records.cs +++ b/Source/Game/DataStorage/Structs/A_Records.cs @@ -32,12 +32,12 @@ namespace Game.DataStorage 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 uint CriteriaTree; } public sealed class AnimKitRecord diff --git a/Source/Game/DataStorage/Structs/C_Records.cs b/Source/Game/DataStorage/Structs/C_Records.cs index d08a111b1..5381285d2 100644 --- a/Source/Game/DataStorage/Structs/C_Records.cs +++ b/Source/Game/DataStorage/Structs/C_Records.cs @@ -113,6 +113,8 @@ namespace Game.DataStorage { public uint Id; public uint Flags; + public uint MaleDisplayID; + public uint FemaleDisplayID; public uint ClientPrefix; public uint ClientFileString; public LocalizedString Name; @@ -124,10 +126,8 @@ namespace Game.DataStorage public uint SelectScreenFileDataID; public uint[] MaleCustomizeOffset = new uint[3]; public uint[] FemaleCustomizeOffset = new uint[3]; - public uint LowResScreenFileDataID; + public uint LowResScreenFileDataID; public ushort FactionID; - public ushort MaleDisplayID; - public ushort FemaleDisplayID; public ushort ResSicknessSpellID; public ushort SplashSoundID; public ushort CinematicSequenceID; @@ -143,7 +143,8 @@ namespace Game.DataStorage public byte CharComponentTexLayoutHiResID; public uint HighResMaleDisplayID; public uint HighResFemaleDisplayID; - public uint[] Unk = new uint[3]; + public uint[] AlteredFormTransitionSpellVisualID = new uint[3]; + public uint[] AlteredFormTransitionSpellVisualKitID = new uint[3]; } public sealed class ChrSpecializationRecord @@ -302,8 +303,8 @@ namespace Game.DataStorage public uint Asset; public uint StartAsset; public uint FailAsset; + public uint ModifierTreeId; public ushort StartTimer; - public ushort ModifierTreeId; public ushort EligibilityWorldStateID; public CriteriaTypes Type; public CriteriaTimedTypes StartEvent; @@ -317,10 +318,10 @@ namespace Game.DataStorage public uint Id; public uint Amount; public LocalizedString Description; - public ushort Parent; public CriteriaTreeFlags Flags; public byte Operator; public uint CriteriaID; + public uint Parent; public int OrderIndex; } diff --git a/Source/Game/DataStorage/Structs/I_Records.cs b/Source/Game/DataStorage/Structs/I_Records.cs index aead4c47c..4a351b7e2 100644 --- a/Source/Game/DataStorage/Structs/I_Records.cs +++ b/Source/Game/DataStorage/Structs/I_Records.cs @@ -203,6 +203,22 @@ namespace Game.DataStorage { public uint ID; public ushort ItemLevel; + public ushort ItemLevelSelectorQualitySetID; + } + + public sealed class ItemLevelSelectorQualityRecord + { + public uint ID; + public uint ItemBonusListID; + public ushort ItemLevelSelectorQualitySetID; + public byte Quality; + } + + public sealed class ItemLevelSelectorQualitySetRecord + { + public uint ID; + public ushort ItemLevelMin; + public ushort ItemLevelMax; } public sealed class ItemLimitCategoryRecord @@ -252,16 +268,16 @@ namespace Game.DataStorage 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 ushort RequiredReputationFaction; + public byte RequiredReputationRank; + public ushort RequiredSkill; + public ushort RequiredSkillRank; + public uint RequiredSpell; } public sealed class ItemSetRecord @@ -286,7 +302,7 @@ namespace Game.DataStorage public sealed class ItemSparseRecord { public uint Id; - public uint[] Flags = new uint[3]; + public uint[] Flags = new uint[4]; public float Unk1; public float Unk2; public uint BuyCount; diff --git a/Source/Game/DataStorage/Structs/L_Records.cs b/Source/Game/DataStorage/Structs/L_Records.cs index 74e49ce96..733d2e520 100644 --- a/Source/Game/DataStorage/Structs/L_Records.cs +++ b/Source/Game/DataStorage/Structs/L_Records.cs @@ -20,7 +20,7 @@ using Framework.GameMath; namespace Game.DataStorage { - public sealed class LfgDungeonsRecord + public sealed class LFGDungeonsRecord { public uint Id; public LocalizedString Name; diff --git a/Source/Game/DataStorage/Structs/M_Records.cs b/Source/Game/DataStorage/Structs/M_Records.cs index c45486207..aa9783a02 100644 --- a/Source/Game/DataStorage/Structs/M_Records.cs +++ b/Source/Game/DataStorage/Structs/M_Records.cs @@ -118,7 +118,7 @@ namespace Game.DataStorage { public uint Id; public uint[] Asset = new uint[2]; - public ushort Parent; + public uint Parent; public byte Type; public byte Unk700; public byte Operator; diff --git a/Source/Game/DataStorage/Structs/P_Records.cs b/Source/Game/DataStorage/Structs/P_Records.cs index 1bd5548d1..93e690455 100644 --- a/Source/Game/DataStorage/Structs/P_Records.cs +++ b/Source/Game/DataStorage/Structs/P_Records.cs @@ -37,57 +37,65 @@ namespace Game.DataStorage { public uint Id; public uint RaceMask; + public uint[] Time = new uint[2]; + public uint[] AuraSpellID = new uint[4]; + public LocalizedString FailureDescription; + public ushort[] SkillID = new ushort[4]; + public short[] MinSkill = new short[4]; + public short[] MaxSkill = new short[4]; + 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[] Achievement = new ushort[4]; + public ushort[] AreaID = new ushort[4]; + public byte Flags; + public byte[] MinReputation = new byte[3]; + public byte[] AuraCount = new byte[4]; + public byte[] LfgStatus = new byte[4]; + public byte[] LfgCompare = new byte[4]; + public byte[] CurrencyCount = new byte[4]; + public int ClassMask; + 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[] LfgValue = new uint[4]; + public uint[] CurrencyID = new uint[4]; + public uint[] QuestKillMonster = new uint[6]; + public int[] MovementFlags = new int[2]; + public ushort MinLevel; + public ushort MaxLevel; + public sbyte Gender; + public sbyte NativeGender; public uint SkillLogic; + public byte LanguageID; + public byte MinLanguage; + public uint MaxLanguage; + public ushort MaxFactionID; + public byte MaxReputation; public uint ReputationLogic; + public byte Unknown1; + public byte MinPVPRank; + public byte MaxPVPRank; + public byte PvpMedal; 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 uint AuraSpellLogic; + public ushort WorldStateExpressionID; 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 uint AchievementLogic; + public uint LfgLogic; + public uint AreaLogic; + public uint CurrencyLogic; + public ushort QuestKillID; + public uint QuestKillLogic; public sbyte MinExpansionLevel; public sbyte MaxExpansionLevel; public sbyte MinExpansionTier; @@ -95,26 +103,18 @@ namespace Game.DataStorage public byte MinGuildLevel; public byte MaxGuildLevel; public byte PhaseUseFlags; + public ushort PhaseID; + public uint PhaseGroupID; + public uint MinAvgItemLevel; + public uint MaxAvgItemLevel; + public ushort MinAvgEquippedItemLevel; + public ushort MaxAvgEquippedItemLevel; 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 ModifierTreeID; public uint MainHandItemSubclassMask; } @@ -156,7 +156,7 @@ namespace Game.DataStorage public bool IsDisabled() { return Flags.HasAnyFlag(PrestigeLevelInfoFlags.Disabled); } } - public sealed class PvpDifficultyRecord + public sealed class PVPDifficultyRecord { public uint Id; public ushort MapID; diff --git a/Source/Game/DataStorage/Structs/S_Records.cs b/Source/Game/DataStorage/Structs/S_Records.cs index 5213a3715..d1f401b74 100644 --- a/Source/Game/DataStorage/Structs/S_Records.cs +++ b/Source/Game/DataStorage/Structs/S_Records.cs @@ -43,12 +43,12 @@ namespace Game.DataStorage 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 CriteriaTreeID; public uint BonusRequiredStepID; // Bonus step can only be completed if scenario is in the step specified in this field // helpers @@ -118,23 +118,22 @@ namespace Game.DataStorage public sealed class SoundKitRecord { - public LocalizedString Name; + public uint Id; public float VolumeFloat; public float MinDistance; public float DistanceCutoff; + public ushort Flags; + public ushort SoundEntriesAdvancedID; + public byte SoundType; + public byte DialogType; + public byte EAXDef; 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 @@ -166,9 +165,9 @@ namespace Game.DataStorage public uint ProcTypeMask; public uint ProcCategoryRecovery; public ushort CumulativeAura; + public byte SpellProcsPerMinuteID; public byte DifficultyID; public byte ProcChance; - public byte SpellProcsPerMinuteID; } public sealed class SpellAuraRestrictionsRecord @@ -443,8 +442,8 @@ namespace Game.DataStorage public uint Id; public float Coeff; public ushort Param; - public SpellProcsPerMinuteModType Type; public byte SpellProcsPerMinuteID; + public SpellProcsPerMinuteModType Type; } public sealed class SpellRadiusRecord diff --git a/Source/Game/DataStorage/Structs/T_Records.cs b/Source/Game/DataStorage/Structs/T_Records.cs index 0c96909bf..2ab17e1d3 100644 --- a/Source/Game/DataStorage/Structs/T_Records.cs +++ b/Source/Game/DataStorage/Structs/T_Records.cs @@ -42,15 +42,19 @@ namespace Game.DataStorage public sealed class TaxiNodesRecord { + public uint Id; public Vector3 Pos; public LocalizedString Name; public uint[] MountCreatureID = new uint[2]; public Vector2 MapOffset; + public float Unk730; + public Vector2 FlightMapOffset; public ushort MapID; public ushort ConditionID; public ushort LearnableIndex; public TaxiNodeFlags Flags; - public uint Id; + public int UiTextureKitPrefixID; + public uint SpecialAtlasIconPlayerConditionID; } public sealed class TaxiPathRecord @@ -64,14 +68,14 @@ namespace Game.DataStorage public sealed class TaxiPathNodeRecord { public Vector3 Loc; - public uint Delay; public ushort PathID; public ushort MapID; + public byte NodeIndex; + public uint Id; + public TaxiPathNodeFlags Flags; + public uint Delay; public ushort ArrivalEventID; public ushort DepartureEventID; - public byte NodeIndex; - public TaxiPathNodeFlags Flags; - public uint Id; } public sealed class TotemCategoryRecord diff --git a/Source/Game/DataStorage/Structs/V_Records.cs b/Source/Game/DataStorage/Structs/V_Records.cs index ffa4ef79d..65dd15012 100644 --- a/Source/Game/DataStorage/Structs/V_Records.cs +++ b/Source/Game/DataStorage/Structs/V_Records.cs @@ -35,24 +35,13 @@ namespace Game.DataStorage 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 int MissileTargetingID; } public sealed class VehicleSeatRecord diff --git a/Source/Game/DataStorage/Structs/W_Records.cs b/Source/Game/DataStorage/Structs/W_Records.cs index 5c621fb0f..2e8de687e 100644 --- a/Source/Game/DataStorage/Structs/W_Records.cs +++ b/Source/Game/DataStorage/Structs/W_Records.cs @@ -57,12 +57,12 @@ namespace Game.DataStorage public float LocRight; public float LocTop; public float LocBottom; + public uint Flags; public ushort MapID; public ushort AreaID; public short DisplayMapID; public short DefaultDungeonFloor; public ushort ParentWorldMapID; - public ushort Flags; public byte LevelRangeMin; public byte LevelRangeMax; public byte BountySetID; @@ -102,6 +102,7 @@ namespace Game.DataStorage public ushort NewDungeonMapID; public ushort NewAreaID; public byte Flags; + public int Priority; } public sealed class WorldSafeLocsRecord diff --git a/Source/Game/DungeonFinding/LFGManager.cs b/Source/Game/DungeonFinding/LFGManager.cs index 435cfe940..470adcd93 100644 --- a/Source/Game/DungeonFinding/LFGManager.cs +++ b/Source/Game/DungeonFinding/LFGManager.cs @@ -175,7 +175,7 @@ namespace Game.DungeonFinding LfgDungeonStore.Clear(); // Initialize Dungeon map with data from dbcs - foreach (var dungeon in CliDB.LfgDungeonsStorage.Values) + foreach (var dungeon in CliDB.LFGDungeonsStorage.Values) { switch (dungeon.Type) { @@ -2144,7 +2144,7 @@ namespace Game.DungeonFinding public class LFGDungeonData { - public LFGDungeonData(LfgDungeonsRecord dbc) + public LFGDungeonData(LFGDungeonsRecord dbc) { id = dbc.Id; name = dbc.Name[Global.WorldMgr.GetDefaultDbcLocale()]; diff --git a/Source/Game/Entities/Item/ItemTemplate.cs b/Source/Game/Entities/Item/ItemTemplate.cs index c60295e1b..dfe671b95 100644 --- a/Source/Game/Entities/Item/ItemTemplate.cs +++ b/Source/Game/Entities/Item/ItemTemplate.cs @@ -231,6 +231,7 @@ namespace Game.Entities public ItemFlags GetFlags() { return (ItemFlags)ExtendedData.Flags[0]; } public ItemFlags2 GetFlags2() { return (ItemFlags2)ExtendedData.Flags[1]; } public ItemFlags3 GetFlags3() { return (ItemFlags3)ExtendedData.Flags[2]; } + public uint GetFlags4() { return ExtendedData.Flags[3]; } public float GetUnk1() { return ExtendedData.Unk1; } public float GetUnk2() { return ExtendedData.Unk2; } public uint GetBuyCount() { return Math.Max(ExtendedData.BuyCount, 1u); } diff --git a/Source/Game/Entities/Player/Player.cs b/Source/Game/Entities/Player/Player.cs index 1756abe6a..90846cc96 100644 --- a/Source/Game/Entities/Player/Player.cs +++ b/Source/Game/Entities/Player/Player.cs @@ -1598,7 +1598,7 @@ namespace Game.Entities Map map = GetMap(); if (map.IsNonRaidDungeon()) { - LfgDungeonsRecord dungeon = Global.DB2Mgr.GetLfgDungeon(map.GetId(), map.GetDifficultyID()); + LFGDungeonsRecord dungeon = Global.DB2Mgr.GetLfgDungeon(map.GetId(), map.GetDifficultyID()); if (dungeon != null) if (dungeon.TargetLevel == 80) ChampioningFaction = GetChampioningFaction(); diff --git a/Source/Game/Groups/Group.cs b/Source/Game/Groups/Group.cs index 4e3527884..c68079d4e 100644 --- a/Source/Game/Groups/Group.cs +++ b/Source/Game/Groups/Group.cs @@ -1400,7 +1400,7 @@ namespace Game.Groups var selectedDungeons = Global.LFGMgr.GetSelectedDungeons(player.GetGUID()); if (selectedDungeons.Count == 1) { - LfgDungeonsRecord dungeon = CliDB.LfgDungeonsStorage.LookupByKey(selectedDungeons.First()); + LFGDungeonsRecord dungeon = CliDB.LFGDungeonsStorage.LookupByKey(selectedDungeons.First()); if (dungeon != null) if (dungeon.Type == LfgType.RandomDungeon) randomSlot= dungeon.Id; @@ -1701,7 +1701,7 @@ namespace Game.Groups if (!reference) return GroupJoinBattlegroundResult.JoinFailed; - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bgOrTemplate.GetMapId(), reference.getLevel()); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bgOrTemplate.GetMapId(), reference.getLevel()); if (bracketEntry == null) return GroupJoinBattlegroundResult.JoinFailed; @@ -1725,7 +1725,7 @@ namespace Game.Groups return GroupJoinBattlegroundResult.JoinTimedOut; } // not in the same Battleground level braket, don't let join - PvpDifficultyRecord memberBracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bracketEntry.MapID, member.getLevel()); + PVPDifficultyRecord memberBracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bracketEntry.MapID, member.getLevel()); if (memberBracketEntry != bracketEntry) return GroupJoinBattlegroundResult.JoinRangeIndex; // don't let join rated matches if the arena team id doesn't match diff --git a/Source/Game/Handlers/BattleGroundHandler.cs b/Source/Game/Handlers/BattleGroundHandler.cs index 26db67e2e..0b2b2399a 100644 --- a/Source/Game/Handlers/BattleGroundHandler.cs +++ b/Source/Game/Handlers/BattleGroundHandler.cs @@ -89,7 +89,7 @@ namespace Game return; // expected bracket entry - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); if (bracketEntry == null) return; @@ -302,7 +302,7 @@ namespace Game bgTypeId = bg.GetTypeID(); // expected bracket entry - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); if (bracketEntry == null) return; @@ -466,7 +466,7 @@ namespace Game continue; // expected bracket entry - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); if (bracketEntry == null) continue; @@ -503,7 +503,7 @@ namespace Game BattlegroundTypeId bgTypeId = bg.GetTypeID(); BattlegroundQueueTypeId bgQueueTypeId = Global.BattlegroundMgr.BGQueueTypeId(bgTypeId, arenatype); - PvpDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); + PVPDifficultyRecord bracketEntry = Global.DB2Mgr.GetBattlegroundBracketByLevel(bg.GetMapId(), GetPlayer().getLevel()); if (bracketEntry == null) return; diff --git a/Source/Game/Handlers/LFGHandler.cs b/Source/Game/Handlers/LFGHandler.cs index 83fd9b990..50eeca5ea 100644 --- a/Source/Game/Handlers/LFGHandler.cs +++ b/Source/Game/Handlers/LFGHandler.cs @@ -47,7 +47,7 @@ namespace Game foreach (uint slot in dfJoin.Slots) { uint dungeon = slot & 0x00FFFFFF; - if (CliDB.LfgDungeonsStorage.ContainsKey(dungeon)) + if (CliDB.LFGDungeonsStorage.ContainsKey(dungeon)) newDungeons.Add(dungeon); } diff --git a/Source/Game/Spells/SpellInfo.cs b/Source/Game/Spells/SpellInfo.cs index e3e2637a9..9eb2fac66 100644 --- a/Source/Game/Spells/SpellInfo.cs +++ b/Source/Game/Spells/SpellInfo.cs @@ -4163,7 +4163,8 @@ namespace Game.Spells new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 145 new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 146 new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 147 - new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None) // 148) + new StaticData(SpellTargetObjectTypes.None, SpellTargetReferenceTypes.None, SpellTargetSelectionCategories.Nyi, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.None), // 148) + new StaticData(SpellTargetObjectTypes.Dest, SpellTargetReferenceTypes.Caster, SpellTargetSelectionCategories.Default, SpellTargetCheckTypes.Default, SpellTargetDirectionTypes.Random), // 149) }; }