aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.cpp497
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.h49
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp7
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp9
-rw-r--r--src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp4
-rw-r--r--src/server/game/Chat/HyperlinkTags.cpp28
-rw-r--r--src/server/game/Chat/Hyperlinks.cpp55
-rw-r--r--src/server/game/Chat/Hyperlinks.h23
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp68
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h1141
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp271
-rw-r--r--src/server/game/DataStores/DB2Stores.h12
-rw-r--r--src/server/game/DataStores/DB2Structure.h8
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp6
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp4
-rw-r--r--src/server/game/Entities/Item/ItemBonusMgr.cpp294
-rw-r--r--src/server/game/Entities/Item/ItemEnchantmentMgr.cpp6
-rw-r--r--src/server/game/Entities/Object/Object.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp117
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp23
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp27
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp16
-rw-r--r--src/server/game/Handlers/MiscHandler.cpp12
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp4
-rw-r--r--src/server/game/Handlers/TransmogrificationHandler.cpp30
-rw-r--r--src/server/game/Instances/InstanceScript.cpp6
-rw-r--r--src/server/game/Quests/QuestDef.cpp2
-rw-r--r--src/server/game/Spells/Spell.cpp54
-rw-r--r--src/server/game/Spells/SpellEffects.cpp12
-rw-r--r--src/server/game/Spells/SpellInfo.cpp58
-rw-r--r--src/server/game/Spells/SpellInfo.h5
-rw-r--r--src/server/game/Spells/SpellMgr.cpp8
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
33 files changed, 730 insertions, 2130 deletions
diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp
index 010fb0498e2..bc54971bc9a 100644
--- a/src/server/database/Database/Implementation/HotfixDatabase.cpp
+++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp
@@ -38,7 +38,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Achievement.db2
PrepareStatement(HOTFIX_SEL_ACHIEVEMENT, "SELECT Description, Title, Reward, ID, InstanceID, Faction, Supercedes, Category, MinimumCriteria, "
- "Points, Flags, UiOrder, IconFileID, RewardItemID, CriteriaTree, SharesCriteria, CovenantID FROM achievement WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "Points, Flags, UiOrder, IconFileID, CriteriaTree, SharesCriteria FROM achievement WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ACHIEVEMENT, "SELECT MAX(ID) + 1 FROM achievement", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ACHIEVEMENT, "SELECT ID, Description_lang, Title_lang, Reward_lang FROM achievement_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -81,16 +81,17 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// AreaTable.db2
PrepareStatement(HOTFIX_SEL_AREA_TABLE, "SELECT ID, ZoneName, AreaName, ContinentID, ParentAreaID, AreaBit, SoundProviderPref, "
- "SoundProviderPrefUnderwater, AmbienceID, UwAmbience, ZoneMusic, UwZoneMusic, IntroSound, UwIntroSound, FactionGroupMask, AmbientMultiplier, "
- "MountFlags, PvpCombatWorldStateID, WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, ContentTuningID, Flags1, Flags2, "
+ "SoundProviderPrefUnderwater, AmbienceID, UwAmbience, ZoneMusic, UwZoneMusic, ExplorationLevel, IntroSound, UwIntroSound, FactionGroupMask, "
+ "AmbientMultiplier, MountFlags, PvpCombatWorldStateID, WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, Flags1, Flags2, "
"LiquidTypeID1, LiquidTypeID2, LiquidTypeID3, LiquidTypeID4 FROM area_table WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_AREA_TABLE, "SELECT MAX(ID) + 1 FROM area_table", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_AREA_TABLE, "SELECT ID, AreaName_lang FROM area_table_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// AreaTrigger.db2
- PrepareStatement(HOTFIX_SEL_AREA_TRIGGER, "SELECT PosX, PosY, PosZ, ID, ContinentID, PhaseUseFlags, PhaseID, PhaseGroupID, Radius, BoxLength, "
- "BoxWidth, BoxHeight, BoxYaw, ShapeType, ShapeID, AreaTriggerActionSetID, Flags FROM area_trigger WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_AREA_TRIGGER, "SELECT Message, PosX, PosY, PosZ, ID, ContinentID, PhaseUseFlags, PhaseID, PhaseGroupID, Radius, "
+ "BoxLength, BoxWidth, BoxHeight, BoxYaw, ShapeType, ShapeID, AreaTriggerActionSetID, Flags FROM area_trigger WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_AREA_TRIGGER, "SELECT MAX(ID) + 1 FROM area_trigger", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_AREA_TRIGGER, "SELECT ID, Message_lang FROM area_trigger_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// ArmorLocation.db2
PrepareStatement(HOTFIX_SEL_ARMOR_LOCATION, "SELECT ID, Clothmodifier, Leathermodifier, Chainmodifier, Platemodifier, Modifier FROM armor_location"
@@ -106,8 +107,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// ArtifactAppearance.db2
PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT Name, ID, ArtifactAppearanceSetID, DisplayIndex, UnlockPlayerConditionID, "
"ItemAppearanceModifierID, UiSwatchColor, UiModelSaturation, UiModelOpacity, OverrideShapeshiftFormID, OverrideShapeshiftDisplayID, "
- "UiItemAppearanceID, UiAltItemAppearanceID, Flags, UiCameraID, UsablePlayerConditionID FROM artifact_appearance"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "UiItemAppearanceID, UiAltItemAppearanceID, Flags, UiCameraID FROM artifact_appearance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT MAX(ID) + 1 FROM artifact_appearance", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT ID, Name_lang FROM artifact_appearance_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -217,11 +217,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET, "SELECT ID, Flags FROM azerite_tier_unlock_set WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET, "SELECT MAX(ID) + 1 FROM azerite_tier_unlock_set", CONNECTION_SYNCH);
- // AzeriteUnlockMapping.db2
- PrepareStatement(HOTFIX_SEL_AZERITE_UNLOCK_MAPPING, "SELECT ID, ItemLevel, ItemBonusListHead, ItemBonusListShoulders, ItemBonusListChest, "
- "AzeriteUnlockMappingSetID FROM azerite_unlock_mapping WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_AZERITE_UNLOCK_MAPPING, "SELECT MAX(ID) + 1 FROM azerite_unlock_mapping", CONNECTION_SYNCH);
-
// BankBagSlotPrices.db2
PrepareStatement(HOTFIX_SEL_BANK_BAG_SLOT_PRICES, "SELECT ID, Cost FROM bank_bag_slot_prices WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_BANK_BAG_SLOT_PRICES, "SELECT MAX(ID) + 1 FROM bank_bag_slot_prices", CONNECTION_SYNCH);
@@ -231,7 +226,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_BANNED_ADDONS, "SELECT MAX(ID) + 1 FROM banned_addons", CONNECTION_SYNCH);
// BarberShopStyle.db2
- PrepareStatement(HOTFIX_SEL_BARBER_SHOP_STYLE, "SELECT ID, DisplayName, Description, Type, CostModifier, Race, Sex, Data FROM barber_shop_style"
+ PrepareStatement(HOTFIX_SEL_BARBER_SHOP_STYLE, "SELECT DisplayName, Description, ID, Type, CostModifier, Race, Sex, Data FROM barber_shop_style"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_BARBER_SHOP_STYLE, "SELECT MAX(ID) + 1 FROM barber_shop_style", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_BARBER_SHOP_STYLE, "SELECT ID, DisplayName_lang, Description_lang FROM barber_shop_style_locale"
@@ -245,7 +240,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// BattlePetBreedQuality.db2
- PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_QUALITY, "SELECT ID, MaxQualityRoll, StateMultiplier, QualityEnum FROM battle_pet_breed_quality"
+ PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_QUALITY, "SELECT ID, StateMultiplier, QualityEnum FROM battle_pet_breed_quality"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_BATTLE_PET_BREED_QUALITY, "SELECT MAX(ID) + 1 FROM battle_pet_breed_quality", CONNECTION_SYNCH);
@@ -256,7 +251,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// BattlePetSpecies.db2
PrepareStatement(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT Description, SourceText, ID, CreatureID, SummonSpellID, IconFileDataID, PetTypeEnum, "
- "Flags, SourceTypeEnum, CardUIModelSceneID, LoadoutUIModelSceneID, CovenantID FROM battle_pet_species WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "Flags, SourceTypeEnum, CardUIModelSceneID, LoadoutUIModelSceneID FROM battle_pet_species WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT MAX(ID) + 1 FROM battle_pet_species", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT ID, Description_lang, SourceText_lang FROM battle_pet_species_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -283,11 +278,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_BROADCAST_TEXT, "SELECT ID, Text_lang, Text1_lang FROM broadcast_text_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
- // BroadcastTextDuration.db2
- PrepareStatement(HOTFIX_SEL_BROADCAST_TEXT_DURATION, "SELECT ID, BroadcastTextID, Locale, Duration FROM broadcast_text_duration"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_BROADCAST_TEXT_DURATION, "SELECT MAX(ID) + 1 FROM broadcast_text_duration", CONNECTION_SYNCH);
-
// CfgCategories.db2
PrepareStatement(HOTFIX_SEL_CFG_CATEGORIES, "SELECT ID, Name, LocaleMask, CreateCharsetMask, ExistingCharsetMask, Flags, `Order`"
" FROM cfg_categories WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
@@ -299,11 +289,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CFG_REGIONS, "SELECT MAX(ID) + 1 FROM cfg_regions", CONNECTION_SYNCH);
- // ChallengeModeItemBonusOverride.db2
- PrepareStatement(HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE, "SELECT ID, ItemBonusTreeGroupID, DstItemBonusTreeID, Type, Value, "
- "MythicPlusSeasonID, PvPSeasonID, SrcItemBonusTreeID FROM challenge_mode_item_bonus_override WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE, "SELECT MAX(ID) + 1 FROM challenge_mode_item_bonus_override", CONNECTION_SYNCH);
-
// CharTitles.db2
PrepareStatement(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, Name, Name1, MaskID, Flags FROM char_titles WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHAR_TITLES, "SELECT MAX(ID) + 1 FROM char_titles", CONNECTION_SYNCH);
@@ -311,7 +296,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" AND locale = ?", CONNECTION_SYNCH);
// CharacterLoadout.db2
- PrepareStatement(HOTFIX_SEL_CHARACTER_LOADOUT, "SELECT ID, RaceMask, ChrClassID, Purpose, ItemContext FROM character_loadout"
+ PrepareStatement(HOTFIX_SEL_CHARACTER_LOADOUT, "SELECT RaceMask, ID, ChrClassID, Purpose, ItemContext FROM character_loadout"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHARACTER_LOADOUT, "SELECT MAX(ID) + 1 FROM character_loadout", CONNECTION_SYNCH);
@@ -321,7 +306,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHARACTER_LOADOUT_ITEM, "SELECT MAX(ID) + 1 FROM character_loadout_item", CONNECTION_SYNCH);
// ChatChannels.db2
- PrepareStatement(HOTFIX_SEL_CHAT_CHANNELS, "SELECT ID, Name, Shortcut, Flags, FactionGroup, Ruleset FROM chat_channels"
+ PrepareStatement(HOTFIX_SEL_CHAT_CHANNELS, "SELECT Name, Shortcut, ID, Flags, FactionGroup, Ruleset FROM chat_channels"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHAT_CHANNELS, "SELECT MAX(ID) + 1 FROM chat_channels", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHAT_CHANNELS, "SELECT ID, Name_lang, Shortcut_lang FROM chat_channels_locale WHERE (`VerifiedBuild` > 0) = ?"
@@ -333,18 +318,13 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHR_CLASS_UI_DISPLAY, "SELECT MAX(ID) + 1 FROM chr_class_ui_display", CONNECTION_SYNCH);
// ChrClasses.db2
- PrepareStatement(HOTFIX_SEL_CHR_CLASSES, "SELECT Name, Filename, NameMale, NameFemale, PetNameToken, Description, RoleInfoString, DisabledString, "
- "HyphenatedNameMale, HyphenatedNameFemale, ID, CreateScreenFileDataID, SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, Flags, "
- "SpellTextureBlobFileDataID, ArmorTypeMask, CharStartKitUnknown901, MaleCharacterCreationVisualFallback, "
- "MaleCharacterCreationIdleVisualFallback, FemaleCharacterCreationVisualFallback, FemaleCharacterCreationIdleVisualFallback, "
- "CharacterCreationIdleGroundVisualFallback, CharacterCreationGroundVisualFallback, AlteredFormCharacterCreationIdleVisualFallback, "
- "CharacterCreationAnimLoopWaitTimeMsFallback, CinematicSequenceID, DefaultSpec, PrimaryStatPriority, DisplayPower, "
- "RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, SpellClassSet, ClassColorR, ClassColorG, ClassColorB, RolesMask"
- " FROM chr_classes WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CHR_CLASSES, "SELECT Name, Filename, NameMale, NameFemale, PetNameToken, ID, CreateScreenFileDataID, "
+ "SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, Flags, StartingLevel, ArmorTypeMask, CinematicSequenceID, DefaultSpec, "
+ "HasStrengthAttackBonus, PrimaryStatPriority, DisplayPower, RangedAttackPowerPerAgility, AttackPowerPerAgility, AttackPowerPerStrength, "
+ "SpellClassSet, RolesMask, DamageBonusStat, HasRelicSlot FROM chr_classes WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHR_CLASSES, "SELECT MAX(ID) + 1 FROM chr_classes", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_CLASSES, "SELECT ID, Name_lang, NameMale_lang, NameFemale_lang, Description_lang, RoleInfoString_lang, "
- "DisabledString_lang, HyphenatedNameMale_lang, HyphenatedNameFemale_lang FROM chr_classes_locale WHERE (`VerifiedBuild` > 0) = ?"
- " AND locale = ?", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_CLASSES, "SELECT ID, Name_lang, NameMale_lang, NameFemale_lang FROM chr_classes_locale"
+ " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// ChrClassesXPowerTypes.db2
PrepareStatement(HOTFIX_SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, PowerType, ClassID FROM chr_classes_x_power_types"
@@ -373,14 +353,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// ChrCustomizationOption.db2
PrepareStatement(HOTFIX_SEL_CHR_CUSTOMIZATION_OPTION, "SELECT Name, ID, SecondaryID, Flags, ChrModelID, SortIndex, ChrCustomizationCategoryID, "
- "OptionType, BarberShopCostModifier, ChrCustomizationID, ChrCustomizationReqID, UiOrderIndex, AddedInPatch FROM chr_customization_option"
+ "OptionType, BarberShopCostModifier, ChrCustomizationID, ChrCustomizationReqID, UiOrderIndex FROM chr_customization_option"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHR_CUSTOMIZATION_OPTION, "SELECT MAX(ID) + 1 FROM chr_customization_option", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_CUSTOMIZATION_OPTION, "SELECT ID, Name_lang FROM chr_customization_option_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// ChrCustomizationReq.db2
- PrepareStatement(HOTFIX_SEL_CHR_CUSTOMIZATION_REQ, "SELECT ID, RaceMask, ReqSource, Flags, ClassMask, AchievementID, QuestID, OverrideArchive, "
+ PrepareStatement(HOTFIX_SEL_CHR_CUSTOMIZATION_REQ, "SELECT RaceMask, ReqSource, ID, Flags, ClassMask, AchievementID, QuestID, OverrideArchive, "
"ItemModifiedAppearanceID FROM chr_customization_req WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHR_CUSTOMIZATION_REQ, "SELECT MAX(ID) + 1 FROM chr_customization_req", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_CUSTOMIZATION_REQ, "SELECT ID, ReqSource_lang FROM chr_customization_req_locale WHERE (`VerifiedBuild` > 0) = ?"
@@ -406,15 +386,16 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// ChrRaces.db2
PrepareStatement(HOTFIX_SEL_CHR_RACES, "SELECT ID, ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, "
"LoreName, LoreNameFemale, LoreNameLower, LoreNameLowerFemale, LoreDescription, ShortName, ShortNameFemale, ShortNameLower, "
- "ShortNameLowerFemale, Flags, FactionID, CinematicSequenceID, ResSicknessSpellID, SplashSoundID, Alliance, RaceRelated, "
- "UnalteredVisualRaceID, DefaultClassID, CreateScreenFileDataID, SelectScreenFileDataID, NeutralRaceID, LowResScreenFileDataID, "
- "AlteredFormStartVisualKitID1, AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, AlteredFormFinishVisualKitID1, "
- "AlteredFormFinishVisualKitID2, AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, UiDisplayOrder, "
- "MaleModelFallbackRaceID, FemaleModelFallbackRaceID, MaleTextureFallbackRaceID, FemaleTextureFallbackRaceID, PlayableRaceBit, "
- "HelmetAnimScalingRaceID, TransmogrifyDisabledSlotMask, UnalteredVisualCustomizationRaceID, AlteredFormCustomizeOffsetFallback1, "
+ "ShortNameLowerFemale, Flags, MaleDisplayID, FemaleDisplayID, HighResMaleDisplayID, HighResFemaleDisplayID, ResSicknessSpellID, "
+ "SplashSoundID, CreateScreenFileDataID, SelectScreenFileDataID, LowResScreenFileDataID, AlteredFormStartVisualKitID1, "
+ "AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, AlteredFormFinishVisualKitID1, AlteredFormFinishVisualKitID2, "
+ "AlteredFormFinishVisualKitID3, HeritageArmorAchievementID, StartingLevel, UiDisplayOrder, PlayableRaceBit, FemaleSkeletonFileDataID, "
+ "MaleSkeletonFileDataID, HelmetAnimScalingRaceID, TransmogrifyDisabledSlotMask, AlteredFormCustomizeOffsetFallback1, "
"AlteredFormCustomizeOffsetFallback2, AlteredFormCustomizeOffsetFallback3, AlteredFormCustomizeRotationFallback, Unknown910_11, "
- "Unknown910_12, Unknown910_13, Unknown910_21, Unknown910_22, Unknown910_23, Unknown1000, BaseLanguage, CreatureType, MaleModelFallbackSex, "
- "FemaleModelFallbackSex, MaleTextureFallbackSex, FemaleTextureFallbackSex FROM chr_races WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "Unknown910_12, Unknown910_13, Unknown910_21, Unknown910_22, Unknown910_23, FactionID, CinematicSequenceID, BaseLanguage, CreatureType, "
+ "Alliance, RaceRelated, UnalteredVisualRaceID, DefaultClassID, NeutralRaceID, MaleModelFallbackRaceID, MaleModelFallbackSex, "
+ "FemaleModelFallbackRaceID, FemaleModelFallbackSex, MaleTextureFallbackRaceID, MaleTextureFallbackSex, FemaleTextureFallbackRaceID, "
+ "FemaleTextureFallbackSex, UnalteredVisualCustomizationRaceID FROM chr_races WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CHR_RACES, "SELECT MAX(ID) + 1 FROM chr_races", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_RACES, "SELECT ID, Name_lang, NameFemale_lang, NameLowercase_lang, NameFemaleLowercase_lang, LoreName_lang, "
"LoreNameFemale_lang, LoreNameLower_lang, LoreNameLowerFemale_lang, LoreDescription_lang, ShortName_lang, ShortNameFemale_lang, "
@@ -429,8 +410,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// CinematicCamera.db2
- PrepareStatement(HOTFIX_SEL_CINEMATIC_CAMERA, "SELECT ID, OriginX, OriginY, OriginZ, SoundID, OriginFacing, FileDataID, ConversationID"
- " FROM cinematic_camera WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CINEMATIC_CAMERA, "SELECT ID, OriginX, OriginY, OriginZ, SoundID, OriginFacing, FileDataID FROM cinematic_camera"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CINEMATIC_CAMERA, "SELECT MAX(ID) + 1 FROM cinematic_camera", CONNECTION_SYNCH);
// CinematicSequences.db2
@@ -449,30 +430,15 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONDITIONAL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM conditional_content_tuning", CONNECTION_SYNCH);
// ContentTuning.db2
- PrepareStatement(HOTFIX_SEL_CONTENT_TUNING, "SELECT ID, Flags, ExpansionID, MinLevel, MaxLevel, MinLevelType, MaxLevelType, TargetLevelDelta, "
- "TargetLevelMaxDelta, TargetLevelMin, TargetLevelMax, MinItemLevel, QuestXpMultiplier FROM content_tuning WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM content_tuning", CONNECTION_SYNCH);
-
- // ContentTuningXExpected.db2
- PrepareStatement(HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED, "SELECT ID, ExpectedStatModID, MinMythicPlusSeasonID, MaxMythicPlusSeasonID, "
- "ContentTuningID FROM content_tuning_x_expected WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED, "SELECT MAX(ID) + 1 FROM content_tuning_x_expected", CONNECTION_SYNCH);
-
- // ContentTuningXLabel.db2
- PrepareStatement(HOTFIX_SEL_CONTENT_TUNING_X_LABEL, "SELECT ID, LabelID, ContentTuningID FROM content_tuning_x_label"
+ PrepareStatement(HOTFIX_SEL_CONTENT_TUNING, "SELECT ID, MinLevel, MaxLevel, Flags, ExpectedStatModID, DifficultyESMID FROM content_tuning"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING_X_LABEL, "SELECT MAX(ID) + 1 FROM content_tuning_x_label", CONNECTION_SYNCH);
+ PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONTENT_TUNING, "SELECT MAX(ID) + 1 FROM content_tuning", CONNECTION_SYNCH);
// ConversationLine.db2
- PrepareStatement(HOTFIX_SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, Unused1020, SpellVisualKitID, AdditionalDuration, "
- "NextConversationLineID, AnimKitID, SpeechType, StartAnimation, EndAnimation FROM conversation_line WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, "
+ "AnimKitID, SpeechType, StartAnimation, EndAnimation FROM conversation_line WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CONVERSATION_LINE, "SELECT MAX(ID) + 1 FROM conversation_line", CONNECTION_SYNCH);
- // CorruptionEffects.db2
- PrepareStatement(HOTFIX_SEL_CORRUPTION_EFFECTS, "SELECT ID, MinCorruption, Aura, PlayerConditionID, Flags FROM corruption_effects"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_CORRUPTION_EFFECTS, "SELECT MAX(ID) + 1 FROM corruption_effects", CONNECTION_SYNCH);
-
// CreatureDisplayInfo.db2
PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO, "SELECT ID, ModelID, SoundID, SizeClass, CreatureModelScale, CreatureModelAlpha, BloodID, "
"ExtendedDisplayInfoID, NPCSoundID, ParticleColorID, PortraitCreatureDisplayInfoID, PortraitTextureFileDataID, ObjectEffectPackageID, "
@@ -482,23 +448,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CREATURE_DISPLAY_INFO, "SELECT MAX(ID) + 1 FROM creature_display_info", CONNECTION_SYNCH);
// CreatureDisplayInfoExtra.db2
- PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, DisplayRaceID, DisplaySexID, DisplayClassID, Flags, BakeMaterialResourcesID, "
- "HDBakeMaterialResourcesID FROM creature_display_info_extra WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, DisplayRaceID, DisplaySexID, DisplayClassID, SkinID, FaceID, HairStyleID, "
+ "HairColorID, FacialHairID, Flags, BakeMaterialResourcesID, HDBakeMaterialResourcesID, CustomDisplayOption1, CustomDisplayOption2, "
+ "CustomDisplayOption3 FROM creature_display_info_extra WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT MAX(ID) + 1 FROM creature_display_info_extra", CONNECTION_SYNCH);
// CreatureFamily.db2
PrepareStatement(HOTFIX_SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MinScaleLevel, MaxScale, MaxScaleLevel, PetFoodMask, PetTalentType, "
- "IconFileID, SkillLine1, SkillLine2 FROM creature_family WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "CategoryEnumID, IconFileID, SkillLine1, SkillLine2 FROM creature_family WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CREATURE_FAMILY, "SELECT MAX(ID) + 1 FROM creature_family", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CREATURE_FAMILY, "SELECT ID, Name_lang FROM creature_family_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// CreatureModelData.db2
- PrepareStatement(HOTFIX_SEL_CREATURE_MODEL_DATA, "SELECT ID, GeoBox1, GeoBox2, GeoBox3, GeoBox4, GeoBox5, GeoBox6, Flags, FileDataID, WalkSpeed, "
- "RunSpeed, BloodID, FootprintTextureID, FootprintTextureLength, FootprintTextureWidth, FootprintParticleScale, FoleyMaterialID, "
- "FootstepCameraEffectID, DeathThudCameraEffectID, SoundID, SizeClass, CollisionWidth, CollisionHeight, WorldEffectScale, "
- "CreatureGeosetDataID, HoverHeight, AttachedEffectScale, ModelScale, MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, "
- "MountHeight, OverrideLootEffectScale, OverrideNameScale, OverrideSelectionRadius, TamedPetBaseScale, Unknown820_1, Unknown820_2, "
- "Unknown820_31, Unknown820_32 FROM creature_model_data WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CREATURE_MODEL_DATA, "SELECT ID, GeoBox1, GeoBox2, GeoBox3, GeoBox4, GeoBox5, GeoBox6, Flags, FileDataID, BloodID, "
+ "FootprintTextureID, FootprintTextureLength, FootprintTextureWidth, FootprintParticleScale, FoleyMaterialID, FootstepCameraEffectID, "
+ "DeathThudCameraEffectID, SoundID, SizeClass, CollisionWidth, CollisionHeight, WorldEffectScale, CreatureGeosetDataID, HoverHeight, "
+ "AttachedEffectScale, ModelScale, MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, MountHeight, OverrideLootEffectScale, "
+ "OverrideNameScale, OverrideSelectionRadius, TamedPetBaseScale FROM creature_model_data WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CREATURE_MODEL_DATA, "SELECT MAX(ID) + 1 FROM creature_model_data", CONNECTION_SYNCH);
// CreatureType.db2
@@ -527,8 +493,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// CurrencyTypes.db2
PrepareStatement(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name, Description, CategoryID, InventoryIconFileID, SpellWeight, SpellCategory, MaxQty, "
- "MaxEarnablePerWeek, Quality, FactionID, ItemGroupSoundsID, XpQuestDifficulty, AwardConditionID, MaxQtyWorldStateID, "
- "RechargingAmountPerCycle, RechargingCycleDurationMS, Flags1, Flags2 FROM currency_types WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "MaxEarnablePerWeek, Quality, FactionID, AwardConditionID, Flags1, Flags2 FROM currency_types WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_CURRENCY_TYPES, "SELECT MAX(ID) + 1 FROM currency_types", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name_lang, Description_lang FROM currency_types_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -558,8 +523,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_DIFFICULTY, "SELECT ID, Name_lang FROM difficulty_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// DungeonEncounter.db2
- PrepareStatement(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT Name, ID, MapID, DifficultyID, OrderIndex, CompleteWorldStateID, Bit, Flags, "
- "SpellIconFileID, Faction FROM dungeon_encounter WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT Name, ID, MapID, DifficultyID, OrderIndex, Bit, Flags, Faction FROM dungeon_encounter"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT MAX(ID) + 1 FROM dungeon_encounter", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT ID, Name_lang FROM dungeon_encounter_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -604,8 +569,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_EXPECTED_STAT_MOD, "SELECT MAX(ID) + 1 FROM expected_stat_mod", CONNECTION_SYNCH);
// Faction.db2
- PrepareStatement(HOTFIX_SEL_FACTION, "SELECT ID, ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, "
- "Description, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, RenownFactionID, RenownCurrencyID, "
+ PrepareStatement(HOTFIX_SEL_FACTION, "SELECT ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, "
+ "Description, ID, ReputationIndex, ParentFactionID, Expansion, FriendshipRepID, Flags, ParagonFactionID, RenownFactionID, RenownCurrencyID, "
"ReputationClassMask1, ReputationClassMask2, ReputationClassMask3, ReputationClassMask4, ReputationFlags1, ReputationFlags2, "
"ReputationFlags3, ReputationFlags4, ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ReputationMax1, ReputationMax2, "
"ReputationMax3, ReputationMax4, ParentFactionMod1, ParentFactionMod2, ParentFactionCap1, ParentFactionCap2 FROM faction"
@@ -620,18 +585,18 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_FACTION_TEMPLATE, "SELECT MAX(ID) + 1 FROM faction_template", CONNECTION_SYNCH);
// FriendshipRepReaction.db2
- PrepareStatement(HOTFIX_SEL_FRIENDSHIP_REP_REACTION, "SELECT ID, Reaction, FriendshipRepID, ReactionThreshold, OverrideColor"
- " FROM friendship_rep_reaction WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_FRIENDSHIP_REP_REACTION, "SELECT ID, Reaction, FriendshipRepID, ReactionThreshold FROM friendship_rep_reaction"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_FRIENDSHIP_REP_REACTION, "SELECT MAX(ID) + 1 FROM friendship_rep_reaction", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_FRIENDSHIP_REP_REACTION, "SELECT ID, Reaction_lang FROM friendship_rep_reaction_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// FriendshipReputation.db2
- PrepareStatement(HOTFIX_SEL_FRIENDSHIP_REPUTATION, "SELECT Description, StandingModified, StandingChanged, ID, FactionID, TextureFileID, Flags"
- " FROM friendship_reputation WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_FRIENDSHIP_REPUTATION, "SELECT Description, ID, Field34146722002, Field34146722003 FROM friendship_reputation"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_FRIENDSHIP_REPUTATION, "SELECT MAX(ID) + 1 FROM friendship_reputation", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_FRIENDSHIP_REPUTATION, "SELECT ID, Description_lang, StandingModified_lang, StandingChanged_lang"
- " FROM friendship_reputation_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_FRIENDSHIP_REPUTATION, "SELECT ID, Description_lang FROM friendship_reputation_locale"
+ " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// GameobjectArtKit.db2
PrepareStatement(HOTFIX_SEL_GAMEOBJECT_ART_KIT, "SELECT ID, AttachModelFileID, TextureVariationFileID1, TextureVariationFileID2, "
@@ -639,9 +604,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GAMEOBJECT_ART_KIT, "SELECT MAX(ID) + 1 FROM gameobject_art_kit", CONNECTION_SYNCH);
// GameobjectDisplayInfo.db2
- PrepareStatement(HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT ID, GeoBoxMinX, GeoBoxMinY, GeoBoxMinZ, GeoBoxMaxX, GeoBoxMaxY, GeoBoxMaxZ, "
- "FileDataID, ObjectEffectPackageID, OverrideLootEffectScale, OverrideNameScale, AlternateDisplayType, ClientCreatureDisplayInfoID, "
- "ClientItemID FROM gameobject_display_info WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT ID, ModelName, GeoBoxMinX, GeoBoxMinY, GeoBoxMinZ, GeoBoxMaxX, GeoBoxMaxY, "
+ "GeoBoxMaxZ, FileDataID, ObjectEffectPackageID, OverrideLootEffectScale, OverrideNameScale FROM gameobject_display_info"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT MAX(ID) + 1 FROM gameobject_display_info", CONNECTION_SYNCH);
// Gameobjects.db2
@@ -652,7 +617,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_GAMEOBJECTS, "SELECT ID, Name_lang FROM gameobjects_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// GarrAbility.db2
- PrepareStatement(HOTFIX_SEL_GARR_ABILITY, "SELECT ID, Name, Description, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, "
+ PrepareStatement(HOTFIX_SEL_GARR_ABILITY, "SELECT Name, Description, ID, GarrAbilityCategoryID, GarrFollowerTypeID, IconFileDataID, "
"FactionChangeGarrAbilityID, Flags FROM garr_ability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_ABILITY, "SELECT MAX(ID) + 1 FROM garr_ability", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_ABILITY, "SELECT ID, Name_lang, Description_lang FROM garr_ability_locale WHERE (`VerifiedBuild` > 0) = ?"
@@ -673,19 +638,19 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_BUILDING_PLOT_INST, "SELECT MAX(ID) + 1 FROM garr_building_plot_inst", CONNECTION_SYNCH);
// GarrClassSpec.db2
- PrepareStatement(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ID, ClassSpec, ClassSpecMale, ClassSpecFemale, UiTextureAtlasMemberID, GarrFollItemSetID, "
+ PrepareStatement(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, ID, UiTextureAtlasMemberID, GarrFollItemSetID, "
"FollowerClassLimit, Flags FROM garr_class_spec WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT MAX(ID) + 1 FROM garr_class_spec", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// GarrFollower.db2
- PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText, AllianceSourceText, TitleName, GarrTypeID, GarrFollowerTypeID, "
+ PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, ID, GarrTypeID, GarrFollowerTypeID, "
"HordeCreatureID, AllianceCreatureID, HordeGarrFollRaceID, AllianceGarrFollRaceID, HordeGarrClassSpecID, AllianceGarrClassSpecID, Quality, "
"FollowerLevel, ItemLevelWeapon, ItemLevelArmor, HordeSourceTypeEnum, AllianceSourceTypeEnum, HordeIconFileDataID, AllianceIconFileDataID, "
"HordeGarrFollItemSetID, AllianceGarrFollItemSetID, HordeUITextureKitID, AllianceUITextureKitID, Vitality, HordeFlavorGarrStringID, "
- "AllianceFlavorGarrStringID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, ChrClassID, Flags, Gender, AutoCombatantID, "
- "CovenantID FROM garr_follower WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "AllianceFlavorGarrStringID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, ChrClassID, Flags, Gender FROM garr_follower"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT MAX(ID) + 1 FROM garr_follower", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, TitleName_lang FROM garr_follower_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -696,11 +661,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_FOLLOWER_X_ABILITY, "SELECT MAX(ID) + 1 FROM garr_follower_x_ability", CONNECTION_SYNCH);
// GarrMission.db2
- PrepareStatement(HOTFIX_SEL_GARR_MISSION, "SELECT ID, Name, Location, Description, MapPosX, MapPosY, WorldPosX, WorldPosY, GarrTypeID, "
+ PrepareStatement(HOTFIX_SEL_GARR_MISSION, "SELECT Name, Location, Description, MapPosX, MapPosY, WorldPosX, WorldPosY, ID, GarrTypeID, "
"GarrMissionTypeID, GarrFollowerTypeID, MaxFollowers, MissionCost, MissionCostCurrencyTypesID, OfferedGarrMissionTextureID, UiTextureKitID, "
- "EnvGarrMechanicID, EnvGarrMechanicTypeID, PlayerConditionID, GarrMissionSetID, TargetLevel, TargetItemLevel, MissionDuration, "
- "TravelDuration, OfferDuration, BaseCompletionChance, BaseFollowerXP, OvermaxRewardPackID, FollowerDeathChance, AreaID, Flags, "
- "AutoMissionScalar, AutoMissionScalarCurveID, AutoCombatantEnvCasterID FROM garr_mission WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "EnvGarrMechanicID, EnvGarrMechanicTypeID, PlayerConditionID, TargetLevel, TargetItemLevel, MissionDuration, TravelDuration, OfferDuration, "
+ "BaseCompletionChance, BaseFollowerXP, OvermaxRewardPackID, FollowerDeathChance, AreaID, Flags, GarrMissionSetID FROM garr_mission"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_MISSION, "SELECT MAX(ID) + 1 FROM garr_mission", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_MISSION, "SELECT ID, Name_lang, Location_lang, Description_lang FROM garr_mission_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -729,27 +694,22 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT MAX(ID) + 1 FROM garr_site_level_plot_inst", CONNECTION_SYNCH);
// GarrTalentTree.db2
- PrepareStatement(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT ID, Name, GarrTypeID, ClassID, MaxTiers, UiOrder, Flags, UiTextureKitID, "
- "GarrTalentTreeType, PlayerConditionID, FeatureTypeIndex, FeatureSubtypeIndex, CurrencyID FROM garr_talent_tree"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT ID, Name, GarrTypeID, ClassID, MaxTiers, UiOrder, Flags, UiTextureKitID"
+ " FROM garr_talent_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT MAX(ID) + 1 FROM garr_talent_tree", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_TALENT_TREE, "SELECT ID, Name_lang FROM garr_talent_tree_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// GemProperties.db2
- PrepareStatement(HOTFIX_SEL_GEM_PROPERTIES, "SELECT ID, EnchantId, Type FROM gem_properties WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GEM_PROPERTIES, "SELECT ID, EnchantId, Type, MinItemLevel FROM gem_properties WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GEM_PROPERTIES, "SELECT MAX(ID) + 1 FROM gem_properties", CONNECTION_SYNCH);
- // GlobalCurve.db2
- PrepareStatement(HOTFIX_SEL_GLOBAL_CURVE, "SELECT ID, CurveID, Type FROM global_curve WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_GLOBAL_CURVE, "SELECT MAX(ID) + 1 FROM global_curve", CONNECTION_SYNCH);
-
// GlyphBindableSpell.db2
PrepareStatement(HOTFIX_SEL_GLYPH_BINDABLE_SPELL, "SELECT ID, SpellID, GlyphPropertiesID FROM glyph_bindable_spell WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GLYPH_BINDABLE_SPELL, "SELECT MAX(ID) + 1 FROM glyph_bindable_spell", CONNECTION_SYNCH);
// GlyphProperties.db2
- PrepareStatement(HOTFIX_SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, GlyphType, GlyphExclusiveCategoryID, SpellIconFileDataID FROM glyph_properties"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, GlyphType, GlyphExclusiveCategoryID, SpellIconFileDataID, GlyphSlotFlags"
+ " FROM glyph_properties WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GLYPH_PROPERTIES, "SELECT MAX(ID) + 1 FROM glyph_properties", CONNECTION_SYNCH);
// GlyphRequiredSpec.db2
@@ -758,9 +718,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GLYPH_REQUIRED_SPEC, "SELECT MAX(ID) + 1 FROM glyph_required_spec", CONNECTION_SYNCH);
// GossipNpcOption.db2
- PrepareStatement(HOTFIX_SEL_GOSSIP_NPC_OPTION, "SELECT ID, GossipNpcOption, LFGDungeonsID, TrainerID, GarrFollowerTypeID, CharShipmentID, "
- "GarrTalentTreeID, UiMapID, UiItemInteractionID, Unknown_1000_8, Unknown_1000_9, CovenantID, GossipOptionID, TraitTreeID, ProfessionID, "
- "Unknown_1002_14 FROM gossip_npc_option WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GOSSIP_NPC_OPTION, "SELECT ID, GossipNpcOption, LFGDungeonsID, TrainerID, Unk341_1, Unk341_2, Unk341_3, Unk341_4, "
+ "Unk341_5, Unk341_6, Unk341_7, Unk341_8, GossipOptionID FROM gossip_npc_option WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_GOSSIP_NPC_OPTION, "SELECT MAX(ID) + 1 FROM gossip_npc_option", CONNECTION_SYNCH);
// GuildColorBackground.db2
@@ -789,11 +748,10 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Holidays.db2
PrepareStatement(HOTFIX_SEL_HOLIDAYS, "SELECT ID, Region, Looping, HolidayNameID, HolidayDescriptionID, Priority, CalendarFilterType, Flags, "
- "Duration1, Duration2, Duration3, Duration4, Duration5, Duration6, Duration7, Duration8, Duration9, Duration10, Date1, Date2, Date3, Date4, "
- "Date5, Date6, Date7, Date8, Date9, Date10, Date11, Date12, Date13, Date14, Date15, Date16, Date17, Date18, Date19, Date20, Date21, Date22, "
- "Date23, Date24, Date25, Date26, CalendarFlags1, CalendarFlags2, CalendarFlags3, CalendarFlags4, CalendarFlags5, CalendarFlags6, "
- "CalendarFlags7, CalendarFlags8, CalendarFlags9, CalendarFlags10, TextureFileDataID1, TextureFileDataID2, TextureFileDataID3 FROM holidays"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "WorldStateExpressionID, Duration1, Duration2, Duration3, Duration4, Duration5, Duration6, Duration7, Duration8, Duration9, Duration10, "
+ "Date1, Date2, Date3, Date4, Date5, Date6, Date7, Date8, Date9, Date10, Date11, Date12, Date13, Date14, Date15, Date16, CalendarFlags1, "
+ "CalendarFlags2, CalendarFlags3, CalendarFlags4, CalendarFlags5, CalendarFlags6, CalendarFlags7, CalendarFlags8, CalendarFlags9, "
+ "CalendarFlags10, TextureFileDataID1, TextureFileDataID2, TextureFileDataID3 FROM holidays WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_HOLIDAYS, "SELECT MAX(ID) + 1 FROM holidays", CONNECTION_SYNCH);
// ImportPriceArmor.db2
@@ -814,13 +772,16 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_IMPORT_PRICE_WEAPON, "SELECT MAX(ID) + 1 FROM import_price_weapon", CONNECTION_SYNCH);
// Item.db2
- PrepareStatement(HOTFIX_SEL_ITEM, "SELECT ID, ClassID, SubclassID, Material, InventoryType, SheatheType, SoundOverrideSubclassID, IconFileDataID, "
- "ItemGroupSoundsID, ContentTuningID, ModifiedCraftingReagentItemID, CraftingQualityID FROM item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM, "SELECT ID, ClassID, SubclassID, Material, InventoryType, RequiredLevel, SheatheType, RandomSelect, "
+ "ItemRandomSuffixGroupID, SoundOverrideSubclassID, ScalingStatDistributionID, IconFileDataID, ItemGroupSoundsID, ContentTuningID, "
+ "MaxDurability, AmmunitionType, ScalingStatValue, DamageType1, DamageType2, DamageType3, DamageType4, DamageType5, Resistances1, "
+ "Resistances2, Resistances3, Resistances4, Resistances5, Resistances6, Resistances7, MinDamage1, MinDamage2, MinDamage3, MinDamage4, "
+ "MinDamage5, MaxDamage1, MaxDamage2, MaxDamage3, MaxDamage4, MaxDamage5 FROM item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM, "SELECT MAX(ID) + 1 FROM item", CONNECTION_SYNCH);
// ItemAppearance.db2
- PrepareStatement(HOTFIX_SEL_ITEM_APPEARANCE, "SELECT ID, DisplayType, ItemDisplayInfoID, DefaultIconFileDataID, UiOrder, PlayerConditionID"
- " FROM item_appearance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_APPEARANCE, "SELECT ID, DisplayType, ItemDisplayInfoID, DefaultIconFileDataID, UiOrder FROM item_appearance"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_APPEARANCE, "SELECT MAX(ID) + 1 FROM item_appearance", CONNECTION_SYNCH);
// ItemArmorQuality.db2
@@ -848,28 +809,18 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS, "SELECT MAX(ID) + 1 FROM item_bonus", CONNECTION_SYNCH);
- // ItemBonusListGroupEntry.db2
- PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY, "SELECT ID, ItemBonusListGroupID, ItemBonusListID, ItemLevelSelectorID, SequenceValue, "
- "ItemExtendedCostID, PlayerConditionID, Flags, ItemLogicalCostGroupID FROM item_bonus_list_group_entry WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY, "SELECT MAX(ID) + 1 FROM item_bonus_list_group_entry", CONNECTION_SYNCH);
-
// ItemBonusListLevelDelta.db2
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT ItemLevelDelta, ID FROM item_bonus_list_level_delta"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT MAX(ID) + 1 FROM item_bonus_list_level_delta", CONNECTION_SYNCH);
- // ItemBonusTree.db2
- PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE, "SELECT ID, Flags, InventoryTypeSlotMask FROM item_bonus_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_TREE, "SELECT MAX(ID) + 1 FROM item_bonus_tree", CONNECTION_SYNCH);
-
// ItemBonusTreeNode.db2
PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, ItemContext, ChildItemBonusTreeID, ChildItemBonusListID, ChildItemLevelSelectorID, "
- "ChildItemBonusListGroupID, IblGroupPointsModSetID, MinMythicPlusLevel, MaxMythicPlusLevel, ParentItemBonusTreeID FROM item_bonus_tree_node"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ParentItemBonusTreeID FROM item_bonus_tree_node WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT MAX(ID) + 1 FROM item_bonus_tree_node", CONNECTION_SYNCH);
// ItemChildEquipment.db2
- PrepareStatement(HOTFIX_SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, ParentItemID, ChildItemID, ChildItemEquipSlot FROM item_child_equipment"
+ PrepareStatement(HOTFIX_SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, ChildItemID, ChildItemEquipSlot, ParentItemID FROM item_child_equipment"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_CHILD_EQUIPMENT, "SELECT MAX(ID) + 1 FROM item_child_equipment", CONNECTION_SYNCH);
@@ -879,7 +830,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, ClassName_lang FROM item_class_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// ItemContextPickerEntry.db2
- PrepareStatement(HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY, "SELECT ID, ItemCreationContext, OrderIndex, PVal, LabelID, Flags, PlayerConditionID, "
+ PrepareStatement(HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY, "SELECT ID, ItemCreationContext, OrderIndex, PVal, Flags, PlayerConditionID, "
"ItemContextPickerID FROM item_context_picker_entry WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY, "SELECT MAX(ID) + 1 FROM item_context_picker_entry", CONNECTION_SYNCH);
@@ -919,7 +870,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// ItemEffect.db2
PrepareStatement(HOTFIX_SEL_ITEM_EFFECT, "SELECT ID, LegacySlotIndex, TriggerType, Charges, CoolDownMSec, CategoryCoolDownMSec, SpellCategoryID, "
- "SpellID, ChrSpecializationID FROM item_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "SpellID, ChrSpecializationID, ParentItemID FROM item_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_EFFECT, "SELECT MAX(ID) + 1 FROM item_effect", CONNECTION_SYNCH);
// ItemExtendedCost.db2
@@ -930,8 +881,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_EXTENDED_COST, "SELECT MAX(ID) + 1 FROM item_extended_cost", CONNECTION_SYNCH);
// ItemLevelSelector.db2
- PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, MinItemLevel, ItemLevelSelectorQualitySetID, AzeriteUnlockMappingSet"
- " FROM item_level_selector WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, MinItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT MAX(ID) + 1 FROM item_level_selector", CONNECTION_SYNCH);
// ItemLevelSelectorQuality.db2
@@ -976,7 +927,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_PRICE_BASE, "SELECT MAX(ID) + 1 FROM item_price_base", CONNECTION_SYNCH);
// ItemSearchName.db2
- PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, AllowableRace, Display, OverallQualityID, ExpansionID, MinFactionID, MinReputation, "
+ PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Display, ID, OverallQualityID, ExpansionID, MinFactionID, MinReputation, "
"AllowableClass, RequiredLevel, RequiredSkill, RequiredSkillRank, RequiredAbility, ItemLevel, Flags1, Flags2, Flags3, Flags4"
" FROM item_search_name WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT MAX(ID) + 1 FROM item_search_name", CONNECTION_SYNCH);
@@ -996,20 +947,24 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SET_SPELL, "SELECT MAX(ID) + 1 FROM item_set_spell", CONNECTION_SYNCH);
// ItemSparse.db2
- PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, ExpansionID, DmgVariance, "
- "LimitCategory, DurationInInventory, QualityModifier, BagFamily, StartQuestID, LanguageID, ItemRange, StatPercentageOfSocket1, "
- "StatPercentageOfSocket2, StatPercentageOfSocket3, StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, "
- "StatPercentageOfSocket7, StatPercentageOfSocket8, StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, "
- "StatPercentEditor3, StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, "
- "StatPercentEditor10, Stackable, MaxCount, MinReputation, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, "
- "PriceRandomValue, Flags1, Flags2, Flags3, Flags4, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, "
- "PlayerLevelToItemLevelCurveID, ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, GemProperties, SocketMatchEnchantmentId, "
- "TotemCategoryID, InstanceBound, ZoneBound1, ZoneBound2, ItemSet, LockID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, "
- "ItemLevel, AllowableClass, ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, Material, "
- "PageMaterialID, Bonding, DamageDamageType, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, StatModifierBonusStat4, "
- "StatModifierBonusStat5, StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, StatModifierBonusStat9, "
- "StatModifierBonusStat10, ContainerSlots, RequiredPVPMedal, RequiredPVPRank, RequiredLevel, InventoryType, OverallQualityID FROM item_sparse"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Description, Display3, Display2, Display1, Display, DmgVariance, "
+ "DurationInInventory, QualityModifier, BagFamily, StartQuestID, ItemRange, StatPercentageOfSocket1, StatPercentageOfSocket2, "
+ "StatPercentageOfSocket3, StatPercentageOfSocket4, StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, "
+ "StatPercentageOfSocket8, StatPercentageOfSocket9, StatPercentageOfSocket10, StatPercentEditor1, StatPercentEditor2, StatPercentEditor3, "
+ "StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, StatPercentEditor9, StatPercentEditor10, "
+ "Stackable, MaxCount, MinReputation, RequiredAbility, SellPrice, BuyPrice, VendorStackCount, PriceVariance, PriceRandomValue, Flags1, Flags2, "
+ "Flags3, Flags4, FactionRelated, ModifiedCraftingReagentItemID, ContentTuningID, PlayerLevelToItemLevelCurveID, MaxDurability, "
+ "ItemNameDescriptionID, RequiredTransmogHoliday, RequiredHoliday, LimitCategory, GemProperties, SocketMatchEnchantmentId, TotemCategoryID, "
+ "InstanceBound, ZoneBound1, ZoneBound2, ItemSet, LockID, PageID, ItemDelay, MinFactionID, RequiredSkillRank, RequiredSkill, ItemLevel, "
+ "AllowableClass, ItemRandomSuffixGroupID, RandomSelect, MinDamage1, MinDamage2, MinDamage3, MinDamage4, MinDamage5, MaxDamage1, MaxDamage2, "
+ "MaxDamage3, MaxDamage4, MaxDamage5, Resistances1, Resistances2, Resistances3, Resistances4, Resistances5, Resistances6, Resistances7, "
+ "ScalingStatDistributionID, StatModifierBonusAmount1, StatModifierBonusAmount2, StatModifierBonusAmount3, StatModifierBonusAmount4, "
+ "StatModifierBonusAmount5, StatModifierBonusAmount6, StatModifierBonusAmount7, StatModifierBonusAmount8, StatModifierBonusAmount9, "
+ "StatModifierBonusAmount10, ExpansionID, ArtifactID, SpellWeight, SpellWeightCategory, SocketType1, SocketType2, SocketType3, SheatheType, "
+ "Material, PageMaterialID, LanguageID, Bonding, DamageDamageType, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, "
+ "StatModifierBonusStat4, StatModifierBonusStat5, StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, "
+ "StatModifierBonusStat9, StatModifierBonusStat10, ContainerSlots, RequiredPVPMedal, RequiredPVPRank, InventoryType, OverallQualityID, "
+ "AmmunitionType, RequiredLevel FROM item_sparse WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_SPARSE, "SELECT MAX(ID) + 1 FROM item_sparse", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, Description_lang, Display3_lang, Display2_lang, Display1_lang, Display_lang"
" FROM item_sparse_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1027,13 +982,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemBonusTreeID, ItemID FROM item_x_bonus_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT MAX(ID) + 1 FROM item_x_bonus_tree", CONNECTION_SYNCH);
- // ItemXItemEffect.db2
- PrepareStatement(HOTFIX_SEL_ITEM_X_ITEM_EFFECT, "SELECT ID, ItemEffectID, ItemID FROM item_x_item_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_ITEM_X_ITEM_EFFECT, "SELECT MAX(ID) + 1 FROM item_x_item_effect", CONNECTION_SYNCH);
-
// JournalEncounter.db2
- PrepareStatement(HOTFIX_SEL_JOURNAL_ENCOUNTER, "SELECT Name, Description, MapX, MapY, ID, JournalInstanceID, DungeonEncounterID, OrderIndex, "
- "FirstSectionID, UiMapID, MapDisplayConditionID, Flags, DifficultyMask FROM journal_encounter WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_JOURNAL_ENCOUNTER, "SELECT ID, Name, Description, MapX, MapY, JournalInstanceID, OrderIndex, FirstSectionID, UiMapID, "
+ "MapDisplayConditionID, Flags, DifficultyMask FROM journal_encounter WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_JOURNAL_ENCOUNTER, "SELECT MAX(ID) + 1 FROM journal_encounter", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_JOURNAL_ENCOUNTER, "SELECT ID, Name_lang, Description_lang FROM journal_encounter_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1047,14 +998,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// JournalInstance.db2
- PrepareStatement(HOTFIX_SEL_JOURNAL_INSTANCE, "SELECT ID, Name, Description, MapID, BackgroundFileDataID, ButtonFileDataID, "
+ PrepareStatement(HOTFIX_SEL_JOURNAL_INSTANCE, "SELECT Name, Description, ID, MapID, BackgroundFileDataID, ButtonFileDataID, "
"ButtonSmallFileDataID, LoreFileDataID, Flags, AreaID FROM journal_instance WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_JOURNAL_INSTANCE, "SELECT MAX(ID) + 1 FROM journal_instance", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_JOURNAL_INSTANCE, "SELECT ID, Name_lang, Description_lang FROM journal_instance_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// JournalTier.db2
- PrepareStatement(HOTFIX_SEL_JOURNAL_TIER, "SELECT ID, Name, PlayerConditionID FROM journal_tier WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_JOURNAL_TIER, "SELECT ID, Name FROM journal_tier WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_JOURNAL_TIER, "SELECT MAX(ID) + 1 FROM journal_tier", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_JOURNAL_TIER, "SELECT ID, Name_lang FROM journal_tier_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1081,10 +1032,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_LANGUAGES, "SELECT ID, Name_lang FROM languages_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// LfgDungeons.db2
- PrepareStatement(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, TypeID, Subtype, Faction, IconTextureFileID, RewardsBgTextureFileID, "
- "PopupBgTextureFileID, ExpansionLevel, MapID, DifficultyID, MinGear, GroupID, OrderIndex, RequiredPlayerConditionId, RandomID, ScenarioID, "
- "FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, MinCountHealer, MinCountDamage, BonusReputationAmount, MentorItemLevel, "
- "MentorCharLevel, ContentTuningID, Flags1, Flags2 FROM lfg_dungeons WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, MinLevel, MaxLevel, TypeID, Subtype, Faction, IconTextureFileID, "
+ "RewardsBgTextureFileID, PopupBgTextureFileID, ExpansionLevel, MapID, DifficultyID, MinGear, GroupID, OrderIndex, RequiredPlayerConditionId, "
+ "TargetLevel, TargetLevelMin, TargetLevelMax, RandomID, ScenarioID, FinalEncounterID, CountTank, CountHealer, CountDamage, MinCountTank, "
+ "MinCountHealer, MinCountDamage, BonusReputationAmount, MentorItemLevel, MentorCharLevel, Flags1, Flags2 FROM lfg_dungeons"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_LFG_DUNGEONS, "SELECT MAX(ID) + 1 FROM lfg_dungeons", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name_lang, Description_lang FROM lfg_dungeons_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -1105,8 +1057,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_LIQUID_TYPE, "SELECT MAX(ID) + 1 FROM liquid_type", CONNECTION_SYNCH);
// Lock.db2
- PrepareStatement(HOTFIX_SEL_LOCK, "SELECT ID, Flags, Index1, Index2, Index3, Index4, Index5, Index6, Index7, Index8, Skill1, Skill2, Skill3, "
- "Skill4, Skill5, Skill6, Skill7, Skill8, Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Action1, Action2, Action3, Action4, Action5, "
+ PrepareStatement(HOTFIX_SEL_LOCK, "SELECT ID, Index1, Index2, Index3, Index4, Index5, Index6, Index7, Index8, Skill1, Skill2, Skill3, Skill4, "
+ "Skill5, Skill6, Skill7, Skill8, Type1, Type2, Type3, Type4, Type5, Type6, Type7, Type8, Action1, Action2, Action3, Action4, Action5, "
"Action6, Action7, Action8 FROM `lock` WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_LOCK, "SELECT MAX(ID) + 1 FROM `lock`", CONNECTION_SYNCH);
@@ -1117,9 +1069,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Map.db2
PrepareStatement(HOTFIX_SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, PvpShortDescription, PvpLongDescription, "
- "CorpseX, CorpseY, MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, CosmeticParentMapID, "
- "TimeOffset, MinimapIconScale, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, WdtFileDataID, NavigationMaxDistance, Flags1, Flags2, "
- "Flags3 FROM map WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "MapType, InstanceType, ExpansionID, AreaTableID, LoadingScreenID, TimeOfDayOverride, ParentMapID, CosmeticParentMapID, TimeOffset, "
+ "MinimapIconScale, RaidOffset, CorpseMapID, MaxPlayers, WindSettingsID, ZmpFileDataID, Flags1, Flags2, Flags3 FROM map"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MAP, "SELECT MAX(ID) + 1 FROM map", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, PvpShortDescription_lang, "
"PvpLongDescription_lang FROM map_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1132,8 +1084,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" AND locale = ?", CONNECTION_SYNCH);
// MapDifficulty.db2
- PrepareStatement(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message, DifficultyID, LockID, ResetInterval, MaxPlayers, ItemContext, "
- "ItemContextPickerID, Flags, ContentTuningID, MapID FROM map_difficulty WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message, ItemContextPickerID, ContentTuningID, ItemContext, DifficultyID, LockID, "
+ "ResetInterval, MaxPlayers, Flags, MapID FROM map_difficulty WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT MAX(ID) + 1 FROM map_difficulty", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message_lang FROM map_difficulty_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1144,10 +1096,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP_DIFFICULTY_X_CONDITION, "SELECT ID, FailureDescription_lang FROM map_difficulty_x_condition_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
- // MawPower.db2
- PrepareStatement(HOTFIX_SEL_MAW_POWER, "SELECT ID, SpellID, MawPowerRarityID FROM maw_power WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_MAW_POWER, "SELECT MAX(ID) + 1 FROM maw_power", CONNECTION_SYNCH);
-
// ModifierTree.db2
PrepareStatement(HOTFIX_SEL_MODIFIER_TREE, "SELECT ID, Parent, Operator, Amount, Type, Asset, SecondaryAsset, TertiaryAsset FROM modifier_tree"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
@@ -1155,15 +1103,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Mount.db2
PrepareStatement(HOTFIX_SEL_MOUNT, "SELECT Name, SourceText, Description, ID, MountTypeID, Flags, SourceTypeEnum, SourceSpellID, "
- "PlayerConditionID, MountFlyRideHeight, UiModelSceneID, MountSpecialRiderAnimKitID, MountSpecialSpellVisualKitID FROM mount"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "PlayerConditionID, MountFlyRideHeight, UiModelSceneID FROM mount WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MOUNT, "SELECT MAX(ID) + 1 FROM mount", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_MOUNT, "SELECT ID, Name_lang, SourceText_lang, Description_lang FROM mount_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
// MountCapability.db2
PrepareStatement(HOTFIX_SEL_MOUNT_CAPABILITY, "SELECT ID, Flags, ReqRidingSkill, ReqAreaID, ReqSpellAuraID, ReqSpellKnownID, ModSpellAuraID, "
- "ReqMapID, PlayerConditionID, FlightCapabilityID FROM mount_capability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ReqMapID FROM mount_capability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MOUNT_CAPABILITY, "SELECT MAX(ID) + 1 FROM mount_capability", CONNECTION_SYNCH);
// MountTypeXCapability.db2
@@ -1177,8 +1124,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MOUNT_X_DISPLAY, "SELECT MAX(ID) + 1 FROM mount_x_display", CONNECTION_SYNCH);
// Movie.db2
- PrepareStatement(HOTFIX_SEL_MOVIE, "SELECT ID, Volume, KeyID, AudioFileDataID, SubtitleFileDataID, SubtitleFileFormat FROM movie"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MOVIE, "SELECT ID, Volume, KeyID, AudioFileDataID, SubtitleFileDataID FROM movie WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_MOVIE, "SELECT MAX(ID) + 1 FROM movie", CONNECTION_SYNCH);
// MythicPlusSeason.db2
@@ -1203,8 +1149,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_NAMES_RESERVED_LOCALE, "SELECT MAX(ID) + 1 FROM names_reserved_locale", CONNECTION_SYNCH);
// NumTalentsAtLevel.db2
- PrepareStatement(HOTFIX_SEL_NUM_TALENTS_AT_LEVEL, "SELECT ID, NumTalents, NumTalentsDeathKnight, NumTalentsDemonHunter FROM num_talents_at_level"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_NUM_TALENTS_AT_LEVEL, "SELECT ID, NumTalents, NumTalentsDeathKnight, NumTalentsDemonHunter, NumberOfTalents"
+ " FROM num_talents_at_level WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_NUM_TALENTS_AT_LEVEL, "SELECT MAX(ID) + 1 FROM num_talents_at_level", CONNECTION_SYNCH);
// OverrideSpellData.db2
@@ -1226,25 +1172,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PHASE_X_PHASE_GROUP, "SELECT MAX(ID) + 1 FROM phase_x_phase_group", CONNECTION_SYNCH);
// PlayerCondition.db2
- PrepareStatement(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, RaceMask, FailureDescription, ClassMask, SkillLogic, LanguageID, MinLanguage, "
- "MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, "
+ PrepareStatement(HOTFIX_SEL_PLAYER_CONDITION, "SELECT RaceMask, FailureDescription, ID, MinLevel, MaxLevel, ClassMask, SkillLogic, LanguageID, "
+ "MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, PvpMedal, PrevQuestLogic, CurrQuestLogic, "
"CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, WorldStateExpressionID, WeatherID, PartyStatus, "
"LifetimeMaxPVPRank, AchievementLogic, Gender, NativeGender, AreaLogic, LfgLogic, CurrencyLogic, QuestKillID, QuestKillLogic, "
"MinExpansionLevel, MaxExpansionLevel, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, PhaseUseFlags, "
"PhaseID, PhaseGroupID, Flags, ChrSpecializationIndex, ChrSpecializationRole, ModifierTreeID, PowerType, PowerTypeComp, PowerTypeValue, "
- "WeaponSubclassMask, MaxGuildLevel, MinGuildLevel, MaxExpansionTier, MinExpansionTier, MinPVPRank, MaxPVPRank, ContentTuningID, CovenantID, "
- "TraitNodeEntryLogic, SkillID1, SkillID2, SkillID3, SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, "
- "MaxSkill4, MinFactionID1, MinFactionID2, MinFactionID3, MinReputation1, MinReputation2, MinReputation3, PrevQuestID1, PrevQuestID2, "
- "PrevQuestID3, PrevQuestID4, CurrQuestID1, CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, "
- "CurrentCompletedQuestID3, CurrentCompletedQuestID4, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, "
- "ItemCount2, ItemCount3, ItemCount4, Explored1, Explored2, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, AuraStacks1, "
- "AuraStacks2, AuraStacks3, AuraStacks4, Achievement1, Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, "
- "LfgStatus1, LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, "
- "LfgValue4, CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, "
- "QuestKillMonster1, QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, "
- "MovementFlags2, TraitNodeEntryID1, TraitNodeEntryID2, TraitNodeEntryID3, TraitNodeEntryID4, TraitNodeEntryMinRank1, TraitNodeEntryMinRank2, "
- "TraitNodeEntryMinRank3, TraitNodeEntryMinRank4, TraitNodeEntryMaxRank1, TraitNodeEntryMaxRank2, TraitNodeEntryMaxRank3, "
- "TraitNodeEntryMaxRank4 FROM player_condition WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "WeaponSubclassMask, MaxGuildLevel, MinGuildLevel, MaxExpansionTier, MinExpansionTier, MinPVPRank, MaxPVPRank, SkillID1, SkillID2, SkillID3, "
+ "SkillID4, MinSkill1, MinSkill2, MinSkill3, MinSkill4, MaxSkill1, MaxSkill2, MaxSkill3, MaxSkill4, MinFactionID1, MinFactionID2, "
+ "MinFactionID3, MinReputation1, MinReputation2, MinReputation3, PrevQuestID1, PrevQuestID2, PrevQuestID3, PrevQuestID4, CurrQuestID1, "
+ "CurrQuestID2, CurrQuestID3, CurrQuestID4, CurrentCompletedQuestID1, CurrentCompletedQuestID2, CurrentCompletedQuestID3, "
+ "CurrentCompletedQuestID4, SpellID1, SpellID2, SpellID3, SpellID4, ItemID1, ItemID2, ItemID3, ItemID4, ItemCount1, ItemCount2, ItemCount3, "
+ "ItemCount4, Explored1, Explored2, Time1, Time2, AuraSpellID1, AuraSpellID2, AuraSpellID3, AuraSpellID4, AuraStacks1, AuraStacks2, "
+ "AuraStacks3, AuraStacks4, Achievement1, Achievement2, Achievement3, Achievement4, AreaID1, AreaID2, AreaID3, AreaID4, LfgStatus1, "
+ "LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, LfgValue4, "
+ "CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, QuestKillMonster1, "
+ "QuestKillMonster2, QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2"
+ " FROM player_condition WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PLAYER_CONDITION, "SELECT MAX(ID) + 1 FROM player_condition", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -1255,7 +1199,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_POWER_DISPLAY, "SELECT MAX(ID) + 1 FROM power_display", CONNECTION_SYNCH);
// PowerType.db2
- PrepareStatement(HOTFIX_SEL_POWER_TYPE, "SELECT NameGlobalStringTag, CostGlobalStringTag, ID, PowerTypeEnum, MinPower, MaxBasePower, CenterPower, "
+ PrepareStatement(HOTFIX_SEL_POWER_TYPE, "SELECT ID, NameGlobalStringTag, CostGlobalStringTag, PowerTypeEnum, MinPower, MaxBasePower, CenterPower, "
"DefaultPower, DisplayModifier, RegenInterruptTimeMS, RegenPeace, RegenCombat, Flags FROM power_type WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_POWER_TYPE, "SELECT MAX(ID) + 1 FROM power_type", CONNECTION_SYNCH);
@@ -1274,11 +1218,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelDelta FROM pvp_item WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_ITEM, "SELECT MAX(ID) + 1 FROM pvp_item", CONNECTION_SYNCH);
- // PvpStat.db2
- PrepareStatement(HOTFIX_SEL_PVP_STAT, "SELECT Description, ID, MapID FROM pvp_stat WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_STAT, "SELECT MAX(ID) + 1 FROM pvp_stat", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_PVP_STAT, "SELECT ID, Description_lang FROM pvp_stat_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
-
// PvpSeason.db2
PrepareStatement(HOTFIX_SEL_PVP_SEASON, "SELECT ID, MilestoneSeason, AllianceAchievementID, HordeAchievementID FROM pvp_season"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
@@ -1286,7 +1225,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// PvpTalent.db2
PrepareStatement(HOTFIX_SEL_PVP_TALENT, "SELECT Description, ID, SpecID, SpellID, OverridesSpellID, Flags, ActionBarSpellID, PvpTalentCategoryID, "
- "LevelRequired, PlayerConditionID FROM pvp_talent WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "LevelRequired FROM pvp_talent WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_TALENT, "SELECT MAX(ID) + 1 FROM pvp_talent", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_PVP_TALENT, "SELECT ID, Description_lang FROM pvp_talent_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1300,7 +1239,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_TALENT_SLOT_UNLOCK, "SELECT MAX(ID) + 1 FROM pvp_talent_slot_unlock", CONNECTION_SYNCH);
// PvpTier.db2
- PrepareStatement(HOTFIX_SEL_PVP_TIER, "SELECT Name, ID, MinRating, MaxRating, PrevTier, NextTier, BracketID, `Rank`, RankIconFileDataID"
+ PrepareStatement(HOTFIX_SEL_PVP_TIER, "SELECT ID, Name, MinRating, MaxRating, PrevTier, NextTier, BracketID, `Rank`, RankIconFileDataID"
" FROM pvp_tier WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_PVP_TIER, "SELECT MAX(ID) + 1 FROM pvp_tier", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_PVP_TIER, "SELECT ID, Name_lang FROM pvp_tier_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1316,7 +1255,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_QUEST_INFO, "SELECT ID, InfoName_lang FROM quest_info_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// QuestLineXQuest.db2
- PrepareStatement(HOTFIX_SEL_QUEST_LINE_X_QUEST, "SELECT ID, QuestLineID, QuestID, OrderIndex, Flags FROM quest_line_x_quest"
+ PrepareStatement(HOTFIX_SEL_QUEST_LINE_X_QUEST, "SELECT ID, QuestLineID, QuestID, OrderIndex FROM quest_line_x_quest"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_QUEST_LINE_X_QUEST, "SELECT MAX(ID) + 1 FROM quest_line_x_quest", CONNECTION_SYNCH);
@@ -1336,7 +1275,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_QUEST_SORT, "SELECT ID, SortName_lang FROM quest_sort_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// QuestV2.db2
- PrepareStatement(HOTFIX_SEL_QUEST_V2, "SELECT ID, UniqueBitFlag, UiQuestDetailsTheme FROM quest_v2 WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_V2, "SELECT ID, UniqueBitFlag FROM quest_v2 WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_QUEST_V2, "SELECT MAX(ID) + 1 FROM quest_v2", CONNECTION_SYNCH);
// QuestXp.db2
@@ -1345,10 +1284,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_QUEST_XP, "SELECT MAX(ID) + 1 FROM quest_xp", CONNECTION_SYNCH);
// RandPropPoints.db2
- PrepareStatement(HOTFIX_SEL_RAND_PROP_POINTS, "SELECT ID, DamageReplaceStatF, DamageSecondaryF, DamageReplaceStat, DamageSecondary, EpicF1, "
- "EpicF2, EpicF3, EpicF4, EpicF5, SuperiorF1, SuperiorF2, SuperiorF3, SuperiorF4, SuperiorF5, GoodF1, GoodF2, GoodF3, GoodF4, GoodF5, Epic1, "
- "Epic2, Epic3, Epic4, Epic5, Superior1, Superior2, Superior3, Superior4, Superior5, Good1, Good2, Good3, Good4, Good5 FROM rand_prop_points"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_RAND_PROP_POINTS, "SELECT ID, DamageReplaceStat, Epic1, Epic2, Epic3, Epic4, Epic5, Superior1, Superior2, Superior3, "
+ "Superior4, Superior5, Good1, Good2, Good3, Good4, Good5 FROM rand_prop_points WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_RAND_PROP_POINTS, "SELECT MAX(ID) + 1 FROM rand_prop_points", CONNECTION_SYNCH);
// RewardPack.db2
@@ -1388,7 +1325,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENE_SCRIPT_GLOBAL_TEXT, "SELECT MAX(ID) + 1 FROM scene_script_global_text", CONNECTION_SYNCH);
// SceneScriptPackage.db2
- PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT ID, Name, Unknown915 FROM scene_script_package WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT ID, Name FROM scene_script_package WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENE_SCRIPT_PACKAGE, "SELECT MAX(ID) + 1 FROM scene_script_package", CONNECTION_SYNCH);
// SceneScriptText.db2
@@ -1402,19 +1339,17 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// SkillLine.db2
PrepareStatement(HOTFIX_SEL_SKILL_LINE, "SELECT DisplayName, AlternateVerb, Description, HordeDisplayName, OverrideSourceInfoDisplayName, ID, "
- "CategoryID, SpellIconFileID, CanLink, ParentSkillLineID, ParentTierIndex, Flags, SpellBookSpellID, ExpansionNameSharedStringID, "
- "HordeExpansionNameSharedStringID FROM skill_line WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "CategoryID, SpellIconFileID, CanLink, ParentSkillLineID, ParentTierIndex, Flags, SpellBookSpellID FROM skill_line"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SKILL_LINE, "SELECT MAX(ID) + 1 FROM skill_line", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SKILL_LINE, "SELECT ID, DisplayName_lang, AlternateVerb_lang, Description_lang, HordeDisplayName_lang"
" FROM skill_line_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// SkillLineAbility.db2
- PrepareStatement(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, AbilityVerb, AbilityAllVerb, ID, SkillLine, Spell, MinSkillLineRank, ClassMask, "
- "SupercedesSpell, AcquireMethod, TrivialSkillLineRankHigh, TrivialSkillLineRankLow, Flags, NumSkillUps, UniqueBit, TradeSkillCategoryID, "
- "SkillupSkillLineID FROM skill_line_ability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, ID, SkillLine, Spell, MinSkillLineRank, ClassMask, SupercedesSpell, "
+ "AcquireMethod, TrivialSkillLineRankHigh, TrivialSkillLineRankLow, Flags, NumSkillUps, UniqueBit, TradeSkillCategoryID, SkillupSkillLineID, "
+ "CharacterPoints1, CharacterPoints2 FROM skill_line_ability WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT MAX(ID) + 1 FROM skill_line_ability", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT ID, AbilityVerb_lang, AbilityAllVerb_lang FROM skill_line_ability_locale"
- " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// SkillLineXTraitTree.db2
PrepareStatement(HOTFIX_SEL_SKILL_LINE_X_TRAIT_TREE, "SELECT ID, SkillLineID, TraitTreeID, OrderIndex FROM skill_line_x_trait_tree"
@@ -1422,15 +1357,10 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SKILL_LINE_X_TRAIT_TREE, "SELECT MAX(ID) + 1 FROM skill_line_x_trait_tree", CONNECTION_SYNCH);
// SkillRaceClassInfo.db2
- PrepareStatement(HOTFIX_SEL_SKILL_RACE_CLASS_INFO, "SELECT ID, RaceMask, SkillID, ClassMask, Flags, Availability, MinLevel, SkillTierID"
- " FROM skill_race_class_info WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SKILL_RACE_CLASS_INFO, "SELECT ID, RaceMask, SkillID, ClassMask, Flags, Availability, MinLevel, SkillTierID, "
+ "Unknown115_1 FROM skill_race_class_info WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SKILL_RACE_CLASS_INFO, "SELECT MAX(ID) + 1 FROM skill_race_class_info", CONNECTION_SYNCH);
- // SoulbindConduitRank.db2
- PrepareStatement(HOTFIX_SEL_SOULBIND_CONDUIT_RANK, "SELECT ID, RankIndex, SpellID, AuraPointsOverride, SoulbindConduitID"
- " FROM soulbind_conduit_rank WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_SOULBIND_CONDUIT_RANK, "SELECT MAX(ID) + 1 FROM soulbind_conduit_rank", CONNECTION_SYNCH);
-
// SoundKit.db2
PrepareStatement(HOTFIX_SEL_SOUND_KIT, "SELECT ID, SoundType, VolumeFloat, Flags, MinDistance, DistanceCutoff, EAXDef, SoundKitAdvancedID, "
"VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, DialogType, PitchAdjust, BusOverwriteID, MaxInstances, "
@@ -1455,12 +1385,12 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// SpellAuraRestrictions.db2
PrepareStatement(HOTFIX_SEL_SPELL_AURA_RESTRICTIONS, "SELECT ID, DifficultyID, CasterAuraState, TargetAuraState, ExcludeCasterAuraState, "
- "ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, CasterAuraType, TargetAuraType, "
- "ExcludeCasterAuraType, ExcludeTargetAuraType, SpellID FROM spell_aura_restrictions WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ExcludeTargetAuraState, CasterAuraSpell, TargetAuraSpell, ExcludeCasterAuraSpell, ExcludeTargetAuraSpell, SpellID"
+ " FROM spell_aura_restrictions WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_AURA_RESTRICTIONS, "SELECT MAX(ID) + 1 FROM spell_aura_restrictions", CONNECTION_SYNCH);
// SpellCastTimes.db2
- PrepareStatement(HOTFIX_SEL_SPELL_CAST_TIMES, "SELECT ID, Base, Minimum FROM spell_cast_times WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_CAST_TIMES, "SELECT ID, Base, PerLevel, Minimum FROM spell_cast_times WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_CAST_TIMES, "SELECT MAX(ID) + 1 FROM spell_cast_times", CONNECTION_SYNCH);
// SpellCastingRequirements.db2
@@ -1490,16 +1420,17 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_COOLDOWNS, "SELECT MAX(ID) + 1 FROM spell_cooldowns", CONNECTION_SYNCH);
// SpellDuration.db2
- PrepareStatement(HOTFIX_SEL_SPELL_DURATION, "SELECT ID, Duration, MaxDuration FROM spell_duration WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_DURATION, "SELECT ID, Duration, DurationPerLevel, MaxDuration FROM spell_duration"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_DURATION, "SELECT MAX(ID) + 1 FROM spell_duration", CONNECTION_SYNCH);
// SpellEffect.db2
- PrepareStatement(HOTFIX_SEL_SPELL_EFFECT, "SELECT ID, EffectAura, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, "
- "EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectItemType, EffectMechanic, EffectPointsPerResource, "
- "EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, PvpMultiplier, Coefficient, Variance, "
- "ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectBasePoints, ScalingClass, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, "
- "EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, ImplicitTarget1, "
- "ImplicitTarget2, SpellID FROM spell_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_EFFECT, "SELECT ID, DifficultyID, EffectIndex, Effect, EffectAmplitude, EffectAttributes, EffectAura, "
+ "EffectAuraPeriod, EffectBasePoints, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectDieSides, EffectItemType, "
+ "EffectMechanic, EffectPointsPerResource, EffectPosFacing, EffectRealPointsPerLevel, EffectTriggerSpell, BonusCoefficientFromAP, "
+ "PvpMultiplier, Coefficient, Variance, ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectMiscValue1, EffectMiscValue2, "
+ "EffectRadiusIndex1, EffectRadiusIndex2, EffectSpellClassMask1, EffectSpellClassMask2, EffectSpellClassMask3, EffectSpellClassMask4, "
+ "ImplicitTarget1, ImplicitTarget2, SpellID FROM spell_effect WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_EFFECT, "SELECT MAX(ID) + 1 FROM spell_effect", CONNECTION_SYNCH);
// SpellEquippedItems.db2
@@ -1519,11 +1450,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_INTERRUPTS, "SELECT MAX(ID) + 1 FROM spell_interrupts", CONNECTION_SYNCH);
// SpellItemEnchantment.db2
- PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, HordeName, Duration, EffectArg1, EffectArg2, EffectArg3, "
- "EffectScalingPoints1, EffectScalingPoints2, EffectScalingPoints3, IconFileDataID, MinItemLevel, MaxItemLevel, TransmogUseConditionID, "
- "TransmogCost, EffectPointsMin1, EffectPointsMin2, EffectPointsMin3, ItemVisual, Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, "
- "Charges, Effect1, Effect2, Effect3, ScalingClass, ScalingClassRestricted, ConditionID, MinLevel, MaxLevel FROM spell_item_enchantment"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, HordeName, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, "
+ "EffectScalingPoints2, EffectScalingPoints3, GemItemID, TransmogUseConditionID, TransmogCost, IconFileDataID, EffectPointsMin1, "
+ "EffectPointsMin2, EffectPointsMin3, EffectPointsMax1, EffectPointsMax2, EffectPointsMax3, ItemVisual, Flags, RequiredSkillID, "
+ "RequiredSkillRank, ItemLevel, Charges, Effect1, Effect2, Effect3, ScalingClass, ScalingClassRestricted, ConditionID, MinLevel, MaxLevel"
+ " FROM spell_item_enchantment WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT MAX(ID) + 1 FROM spell_item_enchantment", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name_lang, HordeName_lang FROM spell_item_enchantment_locale"
" WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1550,7 +1481,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_LEARN_SPELL, "SELECT MAX(ID) + 1 FROM spell_learn_spell", CONNECTION_SYNCH);
// SpellLevels.db2
- PrepareStatement(HOTFIX_SEL_SPELL_LEVELS, "SELECT ID, DifficultyID, MaxLevel, MaxPassiveAuraLevel, BaseLevel, SpellLevel, SpellID"
+ PrepareStatement(HOTFIX_SEL_SPELL_LEVELS, "SELECT ID, DifficultyID, BaseLevel, MaxLevel, SpellLevel, MaxPassiveAuraLevel, SpellID"
" FROM spell_levels WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_LEVELS, "SELECT MAX(ID) + 1 FROM spell_levels", CONNECTION_SYNCH);
@@ -1558,8 +1489,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SPELL_MISC, "SELECT ID, Attributes1, Attributes2, Attributes3, Attributes4, Attributes5, Attributes6, Attributes7, "
"Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, Attributes15, DifficultyID, "
"CastingTimeIndex, DurationIndex, RangeIndex, SchoolMask, Speed, LaunchDelay, MinDuration, SpellIconFileDataID, ActiveIconFileDataID, "
- "ContentTuningID, ShowFutureSpellPlayerConditionID, SpellVisualScript, ActiveSpellVisualScript, SpellID FROM spell_misc"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ContentTuningID, ShowFutureSpellPlayerConditionID, SpellID FROM spell_misc WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_MISC, "SELECT MAX(ID) + 1 FROM spell_misc", CONNECTION_SYNCH);
// SpellName.db2
@@ -1569,7 +1499,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// SpellPower.db2
PrepareStatement(HOTFIX_SEL_SPELL_POWER, "SELECT ID, OrderIndex, ManaCost, ManaCostPerLevel, ManaPerSecond, PowerDisplayID, AltPowerBarID, "
- "PowerCostPct, PowerCostMaxPct, OptionalCostPct, PowerPctPerSecond, PowerType, RequiredAuraSpellID, OptionalCost, SpellID FROM spell_power"
+ "PowerCostPct, PowerCostMaxPct, PowerPctPerSecond, PowerType, RequiredAuraSpellID, OptionalCost, SpellID FROM spell_power"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_POWER, "SELECT MAX(ID) + 1 FROM spell_power", CONNECTION_SYNCH);
@@ -1601,10 +1531,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// SpellReagents.db2
PrepareStatement(HOTFIX_SEL_SPELL_REAGENTS, "SELECT ID, SpellID, Reagent1, Reagent2, Reagent3, Reagent4, Reagent5, Reagent6, Reagent7, Reagent8, "
- "ReagentCount1, ReagentCount2, ReagentCount3, ReagentCount4, ReagentCount5, ReagentCount6, ReagentCount7, ReagentCount8, "
- "ReagentRecraftCount1, ReagentRecraftCount2, ReagentRecraftCount3, ReagentRecraftCount4, ReagentRecraftCount5, ReagentRecraftCount6, "
- "ReagentRecraftCount7, ReagentRecraftCount8, ReagentSource1, ReagentSource2, ReagentSource3, ReagentSource4, ReagentSource5, ReagentSource6, "
- "ReagentSource7, ReagentSource8 FROM spell_reagents WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ReagentCount1, ReagentCount2, ReagentCount3, ReagentCount4, ReagentCount5, ReagentCount6, ReagentCount7, ReagentCount8 FROM spell_reagents"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_REAGENTS, "SELECT MAX(ID) + 1 FROM spell_reagents", CONNECTION_SYNCH);
// SpellReagentsCurrency.db2
@@ -1613,8 +1541,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_REAGENTS_CURRENCY, "SELECT MAX(ID) + 1 FROM spell_reagents_currency", CONNECTION_SYNCH);
// SpellScaling.db2
- PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel FROM spell_scaling"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, Class, MinScalingLevel, MaxScalingLevel, ScalesFromItemLevel, CastTimeMin, "
+ "CastTimeMax, CastTimeMaxLevel, NerfFactor, NerfMaxLevel FROM spell_scaling WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_SCALING, "SELECT MAX(ID) + 1 FROM spell_scaling", CONNECTION_SYNCH);
// SpellShapeshift.db2
@@ -1623,9 +1551,10 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_SHAPESHIFT, "SELECT MAX(ID) + 1 FROM spell_shapeshift", CONNECTION_SYNCH);
// SpellShapeshiftForm.db2
- PrepareStatement(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, CreatureDisplayID, CreatureType, Flags, AttackIconFileID, BonusActionBar, "
- "CombatRoundTime, DamageVariance, MountTypeID, PresetSpellID1, PresetSpellID2, PresetSpellID3, PresetSpellID4, PresetSpellID5, "
- "PresetSpellID6, PresetSpellID7, PresetSpellID8 FROM spell_shapeshift_form WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, Field115052124002, CreatureType, Flags, AttackIconFileID, BonusActionBar, "
+ "CombatRoundTime, DamageVariance, MountTypeID, CreatureDisplayID1, CreatureDisplayID2, CreatureDisplayID3, CreatureDisplayID4, "
+ "PresetSpellID1, PresetSpellID2, PresetSpellID3, PresetSpellID4, PresetSpellID5, PresetSpellID6, PresetSpellID7, PresetSpellID8"
+ " FROM spell_shapeshift_form WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT MAX(ID) + 1 FROM spell_shapeshift_form", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name_lang FROM spell_shapeshift_form_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -1644,25 +1573,25 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SPELL_VISUAL, "SELECT ID, MissileCastOffset1, MissileCastOffset2, MissileCastOffset3, MissileImpactOffset1, "
"MissileImpactOffset2, MissileImpactOffset3, AnimEventSoundID, Flags, MissileAttachment, MissileDestinationAttachment, "
"MissileCastPositionerID, MissileImpactPositionerID, MissileTargetingKit, HostileSpellVisualID, CasterSpellVisualID, SpellVisualMissileSetID, "
- "DamageNumberDelay, LowViolenceSpellVisualID, RaidSpellVisualMissileSetID, ReducedUnexpectedCameraMovementSpellVisualID FROM spell_visual"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "DamageNumberDelay, LowViolenceSpellVisualID, RaidSpellVisualMissileSetID, ReducedUnexpectedCameraMovementSpellVisualID, AreaModel, "
+ "HasMissile FROM spell_visual WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_VISUAL, "SELECT MAX(ID) + 1 FROM spell_visual", CONNECTION_SYNCH);
// SpellVisualEffectName.db2
PrepareStatement(HOTFIX_SEL_SPELL_VISUAL_EFFECT_NAME, "SELECT ID, ModelFileDataID, BaseMissileSpeed, Scale, MinAllowedScale, MaxAllowedScale, "
- "Alpha, Flags, TextureFileDataID, EffectRadius, Type, GenericID, RibbonQualityID, DissolveEffectID, ModelPosition, Unknown901"
+ "Alpha, Flags, TextureFileDataID, EffectRadius, Type, GenericID, RibbonQualityID, DissolveEffectID, ModelPosition"
" FROM spell_visual_effect_name WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_VISUAL_EFFECT_NAME, "SELECT MAX(ID) + 1 FROM spell_visual_effect_name", CONNECTION_SYNCH);
// SpellVisualMissile.db2
PrepareStatement(HOTFIX_SEL_SPELL_VISUAL_MISSILE, "SELECT CastOffset1, CastOffset2, CastOffset3, ImpactOffset1, ImpactOffset2, ImpactOffset3, ID, "
"SpellVisualEffectNameID, SoundEntriesID, Attachment, DestinationAttachment, CastPositionerID, ImpactPositionerID, FollowGroundHeight, "
- "FollowGroundDropSpeed, FollowGroundApproach, Flags, SpellMissileMotionID, AnimKitID, ClutterLevel, DecayTimeAfterImpact, "
- "SpellVisualMissileSetID FROM spell_visual_missile WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "FollowGroundDropSpeed, FollowGroundApproach, Flags, SpellMissileMotionID, AnimKitID, SpellVisualMissileSetID FROM spell_visual_missile"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_VISUAL_MISSILE, "SELECT MAX(ID) + 1 FROM spell_visual_missile", CONNECTION_SYNCH);
// SpellVisualKit.db2
- PrepareStatement(HOTFIX_SEL_SPELL_VISUAL_KIT, "SELECT ID, FallbackPriority, FallbackSpellVisualKitId, DelayMin, DelayMax, Flags1, Flags2"
+ PrepareStatement(HOTFIX_SEL_SPELL_VISUAL_KIT, "SELECT ID, FallbackSpellVisualKitId, DelayMin, DelayMax, FallbackPriority, Flags1, Flags2"
" FROM spell_visual_kit WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_SPELL_VISUAL_KIT, "SELECT MAX(ID) + 1 FROM spell_visual_kit", CONNECTION_SYNCH);
@@ -1683,15 +1612,17 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TACT_KEY, "SELECT MAX(ID) + 1 FROM tact_key", CONNECTION_SYNCH);
// Talent.db2
- PrepareStatement(HOTFIX_SEL_TALENT, "SELECT ID, Description, TierID, Flags, ColumnIndex, ClassID, SpecID, SpellID, OverridesSpellID, "
- "CategoryMask1, CategoryMask2 FROM talent WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TALENT, "SELECT ID, Description, TierID, Flags, ColumnIndex, TabID, ClassID, SpecID, SpellID, OverridesSpellID, "
+ "RequiredSpellID, CategoryMask1, CategoryMask2, SpellRank1, SpellRank2, SpellRank3, SpellRank4, SpellRank5, SpellRank6, SpellRank7, "
+ "SpellRank8, SpellRank9, PrereqTalent1, PrereqTalent2, PrereqTalent3, PrereqRank1, PrereqRank2, PrereqRank3 FROM talent"
+ " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TALENT, "SELECT MAX(ID) + 1 FROM talent", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TALENT, "SELECT ID, Description_lang FROM talent_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// TaxiNodes.db2
PrepareStatement(HOTFIX_SEL_TAXI_NODES, "SELECT Name, PosX, PosY, PosZ, MapOffsetX, MapOffsetY, FlightMapOffsetX, FlightMapOffsetY, ID, "
- "ContinentID, ConditionID, CharacterBitNumber, Flags, UiTextureKitID, MinimapAtlasMemberID, Facing, SpecialIconConditionID, "
- "VisibilityConditionID, MountCreatureID1, MountCreatureID2 FROM taxi_nodes WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ContinentID, ConditionID, CharacterBitNumber, Flags, UiTextureKitID, Facing, SpecialIconConditionID, VisibilityConditionID, "
+ "MountCreatureID1, MountCreatureID2 FROM taxi_nodes WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TAXI_NODES, "SELECT MAX(ID) + 1 FROM taxi_nodes", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TAXI_NODES, "SELECT ID, Name_lang FROM taxi_nodes_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
@@ -1811,7 +1742,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRAIT_NODE_X_TRAIT_NODE_ENTRY, "SELECT MAX(ID) + 1 FROM trait_node_x_trait_node_entry", CONNECTION_SYNCH);
// TraitTree.db2
- PrepareStatement(HOTFIX_SEL_TRAIT_TREE, "SELECT ID, TraitSystemID, Unused1000_1, FirstTraitNodeID, PlayerConditionID, Flags, Unused1000_2, "
+ PrepareStatement(HOTFIX_SEL_TRAIT_TREE, "SELECT ID, TraitSystemID, TraitTreeID, FirstTraitNodeID, PlayerConditionID, Flags, Unused1000_2, "
"Unused1000_3 FROM trait_tree WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRAIT_TREE, "SELECT MAX(ID) + 1 FROM trait_tree", CONNECTION_SYNCH);
@@ -1835,19 +1766,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRAIT_TREE_X_TRAIT_CURRENCY, "SELECT MAX(ID) + 1 FROM trait_tree_x_trait_currency", CONNECTION_SYNCH);
- // TransmogIllusion.db2
- PrepareStatement(HOTFIX_SEL_TRANSMOG_ILLUSION, "SELECT ID, UnlockConditionID, TransmogCost, SpellItemEnchantmentID, Flags FROM transmog_illusion"
- " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRANSMOG_ILLUSION, "SELECT MAX(ID) + 1 FROM transmog_illusion", CONNECTION_SYNCH);
-
// TransmogSet.db2
PrepareStatement(HOTFIX_SEL_TRANSMOG_SET, "SELECT Name, ID, ClassMask, TrackingQuestID, Flags, TransmogSetGroupID, ItemNameDescriptionID, "
- "ParentTransmogSetID, Unknown810, ExpansionID, PatchID, UiOrder, PlayerConditionID FROM transmog_set WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "ParentTransmogSetID, ExpansionID, UiOrder FROM transmog_set WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRANSMOG_SET, "SELECT MAX(ID) + 1 FROM transmog_set", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TRANSMOG_SET, "SELECT ID, Name_lang FROM transmog_set_locale WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
// TransmogSetGroup.db2
- PrepareStatement(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT ID, Name FROM transmog_set_group WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT Name, ID FROM transmog_set_group WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT MAX(ID) + 1 FROM transmog_set_group", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT ID, Name_lang FROM transmog_set_group_locale WHERE (`VerifiedBuild` > 0) = ?"
" AND locale = ?", CONNECTION_SYNCH);
@@ -1880,7 +1806,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_MAX_ID_STMT(HOTFIX_SEL_UI_MAP_ASSIGNMENT, "SELECT MAX(ID) + 1 FROM ui_map_assignment", CONNECTION_SYNCH);
// UiMapLink.db2
- PrepareStatement(HOTFIX_SEL_UI_MAP_LINK, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, ID, ParentUiMapID, OrderIndex, ChildUiMapID, PlayerConditionID, "
+ PrepareStatement(HOTFIX_SEL_UI_MAP_LINK, "SELECT UiMinX, UiMinY, UiMaxX, UiMaxY, ID, ParentUiMapID, OrderIndex, ChildUiMapID, "
"OverrideHighlightFileDataID, OverrideHighlightAtlasID, Flags FROM ui_map_link WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_UI_MAP_LINK, "SELECT MAX(ID) + 1 FROM ui_map_link", CONNECTION_SYNCH);
@@ -1888,15 +1814,6 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_UI_MAP_X_MAP_ART, "SELECT ID, PhaseID, UiMapArtID, UiMapID FROM ui_map_x_map_art WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_UI_MAP_X_MAP_ART, "SELECT MAX(ID) + 1 FROM ui_map_x_map_art", CONNECTION_SYNCH);
- // UiSplashScreen.db2
- PrepareStatement(HOTFIX_SEL_UI_SPLASH_SCREEN, "SELECT ID, Header, TopLeftFeatureTitle, TopLeftFeatureDesc, BottomLeftFeatureTitle, "
- "BottomLeftFeatureDesc, RightFeatureTitle, RightFeatureDesc, AllianceQuestID, HordeQuestID, ScreenType, TextureKitID, SoundKitID, "
- "PlayerConditionID, CharLevelConditionID, RequiredTimeEventPassed FROM ui_splash_screen WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
- PREPARE_MAX_ID_STMT(HOTFIX_SEL_UI_SPLASH_SCREEN, "SELECT MAX(ID) + 1 FROM ui_splash_screen", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_UI_SPLASH_SCREEN, "SELECT ID, Header_lang, TopLeftFeatureTitle_lang, TopLeftFeatureDesc_lang, "
- "BottomLeftFeatureTitle_lang, BottomLeftFeatureDesc_lang, RightFeatureTitle_lang, RightFeatureDesc_lang FROM ui_splash_screen_locale"
- " WHERE (`VerifiedBuild` > 0) = ? AND locale = ?", CONNECTION_SYNCH);
-
// UnitCondition.db2
PrepareStatement(HOTFIX_SEL_UNIT_CONDITION, "SELECT ID, Flags, Variable1, Variable2, Variable3, Variable4, Variable5, Variable6, Variable7, "
"Variable8, Op1, Op2, Op3, Op4, Op5, Op6, Op7, Op8, Value1, Value2, Value3, Value4, Value5, Value6, Value7, Value8 FROM unit_condition"
@@ -1914,8 +1831,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Vehicle.db2
PrepareStatement(HOTFIX_SEL_VEHICLE, "SELECT ID, Flags, FlagsB, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, "
"CameraFadeDistScalarMin, CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, "
- "VehicleUIIndicatorID, MissileTargetingID, VehiclePOITypeID, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, SeatID8, "
- "PowerDisplayID1, PowerDisplayID2, PowerDisplayID3 FROM vehicle WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
+ "VehicleUIIndicatorID, MissileTargetingID, VehiclePOITypeID, UiLocomotionType, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, SeatID6, SeatID7, "
+ "SeatID8, PowerDisplayID1, PowerDisplayID2, PowerDisplayID3 FROM vehicle WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_VEHICLE, "SELECT MAX(ID) + 1 FROM vehicle", CONNECTION_SYNCH);
// VehicleSeat.db2
@@ -1925,9 +1842,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
"ExitPreDelay, ExitSpeed, ExitGravity, ExitMinDuration, ExitMaxDuration, ExitMinArcHeight, ExitMaxArcHeight, ExitAnimStart, ExitAnimLoop, "
"ExitAnimEnd, VehicleEnterAnim, VehicleEnterAnimBone, VehicleExitAnim, VehicleExitAnimBone, VehicleRideAnimLoop, VehicleRideAnimLoopBone, "
"PassengerAttachmentID, PassengerYaw, PassengerPitch, PassengerRoll, VehicleEnterAnimDelay, VehicleExitAnimDelay, VehicleAbilityDisplay, "
- "EnterUISoundID, ExitUISoundID, UiSkinFileDataID, CameraEnteringDelay, CameraEnteringDuration, CameraExitingDelay, CameraExitingDuration, "
- "CameraPosChaseRate, CameraFacingChaseRate, CameraEnteringZoom, CameraSeatZoomMin, CameraSeatZoomMax, EnterAnimKitID, RideAnimKitID, "
- "ExitAnimKitID, VehicleEnterAnimKitID, VehicleRideAnimKitID, VehicleExitAnimKitID, CameraModeID FROM vehicle_seat"
+ "EnterUISoundID, ExitUISoundID, UiSkinFileDataID, UiSkin, CameraEnteringDelay, CameraEnteringDuration, CameraExitingDelay, "
+ "CameraExitingDuration, CameraPosChaseRate, CameraFacingChaseRate, CameraEnteringZoom, CameraSeatZoomMin, CameraSeatZoomMax, EnterAnimKitID, "
+ "RideAnimKitID, ExitAnimKitID, VehicleEnterAnimKitID, VehicleRideAnimKitID, VehicleExitAnimKitID, CameraModeID FROM vehicle_seat"
" WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH);
PREPARE_MAX_ID_STMT(HOTFIX_SEL_VEHICLE_SEAT, "SELECT MAX(ID) + 1 FROM vehicle_seat", CONNECTION_SYNCH);
diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h
index 2df1c260a97..ed9752af0d4 100644
--- a/src/server/database/Database/Implementation/HotfixDatabase.h
+++ b/src/server/database/Database/Implementation/HotfixDatabase.h
@@ -62,6 +62,7 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_AREA_TRIGGER,
HOTFIX_SEL_AREA_TRIGGER_MAX_ID,
+ HOTFIX_SEL_AREA_TRIGGER_LOCALE,
HOTFIX_SEL_ARMOR_LOCATION,
HOTFIX_SEL_ARMOR_LOCATION_MAX_ID,
@@ -141,9 +142,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET,
HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET_MAX_ID,
- HOTFIX_SEL_AZERITE_UNLOCK_MAPPING,
- HOTFIX_SEL_AZERITE_UNLOCK_MAPPING_MAX_ID,
-
HOTFIX_SEL_BANK_BAG_SLOT_PRICES,
HOTFIX_SEL_BANK_BAG_SLOT_PRICES_MAX_ID,
@@ -179,9 +177,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_BROADCAST_TEXT_MAX_ID,
HOTFIX_SEL_BROADCAST_TEXT_LOCALE,
- HOTFIX_SEL_BROADCAST_TEXT_DURATION,
- HOTFIX_SEL_BROADCAST_TEXT_DURATION_MAX_ID,
-
HOTFIX_SEL_CFG_CATEGORIES,
HOTFIX_SEL_CFG_CATEGORIES_MAX_ID,
HOTFIX_SEL_CFG_CATEGORIES_LOCALE,
@@ -189,9 +184,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_CFG_REGIONS,
HOTFIX_SEL_CFG_REGIONS_MAX_ID,
- HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE,
- HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE_MAX_ID,
-
HOTFIX_SEL_CHAR_TITLES,
HOTFIX_SEL_CHAR_TITLES_MAX_ID,
HOTFIX_SEL_CHAR_TITLES_LOCALE,
@@ -266,18 +258,9 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_CONTENT_TUNING,
HOTFIX_SEL_CONTENT_TUNING_MAX_ID,
- HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED,
- HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED_MAX_ID,
-
- HOTFIX_SEL_CONTENT_TUNING_X_LABEL,
- HOTFIX_SEL_CONTENT_TUNING_X_LABEL_MAX_ID,
-
HOTFIX_SEL_CONVERSATION_LINE,
HOTFIX_SEL_CONVERSATION_LINE_MAX_ID,
- HOTFIX_SEL_CORRUPTION_EFFECTS,
- HOTFIX_SEL_CORRUPTION_EFFECTS_MAX_ID,
-
HOTFIX_SEL_CREATURE_DISPLAY_INFO,
HOTFIX_SEL_CREATURE_DISPLAY_INFO_MAX_ID,
@@ -421,9 +404,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_GEM_PROPERTIES,
HOTFIX_SEL_GEM_PROPERTIES_MAX_ID,
- HOTFIX_SEL_GLOBAL_CURVE,
- HOTFIX_SEL_GLOBAL_CURVE_MAX_ID,
-
HOTFIX_SEL_GLYPH_BINDABLE_SPELL,
HOTFIX_SEL_GLYPH_BINDABLE_SPELL_MAX_ID,
@@ -489,15 +469,9 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_ITEM_BONUS,
HOTFIX_SEL_ITEM_BONUS_MAX_ID,
- HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY,
- HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY_MAX_ID,
-
HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA,
HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA_MAX_ID,
- HOTFIX_SEL_ITEM_BONUS_TREE,
- HOTFIX_SEL_ITEM_BONUS_TREE_MAX_ID,
-
HOTFIX_SEL_ITEM_BONUS_TREE_NODE,
HOTFIX_SEL_ITEM_BONUS_TREE_NODE_MAX_ID,
@@ -591,9 +565,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_ITEM_X_BONUS_TREE,
HOTFIX_SEL_ITEM_X_BONUS_TREE_MAX_ID,
- HOTFIX_SEL_ITEM_X_ITEM_EFFECT,
- HOTFIX_SEL_ITEM_X_ITEM_EFFECT_MAX_ID,
-
HOTFIX_SEL_JOURNAL_ENCOUNTER,
HOTFIX_SEL_JOURNAL_ENCOUNTER_MAX_ID,
HOTFIX_SEL_JOURNAL_ENCOUNTER_LOCALE,
@@ -657,9 +628,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_MAP_DIFFICULTY_X_CONDITION_MAX_ID,
HOTFIX_SEL_MAP_DIFFICULTY_X_CONDITION_LOCALE,
- HOTFIX_SEL_MAW_POWER,
- HOTFIX_SEL_MAW_POWER_MAX_ID,
-
HOTFIX_SEL_MODIFIER_TREE,
HOTFIX_SEL_MODIFIER_TREE_MAX_ID,
@@ -729,10 +697,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_PVP_ITEM,
HOTFIX_SEL_PVP_ITEM_MAX_ID,
- HOTFIX_SEL_PVP_STAT,
- HOTFIX_SEL_PVP_STAT_MAX_ID,
- HOTFIX_SEL_PVP_STAT_LOCALE,
-
HOTFIX_SEL_PVP_SEASON,
HOTFIX_SEL_PVP_SEASON_MAX_ID,
@@ -818,7 +782,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_SKILL_LINE_ABILITY,
HOTFIX_SEL_SKILL_LINE_ABILITY_MAX_ID,
- HOTFIX_SEL_SKILL_LINE_ABILITY_LOCALE,
HOTFIX_SEL_SKILL_LINE_X_TRAIT_TREE,
HOTFIX_SEL_SKILL_LINE_X_TRAIT_TREE_MAX_ID,
@@ -826,9 +789,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_SKILL_RACE_CLASS_INFO,
HOTFIX_SEL_SKILL_RACE_CLASS_INFO_MAX_ID,
- HOTFIX_SEL_SOULBIND_CONDUIT_RANK,
- HOTFIX_SEL_SOULBIND_CONDUIT_RANK_MAX_ID,
-
HOTFIX_SEL_SOUND_KIT,
HOTFIX_SEL_SOUND_KIT_MAX_ID,
@@ -1064,9 +1024,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_TRAIT_TREE_X_TRAIT_CURRENCY,
HOTFIX_SEL_TRAIT_TREE_X_TRAIT_CURRENCY_MAX_ID,
- HOTFIX_SEL_TRANSMOG_ILLUSION,
- HOTFIX_SEL_TRANSMOG_ILLUSION_MAX_ID,
-
HOTFIX_SEL_TRANSMOG_SET,
HOTFIX_SEL_TRANSMOG_SET_MAX_ID,
HOTFIX_SEL_TRANSMOG_SET_LOCALE,
@@ -1097,10 +1054,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_UI_MAP_X_MAP_ART,
HOTFIX_SEL_UI_MAP_X_MAP_ART_MAX_ID,
- HOTFIX_SEL_UI_SPLASH_SCREEN,
- HOTFIX_SEL_UI_SPLASH_SCREEN_MAX_ID,
- HOTFIX_SEL_UI_SPLASH_SCREEN_LOCALE,
-
HOTFIX_SEL_UNIT_CONDITION,
HOTFIX_SEL_UNIT_CONDITION_MAX_ID,
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index 64dd27d18e0..048c57c5c84 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -111,13 +111,6 @@ bool AchievementMgr::CanUpdateCriteriaTree(Criteria const* criteria, CriteriaTre
if (referencePlayer->GetSession()->HasPermission(rbac::RBAC_PERM_CANNOT_EARN_REALM_FIRST_ACHIEVEMENTS))
return false;
- if (achievement->CovenantID && referencePlayer->m_playerData->CovenantID != achievement->CovenantID)
- {
- TC_LOG_TRACE("criteria.achievement", "AchievementMgr::CanUpdateCriteriaTree: (Id: {} Type {} Achievement {}) Wrong covenant",
- criteria->ID, CriteriaMgr::GetCriteriaTypeString(criteria->Entry->Type), achievement->ID);
- return false;
- }
-
return CriteriaHandler::CanUpdateCriteriaTree(criteria, tree, referencePlayer);
}
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 8e6d7a84bba..00a5ce547c2 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -2159,8 +2159,8 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
FriendshipReputationEntry const* friendshipReputation = sFriendshipReputationStore.LookupEntry(friendshipRepReaction->FriendshipRepID);
if (!friendshipReputation)
return false;
- if (referencePlayer->GetReputation(friendshipReputation->FactionID) < int32(friendshipRepReaction->ReactionThreshold))
- return false;
+ //if (referencePlayer->GetReputation(friendshipReputation->FactionID) < int32(friendshipRepReaction->ReactionThreshold))
+ // return false;
break;
}
case ModifierTreeType::ReputationWithFactionIsEqualOrGreaterThan: // 95
@@ -3348,6 +3348,10 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
DB2Manager::FriendshipRepReactionSet const* friendshipReactions = sDB2Manager.GetFriendshipRepReactions(reqValue);
if (!friendshipReactions)
return false;
+
+ return false;
+
+ /*
uint32 rank = referencePlayer->GetReputationRank(friendshipReputation->FactionID);
if (rank >= friendshipReactions->size())
return false;
@@ -3355,6 +3359,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
std::advance(itr, rank);
if ((*itr)->ID != reqValue)
return false;
+ */
break;
}
case ModifierTreeType::PlayerAuraStackCountEqual: // 255
diff --git a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp
index e4b0d7b4d2c..562e688dd24 100644
--- a/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp
+++ b/src/server/game/Chat/ChatCommands/ChatCommandArgs.cpp
@@ -115,9 +115,7 @@ struct SpellInfoVisitor
using value_type = SpellInfo const*;
value_type operator()(Hyperlink<apower> artifactPower) const { return operator()(artifactPower->ArtifactPower->SpellID); }
- value_type operator()(Hyperlink<conduit> soulbindConduit) const { return operator()((*soulbindConduit)->SpellID); }
value_type operator()(Hyperlink<enchant> enchant) const { return enchant; }
- value_type operator()(Hyperlink<mawpower> mawPower) const { return operator()((*mawPower)->SpellID); }
value_type operator()(Hyperlink<mount> const& mount) const { return mount->Spell; }
value_type operator()(Hyperlink<pvptal> pvpTalent) const { return operator()((*pvpTalent)->SpellID); }
value_type operator()(Hyperlink<spell> spell) const { return spell->Spell; }
@@ -128,7 +126,7 @@ struct SpellInfoVisitor
};
ChatCommandResult Trinity::Impl::ChatCommands::ArgInfo<SpellInfo const*>::TryConsume(SpellInfo const*& data, ChatHandler const* handler, std::string_view args)
{
- Variant<Hyperlink<apower>, Hyperlink<conduit>, Hyperlink<enchant>, Hyperlink<mawpower>, Hyperlink<mount>, Hyperlink<pvptal>, Hyperlink<spell>, Hyperlink<talent>, Hyperlink<trade>, uint32> val;
+ Variant<Hyperlink<apower>, Hyperlink<enchant>, Hyperlink<mount>, Hyperlink<pvptal>, Hyperlink<spell>, Hyperlink<talent>, Hyperlink<trade>, uint32> val;
ChatCommandResult result = ArgInfo<decltype(val)>::TryConsume(val, handler, args);
if (!result || (data = val.visit(SpellInfoVisitor())))
return result;
diff --git a/src/server/game/Chat/HyperlinkTags.cpp b/src/server/game/Chat/HyperlinkTags.cpp
index 64ce77b3f2d..58a16880de7 100644
--- a/src/server/game/Chat/HyperlinkTags.cpp
+++ b/src/server/game/Chat/HyperlinkTags.cpp
@@ -154,15 +154,6 @@ bool Trinity::Hyperlinks::LinkTags::battlePetAbil::StoreTo(BattlePetAbilLinkData
&& t.IsEmpty();
}
-bool Trinity::Hyperlinks::LinkTags::conduit::StoreTo(SoulbindConduitRankEntry const*& val, std::string_view text)
-{
- HyperlinkDataTokenizer t(text);
- uint32 soulbindConduitId, rank;
- if (!(t.TryConsumeTo(soulbindConduitId) && t.TryConsumeTo(rank) && t.IsEmpty()))
- return false;
- return !!(val = sDB2Manager.GetSoulbindConduitRank(soulbindConduitId, rank));
-}
-
bool Trinity::Hyperlinks::LinkTags::currency::StoreTo(CurrencyLinkData& val, std::string_view text)
{
HyperlinkDataTokenizer t(text);
@@ -406,15 +397,6 @@ bool Trinity::Hyperlinks::LinkTags::keystone::StoreTo(KeystoneLinkData& val, std
return true;
}
-bool Trinity::Hyperlinks::LinkTags::mawpower::StoreTo(MawPowerEntry const*& val, std::string_view text)
-{
- HyperlinkDataTokenizer t(text);
- uint32 mawPowerId;
- if (!t.TryConsumeTo(mawPowerId))
- return false;
- return !!(val = sMawPowerStore.LookupEntry(mawPowerId)) && t.IsEmpty();
-}
-
bool Trinity::Hyperlinks::LinkTags::mount::StoreTo(MountLinkData& val, std::string_view text)
{
HyperlinkDataTokenizer t(text);
@@ -502,16 +484,6 @@ bool Trinity::Hyperlinks::LinkTags::transmogappearance::StoreTo(ItemModifiedAppe
return !!(val = sItemModifiedAppearanceStore.LookupEntry(itemModifiedAppearanceId)) && t.IsEmpty();
}
-bool Trinity::Hyperlinks::LinkTags::transmogillusion::StoreTo(SpellItemEnchantmentEntry const*& val, std::string_view text)
-{
- HyperlinkDataTokenizer t(text);
- uint32 spellItemEnchantmentId;
- if (!t.TryConsumeTo(spellItemEnchantmentId))
- return false;
- return !!(val = sSpellItemEnchantmentStore.LookupEntry(spellItemEnchantmentId))
- && sDB2Manager.GetTransmogIllusionForEnchantment(spellItemEnchantmentId) && t.IsEmpty();
-}
-
bool Trinity::Hyperlinks::LinkTags::transmogset::StoreTo(TransmogSetEntry const*& val, std::string_view text)
{
HyperlinkDataTokenizer t(text);
diff --git a/src/server/game/Chat/Hyperlinks.cpp b/src/server/game/Chat/Hyperlinks.cpp
index 2d991fd05bf..d15a17f2c6d 100644
--- a/src/server/game/Chat/Hyperlinks.cpp
+++ b/src/server/game/Chat/Hyperlinks.cpp
@@ -234,22 +234,6 @@ struct LinkValidator<LinkTags::battlePetAbil>
};
template <>
-struct LinkValidator<LinkTags::conduit>
-{
- static bool IsTextValid(SoulbindConduitRankEntry const* rank, std::string_view text)
- {
- if (SpellInfo const* info = sSpellMgr->GetSpellInfo(rank->SpellID, DIFFICULTY_NONE))
- return LinkValidator<LinkTags::spell>::IsTextValid(info, text);
- return false;
- }
-
- static bool IsColorValid(SoulbindConduitRankEntry const*, HyperlinkColor c)
- {
- return c == CHAT_LINK_COLOR_SPELL;
- }
-};
-
-template <>
struct LinkValidator<LinkTags::currency>
{
static bool IsTextValid(CurrencyLinkData const& data, std::string_view text)
@@ -498,22 +482,6 @@ struct LinkValidator<LinkTags::quest>
};
template <>
-struct LinkValidator<LinkTags::mawpower>
-{
- static bool IsTextValid(MawPowerEntry const* mawPower, std::string_view text)
- {
- if (SpellInfo const* info = sSpellMgr->GetSpellInfo(mawPower->SpellID, DIFFICULTY_NONE))
- return LinkValidator<LinkTags::spell>::IsTextValid(info, text);
- return false;
- }
-
- static bool IsColorValid(MawPowerEntry const*, HyperlinkColor c)
- {
- return c == CHAT_LINK_COLOR_SPELL;
- }
-};
-
-template <>
struct LinkValidator<LinkTags::mount>
{
static bool IsTextValid(MountLinkData const& data, std::string_view text)
@@ -604,26 +572,6 @@ struct LinkValidator<LinkTags::transmogappearance>
};
template <>
-struct LinkValidator<LinkTags::transmogillusion>
-{
- static bool IsTextValid(SpellItemEnchantmentEntry const* enchantment, std::string_view text)
- {
- for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1))
- if (enchantment->Name[i] == text)
- return true;
- for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1))
- if (enchantment->HordeName[i] == text)
- return true;
- return false;
- }
-
- static bool IsColorValid(SpellItemEnchantmentEntry const*, HyperlinkColor c)
- {
- return c == CHAT_LINK_COLOR_TRANSMOG;
- }
-};
-
-template <>
struct LinkValidator<LinkTags::transmogset>
{
static bool IsTextValid(TransmogSetEntry const* set, std::string_view text)
@@ -698,7 +646,6 @@ static bool ValidateLinkInfo(HyperlinkInfo const& info)
TryValidateAs(battlePetAbil);
TryValidateAs(clubFinder);
TryValidateAs(clubTicket);
- TryValidateAs(conduit);
TryValidateAs(creature);
TryValidateAs(creature_entry);
TryValidateAs(currency);
@@ -715,7 +662,6 @@ static bool ValidateLinkInfo(HyperlinkInfo const& info)
TryValidateAs(itemset);
TryValidateAs(journal);
TryValidateAs(keystone);
- TryValidateAs(mawpower);
TryValidateAs(mount);
TryValidateAs(outfit);
TryValidateAs(player);
@@ -730,7 +676,6 @@ static bool ValidateLinkInfo(HyperlinkInfo const& info)
TryValidateAs(title);
TryValidateAs(trade);
TryValidateAs(transmogappearance);
- TryValidateAs(transmogillusion);
TryValidateAs(transmogset);
TryValidateAs(worldmap);
return false;
diff --git a/src/server/game/Chat/Hyperlinks.h b/src/server/game/Chat/Hyperlinks.h
index 8adb96187f9..d25d796b55a 100644
--- a/src/server/game/Chat/Hyperlinks.h
+++ b/src/server/game/Chat/Hyperlinks.h
@@ -42,11 +42,9 @@ struct ItemTemplate;
struct LocalizedString;
struct MapEntry;
struct MapChallengeModeEntry;
-struct MawPowerEntry;
struct PvpTalentEntry;
class Quest;
struct SkillLineEntry;
-struct SoulbindConduitRankEntry;
class SpellInfo;
struct SpellItemEnchantmentEntry;
struct TalentEntry;
@@ -368,13 +366,6 @@ namespace Trinity::Hyperlinks
static bool StoreTo(BattlePetAbilLinkData& val, std::string_view text);
};
- struct TC_GAME_API conduit
- {
- using value_type = SoulbindConduitRankEntry const*;
- static constexpr std::string_view tag() { return "conduit"; }
- static bool StoreTo(SoulbindConduitRankEntry const*& val, std::string_view text);
- };
-
struct TC_GAME_API currency
{
using value_type = CurrencyLinkData const&;
@@ -445,13 +436,6 @@ namespace Trinity::Hyperlinks
static bool StoreTo(KeystoneLinkData& val, std::string_view text);
};
- struct TC_GAME_API mawpower
- {
- using value_type = MawPowerEntry const*;
- static constexpr std::string_view tag() { return "mawpower"; }
- static bool StoreTo(MawPowerEntry const*& val, std::string_view text);
- };
-
struct TC_GAME_API mount
{
using value_type = MountLinkData const&;
@@ -508,13 +492,6 @@ namespace Trinity::Hyperlinks
static bool StoreTo(ItemModifiedAppearanceEntry const*& val, std::string_view text);
};
- struct TC_GAME_API transmogillusion
- {
- using value_type = SpellItemEnchantmentEntry const*;
- static constexpr std::string_view tag() { return "transmogillusion"; }
- static bool StoreTo(SpellItemEnchantmentEntry const*& val, std::string_view text);
- };
-
struct TC_GAME_API transmogset
{
using value_type = TransmogSetEntry const*;
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 48d22c458f4..4dd0aeec1e5 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -2824,31 +2824,6 @@ uint32 ConditionMgr::GetPlayerConditionLfgValue(Player const* player, PlayerCond
bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditionEntry const* condition)
{
- if (Optional<ContentTuningLevels> levels = sDB2Manager.GetContentTuningData(condition->ContentTuningID, player->m_playerData->CtrOptions->ContentTuningConditionMask))
- {
- uint8 minLevel = condition->Flags & 0x800 ? levels->MinLevelWithDelta : levels->MinLevel;
- uint8 maxLevel = 0;
- if (!(condition->Flags & 0x20))
- maxLevel = condition->Flags & 0x800 ? levels->MaxLevelWithDelta : levels->MaxLevel;
-
- if (condition->Flags & 0x80)
- {
- if (minLevel && player->GetLevel() >= minLevel && (!maxLevel || player->GetLevel() <= maxLevel))
- return false;
-
- if (maxLevel && player->GetLevel() <= maxLevel && (!minLevel || player->GetLevel() >= minLevel))
- return false;
- }
- else
- {
- if (minLevel && player->GetLevel() < minLevel)
- return false;
-
- if (maxLevel && player->GetLevel() > maxLevel)
- return false;
- }
- }
-
if (!condition->RaceMask.IsEmpty() && !condition->RaceMask.HasRace(player->GetRace()))
return false;
@@ -3243,49 +3218,6 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
if (condition->ModifierTreeID && !player->ModifierTreeSatisfied(condition->ModifierTreeID))
return false;
- if (condition->CovenantID && player->m_playerData->CovenantID != condition->CovenantID)
- return false;
-
- if (std::any_of(condition->TraitNodeEntryID.begin(), condition->TraitNodeEntryID.end(), [](int32 traitNodeEntryId) { return traitNodeEntryId != 0; }))
- {
- auto getTraitNodeEntryRank = [player](int32 traitNodeEntryId) -> Optional<uint16>
- {
- for (UF::TraitConfig const& traitConfig : player->m_activePlayerData->TraitConfigs)
- {
- if (TraitConfigType(*traitConfig.Type) == TraitConfigType::Combat)
- {
- if (int32(*player->m_activePlayerData->ActiveCombatTraitConfigID) != traitConfig.ID
- || !EnumFlag(TraitCombatConfigFlags(*traitConfig.CombatConfigFlags)).HasFlag(TraitCombatConfigFlags::ActiveForSpec))
- continue;
- }
-
- for (UF::TraitEntry const& traitEntry : traitConfig.Entries)
- if (traitEntry.TraitNodeEntryID == traitNodeEntryId)
- return traitEntry.Rank;
- }
- return {};
- };
-
- std::array<bool, std::tuple_size_v<decltype(condition->TraitNodeEntryID)>> results;
- results.fill(true);
- for (std::size_t i = 0; i < condition->TraitNodeEntryID.size(); ++i)
- {
- if (!condition->TraitNodeEntryID[i])
- continue;
-
- Optional<int32> rank = getTraitNodeEntryRank(condition->TraitNodeEntryID[i]);
- if (!rank)
- results[i] = false;
- else if (condition->TraitNodeEntryMinRank[i] && rank < condition->TraitNodeEntryMinRank[i])
- results[i] = false;
- else if (condition->TraitNodeEntryMaxRank[i] && rank > condition->TraitNodeEntryMaxRank[i])
- results[i] = false;
- }
-
- if (!PlayerConditionLogic(condition->TraitNodeEntryLogic, results))
- return false;
- }
-
return true;
}
diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h
index d051c0fa472..d8347263cce 100644
--- a/src/server/game/DataStores/DB2LoadInfo.h
+++ b/src/server/game/DataStores/DB2LoadInfo.h
@@ -26,7 +26,7 @@
struct AchievementLoadInfo
{
- static constexpr DB2FieldMeta Fields[17] =
+ static constexpr DB2FieldMeta Fields[15] =
{
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "Title" },
@@ -41,13 +41,11 @@ struct AchievementLoadInfo
{ true, FT_INT, "Flags" },
{ true, FT_SHORT, "UiOrder" },
{ true, FT_INT, "IconFileID" },
- { true, FT_INT, "RewardItemID" },
{ false, FT_INT, "CriteriaTree" },
{ true, FT_SHORT, "SharesCriteria" },
- { true, FT_INT, "CovenantID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 17, &AchievementMeta::Instance, HOTFIX_SEL_ACHIEVEMENT };
+ static constexpr DB2LoadInfo Instance{ Fields, 15, &AchievementMeta::Instance, HOTFIX_SEL_ACHIEVEMENT };
};
struct AchievementCategoryLoadInfo
@@ -79,14 +77,14 @@ struct AdventureJournalLoadInfo
{ false, FT_BYTE, "ButtonActionType" },
{ true, FT_INT, "TextureFileDataID" },
{ false, FT_SHORT, "LfgDungeonID" },
- { true, FT_INT, "QuestID" },
+ { false, FT_INT, "QuestID" },
{ false, FT_SHORT, "BattleMasterListID" },
{ false, FT_BYTE, "PriorityMin" },
{ false, FT_BYTE, "PriorityMax" },
{ true, FT_INT, "ItemID" },
{ false, FT_INT, "ItemQuantity" },
{ false, FT_SHORT, "CurrencyType" },
- { false, FT_INT, "CurrencyQuantity" },
+ { false, FT_BYTE, "CurrencyQuantity" },
{ false, FT_SHORT, "UiMapID" },
{ false, FT_INT, "BonusPlayerConditionID1" },
{ false, FT_INT, "BonusPlayerConditionID2" },
@@ -176,6 +174,7 @@ struct AreaTableLoadInfo
{ false, FT_SHORT, "UwAmbience" },
{ false, FT_SHORT, "ZoneMusic" },
{ false, FT_SHORT, "UwZoneMusic" },
+ { true, FT_BYTE, "ExplorationLevel" },
{ false, FT_SHORT, "IntroSound" },
{ false, FT_INT, "UwIntroSound" },
{ false, FT_BYTE, "FactionGroupMask" },
@@ -185,7 +184,6 @@ struct AreaTableLoadInfo
{ false, FT_BYTE, "WildBattlePetLevelMin" },
{ false, FT_BYTE, "WildBattlePetLevelMax" },
{ false, FT_BYTE, "WindSettingsID" },
- { true, FT_INT, "ContentTuningID" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
{ false, FT_SHORT, "LiquidTypeID1" },
@@ -199,8 +197,9 @@ struct AreaTableLoadInfo
struct AreaTriggerLoadInfo
{
- static constexpr DB2FieldMeta Fields[17] =
+ static constexpr DB2FieldMeta Fields[18] =
{
+ { false, FT_STRING, "Message" },
{ false, FT_FLOAT, "PosX" },
{ false, FT_FLOAT, "PosY" },
{ false, FT_FLOAT, "PosZ" },
@@ -216,11 +215,11 @@ struct AreaTriggerLoadInfo
{ false, FT_FLOAT, "BoxYaw" },
{ true, FT_BYTE, "ShapeType" },
{ true, FT_SHORT, "ShapeID" },
- { true, FT_INT, "AreaTriggerActionSetID" },
+ { true, FT_SHORT, "AreaTriggerActionSetID" },
{ true, FT_BYTE, "Flags" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 17, &AreaTriggerMeta::Instance, HOTFIX_SEL_AREA_TRIGGER };
+ static constexpr DB2LoadInfo Instance{ Fields, 18, &AreaTriggerMeta::Instance, HOTFIX_SEL_AREA_TRIGGER };
};
struct ArmorLocationLoadInfo
@@ -260,7 +259,7 @@ struct ArtifactLoadInfo
struct ArtifactAppearanceLoadInfo
{
- static constexpr DB2FieldMeta Fields[16] =
+ static constexpr DB2FieldMeta Fields[15] =
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
@@ -277,10 +276,9 @@ struct ArtifactAppearanceLoadInfo
{ false, FT_INT, "UiAltItemAppearanceID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_SHORT, "UiCameraID" },
- { false, FT_INT, "UsablePlayerConditionID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 16, &ArtifactAppearanceMeta::Instance, HOTFIX_SEL_ARTIFACT_APPEARANCE };
+ static constexpr DB2LoadInfo Instance{ Fields, 15, &ArtifactAppearanceMeta::Instance, HOTFIX_SEL_ARTIFACT_APPEARANCE };
};
struct ArtifactAppearanceSetLoadInfo
@@ -547,7 +545,7 @@ struct AzeritePowerSetMemberLoadInfo
{ true, FT_INT, "AzeritePowerSetID" },
{ true, FT_INT, "AzeritePowerID" },
{ true, FT_INT, "Class" },
- { true, FT_BYTE, "Tier" },
+ { false, FT_BYTE, "Tier" },
{ true, FT_INT, "OrderIndex" },
};
@@ -579,21 +577,6 @@ struct AzeriteTierUnlockSetLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 2, &AzeriteTierUnlockSetMeta::Instance, HOTFIX_SEL_AZERITE_TIER_UNLOCK_SET };
};
-struct AzeriteUnlockMappingLoadInfo
-{
- static constexpr DB2FieldMeta Fields[6] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "ItemLevel" },
- { true, FT_INT, "ItemBonusListHead" },
- { true, FT_INT, "ItemBonusListShoulders" },
- { true, FT_INT, "ItemBonusListChest" },
- { false, FT_INT, "AzeriteUnlockMappingSetID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 6, &AzeriteUnlockMappingMeta::Instance, HOTFIX_SEL_AZERITE_UNLOCK_MAPPING };
-};
-
struct BankBagSlotPricesLoadInfo
{
static constexpr DB2FieldMeta Fields[2] =
@@ -622,9 +605,9 @@ struct BarberShopStyleLoadInfo
{
static constexpr DB2FieldMeta Fields[8] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "DisplayName" },
{ false, FT_STRING, "Description" },
+ { false, FT_INT, "ID" },
{ false, FT_BYTE, "Type" },
{ false, FT_FLOAT, "CostModifier" },
{ false, FT_BYTE, "Race" },
@@ -654,15 +637,14 @@ struct BattlePetAbilityLoadInfo
struct BattlePetBreedQualityLoadInfo
{
- static constexpr DB2FieldMeta Fields[4] =
+ static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "MaxQualityRoll" },
{ false, FT_FLOAT, "StateMultiplier" },
{ true, FT_BYTE, "QualityEnum" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 4, &BattlePetBreedQualityMeta::Instance, HOTFIX_SEL_BATTLE_PET_BREED_QUALITY };
+ static constexpr DB2LoadInfo Instance{ Fields, 3, &BattlePetBreedQualityMeta::Instance, HOTFIX_SEL_BATTLE_PET_BREED_QUALITY };
};
struct BattlePetBreedStateLoadInfo
@@ -670,7 +652,7 @@ struct BattlePetBreedStateLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "BattlePetStateID" },
+ { false, FT_BYTE, "BattlePetStateID" },
{ false, FT_SHORT, "Value" },
{ false, FT_INT, "BattlePetBreedID" },
};
@@ -680,7 +662,7 @@ struct BattlePetBreedStateLoadInfo
struct BattlePetSpeciesLoadInfo
{
- static constexpr DB2FieldMeta Fields[12] =
+ static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "SourceText" },
@@ -688,15 +670,14 @@ struct BattlePetSpeciesLoadInfo
{ true, FT_INT, "CreatureID" },
{ true, FT_INT, "SummonSpellID" },
{ true, FT_INT, "IconFileDataID" },
- { true, FT_BYTE, "PetTypeEnum" },
+ { false, FT_BYTE, "PetTypeEnum" },
{ true, FT_INT, "Flags" },
{ true, FT_BYTE, "SourceTypeEnum" },
{ true, FT_INT, "CardUIModelSceneID" },
{ true, FT_INT, "LoadoutUIModelSceneID" },
- { true, FT_INT, "CovenantID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 12, &BattlePetSpeciesMeta::Instance, HOTFIX_SEL_BATTLE_PET_SPECIES };
+ static constexpr DB2LoadInfo Instance{ Fields, 11, &BattlePetSpeciesMeta::Instance, HOTFIX_SEL_BATTLE_PET_SPECIES };
};
struct BattlePetSpeciesStateLoadInfo
@@ -704,7 +685,7 @@ struct BattlePetSpeciesStateLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "BattlePetStateID" },
+ { false, FT_BYTE, "BattlePetStateID" },
{ true, FT_INT, "Value" },
{ false, FT_INT, "BattlePetSpeciesID" },
};
@@ -730,7 +711,7 @@ struct BattlemasterListLoadInfo
{ true, FT_BYTE, "GroupsAllowed" },
{ true, FT_BYTE, "MaxGroupSize" },
{ true, FT_SHORT, "HolidayWorldState" },
- { true, FT_INT, "Flags" },
+ { true, FT_BYTE, "Flags" },
{ true, FT_INT, "IconFileDataID" },
{ true, FT_INT, "RequiredPlayerConditionID" },
{ true, FT_SHORT, "MapID1" },
@@ -780,19 +761,6 @@ struct BroadcastTextLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 17, &BroadcastTextMeta::Instance, HOTFIX_SEL_BROADCAST_TEXT };
};
-struct BroadcastTextDurationLoadInfo
-{
- static constexpr DB2FieldMeta Fields[4] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "BroadcastTextID" },
- { true, FT_INT, "Locale" },
- { true, FT_INT, "Duration" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 4, &BroadcastTextDurationMeta::Instance, HOTFIX_SEL_BROADCAST_TEXT_DURATION };
-};
-
struct CfgCategoriesLoadInfo
{
static constexpr DB2FieldMeta Fields[7] =
@@ -824,23 +792,6 @@ struct CfgRegionsLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 6, &Cfg_RegionsMeta::Instance, HOTFIX_SEL_CFG_REGIONS };
};
-struct ChallengeModeItemBonusOverrideLoadInfo
-{
- static constexpr DB2FieldMeta Fields[8] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "ItemBonusTreeGroupID" },
- { true, FT_INT, "DstItemBonusTreeID" },
- { true, FT_BYTE, "Type" },
- { true, FT_INT, "Value" },
- { true, FT_INT, "MythicPlusSeasonID" },
- { true, FT_INT, "PvPSeasonID" },
- { false, FT_INT, "SrcItemBonusTreeID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 8, &ChallengeModeItemBonusOverrideMeta::Instance, HOTFIX_SEL_CHALLENGE_MODE_ITEM_BONUS_OVERRIDE };
-};
-
struct CharTitlesLoadInfo
{
static constexpr DB2FieldMeta Fields[5] =
@@ -859,8 +810,8 @@ struct CharacterLoadoutLoadInfo
{
static constexpr DB2FieldMeta Fields[5] =
{
- { false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
+ { false, FT_INT, "ID" },
{ true, FT_BYTE, "ChrClassID" },
{ true, FT_INT, "Purpose" },
{ true, FT_BYTE, "ItemContext" },
@@ -885,9 +836,9 @@ struct ChatChannelsLoadInfo
{
static constexpr DB2FieldMeta Fields[6] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Shortcut" },
+ { false, FT_INT, "ID" },
{ true, FT_INT, "Flags" },
{ true, FT_BYTE, "FactionGroup" },
{ true, FT_INT, "Ruleset" },
@@ -911,50 +862,36 @@ struct ChrClassUiDisplayLoadInfo
struct ChrClassesLoadInfo
{
- static constexpr DB2FieldMeta Fields[39] =
+ static constexpr DB2FieldMeta Fields[25] =
{
{ false, FT_STRING, "Name" },
{ false, FT_STRING_NOT_LOCALIZED, "Filename" },
{ false, FT_STRING, "NameMale" },
{ false, FT_STRING, "NameFemale" },
{ false, FT_STRING_NOT_LOCALIZED, "PetNameToken" },
- { false, FT_STRING, "Description" },
- { false, FT_STRING, "RoleInfoString" },
- { false, FT_STRING, "DisabledString" },
- { false, FT_STRING, "HyphenatedNameMale" },
- { false, FT_STRING, "HyphenatedNameFemale" },
{ false, FT_INT, "ID" },
{ false, FT_INT, "CreateScreenFileDataID" },
{ false, FT_INT, "SelectScreenFileDataID" },
{ false, FT_INT, "IconFileDataID" },
{ false, FT_INT, "LowResScreenFileDataID" },
{ true, FT_INT, "Flags" },
- { false, FT_INT, "SpellTextureBlobFileDataID" },
+ { true, FT_INT, "StartingLevel" },
{ false, FT_INT, "ArmorTypeMask" },
- { true, FT_INT, "CharStartKitUnknown901" },
- { true, FT_INT, "MaleCharacterCreationVisualFallback" },
- { true, FT_INT, "MaleCharacterCreationIdleVisualFallback" },
- { true, FT_INT, "FemaleCharacterCreationVisualFallback" },
- { true, FT_INT, "FemaleCharacterCreationIdleVisualFallback" },
- { true, FT_INT, "CharacterCreationIdleGroundVisualFallback" },
- { true, FT_INT, "CharacterCreationGroundVisualFallback" },
- { true, FT_INT, "AlteredFormCharacterCreationIdleVisualFallback" },
- { true, FT_INT, "CharacterCreationAnimLoopWaitTimeMsFallback" },
{ false, FT_SHORT, "CinematicSequenceID" },
{ false, FT_SHORT, "DefaultSpec" },
+ { false, FT_BYTE, "HasStrengthAttackBonus" },
{ false, FT_BYTE, "PrimaryStatPriority" },
{ false, FT_BYTE, "DisplayPower" },
{ false, FT_BYTE, "RangedAttackPowerPerAgility" },
{ false, FT_BYTE, "AttackPowerPerAgility" },
{ false, FT_BYTE, "AttackPowerPerStrength" },
{ false, FT_BYTE, "SpellClassSet" },
- { false, FT_BYTE, "ClassColorR" },
- { false, FT_BYTE, "ClassColorG" },
- { false, FT_BYTE, "ClassColorB" },
{ false, FT_BYTE, "RolesMask" },
+ { false, FT_BYTE, "DamageBonusStat" },
+ { false, FT_BYTE, "HasRelicSlot" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 39, &ChrClassesMeta::Instance, HOTFIX_SEL_CHR_CLASSES };
+ static constexpr DB2LoadInfo Instance{ Fields, 25, &ChrClassesMeta::Instance, HOTFIX_SEL_CHR_CLASSES };
};
struct ChrClassesXPowerTypesLoadInfo
@@ -1030,7 +967,7 @@ struct ChrCustomizationElementLoadInfo
struct ChrCustomizationOptionLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[12] =
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
@@ -1044,19 +981,18 @@ struct ChrCustomizationOptionLoadInfo
{ true, FT_INT, "ChrCustomizationID" },
{ true, FT_INT, "ChrCustomizationReqID" },
{ true, FT_INT, "UiOrderIndex" },
- { true, FT_INT, "AddedInPatch" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 13, &ChrCustomizationOptionMeta::Instance, HOTFIX_SEL_CHR_CUSTOMIZATION_OPTION };
+ static constexpr DB2LoadInfo Instance{ Fields, 12, &ChrCustomizationOptionMeta::Instance, HOTFIX_SEL_CHR_CUSTOMIZATION_OPTION };
};
struct ChrCustomizationReqLoadInfo
{
static constexpr DB2FieldMeta Fields[9] =
{
- { false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
{ false, FT_STRING, "ReqSource" },
+ { false, FT_INT, "ID" },
{ true, FT_INT, "Flags" },
{ true, FT_INT, "ClassMask" },
{ true, FT_INT, "AchievementID" },
@@ -1126,7 +1062,7 @@ struct ChrRaceXChrModelLoadInfo
struct ChrRacesLoadInfo
{
- static constexpr DB2FieldMeta Fields[63] =
+ static constexpr DB2FieldMeta Fields[68] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "ClientPrefix" },
@@ -1145,35 +1081,29 @@ struct ChrRacesLoadInfo
{ false, FT_STRING, "ShortNameLower" },
{ false, FT_STRING, "ShortNameLowerFemale" },
{ true, FT_INT, "Flags" },
- { true, FT_INT, "FactionID" },
- { true, FT_INT, "CinematicSequenceID" },
+ { false, FT_INT, "MaleDisplayID" },
+ { false, FT_INT, "FemaleDisplayID" },
+ { false, FT_INT, "HighResMaleDisplayID" },
+ { false, FT_INT, "HighResFemaleDisplayID" },
{ true, FT_INT, "ResSicknessSpellID" },
{ true, FT_INT, "SplashSoundID" },
- { true, FT_INT, "Alliance" },
- { true, FT_INT, "RaceRelated" },
- { true, FT_INT, "UnalteredVisualRaceID" },
- { true, FT_INT, "DefaultClassID" },
{ true, FT_INT, "CreateScreenFileDataID" },
{ true, FT_INT, "SelectScreenFileDataID" },
- { true, FT_INT, "NeutralRaceID" },
{ true, FT_INT, "LowResScreenFileDataID" },
- { true, FT_INT, "AlteredFormStartVisualKitID1" },
- { true, FT_INT, "AlteredFormStartVisualKitID2" },
- { true, FT_INT, "AlteredFormStartVisualKitID3" },
- { true, FT_INT, "AlteredFormFinishVisualKitID1" },
- { true, FT_INT, "AlteredFormFinishVisualKitID2" },
- { true, FT_INT, "AlteredFormFinishVisualKitID3" },
+ { false, FT_INT, "AlteredFormStartVisualKitID1" },
+ { false, FT_INT, "AlteredFormStartVisualKitID2" },
+ { false, FT_INT, "AlteredFormStartVisualKitID3" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID1" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID2" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID3" },
{ true, FT_INT, "HeritageArmorAchievementID" },
{ true, FT_INT, "StartingLevel" },
{ true, FT_INT, "UiDisplayOrder" },
- { true, FT_INT, "MaleModelFallbackRaceID" },
- { true, FT_INT, "FemaleModelFallbackRaceID" },
- { true, FT_INT, "MaleTextureFallbackRaceID" },
- { true, FT_INT, "FemaleTextureFallbackRaceID" },
{ true, FT_INT, "PlayableRaceBit" },
+ { true, FT_INT, "FemaleSkeletonFileDataID" },
+ { true, FT_INT, "MaleSkeletonFileDataID" },
{ true, FT_INT, "HelmetAnimScalingRaceID" },
{ true, FT_INT, "TransmogrifyDisabledSlotMask" },
- { true, FT_INT, "UnalteredVisualCustomizationRaceID" },
{ false, FT_FLOAT, "AlteredFormCustomizeOffsetFallback1" },
{ false, FT_FLOAT, "AlteredFormCustomizeOffsetFallback2" },
{ false, FT_FLOAT, "AlteredFormCustomizeOffsetFallback3" },
@@ -1184,16 +1114,27 @@ struct ChrRacesLoadInfo
{ false, FT_FLOAT, "Unknown910_21" },
{ false, FT_FLOAT, "Unknown910_22" },
{ false, FT_FLOAT, "Unknown910_23" },
- { true, FT_INT, "Unknown1000" },
+ { true, FT_SHORT, "FactionID" },
+ { true, FT_SHORT, "CinematicSequenceID" },
{ true, FT_BYTE, "BaseLanguage" },
{ true, FT_BYTE, "CreatureType" },
+ { true, FT_BYTE, "Alliance" },
+ { true, FT_BYTE, "RaceRelated" },
+ { true, FT_BYTE, "UnalteredVisualRaceID" },
+ { true, FT_BYTE, "DefaultClassID" },
+ { true, FT_BYTE, "NeutralRaceID" },
+ { true, FT_BYTE, "MaleModelFallbackRaceID" },
{ true, FT_BYTE, "MaleModelFallbackSex" },
+ { true, FT_BYTE, "FemaleModelFallbackRaceID" },
{ true, FT_BYTE, "FemaleModelFallbackSex" },
+ { true, FT_BYTE, "MaleTextureFallbackRaceID" },
{ true, FT_BYTE, "MaleTextureFallbackSex" },
+ { true, FT_BYTE, "FemaleTextureFallbackRaceID" },
{ true, FT_BYTE, "FemaleTextureFallbackSex" },
+ { true, FT_BYTE, "UnalteredVisualCustomizationRaceID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 63, &ChrRacesMeta::Instance, HOTFIX_SEL_CHR_RACES };
+ static constexpr DB2LoadInfo Instance{ Fields, 68, &ChrRacesMeta::Instance, HOTFIX_SEL_CHR_RACES };
};
struct ChrSpecializationLoadInfo
@@ -1221,7 +1162,7 @@ struct ChrSpecializationLoadInfo
struct CinematicCameraLoadInfo
{
- static constexpr DB2FieldMeta Fields[8] =
+ static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "OriginX" },
@@ -1230,10 +1171,9 @@ struct CinematicCameraLoadInfo
{ false, FT_INT, "SoundID" },
{ false, FT_FLOAT, "OriginFacing" },
{ false, FT_INT, "FileDataID" },
- { false, FT_INT, "ConversationID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 8, &CinematicCameraMeta::Instance, HOTFIX_SEL_CINEMATIC_CAMERA };
+ static constexpr DB2LoadInfo Instance{ Fields, 7, &CinematicCameraMeta::Instance, HOTFIX_SEL_CINEMATIC_CAMERA };
};
struct CinematicSequencesLoadInfo
@@ -1286,59 +1226,25 @@ struct ConditionalContentTuningLoadInfo
struct ContentTuningLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "Flags" },
- { true, FT_INT, "ExpansionID" },
{ true, FT_INT, "MinLevel" },
{ true, FT_INT, "MaxLevel" },
- { true, FT_INT, "MinLevelType" },
- { true, FT_INT, "MaxLevelType" },
- { true, FT_INT, "TargetLevelDelta" },
- { true, FT_INT, "TargetLevelMaxDelta" },
- { true, FT_INT, "TargetLevelMin" },
- { true, FT_INT, "TargetLevelMax" },
- { true, FT_INT, "MinItemLevel" },
- { false, FT_FLOAT, "QuestXpMultiplier" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 13, &ContentTuningMeta::Instance, HOTFIX_SEL_CONTENT_TUNING };
-};
-
-struct ContentTuningXExpectedLoadInfo
-{
- static constexpr DB2FieldMeta Fields[5] =
- {
- { false, FT_INT, "ID" },
+ { true, FT_INT, "Flags" },
{ true, FT_INT, "ExpectedStatModID" },
- { true, FT_INT, "MinMythicPlusSeasonID" },
- { true, FT_INT, "MaxMythicPlusSeasonID" },
- { false, FT_INT, "ContentTuningID" },
+ { true, FT_INT, "DifficultyESMID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 5, &ContentTuningXExpectedMeta::Instance, HOTFIX_SEL_CONTENT_TUNING_X_EXPECTED };
-};
-
-struct ContentTuningXLabelLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "LabelID" },
- { false, FT_INT, "ContentTuningID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &ContentTuningXLabelMeta::Instance, HOTFIX_SEL_CONTENT_TUNING_X_LABEL };
+ static constexpr DB2LoadInfo Instance{ Fields, 6, &ContentTuningMeta::Instance, HOTFIX_SEL_CONTENT_TUNING };
};
struct ConversationLineLoadInfo
{
- static constexpr DB2FieldMeta Fields[10] =
+ static constexpr DB2FieldMeta Fields[9] =
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "BroadcastTextID" },
- { false, FT_INT, "Unused1020" },
{ false, FT_INT, "SpellVisualKitID" },
{ true, FT_INT, "AdditionalDuration" },
{ false, FT_SHORT, "NextConversationLineID" },
@@ -1348,21 +1254,7 @@ struct ConversationLineLoadInfo
{ false, FT_BYTE, "EndAnimation" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 10, &ConversationLineMeta::Instance, HOTFIX_SEL_CONVERSATION_LINE };
-};
-
-struct CorruptionEffectsLoadInfo
-{
- static constexpr DB2FieldMeta Fields[5] =
- {
- { false, FT_INT, "ID" },
- { false, FT_FLOAT, "MinCorruption" },
- { true, FT_INT, "Aura" },
- { true, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "Flags" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 5, &CorruptionEffectsMeta::Instance, HOTFIX_SEL_CORRUPTION_EFFECTS };
+ static constexpr DB2LoadInfo Instance{ Fields, 9, &ConversationLineMeta::Instance, HOTFIX_SEL_CONVERSATION_LINE };
};
struct CreatureDisplayInfoLoadInfo
@@ -1404,23 +1296,31 @@ struct CreatureDisplayInfoLoadInfo
struct CreatureDisplayInfoExtraLoadInfo
{
- static constexpr DB2FieldMeta Fields[7] =
+ static constexpr DB2FieldMeta Fields[15] =
{
{ false, FT_INT, "ID" },
{ true, FT_BYTE, "DisplayRaceID" },
{ true, FT_BYTE, "DisplaySexID" },
{ true, FT_BYTE, "DisplayClassID" },
+ { true, FT_BYTE, "SkinID" },
+ { true, FT_BYTE, "FaceID" },
+ { true, FT_BYTE, "HairStyleID" },
+ { true, FT_BYTE, "HairColorID" },
+ { true, FT_BYTE, "FacialHairID" },
{ true, FT_BYTE, "Flags" },
{ true, FT_INT, "BakeMaterialResourcesID" },
{ true, FT_INT, "HDBakeMaterialResourcesID" },
+ { false, FT_BYTE, "CustomDisplayOption1" },
+ { false, FT_BYTE, "CustomDisplayOption2" },
+ { false, FT_BYTE, "CustomDisplayOption3" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 7, &CreatureDisplayInfoExtraMeta::Instance, HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA };
+ static constexpr DB2LoadInfo Instance{ Fields, 15, &CreatureDisplayInfoExtraMeta::Instance, HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA };
};
struct CreatureFamilyLoadInfo
{
- static constexpr DB2FieldMeta Fields[11] =
+ static constexpr DB2FieldMeta Fields[12] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
@@ -1430,17 +1330,18 @@ struct CreatureFamilyLoadInfo
{ true, FT_BYTE, "MaxScaleLevel" },
{ true, FT_SHORT, "PetFoodMask" },
{ true, FT_BYTE, "PetTalentType" },
+ { true, FT_INT, "CategoryEnumID" },
{ true, FT_INT, "IconFileID" },
{ true, FT_SHORT, "SkillLine1" },
{ true, FT_SHORT, "SkillLine2" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 11, &CreatureFamilyMeta::Instance, HOTFIX_SEL_CREATURE_FAMILY };
+ static constexpr DB2LoadInfo Instance{ Fields, 12, &CreatureFamilyMeta::Instance, HOTFIX_SEL_CREATURE_FAMILY };
};
struct CreatureModelDataLoadInfo
{
- static constexpr DB2FieldMeta Fields[40] =
+ static constexpr DB2FieldMeta Fields[34] =
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "GeoBox1" },
@@ -1451,8 +1352,6 @@ struct CreatureModelDataLoadInfo
{ false, FT_FLOAT, "GeoBox6" },
{ false, FT_INT, "Flags" },
{ false, FT_INT, "FileDataID" },
- { false, FT_FLOAT, "WalkSpeed" },
- { false, FT_FLOAT, "RunSpeed" },
{ false, FT_INT, "BloodID" },
{ false, FT_INT, "FootprintTextureID" },
{ false, FT_FLOAT, "FootprintTextureLength" },
@@ -1478,13 +1377,9 @@ struct CreatureModelDataLoadInfo
{ false, FT_FLOAT, "OverrideNameScale" },
{ false, FT_FLOAT, "OverrideSelectionRadius" },
{ false, FT_FLOAT, "TamedPetBaseScale" },
- { true, FT_BYTE, "Unknown820_1" },
- { false, FT_FLOAT, "Unknown820_2" },
- { false, FT_FLOAT, "Unknown820_31" },
- { false, FT_FLOAT, "Unknown820_32" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 40, &CreatureModelDataMeta::Instance, HOTFIX_SEL_CREATURE_MODEL_DATA };
+ static constexpr DB2LoadInfo Instance{ Fields, 34, &CreatureModelDataMeta::Instance, HOTFIX_SEL_CREATURE_MODEL_DATA };
};
struct CreatureTypeLoadInfo
@@ -1547,7 +1442,7 @@ struct CurrencyContainerLoadInfo
{ true, FT_INT, "MinAmount" },
{ true, FT_INT, "MaxAmount" },
{ true, FT_INT, "ContainerIconID" },
- { true, FT_BYTE, "ContainerQuality" },
+ { true, FT_INT, "ContainerQuality" },
{ true, FT_INT, "OnLootSpellVisualKitID" },
{ false, FT_INT, "CurrencyTypesID" },
};
@@ -1557,12 +1452,12 @@ struct CurrencyContainerLoadInfo
struct CurrencyTypesLoadInfo
{
- static constexpr DB2FieldMeta Fields[19] =
+ static constexpr DB2FieldMeta Fields[14] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
- { true, FT_INT, "CategoryID" },
+ { false, FT_BYTE, "CategoryID" },
{ true, FT_INT, "InventoryIconFileID" },
{ false, FT_INT, "SpellWeight" },
{ false, FT_BYTE, "SpellCategory" },
@@ -1570,17 +1465,12 @@ struct CurrencyTypesLoadInfo
{ false, FT_INT, "MaxEarnablePerWeek" },
{ true, FT_BYTE, "Quality" },
{ true, FT_INT, "FactionID" },
- { true, FT_INT, "ItemGroupSoundsID" },
- { true, FT_INT, "XpQuestDifficulty" },
{ true, FT_INT, "AwardConditionID" },
- { true, FT_INT, "MaxQtyWorldStateID" },
- { false, FT_INT, "RechargingAmountPerCycle" },
- { false, FT_INT, "RechargingCycleDurationMS" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 19, &CurrencyTypesMeta::Instance, HOTFIX_SEL_CURRENCY_TYPES };
+ static constexpr DB2LoadInfo Instance{ Fields, 14, &CurrencyTypesMeta::Instance, HOTFIX_SEL_CURRENCY_TYPES };
};
struct CurveLoadInfo
@@ -1655,12 +1545,12 @@ struct DifficultyLoadInfo
{ false, FT_BYTE, "FallbackDifficultyID" },
{ false, FT_BYTE, "MinPlayers" },
{ false, FT_BYTE, "MaxPlayers" },
- { false, FT_SHORT, "Flags" },
+ { false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "ItemContext" },
{ false, FT_BYTE, "ToggleDifficultyID" },
- { false, FT_INT, "GroupSizeHealthCurveID" },
- { false, FT_INT, "GroupSizeDmgCurveID" },
- { false, FT_INT, "GroupSizeSpellPointsCurveID" },
+ { false, FT_SHORT, "GroupSizeHealthCurveID" },
+ { false, FT_SHORT, "GroupSizeDmgCurveID" },
+ { false, FT_SHORT, "GroupSizeSpellPointsCurveID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 14, &DifficultyMeta::Instance, HOTFIX_SEL_DIFFICULTY };
@@ -1668,21 +1558,19 @@ struct DifficultyLoadInfo
struct DungeonEncounterLoadInfo
{
- static constexpr DB2FieldMeta Fields[10] =
+ static constexpr DB2FieldMeta Fields[8] =
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
{ true, FT_SHORT, "MapID" },
{ true, FT_INT, "DifficultyID" },
{ true, FT_INT, "OrderIndex" },
- { true, FT_INT, "CompleteWorldStateID" },
{ true, FT_BYTE, "Bit" },
{ true, FT_INT, "Flags" },
- { true, FT_INT, "SpellIconFileID" },
{ true, FT_INT, "Faction" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 10, &DungeonEncounterMeta::Instance, HOTFIX_SEL_DUNGEON_ENCOUNTER };
+ static constexpr DB2LoadInfo Instance{ Fields, 8, &DungeonEncounterMeta::Instance, HOTFIX_SEL_DUNGEON_ENCOUNTER };
};
struct DurabilityCostsLoadInfo
@@ -1825,17 +1713,17 @@ struct FactionLoadInfo
{
static constexpr DB2FieldMeta Fields[35] =
{
- { false, FT_INT, "ID" },
{ true, FT_LONG, "ReputationRaceMask1" },
{ true, FT_LONG, "ReputationRaceMask2" },
{ true, FT_LONG, "ReputationRaceMask3" },
{ true, FT_LONG, "ReputationRaceMask4" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
+ { false, FT_INT, "ID" },
{ true, FT_SHORT, "ReputationIndex" },
{ false, FT_SHORT, "ParentFactionID" },
{ false, FT_BYTE, "Expansion" },
- { false, FT_INT, "FriendshipRepID" },
+ { false, FT_BYTE, "FriendshipRepID" },
{ true, FT_INT, "Flags" },
{ false, FT_SHORT, "ParagonFactionID" },
{ true, FT_INT, "RenownFactionID" },
@@ -1898,32 +1786,28 @@ struct FactionTemplateLoadInfo
struct FriendshipRepReactionLoadInfo
{
- static constexpr DB2FieldMeta Fields[5] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Reaction" },
- { false, FT_INT, "FriendshipRepID" },
+ { false, FT_BYTE, "FriendshipRepID" },
{ false, FT_SHORT, "ReactionThreshold" },
- { true, FT_INT, "OverrideColor" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 5, &FriendshipRepReactionMeta::Instance, HOTFIX_SEL_FRIENDSHIP_REP_REACTION };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &FriendshipRepReactionMeta::Instance, HOTFIX_SEL_FRIENDSHIP_REP_REACTION };
};
struct FriendshipReputationLoadInfo
{
- static constexpr DB2FieldMeta Fields[7] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_STRING, "Description" },
- { false, FT_STRING, "StandingModified" },
- { false, FT_STRING, "StandingChanged" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "FactionID" },
- { true, FT_INT, "TextureFileID" },
- { true, FT_INT, "Flags" },
+ { true, FT_INT, "Field34146722002" },
+ { true, FT_INT, "Field34146722003" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 7, &FriendshipReputationMeta::Instance, HOTFIX_SEL_FRIENDSHIP_REPUTATION };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &FriendshipReputationMeta::Instance, HOTFIX_SEL_FRIENDSHIP_REPUTATION };
};
struct GameobjectArtKitLoadInfo
@@ -1942,9 +1826,10 @@ struct GameobjectArtKitLoadInfo
struct GameobjectDisplayInfoLoadInfo
{
- static constexpr DB2FieldMeta Fields[14] =
+ static constexpr DB2FieldMeta Fields[12] =
{
{ false, FT_INT, "ID" },
+ { false, FT_STRING_NOT_LOCALIZED, "ModelName" },
{ false, FT_FLOAT, "GeoBoxMinX" },
{ false, FT_FLOAT, "GeoBoxMinY" },
{ false, FT_FLOAT, "GeoBoxMinZ" },
@@ -1955,12 +1840,9 @@ struct GameobjectDisplayInfoLoadInfo
{ true, FT_SHORT, "ObjectEffectPackageID" },
{ false, FT_FLOAT, "OverrideLootEffectScale" },
{ false, FT_FLOAT, "OverrideNameScale" },
- { true, FT_INT, "AlternateDisplayType" },
- { true, FT_INT, "ClientCreatureDisplayInfoID" },
- { true, FT_INT, "ClientItemID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 14, &GameObjectDisplayInfoMeta::Instance, HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO };
+ static constexpr DB2LoadInfo Instance{ Fields, 12, &GameObjectDisplayInfoMeta::Instance, HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO };
};
struct GameobjectsLoadInfo
@@ -1976,13 +1858,13 @@ struct GameobjectsLoadInfo
{ false, FT_FLOAT, "Rot3" },
{ false, FT_FLOAT, "Rot4" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "OwnerID" },
- { true, FT_INT, "DisplayID" },
+ { false, FT_SHORT, "OwnerID" },
+ { false, FT_INT, "DisplayID" },
{ false, FT_FLOAT, "Scale" },
- { true, FT_INT, "TypeID" },
+ { false, FT_BYTE, "TypeID" },
{ true, FT_INT, "PhaseUseFlags" },
- { true, FT_INT, "PhaseID" },
- { true, FT_INT, "PhaseGroupID" },
+ { false, FT_SHORT, "PhaseID" },
+ { false, FT_SHORT, "PhaseGroupID" },
{ true, FT_INT, "PropValue1" },
{ true, FT_INT, "PropValue2" },
{ true, FT_INT, "PropValue3" },
@@ -2000,14 +1882,14 @@ struct GarrAbilityLoadInfo
{
static constexpr DB2FieldMeta Fields[8] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
+ { false, FT_INT, "ID" },
{ false, FT_BYTE, "GarrAbilityCategoryID" },
- { true, FT_BYTE, "GarrFollowerTypeID" },
+ { false, FT_BYTE, "GarrFollowerTypeID" },
{ true, FT_INT, "IconFileDataID" },
{ false, FT_SHORT, "FactionChangeGarrAbilityID" },
- { true, FT_INT, "Flags" },
+ { false, FT_SHORT, "Flags" },
};
static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrAbilityMeta::Instance, HOTFIX_SEL_GARR_ABILITY };
@@ -2022,11 +1904,11 @@ struct GarrBuildingLoadInfo
{ false, FT_STRING, "AllianceName" },
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "Tooltip" },
- { true, FT_BYTE, "GarrTypeID" },
- { true, FT_BYTE, "BuildingType" },
+ { false, FT_BYTE, "GarrTypeID" },
+ { false, FT_BYTE, "BuildingType" },
{ true, FT_INT, "HordeGameObjectID" },
{ true, FT_INT, "AllianceGameObjectID" },
- { true, FT_INT, "GarrSiteID" },
+ { false, FT_BYTE, "GarrSiteID" },
{ false, FT_BYTE, "UpgradeLevel" },
{ true, FT_INT, "BuildSeconds" },
{ false, FT_SHORT, "CurrencyTypeID" },
@@ -2041,7 +1923,7 @@ struct GarrBuildingLoadInfo
{ false, FT_SHORT, "GarrAbilityID" },
{ false, FT_SHORT, "BonusGarrAbilityID" },
{ false, FT_SHORT, "GoldCost" },
- { true, FT_INT, "Flags" },
+ { false, FT_BYTE, "Flags" },
};
static constexpr DB2LoadInfo Instance{ Fields, 25, &GarrBuildingMeta::Instance, HOTFIX_SEL_GARR_BUILDING };
@@ -2066,14 +1948,14 @@ struct GarrClassSpecLoadInfo
{
static constexpr DB2FieldMeta Fields[8] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "ClassSpec" },
{ false, FT_STRING, "ClassSpecMale" },
{ false, FT_STRING, "ClassSpecFemale" },
+ { false, FT_INT, "ID" },
{ false, FT_SHORT, "UiTextureAtlasMemberID" },
{ false, FT_SHORT, "GarrFollItemSetID" },
{ false, FT_BYTE, "FollowerClassLimit" },
- { true, FT_INT, "Flags" },
+ { false, FT_BYTE, "Flags" },
};
static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrClassSpecMeta::Instance, HOTFIX_SEL_GARR_CLASS_SPEC };
@@ -2081,21 +1963,21 @@ struct GarrClassSpecLoadInfo
struct GarrFollowerLoadInfo
{
- static constexpr DB2FieldMeta Fields[34] =
+ static constexpr DB2FieldMeta Fields[32] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "HordeSourceText" },
{ false, FT_STRING, "AllianceSourceText" },
{ false, FT_STRING, "TitleName" },
- { true, FT_BYTE, "GarrTypeID" },
- { true, FT_BYTE, "GarrFollowerTypeID" },
+ { false, FT_INT, "ID" },
+ { false, FT_BYTE, "GarrTypeID" },
+ { false, FT_BYTE, "GarrFollowerTypeID" },
{ true, FT_INT, "HordeCreatureID" },
{ true, FT_INT, "AllianceCreatureID" },
{ false, FT_BYTE, "HordeGarrFollRaceID" },
{ false, FT_BYTE, "AllianceGarrFollRaceID" },
- { true, FT_INT, "HordeGarrClassSpecID" },
- { true, FT_INT, "AllianceGarrClassSpecID" },
- { true, FT_BYTE, "Quality" },
+ { false, FT_BYTE, "HordeGarrClassSpecID" },
+ { false, FT_BYTE, "AllianceGarrClassSpecID" },
+ { false, FT_BYTE, "Quality" },
{ false, FT_BYTE, "FollowerLevel" },
{ false, FT_SHORT, "ItemLevelWeapon" },
{ false, FT_SHORT, "ItemLevelArmor" },
@@ -2113,13 +1995,11 @@ struct GarrFollowerLoadInfo
{ false, FT_INT, "HordeSlottingBroadcastTextID" },
{ false, FT_INT, "AllySlottingBroadcastTextID" },
{ false, FT_BYTE, "ChrClassID" },
- { true, FT_INT, "Flags" },
+ { false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "Gender" },
- { true, FT_INT, "AutoCombatantID" },
- { true, FT_INT, "CovenantID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 34, &GarrFollowerMeta::Instance, HOTFIX_SEL_GARR_FOLLOWER };
+ static constexpr DB2LoadInfo Instance{ Fields, 32, &GarrFollowerMeta::Instance, HOTFIX_SEL_GARR_FOLLOWER };
};
struct GarrFollowerXAbilityLoadInfo
@@ -2138,9 +2018,8 @@ struct GarrFollowerXAbilityLoadInfo
struct GarrMissionLoadInfo
{
- static constexpr DB2FieldMeta Fields[34] =
+ static constexpr DB2FieldMeta Fields[31] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Location" },
{ false, FT_STRING, "Description" },
@@ -2148,18 +2027,18 @@ struct GarrMissionLoadInfo
{ false, FT_FLOAT, "MapPosY" },
{ false, FT_FLOAT, "WorldPosX" },
{ false, FT_FLOAT, "WorldPosY" },
- { true, FT_BYTE, "GarrTypeID" },
+ { false, FT_INT, "ID" },
+ { false, FT_BYTE, "GarrTypeID" },
{ false, FT_BYTE, "GarrMissionTypeID" },
- { true, FT_BYTE, "GarrFollowerTypeID" },
+ { false, FT_BYTE, "GarrFollowerTypeID" },
{ false, FT_BYTE, "MaxFollowers" },
{ false, FT_INT, "MissionCost" },
{ false, FT_SHORT, "MissionCostCurrencyTypesID" },
{ false, FT_BYTE, "OfferedGarrMissionTextureID" },
{ false, FT_SHORT, "UiTextureKitID" },
{ false, FT_INT, "EnvGarrMechanicID" },
- { true, FT_INT, "EnvGarrMechanicTypeID" },
+ { false, FT_BYTE, "EnvGarrMechanicTypeID" },
{ false, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "GarrMissionSetID" },
{ true, FT_BYTE, "TargetLevel" },
{ false, FT_SHORT, "TargetItemLevel" },
{ true, FT_INT, "MissionDuration" },
@@ -2170,13 +2049,11 @@ struct GarrMissionLoadInfo
{ false, FT_INT, "OvermaxRewardPackID" },
{ false, FT_BYTE, "FollowerDeathChance" },
{ false, FT_INT, "AreaID" },
- { true, FT_INT, "Flags" },
- { false, FT_FLOAT, "AutoMissionScalar" },
- { true, FT_INT, "AutoMissionScalarCurveID" },
- { true, FT_INT, "AutoCombatantEnvCasterID" },
+ { false, FT_INT, "Flags" },
+ { true, FT_INT, "GarrMissionSetID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 34, &GarrMissionMeta::Instance, HOTFIX_SEL_GARR_MISSION };
+ static constexpr DB2LoadInfo Instance{ Fields, 31, &GarrMissionMeta::Instance, HOTFIX_SEL_GARR_MISSION };
};
struct GarrPlotLoadInfo
@@ -2258,48 +2135,32 @@ struct GarrSiteLevelPlotInstLoadInfo
struct GarrTalentTreeLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[8] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { true, FT_BYTE, "GarrTypeID" },
+ { true, FT_INT, "GarrTypeID" },
{ true, FT_INT, "ClassID" },
{ true, FT_BYTE, "MaxTiers" },
{ true, FT_BYTE, "UiOrder" },
- { true, FT_INT, "Flags" },
+ { true, FT_BYTE, "Flags" },
{ false, FT_SHORT, "UiTextureKitID" },
- { true, FT_INT, "GarrTalentTreeType" },
- { true, FT_INT, "PlayerConditionID" },
- { false, FT_BYTE, "FeatureTypeIndex" },
- { true, FT_BYTE, "FeatureSubtypeIndex" },
- { true, FT_INT, "CurrencyID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 13, &GarrTalentTreeMeta::Instance, HOTFIX_SEL_GARR_TALENT_TREE };
+ static constexpr DB2LoadInfo Instance{ Fields, 8, &GarrTalentTreeMeta::Instance, HOTFIX_SEL_GARR_TALENT_TREE };
};
struct GemPropertiesLoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
{ false, FT_SHORT, "EnchantId" },
{ true, FT_INT, "Type" },
+ { false, FT_SHORT, "MinItemLevel" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &GemPropertiesMeta::Instance, HOTFIX_SEL_GEM_PROPERTIES };
-};
-
-struct GlobalCurveLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "CurveID" },
- { true, FT_INT, "Type" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &GlobalCurveMeta::Instance, HOTFIX_SEL_GLOBAL_CURVE };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &GemPropertiesMeta::Instance, HOTFIX_SEL_GEM_PROPERTIES };
};
struct GlyphBindableSpellLoadInfo
@@ -2316,16 +2177,17 @@ struct GlyphBindableSpellLoadInfo
struct GlyphPropertiesLoadInfo
{
- static constexpr DB2FieldMeta Fields[5] =
+ static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "SpellID" },
{ false, FT_BYTE, "GlyphType" },
{ false, FT_BYTE, "GlyphExclusiveCategoryID" },
{ true, FT_INT, "SpellIconFileDataID" },
+ { false, FT_INT, "GlyphSlotFlags" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 5, &GlyphPropertiesMeta::Instance, HOTFIX_SEL_GLYPH_PROPERTIES };
+ static constexpr DB2LoadInfo Instance{ Fields, 6, &GlyphPropertiesMeta::Instance, HOTFIX_SEL_GLYPH_PROPERTIES };
};
struct GlyphRequiredSpecLoadInfo
@@ -2342,27 +2204,24 @@ struct GlyphRequiredSpecLoadInfo
struct GossipNpcOptionLoadInfo
{
- static constexpr DB2FieldMeta Fields[16] =
+ static constexpr DB2FieldMeta Fields[13] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "GossipNpcOption" },
{ true, FT_INT, "LFGDungeonsID" },
{ true, FT_INT, "TrainerID" },
- { true, FT_INT, "GarrFollowerTypeID" },
- { true, FT_INT, "CharShipmentID" },
- { true, FT_INT, "GarrTalentTreeID" },
- { true, FT_INT, "UiMapID" },
- { true, FT_INT, "UiItemInteractionID" },
- { true, FT_INT, "Unknown_1000_8" },
- { true, FT_INT, "Unknown_1000_9" },
- { true, FT_INT, "CovenantID" },
+ { true, FT_INT, "Unk341_1" },
+ { true, FT_INT, "Unk341_2" },
+ { true, FT_INT, "Unk341_3" },
+ { true, FT_INT, "Unk341_4" },
+ { true, FT_INT, "Unk341_5" },
+ { true, FT_INT, "Unk341_6" },
+ { true, FT_INT, "Unk341_7" },
+ { true, FT_INT, "Unk341_8" },
{ true, FT_INT, "GossipOptionID" },
- { true, FT_INT, "TraitTreeID" },
- { true, FT_INT, "ProfessionID" },
- { true, FT_INT, "Unknown_1002_14" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 16, &GossipNPCOptionMeta::Instance, HOTFIX_SEL_GOSSIP_NPC_OPTION };
+ static constexpr DB2LoadInfo Instance{ Fields, 13, &GossipNPCOptionMeta::Instance, HOTFIX_SEL_GOSSIP_NPC_OPTION };
};
struct GuildColorBackgroundLoadInfo
@@ -2446,7 +2305,7 @@ struct HeirloomLoadInfo
struct HolidaysLoadInfo
{
- static constexpr DB2FieldMeta Fields[57] =
+ static constexpr DB2FieldMeta Fields[48] =
{
{ false, FT_INT, "ID" },
{ false, FT_SHORT, "Region" },
@@ -2456,6 +2315,7 @@ struct HolidaysLoadInfo
{ false, FT_BYTE, "Priority" },
{ true, FT_BYTE, "CalendarFilterType" },
{ false, FT_BYTE, "Flags" },
+ { false, FT_INT, "WorldStateExpressionID" },
{ false, FT_SHORT, "Duration1" },
{ false, FT_SHORT, "Duration2" },
{ false, FT_SHORT, "Duration3" },
@@ -2482,16 +2342,6 @@ struct HolidaysLoadInfo
{ false, FT_INT, "Date14" },
{ false, FT_INT, "Date15" },
{ false, FT_INT, "Date16" },
- { false, FT_INT, "Date17" },
- { false, FT_INT, "Date18" },
- { false, FT_INT, "Date19" },
- { false, FT_INT, "Date20" },
- { false, FT_INT, "Date21" },
- { false, FT_INT, "Date22" },
- { false, FT_INT, "Date23" },
- { false, FT_INT, "Date24" },
- { false, FT_INT, "Date25" },
- { false, FT_INT, "Date26" },
{ false, FT_BYTE, "CalendarFlags1" },
{ false, FT_BYTE, "CalendarFlags2" },
{ false, FT_BYTE, "CalendarFlags3" },
@@ -2507,7 +2357,7 @@ struct HolidaysLoadInfo
{ true, FT_INT, "TextureFileDataID3" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 57, &HolidaysMeta::Instance, HOTFIX_SEL_HOLIDAYS };
+ static constexpr DB2LoadInfo Instance{ Fields, 48, &HolidaysMeta::Instance, HOTFIX_SEL_HOLIDAYS };
};
struct ImportPriceArmorLoadInfo
@@ -2559,38 +2409,64 @@ struct ImportPriceWeaponLoadInfo
struct ItemLoadInfo
{
- static constexpr DB2FieldMeta Fields[12] =
+ static constexpr DB2FieldMeta Fields[39] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "ClassID" },
{ false, FT_BYTE, "SubclassID" },
{ false, FT_BYTE, "Material" },
{ true, FT_BYTE, "InventoryType" },
+ { true, FT_INT, "RequiredLevel" },
{ false, FT_BYTE, "SheatheType" },
+ { false, FT_SHORT, "RandomSelect" },
+ { false, FT_SHORT, "ItemRandomSuffixGroupID" },
{ true, FT_BYTE, "SoundOverrideSubclassID" },
+ { false, FT_SHORT, "ScalingStatDistributionID" },
{ true, FT_INT, "IconFileDataID" },
{ false, FT_BYTE, "ItemGroupSoundsID" },
{ true, FT_INT, "ContentTuningID" },
- { true, FT_INT, "ModifiedCraftingReagentItemID" },
- { true, FT_INT, "CraftingQualityID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 12, &ItemMeta::Instance, HOTFIX_SEL_ITEM };
+ { false, FT_INT, "MaxDurability" },
+ { false, FT_BYTE, "AmmunitionType" },
+ { true, FT_INT, "ScalingStatValue" },
+ { false, FT_BYTE, "DamageType1" },
+ { false, FT_BYTE, "DamageType2" },
+ { false, FT_BYTE, "DamageType3" },
+ { false, FT_BYTE, "DamageType4" },
+ { false, FT_BYTE, "DamageType5" },
+ { true, FT_INT, "Resistances1" },
+ { true, FT_INT, "Resistances2" },
+ { true, FT_INT, "Resistances3" },
+ { true, FT_INT, "Resistances4" },
+ { true, FT_INT, "Resistances5" },
+ { true, FT_INT, "Resistances6" },
+ { true, FT_INT, "Resistances7" },
+ { true, FT_INT, "MinDamage1" },
+ { true, FT_INT, "MinDamage2" },
+ { true, FT_INT, "MinDamage3" },
+ { true, FT_INT, "MinDamage4" },
+ { true, FT_INT, "MinDamage5" },
+ { true, FT_INT, "MaxDamage1" },
+ { true, FT_INT, "MaxDamage2" },
+ { true, FT_INT, "MaxDamage3" },
+ { true, FT_INT, "MaxDamage4" },
+ { true, FT_INT, "MaxDamage5" },
+ };
+
+ static constexpr DB2LoadInfo Instance{ Fields, 39, &ItemMeta::Instance, HOTFIX_SEL_ITEM };
};
struct ItemAppearanceLoadInfo
{
- static constexpr DB2FieldMeta Fields[6] =
+ static constexpr DB2FieldMeta Fields[5] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "DisplayType" },
+ { false, FT_BYTE, "DisplayType" },
{ true, FT_INT, "ItemDisplayInfoID" },
{ true, FT_INT, "DefaultIconFileDataID" },
{ true, FT_INT, "UiOrder" },
- { true, FT_INT, "PlayerConditionID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 6, &ItemAppearanceMeta::Instance, HOTFIX_SEL_ITEM_APPEARANCE };
+ static constexpr DB2LoadInfo Instance{ Fields, 5, &ItemAppearanceMeta::Instance, HOTFIX_SEL_ITEM_APPEARANCE };
};
struct ItemArmorQualityLoadInfo
@@ -2671,24 +2547,6 @@ struct ItemBonusLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 8, &ItemBonusMeta::Instance, HOTFIX_SEL_ITEM_BONUS };
};
-struct ItemBonusListGroupEntryLoadInfo
-{
- static constexpr DB2FieldMeta Fields[9] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "ItemBonusListGroupID" },
- { true, FT_INT, "ItemBonusListID" },
- { true, FT_INT, "ItemLevelSelectorID" },
- { true, FT_INT, "SequenceValue" },
- { true, FT_INT, "ItemExtendedCostID" },
- { true, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "Flags" },
- { true, FT_INT, "ItemLogicalCostGroupID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 9, &ItemBonusListGroupEntryMeta::Instance, HOTFIX_SEL_ITEM_BONUS_LIST_GROUP_ENTRY };
-};
-
struct ItemBonusListLevelDeltaLoadInfo
{
static constexpr DB2FieldMeta Fields[2] =
@@ -2700,35 +2558,19 @@ struct ItemBonusListLevelDeltaLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 2, &ItemBonusListLevelDeltaMeta::Instance, HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA };
};
-struct ItemBonusTreeLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "Flags" },
- { true, FT_INT, "InventoryTypeSlotMask" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &ItemBonusTreeMeta::Instance, HOTFIX_SEL_ITEM_BONUS_TREE };
-};
-
struct ItemBonusTreeNodeLoadInfo
{
- static constexpr DB2FieldMeta Fields[10] =
+ static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "ItemContext" },
{ false, FT_SHORT, "ChildItemBonusTreeID" },
{ false, FT_SHORT, "ChildItemBonusListID" },
{ false, FT_SHORT, "ChildItemLevelSelectorID" },
- { true, FT_INT, "ChildItemBonusListGroupID" },
- { true, FT_INT, "IblGroupPointsModSetID" },
- { true, FT_INT, "MinMythicPlusLevel" },
- { true, FT_INT, "MaxMythicPlusLevel" },
{ false, FT_INT, "ParentItemBonusTreeID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 10, &ItemBonusTreeNodeMeta::Instance, HOTFIX_SEL_ITEM_BONUS_TREE_NODE };
+ static constexpr DB2LoadInfo Instance{ Fields, 6, &ItemBonusTreeNodeMeta::Instance, HOTFIX_SEL_ITEM_BONUS_TREE_NODE };
};
struct ItemChildEquipmentLoadInfo
@@ -2736,9 +2578,9 @@ struct ItemChildEquipmentLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ParentItemID" },
{ true, FT_INT, "ChildItemID" },
{ false, FT_BYTE, "ChildItemEquipSlot" },
+ { true, FT_INT, "ParentItemID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 4, &ItemChildEquipmentMeta::Instance, HOTFIX_SEL_ITEM_CHILD_EQUIPMENT };
@@ -2760,19 +2602,18 @@ struct ItemClassLoadInfo
struct ItemContextPickerEntryLoadInfo
{
- static constexpr DB2FieldMeta Fields[8] =
+ static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "ItemCreationContext" },
{ false, FT_BYTE, "OrderIndex" },
{ true, FT_INT, "PVal" },
- { true, FT_INT, "LabelID" },
{ false, FT_INT, "Flags" },
{ false, FT_INT, "PlayerConditionID" },
{ false, FT_INT, "ItemContextPickerID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 8, &ItemContextPickerEntryMeta::Instance, HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY };
+ static constexpr DB2LoadInfo Instance{ Fields, 7, &ItemContextPickerEntryMeta::Instance, HOTFIX_SEL_ITEM_CONTEXT_PICKER_ENTRY };
};
struct ItemCurrencyCostLoadInfo
@@ -2895,7 +2736,7 @@ struct ItemDisenchantLootLoadInfo
struct ItemEffectLoadInfo
{
- static constexpr DB2FieldMeta Fields[9] =
+ static constexpr DB2FieldMeta Fields[10] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "LegacySlotIndex" },
@@ -2906,9 +2747,10 @@ struct ItemEffectLoadInfo
{ false, FT_SHORT, "SpellCategoryID" },
{ true, FT_INT, "SpellID" },
{ false, FT_SHORT, "ChrSpecializationID" },
+ { true, FT_INT, "ParentItemID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 9, &ItemEffectMeta::Instance, HOTFIX_SEL_ITEM_EFFECT };
+ static constexpr DB2LoadInfo Instance{ Fields, 10, &ItemEffectMeta::Instance, HOTFIX_SEL_ITEM_EFFECT };
};
struct ItemExtendedCostLoadInfo
@@ -2949,15 +2791,14 @@ struct ItemExtendedCostLoadInfo
struct ItemLevelSelectorLoadInfo
{
- static constexpr DB2FieldMeta Fields[4] =
+ static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
{ false, FT_SHORT, "MinItemLevel" },
{ false, FT_SHORT, "ItemLevelSelectorQualitySetID" },
- { false, FT_SHORT, "AzeriteUnlockMappingSet" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 4, &ItemLevelSelectorMeta::Instance, HOTFIX_SEL_ITEM_LEVEL_SELECTOR };
+ static constexpr DB2LoadInfo Instance{ Fields, 3, &ItemLevelSelectorMeta::Instance, HOTFIX_SEL_ITEM_LEVEL_SELECTOR };
};
struct ItemLevelSelectorQualityLoadInfo
@@ -3070,11 +2911,11 @@ struct ItemSearchNameLoadInfo
{
static constexpr DB2FieldMeta Fields[17] =
{
- { false, FT_INT, "ID" },
{ true, FT_LONG, "AllowableRace" },
{ false, FT_STRING, "Display" },
+ { false, FT_INT, "ID" },
{ false, FT_BYTE, "OverallQualityID" },
- { true, FT_INT, "ExpansionID" },
+ { true, FT_BYTE, "ExpansionID" },
{ false, FT_SHORT, "MinFactionID" },
{ true, FT_INT, "MinReputation" },
{ true, FT_INT, "AllowableClass" },
@@ -3131,7 +2972,7 @@ struct ItemSetSpellLoadInfo
{ false, FT_SHORT, "ChrSpecID" },
{ false, FT_INT, "SpellID" },
{ false, FT_BYTE, "Threshold" },
- { false, FT_INT, "ItemSetID" },
+ { true, FT_INT, "ItemSetID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 5, &ItemSetSpellMeta::Instance, HOTFIX_SEL_ITEM_SET_SPELL };
@@ -3139,7 +2980,7 @@ struct ItemSetSpellLoadInfo
struct ItemSparseLoadInfo
{
- static constexpr DB2FieldMeta Fields[98] =
+ static constexpr DB2FieldMeta Fields[130] =
{
{ false, FT_INT, "ID" },
{ true, FT_LONG, "AllowableRace" },
@@ -3148,14 +2989,11 @@ struct ItemSparseLoadInfo
{ false, FT_STRING, "Display2" },
{ false, FT_STRING, "Display1" },
{ false, FT_STRING, "Display" },
- { true, FT_INT, "ExpansionID" },
{ false, FT_FLOAT, "DmgVariance" },
- { true, FT_INT, "LimitCategory" },
{ false, FT_INT, "DurationInInventory" },
{ false, FT_FLOAT, "QualityModifier" },
{ false, FT_INT, "BagFamily" },
{ true, FT_INT, "StartQuestID" },
- { true, FT_INT, "LanguageID" },
{ false, FT_FLOAT, "ItemRange" },
{ false, FT_FLOAT, "StatPercentageOfSocket1" },
{ false, FT_FLOAT, "StatPercentageOfSocket2" },
@@ -3194,9 +3032,11 @@ struct ItemSparseLoadInfo
{ true, FT_INT, "ModifiedCraftingReagentItemID" },
{ true, FT_INT, "ContentTuningID" },
{ true, FT_INT, "PlayerLevelToItemLevelCurveID" },
+ { false, FT_INT, "MaxDurability" },
{ false, FT_SHORT, "ItemNameDescriptionID" },
{ false, FT_SHORT, "RequiredTransmogHoliday" },
{ false, FT_SHORT, "RequiredHoliday" },
+ { false, FT_SHORT, "LimitCategory" },
{ false, FT_SHORT, "GemProperties" },
{ false, FT_SHORT, "SocketMatchEnchantmentId" },
{ false, FT_SHORT, "TotemCategoryID" },
@@ -3212,6 +3052,37 @@ struct ItemSparseLoadInfo
{ false, FT_SHORT, "RequiredSkill" },
{ false, FT_SHORT, "ItemLevel" },
{ true, FT_SHORT, "AllowableClass" },
+ { false, FT_SHORT, "ItemRandomSuffixGroupID" },
+ { false, FT_SHORT, "RandomSelect" },
+ { false, FT_SHORT, "MinDamage1" },
+ { false, FT_SHORT, "MinDamage2" },
+ { false, FT_SHORT, "MinDamage3" },
+ { false, FT_SHORT, "MinDamage4" },
+ { false, FT_SHORT, "MinDamage5" },
+ { false, FT_SHORT, "MaxDamage1" },
+ { false, FT_SHORT, "MaxDamage2" },
+ { false, FT_SHORT, "MaxDamage3" },
+ { false, FT_SHORT, "MaxDamage4" },
+ { false, FT_SHORT, "MaxDamage5" },
+ { true, FT_SHORT, "Resistances1" },
+ { true, FT_SHORT, "Resistances2" },
+ { true, FT_SHORT, "Resistances3" },
+ { true, FT_SHORT, "Resistances4" },
+ { true, FT_SHORT, "Resistances5" },
+ { true, FT_SHORT, "Resistances6" },
+ { true, FT_SHORT, "Resistances7" },
+ { false, FT_SHORT, "ScalingStatDistributionID" },
+ { true, FT_SHORT, "StatModifierBonusAmount1" },
+ { true, FT_SHORT, "StatModifierBonusAmount2" },
+ { true, FT_SHORT, "StatModifierBonusAmount3" },
+ { true, FT_SHORT, "StatModifierBonusAmount4" },
+ { true, FT_SHORT, "StatModifierBonusAmount5" },
+ { true, FT_SHORT, "StatModifierBonusAmount6" },
+ { true, FT_SHORT, "StatModifierBonusAmount7" },
+ { true, FT_SHORT, "StatModifierBonusAmount8" },
+ { true, FT_SHORT, "StatModifierBonusAmount9" },
+ { true, FT_SHORT, "StatModifierBonusAmount10" },
+ { false, FT_BYTE, "ExpansionID" },
{ false, FT_BYTE, "ArtifactID" },
{ false, FT_BYTE, "SpellWeight" },
{ false, FT_BYTE, "SpellWeightCategory" },
@@ -3221,6 +3092,7 @@ struct ItemSparseLoadInfo
{ false, FT_BYTE, "SheatheType" },
{ false, FT_BYTE, "Material" },
{ false, FT_BYTE, "PageMaterialID" },
+ { false, FT_BYTE, "LanguageID" },
{ false, FT_BYTE, "Bonding" },
{ false, FT_BYTE, "DamageDamageType" },
{ true, FT_BYTE, "StatModifierBonusStat1" },
@@ -3236,12 +3108,13 @@ struct ItemSparseLoadInfo
{ false, FT_BYTE, "ContainerSlots" },
{ false, FT_BYTE, "RequiredPVPMedal" },
{ false, FT_BYTE, "RequiredPVPRank" },
- { true, FT_BYTE, "RequiredLevel" },
{ true, FT_BYTE, "InventoryType" },
{ true, FT_BYTE, "OverallQualityID" },
+ { false, FT_BYTE, "AmmunitionType" },
+ { true, FT_BYTE, "RequiredLevel" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 98, &ItemSparseMeta::Instance, HOTFIX_SEL_ITEM_SPARSE };
+ static constexpr DB2LoadInfo Instance{ Fields, 130, &ItemSparseMeta::Instance, HOTFIX_SEL_ITEM_SPARSE };
};
struct ItemSpecLoadInfo
@@ -3284,29 +3157,16 @@ struct ItemXBonusTreeLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 3, &ItemXBonusTreeMeta::Instance, HOTFIX_SEL_ITEM_X_BONUS_TREE };
};
-struct ItemXItemEffectLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "ItemEffectID" },
- { false, FT_INT, "ItemID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &ItemXItemEffectMeta::Instance, HOTFIX_SEL_ITEM_X_ITEM_EFFECT };
-};
-
struct JournalEncounterLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[12] =
{
+ { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
{ false, FT_FLOAT, "MapX" },
{ false, FT_FLOAT, "MapY" },
- { false, FT_INT, "ID" },
{ false, FT_SHORT, "JournalInstanceID" },
- { false, FT_SHORT, "DungeonEncounterID" },
{ false, FT_INT, "OrderIndex" },
{ false, FT_SHORT, "FirstSectionID" },
{ false, FT_SHORT, "UiMapID" },
@@ -3315,7 +3175,7 @@ struct JournalEncounterLoadInfo
{ true, FT_BYTE, "DifficultyMask" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 13, &JournalEncounterMeta::Instance, HOTFIX_SEL_JOURNAL_ENCOUNTER };
+ static constexpr DB2LoadInfo Instance{ Fields, 12, &JournalEncounterMeta::Instance, HOTFIX_SEL_JOURNAL_ENCOUNTER };
};
struct JournalEncounterSectionLoadInfo
@@ -3347,9 +3207,9 @@ struct JournalInstanceLoadInfo
{
static constexpr DB2FieldMeta Fields[10] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
+ { false, FT_INT, "ID" },
{ false, FT_SHORT, "MapID" },
{ true, FT_INT, "BackgroundFileDataID" },
{ true, FT_INT, "ButtonFileDataID" },
@@ -3364,14 +3224,13 @@ struct JournalInstanceLoadInfo
struct JournalTierLoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[2] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { true, FT_INT, "PlayerConditionID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &JournalTierMeta::Instance, HOTFIX_SEL_JOURNAL_TIER };
+ static constexpr DB2LoadInfo Instance{ Fields, 2, &JournalTierMeta::Instance, HOTFIX_SEL_JOURNAL_TIER };
};
struct KeychainLoadInfo
@@ -3435,7 +3294,7 @@ struct LanguageWordsLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "Word" },
- { false, FT_INT, "LanguageID" },
+ { false, FT_BYTE, "LanguageID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 3, &LanguageWordsMeta::Instance, HOTFIX_SEL_LANGUAGE_WORDS };
@@ -3458,13 +3317,15 @@ struct LanguagesLoadInfo
struct LfgDungeonsLoadInfo
{
- static constexpr DB2FieldMeta Fields[31] =
+ static constexpr DB2FieldMeta Fields[35] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
+ { false, FT_BYTE, "MinLevel" },
+ { false, FT_SHORT, "MaxLevel" },
{ false, FT_BYTE, "TypeID" },
- { true, FT_BYTE, "Subtype" },
+ { false, FT_BYTE, "Subtype" },
{ true, FT_BYTE, "Faction" },
{ true, FT_INT, "IconTextureFileID" },
{ true, FT_INT, "RewardsBgTextureFileID" },
@@ -3476,6 +3337,9 @@ struct LfgDungeonsLoadInfo
{ false, FT_BYTE, "GroupID" },
{ false, FT_BYTE, "OrderIndex" },
{ false, FT_INT, "RequiredPlayerConditionId" },
+ { false, FT_BYTE, "TargetLevel" },
+ { false, FT_BYTE, "TargetLevelMin" },
+ { false, FT_SHORT, "TargetLevelMax" },
{ false, FT_SHORT, "RandomID" },
{ false, FT_SHORT, "ScenarioID" },
{ false, FT_SHORT, "FinalEncounterID" },
@@ -3488,12 +3352,11 @@ struct LfgDungeonsLoadInfo
{ false, FT_SHORT, "BonusReputationAmount" },
{ false, FT_SHORT, "MentorItemLevel" },
{ false, FT_BYTE, "MentorCharLevel" },
- { true, FT_INT, "ContentTuningID" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 31, &LFGDungeonsMeta::Instance, HOTFIX_SEL_LFG_DUNGEONS };
+ static constexpr DB2LoadInfo Instance{ Fields, 35, &LFGDungeonsMeta::Instance, HOTFIX_SEL_LFG_DUNGEONS };
};
struct LightLoadInfo
@@ -3587,10 +3450,9 @@ struct LiquidTypeLoadInfo
struct LockLoadInfo
{
- static constexpr DB2FieldMeta Fields[34] =
+ static constexpr DB2FieldMeta Fields[33] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "Flags" },
{ true, FT_INT, "Index1" },
{ true, FT_INT, "Index2" },
{ true, FT_INT, "Index3" },
@@ -3625,7 +3487,7 @@ struct LockLoadInfo
{ false, FT_BYTE, "Action8" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 34, &LockMeta::Instance, HOTFIX_SEL_LOCK };
+ static constexpr DB2LoadInfo Instance{ Fields, 33, &LockMeta::Instance, HOTFIX_SEL_LOCK };
};
struct MailTemplateLoadInfo
@@ -3641,7 +3503,7 @@ struct MailTemplateLoadInfo
struct MapLoadInfo
{
- static constexpr DB2FieldMeta Fields[28] =
+ static constexpr DB2FieldMeta Fields[25] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "Directory" },
@@ -3650,8 +3512,6 @@ struct MapLoadInfo
{ false, FT_STRING, "MapDescription1" },
{ false, FT_STRING, "PvpShortDescription" },
{ false, FT_STRING, "PvpLongDescription" },
- { false, FT_FLOAT, "CorpseX" },
- { false, FT_FLOAT, "CorpseY" },
{ false, FT_BYTE, "MapType" },
{ true, FT_BYTE, "InstanceType" },
{ false, FT_BYTE, "ExpansionID" },
@@ -3662,18 +3522,17 @@ struct MapLoadInfo
{ true, FT_SHORT, "CosmeticParentMapID" },
{ false, FT_BYTE, "TimeOffset" },
{ false, FT_FLOAT, "MinimapIconScale" },
+ { true, FT_INT, "RaidOffset" },
{ true, FT_SHORT, "CorpseMapID" },
{ false, FT_BYTE, "MaxPlayers" },
{ true, FT_SHORT, "WindSettingsID" },
{ true, FT_INT, "ZmpFileDataID" },
- { true, FT_INT, "WdtFileDataID" },
- { true, FT_INT, "NavigationMaxDistance" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
{ true, FT_INT, "Flags3" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 28, &MapMeta::Instance, HOTFIX_SEL_MAP };
+ static constexpr DB2LoadInfo Instance{ Fields, 25, &MapMeta::Instance, HOTFIX_SEL_MAP };
};
struct MapChallengeModeLoadInfo
@@ -3700,14 +3559,14 @@ struct MapDifficultyLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Message" },
- { true, FT_INT, "DifficultyID" },
- { true, FT_INT, "LockID" },
- { true, FT_BYTE, "ResetInterval" },
- { true, FT_INT, "MaxPlayers" },
- { true, FT_INT, "ItemContext" },
- { true, FT_INT, "ItemContextPickerID" },
- { true, FT_INT, "Flags" },
+ { false, FT_INT, "ItemContextPickerID" },
{ true, FT_INT, "ContentTuningID" },
+ { true, FT_INT, "ItemContext" },
+ { false, FT_BYTE, "DifficultyID" },
+ { false, FT_BYTE, "LockID" },
+ { false, FT_BYTE, "ResetInterval" },
+ { false, FT_BYTE, "MaxPlayers" },
+ { false, FT_BYTE, "Flags" },
{ false, FT_INT, "MapID" },
};
@@ -3728,18 +3587,6 @@ struct MapDifficultyXConditionLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 5, &MapDifficultyXConditionMeta::Instance, HOTFIX_SEL_MAP_DIFFICULTY_X_CONDITION };
};
-struct MawPowerLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "SpellID" },
- { true, FT_INT, "MawPowerRarityID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &MawPowerMeta::Instance, HOTFIX_SEL_MAW_POWER };
-};
-
struct ModifierTreeLoadInfo
{
static constexpr DB2FieldMeta Fields[8] =
@@ -3751,7 +3598,7 @@ struct ModifierTreeLoadInfo
{ true, FT_INT, "Type" },
{ true, FT_INT, "Asset" },
{ true, FT_INT, "SecondaryAsset" },
- { true, FT_INT, "TertiaryAsset" },
+ { true, FT_BYTE, "TertiaryAsset" },
};
static constexpr DB2LoadInfo Instance{ Fields, 8, &ModifierTreeMeta::Instance, HOTFIX_SEL_MODIFIER_TREE };
@@ -3759,7 +3606,7 @@ struct ModifierTreeLoadInfo
struct MountLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "SourceText" },
@@ -3772,16 +3619,14 @@ struct MountLoadInfo
{ false, FT_INT, "PlayerConditionID" },
{ false, FT_FLOAT, "MountFlyRideHeight" },
{ true, FT_INT, "UiModelSceneID" },
- { true, FT_INT, "MountSpecialRiderAnimKitID" },
- { true, FT_INT, "MountSpecialSpellVisualKitID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 13, &MountMeta::Instance, HOTFIX_SEL_MOUNT };
+ static constexpr DB2LoadInfo Instance{ Fields, 11, &MountMeta::Instance, HOTFIX_SEL_MOUNT };
};
struct MountCapabilityLoadInfo
{
- static constexpr DB2FieldMeta Fields[10] =
+ static constexpr DB2FieldMeta Fields[8] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Flags" },
@@ -3791,11 +3636,9 @@ struct MountCapabilityLoadInfo
{ true, FT_INT, "ReqSpellKnownID" },
{ true, FT_INT, "ModSpellAuraID" },
{ true, FT_SHORT, "ReqMapID" },
- { true, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "FlightCapabilityID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 10, &MountCapabilityMeta::Instance, HOTFIX_SEL_MOUNT_CAPABILITY };
+ static constexpr DB2LoadInfo Instance{ Fields, 8, &MountCapabilityMeta::Instance, HOTFIX_SEL_MOUNT_CAPABILITY };
};
struct MountTypeXCapabilityLoadInfo
@@ -3826,17 +3669,16 @@ struct MountXDisplayLoadInfo
struct MovieLoadInfo
{
- static constexpr DB2FieldMeta Fields[6] =
+ static constexpr DB2FieldMeta Fields[5] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "Volume" },
{ false, FT_BYTE, "KeyID" },
{ false, FT_INT, "AudioFileDataID" },
{ false, FT_INT, "SubtitleFileDataID" },
- { false, FT_INT, "SubtitleFileFormat" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 6, &MovieMeta::Instance, HOTFIX_SEL_MOVIE };
+ static constexpr DB2LoadInfo Instance{ Fields, 5, &MovieMeta::Instance, HOTFIX_SEL_MOVIE };
};
struct MythicPlusSeasonLoadInfo
@@ -3902,15 +3744,16 @@ struct NamesReservedLocaleLoadInfo
struct NumTalentsAtLevelLoadInfo
{
- static constexpr DB2FieldMeta Fields[4] =
+ static constexpr DB2FieldMeta Fields[5] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "NumTalents" },
{ true, FT_INT, "NumTalentsDeathKnight" },
{ true, FT_INT, "NumTalentsDemonHunter" },
+ { false, FT_FLOAT, "NumberOfTalents" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 4, &NumTalentsAtLevelMeta::Instance, HOTFIX_SEL_NUM_TALENTS_AT_LEVEL };
+ static constexpr DB2LoadInfo Instance{ Fields, 5, &NumTalentsAtLevelMeta::Instance, HOTFIX_SEL_NUM_TALENTS_AT_LEVEL };
};
struct OverrideSpellDataLoadInfo
@@ -3973,14 +3816,16 @@ struct PhaseXPhaseGroupLoadInfo
struct PlayerConditionLoadInfo
{
- static constexpr DB2FieldMeta Fields[160] =
+ static constexpr DB2FieldMeta Fields[147] =
{
- { false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
{ false, FT_STRING, "FailureDescription" },
+ { false, FT_INT, "ID" },
+ { false, FT_SHORT, "MinLevel" },
+ { false, FT_SHORT, "MaxLevel" },
{ true, FT_INT, "ClassMask" },
{ false, FT_INT, "SkillLogic" },
- { true, FT_INT, "LanguageID" },
+ { false, FT_BYTE, "LanguageID" },
{ false, FT_BYTE, "MinLanguage" },
{ true, FT_INT, "MaxLanguage" },
{ false, FT_SHORT, "MaxFactionID" },
@@ -3996,7 +3841,7 @@ struct PlayerConditionLoadInfo
{ false, FT_BYTE, "ItemFlags" },
{ false, FT_INT, "AuraSpellLogic" },
{ false, FT_SHORT, "WorldStateExpressionID" },
- { true, FT_INT, "WeatherID" },
+ { false, FT_BYTE, "WeatherID" },
{ false, FT_BYTE, "PartyStatus" },
{ false, FT_BYTE, "LifetimeMaxPVPRank" },
{ false, FT_INT, "AchievementLogic" },
@@ -4005,7 +3850,7 @@ struct PlayerConditionLoadInfo
{ false, FT_INT, "AreaLogic" },
{ false, FT_INT, "LfgLogic" },
{ false, FT_INT, "CurrencyLogic" },
- { true, FT_INT, "QuestKillID" },
+ { false, FT_INT, "QuestKillID" },
{ false, FT_INT, "QuestKillLogic" },
{ true, FT_BYTE, "MinExpansionLevel" },
{ true, FT_BYTE, "MaxExpansionLevel" },
@@ -4016,7 +3861,7 @@ struct PlayerConditionLoadInfo
{ true, FT_INT, "PhaseUseFlags" },
{ false, FT_SHORT, "PhaseID" },
{ false, FT_INT, "PhaseGroupID" },
- { true, FT_INT, "Flags" },
+ { false, FT_BYTE, "Flags" },
{ true, FT_BYTE, "ChrSpecializationIndex" },
{ true, FT_BYTE, "ChrSpecializationRole" },
{ false, FT_INT, "ModifierTreeID" },
@@ -4030,9 +3875,6 @@ struct PlayerConditionLoadInfo
{ true, FT_BYTE, "MinExpansionTier" },
{ false, FT_BYTE, "MinPVPRank" },
{ false, FT_BYTE, "MaxPVPRank" },
- { true, FT_INT, "ContentTuningID" },
- { true, FT_INT, "CovenantID" },
- { false, FT_INT, "TraitNodeEntryLogic" },
{ false, FT_SHORT, "SkillID1" },
{ false, FT_SHORT, "SkillID2" },
{ false, FT_SHORT, "SkillID3" },
@@ -4051,18 +3893,18 @@ struct PlayerConditionLoadInfo
{ false, FT_BYTE, "MinReputation1" },
{ false, FT_BYTE, "MinReputation2" },
{ false, FT_BYTE, "MinReputation3" },
- { true, FT_INT, "PrevQuestID1" },
- { true, FT_INT, "PrevQuestID2" },
- { true, FT_INT, "PrevQuestID3" },
- { true, FT_INT, "PrevQuestID4" },
- { true, FT_INT, "CurrQuestID1" },
- { true, FT_INT, "CurrQuestID2" },
- { true, FT_INT, "CurrQuestID3" },
- { true, FT_INT, "CurrQuestID4" },
- { true, FT_INT, "CurrentCompletedQuestID1" },
- { true, FT_INT, "CurrentCompletedQuestID2" },
- { true, FT_INT, "CurrentCompletedQuestID3" },
- { true, FT_INT, "CurrentCompletedQuestID4" },
+ { false, FT_INT, "PrevQuestID1" },
+ { false, FT_INT, "PrevQuestID2" },
+ { false, FT_INT, "PrevQuestID3" },
+ { false, FT_INT, "PrevQuestID4" },
+ { false, FT_INT, "CurrQuestID1" },
+ { false, FT_INT, "CurrQuestID2" },
+ { false, FT_INT, "CurrQuestID3" },
+ { false, FT_INT, "CurrQuestID4" },
+ { false, FT_INT, "CurrentCompletedQuestID1" },
+ { false, FT_INT, "CurrentCompletedQuestID2" },
+ { false, FT_INT, "CurrentCompletedQuestID3" },
+ { false, FT_INT, "CurrentCompletedQuestID4" },
{ true, FT_INT, "SpellID1" },
{ true, FT_INT, "SpellID2" },
{ true, FT_INT, "SpellID3" },
@@ -4123,21 +3965,9 @@ struct PlayerConditionLoadInfo
{ false, FT_INT, "QuestKillMonster6" },
{ true, FT_INT, "MovementFlags1" },
{ true, FT_INT, "MovementFlags2" },
- { true, FT_INT, "TraitNodeEntryID1" },
- { true, FT_INT, "TraitNodeEntryID2" },
- { true, FT_INT, "TraitNodeEntryID3" },
- { true, FT_INT, "TraitNodeEntryID4" },
- { false, FT_SHORT, "TraitNodeEntryMinRank1" },
- { false, FT_SHORT, "TraitNodeEntryMinRank2" },
- { false, FT_SHORT, "TraitNodeEntryMinRank3" },
- { false, FT_SHORT, "TraitNodeEntryMinRank4" },
- { false, FT_SHORT, "TraitNodeEntryMaxRank1" },
- { false, FT_SHORT, "TraitNodeEntryMaxRank2" },
- { false, FT_SHORT, "TraitNodeEntryMaxRank3" },
- { false, FT_SHORT, "TraitNodeEntryMaxRank4" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 160, &PlayerConditionMeta::Instance, HOTFIX_SEL_PLAYER_CONDITION };
+ static constexpr DB2LoadInfo Instance{ Fields, 147, &PlayerConditionMeta::Instance, HOTFIX_SEL_PLAYER_CONDITION };
};
struct PowerDisplayLoadInfo
@@ -4159,9 +3989,9 @@ struct PowerTypeLoadInfo
{
static constexpr DB2FieldMeta Fields[13] =
{
+ { false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "NameGlobalStringTag" },
{ false, FT_STRING_NOT_LOCALIZED, "CostGlobalStringTag" },
- { false, FT_INT, "ID" },
{ true, FT_BYTE, "PowerTypeEnum" },
{ true, FT_INT, "MinPower" },
{ true, FT_INT, "MaxBasePower" },
@@ -4218,18 +4048,6 @@ struct PvpItemLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 3, &PVPItemMeta::Instance, HOTFIX_SEL_PVP_ITEM };
};
-struct PvpStatLoadInfo
-{
- static constexpr DB2FieldMeta Fields[3] =
- {
- { false, FT_STRING, "Description" },
- { false, FT_INT, "ID" },
- { true, FT_INT, "MapID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 3, &PVPStatMeta::Instance, HOTFIX_SEL_PVP_STAT };
-};
-
struct PvpSeasonLoadInfo
{
static constexpr DB2FieldMeta Fields[4] =
@@ -4245,7 +4063,7 @@ struct PvpSeasonLoadInfo
struct PvpTalentLoadInfo
{
- static constexpr DB2FieldMeta Fields[10] =
+ static constexpr DB2FieldMeta Fields[9] =
{
{ false, FT_STRING, "Description" },
{ false, FT_INT, "ID" },
@@ -4256,10 +4074,9 @@ struct PvpTalentLoadInfo
{ true, FT_INT, "ActionBarSpellID" },
{ true, FT_INT, "PvpTalentCategoryID" },
{ true, FT_INT, "LevelRequired" },
- { true, FT_INT, "PlayerConditionID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 10, &PvpTalentMeta::Instance, HOTFIX_SEL_PVP_TALENT };
+ static constexpr DB2LoadInfo Instance{ Fields, 9, &PvpTalentMeta::Instance, HOTFIX_SEL_PVP_TALENT };
};
struct PvpTalentCategoryLoadInfo
@@ -4291,8 +4108,8 @@ struct PvpTierLoadInfo
{
static constexpr DB2FieldMeta Fields[9] =
{
- { false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
+ { false, FT_STRING, "Name" },
{ true, FT_SHORT, "MinRating" },
{ true, FT_SHORT, "MaxRating" },
{ true, FT_INT, "PrevTier" },
@@ -4341,16 +4158,15 @@ struct QuestInfoLoadInfo
struct QuestLineXQuestLoadInfo
{
- static constexpr DB2FieldMeta Fields[5] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "QuestLineID" },
{ false, FT_INT, "QuestID" },
{ false, FT_INT, "OrderIndex" },
- { true, FT_INT, "Flags" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 5, &QuestLineXQuestMeta::Instance, HOTFIX_SEL_QUEST_LINE_X_QUEST };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &QuestLineXQuestMeta::Instance, HOTFIX_SEL_QUEST_LINE_X_QUEST };
};
struct QuestMoneyRewardLoadInfo
@@ -4401,14 +4217,13 @@ struct QuestSortLoadInfo
struct QuestV2LoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[2] =
{
{ false, FT_INT, "ID" },
{ false, FT_SHORT, "UniqueBitFlag" },
- { true, FT_INT, "UiQuestDetailsTheme" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &QuestV2Meta::Instance, HOTFIX_SEL_QUEST_V2 };
+ static constexpr DB2LoadInfo Instance{ Fields, 2, &QuestV2Meta::Instance, HOTFIX_SEL_QUEST_V2 };
};
struct QuestXpLoadInfo
@@ -4416,16 +4231,16 @@ struct QuestXpLoadInfo
static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "Difficulty1" },
- { false, FT_SHORT, "Difficulty2" },
- { false, FT_SHORT, "Difficulty3" },
- { false, FT_SHORT, "Difficulty4" },
- { false, FT_SHORT, "Difficulty5" },
- { false, FT_SHORT, "Difficulty6" },
- { false, FT_SHORT, "Difficulty7" },
- { false, FT_SHORT, "Difficulty8" },
- { false, FT_SHORT, "Difficulty9" },
- { false, FT_SHORT, "Difficulty10" },
+ { true, FT_INT, "Difficulty1" },
+ { true, FT_INT, "Difficulty2" },
+ { true, FT_INT, "Difficulty3" },
+ { true, FT_INT, "Difficulty4" },
+ { true, FT_INT, "Difficulty5" },
+ { true, FT_INT, "Difficulty6" },
+ { true, FT_INT, "Difficulty7" },
+ { true, FT_INT, "Difficulty8" },
+ { true, FT_INT, "Difficulty9" },
+ { true, FT_INT, "Difficulty10" },
};
static constexpr DB2LoadInfo Instance{ Fields, 11, &QuestXPMeta::Instance, HOTFIX_SEL_QUEST_XP };
@@ -4433,28 +4248,10 @@ struct QuestXpLoadInfo
struct RandPropPointsLoadInfo
{
- static constexpr DB2FieldMeta Fields[35] =
+ static constexpr DB2FieldMeta Fields[17] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DamageReplaceStatF" },
- { false, FT_FLOAT, "DamageSecondaryF" },
{ true, FT_INT, "DamageReplaceStat" },
- { true, FT_INT, "DamageSecondary" },
- { false, FT_FLOAT, "EpicF1" },
- { false, FT_FLOAT, "EpicF2" },
- { false, FT_FLOAT, "EpicF3" },
- { false, FT_FLOAT, "EpicF4" },
- { false, FT_FLOAT, "EpicF5" },
- { false, FT_FLOAT, "SuperiorF1" },
- { false, FT_FLOAT, "SuperiorF2" },
- { false, FT_FLOAT, "SuperiorF3" },
- { false, FT_FLOAT, "SuperiorF4" },
- { false, FT_FLOAT, "SuperiorF5" },
- { false, FT_FLOAT, "GoodF1" },
- { false, FT_FLOAT, "GoodF2" },
- { false, FT_FLOAT, "GoodF3" },
- { false, FT_FLOAT, "GoodF4" },
- { false, FT_FLOAT, "GoodF5" },
{ false, FT_INT, "Epic1" },
{ false, FT_INT, "Epic2" },
{ false, FT_INT, "Epic3" },
@@ -4472,7 +4269,7 @@ struct RandPropPointsLoadInfo
{ false, FT_INT, "Good5" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 35, &RandPropPointsMeta::Instance, HOTFIX_SEL_RAND_PROP_POINTS };
+ static constexpr DB2LoadInfo Instance{ Fields, 17, &RandPropPointsMeta::Instance, HOTFIX_SEL_RAND_PROP_POINTS };
};
struct RewardPackLoadInfo
@@ -4541,7 +4338,7 @@ struct ScenarioStepLoadInfo
{ false, FT_STRING, "Title" },
{ false, FT_SHORT, "ScenarioID" },
{ false, FT_INT, "Criteriatreeid" },
- { true, FT_INT, "RewardQuestID" },
+ { false, FT_INT, "RewardQuestID" },
{ true, FT_INT, "RelatedStep" },
{ false, FT_SHORT, "Supersedes" },
{ false, FT_BYTE, "OrderIndex" },
@@ -4580,14 +4377,13 @@ struct SceneScriptGlobalTextLoadInfo
struct SceneScriptPackageLoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[2] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "Name" },
- { true, FT_INT, "Unknown915" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &SceneScriptPackageMeta::Instance, HOTFIX_SEL_SCENE_SCRIPT_PACKAGE };
+ static constexpr DB2LoadInfo Instance{ Fields, 2, &SceneScriptPackageMeta::Instance, HOTFIX_SEL_SCENE_SCRIPT_PACKAGE };
};
struct SceneScriptTextLoadInfo
@@ -4615,7 +4411,7 @@ struct ServerMessagesLoadInfo
struct SkillLineLoadInfo
{
- static constexpr DB2FieldMeta Fields[15] =
+ static constexpr DB2FieldMeta Fields[13] =
{
{ false, FT_STRING, "DisplayName" },
{ false, FT_STRING, "AlternateVerb" },
@@ -4630,11 +4426,9 @@ struct SkillLineLoadInfo
{ true, FT_INT, "ParentTierIndex" },
{ false, FT_SHORT, "Flags" },
{ true, FT_INT, "SpellBookSpellID" },
- { true, FT_INT, "ExpansionNameSharedStringID" },
- { true, FT_INT, "HordeExpansionNameSharedStringID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 15, &SkillLineMeta::Instance, HOTFIX_SEL_SKILL_LINE };
+ static constexpr DB2LoadInfo Instance{ Fields, 13, &SkillLineMeta::Instance, HOTFIX_SEL_SKILL_LINE };
};
struct SkillLineAbilityLoadInfo
@@ -4642,8 +4436,6 @@ struct SkillLineAbilityLoadInfo
static constexpr DB2FieldMeta Fields[17] =
{
{ true, FT_LONG, "RaceMask" },
- { false, FT_STRING, "AbilityVerb" },
- { false, FT_STRING, "AbilityAllVerb" },
{ false, FT_INT, "ID" },
{ true, FT_SHORT, "SkillLine" },
{ true, FT_INT, "Spell" },
@@ -4653,11 +4445,13 @@ struct SkillLineAbilityLoadInfo
{ true, FT_BYTE, "AcquireMethod" },
{ true, FT_SHORT, "TrivialSkillLineRankHigh" },
{ true, FT_SHORT, "TrivialSkillLineRankLow" },
- { true, FT_INT, "Flags" },
+ { true, FT_BYTE, "Flags" },
{ true, FT_BYTE, "NumSkillUps" },
{ true, FT_SHORT, "UniqueBit" },
{ true, FT_SHORT, "TradeSkillCategoryID" },
{ true, FT_SHORT, "SkillupSkillLineID" },
+ { true, FT_INT, "CharacterPoints1" },
+ { true, FT_INT, "CharacterPoints2" },
};
static constexpr DB2LoadInfo Instance{ Fields, 17, &SkillLineAbilityMeta::Instance, HOTFIX_SEL_SKILL_LINE_ABILITY };
@@ -4678,7 +4472,7 @@ struct SkillLineXTraitTreeLoadInfo
struct SkillRaceClassInfoLoadInfo
{
- static constexpr DB2FieldMeta Fields[8] =
+ static constexpr DB2FieldMeta Fields[9] =
{
{ false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
@@ -4688,23 +4482,10 @@ struct SkillRaceClassInfoLoadInfo
{ true, FT_BYTE, "Availability" },
{ true, FT_BYTE, "MinLevel" },
{ true, FT_SHORT, "SkillTierID" },
+ { true, FT_INT, "Unknown115_1" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 8, &SkillRaceClassInfoMeta::Instance, HOTFIX_SEL_SKILL_RACE_CLASS_INFO };
-};
-
-struct SoulbindConduitRankLoadInfo
-{
- static constexpr DB2FieldMeta Fields[5] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "RankIndex" },
- { true, FT_INT, "SpellID" },
- { false, FT_FLOAT, "AuraPointsOverride" },
- { false, FT_INT, "SoulbindConduitID" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 5, &SoulbindConduitRankMeta::Instance, HOTFIX_SEL_SOULBIND_CONDUIT_RANK };
+ static constexpr DB2LoadInfo Instance{ Fields, 9, &SkillRaceClassInfoMeta::Instance, HOTFIX_SEL_SKILL_RACE_CLASS_INFO };
};
struct SoundKitLoadInfo
@@ -4712,9 +4493,9 @@ struct SoundKitLoadInfo
static constexpr DB2FieldMeta Fields[17] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "SoundType" },
+ { false, FT_BYTE, "SoundType" },
{ false, FT_FLOAT, "VolumeFloat" },
- { true, FT_INT, "Flags" },
+ { false, FT_SHORT, "Flags" },
{ false, FT_FLOAT, "MinDistance" },
{ false, FT_FLOAT, "DistanceCutoff" },
{ false, FT_BYTE, "EAXDef" },
@@ -4766,7 +4547,7 @@ struct SpellAuraOptionsLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_SHORT, "CumulativeAura" },
+ { false, FT_INT, "CumulativeAura" },
{ true, FT_INT, "ProcCategoryRecovery" },
{ false, FT_BYTE, "ProcChance" },
{ true, FT_INT, "ProcCharges" },
@@ -4781,38 +4562,35 @@ struct SpellAuraOptionsLoadInfo
struct SpellAuraRestrictionsLoadInfo
{
- static constexpr DB2FieldMeta Fields[15] =
+ static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "DifficultyID" },
- { true, FT_INT, "CasterAuraState" },
- { true, FT_INT, "TargetAuraState" },
- { true, FT_INT, "ExcludeCasterAuraState" },
- { true, FT_INT, "ExcludeTargetAuraState" },
+ { false, FT_BYTE, "DifficultyID" },
+ { false, FT_BYTE, "CasterAuraState" },
+ { false, FT_BYTE, "TargetAuraState" },
+ { false, FT_BYTE, "ExcludeCasterAuraState" },
+ { false, FT_BYTE, "ExcludeTargetAuraState" },
{ true, FT_INT, "CasterAuraSpell" },
{ true, FT_INT, "TargetAuraSpell" },
{ true, FT_INT, "ExcludeCasterAuraSpell" },
{ true, FT_INT, "ExcludeTargetAuraSpell" },
- { true, FT_INT, "CasterAuraType" },
- { true, FT_INT, "TargetAuraType" },
- { true, FT_INT, "ExcludeCasterAuraType" },
- { true, FT_INT, "ExcludeTargetAuraType" },
{ false, FT_INT, "SpellID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 15, &SpellAuraRestrictionsMeta::Instance, HOTFIX_SEL_SPELL_AURA_RESTRICTIONS };
+ static constexpr DB2LoadInfo Instance{ Fields, 11, &SpellAuraRestrictionsMeta::Instance, HOTFIX_SEL_SPELL_AURA_RESTRICTIONS };
};
struct SpellCastTimesLoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Base" },
+ { true, FT_SHORT, "PerLevel" },
{ true, FT_INT, "Minimum" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &SpellCastTimesMeta::Instance, HOTFIX_SEL_SPELL_CAST_TIMES };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &SpellCastTimesMeta::Instance, HOTFIX_SEL_SPELL_CAST_TIMES };
};
struct SpellCastingRequirementsLoadInfo
@@ -4902,14 +4680,15 @@ struct SpellCooldownsLoadInfo
struct SpellDurationLoadInfo
{
- static constexpr DB2FieldMeta Fields[3] =
+ static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Duration" },
+ { false, FT_INT, "DurationPerLevel" },
{ true, FT_INT, "MaxDuration" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 3, &SpellDurationMeta::Instance, HOTFIX_SEL_SPELL_DURATION };
+ static constexpr DB2LoadInfo Instance{ Fields, 4, &SpellDurationMeta::Instance, HOTFIX_SEL_SPELL_DURATION };
};
struct SpellEffectLoadInfo
@@ -4917,16 +4696,18 @@ struct SpellEffectLoadInfo
static constexpr DB2FieldMeta Fields[36] =
{
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "EffectAura" },
{ true, FT_INT, "DifficultyID" },
{ true, FT_INT, "EffectIndex" },
{ false, FT_INT, "Effect" },
{ false, FT_FLOAT, "EffectAmplitude" },
{ true, FT_INT, "EffectAttributes" },
+ { true, FT_SHORT, "EffectAura" },
{ true, FT_INT, "EffectAuraPeriod" },
+ { true, FT_INT, "EffectBasePoints" },
{ false, FT_FLOAT, "EffectBonusCoefficient" },
{ false, FT_FLOAT, "EffectChainAmplitude" },
{ true, FT_INT, "EffectChainTargets" },
+ { true, FT_INT, "EffectDieSides" },
{ true, FT_INT, "EffectItemType" },
{ true, FT_INT, "EffectMechanic" },
{ false, FT_FLOAT, "EffectPointsPerResource" },
@@ -4939,8 +4720,6 @@ struct SpellEffectLoadInfo
{ false, FT_FLOAT, "Variance" },
{ false, FT_FLOAT, "ResourceCoefficient" },
{ false, FT_FLOAT, "GroupSizeBasePointsCoefficient" },
- { false, FT_FLOAT, "EffectBasePoints" },
- { true, FT_INT, "ScalingClass" },
{ true, FT_INT, "EffectMiscValue1" },
{ true, FT_INT, "EffectMiscValue2" },
{ false, FT_INT, "EffectRadiusIndex1" },
@@ -5001,26 +4780,27 @@ struct SpellInterruptsLoadInfo
struct SpellItemEnchantmentLoadInfo
{
- static constexpr DB2FieldMeta Fields[32] =
+ static constexpr DB2FieldMeta Fields[33] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "HordeName" },
- { true, FT_INT, "Duration" },
{ false, FT_INT, "EffectArg1" },
{ false, FT_INT, "EffectArg2" },
{ false, FT_INT, "EffectArg3" },
{ false, FT_FLOAT, "EffectScalingPoints1" },
{ false, FT_FLOAT, "EffectScalingPoints2" },
{ false, FT_FLOAT, "EffectScalingPoints3" },
- { false, FT_INT, "IconFileDataID" },
- { true, FT_INT, "MinItemLevel" },
- { true, FT_INT, "MaxItemLevel" },
+ { false, FT_INT, "GemItemID" },
{ false, FT_INT, "TransmogUseConditionID" },
{ false, FT_INT, "TransmogCost" },
+ { false, FT_INT, "IconFileDataID" },
{ true, FT_SHORT, "EffectPointsMin1" },
{ true, FT_SHORT, "EffectPointsMin2" },
{ true, FT_SHORT, "EffectPointsMin3" },
+ { true, FT_SHORT, "EffectPointsMax1" },
+ { true, FT_SHORT, "EffectPointsMax2" },
+ { true, FT_SHORT, "EffectPointsMax3" },
{ false, FT_SHORT, "ItemVisual" },
{ false, FT_SHORT, "Flags" },
{ false, FT_SHORT, "RequiredSkillID" },
@@ -5037,7 +4817,7 @@ struct SpellItemEnchantmentLoadInfo
{ false, FT_BYTE, "MaxLevel" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 32, &SpellItemEnchantmentMeta::Instance, HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT };
+ static constexpr DB2LoadInfo Instance{ Fields, 33, &SpellItemEnchantmentMeta::Instance, HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT };
};
struct SpellItemEnchantmentConditionLoadInfo
@@ -5125,10 +4905,10 @@ struct SpellLevelsLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "DifficultyID" },
+ { true, FT_SHORT, "BaseLevel" },
{ true, FT_SHORT, "MaxLevel" },
+ { true, FT_SHORT, "SpellLevel" },
{ false, FT_BYTE, "MaxPassiveAuraLevel" },
- { true, FT_INT, "BaseLevel" },
- { true, FT_INT, "SpellLevel" },
{ false, FT_INT, "SpellID" },
};
@@ -5137,7 +4917,7 @@ struct SpellLevelsLoadInfo
struct SpellMiscLoadInfo
{
- static constexpr DB2FieldMeta Fields[31] =
+ static constexpr DB2FieldMeta Fields[29] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Attributes1" },
@@ -5167,12 +4947,10 @@ struct SpellMiscLoadInfo
{ true, FT_INT, "ActiveIconFileDataID" },
{ true, FT_INT, "ContentTuningID" },
{ true, FT_INT, "ShowFutureSpellPlayerConditionID" },
- { true, FT_INT, "SpellVisualScript" },
- { true, FT_INT, "ActiveSpellVisualScript" },
{ false, FT_INT, "SpellID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 31, &SpellMiscMeta::Instance, HOTFIX_SEL_SPELL_MISC };
+ static constexpr DB2LoadInfo Instance{ Fields, 29, &SpellMiscMeta::Instance, HOTFIX_SEL_SPELL_MISC };
};
struct SpellNameLoadInfo
@@ -5188,7 +4966,7 @@ struct SpellNameLoadInfo
struct SpellPowerLoadInfo
{
- static constexpr DB2FieldMeta Fields[15] =
+ static constexpr DB2FieldMeta Fields[14] =
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "OrderIndex" },
@@ -5199,7 +4977,6 @@ struct SpellPowerLoadInfo
{ true, FT_INT, "AltPowerBarID" },
{ false, FT_FLOAT, "PowerCostPct" },
{ false, FT_FLOAT, "PowerCostMaxPct" },
- { false, FT_FLOAT, "OptionalCostPct" },
{ false, FT_FLOAT, "PowerPctPerSecond" },
{ true, FT_BYTE, "PowerType" },
{ true, FT_INT, "RequiredAuraSpellID" },
@@ -5207,7 +4984,7 @@ struct SpellPowerLoadInfo
{ false, FT_INT, "SpellID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 15, &SpellPowerMeta::Instance, HOTFIX_SEL_SPELL_POWER };
+ static constexpr DB2LoadInfo Instance{ Fields, 14, &SpellPowerMeta::Instance, HOTFIX_SEL_SPELL_POWER };
};
struct SpellPowerDifficultyLoadInfo
@@ -5240,7 +5017,7 @@ struct SpellProcsPerMinuteModLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "Type" },
- { true, FT_INT, "Param" },
+ { true, FT_SHORT, "Param" },
{ false, FT_FLOAT, "Coeff" },
{ false, FT_INT, "SpellProcsPerMinuteID" },
};
@@ -5281,7 +5058,7 @@ struct SpellRangeLoadInfo
struct SpellReagentsLoadInfo
{
- static constexpr DB2FieldMeta Fields[34] =
+ static constexpr DB2FieldMeta Fields[18] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "SpellID" },
@@ -5301,25 +5078,9 @@ struct SpellReagentsLoadInfo
{ true, FT_SHORT, "ReagentCount6" },
{ true, FT_SHORT, "ReagentCount7" },
{ true, FT_SHORT, "ReagentCount8" },
- { true, FT_SHORT, "ReagentRecraftCount1" },
- { true, FT_SHORT, "ReagentRecraftCount2" },
- { true, FT_SHORT, "ReagentRecraftCount3" },
- { true, FT_SHORT, "ReagentRecraftCount4" },
- { true, FT_SHORT, "ReagentRecraftCount5" },
- { true, FT_SHORT, "ReagentRecraftCount6" },
- { true, FT_SHORT, "ReagentRecraftCount7" },
- { true, FT_SHORT, "ReagentRecraftCount8" },
- { false, FT_BYTE, "ReagentSource1" },
- { false, FT_BYTE, "ReagentSource2" },
- { false, FT_BYTE, "ReagentSource3" },
- { false, FT_BYTE, "ReagentSource4" },
- { false, FT_BYTE, "ReagentSource5" },
- { false, FT_BYTE, "ReagentSource6" },
- { false, FT_BYTE, "ReagentSource7" },
- { false, FT_BYTE, "ReagentSource8" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 34, &SpellReagentsMeta::Instance, HOTFIX_SEL_SPELL_REAGENTS };
+ };
+
+ static constexpr DB2LoadInfo Instance{ Fields, 18, &SpellReagentsMeta::Instance, HOTFIX_SEL_SPELL_REAGENTS };
};
struct SpellReagentsCurrencyLoadInfo
@@ -5337,16 +5098,22 @@ struct SpellReagentsCurrencyLoadInfo
struct SpellScalingLoadInfo
{
- static constexpr DB2FieldMeta Fields[5] =
+ static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "SpellID" },
+ { true, FT_INT, "Class" },
{ false, FT_INT, "MinScalingLevel" },
{ false, FT_INT, "MaxScalingLevel" },
{ true, FT_SHORT, "ScalesFromItemLevel" },
+ { true, FT_INT, "CastTimeMin" },
+ { true, FT_INT, "CastTimeMax" },
+ { true, FT_INT, "CastTimeMaxLevel" },
+ { false, FT_FLOAT, "NerfFactor" },
+ { true, FT_INT, "NerfMaxLevel" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 5, &SpellScalingMeta::Instance, HOTFIX_SEL_SPELL_SCALING };
+ static constexpr DB2LoadInfo Instance{ Fields, 11, &SpellScalingMeta::Instance, HOTFIX_SEL_SPELL_SCALING };
};
struct SpellShapeshiftLoadInfo
@@ -5367,11 +5134,11 @@ struct SpellShapeshiftLoadInfo
struct SpellShapeshiftFormLoadInfo
{
- static constexpr DB2FieldMeta Fields[18] =
+ static constexpr DB2FieldMeta Fields[22] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_INT, "CreatureDisplayID" },
+ { false, FT_INT, "Field115052124002" },
{ true, FT_BYTE, "CreatureType" },
{ true, FT_INT, "Flags" },
{ true, FT_INT, "AttackIconFileID" },
@@ -5379,6 +5146,10 @@ struct SpellShapeshiftFormLoadInfo
{ true, FT_SHORT, "CombatRoundTime" },
{ false, FT_FLOAT, "DamageVariance" },
{ false, FT_SHORT, "MountTypeID" },
+ { false, FT_INT, "CreatureDisplayID1" },
+ { false, FT_INT, "CreatureDisplayID2" },
+ { false, FT_INT, "CreatureDisplayID3" },
+ { false, FT_INT, "CreatureDisplayID4" },
{ false, FT_INT, "PresetSpellID1" },
{ false, FT_INT, "PresetSpellID2" },
{ false, FT_INT, "PresetSpellID3" },
@@ -5389,7 +5160,7 @@ struct SpellShapeshiftFormLoadInfo
{ false, FT_INT, "PresetSpellID8" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 18, &SpellShapeshiftFormMeta::Instance, HOTFIX_SEL_SPELL_SHAPESHIFT_FORM };
+ static constexpr DB2LoadInfo Instance{ Fields, 22, &SpellShapeshiftFormMeta::Instance, HOTFIX_SEL_SPELL_SHAPESHIFT_FORM };
};
struct SpellTargetRestrictionsLoadInfo
@@ -5427,7 +5198,7 @@ struct SpellTotemsLoadInfo
struct SpellVisualLoadInfo
{
- static constexpr DB2FieldMeta Fields[21] =
+ static constexpr DB2FieldMeta Fields[23] =
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "MissileCastOffset1" },
@@ -5450,14 +5221,16 @@ struct SpellVisualLoadInfo
{ false, FT_INT, "LowViolenceSpellVisualID" },
{ false, FT_INT, "RaidSpellVisualMissileSetID" },
{ true, FT_INT, "ReducedUnexpectedCameraMovementSpellVisualID" },
+ { false, FT_SHORT, "AreaModel" },
+ { true, FT_BYTE, "HasMissile" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 21, &SpellVisualMeta::Instance, HOTFIX_SEL_SPELL_VISUAL };
+ static constexpr DB2LoadInfo Instance{ Fields, 23, &SpellVisualMeta::Instance, HOTFIX_SEL_SPELL_VISUAL };
};
struct SpellVisualEffectNameLoadInfo
{
- static constexpr DB2FieldMeta Fields[16] =
+ static constexpr DB2FieldMeta Fields[15] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "ModelFileDataID" },
@@ -5474,15 +5247,14 @@ struct SpellVisualEffectNameLoadInfo
{ false, FT_INT, "RibbonQualityID" },
{ true, FT_INT, "DissolveEffectID" },
{ true, FT_INT, "ModelPosition" },
- { true, FT_BYTE, "Unknown901" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 16, &SpellVisualEffectNameMeta::Instance, HOTFIX_SEL_SPELL_VISUAL_EFFECT_NAME };
+ static constexpr DB2LoadInfo Instance{ Fields, 15, &SpellVisualEffectNameMeta::Instance, HOTFIX_SEL_SPELL_VISUAL_EFFECT_NAME };
};
struct SpellVisualMissileLoadInfo
{
- static constexpr DB2FieldMeta Fields[22] =
+ static constexpr DB2FieldMeta Fields[20] =
{
{ false, FT_FLOAT, "CastOffset1" },
{ false, FT_FLOAT, "CastOffset2" },
@@ -5503,12 +5275,10 @@ struct SpellVisualMissileLoadInfo
{ false, FT_INT, "Flags" },
{ false, FT_SHORT, "SpellMissileMotionID" },
{ false, FT_INT, "AnimKitID" },
- { true, FT_BYTE, "ClutterLevel" },
- { true, FT_INT, "DecayTimeAfterImpact" },
{ false, FT_INT, "SpellVisualMissileSetID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 22, &SpellVisualMissileMeta::Instance, HOTFIX_SEL_SPELL_VISUAL_MISSILE };
+ static constexpr DB2LoadInfo Instance{ Fields, 20, &SpellVisualMissileMeta::Instance, HOTFIX_SEL_SPELL_VISUAL_MISSILE };
};
struct SpellVisualKitLoadInfo
@@ -5516,10 +5286,10 @@ struct SpellVisualKitLoadInfo
static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
- { true, FT_BYTE, "FallbackPriority" },
- { true, FT_INT, "FallbackSpellVisualKitId" },
+ { false, FT_INT, "FallbackSpellVisualKitId" },
{ false, FT_SHORT, "DelayMin" },
{ false, FT_SHORT, "DelayMax" },
+ { false, FT_FLOAT, "FallbackPriority" },
{ true, FT_INT, "Flags1" },
{ true, FT_INT, "Flags2" },
};
@@ -5535,7 +5305,7 @@ struct SpellXSpellVisualLoadInfo
{ false, FT_BYTE, "DifficultyID" },
{ false, FT_INT, "SpellVisualID" },
{ false, FT_FLOAT, "Probability" },
- { true, FT_INT, "Flags" },
+ { false, FT_BYTE, "Flags" },
{ true, FT_INT, "Priority" },
{ true, FT_INT, "SpellIconFileID" },
{ true, FT_INT, "ActiveIconFileID" },
@@ -5593,27 +5363,44 @@ struct TactKeyLoadInfo
struct TalentLoadInfo
{
- static constexpr DB2FieldMeta Fields[11] =
+ static constexpr DB2FieldMeta Fields[28] =
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Description" },
{ false, FT_BYTE, "TierID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "ColumnIndex" },
+ { false, FT_SHORT, "TabID" },
{ false, FT_BYTE, "ClassID" },
{ false, FT_SHORT, "SpecID" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "OverridesSpellID" },
- { false, FT_BYTE, "CategoryMask1" },
- { false, FT_BYTE, "CategoryMask2" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 11, &TalentMeta::Instance, HOTFIX_SEL_TALENT };
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "OverridesSpellID" },
+ { true, FT_INT, "RequiredSpellID" },
+ { true, FT_INT, "CategoryMask1" },
+ { true, FT_INT, "CategoryMask2" },
+ { true, FT_INT, "SpellRank1" },
+ { true, FT_INT, "SpellRank2" },
+ { true, FT_INT, "SpellRank3" },
+ { true, FT_INT, "SpellRank4" },
+ { true, FT_INT, "SpellRank5" },
+ { true, FT_INT, "SpellRank6" },
+ { true, FT_INT, "SpellRank7" },
+ { true, FT_INT, "SpellRank8" },
+ { true, FT_INT, "SpellRank9" },
+ { true, FT_INT, "PrereqTalent1" },
+ { true, FT_INT, "PrereqTalent2" },
+ { true, FT_INT, "PrereqTalent3" },
+ { true, FT_INT, "PrereqRank1" },
+ { true, FT_INT, "PrereqRank2" },
+ { true, FT_INT, "PrereqRank3" },
+ };
+
+ static constexpr DB2LoadInfo Instance{ Fields, 28, &TalentMeta::Instance, HOTFIX_SEL_TALENT };
};
struct TaxiNodesLoadInfo
{
- static constexpr DB2FieldMeta Fields[20] =
+ static constexpr DB2FieldMeta Fields[19] =
{
{ false, FT_STRING, "Name" },
{ false, FT_FLOAT, "PosX" },
@@ -5624,12 +5411,11 @@ struct TaxiNodesLoadInfo
{ false, FT_FLOAT, "FlightMapOffsetX" },
{ false, FT_FLOAT, "FlightMapOffsetY" },
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "ContinentID" },
- { true, FT_INT, "ConditionID" },
+ { false, FT_INT, "ContinentID" },
+ { false, FT_INT, "ConditionID" },
{ false, FT_SHORT, "CharacterBitNumber" },
{ true, FT_INT, "Flags" },
{ true, FT_INT, "UiTextureKitID" },
- { true, FT_INT, "MinimapAtlasMemberID" },
{ false, FT_FLOAT, "Facing" },
{ false, FT_INT, "SpecialIconConditionID" },
{ false, FT_INT, "VisibilityConditionID" },
@@ -5637,7 +5423,7 @@ struct TaxiNodesLoadInfo
{ true, FT_INT, "MountCreatureID2" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 20, &TaxiNodesMeta::Instance, HOTFIX_SEL_TAXI_NODES };
+ static constexpr DB2LoadInfo Instance{ Fields, 19, &TaxiNodesMeta::Instance, HOTFIX_SEL_TAXI_NODES };
};
struct TaxiPathLoadInfo
@@ -5666,8 +5452,8 @@ struct TaxiPathNodeLoadInfo
{ false, FT_SHORT, "ContinentID" },
{ true, FT_INT, "Flags" },
{ false, FT_INT, "Delay" },
- { true, FT_INT, "ArrivalEventID" },
- { true, FT_INT, "DepartureEventID" },
+ { false, FT_INT, "ArrivalEventID" },
+ { false, FT_INT, "DepartureEventID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 11, &TaxiPathNodeMeta::Instance, HOTFIX_SEL_TAXI_PATH_NODE };
@@ -5833,7 +5619,7 @@ struct TraitNodeLoadInfo
{ true, FT_INT, "TraitTreeID" },
{ true, FT_INT, "PosX" },
{ true, FT_INT, "PosY" },
- { true, FT_BYTE, "Type" },
+ { false, FT_BYTE, "Type" },
{ true, FT_INT, "Flags" },
};
@@ -5969,7 +5755,7 @@ struct TraitTreeLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "TraitSystemID" },
- { true, FT_INT, "Unused1000_1" },
+ { true, FT_INT, "TraitTreeID" },
{ true, FT_INT, "FirstTraitNodeID" },
{ true, FT_INT, "PlayerConditionID" },
{ true, FT_INT, "Flags" },
@@ -6012,7 +5798,7 @@ struct TraitTreeXTraitCostLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "TraitTreeID" },
+ { true, FT_INT, "TraitTreeID" },
{ true, FT_INT, "TraitCostID" },
};
@@ -6032,23 +5818,9 @@ struct TraitTreeXTraitCurrencyLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 4, &TraitTreeXTraitCurrencyMeta::Instance, HOTFIX_SEL_TRAIT_TREE_X_TRAIT_CURRENCY };
};
-struct TransmogIllusionLoadInfo
-{
- static constexpr DB2FieldMeta Fields[5] =
- {
- { false, FT_INT, "ID" },
- { true, FT_INT, "UnlockConditionID" },
- { true, FT_INT, "TransmogCost" },
- { true, FT_INT, "SpellItemEnchantmentID" },
- { true, FT_INT, "Flags" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 5, &TransmogIllusionMeta::Instance, HOTFIX_SEL_TRANSMOG_ILLUSION };
-};
-
struct TransmogSetLoadInfo
{
- static constexpr DB2FieldMeta Fields[13] =
+ static constexpr DB2FieldMeta Fields[10] =
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
@@ -6058,22 +5830,19 @@ struct TransmogSetLoadInfo
{ false, FT_INT, "TransmogSetGroupID" },
{ true, FT_INT, "ItemNameDescriptionID" },
{ false, FT_SHORT, "ParentTransmogSetID" },
- { false, FT_BYTE, "Unknown810" },
{ false, FT_BYTE, "ExpansionID" },
- { true, FT_INT, "PatchID" },
{ true, FT_SHORT, "UiOrder" },
- { true, FT_INT, "PlayerConditionID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 13, &TransmogSetMeta::Instance, HOTFIX_SEL_TRANSMOG_SET };
+ static constexpr DB2LoadInfo Instance{ Fields, 10, &TransmogSetMeta::Instance, HOTFIX_SEL_TRANSMOG_SET };
};
struct TransmogSetGroupLoadInfo
{
static constexpr DB2FieldMeta Fields[2] =
{
- { false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
+ { false, FT_INT, "ID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 2, &TransmogSetGroupMeta::Instance, HOTFIX_SEL_TRANSMOG_SET_GROUP };
@@ -6132,7 +5901,7 @@ struct UiMapLoadInfo
{ false, FT_INT, "ID" },
{ true, FT_INT, "ParentUiMapID" },
{ true, FT_INT, "Flags" },
- { true, FT_BYTE, "System" },
+ { false, FT_BYTE, "System" },
{ false, FT_BYTE, "Type" },
{ true, FT_INT, "BountySetID" },
{ false, FT_INT, "BountyDisplayLocation" },
@@ -6175,7 +5944,7 @@ struct UiMapAssignmentLoadInfo
struct UiMapLinkLoadInfo
{
- static constexpr DB2FieldMeta Fields[12] =
+ static constexpr DB2FieldMeta Fields[11] =
{
{ false, FT_FLOAT, "UiMinX" },
{ false, FT_FLOAT, "UiMinY" },
@@ -6185,13 +5954,12 @@ struct UiMapLinkLoadInfo
{ true, FT_INT, "ParentUiMapID" },
{ true, FT_INT, "OrderIndex" },
{ true, FT_INT, "ChildUiMapID" },
- { true, FT_INT, "PlayerConditionID" },
{ true, FT_INT, "OverrideHighlightFileDataID" },
{ true, FT_INT, "OverrideHighlightAtlasID" },
{ true, FT_INT, "Flags" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 12, &UiMapLinkMeta::Instance, HOTFIX_SEL_UI_MAP_LINK };
+ static constexpr DB2LoadInfo Instance{ Fields, 11, &UiMapLinkMeta::Instance, HOTFIX_SEL_UI_MAP_LINK };
};
struct UiMapXMapArtLoadInfo
@@ -6207,31 +5975,6 @@ struct UiMapXMapArtLoadInfo
static constexpr DB2LoadInfo Instance{ Fields, 4, &UiMapXMapArtMeta::Instance, HOTFIX_SEL_UI_MAP_X_MAP_ART };
};
-struct UiSplashScreenLoadInfo
-{
- static constexpr DB2FieldMeta Fields[16] =
- {
- { false, FT_INT, "ID" },
- { false, FT_STRING, "Header" },
- { false, FT_STRING, "TopLeftFeatureTitle" },
- { false, FT_STRING, "TopLeftFeatureDesc" },
- { false, FT_STRING, "BottomLeftFeatureTitle" },
- { false, FT_STRING, "BottomLeftFeatureDesc" },
- { false, FT_STRING, "RightFeatureTitle" },
- { false, FT_STRING, "RightFeatureDesc" },
- { true, FT_INT, "AllianceQuestID" },
- { true, FT_INT, "HordeQuestID" },
- { true, FT_BYTE, "ScreenType" },
- { true, FT_INT, "TextureKitID" },
- { true, FT_INT, "SoundKitID" },
- { true, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "CharLevelConditionID" },
- { true, FT_INT, "RequiredTimeEventPassed" },
- };
-
- static constexpr DB2LoadInfo Instance{ Fields, 16, &UISplashScreenMeta::Instance, HOTFIX_SEL_UI_SPLASH_SCREEN };
-};
-
struct UnitConditionLoadInfo
{
static constexpr DB2FieldMeta Fields[26] =
@@ -6278,7 +6021,7 @@ struct UnitPowerBarLoadInfo
{ false, FT_STRING, "ToolTip" },
{ false, FT_INT, "MinPower" },
{ false, FT_INT, "MaxPower" },
- { false, FT_INT, "StartPower" },
+ { false, FT_SHORT, "StartPower" },
{ false, FT_BYTE, "CenterPower" },
{ false, FT_FLOAT, "RegenerationPeace" },
{ false, FT_FLOAT, "RegenerationCombat" },
@@ -6305,7 +6048,7 @@ struct UnitPowerBarLoadInfo
struct VehicleLoadInfo
{
- static constexpr DB2FieldMeta Fields[28] =
+ static constexpr DB2FieldMeta Fields[29] =
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Flags" },
@@ -6324,6 +6067,7 @@ struct VehicleLoadInfo
{ false, FT_SHORT, "VehicleUIIndicatorID" },
{ true, FT_INT, "MissileTargetingID" },
{ false, FT_SHORT, "VehiclePOITypeID" },
+ { true, FT_INT, "UiLocomotionType" },
{ false, FT_SHORT, "SeatID1" },
{ false, FT_SHORT, "SeatID2" },
{ false, FT_SHORT, "SeatID3" },
@@ -6337,12 +6081,12 @@ struct VehicleLoadInfo
{ false, FT_SHORT, "PowerDisplayID3" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 28, &VehicleMeta::Instance, HOTFIX_SEL_VEHICLE };
+ static constexpr DB2LoadInfo Instance{ Fields, 29, &VehicleMeta::Instance, HOTFIX_SEL_VEHICLE };
};
struct VehicleSeatLoadInfo
{
- static constexpr DB2FieldMeta Fields[66] =
+ static constexpr DB2FieldMeta Fields[67] =
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "AttachmentOffsetX" },
@@ -6394,6 +6138,7 @@ struct VehicleSeatLoadInfo
{ false, FT_INT, "EnterUISoundID" },
{ false, FT_INT, "ExitUISoundID" },
{ true, FT_INT, "UiSkinFileDataID" },
+ { true, FT_INT, "UiSkin" },
{ false, FT_FLOAT, "CameraEnteringDelay" },
{ false, FT_FLOAT, "CameraEnteringDuration" },
{ false, FT_FLOAT, "CameraExitingDelay" },
@@ -6412,7 +6157,7 @@ struct VehicleSeatLoadInfo
{ true, FT_SHORT, "CameraModeID" },
};
- static constexpr DB2LoadInfo Instance{ Fields, 66, &VehicleSeatMeta::Instance, HOTFIX_SEL_VEHICLE_SEAT };
+ static constexpr DB2LoadInfo Instance{ Fields, 67, &VehicleSeatMeta::Instance, HOTFIX_SEL_VEHICLE_SEAT };
};
struct WmoAreaTableLoadInfo
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 8c849f43061..9a979890fae 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -73,7 +73,6 @@ DB2Storage<AzeritePowerEntry> sAzeritePowerStore("AzeritePower
DB2Storage<AzeritePowerSetMemberEntry> sAzeritePowerSetMemberStore("AzeritePowerSetMember.db2", &AzeritePowerSetMemberLoadInfo::Instance);
DB2Storage<AzeriteTierUnlockEntry> sAzeriteTierUnlockStore("AzeriteTierUnlock.db2", &AzeriteTierUnlockLoadInfo::Instance);
DB2Storage<AzeriteTierUnlockSetEntry> sAzeriteTierUnlockSetStore("AzeriteTierUnlockSet.db2", &AzeriteTierUnlockSetLoadInfo::Instance);
-DB2Storage<AzeriteUnlockMappingEntry> sAzeriteUnlockMappingStore("AzeriteUnlockMapping.db2", &AzeriteUnlockMappingLoadInfo::Instance);
DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore("BankBagSlotPrices.db2", &BankBagSlotPricesLoadInfo::Instance);
DB2Storage<BannedAddonsEntry> sBannedAddonsStore("BannedAddons.db2", &BannedAddonsLoadInfo::Instance);
DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore("BarberShopStyle.db2", &BarberShopStyleLoadInfo::Instance);
@@ -84,10 +83,8 @@ DB2Storage<BattlePetSpeciesEntry> sBattlePetSpeciesStore("BattlePe
DB2Storage<BattlePetSpeciesStateEntry> sBattlePetSpeciesStateStore("BattlePetSpeciesState.db2", &BattlePetSpeciesStateLoadInfo::Instance);
DB2Storage<BattlemasterListEntry> sBattlemasterListStore("BattlemasterList.db2", &BattlemasterListLoadInfo::Instance);
DB2Storage<BroadcastTextEntry> sBroadcastTextStore("BroadcastText.db2", &BroadcastTextLoadInfo::Instance);
-DB2Storage<BroadcastTextDurationEntry> sBroadcastTextDurationStore("BroadcastTextDuration.db2", &BroadcastTextDurationLoadInfo::Instance);
DB2Storage<Cfg_CategoriesEntry> sCfgCategoriesStore("Cfg_Categories.db2", &CfgCategoriesLoadInfo::Instance);
DB2Storage<Cfg_RegionsEntry> sCfgRegionsStore("Cfg_Regions.db2", &CfgRegionsLoadInfo::Instance);
-DB2Storage<ChallengeModeItemBonusOverrideEntry> sChallengeModeItemBonusOverrideStore("ChallengeModeItemBonusOverride.db2", &ChallengeModeItemBonusOverrideLoadInfo::Instance);
DB2Storage<CharTitlesEntry> sCharTitlesStore("CharTitles.db2", &CharTitlesLoadInfo::Instance);
DB2Storage<CharacterLoadoutEntry> sCharacterLoadoutStore("CharacterLoadout.db2", &CharacterLoadoutLoadInfo::Instance);
DB2Storage<CharacterLoadoutItemEntry> sCharacterLoadoutItemStore("CharacterLoadoutItem.db2", &CharacterLoadoutItemLoadInfo::Instance);
@@ -110,10 +107,7 @@ DB2Storage<CinematicSequencesEntry> sCinematicSequencesStore("Cinema
DB2Storage<ConditionalChrModelEntry> sConditionalChrModelStore("ConditionalChrModel.db2", &ConditionalChrModelLoadInfo::Instance);
DB2Storage<ConditionalContentTuningEntry> sConditionalContentTuningStore("ConditionalContentTuning.db2", &ConditionalContentTuningLoadInfo::Instance);
DB2Storage<ContentTuningEntry> sContentTuningStore("ContentTuning.db2", &ContentTuningLoadInfo::Instance);
-DB2Storage<ContentTuningXExpectedEntry> sContentTuningXExpectedStore("ContentTuningXExpected.db2", &ContentTuningXExpectedLoadInfo::Instance);
-DB2Storage<ContentTuningXLabelEntry> sContentTuningXLabelStore("ContentTuningXLabel.db2", &ContentTuningXLabelLoadInfo::Instance);
DB2Storage<ConversationLineEntry> sConversationLineStore("ConversationLine.db2", &ConversationLineLoadInfo::Instance);
-DB2Storage<CorruptionEffectsEntry> sCorruptionEffectsStore("CorruptionEffects.db2", &CorruptionEffectsLoadInfo::Instance);
DB2Storage<CreatureDisplayInfoEntry> sCreatureDisplayInfoStore("CreatureDisplayInfo.db2", &CreatureDisplayInfoLoadInfo::Instance);
DB2Storage<CreatureDisplayInfoExtraEntry> sCreatureDisplayInfoExtraStore("CreatureDisplayInfoExtra.db2", &CreatureDisplayInfoExtraLoadInfo::Instance);
DB2Storage<CreatureFamilyEntry> sCreatureFamilyStore("CreatureFamily.db2", &CreatureFamilyLoadInfo::Instance);
@@ -156,7 +150,6 @@ DB2Storage<GarrSiteLevelEntry> sGarrSiteLevelStore("GarrSiteLev
DB2Storage<GarrSiteLevelPlotInstEntry> sGarrSiteLevelPlotInstStore("GarrSiteLevelPlotInst.db2", &GarrSiteLevelPlotInstLoadInfo::Instance);
DB2Storage<GarrTalentTreeEntry> sGarrTalentTreeStore("GarrTalentTree.db2", &GarrTalentTreeLoadInfo::Instance);
DB2Storage<GemPropertiesEntry> sGemPropertiesStore("GemProperties.db2", &GemPropertiesLoadInfo::Instance);
-DB2Storage<GlobalCurveEntry> sGlobalCurveStore("GlobalCurve.db2", &GlobalCurveLoadInfo::Instance);
DB2Storage<GlyphBindableSpellEntry> sGlyphBindableSpellStore("GlyphBindableSpell.db2", &GlyphBindableSpellLoadInfo::Instance);
DB2Storage<GlyphPropertiesEntry> sGlyphPropertiesStore("GlyphProperties.db2", &GlyphPropertiesLoadInfo::Instance);
DB2Storage<GlyphRequiredSpecEntry> sGlyphRequiredSpecStore("GlyphRequiredSpec.db2", &GlyphRequiredSpecLoadInfo::Instance);
@@ -177,9 +170,7 @@ DB2Storage<ItemArmorShieldEntry> sItemArmorShieldStore("ItemArmor
DB2Storage<ItemArmorTotalEntry> sItemArmorTotalStore("ItemArmorTotal.db2", &ItemArmorTotalLoadInfo::Instance);
DB2Storage<ItemBagFamilyEntry> sItemBagFamilyStore("ItemBagFamily.db2", &ItemBagFamilyLoadInfo::Instance);
DB2Storage<ItemBonusEntry> sItemBonusStore("ItemBonus.db2", &ItemBonusLoadInfo::Instance);
-DB2Storage<ItemBonusListGroupEntryEntry> sItemBonusListGroupEntryStore("ItemBonusListGroupEntry.db2", &ItemBonusListGroupEntryLoadInfo::Instance);
DB2Storage<ItemBonusListLevelDeltaEntry> sItemBonusListLevelDeltaStore("ItemBonusListLevelDelta.db2", &ItemBonusListLevelDeltaLoadInfo::Instance);
-DB2Storage<ItemBonusTreeEntry> sItemBonusTreeStore("ItemBonusTree.db2", &ItemBonusTreeLoadInfo::Instance);
DB2Storage<ItemBonusTreeNodeEntry> sItemBonusTreeNodeStore("ItemBonusTreeNode.db2", &ItemBonusTreeNodeLoadInfo::Instance);
DB2Storage<ItemChildEquipmentEntry> sItemChildEquipmentStore("ItemChildEquipment.db2", &ItemChildEquipmentLoadInfo::Instance);
DB2Storage<ItemClassEntry> sItemClassStore("ItemClass.db2", &ItemClassLoadInfo::Instance);
@@ -210,7 +201,6 @@ DB2Storage<ItemSparseEntry> sItemSparseStore("ItemSparse.db2
DB2Storage<ItemSpecEntry> sItemSpecStore("ItemSpec.db2", &ItemSpecLoadInfo::Instance);
DB2Storage<ItemSpecOverrideEntry> sItemSpecOverrideStore("ItemSpecOverride.db2", &ItemSpecOverrideLoadInfo::Instance);
DB2Storage<ItemXBonusTreeEntry> sItemXBonusTreeStore("ItemXBonusTree.db2", &ItemXBonusTreeLoadInfo::Instance);
-DB2Storage<ItemXItemEffectEntry> sItemXItemEffectStore("ItemXItemEffect.db2", &ItemXItemEffectLoadInfo::Instance);
DB2Storage<JournalEncounterEntry> sJournalEncounterStore("JournalEncounter.db2", &JournalEncounterLoadInfo::Instance);
DB2Storage<JournalEncounterSectionEntry> sJournalEncounterSectionStore("JournalEncounterSection.db2", &JournalEncounterSectionLoadInfo::Instance);
DB2Storage<JournalInstanceEntry> sJournalInstanceStore("JournalInstance.db2", &JournalInstanceLoadInfo::Instance);
@@ -228,7 +218,6 @@ DB2Storage<MapEntry> sMapStore("Map.db2", &MapLoadInf
DB2Storage<MapChallengeModeEntry> sMapChallengeModeStore("MapChallengeMode.db2", &MapChallengeModeLoadInfo::Instance);
DB2Storage<MapDifficultyEntry> sMapDifficultyStore("MapDifficulty.db2", &MapDifficultyLoadInfo::Instance);
DB2Storage<MapDifficultyXConditionEntry> sMapDifficultyXConditionStore("MapDifficultyXCondition.db2", &MapDifficultyXConditionLoadInfo::Instance);
-DB2Storage<MawPowerEntry> sMawPowerStore("MawPower.db2", &MawPowerLoadInfo::Instance);
DB2Storage<ModifierTreeEntry> sModifierTreeStore("ModifierTree.db2", &ModifierTreeLoadInfo::Instance);
DB2Storage<MountCapabilityEntry> sMountCapabilityStore("MountCapability.db2", &MountCapabilityLoadInfo::Instance);
DB2Storage<MountEntry> sMountStore("Mount.db2", &MountLoadInfo::Instance);
@@ -251,7 +240,6 @@ DB2Storage<PowerTypeEntry> sPowerTypeStore("PowerType.db2",
DB2Storage<PrestigeLevelInfoEntry> sPrestigeLevelInfoStore("PrestigeLevelInfo.db2", &PrestigeLevelInfoLoadInfo::Instance);
DB2Storage<PVPDifficultyEntry> sPVPDifficultyStore("PVPDifficulty.db2", &PvpDifficultyLoadInfo::Instance);
DB2Storage<PVPItemEntry> sPVPItemStore("PVPItem.db2", &PvpItemLoadInfo::Instance);
-DB2Storage<PVPStatEntry> sPVPStatStore("PVPStat.db2", &PvpStatLoadInfo::Instance);
DB2Storage<PvpSeasonEntry> sPvpSeasonStore("PvpSeason.db2", &PvpSeasonLoadInfo::Instance);
DB2Storage<PvpTalentEntry> sPvpTalentStore("PvpTalent.db2", &PvpTalentLoadInfo::Instance);
DB2Storage<PvpTalentCategoryEntry> sPvpTalentCategoryStore("PvpTalentCategory.db2", &PvpTalentCategoryLoadInfo::Instance);
@@ -280,7 +268,6 @@ DB2Storage<SkillLineEntry> sSkillLineStore("SkillLine.db2",
DB2Storage<SkillLineAbilityEntry> sSkillLineAbilityStore("SkillLineAbility.db2", &SkillLineAbilityLoadInfo::Instance);
DB2Storage<SkillLineXTraitTreeEntry> sSkillLineXTraitTreeStore("SkillLineXTraitTree.db2", &SkillLineXTraitTreeLoadInfo::Instance);
DB2Storage<SkillRaceClassInfoEntry> sSkillRaceClassInfoStore("SkillRaceClassInfo.db2", &SkillRaceClassInfoLoadInfo::Instance);
-DB2Storage<SoulbindConduitRankEntry> sSoulbindConduitRankStore("SoulbindConduitRank.db2", &SoulbindConduitRankLoadInfo::Instance);
DB2Storage<SoundKitEntry> sSoundKitStore("SoundKit.db2", &SoundKitLoadInfo::Instance);
DB2Storage<SpecializationSpellsEntry> sSpecializationSpellsStore("SpecializationSpells.db2", &SpecializationSpellsLoadInfo::Instance);
DB2Storage<SpecSetMemberEntry> sSpecSetMemberStore("SpecSetMember.db2", &SpecSetMemberLoadInfo::Instance);
@@ -355,7 +342,6 @@ DB2Storage<TraitTreeLoadoutEntryEntry> sTraitTreeLoadoutEntryStore("Tra
DB2Storage<TraitTreeXTraitCostEntry> sTraitTreeXTraitCostStore("TraitTreeXTraitCost.db2", &TraitTreeXTraitCostLoadInfo::Instance);
DB2Storage<TraitTreeXTraitCurrencyEntry> sTraitTreeXTraitCurrencyStore("TraitTreeXTraitCurrency.db2", &TraitTreeXTraitCurrencyLoadInfo::Instance);
DB2Storage<TransmogHolidayEntry> sTransmogHolidayStore("TransmogHoliday.db2", &TransmogHolidayLoadInfo::Instance);
-DB2Storage<TransmogIllusionEntry> sTransmogIllusionStore("TransmogIllusion.db2", &TransmogIllusionLoadInfo::Instance);
DB2Storage<TransmogSetEntry> sTransmogSetStore("TransmogSet.db2", &TransmogSetLoadInfo::Instance);
DB2Storage<TransmogSetGroupEntry> sTransmogSetGroupStore("TransmogSetGroup.db2", &TransmogSetGroupLoadInfo::Instance);
DB2Storage<TransmogSetItemEntry> sTransmogSetItemStore("TransmogSetItem.db2", &TransmogSetItemLoadInfo::Instance);
@@ -365,7 +351,6 @@ DB2Storage<UiMapEntry> sUiMapStore("UiMap.db2", &UiMapL
DB2Storage<UiMapAssignmentEntry> sUiMapAssignmentStore("UiMapAssignment.db2", &UiMapAssignmentLoadInfo::Instance);
DB2Storage<UiMapLinkEntry> sUiMapLinkStore("UiMapLink.db2", &UiMapLinkLoadInfo::Instance);
DB2Storage<UiMapXMapArtEntry> sUiMapXMapArtStore("UiMapXMapArt.db2", &UiMapXMapArtLoadInfo::Instance);
-DB2Storage<UISplashScreenEntry> sUISplashScreenStore("UISplashScreen.db2", &UiSplashScreenLoadInfo::Instance);
DB2Storage<UnitConditionEntry> sUnitConditionStore("UnitCondition.db2", &UnitConditionLoadInfo::Instance);
DB2Storage<UnitPowerBarEntry> sUnitPowerBarStore("UnitPowerBar.db2", &UnitPowerBarLoadInfo::Instance);
DB2Storage<VehicleEntry> sVehicleStore("Vehicle.db2", &VehicleLoadInfo::Instance);
@@ -448,7 +433,6 @@ namespace
std::array<AzeriteItemMilestonePowerEntry const*, MAX_AZERITE_ESSENCE_SLOT> _azeriteItemMilestonePowerByEssenceSlot;
std::unordered_map<uint32 /*azeritePowerSetId*/, std::vector<AzeritePowerSetMemberEntry const*>> _azeritePowers;
std::unordered_map<std::pair<uint32 /*azeriteUnlockSetId*/, ItemContext>, std::array<uint8, MAX_AZERITE_EMPOWERED_TIER>> _azeriteTierUnlockLevels;
- std::unordered_map<std::pair<int32 /*broadcastTextId*/, CascLocaleBit /*cascLocaleBit*/>, int32> _broadcastTextDurations;
std::array<ChrClassUIDisplayEntry const*, MAX_CLASSES> _uiDisplayByClass;
std::array<std::array<uint32, MAX_POWERS>, MAX_CLASSES> _powersByClass;
std::unordered_map<uint32 /*chrCustomizationOptionId*/, std::vector<ChrCustomizationChoiceEntry const*>> _chrCustomizationChoicesByOption;
@@ -459,12 +443,9 @@ namespace
ChrSpecializationByIndexContainer _chrSpecializationsByIndex;
std::unordered_map<int32, ConditionalChrModelEntry const*> _conditionalChrModelsByChrModelId;
std::unordered_multimap<uint32, ConditionalContentTuningEntry const*> _conditionalContentTuning;
- std::unordered_set<std::pair<uint32, int32>> _contentTuningLabels;
std::unordered_multimap<uint32, CurrencyContainerEntry const*> _currencyContainers;
CurvePointsContainer _curvePoints;
EmotesTextSoundContainer _emoteTextSounds;
- std::unordered_map<std::pair<uint32 /*level*/, int32 /*expansion*/>, ExpectedStatEntry const*> _expectedStatsByLevel;
- std::unordered_map<uint32 /*contentTuningId*/, std::vector<ContentTuningXExpectedEntry const*>> _expectedStatModsByContentTuning;
FactionTeamContainer _factionTeams;
std::unordered_map<uint32, std::set<FriendshipRepReactionEntry const*, DB2Manager::FriendshipRepReactionEntryComparator>> _friendshipRepReactions;
HeirloomItemsContainer _heirlooms;
@@ -497,7 +478,6 @@ namespace
std::unordered_map<uint32, std::vector<SkillLineEntry const*>> _skillLinesByParentSkillLine;
std::unordered_map<uint32, std::vector<SkillLineAbilityEntry const*>> _skillLineAbilitiesBySkillupSkill;
SkillRaceClassInfoContainer _skillRaceClassInfoBySkill;
- std::unordered_map<std::pair<int32, int32>, SoulbindConduitRankEntry const*> _soulbindConduitRanks;
SpecializationSpellsContainer _specializationSpellsBySpec;
std::unordered_set<std::pair<int32, uint32>> _specsBySpecSet;
std::unordered_set<uint8> _spellFamilyNames;
@@ -506,7 +486,6 @@ namespace
TalentsByPosition _talentsByPosition;
std::unordered_map<std::pair<uint32, uint32>, TaxiPathEntry const*> _taxiPaths;
ToyItemIdsContainer _toys;
- std::unordered_map<uint32, TransmogIllusionEntry const*> _transmogIllusionsByEnchantmentId;
std::unordered_map<uint32, std::vector<TransmogSetEntry const*>> _transmogSetsByItemModifiedAppearance;
std::unordered_map<uint32, std::vector<TransmogSetItemEntry const*>> _transmogSetItemsByTransmogSet;
std::unordered_map<int32, UiMapBounds> _uiMapBounds;
@@ -516,7 +495,6 @@ namespace
std::unordered_multimap<int32, UiMapAssignmentEntry const*> _uiMapAssignmentByWmoGroup[MAX_UI_MAP_SYSTEM];
std::unordered_set<int32> _uiMapPhases;
WMOAreaTableLookupContainer _wmoAreaTableLookup;
- std::unordered_map<uint32, std::unordered_set<uint32>> _pvpStatIdsByMap;
}
template<typename T>
@@ -672,7 +650,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sAzeritePowerSetMemberStore);
LOAD_DB2(sAzeriteTierUnlockStore);
LOAD_DB2(sAzeriteTierUnlockSetStore);
- LOAD_DB2(sAzeriteUnlockMappingStore);
LOAD_DB2(sBankBagSlotPricesStore);
LOAD_DB2(sBannedAddonsStore);
LOAD_DB2(sBarberShopStyleStore);
@@ -683,10 +660,8 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sBattlePetSpeciesStateStore);
LOAD_DB2(sBattlemasterListStore);
LOAD_DB2(sBroadcastTextStore);
- LOAD_DB2(sBroadcastTextDurationStore);
LOAD_DB2(sCfgCategoriesStore);
LOAD_DB2(sCfgRegionsStore);
- LOAD_DB2(sChallengeModeItemBonusOverrideStore);
LOAD_DB2(sCharTitlesStore);
LOAD_DB2(sCharacterLoadoutStore);
LOAD_DB2(sCharacterLoadoutItemStore);
@@ -709,10 +684,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sConditionalChrModelStore);
LOAD_DB2(sConditionalContentTuningStore);
LOAD_DB2(sContentTuningStore);
- LOAD_DB2(sContentTuningXExpectedStore);
- LOAD_DB2(sContentTuningXLabelStore);
LOAD_DB2(sConversationLineStore);
- LOAD_DB2(sCorruptionEffectsStore);
LOAD_DB2(sCreatureDisplayInfoStore);
LOAD_DB2(sCreatureDisplayInfoExtraStore);
LOAD_DB2(sCreatureFamilyStore);
@@ -755,7 +727,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sGarrSiteLevelPlotInstStore);
LOAD_DB2(sGarrTalentTreeStore);
LOAD_DB2(sGemPropertiesStore);
- LOAD_DB2(sGlobalCurveStore);
LOAD_DB2(sGlyphBindableSpellStore);
LOAD_DB2(sGlyphPropertiesStore);
LOAD_DB2(sGlyphRequiredSpecStore);
@@ -776,9 +747,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sItemArmorTotalStore);
LOAD_DB2(sItemBagFamilyStore);
LOAD_DB2(sItemBonusStore);
- LOAD_DB2(sItemBonusListGroupEntryStore);
LOAD_DB2(sItemBonusListLevelDeltaStore);
- LOAD_DB2(sItemBonusTreeStore);
LOAD_DB2(sItemBonusTreeNodeStore);
LOAD_DB2(sItemChildEquipmentStore);
LOAD_DB2(sItemClassStore);
@@ -809,7 +778,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sItemSpecStore);
LOAD_DB2(sItemSpecOverrideStore);
LOAD_DB2(sItemXBonusTreeStore);
- LOAD_DB2(sItemXItemEffectStore);
LOAD_DB2(sJournalEncounterStore);
LOAD_DB2(sJournalEncounterSectionStore);
LOAD_DB2(sJournalInstanceStore);
@@ -827,7 +795,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sMapChallengeModeStore);
LOAD_DB2(sMapDifficultyStore);
LOAD_DB2(sMapDifficultyXConditionStore);
- LOAD_DB2(sMawPowerStore);
LOAD_DB2(sModifierTreeStore);
LOAD_DB2(sMountCapabilityStore);
LOAD_DB2(sMountStore);
@@ -850,7 +817,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sPrestigeLevelInfoStore);
LOAD_DB2(sPVPDifficultyStore);
LOAD_DB2(sPVPItemStore);
- LOAD_DB2(sPVPStatStore);
LOAD_DB2(sPvpSeasonStore);
LOAD_DB2(sPvpTalentStore);
LOAD_DB2(sPvpTalentCategoryStore);
@@ -879,7 +845,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sSkillLineAbilityStore);
LOAD_DB2(sSkillLineXTraitTreeStore);
LOAD_DB2(sSkillRaceClassInfoStore);
- LOAD_DB2(sSoulbindConduitRankStore);
LOAD_DB2(sSoundKitStore);
LOAD_DB2(sSpecializationSpellsStore);
LOAD_DB2(sSpecSetMemberStore);
@@ -954,7 +919,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sTraitTreeXTraitCostStore);
LOAD_DB2(sTraitTreeXTraitCurrencyStore);
LOAD_DB2(sTransmogHolidayStore);
- LOAD_DB2(sTransmogIllusionStore);
LOAD_DB2(sTransmogSetStore);
LOAD_DB2(sTransmogSetGroupStore);
LOAD_DB2(sTransmogSetItemStore);
@@ -964,7 +928,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
LOAD_DB2(sUiMapAssignmentStore);
LOAD_DB2(sUiMapLinkStore);
LOAD_DB2(sUiMapXMapArtStore);
- LOAD_DB2(sUISplashScreenStore);
LOAD_DB2(sUnitConditionStore);
LOAD_DB2(sUnitPowerBarStore);
LOAD_DB2(sVehicleStore);
@@ -1072,10 +1035,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
}
}
- _broadcastTextDurations.reserve(sBroadcastTextDurationStore.GetNumRows());
- for (BroadcastTextDurationEntry const* broadcastTextDuration : sBroadcastTextDurationStore)
- _broadcastTextDurations[{ broadcastTextDuration->BroadcastTextID, CascLocaleBit(broadcastTextDuration->Locale) }] = broadcastTextDuration->Duration;
-
for (ChrClassUIDisplayEntry const* uiDisplay : sChrClassUIDisplayStore)
{
ASSERT(uiDisplay->ChrClassesID < MAX_CLASSES);
@@ -1212,13 +1171,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
for (ConditionalContentTuningEntry const* conditionalContentTuning : sConditionalContentTuningStore)
_conditionalContentTuning.emplace(conditionalContentTuning->ParentContentTuningID, conditionalContentTuning);
- for (ContentTuningXExpectedEntry const* contentTuningXExpectedStat : sContentTuningXExpectedStore)
- if (sExpectedStatModStore.LookupEntry(contentTuningXExpectedStat->ExpectedStatModID))
- _expectedStatModsByContentTuning[contentTuningXExpectedStat->ContentTuningID].push_back(contentTuningXExpectedStat);
-
- for (ContentTuningXLabelEntry const* contentTuningXLabel : sContentTuningXLabelStore)
- _contentTuningLabels.emplace(contentTuningXLabel->ContentTuningID, contentTuningXLabel->LabelID);
-
for (CurrencyContainerEntry const* currencyContainer : sCurrencyContainerStore)
_currencyContainers.emplace(currencyContainer->CurrencyTypesID, currencyContainer);
@@ -1240,9 +1192,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
for (EmotesTextSoundEntry const* emoteTextSound : sEmotesTextSoundStore)
_emoteTextSounds[EmotesTextSoundContainer::key_type(emoteTextSound->EmotesTextID, emoteTextSound->RaceID, emoteTextSound->SexID, emoteTextSound->ClassID)] = emoteTextSound;
- for (ExpectedStatEntry const* expectedStat : sExpectedStatStore)
- _expectedStatsByLevel[std::make_pair(expectedStat->Lvl, expectedStat->ExpansionID)] = expectedStat;
-
for (FactionEntry const* faction : sFactionStore)
if (faction->ParentFactionID)
_factionTeams[faction->ParentFactionID].push_back(faction->ID);
@@ -1441,9 +1390,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
if (sSkillLineStore.LookupEntry(entry->SkillID))
_skillRaceClassInfoBySkill.insert(SkillRaceClassInfoContainer::value_type(entry->SkillID, entry));
- for (SoulbindConduitRankEntry const* soulbindConduitRank : sSoulbindConduitRankStore)
- _soulbindConduitRanks[{ soulbindConduitRank->SoulbindConduitID, soulbindConduitRank->RankIndex }] = soulbindConduitRank;
-
for (SpecializationSpellsEntry const* specSpells : sSpecializationSpellsStore)
_specializationSpellsBySpec[specSpells->SpecID].push_back(specSpells);
@@ -1492,9 +1438,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
for (ToyEntry const* toy : sToyStore)
_toys.insert(toy->ItemID);
- for (TransmogIllusionEntry const* transmogIllusion : sTransmogIllusionStore)
- _transmogIllusionsByEnchantmentId[transmogIllusion->SpellItemEnchantmentID] = transmogIllusion;
-
for (TransmogSetItemEntry const* transmogSetItem : sTransmogSetItemStore)
{
TransmogSetEntry const* set = sTransmogSetStore.LookupEntry(transmogSetItem->TransmogSetID);
@@ -1634,9 +1577,6 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
sOldContinentsNodesMask[field] |= submask;
}
- for (PVPStatEntry const* pvpStat : sPVPStatStore)
- _pvpStatIdsByMap[pvpStat->MapID].insert(pvpStat->ID);
-
TC_LOG_INFO("server.loading", ">> Initialized {} DB2 data stores in {} ms", _stores.size(), GetMSTimeDiffToNow(oldMSTime));
return availableDb2Locales.to_ulong();
@@ -1921,17 +1861,6 @@ bool DB2Manager::IsInArea(uint32 objectAreaId, uint32 areaId)
ContentTuningEntry const* DB2Manager::GetContentTuningForArea(AreaTableEntry const* areaEntry)
{
- if (!areaEntry)
- return nullptr;
-
- // Get ContentTuning for the area
- if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(areaEntry->ContentTuningID))
- return contentTuning;
-
- // If there is no data for the current area and it has a parent area, get data from the last (recursive)
- if (AreaTableEntry const* parentAreaEntry = sAreaTableStore.LookupEntry(areaEntry->ParentAreaID))
- return GetContentTuningForArea(parentAreaEntry);
-
return nullptr;
}
@@ -2021,7 +1950,7 @@ char const* DB2Manager::GetBroadcastTextValue(BroadcastTextEntry const* broadcas
int32 const* DB2Manager::GetBroadcastTextDuration(int32 broadcastTextId, LocaleConstant locale /*= DEFAULT_LOCALE*/) const
{
- return Trinity::Containers::MapGetValuePtr(_broadcastTextDurations, { broadcastTextId, WowLocaleToCascLocaleBit[locale] });
+ return nullptr;
}
ChrClassUIDisplayEntry const* DB2Manager::GetUiDisplayForClass(Classes unitClass) const
@@ -2105,54 +2034,12 @@ uint32 DB2Manager::GetRedirectedContentTuningId(uint32 contentTuningId, uint32 r
Optional<ContentTuningLevels> DB2Manager::GetContentTuningData(uint32 contentTuningId, uint32 redirectFlag, bool forItem /*= false*/) const
{
- ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(GetRedirectedContentTuningId(contentTuningId, redirectFlag));
- if (!contentTuning)
- return {};
-
- if (forItem && contentTuning->GetFlags().HasFlag(ContentTuningFlag::DisabledForItem))
- return {};
-
- auto getLevelAdjustment = [](ContentTuningCalcType type) -> int32
- {
- switch (type)
- {
- case ContentTuningCalcType::PlusOne:
- return 1;
- case ContentTuningCalcType::PlusMaxLevelForExpansion:
- return GetMaxLevelForExpansion(sWorld->getIntConfig(CONFIG_EXPANSION));
- default:
- break;
- }
-
- return 0;
- };
-
- ContentTuningLevels levels;
- levels.MinLevel = contentTuning->MinLevel + getLevelAdjustment(static_cast<ContentTuningCalcType>(contentTuning->MinLevelType));
- levels.MaxLevel = contentTuning->MaxLevel + getLevelAdjustment(static_cast<ContentTuningCalcType>(contentTuning->MaxLevelType));
- levels.MinLevelWithDelta = std::clamp<int32>(levels.MinLevel + contentTuning->TargetLevelDelta, 1, MAX_LEVEL);
- levels.MaxLevelWithDelta = std::clamp<int32>(levels.MaxLevel + contentTuning->TargetLevelMaxDelta, 1, MAX_LEVEL);
-
- // clamp after calculating levels with delta (delta can bring "overflown" level back into correct range)
- levels.MinLevel = std::clamp<int32>(levels.MinLevel, 1, MAX_LEVEL);
- levels.MaxLevel = std::clamp<int32>(levels.MaxLevel, 1, MAX_LEVEL);
-
- if (contentTuning->TargetLevelMin)
- levels.TargetLevelMin = contentTuning->TargetLevelMin;
- else
- levels.TargetLevelMin = levels.MinLevelWithDelta;
-
- if (contentTuning->TargetLevelMax)
- levels.TargetLevelMax = contentTuning->TargetLevelMax;
- else
- levels.TargetLevelMax = levels.MaxLevelWithDelta;
-
- return levels;
+ return {};
}
bool DB2Manager::HasContentTuningLabel(uint32 contentTuningId, int32 label) const
{
- return _contentTuningLabels.contains({ contentTuningId, label });
+ return false;
}
char const* DB2Manager::GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale)
@@ -2345,143 +2232,9 @@ EmotesTextSoundEntry const* DB2Manager::GetTextSoundEmoteFor(uint32 emote, uint8
return nullptr;
}
-template<float(ExpectedStatModEntry::*field)>
-struct ExpectedStatModReducer
-{
- explicit ExpectedStatModReducer(int32 mythicPlusMilestoneSeason) : ActiveMilestoneSeason(mythicPlusMilestoneSeason) { }
-
- float operator()(float mod, ContentTuningXExpectedEntry const* contentTuningXExpected) const
- {
- if (!contentTuningXExpected)
- return mod;
-
- if (contentTuningXExpected->MinMythicPlusSeasonID)
- if (MythicPlusSeasonEntry const* mythicPlusSeason = sMythicPlusSeasonStore.LookupEntry(contentTuningXExpected->MinMythicPlusSeasonID))
- if (ActiveMilestoneSeason < mythicPlusSeason->MilestoneSeason)
- return mod;
-
- if (contentTuningXExpected->MaxMythicPlusSeasonID)
- if (MythicPlusSeasonEntry const* mythicPlusSeason = sMythicPlusSeasonStore.LookupEntry(contentTuningXExpected->MaxMythicPlusSeasonID))
- if (ActiveMilestoneSeason >= mythicPlusSeason->MilestoneSeason)
- return mod;
-
- return mod * sExpectedStatModStore.AssertEntry(contentTuningXExpected->ExpectedStatModID)->*field;
- }
-
- int32 ActiveMilestoneSeason = 0;
-};
-
float DB2Manager::EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int32 expansion, uint32 contentTuningId, Classes unitClass, int32 mythicPlusMilestoneSeason) const
{
- auto expectedStatItr = _expectedStatsByLevel.find(std::make_pair(level, expansion));
- if (expectedStatItr == _expectedStatsByLevel.end())
- expectedStatItr = _expectedStatsByLevel.find(std::make_pair(level, -2));
-
- if (expectedStatItr == _expectedStatsByLevel.end())
- return 1.0f;
-
- ExpectedStatModEntry const* classMod = nullptr;
- switch (unitClass)
- {
- case CLASS_WARRIOR:
- classMod = sExpectedStatModStore.LookupEntry(4);
- break;
- case CLASS_PALADIN:
- classMod = sExpectedStatModStore.LookupEntry(2);
- break;
- case CLASS_ROGUE:
- classMod = sExpectedStatModStore.LookupEntry(3);
- break;
- case CLASS_MAGE:
- classMod = sExpectedStatModStore.LookupEntry(1);
- break;
- default:
- break;
- }
-
- std::vector<ContentTuningXExpectedEntry const*> const* contentTuningMods = Trinity::Containers::MapGetValuePtr(_expectedStatModsByContentTuning, contentTuningId);
- float value = 0.0f;
- switch (stat)
- {
- case ExpectedStatType::CreatureHealth:
- value = expectedStatItr->second->CreatureHealth;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::CreatureHealthMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->CreatureHealthMod;
- break;
- case ExpectedStatType::PlayerHealth:
- value = expectedStatItr->second->PlayerHealth;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::PlayerHealthMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->PlayerHealthMod;
- break;
- case ExpectedStatType::CreatureAutoAttackDps:
- value = expectedStatItr->second->CreatureAutoAttackDps;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::CreatureAutoAttackDPSMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->CreatureAutoAttackDPSMod;
- break;
- case ExpectedStatType::CreatureArmor:
- value = expectedStatItr->second->CreatureArmor;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::CreatureArmorMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->CreatureArmorMod;
- break;
- case ExpectedStatType::PlayerMana:
- value = expectedStatItr->second->PlayerMana;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::PlayerManaMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->PlayerManaMod;
- break;
- case ExpectedStatType::PlayerPrimaryStat:
- value = expectedStatItr->second->PlayerPrimaryStat;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::PlayerPrimaryStatMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->PlayerPrimaryStatMod;
- break;
- case ExpectedStatType::PlayerSecondaryStat:
- value = expectedStatItr->second->PlayerSecondaryStat;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::PlayerSecondaryStatMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->PlayerSecondaryStatMod;
- break;
- case ExpectedStatType::ArmorConstant:
- value = expectedStatItr->second->ArmorConstant;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::ArmorConstantMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->ArmorConstantMod;
- break;
- case ExpectedStatType::None:
- break;
- case ExpectedStatType::CreatureSpellDamage:
- value = expectedStatItr->second->CreatureSpellDamage;
- if (contentTuningMods)
- value *= std::accumulate(contentTuningMods->begin(), contentTuningMods->end(), 1.0f,
- ExpectedStatModReducer<&ExpectedStatModEntry::CreatureSpellDamageMod>(mythicPlusMilestoneSeason));
- if (classMod)
- value *= classMod->CreatureSpellDamageMod;
- break;
- default:
- break;
- }
-
- return value;
+ return 1.0f;
}
std::vector<uint32> const* DB2Manager::GetFactionTeamList(uint32 faction) const
@@ -2496,10 +2249,6 @@ DB2Manager::FriendshipRepReactionSet const* DB2Manager::GetFriendshipRepReaction
uint32 DB2Manager::GetGlobalCurveId(GlobalCurve globalCurveType) const
{
- for (GlobalCurveEntry const* globalCurveEntry : sGlobalCurveStore)
- if (GlobalCurve(globalCurveEntry->Type) == globalCurveType)
- return globalCurveEntry->CurveID;
-
return 0;
}
@@ -2941,11 +2690,6 @@ std::vector<SkillRaceClassInfoEntry const*> DB2Manager::GetSkillRaceClassInfo(ui
return result;
}
-SoulbindConduitRankEntry const* DB2Manager::GetSoulbindConduitRank(int32 soulbindConduitId, int32 rank) const
-{
- return Trinity::Containers::MapGetValuePtr(_soulbindConduitRanks, { soulbindConduitId, rank });
-}
-
std::vector<SpecializationSpellsEntry const*> const* DB2Manager::GetSpecializationSpells(uint32 specId) const
{
return Trinity::Containers::MapGetValuePtr(_specializationSpellsBySpec, specId);
@@ -3011,11 +2755,6 @@ bool DB2Manager::IsToyItem(uint32 toy) const
return _toys.count(toy) > 0;
}
-TransmogIllusionEntry const* DB2Manager::GetTransmogIllusionForEnchantment(uint32 spellItemEnchantmentId) const
-{
- return Trinity::Containers::MapGetValuePtr(_transmogIllusionsByEnchantmentId, spellItemEnchantmentId);
-}
-
std::vector<TransmogSetEntry const*> const* DB2Manager::GetTransmogSetsForItemModifiedAppearance(uint32 itemModifiedAppearanceId) const
{
return Trinity::Containers::MapGetValuePtr(_transmogSetsByItemModifiedAppearance, itemModifiedAppearanceId);
@@ -3376,7 +3115,7 @@ WMOAreaTableEntry const* DB2Manager::GetWMOAreaTable(int32 rootId, int32 adtId,
std::unordered_set<uint32> const* DB2Manager::GetPVPStatIDsForMap(uint32 mapId) const
{
- return Trinity::Containers::MapGetValuePtr(_pvpStatIdsByMap, mapId);
+ return nullptr;
}
bool ChrClassesXPowerTypesEntryComparator::Compare(ChrClassesXPowerTypesEntry const* left, ChrClassesXPowerTypesEntry const* right)
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index 91609057a35..89bba8e4bd1 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -59,7 +59,6 @@ TC_GAME_API extern DB2Storage<AzeriteKnowledgeMultiplierEntry> sAzeriteKnow
TC_GAME_API extern DB2Storage<AzeriteItemMilestonePowerEntry> sAzeriteItemMilestonePowerStore;
TC_GAME_API extern DB2Storage<AzeriteLevelInfoEntry> sAzeriteLevelInfoStore;
TC_GAME_API extern DB2Storage<AzeritePowerEntry> sAzeritePowerStore;
-TC_GAME_API extern DB2Storage<AzeriteUnlockMappingEntry> sAzeriteUnlockMappingStore;
TC_GAME_API extern DB2Storage<BankBagSlotPricesEntry> sBankBagSlotPricesStore;
TC_GAME_API extern DB2Storage<BannedAddonsEntry> sBannedAddonsStore;
TC_GAME_API extern DB2Storage<BarberShopStyleEntry> sBarberShopStyleStore;
@@ -72,7 +71,6 @@ TC_GAME_API extern DB2Storage<BattlemasterListEntry> sBattlemaste
TC_GAME_API extern DB2Storage<BroadcastTextEntry> sBroadcastTextStore;
TC_GAME_API extern DB2Storage<Cfg_CategoriesEntry> sCfgCategoriesStore;
TC_GAME_API extern DB2Storage<Cfg_RegionsEntry> sCfgRegionsStore;
-TC_GAME_API extern DB2Storage<ChallengeModeItemBonusOverrideEntry> sChallengeModeItemBonusOverrideStore;
TC_GAME_API extern DB2Storage<CharTitlesEntry> sCharTitlesStore;
TC_GAME_API extern DB2Storage<CharacterLoadoutEntry> sCharacterLoadoutStore;
TC_GAME_API extern DB2Storage<CharacterLoadoutItemEntry> sCharacterLoadoutItemStore;
@@ -87,7 +85,6 @@ TC_GAME_API extern DB2Storage<CinematicSequencesEntry> sCinematicSe
TC_GAME_API extern DB2Storage<ConditionalChrModelEntry> sConditionalChrModelStore;
TC_GAME_API extern DB2Storage<ContentTuningEntry> sContentTuningStore;
TC_GAME_API extern DB2Storage<ConversationLineEntry> sConversationLineStore;
-TC_GAME_API extern DB2Storage<CorruptionEffectsEntry> sCorruptionEffectsStore;
TC_GAME_API extern DB2Storage<CreatureDisplayInfoEntry> sCreatureDisplayInfoStore;
TC_GAME_API extern DB2Storage<CreatureDisplayInfoExtraEntry> sCreatureDisplayInfoExtraStore;
TC_GAME_API extern DB2Storage<CreatureFamilyEntry> sCreatureFamilyStore;
@@ -142,9 +139,7 @@ TC_GAME_API extern DB2Storage<ItemArmorShieldEntry> sItemArmorSh
TC_GAME_API extern DB2Storage<ItemArmorTotalEntry> sItemArmorTotalStore;
TC_GAME_API extern DB2Storage<ItemBagFamilyEntry> sItemBagFamilyStore;
TC_GAME_API extern DB2Storage<ItemBonusEntry> sItemBonusStore;
-TC_GAME_API extern DB2Storage<ItemBonusListGroupEntryEntry> sItemBonusListGroupEntryStore;
TC_GAME_API extern DB2Storage<ItemBonusListLevelDeltaEntry> sItemBonusListLevelDeltaStore;
-TC_GAME_API extern DB2Storage<ItemBonusTreeEntry> sItemBonusTreeStore;
TC_GAME_API extern DB2Storage<ItemBonusTreeNodeEntry> sItemBonusTreeNodeStore;
TC_GAME_API extern DB2Storage<ItemContextPickerEntryEntry> sItemContextPickerEntryStore;
TC_GAME_API extern DB2Storage<ItemDamageAmmoEntry> sItemDamageAmmoStore;
@@ -171,7 +166,6 @@ TC_GAME_API extern DB2Storage<ItemSparseEntry> sItemSparseS
TC_GAME_API extern DB2Storage<ItemSpecEntry> sItemSpecStore;
TC_GAME_API extern DB2Storage<ItemSpecOverrideEntry> sItemSpecOverrideStore;
TC_GAME_API extern DB2Storage<ItemXBonusTreeEntry> sItemXBonusTreeStore;
-TC_GAME_API extern DB2Storage<ItemXItemEffectEntry> sItemXItemEffectStore;
TC_GAME_API extern DB2Storage<JournalEncounterEntry> sJournalEncounterStore;
TC_GAME_API extern DB2Storage<JournalEncounterSectionEntry> sJournalEncounterSectionStore;
TC_GAME_API extern DB2Storage<JournalInstanceEntry> sJournalInstanceStore;
@@ -186,7 +180,6 @@ TC_GAME_API extern DB2Storage<MailTemplateEntry> sMailTemplat
TC_GAME_API extern DB2Storage<MapEntry> sMapStore;
TC_GAME_API extern DB2Storage<MapChallengeModeEntry> sMapChallengeModeStore;
TC_GAME_API extern DB2Storage<MapDifficultyEntry> sMapDifficultyStore;
-TC_GAME_API extern DB2Storage<MawPowerEntry> sMawPowerStore;
TC_GAME_API extern DB2Storage<ModifierTreeEntry> sModifierTreeStore;
TC_GAME_API extern DB2Storage<MountCapabilityEntry> sMountCapabilityStore;
TC_GAME_API extern DB2Storage<MountEntry> sMountStore;
@@ -198,7 +191,6 @@ TC_GAME_API extern DB2Storage<PhaseEntry> sPhaseStore;
TC_GAME_API extern DB2Storage<PlayerConditionEntry> sPlayerConditionStore;
TC_GAME_API extern DB2Storage<PowerDisplayEntry> sPowerDisplayStore;
TC_GAME_API extern DB2Storage<PowerTypeEntry> sPowerTypeStore;
-TC_GAME_API extern DB2Storage<PVPStatEntry> sPVPStatStore;
TC_GAME_API extern DB2Storage<PvpSeasonEntry> sPvpSeasonStore;
TC_GAME_API extern DB2Storage<PvpTalentEntry> sPvpTalentStore;
TC_GAME_API extern DB2Storage<PvpTalentCategoryEntry> sPvpTalentCategoryStore;
@@ -286,14 +278,12 @@ TC_GAME_API extern DB2Storage<TraitTreeLoadoutEntryEntry> sTraitTreeLo
TC_GAME_API extern DB2Storage<TraitTreeXTraitCostEntry> sTraitTreeXTraitCostStore;
TC_GAME_API extern DB2Storage<TraitTreeXTraitCurrencyEntry> sTraitTreeXTraitCurrencyStore;
TC_GAME_API extern DB2Storage<TransmogHolidayEntry> sTransmogHolidayStore;
-TC_GAME_API extern DB2Storage<TransmogIllusionEntry> sTransmogIllusionStore;
TC_GAME_API extern DB2Storage<TransmogSetEntry> sTransmogSetStore;
TC_GAME_API extern DB2Storage<TransmogSetGroupEntry> sTransmogSetGroupStore;
TC_GAME_API extern DB2Storage<TransmogSetItemEntry> sTransmogSetItemStore;
TC_GAME_API extern DB2Storage<TransportAnimationEntry> sTransportAnimationStore;
TC_GAME_API extern DB2Storage<TransportRotationEntry> sTransportRotationStore;
TC_GAME_API extern DB2Storage<UiMapEntry> sUiMapStore;
-TC_GAME_API extern DB2Storage<UISplashScreenEntry> sUISplashScreenStore;
TC_GAME_API extern DB2Storage<UnitConditionEntry> sUnitConditionStore;
TC_GAME_API extern DB2Storage<UnitPowerBarEntry> sUnitPowerBarStore;
TC_GAME_API extern DB2Storage<VehicleEntry> sVehicleStore;
@@ -507,7 +497,6 @@ public:
std::vector<SkillLineAbilityEntry const*> const* GetSkillLineAbilitiesBySkill(uint32 skillId) const;
SkillRaceClassInfoEntry const* GetSkillRaceClassInfo(uint32 skill, uint8 race, uint8 class_) const;
std::vector<SkillRaceClassInfoEntry const*> GetSkillRaceClassInfo(uint32 skill) const;
- SoulbindConduitRankEntry const* GetSoulbindConduitRank(int32 soulbindConduitId, int32 rank) const;
std::vector<SpecializationSpellsEntry const*> const* GetSpecializationSpells(uint32 specId) const;
bool IsSpecSetMember(int32 specSetId, uint32 specId) const;
static bool IsValidSpellFamiliyName(SpellFamilyNames family);
@@ -517,7 +506,6 @@ public:
TaxiPathEntry const* GetTaxiPath(uint32 from, uint32 to) const;
static bool IsTotemCategoryCompatibleWith(uint32 itemTotemCategoryId, uint32 requiredTotemCategoryId, bool requireAllTotems = true);
bool IsToyItem(uint32 toy) const;
- TransmogIllusionEntry const* GetTransmogIllusionForEnchantment(uint32 spellItemEnchantmentId) const;
std::vector<TransmogSetEntry const*> const* GetTransmogSetsForItemModifiedAppearance(uint32 itemModifiedAppearanceId) const;
std::vector<TransmogSetItemEntry const*> const* GetTransmogSetItems(uint32 transmogSetId) const;
static bool GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local,
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index eabb0c4ac21..be163abe409 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -2596,16 +2596,16 @@ struct MapEntry
bool IsScenario() const { return InstanceType == MAP_SCENARIO; }
bool IsWorldMap() const { return InstanceType == MAP_COMMON; }
- bool GetEntrancePos(int32& mapid, float& x, float& y) const
+ bool GetEntrancePos(int32& mapid, float& /*x*/, float& /*y*/) const
{
if (CorpseMapID < 0)
return false;
// FIX ME!
- //mapid = CorpseMapID;
+ mapid = CorpseMapID;
//x = Corpse.X;
//y = Corpse.Y;
- //return true;
+ return true;
}
bool IsContinent() const
@@ -3391,7 +3391,7 @@ struct SpellDurationEntry
uint32 ID;
int32 Duration;
uint32 DurationPerLevel;
- uint32 MaxDuration;
+ int32 MaxDuration;
};
struct SpellEffectEntry
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index e99faab32c1..642367f1128 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -49,12 +49,12 @@ LFGDungeonData::LFGDungeonData() : id(0), name(), map(0), type(0), expansion(0),
LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID),
type(uint8(dbc->TypeID)), expansion(uint8(dbc->ExpansionLevel)), group(uint8(dbc->GroupID)),
- contentTuningId(uint32(dbc->ContentTuningID)), difficulty(Difficulty(dbc->DifficultyID)),
+ contentTuningId(0), difficulty(Difficulty(dbc->DifficultyID)),
seasonal((dbc->Flags[0] & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
requiredItemLevel(0), finalDungeonEncounterId(0)
{
- if (JournalEncounterEntry const* journalEncounter = sJournalEncounterStore.LookupEntry(dbc->FinalEncounterID))
- finalDungeonEncounterId = journalEncounter->DungeonEncounterID;
+ //if (JournalEncounterEntry const* journalEncounter = sJournalEncounterStore.LookupEntry(dbc->FinalEncounterID))
+ // finalDungeonEncounterId = journalEncounter->DungeonEncounterID;
}
LFGMgr::LFGMgr() : m_QueueTimer(0), m_lfgProposalId(1),
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index ecc2ba48585..5816b1c3707 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -2869,12 +2869,12 @@ void GameObject::Use(Unit* user)
if (!areaContentTuning)
break;
- player->UpdateFishingSkill(areaContentTuning->ExpansionID);
+ player->UpdateFishingSkill(0);
// Send loot
int32 areaFishingLevel = sObjectMgr->GetFishingBaseSkillLevel(areaEntry);
- uint32 playerFishingSkill = player->GetProfessionSkillForExp(SKILL_FISHING, areaContentTuning->ExpansionID);
+ uint32 playerFishingSkill = player->GetProfessionSkillForExp(SKILL_FISHING, 0);
int32 playerFishingLevel = player->GetSkillValue(playerFishingSkill);
int32 roll = irand(1, 100);
diff --git a/src/server/game/Entities/Item/ItemBonusMgr.cpp b/src/server/game/Entities/Item/ItemBonusMgr.cpp
index 748fd929647..7315bc8ea8a 100644
--- a/src/server/game/Entities/Item/ItemBonusMgr.cpp
+++ b/src/server/game/Entities/Item/ItemBonusMgr.cpp
@@ -32,10 +32,7 @@ struct ItemLevelSelectorQualityEntryComparator
using ItemLevelSelectorQualities = std::set<ItemLevelSelectorQualityEntry const*, ItemLevelSelectorQualityEntryComparator>;
-std::unordered_multimap<int32 /*azeriteUnlockMappingSetId*/, AzeriteUnlockMappingEntry const*> _azeriteUnlockMappings;
-std::unordered_multimap<uint32 /*itemBonusTreeId*/, ChallengeModeItemBonusOverrideEntry const*> _challengeModeItemBonusOverrides;
std::unordered_map<uint32 /*itemBonusListId*/, std::vector<ItemBonusEntry const*>> _itemBonusLists;
-std::unordered_multimap<int32, ItemBonusListGroupEntryEntry const*> _itemBonusListGroupEntries;
std::unordered_map<int16 /*itemLevelDelta*/, uint32 /*itemBonusListId*/> _itemLevelDeltaToBonusListContainer;
std::unordered_map<uint32 /*itemLevelSelectorQualitySetId*/, ItemLevelSelectorQualities> _itemLevelQualitySelectorQualities;
std::unordered_map<uint32 /*itemBonusTreeId*/, std::set<ItemBonusTreeNodeEntry const*>> _itemBonusTrees;
@@ -46,18 +43,9 @@ namespace ItemBonusMgr
{
void Load()
{
- for (AzeriteUnlockMappingEntry const* azeriteUnlockMapping : sAzeriteUnlockMappingStore)
- _azeriteUnlockMappings.emplace(azeriteUnlockMapping->AzeriteUnlockMappingSetID, azeriteUnlockMapping);
-
- for (ChallengeModeItemBonusOverrideEntry const* challengeModeItemBonusOverride : sChallengeModeItemBonusOverrideStore)
- _challengeModeItemBonusOverrides.emplace(challengeModeItemBonusOverride->SrcItemBonusTreeID, challengeModeItemBonusOverride);
-
for (ItemBonusEntry const* bonus : sItemBonusStore)
_itemBonusLists[bonus->ParentItemBonusListID].push_back(bonus);
- for (ItemBonusListGroupEntryEntry const* bonusListGroupEntry : sItemBonusListGroupEntryStore)
- _itemBonusListGroupEntries.emplace(bonusListGroupEntry->ItemBonusListGroupID, bonusListGroupEntry);
-
for (ItemBonusListLevelDeltaEntry const* itemBonusListLevelDelta : sItemBonusListLevelDeltaStore)
_itemLevelDeltaToBonusListContainer[itemBonusListLevelDelta->ItemLevelDelta] = itemBonusListLevelDelta->ID;
@@ -112,9 +100,6 @@ ItemContext GetContextForPlayer(MapDifficultyEntry const* mapDifficulty, Player
if (!meetsPlayerCondition)
continue;
- if (itemContextPickerEntry->LabelID && !sDB2Manager.HasContentTuningLabel(contentTuningId, itemContextPickerEntry->LabelID))
- continue;
-
if (!selectedPickerEntry || selectedPickerEntry->OrderIndex < itemContextPickerEntry->OrderIndex)
selectedPickerEntry = itemContextPickerEntry;
}
@@ -144,294 +129,20 @@ uint32 GetItemBonusListForItemLevelDelta(int16 delta)
bool CanApplyBonusTreeToItem(ItemTemplate const* itemTemplate, uint32 itemBonusTreeId, ItemBonusGenerationParams const& params)
{
- if (ItemBonusTreeEntry const* bonusTree = sItemBonusTreeStore.LookupEntry(itemBonusTreeId))
- {
- if (bonusTree->InventoryTypeSlotMask)
- if (!(1 << itemTemplate->GetInventoryType() & bonusTree->InventoryTypeSlotMask))
- return false;
-
- if (bonusTree->Flags & 0x8 && !itemTemplate->HasFlag(ITEM_FLAG2_CASTER_WEAPON))
- return false;
- if (bonusTree->Flags & 0x10 && itemTemplate->HasFlag(ITEM_FLAG2_CASTER_WEAPON))
- return false;
- if (bonusTree->Flags & 0x20 && !itemTemplate->HasFlag(ITEM_FLAG4_CC_TRINKET))
- return false;
- if (bonusTree->Flags & 0x40 && itemTemplate->HasFlag(ITEM_FLAG4_CC_TRINKET))
- return false;
-
- if (bonusTree->Flags & 0x4)
- return true;
- }
-
- if (std::set<ItemBonusTreeNodeEntry const*>* bonusTreeNodes = Trinity::Containers::MapGetValuePtr(_itemBonusTrees, itemBonusTreeId))
- {
- bool anyNodeMatched = false;
- for (ItemBonusTreeNodeEntry const* bonusTreeNode : *bonusTreeNodes)
- {
- if (bonusTreeNode->MinMythicPlusLevel > 0)
- continue;
-
- ItemContext nodeContext = ItemContext(bonusTreeNode->ItemContext);
- if (nodeContext == ItemContext::NONE || nodeContext == params.Context)
- {
- if (anyNodeMatched)
- return false;
-
- anyNodeMatched = true;
- }
- }
- }
-
- return true;
+ return false;
}
uint32 GetBonusTreeIdOverride(uint32 itemBonusTreeId, ItemBonusGenerationParams const& params)
{
- // TODO: configure seasons globally
- if (MythicPlusSeasonEntry const* mythicPlusSeason = sMythicPlusSeasonStore.LookupEntry(0))
- {
- int32 selectedLevel = -1;
- int32 selectedMilestoneSeason = -1;
- ChallengeModeItemBonusOverrideEntry const* selectedItemBonusOverride = nullptr;
- for (auto& [_, itemBonusOverride] : Trinity::Containers::MapEqualRange(_challengeModeItemBonusOverrides, itemBonusTreeId))
- {
- if (itemBonusOverride->Type != 0)
- continue;
-
- if (itemBonusOverride->Value > params.MythicPlusKeystoneLevel.value_or(-1))
- continue;
-
- if (itemBonusOverride->MythicPlusSeasonID)
- {
- MythicPlusSeasonEntry const* overrideSeason = sMythicPlusSeasonStore.LookupEntry(itemBonusOverride->MythicPlusSeasonID);
- if (!overrideSeason)
- continue;
-
- if (mythicPlusSeason->MilestoneSeason < overrideSeason->MilestoneSeason)
- continue;
-
- if (selectedMilestoneSeason > overrideSeason->MilestoneSeason)
- continue;
-
- if (selectedMilestoneSeason == overrideSeason->MilestoneSeason)
- if (selectedLevel > itemBonusOverride->Value)
- continue;
-
- selectedMilestoneSeason = overrideSeason->MilestoneSeason;
- }
- else if (selectedLevel > itemBonusOverride->Value)
- continue;
-
- selectedLevel = itemBonusOverride->Value;
- selectedItemBonusOverride = itemBonusOverride;
- }
-
- if (selectedItemBonusOverride && selectedItemBonusOverride->DstItemBonusTreeID)
- itemBonusTreeId = selectedItemBonusOverride->DstItemBonusTreeID;
- }
-
- // TODO: configure seasons globally
- if (PvpSeasonEntry const* pvpSeason = sPvpSeasonStore.LookupEntry(0))
- {
- int32 selectedLevel = -1;
- int32 selectedMilestoneSeason = -1;
- ChallengeModeItemBonusOverrideEntry const* selectedItemBonusOverride = nullptr;
- for (auto& [_, itemBonusOverride] : Trinity::Containers::MapEqualRange(_challengeModeItemBonusOverrides, itemBonusTreeId))
- {
- if (itemBonusOverride->Type != 1)
- continue;
-
- if (itemBonusOverride->Value > params.PvpTier.value_or(-1))
- continue;
-
- if (itemBonusOverride->PvPSeasonID)
- {
- PvpSeasonEntry const* overrideSeason = sPvpSeasonStore.LookupEntry(itemBonusOverride->PvPSeasonID);
- if (!overrideSeason)
- continue;
-
- if (pvpSeason->MilestoneSeason < overrideSeason->MilestoneSeason)
- continue;
-
- if (selectedMilestoneSeason > overrideSeason->MilestoneSeason)
- continue;
-
- if (selectedMilestoneSeason == overrideSeason->MilestoneSeason)
- if (selectedLevel > itemBonusOverride->Value)
- continue;
-
- selectedMilestoneSeason = overrideSeason->MilestoneSeason;
- }
- else if (selectedLevel > itemBonusOverride->Value)
- continue;
-
- selectedLevel = itemBonusOverride->Value;
- selectedItemBonusOverride = itemBonusOverride;
- }
-
- if (selectedItemBonusOverride && selectedItemBonusOverride->DstItemBonusTreeID)
- itemBonusTreeId = selectedItemBonusOverride->DstItemBonusTreeID;
- }
-
return itemBonusTreeId;
}
void ApplyBonusTreeHelper(ItemTemplate const* itemTemplate, uint32 itemBonusTreeId, ItemBonusGenerationParams const& params, int32 sequenceLevel, uint32* itemLevelSelectorId, std::vector<int32>* bonusListIDs)
{
- uint32 originalItemBonusTreeId = itemBonusTreeId;
-
- // override bonus tree with season specific values
- itemBonusTreeId = GetBonusTreeIdOverride(itemBonusTreeId, params);
-
- if (!CanApplyBonusTreeToItem(itemTemplate, itemBonusTreeId, params))
- return;
-
- auto treeItr = _itemBonusTrees.find(itemBonusTreeId);
- if (treeItr == _itemBonusTrees.end())
- return;
-
- for (ItemBonusTreeNodeEntry const* bonusTreeNode : treeItr->second)
- {
- ItemContext nodeContext = ItemContext(bonusTreeNode->ItemContext);
- ItemContext requiredContext = nodeContext != ItemContext::Force_to_NONE ? nodeContext : ItemContext::NONE;
- if (nodeContext != ItemContext::NONE && params.Context != requiredContext)
- continue;
-
- if (params.MythicPlusKeystoneLevel)
- {
- if (bonusTreeNode->MinMythicPlusLevel && params.MythicPlusKeystoneLevel < bonusTreeNode->MinMythicPlusLevel)
- continue;
-
- if (bonusTreeNode->MaxMythicPlusLevel && params.MythicPlusKeystoneLevel > bonusTreeNode->MaxMythicPlusLevel)
- continue;
- }
-
- if (bonusTreeNode->ChildItemBonusTreeID)
- ApplyBonusTreeHelper(itemTemplate, bonusTreeNode->ChildItemBonusTreeID, params, sequenceLevel, itemLevelSelectorId, bonusListIDs);
- else if (bonusTreeNode->ChildItemBonusListID)
- bonusListIDs->push_back(bonusTreeNode->ChildItemBonusListID);
- else if (bonusTreeNode->ChildItemLevelSelectorID)
- *itemLevelSelectorId = bonusTreeNode->ChildItemLevelSelectorID;
- else if (bonusTreeNode->ChildItemBonusListGroupID)
- {
- int32 resolvedSequenceLevel = sequenceLevel;
- switch (originalItemBonusTreeId)
- {
- case 4001:
- resolvedSequenceLevel = 1;
- break;
- case 4079:
- if (params.MythicPlusKeystoneLevel)
- {
- switch (bonusTreeNode->IblGroupPointsModSetID)
- {
- case 2909: // MythicPlus_End_of_Run levels 2-8
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(62951, *params.MythicPlusKeystoneLevel);
- break;
- case 2910: // MythicPlus_End_of_Run levels 9-16
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(62952, *params.MythicPlusKeystoneLevel);
- break;
- case 2911: // MythicPlus_End_of_Run levels 17-20
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(62954, *params.MythicPlusKeystoneLevel);
- break;
- case 3007: // MythicPlus_Jackpot (weekly reward) levels 2-7
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(64388, *params.MythicPlusKeystoneLevel);
- break;
- case 3008: // MythicPlus_Jackpot (weekly reward) levels 8-15
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(64389, *params.MythicPlusKeystoneLevel);
- break;
- case 3009: // MythicPlus_Jackpot (weekly reward) levels 16-20
- resolvedSequenceLevel = sDB2Manager.GetCurveValueAt(64395, *params.MythicPlusKeystoneLevel);
- break;
- default:
- break;
- }
- }
- break;
- case 4125:
- resolvedSequenceLevel = 2;
- break;
- case 4126:
- resolvedSequenceLevel = 3;
- break;
- case 4127:
- resolvedSequenceLevel = 4;
- break;
- case 4128:
- switch (params.Context)
- {
- case ItemContext::Raid_Normal:
- case ItemContext::Raid_Raid_Finder:
- case ItemContext::Raid_Heroic:
- resolvedSequenceLevel = 2;
- break;
- case ItemContext::Raid_Mythic:
- resolvedSequenceLevel = 6;
- break;
- default:
- break;
- }
- break;
- case 4140:
- switch (params.Context)
- {
- case ItemContext::Dungeon_Normal:
- resolvedSequenceLevel = 2;
- break;
- case ItemContext::Dungeon_Mythic:
- resolvedSequenceLevel = 4;
- break;
- default:
- break;
- }
- break;
- default:
- break;
- }
-
- for (auto const& [_, bonusListGroupEntry] : Trinity::Containers::MapEqualRange(_itemBonusListGroupEntries, bonusTreeNode->ChildItemBonusListGroupID))
- {
- if ((resolvedSequenceLevel > 0 || bonusListGroupEntry->SequenceValue <= 0) && resolvedSequenceLevel != bonusListGroupEntry->SequenceValue)
- continue;
-
- *itemLevelSelectorId = bonusListGroupEntry->ItemLevelSelectorID;
- bonusListIDs->push_back(bonusListGroupEntry->ItemBonusListID);
- break;
- }
- }
- }
}
int32 GetAzeriteUnlockBonusList(uint16 azeriteUnlockMappingSetId, uint16 minItemLevel, InventoryType inventoryType)
{
- AzeriteUnlockMappingEntry const* selectedAzeriteUnlockMapping = nullptr;
- for (auto [_, azeriteUnlockMapping] : Trinity::Containers::MapEqualRange(_azeriteUnlockMappings, azeriteUnlockMappingSetId))
- {
- if (minItemLevel < azeriteUnlockMapping->ItemLevel)
- continue;
-
- if (selectedAzeriteUnlockMapping && selectedAzeriteUnlockMapping->ItemLevel > azeriteUnlockMapping->ItemLevel)
- continue;
-
- selectedAzeriteUnlockMapping = azeriteUnlockMapping;
- }
-
- if (selectedAzeriteUnlockMapping)
- {
- switch (inventoryType)
- {
- case INVTYPE_HEAD:
- return selectedAzeriteUnlockMapping->ItemBonusListHead;
- case INVTYPE_SHOULDERS:
- return selectedAzeriteUnlockMapping->ItemBonusListShoulders;
- case INVTYPE_CHEST:
- case INVTYPE_ROBE:
- return selectedAzeriteUnlockMapping->ItemBonusListChest;
- default:
- break;
- }
- }
-
return 0;
}
@@ -473,9 +184,6 @@ std::vector<int32> GetBonusListsForItem(uint32 itemId, ItemBonusGenerationParams
bonusListIDs.push_back((*itemSelectorQuality)->QualityItemBonusListID);
}
}
-
- if (int32 azeriteUnlockBonusListId = GetAzeriteUnlockBonusList(selector->AzeriteUnlockMappingSet, selector->MinItemLevel, itemTemplate->GetInventoryType()))
- bonusListIDs.push_back(azeriteUnlockBonusListId);
}
return bonusListIDs;
diff --git a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
index 297d39f1da9..224a8cc6001 100644
--- a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
+++ b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
@@ -160,14 +160,14 @@ TC_GAME_API float GetRandomPropertyPoints(uint32 itemLevel, uint32 quality, uint
switch (quality)
{
case ITEM_QUALITY_UNCOMMON:
- return randPropPointsEntry->GoodF[propIndex];
+ return randPropPointsEntry->Good[propIndex];
case ITEM_QUALITY_RARE:
case ITEM_QUALITY_HEIRLOOM:
- return randPropPointsEntry->SuperiorF[propIndex];
+ return randPropPointsEntry->Superior[propIndex];
case ITEM_QUALITY_EPIC:
case ITEM_QUALITY_LEGENDARY:
case ITEM_QUALITY_ARTIFACT:
- return randPropPointsEntry->EpicF[propIndex];
+ return randPropPointsEntry->Epic[propIndex];
}
return 0;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 51c85f241df..350756f3313 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2381,7 +2381,7 @@ int32 WorldObject::CalcSpellDuration(SpellInfo const* spellInfo, std::vector<Spe
int32 baseComboCost = (*itr)->ManaCost + (*itr)->OptionalCost;
if (PowerTypeEntry const* powerTypeEntry = sDB2Manager.GetPowerTypeEntry(POWER_COMBO_POINTS))
- baseComboCost += int32(CalculatePct(powerTypeEntry->MaxBasePower, (*itr)->PowerCostPct + (*itr)->OptionalCostPct));
+ baseComboCost += int32(CalculatePct(powerTypeEntry->MaxBasePower, (*itr)->PowerCostPct));
float durationPerComboPoint = float(maxduration - minduration) / baseComboCost;
return minduration + int32(durationPerComboPoint * consumedItr->Amount);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 296875faa06..c59c553f37b 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -6335,46 +6335,6 @@ void Player::CheckAreaExploreAndOutdoor()
AddExploredZones(offset, val);
UpdateCriteria(CriteriaType::RevealWorldMapOverlay, GetAreaId());
-
- if (Optional<ContentTuningLevels> areaLevels = sDB2Manager.GetContentTuningData(areaEntry->ContentTuningID, m_playerData->CtrOptions->ContentTuningConditionMask))
- {
- if (IsMaxLevel())
- {
- SendExplorationExperience(areaId, 0);
- }
- else
- {
- int16 areaLevel = std::min(std::max(int16(GetLevel()), areaLevels->MinLevel), areaLevels->MaxLevel);
- int32 diff = int32(GetLevel()) - areaLevel;
- uint32 XP;
- if (diff < -5)
- {
- XP = uint32(sObjectMgr->GetBaseXP(GetLevel() + 5) * sWorld->getRate(RATE_XP_EXPLORE));
- }
- else if (diff > 5)
- {
- int32 exploration_percent = 100 - ((diff - 5) * 5);
- if (exploration_percent < 0)
- exploration_percent = 0;
-
- XP = uint32(sObjectMgr->GetBaseXP(areaLevel) * exploration_percent / 100 * sWorld->getRate(RATE_XP_EXPLORE));
- }
- else
- {
- XP = uint32(sObjectMgr->GetBaseXP(areaLevel) * sWorld->getRate(RATE_XP_EXPLORE));
- }
-
- if (sWorld->getIntConfig(CONFIG_MIN_DISCOVERED_SCALED_XP_RATIO))
- {
- uint32 minScaledXP = uint32(sObjectMgr->GetBaseXP(areaLevel)*sWorld->getRate(RATE_XP_EXPLORE)) * sWorld->getIntConfig(CONFIG_MIN_DISCOVERED_SCALED_XP_RATIO) / 100;
- XP = std::max(minScaledXP, XP);
- }
-
- GiveXP(XP, nullptr);
- SendExplorationExperience(areaId, XP);
- }
- TC_LOG_DEBUG("entities.player", "Player '{}' ({}) discovered a new area: {}", GetName(),GetGUID().ToString(), areaId);
- }
}
}
@@ -6464,10 +6424,12 @@ ReputationRank Player::GetReputationRank(uint32 faction) const
int32 Player::CalculateReputationGain(ReputationSource source, uint32 creatureOrQuestLevel, int32 rep, int32 faction, bool noQuestBonus)
{
bool noBonuses = false;
+ /*
if (FactionEntry const* factionEntry = sFactionStore.LookupEntry(faction))
if (FriendshipReputationEntry const* friendshipReputation = sFriendshipReputationStore.LookupEntry(factionEntry->FriendshipRepID))
if (friendshipReputation->GetFlags().HasFlag(FriendshipReputationFlags::NoRepGainModifiers))
noBonuses = true;
+ */
float percent = 100.0f;
@@ -6570,8 +6532,8 @@ void Player::RewardReputation(Unit* victim, float rate)
Map const* map = GetMap();
if (map->IsNonRaidDungeon())
if (LFGDungeonsEntry const* dungeon = DB2Manager::GetLfgDungeon(map->GetId(), map->GetDifficultyID()))
- if (Optional<ContentTuningLevels> dungeonLevels = sDB2Manager.GetContentTuningData(dungeon->ContentTuningID, m_playerData->CtrOptions->ContentTuningConditionMask))
- if (dungeonLevels->TargetLevelMax == int16(GetMaxLevelForExpansion(EXPANSION_WRATH_OF_THE_LICH_KING)))
+ if (LFGDungeonsEntry const* dungeon = DB2Manager::GetLfgDungeon(map->GetId(), map->GetDifficultyID()))
+ if (dungeon->TargetLevel == int16(GetMaxLevelForExpansion(EXPANSION_WRATH_OF_THE_LICH_KING)))
ChampioningFaction = GetChampioningFaction();
}
@@ -7345,9 +7307,6 @@ uint32 Player::GetCurrencyMaxQuantity(CurrencyTypesEntry const* currency, bool o
return 0;
uint32 maxQuantity = currency->MaxQty;
- if (currency->MaxQtyWorldStateID)
- maxQuantity = sWorldStateMgr->GetValue(currency->MaxQtyWorldStateID, GetMap());
-
uint32 increasedCap = 0;
if (currency->GetFlags().HasFlag(CurrencyTypesFlags::DynamicMaximum))
increasedCap = GetCurrencyIncreasedCapQuantity(currency->ID);
@@ -18442,21 +18401,6 @@ bool Player::LoadFromDB(ObjectGuid guid, CharacterDatabaseQueryHolder const& hol
PushQuests();
- for (TransmogIllusionEntry const* transmogIllusion : sTransmogIllusionStore)
- {
- if (!transmogIllusion->GetFlags().HasFlag(TransmogIllusionFlags::PlayerConditionGrantsOnLogin))
- continue;
-
- if (GetSession()->GetCollectionMgr()->HasTransmogIllusion(transmogIllusion->ID))
- continue;
-
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(transmogIllusion->UnlockConditionID))
- if (!ConditionMgr::IsPlayerMeetingCondition(this, playerCondition))
- continue;
-
- GetSession()->GetCollectionMgr()->AddTransmogIllusion(transmogIllusion->ID);
- }
-
return true;
}
@@ -26791,58 +26735,7 @@ void Player::ResetTalentSpecialization()
TalentLearnResult Player::LearnPvpTalent(uint32 talentID, uint8 slot, int32* spellOnCooldown)
{
- if (slot >= MAX_PVP_TALENT_SLOTS)
- return TALENT_FAILED_UNKNOWN;
-
- if (IsInCombat())
- return TALENT_FAILED_AFFECTING_COMBAT;
-
- if (isDead())
- return TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW;
-
- PvpTalentEntry const* talentInfo = sPvpTalentStore.LookupEntry(talentID);
- if (!talentInfo)
- return TALENT_FAILED_UNKNOWN;
-
- if (talentInfo->SpecID != int32(GetPrimarySpecialization()))
- return TALENT_FAILED_UNKNOWN;
-
- if (talentInfo->LevelRequired > GetLevel())
- return TALENT_FAILED_UNKNOWN;
-
- if (sDB2Manager.GetRequiredLevelForPvpTalentSlot(slot, Classes(GetClass())) > GetLevel())
- return TALENT_FAILED_UNKNOWN;
-
- if (PvpTalentCategoryEntry const* talentCategory = sPvpTalentCategoryStore.LookupEntry(talentInfo->PvpTalentCategoryID))
- if (!(talentCategory->TalentSlotMask & (1 << slot)))
- return TALENT_FAILED_UNKNOWN;
-
- // Check if player doesn't have this talent in other slot
- if (HasPvpTalent(talentID, GetActiveTalentGroup()))
- return TALENT_FAILED_UNKNOWN;
-
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(talentInfo->PlayerConditionID))
- if (!ConditionMgr::IsPlayerMeetingCondition(this, playerCondition))
- return TALENT_FAILED_CANT_DO_THAT_RIGHT_NOW;
-
- if (PvpTalentEntry const* talent = sPvpTalentStore.LookupEntry(GetPvpTalentMap(GetActiveTalentGroup())[slot]))
- {
- if (!HasPlayerFlag(PLAYER_FLAGS_RESTING) && !HasUnitFlag2(UNIT_FLAG2_ALLOW_CHANGING_TALENTS))
- return TALENT_FAILED_REST_AREA;
-
- if (GetSpellHistory()->HasCooldown(talent->SpellID))
- {
- *spellOnCooldown = talent->SpellID;
- return TALENT_FAILED_CANT_REMOVE_TALENT;
- }
-
- RemovePvpTalent(talent, GetActiveTalentGroup());
- }
-
- if (!AddPvpTalent(talentInfo, GetActiveTalentGroup(), slot))
- return TALENT_FAILED_UNKNOWN;
-
- return TALENT_LEARN_OK;
+ return TALENT_FAILED_UNKNOWN;
}
bool Player::AddPvpTalent(PvpTalentEntry const* talent, uint8 activeTalentGroup, uint8 slot)
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index b07e7d625e9..5dd4eaf42d0 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -727,29 +727,6 @@ void Player::UpdateSpellCritChance()
void Player::UpdateCorruption()
{
- float effectiveCorruption = GetRatingBonusValue(CR_CORRUPTION) - GetRatingBonusValue(CR_CORRUPTION_RESISTANCE);
- for (CorruptionEffectsEntry const* corruptionEffect : sCorruptionEffectsStore)
- {
- if ((CorruptionEffectsFlag(corruptionEffect->Flags) & CorruptionEffectsFlag::Disabled) != CorruptionEffectsFlag::None)
- continue;
-
- if (effectiveCorruption < corruptionEffect->MinCorruption)
- {
- RemoveAura(corruptionEffect->Aura);
- continue;
- }
-
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(corruptionEffect->PlayerConditionID))
- {
- if (!ConditionMgr::IsPlayerMeetingCondition(this, playerCondition))
- {
- RemoveAura(corruptionEffect->Aura);
- continue;
- }
- }
-
- CastSpell(this, corruptionEffect->Aura, true);
- }
}
void Player::UpdateArmorPenetration(int32 amount)
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index c9e7114b6af..708b35d2418 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -8035,11 +8035,6 @@ MountCapabilityEntry const* Unit::GetMountCapability(uint32 mountType) const
if (mountCapability->ReqSpellKnownID && !HasSpell(mountCapability->ReqSpellKnownID))
continue;
- if (Player const* thisPlayer = ToPlayer())
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(mountCapability->PlayerConditionID))
- if (!ConditionMgr::IsPlayerMeetingCondition(thisPlayer, playerCondition))
- continue;
-
return mountCapability;
}
@@ -11976,11 +11971,27 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form, uint32 spellId) const
}
}
+ uint32 modelId = 0;
SpellShapeshiftFormEntry const* formEntry = sSpellShapeshiftFormStore.LookupEntry(form);
- if (formEntry && formEntry->CreatureDisplayID)
- return formEntry->CreatureDisplayID;
+ if (formEntry && formEntry->CreatureDisplayID[0])
+ {
+ // Take the alliance modelid as default
+ if (GetTypeId() != TYPEID_PLAYER)
+ return formEntry->CreatureDisplayID[0];
+ else
+ {
+ if (Player::TeamForRace(GetRace()) == ALLIANCE)
+ modelId = formEntry->CreatureDisplayID[0];
+ else
+ modelId = formEntry->CreatureDisplayID[1];
- return 0;
+ // If the player is horde but there are no values for the horde modelid - take the alliance modelid
+ if (!modelId && Player::TeamForRace(GetRace()) == HORDE)
+ modelId = formEntry->CreatureDisplayID[0];
+ }
+ }
+
+ return modelId;
}
void Unit::JumpTo(float speedXY, float speedZ, float angle, Optional<Position> dest)
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 0f63ab58c88..13c70ef83d7 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -3321,11 +3321,13 @@ void ObjectMgr::LoadItemTemplates()
specs.set();
}
+ /*
// Load item effects (spells)
for (ItemXItemEffectEntry const* effectEntry : sItemXItemEffectStore)
if (ItemTemplate* item = Trinity::Containers::MapGetValuePtr(_itemTemplateStore, effectEntry->ItemID))
if (ItemEffectEntry const* effect = sItemEffectStore.LookupEntry(effectEntry->ItemEffectID))
item->Effects.push_back(effect);
+ */
TC_LOG_INFO("server.loading", ">> Loaded {} item templates in {} ms", _itemTemplateStore.size(), GetMSTimeDiffToNow(oldMSTime));
}
@@ -6917,8 +6919,7 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveyardInZone(WorldLocation con
// if find graveyard at different map from where entrance placed (or no entrance data), use any first
if (!mapEntry
|| mapEntry->CorpseMapID < 0
- || uint32(mapEntry->CorpseMapID) != entry->Loc.GetMapId()
- || (mapEntry->Corpse.X == 0 && mapEntry->Corpse.Y == 0)) // Check X and Y
+ || uint32(mapEntry->CorpseMapID) != entry->Loc.GetMapId())
{
// not have any corrdinates for check distance anyway
entryFar = entry;
@@ -6926,20 +6927,15 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveyardInZone(WorldLocation con
}
// at entrance map calculate distance (2D);
- float dist2 = (entry->Loc.GetPositionX() - mapEntry->Corpse.X) * (entry->Loc.GetPositionX() - mapEntry->Corpse.X)
- + (entry->Loc.GetPositionY() - mapEntry->Corpse.Y) * (entry->Loc.GetPositionY() - mapEntry->Corpse.Y);
if (foundEntr)
{
- if (dist2 < distEntr)
- {
- distEntr = dist2;
- entryEntr = entry;
- }
+ //distEntr = 0.f;
+ entryEntr = entry;
}
else
{
foundEntr = true;
- distEntr = dist2;
+ //distEntr = 0.f;
entryEntr = entry;
}
}
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp
index e7baa92f361..fcb0ed610ed 100644
--- a/src/server/game/Handlers/MiscHandler.cpp
+++ b/src/server/game/Handlers/MiscHandler.cpp
@@ -1167,18 +1167,8 @@ void WorldSession::HandleConversationLineStarted(WorldPackets::Misc::Conversatio
void WorldSession::HandleRequestLatestSplashScreen(WorldPackets::Misc::RequestLatestSplashScreen& /*requestLatestSplashScreen*/)
{
- UISplashScreenEntry const* splashScreen = nullptr;
- for (auto itr = sUISplashScreenStore.begin(); itr != sUISplashScreenStore.end(); ++itr)
- {
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(itr->CharLevelConditionID))
- if (!ConditionMgr::IsPlayerMeetingCondition(_player, playerCondition))
- continue;
-
- splashScreen = *itr;
- }
-
WorldPackets::Misc::SplashScreenShowLatest splashScreenShowLatest;
- splashScreenShowLatest.UISplashScreenID = splashScreen ? splashScreen->ID : 0;
+ splashScreenShowLatest.UISplashScreenID = 0;
SendPacket(splashScreenShowLatest.Write());
}
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 74548ba34e2..4bcab4d2074 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -154,8 +154,8 @@ void WorldSession::HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLoc
if (std::shared_ptr<TerrainInfo> entranceTerrain = sTerrainMgr.LoadTerrain(corpseMapEntry->CorpseMapID))
{
mapID = corpseMapEntry->CorpseMapID;
- x = corpseMapEntry->Corpse.X;
- y = corpseMapEntry->Corpse.Y;
+ //x = corpseMapEntry->Corpse.X;
+ //y = corpseMapEntry->Corpse.Y;
z = entranceTerrain->GetStaticHeight(player->GetPhaseShift(), mapID, x, y, MAX_HEIGHT);
}
}
diff --git a/src/server/game/Handlers/TransmogrificationHandler.cpp b/src/server/game/Handlers/TransmogrificationHandler.cpp
index e067b97f57a..23d51ec49fd 100644
--- a/src/server/game/Handlers/TransmogrificationHandler.cpp
+++ b/src/server/game/Handlers/TransmogrificationHandler.cpp
@@ -119,36 +119,6 @@ void WorldSession::HandleTransmogrifyItems(WorldPackets::Transmogrification::Tra
}
else
resetAppearanceItems.push_back(itemTransmogrified);
-
- if (transmogItem.SpellItemEnchantmentID)
- {
- if (transmogItem.Slot != EQUIPMENT_SLOT_MAINHAND && transmogItem.Slot != EQUIPMENT_SLOT_OFFHAND)
- {
- TC_LOG_DEBUG("network", "WORLD: HandleTransmogrifyItems - {}, Name: {} tried to transmogrify illusion into non-weapon slot ({}).", player->GetGUID().ToString(), player->GetName(), transmogItem.Slot);
- return;
- }
-
- TransmogIllusionEntry const* illusion = sDB2Manager.GetTransmogIllusionForEnchantment(transmogItem.SpellItemEnchantmentID);
- if (!illusion)
- {
- TC_LOG_DEBUG("network", "WORLD: HandleTransmogrifyItems - {}, Name: {} tried to transmogrify illusion using invalid enchant ({}).", player->GetGUID().ToString(), player->GetName(), transmogItem.SpellItemEnchantmentID);
- return;
- }
-
- if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(illusion->UnlockConditionID))
- {
- if (!ConditionMgr::IsPlayerMeetingCondition(player, condition))
- {
- TC_LOG_DEBUG("network", "WORLD: HandleTransmogrifyItems - {}, Name: {} tried to transmogrify illusion using not allowed enchant ({}).", player->GetGUID().ToString(), player->GetName(), transmogItem.SpellItemEnchantmentID);
- return;
- }
- }
-
- illusionItems[itemTransmogrified] = transmogItem.SpellItemEnchantmentID;
- cost += illusion->TransmogCost;
- }
- else
- resetIllusionItems.push_back(itemTransmogrified);
}
if (!player->HasAuraType(SPELL_AURA_REMOVE_TRANSMOG_COST) && cost) // 0 cost if reverting look
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp
index 40c08e742f7..2acece13dd0 100644
--- a/src/server/game/Instances/InstanceScript.cpp
+++ b/src/server/game/Instances/InstanceScript.cpp
@@ -440,8 +440,6 @@ bool InstanceScript::SetBossState(uint32 id, EncounterState state)
DoUpdateCriteria(CriteriaType::DefeatDungeonEncounter, dungeonEncounter->ID);
SendBossKillCredit(dungeonEncounter->ID);
- if (dungeonEncounter->CompleteWorldStateID)
- DoUpdateWorldState(dungeonEncounter->CompleteWorldStateID, 1);
UpdateLfgEncounterState(bossInfo);
}
@@ -508,10 +506,6 @@ void InstanceScript::Load(char const* data)
{
if (bosses[i].state == DONE && !CheckRequiredBosses(i))
bosses[i].state = NOT_STARTED;
-
- if (DungeonEncounterEntry const* dungeonEncounter = bosses[i].GetDungeonEncounterForDifficulty(instance->GetDifficultyID()))
- if (dungeonEncounter->CompleteWorldStateID)
- DoUpdateWorldState(dungeonEncounter->CompleteWorldStateID, bosses[i].state == DONE ? 1 : 0);
}
UpdateSpawnGroups();
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 20306a41081..17003ca274a 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -398,8 +398,6 @@ uint32 Quest::XPValue(Player const* player, uint32 contentTuningId, uint32 xpDif
return 0;
uint32 xp = questXp->Difficulty[xpDifficulty];
- if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(contentTuningId))
- xp = xp * contentTuning->QuestXpMultiplier;
int32 diffFactor = 2 * (questLevel - player->GetLevel()) + 12;
if (diffFactor < 1)
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index a424e24a7bc..0086030683f 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -5775,11 +5775,6 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
if (m_spellInfo->ExcludeCasterAuraSpell && unitCaster->HasAura(m_spellInfo->ExcludeCasterAuraSpell))
return SPELL_FAILED_CASTER_AURASTATE;
- if (m_spellInfo->CasterAuraType && !unitCaster->HasAuraType(m_spellInfo->CasterAuraType))
- return SPELL_FAILED_CASTER_AURASTATE;
- if (m_spellInfo->ExcludeCasterAuraType && unitCaster->HasAuraType(m_spellInfo->ExcludeCasterAuraType))
- return SPELL_FAILED_CASTER_AURASTATE;
-
if (unitCaster->IsInCombat() && !m_spellInfo->CanBeUsedInCombat(unitCaster))
return SPELL_FAILED_AFFECTING_COMBAT;
}
@@ -6559,54 +6554,7 @@ SpellCastResult Spell::CheckCast(bool strict, int32* param1 /*= nullptr*/, int32
case SPELL_EFFECT_GRANT_BATTLEPET_LEVEL:
case SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE:
{
- Player* playerCaster = m_caster->ToPlayer();
- if (!playerCaster || !m_targets.GetUnitTarget() || !m_targets.GetUnitTarget()->IsCreature())
- return SPELL_FAILED_BAD_TARGETS;
-
- BattlePets::BattlePetMgr* battlePetMgr = playerCaster->GetSession()->GetBattlePetMgr();
- if (!battlePetMgr->HasJournalLock())
- return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
-
- if (Creature* creature = m_targets.GetUnitTarget()->ToCreature())
- {
- if (playerCaster->GetSummonedBattlePetGUID().IsEmpty() || creature->GetBattlePetCompanionGUID().IsEmpty())
- return SPELL_FAILED_NO_PET;
-
- if (playerCaster->GetSummonedBattlePetGUID() != creature->GetBattlePetCompanionGUID())
- return SPELL_FAILED_BAD_TARGETS;
-
- if (BattlePets::BattlePet* battlePet = battlePetMgr->GetPet(creature->GetBattlePetCompanionGUID()))
- {
- if (BattlePetSpeciesEntry const* battlePetSpecies = sBattlePetSpeciesStore.LookupEntry(battlePet->PacketInfo.Species))
- {
- if (uint32 battlePetType = spellEffectInfo.MiscValue)
- if (!(battlePetType & (1 << battlePetSpecies->PetTypeEnum)))
- return SPELL_FAILED_WRONG_BATTLE_PET_TYPE;
-
- if (spellEffectInfo.Effect == SPELL_EFFECT_CHANGE_BATTLEPET_QUALITY)
- {
- auto qualityItr = std::lower_bound(sBattlePetBreedQualityStore.begin(), sBattlePetBreedQualityStore.end(), spellEffectInfo.CalcBaseValue(m_caster, creature, m_castItemEntry, m_castItemLevel), [](BattlePetBreedQualityEntry const* a1, int32 selector)
- {
- return a1->MaxQualityRoll < selector;
- });
-
- BattlePets::BattlePetBreedQuality quality = BattlePets::BattlePetBreedQuality::Poor;
- if (qualityItr != sBattlePetBreedQualityStore.end())
- quality = BattlePets::BattlePetBreedQuality(qualityItr->QualityEnum);
-
- if (battlePet->PacketInfo.Quality >= AsUnderlyingType(quality))
- return SPELL_FAILED_CANT_UPGRADE_BATTLE_PET;
- }
-
- if (spellEffectInfo.Effect == SPELL_EFFECT_GRANT_BATTLEPET_LEVEL || spellEffectInfo.Effect == SPELL_EFFECT_GRANT_BATTLEPET_EXPERIENCE)
- if (battlePet->PacketInfo.Level >= BattlePets::MAX_BATTLE_PET_LEVEL)
- return GRANT_PET_LEVEL_FAIL;
-
- if (battlePetSpecies->GetFlags().HasFlag(BattlePetSpeciesFlags::CantBattle))
- return SPELL_FAILED_BAD_TARGETS;
- }
- }
- }
+ return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
break;
}
default:
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 8c694c29f89..6f72cacf075 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2485,7 +2485,7 @@ void Spell::EffectEnchantItemTmp()
}
// select enchantment duration
- uint32 duration = pEnchant->Duration;
+ uint32 duration = m_damage;
// item can be in trade slot and have owner diff. from caster
Player* item_owner = itemTarget->GetOwner();
@@ -3807,7 +3807,7 @@ void Spell::EffectSkinning()
if (!contentTuning)
return;
- uint32 skinningSkill = player->GetProfessionSkillForExp(skill, contentTuning->ExpansionID);
+ uint32 skinningSkill = player->GetProfessionSkillForExp(skill, 0);
if (!skinningSkill)
return;
@@ -5505,6 +5505,9 @@ void Spell::EffectEnableBattlePets()
void Spell::EffectChangeBattlePetQuality()
{
+ return;
+
+ /*
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
@@ -5525,6 +5528,7 @@ void Spell::EffectChangeBattlePetQuality()
quality = BattlePets::BattlePetBreedQuality(qualityItr->QualityEnum);
playerCaster->GetSession()->GetBattlePetMgr()->ChangeBattlePetQuality(unitTarget->GetBattlePetCompanionGUID(), quality);
+ */
}
void Spell::EffectLaunchQuestChoice()
@@ -5926,6 +5930,9 @@ void Spell::EffectGrantBattlePetExperience()
void Spell::EffectLearnTransmogIllusion()
{
+ return;
+
+ /*
if (effectHandleMode != SPELL_EFFECT_HANDLE_HIT_TARGET)
return;
@@ -5938,6 +5945,7 @@ void Spell::EffectLearnTransmogIllusion()
return;
player->GetSession()->GetCollectionMgr()->AddTransmogIllusion(illusionId);
+ */
}
void Spell::EffectModifyAuraStacks()
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 4df6b83d89c..4e2e92a8f21 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -434,7 +434,6 @@ SpellEffectInfo::SpellEffectInfo(SpellInfo const* spellInfo, SpellEffectEntry co
TriggerSpell = _effect.EffectTriggerSpell;
SpellClassMask = _effect.EffectSpellClassMask;
BonusCoefficientFromAP = _effect.BonusCoefficientFromAP;
- Scaling.Class = _effect.ScalingClass;
Scaling.Coefficient = _effect.Coefficient;
Scaling.Variance = _effect.Variance;
Scaling.ResourceCoefficient = _effect.ResourceCoefficient;
@@ -571,6 +570,7 @@ int32 SpellEffectInfo::CalcBaseValue(WorldObject const* caster, Unit const* targ
level = _spellInfo->Scaling.MaxScalingLevel;
float value = 0.0f;
+ /*
if (level > 0)
{
if (!Scaling.Class)
@@ -606,8 +606,9 @@ int32 SpellEffectInfo::CalcBaseValue(WorldObject const* caster, Unit const* targ
if (GtStaminaMultByILvl const* staminaMult = sStaminaMultByILvlGameTable.GetRow(effectiveItemLevel))
if (ItemSparseEntry const* itemSparse = sItemSparseStore.LookupEntry(itemId))
value *= GetIlvlStatMultiplier(staminaMult, InventoryType(itemSparse->InventoryType));
- */
+
}
+ */
value *= Scaling.Coefficient;
if (value > 0.0f && value < 1.0f)
@@ -618,27 +619,6 @@ int32 SpellEffectInfo::CalcBaseValue(WorldObject const* caster, Unit const* targ
else
{
float value = BasePoints;
- ExpectedStatType stat = GetScalingExpectedStat();
- if (stat != ExpectedStatType::None)
- {
- if (_spellInfo->HasAttribute(SPELL_ATTR0_SCALES_WITH_CREATURE_LEVEL))
- stat = ExpectedStatType::CreatureAutoAttackDps;
-
- // TODO - add expansion and content tuning id args?
- uint32 contentTuningId = _spellInfo->ContentTuningId; // content tuning should be passed as arg, the one stored in SpellInfo is fallback
- int32 expansion = -2;
- if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(contentTuningId))
- expansion = contentTuning->ExpansionID;
-
- int32 level = 1;
- if (target && _spellInfo->HasAttribute(SPELL_ATTR8_USE_TARGETS_LEVEL_FOR_SPELL_SCALING))
- level = target->GetLevel();
- else if (caster && caster->IsUnit())
- level = caster->ToUnit()->GetLevel();
-
- value = sDB2Manager.EvaluateExpectedStat(stat, level, expansion, 0, CLASS_NONE, 0) * BasePoints / 100.0f;
- }
-
return int32(round(value));
}
}
@@ -1250,10 +1230,6 @@ SpellInfo::SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, S
TargetAuraSpell = _aura->TargetAuraSpell;
ExcludeCasterAuraSpell = _aura->ExcludeCasterAuraSpell;
ExcludeTargetAuraSpell = _aura->ExcludeTargetAuraSpell;
- CasterAuraType = AuraType(_aura->CasterAuraType);
- TargetAuraType = AuraType(_aura->TargetAuraType);
- ExcludeCasterAuraType = AuraType(_aura->ExcludeCasterAuraType);
- ExcludeTargetAuraType = AuraType(_aura->ExcludeTargetAuraType);
}
// SpellCastingRequirementsEntry
@@ -3955,34 +3931,6 @@ Optional<SpellPowerCost> SpellInfo::CalcPowerCost(SpellPowerEntry const* power,
{
powerCost = int32(power->OptionalCost);
- if (power->OptionalCostPct)
- {
- switch (power->PowerType)
- {
- // health as power used
- case POWER_HEALTH:
- powerCost += int32(CalculatePct(unitCaster->GetMaxHealth(), power->OptionalCostPct));
- break;
- case POWER_MANA:
- powerCost += int32(CalculatePct(unitCaster->GetCreateMana(), power->OptionalCostPct));
- break;
- case POWER_ALTERNATE_POWER:
- TC_LOG_ERROR("spells", "SpellInfo::CalcPowerCost: Unsupported power type POWER_ALTERNATE_POWER in spell {} for optional cost percent", Id);
- return {};
- default:
- {
- if (PowerTypeEntry const* powerTypeEntry = sDB2Manager.GetPowerTypeEntry(Powers(power->PowerType)))
- {
- powerCost += int32(CalculatePct(powerTypeEntry->MaxBasePower, power->OptionalCostPct));
- break;
- }
-
- TC_LOG_ERROR("spells", "SpellInfo::CalcPowerCost: Unknown power type '{}' in spell {} for optional cost percent", power->PowerType, Id);
- return {};
- }
- }
- }
-
powerCost += unitCaster->GetTotalAuraModifier(SPELL_AURA_MOD_ADDITIONAL_POWER_COST, [this, power](AuraEffect const* aurEff) -> bool
{
return aurEff->GetMiscValue() == power->PowerType
diff --git a/src/server/game/Spells/SpellInfo.h b/src/server/game/Spells/SpellInfo.h
index cbc56e7a079..d8364042762 100644
--- a/src/server/game/Spells/SpellInfo.h
+++ b/src/server/game/Spells/SpellInfo.h
@@ -242,7 +242,6 @@ public:
// SpellScalingEntry
struct ScalingInfo
{
- int32 Class;
float Coefficient;
float Variance;
float ResourceCoefficient;
@@ -358,10 +357,6 @@ class TC_GAME_API SpellInfo
uint32 TargetAuraSpell = 0;
uint32 ExcludeCasterAuraSpell = 0;
uint32 ExcludeTargetAuraSpell = 0;
- AuraType CasterAuraType = SPELL_AURA_NONE;
- AuraType TargetAuraType = SPELL_AURA_NONE;
- AuraType ExcludeCasterAuraType = SPELL_AURA_NONE;
- AuraType ExcludeTargetAuraType = SPELL_AURA_NONE;
SpellCastTimesEntry const* CastTimeEntry = nullptr;
uint32 RecoveryTime = 0;
uint32 CategoryRecoveryTime = 0;
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index e7673939f7c..68373ed3ea4 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -2907,10 +2907,10 @@ void SpellMgr::LoadSpellInfoServerside()
spellInfo.TargetAuraSpell = fields[31].GetUInt32();
spellInfo.ExcludeCasterAuraSpell = fields[32].GetUInt32();
spellInfo.ExcludeTargetAuraSpell = fields[33].GetUInt32();
- spellInfo.CasterAuraType = AuraType(fields[34].GetInt32());
- spellInfo.TargetAuraType = AuraType(fields[35].GetInt32());
- spellInfo.ExcludeCasterAuraType = AuraType(fields[36].GetInt32());
- spellInfo.ExcludeTargetAuraType = AuraType(fields[37].GetInt32());
+ // spellInfo.CasterAuraType = AuraType(fields[34].GetInt32());
+ // spellInfo.TargetAuraType = AuraType(fields[35].GetInt32());
+ // spellInfo.ExcludeCasterAuraType = AuraType(fields[36].GetInt32());
+ // spellInfo.ExcludeTargetAuraType = AuraType(fields[37].GetInt32());
spellInfo.CastTimeEntry = sSpellCastTimesStore.LookupEntry(fields[38].GetUInt32());
spellInfo.RecoveryTime = fields[39].GetUInt32();
spellInfo.CategoryRecoveryTime = fields[40].GetUInt32();
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index f3a1d809b76..5b0f9ac28f9 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -5004,7 +5004,7 @@ class spell_gen_skinning : public SpellScript
if (!contentTuning)
return;
- uint32 skinningSkill = player->GetProfessionSkillForExp(SKILL_SKINNING, contentTuning->ExpansionID);
+ uint32 skinningSkill = player->GetProfessionSkillForExp(SKILL_SKINNING, 0);
if (!skinningSkill)
return;