diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/server/database/Database/Implementation/HotfixDatabase.cpp | 16 | ||||
-rw-r--r-- | src/server/database/Database/Implementation/HotfixDatabase.h | 6 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2LoadInfo.h | 104 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Structure.h | 53 |
4 files changed, 178 insertions, 1 deletions
diff --git a/src/server/database/Database/Implementation/HotfixDatabase.cpp b/src/server/database/Database/Implementation/HotfixDatabase.cpp index 2f6a0460256..a0e2bf66dd1 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.cpp +++ b/src/server/database/Database/Implementation/HotfixDatabase.cpp @@ -1099,6 +1099,22 @@ void HotfixDatabaseConnection::DoPrepareStatements() " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_REWARD_PACK_X_ITEM, "SELECT MAX(ID) + 1 FROM reward_pack_x_item", CONNECTION_SYNCH); + // ScalingStatDistribution.db2 + PrepareStatement(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT ID, StatID1, StatID2, StatID3, StatID4, StatID5, StatID6, StatID7, StatID8, " + "StatID9, StatID10, Bonus1, Bonus2, Bonus3, Bonus4, Bonus5, Bonus6, Bonus7, Bonus8, Bonus9, Bonus10, Maxlevel FROM scaling_stat_distribution" + " WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, "SELECT MAX(ID) + 1 FROM scaling_stat_distribution", CONNECTION_SYNCH); + + // ScalingStatValues.db2 + PrepareStatement(HOTFIX_SEL_SCALING_STAT_VALUES, "SELECT ID, Charlevel, WeaponDPS1H, WeaponDPS2H, SpellcasterDPS1H, SpellcasterDPS2H, RangedDPS, " + "WandDPS, SpellPower, BudgetPrimary, BudgetSecondary, BudgetTertiary, BudgetSub, BudgetTrivial, ClothCloakArmor, Unk440_0, Unk440_1, " + "Unk440_2, Unk440_3, Unk440_4, Unk440_5, Unk440_6, Unk440_7, Unk440_8, Unk440_9, Unk440_10, Unk440_11, Unk440_12, Unk440_13, Unk440_14, " + "Unk440_15, ShoulderArmor1, ShoulderArmor2, ShoulderArmor3, ShoulderArmor4, ChestArmor1, ChestArmor2, ChestArmor3, ChestArmor4, HeadArmor1, " + "HeadArmor2, HeadArmor3, HeadArmor4, LegsArmor1, LegsArmor2, LegsArmor3, LegsArmor4, FeetArmor1, FeetArmor2, FeetArmor3, FeetArmor4, " + "WaistArmor1, WaistArmor2, WaistArmor3, WaistArmor4, HandsArmor1, HandsArmor2, HandsArmor3, HandsArmor4, WristsArmor1, WristsArmor2, " + "WristsArmor3, WristsArmor4 FROM scaling_stat_values WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); + PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCALING_STAT_VALUES, "SELECT MAX(ID) + 1 FROM scaling_stat_values", CONNECTION_SYNCH); + // Scenario.db2 PrepareStatement(HOTFIX_SEL_SCENARIO, "SELECT ID, Name, AreaTableID, Type, Flags, UiTextureKitID FROM scenario WHERE (`VerifiedBuild` > 0) = ?", CONNECTION_SYNCH); PREPARE_MAX_ID_STMT(HOTFIX_SEL_SCENARIO, "SELECT MAX(ID) + 1 FROM scenario", CONNECTION_SYNCH); diff --git a/src/server/database/Database/Implementation/HotfixDatabase.h b/src/server/database/Database/Implementation/HotfixDatabase.h index dfa5cb9240f..b28d27eadc4 100644 --- a/src/server/database/Database/Implementation/HotfixDatabase.h +++ b/src/server/database/Database/Implementation/HotfixDatabase.h @@ -632,6 +632,12 @@ enum HotfixDatabaseStatements : uint32 HOTFIX_SEL_REWARD_PACK_X_ITEM, HOTFIX_SEL_REWARD_PACK_X_ITEM_MAX_ID, + HOTFIX_SEL_SCALING_STAT_DISTRIBUTION, + HOTFIX_SEL_SCALING_STAT_DISTRIBUTION_MAX_ID, + + HOTFIX_SEL_SCALING_STAT_VALUES, + HOTFIX_SEL_SCALING_STAT_VALUES_MAX_ID, + HOTFIX_SEL_SCENARIO, HOTFIX_SEL_SCENARIO_MAX_ID, HOTFIX_SEL_SCENARIO_LOCALE, diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h index 1e7ce97ecb3..ae072a81863 100644 --- a/src/server/game/DataStores/DB2LoadInfo.h +++ b/src/server/game/DataStores/DB2LoadInfo.h @@ -23,7 +23,6 @@ #include "DB2DatabaseLoader.h" #include "DB2Metadata.h" -#include "HotfixDatabase.h" struct AchievementLoadInfo { @@ -3712,6 +3711,109 @@ struct RewardPackXItemLoadInfo static constexpr DB2LoadInfo Instance{ Fields, 4, &RewardPackXItemMeta::Instance, HOTFIX_SEL_REWARD_PACK_X_ITEM }; }; +struct ScalingStatDistributionLoadInfo +{ + static constexpr DB2FieldMeta Fields[22] = + { + { false, FT_INT, "ID" }, + { true, FT_INT, "StatID1" }, + { true, FT_INT, "StatID2" }, + { true, FT_INT, "StatID3" }, + { true, FT_INT, "StatID4" }, + { true, FT_INT, "StatID5" }, + { true, FT_INT, "StatID6" }, + { true, FT_INT, "StatID7" }, + { true, FT_INT, "StatID8" }, + { true, FT_INT, "StatID9" }, + { true, FT_INT, "StatID10" }, + { true, FT_INT, "Bonus1" }, + { true, FT_INT, "Bonus2" }, + { true, FT_INT, "Bonus3" }, + { true, FT_INT, "Bonus4" }, + { true, FT_INT, "Bonus5" }, + { true, FT_INT, "Bonus6" }, + { true, FT_INT, "Bonus7" }, + { true, FT_INT, "Bonus8" }, + { true, FT_INT, "Bonus9" }, + { true, FT_INT, "Bonus10" }, + { true, FT_INT, "Maxlevel" }, + }; + + static constexpr DB2LoadInfo Instance{ Fields, 22, &ScalingStatDistributionMeta::Instance, HOTFIX_SEL_SCALING_STAT_DISTRIBUTION }; +}; + +struct ScalingStatValuesLoadInfo +{ + static constexpr DB2FieldMeta Fields[63] = + { + { false, FT_INT, "ID" }, + { true, FT_INT, "Charlevel" }, + { true, FT_INT, "WeaponDPS1H" }, + { true, FT_INT, "WeaponDPS2H" }, + { true, FT_INT, "SpellcasterDPS1H" }, + { true, FT_INT, "SpellcasterDPS2H" }, + { true, FT_INT, "RangedDPS" }, + { true, FT_INT, "WandDPS" }, + { true, FT_INT, "SpellPower" }, + { true, FT_INT, "BudgetPrimary" }, + { true, FT_INT, "BudgetSecondary" }, + { true, FT_INT, "BudgetTertiary" }, + { true, FT_INT, "BudgetSub" }, + { true, FT_INT, "BudgetTrivial" }, + { true, FT_INT, "ClothCloakArmor" }, + { true, FT_INT, "Unk440_0" }, + { true, FT_INT, "Unk440_1" }, + { true, FT_INT, "Unk440_2" }, + { true, FT_INT, "Unk440_3" }, + { true, FT_INT, "Unk440_4" }, + { true, FT_INT, "Unk440_5" }, + { true, FT_INT, "Unk440_6" }, + { true, FT_INT, "Unk440_7" }, + { true, FT_INT, "Unk440_8" }, + { true, FT_INT, "Unk440_9" }, + { true, FT_INT, "Unk440_10" }, + { true, FT_INT, "Unk440_11" }, + { true, FT_INT, "Unk440_12" }, + { true, FT_INT, "Unk440_13" }, + { true, FT_INT, "Unk440_14" }, + { true, FT_INT, "Unk440_15" }, + { true, FT_INT, "ShoulderArmor1" }, + { true, FT_INT, "ShoulderArmor2" }, + { true, FT_INT, "ShoulderArmor3" }, + { true, FT_INT, "ShoulderArmor4" }, + { true, FT_INT, "ChestArmor1" }, + { true, FT_INT, "ChestArmor2" }, + { true, FT_INT, "ChestArmor3" }, + { true, FT_INT, "ChestArmor4" }, + { true, FT_INT, "HeadArmor1" }, + { true, FT_INT, "HeadArmor2" }, + { true, FT_INT, "HeadArmor3" }, + { true, FT_INT, "HeadArmor4" }, + { true, FT_INT, "LegsArmor1" }, + { true, FT_INT, "LegsArmor2" }, + { true, FT_INT, "LegsArmor3" }, + { true, FT_INT, "LegsArmor4" }, + { true, FT_INT, "FeetArmor1" }, + { true, FT_INT, "FeetArmor2" }, + { true, FT_INT, "FeetArmor3" }, + { true, FT_INT, "FeetArmor4" }, + { true, FT_INT, "WaistArmor1" }, + { true, FT_INT, "WaistArmor2" }, + { true, FT_INT, "WaistArmor3" }, + { true, FT_INT, "WaistArmor4" }, + { true, FT_INT, "HandsArmor1" }, + { true, FT_INT, "HandsArmor2" }, + { true, FT_INT, "HandsArmor3" }, + { true, FT_INT, "HandsArmor4" }, + { true, FT_INT, "WristsArmor1" }, + { true, FT_INT, "WristsArmor2" }, + { true, FT_INT, "WristsArmor3" }, + { true, FT_INT, "WristsArmor4" }, + }; + + static constexpr DB2LoadInfo Instance{ Fields, 63, &ScalingStatValuesMeta::Instance, HOTFIX_SEL_SCALING_STAT_VALUES }; +}; + struct ScenarioLoadInfo { static constexpr DB2FieldMeta Fields[6] = diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index 3221e0d1518..0b72240c29c 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -2884,6 +2884,59 @@ struct RewardPackXItemEntry uint32 RewardPackID; }; +// structure for ScalingStatDistribution.db2 +struct ScalingStatDistributionEntry +{ + uint32 ID; + std::array<int32, 10> StatID; + std::array<int32, 10> Bonus; + int32 Maxlevel; +}; + +// structure for ScalingStatValues.db2 +struct ScalingStatValuesEntry +{ + uint32 ID; + int32 Charlevel; + int32 WeaponDPS1H; + int32 WeaponDPS2H; + int32 SpellcasterDPS1H; + int32 SpellcasterDPS2H; + int32 RangedDPS; + int32 WandDPS; + int32 SpellPower; + int32 BudgetPrimary; + int32 BudgetSecondary; + int32 BudgetTertiary; + int32 BudgetSub; + int32 BudgetTrivial; + int32 ClothCloakArmor; + int32 Unk440_0; + int32 Unk440_1; + int32 Unk440_2; + int32 Unk440_3; + int32 Unk440_4; + int32 Unk440_5; + int32 Unk440_6; + int32 Unk440_7; + int32 Unk440_8; + int32 Unk440_9; + int32 Unk440_10; + int32 Unk440_11; + int32 Unk440_12; + int32 Unk440_13; + int32 Unk440_14; + int32 Unk440_15; + std::array<int32, 4> ShoulderArmor; + std::array<int32, 4> ChestArmor; + std::array<int32, 4> HeadArmor; + std::array<int32, 4> LegsArmor; + std::array<int32, 4> FeetArmor; + std::array<int32, 4> WaistArmor; + std::array<int32, 4> HandsArmor; + std::array<int32, 4> WristsArmor; +}; + // structure for Scenario.db2 struct ScenarioEntry { |