aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-03-12 18:20:26 +0100
committerShauren <shauren.trinity@gmail.com>2018-03-12 23:11:49 +0100
commit007b5a68c50bbee7d05acec888d3273c2a5a8577 (patch)
tree4818b60a73730b98ae4785d0630edbd6cd27d5bf /src
parent50a912af72ca84095eab5effa7d70e8a50ff8a04 (diff)
Core/DataStores: Fixed db2 structures after 7.3.5
Diffstat (limited to 'src')
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.cpp651
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.h8
-rw-r--r--src/server/game/Achievements/AchievementMgr.cpp8
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp12
-rw-r--r--src/server/game/AuctionHouse/AuctionHouseMgr.cpp8
-rw-r--r--src/server/game/BattlePets/BattlePetMgr.cpp18
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp12
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h2168
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp228
-rw-r--r--src/server/game/DataStores/DB2Stores.h8
-rw-r--r--src/server/game/DataStores/DB2Structure.h1645
-rw-r--r--src/server/game/DataStores/M2Stores.cpp2
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp4
-rw-r--r--src/server/game/Entities/Creature/TemporarySummon.cpp4
-rw-r--r--src/server/game/Entities/GameObject/GameObject.cpp12
-rw-r--r--src/server/game/Entities/Item/Item.cpp82
-rw-r--r--src/server/game/Entities/Item/ItemEnchantmentMgr.cpp6
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.cpp52
-rw-r--r--src/server/game/Entities/Item/ItemTemplate.h62
-rw-r--r--src/server/game/Entities/Object/Object.cpp4
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.cpp26
-rw-r--r--src/server/game/Entities/Player/CollectionMgr.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp246
-rw-r--r--src/server/game/Entities/Player/Player.h4
-rw-r--r--src/server/game/Entities/Taxi/TaxiPathGraph.cpp18
-rw-r--r--src/server/game/Entities/Transport/Transport.cpp14
-rw-r--r--src/server/game/Entities/Unit/StatSystem.cpp4
-rw-r--r--src/server/game/Entities/Unit/Unit.cpp38
-rw-r--r--src/server/game/Entities/Vehicle/Vehicle.cpp12
-rw-r--r--src/server/game/Garrison/Garrison.cpp36
-rw-r--r--src/server/game/Garrison/GarrisonMgr.cpp12
-rw-r--r--src/server/game/Globals/ConversationDataStore.cpp4
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp46
-rw-r--r--src/server/game/Groups/Group.cpp6
-rw-r--r--src/server/game/Guilds/GuildFinderMgr.cpp2
-rw-r--r--src/server/game/Handlers/ArtifactHandler.cpp12
-rw-r--r--src/server/game/Handlers/CharacterHandler.cpp4
-rw-r--r--src/server/game/Handlers/CombatHandler.cpp2
-rw-r--r--src/server/game/Handlers/ItemHandler.cpp14
-rw-r--r--src/server/game/Handlers/MovementHandler.cpp6
-rw-r--r--src/server/game/Handlers/QueryHandler.cpp4
-rw-r--r--src/server/game/Handlers/QuestHandler.cpp4
-rw-r--r--src/server/game/Handlers/TaxiHandler.cpp4
-rw-r--r--src/server/game/Handlers/ToyHandler.cpp2
-rw-r--r--src/server/game/Handlers/TransmogrificationHandler.cpp2
-rw-r--r--src/server/game/Handlers/VehicleHandler.cpp10
-rw-r--r--src/server/game/Loot/Loot.cpp12
-rw-r--r--src/server/game/Loot/Loot.h2
-rw-r--r--src/server/game/Maps/Map.cpp20
-rw-r--r--src/server/game/Maps/Map.h2
-rw-r--r--src/server/game/Maps/TransportMgr.cpp8
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h4
-rwxr-xr-xsrc/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp12
-rw-r--r--src/server/game/OutdoorPvP/OutdoorPvP.cpp2
-rw-r--r--src/server/game/Quests/QuestDef.cpp4
-rw-r--r--src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp2
-rw-r--r--src/server/game/Reputation/ReputationMgr.cpp8
-rw-r--r--src/server/game/Scenarios/Scenario.cpp10
-rw-r--r--src/server/game/Scenarios/ScenarioMgr.cpp4
-rw-r--r--src/server/game/Spells/Auras/SpellAuraEffects.cpp16
-rw-r--r--src/server/game/Spells/Auras/SpellAuras.cpp10
-rw-r--r--src/server/game/Spells/Spell.cpp14
-rw-r--r--src/server/game/Spells/SpellEffects.cpp10
-rw-r--r--src/server/game/Spells/SpellHistory.cpp8
-rw-r--r--src/server/game/Spells/SpellInfo.cpp104
-rw-r--r--src/server/game/Spells/SpellMgr.cpp38
-rw-r--r--src/server/game/Texts/ChatTextBuilder.cpp2
-rw-r--r--src/server/game/Texts/CreatureTextMgr.cpp2
-rw-r--r--src/server/scripts/Commands/cs_character.cpp4
-rw-r--r--src/server/scripts/Commands/cs_go.cpp20
-rw-r--r--src/server/scripts/Commands/cs_learn.cpp8
-rw-r--r--src/server/scripts/Commands/cs_lookup.cpp10
-rw-r--r--src/server/scripts/Commands/cs_misc.cpp2
-rw-r--r--src/server/scripts/Commands/cs_modify.cpp4
-rw-r--r--src/server/scripts/Commands/cs_reset.cpp2
-rw-r--r--src/server/scripts/Commands/cs_titles.cpp6
-rw-r--r--src/server/scripts/Spells/spell_generic.cpp2
-rw-r--r--src/server/scripts/Spells/spell_item.cpp2
-rw-r--r--src/server/scripts/Spells/spell_rogue.cpp8
79 files changed, 2941 insertions, 2949 deletions
diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp
index 9ac48c17b5c..ebd4f1ac6e4 100644
--- a/src/server/database/Database/Implementation/HotfixDatabase.cpp
+++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp
@@ -32,8 +32,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
m_stmts.resize(MAX_HOTFIXDATABASE_STATEMENTS);
// Achievement.db2
- PrepareStatement(HOTFIX_SEL_ACHIEVEMENT, "SELECT Title, Description, Reward, Flags, MapID, Supercedes, Category, UIOrder, SharesCriteria, "
- "Faction, Points, MinimumCriteria, ID, IconFileDataID, CriteriaTree FROM achievement ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ACHIEVEMENT, "SELECT Title, Description, Reward, Flags, InstanceID, Supercedes, Category, UiOrder, SharesCriteria, "
+ "Faction, Points, MinimumCriteria, ID, IconFileID, CriteriaTree FROM achievement ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ACHIEVEMENT, "SELECT ID, Title_lang, Description_lang, Reward_lang FROM achievement_locale WHERE locale = ?", CONNECTION_SYNCH);
// AnimKit.db2
@@ -43,56 +43,57 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_AREA_GROUP_MEMBER, "SELECT ID, AreaID, AreaGroupID FROM area_group_member ORDER BY ID DESC", CONNECTION_SYNCH);
// AreaTable.db2
- PrepareStatement(HOTFIX_SEL_AREA_TABLE, "SELECT ID, ZoneName, AreaName, Flags1, Flags2, AmbientMultiplier, MapID, ParentAreaID, AreaBit, "
- "AmbienceID, ZoneMusic, IntroSound, LiquidTypeID1, LiquidTypeID2, LiquidTypeID3, LiquidTypeID4, UWZoneMusic, UWAmbience, "
- "PvPCombatWorldStateID, SoundProviderPref, SoundProviderPrefUnderwater, ExplorationLevel, FactionGroupMask, MountFlags, "
- "WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, UWIntroSound FROM area_table ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_AREA_TABLE, "SELECT ID, ZoneName, AreaName, Flags1, Flags2, AmbientMultiplier, ContinentID, ParentAreaID, AreaBit, "
+ "AmbienceID, ZoneMusic, IntroSound, LiquidTypeID1, LiquidTypeID2, LiquidTypeID3, LiquidTypeID4, UwZoneMusic, UwAmbience, "
+ "PvpCombatWorldStateID, SoundProviderPref, SoundProviderPrefUnderwater, ExplorationLevel, FactionGroupMask, MountFlags, "
+ "WildBattlePetLevelMin, WildBattlePetLevelMax, WindSettingsID, UwIntroSound FROM area_table ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_AREA_TABLE, "SELECT ID, AreaName_lang FROM area_table_locale WHERE locale = ?", CONNECTION_SYNCH);
// AreaTrigger.db2
- PrepareStatement(HOTFIX_SEL_AREA_TRIGGER, "SELECT PosX, PosY, PosZ, Radius, BoxLength, BoxWidth, BoxHeight, BoxYaw, MapID, PhaseID, PhaseGroupID, "
- "ShapeID, AreaTriggerActionSetID, PhaseUseFlags, ShapeType, Flag, ID FROM area_trigger ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_AREA_TRIGGER, "SELECT PosX, PosY, PosZ, Radius, BoxLength, BoxWidth, BoxHeight, BoxYaw, ContinentID, PhaseID, "
+ "PhaseGroupID, ShapeID, AreaTriggerActionSetID, PhaseUseFlags, ShapeType, Flags, ID FROM area_trigger ORDER BY ID DESC", CONNECTION_SYNCH);
// ArmorLocation.db2
- PrepareStatement(HOTFIX_SEL_ARMOR_LOCATION, "SELECT ID, Modifier1, Modifier2, Modifier3, Modifier4, Modifier5 FROM armor_location ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARMOR_LOCATION, "SELECT ID, Clothmodifier, Leathermodifier, Chainmodifier, Platemodifier, Modifier FROM armor_location"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// Artifact.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT, "SELECT ID, Name, BarConnectedColor, BarDisconnectedColor, TitleColor, ClassUiTextureKitID, SpecID, "
- "ArtifactCategoryID, Flags, UiModelSceneID, SpellVisualKitID FROM artifact ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT, "SELECT ID, Name, UiBarOverlayColor, UiBarBackgroundColor, UiNameColor, UiTextureKitID, "
+ "ChrSpecializationID, ArtifactCategoryID, Flags, UiModelSceneID, SpellVisualKitID FROM artifact ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT, "SELECT ID, Name_lang FROM artifact_locale WHERE locale = ?", CONNECTION_SYNCH);
// ArtifactAppearance.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT Name, SwatchColor, ModelDesaturation, ModelAlpha, ShapeshiftDisplayID, "
- "ArtifactAppearanceSetID, Unknown, DisplayIndex, AppearanceModID, Flags, ModifiesShapeshiftFormDisplay, ID, PlayerConditionID, "
- "ItemAppearanceID, AltItemAppearanceID FROM artifact_appearance ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT Name, UiSwatchColor, UiModelSaturation, UiModelOpacity, OverrideShapeshiftDisplayID, "
+ "ArtifactAppearanceSetID, UiCameraID, DisplayIndex, ItemAppearanceModifierID, Flags, OverrideShapeshiftFormID, ID, UnlockPlayerConditionID, "
+ "UiItemAppearanceID, UiAltItemAppearanceID FROM artifact_appearance ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE, "SELECT ID, Name_lang FROM artifact_appearance_locale WHERE locale = ?", CONNECTION_SYNCH);
// ArtifactAppearanceSet.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT Name, Name2, UiCameraID, AltHandUICameraID, DisplayIndex, AttachmentPoint, Flags, "
- "ID, ArtifactID FROM artifact_appearance_set ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT ID, Name_lang, Name2_lang FROM artifact_appearance_set_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT Name, Description, UiCameraID, AltHandUICameraID, DisplayIndex, "
+ "ForgeAttachmentOverride, Flags, ID, ArtifactID FROM artifact_appearance_set ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_ARTIFACT_APPEARANCE_SET, "SELECT ID, Name_lang, Description_lang FROM artifact_appearance_set_locale"
+ " WHERE locale = ?", CONNECTION_SYNCH);
// ArtifactCategory.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_CATEGORY, "SELECT ID, ArtifactKnowledgeCurrencyID, ArtifactKnowledgeMultiplierCurveID FROM artifact_category"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_CATEGORY, "SELECT ID, XpMultCurrencyID, XpMultCurveID FROM artifact_category ORDER BY ID DESC", CONNECTION_SYNCH);
// ArtifactPower.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER, "SELECT PosX, PosY, ArtifactID, Flags, MaxRank, ArtifactTier, ID, RelicType FROM artifact_power"
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER, "SELECT PosX, PosY, ArtifactID, Flags, MaxPurchasableRank, Tier, ID, Label FROM artifact_power"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// ArtifactPowerLink.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_LINK, "SELECT ID, FromArtifactPowerID, ToArtifactPowerID FROM artifact_power_link ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_LINK, "SELECT ID, PowerA, PowerB FROM artifact_power_link ORDER BY ID DESC", CONNECTION_SYNCH);
// ArtifactPowerPicker.db2
PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_PICKER, "SELECT ID, PlayerConditionID FROM artifact_power_picker ORDER BY ID DESC", CONNECTION_SYNCH);
// ArtifactPowerRank.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_RANK, "SELECT ID, SpellID, Value, Unknown, Rank, ArtifactPowerID FROM artifact_power_rank"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_POWER_RANK, "SELECT ID, SpellID, AuraPointsOverride, ItemBonusListID, RankIndex, ArtifactPowerID"
+ " FROM artifact_power_rank ORDER BY ID DESC", CONNECTION_SYNCH);
// ArtifactQuestXp.db2
- PrepareStatement(HOTFIX_SEL_ARTIFACT_QUEST_XP, "SELECT ID, Exp1, Exp2, Exp3, Exp4, Exp5, Exp6, Exp7, Exp8, Exp9, Exp10 FROM artifact_quest_xp"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ARTIFACT_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, "
+ "Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM artifact_quest_xp ORDER BY ID DESC", CONNECTION_SYNCH);
// AuctionHouse.db2
PrepareStatement(HOTFIX_SEL_AUCTION_HOUSE, "SELECT ID, Name, FactionID, DepositRate, ConsignmentRate FROM auction_house ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -110,51 +111,54 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_BARBER_SHOP_STYLE, "SELECT ID, DisplayName_lang, Description_lang FROM barber_shop_style_locale WHERE locale = ?", CONNECTION_SYNCH);
// BattlePetBreedQuality.db2
- PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_QUALITY, "SELECT ID, Modifier, Quality FROM battle_pet_breed_quality ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_QUALITY, "SELECT ID, StateMultiplier, QualityEnum FROM battle_pet_breed_quality ORDER BY ID DESC", CONNECTION_SYNCH);
// BattlePetBreedState.db2
- PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_STATE, "SELECT ID, Value, State, BreedID FROM battle_pet_breed_state ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_BATTLE_PET_BREED_STATE, "SELECT ID, Value, BattlePetStateID, BattlePetBreedID FROM battle_pet_breed_state"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// BattlePetSpecies.db2
- PrepareStatement(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT SourceText, Description, CreatureID, IconFileID, SummonSpellID, Flags, PetType, Source, "
- "ID, CardModelSceneID, LoadoutModelSceneID FROM battle_pet_species ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT SourceText, Description, CreatureID, IconFileDataID, SummonSpellID, Flags, PetTypeEnum, "
+ "SourceTypeEnum, ID, CardUIModelSceneID, LoadoutUIModelSceneID FROM battle_pet_species ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_BATTLE_PET_SPECIES, "SELECT ID, SourceText_lang, Description_lang FROM battle_pet_species_locale WHERE locale = ?", CONNECTION_SYNCH);
// BattlePetSpeciesState.db2
- PrepareStatement(HOTFIX_SEL_BATTLE_PET_SPECIES_STATE, "SELECT ID, Value, State, SpeciesID FROM battle_pet_species_state ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_BATTLE_PET_SPECIES_STATE, "SELECT ID, Value, BattlePetStateID, BattlePetSpeciesID FROM battle_pet_species_state"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// BattlemasterList.db2
PrepareStatement(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT ID, Name, GameType, ShortDescription, LongDescription, IconFileDataID, MapID1, MapID2, "
"MapID3, MapID4, MapID5, MapID6, MapID7, MapID8, MapID9, MapID10, MapID11, MapID12, MapID13, MapID14, MapID15, MapID16, HolidayWorldState, "
- "PlayerConditionID, InstanceType, GroupsAllowed, MaxGroupSize, MinLevel, MaxLevel, RatedPlayers, MinPlayers, MaxPlayers, Flags"
+ "RequiredPlayerConditionID, InstanceType, GroupsAllowed, MaxGroupSize, MinLevel, MaxLevel, RatedPlayers, MinPlayers, MaxPlayers, Flags"
" FROM battlemaster_list ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_BATTLEMASTER_LIST, "SELECT ID, Name_lang, GameType_lang, ShortDescription_lang, LongDescription_lang"
" FROM battlemaster_list_locale WHERE locale = ?", CONNECTION_SYNCH);
// BroadcastText.db2
- PrepareStatement(HOTFIX_SEL_BROADCAST_TEXT, "SELECT ID, MaleText, FemaleText, EmoteID1, EmoteID2, EmoteID3, EmoteDelay1, EmoteDelay2, "
- "EmoteDelay3, UnkEmoteID, Language, Type, PlayerConditionID, SoundID1, SoundID2 FROM broadcast_text ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_BROADCAST_TEXT, "SELECT ID, MaleText_lang, FemaleText_lang FROM broadcast_text_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_BROADCAST_TEXT, "SELECT ID, Text, Text1, EmoteID1, EmoteID2, EmoteID3, EmoteDelay1, EmoteDelay2, EmoteDelay3, "
+ "EmotesID, LanguageID, Flags, ConditionID, SoundEntriesID1, SoundEntriesID2 FROM broadcast_text ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_BROADCAST_TEXT, "SELECT ID, Text_lang, Text1_lang FROM broadcast_text_locale WHERE locale = ?", CONNECTION_SYNCH);
// CharacterFacialHairStyles.db2
PrepareStatement(HOTFIX_SEL_CHARACTER_FACIAL_HAIR_STYLES, "SELECT ID, Geoset1, Geoset2, Geoset3, Geoset4, Geoset5, RaceID, SexID, VariationID"
" FROM character_facial_hair_styles ORDER BY ID DESC", CONNECTION_SYNCH);
// CharBaseSection.db2
- PrepareStatement(HOTFIX_SEL_CHAR_BASE_SECTION, "SELECT ID, Variation, ResolutionVariation, Resolution FROM char_base_section ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CHAR_BASE_SECTION, "SELECT ID, VariationEnum, ResolutionVariationEnum, LayoutResType FROM char_base_section"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// CharSections.db2
- PrepareStatement(HOTFIX_SEL_CHAR_SECTIONS, "SELECT ID, TextureFileDataID1, TextureFileDataID2, TextureFileDataID3, Flags, RaceID, SexID, "
+ PrepareStatement(HOTFIX_SEL_CHAR_SECTIONS, "SELECT ID, MaterialResourcesID1, MaterialResourcesID2, MaterialResourcesID3, Flags, RaceID, SexID, "
"BaseSection, VariationIndex, ColorIndex FROM char_sections ORDER BY ID DESC", CONNECTION_SYNCH);
// CharStartOutfit.db2
PrepareStatement(HOTFIX_SEL_CHAR_START_OUTFIT, "SELECT ID, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, ItemID6, ItemID7, ItemID8, ItemID9, "
"ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17, ItemID18, ItemID19, ItemID20, ItemID21, ItemID22, ItemID23, "
- "ItemID24, PetDisplayID, ClassID, GenderID, OutfitID, PetFamilyID, RaceID FROM char_start_outfit ORDER BY ID DESC", CONNECTION_SYNCH);
+ "ItemID24, PetDisplayID, ClassID, SexID, OutfitID, PetFamilyID, RaceID FROM char_start_outfit ORDER BY ID DESC", CONNECTION_SYNCH);
// CharTitles.db2
- PrepareStatement(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, NameMale, NameFemale, MaskID, Flags FROM char_titles ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, NameMale_lang, NameFemale_lang FROM char_titles_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, Name, Name1, MaskID, Flags FROM char_titles ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_CHAR_TITLES, "SELECT ID, Name_lang, Name1_lang FROM char_titles_locale WHERE locale = ?", CONNECTION_SYNCH);
// ChatChannels.db2
PrepareStatement(HOTFIX_SEL_CHAT_CHANNELS, "SELECT ID, Name, Shortcut, Flags, FactionGroup FROM chat_channels ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -162,34 +166,34 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// ChrClasses.db2
PrepareStatement(HOTFIX_SEL_CHR_CLASSES, "SELECT PetNameToken, Name, NameFemale, NameMale, Filename, CreateScreenFileDataID, "
- "SelectScreenFileDataID, IconFileDataID, LowResScreenFileDataID, StartingLevel, Flags, CinematicSequenceID, DefaultSpec, PowerType, "
- "SpellClassSet, AttackPowerPerStrength, AttackPowerPerAgility, RangedAttackPowerPerAgility, Unk1, ID FROM chr_classes ORDER BY ID DESC", CONNECTION_SYNCH);
+ "SelectScreenFileDataID, LowResScreenFileDataID, IconFileDataID, StartingLevel, Flags, CinematicSequenceID, DefaultSpec, DisplayPower, "
+ "SpellClassSet, AttackPowerPerStrength, AttackPowerPerAgility, RangedAttackPowerPerAgility, PrimaryStatPriority, ID FROM chr_classes"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_CLASSES, "SELECT ID, Name_lang, NameFemale_lang, NameMale_lang FROM chr_classes_locale WHERE locale = ?", CONNECTION_SYNCH);
// ChrClassesXPowerTypes.db2
PrepareStatement(HOTFIX_SEL_CHR_CLASSES_X_POWER_TYPES, "SELECT ID, PowerType, ClassID FROM chr_classes_x_power_types ORDER BY ID DESC", CONNECTION_SYNCH);
// ChrRaces.db2
- PrepareStatement(HOTFIX_SEL_CHR_RACES, "SELECT ClientPrefix, ClientFileString, Name, NameFemale, LowercaseName, LowercaseNameFemale, Flags, "
- "MaleDisplayID, FemaleDisplayID, CreateScreenFileDataID, SelectScreenFileDataID, MaleCustomizeOffset1, MaleCustomizeOffset2, "
+ PrepareStatement(HOTFIX_SEL_CHR_RACES, "SELECT ClientPrefix, ClientFileString, Name, NameFemale, NameLowercase, NameFemaleLowercase, Flags, "
+ "MaleDisplayId, FemaleDisplayId, CreateScreenFileDataID, SelectScreenFileDataID, MaleCustomizeOffset1, MaleCustomizeOffset2, "
"MaleCustomizeOffset3, FemaleCustomizeOffset1, FemaleCustomizeOffset2, FemaleCustomizeOffset3, LowResScreenFileDataID, StartingLevel, "
- "UIDisplayOrder, FactionID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, TeamID, RaceRelated, "
- "UnalteredVisualRaceID, CharComponentTextureLayoutID, DefaultClassID, NeutralRaceID, ItemAppearanceFrameRaceID, "
- "CharComponentTexLayoutHiResID, ID, HighResMaleDisplayID, HighResFemaleDisplayID, HeritageArmorAchievementID, MaleCorpseBonesModelFileDataID, "
- "FemaleCorpseBonesModelFileDataID, AlteredFormTransitionSpellVisualID1, AlteredFormTransitionSpellVisualID2, "
- "AlteredFormTransitionSpellVisualID3, AlteredFormTransitionSpellVisualKitID1, AlteredFormTransitionSpellVisualKitID2, "
- "AlteredFormTransitionSpellVisualKitID3 FROM chr_races ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_RACES, "SELECT ID, Name_lang, NameFemale_lang, LowercaseName_lang, LowercaseNameFemale_lang"
+ "UiDisplayOrder, FactionID, ResSicknessSpellID, SplashSoundID, CinematicSequenceID, BaseLanguage, CreatureType, Alliance, RaceRelated, "
+ "UnalteredVisualRaceID, CharComponentTextureLayoutID, DefaultClassID, NeutralRaceID, DisplayRaceID, CharComponentTexLayoutHiResID, ID, "
+ "HighResMaleDisplayId, HighResFemaleDisplayId, HeritageArmorAchievementID, MaleSkeletonFileDataID, FemaleSkeletonFileDataID, "
+ "AlteredFormStartVisualKitID1, AlteredFormStartVisualKitID2, AlteredFormStartVisualKitID3, AlteredFormFinishVisualKitID1, "
+ "AlteredFormFinishVisualKitID2, AlteredFormFinishVisualKitID3 FROM chr_races ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_RACES, "SELECT ID, Name_lang, NameFemale_lang, NameLowercase_lang, NameFemaleLowercase_lang"
" FROM chr_races_locale WHERE locale = ?", CONNECTION_SYNCH);
// ChrSpecialization.db2
- PrepareStatement(HOTFIX_SEL_CHR_SPECIALIZATION, "SELECT Name, Name2, Description, MasterySpellID1, MasterySpellID2, ClassID, OrderIndex, "
- "PetTalentType, Role, PrimaryStatOrder, ID, IconFileDataID, Flags, AnimReplacementSetID FROM chr_specialization ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_SPECIALIZATION, "SELECT ID, Name_lang, Name2_lang, Description_lang FROM chr_specialization_locale"
+ PrepareStatement(HOTFIX_SEL_CHR_SPECIALIZATION, "SELECT Name, FemaleName, Description, MasterySpellID1, MasterySpellID2, ClassID, OrderIndex, "
+ "PetTalentType, Role, PrimaryStatPriority, ID, SpellIconFileID, Flags, AnimReplacements FROM chr_specialization ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_CHR_SPECIALIZATION, "SELECT ID, Name_lang, FemaleName_lang, Description_lang FROM chr_specialization_locale"
" WHERE locale = ?", CONNECTION_SYNCH);
// CinematicCamera.db2
- PrepareStatement(HOTFIX_SEL_CINEMATIC_CAMERA, "SELECT ID, SoundID, OriginX, OriginY, OriginZ, OriginFacing, ModelFileDataID FROM cinematic_camera"
+ PrepareStatement(HOTFIX_SEL_CINEMATIC_CAMERA, "SELECT ID, SoundID, OriginX, OriginY, OriginZ, OriginFacing, FileDataID FROM cinematic_camera"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// CinematicSequences.db2
@@ -197,32 +201,32 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" FROM cinematic_sequences ORDER BY ID DESC", CONNECTION_SYNCH);
// ConversationLine.db2
- PrepareStatement(HOTFIX_SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, Duration, NextLineID, Unk1, Yell, Unk2, Unk3"
- " FROM conversation_line ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CONVERSATION_LINE, "SELECT ID, BroadcastTextID, SpellVisualKitID, AdditionalDuration, NextConversationLineID, "
+ "AnimKitID, SpeechType, StartAnimation, EndAnimation FROM conversation_line ORDER BY ID DESC", CONNECTION_SYNCH);
// CreatureDisplayInfo.db2
PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO, "SELECT ID, CreatureModelScale, ModelID, NPCSoundID, SizeClass, Flags, Gender, "
- "ExtendedDisplayInfoID, PortraitTextureFileDataID, CreatureModelAlpha, SoundID, PlayerModelScale, PortraitCreatureDisplayInfoID, BloodID, "
- "ParticleColorID, CreatureGeosetData, ObjectEffectPackageID, AnimReplacementSetID, UnarmedWeaponSubclass, StateSpellVisualKitID, "
- "InstanceOtherPlayerPetScale, MountSpellVisualKitID, TextureVariation1, TextureVariation2, TextureVariation3 FROM creature_display_info"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ "ExtendedDisplayInfoID, PortraitTextureFileDataID, CreatureModelAlpha, SoundID, PlayerOverrideScale, PortraitCreatureDisplayInfoID, BloodID, "
+ "ParticleColorID, CreatureGeosetData, ObjectEffectPackageID, AnimReplacementSetID, UnarmedWeaponType, StateSpellVisualKitID, "
+ "PetInstanceScale, MountPoofSpellVisualKitID, TextureVariationFileDataID1, TextureVariationFileDataID2, TextureVariationFileDataID3"
+ " FROM creature_display_info ORDER BY ID DESC", CONNECTION_SYNCH);
// CreatureDisplayInfoExtra.db2
- PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, FileDataID, HDFileDataID, DisplayRaceID, DisplaySexID, DisplayClassID, "
- "SkinID, FaceID, HairStyleID, HairColorID, FacialHairID, CustomDisplayOption1, CustomDisplayOption2, CustomDisplayOption3, Flags"
- " FROM creature_display_info_extra ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA, "SELECT ID, BakeMaterialResourcesID, HDBakeMaterialResourcesID, DisplayRaceID, "
+ "DisplaySexID, DisplayClassID, SkinID, FaceID, HairStyleID, HairColorID, FacialHairID, CustomDisplayOption1, CustomDisplayOption2, "
+ "CustomDisplayOption3, Flags FROM creature_display_info_extra ORDER BY ID DESC", CONNECTION_SYNCH);
// CreatureFamily.db2
- PrepareStatement(HOTFIX_SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MaxScale, IconFileDataID, SkillLine1, SkillLine2, PetFoodMask, "
+ PrepareStatement(HOTFIX_SEL_CREATURE_FAMILY, "SELECT ID, Name, MinScale, MaxScale, IconFileID, SkillLine1, SkillLine2, PetFoodMask, "
"MinScaleLevel, MaxScaleLevel, PetTalentType FROM creature_family ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CREATURE_FAMILY, "SELECT ID, Name_lang FROM creature_family_locale WHERE locale = ?", CONNECTION_SYNCH);
// CreatureModelData.db2
PrepareStatement(HOTFIX_SEL_CREATURE_MODEL_DATA, "SELECT ID, ModelScale, FootprintTextureLength, FootprintTextureWidth, FootprintParticleScale, "
- "CollisionWidth, CollisionHeight, MountHeight, GeoBoxMin1, GeoBoxMin2, GeoBoxMin3, GeoBoxMax1, GeoBoxMax2, GeoBoxMax3, WorldEffectScale, "
- "AttachedEffectScale, MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, OverrideLootEffectScale, OverrideNameScale, "
- "OverrideSelectionRadius, TamedPetBaseScale, HoverHeight, Flags, FileDataID, SizeClass, BloodID, FootprintTextureID, FoleyMaterialID, "
- "FootstepEffectID, DeathThudEffectID, SoundID, CreatureGeosetDataID FROM creature_model_data ORDER BY ID DESC", CONNECTION_SYNCH);
+ "CollisionWidth, CollisionHeight, MountHeight, GeoBox1, GeoBox2, GeoBox3, GeoBox4, GeoBox5, GeoBox6, WorldEffectScale, AttachedEffectScale, "
+ "MissileCollisionRadius, MissileCollisionPush, MissileCollisionRaise, OverrideLootEffectScale, OverrideNameScale, OverrideSelectionRadius, "
+ "TamedPetBaseScale, HoverHeight, Flags, FileDataID, SizeClass, BloodID, FootprintTextureID, FoleyMaterialID, FootstepCameraEffectID, "
+ "DeathThudCameraEffectID, SoundID, CreatureGeosetDataID FROM creature_model_data ORDER BY ID DESC", CONNECTION_SYNCH);
// CreatureType.db2
PrepareStatement(HOTFIX_SEL_CREATURE_TYPE, "SELECT ID, Name, Flags FROM creature_type ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -239,32 +243,31 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// CurrencyTypes.db2
PrepareStatement(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name, Description, MaxQty, MaxEarnablePerWeek, Flags, CategoryID, SpellCategory, Quality, "
- "InventoryIconFileDataID, SpellWeight FROM currency_types ORDER BY ID DESC", CONNECTION_SYNCH);
+ "InventoryIconFileID, SpellWeight FROM currency_types ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_CURRENCY_TYPES, "SELECT ID, Name_lang, Description_lang FROM currency_types_locale WHERE locale = ?", CONNECTION_SYNCH);
// Curve.db2
- PrepareStatement(HOTFIX_SEL_CURVE, "SELECT ID, Type, Unused FROM curve ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CURVE, "SELECT ID, Type, Flags FROM curve ORDER BY ID DESC", CONNECTION_SYNCH);
// CurvePoint.db2
- PrepareStatement(HOTFIX_SEL_CURVE_POINT, "SELECT ID, X, Y, CurveID, `Index` FROM curve_point ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_CURVE_POINT, "SELECT ID, PosX, PosY, CurveID, OrderIndex FROM curve_point ORDER BY ID DESC", CONNECTION_SYNCH);
// DestructibleModelData.db2
- PrepareStatement(HOTFIX_SEL_DESTRUCTIBLE_MODEL_DATA, "SELECT ID, StateDamagedDisplayID, StateDestroyedDisplayID, StateRebuildingDisplayID, "
- "StateSmokeDisplayID, HealEffectSpeed, StateDamagedImpactEffectDoodadSet, StateDamagedAmbientDoodadSet, StateDamagedNameSet, "
- "StateDestroyedDestructionDoodadSet, StateDestroyedImpactEffectDoodadSet, StateDestroyedAmbientDoodadSet, StateDestroyedNameSet, "
- "StateRebuildingDestructionDoodadSet, StateRebuildingImpactEffectDoodadSet, StateRebuildingAmbientDoodadSet, StateRebuildingNameSet, "
- "StateSmokeInitDoodadSet, StateSmokeAmbientDoodadSet, StateSmokeNameSet, EjectDirection, DoNotHighlight, HealEffect"
- " FROM destructible_model_data ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_DESTRUCTIBLE_MODEL_DATA, "SELECT ID, State0Wmo, State1Wmo, State2Wmo, State3Wmo, HealEffectSpeed, "
+ "State0ImpactEffectDoodadSet, State0AmbientDoodadSet, State0NameSet, State1DestructionDoodadSet, State1ImpactEffectDoodadSet, "
+ "State1AmbientDoodadSet, State1NameSet, State2DestructionDoodadSet, State2ImpactEffectDoodadSet, State2AmbientDoodadSet, State2NameSet, "
+ "State3InitDoodadSet, State3AmbientDoodadSet, State3NameSet, EjectDirection, DoNotHighlight, HealEffect FROM destructible_model_data"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// Difficulty.db2
PrepareStatement(HOTFIX_SEL_DIFFICULTY, "SELECT ID, Name, GroupSizeHealthCurveID, GroupSizeDmgCurveID, GroupSizeSpellPointsCurveID, "
- "FallbackDifficultyID, InstanceType, MinPlayers, MaxPlayers, OldEnumValue, Flags, ToggleDifficultyID, ItemBonusTreeModID, OrderIndex"
- " FROM difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
+ "FallbackDifficultyID, InstanceType, MinPlayers, MaxPlayers, OldEnumValue, Flags, ToggleDifficultyID, ItemContext, OrderIndex FROM difficulty"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_DIFFICULTY, "SELECT ID, Name_lang FROM difficulty_locale WHERE locale = ?", CONNECTION_SYNCH);
// DungeonEncounter.db2
- PrepareStatement(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT Name, CreatureDisplayID, MapID, DifficultyID, Bit, Flags, ID, OrderIndex, "
- "TextureFileDataID FROM dungeon_encounter ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT Name, CreatureDisplayID, MapID, DifficultyID, Bit, Flags, ID, OrderIndex, SpellIconFileID"
+ " FROM dungeon_encounter ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_DUNGEON_ENCOUNTER, "SELECT ID, Name_lang FROM dungeon_encounter_locale WHERE locale = ?", CONNECTION_SYNCH);
// DurabilityCosts.db2
@@ -276,72 +279,71 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" FROM durability_costs ORDER BY ID DESC", CONNECTION_SYNCH);
// DurabilityQuality.db2
- PrepareStatement(HOTFIX_SEL_DURABILITY_QUALITY, "SELECT ID, QualityMod FROM durability_quality ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_DURABILITY_QUALITY, "SELECT ID, Data FROM durability_quality ORDER BY ID DESC", CONNECTION_SYNCH);
// Emotes.db2
- PrepareStatement(HOTFIX_SEL_EMOTES, "SELECT ID, RaceMask, EmoteSlashCommand, SpellVisualKitID, EmoteFlags, AnimID, EmoteSpecProc, "
- "EmoteSpecProcParam, EmoteSoundID, ClassMask FROM emotes ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_EMOTES, "SELECT ID, RaceMask, EmoteSlashCommand, EmoteFlags, SpellVisualKitID, AnimID, EmoteSpecProc, ClassMask, "
+ "EmoteSpecProcParam, EventSoundID FROM emotes ORDER BY ID DESC", CONNECTION_SYNCH);
// EmotesText.db2
PrepareStatement(HOTFIX_SEL_EMOTES_TEXT, "SELECT ID, Name, EmoteID FROM emotes_text ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_EMOTES_TEXT, "SELECT ID, Name_lang FROM emotes_text_locale WHERE locale = ?", CONNECTION_SYNCH);
// EmotesTextSound.db2
- PrepareStatement(HOTFIX_SEL_EMOTES_TEXT_SOUND, "SELECT ID, RaceId, SexId, ClassId, SoundId, EmotesTextId FROM emotes_text_sound ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_EMOTES_TEXT_SOUND, "SELECT ID, RaceID, SexID, ClassID, SoundID, EmotesTextID FROM emotes_text_sound ORDER BY ID DESC", CONNECTION_SYNCH);
// Faction.db2
PrepareStatement(HOTFIX_SEL_FACTION, "SELECT ReputationRaceMask1, ReputationRaceMask2, ReputationRaceMask3, ReputationRaceMask4, Name, "
- "Description, ID, ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ParentFactionModIn, ParentFactionModOut, "
- "ReputationMax1, ReputationMax2, ReputationMax3, ReputationMax4, ReputationIndex, ReputationClassMask1, ReputationClassMask2, "
- "ReputationClassMask3, ReputationClassMask4, ReputationFlags1, ReputationFlags2, ReputationFlags3, ReputationFlags4, ParentFactionID, "
- "ParagonFactionID, ParentFactionCapIn, ParentFactionCapOut, Expansion, Flags, FriendshipRepID FROM faction ORDER BY ID DESC", CONNECTION_SYNCH);
+ "Description, ID, ReputationBase1, ReputationBase2, ReputationBase3, ReputationBase4, ParentFactionMod1, ParentFactionMod2, ReputationMax1, "
+ "ReputationMax2, ReputationMax3, ReputationMax4, ReputationIndex, ReputationClassMask1, ReputationClassMask2, ReputationClassMask3, "
+ "ReputationClassMask4, ReputationFlags1, ReputationFlags2, ReputationFlags3, ReputationFlags4, ParentFactionID, ParagonFactionID, "
+ "ParentFactionCap1, ParentFactionCap2, Expansion, Flags, FriendshipRepID FROM faction ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_FACTION, "SELECT ID, Name_lang, Description_lang FROM faction_locale WHERE locale = ?", CONNECTION_SYNCH);
// FactionTemplate.db2
- PrepareStatement(HOTFIX_SEL_FACTION_TEMPLATE, "SELECT ID, Faction, Flags, Enemies1, Enemies2, Enemies3, Enemies4, Friends1, Friends2, Friends3, "
- "Friends4, Mask, FriendMask, EnemyMask FROM faction_template ORDER BY ID DESC", CONNECTION_SYNCH);
-
- // Gameobjects.db2
- PrepareStatement(HOTFIX_SEL_GAMEOBJECTS, "SELECT Name, PositionX, PositionY, PositionZ, RotationX, RotationY, RotationZ, RotationW, Size, Data1, "
- "Data2, Data3, Data4, Data5, Data6, Data7, Data8, MapID, DisplayID, PhaseID, PhaseGroupID, PhaseUseFlags, Type, ID FROM gameobjects"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_GAMEOBJECTS, "SELECT ID, Name_lang FROM gameobjects_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_FACTION_TEMPLATE, "SELECT ID, Faction, Flags, Enemies1, Enemies2, Enemies3, Enemies4, Friend1, Friend2, Friend3, "
+ "Friend4, FactionGroup, FriendGroup, EnemyGroup FROM faction_template ORDER BY ID DESC", CONNECTION_SYNCH);
// GameobjectDisplayInfo.db2
PrepareStatement(HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO, "SELECT ID, FileDataID, GeoBoxMinX, GeoBoxMinY, GeoBoxMinZ, GeoBoxMaxX, GeoBoxMaxY, "
"GeoBoxMaxZ, OverrideLootEffectScale, OverrideNameScale, ObjectEffectPackageID FROM gameobject_display_info ORDER BY ID DESC", CONNECTION_SYNCH);
+ // Gameobjects.db2
+ PrepareStatement(HOTFIX_SEL_GAMEOBJECTS, "SELECT Name, PosX, PosY, PosZ, Rot1, Rot2, Rot3, Rot4, Scale, PropValue1, PropValue2, PropValue3, "
+ "PropValue4, PropValue5, PropValue6, PropValue7, PropValue8, OwnerID, DisplayID, PhaseID, PhaseGroupID, PhaseUseFlags, TypeID, ID"
+ " FROM gameobjects ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_GAMEOBJECTS, "SELECT ID, Name_lang FROM gameobjects_locale WHERE locale = ?", CONNECTION_SYNCH);
+
// GarrAbility.db2
- PrepareStatement(HOTFIX_SEL_GARR_ABILITY, "SELECT Name, Description, IconFileDataID, Flags, OtherFactionGarrAbilityID, GarrAbilityCategoryID, "
- "FollowerTypeID, ID FROM garr_ability ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GARR_ABILITY, "SELECT Name, Description, IconFileDataID, Flags, FactionChangeGarrAbilityID, GarrAbilityCategoryID, "
+ "GarrFollowerTypeID, ID FROM garr_ability ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_ABILITY, "SELECT ID, Name_lang, Description_lang FROM garr_ability_locale WHERE locale = ?", CONNECTION_SYNCH);
// GarrBuilding.db2
- PrepareStatement(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, NameAlliance, NameHorde, Description, Tooltip, HordeGameObjectID, AllianceGameObjectID, "
- "IconFileDataID, CostCurrencyID, HordeTexPrefixKitID, AllianceTexPrefixKitID, AllianceActivationScenePackageID, "
- "HordeActivationScenePackageID, FollowerRequiredGarrAbilityID, FollowerGarrAbilityEffectID, CostMoney, Unknown, Type, Level, Flags, "
- "MaxShipments, GarrTypeID, BuildDuration, CostCurrencyAmount, BonusAmount FROM garr_building ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, NameAlliance_lang, NameHorde_lang, Description_lang, Tooltip_lang"
+ PrepareStatement(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, AllianceName, HordeName, Description, Tooltip, HordeGameObjectID, AllianceGameObjectID, "
+ "IconFileDataID, CurrencyTypeID, HordeUiTextureKitID, AllianceUiTextureKitID, AllianceSceneScriptPackageID, HordeSceneScriptPackageID, "
+ "GarrAbilityID, BonusGarrAbilityID, GoldCost, GarrSiteID, BuildingType, UpgradeLevel, Flags, ShipmentCapacity, GarrTypeID, BuildSeconds, "
+ "CurrencyQty, MaxAssignments FROM garr_building ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_BUILDING, "SELECT ID, AllianceName_lang, HordeName_lang, Description_lang, Tooltip_lang"
" FROM garr_building_locale WHERE locale = ?", CONNECTION_SYNCH);
// GarrBuildingPlotInst.db2
- PrepareStatement(HOTFIX_SEL_GARR_BUILDING_PLOT_INST, "SELECT LandmarkOffsetX, LandmarkOffsetY, UiTextureAtlasMemberID, GarrSiteLevelPlotInstID, "
+ PrepareStatement(HOTFIX_SEL_GARR_BUILDING_PLOT_INST, "SELECT MapOffsetX, MapOffsetY, UiTextureAtlasMemberID, GarrSiteLevelPlotInstID, "
"GarrBuildingID, ID FROM garr_building_plot_inst ORDER BY ID DESC", CONNECTION_SYNCH);
// GarrClassSpec.db2
- PrepareStatement(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT NameMale, NameFemale, NameGenderless, ClassAtlasID, GarrFollItemSetID, `Limit`, Flags, ID"
- " FROM garr_class_spec ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ID, NameMale_lang, NameFemale_lang, NameGenderless_lang FROM garr_class_spec_locale"
+ PrepareStatement(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ClassSpec, ClassSpecMale, ClassSpecFemale, UiTextureAtlasMemberID, GarrFollItemSetID, "
+ "FollowerClassLimit, Flags, ID FROM garr_class_spec ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_CLASS_SPEC, "SELECT ID, ClassSpec_lang, ClassSpecMale_lang, ClassSpecFemale_lang FROM garr_class_spec_locale"
" WHERE locale = ?", CONNECTION_SYNCH);
// GarrFollower.db2
- PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, Name, HordeCreatureID, AllianceCreatureID, "
- "HordePortraitIconID, AlliancePortraitIconID, HordeAddedBroadcastTextID, AllianceAddedBroadcastTextID, HordeGarrFollItemSetID, "
- "AllianceGarrFollItemSetID, ItemLevelWeapon, ItemLevelArmor, HordeListPortraitTextureKitID, AllianceListPortraitTextureKitID, FollowerTypeID, "
- "HordeUiAnimRaceInfoID, AllianceUiAnimRaceInfoID, Quality, HordeGarrClassSpecID, AllianceGarrClassSpecID, Level, Unknown1, Flags, Unknown2, "
- "Unknown3, GarrTypeID, MaxDurability, Class, HordeFlavorTextGarrStringID, AllianceFlavorTextGarrStringID, ID FROM garr_follower"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, Name_lang FROM garr_follower_locale"
+ PrepareStatement(HOTFIX_SEL_GARR_FOLLOWER, "SELECT HordeSourceText, AllianceSourceText, TitleName, HordeCreatureID, AllianceCreatureID, "
+ "HordeIconFileDataID, AllianceIconFileDataID, HordeSlottingBroadcastTextID, AllySlottingBroadcastTextID, HordeGarrFollItemSetID, "
+ "AllianceGarrFollItemSetID, ItemLevelWeapon, ItemLevelArmor, HordeUITextureKitID, AllianceUITextureKitID, GarrFollowerTypeID, "
+ "HordeGarrFollRaceID, AllianceGarrFollRaceID, Quality, HordeGarrClassSpecID, AllianceGarrClassSpecID, FollowerLevel, Gender, Flags, "
+ "HordeSourceTypeEnum, AllianceSourceTypeEnum, GarrTypeID, Vitality, ChrClassID, HordeFlavorGarrStringID, AllianceFlavorGarrStringID, ID"
+ " FROM garr_follower ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_FOLLOWER, "SELECT ID, HordeSourceText_lang, AllianceSourceText_lang, TitleName_lang FROM garr_follower_locale"
" WHERE locale = ?", CONNECTION_SYNCH);
// GarrFollowerXAbility.db2
@@ -349,8 +351,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" ORDER BY ID DESC", CONNECTION_SYNCH);
// GarrPlot.db2
- PrepareStatement(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name, AllianceConstructionGameObjectID, HordeConstructionGameObjectID, GarrPlotUICategoryID, "
- "PlotType, Flags, MinCount, MaxCount FROM garr_plot ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name, AllianceConstructObjID, HordeConstructObjID, UiCategoryID, PlotType, Flags, "
+ "UpgradeRequirement1, UpgradeRequirement2 FROM garr_plot ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_PLOT, "SELECT ID, Name_lang FROM garr_plot_locale WHERE locale = ?", CONNECTION_SYNCH);
// GarrPlotBuilding.db2
@@ -358,24 +360,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// GarrPlotInstance.db2
PrepareStatement(HOTFIX_SEL_GARR_PLOT_INSTANCE, "SELECT ID, Name, GarrPlotID FROM garr_plot_instance ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_GARR_PLOT_INSTANCE, "SELECT ID, Name_lang FROM garr_plot_instance_locale WHERE locale = ?", CONNECTION_SYNCH);
// GarrSiteLevel.db2
- PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL, "SELECT ID, TownHallX, TownHallY, MapID, SiteID, MovieID, UpgradeResourceCost, UpgradeMoneyCost, "
- "Level, UITextureKitID, Level2 FROM garr_site_level ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL, "SELECT ID, TownHallUiPosX, TownHallUiPosY, MapID, UiTextureKitID, UpgradeMovieID, UpgradeCost, "
+ "UpgradeGoldCost, GarrLevel, GarrSiteID, MaxBuildingLevel FROM garr_site_level ORDER BY ID DESC", CONNECTION_SYNCH);
// GarrSiteLevelPlotInst.db2
- PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT ID, LandmarkX, LandmarkY, GarrSiteLevelID, GarrPlotInstanceID, Unknown"
+ PrepareStatement(HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST, "SELECT ID, UiMarkerPosX, UiMarkerPosY, GarrSiteLevelID, GarrPlotInstanceID, UiMarkerSize"
" FROM garr_site_level_plot_inst ORDER BY ID DESC", CONNECTION_SYNCH);
// GemProperties.db2
- PrepareStatement(HOTFIX_SEL_GEM_PROPERTIES, "SELECT ID, Type, EnchantID, MinItemLevel FROM gem_properties ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_GEM_PROPERTIES, "SELECT ID, Type, EnchantId, MinItemLevel FROM gem_properties ORDER BY ID DESC", CONNECTION_SYNCH);
// GlyphBindableSpell.db2
PrepareStatement(HOTFIX_SEL_GLYPH_BINDABLE_SPELL, "SELECT ID, SpellID, GlyphPropertiesID FROM glyph_bindable_spell ORDER BY ID DESC", CONNECTION_SYNCH);
// GlyphProperties.db2
- PrepareStatement(HOTFIX_SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, SpellIconID, Type, GlyphExclusiveCategoryID FROM glyph_properties"
+ PrepareStatement(HOTFIX_SEL_GLYPH_PROPERTIES, "SELECT ID, SpellID, SpellIconID, GlyphType, GlyphExclusiveCategoryID FROM glyph_properties"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// GlyphRequiredSpec.db2
@@ -394,8 +395,9 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_GUILD_PERK_SPELLS, "SELECT ID, SpellID FROM guild_perk_spells ORDER BY ID DESC", CONNECTION_SYNCH);
// Heirloom.db2
- PrepareStatement(HOTFIX_SEL_HEIRLOOM, "SELECT SourceText, ItemID, OldItem1, OldItem2, NextDifficultyItemID, UpgradeItemID1, UpgradeItemID2, "
- "UpgradeItemID3, ItemBonusListID1, ItemBonusListID2, ItemBonusListID3, Flags, Source, ID FROM heirloom ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_HEIRLOOM, "SELECT SourceText, ItemID, LegacyItemID, LegacyUpgradedItemID, StaticUpgradedItemID, UpgradeItemID1, "
+ "UpgradeItemID2, UpgradeItemID3, UpgradeItemBonusListID1, UpgradeItemBonusListID2, UpgradeItemBonusListID3, Flags, SourceTypeEnum, ID"
+ " FROM heirloom ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_HEIRLOOM, "SELECT ID, SourceText_lang FROM heirloom_locale WHERE locale = ?", CONNECTION_SYNCH);
// Holidays.db2
@@ -406,117 +408,117 @@ void HotfixDatabaseConnection::DoPrepareStatements()
"TextureFileDataID1, TextureFileDataID2, TextureFileDataID3 FROM holidays ORDER BY ID DESC", CONNECTION_SYNCH);
// ImportPriceArmor.db2
- PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_ARMOR, "SELECT ID, ClothFactor, LeatherFactor, MailFactor, PlateFactor FROM import_price_armor"
+ PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_ARMOR, "SELECT ID, ClothModifier, LeatherModifier, ChainModifier, PlateModifier FROM import_price_armor"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// ImportPriceQuality.db2
- PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_QUALITY, "SELECT ID, Factor FROM import_price_quality ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_QUALITY, "SELECT ID, Data FROM import_price_quality ORDER BY ID DESC", CONNECTION_SYNCH);
// ImportPriceShield.db2
- PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_SHIELD, "SELECT ID, Factor FROM import_price_shield ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_SHIELD, "SELECT ID, Data FROM import_price_shield ORDER BY ID DESC", CONNECTION_SYNCH);
// ImportPriceWeapon.db2
- PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_WEAPON, "SELECT ID, Factor FROM import_price_weapon ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_IMPORT_PRICE_WEAPON, "SELECT ID, Data FROM import_price_weapon ORDER BY ID DESC", CONNECTION_SYNCH);
// Item.db2
- PrepareStatement(HOTFIX_SEL_ITEM, "SELECT ID, FileDataID, Class, SubClass, SoundOverrideSubclass, Material, InventoryType, Sheath, GroupSoundsID"
- " FROM item ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM, "SELECT ID, IconFileDataID, ClassID, SubclassID, SoundOverrideSubclassID, Material, InventoryType, SheatheType, "
+ "ItemGroupSoundsID FROM item ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemAppearance.db2
- PrepareStatement(HOTFIX_SEL_ITEM_APPEARANCE, "SELECT ID, DisplayID, IconFileDataID, UIOrder, ObjectComponentSlot FROM item_appearance"
+ PrepareStatement(HOTFIX_SEL_ITEM_APPEARANCE, "SELECT ID, ItemDisplayInfoID, DefaultIconFileDataID, UiOrder, DisplayType FROM item_appearance"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemArmorQuality.db2
- PrepareStatement(HOTFIX_SEL_ITEM_ARMOR_QUALITY, "SELECT ID, QualityMod1, QualityMod2, QualityMod3, QualityMod4, QualityMod5, QualityMod6, "
- "QualityMod7, ItemLevel FROM item_armor_quality ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_ARMOR_QUALITY, "SELECT ID, Qualitymod1, Qualitymod2, Qualitymod3, Qualitymod4, Qualitymod5, Qualitymod6, "
+ "Qualitymod7, ItemLevel FROM item_armor_quality ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemArmorShield.db2
PrepareStatement(HOTFIX_SEL_ITEM_ARMOR_SHIELD, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel"
" FROM item_armor_shield ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemArmorTotal.db2
- PrepareStatement(HOTFIX_SEL_ITEM_ARMOR_TOTAL, "SELECT ID, Value1, Value2, Value3, Value4, ItemLevel FROM item_armor_total ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_ARMOR_TOTAL, "SELECT ID, Cloth, Leather, Mail, Plate, ItemLevel FROM item_armor_total ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemBagFamily.db2
PrepareStatement(HOTFIX_SEL_ITEM_BAG_FAMILY, "SELECT ID, Name FROM item_bag_family ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_BAG_FAMILY, "SELECT ID, Name_lang FROM item_bag_family_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemBonus.db2
- PrepareStatement(HOTFIX_SEL_ITEM_BONUS, "SELECT ID, Value1, Value2, Value3, BonusListID, Type, `Index` FROM item_bonus ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_BONUS, "SELECT ID, Value1, Value2, Value3, ParentItemBonusListID, Type, OrderIndex FROM item_bonus"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemBonusListLevelDelta.db2
- PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT Delta, ID FROM item_bonus_list_level_delta ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA, "SELECT ItemLevelDelta, ID FROM item_bonus_list_level_delta ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemBonusTreeNode.db2
- PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, SubTreeID, BonusListID, ItemLevelSelectorID, BonusTreeModID, BonusTreeID"
- " FROM item_bonus_tree_node ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_BONUS_TREE_NODE, "SELECT ID, ChildItemBonusTreeID, ChildItemBonusListID, ChildItemLevelSelectorID, ItemContext, "
+ "ParentItemBonusTreeID FROM item_bonus_tree_node ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemChildEquipment.db2
- PrepareStatement(HOTFIX_SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, AltItemID, AltEquipmentSlot, ItemID FROM item_child_equipment ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_CHILD_EQUIPMENT, "SELECT ID, ChildItemID, ChildItemEquipSlot, ParentItemID FROM item_child_equipment"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemClass.db2
- PrepareStatement(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, Name, PriceMod, OldEnumValue, Flags FROM item_class ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, Name_lang FROM item_class_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, ClassName, PriceModifier, ClassID, Flags FROM item_class ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_CLASS, "SELECT ID, ClassName_lang FROM item_class_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemCurrencyCost.db2
- PrepareStatement(HOTFIX_SEL_ITEM_CURRENCY_COST, "SELECT ID, ItemId FROM item_currency_cost ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_CURRENCY_COST, "SELECT ID, ItemID FROM item_currency_cost ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDamageAmmo.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_AMMO, "SELECT ID, DPS1, DPS2, DPS3, DPS4, DPS5, DPS6, DPS7, ItemLevel FROM item_damage_ammo"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_AMMO, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel"
+ " FROM item_damage_ammo ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDamageOneHand.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND, "SELECT ID, DPS1, DPS2, DPS3, DPS4, DPS5, DPS6, DPS7, ItemLevel FROM item_damage_one_hand"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel"
+ " FROM item_damage_one_hand ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDamageOneHandCaster.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND_CASTER, "SELECT ID, DPS1, DPS2, DPS3, DPS4, DPS5, DPS6, DPS7, ItemLevel"
- " FROM item_damage_one_hand_caster ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND_CASTER, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, "
+ "ItemLevel FROM item_damage_one_hand_caster ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDamageTwoHand.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND, "SELECT ID, DPS1, DPS2, DPS3, DPS4, DPS5, DPS6, DPS7, ItemLevel FROM item_damage_two_hand"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, ItemLevel"
+ " FROM item_damage_two_hand ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDamageTwoHandCaster.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND_CASTER, "SELECT ID, DPS1, DPS2, DPS3, DPS4, DPS5, DPS6, DPS7, ItemLevel"
- " FROM item_damage_two_hand_caster ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND_CASTER, "SELECT ID, Quality1, Quality2, Quality3, Quality4, Quality5, Quality6, Quality7, "
+ "ItemLevel FROM item_damage_two_hand_caster ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemDisenchantLoot.db2
- PrepareStatement(HOTFIX_SEL_ITEM_DISENCHANT_LOOT, "SELECT ID, MinItemLevel, MaxItemLevel, RequiredDisenchantSkill, ItemSubClass, ItemQuality, "
- "Expansion, ItemClass FROM item_disenchant_loot ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_DISENCHANT_LOOT, "SELECT ID, MinLevel, MaxLevel, SkillRequired, Subclass, Quality, ExpansionID, Class"
+ " FROM item_disenchant_loot ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemEffect.db2
- PrepareStatement(HOTFIX_SEL_ITEM_EFFECT, "SELECT ID, SpellID, Cooldown, CategoryCooldown, Charges, Category, ChrSpecializationID, OrderIndex, "
- "`Trigger`, ItemID FROM item_effect ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_EFFECT, "SELECT ID, SpellID, CoolDownMSec, CategoryCoolDownMSec, Charges, SpellCategoryID, ChrSpecializationID, "
+ "LegacySlotIndex, TriggerType, ParentItemID FROM item_effect ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemExtendedCost.db2
- PrepareStatement(HOTFIX_SEL_ITEM_EXTENDED_COST, "SELECT ID, RequiredItem1, RequiredItem2, RequiredItem3, RequiredItem4, RequiredItem5, "
- "RequiredCurrencyCount1, RequiredCurrencyCount2, RequiredCurrencyCount3, RequiredCurrencyCount4, RequiredCurrencyCount5, RequiredItemCount1, "
- "RequiredItemCount2, RequiredItemCount3, RequiredItemCount4, RequiredItemCount5, RequiredPersonalArenaRating, RequiredCurrency1, "
- "RequiredCurrency2, RequiredCurrency3, RequiredCurrency4, RequiredCurrency5, RequiredArenaSlot, RequiredFactionId, RequiredFactionStanding, "
- "RequirementFlags, RequiredAchievement FROM item_extended_cost ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_EXTENDED_COST, "SELECT ID, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, CurrencyCount1, CurrencyCount2, "
+ "CurrencyCount3, CurrencyCount4, CurrencyCount5, ItemCount1, ItemCount2, ItemCount3, ItemCount4, ItemCount5, RequiredArenaRating, "
+ "CurrencyID1, CurrencyID2, CurrencyID3, CurrencyID4, CurrencyID5, ArenaBracket, MinFactionID, MinReputation, Flags, RequiredAchievement"
+ " FROM item_extended_cost ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemLevelSelector.db2
- PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, ItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR, "SELECT ID, MinItemLevel, ItemLevelSelectorQualitySetID FROM item_level_selector ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemLevelSelectorQuality.db2
- PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, ItemBonusListID, Quality, ItemLevelSelectorQualitySetID"
+ PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY, "SELECT ID, QualityItemBonusListID, Quality, ParentILSQualitySetID"
" FROM item_level_selector_quality ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemLevelSelectorQualitySet.db2
- PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET, "SELECT ID, ItemLevelMin, ItemLevelMax FROM item_level_selector_quality_set"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET, "SELECT ID, IlvlRare, IlvlEpic FROM item_level_selector_quality_set ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemLimitCategory.db2
PrepareStatement(HOTFIX_SEL_ITEM_LIMIT_CATEGORY, "SELECT ID, Name, Quantity, Flags FROM item_limit_category ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_LIMIT_CATEGORY, "SELECT ID, Name_lang FROM item_limit_category_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemModifiedAppearance.db2
- PrepareStatement(HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ItemID, ID, AppearanceModID, AppearanceID, `Index`, SourceType"
- " FROM item_modified_appearance ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE, "SELECT ItemID, ID, ItemAppearanceModifierID, ItemAppearanceID, OrderIndex, "
+ "TransmogSourceTypeEnum FROM item_modified_appearance ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemPriceBase.db2
- PrepareStatement(HOTFIX_SEL_ITEM_PRICE_BASE, "SELECT ID, ArmorFactor, WeaponFactor, ItemLevel FROM item_price_base ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_PRICE_BASE, "SELECT ID, Armor, Weapon, ItemLevel FROM item_price_base ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemRandomProperties.db2
PrepareStatement(HOTFIX_SEL_ITEM_RANDOM_PROPERTIES, "SELECT ID, Name, Enchantment1, Enchantment2, Enchantment3, Enchantment4, Enchantment5"
@@ -529,14 +531,14 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_RANDOM_SUFFIX, "SELECT ID, Name_lang FROM item_random_suffix_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemSearchName.db2
- PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Name, ID, Flags1, Flags2, Flags3, ItemLevel, Quality, RequiredExpansion, "
- "RequiredLevel, RequiredReputationFaction, RequiredReputationRank, AllowableClass, RequiredSkill, RequiredSkillRank, RequiredSpell"
+ PrepareStatement(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT AllowableRace, Display, ID, Flags1, Flags2, Flags3, ItemLevel, OverallQualityID, "
+ "ExpansionID, RequiredLevel, MinFactionID, MinReputation, AllowableClass, RequiredSkill, RequiredSkillRank, RequiredAbility"
" FROM item_search_name ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, Name_lang FROM item_search_name_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SEARCH_NAME, "SELECT ID, Display_lang FROM item_search_name_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemSet.db2
PrepareStatement(HOTFIX_SEL_ITEM_SET, "SELECT ID, Name, ItemID1, ItemID2, ItemID3, ItemID4, ItemID5, ItemID6, ItemID7, ItemID8, ItemID9, "
- "ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17, RequiredSkillRank, RequiredSkill, Flags FROM item_set"
+ "ItemID10, ItemID11, ItemID12, ItemID13, ItemID14, ItemID15, ItemID16, ItemID17, RequiredSkillRank, RequiredSkill, SetFlags FROM item_set"
" ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SET, "SELECT ID, Name_lang FROM item_set_locale WHERE locale = ?", CONNECTION_SYNCH);
@@ -544,36 +546,36 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_ITEM_SET_SPELL, "SELECT ID, SpellID, ChrSpecID, Threshold, ItemSetID FROM item_set_spell ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemSparse.db2
- PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Name, Name2, Name3, Name4, Description, Flags1, Flags2, Flags3, Flags4, Unk1, "
- "Unk2, BuyCount, BuyPrice, SellPrice, RequiredSpell, MaxCount, Stackable, ItemStatAllocation1, ItemStatAllocation2, ItemStatAllocation3, "
- "ItemStatAllocation4, ItemStatAllocation5, ItemStatAllocation6, ItemStatAllocation7, ItemStatAllocation8, ItemStatAllocation9, "
- "ItemStatAllocation10, ItemStatSocketCostMultiplier1, ItemStatSocketCostMultiplier2, ItemStatSocketCostMultiplier3, "
- "ItemStatSocketCostMultiplier4, ItemStatSocketCostMultiplier5, ItemStatSocketCostMultiplier6, ItemStatSocketCostMultiplier7, "
- "ItemStatSocketCostMultiplier8, ItemStatSocketCostMultiplier9, ItemStatSocketCostMultiplier10, RangedModRange, BagFamily, "
- "ArmorDamageModifier, Duration, StatScalingFactor, AllowableClass, ItemLevel, RequiredSkill, RequiredSkillRank, RequiredReputationFaction, "
- "ItemStatValue1, ItemStatValue2, ItemStatValue3, ItemStatValue4, ItemStatValue5, ItemStatValue6, ItemStatValue7, ItemStatValue8, "
- "ItemStatValue9, ItemStatValue10, ScalingStatDistribution, Delay, PageText, StartQuest, LockID, RandomProperty, RandomSuffix, ItemSet, Area, "
- "Map, TotemCategory, SocketBonus, GemProperties, ItemLimitCategory, HolidayID, RequiredTransmogHolidayID, ItemNameDescriptionID, Quality, "
- "InventoryType, RequiredLevel, RequiredHonorRank, RequiredCityRank, RequiredReputationRank, ContainerSlots, ItemStatType1, ItemStatType2, "
- "ItemStatType3, ItemStatType4, ItemStatType5, ItemStatType6, ItemStatType7, ItemStatType8, ItemStatType9, ItemStatType10, DamageType, "
- "Bonding, LanguageID, PageMaterial, Material, Sheath, SocketColor1, SocketColor2, SocketColor3, CurrencySubstitutionID, "
- "CurrencySubstitutionCount, ArtifactID, RequiredExpansion FROM item_sparse ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, Name_lang, Name2_lang, Name3_lang, Name4_lang, Description_lang FROM item_sparse_locale"
- " WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, AllowableRace, Display, Display1, Display2, Display3, Description, Flags1, Flags2, Flags3, "
+ "Flags4, PriceRandomValue, PriceVariance, VendorStackCount, BuyPrice, SellPrice, RequiredAbility, MaxCount, Stackable, StatPercentEditor1, "
+ "StatPercentEditor2, StatPercentEditor3, StatPercentEditor4, StatPercentEditor5, StatPercentEditor6, StatPercentEditor7, StatPercentEditor8, "
+ "StatPercentEditor9, StatPercentEditor10, StatPercentageOfSocket1, StatPercentageOfSocket2, StatPercentageOfSocket3, StatPercentageOfSocket4, "
+ "StatPercentageOfSocket5, StatPercentageOfSocket6, StatPercentageOfSocket7, StatPercentageOfSocket8, StatPercentageOfSocket9, "
+ "StatPercentageOfSocket10, ItemRange, BagFamily, QualityModifier, DurationInInventory, DmgVariance, AllowableClass, ItemLevel, RequiredSkill, "
+ "RequiredSkillRank, MinFactionID, ItemStatValue1, ItemStatValue2, ItemStatValue3, ItemStatValue4, ItemStatValue5, ItemStatValue6, "
+ "ItemStatValue7, ItemStatValue8, ItemStatValue9, ItemStatValue10, ScalingStatDistributionID, ItemDelay, PageID, StartQuestID, LockID, "
+ "RandomSelect, ItemRandomSuffixGroupID, ItemSet, ZoneBound, InstanceBound, TotemCategoryID, SocketMatchEnchantmentId, GemProperties, "
+ "LimitCategory, RequiredHoliday, RequiredTransmogHoliday, ItemNameDescriptionID, OverallQualityID, InventoryType, RequiredLevel, "
+ "RequiredPVPRank, RequiredPVPMedal, MinReputation, ContainerSlots, StatModifierBonusStat1, StatModifierBonusStat2, StatModifierBonusStat3, "
+ "StatModifierBonusStat4, StatModifierBonusStat5, StatModifierBonusStat6, StatModifierBonusStat7, StatModifierBonusStat8, "
+ "StatModifierBonusStat9, StatModifierBonusStat10, DamageDamageType, Bonding, LanguageID, PageMaterialID, Material, SheatheType, SocketType1, "
+ "SocketType2, SocketType3, SpellWeightCategory, SpellWeight, ArtifactID, ExpansionID FROM item_sparse ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_ITEM_SPARSE, "SELECT ID, Display_lang, Display1_lang, Display2_lang, Display3_lang, Description_lang"
+ " FROM item_sparse_locale WHERE locale = ?", CONNECTION_SYNCH);
// ItemSpec.db2
- PrepareStatement(HOTFIX_SEL_ITEM_SPEC, "SELECT ID, SpecID, MinLevel, MaxLevel, ItemType, PrimaryStat, SecondaryStat FROM item_spec"
+ PrepareStatement(HOTFIX_SEL_ITEM_SPEC, "SELECT ID, SpecializationID, MinLevel, MaxLevel, ItemType, PrimaryStat, SecondaryStat FROM item_spec"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemSpecOverride.db2
PrepareStatement(HOTFIX_SEL_ITEM_SPEC_OVERRIDE, "SELECT ID, SpecID, ItemID FROM item_spec_override ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemUpgrade.db2
- PrepareStatement(HOTFIX_SEL_ITEM_UPGRADE, "SELECT ID, CurrencyCost, PrevItemUpgradeID, CurrencyID, ItemUpgradePathID, ItemLevelBonus"
+ PrepareStatement(HOTFIX_SEL_ITEM_UPGRADE, "SELECT ID, CurrencyAmount, PrerequisiteID, CurrencyType, ItemUpgradePathID, ItemLevelIncrement"
" FROM item_upgrade ORDER BY ID DESC", CONNECTION_SYNCH);
// ItemXBonusTree.db2
- PrepareStatement(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT ID, BonusTreeID, ItemID FROM item_x_bonus_tree ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_ITEM_X_BONUS_TREE, "SELECT ID, ItemBonusTreeID, ItemID FROM item_x_bonus_tree ORDER BY ID DESC", CONNECTION_SYNCH);
// Keychain.db2
PrepareStatement(HOTFIX_SEL_KEYCHAIN, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, "
@@ -581,24 +583,23 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" ORDER BY ID DESC", CONNECTION_SYNCH);
// LfgDungeons.db2
- PrepareStatement(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, Flags, MinItemLevel, MaxLevel, TargetLevelMax, MapID, RandomID, "
- "ScenarioID, LastBossJournalEncounterID, BonusReputationAmount, MentorItemLevel, PlayerConditionID, MinLevel, TargetLevel, TargetLevelMin, "
- "DifficultyID, Type, Faction, Expansion, OrderIndex, GroupID, CountTank, CountHealer, CountDamage, MinCountTank, MinCountHealer, "
- "MinCountDamage, SubType, MentorCharLevel, TextureFileDataID, RewardIconFileDataID, ProposalTextureFileDataID FROM lfg_dungeons"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name, Description, Flags, MinGear, MaxLevel, TargetLevelMax, MapID, RandomID, ScenarioID, "
+ "FinalEncounterID, BonusReputationAmount, MentorItemLevel, RequiredPlayerConditionId, MinLevel, TargetLevel, TargetLevelMin, DifficultyID, "
+ "TypeID, Faction, ExpansionLevel, OrderIndex, GroupID, CountTank, CountHealer, CountDamage, MinCountTank, MinCountHealer, MinCountDamage, "
+ "Subtype, MentorCharLevel, IconTextureFileID, RewardsBgTextureFileID, PopupBgTextureFileID FROM lfg_dungeons ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_LFG_DUNGEONS, "SELECT ID, Name_lang, Description_lang FROM lfg_dungeons_locale WHERE locale = ?", CONNECTION_SYNCH);
// Light.db2
- PrepareStatement(HOTFIX_SEL_LIGHT, "SELECT ID, PosX, PosY, PosZ, FalloffStart, FalloffEnd, MapID, LightParamsID1, LightParamsID2, LightParamsID3, "
- "LightParamsID4, LightParamsID5, LightParamsID6, LightParamsID7, LightParamsID8 FROM light ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_LIGHT, "SELECT ID, GameCoordsX, GameCoordsY, GameCoordsZ, GameFalloffStart, GameFalloffEnd, ContinentID, "
+ "LightParamsID1, LightParamsID2, LightParamsID3, LightParamsID4, LightParamsID5, LightParamsID6, LightParamsID7, LightParamsID8 FROM light"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// LiquidType.db2
PrepareStatement(HOTFIX_SEL_LIQUID_TYPE, "SELECT ID, Name, Texture1, Texture2, Texture3, Texture4, Texture5, Texture6, SpellID, MaxDarkenDepth, "
"FogDarkenIntensity, AmbDarkenIntensity, DirDarkenIntensity, ParticleScale, Color1, Color2, Float1, Float2, Float3, `Float4`, Float5, Float6, "
"Float7, `Float8`, Float9, Float10, Float11, Float12, Float13, Float14, Float15, Float16, Float17, Float18, `Int1`, `Int2`, `Int3`, `Int4`, "
- "Flags, LightID, Type, ParticleMovement, ParticleTexSlots, MaterialID, DepthTexCount1, DepthTexCount2, DepthTexCount3, DepthTexCount4, "
- "DepthTexCount5, DepthTexCount6, SoundID FROM liquid_type ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_LIQUID_TYPE, "SELECT ID, Name_lang FROM liquid_type_locale WHERE locale = ?", CONNECTION_SYNCH);
+ "Flags, LightID, SoundBank, ParticleMovement, ParticleTexSlots, MaterialID, FrameCountTexture1, FrameCountTexture2, FrameCountTexture3, "
+ "FrameCountTexture4, FrameCountTexture5, FrameCountTexture6, SoundID FROM liquid_type ORDER BY ID DESC", CONNECTION_SYNCH);
// Lock.db2
PrepareStatement(HOTFIX_SEL_LOCK, "SELECT ID, Index1, Index2, Index3, Index4, Index5, Index6, Index7, Index8, Skill1, Skill2, Skill3, Skill4, "
@@ -610,42 +611,42 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_MAIL_TEMPLATE, "SELECT ID, Body_lang FROM mail_template_locale WHERE locale = ?", CONNECTION_SYNCH);
// Map.db2
- PrepareStatement(HOTFIX_SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, ShortDescription, LongDescription, Flags1, "
- "Flags2, MinimapIconScale, CorpsePosX, CorpsePosY, AreaTableID, LoadingScreenID, CorpseMapID, TimeOfDayOverride, ParentMapID, "
- "CosmeticParentMapID, WindSettingsID, InstanceType, unk5, ExpansionID, MaxPlayers, TimeOffset FROM map ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, ShortDescription_lang, "
- "LongDescription_lang FROM map_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MAP, "SELECT ID, Directory, MapName, MapDescription0, MapDescription1, PvpShortDescription, PvpLongDescription, "
+ "Flags1, Flags2, MinimapIconScale, CorpseX, CorpseY, AreaTableID, LoadingScreenID, CorpseMapID, TimeOfDayOverride, ParentMapID, "
+ "CosmeticParentMapID, WindSettingsID, InstanceType, MapType, ExpansionID, MaxPlayers, TimeOffset FROM map ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP, "SELECT ID, MapName_lang, MapDescription0_lang, MapDescription1_lang, PvpShortDescription_lang, "
+ "PvpLongDescription_lang FROM map_locale WHERE locale = ?", CONNECTION_SYNCH);
// MapDifficulty.db2
- PrepareStatement(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message, DifficultyID, RaidDurationType, MaxPlayers, LockID, Flags, ItemBonusTreeModID, "
- "Context, MapID FROM map_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message, DifficultyID, ResetInterval, MaxPlayers, LockID, Flags, ItemContext, "
+ "ItemContextPickerID, MapID FROM map_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_MAP_DIFFICULTY, "SELECT ID, Message_lang FROM map_difficulty_locale WHERE locale = ?", CONNECTION_SYNCH);
// ModifierTree.db2
- PrepareStatement(HOTFIX_SEL_MODIFIER_TREE, "SELECT ID, Asset1, Asset2, Parent, Type, Unk700, Operator, Amount FROM modifier_tree ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MODIFIER_TREE, "SELECT ID, Asset, SecondaryAsset, Parent, Type, TertiaryAsset, Operator, Amount FROM modifier_tree"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// Mount.db2
- PrepareStatement(HOTFIX_SEL_MOUNT, "SELECT Name, Description, SourceDescription, SpellId, CameraPivotMultiplier, MountTypeId, Flags, Source, ID, "
- "PlayerConditionId, UiModelSceneID FROM mount ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_MOUNT, "SELECT ID, Name_lang, Description_lang, SourceDescription_lang FROM mount_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MOUNT, "SELECT Name, Description, SourceText, SourceSpellID, MountFlyRideHeight, MountTypeID, Flags, SourceTypeEnum, "
+ "ID, PlayerConditionID, UiModelSceneID FROM mount ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_MOUNT, "SELECT ID, Name_lang, Description_lang, SourceText_lang FROM mount_locale WHERE locale = ?", CONNECTION_SYNCH);
// MountCapability.db2
- PrepareStatement(HOTFIX_SEL_MOUNT_CAPABILITY, "SELECT RequiredSpell, SpeedModSpell, RequiredRidingSkill, RequiredArea, RequiredMap, Flags, ID, "
- "RequiredAura FROM mount_capability ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MOUNT_CAPABILITY, "SELECT ReqSpellKnownID, ModSpellAuraID, ReqRidingSkill, ReqAreaID, ReqMapID, Flags, ID, "
+ "ReqSpellAuraID FROM mount_capability ORDER BY ID DESC", CONNECTION_SYNCH);
// MountTypeXCapability.db2
PrepareStatement(HOTFIX_SEL_MOUNT_TYPE_X_CAPABILITY, "SELECT ID, MountTypeID, MountCapabilityID, OrderIndex FROM mount_type_x_capability"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// MountXDisplay.db2
- PrepareStatement(HOTFIX_SEL_MOUNT_X_DISPLAY, "SELECT ID, DisplayID, PlayerConditionID, MountID FROM mount_x_display ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_MOUNT_X_DISPLAY, "SELECT ID, CreatureDisplayInfoID, PlayerConditionID, MountID FROM mount_x_display ORDER BY ID DESC", CONNECTION_SYNCH);
// Movie.db2
PrepareStatement(HOTFIX_SEL_MOVIE, "SELECT ID, AudioFileDataID, SubtitleFileDataID, Volume, KeyID FROM movie ORDER BY ID DESC", CONNECTION_SYNCH);
// NameGen.db2
- PrepareStatement(HOTFIX_SEL_NAME_GEN, "SELECT ID, Name, Race, Sex FROM name_gen ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_NAME_GEN, "SELECT ID, Name_lang FROM name_gen_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_NAME_GEN, "SELECT ID, Name, RaceID, Sex FROM name_gen ORDER BY ID DESC", CONNECTION_SYNCH);
// NamesProfanity.db2
PrepareStatement(HOTFIX_SEL_NAMES_PROFANITY, "SELECT ID, Name, Language FROM names_profanity ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -657,8 +658,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_NAMES_RESERVED_LOCALE, "SELECT ID, Name, LocaleMask FROM names_reserved_locale ORDER BY ID DESC", CONNECTION_SYNCH);
// OverrideSpellData.db2
- PrepareStatement(HOTFIX_SEL_OVERRIDE_SPELL_DATA, "SELECT ID, SpellID1, SpellID2, SpellID3, SpellID4, SpellID5, SpellID6, SpellID7, SpellID8, "
- "SpellID9, SpellID10, PlayerActionbarFileDataID, Flags FROM override_spell_data ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_OVERRIDE_SPELL_DATA, "SELECT ID, Spells1, Spells2, Spells3, Spells4, Spells5, Spells6, Spells7, Spells8, Spells9, "
+ "Spells10, PlayerActionBarFileDataID, Flags FROM override_spell_data ORDER BY ID DESC", CONNECTION_SYNCH);
// Phase.db2
PrepareStatement(HOTFIX_SEL_PHASE, "SELECT ID, Flags FROM phase ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -668,86 +669,85 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// PlayerCondition.db2
PrepareStatement(HOTFIX_SEL_PLAYER_CONDITION, "SELECT RaceMask, FailureDescription, ID, Flags, MinLevel, MaxLevel, ClassMask, Gender, "
- "NativeGender, SkillLogic, LanguageID, MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, Unknown1, MinPVPRank, "
+ "NativeGender, SkillLogic, LanguageID, MinLanguage, MaxLanguage, MaxFactionID, MaxReputation, ReputationLogic, CurrentPvpFaction, MinPVPRank, "
"MaxPVPRank, PvpMedal, PrevQuestLogic, CurrQuestLogic, CurrentCompletedQuestLogic, SpellLogic, ItemLogic, ItemFlags, AuraSpellLogic, "
"WorldStateExpressionID, WeatherID, PartyStatus, LifetimeMaxPVPRank, AchievementLogic, LfgLogic, AreaLogic, CurrencyLogic, QuestKillID, "
"QuestKillLogic, MinExpansionLevel, MaxExpansionLevel, MinExpansionTier, MaxExpansionTier, MinGuildLevel, MaxGuildLevel, PhaseUseFlags, "
"PhaseID, PhaseGroupID, MinAvgItemLevel, MaxAvgItemLevel, MinAvgEquippedItemLevel, MaxAvgEquippedItemLevel, ChrSpecializationIndex, "
- "ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ModifierTreeID, MainHandItemSubclassMask, 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, AuraCount1, AuraCount2, AuraCount3, "
- "AuraCount4, Achievement1, Achievement2, Achievement3, Achievement4, LfgStatus1, LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, "
- "LfgCompare2, LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, LfgValue4, AreaID1, AreaID2, AreaID3, AreaID4, CurrencyID1, "
- "CurrencyID2, CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, QuestKillMonster1, QuestKillMonster2, "
+ "ChrSpecializationRole, PowerType, PowerTypeComp, PowerTypeValue, ModifierTreeID, WeaponSubclassMask, 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, LfgStatus1, LfgStatus2, LfgStatus3, LfgStatus4, LfgCompare1, LfgCompare2, "
+ "LfgCompare3, LfgCompare4, LfgValue1, LfgValue2, LfgValue3, LfgValue4, AreaID1, AreaID2, AreaID3, AreaID4, CurrencyID1, CurrencyID2, "
+ "CurrencyID3, CurrencyID4, CurrencyCount1, CurrencyCount2, CurrencyCount3, CurrencyCount4, QuestKillMonster1, QuestKillMonster2, "
"QuestKillMonster3, QuestKillMonster4, QuestKillMonster5, QuestKillMonster6, MovementFlags1, MovementFlags2 FROM player_condition"
" ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_PLAYER_CONDITION, "SELECT ID, FailureDescription_lang FROM player_condition_locale WHERE locale = ?", CONNECTION_SYNCH);
// PowerDisplay.db2
- PrepareStatement(HOTFIX_SEL_POWER_DISPLAY, "SELECT ID, GlobalStringBaseTag, PowerType, Red, Green, Blue FROM power_display ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_POWER_DISPLAY, "SELECT ID, GlobalStringBaseTag, ActualType, Red, Green, Blue FROM power_display ORDER BY ID DESC", CONNECTION_SYNCH);
// PowerType.db2
- PrepareStatement(HOTFIX_SEL_POWER_TYPE, "SELECT ID, PowerTypeToken, PowerCostToken, RegenerationPeace, RegenerationCombat, MaxPower, "
- "RegenerationDelay, Flags, PowerTypeEnum, RegenerationMin, RegenerationCenter, RegenerationMax, UIModifier FROM power_type ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_POWER_TYPE, "SELECT ID, NameGlobalStringTag, CostGlobalStringTag, RegenPeace, RegenCombat, MaxBasePower, "
+ "RegenInterruptTimeMS, Flags, PowerTypeEnum, MinPower, CenterPower, DefaultPower, DisplayModifier FROM power_type ORDER BY ID DESC", CONNECTION_SYNCH);
// PrestigeLevelInfo.db2
- PrepareStatement(HOTFIX_SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, PrestigeText, IconID, PrestigeLevel, Flags FROM prestige_level_info ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, PrestigeText_lang FROM prestige_level_info_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, Name, BadgeTextureFileDataID, PrestigeLevel, Flags FROM prestige_level_info"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_PRESTIGE_LEVEL_INFO, "SELECT ID, Name_lang FROM prestige_level_info_locale WHERE locale = ?", CONNECTION_SYNCH);
// PvpDifficulty.db2
- PrepareStatement(HOTFIX_SEL_PVP_DIFFICULTY, "SELECT ID, BracketID, MinLevel, MaxLevel, MapID FROM pvp_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_PVP_DIFFICULTY, "SELECT ID, RangeIndex, MinLevel, MaxLevel, MapID FROM pvp_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
// PvpItem.db2
- PrepareStatement(HOTFIX_SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelBonus FROM pvp_item ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_PVP_ITEM, "SELECT ID, ItemID, ItemLevelDelta FROM pvp_item ORDER BY ID DESC", CONNECTION_SYNCH);
// PvpReward.db2
- PrepareStatement(HOTFIX_SEL_PVP_REWARD, "SELECT ID, HonorLevel, Prestige, RewardPackID FROM pvp_reward ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_PVP_REWARD, "SELECT ID, HonorLevel, PrestigeLevel, RewardPackID FROM pvp_reward ORDER BY ID DESC", CONNECTION_SYNCH);
// PvpTalent.db2
- PrepareStatement(HOTFIX_SEL_PVP_TALENT, "SELECT ID, Description, SpellID, OverridesSpellID, ExtraSpellID, TierID, ColumnIndex, Flags, ClassID, "
- "SpecID, Role FROM pvp_talent ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_PVP_TALENT, "SELECT ID, Description, SpellID, OverridesSpellID, ActionBarSpellID, TierID, ColumnIndex, Flags, "
+ "ClassID, SpecID, Role FROM pvp_talent ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_PVP_TALENT, "SELECT ID, Description_lang FROM pvp_talent_locale WHERE locale = ?", CONNECTION_SYNCH);
// PvpTalentUnlock.db2
PrepareStatement(HOTFIX_SEL_PVP_TALENT_UNLOCK, "SELECT ID, TierID, ColumnIndex, HonorLevel FROM pvp_talent_unlock ORDER BY ID DESC", CONNECTION_SYNCH);
// QuestFactionReward.db2
- PrepareStatement(HOTFIX_SEL_QUEST_FACTION_REWARD, "SELECT ID, QuestRewFactionValue1, QuestRewFactionValue2, QuestRewFactionValue3, "
- "QuestRewFactionValue4, QuestRewFactionValue5, QuestRewFactionValue6, QuestRewFactionValue7, QuestRewFactionValue8, QuestRewFactionValue9, "
- "QuestRewFactionValue10 FROM quest_faction_reward ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_FACTION_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, "
+ "Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM quest_faction_reward ORDER BY ID DESC", CONNECTION_SYNCH);
// QuestMoneyReward.db2
- PrepareStatement(HOTFIX_SEL_QUEST_MONEY_REWARD, "SELECT ID, Money1, Money2, Money3, Money4, Money5, Money6, Money7, Money8, Money9, Money10"
- " FROM quest_money_reward ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_MONEY_REWARD, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, "
+ "Difficulty7, Difficulty8, Difficulty9, Difficulty10 FROM quest_money_reward ORDER BY ID DESC", CONNECTION_SYNCH);
// QuestPackageItem.db2
- PrepareStatement(HOTFIX_SEL_QUEST_PACKAGE_ITEM, "SELECT ID, ItemID, QuestPackageID, FilterType, ItemCount FROM quest_package_item ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_PACKAGE_ITEM, "SELECT ID, ItemID, PackageID, DisplayType, ItemQuantity FROM quest_package_item ORDER BY ID DESC", CONNECTION_SYNCH);
// QuestSort.db2
- PrepareStatement(HOTFIX_SEL_QUEST_SORT, "SELECT ID, SortName, SortOrder FROM quest_sort ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_SORT, "SELECT ID, SortName, UiOrderIndex FROM quest_sort ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_QUEST_SORT, "SELECT ID, SortName_lang FROM quest_sort_locale WHERE locale = ?", CONNECTION_SYNCH);
// QuestV2.db2
PrepareStatement(HOTFIX_SEL_QUEST_V2, "SELECT ID, UniqueBitFlag FROM quest_v2 ORDER BY ID DESC", CONNECTION_SYNCH);
// QuestXp.db2
- PrepareStatement(HOTFIX_SEL_QUEST_XP, "SELECT ID, Exp1, Exp2, Exp3, Exp4, Exp5, Exp6, Exp7, Exp8, Exp9, Exp10 FROM quest_xp ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_QUEST_XP, "SELECT ID, Difficulty1, Difficulty2, Difficulty3, Difficulty4, Difficulty5, Difficulty6, Difficulty7, "
+ "Difficulty8, Difficulty9, Difficulty10 FROM quest_xp ORDER BY ID DESC", CONNECTION_SYNCH);
// RandPropPoints.db2
- PrepareStatement(HOTFIX_SEL_RAND_PROP_POINTS, "SELECT ID, EpicPropertiesPoints1, EpicPropertiesPoints2, EpicPropertiesPoints3, "
- "EpicPropertiesPoints4, EpicPropertiesPoints5, RarePropertiesPoints1, RarePropertiesPoints2, RarePropertiesPoints3, RarePropertiesPoints4, "
- "RarePropertiesPoints5, UncommonPropertiesPoints1, UncommonPropertiesPoints2, UncommonPropertiesPoints3, UncommonPropertiesPoints4, "
- "UncommonPropertiesPoints5 FROM rand_prop_points ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_RAND_PROP_POINTS, "SELECT ID, Epic1, Epic2, Epic3, Epic4, Epic5, Superior1, Superior2, Superior3, Superior4, "
+ "Superior5, Good1, Good2, Good3, Good4, Good5 FROM rand_prop_points ORDER BY ID DESC", CONNECTION_SYNCH);
// RewardPack.db2
- PrepareStatement(HOTFIX_SEL_REWARD_PACK, "SELECT ID, Money, ArtifactXPMultiplier, ArtifactXPDifficulty, ArtifactCategoryID, TitleID, Unused"
- " FROM reward_pack ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_REWARD_PACK, "SELECT ID, Money, ArtifactXPMultiplier, ArtifactXPDifficulty, ArtifactXPCategoryID, CharTitleID, "
+ "TreasurePickerID FROM reward_pack ORDER BY ID DESC", CONNECTION_SYNCH);
// RewardPackXItem.db2
- PrepareStatement(HOTFIX_SEL_REWARD_PACK_X_ITEM, "SELECT ID, ItemID, Amount, RewardPackID FROM reward_pack_x_item ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_REWARD_PACK_X_ITEM, "SELECT ID, ItemID, ItemQuantity, RewardPackID FROM reward_pack_x_item ORDER BY ID DESC", CONNECTION_SYNCH);
// RulesetItemUpgrade.db2
PrepareStatement(HOTFIX_SEL_RULESET_ITEM_UPGRADE, "SELECT ID, ItemID, ItemUpgradeID FROM ruleset_item_upgrade ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -756,20 +756,20 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SANDBOX_SCALING, "SELECT ID, MinLevel, MaxLevel, Flags FROM sandbox_scaling ORDER BY ID DESC", CONNECTION_SYNCH);
// ScalingStatDistribution.db2
- PrepareStatement(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, ItemLevelCurveID, MinLevel, MaxLevel FROM scaling_stat_distribution"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, PlayerLevelToItemLevelCurveID, MinLevel, MaxLevel"
+ " FROM scaling_stat_distribution ORDER BY ID DESC", CONNECTION_SYNCH);
// Scenario.db2
- PrepareStatement(HOTFIX_SEL_SCENARIO, "SELECT ID, Name, Data, Flags, Type FROM scenario ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SCENARIO, "SELECT ID, Name, AreaTableID, Flags, Type FROM scenario ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SCENARIO, "SELECT ID, Name_lang FROM scenario_locale WHERE locale = ?", CONNECTION_SYNCH);
// ScenarioStep.db2
- PrepareStatement(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description, Name, ScenarioID, PreviousStepID, QuestRewardID, Step, Flags, CriteriaTreeID, "
- "BonusRequiredStepID FROM scenario_step ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description_lang, Name_lang FROM scenario_step_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description, Title, ScenarioID, Supersedes, RewardQuestID, OrderIndex, Flags, "
+ "Criteriatreeid, RelatedStep FROM scenario_step ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_SCENARIO_STEP, "SELECT ID, Description_lang, Title_lang FROM scenario_step_locale WHERE locale = ?", CONNECTION_SYNCH);
// SceneScript.db2
- PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT, "SELECT ID, PrevScriptId, NextScriptId FROM scene_script ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT, "SELECT ID, FirstSceneScriptID, NextSceneScriptID FROM scene_script ORDER BY ID DESC", CONNECTION_SYNCH);
// SceneScriptGlobalText.db2
PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_GLOBAL_TEXT, "SELECT ID, Name, Script FROM scene_script_global_text ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -781,13 +781,13 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SCENE_SCRIPT_TEXT, "SELECT ID, Name, Script FROM scene_script_text ORDER BY ID DESC", CONNECTION_SYNCH);
// SkillLine.db2
- PrepareStatement(HOTFIX_SEL_SKILL_LINE, "SELECT ID, DisplayName, Description, AlternateVerb, Flags, CategoryID, CanLink, IconFileDataID, "
+ PrepareStatement(HOTFIX_SEL_SKILL_LINE, "SELECT ID, DisplayName, Description, AlternateVerb, Flags, CategoryID, CanLink, SpellIconFileID, "
"ParentSkillLineID FROM skill_line ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SKILL_LINE, "SELECT ID, DisplayName_lang, Description_lang, AlternateVerb_lang FROM skill_line_locale"
" WHERE locale = ?", CONNECTION_SYNCH);
// SkillLineAbility.db2
- PrepareStatement(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, ID, SpellID, SupercedesSpell, SkillLine, TrivialSkillLineRankHigh, "
+ PrepareStatement(HOTFIX_SEL_SKILL_LINE_ABILITY, "SELECT RaceMask, ID, Spell, SupercedesSpell, SkillLine, TrivialSkillLineRankHigh, "
"TrivialSkillLineRankLow, UniqueBit, TradeSkillCategoryID, NumSkillUps, ClassMask, MinSkillLineRank, AcquireMethod, Flags"
" FROM skill_line_ability ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -797,11 +797,11 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// SoundKit.db2
PrepareStatement(HOTFIX_SEL_SOUND_KIT, "SELECT ID, VolumeFloat, MinDistance, DistanceCutoff, Flags, SoundEntriesAdvancedID, SoundType, "
- "DialogType, EAXDef, VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, PitchAdjust, BusOverwriteID, Unk700"
- " FROM sound_kit ORDER BY ID DESC", CONNECTION_SYNCH);
+ "DialogType, EAXDef, VolumeVariationPlus, VolumeVariationMinus, PitchVariationPlus, PitchVariationMinus, PitchAdjust, BusOverwriteID, "
+ "MaxInstances FROM sound_kit ORDER BY ID DESC", CONNECTION_SYNCH);
// SpecializationSpells.db2
- PrepareStatement(HOTFIX_SEL_SPECIALIZATION_SPELLS, "SELECT Description, SpellID, OverridesSpellID, SpecID, OrderIndex, ID"
+ PrepareStatement(HOTFIX_SEL_SPECIALIZATION_SPELLS, "SELECT Description, SpellID, OverridesSpellID, SpecID, DisplayOrder, ID"
" FROM specialization_spells ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPECIALIZATION_SPELLS, "SELECT ID, Description_lang FROM specialization_spells_locale WHERE locale = ?", CONNECTION_SYNCH);
@@ -820,7 +820,7 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" FROM spell_aura_restrictions ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellCastTimes.db2
- PrepareStatement(HOTFIX_SEL_SPELL_CAST_TIMES, "SELECT ID, CastTime, MinCastTime, CastTimePerLevel FROM spell_cast_times ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_CAST_TIMES, "SELECT ID, Base, Minimum, PerLevel FROM spell_cast_times ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellCastingRequirements.db2
PrepareStatement(HOTFIX_SEL_SPELL_CASTING_REQUIREMENTS, "SELECT ID, SpellID, MinFactionID, RequiredAreasID, RequiresSpellFocus, "
@@ -831,8 +831,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
"Mechanic, PreventionType, SpellID FROM spell_categories ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellCategory.db2
- PrepareStatement(HOTFIX_SEL_SPELL_CATEGORY, "SELECT ID, Name, ChargeRecoveryTime, Flags, UsesPerWeek, MaxCharges, ChargeCategoryType"
- " FROM spell_category ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_CATEGORY, "SELECT ID, Name, ChargeRecoveryTime, Flags, UsesPerWeek, MaxCharges, TypeMask FROM spell_category"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_CATEGORY, "SELECT ID, Name_lang FROM spell_category_locale WHERE locale = ?", CONNECTION_SYNCH);
// SpellClassOptions.db2
@@ -850,13 +850,13 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SPELL_EFFECT, "SELECT ID, Effect, EffectBasePoints, EffectIndex, EffectAura, DifficultyID, EffectAmplitude, "
"EffectAuraPeriod, EffectBonusCoefficient, EffectChainAmplitude, EffectChainTargets, EffectDieSides, EffectItemType, EffectMechanic, "
"EffectPointsPerResource, EffectRealPointsPerLevel, EffectTriggerSpell, EffectPosFacing, EffectAttributes, BonusCoefficientFromAP, "
- "PvPMultiplier, Coefficient, Variance, ResourceCoefficient, GroupSizeCoefficient, EffectSpellClassMask1, EffectSpellClassMask2, "
- "EffectSpellClassMask3, EffectSpellClassMask4, EffectMiscValue, EffectMiscValueB, EffectRadiusIndex, EffectRadiusMaxIndex, ImplicitTarget1, "
+ "PvpMultiplier, Coefficient, Variance, ResourceCoefficient, GroupSizeBasePointsCoefficient, EffectSpellClassMask1, EffectSpellClassMask2, "
+ "EffectSpellClassMask3, EffectSpellClassMask4, EffectMiscValue1, EffectMiscValue2, EffectRadiusIndex1, EffectRadiusIndex2, ImplicitTarget1, "
"ImplicitTarget2, SpellID FROM spell_effect ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellEquippedItems.db2
- PrepareStatement(HOTFIX_SEL_SPELL_EQUIPPED_ITEMS, "SELECT ID, SpellID, EquippedItemInventoryTypeMask, EquippedItemSubClassMask, "
- "EquippedItemClass FROM spell_equipped_items ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_EQUIPPED_ITEMS, "SELECT ID, SpellID, EquippedItemInvTypes, EquippedItemSubclass, EquippedItemClass"
+ " FROM spell_equipped_items ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellFocusObject.db2
PrepareStatement(HOTFIX_SEL_SPELL_FOCUS_OBJECT, "SELECT ID, Name FROM spell_focus_object ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -867,38 +867,36 @@ void HotfixDatabaseConnection::DoPrepareStatements()
"ChannelInterruptFlags1, ChannelInterruptFlags2, SpellID FROM spell_interrupts ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellItemEnchantment.db2
- PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, EffectSpellID1, EffectSpellID2, EffectSpellID3, EffectScalingPoints1, "
- "EffectScalingPoints2, EffectScalingPoints3, TransmogCost, TextureFileDataID, EffectPointsMin1, EffectPointsMin2, EffectPointsMin3, "
- "ItemVisual, Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, Charges, Effect1, Effect2, Effect3, ConditionID, MinLevel, MaxLevel, "
- "ScalingClass, ScalingClassRestricted, PlayerConditionID FROM spell_item_enchantment ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name, EffectArg1, EffectArg2, EffectArg3, EffectScalingPoints1, "
+ "EffectScalingPoints2, EffectScalingPoints3, TransmogCost, IconFileDataID, EffectPointsMin1, EffectPointsMin2, EffectPointsMin3, ItemVisual, "
+ "Flags, RequiredSkillID, RequiredSkillRank, ItemLevel, Charges, Effect1, Effect2, Effect3, ConditionID, MinLevel, MaxLevel, ScalingClass, "
+ "ScalingClassRestricted, TransmogPlayerConditionID FROM spell_item_enchantment ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT, "SELECT ID, Name_lang FROM spell_item_enchantment_locale WHERE locale = ?", CONNECTION_SYNCH);
// SpellItemEnchantmentCondition.db2
- PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT_CONDITION, "SELECT ID, LTOperand1, LTOperand2, LTOperand3, LTOperand4, LTOperand5, "
- "LTOperandType1, LTOperandType2, LTOperandType3, LTOperandType4, LTOperandType5, Operator1, Operator2, Operator3, Operator4, Operator5, "
- "RTOperandType1, RTOperandType2, RTOperandType3, RTOperandType4, RTOperandType5, RTOperand1, RTOperand2, RTOperand3, RTOperand4, RTOperand5, "
+ PrepareStatement(HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT_CONDITION, "SELECT ID, LtOperand1, LtOperand2, LtOperand3, LtOperand4, LtOperand5, "
+ "LtOperandType1, LtOperandType2, LtOperandType3, LtOperandType4, LtOperandType5, Operator1, Operator2, Operator3, Operator4, Operator5, "
+ "RtOperandType1, RtOperandType2, RtOperandType3, RtOperandType4, RtOperandType5, RtOperand1, RtOperand2, RtOperand3, RtOperand4, RtOperand5, "
"Logic1, Logic2, Logic3, Logic4, Logic5 FROM spell_item_enchantment_condition ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellLearnSpell.db2
- PrepareStatement(HOTFIX_SEL_SPELL_LEARN_SPELL, "SELECT ID, LearnSpellID, SpellID, OverridesSpellID FROM spell_learn_spell ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_LEARN_SPELL, "SELECT ID, SpellID, LearnSpellID, OverridesSpellID FROM spell_learn_spell ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellLevels.db2
- PrepareStatement(HOTFIX_SEL_SPELL_LEVELS, "SELECT ID, BaseLevel, MaxLevel, SpellLevel, DifficultyID, MaxUsableLevel, SpellID FROM spell_levels"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_LEVELS, "SELECT ID, BaseLevel, MaxLevel, SpellLevel, DifficultyID, MaxPassiveAuraLevel, SpellID"
+ " FROM spell_levels ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellMisc.db2
- PrepareStatement(HOTFIX_SEL_SPELL_MISC, "SELECT ID, CastingTimeIndex, DurationIndex, RangeIndex, SchoolMask, IconFileDataID, Speed, "
- "ActiveIconFileDataID, MultistrikeSpeedMod, DifficultyID, Attributes, AttributesEx, AttributesExB, AttributesExC, AttributesExD, "
- "AttributesExE, AttributesExF, AttributesExG, AttributesExH, AttributesExI, AttributesExJ, AttributesExK, AttributesExL, AttributesExM, "
- "SpellID FROM spell_misc ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_MISC, "SELECT ID, CastingTimeIndex, DurationIndex, RangeIndex, SchoolMask, SpellIconFileDataID, Speed, "
+ "ActiveIconFileDataID, LaunchDelay, DifficultyID, Attributes1, Attributes2, Attributes3, Attributes4, Attributes5, Attributes6, Attributes7, "
+ "Attributes8, Attributes9, Attributes10, Attributes11, Attributes12, Attributes13, Attributes14, SpellID FROM spell_misc ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellPower.db2
- PrepareStatement(HOTFIX_SEL_SPELL_POWER, "SELECT ManaCost, ManaCostPercentage, ManaCostPercentagePerSecond, RequiredAura, HealthCostPercentage, "
- "PowerIndex, PowerType, ID, ManaCostPerLevel, ManaCostPerSecond, ManaCostAdditional, PowerDisplayID, UnitPowerBarID, SpellID FROM spell_power"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_POWER, "SELECT ManaCost, PowerCostPct, PowerPctPerSecond, RequiredAuraSpellID, PowerCostMaxPct, OrderIndex, "
+ "PowerType, ID, ManaCostPerLevel, ManaPerSecond, OptionalCost, PowerDisplayID, AltPowerBarID, SpellID FROM spell_power ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellPowerDifficulty.db2
- PrepareStatement(HOTFIX_SEL_SPELL_POWER_DIFFICULTY, "SELECT DifficultyID, PowerIndex, ID FROM spell_power_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_POWER_DIFFICULTY, "SELECT DifficultyID, OrderIndex, ID FROM spell_power_difficulty ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellProcsPerMinute.db2
PrepareStatement(HOTFIX_SEL_SPELL_PROCS_PER_MINUTE, "SELECT ID, BaseProcRate, Flags FROM spell_procs_per_minute ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -911,8 +909,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PrepareStatement(HOTFIX_SEL_SPELL_RADIUS, "SELECT ID, Radius, RadiusPerLevel, RadiusMin, RadiusMax FROM spell_radius ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellRange.db2
- PrepareStatement(HOTFIX_SEL_SPELL_RANGE, "SELECT ID, DisplayName, DisplayNameShort, MinRangeHostile, MinRangeFriend, MaxRangeHostile, "
- "MaxRangeFriend, Flags FROM spell_range ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_RANGE, "SELECT ID, DisplayName, DisplayNameShort, RangeMin1, RangeMin2, RangeMax1, RangeMax2, Flags"
+ " FROM spell_range ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_RANGE, "SELECT ID, DisplayName_lang, DisplayNameShort_lang FROM spell_range_locale WHERE locale = ?", CONNECTION_SYNCH);
// SpellReagents.db2
@@ -921,35 +919,35 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellScaling.db2
- PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, ScalesFromItemLevel, ScalingClass, MinScalingLevel, MaxScalingLevel"
- " FROM spell_scaling ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_SCALING, "SELECT ID, SpellID, ScalesFromItemLevel, Class, MinScalingLevel, MaxScalingLevel FROM spell_scaling"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellShapeshift.db2
PrepareStatement(HOTFIX_SEL_SPELL_SHAPESHIFT, "SELECT ID, SpellID, ShapeshiftExclude1, ShapeshiftExclude2, ShapeshiftMask1, ShapeshiftMask2, "
"StanceBarOrder FROM spell_shapeshift ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellShapeshiftForm.db2
- PrepareStatement(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, WeaponDamageVariance, Flags, CombatRoundTime, MountTypeID, CreatureType, "
- "BonusActionBar, AttackIconFileDataID, CreatureDisplayID1, CreatureDisplayID2, CreatureDisplayID3, CreatureDisplayID4, PresetSpellID1, "
+ PrepareStatement(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name, DamageVariance, Flags, CombatRoundTime, MountTypeID, CreatureType, "
+ "BonusActionBar, AttackIconFileID, CreatureDisplayID1, CreatureDisplayID2, CreatureDisplayID3, CreatureDisplayID4, PresetSpellID1, "
"PresetSpellID2, PresetSpellID3, PresetSpellID4, PresetSpellID5, PresetSpellID6, PresetSpellID7, PresetSpellID8 FROM spell_shapeshift_form"
" ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_SPELL_SHAPESHIFT_FORM, "SELECT ID, Name_lang FROM spell_shapeshift_form_locale WHERE locale = ?", CONNECTION_SYNCH);
// SpellTargetRestrictions.db2
- PrepareStatement(HOTFIX_SEL_SPELL_TARGET_RESTRICTIONS, "SELECT ID, ConeAngle, Width, Targets, TargetCreatureType, DifficultyID, "
- "MaxAffectedTargets, MaxTargetLevel, SpellID FROM spell_target_restrictions ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_TARGET_RESTRICTIONS, "SELECT ID, ConeDegrees, Width, Targets, TargetCreatureType, DifficultyID, MaxTargets, "
+ "MaxTargetLevel, SpellID FROM spell_target_restrictions ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellTotems.db2
PrepareStatement(HOTFIX_SEL_SPELL_TOTEMS, "SELECT ID, SpellID, Totem1, Totem2, RequiredTotemCategoryID1, RequiredTotemCategoryID2"
" FROM spell_totems ORDER BY ID DESC", CONNECTION_SYNCH);
// SpellXSpellVisual.db2
- PrepareStatement(HOTFIX_SEL_SPELL_X_SPELL_VISUAL, "SELECT SpellVisualID, ID, Chance, CasterPlayerConditionID, CasterUnitConditionID, "
- "PlayerConditionID, UnitConditionID, IconFileDataID, ActiveIconFileDataID, Flags, DifficultyID, Priority, SpellID FROM spell_x_spell_visual"
- " ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SPELL_X_SPELL_VISUAL, "SELECT SpellVisualID, ID, Probability, CasterPlayerConditionID, CasterUnitConditionID, "
+ "ViewerPlayerConditionID, ViewerUnitConditionID, SpellIconFileID, ActiveIconFileID, Flags, DifficultyID, Priority, SpellID"
+ " FROM spell_x_spell_visual ORDER BY ID DESC", CONNECTION_SYNCH);
// SummonProperties.db2
- PrepareStatement(HOTFIX_SEL_SUMMON_PROPERTIES, "SELECT ID, Flags, Category, Faction, Type, Slot FROM summon_properties ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_SUMMON_PROPERTIES, "SELECT ID, Flags, Control, Faction, Title, Slot FROM summon_properties ORDER BY ID DESC", CONNECTION_SYNCH);
// TactKey.db2
PrepareStatement(HOTFIX_SEL_TACT_KEY, "SELECT ID, Key1, Key2, Key3, Key4, Key5, Key6, Key7, Key8, Key9, Key10, Key11, Key12, Key13, Key14, Key15, "
@@ -961,37 +959,37 @@ void HotfixDatabaseConnection::DoPrepareStatements()
PREPARE_LOCALE_STMT(HOTFIX_SEL_TALENT, "SELECT ID, Description_lang FROM talent_locale WHERE locale = ?", CONNECTION_SYNCH);
// TaxiNodes.db2
- PrepareStatement(HOTFIX_SEL_TAXI_NODES, "SELECT ID, Name, PosX, PosY, PosZ, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, Unk730, "
- "FlightMapOffsetX, FlightMapOffsetY, MapID, ConditionID, LearnableIndex, Flags, UiTextureKitPrefixID, SpecialAtlasIconPlayerConditionID"
+ PrepareStatement(HOTFIX_SEL_TAXI_NODES, "SELECT ID, Name, PosX, PosY, PosZ, MountCreatureID1, MountCreatureID2, MapOffsetX, MapOffsetY, Facing, "
+ "FlightMapOffsetX, FlightMapOffsetY, ContinentID, ConditionID, CharacterBitNumber, Flags, UiTextureKitID, SpecialIconConditionID"
" FROM taxi_nodes ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TAXI_NODES, "SELECT ID, Name_lang FROM taxi_nodes_locale WHERE locale = ?", CONNECTION_SYNCH);
// TaxiPath.db2
- PrepareStatement(HOTFIX_SEL_TAXI_PATH, "SELECT `From`, `To`, ID, Cost FROM taxi_path ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TAXI_PATH, "SELECT FromTaxiNode, ToTaxiNode, ID, Cost FROM taxi_path ORDER BY ID DESC", CONNECTION_SYNCH);
// TaxiPathNode.db2
- PrepareStatement(HOTFIX_SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, PathID, MapID, NodeIndex, ID, Flags, Delay, ArrivalEventID, "
+ PrepareStatement(HOTFIX_SEL_TAXI_PATH_NODE, "SELECT LocX, LocY, LocZ, PathID, ContinentID, NodeIndex, ID, Flags, Delay, ArrivalEventID, "
"DepartureEventID FROM taxi_path_node ORDER BY ID DESC", CONNECTION_SYNCH);
// TotemCategory.db2
- PrepareStatement(HOTFIX_SEL_TOTEM_CATEGORY, "SELECT ID, Name, CategoryMask, CategoryType FROM totem_category ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TOTEM_CATEGORY, "SELECT ID, Name, TotemCategoryMask, TotemCategoryType FROM totem_category ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TOTEM_CATEGORY, "SELECT ID, Name_lang FROM totem_category_locale WHERE locale = ?", CONNECTION_SYNCH);
// Toy.db2
- PrepareStatement(HOTFIX_SEL_TOY, "SELECT Description, ItemID, Flags, CategoryFilter, ID FROM toy ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_TOY, "SELECT ID, Description_lang FROM toy_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TOY, "SELECT SourceText, ItemID, Flags, SourceTypeEnum, ID FROM toy ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_TOY, "SELECT ID, SourceText_lang FROM toy_locale WHERE locale = ?", CONNECTION_SYNCH);
// TransmogHoliday.db2
- PrepareStatement(HOTFIX_SEL_TRANSMOG_HOLIDAY, "SELECT ID, HolidayID FROM transmog_holiday ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TRANSMOG_HOLIDAY, "SELECT ID, RequiredTransmogHoliday FROM transmog_holiday ORDER BY ID DESC", CONNECTION_SYNCH);
// TransmogSet.db2
- PrepareStatement(HOTFIX_SEL_TRANSMOG_SET, "SELECT Name, BaseSetID, UIOrder, ExpansionID, ID, Flags, QuestID, ClassMask, ItemNameDescriptionID, "
- "TransmogSetGroupID FROM transmog_set ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TRANSMOG_SET, "SELECT Name, ParentTransmogSetID, UiOrder, ExpansionID, ID, Flags, TrackingQuestID, ClassMask, "
+ "ItemNameDescriptionID, TransmogSetGroupID FROM transmog_set ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_TRANSMOG_SET, "SELECT ID, Name_lang FROM transmog_set_locale WHERE locale = ?", CONNECTION_SYNCH);
// TransmogSetGroup.db2
- PrepareStatement(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT Label, ID FROM transmog_set_group ORDER BY ID DESC", CONNECTION_SYNCH);
- PREPARE_LOCALE_STMT(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT ID, Label_lang FROM transmog_set_group_locale WHERE locale = ?", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT Name, ID FROM transmog_set_group ORDER BY ID DESC", CONNECTION_SYNCH);
+ PREPARE_LOCALE_STMT(HOTFIX_SEL_TRANSMOG_SET_GROUP, "SELECT ID, Name_lang FROM transmog_set_group_locale WHERE locale = ?", CONNECTION_SYNCH);
// TransmogSetItem.db2
PrepareStatement(HOTFIX_SEL_TRANSMOG_SET_ITEM, "SELECT ID, TransmogSetID, ItemModifiedAppearanceID, Flags FROM transmog_set_item ORDER BY ID DESC", CONNECTION_SYNCH);
@@ -1001,7 +999,8 @@ void HotfixDatabaseConnection::DoPrepareStatements()
" ORDER BY ID DESC", CONNECTION_SYNCH);
// TransportRotation.db2
- PrepareStatement(HOTFIX_SEL_TRANSPORT_ROTATION, "SELECT ID, TimeIndex, X, Y, Z, W, TransportID FROM transport_rotation ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_TRANSPORT_ROTATION, "SELECT ID, TimeIndex, Rot1, Rot2, Rot3, Rot4, GameObjectsID FROM transport_rotation"
+ " ORDER BY ID DESC", CONNECTION_SYNCH);
// UnitPowerBar.db2
PrepareStatement(HOTFIX_SEL_UNIT_POWER_BAR, "SELECT ID, Name, Cost, OutOfError, ToolTip, RegenerationPeace, RegenerationCombat, FileDataID1, "
@@ -1013,24 +1012,24 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// Vehicle.db2
PrepareStatement(HOTFIX_SEL_VEHICLE, "SELECT ID, Flags, TurnSpeed, PitchSpeed, PitchMin, PitchMax, MouseLookOffsetPitch, CameraFadeDistScalarMin, "
"CameraFadeDistScalarMax, CameraPitchOffset, FacingLimitRight, FacingLimitLeft, CameraYawOffset, SeatID1, SeatID2, SeatID3, SeatID4, SeatID5, "
- "SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, PowerDisplayID2, PowerDisplayID3, FlagsB, UILocomotionType, "
+ "SeatID6, SeatID7, SeatID8, VehicleUIIndicatorID, PowerDisplayID1, PowerDisplayID2, PowerDisplayID3, FlagsB, UiLocomotionType, "
"MissileTargetingID FROM vehicle ORDER BY ID DESC", CONNECTION_SYNCH);
// VehicleSeat.db2
- PrepareStatement(HOTFIX_SEL_VEHICLE_SEAT, "SELECT ID, Flags1, Flags2, Flags3, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, "
+ PrepareStatement(HOTFIX_SEL_VEHICLE_SEAT, "SELECT ID, Flags, FlagsB, FlagsC, AttachmentOffsetX, AttachmentOffsetY, AttachmentOffsetZ, "
"EnterPreDelay, EnterSpeed, EnterGravity, EnterMinDuration, EnterMaxDuration, EnterMinArcHeight, EnterMaxArcHeight, ExitPreDelay, ExitSpeed, "
"ExitGravity, ExitMinDuration, ExitMaxDuration, ExitMinArcHeight, ExitMaxArcHeight, PassengerYaw, PassengerPitch, PassengerRoll, "
"VehicleEnterAnimDelay, VehicleExitAnimDelay, CameraEnteringDelay, CameraEnteringDuration, CameraExitingDelay, CameraExitingDuration, "
"CameraOffsetX, CameraOffsetY, CameraOffsetZ, CameraPosChaseRate, CameraFacingChaseRate, CameraEnteringZoom, CameraSeatZoomMin, "
- "CameraSeatZoomMax, UISkinFileDataID, EnterAnimStart, EnterAnimLoop, RideAnimStart, RideAnimLoop, RideUpperAnimStart, RideUpperAnimLoop, "
+ "CameraSeatZoomMax, UiSkinFileDataID, EnterAnimStart, EnterAnimLoop, RideAnimStart, RideAnimLoop, RideUpperAnimStart, RideUpperAnimLoop, "
"ExitAnimStart, ExitAnimLoop, ExitAnimEnd, VehicleEnterAnim, VehicleExitAnim, VehicleRideAnimLoop, EnterAnimKitID, RideAnimKitID, "
"ExitAnimKitID, VehicleEnterAnimKitID, VehicleRideAnimKitID, VehicleExitAnimKitID, CameraModeID, AttachmentID, PassengerAttachmentID, "
"VehicleEnterAnimBone, VehicleExitAnimBone, VehicleRideAnimLoopBone, VehicleAbilityDisplay, EnterUISoundID, ExitUISoundID FROM vehicle_seat"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// WmoAreaTable.db2
- PrepareStatement(HOTFIX_SEL_WMO_AREA_TABLE, "SELECT AreaName, WMOGroupID, AmbienceID, ZoneMusic, IntroSound, AreaTableID, UWIntroSound, "
- "UWAmbience, NameSet, SoundProviderPref, SoundProviderPrefUnderwater, Flags, ID, UWZoneMusic, WMOID FROM wmo_area_table ORDER BY ID DESC", CONNECTION_SYNCH);
+ PrepareStatement(HOTFIX_SEL_WMO_AREA_TABLE, "SELECT AreaName, WmoGroupID, AmbienceID, ZoneMusic, IntroSound, AreaTableID, UwIntroSound, "
+ "UwAmbience, NameSetID, SoundProviderPref, SoundProviderPrefUnderwater, Flags, ID, UwZoneMusic, WmoID FROM wmo_area_table ORDER BY ID DESC", CONNECTION_SYNCH);
PREPARE_LOCALE_STMT(HOTFIX_SEL_WMO_AREA_TABLE, "SELECT ID, AreaName_lang FROM wmo_area_table_locale WHERE locale = ?", CONNECTION_SYNCH);
// WorldEffect.db2
@@ -1039,12 +1038,12 @@ void HotfixDatabaseConnection::DoPrepareStatements()
// WorldMapArea.db2
PrepareStatement(HOTFIX_SEL_WORLD_MAP_AREA, "SELECT AreaName, LocLeft, LocRight, LocTop, LocBottom, Flags, MapID, AreaID, DisplayMapID, "
- "DefaultDungeonFloor, ParentWorldMapID, LevelRangeMin, LevelRangeMax, BountySetID, BountyBoardLocation, ID, PlayerConditionID"
+ "DefaultDungeonFloor, ParentWorldMapID, LevelRangeMin, LevelRangeMax, BountySetID, BountyDisplayLocation, ID, VisibilityPlayerConditionID"
" FROM world_map_area ORDER BY ID DESC", CONNECTION_SYNCH);
// WorldMapOverlay.db2
- PrepareStatement(HOTFIX_SEL_WORLD_MAP_OVERLAY, "SELECT TextureName, ID, TextureWidth, TextureHeight, MapAreaID, AreaID1, AreaID2, AreaID3, "
- "AreaID4, OffsetX, OffsetY, HitRectTop, HitRectLeft, HitRectBottom, HitRectRight, PlayerConditionID, Flags FROM world_map_overlay"
+ PrepareStatement(HOTFIX_SEL_WORLD_MAP_OVERLAY, "SELECT TextureName, ID, TextureWidth, TextureHeight, MapAreaID, OffsetX, OffsetY, HitRectTop, "
+ "HitRectLeft, HitRectBottom, HitRectRight, PlayerConditionID, Flags, AreaID1, AreaID2, AreaID3, AreaID4 FROM world_map_overlay"
" ORDER BY ID DESC", CONNECTION_SYNCH);
// WorldMapTransforms.db2
diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h
index f3711b2ded6..6ffb860931a 100644
--- a/src/server/database/Database/Implementation/HotfixDatabase.h
+++ b/src/server/database/Database/Implementation/HotfixDatabase.h
@@ -161,7 +161,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_EMOTES,
HOTFIX_SEL_EMOTES_TEXT,
- HOTFIX_SEL_EMOTES_TEXT_LOCALE,
HOTFIX_SEL_EMOTES_TEXT_SOUND,
@@ -170,11 +169,11 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_FACTION_TEMPLATE,
+ HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO,
+
HOTFIX_SEL_GAMEOBJECTS,
HOTFIX_SEL_GAMEOBJECTS_LOCALE,
- HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO,
-
HOTFIX_SEL_GARR_ABILITY,
HOTFIX_SEL_GARR_ABILITY_LOCALE,
@@ -197,7 +196,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_GARR_PLOT_BUILDING,
HOTFIX_SEL_GARR_PLOT_INSTANCE,
- HOTFIX_SEL_GARR_PLOT_INSTANCE_LOCALE,
HOTFIX_SEL_GARR_SITE_LEVEL,
@@ -320,7 +318,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_LIGHT,
HOTFIX_SEL_LIQUID_TYPE,
- HOTFIX_SEL_LIQUID_TYPE_LOCALE,
HOTFIX_SEL_LOCK,
@@ -347,7 +344,6 @@ enum HotfixDatabaseStatements : uint32
HOTFIX_SEL_MOVIE,
HOTFIX_SEL_NAME_GEN,
- HOTFIX_SEL_NAME_GEN_LOCALE,
HOTFIX_SEL_NAMES_PROFANITY,
diff --git a/src/server/game/Achievements/AchievementMgr.cpp b/src/server/game/Achievements/AchievementMgr.cpp
index facf598d5fc..837f06125e2 100644
--- a/src/server/game/Achievements/AchievementMgr.cpp
+++ b/src/server/game/Achievements/AchievementMgr.cpp
@@ -83,7 +83,7 @@ bool AchievementMgr::CanUpdateCriteriaTree(Criteria const* criteria, CriteriaTre
return false;
}
- if (achievement->MapID != -1 && referencePlayer->GetMapId() != uint32(achievement->MapID))
+ if (achievement->InstanceID != -1 && referencePlayer->GetMapId() != uint32(achievement->InstanceID))
{
TC_LOG_TRACE("criteria.achievement", "AchievementMgr::CanUpdateCriteriaTree: (Id: %u Type %s Achievement %u) Wrong map",
criteria->ID, CriteriaMgr::GetCriteriaTypeString(criteria->Entry->Type), achievement->ID);
@@ -171,7 +171,7 @@ bool AchievementMgr::IsCompletedAchievement(AchievementEntry const* entry)
// Oddly, the target count is NOT contained in the achievement, but in each individual criteria
if (entry->Flags & ACHIEVEMENT_FLAG_SUMM)
{
- uint64 progress = 0;
+ int64 progress = 0;
CriteriaMgr::WalkCriteriaTree(tree, [this, &progress](CriteriaTree const* criteriaTree)
{
if (criteriaTree->Criteria)
@@ -352,7 +352,7 @@ void PlayerAchievementMgr::ResetCriteria(CriteriaTypes type, uint64 miscValue1,
CriteriaList const& achievementCriteriaList = GetCriteriaByType(type);
for (Criteria const* achievementCriteria : achievementCriteriaList)
{
- if (achievementCriteria->Entry->FailEvent != miscValue1 || (achievementCriteria->Entry->FailAsset && achievementCriteria->Entry->FailAsset != miscValue2))
+ if (achievementCriteria->Entry->FailEvent != miscValue1 || (achievementCriteria->Entry->FailAsset && achievementCriteria->Entry->FailAsset != int64(miscValue2)))
continue;
std::vector<CriteriaTree const*> const* trees = sCriteriaMgr->GetCriteriaTreesByCriteria(achievementCriteria->ID);
@@ -1059,7 +1059,7 @@ void AchievementGlobalMgr::LoadAchievementReferenceList()
// Correct map requirement (currently has Ulduar); 6.0.3 note - it STILL has ulduar requirement
hotfixes.ApplyHotfix(4539, [](AchievementEntry* achievement)
{
- achievement->MapID = 631;
+ achievement->InstanceID = 631;
});
TC_LOG_INFO("server.loading", ">> Loaded %u achievement references in %u ms.", count, GetMSTimeDiffToNow(oldMSTime));
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 1fd9545e409..81d91eb5703 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -638,7 +638,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellIter->first);
for (SkillLineAbilityMap::const_iterator skillIter = bounds.first; skillIter != bounds.second; ++skillIter)
{
- if (skillIter->second->SkillLine == criteria->Entry->Asset.SkillID)
+ if (skillIter->second->SkillLine == int32(criteria->Entry->Asset.SkillID))
spellCount++;
}
}
@@ -831,7 +831,7 @@ void CriteriaHandler::StartCriteriaTimer(CriteriaTimedTypes type, uint32 entry,
CriteriaList const& criteriaList = sCriteriaMgr->GetTimedCriteriaByType(type);
for (Criteria const* criteria : criteriaList)
{
- if (criteria->Entry->StartAsset != entry)
+ if (criteria->Entry->StartAsset != int32(entry))
continue;
CriteriaTreeList const* trees = sCriteriaMgr->GetCriteriaTreesByCriteria(criteria->ID);
@@ -862,7 +862,7 @@ void CriteriaHandler::RemoveCriteriaTimer(CriteriaTimedTypes type, uint32 entry)
CriteriaList const& criteriaList = sCriteriaMgr->GetTimedCriteriaByType(type);
for (Criteria const* criteria : criteriaList)
{
- if (criteria->Entry->StartAsset != entry)
+ if (criteria->Entry->StartAsset != int32(entry))
continue;
CriteriaTreeList const* trees = sCriteriaMgr->GetCriteriaTreesByCriteria(criteria->ID);
@@ -1570,7 +1570,7 @@ bool CriteriaHandler::AdditionalRequirementsSatisfied(ModifierTreeNode const* tr
if (!reqType)
return true;
- uint32 reqValue = tree->Entry->Asset[0];
+ uint32 reqValue = tree->Entry->Asset;
switch (CriteriaAdditionalCondition(reqType))
{
@@ -2249,8 +2249,8 @@ void CriteriaMgr::LoadCriteriaList()
std::unordered_map<uint32 /*criteriaTreeID*/, ScenarioStepEntry const*> scenarioCriteriaTreeIds;
for (ScenarioStepEntry const* scenarioStep : sScenarioStepStore)
- if (scenarioStep->CriteriaTreeID)
- scenarioCriteriaTreeIds[scenarioStep->CriteriaTreeID] = scenarioStep;
+ if (scenarioStep->Criteriatreeid)
+ scenarioCriteriaTreeIds[scenarioStep->Criteriatreeid] = scenarioStep;
std::unordered_map<uint32 /*criteriaTreeID*/, QuestObjective const*> questObjectiveCriteriaTreeIds;
for (std::pair<uint32 /*questID*/, Quest const*> itr : sObjectMgr->GetQuestTemplates())
diff --git a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
index e7ae717bbe2..cc0f56a3ce4 100644
--- a/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
+++ b/src/server/game/AuctionHouse/AuctionHouseMgr.cpp
@@ -65,9 +65,9 @@ AuctionHouseObject* AuctionHouseMgr::GetAuctionsMap(uint32 factionTemplateId)
FactionTemplateEntry const* uEntry = sFactionTemplateStore.LookupEntry(factionTemplateId);
if (!uEntry)
return &mNeutralAuctions;
- else if (uEntry->Mask & FACTION_MASK_ALLIANCE)
+ else if (uEntry->FactionGroup & FACTION_MASK_ALLIANCE)
return &mAllianceAuctions;
- else if (uEntry->Mask & FACTION_MASK_HORDE)
+ else if (uEntry->FactionGroup & FACTION_MASK_HORDE)
return &mHordeAuctions;
else
return &mNeutralAuctions;
@@ -544,9 +544,9 @@ AuctionHouseEntry const* AuctionHouseMgr::GetAuctionHouseEntry(uint32 factionTem
FactionTemplateEntry const* u_entry = sFactionTemplateStore.LookupEntry(factionTemplateId);
if (!u_entry)
houseid = 7; // goblin auction house
- else if (u_entry->Mask & FACTION_MASK_ALLIANCE)
+ else if (u_entry->FactionGroup & FACTION_MASK_ALLIANCE)
houseid = 1; // human auction house
- else if (u_entry->Mask & FACTION_MASK_HORDE)
+ else if (u_entry->FactionGroup & FACTION_MASK_HORDE)
houseid = 6; // orc auction house
else
houseid = 7; // goblin auction house
diff --git a/src/server/game/BattlePets/BattlePetMgr.cpp b/src/server/game/BattlePets/BattlePetMgr.cpp
index 0c10e339e87..2c96b93e7fe 100644
--- a/src/server/game/BattlePets/BattlePetMgr.cpp
+++ b/src/server/game/BattlePets/BattlePetMgr.cpp
@@ -52,13 +52,13 @@ void BattlePetMgr::BattlePet::CalculateStats()
}
// modify stats by quality
- for (auto itr : sBattlePetBreedQualityStore)
+ for (BattlePetBreedQualityEntry const* battlePetBreedQuality : sBattlePetBreedQualityStore)
{
- if (itr->Quality == PacketInfo.Quality)
+ if (battlePetBreedQuality->QualityEnum == PacketInfo.Quality)
{
- health *= itr->Modifier;
- power *= itr->Modifier;
- speed *= itr->Modifier;
+ health *= battlePetBreedQuality->StateMultiplier;
+ power *= battlePetBreedQuality->StateMultiplier;
+ speed *= battlePetBreedQuality->StateMultiplier;
break;
}
// TOOD: add check if pet has existing quality
@@ -86,11 +86,11 @@ void BattlePetMgr::Initialize()
if (QueryResult result = LoginDatabase.Query("SELECT MAX(guid) FROM battle_pets"))
sObjectMgr->GetGenerator<HighGuid::BattlePet>().Set((*result)[0].GetUInt64() + 1);
- for (auto itr : sBattlePetBreedStateStore)
- _battlePetBreedStates[itr->BreedID][BattlePetState(itr->State)] = itr->Value;
+ for (BattlePetBreedStateEntry const* battlePetBreedState : sBattlePetBreedStateStore)
+ _battlePetBreedStates[battlePetBreedState->BattlePetBreedID][BattlePetState(battlePetBreedState->BattlePetStateID)] = battlePetBreedState->Value;
- for (auto itr : sBattlePetSpeciesStateStore)
- _battlePetSpeciesStates[itr->SpeciesID][BattlePetState(itr->State)] = itr->Value;
+ for (BattlePetSpeciesStateEntry const* battlePetSpeciesState : sBattlePetSpeciesStateStore)
+ _battlePetSpeciesStates[battlePetSpeciesState->BattlePetSpeciesID][BattlePetState(battlePetSpeciesState->BattlePetStateID)] = battlePetSpeciesState->Value;
LoadAvailablePetBreeds();
LoadDefaultPetQualities();
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index b75f2709eb6..a2a97faa783 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -2502,10 +2502,10 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
{
if (ChrSpecializationEntry const* spec = sChrSpecializationStore.LookupEntry(player->GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID)))
{
- if (condition->ChrSpecializationIndex >= 0 && spec->OrderIndex != uint32(condition->ChrSpecializationIndex))
+ if (condition->ChrSpecializationIndex >= 0 && spec->OrderIndex != condition->ChrSpecializationIndex)
return false;
- if (condition->ChrSpecializationRole >= 0 && spec->Role != uint32(condition->ChrSpecializationRole))
+ if (condition->ChrSpecializationRole >= 0 && spec->Role != condition->ChrSpecializationRole)
return false;
}
}
@@ -2596,10 +2596,10 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
if (condition->MovementFlags[1] && !(player->GetExtraUnitMovementFlags() & condition->MovementFlags[1]))
return false;
- if (condition->MainHandItemSubclassMask)
+ if (condition->WeaponSubclassMask)
{
Item* mainHand = player->GetItemByPos(INVENTORY_SLOT_BAG_0, EQUIPMENT_SLOT_MAINHAND);
- if (!mainHand || !((1 << mainHand->GetTemplate()->GetSubClass()) & condition->MainHandItemSubclassMask))
+ if (!mainHand || !((1 << mainHand->GetTemplate()->GetSubClass()) & condition->WeaponSubclassMask))
return false;
}
@@ -2740,8 +2740,8 @@ bool ConditionMgr::IsPlayerMeetingCondition(Player const* player, PlayerConditio
{
if (condition->AuraSpellID[i])
{
- if (condition->AuraCount[i])
- results[i] = player->GetAuraCount(condition->AuraSpellID[i]) >= condition->AuraCount[i];
+ if (condition->AuraStacks[i])
+ results[i] = player->GetAuraCount(condition->AuraSpellID[i]) >= condition->AuraStacks[i];
else
results[i] = player->HasAura(condition->AuraSpellID[i]);
}
diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h
index 0c2f23ca4ae..16f3f1158e4 100644
--- a/src/server/game/DataStores/DB2LoadInfo.h
+++ b/src/server/game/DataStores/DB2LoadInfo.h
@@ -33,17 +33,17 @@ struct AchievementLoadInfo
{ false, FT_STRING, "Title" },
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "Reward" },
- { false, FT_INT, "Flags" },
- { true, FT_SHORT, "MapID" },
- { false, FT_SHORT, "Supercedes" },
- { false, FT_SHORT, "Category" },
- { false, FT_SHORT, "UIOrder" },
- { false, FT_SHORT, "SharesCriteria" },
+ { true, FT_INT, "Flags" },
+ { true, FT_SHORT, "InstanceID" },
+ { true, FT_SHORT, "Supercedes" },
+ { true, FT_SHORT, "Category" },
+ { true, FT_SHORT, "UiOrder" },
+ { true, FT_SHORT, "SharesCriteria" },
{ true, FT_BYTE, "Faction" },
- { false, FT_BYTE, "Points" },
- { false, FT_BYTE, "MinimumCriteria" },
+ { true, FT_BYTE, "Points" },
+ { true, FT_BYTE, "MinimumCriteria" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "IconFileID" },
{ false, FT_INT, "CriteriaTree" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, AchievementMeta::Instance(), HOTFIX_SEL_ACHIEVEMENT);
@@ -91,10 +91,10 @@ struct AreaTableLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "ZoneName" },
{ false, FT_STRING, "AreaName" },
- { false, FT_INT, "Flags1" },
- { false, FT_INT, "Flags2" },
+ { true, FT_INT, "Flags1" },
+ { true, FT_INT, "Flags2" },
{ false, FT_FLOAT, "AmbientMultiplier" },
- { false, FT_SHORT, "MapID" },
+ { false, FT_SHORT, "ContinentID" },
{ false, FT_SHORT, "ParentAreaID" },
{ true, FT_SHORT, "AreaBit" },
{ false, FT_SHORT, "AmbienceID" },
@@ -104,18 +104,18 @@ struct AreaTableLoadInfo
{ false, FT_SHORT, "LiquidTypeID2" },
{ false, FT_SHORT, "LiquidTypeID3" },
{ false, FT_SHORT, "LiquidTypeID4" },
- { false, FT_SHORT, "UWZoneMusic" },
- { false, FT_SHORT, "UWAmbience" },
- { false, FT_SHORT, "PvPCombatWorldStateID" },
+ { false, FT_SHORT, "UwZoneMusic" },
+ { false, FT_SHORT, "UwAmbience" },
+ { true, FT_SHORT, "PvpCombatWorldStateID" },
{ false, FT_BYTE, "SoundProviderPref" },
{ false, FT_BYTE, "SoundProviderPrefUnderwater" },
- { false, FT_BYTE, "ExplorationLevel" },
+ { true, FT_BYTE, "ExplorationLevel" },
{ false, FT_BYTE, "FactionGroupMask" },
{ false, FT_BYTE, "MountFlags" },
{ false, FT_BYTE, "WildBattlePetLevelMin" },
{ false, FT_BYTE, "WildBattlePetLevelMax" },
{ false, FT_BYTE, "WindSettingsID" },
- { false, FT_INT, "UWIntroSound" },
+ { false, FT_INT, "UwIntroSound" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, AreaTableMeta::Instance(), HOTFIX_SEL_AREA_TABLE);
return &loadInfo;
@@ -136,14 +136,14 @@ struct AreaTriggerLoadInfo
{ false, FT_FLOAT, "BoxWidth" },
{ false, FT_FLOAT, "BoxHeight" },
{ false, FT_FLOAT, "BoxYaw" },
- { false, FT_SHORT, "MapID" },
- { false, FT_SHORT, "PhaseID" },
- { false, FT_SHORT, "PhaseGroupID" },
- { false, FT_SHORT, "ShapeID" },
- { false, FT_SHORT, "AreaTriggerActionSetID" },
- { false, FT_BYTE, "PhaseUseFlags" },
- { false, FT_BYTE, "ShapeType" },
- { false, FT_BYTE, "Flag" },
+ { true, FT_SHORT, "ContinentID" },
+ { true, FT_SHORT, "PhaseID" },
+ { true, FT_SHORT, "PhaseGroupID" },
+ { true, FT_SHORT, "ShapeID" },
+ { true, FT_SHORT, "AreaTriggerActionSetID" },
+ { true, FT_BYTE, "PhaseUseFlags" },
+ { true, FT_BYTE, "ShapeType" },
+ { true, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, AreaTriggerMeta::Instance(), HOTFIX_SEL_AREA_TRIGGER);
@@ -158,11 +158,11 @@ struct ArmorLocationLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Modifier1" },
- { false, FT_FLOAT, "Modifier2" },
- { false, FT_FLOAT, "Modifier3" },
- { false, FT_FLOAT, "Modifier4" },
- { false, FT_FLOAT, "Modifier5" },
+ { false, FT_FLOAT, "Clothmodifier" },
+ { false, FT_FLOAT, "Leathermodifier" },
+ { false, FT_FLOAT, "Chainmodifier" },
+ { false, FT_FLOAT, "Platemodifier" },
+ { false, FT_FLOAT, "Modifier" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArmorLocationMeta::Instance(), HOTFIX_SEL_ARMOR_LOCATION);
return &loadInfo;
@@ -177,11 +177,11 @@ struct ArtifactLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_INT, "BarConnectedColor" },
- { false, FT_INT, "BarDisconnectedColor" },
- { false, FT_INT, "TitleColor" },
- { false, FT_SHORT, "ClassUiTextureKitID" },
- { false, FT_SHORT, "SpecID" },
+ { true, FT_INT, "UiBarOverlayColor" },
+ { true, FT_INT, "UiBarBackgroundColor" },
+ { true, FT_INT, "UiNameColor" },
+ { false, FT_SHORT, "UiTextureKitID" },
+ { false, FT_SHORT, "ChrSpecializationID" },
{ false, FT_BYTE, "ArtifactCategoryID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "UiModelSceneID" },
@@ -199,20 +199,20 @@ struct ArtifactAppearanceLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Name" },
- { false, FT_INT, "SwatchColor" },
- { false, FT_FLOAT, "ModelDesaturation" },
- { false, FT_FLOAT, "ModelAlpha" },
- { false, FT_INT, "ShapeshiftDisplayID" },
+ { true, FT_INT, "UiSwatchColor" },
+ { false, FT_FLOAT, "UiModelSaturation" },
+ { false, FT_FLOAT, "UiModelOpacity" },
+ { false, FT_INT, "OverrideShapeshiftDisplayID" },
{ false, FT_SHORT, "ArtifactAppearanceSetID" },
- { false, FT_SHORT, "Unknown" },
+ { false, FT_SHORT, "UiCameraID" },
{ false, FT_BYTE, "DisplayIndex" },
- { false, FT_BYTE, "AppearanceModID" },
+ { false, FT_BYTE, "ItemAppearanceModifierID" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "ModifiesShapeshiftFormDisplay" },
+ { false, FT_BYTE, "OverrideShapeshiftFormID" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "PlayerConditionID" },
- { false, FT_INT, "ItemAppearanceID" },
- { false, FT_INT, "AltItemAppearanceID" },
+ { false, FT_INT, "UnlockPlayerConditionID" },
+ { false, FT_INT, "UiItemAppearanceID" },
+ { false, FT_INT, "UiAltItemAppearanceID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactAppearanceMeta::Instance(), HOTFIX_SEL_ARTIFACT_APPEARANCE);
return &loadInfo;
@@ -226,11 +226,11 @@ struct ArtifactAppearanceSetLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Name" },
- { false, FT_STRING, "Name2" },
+ { false, FT_STRING, "Description" },
{ false, FT_SHORT, "UiCameraID" },
{ false, FT_SHORT, "AltHandUICameraID" },
{ false, FT_BYTE, "DisplayIndex" },
- { false, FT_BYTE, "AttachmentPoint" },
+ { true, FT_BYTE, "ForgeAttachmentOverride" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "ArtifactID" },
@@ -247,8 +247,8 @@ struct ArtifactCategoryLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "ArtifactKnowledgeCurrencyID" },
- { false, FT_SHORT, "ArtifactKnowledgeMultiplierCurveID" },
+ { true, FT_SHORT, "XpMultCurrencyID" },
+ { true, FT_SHORT, "XpMultCurveID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactCategoryMeta::Instance(), HOTFIX_SEL_ARTIFACT_CATEGORY);
return &loadInfo;
@@ -265,10 +265,10 @@ struct ArtifactPowerLoadInfo
{ false, FT_FLOAT, "PosY" },
{ false, FT_BYTE, "ArtifactID" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "MaxRank" },
- { false, FT_BYTE, "ArtifactTier" },
+ { false, FT_BYTE, "MaxPurchasableRank" },
+ { false, FT_BYTE, "Tier" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "RelicType" },
+ { true, FT_INT, "Label" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactPowerMeta::Instance(), HOTFIX_SEL_ARTIFACT_POWER);
return &loadInfo;
@@ -282,8 +282,8 @@ struct ArtifactPowerLinkLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "FromArtifactPowerID" },
- { false, FT_SHORT, "ToArtifactPowerID" },
+ { false, FT_SHORT, "PowerA" },
+ { false, FT_SHORT, "PowerB" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactPowerLinkMeta::Instance(), HOTFIX_SEL_ARTIFACT_POWER_LINK);
return &loadInfo;
@@ -311,10 +311,10 @@ struct ArtifactPowerRankLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_FLOAT, "Value" },
- { false, FT_SHORT, "Unknown" },
- { false, FT_BYTE, "Rank" },
+ { true, FT_INT, "SpellID" },
+ { false, FT_FLOAT, "AuraPointsOverride" },
+ { false, FT_SHORT, "ItemBonusListID" },
+ { false, FT_BYTE, "RankIndex" },
{ false, FT_SHORT, "ArtifactPowerID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactPowerRankMeta::Instance(), HOTFIX_SEL_ARTIFACT_POWER_RANK);
@@ -329,16 +329,16 @@ struct ArtifactQuestXpLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Exp1" },
- { false, FT_INT, "Exp2" },
- { false, FT_INT, "Exp3" },
- { false, FT_INT, "Exp4" },
- { false, FT_INT, "Exp5" },
- { false, FT_INT, "Exp6" },
- { false, FT_INT, "Exp7" },
- { false, FT_INT, "Exp8" },
- { false, FT_INT, "Exp9" },
- { false, FT_INT, "Exp10" },
+ { false, FT_INT, "Difficulty1" },
+ { false, FT_INT, "Difficulty2" },
+ { false, FT_INT, "Difficulty3" },
+ { false, FT_INT, "Difficulty4" },
+ { false, FT_INT, "Difficulty5" },
+ { false, FT_INT, "Difficulty6" },
+ { false, FT_INT, "Difficulty7" },
+ { false, FT_INT, "Difficulty8" },
+ { false, FT_INT, "Difficulty9" },
+ { false, FT_INT, "Difficulty10" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ArtifactQuestXPMeta::Instance(), HOTFIX_SEL_ARTIFACT_QUEST_XP);
return &loadInfo;
@@ -419,8 +419,8 @@ struct BattlePetBreedQualityLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Modifier" },
- { false, FT_BYTE, "Quality" },
+ { false, FT_FLOAT, "StateMultiplier" },
+ { false, FT_BYTE, "QualityEnum" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BattlePetBreedQualityMeta::Instance(), HOTFIX_SEL_BATTLE_PET_BREED_QUALITY);
return &loadInfo;
@@ -434,9 +434,9 @@ struct BattlePetBreedStateLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "Value" },
- { false, FT_BYTE, "State" },
- { false, FT_BYTE, "BreedID" },
+ { false, FT_SHORT, "Value" },
+ { false, FT_BYTE, "BattlePetStateID" },
+ { false, FT_BYTE, "BattlePetBreedID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BattlePetBreedStateMeta::Instance(), HOTFIX_SEL_BATTLE_PET_BREED_STATE);
return &loadInfo;
@@ -451,15 +451,15 @@ struct BattlePetSpeciesLoadInfo
{
{ false, FT_STRING, "SourceText" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "CreatureID" },
- { false, FT_INT, "IconFileID" },
- { false, FT_INT, "SummonSpellID" },
+ { true, FT_INT, "CreatureID" },
+ { true, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "SummonSpellID" },
{ false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "PetType" },
- { true, FT_BYTE, "Source" },
+ { false, FT_BYTE, "PetTypeEnum" },
+ { true, FT_BYTE, "SourceTypeEnum" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "CardModelSceneID" },
- { false, FT_INT, "LoadoutModelSceneID" },
+ { true, FT_INT, "CardUIModelSceneID" },
+ { true, FT_INT, "LoadoutUIModelSceneID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BattlePetSpeciesMeta::Instance(), HOTFIX_SEL_BATTLE_PET_SPECIES);
return &loadInfo;
@@ -474,8 +474,8 @@ struct BattlePetSpeciesStateLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Value" },
- { false, FT_BYTE, "State" },
- { false, FT_SHORT, "SpeciesID" },
+ { false, FT_BYTE, "BattlePetStateID" },
+ { false, FT_SHORT, "BattlePetSpeciesID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BattlePetSpeciesStateMeta::Instance(), HOTFIX_SEL_BATTLE_PET_SPECIES_STATE);
return &loadInfo;
@@ -493,7 +493,7 @@ struct BattlemasterListLoadInfo
{ false, FT_STRING, "GameType" },
{ false, FT_STRING, "ShortDescription" },
{ false, FT_STRING, "LongDescription" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "IconFileDataID" },
{ true, FT_SHORT, "MapID1" },
{ true, FT_SHORT, "MapID2" },
{ true, FT_SHORT, "MapID3" },
@@ -510,17 +510,17 @@ struct BattlemasterListLoadInfo
{ true, FT_SHORT, "MapID14" },
{ true, FT_SHORT, "MapID15" },
{ true, FT_SHORT, "MapID16" },
- { false, FT_SHORT, "HolidayWorldState" },
- { false, FT_SHORT, "PlayerConditionID" },
- { false, FT_BYTE, "InstanceType" },
- { false, FT_BYTE, "GroupsAllowed" },
- { false, FT_BYTE, "MaxGroupSize" },
- { false, FT_BYTE, "MinLevel" },
- { false, FT_BYTE, "MaxLevel" },
- { false, FT_BYTE, "RatedPlayers" },
- { false, FT_BYTE, "MinPlayers" },
- { false, FT_BYTE, "MaxPlayers" },
- { false, FT_BYTE, "Flags" },
+ { true, FT_SHORT, "HolidayWorldState" },
+ { true, FT_SHORT, "RequiredPlayerConditionID" },
+ { true, FT_BYTE, "InstanceType" },
+ { true, FT_BYTE, "GroupsAllowed" },
+ { true, FT_BYTE, "MaxGroupSize" },
+ { true, FT_BYTE, "MinLevel" },
+ { true, FT_BYTE, "MaxLevel" },
+ { true, FT_BYTE, "RatedPlayers" },
+ { true, FT_BYTE, "MinPlayers" },
+ { true, FT_BYTE, "MaxPlayers" },
+ { true, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BattlemasterListMeta::Instance(), HOTFIX_SEL_BATTLEMASTER_LIST);
return &loadInfo;
@@ -534,20 +534,20 @@ struct BroadcastTextLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "MaleText" },
- { false, FT_STRING, "FemaleText" },
+ { false, FT_STRING, "Text" },
+ { false, FT_STRING, "Text1" },
{ false, FT_SHORT, "EmoteID1" },
{ false, FT_SHORT, "EmoteID2" },
{ false, FT_SHORT, "EmoteID3" },
{ false, FT_SHORT, "EmoteDelay1" },
{ false, FT_SHORT, "EmoteDelay2" },
{ false, FT_SHORT, "EmoteDelay3" },
- { false, FT_SHORT, "UnkEmoteID" },
- { false, FT_BYTE, "Language" },
- { false, FT_BYTE, "Type" },
- { false, FT_INT, "PlayerConditionID" },
- { false, FT_INT, "SoundID1" },
- { false, FT_INT, "SoundID2" },
+ { false, FT_SHORT, "EmotesID" },
+ { false, FT_BYTE, "LanguageID" },
+ { false, FT_BYTE, "Flags" },
+ { true, FT_INT, "ConditionID" },
+ { false, FT_INT, "SoundEntriesID1" },
+ { false, FT_INT, "SoundEntriesID2" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, BroadcastTextMeta::Instance(), HOTFIX_SEL_BROADCAST_TEXT);
return &loadInfo;
@@ -561,11 +561,11 @@ struct CharacterFacialHairStylesLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Geoset1" },
- { false, FT_INT, "Geoset2" },
- { false, FT_INT, "Geoset3" },
- { false, FT_INT, "Geoset4" },
- { false, FT_INT, "Geoset5" },
+ { true, FT_INT, "Geoset1" },
+ { true, FT_INT, "Geoset2" },
+ { true, FT_INT, "Geoset3" },
+ { true, FT_INT, "Geoset4" },
+ { true, FT_INT, "Geoset5" },
{ false, FT_BYTE, "RaceID" },
{ false, FT_BYTE, "SexID" },
{ false, FT_BYTE, "VariationID" },
@@ -582,9 +582,9 @@ struct CharBaseSectionLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_BYTE, "Variation" },
- { false, FT_BYTE, "ResolutionVariation" },
- { false, FT_BYTE, "Resolution" },
+ { false, FT_BYTE, "VariationEnum" },
+ { false, FT_BYTE, "ResolutionVariationEnum" },
+ { false, FT_BYTE, "LayoutResType" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CharBaseSectionMeta::Instance(), HOTFIX_SEL_CHAR_BASE_SECTION);
return &loadInfo;
@@ -598,15 +598,15 @@ struct CharSectionsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "TextureFileDataID1" },
- { false, FT_INT, "TextureFileDataID2" },
- { false, FT_INT, "TextureFileDataID3" },
- { false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "RaceID" },
- { false, FT_BYTE, "SexID" },
- { false, FT_BYTE, "BaseSection" },
- { false, FT_BYTE, "VariationIndex" },
- { false, FT_BYTE, "ColorIndex" },
+ { true, FT_INT, "MaterialResourcesID1" },
+ { true, FT_INT, "MaterialResourcesID2" },
+ { true, FT_INT, "MaterialResourcesID3" },
+ { true, FT_SHORT, "Flags" },
+ { true, FT_BYTE, "RaceID" },
+ { true, FT_BYTE, "SexID" },
+ { true, FT_BYTE, "BaseSection" },
+ { true, FT_BYTE, "VariationIndex" },
+ { true, FT_BYTE, "ColorIndex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CharSectionsMeta::Instance(), HOTFIX_SEL_CHAR_SECTIONS);
return &loadInfo;
@@ -646,7 +646,7 @@ struct CharStartOutfitLoadInfo
{ true, FT_INT, "ItemID24" },
{ false, FT_INT, "PetDisplayID" },
{ false, FT_BYTE, "ClassID" },
- { false, FT_BYTE, "GenderID" },
+ { false, FT_BYTE, "SexID" },
{ false, FT_BYTE, "OutfitID" },
{ false, FT_BYTE, "PetFamilyID" },
{ false, FT_BYTE, "RaceID" },
@@ -663,10 +663,10 @@ struct CharTitlesLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "NameMale" },
- { false, FT_STRING, "NameFemale" },
- { false, FT_SHORT, "MaskID" },
- { false, FT_BYTE, "Flags" },
+ { false, FT_STRING, "Name" },
+ { false, FT_STRING, "Name1" },
+ { true, FT_SHORT, "MaskID" },
+ { true, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CharTitlesMeta::Instance(), HOTFIX_SEL_CHAR_TITLES);
return &loadInfo;
@@ -682,8 +682,8 @@ struct ChatChannelsLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Shortcut" },
- { false, FT_INT, "Flags" },
- { false, FT_BYTE, "FactionGroup" },
+ { true, FT_INT, "Flags" },
+ { true, FT_BYTE, "FactionGroup" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ChatChannelsMeta::Instance(), HOTFIX_SEL_CHAT_CHANNELS);
return &loadInfo;
@@ -703,18 +703,18 @@ struct ChrClassesLoadInfo
{ false, FT_STRING_NOT_LOCALIZED, "Filename" },
{ false, FT_INT, "CreateScreenFileDataID" },
{ false, FT_INT, "SelectScreenFileDataID" },
- { false, FT_INT, "IconFileDataID" },
{ false, FT_INT, "LowResScreenFileDataID" },
- { false, FT_INT, "StartingLevel" },
+ { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "StartingLevel" },
{ false, FT_SHORT, "Flags" },
{ false, FT_SHORT, "CinematicSequenceID" },
{ false, FT_SHORT, "DefaultSpec" },
- { false, FT_BYTE, "PowerType" },
+ { false, FT_BYTE, "DisplayPower" },
{ false, FT_BYTE, "SpellClassSet" },
{ false, FT_BYTE, "AttackPowerPerStrength" },
{ false, FT_BYTE, "AttackPowerPerAgility" },
{ false, FT_BYTE, "RangedAttackPowerPerAgility" },
- { false, FT_BYTE, "Unk1" },
+ { false, FT_BYTE, "PrimaryStatPriority" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ChrClassesMeta::Instance(), HOTFIX_SEL_CHR_CLASSES);
@@ -747,48 +747,48 @@ struct ChrRacesLoadInfo
{ false, FT_STRING_NOT_LOCALIZED, "ClientFileString" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "NameFemale" },
- { false, FT_STRING, "LowercaseName" },
- { false, FT_STRING, "LowercaseNameFemale" },
- { false, FT_INT, "Flags" },
- { false, FT_INT, "MaleDisplayID" },
- { false, FT_INT, "FemaleDisplayID" },
- { false, FT_INT, "CreateScreenFileDataID" },
- { false, FT_INT, "SelectScreenFileDataID" },
+ { false, FT_STRING, "NameLowercase" },
+ { false, FT_STRING, "NameFemaleLowercase" },
+ { true, FT_INT, "Flags" },
+ { false, FT_INT, "MaleDisplayId" },
+ { false, FT_INT, "FemaleDisplayId" },
+ { true, FT_INT, "CreateScreenFileDataID" },
+ { true, FT_INT, "SelectScreenFileDataID" },
{ false, FT_FLOAT, "MaleCustomizeOffset1" },
{ false, FT_FLOAT, "MaleCustomizeOffset2" },
{ false, FT_FLOAT, "MaleCustomizeOffset3" },
{ false, FT_FLOAT, "FemaleCustomizeOffset1" },
{ false, FT_FLOAT, "FemaleCustomizeOffset2" },
{ false, FT_FLOAT, "FemaleCustomizeOffset3" },
- { false, FT_INT, "LowResScreenFileDataID" },
- { false, FT_INT, "StartingLevel" },
- { false, FT_INT, "UIDisplayOrder" },
- { false, FT_SHORT, "FactionID" },
- { false, FT_SHORT, "ResSicknessSpellID" },
- { false, FT_SHORT, "SplashSoundID" },
- { false, FT_SHORT, "CinematicSequenceID" },
- { false, FT_BYTE, "BaseLanguage" },
- { false, FT_BYTE, "CreatureType" },
- { false, FT_BYTE, "TeamID" },
- { false, FT_BYTE, "RaceRelated" },
- { false, FT_BYTE, "UnalteredVisualRaceID" },
- { false, FT_BYTE, "CharComponentTextureLayoutID" },
- { false, FT_BYTE, "DefaultClassID" },
- { false, FT_BYTE, "NeutralRaceID" },
- { false, FT_BYTE, "ItemAppearanceFrameRaceID" },
- { false, FT_BYTE, "CharComponentTexLayoutHiResID" },
- { false, FT_INT, "ID" },
- { false, FT_INT, "HighResMaleDisplayID" },
- { false, FT_INT, "HighResFemaleDisplayID" },
- { false, FT_INT, "HeritageArmorAchievementID" },
- { false, FT_INT, "MaleCorpseBonesModelFileDataID" },
- { false, FT_INT, "FemaleCorpseBonesModelFileDataID" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualID1" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualID2" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualID3" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualKitID1" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualKitID2" },
- { false, FT_INT, "AlteredFormTransitionSpellVisualKitID3" },
+ { true, FT_INT, "LowResScreenFileDataID" },
+ { true, FT_INT, "StartingLevel" },
+ { true, FT_INT, "UiDisplayOrder" },
+ { true, FT_SHORT, "FactionID" },
+ { true, FT_SHORT, "ResSicknessSpellID" },
+ { true, FT_SHORT, "SplashSoundID" },
+ { 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, "CharComponentTextureLayoutID" },
+ { true, FT_BYTE, "DefaultClassID" },
+ { true, FT_BYTE, "NeutralRaceID" },
+ { true, FT_BYTE, "DisplayRaceID" },
+ { true, FT_BYTE, "CharComponentTexLayoutHiResID" },
+ { false, FT_INT, "ID" },
+ { false, FT_INT, "HighResMaleDisplayId" },
+ { false, FT_INT, "HighResFemaleDisplayId" },
+ { true, FT_INT, "HeritageArmorAchievementID" },
+ { true, FT_INT, "MaleSkeletonFileDataID" },
+ { true, FT_INT, "FemaleSkeletonFileDataID" },
+ { false, FT_INT, "AlteredFormStartVisualKitID1" },
+ { false, FT_INT, "AlteredFormStartVisualKitID2" },
+ { false, FT_INT, "AlteredFormStartVisualKitID3" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID1" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID2" },
+ { false, FT_INT, "AlteredFormFinishVisualKitID3" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ChrRacesMeta::Instance(), HOTFIX_SEL_CHR_RACES);
return &loadInfo;
@@ -802,19 +802,19 @@ struct ChrSpecializationLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Name" },
- { false, FT_STRING, "Name2" },
+ { false, FT_STRING, "FemaleName" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "MasterySpellID1" },
- { false, FT_INT, "MasterySpellID2" },
- { false, FT_BYTE, "ClassID" },
- { false, FT_BYTE, "OrderIndex" },
- { false, FT_BYTE, "PetTalentType" },
- { false, FT_BYTE, "Role" },
- { false, FT_BYTE, "PrimaryStatOrder" },
- { false, FT_INT, "ID" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "MasterySpellID1" },
+ { true, FT_INT, "MasterySpellID2" },
+ { true, FT_BYTE, "ClassID" },
+ { true, FT_BYTE, "OrderIndex" },
+ { true, FT_BYTE, "PetTalentType" },
+ { true, FT_BYTE, "Role" },
+ { true, FT_BYTE, "PrimaryStatPriority" },
+ { false, FT_INT, "ID" },
+ { true, FT_INT, "SpellIconFileID" },
{ false, FT_INT, "Flags" },
- { false, FT_INT, "AnimReplacementSetID" },
+ { true, FT_INT, "AnimReplacements" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ChrSpecializationMeta::Instance(), HOTFIX_SEL_CHR_SPECIALIZATION);
return &loadInfo;
@@ -833,7 +833,7 @@ struct CinematicCameraLoadInfo
{ false, FT_FLOAT, "OriginY" },
{ false, FT_FLOAT, "OriginZ" },
{ false, FT_FLOAT, "OriginFacing" },
- { false, FT_INT, "ModelFileDataID" },
+ { false, FT_INT, "FileDataID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CinematicCameraMeta::Instance(), HOTFIX_SEL_CINEMATIC_CAMERA);
return &loadInfo;
@@ -871,12 +871,12 @@ struct ConversationLineLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_INT, "BroadcastTextID" },
{ false, FT_INT, "SpellVisualKitID" },
- { false, FT_INT, "Duration" },
- { false, FT_SHORT, "NextLineID" },
- { false, FT_SHORT, "Unk1" },
- { false, FT_BYTE, "Yell" },
- { false, FT_BYTE, "Unk2" },
- { false, FT_BYTE, "Unk3" },
+ { true, FT_INT, "AdditionalDuration" },
+ { false, FT_SHORT, "NextConversationLineID" },
+ { false, FT_SHORT, "AnimKitID" },
+ { false, FT_BYTE, "SpeechType" },
+ { false, FT_BYTE, "StartAnimation" },
+ { false, FT_BYTE, "EndAnimation" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ConversationLineMeta::Instance(), HOTFIX_SEL_CONVERSATION_LINE);
return &loadInfo;
@@ -893,27 +893,27 @@ struct CreatureDisplayInfoLoadInfo
{ false, FT_FLOAT, "CreatureModelScale" },
{ false, FT_SHORT, "ModelID" },
{ false, FT_SHORT, "NPCSoundID" },
- { false, FT_BYTE, "SizeClass" },
+ { true, FT_BYTE, "SizeClass" },
{ false, FT_BYTE, "Flags" },
{ true, FT_BYTE, "Gender" },
- { false, FT_INT, "ExtendedDisplayInfoID" },
- { false, FT_INT, "PortraitTextureFileDataID" },
+ { true, FT_INT, "ExtendedDisplayInfoID" },
+ { true, FT_INT, "PortraitTextureFileDataID" },
{ false, FT_BYTE, "CreatureModelAlpha" },
{ false, FT_SHORT, "SoundID" },
- { false, FT_FLOAT, "PlayerModelScale" },
- { false, FT_INT, "PortraitCreatureDisplayInfoID" },
+ { false, FT_FLOAT, "PlayerOverrideScale" },
+ { true, FT_INT, "PortraitCreatureDisplayInfoID" },
{ false, FT_BYTE, "BloodID" },
{ false, FT_SHORT, "ParticleColorID" },
{ false, FT_INT, "CreatureGeosetData" },
{ false, FT_SHORT, "ObjectEffectPackageID" },
{ false, FT_SHORT, "AnimReplacementSetID" },
- { true, FT_BYTE, "UnarmedWeaponSubclass" },
- { false, FT_INT, "StateSpellVisualKitID" },
- { false, FT_FLOAT, "InstanceOtherPlayerPetScale" },
- { false, FT_INT, "MountSpellVisualKitID" },
- { false, FT_INT, "TextureVariation1" },
- { false, FT_INT, "TextureVariation2" },
- { false, FT_INT, "TextureVariation3" },
+ { true, FT_BYTE, "UnarmedWeaponType" },
+ { true, FT_INT, "StateSpellVisualKitID" },
+ { false, FT_FLOAT, "PetInstanceScale" },
+ { true, FT_INT, "MountPoofSpellVisualKitID" },
+ { true, FT_INT, "TextureVariationFileDataID1" },
+ { true, FT_INT, "TextureVariationFileDataID2" },
+ { true, FT_INT, "TextureVariationFileDataID3" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CreatureDisplayInfoMeta::Instance(), HOTFIX_SEL_CREATURE_DISPLAY_INFO);
return &loadInfo;
@@ -927,20 +927,20 @@ struct CreatureDisplayInfoExtraLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "FileDataID" },
- { false, FT_INT, "HDFileDataID" },
- { false, FT_BYTE, "DisplayRaceID" },
- { false, FT_BYTE, "DisplaySexID" },
- { false, FT_BYTE, "DisplayClassID" },
- { false, FT_BYTE, "SkinID" },
- { false, FT_BYTE, "FaceID" },
- { false, FT_BYTE, "HairStyleID" },
- { false, FT_BYTE, "HairColorID" },
- { false, FT_BYTE, "FacialHairID" },
+ { true, FT_INT, "BakeMaterialResourcesID" },
+ { true, FT_INT, "HDBakeMaterialResourcesID" },
+ { 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" },
{ false, FT_BYTE, "CustomDisplayOption1" },
{ false, FT_BYTE, "CustomDisplayOption2" },
{ false, FT_BYTE, "CustomDisplayOption3" },
- { false, FT_BYTE, "Flags" },
+ { true, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CreatureDisplayInfoExtraMeta::Instance(), HOTFIX_SEL_CREATURE_DISPLAY_INFO_EXTRA);
return &loadInfo;
@@ -957,13 +957,13 @@ struct CreatureFamilyLoadInfo
{ false, FT_STRING, "Name" },
{ false, FT_FLOAT, "MinScale" },
{ false, FT_FLOAT, "MaxScale" },
- { false, FT_INT, "IconFileDataID" },
- { false, FT_SHORT, "SkillLine1" },
- { false, FT_SHORT, "SkillLine2" },
- { false, FT_SHORT, "PetFoodMask" },
- { false, FT_BYTE, "MinScaleLevel" },
- { false, FT_BYTE, "MaxScaleLevel" },
- { false, FT_BYTE, "PetTalentType" },
+ { true, FT_INT, "IconFileID" },
+ { true, FT_SHORT, "SkillLine1" },
+ { true, FT_SHORT, "SkillLine2" },
+ { true, FT_SHORT, "PetFoodMask" },
+ { true, FT_BYTE, "MinScaleLevel" },
+ { true, FT_BYTE, "MaxScaleLevel" },
+ { true, FT_BYTE, "PetTalentType" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CreatureFamilyMeta::Instance(), HOTFIX_SEL_CREATURE_FAMILY);
return &loadInfo;
@@ -984,12 +984,12 @@ struct CreatureModelDataLoadInfo
{ false, FT_FLOAT, "CollisionWidth" },
{ false, FT_FLOAT, "CollisionHeight" },
{ false, FT_FLOAT, "MountHeight" },
- { false, FT_FLOAT, "GeoBoxMin1" },
- { false, FT_FLOAT, "GeoBoxMin2" },
- { false, FT_FLOAT, "GeoBoxMin3" },
- { false, FT_FLOAT, "GeoBoxMax1" },
- { false, FT_FLOAT, "GeoBoxMax2" },
- { false, FT_FLOAT, "GeoBoxMax3" },
+ { false, FT_FLOAT, "GeoBox1" },
+ { false, FT_FLOAT, "GeoBox2" },
+ { false, FT_FLOAT, "GeoBox3" },
+ { false, FT_FLOAT, "GeoBox4" },
+ { false, FT_FLOAT, "GeoBox5" },
+ { false, FT_FLOAT, "GeoBox6" },
{ false, FT_FLOAT, "WorldEffectScale" },
{ false, FT_FLOAT, "AttachedEffectScale" },
{ false, FT_FLOAT, "MissileCollisionRadius" },
@@ -1006,8 +1006,8 @@ struct CreatureModelDataLoadInfo
{ false, FT_INT, "BloodID" },
{ false, FT_INT, "FootprintTextureID" },
{ false, FT_INT, "FoleyMaterialID" },
- { false, FT_INT, "FootstepEffectID" },
- { false, FT_INT, "DeathThudEffectID" },
+ { false, FT_INT, "FootstepCameraEffectID" },
+ { false, FT_INT, "DeathThudCameraEffectID" },
{ false, FT_INT, "SoundID" },
{ false, FT_INT, "CreatureGeosetDataID" },
};
@@ -1039,16 +1039,16 @@ struct CriteriaLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "Asset" },
- { false, FT_INT, "StartAsset" },
- { false, FT_INT, "FailAsset" },
+ { true, FT_INT, "StartAsset" },
+ { true, FT_INT, "FailAsset" },
{ false, FT_INT, "ModifierTreeId" },
{ false, FT_SHORT, "StartTimer" },
- { false, FT_SHORT, "EligibilityWorldStateID" },
+ { true, FT_SHORT, "EligibilityWorldStateID" },
{ false, FT_BYTE, "Type" },
{ false, FT_BYTE, "StartEvent" },
{ false, FT_BYTE, "FailEvent" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "EligibilityWorldStateValue" },
+ { true, FT_BYTE, "EligibilityWorldStateValue" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CriteriaMeta::Instance(), HOTFIX_SEL_CRITERIA);
return &loadInfo;
@@ -1063,9 +1063,9 @@ struct CriteriaTreeLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "Amount" },
- { false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "Operator" },
+ { true, FT_INT, "Amount" },
+ { true, FT_SHORT, "Flags" },
+ { true, FT_BYTE, "Operator" },
{ false, FT_INT, "CriteriaID" },
{ false, FT_INT, "Parent" },
{ true, FT_INT, "OrderIndex" },
@@ -1090,7 +1090,7 @@ struct CurrencyTypesLoadInfo
{ false, FT_BYTE, "CategoryID" },
{ false, FT_BYTE, "SpellCategory" },
{ false, FT_BYTE, "Quality" },
- { false, FT_INT, "InventoryIconFileDataID" },
+ { true, FT_INT, "InventoryIconFileID" },
{ false, FT_INT, "SpellWeight" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CurrencyTypesMeta::Instance(), HOTFIX_SEL_CURRENCY_TYPES);
@@ -1106,7 +1106,7 @@ struct CurveLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "Type" },
- { false, FT_BYTE, "Unused" },
+ { false, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CurveMeta::Instance(), HOTFIX_SEL_CURVE);
return &loadInfo;
@@ -1120,10 +1120,10 @@ struct CurvePointLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "X" },
- { false, FT_FLOAT, "Y" },
+ { false, FT_FLOAT, "PosX" },
+ { false, FT_FLOAT, "PosY" },
{ false, FT_SHORT, "CurveID" },
- { false, FT_BYTE, "Index" },
+ { false, FT_BYTE, "OrderIndex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, CurvePointMeta::Instance(), HOTFIX_SEL_CURVE_POINT);
return &loadInfo;
@@ -1137,25 +1137,25 @@ struct DestructibleModelDataLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "StateDamagedDisplayID" },
- { false, FT_SHORT, "StateDestroyedDisplayID" },
- { false, FT_SHORT, "StateRebuildingDisplayID" },
- { false, FT_SHORT, "StateSmokeDisplayID" },
+ { false, FT_SHORT, "State0Wmo" },
+ { false, FT_SHORT, "State1Wmo" },
+ { false, FT_SHORT, "State2Wmo" },
+ { false, FT_SHORT, "State3Wmo" },
{ false, FT_SHORT, "HealEffectSpeed" },
- { false, FT_BYTE, "StateDamagedImpactEffectDoodadSet" },
- { false, FT_BYTE, "StateDamagedAmbientDoodadSet" },
- { false, FT_BYTE, "StateDamagedNameSet" },
- { false, FT_BYTE, "StateDestroyedDestructionDoodadSet" },
- { false, FT_BYTE, "StateDestroyedImpactEffectDoodadSet" },
- { false, FT_BYTE, "StateDestroyedAmbientDoodadSet" },
- { false, FT_BYTE, "StateDestroyedNameSet" },
- { false, FT_BYTE, "StateRebuildingDestructionDoodadSet" },
- { false, FT_BYTE, "StateRebuildingImpactEffectDoodadSet" },
- { false, FT_BYTE, "StateRebuildingAmbientDoodadSet" },
- { false, FT_BYTE, "StateRebuildingNameSet" },
- { false, FT_BYTE, "StateSmokeInitDoodadSet" },
- { false, FT_BYTE, "StateSmokeAmbientDoodadSet" },
- { false, FT_BYTE, "StateSmokeNameSet" },
+ { true, FT_BYTE, "State0ImpactEffectDoodadSet" },
+ { false, FT_BYTE, "State0AmbientDoodadSet" },
+ { true, FT_BYTE, "State0NameSet" },
+ { true, FT_BYTE, "State1DestructionDoodadSet" },
+ { true, FT_BYTE, "State1ImpactEffectDoodadSet" },
+ { false, FT_BYTE, "State1AmbientDoodadSet" },
+ { true, FT_BYTE, "State1NameSet" },
+ { true, FT_BYTE, "State2DestructionDoodadSet" },
+ { true, FT_BYTE, "State2ImpactEffectDoodadSet" },
+ { false, FT_BYTE, "State2AmbientDoodadSet" },
+ { true, FT_BYTE, "State2NameSet" },
+ { false, FT_BYTE, "State3InitDoodadSet" },
+ { false, FT_BYTE, "State3AmbientDoodadSet" },
+ { true, FT_BYTE, "State3NameSet" },
{ false, FT_BYTE, "EjectDirection" },
{ false, FT_BYTE, "DoNotHighlight" },
{ false, FT_BYTE, "HealEffect" },
@@ -1183,7 +1183,7 @@ struct DifficultyLoadInfo
{ true, FT_BYTE, "OldEnumValue" },
{ false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "ToggleDifficultyID" },
- { false, FT_BYTE, "ItemBonusTreeModID" },
+ { false, FT_BYTE, "ItemContext" },
{ false, FT_BYTE, "OrderIndex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, DifficultyMeta::Instance(), HOTFIX_SEL_DIFFICULTY);
@@ -1198,14 +1198,14 @@ struct DungeonEncounterLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Name" },
- { false, FT_INT, "CreatureDisplayID" },
- { false, FT_SHORT, "MapID" },
- { false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "Bit" },
+ { true, FT_INT, "CreatureDisplayID" },
+ { true, FT_SHORT, "MapID" },
+ { true, FT_BYTE, "DifficultyID" },
+ { true, FT_BYTE, "Bit" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
{ true, FT_INT, "OrderIndex" },
- { false, FT_INT, "TextureFileDataID" },
+ { true, FT_INT, "SpellIconFileID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, DungeonEncounterMeta::Instance(), HOTFIX_SEL_DUNGEON_ENCOUNTER);
return &loadInfo;
@@ -1261,7 +1261,7 @@ struct DurabilityQualityLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "QualityMod" },
+ { false, FT_FLOAT, "Data" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, DurabilityQualityMeta::Instance(), HOTFIX_SEL_DURABILITY_QUALITY);
return &loadInfo;
@@ -1277,13 +1277,13 @@ struct EmotesLoadInfo
{ false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
{ false, FT_STRING_NOT_LOCALIZED, "EmoteSlashCommand" },
- { false, FT_INT, "SpellVisualKitID" },
{ false, FT_INT, "EmoteFlags" },
- { false, FT_SHORT, "AnimID" },
+ { false, FT_INT, "SpellVisualKitID" },
+ { true, FT_SHORT, "AnimID" },
{ false, FT_BYTE, "EmoteSpecProc" },
- { false, FT_INT, "EmoteSpecProcParam" },
- { false, FT_INT, "EmoteSoundID" },
{ true, FT_INT, "ClassMask" },
+ { false, FT_INT, "EmoteSpecProcParam" },
+ { false, FT_INT, "EventSoundID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, EmotesMeta::Instance(), HOTFIX_SEL_EMOTES);
return &loadInfo;
@@ -1297,7 +1297,7 @@ struct EmotesTextLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "Name" },
+ { false, FT_STRING_NOT_LOCALIZED, "Name" },
{ false, FT_SHORT, "EmoteID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, EmotesTextMeta::Instance(), HOTFIX_SEL_EMOTES_TEXT);
@@ -1312,11 +1312,11 @@ struct EmotesTextSoundLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_BYTE, "RaceId" },
- { false, FT_BYTE, "SexId" },
- { false, FT_BYTE, "ClassId" },
- { false, FT_INT, "SoundId" },
- { false, FT_SHORT, "EmotesTextId" },
+ { false, FT_BYTE, "RaceID" },
+ { false, FT_BYTE, "SexID" },
+ { false, FT_BYTE, "ClassID" },
+ { false, FT_INT, "SoundID" },
+ { false, FT_SHORT, "EmotesTextID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, EmotesTextSoundMeta::Instance(), HOTFIX_SEL_EMOTES_TEXT_SOUND);
return &loadInfo;
@@ -1329,10 +1329,10 @@ struct FactionLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_LONG, "ReputationRaceMask1" },
- { false, FT_LONG, "ReputationRaceMask2" },
- { false, FT_LONG, "ReputationRaceMask3" },
- { false, FT_LONG, "ReputationRaceMask4" },
+ { 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" },
@@ -1340,25 +1340,25 @@ struct FactionLoadInfo
{ true, FT_INT, "ReputationBase2" },
{ true, FT_INT, "ReputationBase3" },
{ true, FT_INT, "ReputationBase4" },
- { false, FT_FLOAT, "ParentFactionModIn" },
- { false, FT_FLOAT, "ParentFactionModOut" },
- { false, FT_INT, "ReputationMax1" },
- { false, FT_INT, "ReputationMax2" },
- { false, FT_INT, "ReputationMax3" },
- { false, FT_INT, "ReputationMax4" },
+ { false, FT_FLOAT, "ParentFactionMod1" },
+ { false, FT_FLOAT, "ParentFactionMod2" },
+ { true, FT_INT, "ReputationMax1" },
+ { true, FT_INT, "ReputationMax2" },
+ { true, FT_INT, "ReputationMax3" },
+ { true, FT_INT, "ReputationMax4" },
{ true, FT_SHORT, "ReputationIndex" },
- { false, FT_SHORT, "ReputationClassMask1" },
- { false, FT_SHORT, "ReputationClassMask2" },
- { false, FT_SHORT, "ReputationClassMask3" },
- { false, FT_SHORT, "ReputationClassMask4" },
+ { true, FT_SHORT, "ReputationClassMask1" },
+ { true, FT_SHORT, "ReputationClassMask2" },
+ { true, FT_SHORT, "ReputationClassMask3" },
+ { true, FT_SHORT, "ReputationClassMask4" },
{ false, FT_SHORT, "ReputationFlags1" },
{ false, FT_SHORT, "ReputationFlags2" },
{ false, FT_SHORT, "ReputationFlags3" },
{ false, FT_SHORT, "ReputationFlags4" },
{ false, FT_SHORT, "ParentFactionID" },
{ false, FT_SHORT, "ParagonFactionID" },
- { false, FT_BYTE, "ParentFactionCapIn" },
- { false, FT_BYTE, "ParentFactionCapOut" },
+ { false, FT_BYTE, "ParentFactionCap1" },
+ { false, FT_BYTE, "ParentFactionCap2" },
{ false, FT_BYTE, "Expansion" },
{ false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "FriendshipRepID" },
@@ -1381,74 +1381,74 @@ struct FactionTemplateLoadInfo
{ false, FT_SHORT, "Enemies2" },
{ false, FT_SHORT, "Enemies3" },
{ false, FT_SHORT, "Enemies4" },
- { false, FT_SHORT, "Friends1" },
- { false, FT_SHORT, "Friends2" },
- { false, FT_SHORT, "Friends3" },
- { false, FT_SHORT, "Friends4" },
- { false, FT_BYTE, "Mask" },
- { false, FT_BYTE, "FriendMask" },
- { false, FT_BYTE, "EnemyMask" },
+ { false, FT_SHORT, "Friend1" },
+ { false, FT_SHORT, "Friend2" },
+ { false, FT_SHORT, "Friend3" },
+ { false, FT_SHORT, "Friend4" },
+ { false, FT_BYTE, "FactionGroup" },
+ { false, FT_BYTE, "FriendGroup" },
+ { false, FT_BYTE, "EnemyGroup" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, FactionTemplateMeta::Instance(), HOTFIX_SEL_FACTION_TEMPLATE);
return &loadInfo;
}
};
-struct GameobjectsLoadInfo
+struct GameobjectDisplayInfoLoadInfo
{
static DB2LoadInfo const* Instance()
{
static DB2FieldMeta const fields[] =
{
- { false, FT_STRING, "Name" },
- { false, FT_FLOAT, "PositionX" },
- { false, FT_FLOAT, "PositionY" },
- { false, FT_FLOAT, "PositionZ" },
- { false, FT_FLOAT, "RotationX" },
- { false, FT_FLOAT, "RotationY" },
- { false, FT_FLOAT, "RotationZ" },
- { false, FT_FLOAT, "RotationW" },
- { false, FT_FLOAT, "Size" },
- { true, FT_INT, "Data1" },
- { true, FT_INT, "Data2" },
- { true, FT_INT, "Data3" },
- { true, FT_INT, "Data4" },
- { true, FT_INT, "Data5" },
- { true, FT_INT, "Data6" },
- { true, FT_INT, "Data7" },
- { true, FT_INT, "Data8" },
- { false, FT_SHORT, "MapID" },
- { false, FT_SHORT, "DisplayID" },
- { false, FT_SHORT, "PhaseID" },
- { false, FT_SHORT, "PhaseGroupID" },
- { false, FT_BYTE, "PhaseUseFlags" },
- { false, FT_BYTE, "Type" },
{ false, FT_INT, "ID" },
+ { true, FT_INT, "FileDataID" },
+ { false, FT_FLOAT, "GeoBoxMinX" },
+ { false, FT_FLOAT, "GeoBoxMinY" },
+ { false, FT_FLOAT, "GeoBoxMinZ" },
+ { false, FT_FLOAT, "GeoBoxMaxX" },
+ { false, FT_FLOAT, "GeoBoxMaxY" },
+ { false, FT_FLOAT, "GeoBoxMaxZ" },
+ { false, FT_FLOAT, "OverrideLootEffectScale" },
+ { false, FT_FLOAT, "OverrideNameScale" },
+ { true, FT_SHORT, "ObjectEffectPackageID" },
};
- static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GameObjectsMeta::Instance(), HOTFIX_SEL_GAMEOBJECTS);
+ static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GameObjectDisplayInfoMeta::Instance(), HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO);
return &loadInfo;
}
};
-struct GameobjectDisplayInfoLoadInfo
+struct GameobjectsLoadInfo
{
static DB2LoadInfo const* Instance()
{
static DB2FieldMeta const fields[] =
{
+ { false, FT_STRING, "Name" },
+ { false, FT_FLOAT, "PosX" },
+ { false, FT_FLOAT, "PosY" },
+ { false, FT_FLOAT, "PosZ" },
+ { false, FT_FLOAT, "Rot1" },
+ { false, FT_FLOAT, "Rot2" },
+ { false, FT_FLOAT, "Rot3" },
+ { false, FT_FLOAT, "Rot4" },
+ { false, FT_FLOAT, "Scale" },
+ { true, FT_INT, "PropValue1" },
+ { true, FT_INT, "PropValue2" },
+ { true, FT_INT, "PropValue3" },
+ { true, FT_INT, "PropValue4" },
+ { true, FT_INT, "PropValue5" },
+ { true, FT_INT, "PropValue6" },
+ { true, FT_INT, "PropValue7" },
+ { true, FT_INT, "PropValue8" },
+ { false, FT_SHORT, "OwnerID" },
+ { false, FT_SHORT, "DisplayID" },
+ { false, FT_SHORT, "PhaseID" },
+ { false, FT_SHORT, "PhaseGroupID" },
+ { false, FT_BYTE, "PhaseUseFlags" },
+ { false, FT_BYTE, "TypeID" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "FileDataID" },
- { false, FT_FLOAT, "GeoBoxMinX" },
- { false, FT_FLOAT, "GeoBoxMinY" },
- { false, FT_FLOAT, "GeoBoxMinZ" },
- { false, FT_FLOAT, "GeoBoxMaxX" },
- { false, FT_FLOAT, "GeoBoxMaxY" },
- { false, FT_FLOAT, "GeoBoxMaxZ" },
- { false, FT_FLOAT, "OverrideLootEffectScale" },
- { false, FT_FLOAT, "OverrideNameScale" },
- { false, FT_SHORT, "ObjectEffectPackageID" },
};
- static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GameObjectDisplayInfoMeta::Instance(), HOTFIX_SEL_GAMEOBJECT_DISPLAY_INFO);
+ static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GameObjectsMeta::Instance(), HOTFIX_SEL_GAMEOBJECTS);
return &loadInfo;
}
};
@@ -1461,11 +1461,11 @@ struct GarrAbilityLoadInfo
{
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "IconFileDataID" },
{ false, FT_SHORT, "Flags" },
- { false, FT_SHORT, "OtherFactionGarrAbilityID" },
+ { false, FT_SHORT, "FactionChangeGarrAbilityID" },
{ false, FT_BYTE, "GarrAbilityCategoryID" },
- { false, FT_BYTE, "FollowerTypeID" },
+ { false, FT_BYTE, "GarrFollowerTypeID" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrAbilityMeta::Instance(), HOTFIX_SEL_GARR_ABILITY);
@@ -1480,30 +1480,30 @@ struct GarrBuildingLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "NameAlliance" },
- { false, FT_STRING, "NameHorde" },
+ { false, FT_STRING, "AllianceName" },
+ { false, FT_STRING, "HordeName" },
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "Tooltip" },
- { false, FT_INT, "HordeGameObjectID" },
- { false, FT_INT, "AllianceGameObjectID" },
- { false, FT_INT, "IconFileDataID" },
- { false, FT_SHORT, "CostCurrencyID" },
- { false, FT_SHORT, "HordeTexPrefixKitID" },
- { false, FT_SHORT, "AllianceTexPrefixKitID" },
- { false, FT_SHORT, "AllianceActivationScenePackageID" },
- { false, FT_SHORT, "HordeActivationScenePackageID" },
- { false, FT_SHORT, "FollowerRequiredGarrAbilityID" },
- { false, FT_SHORT, "FollowerGarrAbilityEffectID" },
- { true, FT_SHORT, "CostMoney" },
- { false, FT_BYTE, "Unknown" },
- { false, FT_BYTE, "Type" },
- { false, FT_BYTE, "Level" },
+ { true, FT_INT, "HordeGameObjectID" },
+ { true, FT_INT, "AllianceGameObjectID" },
+ { true, FT_INT, "IconFileDataID" },
+ { false, FT_SHORT, "CurrencyTypeID" },
+ { false, FT_SHORT, "HordeUiTextureKitID" },
+ { false, FT_SHORT, "AllianceUiTextureKitID" },
+ { false, FT_SHORT, "AllianceSceneScriptPackageID" },
+ { false, FT_SHORT, "HordeSceneScriptPackageID" },
+ { false, FT_SHORT, "GarrAbilityID" },
+ { false, FT_SHORT, "BonusGarrAbilityID" },
+ { false, FT_SHORT, "GoldCost" },
+ { false, FT_BYTE, "GarrSiteID" },
+ { false, FT_BYTE, "BuildingType" },
+ { false, FT_BYTE, "UpgradeLevel" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "MaxShipments" },
+ { false, FT_BYTE, "ShipmentCapacity" },
{ false, FT_BYTE, "GarrTypeID" },
- { true, FT_INT, "BuildDuration" },
- { true, FT_INT, "CostCurrencyAmount" },
- { true, FT_INT, "BonusAmount" },
+ { true, FT_INT, "BuildSeconds" },
+ { true, FT_INT, "CurrencyQty" },
+ { true, FT_INT, "MaxAssignments" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrBuildingMeta::Instance(), HOTFIX_SEL_GARR_BUILDING);
return &loadInfo;
@@ -1516,8 +1516,8 @@ struct GarrBuildingPlotInstLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_FLOAT, "LandmarkOffsetX" },
- { false, FT_FLOAT, "LandmarkOffsetY" },
+ { false, FT_FLOAT, "MapOffsetX" },
+ { false, FT_FLOAT, "MapOffsetY" },
{ false, FT_SHORT, "UiTextureAtlasMemberID" },
{ false, FT_SHORT, "GarrSiteLevelPlotInstID" },
{ false, FT_BYTE, "GarrBuildingID" },
@@ -1534,12 +1534,12 @@ struct GarrClassSpecLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_STRING, "NameMale" },
- { false, FT_STRING, "NameFemale" },
- { false, FT_STRING, "NameGenderless" },
- { false, FT_SHORT, "ClassAtlasID" },
+ { false, FT_STRING, "ClassSpec" },
+ { false, FT_STRING, "ClassSpecMale" },
+ { false, FT_STRING, "ClassSpecFemale" },
+ { false, FT_SHORT, "UiTextureAtlasMemberID" },
{ false, FT_SHORT, "GarrFollItemSetID" },
- { false, FT_BYTE, "Limit" },
+ { false, FT_BYTE, "FollowerClassLimit" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
};
@@ -1556,35 +1556,35 @@ struct GarrFollowerLoadInfo
{
{ false, FT_STRING, "HordeSourceText" },
{ false, FT_STRING, "AllianceSourceText" },
- { false, FT_STRING, "Name" },
- { false, FT_INT, "HordeCreatureID" },
- { false, FT_INT, "AllianceCreatureID" },
- { false, FT_INT, "HordePortraitIconID" },
- { false, FT_INT, "AlliancePortraitIconID" },
- { false, FT_INT, "HordeAddedBroadcastTextID" },
- { false, FT_INT, "AllianceAddedBroadcastTextID" },
+ { false, FT_STRING, "TitleName" },
+ { true, FT_INT, "HordeCreatureID" },
+ { true, FT_INT, "AllianceCreatureID" },
+ { true, FT_INT, "HordeIconFileDataID" },
+ { true, FT_INT, "AllianceIconFileDataID" },
+ { false, FT_INT, "HordeSlottingBroadcastTextID" },
+ { false, FT_INT, "AllySlottingBroadcastTextID" },
{ false, FT_SHORT, "HordeGarrFollItemSetID" },
{ false, FT_SHORT, "AllianceGarrFollItemSetID" },
{ false, FT_SHORT, "ItemLevelWeapon" },
{ false, FT_SHORT, "ItemLevelArmor" },
- { false, FT_SHORT, "HordeListPortraitTextureKitID" },
- { false, FT_SHORT, "AllianceListPortraitTextureKitID" },
- { false, FT_BYTE, "FollowerTypeID" },
- { false, FT_BYTE, "HordeUiAnimRaceInfoID" },
- { false, FT_BYTE, "AllianceUiAnimRaceInfoID" },
+ { false, FT_SHORT, "HordeUITextureKitID" },
+ { false, FT_SHORT, "AllianceUITextureKitID" },
+ { false, FT_BYTE, "GarrFollowerTypeID" },
+ { false, FT_BYTE, "HordeGarrFollRaceID" },
+ { false, FT_BYTE, "AllianceGarrFollRaceID" },
{ false, FT_BYTE, "Quality" },
{ false, FT_BYTE, "HordeGarrClassSpecID" },
{ false, FT_BYTE, "AllianceGarrClassSpecID" },
- { false, FT_BYTE, "Level" },
- { false, FT_BYTE, "Unknown1" },
+ { false, FT_BYTE, "FollowerLevel" },
+ { false, FT_BYTE, "Gender" },
{ false, FT_BYTE, "Flags" },
- { true, FT_BYTE, "Unknown2" },
- { true, FT_BYTE, "Unknown3" },
+ { true, FT_BYTE, "HordeSourceTypeEnum" },
+ { true, FT_BYTE, "AllianceSourceTypeEnum" },
{ false, FT_BYTE, "GarrTypeID" },
- { false, FT_BYTE, "MaxDurability" },
- { false, FT_BYTE, "Class" },
- { false, FT_BYTE, "HordeFlavorTextGarrStringID" },
- { false, FT_BYTE, "AllianceFlavorTextGarrStringID" },
+ { false, FT_BYTE, "Vitality" },
+ { false, FT_BYTE, "ChrClassID" },
+ { false, FT_BYTE, "HordeFlavorGarrStringID" },
+ { false, FT_BYTE, "AllianceFlavorGarrStringID" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrFollowerMeta::Instance(), HOTFIX_SEL_GARR_FOLLOWER);
@@ -1616,13 +1616,13 @@ struct GarrPlotLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_INT, "AllianceConstructionGameObjectID" },
- { false, FT_INT, "HordeConstructionGameObjectID" },
- { false, FT_BYTE, "GarrPlotUICategoryID" },
+ { true, FT_INT, "AllianceConstructObjID" },
+ { true, FT_INT, "HordeConstructObjID" },
+ { false, FT_BYTE, "UiCategoryID" },
{ false, FT_BYTE, "PlotType" },
{ false, FT_BYTE, "Flags" },
- { false, FT_INT, "MinCount" },
- { false, FT_INT, "MaxCount" },
+ { false, FT_INT, "UpgradeRequirement1" },
+ { false, FT_INT, "UpgradeRequirement2" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrPlotMeta::Instance(), HOTFIX_SEL_GARR_PLOT);
return &loadInfo;
@@ -1651,7 +1651,7 @@ struct GarrPlotInstanceLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "Name" },
+ { false, FT_STRING_NOT_LOCALIZED, "Name" },
{ false, FT_BYTE, "GarrPlotID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrPlotInstanceMeta::Instance(), HOTFIX_SEL_GARR_PLOT_INSTANCE);
@@ -1666,16 +1666,16 @@ struct GarrSiteLevelLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "TownHallX" },
- { false, FT_FLOAT, "TownHallY" },
+ { false, FT_FLOAT, "TownHallUiPosX" },
+ { false, FT_FLOAT, "TownHallUiPosY" },
{ false, FT_SHORT, "MapID" },
- { false, FT_SHORT, "SiteID" },
- { false, FT_SHORT, "MovieID" },
- { false, FT_SHORT, "UpgradeResourceCost" },
- { false, FT_SHORT, "UpgradeMoneyCost" },
- { false, FT_BYTE, "Level" },
- { false, FT_BYTE, "UITextureKitID" },
- { false, FT_BYTE, "Level2" },
+ { false, FT_SHORT, "UiTextureKitID" },
+ { false, FT_SHORT, "UpgradeMovieID" },
+ { false, FT_SHORT, "UpgradeCost" },
+ { false, FT_SHORT, "UpgradeGoldCost" },
+ { false, FT_BYTE, "GarrLevel" },
+ { false, FT_BYTE, "GarrSiteID" },
+ { false, FT_BYTE, "MaxBuildingLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrSiteLevelMeta::Instance(), HOTFIX_SEL_GARR_SITE_LEVEL);
return &loadInfo;
@@ -1689,11 +1689,11 @@ struct GarrSiteLevelPlotInstLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "LandmarkX" },
- { false, FT_FLOAT, "LandmarkY" },
+ { false, FT_FLOAT, "UiMarkerPosX" },
+ { false, FT_FLOAT, "UiMarkerPosY" },
{ false, FT_SHORT, "GarrSiteLevelID" },
{ false, FT_BYTE, "GarrPlotInstanceID" },
- { false, FT_BYTE, "Unknown" },
+ { false, FT_BYTE, "UiMarkerSize" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GarrSiteLevelPlotInstMeta::Instance(), HOTFIX_SEL_GARR_SITE_LEVEL_PLOT_INST);
return &loadInfo;
@@ -1708,7 +1708,7 @@ struct GemPropertiesLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "Type" },
- { false, FT_SHORT, "EnchantID" },
+ { false, FT_SHORT, "EnchantId" },
{ false, FT_SHORT, "MinItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GemPropertiesMeta::Instance(), HOTFIX_SEL_GEM_PROPERTIES);
@@ -1723,8 +1723,8 @@ struct GlyphBindableSpellLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_SHORT, "GlyphPropertiesID" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_SHORT, "GlyphPropertiesID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GlyphBindableSpellMeta::Instance(), HOTFIX_SEL_GLYPH_BINDABLE_SPELL);
return &loadInfo;
@@ -1740,7 +1740,7 @@ struct GlyphPropertiesLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_INT, "SpellID" },
{ false, FT_SHORT, "SpellIconID" },
- { false, FT_BYTE, "Type" },
+ { false, FT_BYTE, "GlyphType" },
{ false, FT_BYTE, "GlyphExclusiveCategoryID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GlyphPropertiesMeta::Instance(), HOTFIX_SEL_GLYPH_PROPERTIES);
@@ -1818,7 +1818,7 @@ struct GuildPerkSpellsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, GuildPerkSpellsMeta::Instance(), HOTFIX_SEL_GUILD_PERK_SPELLS);
return &loadInfo;
@@ -1832,18 +1832,18 @@ struct HeirloomLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "SourceText" },
- { false, FT_INT, "ItemID" },
- { false, FT_INT, "OldItem1" },
- { false, FT_INT, "OldItem2" },
- { false, FT_INT, "NextDifficultyItemID" },
- { false, FT_INT, "UpgradeItemID1" },
- { false, FT_INT, "UpgradeItemID2" },
- { false, FT_INT, "UpgradeItemID3" },
- { false, FT_SHORT, "ItemBonusListID1" },
- { false, FT_SHORT, "ItemBonusListID2" },
- { false, FT_SHORT, "ItemBonusListID3" },
+ { true, FT_INT, "ItemID" },
+ { true, FT_INT, "LegacyItemID" },
+ { true, FT_INT, "LegacyUpgradedItemID" },
+ { true, FT_INT, "StaticUpgradedItemID" },
+ { true, FT_INT, "UpgradeItemID1" },
+ { true, FT_INT, "UpgradeItemID2" },
+ { true, FT_INT, "UpgradeItemID3" },
+ { false, FT_SHORT, "UpgradeItemBonusListID1" },
+ { false, FT_SHORT, "UpgradeItemBonusListID2" },
+ { false, FT_SHORT, "UpgradeItemBonusListID3" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "Source" },
+ { true, FT_BYTE, "SourceTypeEnum" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, HeirloomMeta::Instance(), HOTFIX_SEL_HEIRLOOM);
@@ -1917,10 +1917,10 @@ struct ImportPriceArmorLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "ClothFactor" },
- { false, FT_FLOAT, "LeatherFactor" },
- { false, FT_FLOAT, "MailFactor" },
- { false, FT_FLOAT, "PlateFactor" },
+ { false, FT_FLOAT, "ClothModifier" },
+ { false, FT_FLOAT, "LeatherModifier" },
+ { false, FT_FLOAT, "ChainModifier" },
+ { false, FT_FLOAT, "PlateModifier" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ImportPriceArmorMeta::Instance(), HOTFIX_SEL_IMPORT_PRICE_ARMOR);
return &loadInfo;
@@ -1934,7 +1934,7 @@ struct ImportPriceQualityLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Factor" },
+ { false, FT_FLOAT, "Data" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ImportPriceQualityMeta::Instance(), HOTFIX_SEL_IMPORT_PRICE_QUALITY);
return &loadInfo;
@@ -1948,7 +1948,7 @@ struct ImportPriceShieldLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Factor" },
+ { false, FT_FLOAT, "Data" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ImportPriceShieldMeta::Instance(), HOTFIX_SEL_IMPORT_PRICE_SHIELD);
return &loadInfo;
@@ -1962,7 +1962,7 @@ struct ImportPriceWeaponLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Factor" },
+ { false, FT_FLOAT, "Data" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ImportPriceWeaponMeta::Instance(), HOTFIX_SEL_IMPORT_PRICE_WEAPON);
return &loadInfo;
@@ -1976,14 +1976,14 @@ struct ItemLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "FileDataID" },
- { false, FT_BYTE, "Class" },
- { false, FT_BYTE, "SubClass" },
- { true, FT_BYTE, "SoundOverrideSubclass" },
- { true, FT_BYTE, "Material" },
+ { true, FT_INT, "IconFileDataID" },
+ { false, FT_BYTE, "ClassID" },
+ { false, FT_BYTE, "SubclassID" },
+ { true, FT_BYTE, "SoundOverrideSubclassID" },
+ { false, FT_BYTE, "Material" },
{ false, FT_BYTE, "InventoryType" },
- { false, FT_BYTE, "Sheath" },
- { false, FT_BYTE, "GroupSoundsID" },
+ { false, FT_BYTE, "SheatheType" },
+ { false, FT_BYTE, "ItemGroupSoundsID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemMeta::Instance(), HOTFIX_SEL_ITEM);
return &loadInfo;
@@ -1997,10 +1997,10 @@ struct ItemAppearanceLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "DisplayID" },
- { false, FT_INT, "IconFileDataID" },
- { false, FT_INT, "UIOrder" },
- { false, FT_BYTE, "ObjectComponentSlot" },
+ { true, FT_INT, "ItemDisplayInfoID" },
+ { true, FT_INT, "DefaultIconFileDataID" },
+ { true, FT_INT, "UiOrder" },
+ { false, FT_BYTE, "DisplayType" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemAppearanceMeta::Instance(), HOTFIX_SEL_ITEM_APPEARANCE);
return &loadInfo;
@@ -2014,14 +2014,14 @@ struct ItemArmorQualityLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "QualityMod1" },
- { false, FT_FLOAT, "QualityMod2" },
- { false, FT_FLOAT, "QualityMod3" },
- { false, FT_FLOAT, "QualityMod4" },
- { false, FT_FLOAT, "QualityMod5" },
- { false, FT_FLOAT, "QualityMod6" },
- { false, FT_FLOAT, "QualityMod7" },
- { false, FT_SHORT, "ItemLevel" },
+ { false, FT_FLOAT, "Qualitymod1" },
+ { false, FT_FLOAT, "Qualitymod2" },
+ { false, FT_FLOAT, "Qualitymod3" },
+ { false, FT_FLOAT, "Qualitymod4" },
+ { false, FT_FLOAT, "Qualitymod5" },
+ { false, FT_FLOAT, "Qualitymod6" },
+ { false, FT_FLOAT, "Qualitymod7" },
+ { true, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemArmorQualityMeta::Instance(), HOTFIX_SEL_ITEM_ARMOR_QUALITY);
return &loadInfo;
@@ -2056,11 +2056,11 @@ struct ItemArmorTotalLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Value1" },
- { false, FT_FLOAT, "Value2" },
- { false, FT_FLOAT, "Value3" },
- { false, FT_FLOAT, "Value4" },
- { false, FT_SHORT, "ItemLevel" },
+ { false, FT_FLOAT, "Cloth" },
+ { false, FT_FLOAT, "Leather" },
+ { false, FT_FLOAT, "Mail" },
+ { false, FT_FLOAT, "Plate" },
+ { true, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemArmorTotalMeta::Instance(), HOTFIX_SEL_ITEM_ARMOR_TOTAL);
return &loadInfo;
@@ -2091,9 +2091,9 @@ struct ItemBonusLoadInfo
{ true, FT_INT, "Value1" },
{ true, FT_INT, "Value2" },
{ true, FT_INT, "Value3" },
- { false, FT_SHORT, "BonusListID" },
+ { false, FT_SHORT, "ParentItemBonusListID" },
{ false, FT_BYTE, "Type" },
- { false, FT_BYTE, "Index" },
+ { false, FT_BYTE, "OrderIndex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemBonusMeta::Instance(), HOTFIX_SEL_ITEM_BONUS);
return &loadInfo;
@@ -2106,7 +2106,7 @@ struct ItemBonusListLevelDeltaLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { true, FT_SHORT, "Delta" },
+ { true, FT_SHORT, "ItemLevelDelta" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemBonusListLevelDeltaMeta::Instance(), HOTFIX_SEL_ITEM_BONUS_LIST_LEVEL_DELTA);
@@ -2121,11 +2121,11 @@ struct ItemBonusTreeNodeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "SubTreeID" },
- { false, FT_SHORT, "BonusListID" },
- { false, FT_SHORT, "ItemLevelSelectorID" },
- { false, FT_BYTE, "BonusTreeModID" },
- { false, FT_SHORT, "BonusTreeID" },
+ { false, FT_SHORT, "ChildItemBonusTreeID" },
+ { false, FT_SHORT, "ChildItemBonusListID" },
+ { false, FT_SHORT, "ChildItemLevelSelectorID" },
+ { false, FT_BYTE, "ItemContext" },
+ { false, FT_SHORT, "ParentItemBonusTreeID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemBonusTreeNodeMeta::Instance(), HOTFIX_SEL_ITEM_BONUS_TREE_NODE);
return &loadInfo;
@@ -2139,9 +2139,9 @@ struct ItemChildEquipmentLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "AltItemID" },
- { false, FT_BYTE, "AltEquipmentSlot" },
- { false, FT_INT, "ItemID" },
+ { true, FT_INT, "ChildItemID" },
+ { false, FT_BYTE, "ChildItemEquipSlot" },
+ { true, FT_INT, "ParentItemID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemChildEquipmentMeta::Instance(), HOTFIX_SEL_ITEM_CHILD_EQUIPMENT);
return &loadInfo;
@@ -2155,9 +2155,9 @@ struct ItemClassLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "Name" },
- { false, FT_FLOAT, "PriceMod" },
- { false, FT_BYTE, "OldEnumValue" },
+ { false, FT_STRING, "ClassName" },
+ { false, FT_FLOAT, "PriceModifier" },
+ { true, FT_BYTE, "ClassID" },
{ false, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemClassMeta::Instance(), HOTFIX_SEL_ITEM_CLASS);
@@ -2172,7 +2172,7 @@ struct ItemCurrencyCostLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemId" },
+ { true, FT_INT, "ItemID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemCurrencyCostMeta::Instance(), HOTFIX_SEL_ITEM_CURRENCY_COST);
return &loadInfo;
@@ -2186,13 +2186,13 @@ struct ItemDamageAmmoLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DPS1" },
- { false, FT_FLOAT, "DPS2" },
- { false, FT_FLOAT, "DPS3" },
- { false, FT_FLOAT, "DPS4" },
- { false, FT_FLOAT, "DPS5" },
- { false, FT_FLOAT, "DPS6" },
- { false, FT_FLOAT, "DPS7" },
+ { false, FT_FLOAT, "Quality1" },
+ { false, FT_FLOAT, "Quality2" },
+ { false, FT_FLOAT, "Quality3" },
+ { false, FT_FLOAT, "Quality4" },
+ { false, FT_FLOAT, "Quality5" },
+ { false, FT_FLOAT, "Quality6" },
+ { false, FT_FLOAT, "Quality7" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDamageAmmoMeta::Instance(), HOTFIX_SEL_ITEM_DAMAGE_AMMO);
@@ -2207,13 +2207,13 @@ struct ItemDamageOneHandLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DPS1" },
- { false, FT_FLOAT, "DPS2" },
- { false, FT_FLOAT, "DPS3" },
- { false, FT_FLOAT, "DPS4" },
- { false, FT_FLOAT, "DPS5" },
- { false, FT_FLOAT, "DPS6" },
- { false, FT_FLOAT, "DPS7" },
+ { false, FT_FLOAT, "Quality1" },
+ { false, FT_FLOAT, "Quality2" },
+ { false, FT_FLOAT, "Quality3" },
+ { false, FT_FLOAT, "Quality4" },
+ { false, FT_FLOAT, "Quality5" },
+ { false, FT_FLOAT, "Quality6" },
+ { false, FT_FLOAT, "Quality7" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDamageOneHandMeta::Instance(), HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND);
@@ -2228,13 +2228,13 @@ struct ItemDamageOneHandCasterLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DPS1" },
- { false, FT_FLOAT, "DPS2" },
- { false, FT_FLOAT, "DPS3" },
- { false, FT_FLOAT, "DPS4" },
- { false, FT_FLOAT, "DPS5" },
- { false, FT_FLOAT, "DPS6" },
- { false, FT_FLOAT, "DPS7" },
+ { false, FT_FLOAT, "Quality1" },
+ { false, FT_FLOAT, "Quality2" },
+ { false, FT_FLOAT, "Quality3" },
+ { false, FT_FLOAT, "Quality4" },
+ { false, FT_FLOAT, "Quality5" },
+ { false, FT_FLOAT, "Quality6" },
+ { false, FT_FLOAT, "Quality7" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDamageOneHandCasterMeta::Instance(), HOTFIX_SEL_ITEM_DAMAGE_ONE_HAND_CASTER);
@@ -2249,13 +2249,13 @@ struct ItemDamageTwoHandLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DPS1" },
- { false, FT_FLOAT, "DPS2" },
- { false, FT_FLOAT, "DPS3" },
- { false, FT_FLOAT, "DPS4" },
- { false, FT_FLOAT, "DPS5" },
- { false, FT_FLOAT, "DPS6" },
- { false, FT_FLOAT, "DPS7" },
+ { false, FT_FLOAT, "Quality1" },
+ { false, FT_FLOAT, "Quality2" },
+ { false, FT_FLOAT, "Quality3" },
+ { false, FT_FLOAT, "Quality4" },
+ { false, FT_FLOAT, "Quality5" },
+ { false, FT_FLOAT, "Quality6" },
+ { false, FT_FLOAT, "Quality7" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDamageTwoHandMeta::Instance(), HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND);
@@ -2270,13 +2270,13 @@ struct ItemDamageTwoHandCasterLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "DPS1" },
- { false, FT_FLOAT, "DPS2" },
- { false, FT_FLOAT, "DPS3" },
- { false, FT_FLOAT, "DPS4" },
- { false, FT_FLOAT, "DPS5" },
- { false, FT_FLOAT, "DPS6" },
- { false, FT_FLOAT, "DPS7" },
+ { false, FT_FLOAT, "Quality1" },
+ { false, FT_FLOAT, "Quality2" },
+ { false, FT_FLOAT, "Quality3" },
+ { false, FT_FLOAT, "Quality4" },
+ { false, FT_FLOAT, "Quality5" },
+ { false, FT_FLOAT, "Quality6" },
+ { false, FT_FLOAT, "Quality7" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDamageTwoHandCasterMeta::Instance(), HOTFIX_SEL_ITEM_DAMAGE_TWO_HAND_CASTER);
@@ -2291,13 +2291,13 @@ struct ItemDisenchantLootLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "MinItemLevel" },
- { false, FT_SHORT, "MaxItemLevel" },
- { false, FT_SHORT, "RequiredDisenchantSkill" },
- { true, FT_BYTE, "ItemSubClass" },
- { false, FT_BYTE, "ItemQuality" },
- { true, FT_BYTE, "Expansion" },
- { false, FT_BYTE, "ItemClass" },
+ { false, FT_SHORT, "MinLevel" },
+ { false, FT_SHORT, "MaxLevel" },
+ { false, FT_SHORT, "SkillRequired" },
+ { true, FT_BYTE, "Subclass" },
+ { false, FT_BYTE, "Quality" },
+ { true, FT_BYTE, "ExpansionID" },
+ { false, FT_BYTE, "Class" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemDisenchantLootMeta::Instance(), HOTFIX_SEL_ITEM_DISENCHANT_LOOT);
return &loadInfo;
@@ -2311,15 +2311,15 @@ struct ItemEffectLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { true, FT_INT, "Cooldown" },
- { true, FT_INT, "CategoryCooldown" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "CoolDownMSec" },
+ { true, FT_INT, "CategoryCoolDownMSec" },
{ true, FT_SHORT, "Charges" },
- { false, FT_SHORT, "Category" },
+ { false, FT_SHORT, "SpellCategoryID" },
{ false, FT_SHORT, "ChrSpecializationID" },
- { false, FT_BYTE, "OrderIndex" },
- { false, FT_BYTE, "Trigger" },
- { false, FT_INT, "ItemID" },
+ { false, FT_BYTE, "LegacySlotIndex" },
+ { true, FT_BYTE, "TriggerType" },
+ { true, FT_INT, "ParentItemID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemEffectMeta::Instance(), HOTFIX_SEL_ITEM_EFFECT);
return &loadInfo;
@@ -2333,31 +2333,31 @@ struct ItemExtendedCostLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "RequiredItem1" },
- { false, FT_INT, "RequiredItem2" },
- { false, FT_INT, "RequiredItem3" },
- { false, FT_INT, "RequiredItem4" },
- { false, FT_INT, "RequiredItem5" },
- { false, FT_INT, "RequiredCurrencyCount1" },
- { false, FT_INT, "RequiredCurrencyCount2" },
- { false, FT_INT, "RequiredCurrencyCount3" },
- { false, FT_INT, "RequiredCurrencyCount4" },
- { false, FT_INT, "RequiredCurrencyCount5" },
- { false, FT_SHORT, "RequiredItemCount1" },
- { false, FT_SHORT, "RequiredItemCount2" },
- { false, FT_SHORT, "RequiredItemCount3" },
- { false, FT_SHORT, "RequiredItemCount4" },
- { false, FT_SHORT, "RequiredItemCount5" },
- { false, FT_SHORT, "RequiredPersonalArenaRating" },
- { false, FT_SHORT, "RequiredCurrency1" },
- { false, FT_SHORT, "RequiredCurrency2" },
- { false, FT_SHORT, "RequiredCurrency3" },
- { false, FT_SHORT, "RequiredCurrency4" },
- { false, FT_SHORT, "RequiredCurrency5" },
- { false, FT_BYTE, "RequiredArenaSlot" },
- { false, FT_BYTE, "RequiredFactionId" },
- { false, FT_BYTE, "RequiredFactionStanding" },
- { false, FT_BYTE, "RequirementFlags" },
+ { true, FT_INT, "ItemID1" },
+ { true, FT_INT, "ItemID2" },
+ { true, FT_INT, "ItemID3" },
+ { true, FT_INT, "ItemID4" },
+ { true, FT_INT, "ItemID5" },
+ { false, FT_INT, "CurrencyCount1" },
+ { false, FT_INT, "CurrencyCount2" },
+ { false, FT_INT, "CurrencyCount3" },
+ { false, FT_INT, "CurrencyCount4" },
+ { false, FT_INT, "CurrencyCount5" },
+ { false, FT_SHORT, "ItemCount1" },
+ { false, FT_SHORT, "ItemCount2" },
+ { false, FT_SHORT, "ItemCount3" },
+ { false, FT_SHORT, "ItemCount4" },
+ { false, FT_SHORT, "ItemCount5" },
+ { false, FT_SHORT, "RequiredArenaRating" },
+ { false, FT_SHORT, "CurrencyID1" },
+ { false, FT_SHORT, "CurrencyID2" },
+ { false, FT_SHORT, "CurrencyID3" },
+ { false, FT_SHORT, "CurrencyID4" },
+ { false, FT_SHORT, "CurrencyID5" },
+ { false, FT_BYTE, "ArenaBracket" },
+ { false, FT_BYTE, "MinFactionID" },
+ { false, FT_BYTE, "MinReputation" },
+ { false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "RequiredAchievement" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemExtendedCostMeta::Instance(), HOTFIX_SEL_ITEM_EXTENDED_COST);
@@ -2372,7 +2372,7 @@ struct ItemLevelSelectorLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "ItemLevel" },
+ { false, FT_SHORT, "MinItemLevel" },
{ false, FT_SHORT, "ItemLevelSelectorQualitySetID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR);
@@ -2387,9 +2387,9 @@ struct ItemLevelSelectorQualityLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemBonusListID" },
- { false, FT_BYTE, "Quality" },
- { false, FT_SHORT, "ItemLevelSelectorQualitySetID" },
+ { true, FT_INT, "QualityItemBonusListID" },
+ { true, FT_BYTE, "Quality" },
+ { true, FT_SHORT, "ParentILSQualitySetID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorQualityMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY);
return &loadInfo;
@@ -2403,8 +2403,8 @@ struct ItemLevelSelectorQualitySetLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "ItemLevelMin" },
- { false, FT_SHORT, "ItemLevelMax" },
+ { true, FT_SHORT, "IlvlRare" },
+ { true, FT_SHORT, "IlvlEpic" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemLevelSelectorQualitySetMeta::Instance(), HOTFIX_SEL_ITEM_LEVEL_SELECTOR_QUALITY_SET);
return &loadInfo;
@@ -2433,12 +2433,12 @@ struct ItemModifiedAppearanceLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_INT, "ItemID" },
+ { true, FT_INT, "ItemID" },
{ false, FT_INT, "ID" },
- { false, FT_BYTE, "AppearanceModID" },
- { false, FT_SHORT, "AppearanceID" },
- { false, FT_BYTE, "Index" },
- { false, FT_BYTE, "SourceType" },
+ { false, FT_BYTE, "ItemAppearanceModifierID" },
+ { false, FT_SHORT, "ItemAppearanceID" },
+ { false, FT_BYTE, "OrderIndex" },
+ { true, FT_BYTE, "TransmogSourceTypeEnum" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemModifiedAppearanceMeta::Instance(), HOTFIX_SEL_ITEM_MODIFIED_APPEARANCE);
return &loadInfo;
@@ -2452,8 +2452,8 @@ struct ItemPriceBaseLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "ArmorFactor" },
- { false, FT_FLOAT, "WeaponFactor" },
+ { false, FT_FLOAT, "Armor" },
+ { false, FT_FLOAT, "Weapon" },
{ false, FT_SHORT, "ItemLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemPriceBaseMeta::Instance(), HOTFIX_SEL_ITEM_PRICE_BASE);
@@ -2510,22 +2510,22 @@ struct ItemSearchNameLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_LONG, "AllowableRace" },
- { false, FT_STRING, "Name" },
+ { true, FT_LONG, "AllowableRace" },
+ { false, FT_STRING, "Display" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "Flags1" },
- { false, FT_INT, "Flags2" },
- { false, FT_INT, "Flags3" },
+ { true, FT_INT, "Flags1" },
+ { true, FT_INT, "Flags2" },
+ { true, FT_INT, "Flags3" },
{ false, FT_SHORT, "ItemLevel" },
- { false, FT_BYTE, "Quality" },
- { false, FT_BYTE, "RequiredExpansion" },
- { false, FT_BYTE, "RequiredLevel" },
- { false, FT_SHORT, "RequiredReputationFaction" },
- { false, FT_BYTE, "RequiredReputationRank" },
+ { false, FT_BYTE, "OverallQualityID" },
+ { false, FT_BYTE, "ExpansionID" },
+ { true, FT_BYTE, "RequiredLevel" },
+ { false, FT_SHORT, "MinFactionID" },
+ { false, FT_BYTE, "MinReputation" },
{ true, FT_INT, "AllowableClass" },
{ false, FT_SHORT, "RequiredSkill" },
{ false, FT_SHORT, "RequiredSkillRank" },
- { false, FT_INT, "RequiredSpell" },
+ { false, FT_INT, "RequiredAbility" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemSearchNameMeta::Instance(), HOTFIX_SEL_ITEM_SEARCH_NAME);
return &loadInfo;
@@ -2559,7 +2559,7 @@ struct ItemSetLoadInfo
{ false, FT_INT, "ItemID17" },
{ false, FT_SHORT, "RequiredSkillRank" },
{ false, FT_INT, "RequiredSkill" },
- { false, FT_INT, "Flags" },
+ { false, FT_INT, "SetFlags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemSetMeta::Instance(), HOTFIX_SEL_ITEM_SET);
return &loadInfo;
@@ -2591,53 +2591,53 @@ struct ItemSparseLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_LONG, "AllowableRace" },
- { false, FT_STRING, "Name" },
- { false, FT_STRING, "Name2" },
- { false, FT_STRING, "Name3" },
- { false, FT_STRING, "Name4" },
+ { false, FT_STRING, "Display" },
+ { false, FT_STRING, "Display1" },
+ { false, FT_STRING, "Display2" },
+ { false, FT_STRING, "Display3" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "Flags1" },
- { false, FT_INT, "Flags2" },
- { false, FT_INT, "Flags3" },
- { false, FT_INT, "Flags4" },
- { false, FT_FLOAT, "Unk1" },
- { false, FT_FLOAT, "Unk2" },
- { false, FT_INT, "BuyCount" },
+ { true, FT_INT, "Flags1" },
+ { true, FT_INT, "Flags2" },
+ { true, FT_INT, "Flags3" },
+ { true, FT_INT, "Flags4" },
+ { false, FT_FLOAT, "PriceRandomValue" },
+ { false, FT_FLOAT, "PriceVariance" },
+ { false, FT_INT, "VendorStackCount" },
{ false, FT_INT, "BuyPrice" },
{ false, FT_INT, "SellPrice" },
- { false, FT_INT, "RequiredSpell" },
- { false, FT_INT, "MaxCount" },
- { false, FT_INT, "Stackable" },
- { true, FT_INT, "ItemStatAllocation1" },
- { true, FT_INT, "ItemStatAllocation2" },
- { true, FT_INT, "ItemStatAllocation3" },
- { true, FT_INT, "ItemStatAllocation4" },
- { true, FT_INT, "ItemStatAllocation5" },
- { true, FT_INT, "ItemStatAllocation6" },
- { true, FT_INT, "ItemStatAllocation7" },
- { true, FT_INT, "ItemStatAllocation8" },
- { true, FT_INT, "ItemStatAllocation9" },
- { true, FT_INT, "ItemStatAllocation10" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier1" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier2" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier3" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier4" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier5" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier6" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier7" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier8" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier9" },
- { false, FT_FLOAT, "ItemStatSocketCostMultiplier10" },
- { false, FT_FLOAT, "RangedModRange" },
+ { false, FT_INT, "RequiredAbility" },
+ { true, FT_INT, "MaxCount" },
+ { true, FT_INT, "Stackable" },
+ { true, FT_INT, "StatPercentEditor1" },
+ { true, FT_INT, "StatPercentEditor2" },
+ { true, FT_INT, "StatPercentEditor3" },
+ { true, FT_INT, "StatPercentEditor4" },
+ { true, FT_INT, "StatPercentEditor5" },
+ { true, FT_INT, "StatPercentEditor6" },
+ { true, FT_INT, "StatPercentEditor7" },
+ { true, FT_INT, "StatPercentEditor8" },
+ { true, FT_INT, "StatPercentEditor9" },
+ { true, FT_INT, "StatPercentEditor10" },
+ { false, FT_FLOAT, "StatPercentageOfSocket1" },
+ { false, FT_FLOAT, "StatPercentageOfSocket2" },
+ { false, FT_FLOAT, "StatPercentageOfSocket3" },
+ { false, FT_FLOAT, "StatPercentageOfSocket4" },
+ { false, FT_FLOAT, "StatPercentageOfSocket5" },
+ { false, FT_FLOAT, "StatPercentageOfSocket6" },
+ { false, FT_FLOAT, "StatPercentageOfSocket7" },
+ { false, FT_FLOAT, "StatPercentageOfSocket8" },
+ { false, FT_FLOAT, "StatPercentageOfSocket9" },
+ { false, FT_FLOAT, "StatPercentageOfSocket10" },
+ { false, FT_FLOAT, "ItemRange" },
{ false, FT_INT, "BagFamily" },
- { false, FT_FLOAT, "ArmorDamageModifier" },
- { false, FT_INT, "Duration" },
- { false, FT_FLOAT, "StatScalingFactor" },
+ { false, FT_FLOAT, "QualityModifier" },
+ { false, FT_INT, "DurationInInventory" },
+ { false, FT_FLOAT, "DmgVariance" },
{ true, FT_SHORT, "AllowableClass" },
{ false, FT_SHORT, "ItemLevel" },
{ false, FT_SHORT, "RequiredSkill" },
{ false, FT_SHORT, "RequiredSkillRank" },
- { false, FT_SHORT, "RequiredReputationFaction" },
+ { false, FT_SHORT, "MinFactionID" },
{ true, FT_SHORT, "ItemStatValue1" },
{ true, FT_SHORT, "ItemStatValue2" },
{ true, FT_SHORT, "ItemStatValue3" },
@@ -2648,53 +2648,53 @@ struct ItemSparseLoadInfo
{ true, FT_SHORT, "ItemStatValue8" },
{ true, FT_SHORT, "ItemStatValue9" },
{ true, FT_SHORT, "ItemStatValue10" },
- { false, FT_SHORT, "ScalingStatDistribution" },
- { false, FT_SHORT, "Delay" },
- { false, FT_SHORT, "PageText" },
- { false, FT_SHORT, "StartQuest" },
+ { false, FT_SHORT, "ScalingStatDistributionID" },
+ { false, FT_SHORT, "ItemDelay" },
+ { false, FT_SHORT, "PageID" },
+ { false, FT_SHORT, "StartQuestID" },
{ false, FT_SHORT, "LockID" },
- { false, FT_SHORT, "RandomProperty" },
- { false, FT_SHORT, "RandomSuffix" },
+ { false, FT_SHORT, "RandomSelect" },
+ { false, FT_SHORT, "ItemRandomSuffixGroupID" },
{ false, FT_SHORT, "ItemSet" },
- { false, FT_SHORT, "Area" },
- { false, FT_SHORT, "Map" },
- { false, FT_SHORT, "TotemCategory" },
- { false, FT_SHORT, "SocketBonus" },
+ { false, FT_SHORT, "ZoneBound" },
+ { false, FT_SHORT, "InstanceBound" },
+ { false, FT_SHORT, "TotemCategoryID" },
+ { false, FT_SHORT, "SocketMatchEnchantmentId" },
{ false, FT_SHORT, "GemProperties" },
- { false, FT_SHORT, "ItemLimitCategory" },
- { false, FT_SHORT, "HolidayID" },
- { false, FT_SHORT, "RequiredTransmogHolidayID" },
+ { false, FT_SHORT, "LimitCategory" },
+ { false, FT_SHORT, "RequiredHoliday" },
+ { false, FT_SHORT, "RequiredTransmogHoliday" },
{ false, FT_SHORT, "ItemNameDescriptionID" },
- { false, FT_BYTE, "Quality" },
+ { false, FT_BYTE, "OverallQualityID" },
{ false, FT_BYTE, "InventoryType" },
{ true, FT_BYTE, "RequiredLevel" },
- { false, FT_BYTE, "RequiredHonorRank" },
- { false, FT_BYTE, "RequiredCityRank" },
- { false, FT_BYTE, "RequiredReputationRank" },
+ { false, FT_BYTE, "RequiredPVPRank" },
+ { false, FT_BYTE, "RequiredPVPMedal" },
+ { false, FT_BYTE, "MinReputation" },
{ false, FT_BYTE, "ContainerSlots" },
- { true, FT_BYTE, "ItemStatType1" },
- { true, FT_BYTE, "ItemStatType2" },
- { true, FT_BYTE, "ItemStatType3" },
- { true, FT_BYTE, "ItemStatType4" },
- { true, FT_BYTE, "ItemStatType5" },
- { true, FT_BYTE, "ItemStatType6" },
- { true, FT_BYTE, "ItemStatType7" },
- { true, FT_BYTE, "ItemStatType8" },
- { true, FT_BYTE, "ItemStatType9" },
- { true, FT_BYTE, "ItemStatType10" },
- { false, FT_BYTE, "DamageType" },
+ { true, FT_BYTE, "StatModifierBonusStat1" },
+ { true, FT_BYTE, "StatModifierBonusStat2" },
+ { true, FT_BYTE, "StatModifierBonusStat3" },
+ { true, FT_BYTE, "StatModifierBonusStat4" },
+ { true, FT_BYTE, "StatModifierBonusStat5" },
+ { true, FT_BYTE, "StatModifierBonusStat6" },
+ { true, FT_BYTE, "StatModifierBonusStat7" },
+ { true, FT_BYTE, "StatModifierBonusStat8" },
+ { true, FT_BYTE, "StatModifierBonusStat9" },
+ { true, FT_BYTE, "StatModifierBonusStat10" },
+ { false, FT_BYTE, "DamageDamageType" },
{ false, FT_BYTE, "Bonding" },
{ false, FT_BYTE, "LanguageID" },
- { false, FT_BYTE, "PageMaterial" },
- { true, FT_BYTE, "Material" },
- { false, FT_BYTE, "Sheath" },
- { false, FT_BYTE, "SocketColor1" },
- { false, FT_BYTE, "SocketColor2" },
- { false, FT_BYTE, "SocketColor3" },
- { false, FT_BYTE, "CurrencySubstitutionID" },
- { false, FT_BYTE, "CurrencySubstitutionCount" },
+ { false, FT_BYTE, "PageMaterialID" },
+ { false, FT_BYTE, "Material" },
+ { false, FT_BYTE, "SheatheType" },
+ { false, FT_BYTE, "SocketType1" },
+ { false, FT_BYTE, "SocketType2" },
+ { false, FT_BYTE, "SocketType3" },
+ { false, FT_BYTE, "SpellWeightCategory" },
+ { false, FT_BYTE, "SpellWeight" },
{ false, FT_BYTE, "ArtifactID" },
- { false, FT_BYTE, "RequiredExpansion" },
+ { false, FT_BYTE, "ExpansionID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemSparseMeta::Instance(), HOTFIX_SEL_ITEM_SPARSE);
return &loadInfo;
@@ -2708,7 +2708,7 @@ struct ItemSpecLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "SpecID" },
+ { false, FT_SHORT, "SpecializationID" },
{ false, FT_BYTE, "MinLevel" },
{ false, FT_BYTE, "MaxLevel" },
{ false, FT_BYTE, "ItemType" },
@@ -2728,7 +2728,7 @@ struct ItemSpecOverrideLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_SHORT, "SpecID" },
- { false, FT_INT, "ItemID" },
+ { true, FT_INT, "ItemID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemSpecOverrideMeta::Instance(), HOTFIX_SEL_ITEM_SPEC_OVERRIDE);
return &loadInfo;
@@ -2742,11 +2742,11 @@ struct ItemUpgradeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "CurrencyCost" },
- { false, FT_SHORT, "PrevItemUpgradeID" },
- { false, FT_SHORT, "CurrencyID" },
+ { false, FT_INT, "CurrencyAmount" },
+ { false, FT_SHORT, "PrerequisiteID" },
+ { false, FT_SHORT, "CurrencyType" },
{ false, FT_BYTE, "ItemUpgradePathID" },
- { false, FT_BYTE, "ItemLevelBonus" },
+ { false, FT_BYTE, "ItemLevelIncrement" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemUpgradeMeta::Instance(), HOTFIX_SEL_ITEM_UPGRADE);
return &loadInfo;
@@ -2760,8 +2760,8 @@ struct ItemXBonusTreeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "BonusTreeID" },
- { false, FT_INT, "ItemID" },
+ { false, FT_SHORT, "ItemBonusTreeID" },
+ { true, FT_INT, "ItemID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ItemXBonusTreeMeta::Instance(), HOTFIX_SEL_ITEM_X_BONUS_TREE);
return &loadInfo;
@@ -2822,24 +2822,24 @@ struct LfgDungeonsLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
- { false, FT_INT, "Flags" },
- { false, FT_FLOAT, "MinItemLevel" },
+ { true, FT_INT, "Flags" },
+ { false, FT_FLOAT, "MinGear" },
{ false, FT_SHORT, "MaxLevel" },
{ false, FT_SHORT, "TargetLevelMax" },
{ true, FT_SHORT, "MapID" },
{ false, FT_SHORT, "RandomID" },
{ false, FT_SHORT, "ScenarioID" },
- { false, FT_SHORT, "LastBossJournalEncounterID" },
+ { false, FT_SHORT, "FinalEncounterID" },
{ false, FT_SHORT, "BonusReputationAmount" },
{ false, FT_SHORT, "MentorItemLevel" },
- { false, FT_SHORT, "PlayerConditionID" },
+ { false, FT_SHORT, "RequiredPlayerConditionId" },
{ false, FT_BYTE, "MinLevel" },
{ false, FT_BYTE, "TargetLevel" },
{ false, FT_BYTE, "TargetLevelMin" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "Type" },
- { false, FT_BYTE, "Faction" },
- { false, FT_BYTE, "Expansion" },
+ { false, FT_BYTE, "TypeID" },
+ { true, FT_BYTE, "Faction" },
+ { false, FT_BYTE, "ExpansionLevel" },
{ false, FT_BYTE, "OrderIndex" },
{ false, FT_BYTE, "GroupID" },
{ false, FT_BYTE, "CountTank" },
@@ -2848,11 +2848,11 @@ struct LfgDungeonsLoadInfo
{ false, FT_BYTE, "MinCountTank" },
{ false, FT_BYTE, "MinCountHealer" },
{ false, FT_BYTE, "MinCountDamage" },
- { false, FT_BYTE, "SubType" },
+ { false, FT_BYTE, "Subtype" },
{ false, FT_BYTE, "MentorCharLevel" },
- { true, FT_INT, "TextureFileDataID" },
- { true, FT_INT, "RewardIconFileDataID" },
- { true, FT_INT, "ProposalTextureFileDataID" },
+ { true, FT_INT, "IconTextureFileID" },
+ { true, FT_INT, "RewardsBgTextureFileID" },
+ { true, FT_INT, "PopupBgTextureFileID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, LFGDungeonsMeta::Instance(), HOTFIX_SEL_LFG_DUNGEONS);
return &loadInfo;
@@ -2866,12 +2866,12 @@ struct LightLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "PosX" },
- { false, FT_FLOAT, "PosY" },
- { false, FT_FLOAT, "PosZ" },
- { false, FT_FLOAT, "FalloffStart" },
- { false, FT_FLOAT, "FalloffEnd" },
- { false, FT_SHORT, "MapID" },
+ { false, FT_FLOAT, "GameCoordsX" },
+ { false, FT_FLOAT, "GameCoordsY" },
+ { false, FT_FLOAT, "GameCoordsZ" },
+ { false, FT_FLOAT, "GameFalloffStart" },
+ { false, FT_FLOAT, "GameFalloffEnd" },
+ { true, FT_SHORT, "ContinentID" },
{ false, FT_SHORT, "LightParamsID1" },
{ false, FT_SHORT, "LightParamsID2" },
{ false, FT_SHORT, "LightParamsID3" },
@@ -2893,7 +2893,7 @@ struct LiquidTypeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "Name" },
+ { false, FT_STRING_NOT_LOCALIZED, "Name" },
{ false, FT_STRING_NOT_LOCALIZED, "Texture1" },
{ false, FT_STRING_NOT_LOCALIZED, "Texture2" },
{ false, FT_STRING_NOT_LOCALIZED, "Texture3" },
@@ -2906,8 +2906,8 @@ struct LiquidTypeLoadInfo
{ false, FT_FLOAT, "AmbDarkenIntensity" },
{ false, FT_FLOAT, "DirDarkenIntensity" },
{ false, FT_FLOAT, "ParticleScale" },
- { false, FT_INT, "Color1" },
- { false, FT_INT, "Color2" },
+ { true, FT_INT, "Color1" },
+ { true, FT_INT, "Color2" },
{ false, FT_FLOAT, "Float1" },
{ false, FT_FLOAT, "Float2" },
{ false, FT_FLOAT, "Float3" },
@@ -2932,16 +2932,16 @@ struct LiquidTypeLoadInfo
{ false, FT_INT, "Int4" },
{ false, FT_SHORT, "Flags" },
{ false, FT_SHORT, "LightID" },
- { false, FT_BYTE, "Type" },
+ { false, FT_BYTE, "SoundBank" },
{ false, FT_BYTE, "ParticleMovement" },
{ false, FT_BYTE, "ParticleTexSlots" },
{ false, FT_BYTE, "MaterialID" },
- { false, FT_BYTE, "DepthTexCount1" },
- { false, FT_BYTE, "DepthTexCount2" },
- { false, FT_BYTE, "DepthTexCount3" },
- { false, FT_BYTE, "DepthTexCount4" },
- { false, FT_BYTE, "DepthTexCount5" },
- { false, FT_BYTE, "DepthTexCount6" },
+ { false, FT_BYTE, "FrameCountTexture1" },
+ { false, FT_BYTE, "FrameCountTexture2" },
+ { false, FT_BYTE, "FrameCountTexture3" },
+ { false, FT_BYTE, "FrameCountTexture4" },
+ { false, FT_BYTE, "FrameCountTexture5" },
+ { false, FT_BYTE, "FrameCountTexture6" },
{ false, FT_INT, "SoundID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, LiquidTypeMeta::Instance(), HOTFIX_SEL_LIQUID_TYPE);
@@ -2956,14 +2956,14 @@ struct LockLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Index1" },
- { false, FT_INT, "Index2" },
- { false, FT_INT, "Index3" },
- { false, FT_INT, "Index4" },
- { false, FT_INT, "Index5" },
- { false, FT_INT, "Index6" },
- { false, FT_INT, "Index7" },
- { false, FT_INT, "Index8" },
+ { true, FT_INT, "Index1" },
+ { true, FT_INT, "Index2" },
+ { true, FT_INT, "Index3" },
+ { true, FT_INT, "Index4" },
+ { true, FT_INT, "Index5" },
+ { true, FT_INT, "Index6" },
+ { true, FT_INT, "Index7" },
+ { true, FT_INT, "Index8" },
{ false, FT_SHORT, "Skill1" },
{ false, FT_SHORT, "Skill2" },
{ false, FT_SHORT, "Skill3" },
@@ -3019,22 +3019,22 @@ struct MapLoadInfo
{ false, FT_STRING, "MapName" },
{ false, FT_STRING, "MapDescription0" },
{ false, FT_STRING, "MapDescription1" },
- { false, FT_STRING, "ShortDescription" },
- { false, FT_STRING, "LongDescription" },
- { false, FT_INT, "Flags1" },
- { false, FT_INT, "Flags2" },
+ { false, FT_STRING, "PvpShortDescription" },
+ { false, FT_STRING, "PvpLongDescription" },
+ { true, FT_INT, "Flags1" },
+ { true, FT_INT, "Flags2" },
{ false, FT_FLOAT, "MinimapIconScale" },
- { false, FT_FLOAT, "CorpsePosX" },
- { false, FT_FLOAT, "CorpsePosY" },
+ { false, FT_FLOAT, "CorpseX" },
+ { false, FT_FLOAT, "CorpseY" },
{ false, FT_SHORT, "AreaTableID" },
- { false, FT_SHORT, "LoadingScreenID" },
+ { true, FT_SHORT, "LoadingScreenID" },
{ true, FT_SHORT, "CorpseMapID" },
- { false, FT_SHORT, "TimeOfDayOverride" },
+ { true, FT_SHORT, "TimeOfDayOverride" },
{ true, FT_SHORT, "ParentMapID" },
{ true, FT_SHORT, "CosmeticParentMapID" },
- { false, FT_SHORT, "WindSettingsID" },
+ { true, FT_SHORT, "WindSettingsID" },
{ false, FT_BYTE, "InstanceType" },
- { false, FT_BYTE, "unk5" },
+ { false, FT_BYTE, "MapType" },
{ false, FT_BYTE, "ExpansionID" },
{ false, FT_BYTE, "MaxPlayers" },
{ false, FT_BYTE, "TimeOffset" },
@@ -3053,12 +3053,12 @@ struct MapDifficultyLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Message" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "RaidDurationType" },
+ { false, FT_BYTE, "ResetInterval" },
{ false, FT_BYTE, "MaxPlayers" },
{ false, FT_BYTE, "LockID" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "ItemBonusTreeModID" },
- { false, FT_INT, "Context" },
+ { false, FT_BYTE, "ItemContext" },
+ { false, FT_INT, "ItemContextPickerID" },
{ false, FT_SHORT, "MapID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, MapDifficultyMeta::Instance(), HOTFIX_SEL_MAP_DIFFICULTY);
@@ -3073,13 +3073,13 @@ struct ModifierTreeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Asset1" },
- { false, FT_INT, "Asset2" },
+ { true, FT_INT, "Asset" },
+ { true, FT_INT, "SecondaryAsset" },
{ false, FT_INT, "Parent" },
{ false, FT_BYTE, "Type" },
- { false, FT_BYTE, "Unk700" },
- { false, FT_BYTE, "Operator" },
- { false, FT_BYTE, "Amount" },
+ { true, FT_BYTE, "TertiaryAsset" },
+ { true, FT_BYTE, "Operator" },
+ { true, FT_BYTE, "Amount" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ModifierTreeMeta::Instance(), HOTFIX_SEL_MODIFIER_TREE);
return &loadInfo;
@@ -3094,14 +3094,14 @@ struct MountLoadInfo
{
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
- { false, FT_STRING, "SourceDescription" },
- { false, FT_INT, "SpellId" },
- { false, FT_FLOAT, "CameraPivotMultiplier" },
- { false, FT_SHORT, "MountTypeId" },
+ { false, FT_STRING, "SourceText" },
+ { true, FT_INT, "SourceSpellID" },
+ { false, FT_FLOAT, "MountFlyRideHeight" },
+ { false, FT_SHORT, "MountTypeID" },
{ false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "Source" },
+ { true, FT_BYTE, "SourceTypeEnum" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "PlayerConditionId" },
+ { false, FT_INT, "PlayerConditionID" },
{ true, FT_INT, "UiModelSceneID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, MountMeta::Instance(), HOTFIX_SEL_MOUNT);
@@ -3115,14 +3115,14 @@ struct MountCapabilityLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_INT, "RequiredSpell" },
- { false, FT_INT, "SpeedModSpell" },
- { false, FT_SHORT, "RequiredRidingSkill" },
- { false, FT_SHORT, "RequiredArea" },
- { true, FT_SHORT, "RequiredMap" },
+ { true, FT_INT, "ReqSpellKnownID" },
+ { true, FT_INT, "ModSpellAuraID" },
+ { false, FT_SHORT, "ReqRidingSkill" },
+ { false, FT_SHORT, "ReqAreaID" },
+ { true, FT_SHORT, "ReqMapID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "RequiredAura" },
+ { false, FT_INT, "ReqSpellAuraID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, MountCapabilityMeta::Instance(), HOTFIX_SEL_MOUNT_CAPABILITY);
return &loadInfo;
@@ -3152,9 +3152,9 @@ struct MountXDisplayLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "DisplayID" },
+ { true, FT_INT, "CreatureDisplayInfoID" },
{ false, FT_INT, "PlayerConditionID" },
- { false, FT_INT, "MountID" },
+ { true, FT_INT, "MountID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, MountXDisplayMeta::Instance(), HOTFIX_SEL_MOUNT_X_DISPLAY);
return &loadInfo;
@@ -3185,8 +3185,8 @@ struct NameGenLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "Name" },
- { false, FT_BYTE, "Race" },
+ { false, FT_STRING_NOT_LOCALIZED, "Name" },
+ { false, FT_BYTE, "RaceID" },
{ false, FT_BYTE, "Sex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, NameGenMeta::Instance(), HOTFIX_SEL_NAME_GEN);
@@ -3245,17 +3245,17 @@ struct OverrideSpellDataLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID1" },
- { false, FT_INT, "SpellID2" },
- { false, FT_INT, "SpellID3" },
- { false, FT_INT, "SpellID4" },
- { false, FT_INT, "SpellID5" },
- { false, FT_INT, "SpellID6" },
- { false, FT_INT, "SpellID7" },
- { false, FT_INT, "SpellID8" },
- { false, FT_INT, "SpellID9" },
- { false, FT_INT, "SpellID10" },
- { false, FT_INT, "PlayerActionbarFileDataID" },
+ { true, FT_INT, "Spells1" },
+ { true, FT_INT, "Spells2" },
+ { true, FT_INT, "Spells3" },
+ { true, FT_INT, "Spells4" },
+ { true, FT_INT, "Spells5" },
+ { true, FT_INT, "Spells6" },
+ { true, FT_INT, "Spells7" },
+ { true, FT_INT, "Spells8" },
+ { true, FT_INT, "Spells9" },
+ { true, FT_INT, "Spells10" },
+ { true, FT_INT, "PlayerActionBarFileDataID" },
{ false, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, OverrideSpellDataMeta::Instance(), HOTFIX_SEL_OVERRIDE_SPELL_DATA);
@@ -3314,7 +3314,7 @@ struct PlayerConditionLoadInfo
{ false, FT_SHORT, "MaxFactionID" },
{ false, FT_BYTE, "MaxReputation" },
{ false, FT_INT, "ReputationLogic" },
- { false, FT_BYTE, "Unknown1" },
+ { true, FT_BYTE, "CurrentPvpFaction" },
{ false, FT_BYTE, "MinPVPRank" },
{ false, FT_BYTE, "MaxPVPRank" },
{ false, FT_BYTE, "PvpMedal" },
@@ -3354,7 +3354,7 @@ struct PlayerConditionLoadInfo
{ false, FT_BYTE, "PowerTypeComp" },
{ false, FT_BYTE, "PowerTypeValue" },
{ false, FT_INT, "ModifierTreeID" },
- { true, FT_INT, "MainHandItemSubclassMask" },
+ { true, FT_INT, "WeaponSubclassMask" },
{ false, FT_SHORT, "SkillID1" },
{ false, FT_SHORT, "SkillID2" },
{ false, FT_SHORT, "SkillID3" },
@@ -3401,14 +3401,14 @@ struct PlayerConditionLoadInfo
{ false, FT_SHORT, "Explored2" },
{ false, FT_INT, "Time1" },
{ false, FT_INT, "Time2" },
- { false, FT_INT, "AuraSpellID1" },
- { false, FT_INT, "AuraSpellID2" },
- { false, FT_INT, "AuraSpellID3" },
- { false, FT_INT, "AuraSpellID4" },
- { false, FT_BYTE, "AuraCount1" },
- { false, FT_BYTE, "AuraCount2" },
- { false, FT_BYTE, "AuraCount3" },
- { false, FT_BYTE, "AuraCount4" },
+ { true, FT_INT, "AuraSpellID1" },
+ { true, FT_INT, "AuraSpellID2" },
+ { true, FT_INT, "AuraSpellID3" },
+ { true, FT_INT, "AuraSpellID4" },
+ { false, FT_BYTE, "AuraStacks1" },
+ { false, FT_BYTE, "AuraStacks2" },
+ { false, FT_BYTE, "AuraStacks3" },
+ { false, FT_BYTE, "AuraStacks4" },
{ false, FT_SHORT, "Achievement1" },
{ false, FT_SHORT, "Achievement2" },
{ false, FT_SHORT, "Achievement3" },
@@ -3459,7 +3459,7 @@ struct PowerDisplayLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "GlobalStringBaseTag" },
- { false, FT_BYTE, "PowerType" },
+ { false, FT_BYTE, "ActualType" },
{ false, FT_BYTE, "Red" },
{ false, FT_BYTE, "Green" },
{ false, FT_BYTE, "Blue" },
@@ -3476,18 +3476,18 @@ struct PowerTypeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING_NOT_LOCALIZED, "PowerTypeToken" },
- { false, FT_STRING_NOT_LOCALIZED, "PowerCostToken" },
- { false, FT_FLOAT, "RegenerationPeace" },
- { false, FT_FLOAT, "RegenerationCombat" },
- { true, FT_SHORT, "MaxPower" },
- { false, FT_SHORT, "RegenerationDelay" },
- { false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "PowerTypeEnum" },
- { true, FT_BYTE, "RegenerationMin" },
- { true, FT_BYTE, "RegenerationCenter" },
- { true, FT_BYTE, "RegenerationMax" },
- { false, FT_BYTE, "UIModifier" },
+ { false, FT_STRING_NOT_LOCALIZED, "NameGlobalStringTag" },
+ { false, FT_STRING_NOT_LOCALIZED, "CostGlobalStringTag" },
+ { false, FT_FLOAT, "RegenPeace" },
+ { false, FT_FLOAT, "RegenCombat" },
+ { true, FT_SHORT, "MaxBasePower" },
+ { true, FT_SHORT, "RegenInterruptTimeMS" },
+ { true, FT_SHORT, "Flags" },
+ { true, FT_BYTE, "PowerTypeEnum" },
+ { true, FT_BYTE, "MinPower" },
+ { true, FT_BYTE, "CenterPower" },
+ { true, FT_BYTE, "DefaultPower" },
+ { true, FT_BYTE, "DisplayModifier" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PowerTypeMeta::Instance(), HOTFIX_SEL_POWER_TYPE);
return &loadInfo;
@@ -3501,8 +3501,8 @@ struct PrestigeLevelInfoLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_STRING, "PrestigeText" },
- { false, FT_INT, "IconID" },
+ { false, FT_STRING, "Name" },
+ { true, FT_INT, "BadgeTextureFileDataID" },
{ false, FT_BYTE, "PrestigeLevel" },
{ false, FT_BYTE, "Flags" },
};
@@ -3518,7 +3518,7 @@ struct PvpDifficultyLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_BYTE, "BracketID" },
+ { false, FT_BYTE, "RangeIndex" },
{ false, FT_BYTE, "MinLevel" },
{ false, FT_BYTE, "MaxLevel" },
{ false, FT_SHORT, "MapID" },
@@ -3535,8 +3535,8 @@ struct PvpItemLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemID" },
- { false, FT_BYTE, "ItemLevelBonus" },
+ { true, FT_INT, "ItemID" },
+ { false, FT_BYTE, "ItemLevelDelta" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PVPItemMeta::Instance(), HOTFIX_SEL_PVP_ITEM);
return &loadInfo;
@@ -3550,9 +3550,9 @@ struct PvpRewardLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "HonorLevel" },
- { false, FT_INT, "Prestige" },
- { false, FT_INT, "RewardPackID" },
+ { true, FT_INT, "HonorLevel" },
+ { true, FT_INT, "PrestigeLevel" },
+ { true, FT_INT, "RewardPackID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, PvpRewardMeta::Instance(), HOTFIX_SEL_PVP_REWARD);
return &loadInfo;
@@ -3569,7 +3569,7 @@ struct PvpTalentLoadInfo
{ false, FT_STRING, "Description" },
{ true, FT_INT, "SpellID" },
{ true, FT_INT, "OverridesSpellID" },
- { true, FT_INT, "ExtraSpellID" },
+ { true, FT_INT, "ActionBarSpellID" },
{ true, FT_INT, "TierID" },
{ true, FT_INT, "ColumnIndex" },
{ true, FT_INT, "Flags" },
@@ -3605,16 +3605,16 @@ struct QuestFactionRewardLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "QuestRewFactionValue1" },
- { true, FT_SHORT, "QuestRewFactionValue2" },
- { true, FT_SHORT, "QuestRewFactionValue3" },
- { true, FT_SHORT, "QuestRewFactionValue4" },
- { true, FT_SHORT, "QuestRewFactionValue5" },
- { true, FT_SHORT, "QuestRewFactionValue6" },
- { true, FT_SHORT, "QuestRewFactionValue7" },
- { true, FT_SHORT, "QuestRewFactionValue8" },
- { true, FT_SHORT, "QuestRewFactionValue9" },
- { true, FT_SHORT, "QuestRewFactionValue10" },
+ { true, FT_SHORT, "Difficulty1" },
+ { true, FT_SHORT, "Difficulty2" },
+ { true, FT_SHORT, "Difficulty3" },
+ { true, FT_SHORT, "Difficulty4" },
+ { true, FT_SHORT, "Difficulty5" },
+ { true, FT_SHORT, "Difficulty6" },
+ { true, FT_SHORT, "Difficulty7" },
+ { true, FT_SHORT, "Difficulty8" },
+ { true, FT_SHORT, "Difficulty9" },
+ { true, FT_SHORT, "Difficulty10" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, QuestFactionRewardMeta::Instance(), HOTFIX_SEL_QUEST_FACTION_REWARD);
return &loadInfo;
@@ -3628,16 +3628,16 @@ struct QuestMoneyRewardLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Money1" },
- { false, FT_INT, "Money2" },
- { false, FT_INT, "Money3" },
- { false, FT_INT, "Money4" },
- { false, FT_INT, "Money5" },
- { false, FT_INT, "Money6" },
- { false, FT_INT, "Money7" },
- { false, FT_INT, "Money8" },
- { false, FT_INT, "Money9" },
- { false, FT_INT, "Money10" },
+ { false, FT_INT, "Difficulty1" },
+ { false, FT_INT, "Difficulty2" },
+ { false, FT_INT, "Difficulty3" },
+ { false, FT_INT, "Difficulty4" },
+ { false, FT_INT, "Difficulty5" },
+ { false, FT_INT, "Difficulty6" },
+ { false, FT_INT, "Difficulty7" },
+ { false, FT_INT, "Difficulty8" },
+ { false, FT_INT, "Difficulty9" },
+ { false, FT_INT, "Difficulty10" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, QuestMoneyRewardMeta::Instance(), HOTFIX_SEL_QUEST_MONEY_REWARD);
return &loadInfo;
@@ -3651,10 +3651,10 @@ struct QuestPackageItemLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemID" },
- { false, FT_SHORT, "QuestPackageID" },
- { false, FT_BYTE, "FilterType" },
- { false, FT_INT, "ItemCount" },
+ { true, FT_INT, "ItemID" },
+ { false, FT_SHORT, "PackageID" },
+ { false, FT_BYTE, "DisplayType" },
+ { false, FT_INT, "ItemQuantity" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, QuestPackageItemMeta::Instance(), HOTFIX_SEL_QUEST_PACKAGE_ITEM);
return &loadInfo;
@@ -3669,7 +3669,7 @@ struct QuestSortLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "SortName" },
- { false, FT_BYTE, "SortOrder" },
+ { true, FT_BYTE, "UiOrderIndex" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, QuestSortMeta::Instance(), HOTFIX_SEL_QUEST_SORT);
return &loadInfo;
@@ -3697,16 +3697,16 @@ struct QuestXpLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "Exp1" },
- { false, FT_SHORT, "Exp2" },
- { false, FT_SHORT, "Exp3" },
- { false, FT_SHORT, "Exp4" },
- { false, FT_SHORT, "Exp5" },
- { false, FT_SHORT, "Exp6" },
- { false, FT_SHORT, "Exp7" },
- { false, FT_SHORT, "Exp8" },
- { false, FT_SHORT, "Exp9" },
- { false, FT_SHORT, "Exp10" },
+ { 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" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, QuestXPMeta::Instance(), HOTFIX_SEL_QUEST_XP);
return &loadInfo;
@@ -3720,21 +3720,21 @@ struct RandPropPointsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "EpicPropertiesPoints1" },
- { false, FT_INT, "EpicPropertiesPoints2" },
- { false, FT_INT, "EpicPropertiesPoints3" },
- { false, FT_INT, "EpicPropertiesPoints4" },
- { false, FT_INT, "EpicPropertiesPoints5" },
- { false, FT_INT, "RarePropertiesPoints1" },
- { false, FT_INT, "RarePropertiesPoints2" },
- { false, FT_INT, "RarePropertiesPoints3" },
- { false, FT_INT, "RarePropertiesPoints4" },
- { false, FT_INT, "RarePropertiesPoints5" },
- { false, FT_INT, "UncommonPropertiesPoints1" },
- { false, FT_INT, "UncommonPropertiesPoints2" },
- { false, FT_INT, "UncommonPropertiesPoints3" },
- { false, FT_INT, "UncommonPropertiesPoints4" },
- { false, FT_INT, "UncommonPropertiesPoints5" },
+ { false, FT_INT, "Epic1" },
+ { false, FT_INT, "Epic2" },
+ { false, FT_INT, "Epic3" },
+ { false, FT_INT, "Epic4" },
+ { false, FT_INT, "Epic5" },
+ { false, FT_INT, "Superior1" },
+ { false, FT_INT, "Superior2" },
+ { false, FT_INT, "Superior3" },
+ { false, FT_INT, "Superior4" },
+ { false, FT_INT, "Superior5" },
+ { false, FT_INT, "Good1" },
+ { false, FT_INT, "Good2" },
+ { false, FT_INT, "Good3" },
+ { false, FT_INT, "Good4" },
+ { false, FT_INT, "Good5" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, RandPropPointsMeta::Instance(), HOTFIX_SEL_RAND_PROP_POINTS);
return &loadInfo;
@@ -3750,10 +3750,10 @@ struct RewardPackLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_INT, "Money" },
{ false, FT_FLOAT, "ArtifactXPMultiplier" },
- { false, FT_BYTE, "ArtifactXPDifficulty" },
- { false, FT_BYTE, "ArtifactCategoryID" },
- { false, FT_INT, "TitleID" },
- { false, FT_INT, "Unused" },
+ { true, FT_BYTE, "ArtifactXPDifficulty" },
+ { false, FT_BYTE, "ArtifactXPCategoryID" },
+ { true, FT_INT, "CharTitleID" },
+ { false, FT_INT, "TreasurePickerID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, RewardPackMeta::Instance(), HOTFIX_SEL_REWARD_PACK);
return &loadInfo;
@@ -3767,9 +3767,9 @@ struct RewardPackXItemLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemID" },
- { false, FT_INT, "Amount" },
- { false, FT_INT, "RewardPackID" },
+ { true, FT_INT, "ItemID" },
+ { true, FT_INT, "ItemQuantity" },
+ { true, FT_INT, "RewardPackID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, RewardPackXItemMeta::Instance(), HOTFIX_SEL_REWARD_PACK_X_ITEM);
return &loadInfo;
@@ -3783,7 +3783,7 @@ struct RulesetItemUpgradeLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ItemID" },
+ { true, FT_INT, "ItemID" },
{ false, FT_SHORT, "ItemUpgradeID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, RulesetItemUpgradeMeta::Instance(), HOTFIX_SEL_RULESET_ITEM_UPGRADE);
@@ -3798,9 +3798,9 @@ struct SandboxScalingLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "MinLevel" },
- { false, FT_INT, "MaxLevel" },
- { false, FT_INT, "Flags" },
+ { true, FT_INT, "MinLevel" },
+ { true, FT_INT, "MaxLevel" },
+ { true, FT_INT, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SandboxScalingMeta::Instance(), HOTFIX_SEL_SANDBOX_SCALING);
return &loadInfo;
@@ -3814,9 +3814,9 @@ struct ScalingStatDistributionLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "ItemLevelCurveID" },
- { false, FT_INT, "MinLevel" },
- { false, FT_INT, "MaxLevel" },
+ { false, FT_SHORT, "PlayerLevelToItemLevelCurveID" },
+ { true, FT_INT, "MinLevel" },
+ { true, FT_INT, "MaxLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ScalingStatDistributionMeta::Instance(), HOTFIX_SEL_SCALING_STAT_DISTRIBUTION);
return &loadInfo;
@@ -3831,7 +3831,7 @@ struct ScenarioLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_SHORT, "Data" },
+ { false, FT_SHORT, "AreaTableID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "Type" },
};
@@ -3848,14 +3848,14 @@ struct ScenarioStepLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Description" },
- { false, FT_STRING, "Name" },
+ { false, FT_STRING, "Title" },
{ false, FT_SHORT, "ScenarioID" },
- { false, FT_SHORT, "PreviousStepID" },
- { false, FT_SHORT, "QuestRewardID" },
- { false, FT_BYTE, "Step" },
+ { false, FT_SHORT, "Supersedes" },
+ { false, FT_SHORT, "RewardQuestID" },
+ { false, FT_BYTE, "OrderIndex" },
{ false, FT_BYTE, "Flags" },
- { false, FT_INT, "CriteriaTreeID" },
- { false, FT_INT, "BonusRequiredStepID" },
+ { false, FT_INT, "Criteriatreeid" },
+ { true, FT_INT, "RelatedStep" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ScenarioStepMeta::Instance(), HOTFIX_SEL_SCENARIO_STEP);
return &loadInfo;
@@ -3869,8 +3869,8 @@ struct SceneScriptLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "PrevScriptId" },
- { false, FT_SHORT, "NextScriptId" },
+ { false, FT_SHORT, "FirstSceneScriptID" },
+ { false, FT_SHORT, "NextSceneScriptID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SceneScriptMeta::Instance(), HOTFIX_SEL_SCENE_SCRIPT);
return &loadInfo;
@@ -3932,9 +3932,9 @@ struct SkillLineLoadInfo
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "AlternateVerb" },
{ false, FT_SHORT, "Flags" },
- { false, FT_BYTE, "CategoryID" },
- { false, FT_BYTE, "CanLink" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_BYTE, "CategoryID" },
+ { true, FT_BYTE, "CanLink" },
+ { true, FT_INT, "SpellIconFileID" },
{ false, FT_INT, "ParentSkillLineID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SkillLineMeta::Instance(), HOTFIX_SEL_SKILL_LINE);
@@ -3948,20 +3948,20 @@ struct SkillLineAbilityLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_LONG, "RaceMask" },
+ { true, FT_LONG, "RaceMask" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "SupercedesSpell" },
- { false, FT_SHORT, "SkillLine" },
- { false, FT_SHORT, "TrivialSkillLineRankHigh" },
- { false, FT_SHORT, "TrivialSkillLineRankLow" },
- { false, FT_SHORT, "UniqueBit" },
- { false, FT_SHORT, "TradeSkillCategoryID" },
- { false, FT_BYTE, "NumSkillUps" },
+ { true, FT_INT, "Spell" },
+ { true, FT_INT, "SupercedesSpell" },
+ { true, FT_SHORT, "SkillLine" },
+ { true, FT_SHORT, "TrivialSkillLineRankHigh" },
+ { true, FT_SHORT, "TrivialSkillLineRankLow" },
+ { true, FT_SHORT, "UniqueBit" },
+ { true, FT_SHORT, "TradeSkillCategoryID" },
+ { true, FT_BYTE, "NumSkillUps" },
{ true, FT_INT, "ClassMask" },
- { false, FT_SHORT, "MinSkillLineRank" },
- { false, FT_BYTE, "AcquireMethod" },
- { false, FT_BYTE, "Flags" },
+ { true, FT_SHORT, "MinSkillLineRank" },
+ { true, FT_BYTE, "AcquireMethod" },
+ { true, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SkillLineAbilityMeta::Instance(), HOTFIX_SEL_SKILL_LINE_ABILITY);
return &loadInfo;
@@ -3976,11 +3976,11 @@ struct SkillRaceClassInfoLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
- { false, FT_SHORT, "SkillID" },
+ { true, FT_SHORT, "SkillID" },
{ false, FT_SHORT, "Flags" },
- { false, FT_SHORT, "SkillTierID" },
- { false, FT_BYTE, "Availability" },
- { false, FT_BYTE, "MinLevel" },
+ { true, FT_SHORT, "SkillTierID" },
+ { true, FT_BYTE, "Availability" },
+ { true, FT_BYTE, "MinLevel" },
{ true, FT_INT, "ClassMask" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SkillRaceClassInfoMeta::Instance(), HOTFIX_SEL_SKILL_RACE_CLASS_INFO);
@@ -4009,7 +4009,7 @@ struct SoundKitLoadInfo
{ false, FT_FLOAT, "PitchVariationMinus" },
{ false, FT_FLOAT, "PitchAdjust" },
{ false, FT_SHORT, "BusOverwriteID" },
- { false, FT_BYTE, "Unk700" },
+ { false, FT_BYTE, "MaxInstances" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SoundKitMeta::Instance(), HOTFIX_SEL_SOUND_KIT);
return &loadInfo;
@@ -4023,10 +4023,10 @@ struct SpecializationSpellsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Description" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "OverridesSpellID" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "OverridesSpellID" },
{ false, FT_SHORT, "SpecID" },
- { false, FT_BYTE, "OrderIndex" },
+ { false, FT_BYTE, "DisplayOrder" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpecializationSpellsMeta::Instance(), HOTFIX_SEL_SPECIALIZATION_SPELLS);
@@ -4058,14 +4058,14 @@ struct SpellAuraOptionsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "ProcCharges" },
- { false, FT_INT, "ProcTypeMask" },
- { false, FT_INT, "ProcCategoryRecovery" },
+ { true, FT_INT, "ProcCharges" },
+ { true, FT_INT, "ProcTypeMask" },
+ { true, FT_INT, "ProcCategoryRecovery" },
{ false, FT_SHORT, "CumulativeAura" },
{ false, FT_SHORT, "SpellProcsPerMinuteID" },
{ false, FT_BYTE, "DifficultyID" },
{ false, FT_BYTE, "ProcChance" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellAuraOptionsMeta::Instance(), HOTFIX_SEL_SPELL_AURA_OPTIONS);
return &loadInfo;
@@ -4079,16 +4079,16 @@ struct SpellAuraRestrictionsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "CasterAuraSpell" },
- { false, FT_INT, "TargetAuraSpell" },
- { false, FT_INT, "ExcludeCasterAuraSpell" },
- { false, FT_INT, "ExcludeTargetAuraSpell" },
+ { true, FT_INT, "CasterAuraSpell" },
+ { true, FT_INT, "TargetAuraSpell" },
+ { true, FT_INT, "ExcludeCasterAuraSpell" },
+ { true, FT_INT, "ExcludeTargetAuraSpell" },
{ false, FT_BYTE, "DifficultyID" },
{ false, FT_BYTE, "CasterAuraState" },
{ false, FT_BYTE, "TargetAuraState" },
{ false, FT_BYTE, "ExcludeCasterAuraState" },
{ false, FT_BYTE, "ExcludeTargetAuraState" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellAuraRestrictionsMeta::Instance(), HOTFIX_SEL_SPELL_AURA_RESTRICTIONS);
return &loadInfo;
@@ -4102,9 +4102,9 @@ struct SpellCastTimesLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "CastTime" },
- { true, FT_INT, "MinCastTime" },
- { true, FT_SHORT, "CastTimePerLevel" },
+ { true, FT_INT, "Base" },
+ { true, FT_INT, "Minimum" },
+ { true, FT_SHORT, "PerLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellCastTimesMeta::Instance(), HOTFIX_SEL_SPELL_CAST_TIMES);
return &loadInfo;
@@ -4118,12 +4118,12 @@ struct SpellCastingRequirementsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
{ false, FT_SHORT, "MinFactionID" },
{ false, FT_SHORT, "RequiredAreasID" },
{ false, FT_SHORT, "RequiresSpellFocus" },
{ false, FT_BYTE, "FacingCasterFlags" },
- { false, FT_BYTE, "MinReputation" },
+ { true, FT_BYTE, "MinReputation" },
{ false, FT_BYTE, "RequiredAuraVision" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellCastingRequirementsMeta::Instance(), HOTFIX_SEL_SPELL_CASTING_REQUIREMENTS);
@@ -4138,15 +4138,15 @@ struct SpellCategoriesLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "Category" },
- { false, FT_SHORT, "StartRecoveryCategory" },
- { false, FT_SHORT, "ChargeCategory" },
+ { true, FT_SHORT, "Category" },
+ { true, FT_SHORT, "StartRecoveryCategory" },
+ { true, FT_SHORT, "ChargeCategory" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "DefenseType" },
- { false, FT_BYTE, "DispelType" },
- { false, FT_BYTE, "Mechanic" },
- { false, FT_BYTE, "PreventionType" },
- { false, FT_INT, "SpellID" },
+ { true, FT_BYTE, "DefenseType" },
+ { true, FT_BYTE, "DispelType" },
+ { true, FT_BYTE, "Mechanic" },
+ { true, FT_BYTE, "PreventionType" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellCategoriesMeta::Instance(), HOTFIX_SEL_SPELL_CATEGORIES);
return &loadInfo;
@@ -4162,10 +4162,10 @@ struct SpellCategoryLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
{ true, FT_INT, "ChargeRecoveryTime" },
- { false, FT_BYTE, "Flags" },
+ { true, FT_BYTE, "Flags" },
{ false, FT_BYTE, "UsesPerWeek" },
- { false, FT_BYTE, "MaxCharges" },
- { false, FT_INT, "ChargeCategoryType" },
+ { true, FT_BYTE, "MaxCharges" },
+ { true, FT_INT, "TypeMask" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellCategoryMeta::Instance(), HOTFIX_SEL_SPELL_CATEGORY);
return &loadInfo;
@@ -4179,7 +4179,7 @@ struct SpellClassOptionsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
{ false, FT_INT, "SpellClassMask1" },
{ false, FT_INT, "SpellClassMask2" },
{ false, FT_INT, "SpellClassMask3" },
@@ -4199,11 +4199,11 @@ struct SpellCooldownsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "CategoryRecoveryTime" },
- { false, FT_INT, "RecoveryTime" },
- { false, FT_INT, "StartRecoveryTime" },
+ { true, FT_INT, "CategoryRecoveryTime" },
+ { true, FT_INT, "RecoveryTime" },
+ { true, FT_INT, "StartRecoveryTime" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellCooldownsMeta::Instance(), HOTFIX_SEL_SPELL_COOLDOWNS);
return &loadInfo;
@@ -4219,7 +4219,7 @@ struct SpellDurationLoadInfo
{ false, FT_INT, "ID" },
{ true, FT_INT, "Duration" },
{ true, FT_INT, "MaxDuration" },
- { true, FT_INT, "DurationPerLevel" },
+ { false, FT_INT, "DurationPerLevel" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellDurationMeta::Instance(), HOTFIX_SEL_SPELL_DURATION);
return &loadInfo;
@@ -4235,39 +4235,39 @@ struct SpellEffectLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_INT, "Effect" },
{ true, FT_INT, "EffectBasePoints" },
- { false, FT_INT, "EffectIndex" },
- { false, FT_INT, "EffectAura" },
- { false, FT_INT, "DifficultyID" },
+ { true, FT_INT, "EffectIndex" },
+ { true, FT_INT, "EffectAura" },
+ { true, FT_INT, "DifficultyID" },
{ false, FT_FLOAT, "EffectAmplitude" },
- { false, FT_INT, "EffectAuraPeriod" },
+ { true, FT_INT, "EffectAuraPeriod" },
{ false, FT_FLOAT, "EffectBonusCoefficient" },
{ false, FT_FLOAT, "EffectChainAmplitude" },
- { false, FT_INT, "EffectChainTargets" },
+ { true, FT_INT, "EffectChainTargets" },
{ true, FT_INT, "EffectDieSides" },
- { false, FT_INT, "EffectItemType" },
- { false, FT_INT, "EffectMechanic" },
+ { true, FT_INT, "EffectItemType" },
+ { true, FT_INT, "EffectMechanic" },
{ false, FT_FLOAT, "EffectPointsPerResource" },
{ false, FT_FLOAT, "EffectRealPointsPerLevel" },
- { false, FT_INT, "EffectTriggerSpell" },
+ { true, FT_INT, "EffectTriggerSpell" },
{ false, FT_FLOAT, "EffectPosFacing" },
- { false, FT_INT, "EffectAttributes" },
+ { true, FT_INT, "EffectAttributes" },
{ false, FT_FLOAT, "BonusCoefficientFromAP" },
- { false, FT_FLOAT, "PvPMultiplier" },
+ { false, FT_FLOAT, "PvpMultiplier" },
{ false, FT_FLOAT, "Coefficient" },
{ false, FT_FLOAT, "Variance" },
{ false, FT_FLOAT, "ResourceCoefficient" },
- { false, FT_FLOAT, "GroupSizeCoefficient" },
+ { false, FT_FLOAT, "GroupSizeBasePointsCoefficient" },
{ false, FT_INT, "EffectSpellClassMask1" },
{ false, FT_INT, "EffectSpellClassMask2" },
{ false, FT_INT, "EffectSpellClassMask3" },
{ false, FT_INT, "EffectSpellClassMask4" },
- { true, FT_INT, "EffectMiscValue" },
- { true, FT_INT, "EffectMiscValueB" },
- { false, FT_INT, "EffectRadiusIndex" },
- { false, FT_INT, "EffectRadiusMaxIndex" },
+ { true, FT_INT, "EffectMiscValue1" },
+ { true, FT_INT, "EffectMiscValue2" },
+ { false, FT_INT, "EffectRadiusIndex1" },
+ { false, FT_INT, "EffectRadiusIndex2" },
{ false, FT_INT, "ImplicitTarget1" },
{ false, FT_INT, "ImplicitTarget2" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellEffectMeta::Instance(), HOTFIX_SEL_SPELL_EFFECT);
return &loadInfo;
@@ -4281,9 +4281,9 @@ struct SpellEquippedItemsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { true, FT_INT, "EquippedItemInventoryTypeMask" },
- { true, FT_INT, "EquippedItemSubClassMask" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "EquippedItemInvTypes" },
+ { true, FT_INT, "EquippedItemSubclass" },
{ true, FT_BYTE, "EquippedItemClass" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellEquippedItemsMeta::Instance(), HOTFIX_SEL_SPELL_EQUIPPED_ITEMS);
@@ -4313,12 +4313,12 @@ struct SpellInterruptsLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_SHORT, "InterruptFlags" },
- { false, FT_INT, "AuraInterruptFlags1" },
- { false, FT_INT, "AuraInterruptFlags2" },
- { false, FT_INT, "ChannelInterruptFlags1" },
- { false, FT_INT, "ChannelInterruptFlags2" },
- { false, FT_INT, "SpellID" },
+ { true, FT_SHORT, "InterruptFlags" },
+ { true, FT_INT, "AuraInterruptFlags1" },
+ { true, FT_INT, "AuraInterruptFlags2" },
+ { true, FT_INT, "ChannelInterruptFlags1" },
+ { true, FT_INT, "ChannelInterruptFlags2" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellInterruptsMeta::Instance(), HOTFIX_SEL_SPELL_INTERRUPTS);
return &loadInfo;
@@ -4333,17 +4333,17 @@ struct SpellItemEnchantmentLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_INT, "EffectSpellID1" },
- { false, FT_INT, "EffectSpellID2" },
- { false, FT_INT, "EffectSpellID3" },
+ { 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, "TransmogCost" },
- { false, FT_INT, "TextureFileDataID" },
- { false, FT_SHORT, "EffectPointsMin1" },
- { false, FT_SHORT, "EffectPointsMin2" },
- { false, FT_SHORT, "EffectPointsMin3" },
+ { false, FT_INT, "IconFileDataID" },
+ { true, FT_SHORT, "EffectPointsMin1" },
+ { true, FT_SHORT, "EffectPointsMin2" },
+ { true, FT_SHORT, "EffectPointsMin3" },
{ false, FT_SHORT, "ItemVisual" },
{ false, FT_SHORT, "Flags" },
{ false, FT_SHORT, "RequiredSkillID" },
@@ -4358,7 +4358,7 @@ struct SpellItemEnchantmentLoadInfo
{ false, FT_BYTE, "MaxLevel" },
{ true, FT_BYTE, "ScalingClass" },
{ true, FT_BYTE, "ScalingClassRestricted" },
- { false, FT_INT, "PlayerConditionID" },
+ { false, FT_INT, "TransmogPlayerConditionID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellItemEnchantmentMeta::Instance(), HOTFIX_SEL_SPELL_ITEM_ENCHANTMENT);
return &loadInfo;
@@ -4372,31 +4372,31 @@ struct SpellItemEnchantmentConditionLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "LTOperand1" },
- { false, FT_INT, "LTOperand2" },
- { false, FT_INT, "LTOperand3" },
- { false, FT_INT, "LTOperand4" },
- { false, FT_INT, "LTOperand5" },
- { false, FT_BYTE, "LTOperandType1" },
- { false, FT_BYTE, "LTOperandType2" },
- { false, FT_BYTE, "LTOperandType3" },
- { false, FT_BYTE, "LTOperandType4" },
- { false, FT_BYTE, "LTOperandType5" },
+ { false, FT_INT, "LtOperand1" },
+ { false, FT_INT, "LtOperand2" },
+ { false, FT_INT, "LtOperand3" },
+ { false, FT_INT, "LtOperand4" },
+ { false, FT_INT, "LtOperand5" },
+ { false, FT_BYTE, "LtOperandType1" },
+ { false, FT_BYTE, "LtOperandType2" },
+ { false, FT_BYTE, "LtOperandType3" },
+ { false, FT_BYTE, "LtOperandType4" },
+ { false, FT_BYTE, "LtOperandType5" },
{ false, FT_BYTE, "Operator1" },
{ false, FT_BYTE, "Operator2" },
{ false, FT_BYTE, "Operator3" },
{ false, FT_BYTE, "Operator4" },
{ false, FT_BYTE, "Operator5" },
- { false, FT_BYTE, "RTOperandType1" },
- { false, FT_BYTE, "RTOperandType2" },
- { false, FT_BYTE, "RTOperandType3" },
- { false, FT_BYTE, "RTOperandType4" },
- { false, FT_BYTE, "RTOperandType5" },
- { false, FT_BYTE, "RTOperand1" },
- { false, FT_BYTE, "RTOperand2" },
- { false, FT_BYTE, "RTOperand3" },
- { false, FT_BYTE, "RTOperand4" },
- { false, FT_BYTE, "RTOperand5" },
+ { false, FT_BYTE, "RtOperandType1" },
+ { false, FT_BYTE, "RtOperandType2" },
+ { false, FT_BYTE, "RtOperandType3" },
+ { false, FT_BYTE, "RtOperandType4" },
+ { false, FT_BYTE, "RtOperandType5" },
+ { false, FT_BYTE, "RtOperand1" },
+ { false, FT_BYTE, "RtOperand2" },
+ { false, FT_BYTE, "RtOperand3" },
+ { false, FT_BYTE, "RtOperand4" },
+ { false, FT_BYTE, "RtOperand5" },
{ false, FT_BYTE, "Logic1" },
{ false, FT_BYTE, "Logic2" },
{ false, FT_BYTE, "Logic3" },
@@ -4415,9 +4415,9 @@ struct SpellLearnSpellLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "LearnSpellID" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "OverridesSpellID" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "LearnSpellID" },
+ { true, FT_INT, "OverridesSpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellLearnSpellMeta::Instance(), HOTFIX_SEL_SPELL_LEARN_SPELL);
return &loadInfo;
@@ -4431,12 +4431,12 @@ struct SpellLevelsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_SHORT, "BaseLevel" },
- { false, FT_SHORT, "MaxLevel" },
- { false, FT_SHORT, "SpellLevel" },
+ { true, FT_SHORT, "BaseLevel" },
+ { true, FT_SHORT, "MaxLevel" },
+ { true, FT_SHORT, "SpellLevel" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "MaxUsableLevel" },
- { false, FT_INT, "SpellID" },
+ { false, FT_BYTE, "MaxPassiveAuraLevel" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellLevelsMeta::Instance(), HOTFIX_SEL_SPELL_LEVELS);
return &loadInfo;
@@ -4454,26 +4454,26 @@ struct SpellMiscLoadInfo
{ false, FT_SHORT, "DurationIndex" },
{ false, FT_SHORT, "RangeIndex" },
{ false, FT_BYTE, "SchoolMask" },
- { false, FT_INT, "IconFileDataID" },
+ { true, FT_INT, "SpellIconFileDataID" },
{ false, FT_FLOAT, "Speed" },
- { false, FT_INT, "ActiveIconFileDataID" },
- { false, FT_FLOAT, "MultistrikeSpeedMod" },
+ { true, FT_INT, "ActiveIconFileDataID" },
+ { false, FT_FLOAT, "LaunchDelay" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_INT, "Attributes" },
- { false, FT_INT, "AttributesEx" },
- { false, FT_INT, "AttributesExB" },
- { false, FT_INT, "AttributesExC" },
- { false, FT_INT, "AttributesExD" },
- { false, FT_INT, "AttributesExE" },
- { false, FT_INT, "AttributesExF" },
- { false, FT_INT, "AttributesExG" },
- { false, FT_INT, "AttributesExH" },
- { false, FT_INT, "AttributesExI" },
- { false, FT_INT, "AttributesExJ" },
- { false, FT_INT, "AttributesExK" },
- { false, FT_INT, "AttributesExL" },
- { false, FT_INT, "AttributesExM" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "Attributes1" },
+ { true, FT_INT, "Attributes2" },
+ { true, FT_INT, "Attributes3" },
+ { true, FT_INT, "Attributes4" },
+ { true, FT_INT, "Attributes5" },
+ { true, FT_INT, "Attributes6" },
+ { true, FT_INT, "Attributes7" },
+ { true, FT_INT, "Attributes8" },
+ { true, FT_INT, "Attributes9" },
+ { true, FT_INT, "Attributes10" },
+ { true, FT_INT, "Attributes11" },
+ { true, FT_INT, "Attributes12" },
+ { true, FT_INT, "Attributes13" },
+ { true, FT_INT, "Attributes14" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellMiscMeta::Instance(), HOTFIX_SEL_SPELL_MISC);
return &loadInfo;
@@ -4487,19 +4487,19 @@ struct SpellPowerLoadInfo
static DB2FieldMeta const fields[] =
{
{ true, FT_INT, "ManaCost" },
- { false, FT_FLOAT, "ManaCostPercentage" },
- { false, FT_FLOAT, "ManaCostPercentagePerSecond" },
- { false, FT_INT, "RequiredAura" },
- { false, FT_FLOAT, "HealthCostPercentage" },
- { false, FT_BYTE, "PowerIndex" },
- { false, FT_BYTE, "PowerType" },
+ { false, FT_FLOAT, "PowerCostPct" },
+ { false, FT_FLOAT, "PowerPctPerSecond" },
+ { true, FT_INT, "RequiredAuraSpellID" },
+ { false, FT_FLOAT, "PowerCostMaxPct" },
+ { false, FT_BYTE, "OrderIndex" },
+ { true, FT_BYTE, "PowerType" },
{ false, FT_INT, "ID" },
{ true, FT_INT, "ManaCostPerLevel" },
- { true, FT_INT, "ManaCostPerSecond" },
- { true, FT_INT, "ManaCostAdditional" },
+ { true, FT_INT, "ManaPerSecond" },
+ { false, FT_INT, "OptionalCost" },
{ false, FT_INT, "PowerDisplayID" },
- { false, FT_INT, "UnitPowerBarID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "AltPowerBarID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellPowerMeta::Instance(), HOTFIX_SEL_SPELL_POWER);
return &loadInfo;
@@ -4513,7 +4513,7 @@ struct SpellPowerDifficultyLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "PowerIndex" },
+ { false, FT_BYTE, "OrderIndex" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellPowerDifficultyMeta::Instance(), HOTFIX_SEL_SPELL_POWER_DIFFICULTY);
@@ -4544,7 +4544,7 @@ struct SpellProcsPerMinuteModLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_FLOAT, "Coeff" },
- { false, FT_SHORT, "Param" },
+ { true, FT_SHORT, "Param" },
{ false, FT_BYTE, "Type" },
{ false, FT_SHORT, "SpellProcsPerMinuteID" },
};
@@ -4579,10 +4579,10 @@ struct SpellRangeLoadInfo
{ false, FT_INT, "ID" },
{ false, FT_STRING, "DisplayName" },
{ false, FT_STRING, "DisplayNameShort" },
- { false, FT_FLOAT, "MinRangeHostile" },
- { false, FT_FLOAT, "MinRangeFriend" },
- { false, FT_FLOAT, "MaxRangeHostile" },
- { false, FT_FLOAT, "MaxRangeFriend" },
+ { false, FT_FLOAT, "RangeMin1" },
+ { false, FT_FLOAT, "RangeMin2" },
+ { false, FT_FLOAT, "RangeMax1" },
+ { false, FT_FLOAT, "RangeMax2" },
{ false, FT_BYTE, "Flags" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellRangeMeta::Instance(), HOTFIX_SEL_SPELL_RANGE);
@@ -4597,7 +4597,7 @@ struct SpellReagentsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
{ true, FT_INT, "Reagent1" },
{ true, FT_INT, "Reagent2" },
{ true, FT_INT, "Reagent3" },
@@ -4606,14 +4606,14 @@ struct SpellReagentsLoadInfo
{ true, FT_INT, "Reagent6" },
{ true, FT_INT, "Reagent7" },
{ true, FT_INT, "Reagent8" },
- { false, FT_SHORT, "ReagentCount1" },
- { false, FT_SHORT, "ReagentCount2" },
- { false, FT_SHORT, "ReagentCount3" },
- { false, FT_SHORT, "ReagentCount4" },
- { false, FT_SHORT, "ReagentCount5" },
- { false, FT_SHORT, "ReagentCount6" },
- { false, FT_SHORT, "ReagentCount7" },
- { false, FT_SHORT, "ReagentCount8" },
+ { true, FT_SHORT, "ReagentCount1" },
+ { true, FT_SHORT, "ReagentCount2" },
+ { true, FT_SHORT, "ReagentCount3" },
+ { true, FT_SHORT, "ReagentCount4" },
+ { true, FT_SHORT, "ReagentCount5" },
+ { true, FT_SHORT, "ReagentCount6" },
+ { true, FT_SHORT, "ReagentCount7" },
+ { true, FT_SHORT, "ReagentCount8" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellReagentsMeta::Instance(), HOTFIX_SEL_SPELL_REAGENTS);
return &loadInfo;
@@ -4627,9 +4627,9 @@ struct SpellScalingLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_SHORT, "ScalesFromItemLevel" },
- { true, FT_INT, "ScalingClass" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_SHORT, "ScalesFromItemLevel" },
+ { true, FT_INT, "Class" },
{ false, FT_INT, "MinScalingLevel" },
{ false, FT_INT, "MaxScalingLevel" },
};
@@ -4645,12 +4645,12 @@ struct SpellShapeshiftLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "ShapeshiftExclude1" },
- { false, FT_INT, "ShapeshiftExclude2" },
- { false, FT_INT, "ShapeshiftMask1" },
- { false, FT_INT, "ShapeshiftMask2" },
- { false, FT_BYTE, "StanceBarOrder" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "ShapeshiftExclude1" },
+ { true, FT_INT, "ShapeshiftExclude2" },
+ { true, FT_INT, "ShapeshiftMask1" },
+ { true, FT_INT, "ShapeshiftMask2" },
+ { true, FT_BYTE, "StanceBarOrder" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellShapeshiftMeta::Instance(), HOTFIX_SEL_SPELL_SHAPESHIFT);
return &loadInfo;
@@ -4665,13 +4665,13 @@ struct SpellShapeshiftFormLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_FLOAT, "WeaponDamageVariance" },
- { false, FT_INT, "Flags" },
- { false, FT_SHORT, "CombatRoundTime" },
+ { false, FT_FLOAT, "DamageVariance" },
+ { true, FT_INT, "Flags" },
+ { true, FT_SHORT, "CombatRoundTime" },
{ false, FT_SHORT, "MountTypeID" },
{ true, FT_BYTE, "CreatureType" },
- { false, FT_BYTE, "BonusActionBar" },
- { false, FT_INT, "AttackIconFileDataID" },
+ { true, FT_BYTE, "BonusActionBar" },
+ { true, FT_INT, "AttackIconFileID" },
{ false, FT_INT, "CreatureDisplayID1" },
{ false, FT_INT, "CreatureDisplayID2" },
{ false, FT_INT, "CreatureDisplayID3" },
@@ -4697,14 +4697,14 @@ struct SpellTargetRestrictionsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "ConeAngle" },
+ { false, FT_FLOAT, "ConeDegrees" },
{ false, FT_FLOAT, "Width" },
- { false, FT_INT, "Targets" },
- { false, FT_SHORT, "TargetCreatureType" },
+ { true, FT_INT, "Targets" },
+ { true, FT_SHORT, "TargetCreatureType" },
{ false, FT_BYTE, "DifficultyID" },
- { false, FT_BYTE, "MaxAffectedTargets" },
+ { false, FT_BYTE, "MaxTargets" },
{ false, FT_INT, "MaxTargetLevel" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellTargetRestrictionsMeta::Instance(), HOTFIX_SEL_SPELL_TARGET_RESTRICTIONS);
return &loadInfo;
@@ -4718,9 +4718,9 @@ struct SpellTotemsLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "SpellID" },
- { false, FT_INT, "Totem1" },
- { false, FT_INT, "Totem2" },
+ { true, FT_INT, "SpellID" },
+ { true, FT_INT, "Totem1" },
+ { true, FT_INT, "Totem2" },
{ false, FT_SHORT, "RequiredTotemCategoryID1" },
{ false, FT_SHORT, "RequiredTotemCategoryID2" },
};
@@ -4737,17 +4737,17 @@ struct SpellXSpellVisualLoadInfo
{
{ false, FT_INT, "SpellVisualID" },
{ false, FT_INT, "ID" },
- { false, FT_FLOAT, "Chance" },
+ { false, FT_FLOAT, "Probability" },
{ false, FT_SHORT, "CasterPlayerConditionID" },
{ false, FT_SHORT, "CasterUnitConditionID" },
- { false, FT_SHORT, "PlayerConditionID" },
- { false, FT_SHORT, "UnitConditionID" },
- { false, FT_INT, "IconFileDataID" },
- { false, FT_INT, "ActiveIconFileDataID" },
+ { false, FT_SHORT, "ViewerPlayerConditionID" },
+ { false, FT_SHORT, "ViewerUnitConditionID" },
+ { true, FT_INT, "SpellIconFileID" },
+ { true, FT_INT, "ActiveIconFileID" },
{ false, FT_BYTE, "Flags" },
{ false, FT_BYTE, "DifficultyID" },
{ false, FT_BYTE, "Priority" },
- { false, FT_INT, "SpellID" },
+ { true, FT_INT, "SpellID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SpellXSpellVisualMeta::Instance(), HOTFIX_SEL_SPELL_X_SPELL_VISUAL);
return &loadInfo;
@@ -4761,10 +4761,10 @@ struct SummonPropertiesLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Flags" },
- { false, FT_INT, "Category" },
- { false, FT_INT, "Faction" },
- { true, FT_INT, "Type" },
+ { true, FT_INT, "Flags" },
+ { true, FT_INT, "Control" },
+ { true, FT_INT, "Faction" },
+ { true, FT_INT, "Title" },
{ true, FT_INT, "Slot" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, SummonPropertiesMeta::Instance(), HOTFIX_SEL_SUMMON_PROPERTIES);
@@ -4835,19 +4835,19 @@ struct TaxiNodesLoadInfo
{ false, FT_FLOAT, "PosX" },
{ false, FT_FLOAT, "PosY" },
{ false, FT_FLOAT, "PosZ" },
- { false, FT_INT, "MountCreatureID1" },
- { false, FT_INT, "MountCreatureID2" },
+ { true, FT_INT, "MountCreatureID1" },
+ { true, FT_INT, "MountCreatureID2" },
{ false, FT_FLOAT, "MapOffsetX" },
{ false, FT_FLOAT, "MapOffsetY" },
- { false, FT_FLOAT, "Unk730" },
+ { false, FT_FLOAT, "Facing" },
{ false, FT_FLOAT, "FlightMapOffsetX" },
{ false, FT_FLOAT, "FlightMapOffsetY" },
- { false, FT_SHORT, "MapID" },
+ { false, FT_SHORT, "ContinentID" },
{ false, FT_SHORT, "ConditionID" },
- { false, FT_SHORT, "LearnableIndex" },
+ { false, FT_SHORT, "CharacterBitNumber" },
{ false, FT_BYTE, "Flags" },
- { true, FT_INT, "UiTextureKitPrefixID" },
- { false, FT_INT, "SpecialAtlasIconPlayerConditionID" },
+ { true, FT_INT, "UiTextureKitID" },
+ { false, FT_INT, "SpecialIconConditionID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TaxiNodesMeta::Instance(), HOTFIX_SEL_TAXI_NODES);
return &loadInfo;
@@ -4860,8 +4860,8 @@ struct TaxiPathLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_SHORT, "From" },
- { false, FT_SHORT, "To" },
+ { false, FT_SHORT, "FromTaxiNode" },
+ { false, FT_SHORT, "ToTaxiNode" },
{ false, FT_INT, "ID" },
{ false, FT_INT, "Cost" },
};
@@ -4880,7 +4880,7 @@ struct TaxiPathNodeLoadInfo
{ false, FT_FLOAT, "LocY" },
{ false, FT_FLOAT, "LocZ" },
{ false, FT_SHORT, "PathID" },
- { false, FT_SHORT, "MapID" },
+ { false, FT_SHORT, "ContinentID" },
{ false, FT_BYTE, "NodeIndex" },
{ false, FT_INT, "ID" },
{ false, FT_BYTE, "Flags" },
@@ -4901,8 +4901,8 @@ struct TotemCategoryLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Name" },
- { false, FT_INT, "CategoryMask" },
- { false, FT_BYTE, "CategoryType" },
+ { true, FT_INT, "TotemCategoryMask" },
+ { false, FT_BYTE, "TotemCategoryType" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TotemCategoryMeta::Instance(), HOTFIX_SEL_TOTEM_CATEGORY);
return &loadInfo;
@@ -4915,10 +4915,10 @@ struct ToyLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_STRING, "Description" },
- { false, FT_INT, "ItemID" },
+ { false, FT_STRING, "SourceText" },
+ { true, FT_INT, "ItemID" },
{ false, FT_BYTE, "Flags" },
- { false, FT_BYTE, "CategoryFilter" },
+ { true, FT_BYTE, "SourceTypeEnum" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, ToyMeta::Instance(), HOTFIX_SEL_TOY);
@@ -4933,7 +4933,7 @@ struct TransmogHolidayLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "HolidayID" },
+ { true, FT_INT, "RequiredTransmogHoliday" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TransmogHolidayMeta::Instance(), HOTFIX_SEL_TRANSMOG_HOLIDAY);
return &loadInfo;
@@ -4947,12 +4947,12 @@ struct TransmogSetLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "Name" },
- { false, FT_SHORT, "BaseSetID" },
- { false, FT_SHORT, "UIOrder" },
+ { false, FT_SHORT, "ParentTransmogSetID" },
+ { true, FT_SHORT, "UiOrder" },
{ false, FT_BYTE, "ExpansionID" },
{ false, FT_INT, "ID" },
{ true, FT_INT, "Flags" },
- { true, FT_INT, "QuestID" },
+ { false, FT_INT, "TrackingQuestID" },
{ true, FT_INT, "ClassMask" },
{ true, FT_INT, "ItemNameDescriptionID" },
{ false, FT_INT, "TransmogSetGroupID" },
@@ -4968,7 +4968,7 @@ struct TransmogSetGroupLoadInfo
{
static DB2FieldMeta const fields[] =
{
- { false, FT_STRING, "Label" },
+ { false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TransmogSetGroupMeta::Instance(), HOTFIX_SEL_TRANSMOG_SET_GROUP);
@@ -5004,7 +5004,7 @@ struct TransportAnimationLoadInfo
{ false, FT_FLOAT, "PosY" },
{ false, FT_FLOAT, "PosZ" },
{ false, FT_BYTE, "SequenceID" },
- { false, FT_INT, "TransportID" },
+ { true, FT_INT, "TransportID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TransportAnimationMeta::Instance(), HOTFIX_SEL_TRANSPORT_ANIMATION);
return &loadInfo;
@@ -5019,11 +5019,11 @@ struct TransportRotationLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "TimeIndex" },
- { false, FT_FLOAT, "X" },
- { false, FT_FLOAT, "Y" },
- { false, FT_FLOAT, "Z" },
- { false, FT_FLOAT, "W" },
- { false, FT_INT, "TransportID" },
+ { false, FT_FLOAT, "Rot1" },
+ { false, FT_FLOAT, "Rot2" },
+ { false, FT_FLOAT, "Rot3" },
+ { false, FT_FLOAT, "Rot4" },
+ { true, FT_INT, "GameObjectsID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, TransportRotationMeta::Instance(), HOTFIX_SEL_TRANSPORT_ROTATION);
return &loadInfo;
@@ -5043,18 +5043,18 @@ struct UnitPowerBarLoadInfo
{ false, FT_STRING, "ToolTip" },
{ false, FT_FLOAT, "RegenerationPeace" },
{ false, FT_FLOAT, "RegenerationCombat" },
- { false, FT_INT, "FileDataID1" },
- { false, FT_INT, "FileDataID2" },
- { false, FT_INT, "FileDataID3" },
- { false, FT_INT, "FileDataID4" },
- { false, FT_INT, "FileDataID5" },
- { false, FT_INT, "FileDataID6" },
- { false, FT_INT, "Color1" },
- { false, FT_INT, "Color2" },
- { false, FT_INT, "Color3" },
- { false, FT_INT, "Color4" },
- { false, FT_INT, "Color5" },
- { false, FT_INT, "Color6" },
+ { true, FT_INT, "FileDataID1" },
+ { true, FT_INT, "FileDataID2" },
+ { true, FT_INT, "FileDataID3" },
+ { true, FT_INT, "FileDataID4" },
+ { true, FT_INT, "FileDataID5" },
+ { true, FT_INT, "FileDataID6" },
+ { true, FT_INT, "Color1" },
+ { true, FT_INT, "Color2" },
+ { true, FT_INT, "Color3" },
+ { true, FT_INT, "Color4" },
+ { true, FT_INT, "Color5" },
+ { true, FT_INT, "Color6" },
{ false, FT_FLOAT, "StartInset" },
{ false, FT_FLOAT, "EndInset" },
{ false, FT_SHORT, "StartPower" },
@@ -5076,7 +5076,7 @@ struct VehicleLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Flags" },
+ { true, FT_INT, "Flags" },
{ false, FT_FLOAT, "TurnSpeed" },
{ false, FT_FLOAT, "PitchSpeed" },
{ false, FT_FLOAT, "PitchMin" },
@@ -5101,7 +5101,7 @@ struct VehicleLoadInfo
{ false, FT_SHORT, "PowerDisplayID2" },
{ false, FT_SHORT, "PowerDisplayID3" },
{ false, FT_BYTE, "FlagsB" },
- { false, FT_BYTE, "UILocomotionType" },
+ { false, FT_BYTE, "UiLocomotionType" },
{ true, FT_INT, "MissileTargetingID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, VehicleMeta::Instance(), HOTFIX_SEL_VEHICLE);
@@ -5116,9 +5116,9 @@ struct VehicleSeatLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "Flags1" },
- { false, FT_INT, "Flags2" },
- { false, FT_INT, "Flags3" },
+ { true, FT_INT, "Flags" },
+ { true, FT_INT, "FlagsB" },
+ { true, FT_INT, "FlagsC" },
{ false, FT_FLOAT, "AttachmentOffsetX" },
{ false, FT_FLOAT, "AttachmentOffsetY" },
{ false, FT_FLOAT, "AttachmentOffsetZ" },
@@ -5153,7 +5153,7 @@ struct VehicleSeatLoadInfo
{ false, FT_FLOAT, "CameraEnteringZoom" },
{ false, FT_FLOAT, "CameraSeatZoomMin" },
{ false, FT_FLOAT, "CameraSeatZoomMax" },
- { false, FT_INT, "UISkinFileDataID" },
+ { true, FT_INT, "UiSkinFileDataID" },
{ true, FT_SHORT, "EnterAnimStart" },
{ true, FT_SHORT, "EnterAnimLoop" },
{ true, FT_SHORT, "RideAnimStart" },
@@ -5166,19 +5166,19 @@ struct VehicleSeatLoadInfo
{ true, FT_SHORT, "VehicleEnterAnim" },
{ true, FT_SHORT, "VehicleExitAnim" },
{ true, FT_SHORT, "VehicleRideAnimLoop" },
- { false, FT_SHORT, "EnterAnimKitID" },
- { false, FT_SHORT, "RideAnimKitID" },
- { false, FT_SHORT, "ExitAnimKitID" },
- { false, FT_SHORT, "VehicleEnterAnimKitID" },
- { false, FT_SHORT, "VehicleRideAnimKitID" },
- { false, FT_SHORT, "VehicleExitAnimKitID" },
- { false, FT_SHORT, "CameraModeID" },
+ { true, FT_SHORT, "EnterAnimKitID" },
+ { true, FT_SHORT, "RideAnimKitID" },
+ { true, FT_SHORT, "ExitAnimKitID" },
+ { true, FT_SHORT, "VehicleEnterAnimKitID" },
+ { true, FT_SHORT, "VehicleRideAnimKitID" },
+ { true, FT_SHORT, "VehicleExitAnimKitID" },
+ { true, FT_SHORT, "CameraModeID" },
{ true, FT_BYTE, "AttachmentID" },
{ true, FT_BYTE, "PassengerAttachmentID" },
{ true, FT_BYTE, "VehicleEnterAnimBone" },
{ true, FT_BYTE, "VehicleExitAnimBone" },
{ true, FT_BYTE, "VehicleRideAnimLoopBone" },
- { false, FT_BYTE, "VehicleAbilityDisplay" },
+ { true, FT_BYTE, "VehicleAbilityDisplay" },
{ false, FT_INT, "EnterUISoundID" },
{ false, FT_INT, "ExitUISoundID" },
};
@@ -5194,20 +5194,20 @@ struct WmoAreaTableLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_STRING, "AreaName" },
- { true, FT_INT, "WMOGroupID" },
+ { true, FT_INT, "WmoGroupID" },
{ false, FT_SHORT, "AmbienceID" },
{ false, FT_SHORT, "ZoneMusic" },
{ false, FT_SHORT, "IntroSound" },
{ false, FT_SHORT, "AreaTableID" },
- { false, FT_SHORT, "UWIntroSound" },
- { false, FT_SHORT, "UWAmbience" },
- { true, FT_BYTE, "NameSet" },
+ { false, FT_SHORT, "UwIntroSound" },
+ { false, FT_SHORT, "UwAmbience" },
+ { false, FT_BYTE, "NameSetID" },
{ false, FT_BYTE, "SoundProviderPref" },
{ false, FT_BYTE, "SoundProviderPrefUnderwater" },
{ false, FT_BYTE, "Flags" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "UWZoneMusic" },
- { true, FT_SHORT, "WMOID" },
+ { false, FT_INT, "UwZoneMusic" },
+ { false, FT_SHORT, "WmoID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, WMOAreaTableMeta::Instance(), HOTFIX_SEL_WMO_AREA_TABLE);
return &loadInfo;
@@ -5221,7 +5221,7 @@ struct WorldEffectLoadInfo
static DB2FieldMeta const fields[] =
{
{ false, FT_INT, "ID" },
- { false, FT_INT, "TargetAsset" },
+ { true, FT_INT, "TargetAsset" },
{ false, FT_SHORT, "CombatConditionID" },
{ false, FT_BYTE, "TargetType" },
{ false, FT_BYTE, "WhenToDisplay" },
@@ -5245,17 +5245,17 @@ struct WorldMapAreaLoadInfo
{ false, FT_FLOAT, "LocTop" },
{ false, FT_FLOAT, "LocBottom" },
{ false, FT_INT, "Flags" },
- { false, FT_SHORT, "MapID" },
+ { true, FT_SHORT, "MapID" },
{ false, FT_SHORT, "AreaID" },
{ true, FT_SHORT, "DisplayMapID" },
- { true, FT_SHORT, "DefaultDungeonFloor" },
+ { false, FT_SHORT, "DefaultDungeonFloor" },
{ false, FT_SHORT, "ParentWorldMapID" },
{ false, FT_BYTE, "LevelRangeMin" },
{ false, FT_BYTE, "LevelRangeMax" },
{ false, FT_BYTE, "BountySetID" },
- { false, FT_BYTE, "BountyBoardLocation" },
+ { false, FT_BYTE, "BountyDisplayLocation" },
{ false, FT_INT, "ID" },
- { false, FT_INT, "PlayerConditionID" },
+ { false, FT_INT, "VisibilityPlayerConditionID" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, WorldMapAreaMeta::Instance(), HOTFIX_SEL_WORLD_MAP_AREA);
return &loadInfo;
@@ -5273,10 +5273,6 @@ struct WorldMapOverlayLoadInfo
{ false, FT_SHORT, "TextureWidth" },
{ false, FT_SHORT, "TextureHeight" },
{ false, FT_INT, "MapAreaID" },
- { false, FT_INT, "AreaID1" },
- { false, FT_INT, "AreaID2" },
- { false, FT_INT, "AreaID3" },
- { false, FT_INT, "AreaID4" },
{ true, FT_INT, "OffsetX" },
{ true, FT_INT, "OffsetY" },
{ true, FT_INT, "HitRectTop" },
@@ -5285,6 +5281,10 @@ struct WorldMapOverlayLoadInfo
{ true, FT_INT, "HitRectRight" },
{ false, FT_INT, "PlayerConditionID" },
{ false, FT_INT, "Flags" },
+ { false, FT_INT, "AreaID1" },
+ { false, FT_INT, "AreaID2" },
+ { false, FT_INT, "AreaID3" },
+ { false, FT_INT, "AreaID4" },
};
static DB2LoadInfo const loadInfo(&fields[0], std::extent<decltype(fields)>::value, WorldMapOverlayMeta::Instance(), HOTFIX_SEL_WORLD_MAP_OVERLAY);
return &loadInfo;
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 99b8f08495a..dd3d58b1340 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -93,16 +93,16 @@ DB2Storage<EmotesTextEntry> sEmotesTextStore("EmotesText.db2
DB2Storage<EmotesTextSoundEntry> sEmotesTextSoundStore("EmotesTextSound.db2", EmotesTextSoundLoadInfo::Instance());
DB2Storage<FactionEntry> sFactionStore("Faction.db2", FactionLoadInfo::Instance());
DB2Storage<FactionTemplateEntry> sFactionTemplateStore("FactionTemplate.db2", FactionTemplateLoadInfo::Instance());
-DB2Storage<GameObjectsEntry> sGameObjectsStore("GameObjects.db2", GameobjectsLoadInfo::Instance());
DB2Storage<GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore("GameObjectDisplayInfo.db2", GameobjectDisplayInfoLoadInfo::Instance());
+DB2Storage<GameObjectsEntry> sGameObjectsStore("GameObjects.db2", GameobjectsLoadInfo::Instance());
DB2Storage<GarrAbilityEntry> sGarrAbilityStore("GarrAbility.db2", GarrAbilityLoadInfo::Instance());
DB2Storage<GarrBuildingEntry> sGarrBuildingStore("GarrBuilding.db2", GarrBuildingLoadInfo::Instance());
DB2Storage<GarrBuildingPlotInstEntry> sGarrBuildingPlotInstStore("GarrBuildingPlotInst.db2", GarrBuildingPlotInstLoadInfo::Instance());
DB2Storage<GarrClassSpecEntry> sGarrClassSpecStore("GarrClassSpec.db2", GarrClassSpecLoadInfo::Instance());
DB2Storage<GarrFollowerEntry> sGarrFollowerStore("GarrFollower.db2", GarrFollowerLoadInfo::Instance());
DB2Storage<GarrFollowerXAbilityEntry> sGarrFollowerXAbilityStore("GarrFollowerXAbility.db2", GarrFollowerXAbilityLoadInfo::Instance());
-DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore("GarrPlotBuilding.db2", GarrPlotBuildingLoadInfo::Instance());
DB2Storage<GarrPlotEntry> sGarrPlotStore("GarrPlot.db2", GarrPlotLoadInfo::Instance());
+DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore("GarrPlotBuilding.db2", GarrPlotBuildingLoadInfo::Instance());
DB2Storage<GarrPlotInstanceEntry> sGarrPlotInstanceStore("GarrPlotInstance.db2", GarrPlotInstanceLoadInfo::Instance());
DB2Storage<GarrSiteLevelEntry> sGarrSiteLevelStore("GarrSiteLevel.db2", GarrSiteLevelLoadInfo::Instance());
DB2Storage<GarrSiteLevelPlotInstEntry> sGarrSiteLevelPlotInstStore("GarrSiteLevelPlotInst.db2", GarrSiteLevelPlotInstLoadInfo::Instance());
@@ -321,7 +321,7 @@ typedef std::unordered_map<uint32, std::unordered_map<uint32, std::vector<SpellP
typedef std::unordered_map<uint32, std::vector<SpellProcsPerMinuteModEntry const*>> SpellProcsPerMinuteModContainer;
typedef std::vector<TalentEntry const*> TalentsByPosition[MAX_CLASSES][MAX_TALENT_TIERS][MAX_TALENT_COLUMNS];
typedef std::unordered_set<uint32> ToyItemIdsContainer;
-typedef std::tuple<int16, int8, int32> WMOAreaTableKey;
+typedef std::tuple<uint16, uint8, int32> WMOAreaTableKey;
typedef std::map<WMOAreaTableKey, WMOAreaTableEntry const*> WMOAreaTableLookupContainer;
typedef std::unordered_map<uint32, WorldMapAreaEntry const*> WorldMapAreaByAreaIDContainer;
@@ -707,12 +707,12 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
for (ArtifactPowerLinkEntry const* artifactPowerLink : sArtifactPowerLinkStore)
{
- _artifactPowerLinks[artifactPowerLink->FromArtifactPowerID].insert(artifactPowerLink->ToArtifactPowerID);
- _artifactPowerLinks[artifactPowerLink->ToArtifactPowerID].insert(artifactPowerLink->FromArtifactPowerID);
+ _artifactPowerLinks[artifactPowerLink->PowerA].insert(artifactPowerLink->PowerB);
+ _artifactPowerLinks[artifactPowerLink->PowerB].insert(artifactPowerLink->PowerA);
}
for (ArtifactPowerRankEntry const* artifactPowerRank : sArtifactPowerRankStore)
- _artifactPowerRanks[std::pair<uint32, uint8>{ artifactPowerRank->ArtifactPowerID, artifactPowerRank->Rank }] = artifactPowerRank;
+ _artifactPowerRanks[std::pair<uint32, uint8>{ artifactPowerRank->ArtifactPowerID, artifactPowerRank->RankIndex }] = artifactPowerRank;
ASSERT(BATTLE_PET_SPECIES_MAX_ID >= sBattlePetSpeciesStore.GetNumRows(),
"BATTLE_PET_SPECIES_MAX_ID (%d) must be equal to or greater than %u", BATTLE_PET_SPECIES_MAX_ID, sBattlePetSpeciesStore.GetNumRows());
@@ -723,12 +723,12 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
std::array<CharBaseSectionVariation, SECTION_TYPE_MAX> sectionToBase = { {} };
for (CharBaseSectionEntry const* charBaseSection : sCharBaseSectionStore)
{
- ASSERT(charBaseSection->ResolutionVariation < SECTION_TYPE_MAX,
- "SECTION_TYPE_MAX (%d) must be equal to or greater than %u", uint32(SECTION_TYPE_MAX), uint32(charBaseSection->ResolutionVariation + 1));
- ASSERT(charBaseSection->Variation < AsUnderlyingType(CharBaseSectionVariation::Count),
- "CharBaseSectionVariation::Count %u must be equal to or greater than %u", uint32(CharBaseSectionVariation::Count), uint32(charBaseSection->Variation + 1));
+ ASSERT(charBaseSection->ResolutionVariationEnum < SECTION_TYPE_MAX,
+ "SECTION_TYPE_MAX (%d) must be equal to or greater than %u", uint32(SECTION_TYPE_MAX), uint32(charBaseSection->ResolutionVariationEnum + 1));
+ ASSERT(charBaseSection->VariationEnum < AsUnderlyingType(CharBaseSectionVariation::Count),
+ "CharBaseSectionVariation::Count %u must be equal to or greater than %u", uint32(CharBaseSectionVariation::Count), uint32(charBaseSection->VariationEnum + 1));
- sectionToBase[charBaseSection->ResolutionVariation] = static_cast<CharBaseSectionVariation>(charBaseSection->Variation);
+ sectionToBase[charBaseSection->ResolutionVariationEnum] = static_cast<CharBaseSectionVariation>(charBaseSection->VariationEnum);
}
std::map<std::tuple<uint8, uint8, CharBaseSectionVariation>, std::set<std::pair<uint8, uint8>>> addedSections;
@@ -747,7 +747,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
}
for (CharStartOutfitEntry const* outfit : sCharStartOutfitStore)
- _charStartOutfits[outfit->RaceID | (outfit->ClassID << 8) | (outfit->GenderID << 16)] = outfit;
+ _charStartOutfits[outfit->RaceID | (outfit->ClassID << 8) | (outfit->SexID << 16)] = outfit;
{
std::set<ChrClassesXPowerTypesEntry const*, ChrClassesXPowerTypesEntryComparator> powers;
@@ -794,14 +794,14 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
_curvePoints[curvePoint->CurveID].push_back(curvePoint);
for (auto itr = _curvePoints.begin(); itr != _curvePoints.end(); ++itr)
- std::sort(itr->second.begin(), itr->second.end(), [](CurvePointEntry const* point1, CurvePointEntry const* point2) { return point1->Index < point2->Index; });
+ std::sort(itr->second.begin(), itr->second.end(), [](CurvePointEntry const* point1, CurvePointEntry const* point2) { return point1->OrderIndex < point2->OrderIndex; });
ASSERT(MAX_DIFFICULTY >= sDifficultyStore.GetNumRows(),
"MAX_DIFFICULTY is not large enough to contain all difficulties! (current value %d, required %d)",
MAX_DIFFICULTY, sDifficultyStore.GetNumRows());
for (EmotesTextSoundEntry const* emoteTextSound : sEmotesTextSoundStore)
- _emoteTextSounds[EmotesTextSoundContainer::key_type(emoteTextSound->EmotesTextId, emoteTextSound->RaceId, emoteTextSound->SexId, emoteTextSound->ClassId)] = emoteTextSound;
+ _emoteTextSounds[EmotesTextSoundContainer::key_type(emoteTextSound->EmotesTextID, emoteTextSound->RaceID, emoteTextSound->SexID, emoteTextSound->ClassID)] = emoteTextSound;
for (FactionEntry const* faction : sFactionStore)
if (faction->ParentFactionID)
@@ -827,44 +827,44 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
_glyphRequiredSpecs[glyphRequiredSpec->GlyphPropertiesID].push_back(glyphRequiredSpec->ChrSpecializationID);
for (ItemBonusEntry const* bonus : sItemBonusStore)
- _itemBonusLists[bonus->BonusListID].push_back(bonus);
+ _itemBonusLists[bonus->ParentItemBonusListID].push_back(bonus);
for (ItemBonusListLevelDeltaEntry const* itemBonusListLevelDelta : sItemBonusListLevelDeltaStore)
- _itemLevelDeltaToBonusListContainer[itemBonusListLevelDelta->Delta] = itemBonusListLevelDelta->ID;
+ _itemLevelDeltaToBonusListContainer[itemBonusListLevelDelta->ItemLevelDelta] = itemBonusListLevelDelta->ID;
for (ItemBonusTreeNodeEntry const* bonusTreeNode : sItemBonusTreeNodeStore)
{
- uint32 bonusTreeId = bonusTreeNode->BonusTreeID;
+ uint32 bonusTreeId = bonusTreeNode->ParentItemBonusTreeID;
while (bonusTreeNode)
{
_itemBonusTrees[bonusTreeId].insert(bonusTreeNode);
- bonusTreeNode = sItemBonusTreeNodeStore.LookupEntry(bonusTreeNode->SubTreeID);
+ bonusTreeNode = sItemBonusTreeNodeStore.LookupEntry(bonusTreeNode->ChildItemBonusTreeID);
}
}
for (ItemChildEquipmentEntry const* itemChildEquipment : sItemChildEquipmentStore)
{
- ASSERT(_itemChildEquipment.find(itemChildEquipment->ItemID) == _itemChildEquipment.end(), "Item must have max 1 child item.");
- _itemChildEquipment[itemChildEquipment->ItemID] = itemChildEquipment;
+ ASSERT(_itemChildEquipment.find(itemChildEquipment->ParentItemID) == _itemChildEquipment.end(), "Item must have max 1 child item.");
+ _itemChildEquipment[itemChildEquipment->ParentItemID] = itemChildEquipment;
}
for (ItemClassEntry const* itemClass : sItemClassStore)
{
- ASSERT(itemClass->OldEnumValue < _itemClassByOldEnum.size());
- ASSERT(!_itemClassByOldEnum[itemClass->OldEnumValue]);
- _itemClassByOldEnum[itemClass->OldEnumValue] = itemClass;
+ ASSERT(itemClass->ClassID < int32(_itemClassByOldEnum.size()));
+ ASSERT(!_itemClassByOldEnum[itemClass->ClassID]);
+ _itemClassByOldEnum[itemClass->ClassID] = itemClass;
}
for (ItemCurrencyCostEntry const* itemCurrencyCost : sItemCurrencyCostStore)
- _itemsWithCurrencyCost.insert(itemCurrencyCost->ItemId);
+ _itemsWithCurrencyCost.insert(itemCurrencyCost->ItemID);
for (ItemLevelSelectorQualityEntry const* itemLevelSelectorQuality : sItemLevelSelectorQualityStore)
- _itemLevelQualitySelectorQualities[itemLevelSelectorQuality->ItemLevelSelectorQualitySetID].insert(itemLevelSelectorQuality);
+ _itemLevelQualitySelectorQualities[itemLevelSelectorQuality->ParentILSQualitySetID].insert(itemLevelSelectorQuality);
for (ItemModifiedAppearanceEntry const* appearanceMod : sItemModifiedAppearanceStore)
{
ASSERT(appearanceMod->ItemID <= 0xFFFFFF);
- _itemModifiedAppearancesByItem[appearanceMod->ItemID | (appearanceMod->AppearanceModID << 24)] = appearanceMod;
+ _itemModifiedAppearancesByItem[appearanceMod->ItemID | (appearanceMod->ItemAppearanceModifierID << 24)] = appearanceMod;
}
for (ItemSetSpellEntry const* itemSetSpell : sItemSetSpellStore)
@@ -874,14 +874,14 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
_itemSpecOverrides[itemSpecOverride->ItemID].push_back(itemSpecOverride);
for (ItemXBonusTreeEntry const* itemBonusTreeAssignment : sItemXBonusTreeStore)
- _itemToBonusTree.insert({ itemBonusTreeAssignment->ItemID, itemBonusTreeAssignment->BonusTreeID });
+ _itemToBonusTree.insert({ itemBonusTreeAssignment->ItemID, itemBonusTreeAssignment->ItemBonusTreeID });
for (MapDifficultyEntry const* entry : sMapDifficultyStore)
_mapDifficulties[entry->MapID][entry->DifficultyID] = entry;
_mapDifficulties[0][0] = _mapDifficulties[1][0]; // map 0 is missing from MapDifficulty.dbc so we cheat a bit
for (MountEntry const* mount : sMountStore)
- _mountsBySpellId[mount->SpellId] = mount;
+ _mountsBySpellId[mount->SourceSpellID] = mount;
for (MountTypeXCapabilityEntry const* mountTypeCapability : sMountTypeXCapabilityStore)
_mountCapabilitiesByType[mountTypeCapability->MountTypeID].insert(mountTypeCapability);
@@ -890,7 +890,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
_mountDisplays[mountDisplay->MountID].push_back(mountDisplay);
for (NameGenEntry const* nameGen : sNameGenStore)
- _nameGenData[nameGen->Race][nameGen->Sex].push_back(nameGen);
+ _nameGenData[nameGen->RaceID][nameGen->Sex].push_back(nameGen);
for (NamesProfanityEntry const* namesProfanity : sNamesProfanityStore)
{
@@ -947,14 +947,14 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
for (PVPDifficultyEntry const* entry : sPVPDifficultyStore)
{
- ASSERT(entry->BracketID < MAX_BATTLEGROUND_BRACKETS, "PvpDifficulty bracket (%d) exceeded max allowed value (%d)", entry->BracketID, MAX_BATTLEGROUND_BRACKETS);
+ ASSERT(entry->RangeIndex < MAX_BATTLEGROUND_BRACKETS, "PvpDifficulty bracket (%d) exceeded max allowed value (%d)", entry->RangeIndex, MAX_BATTLEGROUND_BRACKETS);
}
for (PVPItemEntry const* pvpItem : sPVPItemStore)
- _pvpItemBonus[pvpItem->ItemID] = pvpItem->ItemLevelBonus;
+ _pvpItemBonus[pvpItem->ItemID] = pvpItem->ItemLevelDelta;
for (PvpRewardEntry const* pvpReward : sPvpRewardStore)
- _pvpRewardPack[std::make_pair(pvpReward->Prestige, pvpReward->HonorLevel)] = pvpReward->RewardPackID;
+ _pvpRewardPack[std::make_pair(pvpReward->PrestigeLevel, pvpReward->HonorLevel)] = pvpReward->RewardPackID;
for (PvpTalentEntry const* talentInfo : sPvpTalentStore)
{
@@ -979,10 +979,10 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
for (QuestPackageItemEntry const* questPackageItem : sQuestPackageItemStore)
{
- if (questPackageItem->FilterType != QUEST_PACKAGE_FILTER_UNMATCHED)
- _questPackages[questPackageItem->QuestPackageID].first.push_back(questPackageItem);
+ if (questPackageItem->DisplayType != QUEST_PACKAGE_FILTER_UNMATCHED)
+ _questPackages[questPackageItem->PackageID].first.push_back(questPackageItem);
else
- _questPackages[questPackageItem->QuestPackageID].second.push_back(questPackageItem);
+ _questPackages[questPackageItem->PackageID].second.push_back(questPackageItem);
}
for (RewardPackXItemEntry const* rewardPackXItem : sRewardPackXItemStore)
@@ -1006,18 +1006,18 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
if (SpellPowerDifficultyEntry const* powerDifficulty = sSpellPowerDifficultyStore.LookupEntry(power->ID))
{
std::vector<SpellPowerEntry const*>& powers = _spellPowerDifficulties[power->SpellID][powerDifficulty->DifficultyID];
- if (powers.size() <= powerDifficulty->PowerIndex)
- powers.resize(powerDifficulty->PowerIndex + 1);
+ if (powers.size() <= powerDifficulty->OrderIndex)
+ powers.resize(powerDifficulty->OrderIndex + 1);
- powers[powerDifficulty->PowerIndex] = power;
+ powers[powerDifficulty->OrderIndex] = power;
}
else
{
std::vector<SpellPowerEntry const*>& powers = _spellPowers[power->SpellID];
- if (powers.size() <= power->PowerIndex)
- powers.resize(power->PowerIndex + 1);
+ if (powers.size() <= power->OrderIndex)
+ powers.resize(power->OrderIndex + 1);
- powers[power->PowerIndex] = power;
+ powers[power->OrderIndex] = power;
}
}
@@ -1034,7 +1034,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
}
for (TaxiPathEntry const* entry : sTaxiPathStore)
- sTaxiPathSetBySource[entry->From][entry->To] = TaxiPathBySourceAndDestination(entry->ID, entry->Cost);
+ sTaxiPathSetBySource[entry->FromTaxiNode][entry->ToTaxiNode] = TaxiPathBySourceAndDestination(entry->ID, entry->Cost);
uint32 pathCount = sTaxiPathStore.GetNumRows();
@@ -1084,7 +1084,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
sAllianceTaxiNodesMask[field] |= submask;
uint32 nodeMap;
- DeterminaAlternateMapPosition(node->MapID, node->Pos.X, node->Pos.Y, node->Pos.Z, &nodeMap);
+ DeterminaAlternateMapPosition(node->ContinentID, node->Pos.X, node->Pos.Y, node->Pos.Z, &nodeMap);
if (nodeMap < 2)
sOldContinentsNodesMask[field] |= submask;
}
@@ -1104,7 +1104,7 @@ void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale)
}
for (WMOAreaTableEntry const* entry : sWMOAreaTableStore)
- _wmoAreaTableLookup[WMOAreaTableKey(entry->WMOID, entry->NameSet, entry->WMOGroupID)] = entry;
+ _wmoAreaTableLookup[WMOAreaTableKey(entry->WmoID, entry->NameSetID, entry->WmoGroupID)] = entry;
for (WorldMapAreaEntry const* worldMapArea : sWorldMapAreaStore)
_worldMapAreaByAreaID[worldMapArea->AreaID] = worldMapArea;
@@ -1259,18 +1259,18 @@ ArtifactPowerRankEntry const* DB2Manager::GetArtifactPowerRank(uint32 artifactPo
char const* DB2Manager::GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale /*= DEFAULT_LOCALE*/, uint8 gender /*= GENDER_MALE*/, bool forceGender /*= false*/)
{
- if ((gender == GENDER_FEMALE || gender == GENDER_NONE) && (forceGender || broadcastText->FemaleText->Str[DEFAULT_LOCALE][0] != '\0'))
+ if ((gender == GENDER_FEMALE || gender == GENDER_NONE) && (forceGender || broadcastText->Text1->Str[DEFAULT_LOCALE][0] != '\0'))
{
- if (broadcastText->FemaleText->Str[locale][0] != '\0')
- return broadcastText->FemaleText->Str[locale];
+ if (broadcastText->Text1->Str[locale][0] != '\0')
+ return broadcastText->Text1->Str[locale];
- return broadcastText->FemaleText->Str[DEFAULT_LOCALE];
+ return broadcastText->Text1->Str[DEFAULT_LOCALE];
}
- if (broadcastText->MaleText->Str[locale][0] != '\0')
- return broadcastText->MaleText->Str[locale];
+ if (broadcastText->Text->Str[locale][0] != '\0')
+ return broadcastText->Text->Str[locale];
- return broadcastText->MaleText->Str[DEFAULT_LOCALE];
+ return broadcastText->Text->Str[DEFAULT_LOCALE];
}
bool DB2Manager::HasCharacterFacialHairStyle(uint8 race, uint8 gender, uint8 variationId) const
@@ -1416,82 +1416,82 @@ float DB2Manager::GetCurveValueAt(uint32 curveId, float x) const
case CurveInterpolationMode::Linear:
{
std::size_t pointIndex = 0;
- while (pointIndex < points.size() && points[pointIndex]->X <= x)
+ while (pointIndex < points.size() && points[pointIndex]->Pos.X <= x)
++pointIndex;
if (!pointIndex)
- return points[0]->Y;
+ return points[0]->Pos.Y;
if (pointIndex >= points.size())
- return points.back()->Y;
- float xDiff = points[pointIndex]->X - points[pointIndex - 1]->X;
+ return points.back()->Pos.Y;
+ float xDiff = points[pointIndex]->Pos.X - points[pointIndex - 1]->Pos.X;
if (xDiff == 0.0)
- return points[pointIndex]->Y;
- return (((x - points[pointIndex - 1]->X) / xDiff) * (points[pointIndex]->Y - points[pointIndex - 1]->Y)) + points[pointIndex - 1]->Y;
+ return points[pointIndex]->Pos.Y;
+ return (((x - points[pointIndex - 1]->Pos.X) / xDiff) * (points[pointIndex]->Pos.Y - points[pointIndex - 1]->Pos.Y)) + points[pointIndex - 1]->Pos.Y;
}
case CurveInterpolationMode::Cosine:
{
std::size_t pointIndex = 0;
- while (pointIndex < points.size() && points[pointIndex]->X <= x)
+ while (pointIndex < points.size() && points[pointIndex]->Pos.X <= x)
++pointIndex;
if (!pointIndex)
- return points[0]->Y;
+ return points[0]->Pos.Y;
if (pointIndex >= points.size())
- return points.back()->Y;
- float xDiff = points[pointIndex]->X - points[pointIndex - 1]->X;
+ return points.back()->Pos.Y;
+ float xDiff = points[pointIndex]->Pos.X - points[pointIndex - 1]->Pos.X;
if (xDiff == 0.0)
- return points[pointIndex]->Y;
- return ((points[pointIndex]->Y - points[pointIndex - 1]->Y) * (1.0f - std::cos((x - points[pointIndex - 1]->X) / xDiff * float(M_PI))) * 0.5f) + points[pointIndex - 1]->Y;
+ return points[pointIndex]->Pos.Y;
+ return ((points[pointIndex]->Pos.Y - points[pointIndex - 1]->Pos.Y) * (1.0f - std::cos((x - points[pointIndex - 1]->Pos.X) / xDiff * float(M_PI))) * 0.5f) + points[pointIndex - 1]->Pos.Y;
}
case CurveInterpolationMode::CatmullRom:
{
std::size_t pointIndex = 1;
- while (pointIndex < points.size() && points[pointIndex]->X <= x)
+ while (pointIndex < points.size() && points[pointIndex]->Pos.X <= x)
++pointIndex;
if (pointIndex == 1)
- return points[1]->Y;
+ return points[1]->Pos.Y;
if (pointIndex >= points.size() - 1)
- return points[points.size() - 2]->Y;
- float xDiff = points[pointIndex]->X - points[pointIndex - 1]->X;
+ return points[points.size() - 2]->Pos.Y;
+ float xDiff = points[pointIndex]->Pos.X - points[pointIndex - 1]->Pos.X;
if (xDiff == 0.0)
- return points[pointIndex]->Y;
+ return points[pointIndex]->Pos.Y;
- float mu = (x - points[pointIndex - 1]->X) / xDiff;
- float a0 = -0.5f * points[pointIndex - 2]->Y + 1.5f * points[pointIndex - 1]->Y - 1.5f * points[pointIndex]->Y + 0.5f * points[pointIndex + 1]->Y;
- float a1 = points[pointIndex - 2]->Y - 2.5f * points[pointIndex - 1]->Y + 2.0f * points[pointIndex]->Y - 0.5f * points[pointIndex + 1]->Y;
- float a2 = -0.5f * points[pointIndex - 2]->Y + 0.5f * points[pointIndex]->Y;
- float a3 = points[pointIndex - 1]->Y;
+ float mu = (x - points[pointIndex - 1]->Pos.X) / xDiff;
+ float a0 = -0.5f * points[pointIndex - 2]->Pos.Y + 1.5f * points[pointIndex - 1]->Pos.Y - 1.5f * points[pointIndex]->Pos.Y + 0.5f * points[pointIndex + 1]->Pos.Y;
+ float a1 = points[pointIndex - 2]->Pos.Y - 2.5f * points[pointIndex - 1]->Pos.Y + 2.0f * points[pointIndex]->Pos.Y - 0.5f * points[pointIndex + 1]->Pos.Y;
+ float a2 = -0.5f * points[pointIndex - 2]->Pos.Y + 0.5f * points[pointIndex]->Pos.Y;
+ float a3 = points[pointIndex - 1]->Pos.Y;
return a0 * mu * mu * mu + a1 * mu * mu + a2 * mu + a3;
}
case CurveInterpolationMode::Bezier3:
{
- float xDiff = points[2]->X - points[0]->X;
+ float xDiff = points[2]->Pos.X - points[0]->Pos.X;
if (xDiff == 0.0)
- return points[1]->Y;
- float mu = (x - points[0]->X) / xDiff;
- return ((1.0f - mu) * (1.0f - mu) * points[0]->Y) + (1.0f - mu) * 2.0f * mu * points[1]->Y + mu * mu * points[2]->Y;
+ return points[1]->Pos.Y;
+ float mu = (x - points[0]->Pos.X) / xDiff;
+ return ((1.0f - mu) * (1.0f - mu) * points[0]->Pos.Y) + (1.0f - mu) * 2.0f * mu * points[1]->Pos.Y + mu * mu * points[2]->Pos.Y;
}
case CurveInterpolationMode::Bezier4:
{
- float xDiff = points[3]->X - points[0]->X;
+ float xDiff = points[3]->Pos.X - points[0]->Pos.X;
if (xDiff == 0.0)
- return points[1]->Y;
- float mu = (x - points[0]->X) / xDiff;
- return (1.0f - mu) * (1.0f - mu) * (1.0f - mu) * points[0]->Y
- + 3.0f * mu * (1.0f - mu) * (1.0f - mu) * points[1]->Y
- + 3.0f * mu * mu * (1.0f - mu) * points[2]->Y
- + mu * mu * mu * points[3]->Y;
+ return points[1]->Pos.Y;
+ float mu = (x - points[0]->Pos.X) / xDiff;
+ return (1.0f - mu) * (1.0f - mu) * (1.0f - mu) * points[0]->Pos.Y
+ + 3.0f * mu * (1.0f - mu) * (1.0f - mu) * points[1]->Pos.Y
+ + 3.0f * mu * mu * (1.0f - mu) * points[2]->Pos.Y
+ + mu * mu * mu * points[3]->Pos.Y;
}
case CurveInterpolationMode::Bezier:
{
- float xDiff = points.back()->X - points[0]->X;
+ float xDiff = points.back()->Pos.X - points[0]->Pos.X;
if (xDiff == 0.0f)
- return points.back()->Y;
+ return points.back()->Pos.Y;
std::vector<float> tmp(points.size());
for (std::size_t i = 0; i < points.size(); ++i)
- tmp[i] = points[i]->Y;
+ tmp[i] = points[i]->Pos.Y;
- float mu = (x - points[0]->X) / xDiff;
+ float mu = (x - points[0]->Pos.X) / xDiff;
int32 i = int32(points.size()) - 1;
while (i > 0)
{
@@ -1505,7 +1505,7 @@ float DB2Manager::GetCurveValueAt(uint32 curveId, float x) const
return tmp[0];
}
case CurveInterpolationMode::Constant:
- return points[0]->Y;
+ return points[0]->Pos.Y;
default:
break;
}
@@ -1580,7 +1580,7 @@ uint32 DB2Manager::GetItemBonusListForItemLevelDelta(int16 delta) const
return 0;
}
-std::set<uint32> DB2Manager::GetItemBonusTree(uint32 itemId, uint32 itemBonusTreeMod) const
+std::set<uint32> DB2Manager::GetItemBonusTree(uint32 itemId, uint32 itemContext) const
{
std::set<uint32> bonusListIDs;
@@ -1600,20 +1600,20 @@ std::set<uint32> DB2Manager::GetItemBonusTree(uint32 itemId, uint32 itemBonusTre
for (ItemBonusTreeNodeEntry const* bonusTreeNode : treeItr->second)
{
- if (bonusTreeNode->BonusTreeModID != itemBonusTreeMod)
+ if (bonusTreeNode->ItemContext != itemContext)
continue;
- if (bonusTreeNode->BonusListID)
+ if (bonusTreeNode->ChildItemBonusListID)
{
- bonusListIDs.insert(bonusTreeNode->BonusListID);
+ bonusListIDs.insert(bonusTreeNode->ChildItemBonusListID);
}
- else if (bonusTreeNode->ItemLevelSelectorID)
+ else if (bonusTreeNode->ChildItemLevelSelectorID)
{
- ItemLevelSelectorEntry const* selector = sItemLevelSelectorStore.LookupEntry(bonusTreeNode->ItemLevelSelectorID);
+ ItemLevelSelectorEntry const* selector = sItemLevelSelectorStore.LookupEntry(bonusTreeNode->ChildItemLevelSelectorID);
if (!selector)
continue;
- int16 delta = int16(selector->ItemLevel) - proto->ItemLevel;
+ int16 delta = int16(selector->MinItemLevel) - proto->ItemLevel;
if (uint32 bonus = GetItemBonusListForItemLevelDelta(delta))
bonusListIDs.insert(bonus);
@@ -1624,16 +1624,16 @@ std::set<uint32> DB2Manager::GetItemBonusTree(uint32 itemId, uint32 itemBonusTre
if (itemSelectorQualities != _itemLevelQualitySelectorQualities.end())
{
ItemQualities quality = ITEM_QUALITY_UNCOMMON;
- if (selector->ItemLevel >= selectorQualitySet->ItemLevelMax)
+ if (selector->MinItemLevel >= selectorQualitySet->IlvlEpic)
quality = ITEM_QUALITY_EPIC;
- else if (selector->ItemLevel >= selectorQualitySet->ItemLevelMin)
+ else if (selector->MinItemLevel >= selectorQualitySet->IlvlRare)
quality = ITEM_QUALITY_RARE;
auto itemSelectorQuality = std::lower_bound(itemSelectorQualities->second.begin(), itemSelectorQualities->second.end(),
quality, ItemLevelSelectorQualityEntryComparator{});
if (itemSelectorQuality != itemSelectorQualities->second.end())
- bonusListIDs.insert((*itemSelectorQuality)->ItemBonusListID);
+ bonusListIDs.insert((*itemSelectorQuality)->QualityItemBonusListID);
}
}
}
@@ -1665,8 +1665,8 @@ bool DB2Manager::HasItemCurrencyCost(uint32 itemId) const
uint32 DB2Manager::GetItemDisplayId(uint32 itemId, uint32 appearanceModId) const
{
if (ItemModifiedAppearanceEntry const* modifiedAppearance = GetItemModifiedAppearance(itemId, appearanceModId))
- if (ItemAppearanceEntry const* itemAppearance = sItemAppearanceStore.LookupEntry(modifiedAppearance->AppearanceID))
- return itemAppearance->DisplayID;
+ if (ItemAppearanceEntry const* itemAppearance = sItemAppearanceStore.LookupEntry(modifiedAppearance->ItemAppearanceID))
+ return itemAppearance->ItemDisplayInfoID;
return 0;
}
@@ -1732,7 +1732,7 @@ uint32 DB2Manager::GetDefaultMapLight(uint32 mapId)
if (!light)
continue;
- if (light->MapID == mapId && light->Pos.X == 0.0f && light->Pos.Y == 0.0f && light->Pos.Z == 0.0f)
+ if (light->ContinentID == int32(mapId) && light->GameCoords.X == 0.0f && light->GameCoords.Y == 0.0f && light->GameCoords.Z == 0.0f)
return uint32(i);
}
@@ -1742,7 +1742,7 @@ uint32 DB2Manager::GetDefaultMapLight(uint32 mapId)
uint32 DB2Manager::GetLiquidFlags(uint32 liquidType)
{
if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquidType))
- return 1 << liq->Type;
+ return 1 << liq->SoundBank;
return 0;
}
@@ -1846,7 +1846,7 @@ DB2Manager::MountXDisplayContainer const* DB2Manager::GetMountDisplays(uint32 mo
return Trinity::Containers::MapGetValuePtr(_mountDisplays, mountId);
}
-std::string DB2Manager::GetNameGenEntry(uint8 race, uint8 gender, LocaleConstant locale, LocaleConstant defaultLocale) const
+std::string DB2Manager::GetNameGenEntry(uint8 race, uint8 gender) const
{
ASSERT(gender < GENDER_NONE);
auto ritr = _nameGenData.find(race);
@@ -1856,11 +1856,7 @@ std::string DB2Manager::GetNameGenEntry(uint8 race, uint8 gender, LocaleConstant
if (ritr->second[gender].empty())
return "";
- LocalizedString* data = Trinity::Containers::SelectRandomContainerElement(ritr->second[gender])->Name;
- if (*data->Str[locale] != '\0')
- return data->Str[locale];
-
- return data->Str[defaultLocale];
+ return Trinity::Containers::SelectRandomContainerElement(ritr->second[gender])->Name;
}
ResponseCodes DB2Manager::ValidateName(std::wstring const& name, LocaleConstant locale) const
@@ -1986,7 +1982,7 @@ PowerTypeEntry const* DB2Manager::GetPowerTypeByName(std::string const& name) co
{
for (PowerTypeEntry const* powerType : sPowerTypeStore)
{
- std::string powerName = powerType->PowerTypeToken;
+ std::string powerName = powerType->NameGlobalStringTag;
std::transform(powerName.begin(), powerName.end(), powerName.begin(), [](char c) { return char(::tolower(c)); });
if (powerName == name)
return powerType;
@@ -2076,8 +2072,8 @@ std::vector<SpellPowerEntry const*> DB2Manager::GetSpellPowers(uint32 spellId, D
powers.resize(powerDifficultyItr->second.size());
for (SpellPowerEntry const* difficultyPower : powerDifficultyItr->second)
- if (!powers[difficultyPower->PowerIndex])
- powers[difficultyPower->PowerIndex] = difficultyPower;
+ if (!powers[difficultyPower->OrderIndex])
+ powers[difficultyPower->OrderIndex] = difficultyPower;
}
difficultyEntry = sDifficultyStore.LookupEntry(difficultyEntry->FallbackDifficultyID);
@@ -2091,8 +2087,8 @@ std::vector<SpellPowerEntry const*> DB2Manager::GetSpellPowers(uint32 spellId, D
powers.resize(itr->second.size());
for (SpellPowerEntry const* power : itr->second)
- if (!powers[power->PowerIndex])
- powers[power->PowerIndex] = power;
+ if (!powers[power->OrderIndex])
+ powers[power->OrderIndex] = power;
}
return powers;
@@ -2126,10 +2122,10 @@ bool DB2Manager::IsTotemCategoryCompatibleWith(uint32 itemTotemCategoryId, uint3
if (!reqEntry)
return false;
- if (itemEntry->CategoryType != reqEntry->CategoryType)
+ if (itemEntry->TotemCategoryType != reqEntry->TotemCategoryType)
return false;
- return (itemEntry->CategoryMask & reqEntry->CategoryMask) == reqEntry->CategoryMask;
+ return (itemEntry->TotemCategoryMask & reqEntry->TotemCategoryMask) == reqEntry->TotemCategoryMask;
}
bool DB2Manager::IsToyItem(uint32 toy) const
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index f81a79a7bae..886ab57822f 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -82,16 +82,16 @@ TC_GAME_API extern DB2Storage<EmotesEntry> sEmotesStore
TC_GAME_API extern DB2Storage<EmotesTextEntry> sEmotesTextStore;
TC_GAME_API extern DB2Storage<FactionEntry> sFactionStore;
TC_GAME_API extern DB2Storage<FactionTemplateEntry> sFactionTemplateStore;
-TC_GAME_API extern DB2Storage<GameObjectsEntry> sGameObjectsStore;
TC_GAME_API extern DB2Storage<GameObjectDisplayInfoEntry> sGameObjectDisplayInfoStore;
+TC_GAME_API extern DB2Storage<GameObjectsEntry> sGameObjectsStore;
TC_GAME_API extern DB2Storage<GarrAbilityEntry> sGarrAbilityStore;
TC_GAME_API extern DB2Storage<GarrBuildingEntry> sGarrBuildingStore;
TC_GAME_API extern DB2Storage<GarrBuildingPlotInstEntry> sGarrBuildingPlotInstStore;
TC_GAME_API extern DB2Storage<GarrClassSpecEntry> sGarrClassSpecStore;
TC_GAME_API extern DB2Storage<GarrFollowerEntry> sGarrFollowerStore;
TC_GAME_API extern DB2Storage<GarrFollowerXAbilityEntry> sGarrFollowerXAbilityStore;
-TC_GAME_API extern DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore;
TC_GAME_API extern DB2Storage<GarrPlotEntry> sGarrPlotStore;
+TC_GAME_API extern DB2Storage<GarrPlotBuildingEntry> sGarrPlotBuildingStore;
TC_GAME_API extern DB2Storage<GarrPlotInstanceEntry> sGarrPlotInstanceStore;
TC_GAME_API extern DB2Storage<GarrSiteLevelEntry> sGarrSiteLevelStore;
TC_GAME_API extern DB2Storage<GarrSiteLevelPlotInstEntry> sGarrSiteLevelPlotInstStore;
@@ -280,7 +280,7 @@ public:
std::vector<uint32> const* GetGlyphRequiredSpecs(uint32 glyphPropertiesId) const;
ItemBonusList const* GetItemBonusList(uint32 bonusListId) const;
uint32 GetItemBonusListForItemLevelDelta(int16 delta) const;
- std::set<uint32> GetItemBonusTree(uint32 itemId, uint32 itemBonusTreeMod) const;
+ std::set<uint32> GetItemBonusTree(uint32 itemId, uint32 itemContext) const;
ItemChildEquipmentEntry const* GetItemChildEquipment(uint32 itemId) const;
ItemClassEntry const* GetItemClassByOldEnum(uint32 itemClass) const;
bool HasItemCurrencyCost(uint32 itemId) const;
@@ -296,7 +296,7 @@ public:
MapDifficultyEntry const* GetDefaultMapDifficulty(uint32 mapId, Difficulty* difficulty = nullptr) const;
MapDifficultyEntry const* GetMapDifficultyData(uint32 mapId, Difficulty difficulty) const;
MapDifficultyEntry const* GetDownscaledMapDifficultyData(uint32 mapId, Difficulty &difficulty) const;
- std::string GetNameGenEntry(uint8 race, uint8 gender, LocaleConstant locale, LocaleConstant defaultLocale) const;
+ std::string GetNameGenEntry(uint8 race, uint8 gender) const;
MountEntry const* GetMount(uint32 spellId) const;
MountEntry const* GetMountById(uint32 id) const;
MountTypeXCapabilitySet const* GetMountCapabilities(uint32 mountType) const;
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index c5cbaf90105..57c73c701b0 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -31,17 +31,17 @@ struct AchievementEntry
LocalizedString* Title;
LocalizedString* Description;
LocalizedString* Reward;
- uint32 Flags;
- int16 MapID; // -1 = none
- uint16 Supercedes; // its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin)
- uint16 Category;
- uint16 UIOrder;
- uint16 SharesCriteria; // referenced achievement (counting of all completed criterias)
- int8 Faction; // -1 = all, 0 = horde, 1 = alliance
- uint8 Points;
- uint8 MinimumCriteria; // need this count of completed criterias (own or referenced achievement criterias)
- uint32 ID;
- uint32 IconFileDataID;
+ int32 Flags;
+ int16 InstanceID; // -1 = none
+ int16 Supercedes; // its Achievement parent (can`t start while parent uncomplete, use its Criteria if don`t have own, use its progress on begin)
+ int16 Category;
+ int16 UiOrder;
+ int16 SharesCriteria; // referenced achievement (counting of all completed criterias)
+ int8 Faction; // -1 = all, 0 = horde, 1 = alliance
+ int8 Points;
+ int8 MinimumCriteria; // need this count of completed criterias (own or referenced achievement criterias)
+ uint32 ID;
+ int32 IconFileID;
uint32 CriteriaTree;
};
@@ -65,32 +65,32 @@ struct AreaTableEntry
uint32 ID;
char const* ZoneName;
LocalizedString* AreaName;
- uint32 Flags[2];
+ int32 Flags[2];
float AmbientMultiplier;
- uint16 MapID;
+ uint16 ContinentID;
uint16 ParentAreaID;
int16 AreaBit;
uint16 AmbienceID;
uint16 ZoneMusic;
uint16 IntroSound;
uint16 LiquidTypeID[4];
- uint16 UWZoneMusic;
- uint16 UWAmbience;
- uint16 PvPCombatWorldStateID;
+ uint16 UwZoneMusic;
+ uint16 UwAmbience;
+ int16 PvpCombatWorldStateID;
uint8 SoundProviderPref;
uint8 SoundProviderPrefUnderwater;
- uint8 ExplorationLevel;
+ int8 ExplorationLevel;
uint8 FactionGroupMask;
uint8 MountFlags;
uint8 WildBattlePetLevelMin;
uint8 WildBattlePetLevelMax;
uint8 WindSettingsID;
- uint32 UWIntroSound;
+ uint32 UwIntroSound;
// helpers
bool IsSanctuary() const
{
- if (MapID == 609)
+ if (ContinentID == 609)
return true;
return (Flags[0] & AREA_FLAG_SANCTUARY) != 0;
}
@@ -104,32 +104,36 @@ struct AreaTriggerEntry
float BoxWidth;
float BoxHeight;
float BoxYaw;
- uint16 MapID;
- uint16 PhaseID;
- uint16 PhaseGroupID;
- uint16 ShapeID;
- uint16 AreaTriggerActionSetID;
- uint8 PhaseUseFlags;
- uint8 ShapeType;
- uint8 Flag;
+ int16 ContinentID;
+ int16 PhaseID;
+ int16 PhaseGroupID;
+ int16 ShapeID;
+ int16 AreaTriggerActionSetID;
+ int8 PhaseUseFlags;
+ int8 ShapeType;
+ int8 Flags;
uint32 ID;
};
struct ArmorLocationEntry
{
uint32 ID;
- float Modifier[5];
+ float Clothmodifier;
+ float Leathermodifier;
+ float Chainmodifier;
+ float Platemodifier;
+ float Modifier;
};
struct ArtifactEntry
{
uint32 ID;
LocalizedString* Name;
- uint32 BarConnectedColor;
- uint32 BarDisconnectedColor;
- uint32 TitleColor;
- uint16 ClassUiTextureKitID;
- uint16 SpecID;
+ int32 UiBarOverlayColor;
+ int32 UiBarBackgroundColor;
+ int32 UiNameColor;
+ uint16 UiTextureKitID;
+ uint16 ChrSpecializationID;
uint8 ArtifactCategoryID;
uint8 Flags;
uint32 UiModelSceneID;
@@ -139,30 +143,30 @@ struct ArtifactEntry
struct ArtifactAppearanceEntry
{
LocalizedString* Name;
- uint32 SwatchColor;
- float ModelDesaturation;
- float ModelAlpha;
- uint32 ShapeshiftDisplayID;
+ int32 UiSwatchColor;
+ float UiModelSaturation;
+ float UiModelOpacity;
+ uint32 OverrideShapeshiftDisplayID;
uint16 ArtifactAppearanceSetID;
- uint16 Unknown;
+ uint16 UiCameraID;
uint8 DisplayIndex;
- uint8 AppearanceModID;
+ uint8 ItemAppearanceModifierID;
uint8 Flags;
- uint8 ModifiesShapeshiftFormDisplay;
+ uint8 OverrideShapeshiftFormID;
uint32 ID;
- uint32 PlayerConditionID;
- uint32 ItemAppearanceID;
- uint32 AltItemAppearanceID;
+ uint32 UnlockPlayerConditionID;
+ uint32 UiItemAppearanceID;
+ uint32 UiAltItemAppearanceID;
};
struct ArtifactAppearanceSetEntry
{
LocalizedString* Name;
- LocalizedString* Name2;
+ LocalizedString* Description;
uint16 UiCameraID;
uint16 AltHandUICameraID;
uint8 DisplayIndex;
- uint8 AttachmentPoint;
+ int8 ForgeAttachmentOverride;
uint8 Flags;
uint32 ID;
uint8 ArtifactID;
@@ -171,8 +175,8 @@ struct ArtifactAppearanceSetEntry
struct ArtifactCategoryEntry
{
uint32 ID;
- uint16 ArtifactKnowledgeCurrencyID;
- uint16 ArtifactKnowledgeMultiplierCurveID;
+ int16 XpMultCurrencyID;
+ int16 XpMultCurveID;
};
struct ArtifactPowerEntry
@@ -180,17 +184,17 @@ struct ArtifactPowerEntry
DBCPosition2D Pos;
uint8 ArtifactID;
uint8 Flags;
- uint8 MaxRank;
- uint8 ArtifactTier;
+ uint8 MaxPurchasableRank;
+ uint8 Tier;
uint32 ID;
- int32 RelicType;
+ int32 Label;
};
struct ArtifactPowerLinkEntry
{
uint32 ID;
- uint16 FromArtifactPowerID;
- uint16 ToArtifactPowerID;
+ uint16 PowerA;
+ uint16 PowerB;
};
struct ArtifactPowerPickerEntry
@@ -202,17 +206,17 @@ struct ArtifactPowerPickerEntry
struct ArtifactPowerRankEntry
{
uint32 ID;
- uint32 SpellID;
- float Value;
- uint16 Unknown;
- uint8 Rank;
+ int32 SpellID;
+ float AuraPointsOverride;
+ uint16 ItemBonusListID;
+ uint8 RankIndex;
uint16 ArtifactPowerID;
};
struct ArtifactQuestXPEntry
{
uint32 ID;
- uint32 Exp[10];
+ uint32 Difficulty[10];
};
struct AuctionHouseEntry
@@ -253,39 +257,39 @@ struct BarberShopStyleEntry
struct BattlePetBreedQualityEntry
{
uint32 ID;
- float Modifier;
- uint8 Quality;
+ float StateMultiplier;
+ uint8 QualityEnum;
};
struct BattlePetBreedStateEntry
{
uint32 ID;
- int16 Value;
- uint8 State;
- uint8 BreedID;
+ uint16 Value;
+ uint8 BattlePetStateID;
+ uint8 BattlePetBreedID;
};
struct BattlePetSpeciesEntry
{
LocalizedString* SourceText;
LocalizedString* Description;
- uint32 CreatureID;
- uint32 IconFileID;
- uint32 SummonSpellID;
+ int32 CreatureID;
+ int32 IconFileDataID;
+ int32 SummonSpellID;
uint16 Flags;
- uint8 PetType;
- int8 Source;
+ uint8 PetTypeEnum;
+ int8 SourceTypeEnum;
uint32 ID;
- uint32 CardModelSceneID;
- uint32 LoadoutModelSceneID;
+ int32 CardUIModelSceneID;
+ int32 LoadoutUIModelSceneID;
};
struct BattlePetSpeciesStateEntry
{
uint32 ID;
int32 Value;
- uint8 State;
- uint16 SpeciesID;
+ uint8 BattlePetStateID;
+ uint16 BattlePetSpeciesID;
};
struct BattlemasterListEntry
@@ -295,19 +299,19 @@ struct BattlemasterListEntry
LocalizedString* GameType;
LocalizedString* ShortDescription;
LocalizedString* LongDescription;
- uint32 IconFileDataID;
+ int32 IconFileDataID;
int16 MapID[16];
- uint16 HolidayWorldState;
- uint16 PlayerConditionID;
- uint8 InstanceType;
- uint8 GroupsAllowed;
- uint8 MaxGroupSize;
- uint8 MinLevel;
- uint8 MaxLevel;
- uint8 RatedPlayers;
- uint8 MinPlayers;
- uint8 MaxPlayers;
- uint8 Flags;
+ int16 HolidayWorldState;
+ int16 RequiredPlayerConditionID;
+ int8 InstanceType;
+ int8 GroupsAllowed;
+ int8 MaxGroupSize;
+ int8 MinLevel;
+ int8 MaxLevel;
+ int8 RatedPlayers;
+ int8 MinPlayers;
+ int8 MaxPlayers;
+ int8 Flags;
};
#define MAX_BROADCAST_TEXT_EMOTES 3
@@ -315,21 +319,21 @@ struct BattlemasterListEntry
struct BroadcastTextEntry
{
uint32 ID;
- LocalizedString* MaleText;
- LocalizedString* FemaleText;
+ LocalizedString* Text;
+ LocalizedString* Text1;
uint16 EmoteID[MAX_BROADCAST_TEXT_EMOTES];
uint16 EmoteDelay[MAX_BROADCAST_TEXT_EMOTES];
- uint16 UnkEmoteID;
- uint8 Language;
- uint8 Type;
- uint32 PlayerConditionID;
- uint32 SoundID[2];
+ uint16 EmotesID;
+ uint8 LanguageID;
+ uint8 Flags;
+ int32 ConditionID;
+ uint32 SoundEntriesID[2];
};
struct CharacterFacialHairStylesEntry
{
uint32 ID;
- uint32 Geoset[5];
+ int32 Geoset[5];
uint8 RaceID;
uint8 SexID;
uint8 VariationID;
@@ -338,21 +342,21 @@ struct CharacterFacialHairStylesEntry
struct CharBaseSectionEntry
{
uint32 ID;
- uint8 Variation;
- uint8 ResolutionVariation;
- uint8 Resolution;
+ uint8 VariationEnum;
+ uint8 ResolutionVariationEnum;
+ uint8 LayoutResType;
};
struct CharSectionsEntry
{
uint32 ID;
- uint32 TextureFileDataID[3];
- uint16 Flags;
- uint8 RaceID;
- uint8 SexID;
- uint8 BaseSection;
- uint8 VariationIndex;
- uint8 ColorIndex;
+ int32 MaterialResourcesID[3];
+ int16 Flags;
+ int8 RaceID;
+ int8 SexID;
+ int8 BaseSection;
+ int8 VariationIndex;
+ int8 ColorIndex;
};
#define MAX_OUTFIT_ITEMS 24
@@ -363,7 +367,7 @@ struct CharStartOutfitEntry
int32 ItemID[MAX_OUTFIT_ITEMS];
uint32 PetDisplayID; // Pet Model ID for starting pet
uint8 ClassID;
- uint8 GenderID;
+ uint8 SexID;
uint8 OutfitID;
uint8 PetFamilyID; // Pet Family Entry for starting pet
uint8 RaceID;
@@ -372,10 +376,10 @@ struct CharStartOutfitEntry
struct CharTitlesEntry
{
uint32 ID;
- LocalizedString* NameMale;
- LocalizedString* NameFemale;
- uint16 MaskID;
- uint8 Flags;
+ LocalizedString* Name;
+ LocalizedString* Name1;
+ int16 MaskID;
+ int8 Flags;
};
struct ChatChannelsEntry
@@ -383,8 +387,8 @@ struct ChatChannelsEntry
uint32 ID;
LocalizedString* Name;
LocalizedString* Shortcut;
- uint32 Flags;
- uint8 FactionGroup;
+ int32 Flags;
+ int8 FactionGroup;
};
struct ChrClassesEntry
@@ -396,18 +400,18 @@ struct ChrClassesEntry
char const* Filename;
uint32 CreateScreenFileDataID;
uint32 SelectScreenFileDataID;
- uint32 IconFileDataID;
uint32 LowResScreenFileDataID;
- uint32 StartingLevel;
+ uint32 IconFileDataID;
+ int32 StartingLevel;
uint16 Flags;
uint16 CinematicSequenceID;
uint16 DefaultSpec;
- uint8 PowerType;
+ uint8 DisplayPower;
uint8 SpellClassSet;
uint8 AttackPowerPerStrength;
uint8 AttackPowerPerAgility;
uint8 RangedAttackPowerPerAgility;
- uint8 Unk1;
+ uint8 PrimaryStatPriority;
uint32 ID;
};
@@ -424,40 +428,40 @@ struct ChrRacesEntry
char const* ClientFileString;
LocalizedString* Name;
LocalizedString* NameFemale;
- LocalizedString* LowercaseName;
- LocalizedString* LowercaseNameFemale;
- uint32 Flags;
- uint32 MaleDisplayID;
- uint32 FemaleDisplayID;
- uint32 CreateScreenFileDataID;
- uint32 SelectScreenFileDataID;
+ LocalizedString* NameLowercase;
+ LocalizedString* NameFemaleLowercase;
+ int32 Flags;
+ uint32 MaleDisplayId;
+ uint32 FemaleDisplayId;
+ int32 CreateScreenFileDataID;
+ int32 SelectScreenFileDataID;
float MaleCustomizeOffset[3];
float FemaleCustomizeOffset[3];
- uint32 LowResScreenFileDataID;
- uint32 StartingLevel;
- uint32 UIDisplayOrder;
- uint16 FactionID;
- uint16 ResSicknessSpellID;
- uint16 SplashSoundID;
- uint16 CinematicSequenceID;
- uint8 BaseLanguage;
- uint8 CreatureType;
- uint8 TeamID;
- uint8 RaceRelated;
- uint8 UnalteredVisualRaceID;
- uint8 CharComponentTextureLayoutID;
- uint8 DefaultClassID;
- uint8 NeutralRaceID;
- uint8 ItemAppearanceFrameRaceID;
- uint8 CharComponentTexLayoutHiResID;
- uint32 ID;
- uint32 HighResMaleDisplayID;
- uint32 HighResFemaleDisplayID;
- uint32 HeritageArmorAchievementID;
- uint32 MaleCorpseBonesModelFileDataID;
- uint32 FemaleCorpseBonesModelFileDataID;
- uint32 AlteredFormTransitionSpellVisualID[3];
- uint32 AlteredFormTransitionSpellVisualKitID[3];
+ int32 LowResScreenFileDataID;
+ int32 StartingLevel;
+ int32 UiDisplayOrder;
+ int16 FactionID;
+ int16 ResSicknessSpellID;
+ int16 SplashSoundID;
+ int16 CinematicSequenceID;
+ int8 BaseLanguage;
+ int8 CreatureType;
+ int8 Alliance;
+ int8 RaceRelated;
+ int8 UnalteredVisualRaceID;
+ int8 CharComponentTextureLayoutID;
+ int8 DefaultClassID;
+ int8 NeutralRaceID;
+ int8 DisplayRaceID;
+ int8 CharComponentTexLayoutHiResID;
+ uint32 ID;
+ uint32 HighResMaleDisplayId;
+ uint32 HighResFemaleDisplayId;
+ int32 HeritageArmorAchievementID;
+ int32 MaleSkeletonFileDataID;
+ int32 FemaleSkeletonFileDataID;
+ uint32 AlteredFormStartVisualKitID[3];
+ uint32 AlteredFormFinishVisualKitID[3];
};
#define MAX_MASTERY_SPELLS 2
@@ -465,18 +469,18 @@ struct ChrRacesEntry
struct ChrSpecializationEntry
{
LocalizedString* Name;
- LocalizedString* Name2;
+ LocalizedString* FemaleName;
LocalizedString* Description;
- uint32 MasterySpellID[MAX_MASTERY_SPELLS];
- uint8 ClassID;
- uint8 OrderIndex;
- uint8 PetTalentType;
- uint8 Role;
- uint8 PrimaryStatOrder;
- uint32 ID;
- uint32 IconFileDataID;
+ int32 MasterySpellID[MAX_MASTERY_SPELLS];
+ int8 ClassID;
+ int8 OrderIndex;
+ int8 PetTalentType;
+ int8 Role;
+ int8 PrimaryStatPriority;
+ uint32 ID;
+ int32 SpellIconFileID;
uint32 Flags;
- uint32 AnimReplacementSetID;
+ int32 AnimReplacements;
bool IsPetSpecialization() const
{
@@ -489,8 +493,8 @@ struct CinematicCameraEntry
uint32 ID;
uint32 SoundID; // Sound ID (voiceover for cinematic)
DBCPosition3D Origin; // Position in map used for basis for M2 co-ordinates
- float OriginFacing; // Orientation in map used for basis for M2 co-ordinates
- uint32 ModelFileDataID; // Model
+ float OriginFacing; // Orientation in map used for basis for M2 co-
+ uint32 FileDataID; // Model
};
struct CinematicSequencesEntry
@@ -505,12 +509,12 @@ struct ConversationLineEntry
uint32 ID;
uint32 BroadcastTextID;
uint32 SpellVisualKitID;
- uint32 Duration;
- uint16 NextLineID;
- uint16 Unk1;
- uint8 Yell;
- uint8 Unk2;
- uint8 Unk3;
+ int32 AdditionalDuration;
+ uint16 NextConversationLineID;
+ uint16 AnimKitID;
+ uint8 SpeechType;
+ uint8 StartAnimation;
+ uint8 EndAnimation;
};
struct CreatureDisplayInfoEntry
@@ -519,42 +523,42 @@ struct CreatureDisplayInfoEntry
float CreatureModelScale;
uint16 ModelID;
uint16 NPCSoundID;
- uint8 SizeClass;
+ int8 SizeClass;
uint8 Flags;
int8 Gender;
- uint32 ExtendedDisplayInfoID;
- uint32 PortraitTextureFileDataID;
+ int32 ExtendedDisplayInfoID;
+ int32 PortraitTextureFileDataID;
uint8 CreatureModelAlpha;
uint16 SoundID;
- float PlayerModelScale;
- uint32 PortraitCreatureDisplayInfoID;
+ float PlayerOverrideScale;
+ int32 PortraitCreatureDisplayInfoID;
uint8 BloodID;
uint16 ParticleColorID;
uint32 CreatureGeosetData;
uint16 ObjectEffectPackageID;
uint16 AnimReplacementSetID;
- int8 UnarmedWeaponSubclass;
- uint32 StateSpellVisualKitID;
- float InstanceOtherPlayerPetScale; // scale of not own player pets inside dungeons/raids/scenarios
- uint32 MountSpellVisualKitID;
- uint32 TextureVariation[3];
+ int8 UnarmedWeaponType;
+ int32 StateSpellVisualKitID;
+ float PetInstanceScale; // scale of not own player pets inside dungeons/raids/scenarios
+ int32 MountPoofSpellVisualKitID;
+ int32 TextureVariationFileDataID[3];
};
struct CreatureDisplayInfoExtraEntry
{
uint32 ID;
- uint32 FileDataID;
- uint32 HDFileDataID;
- uint8 DisplayRaceID;
- uint8 DisplaySexID;
- uint8 DisplayClassID;
- uint8 SkinID;
- uint8 FaceID;
- uint8 HairStyleID;
- uint8 HairColorID;
- uint8 FacialHairID;
+ int32 BakeMaterialResourcesID;
+ int32 HDBakeMaterialResourcesID;
+ int8 DisplayRaceID;
+ int8 DisplaySexID;
+ int8 DisplayClassID;
+ int8 SkinID;
+ int8 FaceID;
+ int8 HairStyleID;
+ int8 HairColorID;
+ int8 FacialHairID;
uint8 CustomDisplayOption[3];
- uint8 Flags;
+ int8 Flags;
};
struct CreatureFamilyEntry
@@ -563,12 +567,12 @@ struct CreatureFamilyEntry
LocalizedString* Name;
float MinScale;
float MaxScale;
- uint32 IconFileDataID;
- uint16 SkillLine[2];
- uint16 PetFoodMask;
- uint8 MinScaleLevel;
- uint8 MaxScaleLevel;
- uint8 PetTalentType;
+ int32 IconFileID;
+ int16 SkillLine[2];
+ int16 PetFoodMask;
+ int8 MinScaleLevel;
+ int8 MaxScaleLevel;
+ int8 PetTalentType;
};
struct CreatureModelDataEntry
@@ -581,8 +585,7 @@ struct CreatureModelDataEntry
float CollisionWidth;
float CollisionHeight;
float MountHeight;
- float GeoBoxMin[3];
- float GeoBoxMax[3];
+ float GeoBox[6];
float WorldEffectScale;
float AttachedEffectScale;
float MissileCollisionRadius;
@@ -599,8 +602,8 @@ struct CreatureModelDataEntry
uint32 BloodID;
uint32 FootprintTextureID;
uint32 FoleyMaterialID;
- uint32 FootstepEffectID;
- uint32 DeathThudEffectID;
+ uint32 FootstepCameraEffectID;
+ uint32 DeathThudCameraEffectID;
uint32 SoundID;
uint32 CreatureGeosetDataID;
};
@@ -609,7 +612,7 @@ struct CreatureTypeEntry
{
uint32 ID;
LocalizedString* Name;
- uint8 Flags; // no exp? critters, non-combat pets, gas cloud.
+ uint8 Flags;
};
struct CriteriaEntry
@@ -744,25 +747,25 @@ struct CriteriaEntry
// CRITERIA_TYPE_RELIC_TALENT_UNLOCKED = 211
uint32 ArtifactPowerID;
} Asset;
- uint32 StartAsset;
- uint32 FailAsset;
+ int32 StartAsset;
+ int32 FailAsset;
uint32 ModifierTreeId;
uint16 StartTimer;
- uint16 EligibilityWorldStateID;
+ int16 EligibilityWorldStateID;
uint8 Type;
uint8 StartEvent;
uint8 FailEvent;
uint8 Flags;
- uint8 EligibilityWorldStateValue;
+ int8 EligibilityWorldStateValue;
};
struct CriteriaTreeEntry
{
uint32 ID;
LocalizedString* Description;
- uint32 Amount;
- uint16 Flags;
- uint8 Operator;
+ int32 Amount;
+ int16 Flags;
+ int8 Operator;
uint32 CriteriaID;
uint32 Parent;
int32 OrderIndex;
@@ -779,7 +782,7 @@ struct CurrencyTypesEntry
uint8 CategoryID;
uint8 SpellCategory;
uint8 Quality;
- uint32 InventoryIconFileDataID;
+ int32 InventoryIconFileID;
uint32 SpellWeight;
};
@@ -787,40 +790,39 @@ struct CurveEntry
{
uint32 ID;
uint8 Type;
- uint8 Unused;
+ uint8 Flags;
};
struct CurvePointEntry
{
uint32 ID;
- float X;
- float Y;
+ DBCPosition2D Pos;
uint16 CurveID;
- uint8 Index;
+ uint8 OrderIndex;
};
struct DestructibleModelDataEntry
{
uint32 ID;
- uint16 StateDamagedDisplayID;
- uint16 StateDestroyedDisplayID;
- uint16 StateRebuildingDisplayID;
- uint16 StateSmokeDisplayID;
+ uint16 State0Wmo;
+ uint16 State1Wmo;
+ uint16 State2Wmo;
+ uint16 State3Wmo;
uint16 HealEffectSpeed;
- uint8 StateDamagedImpactEffectDoodadSet;
- uint8 StateDamagedAmbientDoodadSet;
- uint8 StateDamagedNameSet;
- uint8 StateDestroyedDestructionDoodadSet;
- uint8 StateDestroyedImpactEffectDoodadSet;
- uint8 StateDestroyedAmbientDoodadSet;
- uint8 StateDestroyedNameSet;
- uint8 StateRebuildingDestructionDoodadSet;
- uint8 StateRebuildingImpactEffectDoodadSet;
- uint8 StateRebuildingAmbientDoodadSet;
- uint8 StateRebuildingNameSet;
- uint8 StateSmokeInitDoodadSet;
- uint8 StateSmokeAmbientDoodadSet;
- uint8 StateSmokeNameSet;
+ int8 State0ImpactEffectDoodadSet;
+ uint8 State0AmbientDoodadSet;
+ int8 State0NameSet;
+ int8 State1DestructionDoodadSet;
+ int8 State1ImpactEffectDoodadSet;
+ uint8 State1AmbientDoodadSet;
+ int8 State1NameSet;
+ int8 State2DestructionDoodadSet;
+ int8 State2ImpactEffectDoodadSet;
+ uint8 State2AmbientDoodadSet;
+ int8 State2NameSet;
+ uint8 State3InitDoodadSet;
+ uint8 State3AmbientDoodadSet;
+ int8 State3NameSet;
uint8 EjectDirection;
uint8 DoNotHighlight;
uint8 HealEffect;
@@ -840,21 +842,21 @@ struct DifficultyEntry
int8 OldEnumValue;
uint8 Flags;
uint8 ToggleDifficultyID;
- uint8 ItemBonusTreeModID;
+ uint8 ItemContext;
uint8 OrderIndex;
};
struct DungeonEncounterEntry
{
LocalizedString* Name;
- uint32 CreatureDisplayID;
- uint16 MapID;
- uint8 DifficultyID;
- uint8 Bit;
+ int32 CreatureDisplayID;
+ int16 MapID;
+ int8 DifficultyID;
+ int8 Bit;
uint8 Flags;
uint32 ID;
int32 OrderIndex;
- uint32 TextureFileDataID;
+ int32 SpellIconFileID;
};
struct DurabilityCostsEntry
@@ -867,7 +869,7 @@ struct DurabilityCostsEntry
struct DurabilityQualityEntry
{
uint32 ID;
- float QualityMod;
+ float Data;
};
struct EmotesEntry
@@ -875,49 +877,47 @@ struct EmotesEntry
uint32 ID;
int64 RaceMask;
char const* EmoteSlashCommand;
- uint32 SpellVisualKitID;
uint32 EmoteFlags;
- uint16 AnimID;
+ uint32 SpellVisualKitID;
+ int16 AnimID;
uint8 EmoteSpecProc;
- uint32 EmoteSpecProcParam;
- uint32 EmoteSoundID;
int32 ClassMask;
+ uint32 EmoteSpecProcParam;
+ uint32 EventSoundID;
};
struct EmotesTextEntry
{
uint32 ID;
- LocalizedString* Name;
+ char const* Name;
uint16 EmoteID;
};
struct EmotesTextSoundEntry
{
uint32 ID;
- uint8 RaceId;
- uint8 SexId;
- uint8 ClassId;
- uint32 SoundId;
- uint16 EmotesTextId;
+ uint8 RaceID;
+ uint8 SexID;
+ uint8 ClassID;
+ uint32 SoundID;
+ uint16 EmotesTextID;
};
struct FactionEntry
{
- uint64 ReputationRaceMask[4];
+ int64 ReputationRaceMask[4];
LocalizedString* Name;
LocalizedString* Description;
uint32 ID;
int32 ReputationBase[4];
- float ParentFactionModIn; // Faction gains incoming rep * ParentFactionModIn
- float ParentFactionModOut; // Faction outputs rep * ParentFactionModOut as spillover reputation
- uint32 ReputationMax[4];
+ float ParentFactionMod[2]; // Faction outputs rep * ParentFactionModOut as spillover reputation
+ int32 ReputationMax[4];
int16 ReputationIndex;
- uint16 ReputationClassMask[4];
+ int16 ReputationClassMask[4];
uint16 ReputationFlags[4];
uint16 ParentFactionID;
uint16 ParagonFactionID;
- uint8 ParentFactionCapIn; // The highest rank the faction will profit from incoming spillover
- uint8 ParentFactionCapOut;
+ uint8 ParentFactionCap[2]; // The highest rank the faction will profit from incoming spillover
uint8 Expansion;
uint8 Flags;
uint8 FriendshipRepID;
@@ -937,10 +937,10 @@ struct FactionTemplateEntry
uint16 Faction;
uint16 Flags;
uint16 Enemies[MAX_FACTION_RELATIONS];
- uint16 Friends[MAX_FACTION_RELATIONS];
- uint8 Mask;
- uint8 FriendMask;
- uint8 EnemyMask;
+ uint16 Friend[MAX_FACTION_RELATIONS];
+ uint8 FactionGroup;
+ uint8 FriendGroup;
+ uint8 EnemyGroup;
//------------------------------------------------------- end structure
@@ -955,10 +955,10 @@ struct FactionTemplateEntry
if (Enemies[i] == entry->Faction)
return false;
for (int32 i = 0; i < MAX_FACTION_RELATIONS; ++i)
- if (Friends[i] == entry->Faction)
+ if (Friend[i] == entry->Faction)
return true;
}
- return (FriendMask & entry->Mask) || (Mask & entry->FriendMask);
+ return (FriendGroup & entry->FactionGroup) || (FactionGroup & entry->FriendGroup);
}
bool IsHostileTo(FactionTemplateEntry const* entry) const
{
@@ -970,97 +970,94 @@ struct FactionTemplateEntry
if (Enemies[i] == entry->Faction)
return true;
for (int32 i = 0; i < MAX_FACTION_RELATIONS; ++i)
- if (Friends[i] == entry->Faction)
+ if (Friend[i] == entry->Faction)
return false;
}
- return (EnemyMask & entry->Mask) != 0;
+ return (EnemyGroup & entry->FactionGroup) != 0;
}
- bool IsHostileToPlayers() const { return (EnemyMask & FACTION_MASK_PLAYER) !=0; }
+ bool IsHostileToPlayers() const { return (EnemyGroup & FACTION_MASK_PLAYER) !=0; }
bool IsNeutralToAll() const
{
for (int i = 0; i < MAX_FACTION_RELATIONS; ++i)
if (Enemies[i] != 0)
return false;
- return EnemyMask == 0 && FriendMask == 0;
+ return EnemyGroup == 0 && FriendGroup == 0;
}
bool IsContestedGuardFaction() const { return (Flags & FACTION_TEMPLATE_FLAG_CONTESTED_GUARD) != 0; }
bool ShouldSparAttack() const { return (Flags & FACTION_TEMPLATE_ENEMY_SPAR) != 0; }
};
+struct GameObjectDisplayInfoEntry
+{
+ uint32 ID;
+ int32 FileDataID;
+ DBCPosition3D GeoBoxMin;
+ DBCPosition3D GeoBoxMax;
+ float OverrideLootEffectScale;
+ float OverrideNameScale;
+ int16 ObjectEffectPackageID;
+};
+
struct GameObjectsEntry
{
LocalizedString* Name;
- DBCPosition3D Position;
- float RotationX;
- float RotationY;
- float RotationZ;
- float RotationW;
- float Size;
- int32 Data[8];
- uint16 MapID;
+ DBCPosition3D Pos;
+ float Rot[4];
+ float Scale;
+ int32 PropValue[8];
+ uint16 OwnerID;
uint16 DisplayID;
uint16 PhaseID;
uint16 PhaseGroupID;
uint8 PhaseUseFlags;
- uint8 Type;
+ uint8 TypeID;
uint32 ID;
};
-struct GameObjectDisplayInfoEntry
-{
- uint32 ID;
- uint32 FileDataID;
- DBCPosition3D GeoBoxMin;
- DBCPosition3D GeoBoxMax;
- float OverrideLootEffectScale;
- float OverrideNameScale;
- uint16 ObjectEffectPackageID;
-};
-
struct GarrAbilityEntry
{
LocalizedString* Name;
LocalizedString* Description;
- uint32 IconFileDataID;
+ int32 IconFileDataID;
uint16 Flags;
- uint16 OtherFactionGarrAbilityID;
+ uint16 FactionChangeGarrAbilityID;
uint8 GarrAbilityCategoryID;
- uint8 FollowerTypeID;
+ uint8 GarrFollowerTypeID;
uint32 ID;
};
struct GarrBuildingEntry
{
uint32 ID;
- LocalizedString* NameAlliance;
- LocalizedString* NameHorde;
+ LocalizedString* AllianceName;
+ LocalizedString* HordeName;
LocalizedString* Description;
LocalizedString* Tooltip;
- uint32 HordeGameObjectID;
- uint32 AllianceGameObjectID;
- uint32 IconFileDataID;
- uint16 CostCurrencyID;
- uint16 HordeTexPrefixKitID;
- uint16 AllianceTexPrefixKitID;
- uint16 AllianceActivationScenePackageID;
- uint16 HordeActivationScenePackageID;
- uint16 FollowerRequiredGarrAbilityID;
- uint16 FollowerGarrAbilityEffectID;
- int16 CostMoney;
- uint8 Unknown;
- uint8 Type;
- uint8 Level;
+ int32 HordeGameObjectID;
+ int32 AllianceGameObjectID;
+ int32 IconFileDataID;
+ uint16 CurrencyTypeID;
+ uint16 HordeUiTextureKitID;
+ uint16 AllianceUiTextureKitID;
+ uint16 AllianceSceneScriptPackageID;
+ uint16 HordeSceneScriptPackageID;
+ uint16 GarrAbilityID;
+ uint16 BonusGarrAbilityID;
+ uint16 GoldCost;
+ uint8 GarrSiteID;
+ uint8 BuildingType;
+ uint8 UpgradeLevel;
uint8 Flags;
- uint8 MaxShipments;
+ uint8 ShipmentCapacity;
uint8 GarrTypeID;
- int32 BuildDuration;
- int32 CostCurrencyAmount;
- int32 BonusAmount;
+ int32 BuildSeconds;
+ int32 CurrencyQty;
+ int32 MaxAssignments;
};
struct GarrBuildingPlotInstEntry
{
- DBCPosition2D LandmarkOffset;
+ DBCPosition2D MapOffset;
uint16 UiTextureAtlasMemberID;
uint16 GarrSiteLevelPlotInstID;
uint8 GarrBuildingID;
@@ -1069,12 +1066,12 @@ struct GarrBuildingPlotInstEntry
struct GarrClassSpecEntry
{
- LocalizedString* NameMale;
- LocalizedString* NameFemale;
- LocalizedString* NameGenderless;
- uint16 ClassAtlasID; // UiTextureAtlasMember.db2 ref
+ LocalizedString* ClassSpec;
+ LocalizedString* ClassSpecMale;
+ LocalizedString* ClassSpecFemale;
+ uint16 UiTextureAtlasMemberID;
uint16 GarrFollItemSetID;
- uint8 Limit;
+ uint8 FollowerClassLimit;
uint8 Flags;
uint32 ID;
};
@@ -1083,35 +1080,35 @@ struct GarrFollowerEntry
{
LocalizedString* HordeSourceText;
LocalizedString* AllianceSourceText;
- LocalizedString* Name;
- uint32 HordeCreatureID;
- uint32 AllianceCreatureID;
- uint32 HordePortraitIconID;
- uint32 AlliancePortraitIconID;
- uint32 HordeAddedBroadcastTextID;
- uint32 AllianceAddedBroadcastTextID;
+ LocalizedString* TitleName;
+ int32 HordeCreatureID;
+ int32 AllianceCreatureID;
+ int32 HordeIconFileDataID;
+ int32 AllianceIconFileDataID;
+ uint32 HordeSlottingBroadcastTextID;
+ uint32 AllySlottingBroadcastTextID;
uint16 HordeGarrFollItemSetID;
uint16 AllianceGarrFollItemSetID;
uint16 ItemLevelWeapon;
uint16 ItemLevelArmor;
- uint16 HordeListPortraitTextureKitID;
- uint16 AllianceListPortraitTextureKitID;
- uint8 FollowerTypeID;
- uint8 HordeUiAnimRaceInfoID;
- uint8 AllianceUiAnimRaceInfoID;
+ uint16 HordeUITextureKitID;
+ uint16 AllianceUITextureKitID;
+ uint8 GarrFollowerTypeID;
+ uint8 HordeGarrFollRaceID;
+ uint8 AllianceGarrFollRaceID;
uint8 Quality;
uint8 HordeGarrClassSpecID;
uint8 AllianceGarrClassSpecID;
- uint8 Level;
- uint8 Unknown1;
+ uint8 FollowerLevel;
+ uint8 Gender;
uint8 Flags;
- int8 Unknown2;
- int8 Unknown3;
+ int8 HordeSourceTypeEnum;
+ int8 AllianceSourceTypeEnum;
uint8 GarrTypeID;
- uint8 MaxDurability;
- uint8 Class;
- uint8 HordeFlavorTextGarrStringID;
- uint8 AllianceFlavorTextGarrStringID;
+ uint8 Vitality;
+ uint8 ChrClassID;
+ uint8 HordeFlavorGarrStringID;
+ uint8 AllianceFlavorGarrStringID;
uint32 ID;
};
@@ -1127,13 +1124,12 @@ struct GarrPlotEntry
{
uint32 ID;
LocalizedString* Name;
- uint32 AllianceConstructionGameObjectID;
- uint32 HordeConstructionGameObjectID;
- uint8 GarrPlotUICategoryID;
+ int32 AllianceConstructObjID;
+ int32 HordeConstructObjID;
+ uint8 UiCategoryID;
uint8 PlotType;
uint8 Flags;
- uint32 MinCount;
- uint32 MaxCount;
+ uint32 UpgradeRequirement[2];
};
struct GarrPlotBuildingEntry
@@ -1146,46 +1142,46 @@ struct GarrPlotBuildingEntry
struct GarrPlotInstanceEntry
{
uint32 ID;
- LocalizedString* Name;
+ char const* Name;
uint8 GarrPlotID;
};
struct GarrSiteLevelEntry
{
uint32 ID;
- DBCPosition2D TownHall;
+ DBCPosition2D TownHallUiPos;
uint16 MapID;
- uint16 SiteID;
- uint16 MovieID;
- uint16 UpgradeResourceCost;
- uint16 UpgradeMoneyCost;
- uint8 Level;
- uint8 UITextureKitID;
- uint8 Level2;
+ uint16 UiTextureKitID;
+ uint16 UpgradeMovieID;
+ uint16 UpgradeCost;
+ uint16 UpgradeGoldCost;
+ uint8 GarrLevel;
+ uint8 GarrSiteID;
+ uint8 MaxBuildingLevel;
};
struct GarrSiteLevelPlotInstEntry
{
uint32 ID;
- DBCPosition2D Landmark;
+ DBCPosition2D UiMarkerPos;
uint16 GarrSiteLevelID;
uint8 GarrPlotInstanceID;
- uint8 Unknown;
+ uint8 UiMarkerSize;
};
struct GemPropertiesEntry
{
uint32 ID;
uint32 Type;
- uint16 EnchantID;
+ uint16 EnchantId;
uint16 MinItemLevel;
};
struct GlyphBindableSpellEntry
{
uint32 ID;
- uint32 SpellID;
- uint16 GlyphPropertiesID;
+ int32 SpellID;
+ int16 GlyphPropertiesID;
};
struct GlyphPropertiesEntry
@@ -1193,7 +1189,7 @@ struct GlyphPropertiesEntry
uint32 ID;
uint32 SpellID;
uint16 SpellIconID;
- uint8 Type;
+ uint8 GlyphType;
uint8 GlyphExclusiveCategoryID;
};
@@ -1231,19 +1227,20 @@ struct GuildColorEmblemEntry
struct GuildPerkSpellsEntry
{
uint32 ID;
- uint32 SpellID;
+ int32 SpellID;
};
struct HeirloomEntry
{
LocalizedString* SourceText;
- uint32 ItemID;
- uint32 OldItem[2];
- uint32 NextDifficultyItemID;
- uint32 UpgradeItemID[3];
- uint16 ItemBonusListID[3];
+ int32 ItemID;
+ int32 LegacyItemID;
+ int32 LegacyUpgradedItemID;
+ int32 StaticUpgradedItemID;
+ int32 UpgradeItemID[3];
+ uint16 UpgradeItemBonusListID[3];
uint8 Flags;
- uint8 Source;
+ int8 SourceTypeEnum;
uint32 ID;
};
@@ -1270,57 +1267,57 @@ struct HolidaysEntry
struct ImportPriceArmorEntry
{
uint32 ID;
- float ClothFactor;
- float LeatherFactor;
- float MailFactor;
- float PlateFactor;
+ float ClothModifier;
+ float LeatherModifier;
+ float ChainModifier;
+ float PlateModifier;
};
struct ImportPriceQualityEntry
{
uint32 ID;
- float Factor;
+ float Data;
};
struct ImportPriceShieldEntry
{
uint32 ID;
- float Factor;
+ float Data;
};
struct ImportPriceWeaponEntry
{
uint32 ID;
- float Factor;
+ float Data;
};
struct ItemEntry
{
uint32 ID;
- uint32 FileDataID;
- uint8 Class;
- uint8 SubClass;
- int8 SoundOverrideSubclass;
- int8 Material;
+ int32 IconFileDataID;
+ uint8 ClassID;
+ uint8 SubclassID;
+ int8 SoundOverrideSubclassID;
+ uint8 Material;
uint8 InventoryType;
- uint8 Sheath;
- uint8 GroupSoundsID;
+ uint8 SheatheType;
+ uint8 ItemGroupSoundsID;
};
struct ItemAppearanceEntry
{
uint32 ID;
- uint32 DisplayID;
- uint32 IconFileDataID;
- uint32 UIOrder;
- uint8 ObjectComponentSlot;
+ int32 ItemDisplayInfoID;
+ int32 DefaultIconFileDataID;
+ int32 UiOrder;
+ uint8 DisplayType;
};
struct ItemArmorQualityEntry
{
uint32 ID;
- float QualityMod[7];
- uint16 ItemLevel;
+ float Qualitymod[7];
+ int16 ItemLevel;
};
struct ItemArmorShieldEntry
@@ -1333,8 +1330,11 @@ struct ItemArmorShieldEntry
struct ItemArmorTotalEntry
{
uint32 ID;
- float Value[4];
- uint16 ItemLevel;
+ float Cloth;
+ float Leather;
+ float Mail;
+ float Plate;
+ int16 ItemLevel;
};
struct ItemBagFamilyEntry
@@ -1347,109 +1347,109 @@ struct ItemBonusEntry
{
uint32 ID;
int32 Value[3];
- uint16 BonusListID;
+ uint16 ParentItemBonusListID;
uint8 Type;
- uint8 Index;
+ uint8 OrderIndex;
};
struct ItemBonusListLevelDeltaEntry
{
- int16 Delta;
+ int16 ItemLevelDelta;
uint32 ID;
};
struct ItemBonusTreeNodeEntry
{
uint32 ID;
- uint16 SubTreeID;
- uint16 BonusListID;
- uint16 ItemLevelSelectorID;
- uint8 BonusTreeModID;
- uint16 BonusTreeID;
+ uint16 ChildItemBonusTreeID;
+ uint16 ChildItemBonusListID;
+ uint16 ChildItemLevelSelectorID;
+ uint8 ItemContext;
+ uint16 ParentItemBonusTreeID;
};
struct ItemChildEquipmentEntry
{
uint32 ID;
- uint32 AltItemID;
- uint8 AltEquipmentSlot;
- uint32 ItemID;
+ int32 ChildItemID;
+ uint8 ChildItemEquipSlot;
+ int32 ParentItemID;
};
struct ItemClassEntry
{
uint32 ID;
- LocalizedString* Name;
- float PriceMod;
- uint8 OldEnumValue;
+ LocalizedString* ClassName;
+ float PriceModifier;
+ int8 ClassID;
uint8 Flags;
};
struct ItemCurrencyCostEntry
{
uint32 ID;
- uint32 ItemId;
+ int32 ItemID;
};
struct ItemDamageAmmoEntry
{
uint32 ID;
- float DPS[7];
+ float Quality[7];
uint16 ItemLevel;
};
struct ItemDamageOneHandEntry
{
uint32 ID;
- float DPS[7];
+ float Quality[7];
uint16 ItemLevel;
};
struct ItemDamageOneHandCasterEntry
{
uint32 ID;
- float DPS[7];
+ float Quality[7];
uint16 ItemLevel;
};
struct ItemDamageTwoHandEntry
{
uint32 ID;
- float DPS[7];
+ float Quality[7];
uint16 ItemLevel;
};
struct ItemDamageTwoHandCasterEntry
{
uint32 ID;
- float DPS[7];
+ float Quality[7];
uint16 ItemLevel;
};
struct ItemDisenchantLootEntry
{
uint32 ID;
- uint16 MinItemLevel;
- uint16 MaxItemLevel;
- uint16 RequiredDisenchantSkill;
- int8 ItemSubClass;
- uint8 ItemQuality;
- int8 Expansion;
- uint8 ItemClass;
+ uint16 MinLevel;
+ uint16 MaxLevel;
+ uint16 SkillRequired;
+ int8 Subclass;
+ uint8 Quality;
+ int8 ExpansionID;
+ uint8 Class;
};
struct ItemEffectEntry
{
uint32 ID;
- uint32 SpellID;
- int32 Cooldown;
- int32 CategoryCooldown;
+ int32 SpellID;
+ int32 CoolDownMSec;
+ int32 CategoryCoolDownMSec;
int16 Charges;
- uint16 Category;
+ uint16 SpellCategoryID;
uint16 ChrSpecializationID;
- uint8 OrderIndex;
- uint8 Trigger;
- uint32 ItemID;
+ uint8 LegacySlotIndex;
+ int8 TriggerType;
+ int32 ParentItemID;
};
#define MAX_ITEM_EXT_COST_ITEMS 5
@@ -1458,38 +1458,38 @@ struct ItemEffectEntry
struct ItemExtendedCostEntry
{
uint32 ID;
- uint32 RequiredItem[MAX_ITEM_EXT_COST_ITEMS]; // required item id
- uint32 RequiredCurrencyCount[MAX_ITEM_EXT_COST_CURRENCIES]; // required curency count
- uint16 RequiredItemCount[MAX_ITEM_EXT_COST_ITEMS]; // required count of 1st item
- uint16 RequiredPersonalArenaRating; // required personal arena rating
- uint16 RequiredCurrency[MAX_ITEM_EXT_COST_CURRENCIES]; // required curency id
- uint8 RequiredArenaSlot; // arena slot restrictions (min slot value)
- uint8 RequiredFactionId;
- uint8 RequiredFactionStanding;
- uint8 RequirementFlags;
+ int32 ItemID[MAX_ITEM_EXT_COST_ITEMS]; // required item id
+ uint32 CurrencyCount[MAX_ITEM_EXT_COST_CURRENCIES]; // required curency count
+ uint16 ItemCount[MAX_ITEM_EXT_COST_ITEMS]; // required count of 1st item
+ uint16 RequiredArenaRating; // required personal arena rating
+ uint16 CurrencyID[MAX_ITEM_EXT_COST_CURRENCIES]; // required curency id
+ uint8 ArenaBracket; // arena slot restrictions (min slot value)
+ uint8 MinFactionID;
+ uint8 MinReputation;
+ uint8 Flags;
uint8 RequiredAchievement;
};
struct ItemLevelSelectorEntry
{
uint32 ID;
- uint16 ItemLevel;
+ uint16 MinItemLevel;
uint16 ItemLevelSelectorQualitySetID;
};
struct ItemLevelSelectorQualityEntry
{
uint32 ID;
- uint32 ItemBonusListID;
- uint8 Quality;
- uint16 ItemLevelSelectorQualitySetID;
+ int32 QualityItemBonusListID;
+ int8 Quality;
+ int16 ParentILSQualitySetID;
};
struct ItemLevelSelectorQualitySetEntry
{
uint32 ID;
- uint16 ItemLevelMin;
- uint16 ItemLevelMax;
+ int16 IlvlRare;
+ int16 IlvlEpic;
};
struct ItemLimitCategoryEntry
@@ -1502,19 +1502,19 @@ struct ItemLimitCategoryEntry
struct ItemModifiedAppearanceEntry
{
- uint32 ItemID;
+ int32 ItemID;
uint32 ID;
- uint8 AppearanceModID;
- uint16 AppearanceID;
- uint8 Index;
- uint8 SourceType;
+ uint8 ItemAppearanceModifierID;
+ uint16 ItemAppearanceID;
+ uint8 OrderIndex;
+ int8 TransmogSourceTypeEnum;
};
struct ItemPriceBaseEntry
{
uint32 ID;
- float ArmorFactor;
- float WeaponFactor;
+ float Armor;
+ float Weapon;
uint16 ItemLevel;
};
@@ -1537,20 +1537,20 @@ struct ItemRandomSuffixEntry
struct ItemSearchNameEntry
{
- uint64 AllowableRace;
- LocalizedString* Name;
+ int64 AllowableRace;
+ LocalizedString* Display;
uint32 ID;
- uint32 Flags[3];
+ int32 Flags[3];
uint16 ItemLevel;
- uint8 Quality;
- uint8 RequiredExpansion;
- uint8 RequiredLevel;
- uint16 RequiredReputationFaction;
- uint8 RequiredReputationRank;
+ uint8 OverallQualityID;
+ uint8 ExpansionID;
+ int8 RequiredLevel;
+ uint16 MinFactionID;
+ uint8 MinReputation;
int32 AllowableClass;
uint16 RequiredSkill;
uint16 RequiredSkillRank;
- uint32 RequiredSpell;
+ uint32 RequiredAbility;
};
#define MAX_ITEM_SET_ITEMS 17
@@ -1562,7 +1562,7 @@ struct ItemSetEntry
uint32 ItemID[MAX_ITEM_SET_ITEMS];
uint16 RequiredSkillRank;
uint32 RequiredSkill;
- uint32 Flags;
+ uint32 SetFlags;
};
struct ItemSetSpellEntry
@@ -1578,75 +1578,75 @@ struct ItemSparseEntry
{
uint32 ID;
int64 AllowableRace;
- LocalizedString* Name;
- LocalizedString* Name2;
- LocalizedString* Name3;
- LocalizedString* Name4;
+ LocalizedString* Display;
+ LocalizedString* Display1;
+ LocalizedString* Display2;
+ LocalizedString* Display3;
LocalizedString* Description;
- uint32 Flags[MAX_ITEM_PROTO_FLAGS];
- float Unk1;
- float Unk2;
- uint32 BuyCount;
+ int32 Flags[MAX_ITEM_PROTO_FLAGS];
+ float PriceRandomValue;
+ float PriceVariance;
+ uint32 VendorStackCount;
uint32 BuyPrice;
uint32 SellPrice;
- uint32 RequiredSpell;
- uint32 MaxCount;
- uint32 Stackable;
- int32 ItemStatAllocation[MAX_ITEM_PROTO_STATS];
- float ItemStatSocketCostMultiplier[MAX_ITEM_PROTO_STATS];
- float RangedModRange;
+ uint32 RequiredAbility;
+ int32 MaxCount;
+ int32 Stackable;
+ int32 StatPercentEditor[MAX_ITEM_PROTO_STATS];
+ float StatPercentageOfSocket[MAX_ITEM_PROTO_STATS];
+ float ItemRange;
uint32 BagFamily;
- float ArmorDamageModifier;
- uint32 Duration;
- float StatScalingFactor;
+ float QualityModifier;
+ uint32 DurationInInventory;
+ float DmgVariance;
int16 AllowableClass;
uint16 ItemLevel;
uint16 RequiredSkill;
uint16 RequiredSkillRank;
- uint16 RequiredReputationFaction;
+ uint16 MinFactionID;
int16 ItemStatValue[MAX_ITEM_PROTO_STATS];
- uint16 ScalingStatDistribution;
- uint16 Delay;
- uint16 PageText;
- uint16 StartQuest;
+ uint16 ScalingStatDistributionID;
+ uint16 ItemDelay;
+ uint16 PageID;
+ uint16 StartQuestID;
uint16 LockID;
- uint16 RandomProperty;
- uint16 RandomSuffix;
+ uint16 RandomSelect;
+ uint16 ItemRandomSuffixGroupID;
uint16 ItemSet;
- uint16 Area;
- uint16 Map;
- uint16 TotemCategory;
- uint16 SocketBonus;
+ uint16 ZoneBound;
+ uint16 InstanceBound;
+ uint16 TotemCategoryID;
+ uint16 SocketMatchEnchantmentId;
uint16 GemProperties;
- uint16 ItemLimitCategory;
- uint16 HolidayID;
- uint16 RequiredTransmogHolidayID;
+ uint16 LimitCategory;
+ uint16 RequiredHoliday;
+ uint16 RequiredTransmogHoliday;
uint16 ItemNameDescriptionID;
- uint8 Quality;
+ uint8 OverallQualityID;
uint8 InventoryType;
int8 RequiredLevel;
- uint8 RequiredHonorRank;
- uint8 RequiredCityRank;
- uint8 RequiredReputationRank;
+ uint8 RequiredPVPRank;
+ uint8 RequiredPVPMedal;
+ uint8 MinReputation;
uint8 ContainerSlots;
- int8 ItemStatType[MAX_ITEM_PROTO_STATS];
- uint8 DamageType;
+ int8 StatModifierBonusStat[MAX_ITEM_PROTO_STATS];
+ uint8 DamageDamageType;
uint8 Bonding;
uint8 LanguageID;
- uint8 PageMaterial;
- int8 Material;
- uint8 Sheath;
- uint8 SocketColor[MAX_ITEM_PROTO_SOCKETS];
- uint8 CurrencySubstitutionID;
- uint8 CurrencySubstitutionCount;
+ uint8 PageMaterialID;
+ uint8 Material;
+ uint8 SheatheType;
+ uint8 SocketType[MAX_ITEM_PROTO_SOCKETS];
+ uint8 SpellWeightCategory;
+ uint8 SpellWeight;
uint8 ArtifactID;
- uint8 RequiredExpansion;
+ uint8 ExpansionID;
};
struct ItemSpecEntry
{
uint32 ID;
- uint16 SpecID;
+ uint16 SpecializationID;
uint8 MinLevel;
uint8 MaxLevel;
uint8 ItemType;
@@ -1658,24 +1658,24 @@ struct ItemSpecOverrideEntry
{
uint32 ID;
uint16 SpecID;
- uint32 ItemID;
+ int32 ItemID;
};
struct ItemUpgradeEntry
{
uint32 ID;
- uint32 CurrencyCost;
- uint16 PrevItemUpgradeID;
- uint16 CurrencyID;
+ uint32 CurrencyAmount;
+ uint16 PrerequisiteID;
+ uint16 CurrencyType;
uint8 ItemUpgradePathID;
- uint8 ItemLevelBonus;
+ uint8 ItemLevelIncrement;
};
struct ItemXBonusTreeEntry
{
uint32 ID;
- uint16 BonusTreeID;
- uint32 ItemID;
+ uint16 ItemBonusTreeID;
+ int32 ItemID;
};
#define KEYCHAIN_SIZE 32
@@ -1691,24 +1691,24 @@ struct LFGDungeonsEntry
uint32 ID;
LocalizedString* Name;
LocalizedString* Description;
- uint32 Flags;
- float MinItemLevel;
+ int32 Flags;
+ float MinGear;
uint16 MaxLevel;
uint16 TargetLevelMax;
int16 MapID;
uint16 RandomID;
uint16 ScenarioID;
- uint16 LastBossJournalEncounterID;
+ uint16 FinalEncounterID;
uint16 BonusReputationAmount;
uint16 MentorItemLevel;
- uint16 PlayerConditionID;
+ uint16 RequiredPlayerConditionId;
uint8 MinLevel;
uint8 TargetLevel;
uint8 TargetLevelMin;
uint8 DifficultyID;
- uint8 Type;
- uint8 Faction;
- uint8 Expansion;
+ uint8 TypeID;
+ int8 Faction;
+ uint8 ExpansionLevel;
uint8 OrderIndex;
uint8 GroupID;
uint8 CountTank;
@@ -1717,30 +1717,30 @@ struct LFGDungeonsEntry
uint8 MinCountTank;
uint8 MinCountHealer;
uint8 MinCountDamage;
- uint8 SubType;
+ uint8 Subtype;
uint8 MentorCharLevel;
- int32 TextureFileDataID;
- int32 RewardIconFileDataID;
- int32 ProposalTextureFileDataID;
+ int32 IconTextureFileID;
+ int32 RewardsBgTextureFileID;
+ int32 PopupBgTextureFileID;
// Helpers
- uint32 Entry() const { return ID + (Type << 24); }
+ uint32 Entry() const { return ID + (TypeID << 24); }
};
struct LightEntry
{
uint32 ID;
- DBCPosition3D Pos;
- float FalloffStart;
- float FalloffEnd;
- uint16 MapID;
+ DBCPosition3D GameCoords;
+ float GameFalloffStart;
+ float GameFalloffEnd;
+ int16 ContinentID;
uint16 LightParamsID[8];
};
struct LiquidTypeEntry
{
uint32 ID;
- LocalizedString* Name;
+ char const* Name;
char const* Texture[6];
uint32 SpellID;
float MaxDarkenDepth;
@@ -1748,16 +1748,16 @@ struct LiquidTypeEntry
float AmbDarkenIntensity;
float DirDarkenIntensity;
float ParticleScale;
- uint32 Color[2];
+ int32 Color[2];
float Float[18];
uint32 Int[4];
uint16 Flags;
uint16 LightID;
- uint8 Type;
+ uint8 SoundBank; // used to be "type", maybe needs fixing (works well for now)
uint8 ParticleMovement;
uint8 ParticleTexSlots;
uint8 MaterialID;
- uint8 DepthTexCount[6];
+ uint8 FrameCountTexture[6];
uint32 SoundID;
};
@@ -1766,7 +1766,7 @@ struct LiquidTypeEntry
struct LockEntry
{
uint32 ID;
- uint32 Index[MAX_LOCK_CASE];
+ int32 Index[MAX_LOCK_CASE];
uint16 Skill[MAX_LOCK_CASE];
uint8 Type[MAX_LOCK_CASE];
uint8 Action[MAX_LOCK_CASE];
@@ -1781,24 +1781,24 @@ struct MailTemplateEntry
struct MapEntry
{
uint32 ID;
- char* Directory;
+ char const* Directory;
LocalizedString* MapName;
LocalizedString* MapDescription0; // Horde
LocalizedString* MapDescription1; // Alliance
- LocalizedString* ShortDescription;
- LocalizedString* LongDescription;
- uint32 Flags[2];
+ LocalizedString* PvpShortDescription;
+ LocalizedString* PvpLongDescription;
+ int32 Flags[2];
float MinimapIconScale;
- DBCPosition2D CorpsePos; // entrance coordinates in ghost mode (in most cases = normal entrance)
+ DBCPosition2D Corpse; // entrance coordinates in ghost mode (in most cases = normal entrance)
uint16 AreaTableID;
- uint16 LoadingScreenID;
+ int16 LoadingScreenID;
int16 CorpseMapID; // map_id of entrance map in ghost mode (continent always and in most cases = normal entrance)
- uint16 TimeOfDayOverride;
+ int16 TimeOfDayOverride;
int16 ParentMapID;
int16 CosmeticParentMapID;
- uint16 WindSettingsID;
+ int16 WindSettingsID;
uint8 InstanceType;
- uint8 unk5;
+ uint8 MapType;
uint8 ExpansionID;
uint8 MaxPlayers;
uint8 TimeOffset;
@@ -1821,8 +1821,8 @@ struct MapEntry
return false;
mapid = CorpseMapID;
- x = CorpsePos.X;
- y = CorpsePos.Y;
+ x = Corpse.X;
+ y = Corpse.Y;
return true;
}
@@ -1838,21 +1838,21 @@ struct MapEntry
struct MapDifficultyEntry
{
uint32 ID;
- LocalizedString* Message_lang; // m_message_lang (text showed when transfer to map failed)
+ LocalizedString* Message; // m_message_lang (text showed when transfer to map failed)
uint8 DifficultyID;
- uint8 RaidDurationType; // 1 means daily reset, 2 means weekly
- uint8 MaxPlayers; // m_maxPlayers some heroic versions have 0 when expected same amount as in normal version
+ uint8 ResetInterval;
+ uint8 MaxPlayers;
uint8 LockID;
uint8 Flags;
- uint8 ItemBonusTreeModID;
- uint32 Context;
+ uint8 ItemContext;
+ uint32 ItemContextPickerID;
uint16 MapID;
uint32 GetRaidDuration() const
{
- if (RaidDurationType == 1)
+ if (ResetInterval == 1)
return 86400;
- if (RaidDurationType == 2)
+ if (ResetInterval == 2)
return 604800;
return 0;
}
@@ -1861,26 +1861,27 @@ struct MapDifficultyEntry
struct ModifierTreeEntry
{
uint32 ID;
- uint32 Asset[2];
+ int32 Asset;
+ int32 SecondaryAsset;
uint32 Parent;
uint8 Type;
- uint8 Unk700;
- uint8 Operator;
- uint8 Amount;
+ int8 TertiaryAsset;
+ int8 Operator;
+ int8 Amount;
};
struct MountEntry
{
LocalizedString* Name;
LocalizedString* Description;
- LocalizedString* SourceDescription;
- uint32 SpellId;
- float CameraPivotMultiplier;
- uint16 MountTypeId;
+ LocalizedString* SourceText;
+ int32 SourceSpellID;
+ float MountFlyRideHeight;
+ uint16 MountTypeID;
uint16 Flags;
- uint8 Source;
+ int8 SourceTypeEnum;
uint32 ID;
- uint32 PlayerConditionId;
+ uint32 PlayerConditionID;
int32 UiModelSceneID;
bool IsSelfMount() const { return (Flags & MOUNT_FLAG_SELF_MOUNT) != 0; }
@@ -1888,14 +1889,14 @@ struct MountEntry
struct MountCapabilityEntry
{
- uint32 RequiredSpell;
- uint32 SpeedModSpell;
- uint16 RequiredRidingSkill;
- uint16 RequiredArea;
- int16 RequiredMap;
+ int32 ReqSpellKnownID;
+ int32 ModSpellAuraID;
+ uint16 ReqRidingSkill;
+ uint16 ReqAreaID;
+ int16 ReqMapID;
uint8 Flags;
uint32 ID;
- uint32 RequiredAura;
+ uint32 ReqSpellAuraID;
};
struct MountTypeXCapabilityEntry
@@ -1909,9 +1910,9 @@ struct MountTypeXCapabilityEntry
struct MountXDisplayEntry
{
uint32 ID;
- uint32 DisplayID;
+ int32 CreatureDisplayInfoID;
uint32 PlayerConditionID;
- uint32 MountID;
+ int32 MountID;
};
struct MovieEntry
@@ -1926,8 +1927,8 @@ struct MovieEntry
struct NameGenEntry
{
uint32 ID;
- LocalizedString* Name;
- uint8 Race;
+ char const* Name;
+ uint8 RaceID;
uint8 Sex;
};
@@ -1956,8 +1957,8 @@ struct NamesReservedLocaleEntry
struct OverrideSpellDataEntry
{
uint32 ID;
- uint32 SpellID[MAX_OVERRIDE_SPELL];
- uint32 PlayerActionbarFileDataID;
+ int32 Spells[MAX_OVERRIDE_SPELL];
+ int32 PlayerActionBarFileDataID;
uint8 Flags;
};
@@ -1992,7 +1993,7 @@ struct PlayerConditionEntry
uint16 MaxFactionID;
uint8 MaxReputation;
uint32 ReputationLogic;
- uint8 Unknown1;
+ int8 CurrentPvpFaction;
uint8 MinPVPRank;
uint8 MaxPVPRank;
uint8 PvpMedal;
@@ -2032,7 +2033,7 @@ struct PlayerConditionEntry
uint8 PowerTypeComp;
uint8 PowerTypeValue;
uint32 ModifierTreeID;
- int32 MainHandItemSubclassMask;
+ int32 WeaponSubclassMask;
uint16 SkillID[4];
uint16 MinSkill[4];
uint16 MaxSkill[4];
@@ -2046,8 +2047,8 @@ struct PlayerConditionEntry
uint32 ItemCount[4];
uint16 Explored[2];
uint32 Time[2];
- uint32 AuraSpellID[4];
- uint8 AuraCount[4];
+ int32 AuraSpellID[4];
+ uint8 AuraStacks[4];
uint16 Achievement[4];
uint8 LfgStatus[4];
uint8 LfgCompare[4];
@@ -2063,7 +2064,7 @@ struct PowerDisplayEntry
{
uint32 ID;
char const* GlobalStringBaseTag;
- uint8 PowerType;
+ uint8 ActualType;
uint8 Red;
uint8 Green;
uint8 Blue;
@@ -2072,25 +2073,25 @@ struct PowerDisplayEntry
struct PowerTypeEntry
{
uint32 ID;
- char const* PowerTypeToken;
- char const* PowerCostToken;
- float RegenerationPeace;
- float RegenerationCombat;
- int16 MaxPower;
- uint16 RegenerationDelay;
- uint16 Flags;
- uint8 PowerTypeEnum;
- int8 RegenerationMin;
- int8 RegenerationCenter;
- int8 RegenerationMax;
- uint8 UIModifier;
+ char const* NameGlobalStringTag;
+ char const* CostGlobalStringTag;
+ float RegenPeace;
+ float RegenCombat;
+ int16 MaxBasePower;
+ int16 RegenInterruptTimeMS;
+ int16 Flags;
+ int8 PowerTypeEnum;
+ int8 MinPower;
+ int8 CenterPower;
+ int8 DefaultPower;
+ int8 DisplayModifier;
};
struct PrestigeLevelInfoEntry
{
uint32 ID;
- LocalizedString* PrestigeText;
- uint32 IconID;
+ LocalizedString* Name;
+ int32 BadgeTextureFileDataID;
uint8 PrestigeLevel;
uint8 Flags;
@@ -2100,28 +2101,28 @@ struct PrestigeLevelInfoEntry
struct PVPDifficultyEntry
{
uint32 ID;
- uint8 BracketID;
+ uint8 RangeIndex;
uint8 MinLevel;
uint8 MaxLevel;
uint16 MapID;
// helpers
- BattlegroundBracketId GetBracketId() const { return BattlegroundBracketId(BracketID); }
+ BattlegroundBracketId GetBracketId() const { return BattlegroundBracketId(RangeIndex); }
};
struct PVPItemEntry
{
uint32 ID;
- uint32 ItemID;
- uint8 ItemLevelBonus;
+ int32 ItemID;
+ uint8 ItemLevelDelta;
};
struct PvpRewardEntry
{
uint32 ID;
- uint32 HonorLevel;
- uint32 Prestige;
- uint32 RewardPackID;
+ int32 HonorLevel;
+ int32 PrestigeLevel;
+ int32 RewardPackID;
};
struct PvpTalentEntry
@@ -2130,7 +2131,7 @@ struct PvpTalentEntry
LocalizedString* Description;
int32 SpellID;
int32 OverridesSpellID;
- int32 ExtraSpellID;
+ int32 ActionBarSpellID;
int32 TierID;
int32 ColumnIndex;
int32 Flags;
@@ -2150,29 +2151,29 @@ struct PvpTalentUnlockEntry
struct QuestFactionRewardEntry
{
uint32 ID;
- int16 QuestRewFactionValue[10];
+ int16 Difficulty[10];
};
struct QuestMoneyRewardEntry
{
uint32 ID;
- uint32 Money[10];
+ uint32 Difficulty[10];
};
struct QuestPackageItemEntry
{
uint32 ID;
- uint32 ItemID;
- uint16 QuestPackageID;
- uint8 FilterType;
- uint32 ItemCount;
+ int32 ItemID;
+ uint16 PackageID;
+ uint8 DisplayType;
+ uint32 ItemQuantity;
};
struct QuestSortEntry
{
uint32 ID;
LocalizedString* SortName;
- uint8 SortOrder;
+ int8 UiOrderIndex;
};
struct QuestV2Entry
@@ -2184,15 +2185,15 @@ struct QuestV2Entry
struct QuestXPEntry
{
uint32 ID;
- uint16 Exp[10];
+ uint16 Difficulty[10];
};
struct RandPropPointsEntry
{
uint32 ID;
- uint32 EpicPropertiesPoints[5];
- uint32 RarePropertiesPoints[5];
- uint32 UncommonPropertiesPoints[5];
+ uint32 Epic[5];
+ uint32 Superior[5];
+ uint32 Good[5];
};
struct RewardPackEntry
@@ -2200,48 +2201,48 @@ struct RewardPackEntry
uint32 ID;
uint32 Money;
float ArtifactXPMultiplier;
- uint8 ArtifactXPDifficulty;
- uint8 ArtifactCategoryID;
- uint32 TitleID;
- uint32 Unused;
+ int8 ArtifactXPDifficulty;
+ uint8 ArtifactXPCategoryID;
+ int32 CharTitleID;
+ uint32 TreasurePickerID;
};
struct RewardPackXItemEntry
{
uint32 ID;
- uint32 ItemID;
- uint32 Amount;
- uint32 RewardPackID;
+ int32 ItemID;
+ int32 ItemQuantity;
+ int32 RewardPackID;
};
struct RulesetItemUpgradeEntry
{
uint32 ID;
- uint32 ItemID;
+ int32 ItemID;
uint16 ItemUpgradeID;
};
struct SandboxScalingEntry
{
uint32 ID;
- uint32 MinLevel;
- uint32 MaxLevel;
- uint32 Flags;
+ int32 MinLevel;
+ int32 MaxLevel;
+ int32 Flags;
};
struct ScalingStatDistributionEntry
{
uint32 ID;
- uint16 ItemLevelCurveID;
- uint32 MinLevel;
- uint32 MaxLevel;
+ uint16 PlayerLevelToItemLevelCurveID;
+ int32 MinLevel;
+ int32 MaxLevel;
};
struct ScenarioEntry
{
uint32 ID;
LocalizedString* Name;
- uint16 Data; // Seems to indicate different things, for zone invasions, this is the area id
+ uint16 AreaTableID;
uint8 Flags;
uint8 Type;
};
@@ -2250,14 +2251,14 @@ struct ScenarioStepEntry
{
uint32 ID;
LocalizedString* Description;
- LocalizedString* Name;
+ LocalizedString* Title;
uint16 ScenarioID;
- uint16 PreviousStepID; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
- uint16 QuestRewardID;
- uint8 Step;
+ uint16 Supersedes; // Used in conjunction with Proving Grounds scenarios, when sequencing steps (Not using step order?)
+ uint16 RewardQuestID;
+ uint8 OrderIndex;
uint8 Flags;
- uint32 CriteriaTreeID;
- uint32 BonusRequiredStepID; // Bonus step can only be completed if scenario is in the step specified in this field
+ uint32 Criteriatreeid;
+ int32 RelatedStep; // Bonus step can only be completed if scenario is in the step specified in this field
// helpers
bool IsBonusObjective() const
@@ -2269,8 +2270,8 @@ struct ScenarioStepEntry
struct SceneScriptEntry
{
uint32 ID;
- uint16 PrevScriptId;
- uint16 NextScriptId;
+ uint16 FirstSceneScriptID;
+ uint16 NextSceneScriptID;
};
struct SceneScriptGlobalTextEntry
@@ -2300,39 +2301,39 @@ struct SkillLineEntry
LocalizedString* Description;
LocalizedString* AlternateVerb;
uint16 Flags;
- uint8 CategoryID;
- uint8 CanLink;
- uint32 IconFileDataID;
+ int8 CategoryID;
+ int8 CanLink;
+ int32 SpellIconFileID;
uint32 ParentSkillLineID;
};
struct SkillLineAbilityEntry
{
- uint64 RaceMask;
+ int64 RaceMask;
uint32 ID;
- uint32 SpellID;
- uint32 SupercedesSpell;
- uint16 SkillLine;
- uint16 TrivialSkillLineRankHigh;
- uint16 TrivialSkillLineRankLow;
- uint16 UniqueBit;
- uint16 TradeSkillCategoryID;
- uint8 NumSkillUps;
+ int32 Spell;
+ int32 SupercedesSpell;
+ int16 SkillLine;
+ int16 TrivialSkillLineRankHigh;
+ int16 TrivialSkillLineRankLow;
+ int16 UniqueBit;
+ int16 TradeSkillCategoryID;
+ int8 NumSkillUps;
int32 ClassMask;
- uint16 MinSkillLineRank;
- uint8 AcquireMethod;
- uint8 Flags;
+ int16 MinSkillLineRank;
+ int8 AcquireMethod;
+ int8 Flags;
};
struct SkillRaceClassInfoEntry
{
uint32 ID;
int64 RaceMask;
- uint16 SkillID;
+ int16 SkillID;
uint16 Flags;
- uint16 SkillTierID;
- uint8 Availability;
- uint8 MinLevel;
+ int16 SkillTierID;
+ int8 Availability;
+ int8 MinLevel;
int32 ClassMask;
};
@@ -2353,16 +2354,16 @@ struct SoundKitEntry
float PitchVariationMinus;
float PitchAdjust;
uint16 BusOverwriteID;
- uint8 Unk700;
+ uint8 MaxInstances;
};
struct SpecializationSpellsEntry
{
LocalizedString* Description;
- uint32 SpellID;
- uint32 OverridesSpellID;
+ int32 SpellID;
+ int32 OverridesSpellID;
uint16 SpecID;
- uint8 OrderIndex;
+ uint8 DisplayOrder;
uint32 ID;
};
@@ -2378,63 +2379,63 @@ struct SpellEntry
struct SpellAuraOptionsEntry
{
uint32 ID;
- uint32 ProcCharges;
- uint32 ProcTypeMask;
- uint32 ProcCategoryRecovery;
+ int32 ProcCharges;
+ int32 ProcTypeMask;
+ int32 ProcCategoryRecovery;
uint16 CumulativeAura;
uint16 SpellProcsPerMinuteID;
uint8 DifficultyID;
uint8 ProcChance;
- uint32 SpellID;
+ int32 SpellID;
};
struct SpellAuraRestrictionsEntry
{
uint32 ID;
- uint32 CasterAuraSpell;
- uint32 TargetAuraSpell;
- uint32 ExcludeCasterAuraSpell;
- uint32 ExcludeTargetAuraSpell;
+ int32 CasterAuraSpell;
+ int32 TargetAuraSpell;
+ int32 ExcludeCasterAuraSpell;
+ int32 ExcludeTargetAuraSpell;
uint8 DifficultyID;
uint8 CasterAuraState;
uint8 TargetAuraState;
uint8 ExcludeCasterAuraState;
uint8 ExcludeTargetAuraState;
- uint32 SpellID;
+ int32 SpellID;
};
struct SpellCastTimesEntry
{
uint32 ID;
- int32 CastTime;
- int32 MinCastTime;
- int16 CastTimePerLevel;
+ int32 Base;
+ int32 Minimum;
+ int16 PerLevel;
};
struct SpellCastingRequirementsEntry
{
uint32 ID;
- uint32 SpellID;
+ int32 SpellID;
uint16 MinFactionID;
uint16 RequiredAreasID;
uint16 RequiresSpellFocus;
uint8 FacingCasterFlags;
- uint8 MinReputation;
+ int8 MinReputation;
uint8 RequiredAuraVision;
};
struct SpellCategoriesEntry
{
uint32 ID;
- uint16 Category;
- uint16 StartRecoveryCategory;
- uint16 ChargeCategory;
+ int16 Category;
+ int16 StartRecoveryCategory;
+ int16 ChargeCategory;
uint8 DifficultyID;
- uint8 DefenseType;
- uint8 DispelType;
- uint8 Mechanic;
- uint8 PreventionType;
- uint32 SpellID;
+ int8 DefenseType;
+ int8 DispelType;
+ int8 Mechanic;
+ int8 PreventionType;
+ int32 SpellID;
};
struct SpellCategoryEntry
@@ -2442,16 +2443,16 @@ struct SpellCategoryEntry
uint32 ID;
LocalizedString* Name;
int32 ChargeRecoveryTime;
- uint8 Flags;
+ int8 Flags;
uint8 UsesPerWeek;
- uint8 MaxCharges;
- uint32 ChargeCategoryType;
+ int8 MaxCharges;
+ int32 TypeMask;
};
struct SpellClassOptionsEntry
{
uint32 ID;
- uint32 SpellID;
+ int32 SpellID;
flag128 SpellClassMask;
uint8 SpellClassSet;
uint32 ModalNextSpell;
@@ -2460,11 +2461,11 @@ struct SpellClassOptionsEntry
struct SpellCooldownsEntry
{
uint32 ID;
- uint32 CategoryRecoveryTime;
- uint32 RecoveryTime;
- uint32 StartRecoveryTime;
+ int32 CategoryRecoveryTime;
+ int32 RecoveryTime;
+ int32 StartRecoveryTime;
uint8 DifficultyID;
- uint32 SpellID;
+ int32 SpellID;
};
struct SpellDurationEntry
@@ -2472,7 +2473,7 @@ struct SpellDurationEntry
uint32 ID;
int32 Duration;
int32 MaxDuration;
- int32 DurationPerLevel;
+ uint32 DurationPerLevel;
};
struct SpellEffectEntry
@@ -2480,43 +2481,41 @@ struct SpellEffectEntry
uint32 ID;
uint32 Effect;
int32 EffectBasePoints;
- uint32 EffectIndex;
- uint32 EffectAura;
- uint32 DifficultyID;
+ int32 EffectIndex;
+ int32 EffectAura;
+ int32 DifficultyID;
float EffectAmplitude;
- uint32 EffectAuraPeriod;
+ int32 EffectAuraPeriod;
float EffectBonusCoefficient;
float EffectChainAmplitude;
- uint32 EffectChainTargets;
+ int32 EffectChainTargets;
int32 EffectDieSides;
- uint32 EffectItemType;
- uint32 EffectMechanic;
+ int32 EffectItemType;
+ int32 EffectMechanic;
float EffectPointsPerResource;
float EffectRealPointsPerLevel;
- uint32 EffectTriggerSpell;
+ int32 EffectTriggerSpell;
float EffectPosFacing;
- uint32 EffectAttributes;
+ int32 EffectAttributes;
float BonusCoefficientFromAP;
- float PvPMultiplier;
+ float PvpMultiplier;
float Coefficient;
float Variance;
float ResourceCoefficient;
- float GroupSizeCoefficient;
+ float GroupSizeBasePointsCoefficient;
flag128 EffectSpellClassMask;
- int32 EffectMiscValue;
- int32 EffectMiscValueB;
- uint32 EffectRadiusIndex;
- uint32 EffectRadiusMaxIndex;
+ int32 EffectMiscValue[2];
+ uint32 EffectRadiusIndex[2];
uint32 ImplicitTarget[2];
- uint32 SpellID;
+ int32 SpellID;
};
struct SpellEquippedItemsEntry
{
uint32 ID;
- uint32 SpellID;
- int32 EquippedItemInventoryTypeMask;
- int32 EquippedItemSubClassMask;
+ int32 SpellID;
+ int32 EquippedItemInvTypes;
+ int32 EquippedItemSubclass;
int8 EquippedItemClass;
};
@@ -2530,10 +2529,10 @@ struct SpellInterruptsEntry
{
uint32 ID;
uint8 DifficultyID;
- uint16 InterruptFlags;
- uint32 AuraInterruptFlags[MAX_SPELL_AURA_INTERRUPT_FLAGS];
- uint32 ChannelInterruptFlags[MAX_SPELL_AURA_INTERRUPT_FLAGS];
- uint32 SpellID;
+ int16 InterruptFlags;
+ int32 AuraInterruptFlags[MAX_SPELL_AURA_INTERRUPT_FLAGS];
+ int32 ChannelInterruptFlags[MAX_SPELL_AURA_INTERRUPT_FLAGS];
+ int32 SpellID;
};
#define MAX_ITEM_ENCHANTMENT_EFFECTS 3
@@ -2542,11 +2541,11 @@ struct SpellItemEnchantmentEntry
{
uint32 ID;
LocalizedString* Name;
- uint32 EffectSpellID[MAX_ITEM_ENCHANTMENT_EFFECTS];
+ uint32 EffectArg[MAX_ITEM_ENCHANTMENT_EFFECTS];
float EffectScalingPoints[MAX_ITEM_ENCHANTMENT_EFFECTS];
uint32 TransmogCost;
- uint32 TextureFileDataID;
- uint16 EffectPointsMin[MAX_ITEM_ENCHANTMENT_EFFECTS];
+ uint32 IconFileDataID;
+ int16 EffectPointsMin[MAX_ITEM_ENCHANTMENT_EFFECTS];
uint16 ItemVisual;
uint16 Flags;
uint16 RequiredSkillID;
@@ -2559,37 +2558,37 @@ struct SpellItemEnchantmentEntry
uint8 MaxLevel;
int8 ScalingClass;
int8 ScalingClassRestricted;
- uint32 PlayerConditionID;
+ uint32 TransmogPlayerConditionID;
};
struct SpellItemEnchantmentConditionEntry
{
uint32 ID;
- uint32 LTOperand[5];
- uint8 LTOperandType[5];
+ uint32 LtOperand[5];
+ uint8 LtOperandType[5];
uint8 Operator[5];
- uint8 RTOperandType[5];
- uint8 RTOperand[5];
+ uint8 RtOperandType[5];
+ uint8 RtOperand[5];
uint8 Logic[5];
};
struct SpellLearnSpellEntry
{
uint32 ID;
- uint32 LearnSpellID;
- uint32 SpellID;
- uint32 OverridesSpellID;
+ int32 SpellID;
+ int32 LearnSpellID;
+ int32 OverridesSpellID;
};
struct SpellLevelsEntry
{
uint32 ID;
- uint16 BaseLevel;
- uint16 MaxLevel;
- uint16 SpellLevel;
+ int16 BaseLevel;
+ int16 MaxLevel;
+ int16 SpellLevel;
uint8 DifficultyID;
- uint8 MaxUsableLevel;
- uint32 SpellID;
+ uint8 MaxPassiveAuraLevel;
+ int32 SpellID;
};
struct SpellMiscEntry
@@ -2599,51 +2598,38 @@ struct SpellMiscEntry
uint16 DurationIndex;
uint16 RangeIndex;
uint8 SchoolMask;
- uint32 IconFileDataID;
+ int32 SpellIconFileDataID;
float Speed;
- uint32 ActiveIconFileDataID;
- float MultistrikeSpeedMod;
+ int32 ActiveIconFileDataID;
+ float LaunchDelay;
uint8 DifficultyID;
- uint32 Attributes;
- uint32 AttributesEx;
- uint32 AttributesExB;
- uint32 AttributesExC;
- uint32 AttributesExD;
- uint32 AttributesExE;
- uint32 AttributesExF;
- uint32 AttributesExG;
- uint32 AttributesExH;
- uint32 AttributesExI;
- uint32 AttributesExJ;
- uint32 AttributesExK;
- uint32 AttributesExL;
- uint32 AttributesExM;
- uint32 SpellID;
+ int32 Attributes[14];
+ int32 SpellID;
};
struct SpellPowerEntry
{
int32 ManaCost;
- float ManaCostPercentage;
- float ManaCostPercentagePerSecond;
- uint32 RequiredAura;
- float HealthCostPercentage;
- uint8 PowerIndex;
- uint8 PowerType;
+ float PowerCostPct;
+ float PowerPctPerSecond;
+ int32 RequiredAuraSpellID;
+ float PowerCostMaxPct;
+ uint8 OrderIndex;
+ int8 PowerType;
uint32 ID;
int32 ManaCostPerLevel;
- int32 ManaCostPerSecond;
- int32 ManaCostAdditional; // Spell uses [ManaCost, ManaCost+ManaCostAdditional] power - affects tooltip parsing as multiplier on SpellEffectEntry::EffectPointsPerResource
+ int32 ManaPerSecond;
+ uint32 OptionalCost; // Spell uses [ManaCost, ManaCost+ManaCostAdditional] power - affects tooltip parsing as multiplier on SpellEffectEntry::EffectPointsPerResource
// only SPELL_EFFECT_WEAPON_DAMAGE_NOSCHOOL, SPELL_EFFECT_WEAPON_PERCENT_DAMAGE, SPELL_EFFECT_WEAPON_DAMAGE, SPELL_EFFECT_NORMALIZED_WEAPON_DMG
uint32 PowerDisplayID;
- uint32 UnitPowerBarID;
- uint32 SpellID;
+ int32 AltPowerBarID;
+ int32 SpellID;
};
struct SpellPowerDifficultyEntry
{
uint8 DifficultyID;
- uint8 PowerIndex;
+ uint8 OrderIndex;
uint32 ID;
};
@@ -2658,7 +2644,7 @@ struct SpellProcsPerMinuteModEntry
{
uint32 ID;
float Coeff;
- uint16 Param;
+ int16 Param;
uint8 Type;
uint16 SpellProcsPerMinuteID;
};
@@ -2677,10 +2663,8 @@ struct SpellRangeEntry
uint32 ID;
LocalizedString* DisplayName;
LocalizedString* DisplayNameShort;
- float MinRangeHostile;
- float MinRangeFriend;
- float MaxRangeHostile;
- float MaxRangeFriend;
+ float RangeMin[2];
+ float RangeMax[2];
uint8 Flags;
};
@@ -2689,17 +2673,17 @@ struct SpellRangeEntry
struct SpellReagentsEntry
{
uint32 ID;
- uint32 SpellID;
+ int32 SpellID;
int32 Reagent[MAX_SPELL_REAGENTS];
- uint16 ReagentCount[MAX_SPELL_REAGENTS];
+ int16 ReagentCount[MAX_SPELL_REAGENTS];
};
struct SpellScalingEntry
{
uint32 ID;
- uint32 SpellID;
- uint16 ScalesFromItemLevel;
- int32 ScalingClass;
+ int32 SpellID;
+ int16 ScalesFromItemLevel;
+ int32 Class;
uint32 MinScalingLevel;
uint32 MaxScalingLevel;
};
@@ -2707,10 +2691,10 @@ struct SpellScalingEntry
struct SpellShapeshiftEntry
{
uint32 ID;
- uint32 SpellID;
- uint32 ShapeshiftExclude[2];
- uint32 ShapeshiftMask[2];
- uint8 StanceBarOrder;
+ int32 SpellID;
+ int32 ShapeshiftExclude[2];
+ int32 ShapeshiftMask[2];
+ int8 StanceBarOrder;
};
#define MAX_SHAPESHIFT_SPELLS 8
@@ -2719,13 +2703,13 @@ struct SpellShapeshiftFormEntry
{
uint32 ID;
LocalizedString* Name;
- float WeaponDamageVariance;
- uint32 Flags;
- uint16 CombatRoundTime;
+ float DamageVariance;
+ int32 Flags;
+ int16 CombatRoundTime;
uint16 MountTypeID;
int8 CreatureType;
- uint8 BonusActionBar;
- uint32 AttackIconFileDataID;
+ int8 BonusActionBar;
+ int32 AttackIconFileID;
uint32 CreatureDisplayID[4];
uint32 PresetSpellID[MAX_SHAPESHIFT_SPELLS];
};
@@ -2733,14 +2717,14 @@ struct SpellShapeshiftFormEntry
struct SpellTargetRestrictionsEntry
{
uint32 ID;
- float ConeAngle;
+ float ConeDegrees;
float Width;
- uint32 Targets;
- uint16 TargetCreatureType;
+ int32 Targets;
+ int16 TargetCreatureType;
uint8 DifficultyID;
- uint8 MaxAffectedTargets;
+ uint8 MaxTargets;
uint32 MaxTargetLevel;
- uint32 SpellID;
+ int32 SpellID;
};
#define MAX_SPELL_TOTEMS 2
@@ -2748,8 +2732,8 @@ struct SpellTargetRestrictionsEntry
struct SpellTotemsEntry
{
uint32 ID;
- uint32 SpellID;
- uint32 Totem[MAX_SPELL_TOTEMS];
+ int32 SpellID;
+ int32 Totem[MAX_SPELL_TOTEMS];
uint16 RequiredTotemCategoryID[MAX_SPELL_TOTEMS];
};
@@ -2757,26 +2741,26 @@ struct SpellXSpellVisualEntry
{
uint32 SpellVisualID;
uint32 ID;
- float Chance;
+ float Probability;
uint16 CasterPlayerConditionID;
uint16 CasterUnitConditionID;
- uint16 PlayerConditionID;
- uint16 UnitConditionID;
- uint32 IconFileDataID;
- uint32 ActiveIconFileDataID;
+ uint16 ViewerPlayerConditionID;
+ uint16 ViewerUnitConditionID;
+ int32 SpellIconFileID;
+ int32 ActiveIconFileID;
uint8 Flags;
uint8 DifficultyID;
uint8 Priority;
- uint32 SpellID;
+ int32 SpellID;
};
struct SummonPropertiesEntry
{
uint32 ID;
- uint32 Flags;
- uint32 Category;
- uint32 Faction;
- int32 Type;
+ int32 Flags;
+ int32 Control;
+ int32 Faction;
+ int32 Title;
int32 Slot;
};
@@ -2807,22 +2791,22 @@ struct TaxiNodesEntry
uint32 ID;
LocalizedString* Name;
DBCPosition3D Pos;
- uint32 MountCreatureID[2];
+ int32 MountCreatureID[2];
DBCPosition2D MapOffset;
- float Unk730;
+ float Facing;
DBCPosition2D FlightMapOffset;
- uint16 MapID;
+ uint16 ContinentID;
uint16 ConditionID;
- uint16 LearnableIndex;
+ uint16 CharacterBitNumber;
uint8 Flags;
- int32 UiTextureKitPrefixID;
- uint32 SpecialAtlasIconPlayerConditionID;
+ int32 UiTextureKitID;
+ uint32 SpecialIconConditionID;
};
struct TaxiPathEntry
{
- uint16 From;
- uint16 To;
+ uint16 FromTaxiNode;
+ uint16 ToTaxiNode;
uint32 ID;
uint32 Cost;
};
@@ -2831,7 +2815,7 @@ struct TaxiPathNodeEntry
{
DBCPosition3D Loc;
uint16 PathID;
- uint16 MapID;
+ uint16 ContinentID;
uint8 NodeIndex;
uint32 ID;
uint8 Flags;
@@ -2844,34 +2828,34 @@ struct TotemCategoryEntry
{
uint32 ID;
LocalizedString* Name;
- uint32 CategoryMask;
- uint8 CategoryType;
+ int32 TotemCategoryMask;
+ uint8 TotemCategoryType;
};
struct ToyEntry
{
- LocalizedString* Description;
- uint32 ItemID;
+ LocalizedString* SourceText;
+ int32 ItemID;
uint8 Flags;
- uint8 CategoryFilter;
+ int8 SourceTypeEnum;
uint32 ID;
};
struct TransmogHolidayEntry
{
uint32 ID;
- int32 HolidayID;
+ int32 RequiredTransmogHoliday;
};
struct TransmogSetEntry
{
LocalizedString* Name;
- uint16 BaseSetID;
- uint16 UIOrder;
+ uint16 ParentTransmogSetID;
+ int16 UiOrder;
uint8 ExpansionID;
uint32 ID;
int32 Flags;
- int32 QuestID;
+ uint32 TrackingQuestID;
int32 ClassMask;
int32 ItemNameDescriptionID;
uint32 TransmogSetGroupID;
@@ -2879,7 +2863,7 @@ struct TransmogSetEntry
struct TransmogSetGroupEntry
{
- LocalizedString* Label;
+ LocalizedString* Name;
uint32 ID;
};
@@ -2897,18 +2881,15 @@ struct TransportAnimationEntry
uint32 TimeIndex;
DBCPosition3D Pos;
uint8 SequenceID;
- uint32 TransportID;
+ int32 TransportID;
};
struct TransportRotationEntry
{
uint32 ID;
uint32 TimeIndex;
- float X;
- float Y;
- float Z;
- float W;
- uint32 TransportID;
+ float Rot[4];
+ int32 GameObjectsID;
};
struct UnitPowerBarEntry
@@ -2920,8 +2901,8 @@ struct UnitPowerBarEntry
LocalizedString* ToolTip;
float RegenerationPeace;
float RegenerationCombat;
- uint32 FileDataID[6];
- uint32 Color[6];
+ int32 FileDataID[6];
+ int32 Color[6];
float StartInset;
float EndInset;
uint16 StartPower;
@@ -2937,7 +2918,7 @@ struct UnitPowerBarEntry
struct VehicleEntry
{
uint32 ID;
- uint32 Flags;
+ int32 Flags;
float TurnSpeed;
float PitchSpeed;
float PitchMin;
@@ -2953,14 +2934,16 @@ struct VehicleEntry
uint16 VehicleUIIndicatorID;
uint16 PowerDisplayID[3];
uint8 FlagsB;
- uint8 UILocomotionType;
+ uint8 UiLocomotionType;
int32 MissileTargetingID;
};
struct VehicleSeatEntry
{
uint32 ID;
- uint32 Flags[3];
+ int32 Flags;
+ int32 FlagsB;
+ int32 FlagsC;
DBCPosition3D AttachmentOffset;
float EnterPreDelay;
float EnterSpeed;
@@ -2991,7 +2974,7 @@ struct VehicleSeatEntry
float CameraEnteringZoom;
float CameraSeatZoomMin;
float CameraSeatZoomMax;
- uint32 UISkinFileDataID;
+ int32 UiSkinFileDataID;
int16 EnterAnimStart;
int16 EnterAnimLoop;
int16 RideAnimStart;
@@ -3004,61 +2987,61 @@ struct VehicleSeatEntry
int16 VehicleEnterAnim;
int16 VehicleExitAnim;
int16 VehicleRideAnimLoop;
- uint16 EnterAnimKitID;
- uint16 RideAnimKitID;
- uint16 ExitAnimKitID;
- uint16 VehicleEnterAnimKitID;
- uint16 VehicleRideAnimKitID;
- uint16 VehicleExitAnimKitID;
- uint16 CameraModeID;
+ int16 EnterAnimKitID;
+ int16 RideAnimKitID;
+ int16 ExitAnimKitID;
+ int16 VehicleEnterAnimKitID;
+ int16 VehicleRideAnimKitID;
+ int16 VehicleExitAnimKitID;
+ int16 CameraModeID;
int8 AttachmentID;
int8 PassengerAttachmentID;
int8 VehicleEnterAnimBone;
int8 VehicleExitAnimBone;
int8 VehicleRideAnimLoopBone;
- uint8 VehicleAbilityDisplay;
+ int8 VehicleAbilityDisplay;
uint32 EnterUISoundID;
uint32 ExitUISoundID;
bool CanEnterOrExit() const
{
- return ((Flags[0] & VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT) != 0 ||
+ return ((Flags & VEHICLE_SEAT_FLAG_CAN_ENTER_OR_EXIT) != 0 ||
//If it has anmation for enter/ride, means it can be entered/exited by logic
- (Flags[0] & (VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_ENTER | VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_RIDE)) != 0);
+ (Flags & (VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_ENTER | VEHICLE_SEAT_FLAG_HAS_LOWER_ANIM_FOR_RIDE)) != 0);
}
- bool CanSwitchFromSeat() const { return (Flags[0] & VEHICLE_SEAT_FLAG_CAN_SWITCH) != 0; }
+ bool CanSwitchFromSeat() const { return (Flags & VEHICLE_SEAT_FLAG_CAN_SWITCH) != 0; }
bool IsUsableByOverride() const
{
- return (Flags[0] & (VEHICLE_SEAT_FLAG_UNCONTROLLED | VEHICLE_SEAT_FLAG_UNK18)
- || (Flags[1] & (VEHICLE_SEAT_FLAG_B_USABLE_FORCED | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 |
+ return (Flags & (VEHICLE_SEAT_FLAG_UNCONTROLLED | VEHICLE_SEAT_FLAG_UNK18)
+ || (FlagsB & (VEHICLE_SEAT_FLAG_B_USABLE_FORCED | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_2 |
VEHICLE_SEAT_FLAG_B_USABLE_FORCED_3 | VEHICLE_SEAT_FLAG_B_USABLE_FORCED_4)));
}
- bool IsEjectable() const { return (Flags[1] & VEHICLE_SEAT_FLAG_B_EJECTABLE) != 0; }
+ bool IsEjectable() const { return (FlagsB & VEHICLE_SEAT_FLAG_B_EJECTABLE) != 0; }
};
struct WMOAreaTableEntry
{
LocalizedString* AreaName;
- int32 WMOGroupID; // used in group WMO
+ int32 WmoGroupID; // used in group WMO
uint16 AmbienceID;
uint16 ZoneMusic;
uint16 IntroSound;
uint16 AreaTableID;
- uint16 UWIntroSound;
- uint16 UWAmbience;
- int8 NameSet; // used in adt file
+ uint16 UwIntroSound;
+ uint16 UwAmbience;
+ uint8 NameSetID; // used in adt file
uint8 SoundProviderPref;
uint8 SoundProviderPrefUnderwater;
uint8 Flags;
uint32 ID;
- uint32 UWZoneMusic;
- int16 WMOID; // used in root WMO
+ uint32 UwZoneMusic;
+ uint16 WmoID; // used in root WMO
};
struct WorldEffectEntry
{
uint32 ID;
- uint32 TargetAsset;
+ int32 TargetAsset;
uint16 CombatConditionID;
uint8 TargetType;
uint8 WhenToDisplay;
@@ -3074,17 +3057,17 @@ struct WorldMapAreaEntry
float LocTop;
float LocBottom;
uint32 Flags;
- uint16 MapID;
+ int16 MapID;
uint16 AreaID;
int16 DisplayMapID;
- int16 DefaultDungeonFloor;
+ uint16 DefaultDungeonFloor;
uint16 ParentWorldMapID;
uint8 LevelRangeMin;
uint8 LevelRangeMax;
uint8 BountySetID;
- uint8 BountyBoardLocation;
+ uint8 BountyDisplayLocation;
uint32 ID;
- uint32 PlayerConditionID;
+ uint32 VisibilityPlayerConditionID;
};
#define MAX_WORLD_MAP_OVERLAY_AREA_IDX 4
@@ -3096,7 +3079,6 @@ struct WorldMapOverlayEntry
uint16 TextureWidth;
uint16 TextureHeight;
uint32 MapAreaID; // idx in WorldMapArea.dbc
- uint32 AreaID[MAX_WORLD_MAP_OVERLAY_AREA_IDX];
int32 OffsetX;
int32 OffsetY;
int32 HitRectTop;
@@ -3105,6 +3087,7 @@ struct WorldMapOverlayEntry
int32 HitRectRight;
uint32 PlayerConditionID;
uint32 Flags;
+ uint32 AreaID[MAX_WORLD_MAP_OVERLAY_AREA_IDX];
};
struct WorldMapTransformsEntry
diff --git a/src/server/game/DataStores/M2Stores.cpp b/src/server/game/DataStores/M2Stores.cpp
index 5d74b353a63..0fa8c388d97 100644
--- a/src/server/game/DataStores/M2Stores.cpp
+++ b/src/server/game/DataStores/M2Stores.cpp
@@ -186,7 +186,7 @@ TC_GAME_API void LoadM2Cameras(std::string const& dataPath)
uint32 oldMSTime = getMSTime();
for (CinematicCameraEntry const* cameraEntry : sCinematicCameraStore)
{
- boost::filesystem::path filename = camerasPath / Trinity::StringFormat("FILE%08X.xxx", cameraEntry->ModelFileDataID);
+ boost::filesystem::path filename = camerasPath / Trinity::StringFormat("FILE%08X.xxx", cameraEntry->FileDataID);
// Convert to native format
filename.make_preferred();
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 18ca6f2881c..48ea6f04f0c 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -49,7 +49,7 @@ requiredItemLevel(0)
}
LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name->Str[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID),
-type(uint8(dbc->Type)), expansion(uint8(dbc->Expansion)), group(uint8(dbc->GroupID)),
+type(uint8(dbc->TypeID)), expansion(uint8(dbc->ExpansionLevel)), group(uint8(dbc->GroupID)),
minlevel(uint8(dbc->MinLevel)), maxlevel(uint8(dbc->MaxLevel)), difficulty(Difficulty(dbc->DifficultyID)),
seasonal((dbc->Flags & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
requiredItemLevel(0)
@@ -199,7 +199,7 @@ void LFGMgr::LoadLFGDungeons(bool reload /* = false */)
if (!dungeon)
continue;
- switch (dungeon->Type)
+ switch (dungeon->TypeID)
{
case LFG_TYPE_DUNGEON:
case LFG_TYPE_HEROIC:
diff --git a/src/server/game/Entities/Creature/TemporarySummon.cpp b/src/server/game/Entities/Creature/TemporarySummon.cpp
index 94850995151..b13c85cf36c 100644
--- a/src/server/game/Entities/Creature/TemporarySummon.cpp
+++ b/src/server/game/Entities/Creature/TemporarySummon.cpp
@@ -324,7 +324,7 @@ void Minion::RemoveFromWorld()
bool Minion::IsGuardianPet() const
{
- return IsPet() || (m_Properties && m_Properties->Category == SUMMON_CATEGORY_PET);
+ return IsPet() || (m_Properties && m_Properties->Control == SUMMON_CATEGORY_PET);
}
Guardian::Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool isWorldObject) : Minion(properties, owner, isWorldObject)
@@ -332,7 +332,7 @@ Guardian::Guardian(SummonPropertiesEntry const* properties, Unit* owner, bool is
{
memset(m_statFromOwner, 0, sizeof(float)*MAX_STATS);
m_unitTypeMask |= UNIT_MASK_GUARDIAN;
- if (properties && (properties->Type == SUMMON_TYPE_PET || properties->Category == SUMMON_CATEGORY_PET))
+ if (properties && (properties->Title == SUMMON_TYPE_PET || properties->Control == SUMMON_CATEGORY_PET))
{
m_unitTypeMask |= UNIT_MASK_CONTROLABLE_GUARDIAN;
InitCharmInfo();
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp
index 59773082cce..26d70dcb2a1 100644
--- a/src/server/game/Entities/GameObject/GameObject.cpp
+++ b/src/server/game/Entities/GameObject/GameObject.cpp
@@ -2209,8 +2209,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
- if (modelData->StateDamagedDisplayID)
- modelId = modelData->StateDamagedDisplayID;
+ if (modelData->State0Wmo)
+ modelId = modelData->State0Wmo;
SetDisplayId(modelId);
if (setHealth)
@@ -2237,8 +2237,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
- if (modelData->StateDestroyedDisplayID)
- modelId = modelData->StateDestroyedDisplayID;
+ if (modelData->State1Wmo)
+ modelId = modelData->State1Wmo;
SetDisplayId(modelId);
if (setHealth)
@@ -2256,8 +2256,8 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player*
uint32 modelId = m_goInfo->displayId;
if (DestructibleModelDataEntry const* modelData = sDestructibleModelDataStore.LookupEntry(m_goInfo->destructibleBuilding.DestructibleModelRec))
- if (modelData->StateRebuildingDisplayID)
- modelId = modelData->StateRebuildingDisplayID;
+ if (modelData->State2Wmo)
+ modelId = modelData->State2Wmo;
SetDisplayId(modelId);
// restores to full health
diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp
index 6815d9f6c91..fa8edb4a6cb 100644
--- a/src/server/game/Entities/Item/Item.cpp
+++ b/src/server/game/Entities/Item/Item.cpp
@@ -56,7 +56,7 @@ void AddItemsSetItem(Player* player, Item* item)
if (set->RequiredSkill && player->GetSkillValue(set->RequiredSkill) < set->RequiredSkillRank)
return;
- if (set->Flags & ITEM_SET_FLAG_LEGACY_INACTIVE)
+ if (set->SetFlags & ITEM_SET_FLAG_LEGACY_INACTIVE)
return;
ItemSetEffect* eff = NULL;
@@ -337,12 +337,12 @@ bool Item::Create(ObjectGuid::LowType guidlow, uint32 itemId, Player const* owne
if (itemProto->GetArtifactID() != artifactAppearanceSet->ArtifactID)
continue;
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactAppearance->PlayerConditionID))
+ if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactAppearance->UnlockPlayerConditionID))
if (!owner || !sConditionMgr->IsPlayerMeetingCondition(owner, playerCondition))
continue;
SetModifier(ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID, artifactAppearance->ID);
- SetAppearanceModId(artifactAppearance->AppearanceModID);
+ SetAppearanceModId(artifactAppearance->ItemAppearanceModifierID);
break;
}
}
@@ -799,7 +799,7 @@ void Item::LoadArtifactData(Player* owner, uint64 xp, uint32 artifactAppearanceI
SetUInt64Value(ITEM_FIELD_ARTIFACT_XP, xp);
SetModifier(ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID, artifactAppearanceId);
if (ArtifactAppearanceEntry const* artifactAppearance = sArtifactAppearanceStore.LookupEntry(artifactAppearanceId))
- SetAppearanceModId(artifactAppearance->AppearanceModID);
+ SetAppearanceModId(artifactAppearance->ItemAppearanceModifierID);
uint8 totalPurchasedRanks = 0;
for (ItemDynamicFieldArtifactPowers& power : powers)
@@ -817,21 +817,21 @@ void Item::LoadArtifactData(Player* owner, uint64 xp, uint32 artifactAppearanceI
switch (enchant->Effect[i])
{
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_TYPE:
- if (uint32(artifactPower->RelicType) == enchant->EffectSpellID[i])
+ if (uint32(artifactPower->Label) == enchant->EffectArg[i])
power.CurrentRankWithBonus += enchant->EffectPointsMin[i];
break;
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_ID:
- if (artifactPower->ID == enchant->EffectSpellID[i])
+ if (artifactPower->ID == enchant->EffectArg[i])
power.CurrentRankWithBonus += enchant->EffectPointsMin[i];
break;
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_PICKER:
if (_bonusData.GemRelicType[e - SOCK_ENCHANTMENT_SLOT] != -1)
{
- if (ArtifactPowerPickerEntry const* artifactPowerPicker = sArtifactPowerPickerStore.LookupEntry(enchant->EffectSpellID[i]))
+ if (ArtifactPowerPickerEntry const* artifactPowerPicker = sArtifactPowerPickerStore.LookupEntry(enchant->EffectArg[i]))
{
PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactPowerPicker->PlayerConditionID);
if (!playerCondition || sConditionMgr->IsPlayerMeetingCondition(owner, playerCondition))
- if (artifactPower->RelicType == _bonusData.GemRelicType[e - SOCK_ENCHANTMENT_SLOT])
+ if (artifactPower->Label == _bonusData.GemRelicType[e - SOCK_ENCHANTMENT_SLOT])
power.CurrentRankWithBonus += enchant->EffectPointsMin[i];
}
}
@@ -1244,7 +1244,7 @@ void Item::SetGem(uint16 slot, ItemDynamicFieldGems const* gem, uint32 gemScalin
{
if (GemPropertiesEntry const* gemProperties = sGemPropertiesStore.LookupEntry(gemTemplate->GetGemProperties()))
{
- if (SpellItemEnchantmentEntry const* gemEnchant = sSpellItemEnchantmentStore.LookupEntry(gemProperties->EnchantID))
+ if (SpellItemEnchantmentEntry const* gemEnchant = sSpellItemEnchantmentStore.LookupEntry(gemProperties->EnchantId))
{
BonusData gemBonus;
gemBonus.Initialize(gemTemplate);
@@ -1255,7 +1255,7 @@ void Item::SetGem(uint16 slot, ItemDynamicFieldGems const* gem, uint32 gemScalin
uint32 gemBaseItemLevel = gemTemplate->GetBaseItemLevel();
if (ScalingStatDistributionEntry const* ssd = sScalingStatDistributionStore.LookupEntry(gemBonus.ScalingStatDistribution))
- if (uint32 scaledIlvl = uint32(sDB2Manager.GetCurveValueAt(ssd->ItemLevelCurveID, gemScalingLevel)))
+ if (uint32 scaledIlvl = uint32(sDB2Manager.GetCurveValueAt(ssd->PlayerLevelToItemLevelCurveID, gemScalingLevel)))
gemBaseItemLevel = scaledIlvl;
_bonusData.GemRelicType[slot] = gemBonus.RelicType;
@@ -1266,7 +1266,7 @@ void Item::SetGem(uint16 slot, ItemDynamicFieldGems const* gem, uint32 gemScalin
{
case ITEM_ENCHANTMENT_TYPE_BONUS_LIST_ID:
{
- if (DB2Manager::ItemBonusList const* bonuses = sDB2Manager.GetItemBonusList(gemEnchant->EffectSpellID[i]))
+ if (DB2Manager::ItemBonusList const* bonuses = sDB2Manager.GetItemBonusList(gemEnchant->EffectArg[i]))
for (ItemBonusEntry const* itemBonus : *bonuses)
if (itemBonus->Type == ITEM_BONUS_ITEM_LEVEL)
_bonusData.GemItemLevelBonus[slot] += itemBonus->Value[0];
@@ -1841,7 +1841,7 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
if (!basePrice)
return 0;
- float qualityFactor = qualityPrice->Factor;
+ float qualityFactor = qualityPrice->Data;
float baseFactor = 0.0f;
uint32 inventoryType = proto->GetInventoryType();
@@ -1853,9 +1853,9 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
inventoryType == INVTYPE_RANGED ||
inventoryType == INVTYPE_THROWN ||
inventoryType == INVTYPE_RANGEDRIGHT)
- baseFactor = basePrice->WeaponFactor;
+ baseFactor = basePrice->Weapon;
else
- baseFactor = basePrice->ArmorFactor;
+ baseFactor = basePrice->Armor;
if (inventoryType == INVTYPE_ROBE)
inventoryType = INVTYPE_CHEST;
@@ -1863,7 +1863,7 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
if (proto->GetClass() == ITEM_CLASS_GEM && proto->GetSubClass() == ITEM_SUBCLASS_GEM_ARTIFACT_RELIC)
{
inventoryType = INVTYPE_WEAPON;
- baseFactor = basePrice->WeaponFactor / 3.0f;
+ baseFactor = basePrice->Weapon / 3.0f;
}
float typeFactor = 0.0f;
@@ -1893,16 +1893,16 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
{
case ITEM_SUBCLASS_ARMOR_MISCELLANEOUS:
case ITEM_SUBCLASS_ARMOR_CLOTH:
- typeFactor = armorPrice->ClothFactor;
+ typeFactor = armorPrice->ClothModifier;
break;
case ITEM_SUBCLASS_ARMOR_LEATHER:
- typeFactor = armorPrice->LeatherFactor;
+ typeFactor = armorPrice->LeatherModifier;
break;
case ITEM_SUBCLASS_ARMOR_MAIL:
- typeFactor = armorPrice->MailFactor;
+ typeFactor = armorPrice->ChainModifier;
break;
case ITEM_SUBCLASS_ARMOR_PLATE:
- typeFactor = armorPrice->PlateFactor;
+ typeFactor = armorPrice->PlateModifier;
break;
default:
typeFactor = 1.0f;
@@ -1917,7 +1917,7 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
if (!shieldPrice)
return 0;
- typeFactor = shieldPrice->Factor;
+ typeFactor = shieldPrice->Data;
break;
}
case INVTYPE_WEAPONMAINHAND:
@@ -1947,11 +1947,11 @@ uint32 Item::GetBuyPrice(ItemTemplate const* proto, uint32 quality, uint32 itemL
if (!weaponPrice)
return 0;
- typeFactor = weaponPrice->Factor;
+ typeFactor = weaponPrice->Data;
}
standardPrice = false;
- return uint32(proto->GetUnk2() * typeFactor * baseFactor * qualityFactor * proto->GetUnk1());
+ return uint32(proto->GetPriceVariance() * typeFactor * baseFactor * qualityFactor * proto->GetPriceRandomValue());
}
uint32 Item::GetSellPrice(Player const* owner) const
@@ -1973,7 +1973,7 @@ uint32 Item::GetSellPrice(ItemTemplate const* proto, uint32 quality, uint32 item
if (ItemClassEntry const* classEntry = sDB2Manager.GetItemClassByOldEnum(proto->GetClass()))
{
uint32 buyCount = std::max(proto->GetBuyCount(), 1u);
- return cost * classEntry->PriceMod / buyCount;
+ return cost * classEntry->PriceModifier / buyCount;
}
return 0;
@@ -2195,13 +2195,13 @@ uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bon
if (fixedLevel)
level = fixedLevel;
else
- level = std::min(std::max(level, ssd->MinLevel), ssd->MaxLevel);
+ level = std::min(std::max(int32(level), ssd->MinLevel), ssd->MaxLevel);
if (SandboxScalingEntry const* sandbox = sSandboxScalingStore.LookupEntry(bonusData.SandboxScalingId))
if ((sandbox->Flags & 2 || sandbox->MinLevel || sandbox->MaxLevel) && !(sandbox->Flags & 4))
- level = std::min(std::max(level, sandbox->MinLevel), sandbox->MaxLevel);
+ level = std::min(std::max(int32(level), sandbox->MinLevel), sandbox->MaxLevel);
- if (uint32 heirloomIlvl = uint32(sDB2Manager.GetCurveValueAt(ssd->ItemLevelCurveID, level)))
+ if (uint32 heirloomIlvl = uint32(sDB2Manager.GetCurveValueAt(ssd->PlayerLevelToItemLevelCurveID, level)))
itemLevel = heirloomIlvl;
}
@@ -2212,7 +2212,7 @@ uint32 Item::GetItemLevel(ItemTemplate const* itemTemplate, BonusData const& bon
uint32 itemLevelBeforeUpgrades = itemLevel;
if (ItemUpgradeEntry const* upgrade = sItemUpgradeStore.LookupEntry(upgradeId))
- itemLevel += upgrade->ItemLevelBonus;
+ itemLevel += upgrade->ItemLevelIncrement;
if (pvpBonus)
itemLevel += sDB2Manager.GetPvpItemLevelBonus(itemTemplate->GetId());
@@ -2266,19 +2266,19 @@ ItemDisenchantLootEntry const* Item::GetDisenchantLoot(ItemTemplate const* itemT
uint8 expansion = itemTemplate->GetRequiredExpansion();
for (ItemDisenchantLootEntry const* disenchant : sItemDisenchantLootStore)
{
- if (disenchant->ItemClass != itemClass)
+ if (disenchant->Class != itemClass)
continue;
- if (disenchant->ItemSubClass >= 0 && itemSubClass)
+ if (disenchant->Subclass >= 0 && itemSubClass)
continue;
- if (disenchant->ItemQuality != quality)
+ if (disenchant->Quality != quality)
continue;
- if (disenchant->MinItemLevel > itemLevel || disenchant->MaxItemLevel < itemLevel)
+ if (disenchant->MinLevel > itemLevel || disenchant->MaxLevel < itemLevel)
continue;
- if (disenchant->Expansion != -2 && disenchant->Expansion != expansion)
+ if (disenchant->ExpansionID != -2 && disenchant->ExpansionID != expansion)
continue;
return disenchant;
@@ -2294,8 +2294,8 @@ uint32 Item::GetDisplayId(Player const* owner) const
transmogModifier = AppearanceModifierSlotBySpec[owner->GetActiveTalentGroup()];
if (ItemModifiedAppearanceEntry const* transmog = sItemModifiedAppearanceStore.LookupEntry(GetModifier(transmogModifier)))
- if (ItemAppearanceEntry const* itemAppearance = sItemAppearanceStore.LookupEntry(transmog->AppearanceID))
- return itemAppearance->DisplayID;
+ if (ItemAppearanceEntry const* itemAppearance = sItemAppearanceStore.LookupEntry(transmog->ItemAppearanceID))
+ return itemAppearance->ItemDisplayInfoID;
return sDB2Manager.GetItemDisplayId(GetEntry(), GetAppearanceModId());
}
@@ -2335,7 +2335,7 @@ uint16 Item::GetVisibleAppearanceModId(Player const* owner) const
transmogModifier = AppearanceModifierSlotBySpec[owner->GetActiveTalentGroup()];
if (ItemModifiedAppearanceEntry const* transmog = sItemModifiedAppearanceStore.LookupEntry(GetModifier(transmogModifier)))
- return transmog->AppearanceModID;
+ return transmog->ItemAppearanceModifierID;
return uint16(GetAppearanceModId());
}
@@ -2407,7 +2407,7 @@ void Item::InitArtifactPowers(uint8 artifactId, uint8 artifactTier)
{
for (ArtifactPowerEntry const* artifactPower : sDB2Manager.GetArtifactPowers(artifactId))
{
- if (artifactPower->ArtifactTier != artifactTier)
+ if (artifactPower->Tier != artifactTier)
continue;
if (m_artifactPowerIdToIndex.find(artifactPower->ID) != m_artifactPowerIdToIndex.end())
@@ -2442,7 +2442,7 @@ void Item::ApplyArtifactPowerEnchantmentBonuses(EnchantmentSlot slot, uint32 enc
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_TYPE:
for (ItemDynamicFieldArtifactPowers const& artifactPower : GetArtifactPowers())
{
- if (uint32(sArtifactPowerStore.AssertEntry(artifactPower.ArtifactPowerId)->RelicType) == enchant->EffectSpellID[i])
+ if (uint32(sArtifactPowerStore.AssertEntry(artifactPower.ArtifactPowerId)->Label) == enchant->EffectArg[i])
{
ItemDynamicFieldArtifactPowers newPower = artifactPower;
if (apply)
@@ -2459,7 +2459,7 @@ void Item::ApplyArtifactPowerEnchantmentBonuses(EnchantmentSlot slot, uint32 enc
}
break;
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_BY_ID:
- if (ItemDynamicFieldArtifactPowers const* artifactPower = GetArtifactPower(enchant->EffectSpellID[i]))
+ if (ItemDynamicFieldArtifactPowers const* artifactPower = GetArtifactPower(enchant->EffectArg[i]))
{
ItemDynamicFieldArtifactPowers newPower = *artifactPower;
if (apply)
@@ -2477,14 +2477,14 @@ void Item::ApplyArtifactPowerEnchantmentBonuses(EnchantmentSlot slot, uint32 enc
case ITEM_ENCHANTMENT_TYPE_ARTIFACT_POWER_BONUS_RANK_PICKER:
if (slot >= SOCK_ENCHANTMENT_SLOT && slot <= SOCK_ENCHANTMENT_SLOT_3 && _bonusData.GemRelicType[slot - SOCK_ENCHANTMENT_SLOT] != -1)
{
- if (ArtifactPowerPickerEntry const* artifactPowerPicker = sArtifactPowerPickerStore.LookupEntry(enchant->EffectSpellID[i]))
+ if (ArtifactPowerPickerEntry const* artifactPowerPicker = sArtifactPowerPickerStore.LookupEntry(enchant->EffectArg[i]))
{
PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactPowerPicker->PlayerConditionID);
if (!playerCondition || sConditionMgr->IsPlayerMeetingCondition(owner, playerCondition))
{
for (ItemDynamicFieldArtifactPowers const& artifactPower : GetArtifactPowers())
{
- if (sArtifactPowerStore.AssertEntry(artifactPower.ArtifactPowerId)->RelicType == _bonusData.GemRelicType[slot - SOCK_ENCHANTMENT_SLOT])
+ if (sArtifactPowerStore.AssertEntry(artifactPower.ArtifactPowerId)->Label == _bonusData.GemRelicType[slot - SOCK_ENCHANTMENT_SLOT])
{
ItemDynamicFieldArtifactPowers newPower = artifactPower;
if (apply)
@@ -2531,7 +2531,7 @@ void Item::GiveArtifactXp(uint64 amount, Item* sourceItem, uint32 artifactCatego
if (sourceItem && sourceItem->GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL))
artifactKnowledgeLevel = sourceItem->GetModifier(ITEM_MODIFIER_ARTIFACT_KNOWLEDGE_LEVEL);
else
- artifactKnowledgeLevel = owner->GetCurrency(artifactCategory->ArtifactKnowledgeCurrencyID) + 1;
+ artifactKnowledgeLevel = owner->GetCurrency(artifactCategory->XpMultCurrencyID) + 1;
if (GtArtifactKnowledgeMultiplierEntry const* artifactKnowledge = sArtifactKnowledgeMultiplierGameTable.GetRow(artifactKnowledgeLevel))
amount = uint64(amount * artifactKnowledge->Multiplier);
diff --git a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
index 7a7ddedae7b..052e52db633 100644
--- a/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
+++ b/src/server/game/Entities/Item/ItemEnchantmentMgr.cpp
@@ -253,14 +253,14 @@ TC_GAME_API uint32 GetRandomPropertyPoints(uint32 itemLevel, uint32 quality, uin
switch (quality)
{
case ITEM_QUALITY_UNCOMMON:
- return randPropPointsEntry->UncommonPropertiesPoints[propIndex];
+ return randPropPointsEntry->Good[propIndex];
case ITEM_QUALITY_RARE:
case ITEM_QUALITY_HEIRLOOM:
- return randPropPointsEntry->RarePropertiesPoints[propIndex];
+ return randPropPointsEntry->Superior[propIndex];
case ITEM_QUALITY_EPIC:
case ITEM_QUALITY_LEGENDARY:
case ITEM_QUALITY_ARTIFACT:
- return randPropPointsEntry->EpicPropertiesPoints[propIndex];
+ return randPropPointsEntry->Epic[propIndex];
}
return 0;
diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp
index 97907e8f88d..d541f70215d 100644
--- a/src/server/game/Entities/Item/ItemTemplate.cpp
+++ b/src/server/game/Entities/Item/ItemTemplate.cpp
@@ -46,10 +46,10 @@ uint32 const SocketColorToGemTypeMask[19] =
char const* ItemTemplate::GetName(LocaleConstant locale) const
{
- if (!strlen(ExtendedData->Name->Str[locale]))
+ if (!strlen(ExtendedData->Display->Str[locale]))
return GetDefaultLocaleName();
- return ExtendedData->Name->Str[locale];
+ return ExtendedData->Display->Str[locale];
}
@@ -113,7 +113,7 @@ uint32 ItemTemplate::GetSkill() const
char const* ItemTemplate::GetDefaultLocaleName() const
{
- return ExtendedData->Name->Str[sWorld->GetDefaultDbcLocale()];
+ return ExtendedData->Display->Str[sWorld->GetDefaultDbcLocale()];
}
uint32 ItemTemplate::GetArmor(uint32 itemLevel) const
@@ -141,7 +141,31 @@ uint32 ItemTemplate::GetArmor(uint32 itemLevel) const
if (GetSubClass() < ITEM_SUBCLASS_ARMOR_CLOTH || GetSubClass() > ITEM_SUBCLASS_ARMOR_PLATE)
return 0;
- return uint32(armorQuality->QualityMod[quality] * armorTotal->Value[GetSubClass() - 1] * location->Modifier[GetSubClass() - 1] + 0.5f);
+ float total = 1.0f;
+ float locationModifier = 1.0f;
+ switch (GetSubClass())
+ {
+ case ITEM_SUBCLASS_ARMOR_CLOTH:
+ total = armorTotal->Cloth;
+ locationModifier = location->Clothmodifier;
+ break;
+ case ITEM_SUBCLASS_ARMOR_LEATHER:
+ total = armorTotal->Leather;
+ locationModifier = location->Leathermodifier;
+ break;
+ case ITEM_SUBCLASS_ARMOR_MAIL:
+ total = armorTotal->Mail;
+ locationModifier = location->Chainmodifier;
+ break;
+ case ITEM_SUBCLASS_ARMOR_PLATE:
+ total = armorTotal->Plate;
+ locationModifier = location->Platemodifier;
+ break;
+ default:
+ break;
+ }
+
+ return uint32(armorQuality->Qualitymod[quality] * total * locationModifier + 0.5f);
}
// shields
@@ -167,13 +191,13 @@ void ItemTemplate::GetDamage(uint32 itemLevel, float& minDamage, float& maxDamag
switch (GetInventoryType())
{
case INVTYPE_AMMO:
- dps = sItemDamageAmmoStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageAmmoStore.AssertEntry(itemLevel)->Quality[quality];
break;
case INVTYPE_2HWEAPON:
if (GetFlags2() & ITEM_FLAG2_CASTER_WEAPON)
- dps = sItemDamageTwoHandCasterStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageTwoHandCasterStore.AssertEntry(itemLevel)->Quality[quality];
else
- dps = sItemDamageTwoHandStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageTwoHandStore.AssertEntry(itemLevel)->Quality[quality];
break;
case INVTYPE_RANGED:
case INVTYPE_THROWN:
@@ -181,15 +205,15 @@ void ItemTemplate::GetDamage(uint32 itemLevel, float& minDamage, float& maxDamag
switch (GetSubClass())
{
case ITEM_SUBCLASS_WEAPON_WAND:
- dps = sItemDamageOneHandCasterStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageOneHandCasterStore.AssertEntry(itemLevel)->Quality[quality];
break;
case ITEM_SUBCLASS_WEAPON_BOW:
case ITEM_SUBCLASS_WEAPON_GUN:
case ITEM_SUBCLASS_WEAPON_CROSSBOW:
if (GetFlags2() & ITEM_FLAG2_CASTER_WEAPON)
- dps = sItemDamageTwoHandCasterStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageTwoHandCasterStore.AssertEntry(itemLevel)->Quality[quality];
else
- dps = sItemDamageTwoHandStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageTwoHandStore.AssertEntry(itemLevel)->Quality[quality];
break;
default:
return;
@@ -199,17 +223,17 @@ void ItemTemplate::GetDamage(uint32 itemLevel, float& minDamage, float& maxDamag
case INVTYPE_WEAPONMAINHAND:
case INVTYPE_WEAPONOFFHAND:
if (GetFlags2() & ITEM_FLAG2_CASTER_WEAPON)
- dps = sItemDamageOneHandCasterStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageOneHandCasterStore.AssertEntry(itemLevel)->Quality[quality];
else
- dps = sItemDamageOneHandStore.AssertEntry(itemLevel)->DPS[quality];
+ dps = sItemDamageOneHandStore.AssertEntry(itemLevel)->Quality[quality];
break;
default:
return;
}
float avgDamage = dps * GetDelay() * 0.001f;
- minDamage = (GetStatScalingFactor() * -0.5f + 1.0f) * avgDamage;
- maxDamage = floor(float(avgDamage * (GetStatScalingFactor() * 0.5f + 1.0f) + 0.5f));
+ minDamage = (GetDmgVariance() * -0.5f + 1.0f) * avgDamage;
+ maxDamage = floor(float(avgDamage * (GetDmgVariance() * 0.5f + 1.0f) + 0.5f));
}
bool ItemTemplate::IsUsableByLootSpecialization(Player const* player, bool alwaysAllowBoundToAccount) const
diff --git a/src/server/game/Entities/Item/ItemTemplate.h b/src/server/game/Entities/Item/ItemTemplate.h
index 89a20ab6459..c5e83ff6bab 100644
--- a/src/server/game/Entities/Item/ItemTemplate.h
+++ b/src/server/game/Entities/Item/ItemTemplate.h
@@ -707,16 +707,16 @@ struct TC_GAME_API ItemTemplate
ItemSparseEntry const* ExtendedData;
uint32 GetId() const { return BasicData->ID; }
- uint32 GetClass() const { return BasicData->Class; }
- uint32 GetSubClass() const { return BasicData->SubClass; }
- uint32 GetQuality() const { return ExtendedData->Quality; }
+ uint32 GetClass() const { return BasicData->ClassID; }
+ uint32 GetSubClass() const { return BasicData->SubclassID; }
+ uint32 GetQuality() const { return ExtendedData->OverallQualityID; }
uint32 GetFlags() const { return ExtendedData->Flags[0]; }
uint32 GetFlags2() const { return ExtendedData->Flags[1]; }
uint32 GetFlags3() const { return ExtendedData->Flags[2]; }
uint32 GetFlags4() const { return ExtendedData->Flags[3]; }
- float GetUnk1() const { return ExtendedData->Unk1; }
- float GetUnk2() const { return ExtendedData->Unk2; }
- uint32 GetBuyCount() const { return std::max<uint32>(ExtendedData->BuyCount, 1u); }
+ float GetPriceRandomValue() const { return ExtendedData->PriceRandomValue; }
+ float GetPriceVariance() const { return ExtendedData->PriceVariance; }
+ uint32 GetBuyCount() const { return std::max<uint32>(ExtendedData->VendorStackCount, 1u); }
uint32 GetBuyPrice() const { return ExtendedData->BuyPrice; }
uint32 GetSellPrice() const { return ExtendedData->SellPrice; }
InventoryType GetInventoryType() const { return InventoryType(ExtendedData->InventoryType); }
@@ -726,41 +726,41 @@ struct TC_GAME_API ItemTemplate
int32 GetBaseRequiredLevel() const { return ExtendedData->RequiredLevel; }
uint32 GetRequiredSkill() const { return ExtendedData->RequiredSkill; }
uint32 GetRequiredSkillRank() const { return ExtendedData->RequiredSkillRank; }
- uint32 GetRequiredSpell() const { return ExtendedData->RequiredSpell; }
- uint32 GetRequiredReputationFaction() const { return ExtendedData->RequiredReputationFaction; }
- uint32 GetRequiredReputationRank() const { return ExtendedData->RequiredReputationRank; }
+ uint32 GetRequiredSpell() const { return ExtendedData->RequiredAbility; }
+ uint32 GetRequiredReputationFaction() const { return ExtendedData->MinFactionID; }
+ uint32 GetRequiredReputationRank() const { return ExtendedData->MinReputation; }
uint32 GetMaxCount() const { return ExtendedData->MaxCount; }
uint32 GetContainerSlots() const { return ExtendedData->ContainerSlots; }
- int32 GetItemStatType(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->ItemStatType[index]; }
+ int32 GetItemStatType(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatModifierBonusStat[index]; }
int32 GetItemStatValue(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->ItemStatValue[index]; }
- int32 GetItemStatAllocation(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->ItemStatAllocation[index]; }
- float GetItemStatSocketCostMultiplier(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->ItemStatSocketCostMultiplier[index]; }
- uint32 GetScalingStatDistribution() const { return ExtendedData->ScalingStatDistribution; }
- uint32 GetDamageType() const { return ExtendedData->DamageType; }
- uint32 GetDelay() const { return ExtendedData->Delay; }
- float GetRangedModRange() const { return ExtendedData->RangedModRange; }
+ int32 GetItemStatAllocation(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatPercentEditor[index]; }
+ float GetItemStatSocketCostMultiplier(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_STATS); return ExtendedData->StatPercentageOfSocket[index]; }
+ uint32 GetScalingStatDistribution() const { return ExtendedData->ScalingStatDistributionID; }
+ uint32 GetDamageType() const { return ExtendedData->DamageDamageType; }
+ uint32 GetDelay() const { return ExtendedData->ItemDelay; }
+ float GetRangedModRange() const { return ExtendedData->ItemRange; }
ItemBondingType GetBonding() const { return ItemBondingType(ExtendedData->Bonding); }
char const* GetName(LocaleConstant locale) const;
- uint32 GetPageText() const { return ExtendedData->PageText; }
- uint32 GetStartQuest() const { return ExtendedData->StartQuest; }
+ uint32 GetPageText() const { return ExtendedData->PageID; }
+ uint32 GetStartQuest() const { return ExtendedData->StartQuestID; }
uint32 GetLockID() const { return ExtendedData->LockID; }
- uint32 GetRandomProperty() const { return ExtendedData->RandomProperty; }
- uint32 GetRandomSuffix() const { return ExtendedData->RandomSuffix; }
+ uint32 GetRandomProperty() const { return ExtendedData->RandomSelect; }
+ uint32 GetRandomSuffix() const { return ExtendedData->ItemRandomSuffixGroupID; }
uint32 GetItemSet() const { return ExtendedData->ItemSet; }
- uint32 GetArea() const { return ExtendedData->Area; }
- uint32 GetMap() const { return ExtendedData->Map; }
+ uint32 GetArea() const { return ExtendedData->ZoneBound; }
+ uint32 GetMap() const { return ExtendedData->InstanceBound; }
uint32 GetBagFamily() const { return ExtendedData->BagFamily; }
- uint32 GetTotemCategory() const { return ExtendedData->TotemCategory; }
- SocketColor GetSocketColor(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_SOCKETS); return SocketColor(ExtendedData->SocketColor[index]); }
- uint32 GetSocketBonus() const { return ExtendedData->SocketBonus; }
+ uint32 GetTotemCategory() const { return ExtendedData->TotemCategoryID; }
+ SocketColor GetSocketColor(uint32 index) const { ASSERT(index < MAX_ITEM_PROTO_SOCKETS); return SocketColor(ExtendedData->SocketType[index]); }
+ uint32 GetSocketBonus() const { return ExtendedData->SocketMatchEnchantmentId; }
uint32 GetGemProperties() const { return ExtendedData->GemProperties; }
- float GetArmorDamageModifier() const { return ExtendedData->ArmorDamageModifier; }
- uint32 GetDuration() const { return ExtendedData->Duration; }
- uint32 GetItemLimitCategory() const { return ExtendedData->ItemLimitCategory; }
- HolidayIds GetHolidayID() const { return HolidayIds(ExtendedData->HolidayID); }
- float GetStatScalingFactor() const { return ExtendedData->StatScalingFactor; }
+ float GetQualityModifier() const { return ExtendedData->QualityModifier; }
+ uint32 GetDuration() const { return ExtendedData->DurationInInventory; }
+ uint32 GetItemLimitCategory() const { return ExtendedData->LimitCategory; }
+ HolidayIds GetHolidayID() const { return HolidayIds(ExtendedData->RequiredHoliday); }
+ float GetDmgVariance() const { return ExtendedData->DmgVariance; }
uint8 GetArtifactID() const { return ExtendedData->ArtifactID; }
- uint8 GetRequiredExpansion() const { return ExtendedData->RequiredExpansion; }
+ uint8 GetRequiredExpansion() const { return ExtendedData->ExpansionID; }
uint32 MaxDurability;
std::vector<ItemEffectEntry const*> Effects;
diff --git a/src/server/game/Entities/Object/Object.cpp b/src/server/game/Entities/Object/Object.cpp
index 75fd5ed1248..05f7a37abb0 100644
--- a/src/server/game/Entities/Object/Object.cpp
+++ b/src/server/game/Entities/Object/Object.cpp
@@ -2356,7 +2356,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert
uint32 mask = UNIT_MASK_SUMMON;
if (properties)
{
- switch (properties->Category)
+ switch (properties->Control)
{
case SUMMON_CATEGORY_PET:
mask = UNIT_MASK_GUARDIAN;
@@ -2371,7 +2371,7 @@ TempSummon* Map::SummonCreature(uint32 entry, Position const& pos, SummonPropert
case SUMMON_CATEGORY_ALLY:
case SUMMON_CATEGORY_UNK:
{
- switch (properties->Type)
+ switch (properties->Title)
{
case SUMMON_TYPE_MINION:
case SUMMON_TYPE_GUARDIAN:
diff --git a/src/server/game/Entities/Player/CollectionMgr.cpp b/src/server/game/Entities/Player/CollectionMgr.cpp
index 8f9885de9be..eb4834967ba 100644
--- a/src/server/game/Entities/Player/CollectionMgr.cpp
+++ b/src/server/game/Entities/Player/CollectionMgr.cpp
@@ -163,11 +163,11 @@ void CollectionMgr::LoadAccountHeirlooms(PreparedQueryResult result)
uint32 bonusId = 0;
if (flags & HEIRLOOM_FLAG_BONUS_LEVEL_110)
- bonusId = heirloom->ItemBonusListID[2];
+ bonusId = heirloom->UpgradeItemBonusListID[2];
else if (flags & HEIRLOOM_FLAG_BONUS_LEVEL_100)
- bonusId = heirloom->ItemBonusListID[1];
+ bonusId = heirloom->UpgradeItemBonusListID[1];
else if (flags & HEIRLOOM_FLAG_BONUS_LEVEL_90)
- bonusId = heirloom->ItemBonusListID[0];
+ bonusId = heirloom->UpgradeItemBonusListID[0];
_heirlooms[itemId] = HeirloomData(flags, bonusId);
} while (result->NextRow());
@@ -218,7 +218,7 @@ void CollectionMgr::AddHeirloom(uint32 itemId, uint32 flags)
}
}
-void CollectionMgr::UpgradeHeirloom(uint32 itemId, uint32 castItem)
+void CollectionMgr::UpgradeHeirloom(uint32 itemId, int32 castItem)
{
Player* player = _owner->GetPlayer();
if (!player)
@@ -238,17 +238,17 @@ void CollectionMgr::UpgradeHeirloom(uint32 itemId, uint32 castItem)
if (heirloom->UpgradeItemID[0] == castItem)
{
flags |= HEIRLOOM_FLAG_BONUS_LEVEL_90;
- bonusId = heirloom->ItemBonusListID[0];
+ bonusId = heirloom->UpgradeItemBonusListID[0];
}
if (heirloom->UpgradeItemID[1] == castItem)
{
flags |= HEIRLOOM_FLAG_BONUS_LEVEL_100;
- bonusId = heirloom->ItemBonusListID[1];
+ bonusId = heirloom->UpgradeItemBonusListID[1];
}
if (heirloom->UpgradeItemID[2] == castItem)
{
flags |= HEIRLOOM_FLAG_BONUS_LEVEL_110;
- bonusId = heirloom->ItemBonusListID[2];
+ bonusId = heirloom->UpgradeItemBonusListID[2];
}
for (Item* item : player->GetItemListByEntry(itemId, true))
@@ -277,14 +277,14 @@ void CollectionMgr::CheckHeirloomUpgrades(Item* item)
return;
// Check for heirloom pairs (normal - heroic, heroic - mythic)
- uint32 heirloomItemId = heirloom->NextDifficultyItemID;
+ uint32 heirloomItemId = heirloom->StaticUpgradedItemID;
uint32 newItemId = 0;
while (HeirloomEntry const* heirloomDiff = sDB2Manager.GetHeirloomByItemId(heirloomItemId))
{
if (player->GetItemByEntry(heirloomDiff->ItemID))
newItemId = heirloomDiff->ItemID;
- if (HeirloomEntry const* heirloomSub = sDB2Manager.GetHeirloomByItemId(heirloomDiff->NextDifficultyItemID))
+ if (HeirloomEntry const* heirloomSub = sDB2Manager.GetHeirloomByItemId(heirloomDiff->StaticUpgradedItemID))
{
heirloomItemId = heirloomSub->ItemID;
continue;
@@ -390,10 +390,10 @@ bool CollectionMgr::AddMount(uint32 spellId, MountStatusFlags flags, bool factio
_mounts.insert(MountContainer::value_type(spellId, flags));
// Mount condition only applies to using it, should still learn it.
- if (mount->PlayerConditionId)
+ if (mount->PlayerConditionID)
{
- PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(mount->PlayerConditionId);
- if (!ConditionMgr::IsPlayerMeetingCondition(player, playerCondition))
+ PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(mount->PlayerConditionID);
+ if (playerCondition && !ConditionMgr::IsPlayerMeetingCondition(player, playerCondition))
return false;
}
@@ -655,7 +655,7 @@ bool CollectionMgr::CanAddAppearance(ItemModifiedAppearanceEntry const* itemModi
if (!itemModifiedAppearance)
return false;
- if (itemModifiedAppearance->SourceType == 6 || itemModifiedAppearance->SourceType == 9)
+ if (itemModifiedAppearance->TransmogSourceTypeEnum == 6 || itemModifiedAppearance->TransmogSourceTypeEnum == 9)
return false;
if (!sItemSearchNameStore.LookupEntry(itemModifiedAppearance->ItemID))
diff --git a/src/server/game/Entities/Player/CollectionMgr.h b/src/server/game/Entities/Player/CollectionMgr.h
index 04a05298b81..1c7f9b7036e 100644
--- a/src/server/game/Entities/Player/CollectionMgr.h
+++ b/src/server/game/Entities/Player/CollectionMgr.h
@@ -93,7 +93,7 @@ public:
void LoadAccountHeirlooms(PreparedQueryResult result);
void SaveAccountHeirlooms(SQLTransaction& trans);
void AddHeirloom(uint32 itemId, uint32 flags);
- void UpgradeHeirloom(uint32 itemId, uint32 castItem);
+ void UpgradeHeirloom(uint32 itemId, int32 castItem);
void CheckHeirloomUpgrades(Item* item);
bool UpdateAccountHeirlooms(uint32 itemId, uint32 flags);
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index e8b285d628a..3c69bdc7b83 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -440,7 +440,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
SetMap(sMapMgr->CreateMap(info->mapId, this));
- uint8 powertype = cEntry->PowerType;
+ uint8 powertype = cEntry->DisplayPower;
SetObjectScale(1.0f);
@@ -634,7 +634,7 @@ bool Player::Create(ObjectGuid::LowType guidlow, WorldPackets::Character::Charac
{
if (iProto->Effects.size() >= 1)
{
- switch (iProto->Effects[0]->Category)
+ switch (iProto->Effects[0]->SpellCategoryID)
{
case SPELL_CATEGORY_FOOD: // food
count = getClass() == CLASS_DEATH_KNIGHT ? 10 : 4;
@@ -1852,13 +1852,13 @@ void Player::Regenerate(Powers power)
float addvalue = 0.0f;
if (!IsInCombat())
{
- if (powerType->RegenerationDelay && GetMSTimeDiffToNow(m_combatExitTime) < powerType->RegenerationDelay)
+ if (powerType->RegenInterruptTimeMS && GetMSTimeDiffToNow(m_combatExitTime) < uint32(powerType->RegenInterruptTimeMS))
return;
- addvalue = (powerType->RegenerationPeace + GetFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + powerIndex)) * 0.001f * m_regenTimer;
+ addvalue = (powerType->RegenPeace + GetFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + powerIndex)) * 0.001f * m_regenTimer;
}
else
- addvalue = (powerType->RegenerationCombat + GetFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + powerIndex)) * 0.001f * m_regenTimer;
+ addvalue = (powerType->RegenCombat + GetFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + powerIndex)) * 0.001f * m_regenTimer;
static Rates const RatesForPower[MAX_POWERS] =
{
@@ -1894,7 +1894,7 @@ void Player::Regenerate(Powers power)
addvalue += GetTotalAuraModifierByMiscValue(SPELL_AURA_MOD_POWER_REGEN, power) * ((power != POWER_ENERGY) ? m_regenTimerCount : m_regenTimer) / (5 * IN_MILLISECONDS);
}
- int32 minPower = powerType->RegenerationMin;
+ int32 minPower = powerType->MinPower;
int32 maxPower = GetMaxPower(power);
if (addvalue < 0.0f)
@@ -1913,17 +1913,17 @@ void Player::Regenerate(Powers power)
addvalue += m_powerFraction[powerIndex];
int32 integerValue = int32(std::fabs(addvalue));
- if (powerType->RegenerationCenter)
+ if (powerType->CenterPower)
{
- if (curValue > powerType->RegenerationCenter)
+ if (curValue > powerType->CenterPower)
{
addvalue = -std::abs(addvalue);
- minPower = powerType->RegenerationCenter;
+ minPower = powerType->CenterPower;
}
- else if (curValue < powerType->RegenerationCenter)
+ else if (curValue < powerType->CenterPower)
{
addvalue = std::abs(addvalue);
- maxPower = powerType->RegenerationCenter;
+ maxPower = powerType->CenterPower;
}
else
return;
@@ -2154,7 +2154,7 @@ void Player::SetInWater(bool apply)
bool Player::IsInAreaTriggerRadius(const AreaTriggerEntry* trigger) const
{
- if (!trigger || GetMapId() != trigger->MapID)
+ if (!trigger || int32(GetMapId()) != trigger->ContinentID)
return false;
if (trigger->Radius > 0.f)
@@ -2835,7 +2835,7 @@ void Player::RemoveTalent(TalentEntry const* talent)
plrTalent->second = PLAYERSPELL_REMOVED;
}
-bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading /*= false*/, uint32 fromSkill /*= 0*/)
+bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading /*= false*/, int32 fromSkill /*= 0*/)
{
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(spellId);
if (!spellInfo)
@@ -3146,7 +3146,7 @@ bool Player::AddSpell(uint32 spellId, bool active, bool learning, bool dependent
// need to add Battle pets automatically into pet journal
for (BattlePetSpeciesEntry const* entry : sBattlePetSpeciesStore)
{
- if (entry->SummonSpellID == spellId && GetSession()->GetBattlePetMgr()->GetPetCount(entry->ID) == 0)
+ if (entry->SummonSpellID == int32(spellId) && GetSession()->GetBattlePetMgr()->GetPetCount(entry->ID) == 0)
{
GetSession()->GetBattlePetMgr()->AddPet(entry->ID, entry->CreatureID, BattlePetMgr::RollPetBreed(entry->ID), BattlePetMgr::GetDefaultPetQuality(entry->ID));
UpdateCriteria(CRITERIA_TYPE_OWN_BATTLE_PET_COUNT);
@@ -3212,12 +3212,12 @@ bool Player::IsNeedCastPassiveSpellAtLearn(SpellInfo const* spellInfo) const
bool Player::IsCurrentSpecMasterySpell(SpellInfo const* spellInfo) const
{
if (ChrSpecializationEntry const* chrSpec = sChrSpecializationStore.LookupEntry(GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID)))
- return spellInfo->Id == chrSpec->MasterySpellID[0] || spellInfo->Id == chrSpec->MasterySpellID[1];
+ return spellInfo->Id == uint32(chrSpec->MasterySpellID[0]) || spellInfo->Id == uint32(chrSpec->MasterySpellID[1]);
return false;
}
-void Player::LearnSpell(uint32 spell_id, bool dependent, uint32 fromSkill /*= 0*/)
+void Player::LearnSpell(uint32 spell_id, bool dependent, int32 fromSkill /*= 0*/)
{
PlayerSpellMap::iterator itr = m_spells.find(spell_id);
@@ -4559,7 +4559,7 @@ uint32 Player::DurabilityRepair(uint16 pos, bool cost, float discountMod, bool g
else if (ditemProto->GetClass() == ITEM_CLASS_ARMOR)
dmultiplier = dcost->ArmorSubClassCost[ditemProto->GetSubClass()];
- uint32 costs = uint32(LostDurability * dmultiplier * double(dQualitymodEntry->QualityMod) * item->GetRepairCostMultiplier());
+ uint32 costs = uint32(LostDurability * dmultiplier * double(dQualitymodEntry->Data) * item->GetRepairCostMultiplier());
costs = uint32(costs * discountMod * sWorld->getRate(RATE_REPAIRCOST));
@@ -5511,7 +5511,7 @@ void Player::SetSkill(uint16 id, uint16 step, uint16 newVal, uint16 maxVal)
for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j)
if (SkillLineAbilityEntry const* pAbility = sSkillLineAbilityStore.LookupEntry(j))
if (pAbility->SkillLine == id)
- RemoveSpell(sSpellMgr->GetFirstSpellInChain(pAbility->SpellID));
+ RemoveSpell(sSpellMgr->GetFirstSpellInChain(pAbility->Spell));
// Clear profession lines
if (GetUInt32Value(PLAYER_PROFESSION_SKILL_LINE_1) == id)
@@ -5789,7 +5789,7 @@ bool Player::IsActionButtonDataValid(uint8 button, uint32 action, uint8 type) co
return false;
}
- if (!HasSpell(mount->SpellId))
+ if (!HasSpell(mount->SourceSpellID))
{
TC_LOG_ERROR("entities.player", "Player::IsActionButtonDataValid: Mount action %u not added into button %u for player %s (%s): Player does not know this mount",
action, button, GetName().c_str(), GetGUID().ToString().c_str());
@@ -6004,12 +6004,12 @@ uint32 Player::TeamForRace(uint8 race)
{
if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race))
{
- switch (rEntry->TeamID)
+ switch (rEntry->Alliance)
{
case 0: return ALLIANCE;
case 1: return HORDE;
}
- TC_LOG_ERROR("entities.player", "Race (%u) has wrong teamid (%u) in DBC: wrong DBC files?", uint32(race), rEntry->TeamID);
+ TC_LOG_ERROR("entities.player", "Race (%u) has wrong teamid (%u) in DBC: wrong DBC files?", uint32(race), rEntry->Alliance);
}
else
TC_LOG_ERROR("entities.player", "Race (%u) not found in DBC: wrong DBC files?", uint32(race));
@@ -6020,7 +6020,7 @@ uint32 Player::TeamForRace(uint8 race)
TeamId Player::TeamIdForRace(uint8 race)
{
if (ChrRacesEntry const* rEntry = sChrRacesStore.LookupEntry(race))
- return TeamId(rEntry->TeamID);
+ return TeamId(rEntry->Alliance);
TC_LOG_ERROR("entities.player", "Race (%u) not found in DBC: wrong DBC files?", race);
return TEAM_NEUTRAL;
@@ -6196,7 +6196,7 @@ void Player::RewardReputation(Quest const* quest)
if (QuestFactionRewardEntry const* questFactionRewEntry = sQuestFactionRewardStore.LookupEntry(row))
{
uint32 field = abs(quest->RewardFactionValue[i]);
- rep = questFactionRewEntry->QuestRewFactionValue[field];
+ rep = questFactionRewEntry->Difficulty[field];
}
}
@@ -6428,13 +6428,13 @@ void Player::RewardPlayerWithRewardPack(RewardPackEntry const* rewardPackEntry)
if (!rewardPackEntry)
return;
- if (CharTitlesEntry const* charTitlesEntry = sCharTitlesStore.LookupEntry(rewardPackEntry->TitleID))
+ if (CharTitlesEntry const* charTitlesEntry = sCharTitlesStore.LookupEntry(rewardPackEntry->CharTitleID))
SetTitle(charTitlesEntry);
ModifyMoney(rewardPackEntry->Money);
if (std::vector<RewardPackXItemEntry const*> const* rewardPackXItems = sDB2Manager.GetRewardPackItemsByRewardID(rewardPackEntry->ID))
for (RewardPackXItemEntry const* rewardPackXItem : *rewardPackXItems)
- AddItem(rewardPackXItem->ItemID, rewardPackXItem->Amount);
+ AddItem(rewardPackXItem->ItemID, rewardPackXItem->ItemQuantity);
}
void Player::AddHonorXP(uint32 xp)
@@ -7667,7 +7667,7 @@ void Player::ApplyItemEquipSpell(Item* item, bool apply, bool formChange /*= fal
ItemEffectEntry const* effectData = proto->Effects[i];
// wrong triggering type
- if (apply && effectData->Trigger != ITEM_SPELLTRIGGER_ON_EQUIP)
+ if (apply && effectData->TriggerType != ITEM_SPELLTRIGGER_ON_EQUIP)
continue;
// check if it is valid spell
@@ -7781,7 +7781,7 @@ void Player::ApplyArtifactPowers(Item* item, bool apply)
}
if (ArtifactAppearanceEntry const* artifactAppearance = sArtifactAppearanceStore.LookupEntry(item->GetModifier(ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID)))
- if (artifactAppearance->ShapeshiftDisplayID && GetShapeshiftForm() == ShapeshiftForm(artifactAppearance->ModifiesShapeshiftFormDisplay))
+ if (artifactAppearance->OverrideShapeshiftDisplayID && GetShapeshiftForm() == ShapeshiftForm(artifactAppearance->OverrideShapeshiftFormID))
RestoreDisplayId();
}
@@ -7804,7 +7804,7 @@ void Player::ApplyArtifactPowerRank(Item* artifact, ArtifactPowerRankEntry const
continue;
if (powerAura->HasEffect(auraEffect->GetEffIndex()))
- auraEffect->ChangeAmount(artifactPowerRank->Value ? artifactPowerRank->Value : auraEffect->GetSpellEffectInfo()->CalcValue());
+ auraEffect->ChangeAmount(artifactPowerRank->AuraPointsOverride ? artifactPowerRank->AuraPointsOverride : auraEffect->GetSpellEffectInfo()->CalcValue());
}
}
else
@@ -7813,10 +7813,10 @@ void Player::ApplyArtifactPowerRank(Item* artifact, ArtifactPowerRankEntry const
else if (apply)
{
CustomSpellValues csv;
- if (artifactPowerRank->Value)
+ if (artifactPowerRank->AuraPointsOverride)
for (uint32 i = 0; i < MAX_SPELL_EFFECTS; ++i)
if (spellInfo->GetEffect(i))
- csv.AddSpellMod(SpellValueMod(SPELLVALUE_BASE_POINT0 + i), artifactPowerRank->Value);
+ csv.AddSpellMod(SpellValueMod(SPELLVALUE_BASE_POINT0 + i), artifactPowerRank->AuraPointsOverride);
CastCustomSpell(artifactPowerRank->SpellID, csv, this, TRIGGERED_FULL_MASK, artifact);
}
@@ -7905,7 +7905,7 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT
ItemEffectEntry const* effectData = proto->Effects[i];
// wrong triggering type
- if (effectData->Trigger != ITEM_SPELLTRIGGER_CHANCE_ON_HIT)
+ if (effectData->TriggerType != ITEM_SPELLTRIGGER_CHANCE_ON_HIT)
continue;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(effectData->SpellID);
@@ -7963,11 +7963,11 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT
continue;
}
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(pEnchant->EffectSpellID[s]);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(pEnchant->EffectArg[s]);
if (!spellInfo)
{
TC_LOG_ERROR("entities.player.items", "Player::CastItemCombatSpell: Player '%s' (%s) cast unknown spell (EnchantID: %u, SpellID: %i), ignoring",
- GetName().c_str(), GetGUID().ToString().c_str(), enchant_id, pEnchant->EffectSpellID[s]);
+ GetName().c_str(), GetGUID().ToString().c_str(), enchant_id, pEnchant->EffectArg[s]);
continue;
}
@@ -7982,7 +7982,7 @@ void Player::CastItemCombatSpell(DamageInfo const& damageInfo, Item* item, ItemT
}
// Apply spell mods
- ApplySpellMod(pEnchant->EffectSpellID[s], SPELLMOD_CHANCE_OF_SUCCESS, chance);
+ ApplySpellMod(pEnchant->EffectArg[s], SPELLMOD_CHANCE_OF_SUCCESS, chance);
// Shiv has 100% chance to apply the poison
if (FindCurrentSpellBySpellId(5938) && e_slot == TEMP_ENCHANTMENT_SLOT)
@@ -8039,7 +8039,7 @@ void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, Objec
ItemEffectEntry const* effectData = proto->Effects[i];
// wrong triggering type
- if (effectData->Trigger != ITEM_SPELLTRIGGER_ON_USE)
+ if (effectData->TriggerType != ITEM_SPELLTRIGGER_ON_USE)
continue;
SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(effectData->SpellID);
@@ -8076,10 +8076,10 @@ void Player::CastItemUseSpell(Item* item, SpellCastTargets const& targets, Objec
if (pEnchant->Effect[s] != ITEM_ENCHANTMENT_TYPE_USE_SPELL)
continue;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(pEnchant->EffectSpellID[s]);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(pEnchant->EffectArg[s]);
if (!spellInfo)
{
- TC_LOG_ERROR("entities.player", "Player::CastItemUseSpell: Enchant %i, cast unknown spell %i", enchant_id, pEnchant->EffectSpellID[s]);
+ TC_LOG_ERROR("entities.player", "Player::CastItemUseSpell: Enchant %i, cast unknown spell %i", enchant_id, pEnchant->EffectArg[s]);
continue;
}
@@ -11233,11 +11233,11 @@ InventoryResult Player::CanEquipChildItem(Item* parentItem) const
if (!childEquipement)
return EQUIP_ERR_OK;
- Item* dstItem = GetItemByPos(INVENTORY_SLOT_BAG_0, childEquipement->AltEquipmentSlot);
+ Item* dstItem = GetItemByPos(INVENTORY_SLOT_BAG_0, childEquipement->ChildItemEquipSlot);
if (!dstItem)
return EQUIP_ERR_OK;
- uint16 childDest = (INVENTORY_SLOT_BAG_0 << 8) | childEquipement->AltEquipmentSlot;
+ uint16 childDest = (INVENTORY_SLOT_BAG_0 << 8) | childEquipement->ChildItemEquipSlot;
InventoryResult msg = CanUnequipItem(childDest, !childItem->IsBag());
if (msg != EQUIP_ERR_OK)
return msg;
@@ -11595,7 +11595,7 @@ InventoryResult Player::CanUseItem(ItemTemplate const* proto) const
return EQUIP_ERR_INTERNAL_BAG_ERROR;
if (ArtifactEntry const* artifact = sArtifactStore.LookupEntry(proto->GetArtifactID()))
- if (artifact->SpecID != GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID))
+ if (artifact->ChrSpecializationID != GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID))
return EQUIP_ERR_CANT_USE_ITEM;
return EQUIP_ERR_OK;
@@ -11720,7 +11720,7 @@ Item* Player::StoreNewItem(ItemPosCountVec const& pos, uint32 itemId, bool updat
if (ItemChildEquipmentEntry const* childItemEntry = sDB2Manager.GetItemChildEquipment(itemId))
{
- if (ItemTemplate const* childTemplate = sObjectMgr->GetItemTemplate(childItemEntry->AltItemID))
+ if (ItemTemplate const* childTemplate = sObjectMgr->GetItemTemplate(childItemEntry->ChildItemID))
{
ItemPosCountVec childDest;
CanStoreItem_InInventorySlots(CHILD_EQUIPMENT_SLOT_START, CHILD_EQUIPMENT_SLOT_END, childDest, childTemplate, count, false, nullptr, NULL_BAG, NULL_SLOT);
@@ -11822,7 +11822,7 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool
const ItemTemplate* proto = pItem->GetTemplate();
for (uint8 i = 0; i < proto->Effects.size(); ++i)
- if (proto->Effects[i]->Trigger == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
+ if (proto->Effects[i]->TriggerType == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
if (bag == INVENTORY_SLOT_BAG_0 || (bag >= INVENTORY_SLOT_BAG_START && bag < INVENTORY_SLOT_BAG_END))
if (!HasAura(proto->Effects[i]->SpellID))
CastSpell(this, proto->Effects[i]->SpellID, true, pItem);
@@ -11865,7 +11865,7 @@ Item* Player::_StoreItem(uint16 pos, Item* pItem, uint32 count, bool clone, bool
const ItemTemplate* proto = pItem2->GetTemplate();
for (uint8 i = 0; i < proto->Effects.size(); ++i)
- if (proto->Effects[i]->Trigger == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
+ if (proto->Effects[i]->TriggerType == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
if (bag == INVENTORY_SLOT_BAG_0 || (bag >= INVENTORY_SLOT_BAG_START && bag < INVENTORY_SLOT_BAG_END))
if (!HasAura(proto->Effects[i]->SpellID))
CastSpell(this, proto->Effects[i]->SpellID, true, pItem2);
@@ -12003,7 +12003,7 @@ void Player::EquipChildItem(uint8 parentBag, uint8 parentSlot, Item* parentItem)
{
if (Item* childItem = GetChildItemByGuid(parentItem->GetChildItem()))
{
- uint16 childDest = (INVENTORY_SLOT_BAG_0 << 8) | itemChildEquipment->AltEquipmentSlot;
+ uint16 childDest = (INVENTORY_SLOT_BAG_0 << 8) | itemChildEquipment->ChildItemEquipSlot;
if (childItem->GetPos() != childDest)
{
Item* dstItem = GetItemByPos(childDest);
@@ -12329,7 +12329,7 @@ void Player::DestroyItem(uint8 bag, uint8 slot, bool update)
const ItemTemplate* proto = pItem->GetTemplate();
for (uint8 i = 0; i < proto->Effects.size(); ++i)
- if (proto->Effects[i]->Trigger == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
+ if (proto->Effects[i]->TriggerType == ITEM_SPELLTRIGGER_ON_OBTAIN) // On obtain trigger
RemoveAurasDueToSpell(proto->Effects[i]->SpellID);
ItemRemovedQuestCheck(pItem->GetEntry(), pItem->GetCount());
@@ -13724,7 +13724,7 @@ void Player::ApplyEnchantment(Item* item, EnchantmentSlot slot, bool apply, bool
{
uint32 enchant_display_type = pEnchant->Effect[s];
uint32 enchant_amount = pEnchant->EffectPointsMin[s];
- uint32 enchant_spell_id = pEnchant->EffectSpellID[s];
+ uint32 enchant_spell_id = pEnchant->EffectArg[s];
switch (enchant_display_type)
{
@@ -14952,13 +14952,13 @@ bool Player::CanRewardQuest(Quest const* quest, uint32 reward, bool msg)
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (questPackageItem->ItemID != reward)
+ if (questPackageItem->ItemID != int32(reward))
continue;
if (CanSelectQuestPackageItem(questPackageItem))
{
hasFilteredQuestPackageReward = true;
- InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemCount);
+ InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemQuantity);
if (res != EQUIP_ERR_OK)
{
SendEquipError(res, nullptr, nullptr, questPackageItem->ItemID);
@@ -14974,10 +14974,10 @@ bool Player::CanRewardQuest(Quest const* quest, uint32 reward, bool msg)
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (questPackageItem->ItemID != reward)
+ if (questPackageItem->ItemID != int32(reward))
continue;
- InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemCount);
+ InventoryResult res = CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemQuantity);
if (res != EQUIP_ERR_OK)
{
SendEquipError(res, nullptr, nullptr, questPackageItem->ItemID);
@@ -15154,7 +15154,7 @@ bool Player::CanSelectQuestPackageItem(QuestPackageItemEntry const* questPackage
(rewardProto->GetFlags2() & ITEM_FLAG2_FACTION_HORDE && GetTeam() != HORDE))
return false;
- switch (questPackageItem->FilterType)
+ switch (questPackageItem->DisplayType)
{
case QUEST_PACKAGE_FILTER_LOOT_SPECIALIZATION:
return rewardProto->IsUsableByLootSpecialization(this, true);
@@ -15176,17 +15176,17 @@ void Player::RewardQuestPackage(uint32 questPackageId, uint32 onlyItemId /*= 0*/
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (onlyItemId && questPackageItem->ItemID != onlyItemId)
+ if (onlyItemId && questPackageItem->ItemID != int32(onlyItemId))
continue;
if (CanSelectQuestPackageItem(questPackageItem))
{
hasFilteredQuestPackageReward = true;
ItemPosCountVec dest;
- if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemCount) == EQUIP_ERR_OK)
+ if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemQuantity) == EQUIP_ERR_OK)
{
Item* item = StoreNewItem(dest, questPackageItem->ItemID, true, GenerateItemRandomPropertyId(questPackageItem->ItemID));
- SendNewItem(item, questPackageItem->ItemCount, true, false);
+ SendNewItem(item, questPackageItem->ItemQuantity, true, false);
}
}
}
@@ -15198,14 +15198,14 @@ void Player::RewardQuestPackage(uint32 questPackageId, uint32 onlyItemId /*= 0*/
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (onlyItemId && questPackageItem->ItemID != onlyItemId)
+ if (onlyItemId && questPackageItem->ItemID != int32(onlyItemId))
continue;
ItemPosCountVec dest;
- if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemCount) == EQUIP_ERR_OK)
+ if (CanStoreNewItem(NULL_BAG, NULL_SLOT, dest, questPackageItem->ItemID, questPackageItem->ItemQuantity) == EQUIP_ERR_OK)
{
Item* item = StoreNewItem(dest, questPackageItem->ItemID, true, GenerateItemRandomPropertyId(questPackageItem->ItemID));
- SendNewItem(item, questPackageItem->ItemCount, true, false);
+ SendNewItem(item, questPackageItem->ItemQuantity, true, false);
}
}
}
@@ -17805,7 +17805,7 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
else // has start node, teleport to it
{
TC_LOG_ERROR("entities.player", "Player::LoadFromDB: Player (%s) has too short taxi destination list, teleport to original node.", GetGUID().ToString().c_str());
- mapId = nodeEntry->MapID;
+ mapId = nodeEntry->ContinentID;
Relocate(nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z, 0.0f);
}
m_taxi.ClearTaxiDestinations();
@@ -17815,10 +17815,10 @@ bool Player::LoadFromDB(ObjectGuid guid, SQLQueryHolder *holder)
{
// save source node as recall coord to prevent recall and fall from sky
TaxiNodesEntry const* nodeEntry = sTaxiNodesStore.LookupEntry(node_id);
- if (nodeEntry && nodeEntry->MapID == GetMapId())
+ if (nodeEntry && nodeEntry->ContinentID == GetMapId())
{
ASSERT(nodeEntry); // checked in m_taxi.LoadTaxiDestinationsFromString
- mapId = nodeEntry->MapID;
+ mapId = nodeEntry->ContinentID;
Relocate(nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z, 0.0f);
}
@@ -18519,8 +18519,8 @@ void Player::_LoadInventory(PreparedQueryResult result, PreparedQueryResult arti
artifactPowerData.PurchasedRank = fields[4].GetUInt8();
if (ArtifactPowerEntry const* artifactPower = sArtifactPowerStore.LookupEntry(artifactPowerData.ArtifactPowerId))
{
- if (artifactPowerData.PurchasedRank > artifactPower->MaxRank)
- artifactPowerData.PurchasedRank = artifactPower->MaxRank;
+ if (artifactPowerData.PurchasedRank > artifactPower->MaxPurchasableRank)
+ artifactPowerData.PurchasedRank = artifactPower->MaxPurchasableRank;
artifactPowerData.CurrentRankWithBonus = (artifactPower->Flags & ARTIFACT_POWER_FLAG_FIRST) ? 1 : 0;
@@ -19652,7 +19652,7 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report
{
if (missingQuest && !ar->questFailedText.empty())
ChatHandler(GetSession()).PSendSysMessage("%s", ar->questFailedText.c_str());
- else if (mapDiff->Message_lang->Str[sWorld->GetDefaultDbcLocale()][0] != '\0') // if (missingAchievement) covered by this case
+ else if (mapDiff->Message->Str[sWorld->GetDefaultDbcLocale()][0] != '\0') // if (missingAchievement) covered by this case
SendTransferAborted(target_map, TRANSFER_ABORT_DIFFICULTY, target_difficulty);
else if (missingItem)
GetSession()->SendNotification(GetSession()->GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), LevelMin, ASSERT_NOTNULL(sObjectMgr->GetItemTemplate(missingItem))->GetName(GetSession()->GetSessionDbcLocale()));
@@ -22076,7 +22076,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
// check node starting pos data set case if provided
if (node->Pos.X != 0.0f || node->Pos.Y != 0.0f || node->Pos.Z != 0.0f)
{
- if (node->MapID != GetMapId() || !IsInDist(node->Pos.X, node->Pos.Y, node->Pos.Z, 2 * INTERACTION_DISTANCE))
+ if (node->ContinentID != GetMapId() || !IsInDist(node->Pos.X, node->Pos.Y, node->Pos.Z, 2 * INTERACTION_DISTANCE))
{
GetSession()->SendActivateTaxiReply(ERR_TAXITOOFARAWAY);
return false;
@@ -22191,7 +22191,7 @@ bool Player::ActivateTaxiPathTo(std::vector<uint32> const& nodes, Creature* npc
m_taxi.ClearTaxiDestinations();
ModifyMoney(-int64(totalcost));
UpdateCriteria(CRITERIA_TYPE_GOLD_SPENT_FOR_TRAVELLING, totalcost);
- TeleportTo(lastPathNode->MapID, lastPathNode->Pos.X, lastPathNode->Pos.Y, lastPathNode->Pos.Z, GetOrientation());
+ TeleportTo(lastPathNode->ContinentID, lastPathNode->Pos.X, lastPathNode->Pos.Y, lastPathNode->Pos.Z, GetOrientation());
return false;
}
else
@@ -22213,8 +22213,8 @@ bool Player::ActivateTaxiPathTo(uint32 taxi_path_id, uint32 spellid /*= 0*/)
std::vector<uint32> nodes;
nodes.resize(2);
- nodes[0] = entry->From;
- nodes[1] = entry->To;
+ nodes[0] = entry->FromTaxiNode;
+ nodes[1] = entry->ToTaxiNode;
return ActivateTaxiPathTo(nodes, nullptr, spellid);
}
@@ -22255,7 +22255,7 @@ void Player::ContinueTaxiFlight() const
TaxiPathNodeEntry const* prevNode = nodeList[i-1];
// skip nodes at another map
- if (node->MapID != GetMapId())
+ if (node->ContinentID != GetMapId())
continue;
distPrev = distNext;
@@ -22348,17 +22348,17 @@ inline bool Player::_StoreOrEquipNewItem(uint32 vendorslot, uint32 item, uint8 c
ASSERT(iece);
for (int i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (iece->RequiredItem[i])
- DestroyItemCount(iece->RequiredItem[i], iece->RequiredItemCount[i] * stacks, true);
+ if (iece->ItemID[i])
+ DestroyItemCount(iece->ItemID[i], iece->ItemCount[i] * stacks, true);
}
for (int i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
continue;
- if (iece->RequiredCurrency[i])
- ModifyCurrency(iece->RequiredCurrency[i], -int32(iece->RequiredCurrencyCount[i] * stacks), true, true);
+ if (iece->CurrencyID[i])
+ ModifyCurrency(iece->CurrencyID[i], -int32(iece->CurrencyCount[i] * stacks), true, true);
}
}
@@ -22460,7 +22460,7 @@ bool Player::BuyCurrencyFromVendorSlot(ObjectGuid vendorGuid, uint32 vendorSlot,
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i)
{
- if (iece->RequiredItem[i] && !HasItemCount(iece->RequiredItem[i], (iece->RequiredItemCount[i] * stacks)))
+ if (iece->ItemID[i] && !HasItemCount(iece->ItemID[i], (iece->ItemCount[i] * stacks)))
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr);
return false;
@@ -22469,23 +22469,23 @@ bool Player::BuyCurrencyFromVendorSlot(ObjectGuid vendorGuid, uint32 vendorSlot,
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (!iece->RequiredCurrency[i])
+ if (!iece->CurrencyID[i])
continue;
- CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(iece->RequiredCurrency[i]);
+ CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(iece->CurrencyID[i]);
if (!entry)
{
SendBuyError(BUY_ERR_CANT_FIND_ITEM, creature, currency, 0); // Find correct error
return false;
}
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
{
// Not implemented
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr); // Find correct error
return false;
}
- else if (!HasCurrency(iece->RequiredCurrency[i], (iece->RequiredCurrencyCount[i] * stacks)))
+ else if (!HasCurrency(iece->CurrencyID[i], (iece->CurrencyCount[i] * stacks)))
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr); // Find correct error
return false;
@@ -22493,20 +22493,20 @@ bool Player::BuyCurrencyFromVendorSlot(ObjectGuid vendorGuid, uint32 vendorSlot,
}
// check for personal arena rating requirement
- if (GetMaxPersonalArenaRatingRequirement(iece->RequiredArenaSlot) < iece->RequiredPersonalArenaRating)
+ if (GetMaxPersonalArenaRatingRequirement(iece->ArenaBracket) < iece->RequiredArenaRating)
{
// probably not the proper equip err
SendEquipError(EQUIP_ERR_CANT_EQUIP_RANK, nullptr, nullptr);
return false;
}
- if (iece->RequiredFactionId && uint32(GetReputationRank(iece->RequiredFactionId)) < iece->RequiredFactionStanding)
+ if (iece->MinFactionID && uint32(GetReputationRank(iece->MinFactionID)) < iece->RequiredAchievement)
{
SendBuyError(BUY_ERR_REPUTATION_REQUIRE, creature, currency, 0);
return false;
}
- if (iece->RequirementFlags & ITEM_EXT_COST_FLAG_REQUIRE_GUILD && !GetGuildId())
+ if (iece->Flags & ITEM_EXT_COST_FLAG_REQUIRE_GUILD && !GetGuildId())
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr); // Find correct error
return false;
@@ -22529,21 +22529,21 @@ bool Player::BuyCurrencyFromVendorSlot(ObjectGuid vendorGuid, uint32 vendorSlot,
{
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i)
{
- if (!iece->RequiredItem[i])
+ if (!iece->ItemID[i])
continue;
- DestroyItemCount(iece->RequiredItem[i], iece->RequiredItemCount[i] * stacks, true);
+ DestroyItemCount(iece->ItemID[i], iece->ItemCount[i] * stacks, true);
}
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (!iece->RequiredCurrency[i])
+ if (!iece->CurrencyID[i])
continue;
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
continue;
- ModifyCurrency(iece->RequiredCurrency[i], -int32(iece->RequiredCurrencyCount[i]) * stacks, false, true);
+ ModifyCurrency(iece->CurrencyID[i], -int32(iece->CurrencyCount[i]) * stacks, false, true);
}
}
@@ -22661,7 +22661,7 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i)
{
- if (iece->RequiredItem[i] && !HasItemCount(iece->RequiredItem[i], iece->RequiredItemCount[i] * stacks))
+ if (iece->ItemID[i] && !HasItemCount(iece->ItemID[i], iece->ItemCount[i] * stacks))
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr);
return false;
@@ -22670,22 +22670,22 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (!iece->RequiredCurrency[i])
+ if (!iece->CurrencyID[i])
continue;
- CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(iece->RequiredCurrency[i]);
+ CurrencyTypesEntry const* entry = sCurrencyTypesStore.LookupEntry(iece->CurrencyID[i]);
if (!entry)
{
SendBuyError(BUY_ERR_CANT_FIND_ITEM, creature, item, 0);
return false;
}
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr); // Find correct error
return false;
}
- else if (!HasCurrency(iece->RequiredCurrency[i], iece->RequiredCurrencyCount[i] * stacks))
+ else if (!HasCurrency(iece->CurrencyID[i], iece->CurrencyCount[i] * stacks))
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr);
return false;
@@ -22693,20 +22693,20 @@ bool Player::BuyItemFromVendorSlot(ObjectGuid vendorguid, uint32 vendorslot, uin
}
// check for personal arena rating requirement
- if (GetMaxPersonalArenaRatingRequirement(iece->RequiredArenaSlot) < iece->RequiredPersonalArenaRating)
+ if (GetMaxPersonalArenaRatingRequirement(iece->ArenaBracket) < iece->RequiredArenaRating)
{
// probably not the proper equip err
SendEquipError(EQUIP_ERR_CANT_EQUIP_RANK, nullptr, nullptr);
return false;
}
- if (iece->RequiredFactionId && uint32(GetReputationRank(iece->RequiredFactionId)) < iece->RequiredFactionStanding)
+ if (iece->MinFactionID && uint32(GetReputationRank(iece->MinFactionID)) < iece->MinReputation)
{
SendBuyError(BUY_ERR_REPUTATION_REQUIRE, creature, item, 0);
return false;
}
- if (iece->RequirementFlags & ITEM_EXT_COST_FLAG_REQUIRE_GUILD && !GetGuildId())
+ if (iece->Flags & ITEM_EXT_COST_FLAG_REQUIRE_GUILD && !GetGuildId())
{
SendEquipError(EQUIP_ERR_VENDOR_MISSING_TURNINS, nullptr, nullptr); // Find correct error
return false;
@@ -22898,7 +22898,7 @@ void Player::UpdatePotionCooldown(Spell* spell)
// spell/item pair let set proper cooldown (except non-existing charged spell cooldown spellmods for potions)
if (ItemTemplate const* proto = sObjectMgr->GetItemTemplate(m_lastPotionId))
for (uint8 idx = 0; idx < proto->Effects.size(); ++idx)
- if (proto->Effects[idx]->Trigger == ITEM_SPELLTRIGGER_ON_USE)
+ if (proto->Effects[idx]->TriggerType == ITEM_SPELLTRIGGER_ON_USE)
if (SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(proto->Effects[idx]->SpellID))
GetSpellHistory()->SendCooldownEvent(spellInfo, m_lastPotionId);
}
@@ -22964,13 +22964,13 @@ bool Player::EnchantmentFitsRequirements(uint32 enchantmentcondition, int8 slot)
for (uint8 i = 0; i < 5; i++)
{
- if (!Condition->LTOperandType[i])
+ if (!Condition->LtOperandType[i])
continue;
- uint32 _cur_gem = curcount[Condition->LTOperandType[i] - 1];
+ uint32 _cur_gem = curcount[Condition->LtOperandType[i] - 1];
// if have <CompareColor> use them as count, else use <value> from Condition
- uint32 _cmp_gem = Condition->RTOperandType[i] ? curcount[Condition->RTOperandType[i] - 1]: Condition->RTOperand[i];
+ uint32 _cmp_gem = Condition->RtOperandType[i] ? curcount[Condition->RtOperandType[i] - 1]: Condition->RtOperand[i];
switch (Condition->Operator[i])
{
@@ -23850,7 +23850,7 @@ void Player::ApplyEquipCooldown(Item* pItem)
ItemEffectEntry const* effectData = proto->Effects[i];
// apply proc cooldown to equip auras if we have any
- if (effectData->Trigger == ITEM_SPELLTRIGGER_ON_EQUIP)
+ if (effectData->TriggerType == ITEM_SPELLTRIGGER_ON_EQUIP)
{
SpellProcEntry const* procEntry = sSpellMgr->GetSpellProcEntry(effectData->SpellID);
if (!procEntry)
@@ -23862,7 +23862,7 @@ void Player::ApplyEquipCooldown(Item* pItem)
}
// wrong triggering type
- if (effectData->Trigger != ITEM_SPELLTRIGGER_ON_USE)
+ if (effectData->TriggerType != ITEM_SPELLTRIGGER_ON_USE)
continue;
// Don't replace longer cooldowns by equip cooldown if we have any.
@@ -24087,10 +24087,10 @@ void Player::LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue)
for (uint32 j = 0; j < sSkillLineAbilityStore.GetNumRows(); ++j)
{
SkillLineAbilityEntry const* ability = sSkillLineAbilityStore.LookupEntry(j);
- if (!ability || ability->SkillLine != skillId)
+ if (!ability || ability->SkillLine != int32(skillId))
continue;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(ability->SpellID);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(ability->Spell);
if (!spellInfo)
continue;
@@ -24114,13 +24114,13 @@ void Player::LearnSkillRewardedSpells(uint32 skillId, uint32 skillValue)
continue;
// need unlearn spell
- if (skillValue < ability->MinSkillLineRank && ability->AcquireMethod == SKILL_LINE_ABILITY_LEARNED_ON_SKILL_VALUE)
- RemoveSpell(ability->SpellID);
+ if (int32(skillValue) < ability->MinSkillLineRank && ability->AcquireMethod == SKILL_LINE_ABILITY_LEARNED_ON_SKILL_VALUE)
+ RemoveSpell(ability->Spell);
// need learn
else if (!IsInWorld())
- AddSpell(ability->SpellID, true, true, true, false, false, ability->SkillLine);
+ AddSpell(ability->Spell, true, true, true, false, false, ability->SkillLine);
else
- LearnSpell(ability->SpellID, true, ability->SkillLine);
+ LearnSpell(ability->Spell, true, ability->SkillLine);
}
}
@@ -27133,17 +27133,17 @@ void Player::SendRefundInfo(Item* item)
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i) // item cost data
{
- setItemPurchaseData.Contents.Items[i].ItemCount = iece->RequiredItemCount[i];
- setItemPurchaseData.Contents.Items[i].ItemID = iece->RequiredItem[i];
+ setItemPurchaseData.Contents.Items[i].ItemCount = iece->ItemCount[i];
+ setItemPurchaseData.Contents.Items[i].ItemID = iece->ItemID[i];
}
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i) // currency cost data
{
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
continue;
- setItemPurchaseData.Contents.Currencies[i].CurrencyCount = iece->RequiredCurrencyCount[i];
- setItemPurchaseData.Contents.Currencies[i].CurrencyID = iece->RequiredCurrency[i];
+ setItemPurchaseData.Contents.Currencies[i].CurrencyCount = iece->CurrencyCount[i];
+ setItemPurchaseData.Contents.Currencies[i].CurrencyID = iece->CurrencyID[i];
}
GetSession()->SendPacket(setItemPurchaseData.Write());
@@ -27183,17 +27183,17 @@ void Player::SendItemRefundResult(Item* item, ItemExtendedCostEntry const* iece,
itemPurchaseRefundResult.Contents->Money = item->GetPaidMoney();
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i) // item cost data
{
- itemPurchaseRefundResult.Contents->Items[i].ItemCount = iece->RequiredItemCount[i];
- itemPurchaseRefundResult.Contents->Items[i].ItemID = iece->RequiredItem[i];
+ itemPurchaseRefundResult.Contents->Items[i].ItemCount = iece->ItemCount[i];
+ itemPurchaseRefundResult.Contents->Items[i].ItemID = iece->ItemID[i];
}
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i) // currency cost data
{
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
continue;
- itemPurchaseRefundResult.Contents->Currencies[i].CurrencyCount = iece->RequiredCurrencyCount[i];
- itemPurchaseRefundResult.Contents->Currencies[i].CurrencyID = iece->RequiredCurrency[i];
+ itemPurchaseRefundResult.Contents->Currencies[i].CurrencyCount = iece->CurrencyCount[i];
+ itemPurchaseRefundResult.Contents->Currencies[i].CurrencyID = iece->CurrencyID[i];
}
}
@@ -27232,8 +27232,8 @@ void Player::RefundItem(Item* item)
bool store_error = false;
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i)
{
- uint32 count = iece->RequiredItemCount[i];
- uint32 itemid = iece->RequiredItem[i];
+ uint32 count = iece->ItemCount[i];
+ uint32 itemid = iece->ItemID[i];
if (count && itemid)
{
@@ -27270,8 +27270,8 @@ void Player::RefundItem(Item* item)
// Grant back extendedcost items
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_ITEMS; ++i)
{
- uint32 count = iece->RequiredItemCount[i];
- uint32 itemid = iece->RequiredItem[i];
+ uint32 count = iece->ItemCount[i];
+ uint32 itemid = iece->ItemID[i];
if (count && itemid)
{
ItemPosCountVec dest;
@@ -27285,11 +27285,11 @@ void Player::RefundItem(Item* item)
// Grant back currencies
for (uint8 i = 0; i < MAX_ITEM_EXT_COST_CURRENCIES; ++i)
{
- if (iece->RequirementFlags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
+ if (iece->Flags & (ITEM_EXT_COST_CURRENCY_REQ_IS_SEASON_EARNED_1 << i))
continue;
- uint32 count = iece->RequiredCurrencyCount[i];
- uint32 currencyid = iece->RequiredCurrency[i];
+ uint32 count = iece->CurrencyCount[i];
+ uint32 currencyid = iece->CurrencyID[i];
if (count && currencyid)
ModifyCurrency(currencyid, count, true, true);
}
diff --git a/src/server/game/Entities/Player/Player.h b/src/server/game/Entities/Player/Player.h
index 9b60c05df1e..3884a0cbbc8 100644
--- a/src/server/game/Entities/Player/Player.h
+++ b/src/server/game/Entities/Player/Player.h
@@ -1598,8 +1598,8 @@ class TC_GAME_API Player : public Unit, public GridObject<Player>
void SendProficiency(ItemClass itemClass, uint32 itemSubclassMask) const;
void SendKnownSpells();
- bool AddSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading = false, uint32 fromSkill = 0);
- void LearnSpell(uint32 spell_id, bool dependent, uint32 fromSkill = 0);
+ bool AddSpell(uint32 spellId, bool active, bool learning, bool dependent, bool disabled, bool loading = false, int32 fromSkill = 0);
+ void LearnSpell(uint32 spell_id, bool dependent, int32 fromSkill = 0);
void RemoveSpell(uint32 spell_id, bool disabled = false, bool learn_low_rank = true);
void ResetSpells(bool myClassOnly = false);
void LearnCustomSpells();
diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
index 513426f0f74..3ec90f577a7 100644
--- a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
+++ b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
@@ -40,8 +40,8 @@ void TaxiPathGraph::Initialize()
// Initialize here
for (TaxiPathEntry const* path : sTaxiPathStore)
{
- TaxiNodesEntry const* from = sTaxiNodesStore.LookupEntry(path->From);
- TaxiNodesEntry const* to = sTaxiNodesStore.LookupEntry(path->To);
+ TaxiNodesEntry const* from = sTaxiNodesStore.LookupEntry(path->FromTaxiNode);
+ TaxiNodesEntry const* to = sTaxiNodesStore.LookupEntry(path->ToTaxiNode);
if (from && to && from->Flags & (TAXI_NODE_FLAG_ALLIANCE | TAXI_NODE_FLAG_HORDE) && to->Flags & (TAXI_NODE_FLAG_ALLIANCE | TAXI_NODE_FLAG_HORDE))
AddVerticeAndEdgeFromNodeInfo(from, to, path->ID, edges);
}
@@ -67,7 +67,7 @@ uint32 TaxiPathGraph::GetNodeIDFromVertexID(vertex_descriptor vertexID)
TaxiPathGraph::vertex_descriptor TaxiPathGraph::GetVertexIDFromNodeID(TaxiNodesEntry const* node)
{
- return node->LearnableIndex;
+ return node->CharacterBitNumber;
}
std::size_t TaxiPathGraph::GetVertexCount()
@@ -107,8 +107,8 @@ void TaxiPathGraph::AddVerticeAndEdgeFromNodeInfo(TaxiNodesEntry const* from, Ta
uint32 map1, map2;
DBCPosition2D pos1, pos2;
- DB2Manager::DeterminaAlternateMapPosition(nodes[i - 1]->MapID, nodes[i - 1]->Loc.X, nodes[i - 1]->Loc.Y, nodes[i - 1]->Loc.Z, &map1, &pos1);
- DB2Manager::DeterminaAlternateMapPosition(nodes[i]->MapID, nodes[i]->Loc.X, nodes[i]->Loc.Y, nodes[i]->Loc.Z, &map2, &pos2);
+ DB2Manager::DeterminaAlternateMapPosition(nodes[i - 1]->ContinentID, nodes[i - 1]->Loc.X, nodes[i - 1]->Loc.Y, nodes[i - 1]->Loc.Z, &map1, &pos1);
+ DB2Manager::DeterminaAlternateMapPosition(nodes[i]->ContinentID, nodes[i]->Loc.X, nodes[i]->Loc.Y, nodes[i]->Loc.Z, &map2, &pos2);
if (map1 != map2)
continue;
@@ -179,11 +179,11 @@ std::size_t TaxiPathGraph::GetCompleteNodeRoute(TaxiNodesEntry const* from, Taxi
TaxiPathGraph::vertex_descriptor TaxiPathGraph::CreateVertexFromFromNodeInfoIfNeeded(TaxiNodesEntry const* node)
{
//Check if we need a new one or if it may be already created
- if (m_vertices.size() <= node->LearnableIndex)
- m_vertices.resize(node->LearnableIndex + 1);
+ if (m_vertices.size() <= node->CharacterBitNumber)
+ m_vertices.resize(node->CharacterBitNumber + 1);
- m_vertices[node->LearnableIndex] = node;
- return node->LearnableIndex;
+ m_vertices[node->CharacterBitNumber] = node;
+ return node->CharacterBitNumber;
}
uint32 TaxiPathGraph::EdgeCost::EvaluateDistance(Player const* player) const
diff --git a/src/server/game/Entities/Transport/Transport.cpp b/src/server/game/Entities/Transport/Transport.cpp
index 5a687b8387b..a9343c68466 100644
--- a/src/server/game/Entities/Transport/Transport.cpp
+++ b/src/server/game/Entities/Transport/Transport.cpp
@@ -183,13 +183,13 @@ void Transport::Update(uint32 diff)
MoveToNextWaypoint();
- sScriptMgr->OnRelocate(this, _currentFrame->Node->NodeIndex, _currentFrame->Node->MapID, _currentFrame->Node->Loc.X, _currentFrame->Node->Loc.Y, _currentFrame->Node->Loc.Z);
+ sScriptMgr->OnRelocate(this, _currentFrame->Node->NodeIndex, _currentFrame->Node->ContinentID, _currentFrame->Node->Loc.X, _currentFrame->Node->Loc.Y, _currentFrame->Node->Loc.Z);
- TC_LOG_DEBUG("entities.transport", "Transport %u (%s) moved to node %u %u %f %f %f", GetEntry(), GetName().c_str(), _currentFrame->Node->NodeIndex, _currentFrame->Node->MapID, _currentFrame->Node->Loc.X, _currentFrame->Node->Loc.Y, _currentFrame->Node->Loc.Z);
+ TC_LOG_DEBUG("entities.transport", "Transport %u (%s) moved to node %u %u %f %f %f", GetEntry(), GetName().c_str(), _currentFrame->Node->NodeIndex, _currentFrame->Node->ContinentID, _currentFrame->Node->Loc.X, _currentFrame->Node->Loc.Y, _currentFrame->Node->Loc.Z);
// Departure event
if (_currentFrame->IsTeleportFrame())
- if (TeleportTransport(_nextFrame->Node->MapID, _nextFrame->Node->Loc.X, _nextFrame->Node->Loc.Y, _nextFrame->Node->Loc.Z, _nextFrame->InitialOrientation))
+ if (TeleportTransport(_nextFrame->Node->ContinentID, _nextFrame->Node->Loc.X, _nextFrame->Node->Loc.Y, _nextFrame->Node->Loc.Z, _nextFrame->InitialOrientation))
return; // Update more in new map thread
}
@@ -394,7 +394,7 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu
uint32 mask = UNIT_MASK_SUMMON;
if (properties)
{
- switch (properties->Category)
+ switch (properties->Control)
{
case SUMMON_CATEGORY_PET:
mask = UNIT_MASK_GUARDIAN;
@@ -409,7 +409,7 @@ TempSummon* Transport::SummonPassenger(uint32 entry, Position const& pos, TempSu
case SUMMON_CATEGORY_ALLY:
case SUMMON_CATEGORY_UNK:
{
- switch (properties->Type)
+ switch (properties->Title)
{
case SUMMON_TYPE_MINION:
case SUMMON_TYPE_GUARDIAN:
@@ -654,7 +654,7 @@ void Transport::DelayedTeleportTransport()
return;
_delayedTeleport = false;
- Map* newMap = sMapMgr->CreateBaseMap(_nextFrame->Node->MapID);
+ Map* newMap = sMapMgr->CreateBaseMap(_nextFrame->Node->ContinentID);
GetMap()->RemoveFromMap<Transport>(this, false);
SetMap(newMap);
@@ -674,7 +674,7 @@ void Transport::DelayedTeleportTransport()
switch (obj->GetTypeId())
{
case TYPEID_PLAYER:
- if (!obj->ToPlayer()->TeleportTo(_nextFrame->Node->MapID, destX, destY, destZ, destO, TELE_TO_NOT_LEAVE_TRANSPORT))
+ if (!obj->ToPlayer()->TeleportTo(_nextFrame->Node->ContinentID, destX, destY, destZ, destO, TELE_TO_NOT_LEAVE_TRANSPORT))
RemovePassenger(obj);
break;
case TYPEID_DYNAMICOBJECT:
diff --git a/src/server/game/Entities/Unit/StatSystem.cpp b/src/server/game/Entities/Unit/StatSystem.cpp
index fb84f81138e..14037920628 100644
--- a/src/server/game/Entities/Unit/StatSystem.cpp
+++ b/src/server/game/Entities/Unit/StatSystem.cpp
@@ -779,8 +779,8 @@ void Player::UpdateAllRunesRegen()
PowerTypeEntry const* runeEntry = sDB2Manager.GetPowerTypeEntry(POWER_RUNES);
uint32 cooldown = GetRuneBaseCooldown();
- SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenerationPeace);
- SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenerationCombat);
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenPeace);
+ SetStatFloatValue(UNIT_FIELD_POWER_REGEN_INTERRUPTED_FLAT_MODIFIER + runeIndex, float(1 * IN_MILLISECONDS) / float(cooldown) - runeEntry->RegenCombat);
}
void Player::_ApplyAllStatBonuses()
diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp
index 92d63991e56..4a03028ae15 100644
--- a/src/server/game/Entities/Unit/Unit.cpp
+++ b/src/server/game/Entities/Unit/Unit.cpp
@@ -5188,15 +5188,15 @@ void Unit::UpdateDisplayPower()
else if (GetTypeId() == TYPEID_PLAYER)
{
ChrClassesEntry const* cEntry = sChrClassesStore.LookupEntry(getClass());
- if (cEntry && cEntry->PowerType < MAX_POWERS)
- displayPower = Powers(cEntry->PowerType);
+ if (cEntry && cEntry->DisplayPower < MAX_POWERS)
+ displayPower = Powers(cEntry->DisplayPower);
}
else if (GetTypeId() == TYPEID_UNIT)
{
- if (Vehicle* vehicle = GetVehicle())
+ if (Vehicle* vehicle = GetVehicleKit())
{
if (PowerDisplayEntry const* powerDisplay = sPowerDisplayStore.LookupEntry(vehicle->GetVehicleInfo()->PowerDisplayID[0]))
- displayPower = Powers(powerDisplay->PowerType);
+ displayPower = Powers(powerDisplay->ActualType);
else if (getClass() == CLASS_ROGUE)
displayPower = POWER_ENERGY;
}
@@ -5880,7 +5880,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
}
}
- if (minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET)
+ if (minion->m_Properties && minion->m_Properties->Title == SUMMON_TYPE_MINIPET)
{
SetCritterGUID(minion->GetGUID());
if (GetTypeId() == TYPEID_PLAYER)
@@ -5911,7 +5911,7 @@ void Unit::SetMinion(Minion *minion, bool apply)
m_Controlled.erase(minion);
- if (minion->m_Properties && minion->m_Properties->Type == SUMMON_TYPE_MINIPET)
+ if (minion->m_Properties && minion->m_Properties->Title == SUMMON_TYPE_MINIPET)
if (GetCritterGUID() == minion->GetGUID())
SetCritterGUID(ObjectGuid::Empty);
@@ -7589,7 +7589,7 @@ MountCapabilityEntry const* Unit::GetMountCapability(uint32 mountType) const
if (!mountCapability)
continue;
- if (ridingSkill < mountCapability->RequiredRidingSkill)
+ if (ridingSkill < mountCapability->ReqRidingSkill)
continue;
if (!(mountCapability->Flags & MOUNT_CAPABIILTY_FLAG_IGNORE_RESTRICTIONS))
@@ -7623,19 +7623,19 @@ MountCapabilityEntry const* Unit::GetMountCapability(uint32 mountType) const
else if (!(mountCapability->Flags & MOUNT_CAPABILITY_FLAG_FLOAT))
continue;
- if (mountCapability->RequiredMap != -1 &&
- int32(GetMapId()) != mountCapability->RequiredMap &&
- GetMap()->GetEntry()->CosmeticParentMapID != mountCapability->RequiredMap &&
- GetMap()->GetEntry()->ParentMapID != mountCapability->RequiredMap)
+ if (mountCapability->ReqMapID != -1 &&
+ int32(GetMapId()) != mountCapability->ReqMapID &&
+ GetMap()->GetEntry()->CosmeticParentMapID != mountCapability->ReqMapID &&
+ GetMap()->GetEntry()->ParentMapID != mountCapability->ReqMapID)
continue;
- if (mountCapability->RequiredArea && !DB2Manager::IsInArea(areaId, mountCapability->RequiredArea))
+ if (mountCapability->ReqAreaID && !DB2Manager::IsInArea(areaId, mountCapability->ReqAreaID))
continue;
- if (mountCapability->RequiredAura && !HasAura(mountCapability->RequiredAura))
+ if (mountCapability->ReqSpellAuraID && !HasAura(mountCapability->ReqSpellAuraID))
continue;
- if (mountCapability->RequiredSpell && !HasSpell(mountCapability->RequiredSpell))
+ if (mountCapability->ReqSpellKnownID && !HasSpell(mountCapability->ReqSpellKnownID))
continue;
return mountCapability;
@@ -9022,7 +9022,7 @@ float Unit::GetSpellMaxRangeForTarget(Unit const* target, SpellInfo const* spell
{
if (!spellInfo->RangeEntry)
return 0;
- if (spellInfo->RangeEntry->MaxRangeFriend == spellInfo->RangeEntry->MaxRangeHostile)
+ if (spellInfo->RangeEntry->RangeMax[0] == spellInfo->RangeEntry->RangeMax[1])
return spellInfo->GetMaxRange();
if (!target)
return spellInfo->GetMaxRange(true);
@@ -9033,7 +9033,7 @@ float Unit::GetSpellMinRangeForTarget(Unit const* target, SpellInfo const* spell
{
if (!spellInfo->RangeEntry)
return 0;
- if (spellInfo->RangeEntry->MinRangeFriend == spellInfo->RangeEntry->MinRangeHostile)
+ if (spellInfo->RangeEntry->RangeMin[0] == spellInfo->RangeEntry->RangeMin[1])
return spellInfo->GetMinRange();
if (!target)
return spellInfo->GetMinRange(true);
@@ -9461,7 +9461,7 @@ int32 Unit::GetCreatePowers(Powers power) const
return GetCreateMana();
if (PowerTypeEntry const* powerType = sDB2Manager.GetPowerTypeEntry(power))
- return powerType->MaxPower;
+ return powerType->MaxBasePower;
return 0;
}
@@ -12096,8 +12096,8 @@ uint32 Unit::GetModelForForm(ShapeshiftForm form) const
if (Aura* artifactAura = GetAura(ARTIFACTS_ALL_WEAPONS_GENERAL_WEAPON_EQUIPPED_PASSIVE))
if (Item* artifact = ToPlayer()->GetItemByGuid(artifactAura->GetCastItemGUID()))
if (ArtifactAppearanceEntry const* artifactAppearance = sArtifactAppearanceStore.LookupEntry(artifact->GetModifier(ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID)))
- if (ShapeshiftForm(artifactAppearance->ModifiesShapeshiftFormDisplay) == form)
- return artifactAppearance->ShapeshiftDisplayID;
+ if (ShapeshiftForm(artifactAppearance->OverrideShapeshiftFormID) == form)
+ return artifactAppearance->OverrideShapeshiftDisplayID;
switch (form)
{
diff --git a/src/server/game/Entities/Vehicle/Vehicle.cpp b/src/server/game/Entities/Vehicle/Vehicle.cpp
index 636a1e83fe1..e19938b7c2d 100644
--- a/src/server/game/Entities/Vehicle/Vehicle.cpp
+++ b/src/server/game/Entities/Vehicle/Vehicle.cpp
@@ -77,7 +77,7 @@ void Vehicle::Install()
if (_me->GetTypeId() == TYPEID_UNIT)
{
if (PowerDisplayEntry const* powerDisplay = sPowerDisplayStore.LookupEntry(_vehicleInfo->PowerDisplayID[0]))
- _me->SetPowerType(Powers(powerDisplay->PowerType));
+ _me->SetPowerType(Powers(powerDisplay->ActualType));
else if (_me->getClass() == CLASS_ROGUE)
_me->SetPowerType(POWER_ENERGY);
}
@@ -480,12 +480,12 @@ Vehicle* Vehicle::RemovePassenger(Unit* unit)
_me->SetFlag64(UNIT_NPC_FLAGS, (_me->GetTypeId() == TYPEID_PLAYER ? UNIT_NPC_FLAG_PLAYER_VEHICLE : UNIT_NPC_FLAG_SPELLCLICK));
// Remove UNIT_FLAG_NOT_SELECTABLE if passenger did not have it before entering vehicle
- if (seat->second.SeatInfo->Flags[0] & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE && !seat->second.Passenger.IsUnselectable)
+ if (seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE && !seat->second.Passenger.IsUnselectable)
unit->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
seat->second.Passenger.Reset();
- if (_me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->second.SeatInfo->Flags[0] & VEHICLE_SEAT_FLAG_CAN_CONTROL)
+ if (_me->GetTypeId() == TYPEID_UNIT && unit->GetTypeId() == TYPEID_PLAYER && seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
_me->RemoveCharmedBy(unit);
if (_me->IsInWorld())
@@ -787,11 +787,11 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
player->StopCastingCharm();
player->StopCastingBindSight();
player->SendOnCancelExpectedVehicleRideAura();
- if (!(veSeat->Flags[1] & VEHICLE_SEAT_FLAG_B_KEEP_PET))
+ if (!(veSeat->FlagsB & VEHICLE_SEAT_FLAG_B_KEEP_PET))
player->UnsummonPetTemporaryIfAny();
}
- if (Seat->second.SeatInfo->Flags[0] & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE)
+ if (Seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_PASSENGER_NOT_SELECTABLE)
Passenger->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NOT_SELECTABLE);
Passenger->m_movementInfo.transport.pos.Relocate(veSeat->AttachmentOffset.X, veSeat->AttachmentOffset.Y, veSeat->AttachmentOffset.Z);
@@ -801,7 +801,7 @@ bool VehicleJoinEvent::Execute(uint64, uint32)
Passenger->m_movementInfo.transport.vehicleId = Target->GetVehicleInfo()->ID;
if (Target->GetBase()->GetTypeId() == TYPEID_UNIT && Passenger->GetTypeId() == TYPEID_PLAYER &&
- Seat->second.SeatInfo->Flags[0] & VEHICLE_SEAT_FLAG_CAN_CONTROL)
+ Seat->second.SeatInfo->Flags & VEHICLE_SEAT_FLAG_CAN_CONTROL)
ASSERT(Target->GetBase()->SetCharmedBy(Passenger, CHARM_TYPE_VEHICLE)); // SMSG_CLIENT_CONTROL
Passenger->SendClearTarget(); // SMSG_BREAK_TARGET
diff --git a/src/server/game/Garrison/Garrison.cpp b/src/server/game/Garrison/Garrison.cpp
index e344e19b8f9..1e2766a93d5 100644
--- a/src/server/game/Garrison/Garrison.cpp
+++ b/src/server/game/Garrison/Garrison.cpp
@@ -248,7 +248,7 @@ void Garrison::Delete()
WorldPackets::Garrison::GarrisonDeleteResult garrisonDelete;
garrisonDelete.Result = GARRISON_SUCCESS;
- garrisonDelete.GarrSiteID = _siteLevel->SiteID;
+ garrisonDelete.GarrSiteID = _siteLevel->GarrSiteID;
_owner->SendDirectMessage(garrisonDelete.Write());
}
@@ -270,7 +270,7 @@ void Garrison::InitializePlots()
Plot& plotInfo = _plots[garrPlotInstanceId];
plotInfo.PacketInfo.GarrPlotInstanceID = garrPlotInstanceId;
- plotInfo.PacketInfo.PlotPos = Position(gameObject->Position.X, gameObject->Position.Y, gameObject->Position.Z, 2 * std::acos(gameObject->RotationW));
+ plotInfo.PacketInfo.PlotPos = Position(gameObject->Pos.X, gameObject->Pos.Y, gameObject->Pos.Z, 2 * std::acos(gameObject->Rot[3]));
plotInfo.PacketInfo.PlotType = plot->PlotType;
plotInfo.EmptyGameObjectId = gameObject->ID;
plotInfo.GarrSiteLevelPlotInstId = plots->at(i)->ID;
@@ -396,7 +396,7 @@ void Garrison::PlaceBuilding(uint32 garrPlotInstanceId, uint32 garrBuildingId)
if (plot->BuildingInfo.PacketInfo)
{
oldBuildingId = plot->BuildingInfo.PacketInfo->GarrBuildingID;
- if (sGarrBuildingStore.AssertEntry(oldBuildingId)->Type != building->Type)
+ if (sGarrBuildingStore.AssertEntry(oldBuildingId)->BuildingType != building->BuildingType)
plot->ClearBuildingInfo(_owner);
}
@@ -405,8 +405,8 @@ void Garrison::PlaceBuilding(uint32 garrPlotInstanceId, uint32 garrBuildingId)
if (GameObject* go = plot->CreateGameObject(map, GetFaction()))
map->AddToMap(go);
- _owner->ModifyCurrency(building->CostCurrencyID, -building->CostCurrencyAmount, false, true);
- _owner->ModifyMoney(-building->CostMoney * GOLD, false);
+ _owner->ModifyCurrency(building->CurrencyTypeID, -building->CurrencyQty, false, true);
+ _owner->ModifyMoney(-building->GoldCost * GOLD, false);
if (oldBuildingId)
{
@@ -445,13 +445,13 @@ void Garrison::CancelBuildingConstruction(uint32 garrPlotInstanceId)
GarrBuildingEntry const* constructing = sGarrBuildingStore.AssertEntry(buildingRemoved.GarrBuildingID);
// Refund construction/upgrade cost
- _owner->ModifyCurrency(constructing->CostCurrencyID, constructing->CostCurrencyAmount, false, true);
- _owner->ModifyMoney(constructing->CostMoney * GOLD, false);
+ _owner->ModifyCurrency(constructing->CurrencyTypeID, constructing->CurrencyQty, false, true);
+ _owner->ModifyMoney(constructing->GoldCost * GOLD, false);
- if (constructing->Level > 1)
+ if (constructing->UpgradeLevel > 1)
{
// Restore previous level building
- uint32 restored = sGarrisonMgr.GetPreviousLevelBuildingId(constructing->Type, constructing->Level);
+ uint32 restored = sGarrisonMgr.GetPreviousLevelBuildingId(constructing->BuildingType, constructing->UpgradeLevel);
ASSERT(restored);
WorldPackets::Garrison::GarrisonPlaceBuildingResult placeBuildingResult;
@@ -513,7 +513,7 @@ void Garrison::AddFollower(uint32 garrFollowerId)
follower.PacketInfo.DbID = dbId;
follower.PacketInfo.GarrFollowerID = garrFollowerId;
follower.PacketInfo.Quality = followerEntry->Quality; // TODO: handle magic upgrades
- follower.PacketInfo.FollowerLevel = followerEntry->Level;
+ follower.PacketInfo.FollowerLevel = followerEntry->FollowerLevel;
follower.PacketInfo.ItemLevelWeapon = followerEntry->ItemLevelWeapon;
follower.PacketInfo.ItemLevelArmor = followerEntry->ItemLevelArmor;
follower.PacketInfo.Xp = 0;
@@ -545,7 +545,7 @@ void Garrison::SendInfo()
WorldPackets::Garrison::GarrisonInfo& garrison = garrisonInfo.Garrisons.back();
garrison.GarrTypeID = GARRISON_TYPE_GARRISON;
- garrison.GarrSiteID = _siteLevel->SiteID;
+ garrison.GarrSiteID = _siteLevel->GarrSiteID;
garrison.GarrSiteLevelID = _siteLevel->ID;
garrison.NumFollowerActivationsRemaining = _followerActivationsRemainingToday;
for (auto& p : _plots)
@@ -624,7 +624,7 @@ GarrisonError Garrison::CheckBuildingPlacement(uint32 garrPlotInstanceId, uint32
return GARRISON_ERROR_INVALID_PLOT_BUILDING;
// Cannot place buldings of higher level than garrison level
- if (building->Level > _siteLevel->Level)
+ if (building->UpgradeLevel > _siteLevel->MaxBuildingLevel)
return GARRISON_ERROR_INVALID_BUILDINGID;
if (building->Flags & GARRISON_BUILDING_FLAG_NEEDS_PLAN)
@@ -642,16 +642,16 @@ GarrisonError Garrison::CheckBuildingPlacement(uint32 garrPlotInstanceId, uint32
if (p.second.BuildingInfo.PacketInfo)
{
existingBuilding = sGarrBuildingStore.AssertEntry(p.second.BuildingInfo.PacketInfo->GarrBuildingID);
- if (existingBuilding->Type == building->Type)
- if (p.first != garrPlotInstanceId || existingBuilding->Level + 1 != building->Level) // check if its an upgrade in same plot
+ if (existingBuilding->BuildingType == building->BuildingType)
+ if (p.first != garrPlotInstanceId || existingBuilding->UpgradeLevel + 1 != building->UpgradeLevel) // check if its an upgrade in same plot
return GARRISON_ERROR_BUILDING_EXISTS;
}
}
- if (!_owner->HasCurrency(building->CostCurrencyID, building->CostCurrencyAmount))
+ if (!_owner->HasCurrency(building->CurrencyTypeID, building->CurrencyQty))
return GARRISON_ERROR_NOT_ENOUGH_CURRENCY;
- if (!_owner->HasEnoughMoney(uint64(building->CostMoney) * GOLD))
+ if (!_owner->HasEnoughMoney(uint64(building->GoldCost) * GOLD))
return GARRISON_ERROR_NOT_ENOUGH_GOLD;
// New building cannot replace another building currently under construction
@@ -719,7 +719,7 @@ GameObject* Garrison::Plot::CreateGameObject(Map* map, GarrisonFactionIndex fact
GarrPlotInstanceEntry const* plotInstance = sGarrPlotInstanceStore.AssertEntry(PacketInfo.GarrPlotInstanceID);
GarrPlotEntry const* plot = sGarrPlotStore.AssertEntry(plotInstance->GarrPlotID);
GarrBuildingEntry const* building = sGarrBuildingStore.AssertEntry(BuildingInfo.PacketInfo->GarrBuildingID);
- entry = faction == GARRISON_FACTION_INDEX_HORDE ? plot->HordeConstructionGameObjectID : plot->AllianceConstructionGameObjectID;
+ entry = faction == GARRISON_FACTION_INDEX_HORDE ? plot->HordeConstructObjID : plot->AllianceConstructObjID;
if (BuildingInfo.PacketInfo->Active || !entry)
entry = faction == GARRISON_FACTION_INDEX_HORDE ? building->HordeGameObjectID : building->AllianceGameObjectID;
}
@@ -830,7 +830,7 @@ bool Garrison::Building::CanActivate() const
if (PacketInfo)
{
GarrBuildingEntry const* building = sGarrBuildingStore.AssertEntry(PacketInfo->GarrBuildingID);
- if (PacketInfo->TimeBuilt + building->BuildDuration <= time(nullptr))
+ if (PacketInfo->TimeBuilt + building->BuildSeconds <= time(nullptr))
return true;
}
diff --git a/src/server/game/Garrison/GarrisonMgr.cpp b/src/server/game/Garrison/GarrisonMgr.cpp
index cd6763db3c1..4a1eb11727b 100644
--- a/src/server/game/Garrison/GarrisonMgr.cpp
+++ b/src/server/game/Garrison/GarrisonMgr.cpp
@@ -38,8 +38,8 @@ void GarrisonMgr::Initialize()
_garrisonPlotInstBySiteLevel[siteLevelPlotInst->GarrSiteLevelID].push_back(siteLevelPlotInst);
for (GameObjectsEntry const* gameObject : sGameObjectsStore)
- if (gameObject->Type == GAMEOBJECT_TYPE_GARRISON_PLOT)
- _garrisonPlots[gameObject->MapID][gameObject->Data[0]] = gameObject;
+ if (gameObject->TypeID == GAMEOBJECT_TYPE_GARRISON_PLOT)
+ _garrisonPlots[gameObject->OwnerID][gameObject->PropValue[0]] = gameObject;
for (GarrPlotBuildingEntry const* plotBuilding : sGarrPlotBuildingStore)
_garrisonBuildingsByPlot[plotBuilding->GarrPlotID].insert(plotBuilding->GarrBuildingID);
@@ -48,13 +48,13 @@ void GarrisonMgr::Initialize()
_garrisonBuildingPlotInstances[std::make_pair(buildingPlotInst->GarrBuildingID, buildingPlotInst->GarrSiteLevelPlotInstID)] = buildingPlotInst->ID;
for (GarrBuildingEntry const* building : sGarrBuildingStore)
- _garrisonBuildingsByType[building->Type].push_back(building->ID);
+ _garrisonBuildingsByType[building->BuildingType].push_back(building->ID);
for (GarrFollowerXAbilityEntry const* followerAbility : sGarrFollowerXAbilityStore)
{
if (GarrAbilityEntry const* ability = sGarrAbilityStore.LookupEntry(followerAbility->GarrAbilityID))
{
- if (ability->FollowerTypeID != FOLLOWER_TYPE_GARRISON)
+ if (ability->GarrFollowerTypeID != FOLLOWER_TYPE_GARRISON)
continue;
if (!(ability->Flags & GARRISON_ABILITY_CANNOT_ROLL) && ability->Flags & GARRISON_ABILITY_FLAG_TRAIT)
@@ -78,7 +78,7 @@ void GarrisonMgr::Initialize()
GarrSiteLevelEntry const* GarrisonMgr::GetGarrSiteLevelEntry(uint32 garrSiteId, uint32 level) const
{
for (GarrSiteLevelEntry const* siteLevel : sGarrSiteLevelStore)
- if (siteLevel->SiteID == garrSiteId && siteLevel->Level == level)
+ if (siteLevel->GarrSiteID == garrSiteId && siteLevel->GarrLevel == level)
return siteLevel;
return nullptr;
@@ -129,7 +129,7 @@ uint32 GarrisonMgr::GetPreviousLevelBuildingId(uint32 buildingType, uint32 curre
auto itr = _garrisonBuildingsByType.find(buildingType);
if (itr != _garrisonBuildingsByType.end())
for (uint32 buildingId : itr->second)
- if (sGarrBuildingStore.AssertEntry(buildingId)->Level == currentLevel - 1)
+ if (sGarrBuildingStore.AssertEntry(buildingId)->UpgradeLevel == currentLevel - 1)
return buildingId;
return 0;
diff --git a/src/server/game/Globals/ConversationDataStore.cpp b/src/server/game/Globals/ConversationDataStore.cpp
index 5e4a5c3ba1e..d072cefeae0 100644
--- a/src/server/game/Globals/ConversationDataStore.cpp
+++ b/src/server/game/Globals/ConversationDataStore.cpp
@@ -178,10 +178,10 @@ void ConversationDataStore::LoadConversationTemplates()
else
TC_LOG_ERROR("sql.sql", "Table `conversation_line_template` has missing template for line (ID: %u) in Conversation %u, skipped", currentConversationLine->ID, conversationTemplate.Id);
- if (!currentConversationLine->NextLineID)
+ if (!currentConversationLine->NextConversationLineID)
break;
- currentConversationLine = sConversationLineStore.AssertEntry(currentConversationLine->NextLineID);
+ currentConversationLine = sConversationLineStore.AssertEntry(currentConversationLine->NextConversationLineID);
}
_conversationTemplateStore[conversationTemplate.Id] = conversationTemplate;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index cbafb647347..fb52120263a 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -1366,7 +1366,7 @@ void ObjectMgr::LoadEquipmentTemplates()
"for CreatureID = %u and ID=%u, forced to default.",
equipmentInfo.Items[i].ItemId, equipmentInfo.Items[i].AppearanceModId, i + 1, i + 1, entry, id);
if (ItemModifiedAppearanceEntry const* defaultAppearance = sDB2Manager.GetDefaultItemModifiedAppearance(equipmentInfo.Items[i].ItemId))
- equipmentInfo.Items[i].AppearanceModId = defaultAppearance->AppearanceModID;
+ equipmentInfo.Items[i].AppearanceModId = defaultAppearance->ItemAppearanceModifierID;
else
equipmentInfo.Items[i].AppearanceModId = 0;
continue;
@@ -2589,10 +2589,10 @@ struct ItemSpecStats
{
memset(ItemSpecStatTypes, -1, sizeof(ItemSpecStatTypes));
- if (item->Class == ITEM_CLASS_WEAPON)
+ if (item->ClassID == ITEM_CLASS_WEAPON)
{
ItemType = 5;
- switch (item->SubClass)
+ switch (item->SubclassID)
{
case ITEM_SUBCLASS_WEAPON_AXE:
AddStat(ITEM_SPEC_STAT_ONE_HANDED_AXE);
@@ -2646,9 +2646,9 @@ struct ItemSpecStats
break;
}
}
- else if (item->Class == ITEM_CLASS_ARMOR)
+ else if (item->ClassID == ITEM_CLASS_ARMOR)
{
- switch (item->SubClass)
+ switch (item->SubclassID)
{
case ITEM_SUBCLASS_ARMOR_CLOTH:
if (sparse->InventoryType != INVTYPE_CLOAK)
@@ -2670,12 +2670,12 @@ struct ItemSpecStats
ItemType = 4;
break;
default:
- if (item->SubClass == ITEM_SUBCLASS_ARMOR_SHIELD)
+ if (item->SubclassID == ITEM_SUBCLASS_ARMOR_SHIELD)
{
ItemType = 6;
AddStat(ITEM_SPEC_STAT_SHIELD);
}
- else if (item->SubClass > ITEM_SUBCLASS_ARMOR_SHIELD && item->SubClass <= ITEM_SUBCLASS_ARMOR_RELIC)
+ else if (item->SubclassID > ITEM_SUBCLASS_ARMOR_SHIELD && item->SubclassID <= ITEM_SUBCLASS_ARMOR_RELIC)
{
ItemType = 6;
AddStat(ITEM_SPEC_STAT_RELIC);
@@ -2685,7 +2685,7 @@ struct ItemSpecStats
break;
}
}
- else if (item->Class == ITEM_CLASS_GEM)
+ else if (item->ClassID == ITEM_CLASS_GEM)
{
ItemType = 7;
if (GemPropertiesEntry const* gem = sGemPropertiesStore.LookupEntry(sparse->GemProperties))
@@ -2718,8 +2718,8 @@ struct ItemSpecStats
ItemType = 0;
for (uint32 i = 0; i < MAX_ITEM_PROTO_STATS; ++i)
- if (sparse->ItemStatType[i] != -1)
- AddModStat(sparse->ItemStatType[i]);
+ if (sparse->StatModifierBonusStat[i] != -1)
+ AddModStat(sparse->StatModifierBonusStat[i]);
}
void AddStat(ItemSpecStat statType)
@@ -2805,7 +2805,7 @@ void ObjectMgr::LoadItemTemplates()
itemTemplate.BasicData = db2Data;
itemTemplate.ExtendedData = sparse;
- itemTemplate.MaxDurability = FillMaxDurability(db2Data->Class, db2Data->SubClass, sparse->InventoryType, sparse->Quality, sparse->ItemLevel);
+ itemTemplate.MaxDurability = FillMaxDurability(db2Data->ClassID, db2Data->SubclassID, sparse->InventoryType, sparse->OverallQualityID, sparse->ItemLevel);
itemTemplate.ScriptId = 0;
itemTemplate.FoodType = 0;
itemTemplate.MinMoneyLoot = 0;
@@ -2849,7 +2849,7 @@ void ObjectMgr::LoadItemTemplates()
if (!hasPrimary || !hasSecondary)
continue;
- if (ChrSpecializationEntry const* specialization = sChrSpecializationStore.LookupEntry(itemSpec->SpecID))
+ if (ChrSpecializationEntry const* specialization = sChrSpecializationStore.LookupEntry(itemSpec->SpecializationID))
{
if ((1 << (specialization->ClassID - 1)) & sparse->AllowableClass)
{
@@ -2876,7 +2876,7 @@ void ObjectMgr::LoadItemTemplates()
// Load item effects (spells)
for (ItemEffectEntry const* effectEntry : sItemEffectStore)
{
- auto itemItr = _itemTemplateStore.find(effectEntry->ItemID);
+ auto itemItr = _itemTemplateStore.find(effectEntry->ParentItemID);
if (itemItr == _itemTemplateStore.end())
continue;
@@ -3285,8 +3285,8 @@ void ObjectMgr::LoadPlayerInfo()
info->positionY = positionY;
info->positionZ = positionZ;
info->orientation = orientation;
- info->displayId_m = rEntry->MaleDisplayID;
- info->displayId_f = rEntry->FemaleDisplayID;
+ info->displayId_m = rEntry->MaleDisplayId;
+ info->displayId_f = rEntry->FemaleDisplayId;
_playerInfo[current_race][current_class] = info;
++count;
@@ -6016,7 +6016,7 @@ uint32 ObjectMgr::GetNearestTaxiNode(float x, float y, float z, uint32 mapid, ui
uint32 requireFlag = (team == ALLIANCE) ? TAXI_NODE_FLAG_ALLIANCE : TAXI_NODE_FLAG_HORDE;
for (TaxiNodesEntry const* node : sTaxiNodesStore)
{
- if (!node || node->MapID != mapid || !(node->Flags & requireFlag))
+ if (!node || node->ContinentID != mapid || !(node->Flags & requireFlag))
continue;
uint8 field = (uint8)((node->ID - 1) / 8);
@@ -6249,7 +6249,7 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
if (!mapEntry
|| mapEntry->CorpseMapID < 0
|| uint32(mapEntry->CorpseMapID) != entry->MapID
- || (mapEntry->CorpsePos.X == 0 && mapEntry->CorpsePos.Y == 0)) // Check X and Y
+ || (mapEntry->Corpse.X == 0 && mapEntry->Corpse.Y == 0)) // Check X and Y
{
// not have any corrdinates for check distance anyway
entryFar = entry;
@@ -6257,8 +6257,8 @@ WorldSafeLocsEntry const* ObjectMgr::GetClosestGraveYard(float x, float y, float
}
// at entrance map calculate distance (2D);
- float dist2 = (entry->Loc.X - mapEntry->CorpsePos.X)*(entry->Loc.X - mapEntry->CorpsePos.X)
- +(entry->Loc.Y - mapEntry->CorpsePos.Y)*(entry->Loc.Y - mapEntry->CorpsePos.Y);
+ float dist2 = (entry->Loc.X - mapEntry->Corpse.X)*(entry->Loc.X - mapEntry->Corpse.X)
+ +(entry->Loc.Y - mapEntry->Corpse.Y)*(entry->Loc.Y - mapEntry->Corpse.Y);
if (foundEntr)
{
if (dist2 < distEntr)
@@ -6597,7 +6597,7 @@ AreaTriggerStruct const* ObjectMgr::GetGoBackTrigger(uint32 Map) const
if ((!useParentDbValue && itr->second.target_mapId == entrance_map) || (useParentDbValue && itr->second.target_mapId == parentId))
{
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(itr->first);
- if (atEntry && atEntry->MapID == Map)
+ if (atEntry && atEntry->ContinentID == int32(Map))
return &itr->second;
}
return nullptr;
@@ -6846,12 +6846,12 @@ void ObjectMgr::LoadGameObjectTemplate()
{
GameObjectTemplate& go = _gameObjectTemplateStore[db2go->ID];
go.entry = db2go->ID;
- go.type = db2go->Type;
+ go.type = db2go->TypeID;
go.displayId = db2go->DisplayID;
go.name = db2go->Name->Str[sWorld->GetDefaultDbcLocale()];
- go.size = db2go->Size;
+ go.size = db2go->Scale;
memset(go.raw.data, 0, sizeof(go.raw.data));
- memcpy(go.raw.data, db2go->Data, std::min(sizeof(db2go->Data), sizeof(go.raw.data)));
+ memcpy(go.raw.data, db2go->PropValue, std::min(sizeof(db2go->PropValue), sizeof(go.raw.data)));
go.RequiredLevel = 0;
go.ScriptId = 0;
}
diff --git a/src/server/game/Groups/Group.cpp b/src/server/game/Groups/Group.cpp
index 8a5bc685efe..a3e008e3d93 100644
--- a/src/server/game/Groups/Group.cpp
+++ b/src/server/game/Groups/Group.cpp
@@ -881,7 +881,7 @@ void Group::SendLootStartRollToPlayer(uint32 countDown, uint32 mapId, Player* p,
r.FillPacket(startLootRoll.Item);
if (ItemDisenchantLootEntry const* disenchant = r.GetItemDisenchantLoot(p))
- if (m_maxEnchantingLevel >= disenchant->RequiredDisenchantSkill)
+ if (m_maxEnchantingLevel >= disenchant->SkillRequired)
startLootRoll.ValidRolls |= ROLL_FLAG_TYPE_DISENCHANT;
p->SendDirectMessage(startLootRoll.Write());
@@ -1508,7 +1508,7 @@ void Group::SendUpdateToPlayer(ObjectGuid playerGUID, MemberSlot* slot)
lfg::LfgDungeonSet const& selectedDungeons = sLFGMgr->GetSelectedDungeons(player->GetGUID());
if (selectedDungeons.size() == 1)
if (LFGDungeonsEntry const* dungeon = sLFGDungeonsStore.LookupEntry(*selectedDungeons.begin()))
- if (dungeon->Type == lfg::LFG_TYPE_RANDOM)
+ if (dungeon->TypeID == lfg::LFG_TYPE_RANDOM)
return dungeon->ID;
return 0;
@@ -1800,7 +1800,7 @@ GroupJoinBattlegroundResult Group::CanJoinBattlegroundQueue(Battleground const*
// check for min / max count
uint32 memberscount = GetMembersCount();
- if (memberscount > bgEntry->MaxGroupSize) // no MinPlayerCount for battlegrounds
+ if (int32(memberscount) > bgEntry->MaxGroupSize) // no MinPlayerCount for battlegrounds
return ERR_BATTLEGROUND_NONE; // ERR_GROUP_JOIN_BATTLEGROUND_TOO_MANY handled on client side
// get a player as reference, to compare other players' stats to (arena team id, queue id based on level, etc.)
diff --git a/src/server/game/Guilds/GuildFinderMgr.cpp b/src/server/game/Guilds/GuildFinderMgr.cpp
index 53fe31dabc1..ff3e314d8e4 100644
--- a/src/server/game/Guilds/GuildFinderMgr.cpp
+++ b/src/server/game/Guilds/GuildFinderMgr.cpp
@@ -79,7 +79,7 @@ void GuildFinderMgr::LoadGuildSettings()
TeamId guildTeam = TEAM_NEUTRAL;
if (ChrRacesEntry const* raceEntry = sChrRacesStore.LookupEntry(fields[7].GetUInt8()))
- guildTeam = (TeamId)raceEntry->TeamID;
+ guildTeam = (TeamId)raceEntry->Alliance;
LFGuildSettings settings(listed, guildTeam, guildId, classRoles, availability, interests, level, comment);
_guildSettings[guildId] = settings;
diff --git a/src/server/game/Handlers/ArtifactHandler.cpp b/src/server/game/Handlers/ArtifactHandler.cpp
index 34267790fa3..f572cbe6983 100644
--- a/src/server/game/Handlers/ArtifactHandler.cpp
+++ b/src/server/game/Handlers/ArtifactHandler.cpp
@@ -54,7 +54,7 @@ void WorldSession::HandleArtifactAddPower(WorldPackets::Artifact::ArtifactAddPow
return;
if (artifactAddPower.PowerChoices[0].Rank != artifactPower->PurchasedRank + 1 ||
- artifactAddPower.PowerChoices[0].Rank > artifactPowerEntry->MaxRank)
+ artifactAddPower.PowerChoices[0].Rank > artifactPowerEntry->MaxPurchasableRank)
return;
if (std::unordered_set<uint32> const* artifactPowerLinks = sDB2Manager.GetArtifactPowerLinks(artifactPower->ArtifactPowerId))
@@ -70,7 +70,7 @@ void WorldSession::HandleArtifactAddPower(WorldPackets::Artifact::ArtifactAddPow
if (!artifactPowerLinkLearned)
continue;
- if (artifactPowerLinkLearned->PurchasedRank >= artifactPowerLink->MaxRank)
+ if (artifactPowerLinkLearned->PurchasedRank >= artifactPowerLink->MaxPurchasableRank)
{
hasAnyLink = true;
break;
@@ -134,17 +134,17 @@ void WorldSession::HandleArtifactSetAppearance(WorldPackets::Artifact::ArtifactS
if (!artifactAppearanceSet || artifactAppearanceSet->ArtifactID != artifact->GetTemplate()->GetArtifactID())
return;
- if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactAppearance->PlayerConditionID))
+ if (PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(artifactAppearance->UnlockPlayerConditionID))
if (!sConditionMgr->IsPlayerMeetingCondition(_player, playerCondition))
return;
- artifact->SetAppearanceModId(artifactAppearance->AppearanceModID);
+ artifact->SetAppearanceModId(artifactAppearance->ItemAppearanceModifierID);
artifact->SetModifier(ITEM_MODIFIER_ARTIFACT_APPEARANCE_ID, artifactAppearance->ID);
artifact->SetState(ITEM_CHANGED, _player);
Item* childItem = _player->GetChildItemByGuid(artifact->GetChildItem());
if (childItem)
{
- childItem->SetAppearanceModId(artifactAppearance->AppearanceModID);
+ childItem->SetAppearanceModId(artifactAppearance->ItemAppearanceModifierID);
childItem->SetState(ITEM_CHANGED, _player);
}
@@ -156,7 +156,7 @@ void WorldSession::HandleArtifactSetAppearance(WorldPackets::Artifact::ArtifactS
_player->SetVisibleItemSlot(childItem->GetSlot(), childItem);
// change druid form appearance
- if (artifactAppearance->ShapeshiftDisplayID && artifactAppearance->ModifiesShapeshiftFormDisplay && _player->GetShapeshiftForm() == ShapeshiftForm(artifactAppearance->ModifiesShapeshiftFormDisplay))
+ if (artifactAppearance->OverrideShapeshiftDisplayID && artifactAppearance->OverrideShapeshiftFormID && _player->GetShapeshiftForm() == ShapeshiftForm(artifactAppearance->OverrideShapeshiftFormID))
_player->RestoreDisplayId();
}
}
diff --git a/src/server/game/Handlers/CharacterHandler.cpp b/src/server/game/Handlers/CharacterHandler.cpp
index f2a93781714..61bf3850972 100644
--- a/src/server/game/Handlers/CharacterHandler.cpp
+++ b/src/server/game/Handlers/CharacterHandler.cpp
@@ -1675,7 +1675,7 @@ void WorldSession::HandleEquipmentSetSave(WorldPackets::EquipmentSet::SaveEquipm
if (!illusion->ItemVisual || !(illusion->Flags & ENCHANTMENT_COLLECTABLE))
return false;
- if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(illusion->PlayerConditionID))
+ if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(illusion->TransmogPlayerConditionID))
if (!sConditionMgr->IsPlayerMeetingCondition(_player, condition))
return false;
@@ -2304,7 +2304,7 @@ void WorldSession::HandleRandomizeCharNameOpcode(WorldPackets::Character::Genera
WorldPackets::Character::GenerateRandomCharacterNameResult result;
result.Success = true;
- result.Name = sDB2Manager.GetNameGenEntry(packet.Race, packet.Sex, GetSessionDbcLocale(), sWorld->GetDefaultDbcLocale());
+ result.Name = sDB2Manager.GetNameGenEntry(packet.Race, packet.Sex);
SendPacket(result.Write());
}
diff --git a/src/server/game/Handlers/CombatHandler.cpp b/src/server/game/Handlers/CombatHandler.cpp
index 452ea33ea70..2beac9abf1a 100644
--- a/src/server/game/Handlers/CombatHandler.cpp
+++ b/src/server/game/Handlers/CombatHandler.cpp
@@ -51,7 +51,7 @@ void WorldSession::HandleAttackSwingOpcode(WorldPackets::Combat::AttackSwing& pa
{
VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(_player);
ASSERT(seat);
- if (!(seat->Flags[0] & VEHICLE_SEAT_FLAG_CAN_ATTACK))
+ if (!(seat->Flags & VEHICLE_SEAT_FLAG_CAN_ATTACK))
{
SendAttackStop(enemy);
return;
diff --git a/src/server/game/Handlers/ItemHandler.cpp b/src/server/game/Handlers/ItemHandler.cpp
index 81f9d82dee8..1b1910abdc5 100644
--- a/src/server/game/Handlers/ItemHandler.cpp
+++ b/src/server/game/Handlers/ItemHandler.cpp
@@ -1077,8 +1077,8 @@ void WorldSession::HandleSocketGems(WorldPackets::Item::SocketGems& socketGems)
itemTarget->SetGem(i, &gemData[i], gemScalingLevel);
- if (gemProperties[i] && gemProperties[i]->EnchantID)
- itemTarget->SetEnchantment(EnchantmentSlot(SOCK_ENCHANTMENT_SLOT + i), gemProperties[i]->EnchantID, 0, 0, _player->GetGUID());
+ if (gemProperties[i] && gemProperties[i]->EnchantId)
+ itemTarget->SetEnchantment(EnchantmentSlot(SOCK_ENCHANTMENT_SLOT + i), gemProperties[i]->EnchantId, 0, 0, _player->GetGUID());
uint32 gemCount = 1;
_player->DestroyItemCount(gems[i], gemCount, true);
@@ -1189,7 +1189,7 @@ void WorldSession::HandleUseCritterItem(WorldPackets::Item::UseCritterItem& useC
if (item->GetTemplate()->Effects.size() < 2)
return;
- uint32 spellToLearn = item->GetTemplate()->Effects[1]->SpellID;
+ int32 spellToLearn = item->GetTemplate()->Effects[1]->SpellID;
for (BattlePetSpeciesEntry const* entry : sBattlePetSpeciesStore)
{
if (entry->SummonSpellID == spellToLearn)
@@ -1233,16 +1233,16 @@ void WorldSession::HandleUpgradeItem(WorldPackets::Item::UpgradeItem& upgradeIte
}
// Check if player has enough currency
- if (!_player->HasCurrency(itemUpgradeEntry->CurrencyID, itemUpgradeEntry->CurrencyCost))
+ if (!_player->HasCurrency(itemUpgradeEntry->CurrencyType, itemUpgradeEntry->CurrencyAmount))
{
- TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - Player has not enougth currency (ID: %u, Cost: %u) not found.", itemUpgradeEntry->CurrencyID, itemUpgradeEntry->CurrencyCost);
+ TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - Player has not enougth currency (ID: %u, Cost: %u) not found.", itemUpgradeEntry->CurrencyType, itemUpgradeEntry->CurrencyAmount);
itemUpgradeResult.Success = false;
SendPacket(itemUpgradeResult.Write());
return;
}
uint32 currentUpgradeId = item->GetModifier(ITEM_MODIFIER_UPGRADE_ID);
- if (currentUpgradeId != itemUpgradeEntry->PrevItemUpgradeID)
+ if (currentUpgradeId != itemUpgradeEntry->PrerequisiteID)
{
TC_LOG_DEBUG("network", "WORLD: HandleUpgradeItems - ItemUpgradeEntry (%u) is not related to this ItemUpgradePath (%u).", itemUpgradeEntry->ID, currentUpgradeId);
itemUpgradeResult.Success = false;
@@ -1262,7 +1262,7 @@ void WorldSession::HandleUpgradeItem(WorldPackets::Item::UpgradeItem& upgradeIte
_player->_ApplyItemBonuses(item, item->GetSlot(), true);
item->SetState(ITEM_CHANGED, _player);
- _player->ModifyCurrency(itemUpgradeEntry->CurrencyID, -int32(itemUpgradeEntry->CurrencyCost));
+ _player->ModifyCurrency(itemUpgradeEntry->CurrencyType, -int32(itemUpgradeEntry->CurrencyAmount));
}
void WorldSession::HandleSortBags(WorldPackets::Item::SortBags& /*sortBags*/)
diff --git a/src/server/game/Handlers/MovementHandler.cpp b/src/server/game/Handlers/MovementHandler.cpp
index 8de949efe27..2df32d947ee 100644
--- a/src/server/game/Handlers/MovementHandler.cpp
+++ b/src/server/game/Handlers/MovementHandler.cpp
@@ -393,7 +393,7 @@ void WorldSession::HandleMovementOpcode(OpcodeClient opcode, MovementInfo& movem
{
if (VehicleSeatEntry const* seat = vehicle->GetSeatForPassenger(mover))
{
- if (seat->Flags[0] & VEHICLE_SEAT_FLAG_ALLOW_TURNING)
+ if (seat->Flags & VEHICLE_SEAT_FLAG_ALLOW_TURNING)
{
if (movementInfo.pos.GetOrientation() != mover->GetOrientation())
{
@@ -574,7 +574,7 @@ void WorldSession::HandleMoveSplineDoneOpcode(WorldPackets::Movement::MoveSpline
TaxiNodesEntry const* curDestNode = sTaxiNodesStore.LookupEntry(curDest);
// far teleport case
- if (curDestNode && curDestNode->MapID != GetPlayer()->GetMapId())
+ if (curDestNode && curDestNode->ContinentID != GetPlayer()->GetMapId())
{
if (GetPlayer()->GetMotionMaster()->GetCurrentMovementGeneratorType() == FLIGHT_MOTION_TYPE)
{
@@ -585,7 +585,7 @@ void WorldSession::HandleMoveSplineDoneOpcode(WorldPackets::Movement::MoveSpline
TaxiPathNodeEntry const* node = flight->GetPath()[flight->GetCurrentNode()];
flight->SkipCurrentNode();
- GetPlayer()->TeleportTo(curDestNode->MapID, node->Loc.X, node->Loc.Y, node->Loc.Z, GetPlayer()->GetOrientation());
+ GetPlayer()->TeleportTo(curDestNode->ContinentID, node->Loc.X, node->Loc.Y, node->Loc.Z, GetPlayer()->GetOrientation());
}
}
diff --git a/src/server/game/Handlers/QueryHandler.cpp b/src/server/game/Handlers/QueryHandler.cpp
index 33d18b946f6..7c8048d8a73 100644
--- a/src/server/game/Handlers/QueryHandler.cpp
+++ b/src/server/game/Handlers/QueryHandler.cpp
@@ -202,8 +202,8 @@ void WorldSession::HandleQueryCorpseLocation(WorldPackets::Query::QueryCorpseLoc
if (Map const* entranceMap = sMapMgr->CreateBaseMap(corpseMapEntry->CorpseMapID))
{
mapID = corpseMapEntry->CorpseMapID;
- x = corpseMapEntry->CorpsePos.X;
- y = corpseMapEntry->CorpsePos.Y;
+ x = corpseMapEntry->Corpse.X;
+ y = corpseMapEntry->Corpse.Y;
z = entranceMap->GetHeight(player->GetPhases(), x, y, MAX_HEIGHT);
}
}
diff --git a/src/server/game/Handlers/QuestHandler.cpp b/src/server/game/Handlers/QuestHandler.cpp
index 44108951a53..4a031305052 100644
--- a/src/server/game/Handlers/QuestHandler.cpp
+++ b/src/server/game/Handlers/QuestHandler.cpp
@@ -288,7 +288,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::Quest
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (questPackageItem->ItemID != uint32(packet.ItemChoiceID))
+ if (questPackageItem->ItemID != packet.ItemChoiceID)
continue;
if (_player->CanSelectQuestPackageItem(questPackageItem))
@@ -305,7 +305,7 @@ void WorldSession::HandleQuestgiverChooseRewardOpcode(WorldPackets::Quest::Quest
{
for (QuestPackageItemEntry const* questPackageItem : *questPackageItems)
{
- if (questPackageItem->ItemID != uint32(packet.ItemChoiceID))
+ if (questPackageItem->ItemID != packet.ItemChoiceID)
continue;
itemValid = true;
diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp
index 35e7652daec..5b08ed6bdb2 100644
--- a/src/server/game/Handlers/TaxiHandler.cpp
+++ b/src/server/game/Handlers/TaxiHandler.cpp
@@ -186,7 +186,7 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPackets::Taxi::ActivateTaxi& ac
uint32 preferredMountDisplay = 0;
if (MountEntry const* mount = sMountStore.LookupEntry(activateTaxi.FlyingMountID))
{
- if (GetPlayer()->HasSpell(mount->SpellId))
+ if (GetPlayer()->HasSpell(mount->SourceSpellID))
{
if (DB2Manager::MountXDisplayContainer const* mountDisplays = sDB2Manager.GetMountDisplays(mount->ID))
{
@@ -200,7 +200,7 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPackets::Taxi::ActivateTaxi& ac
});
if (!usableDisplays.empty())
- preferredMountDisplay = Trinity::Containers::SelectRandomContainerElement(usableDisplays)->DisplayID;
+ preferredMountDisplay = Trinity::Containers::SelectRandomContainerElement(usableDisplays)->CreatureDisplayInfoID;
}
}
}
diff --git a/src/server/game/Handlers/ToyHandler.cpp b/src/server/game/Handlers/ToyHandler.cpp
index 4c63eb4fbd9..aa89b33d3fc 100644
--- a/src/server/game/Handlers/ToyHandler.cpp
+++ b/src/server/game/Handlers/ToyHandler.cpp
@@ -63,7 +63,7 @@ void WorldSession::HandleUseToy(WorldPackets::Toy::UseToy& packet)
auto effect = std::find_if(item->Effects.begin(), item->Effects.end(), [&packet](ItemEffectEntry const* effect)
{
- return uint32(packet.Cast.SpellID) == effect->SpellID;
+ return packet.Cast.SpellID == effect->SpellID;
});
if (effect == item->Effects.end())
diff --git a/src/server/game/Handlers/TransmogrificationHandler.cpp b/src/server/game/Handlers/TransmogrificationHandler.cpp
index e8382ee8fb5..743378d0f7c 100644
--- a/src/server/game/Handlers/TransmogrificationHandler.cpp
+++ b/src/server/game/Handlers/TransmogrificationHandler.cpp
@@ -120,7 +120,7 @@ void WorldSession::HandleTransmogrifyItems(WorldPackets::Transmogrification::Tra
return;
}
- if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(illusion->PlayerConditionID))
+ if (PlayerConditionEntry const* condition = sPlayerConditionStore.LookupEntry(illusion->TransmogPlayerConditionID))
{
if (!sConditionMgr->IsPlayerMeetingCondition(player, condition))
{
diff --git a/src/server/game/Handlers/VehicleHandler.cpp b/src/server/game/Handlers/VehicleHandler.cpp
index a04589056bb..24a3cb4e9a2 100644
--- a/src/server/game/Handlers/VehicleHandler.cpp
+++ b/src/server/game/Handlers/VehicleHandler.cpp
@@ -45,7 +45,7 @@ void WorldSession::HandleRequestVehiclePrevSeat(WorldPackets::Vehicle::RequestVe
if (!seat->CanSwitchFromSeat())
{
TC_LOG_ERROR("network", "HandleRequestVehiclePrevSeat: %s tried to switch seats but current seatflags %u don't permit that.",
- GetPlayer()->GetGUID().ToString().c_str(), seat->Flags[0]);
+ GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
return;
}
@@ -62,7 +62,7 @@ void WorldSession::HandleRequestVehicleNextSeat(WorldPackets::Vehicle::RequestVe
if (!seat->CanSwitchFromSeat())
{
TC_LOG_ERROR("network", "HandleRequestVehicleNextSeat: %s tried to switch seats but current seatflags %u don't permit that.",
- GetPlayer()->GetGUID().ToString().c_str(), seat->Flags[0]);
+ GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
return;
}
@@ -79,7 +79,7 @@ void WorldSession::HandleMoveChangeVehicleSeats(WorldPackets::Vehicle::MoveChang
if (!seat->CanSwitchFromSeat())
{
TC_LOG_ERROR("network", "HandleMoveChangeVehicleSeats: %s tried to switch seats but current seatflags %u don't permit that.",
- GetPlayer()->GetGUID().ToString().c_str(), seat->Flags[0]);
+ GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
return;
}
@@ -108,7 +108,7 @@ void WorldSession::HandleRequestVehicleSwitchSeat(WorldPackets::Vehicle::Request
if (!seat->CanSwitchFromSeat())
{
TC_LOG_ERROR("network", "HandleRequestVehicleSwitchSeat: %s tried to switch seats but current seatflags %u don't permit that.",
- GetPlayer()->GetGUID().ToString().c_str(), seat->Flags[0]);
+ GetPlayer()->GetGUID().ToString().c_str(), seat->Flags);
return;
}
@@ -181,7 +181,7 @@ void WorldSession::HandleRequestVehicleExit(WorldPackets::Vehicle::RequestVehicl
GetPlayer()->ExitVehicle();
else
TC_LOG_ERROR("network", "%s tried to exit vehicle, but seatflags %u (ID: %u) don't permit that.",
- GetPlayer()->GetGUID().ToString().c_str(), vehicle->GetVehicleInfo()->SeatID[itr->first], itr->second.SeatInfo->Flags[0]);
+ GetPlayer()->GetGUID().ToString().c_str(), vehicle->GetVehicleInfo()->SeatID[itr->first], itr->second.SeatInfo->Flags);
}
}
}
diff --git a/src/server/game/Loot/Loot.cpp b/src/server/game/Loot/Loot.cpp
index 54a13058a7d..681f441ea84 100644
--- a/src/server/game/Loot/Loot.cpp
+++ b/src/server/game/Loot/Loot.cpp
@@ -96,7 +96,7 @@ void LootItem::AddAllowedLooter(const Player* player)
// --------- Loot ---------
//
-Loot::Loot(uint32 _gold /*= 0*/) : gold(_gold), unlootedCount(0), roundRobinPlayer(), loot_type(LOOT_CORPSE), maxDuplicates(1), _difficultyBonusTreeMod(0)
+Loot::Loot(uint32 _gold /*= 0*/) : gold(_gold), unlootedCount(0), roundRobinPlayer(), loot_type(LOOT_CORPSE), maxDuplicates(1), _itemContext(0)
{
}
@@ -154,7 +154,7 @@ void Loot::clear()
roundRobinPlayer.Clear();
loot_type = LOOT_NONE;
i_LootValidatorRefManager.clearReferences();
- _difficultyBonusTreeMod = 0;
+ _itemContext = 0;
}
void Loot::NotifyItemRemoved(uint8 lootIndex)
@@ -251,7 +251,7 @@ bool Loot::FillLoot(uint32 lootId, LootStore const& store, Player* lootOwner, bo
return false;
}
- _difficultyBonusTreeMod = lootOwner->GetMap()->GetDifficultyLootBonusTreeMod();
+ _itemContext = lootOwner->GetMap()->GetDifficultyLootItemContext();
items.reserve(MAX_NR_LOOT_ITEMS);
quest_items.reserve(MAX_NR_QUEST_ITEMS);
@@ -298,11 +298,11 @@ void Loot::AddItem(LootStoreItem const& item)
for (uint32 i = 0; i < stacks && lootItems.size() < limit; ++i)
{
LootItem generatedLoot(item);
- generatedLoot.context = _difficultyBonusTreeMod;
+ generatedLoot.context = _itemContext;
generatedLoot.count = std::min(count, proto->GetMaxStackSize());
- if (_difficultyBonusTreeMod)
+ if (_itemContext)
{
- std::set<uint32> bonusListIDs = sDB2Manager.GetItemBonusTree(generatedLoot.itemid, _difficultyBonusTreeMod);
+ std::set<uint32> bonusListIDs = sDB2Manager.GetItemBonusTree(generatedLoot.itemid, _itemContext);
generatedLoot.BonusListIDs.insert(generatedLoot.BonusListIDs.end(), bonusListIDs.begin(), bonusListIDs.end());
}
diff --git a/src/server/game/Loot/Loot.h b/src/server/game/Loot/Loot.h
index 76df77f7905..a2c30e42a0c 100644
--- a/src/server/game/Loot/Loot.h
+++ b/src/server/game/Loot/Loot.h
@@ -284,7 +284,7 @@ private:
// Loot GUID
ObjectGuid _GUID;
- uint8 _difficultyBonusTreeMod;
+ uint8 _itemContext;
};
class TC_GAME_API AELootResult
diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp
index ef7bb49b6ff..ceb50e2e985 100644
--- a/src/server/game/Maps/Map.cpp
+++ b/src/server/game/Maps/Map.cpp
@@ -2411,23 +2411,23 @@ inline ZLiquidStatus GridMap::getLiquidStatus(float x, float y, float z, uint8 R
{
entry = liquidEntry->ID;
type &= MAP_LIQUID_TYPE_DARK_WATER;
- uint32 liqTypeIdx = liquidEntry->Type;
+ uint32 liqTypeIdx = liquidEntry->SoundBank;
if (entry < 21)
{
if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(getArea(x, y)))
{
- uint32 overrideLiquid = area->LiquidTypeID[liquidEntry->Type];
+ uint32 overrideLiquid = area->LiquidTypeID[liquidEntry->SoundBank];
if (!overrideLiquid && area->ParentAreaID)
{
area = sAreaTableStore.LookupEntry(area->ParentAreaID);
if (area)
- overrideLiquid = area->LiquidTypeID[liquidEntry->Type];
+ overrideLiquid = area->LiquidTypeID[liquidEntry->SoundBank];
}
if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(overrideLiquid))
{
entry = overrideLiquid;
- liqTypeIdx = liq->Type;
+ liqTypeIdx = liq->SoundBank;
}
}
}
@@ -2718,7 +2718,7 @@ ZLiquidStatus Map::getLiquidStatus(float x, float y, float z, uint8 ReqLiquidTyp
uint32 liquidFlagType = 0;
if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(liquid_type))
- liquidFlagType = liq->Type;
+ liquidFlagType = liq->SoundBank;
if (liquid_type && liquid_type < 21)
{
@@ -2735,7 +2735,7 @@ ZLiquidStatus Map::getLiquidStatus(float x, float y, float z, uint8 ReqLiquidTyp
if (LiquidTypeEntry const* liq = sLiquidTypeStore.LookupEntry(overrideLiquid))
{
liquid_type = overrideLiquid;
- liquidFlagType = liq->Type;
+ liquidFlagType = liq->SoundBank;
}
}
}
@@ -3619,14 +3619,14 @@ MapDifficultyEntry const* Map::GetMapDifficulty() const
return sDB2Manager.GetMapDifficultyData(GetId(), GetDifficultyID());
}
-uint8 Map::GetDifficultyLootBonusTreeMod() const
+uint8 Map::GetDifficultyLootItemContext() const
{
if (MapDifficultyEntry const* mapDifficulty = GetMapDifficulty())
- if (mapDifficulty->ItemBonusTreeModID)
- return mapDifficulty->ItemBonusTreeModID;
+ if (mapDifficulty->ItemContext)
+ return mapDifficulty->ItemContext;
if (DifficultyEntry const* difficulty = sDifficultyStore.LookupEntry(GetDifficultyID()))
- return difficulty->ItemBonusTreeModID;
+ return difficulty->ItemContext;
return 0;
}
diff --git a/src/server/game/Maps/Map.h b/src/server/game/Maps/Map.h
index 6b87895e0de..03f5f1bb6e6 100644
--- a/src/server/game/Maps/Map.h
+++ b/src/server/game/Maps/Map.h
@@ -388,7 +388,7 @@ class TC_GAME_API Map : public GridRefManager<NGridType>
// have meaning only for instanced map (that have set real difficulty)
Difficulty GetDifficultyID() const { return Difficulty(GetSpawnMode()); }
MapDifficultyEntry const* GetMapDifficulty() const;
- uint8 GetDifficultyLootBonusTreeMod() const;
+ uint8 GetDifficultyLootItemContext() const;
uint32 GetId() const;
bool Instanceable() const;
diff --git a/src/server/game/Maps/TransportMgr.cpp b/src/server/game/Maps/TransportMgr.cpp
index 65da8ef4746..9980a72dfb8 100644
--- a/src/server/game/Maps/TransportMgr.cpp
+++ b/src/server/game/Maps/TransportMgr.cpp
@@ -100,7 +100,7 @@ void TransportMgr::LoadTransportAnimationAndRotation()
AddPathNodeToTransport(anim->TransportID, anim->TimeIndex, anim);
for (TransportRotationEntry const* rot : sTransportRotationStore)
- AddPathRotationToTransport(rot->TransportID, rot->TimeIndex, rot);
+ AddPathRotationToTransport(rot->GameObjectsID, rot->TimeIndex, rot);
}
class SplineRawInitializer
@@ -145,7 +145,7 @@ void TransportMgr::GeneratePath(GameObjectTemplate const* goInfo, TransportTempl
if (!mapChange)
{
TaxiPathNodeEntry const* node_i = path[i];
- if (i != path.size() - 1 && (node_i->Flags & TAXI_PATH_NODE_FLAG_TELEPORT || node_i->MapID != path[i + 1]->MapID))
+ if (i != path.size() - 1 && (node_i->Flags & TAXI_PATH_NODE_FLAG_TELEPORT || node_i->ContinentID != path[i + 1]->ContinentID))
{
keyFrames.back().Teleport = true;
mapChange = true;
@@ -159,7 +159,7 @@ void TransportMgr::GeneratePath(GameObjectTemplate const* goInfo, TransportTempl
keyFrames.push_back(k);
splinePath.push_back(G3D::Vector3(node_i->Loc.X, node_i->Loc.Y, node_i->Loc.Z));
- transport->mapsUsed.insert(k.Node->MapID);
+ transport->mapsUsed.insert(k.Node->ContinentID);
}
}
else
@@ -390,7 +390,7 @@ Transport* TransportMgr::CreateTransport(uint32 entry, ObjectGuid::LowType guid
// ...at first waypoint
TaxiPathNodeEntry const* startNode = tInfo->keyFrames.begin()->Node;
- uint32 mapId = startNode->MapID;
+ uint32 mapId = startNode->ContinentID;
float x = startNode->Loc.X;
float y = startNode->Loc.Y;
float z = startNode->Loc.Z;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 193e47070b6..ddb69bb54cc 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -286,7 +286,7 @@ enum Stats : uint16
#define MAX_STATS 4
-enum Powers : uint8
+enum Powers : int8
{
POWER_MANA = 0,
POWER_RAGE = 1,
@@ -309,7 +309,7 @@ enum Powers : uint8
POWER_PAIN = 18,
MAX_POWERS = 19,
POWER_ALL = 127, // default for class?
- POWER_HEALTH = 0xFE // (-2 as signed value)
+ POWER_HEALTH = -2 // (-2 as signed value)
};
#define MAX_POWERS_PER_CLASS 6
diff --git a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
index f766909a796..41d505d3b42 100755
--- a/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
+++ b/src/server/game/Movement/MovementGenerators/WaypointMovementGenerator.cpp
@@ -322,9 +322,9 @@ uint32 FlightPathMovementGenerator::GetPathAtMapEnd() const
if (i_currentNode >= i_path.size())
return i_path.size();
- uint32 curMapId = i_path[i_currentNode]->MapID;
+ uint32 curMapId = i_path[i_currentNode]->ContinentID;
for (uint32 i = i_currentNode; i < i_path.size(); ++i)
- if (i_path[i]->MapID != curMapId)
+ if (i_path[i]->ContinentID != curMapId)
return i;
return i_path.size();
@@ -334,7 +334,7 @@ uint32 FlightPathMovementGenerator::GetPathAtMapEnd() const
bool IsNodeIncludedInShortenedPath(TaxiPathNodeEntry const* p1, TaxiPathNodeEntry const* p2)
{
- return p1->MapID != p2->MapID || std::pow(p1->Loc.X - p2->Loc.X, 2) + std::pow(p1->Loc.Y - p2->Loc.Y, 2) > SKIP_SPLINE_POINT_DISTANCE_SQ;
+ return p1->ContinentID != p2->ContinentID || std::pow(p1->Loc.X - p2->Loc.X, 2) + std::pow(p1->Loc.Y - p2->Loc.Y, 2) > SKIP_SPLINE_POINT_DISTANCE_SQ;
}
void FlightPathMovementGenerator::LoadPath(Player* player, uint32 startNode /*= 0*/)
@@ -469,10 +469,10 @@ void FlightPathMovementGenerator::SetCurrentNodeAfterTeleport()
if (i_path.empty() || i_currentNode >= i_path.size())
return;
- uint32 map0 = i_path[i_currentNode]->MapID;
+ uint32 map0 = i_path[i_currentNode]->ContinentID;
for (size_t i = i_currentNode + 1; i < i_path.size(); ++i)
{
- if (i_path[i]->MapID != map0)
+ if (i_path[i]->ContinentID != map0)
{
i_currentNode = i;
return;
@@ -503,7 +503,7 @@ void FlightPathMovementGenerator::InitEndGridInfo()
/*! Storage to preload flightmaster grid at end of flight. For multi-stop flights, this will
be reinitialized for each flightmaster at the end of each spline (or stop) in the flight. */
uint32 nodeCount = i_path.size(); //! Number of nodes in path.
- _endMapId = i_path[nodeCount - 1]->MapID; //! MapId of last node
+ _endMapId = i_path[nodeCount - 1]->ContinentID; //! MapId of last node
_preloadTargetNode = nodeCount - 3;
_endGridX = i_path[nodeCount - 1]->Loc.X;
_endGridY = i_path[nodeCount - 1]->Loc.Y;
diff --git a/src/server/game/OutdoorPvP/OutdoorPvP.cpp b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
index 93c311ebafe..b561d74282c 100644
--- a/src/server/game/OutdoorPvP/OutdoorPvP.cpp
+++ b/src/server/game/OutdoorPvP/OutdoorPvP.cpp
@@ -655,7 +655,7 @@ void OutdoorPvP::SetMapFromZone(uint32 zone)
{
AreaTableEntry const* areaTable = sAreaTableStore.LookupEntry(zone);
ASSERT(areaTable);
- Map* map = sMapMgr->CreateBaseMap(areaTable->MapID);
+ Map* map = sMapMgr->CreateBaseMap(areaTable->ContinentID);
ASSERT(!map->Instanceable());
m_map = map;
}
diff --git a/src/server/game/Quests/QuestDef.cpp b/src/server/game/Quests/QuestDef.cpp
index 7e815ce9a42..6a71256a77b 100644
--- a/src/server/game/Quests/QuestDef.cpp
+++ b/src/server/game/Quests/QuestDef.cpp
@@ -274,7 +274,7 @@ uint32 Quest::XPValue(uint32 playerLevel) const
else if (diffFactor > 10)
diffFactor = 10;
- uint32 xp = diffFactor * questXp->Exp[RewardXPDifficulty] * RewardXPMultiplier / 10 * multiplier;
+ uint32 xp = diffFactor * questXp->Difficulty[RewardXPDifficulty] * RewardXPMultiplier / 10 * multiplier;
if (xp <= 100)
xp = 5 * ((xp + 2) / 5);
else if (xp <= 500)
@@ -295,7 +295,7 @@ uint32 Quest::MoneyValue(uint8 playerLevel) const
uint8 level = Level == -1 ? playerLevel : Level;
if (QuestMoneyRewardEntry const* money = sQuestMoneyRewardStore.LookupEntry(level))
- return money->Money[GetRewMoneyDifficulty()] * GetMoneyMultiplier();
+ return money->Difficulty[GetRewMoneyDifficulty()] * GetMoneyMultiplier();
else
return 0;
}
diff --git a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
index 1f91b0edd9f..7c5e119ac8e 100644
--- a/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
+++ b/src/server/game/Quests/QuestObjectiveCriteriaMgr.cpp
@@ -172,7 +172,7 @@ void QuestObjectiveCriteriaMgr::ResetCriteria(CriteriaTypes type, uint64 miscVal
CriteriaList const& playerCriteriaList = GetCriteriaByType(type);
for (Criteria const* playerCriteria : playerCriteriaList)
{
- if (playerCriteria->Entry->FailEvent != miscValue1 || (playerCriteria->Entry->FailAsset && playerCriteria->Entry->FailAsset != miscValue2))
+ if (playerCriteria->Entry->FailEvent != miscValue1 || (playerCriteria->Entry->FailAsset && playerCriteria->Entry->FailAsset != int64(miscValue2)))
continue;
std::vector<CriteriaTree const*> const* trees = sCriteriaMgr->GetCriteriaTreesByCriteria(playerCriteria->ID);
diff --git a/src/server/game/Reputation/ReputationMgr.cpp b/src/server/game/Reputation/ReputationMgr.cpp
index 99d13d2ed71..6a1d8253a58 100644
--- a/src/server/game/Reputation/ReputationMgr.cpp
+++ b/src/server/game/Reputation/ReputationMgr.cpp
@@ -296,9 +296,9 @@ bool ReputationMgr::SetReputation(FactionEntry const* factionEntry, int32 standi
// check for sub-factions that receive spillover
std::vector<uint32> const* flist = sDB2Manager.GetFactionTeamList(factionEntry->ID);
// if has no sub-factions, check for factions with same parent
- if (!flist && factionEntry->ParentFactionID && factionEntry->ParentFactionModOut != 0.0f)
+ if (!flist && factionEntry->ParentFactionID && factionEntry->ParentFactionMod[1] != 0.0f)
{
- spillOverRepOut *= factionEntry->ParentFactionModOut;
+ spillOverRepOut *= factionEntry->ParentFactionMod[1];
if (FactionEntry const* parent = sFactionStore.LookupEntry(factionEntry->ParentFactionID))
{
FactionStateList::iterator parentState = _factions.find(parent->ReputationIndex);
@@ -320,9 +320,9 @@ bool ReputationMgr::SetReputation(FactionEntry const* factionEntry, int32 standi
{
if (FactionEntry const* factionEntryCalc = sFactionStore.LookupEntry(*itr))
{
- if (factionEntryCalc == factionEntry || GetRank(factionEntryCalc) > ReputationRank(factionEntryCalc->ParentFactionCapIn))
+ if (factionEntryCalc == factionEntry || GetRank(factionEntryCalc) > ReputationRank(factionEntryCalc->ParentFactionCap[0]))
continue;
- int32 spilloverRep = int32(spillOverRepOut * factionEntryCalc->ParentFactionModIn);
+ int32 spilloverRep = int32(spillOverRepOut * factionEntryCalc->ParentFactionMod[0]);
if (spilloverRep != 0 || !incremental)
res = SetOneFactionReputation(factionEntryCalc, spilloverRep, incremental);
}
diff --git a/src/server/game/Scenarios/Scenario.cpp b/src/server/game/Scenarios/Scenario.cpp
index df36fec1cff..1e70b40cf54 100644
--- a/src/server/game/Scenarios/Scenario.cpp
+++ b/src/server/game/Scenarios/Scenario.cpp
@@ -54,7 +54,7 @@ void Scenario::Reset()
void Scenario::CompleteStep(ScenarioStepEntry const* step)
{
- if (Quest const* quest = sObjectMgr->GetQuestTemplate(step->QuestRewardID))
+ if (Quest const* quest = sObjectMgr->GetQuestTemplate(step->RewardQuestID))
for (ObjectGuid guid : _players)
if (Player* player = ObjectAccessor::FindPlayer(guid))
player->RewardQuest(quest, 0, nullptr, false);
@@ -63,7 +63,7 @@ void Scenario::CompleteStep(ScenarioStepEntry const* step)
return;
ScenarioStepEntry const* newStep = nullptr;
- for (auto _step : _data->Steps)
+ for (auto const& _step : _data->Steps)
{
if (_step.second->IsBonusObjective())
continue;
@@ -71,7 +71,7 @@ void Scenario::CompleteStep(ScenarioStepEntry const* step)
if (GetStepState(_step.second) == SCENARIO_STEP_DONE)
continue;
- if (!newStep || _step.second->Step < newStep->Step)
+ if (!newStep || _step.second->OrderIndex < newStep->OrderIndex)
newStep = _step.second;
}
@@ -246,7 +246,7 @@ ScenarioStepEntry const* Scenario::GetFirstStep() const
if (scenarioStep.second->IsBonusObjective())
continue;
- if (!firstStep || scenarioStep.second->Step < firstStep->Step)
+ if (!firstStep || scenarioStep.second->OrderIndex < firstStep->OrderIndex)
firstStep = scenarioStep.second;
}
@@ -268,7 +268,7 @@ std::vector<WorldPackets::Scenario::BonusObjectiveData> Scenario::GetBonusObject
if (!itr->second->IsBonusObjective())
continue;
- if (sCriteriaMgr->GetCriteriaTree(itr->second->CriteriaTreeID))
+ if (sCriteriaMgr->GetCriteriaTree(itr->second->Criteriatreeid))
{
WorldPackets::Scenario::BonusObjectiveData bonusObjectiveData;
bonusObjectiveData.BonusObjectiveID = itr->second->ID;
diff --git a/src/server/game/Scenarios/ScenarioMgr.cpp b/src/server/game/Scenarios/ScenarioMgr.cpp
index b29101fb556..c70e560efd7 100644
--- a/src/server/game/Scenarios/ScenarioMgr.cpp
+++ b/src/server/game/Scenarios/ScenarioMgr.cpp
@@ -117,8 +117,8 @@ void ScenarioMgr::LoadDB2Data()
for (ScenarioStepEntry const* step : sScenarioStepStore)
{
- scenarioSteps[step->ScenarioID][step->Step] = step;
- if (CriteriaTree const* tree = sCriteriaMgr->GetCriteriaTree(step->CriteriaTreeID))
+ scenarioSteps[step->ScenarioID][step->OrderIndex] = step;
+ if (CriteriaTree const* tree = sCriteriaMgr->GetCriteriaTree(step->Criteriatreeid))
{
uint32 criteriaTreeSize = 0;
CriteriaMgr::WalkCriteriaTree(tree, [&criteriaTreeSize](CriteriaTree const* /*tree*/)
diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
index d17e619ed78..8026a411168 100644
--- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp
+++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp
@@ -632,7 +632,7 @@ int32 AuraEffect::CalculateAmount(Unit* caster)
{
for (int t = 0; t < MAX_ITEM_ENCHANTMENT_EFFECTS; t++)
{
- if (pEnchant->EffectSpellID[t] == m_spellInfo->Id)
+ if (pEnchant->EffectArg[t] == m_spellInfo->Id)
{
amount = uint32((item_rand_suffix->AllocationPct[k] * castItem->GetItemSuffixFactor()) / 10000);
break;
@@ -673,7 +673,7 @@ int32 AuraEffect::CalculateAmount(Unit* caster)
{
uint32 mountType = uint32(GetMiscValueB());
if (MountEntry const* mountEntry = sDB2Manager.GetMount(GetId()))
- mountType = mountEntry->MountTypeId;
+ mountType = mountEntry->MountTypeID;
if (MountCapabilityEntry const* mountCapability = GetBase()->GetUnitOwner()->GetMountCapability(mountType))
{
@@ -2560,7 +2560,7 @@ void AuraEffect::HandleAuraMounted(AuraApplication const* aurApp, uint8 mode, bo
});
if (!usableDisplays.empty())
- displayId = Trinity::Containers::SelectRandomContainerElement(usableDisplays)->DisplayID;
+ displayId = Trinity::Containers::SelectRandomContainerElement(usableDisplays)->CreatureDisplayInfoID;
}
}
// TODO: CREATE TABLE mount_vehicle (mountId, vehicleCreatureId) for future mounts that are vehicles (new mounts no longer have proper data in MiscValue)
@@ -2589,7 +2589,7 @@ void AuraEffect::HandleAuraMounted(AuraApplication const* aurApp, uint8 mode, bo
// cast speed aura
if (mode & AURA_EFFECT_HANDLE_REAL)
if (MountCapabilityEntry const* mountCapability = sMountCapabilityStore.LookupEntry(GetAmount()))
- target->CastSpell(target, mountCapability->SpeedModSpell, true);
+ target->CastSpell(target, mountCapability->ModSpellAuraID, true);
}
else
{
@@ -2603,7 +2603,7 @@ void AuraEffect::HandleAuraMounted(AuraApplication const* aurApp, uint8 mode, bo
// remove speed aura
if (MountCapabilityEntry const* mountCapability = sMountCapabilityStore.LookupEntry(GetAmount()))
- target->RemoveAurasDueToSpell(mountCapability->SpeedModSpell, target->GetGUID());
+ target->RemoveAurasDueToSpell(mountCapability->ModSpellAuraID, target->GetGUID());
}
}
}
@@ -3802,7 +3802,7 @@ void AuraEffect::HandleAuraModOverridePowerDisplay(AuraApplication const* aurApp
return;
Unit* target = aurApp->GetTarget();
- if (target->GetPowerIndex(Powers(powerDisplay->PowerType)) == MAX_POWERS)
+ if (target->GetPowerIndex(Powers(powerDisplay->ActualType)) == MAX_POWERS)
return;
if (apply)
@@ -4917,7 +4917,7 @@ void AuraEffect::HandleAuraOverrideSpells(AuraApplication const* aurApp, uint8 m
target->SetUInt16Value(PLAYER_FIELD_BYTES3, PLAYER_BYTES_3_OVERRIDE_SPELLS_UINT16_OFFSET, overrideId);
if (OverrideSpellDataEntry const* overrideSpells = sOverrideSpellDataStore.LookupEntry(overrideId))
for (uint8 i = 0; i < MAX_OVERRIDE_SPELL; ++i)
- if (uint32 spellId = overrideSpells->SpellID[i])
+ if (uint32 spellId = overrideSpells->Spells[i])
target->AddTemporarySpell(spellId);
}
else
@@ -4925,7 +4925,7 @@ void AuraEffect::HandleAuraOverrideSpells(AuraApplication const* aurApp, uint8 m
target->SetUInt16Value(PLAYER_FIELD_BYTES3, PLAYER_BYTES_3_OVERRIDE_SPELLS_UINT16_OFFSET, 0);
if (OverrideSpellDataEntry const* overrideSpells = sOverrideSpellDataStore.LookupEntry(overrideId))
for (uint8 i = 0; i < MAX_OVERRIDE_SPELL; ++i)
- if (uint32 spellId = overrideSpells->SpellID[i])
+ if (uint32 spellId = overrideSpells->Spells[i])
target->RemoveTemporarySpell(spellId);
}
}
diff --git a/src/server/game/Spells/Auras/SpellAuras.cpp b/src/server/game/Spells/Auras/SpellAuras.cpp
index 64643964169..e81659a298a 100644
--- a/src/server/game/Spells/Auras/SpellAuras.cpp
+++ b/src/server/game/Spells/Auras/SpellAuras.cpp
@@ -353,7 +353,7 @@ m_lastProcAttemptTime(std::chrono::steady_clock::now() - Seconds(10)), m_lastPro
{
std::vector<SpellPowerEntry const*> powers = sDB2Manager.GetSpellPowers(GetId(), caster ? caster->GetMap()->GetDifficultyID() : DIFFICULTY_NONE);
for (SpellPowerEntry const* power : powers)
- if (power->ManaCostPerSecond != 0 || power->ManaCostPercentagePerSecond > 0.0f)
+ if (power->ManaPerSecond != 0 || power->PowerPctPerSecond > 0.0f)
m_periodicCosts.push_back(power);
if (!m_periodicCosts.empty())
@@ -728,15 +728,15 @@ void Aura::Update(uint32 diff, Unit* caster)
for (SpellPowerEntry const* power : m_periodicCosts)
{
- if (power->RequiredAura && !caster->HasAura(power->RequiredAura))
+ if (power->RequiredAuraSpellID && !caster->HasAura(power->RequiredAuraSpellID))
continue;
- int32 manaPerSecond = power->ManaCostPerSecond;
+ int32 manaPerSecond = power->ManaPerSecond;
Powers powertype = Powers(power->PowerType);
if (powertype != POWER_HEALTH)
- manaPerSecond += int32(CalculatePct(caster->GetMaxPower(powertype), power->ManaCostPercentagePerSecond));
+ manaPerSecond += int32(CalculatePct(caster->GetMaxPower(powertype), power->PowerPctPerSecond));
else
- manaPerSecond += int32(CalculatePct(caster->GetMaxHealth(), power->ManaCostPercentagePerSecond));
+ manaPerSecond += int32(CalculatePct(caster->GetMaxHealth(), power->PowerPctPerSecond));
if (manaPerSecond)
{
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 2e103d58b49..f2c8973ad1c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -4317,9 +4317,9 @@ void Spell::UpdateSpellCastDataAmmo(WorldPackets::Spells::SpellAmmo& ammo)
{
if (ItemEntry const* itemEntry = sItemStore.LookupEntry(item_id))
{
- if (itemEntry->Class == ITEM_CLASS_WEAPON)
+ if (itemEntry->ClassID == ITEM_CLASS_WEAPON)
{
- switch (itemEntry->SubClass)
+ switch (itemEntry->SubclassID)
{
case ITEM_SUBCLASS_WEAPON_THROWN:
ammoDisplayID = sDB2Manager.GetItemDisplayId(item_id, m_caster->GetVirtualItemAppearanceMod(i));
@@ -5504,7 +5504,7 @@ SpellCastResult Spell::CheckCast(bool strict, uint32* param1 /*= nullptr*/, uint
SummonPropertiesEntry const* SummonProperties = sSummonPropertiesStore.LookupEntry(effect->MiscValueB);
if (!SummonProperties)
break;
- switch (SummonProperties->Category)
+ switch (SummonProperties->Control)
{
case SUMMON_CATEGORY_PET:
if (!m_spellInfo->HasAttribute(SPELL_ATTR1_DISMISS_PET) && !m_caster->GetPetGUID().IsEmpty())
@@ -6467,7 +6467,7 @@ SpellCastResult Spell::CheckItems(uint32* param1 /*= nullptr*/, uint32* param2 /
ItemTemplate const* proto = targetItem->GetTemplate();
for (uint8 e = 0; e < proto->Effects.size(); ++e)
{
- if (proto->Effects[e]->SpellID && proto->Effects[e]->Trigger == ITEM_SPELLTRIGGER_ON_USE)
+ if (proto->Effects[e]->SpellID && proto->Effects[e]->TriggerType == ITEM_SPELLTRIGGER_ON_USE)
{
isItemUsable = true;
break;
@@ -6548,7 +6548,7 @@ SpellCastResult Spell::CheckItems(uint32* param1 /*= nullptr*/, uint32* param2 /
ItemDisenchantLootEntry const* itemDisenchantLoot = item->GetDisenchantLoot(m_caster->ToPlayer());
if (!itemDisenchantLoot)
return SPELL_FAILED_CANT_BE_DISENCHANTED;
- if (itemDisenchantLoot->RequiredDisenchantSkill > player->GetSkillValue(SKILL_ENCHANTING))
+ if (itemDisenchantLoot->SkillRequired > player->GetSkillValue(SKILL_ENCHANTING))
return SPELL_FAILED_LOW_CASTLEVEL;
break;
}
@@ -7238,7 +7238,7 @@ SpellCastResult Spell::CanOpenLock(uint32 effIndex, uint32 lockId, SkillType& sk
{
// check key item (many fit cases can be)
case LOCK_KEY_ITEM:
- if (lockInfo->Index[j] && m_CastItem && m_CastItem->GetEntry() == lockInfo->Index[j])
+ if (lockInfo->Index[j] && m_CastItem && int32(m_CastItem->GetEntry()) == lockInfo->Index[j])
return SPELL_CAST_OK;
reqKey = true;
break;
@@ -7248,7 +7248,7 @@ SpellCastResult Spell::CanOpenLock(uint32 effIndex, uint32 lockId, SkillType& sk
reqKey = true;
// wrong locktype, skip
- if (uint32(effect->MiscValue) != lockInfo->Index[j])
+ if (effect->MiscValue != lockInfo->Index[j])
continue;
skillId = SkillByLockType(LockType(lockInfo->Index[j]));
diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp
index 4ba39388043..ceafaaf797f 100644
--- a/src/server/game/Spells/SpellEffects.cpp
+++ b/src/server/game/Spells/SpellEffects.cpp
@@ -2008,7 +2008,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex)
break;
}
- switch (properties->Category)
+ switch (properties->Control)
{
case SUMMON_CATEGORY_WILD:
case SUMMON_CATEGORY_ALLY:
@@ -2018,7 +2018,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex)
SummonGuardian(effIndex, entry, properties, numSummons);
break;
}
- switch (properties->Type)
+ switch (properties->Title)
{
case SUMMON_TYPE_PET:
case SUMMON_TYPE_GUARDIAN:
@@ -2078,7 +2078,7 @@ void Spell::EffectSummonType(SpellEffIndex effIndex)
if (!summon)
continue;
- if (properties->Category == SUMMON_CATEGORY_ALLY)
+ if (properties->Control == SUMMON_CATEGORY_ALLY)
{
summon->SetOwnerGUID(m_originalCaster->GetGUID());
summon->setFaction(m_originalCaster->getFaction());
@@ -5175,7 +5175,7 @@ void Spell::SummonGuardian(uint32 i, uint32 entry, SummonPropertiesEntry const*
if (summon->HasUnitTypeMask(UNIT_MASK_GUARDIAN))
((Guardian*)summon)->InitStatsForLevel(level);
- if (properties && properties->Category == SUMMON_CATEGORY_ALLY)
+ if (properties && properties->Control == SUMMON_CATEGORY_ALLY)
summon->setFaction(caster->getFaction());
if (summon->HasUnitTypeMask(UNIT_MASK_MINION) && m_targets.HasDst())
@@ -5681,7 +5681,7 @@ void Spell::EffectUpgradeHeirloom(SpellEffIndex /*effIndex*/)
if (Player* player = m_caster->ToPlayer())
if (CollectionMgr* collectionMgr = player->GetSession()->GetCollectionMgr())
- collectionMgr->UpgradeHeirloom(m_misc.Raw.Data[0], m_castItemEntry);
+ collectionMgr->UpgradeHeirloom(m_misc.Raw.Data[0], int32(m_castItemEntry));
}
void Spell::EffectApplyEnchantIllusion(SpellEffIndex /*effIndex*/)
diff --git a/src/server/game/Spells/SpellHistory.cpp b/src/server/game/Spells/SpellHistory.cpp
index 50b27ec19fa..e055f9c7801 100644
--- a/src/server/game/Spells/SpellHistory.cpp
+++ b/src/server/game/Spells/SpellHistory.cpp
@@ -884,11 +884,11 @@ void SpellHistory::GetCooldownDurations(SpellInfo const* spellInfo, uint32 itemI
{
for (ItemEffectEntry const* itemEffect : proto->Effects)
{
- if (itemEffect->SpellID == spellInfo->Id)
+ if (uint32(itemEffect->SpellID) == spellInfo->Id)
{
- tmpCooldown = itemEffect->Cooldown;
- tmpCategoryId = itemEffect->Category;
- tmpCategoryCooldown = itemEffect->CategoryCooldown;
+ tmpCooldown = itemEffect->CoolDownMSec;
+ tmpCategoryId = itemEffect->SpellCategoryID;
+ tmpCategoryCooldown = itemEffect->CategoryCoolDownMSec;
break;
}
}
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index 4e6311ec0bf..2592c973e8d 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -383,14 +383,14 @@ SpellEffectInfo::SpellEffectInfo(SpellInfo const* spellInfo, uint8 effIndex, Spe
Amplitude = _effect ? _effect->EffectAmplitude : 0.0f;
ChainAmplitude = _effect ? _effect->EffectChainAmplitude : 0.0f;
BonusCoefficient = _effect ? _effect->EffectBonusCoefficient : 0.0f;
- MiscValue = _effect ? _effect->EffectMiscValue : 0;
- MiscValueB = _effect ? _effect->EffectMiscValueB : 0;
+ MiscValue = _effect ? _effect->EffectMiscValue[0] : 0;
+ MiscValueB = _effect ? _effect->EffectMiscValue[1] : 0;
Mechanic = Mechanics(_effect ? _effect->EffectMechanic : 0);
PositionFacing = _effect ? _effect->EffectPosFacing : 0.0f;
TargetA = SpellImplicitTargetInfo(_effect ? _effect->ImplicitTarget[0] : 0);
TargetB = SpellImplicitTargetInfo(_effect ? _effect->ImplicitTarget[1] : 0);
- RadiusEntry = _effect && _effect->EffectRadiusIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusIndex) : NULL;
- MaxRadiusEntry = _effect && _effect->EffectRadiusMaxIndex ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusMaxIndex) : NULL;
+ RadiusEntry = _effect && _effect->EffectRadiusIndex[0] ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusIndex[0]) : NULL;
+ MaxRadiusEntry = _effect && _effect->EffectRadiusIndex[1] ? sSpellRadiusStore.LookupEntry(_effect->EffectRadiusIndex[1]) : NULL;
ChainTargets = _effect ? _effect->EffectChainTargets : 0;
ItemType = _effect ? _effect->EffectItemType : 0;
TriggerSpell = _effect ? _effect->EffectTriggerSpell : 0;
@@ -1002,20 +1002,20 @@ SpellInfo::SpellInfo(SpellInfoLoadHelper const& data, SpellEffectEntryMap const&
// SpellMiscEntry
SpellMiscEntry const* _misc = data.Misc;
- Attributes = _misc ? _misc->Attributes : 0;
- AttributesEx = _misc ? _misc->AttributesEx : 0;
- AttributesEx2 = _misc ? _misc->AttributesExB : 0;
- AttributesEx3 = _misc ? _misc->AttributesExC : 0;
- AttributesEx4 = _misc ? _misc->AttributesExD : 0;
- AttributesEx5 = _misc ? _misc->AttributesExE : 0;
- AttributesEx6 = _misc ? _misc->AttributesExF : 0;
- AttributesEx7 = _misc ? _misc->AttributesExG : 0;
- AttributesEx8 = _misc ? _misc->AttributesExH : 0;
- AttributesEx9 = _misc ? _misc->AttributesExI : 0;
- AttributesEx10 = _misc ? _misc->AttributesExJ : 0;
- AttributesEx11 = _misc ? _misc->AttributesExK : 0;
- AttributesEx12 = _misc ? _misc->AttributesExL : 0;
- AttributesEx13 = _misc ? _misc->AttributesExM : 0;
+ Attributes = _misc ? _misc->Attributes[0] : 0;
+ AttributesEx = _misc ? _misc->Attributes[1] : 0;
+ AttributesEx2 = _misc ? _misc->Attributes[2] : 0;
+ AttributesEx3 = _misc ? _misc->Attributes[3] : 0;
+ AttributesEx4 = _misc ? _misc->Attributes[4] : 0;
+ AttributesEx5 = _misc ? _misc->Attributes[5] : 0;
+ AttributesEx6 = _misc ? _misc->Attributes[6] : 0;
+ AttributesEx7 = _misc ? _misc->Attributes[7] : 0;
+ AttributesEx8 = _misc ? _misc->Attributes[8] : 0;
+ AttributesEx9 = _misc ? _misc->Attributes[9] : 0;
+ AttributesEx10 = _misc ? _misc->Attributes[10] : 0;
+ AttributesEx11 = _misc ? _misc->Attributes[11] : 0;
+ AttributesEx12 = _misc ? _misc->Attributes[12] : 0;
+ AttributesEx13 = _misc ? _misc->Attributes[13] : 0;
CastTimeEntry = _misc ? (_misc->CastingTimeIndex ? sSpellCastTimesStore.LookupEntry(_misc->CastingTimeIndex) : NULL) : NULL;
DurationEntry = _misc ? (_misc->DurationIndex ? sSpellDurationStore.LookupEntry(_misc->DurationIndex) : NULL) : NULL;
RangeIndex = _misc ? _misc->RangeIndex : 0;
@@ -1023,17 +1023,17 @@ SpellInfo::SpellInfo(SpellInfoLoadHelper const& data, SpellEffectEntryMap const&
Speed = _misc ? _misc->Speed : 0;
SchoolMask = _misc ? _misc->SchoolMask : 0;
AttributesCu = 0;
- IconFileDataId = _misc ? _misc->IconFileDataID : 0;
+ IconFileDataId = _misc ? _misc->SpellIconFileDataID : 0;
ActiveIconFileDataId = _misc ? _misc->ActiveIconFileDataID : 0;
_visuals = std::move(visuals);
// sort all visuals so that the ones without a condition requirement are last on the list
for (auto& visualPair : _visuals)
- std::sort(visualPair.second.begin(), visualPair.second.end(), [](SpellXSpellVisualEntry const* first, SpellXSpellVisualEntry const* second) { return first->PlayerConditionID > second->PlayerConditionID; });
+ std::sort(visualPair.second.begin(), visualPair.second.end(), [](SpellXSpellVisualEntry const* first, SpellXSpellVisualEntry const* second) { return first->CasterPlayerConditionID > second->CasterPlayerConditionID; });
// SpellScalingEntry
SpellScalingEntry const* _scaling = data.Scaling;
- Scaling.Class = _scaling ? _scaling->ScalingClass : 0;
+ Scaling.Class = _scaling ? _scaling->Class : 0;
Scaling.MinScalingLevel = _scaling ? _scaling->MinScalingLevel : 0;
Scaling.MaxScalingLevel = _scaling ? _scaling->MaxScalingLevel : 0;
Scaling.ScalesFromItemLevel = _scaling ? _scaling->ScalesFromItemLevel : 0;
@@ -1091,8 +1091,8 @@ SpellInfo::SpellInfo(SpellInfoLoadHelper const& data, SpellEffectEntryMap const&
// SpellEquippedItemsEntry
SpellEquippedItemsEntry const* _equipped = data.EquippedItems;
EquippedItemClass = _equipped ? _equipped->EquippedItemClass : -1;
- EquippedItemSubClassMask = _equipped ?_equipped->EquippedItemSubClassMask : -1;
- EquippedItemInventoryTypeMask = _equipped ? _equipped->EquippedItemInventoryTypeMask : -1;
+ EquippedItemSubClassMask = _equipped ?_equipped->EquippedItemSubclass : -1;
+ EquippedItemInventoryTypeMask = _equipped ? _equipped->EquippedItemInvTypes : -1;
// SpellInterruptsEntry
if (SpellInterruptsEntry const* _interrupt = data.Interrupts)
@@ -1131,11 +1131,11 @@ SpellInfo::SpellInfo(SpellInfoLoadHelper const& data, SpellEffectEntryMap const&
// SpellTargetRestrictionsEntry
SpellTargetRestrictionsEntry const* _target = data.TargetRestrictions;
- ConeAngle = _target ? _target->ConeAngle : 0.f;
+ ConeAngle = _target ? _target->ConeDegrees : 0.f;
Width = _target ? _target->Width : 0.f;
Targets = _target ? _target->Targets : 0;
TargetCreatureType = _target ? _target->TargetCreatureType : 0;
- MaxAffectedTargets = _target ? _target->MaxAffectedTargets : 0;
+ MaxAffectedTargets = _target ? _target->MaxTargets : 0;
MaxTargetLevel = _target ? _target->MaxTargetLevel : 0;
// SpellTotemsEntry
@@ -1328,7 +1328,7 @@ bool SpellInfo::IsAbilityOfSkillType(uint32 skillType) const
SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(Id);
for (SkillLineAbilityMap::const_iterator _spell_idx = bounds.first; _spell_idx != bounds.second; ++_spell_idx)
- if (_spell_idx->second->SkillLine == uint32(skillType))
+ if (_spell_idx->second->SkillLine == int32(skillType))
return true;
return false;
@@ -1905,7 +1905,7 @@ SpellCastResult SpellInfo::CheckLocation(uint32 map_id, uint32 zone_id, uint32 a
{
uint32 mountType = effect->MiscValueB;
if (MountEntry const* mountEntry = sDB2Manager.GetMount(Id))
- mountType = mountEntry->MountTypeId;
+ mountType = mountEntry->MountTypeID;
if (mountType && !player->GetMountCapability(mountType))
return SPELL_FAILED_NOT_HERE;
break;
@@ -2139,11 +2139,11 @@ SpellCastResult SpellInfo::CheckVehicle(Unit const* caster) const
VehicleSeatEntry const* vehicleSeat = vehicle->GetSeatForPassenger(caster);
if (!HasAttribute(SPELL_ATTR6_CASTABLE_WHILE_ON_VEHICLE) && !HasAttribute(SPELL_ATTR0_CASTABLE_WHILE_MOUNTED)
- && (vehicleSeat->Flags[0] & checkMask) != checkMask)
+ && (vehicleSeat->Flags & checkMask) != checkMask)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
// Can only summon uncontrolled minions/guardians when on controlled vehicle
- if (vehicleSeat->Flags[0] & (VEHICLE_SEAT_FLAG_CAN_CONTROL | VEHICLE_SEAT_FLAG_UNK2))
+ if (vehicleSeat->Flags & (VEHICLE_SEAT_FLAG_CAN_CONTROL | VEHICLE_SEAT_FLAG_UNK2))
{
for (SpellEffectInfo const* effect : GetEffectsForDifficulty(caster->GetMap()->GetDifficultyID()))
{
@@ -2151,7 +2151,7 @@ SpellCastResult SpellInfo::CheckVehicle(Unit const* caster) const
continue;
SummonPropertiesEntry const* props = sSummonPropertiesStore.LookupEntry(effect->MiscValueB);
- if (props && props->Category != SUMMON_CATEGORY_WILD)
+ if (props && props->Control != SUMMON_CATEGORY_WILD)
return SPELL_FAILED_CANT_DO_THAT_RIGHT_NOW;
}
}
@@ -3473,20 +3473,14 @@ float SpellInfo::GetMinRange(bool positive) const
{
if (!RangeEntry)
return 0.0f;
- if (positive)
- return RangeEntry->MinRangeFriend;
- return RangeEntry->MinRangeHostile;
+ return RangeEntry->RangeMin[positive ? 1 : 0];
}
float SpellInfo::GetMaxRange(bool positive, Unit* caster, Spell* spell) const
{
if (!RangeEntry)
return 0.0f;
- float range;
- if (positive)
- range = RangeEntry->MaxRangeFriend;
- else
- range = RangeEntry->MaxRangeHostile;
+ float range = RangeEntry->RangeMax[positive ? 1 : 0];
if (caster)
if (Player* modOwner = caster->GetSpellModOwner())
modOwner->ApplySpellMod(Id, SPELLMOD_RANGE, range, spell);
@@ -3539,9 +3533,9 @@ uint32 SpellInfo::CalcCastTime(uint8 level, Spell* spell /*= NULL*/) const
if (calcLevel < 0)
calcLevel = 0;
- castTime = CastTimeEntry->CastTime + CastTimeEntry->CastTimePerLevel * level;
- if (castTime < CastTimeEntry->MinCastTime)
- castTime = CastTimeEntry->MinCastTime;
+ castTime = CastTimeEntry->Base + CastTimeEntry->PerLevel * level;
+ if (castTime < CastTimeEntry->Minimum)
+ castTime = CastTimeEntry->Minimum;
}
if (castTime <= 0)
@@ -3606,7 +3600,7 @@ std::vector<SpellPowerCost> SpellInfo::CalcPowerCost(Unit const* caster, SpellSc
for (SpellPowerEntry const* power : powers)
{
- if (power->RequiredAura && !caster->HasAura(power->RequiredAura))
+ if (power->RequiredAuraSpellID && !caster->HasAura(power->RequiredAuraSpellID))
continue;
// Spell drain all exist power on cast (Only paladin lay of Hands)
@@ -3635,21 +3629,21 @@ std::vector<SpellPowerCost> SpellInfo::CalcPowerCost(Unit const* caster, SpellSc
// Base powerCost
int32 powerCost = power->ManaCost;
// PCT cost from total amount
- if (power->ManaCostPercentage)
+ if (power->PowerCostPct)
{
switch (power->PowerType)
{
// health as power used
case POWER_HEALTH:
- powerCost += int32(CalculatePct(caster->GetMaxHealth(), power->ManaCostPercentage));
+ powerCost += int32(CalculatePct(caster->GetMaxHealth(), power->PowerCostPct));
break;
case POWER_MANA:
- powerCost += int32(CalculatePct(caster->GetCreateMana(), power->ManaCostPercentage));
+ powerCost += int32(CalculatePct(caster->GetCreateMana(), power->PowerCostPct));
break;
case POWER_RAGE:
case POWER_FOCUS:
case POWER_ENERGY:
- powerCost += int32(CalculatePct(caster->GetMaxPower(Powers(power->PowerType)), power->ManaCostPercentage));
+ powerCost += int32(CalculatePct(caster->GetMaxPower(Powers(power->PowerType)), power->PowerCostPct));
break;
case POWER_RUNES:
case POWER_RUNIC_POWER:
@@ -3661,8 +3655,8 @@ std::vector<SpellPowerCost> SpellInfo::CalcPowerCost(Unit const* caster, SpellSc
}
}
- if (power->HealthCostPercentage)
- healthCost += int32(CalculatePct(caster->GetMaxHealth(), power->HealthCostPercentage));
+ if (power->PowerCostMaxPct)
+ healthCost += int32(CalculatePct(caster->GetMaxHealth(), power->PowerCostMaxPct));
if (power->PowerType != POWER_HEALTH)
{
@@ -3701,13 +3695,13 @@ std::vector<SpellPowerCost> SpellInfo::CalcPowerCost(Unit const* caster, SpellSc
// Apply cost mod by spell
if (Player* modOwner = caster->GetSpellModOwner())
{
- if (power->PowerIndex == 0)
+ if (power->OrderIndex == 0)
modOwner->ApplySpellMod(Id, SPELLMOD_COST, powerCost);
- else if (power->PowerIndex == 1)
+ else if (power->OrderIndex == 1)
modOwner->ApplySpellMod(Id, SPELLMOD_SPELL_COST2, powerCost);
}
- if (!caster->IsControlledByPlayer() && G3D::fuzzyEq(power->ManaCostPercentage, 0.0f) && SpellLevel)
+ if (!caster->IsControlledByPlayer() && G3D::fuzzyEq(power->PowerCostPct, 0.0f) && SpellLevel)
{
if (HasAttribute(SPELL_ATTR0_LEVEL_DAMAGE_CALCULATION))
{
@@ -3827,7 +3821,7 @@ inline float CalcPPMCritMod(SpellProcsPerMinuteModEntry const* mod, Unit* caster
inline float CalcPPMItemLevelMod(SpellProcsPerMinuteModEntry const* mod, int32 itemLevel)
{
- if (uint32(itemLevel) == mod->Param)
+ if (itemLevel == mod->Param)
return 0.0f;
float itemLevelPoints = GetRandomPropertyPoints(itemLevel, ITEM_QUALITY_RARE, INVTYPE_CHEST, 0);
@@ -3867,7 +3861,7 @@ float SpellInfo::CalcProcPPM(Unit* caster, int32 itemLevel) const
case SPELL_PPM_MOD_SPEC:
{
if (Player* plrCaster = caster->ToPlayer())
- if (plrCaster->GetUInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID) == mod->Param)
+ if (plrCaster->GetInt32Value(PLAYER_FIELD_CURRENT_SPEC_ID) == mod->Param)
ppm *= 1.0f + mod->Coeff;
break;
}
@@ -4012,7 +4006,7 @@ uint32 SpellInfo::GetSpellXSpellVisualId(Unit const* caster /*= nullptr*/) const
{
for (SpellXSpellVisualEntry const* visual : itr->second)
{
- PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(visual->PlayerConditionID);
+ PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(visual->CasterPlayerConditionID);
if (!playerCondition || (caster->GetTypeId() == TYPEID_PLAYER && sConditionMgr->IsPlayerMeetingCondition(caster->ToPlayer(), playerCondition)))
return visual->ID;
}
@@ -4027,7 +4021,7 @@ uint32 SpellInfo::GetSpellXSpellVisualId(Unit const* caster /*= nullptr*/) const
{
for (SpellXSpellVisualEntry const* visual : itr->second)
{
- PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(visual->PlayerConditionID);
+ PlayerConditionEntry const* playerCondition = sPlayerConditionStore.LookupEntry(visual->CasterPlayerConditionID);
if (!playerCondition || (caster && caster->GetTypeId() == TYPEID_PLAYER && sConditionMgr->IsPlayerMeetingCondition(caster->ToPlayer(), playerCondition)))
return visual->ID;
}
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index a8649bbca33..3b5089860c5 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -51,7 +51,7 @@ bool IsPartOfSkillLine(uint32 skillId, uint32 spellId)
{
SkillLineAbilityMapBounds skillBounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellId);
for (SkillLineAbilityMap::const_iterator itr = skillBounds.first; itr != skillBounds.second; ++itr)
- if (itr->second->SkillLine == skillId)
+ if (itr->second->SkillLine == int32(skillId))
return true;
return false;
@@ -724,11 +724,11 @@ void SpellMgr::LoadSpellRanks()
if (!skillAbility->SupercedesSpell)
continue;
- if (!GetSpellInfo(skillAbility->SupercedesSpell) || !GetSpellInfo(skillAbility->SpellID))
+ if (!GetSpellInfo(skillAbility->SupercedesSpell) || !GetSpellInfo(skillAbility->Spell))
continue;
- chains[skillAbility->SupercedesSpell] = skillAbility->SpellID;
- hasPrev.insert(skillAbility->SpellID);
+ chains[skillAbility->SupercedesSpell] = skillAbility->Spell;
+ hasPrev.insert(skillAbility->Spell);
}
// each key in chains that isn't present in hasPrev is a first rank
@@ -1007,7 +1007,7 @@ void SpellMgr::LoadSpellLearnSpells()
bool found = false;
for (SpellLearnSpellMap::const_iterator itr = db_node_bounds.first; itr != db_node_bounds.second; ++itr)
{
- if (itr->second.Spell == spellLearnSpell->SpellID)
+ if (int32(itr->second.Spell) == spellLearnSpell->SpellID)
{
TC_LOG_ERROR("sql.sql", "Found redundant record (entry: %u, SpellID: %u) in `spell_learn_spell`, spell added automatically from SpellLearnSpell.db2", spellLearnSpell->LearnSpellID, spellLearnSpell->SpellID);
found = true;
@@ -1023,7 +1023,7 @@ void SpellMgr::LoadSpellLearnSpells()
found = false;
for (SpellLearnSpellMap::const_iterator itr = dbc_node_bounds.first; itr != dbc_node_bounds.second; ++itr)
{
- if (itr->second.Spell == spellLearnSpell->SpellID)
+ if (int32(itr->second.Spell) == spellLearnSpell->SpellID)
{
found = true;
break;
@@ -1642,7 +1642,7 @@ void SpellMgr::LoadSkillLineAbilityMap()
if (!SkillInfo)
continue;
- mSkillLineAbilityMap.insert(SkillLineAbilityMap::value_type(SkillInfo->SpellID, SkillInfo));
+ mSkillLineAbilityMap.insert(SkillLineAbilityMap::value_type(SkillInfo->Spell, SkillInfo));
++count;
}
@@ -1893,7 +1893,7 @@ void SpellMgr::LoadPetLevelupSpellMap()
if (skillLine->AcquireMethod != SKILL_LINE_ABILITY_LEARNED_ON_SKILL_LEARN)
continue;
- SpellInfo const* spell = GetSpellInfo(skillLine->SpellID);
+ SpellInfo const* spell = GetSpellInfo(skillLine->Spell);
if (!spell) // not exist or triggered or talent
continue;
@@ -2212,20 +2212,20 @@ void SpellMgr::LoadSpellInfoStore()
mSpellInfoMap.resize(sSpellStore.GetNumRows(), NULL);
std::unordered_map<uint32, SpellInfoLoadHelper> loadData;
- std::unordered_map<uint32, SpellEffectEntryMap> effectsBySpell;
+ std::unordered_map<int32, SpellEffectEntryMap> effectsBySpell;
std::unordered_map<uint32, SpellVisualMap> visualsBySpell;
for (SpellEffectEntry const* effect : sSpellEffectStore)
{
- ASSERT(effect->EffectIndex < MAX_SPELL_EFFECTS, "MAX_SPELL_EFFECTS must be at least %u", effect->EffectIndex + 1);
+ ASSERT(effect->EffectIndex < MAX_SPELL_EFFECTS, "MAX_SPELL_EFFECTS must be at least %d", effect->EffectIndex + 1);
ASSERT(effect->Effect < TOTAL_SPELL_EFFECTS, "TOTAL_SPELL_EFFECTS must be at least %u", effect->Effect + 1);
- ASSERT(effect->EffectAura < TOTAL_AURAS, "TOTAL_AURAS must be at least %u", effect->EffectAura + 1);
+ ASSERT(effect->EffectAura < int32(TOTAL_AURAS), "TOTAL_AURAS must be at least %d", effect->EffectAura + 1);
ASSERT(effect->ImplicitTarget[0] < TOTAL_SPELL_TARGETS, "TOTAL_SPELL_TARGETS must be at least %u", effect->ImplicitTarget[0] + 1);
ASSERT(effect->ImplicitTarget[1] < TOTAL_SPELL_TARGETS, "TOTAL_SPELL_TARGETS must be at least %u", effect->ImplicitTarget[1] + 1);
SpellEffectEntryVector& effectsForDifficulty = effectsBySpell[effect->SpellID][effect->DifficultyID];
- if (effectsForDifficulty.size() <= effect->EffectIndex)
- effectsForDifficulty.resize(effect->EffectIndex + 1);
+ if (effectsForDifficulty.size() <= std::size_t(effect->EffectIndex))
+ effectsForDifficulty.resize(std::size_t(effect->EffectIndex + 1));
effectsForDifficulty[effect->EffectIndex] = effect;
}
@@ -2437,7 +2437,7 @@ void SpellMgr::LoadSpellInfoCustomAttributes()
if (enchant->Effect[s] != ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
continue;
- SpellInfo* procInfo = _GetSpellInfo(enchant->EffectSpellID[s]);
+ SpellInfo* procInfo = _GetSpellInfo(enchant->EffectArg[s]);
if (!procInfo)
continue;
@@ -3402,11 +3402,11 @@ void SpellMgr::LoadSpellInfoCorrections()
}
if (SummonPropertiesEntry* properties = const_cast<SummonPropertiesEntry*>(sSummonPropertiesStore.LookupEntry(121)))
- properties->Type = SUMMON_TYPE_TOTEM;
+ properties->Title = SUMMON_TYPE_TOTEM;
if (SummonPropertiesEntry* properties = const_cast<SummonPropertiesEntry*>(sSummonPropertiesStore.LookupEntry(647))) // 52893
- properties->Type = SUMMON_TYPE_TOTEM;
+ properties->Title = SUMMON_TYPE_TOTEM;
if (SummonPropertiesEntry* properties = const_cast<SummonPropertiesEntry*>(sSummonPropertiesStore.LookupEntry(628))) // Hungry Plaguehound
- properties->Category = SUMMON_CATEGORY_PET;
+ properties->Control = SUMMON_CATEGORY_PET;
TC_LOG_INFO("server.loading", ">> Loaded SpellInfo corrections in %u ms", GetMSTimeDiffToNow(oldMSTime));
}
@@ -3467,11 +3467,11 @@ void SpellMgr::LoadPetFamilySpellsStore()
for (SkillLineAbilityEntry const* skillLine : sSkillLineAbilityStore)
{
- SpellInfo const* spellInfo = GetSpellInfo(skillLine->SpellID);
+ SpellInfo const* spellInfo = GetSpellInfo(skillLine->Spell);
if (!spellInfo)
continue;
- auto levels = levelsBySpell.find(skillLine->SpellID);
+ auto levels = levelsBySpell.find(skillLine->Spell);
if (levels != levelsBySpell.end() && levels->second->SpellLevel)
continue;
diff --git a/src/server/game/Texts/ChatTextBuilder.cpp b/src/server/game/Texts/ChatTextBuilder.cpp
index cb9d8241c91..761af6a905b 100644
--- a/src/server/game/Texts/ChatTextBuilder.cpp
+++ b/src/server/game/Texts/ChatTextBuilder.cpp
@@ -25,7 +25,7 @@ WorldPackets::Packet* Trinity::BroadcastTextBuilder::operator()(LocaleConstant l
{
BroadcastTextEntry const* bct = sBroadcastTextStore.LookupEntry(_textId);
WorldPackets::Chat::Chat* chat = new WorldPackets::Chat::Chat();
- chat->Initialize(_msgType, bct ? Language(bct->Language) : LANG_UNIVERSAL, _source, _target, bct ? DB2Manager::GetBroadcastTextValue(bct, locale, _gender) : "", _achievementId, "", locale);
+ chat->Initialize(_msgType, bct ? Language(bct->LanguageID) : LANG_UNIVERSAL, _source, _target, bct ? DB2Manager::GetBroadcastTextValue(bct, locale, _gender) : "", _achievementId, "", locale);
return chat;
}
diff --git a/src/server/game/Texts/CreatureTextMgr.cpp b/src/server/game/Texts/CreatureTextMgr.cpp
index 5731484abc5..e7f479248c5 100644
--- a/src/server/game/Texts/CreatureTextMgr.cpp
+++ b/src/server/game/Texts/CreatureTextMgr.cpp
@@ -252,7 +252,7 @@ uint32 CreatureTextMgr::SendChat(Creature* source, uint8 textGroup, WorldObject
if (sound)
finalSound = sound;
else if (BroadcastTextEntry const* bct = sBroadcastTextStore.LookupEntry(iter->BroadcastTextId))
- if (uint32 broadcastTextSoundId = bct->SoundID[source->getGender() == GENDER_FEMALE ? 1 : 0])
+ if (uint32 broadcastTextSoundId = bct->SoundEntriesID[source->getGender() == GENDER_FEMALE ? 1 : 0])
finalSound = broadcastTextSoundId;
if (range == TEXT_RANGE_NORMAL)
diff --git a/src/server/scripts/Commands/cs_character.cpp b/src/server/scripts/Commands/cs_character.cpp
index 3db021e02c9..9107c0c2ebb 100644
--- a/src/server/scripts/Commands/cs_character.cpp
+++ b/src/server/scripts/Commands/cs_character.cpp
@@ -276,11 +276,11 @@ public:
if (titleInfo && target->HasTitle(titleInfo))
{
- std::string name = (target->getGender() == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[handler->GetSessionDbcLocale()];
+ std::string name = (target->getGender() == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[handler->GetSessionDbcLocale()];
if (name.empty())
continue;
- char const* activeStr = target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
+ char const* activeStr = target->GetInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
? handler->GetTrinityString(LANG_ACTIVE)
: "";
diff --git a/src/server/scripts/Commands/cs_go.cpp b/src/server/scripts/Commands/cs_go.cpp
index 9dc55050c08..255a0854226 100644
--- a/src/server/scripts/Commands/cs_go.cpp
+++ b/src/server/scripts/Commands/cs_go.cpp
@@ -399,9 +399,9 @@ public:
}
if ((node->Pos.X == 0.0f && node->Pos.Y == 0.0f && node->Pos.Z == 0.0f) ||
- !MapManager::IsValidMapCoord(node->MapID, node->Pos.X, node->Pos.Y, node->Pos.Z))
+ !MapManager::IsValidMapCoord(node->ContinentID, node->Pos.X, node->Pos.Y, node->Pos.Z))
{
- handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, node->Pos.X, node->Pos.Y, node->MapID);
+ handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, node->Pos.X, node->Pos.Y, uint32(node->ContinentID));
handler->SetSentErrorMessage(true);
return false;
}
@@ -416,7 +416,7 @@ public:
else
player->SaveRecallPosition();
- player->TeleportTo(node->MapID, node->Pos.X, node->Pos.Y, node->Pos.Z, player->GetOrientation());
+ player->TeleportTo(node->ContinentID, node->Pos.X, node->Pos.Y, node->Pos.Z, player->GetOrientation());
return true;
}
@@ -444,9 +444,9 @@ public:
return false;
}
- if (!MapManager::IsValidMapCoord(at->MapID, at->Pos.X, at->Pos.Y, at->Pos.Z))
+ if (!MapManager::IsValidMapCoord(at->ContinentID, at->Pos.X, at->Pos.Y, at->Pos.Z))
{
- handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, at->Pos.X, at->Pos.Y, at->MapID);
+ handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, at->Pos.X, at->Pos.Y, uint32(at->ContinentID));
handler->SetSentErrorMessage(true);
return false;
}
@@ -461,7 +461,7 @@ public:
else
player->SaveRecallPosition();
- player->TeleportTo(at->MapID, at->Pos.X, at->Pos.Y, at->Pos.Z, player->GetOrientation());
+ player->TeleportTo(at->ContinentID, at->Pos.X, at->Pos.Y, at->Pos.Z, player->GetOrientation());
return true;
}
@@ -504,7 +504,7 @@ public:
AreaTableEntry const* zoneEntry = areaEntry->ParentAreaID ? sAreaTableStore.LookupEntry(areaEntry->ParentAreaID) : areaEntry;
ASSERT(zoneEntry);
- Map const* map = sMapMgr->CreateBaseMap(zoneEntry->MapID);
+ Map const* map = sMapMgr->CreateBaseMap(zoneEntry->ContinentID);
if (map->Instanceable())
{
@@ -515,9 +515,9 @@ public:
sDB2Manager.Zone2MapCoordinates(areaEntry->ParentAreaID ? uint32(areaEntry->ParentAreaID) : areaId, x, y);
- if (!MapManager::IsValidMapCoord(zoneEntry->MapID, x, y))
+ if (!MapManager::IsValidMapCoord(zoneEntry->ContinentID, x, y))
{
- handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, x, y, zoneEntry->MapID);
+ handler->PSendSysMessage(LANG_INVALID_TARGET_COORD, x, y, uint32(zoneEntry->ContinentID));
handler->SetSentErrorMessage(true);
return false;
}
@@ -534,7 +534,7 @@ public:
float z = std::max(map->GetHeight(x, y, MAX_HEIGHT), map->GetWaterLevel(x, y));
- player->TeleportTo(zoneEntry->MapID, x, y, z, player->GetOrientation());
+ player->TeleportTo(zoneEntry->ContinentID, x, y, z, player->GetOrientation());
return true;
}
diff --git a/src/server/scripts/Commands/cs_learn.cpp b/src/server/scripts/Commands/cs_learn.cpp
index f3438e884d1..6e62278b825 100644
--- a/src/server/scripts/Commands/cs_learn.cpp
+++ b/src/server/scripts/Commands/cs_learn.cpp
@@ -156,7 +156,7 @@ public:
if (!entry)
continue;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(entry->SpellID);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(entry->Spell);
if (!spellInfo)
continue;
@@ -424,7 +424,7 @@ public:
continue;
// wrong skill
- if (skillLine->SkillLine != skillId)
+ if (skillLine->SkillLine != int32(skillId))
continue;
// not high rank
@@ -439,11 +439,11 @@ public:
if (skillLine->ClassMask && (skillLine->ClassMask & classmask) == 0)
continue;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(skillLine->SpellID);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(skillLine->Spell);
if (!spellInfo || !SpellMgr::IsSpellValid(spellInfo, player, false))
continue;
- player->LearnSpell(skillLine->SpellID, false);
+ player->LearnSpell(skillLine->Spell, false);
}
}
diff --git a/src/server/scripts/Commands/cs_lookup.cpp b/src/server/scripts/Commands/cs_lookup.cpp
index fc0f20b4083..1c235bb8483 100644
--- a/src/server/scripts/Commands/cs_lookup.cpp
+++ b/src/server/scripts/Commands/cs_lookup.cpp
@@ -1027,10 +1027,10 @@ public:
// send taxinode in "id - [name] (Map:m X:x Y:y Z:z)" format
if (handler->GetSession())
handler->PSendSysMessage(LANG_TAXINODE_ENTRY_LIST_CHAT, nodeEntry->ID, nodeEntry->ID, name.c_str(), "",
- nodeEntry->MapID, nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z);
+ uint32(nodeEntry->ContinentID), nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z);
else
handler->PSendSysMessage(LANG_TAXINODE_ENTRY_LIST_CONSOLE, nodeEntry->ID, name.c_str(), "",
- nodeEntry->MapID, nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z);
+ uint32(nodeEntry->ContinentID), nodeEntry->Pos.X, nodeEntry->Pos.Y, nodeEntry->Pos.Z);
if (!found)
found = true;
@@ -1134,7 +1134,7 @@ public:
continue;
int32 locale = handler->GetSessionDbcLocale();
- std::string name = (gender == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[locale];
+ std::string name = (gender == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[locale];
if (name.empty())
continue;
@@ -1147,7 +1147,7 @@ public:
if (locale == handler->GetSessionDbcLocale())
continue;
- name = (gender == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[locale];
+ name = (gender == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[locale];
if (name.empty())
continue;
@@ -1166,7 +1166,7 @@ public:
char const* knownStr = target && target->HasTitle(titleInfo) ? handler->GetTrinityString(LANG_KNOWN) : "";
- char const* activeStr = target && target->GetUInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
+ char const* activeStr = target && target->GetInt32Value(PLAYER_CHOSEN_TITLE) == titleInfo->MaskID
? handler->GetTrinityString(LANG_ACTIVE)
: "";
diff --git a/src/server/scripts/Commands/cs_misc.cpp b/src/server/scripts/Commands/cs_misc.cpp
index 287ab41b972..58855334412 100644
--- a/src/server/scripts/Commands/cs_misc.cpp
+++ b/src/server/scripts/Commands/cs_misc.cpp
@@ -1282,7 +1282,7 @@ public:
auto itr = std::find_if(sItemSparseStore.begin(), sItemSparseStore.end(), [&itemName](ItemSparseEntry const* sparse)
{
for (uint32 i = 0; i < MAX_LOCALES; ++i)
- if (itemName == sparse->Name->Str[i])
+ if (itemName == sparse->Display->Str[i])
return true;
return false;
});
diff --git a/src/server/scripts/Commands/cs_modify.cpp b/src/server/scripts/Commands/cs_modify.cpp
index 09d76fd5e20..d7be9d12c18 100644
--- a/src/server/scripts/Commands/cs_modify.cpp
+++ b/src/server/scripts/Commands/cs_modify.cpp
@@ -1040,7 +1040,7 @@ public:
return false;
}
- std::string formattedPowerName = powerType->PowerTypeToken;
+ std::string formattedPowerName = powerType->NameGlobalStringTag;
bool upperCase = true;
for (char& c : formattedPowerName)
{
@@ -1060,7 +1060,7 @@ public:
}
NotifyModification(handler, target, LANG_YOU_CHANGE_POWER, LANG_YOUR_POWER_CHANGED, formattedPowerName.c_str(), powerAmount, powerAmount);
- powerAmount *= powerType->UIModifier;
+ powerAmount *= powerType->DisplayModifier;
target->SetMaxPower(Powers(powerType->PowerTypeEnum), powerAmount);
target->SetPower(Powers(powerType->PowerTypeEnum), powerAmount);
return true;
diff --git a/src/server/scripts/Commands/cs_reset.cpp b/src/server/scripts/Commands/cs_reset.cpp
index f9346261173..10c924b89ed 100644
--- a/src/server/scripts/Commands/cs_reset.cpp
+++ b/src/server/scripts/Commands/cs_reset.cpp
@@ -99,7 +99,7 @@ public:
return false;
}
- uint8 powerType = classEntry->PowerType;
+ uint8 powerType = classEntry->DisplayPower;
// reset m_form if no aura
if (!player->HasAuraType(SPELL_AURA_MOD_SHAPESHIFT))
diff --git a/src/server/scripts/Commands/cs_titles.cpp b/src/server/scripts/Commands/cs_titles.cpp
index 946137f342f..b493f810e13 100644
--- a/src/server/scripts/Commands/cs_titles.cpp
+++ b/src/server/scripts/Commands/cs_titles.cpp
@@ -96,7 +96,7 @@ public:
target->SetUInt32Value(PLAYER_CHOSEN_TITLE, titleInfo->MaskID);
handler->PSendSysMessage(LANG_TITLE_CURRENT_RES, id,
- (target->getGender() == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[handler->GetSessionDbcLocale()],
+ (target->getGender() == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[handler->GetSessionDbcLocale()],
tNameLink.c_str());
return true;
}
@@ -139,7 +139,7 @@ public:
std::string tNameLink = handler->GetNameLink(target);
std::string titleNameStr = Trinity::StringFormat(
- (target->getGender() == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[handler->GetSessionDbcLocale()],
+ (target->getGender() == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[handler->GetSessionDbcLocale()],
target->GetName().c_str()
);
@@ -189,7 +189,7 @@ public:
std::string tNameLink = handler->GetNameLink(target);
std::string titleNameStr = Trinity::StringFormat(
- (target->getGender() == GENDER_MALE ? titleInfo->NameMale : titleInfo->NameFemale)->Str[handler->GetSessionDbcLocale()],
+ (target->getGender() == GENDER_MALE ? titleInfo->Name : titleInfo->Name1)->Str[handler->GetSessionDbcLocale()],
target->GetName().c_str()
);
diff --git a/src/server/scripts/Spells/spell_generic.cpp b/src/server/scripts/Spells/spell_generic.cpp
index 5b59f638915..f9b0d575b3d 100644
--- a/src/server/scripts/Spells/spell_generic.cpp
+++ b/src/server/scripts/Spells/spell_generic.cpp
@@ -2962,7 +2962,7 @@ class spell_gen_running_wild : public SpellScriptLoader
// cast speed aura
if (MountCapabilityEntry const* mountCapability = sMountCapabilityStore.LookupEntry(aurEff->GetAmount()))
- target->CastSpell(target, mountCapability->SpeedModSpell, TRIGGERED_FULL_MASK);
+ target->CastSpell(target, mountCapability->ModSpellAuraID, TRIGGERED_FULL_MASK);
}
void Register() override
diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp
index 90f1eb65f54..92699d24a85 100644
--- a/src/server/scripts/Spells/spell_item.cpp
+++ b/src/server/scripts/Spells/spell_item.cpp
@@ -3809,7 +3809,7 @@ public:
{
target->HandleEmoteCommand(EMOTE_ONESHOT_TRAIN);
if (EmotesTextSoundEntry const* soundEntry = sDB2Manager.GetTextSoundEmoteFor(TEXT_EMOTE_TRAIN, target->getRace(), target->getGender(), target->getClass()))
- target->PlayDistanceSound(soundEntry->SoundId);
+ target->PlayDistanceSound(soundEntry->SoundID);
}
}
diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp
index 965366c5203..57ee42572f9 100644
--- a/src/server/scripts/Spells/spell_rogue.cpp
+++ b/src/server/scripts/Spells/spell_rogue.cpp
@@ -287,10 +287,10 @@ class spell_rog_deadly_poison : public SpellScriptLoader
if (enchant->Effect[s] != ITEM_ENCHANTMENT_TYPE_COMBAT_SPELL)
continue;
- SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(enchant->EffectSpellID[s]);
+ SpellInfo const* spellInfo = sSpellMgr->GetSpellInfo(enchant->EffectArg[s]);
if (!spellInfo)
{
- TC_LOG_ERROR("spells", "Player::CastItemCombatSpell Enchant %i, player (Name: %s, %s) cast unknown spell %i", enchant->ID, player->GetName().c_str(), player->GetGUID().ToString().c_str(), enchant->EffectSpellID[s]);
+ TC_LOG_ERROR("spells", "Player::CastItemCombatSpell Enchant %i, player (Name: %s, %s) cast unknown spell %i", enchant->ID, player->GetName().c_str(), player->GetGUID().ToString().c_str(), enchant->EffectArg[s]);
continue;
}
@@ -303,9 +303,9 @@ class spell_rog_deadly_poison : public SpellScriptLoader
continue;
if (spellInfo->IsPositive())
- player->CastSpell(player, enchant->EffectSpellID[s], true, item);
+ player->CastSpell(player, enchant->EffectArg[s], true, item);
else
- player->CastSpell(target, enchant->EffectSpellID[s], true, item);
+ player->CastSpell(target, enchant->EffectArg[s], true, item);
}
}
}