aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.cpp16
-rw-r--r--src/server/database/Database/Implementation/HotfixDatabase.h6
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h104
-rw-r--r--src/server/game/DataStores/DB2Structure.h53
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
{