aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorfunjoker <funjoker109@gmail.com>2025-05-13 12:20:20 +0200
committerfunjoker <funjoker109@gmail.com>2025-05-13 12:20:20 +0200
commit58485e6d7a7b831578e29c6a236e4dde4a3b9807 (patch)
treea564202b568dcb927eef29d90e6df899d8b53d8a /src
parent3b5a47ac3d2e84c1f14bf219dd6d0f4d2fffd07e (diff)
Core/GameTables: Drop unneeded gametables for dmg and health and port 335 data
Health has been updated to leaked datas from gametables
Diffstat (limited to 'src')
-rw-r--r--src/server/game/DataStores/GameTables.cpp10
-rw-r--r--src/server/game/DataStores/GameTables.h32
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp23
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h2
-rw-r--r--src/tools/map_extractor/System.cpp17
5 files changed, 25 insertions, 59 deletions
diff --git a/src/server/game/DataStores/GameTables.cpp b/src/server/game/DataStores/GameTables.cpp
index 3c7e1a71f63..e47033e3655 100644
--- a/src/server/game/DataStores/GameTables.cpp
+++ b/src/server/game/DataStores/GameTables.cpp
@@ -31,8 +31,6 @@ GameTable<GtChanceToSpellCritEntry> sChanceToSpellCritGameTable;
GameTable<GtChanceToSpellCritBaseEntry> sChanceToSpellCritBaseGameTable;
GameTable<GtCombatRatingsEntry> sCombatRatingsGameTable;
GameTable<GtNpcManaCostScalerEntry> sNpcManaCostScalerGameTable;
-GameTable<GtNpcDamageByClassEntry> sNpcDamageByClassGameTable[MAX_CLASSIC_EXPANSIONS];
-GameTable<GtNpcTotalHpEntry> sNpcTotalHpGameTable[MAX_CLASSIC_EXPANSIONS];
GameTable<GtOctBaseHpByClassEntry> sOctBaseHpByClassGameTable;
GameTable<GtOctBaseMpByClassEntry> sOctBaseMpByClassGameTable;
GameTable<GtOctClassCombatRatingScalarEntry> sOctClassCombatRatingScalarGameTable;
@@ -129,14 +127,6 @@ void LoadGameTables(std::string const& dataPath)
LOAD_GT(sChanceToSpellCritBaseGameTable, "ChanceToSpellCritBase.txt");
LOAD_GT(sCombatRatingsGameTable, "CombatRatings.txt");
LOAD_GT(sNpcManaCostScalerGameTable, "NPCManaCostScaler.txt");
- LOAD_GT(sNpcDamageByClassGameTable[0], "NpcDamageByClass.txt");
- LOAD_GT(sNpcDamageByClassGameTable[1], "NpcDamageByClassExp1.txt");
- LOAD_GT(sNpcDamageByClassGameTable[2], "NpcDamageByClassExp2.txt");
- LOAD_GT(sNpcDamageByClassGameTable[3], "NpcDamageByClassExp3.txt");
- LOAD_GT(sNpcTotalHpGameTable[0], "NpcTotalHp.txt");
- LOAD_GT(sNpcTotalHpGameTable[1], "NpcTotalHpExp1.txt");
- LOAD_GT(sNpcTotalHpGameTable[2], "NpcTotalHpExp2.txt");
- LOAD_GT(sNpcTotalHpGameTable[3], "NpcTotalHpExp3.txt");
LOAD_GT(sOctBaseHpByClassGameTable, "OCTBaseHPByClass.txt");
LOAD_GT(sOctBaseMpByClassGameTable, "OCTBaseMPByClass.txt");
LOAD_GT(sOctClassCombatRatingScalarGameTable, "OCTClassCombatRatingScalar.txt");
diff --git a/src/server/game/DataStores/GameTables.h b/src/server/game/DataStores/GameTables.h
index 38a870dd318..02292e50876 100644
--- a/src/server/game/DataStores/GameTables.h
+++ b/src/server/game/DataStores/GameTables.h
@@ -130,36 +130,6 @@ struct GtNpcManaCostScalerEntry
float Scaler = 0.0f;
};
-struct GtNpcTotalHpEntry
-{
- float Warrior = 0.0f;
- float Paladin = 0.0f;
- float Hunter = 0.0f;
- float Rogue = 0.0f;
- float Priest = 0.0f;
- float DeathKnight = 0.0f;
- float Shaman = 0.0f;
- float Mage = 0.0f;
- float Warlock = 0.0f;
- float Monk = 0.0f;
- float Druid = 0.0f;
-};
-
-struct GtNpcDamageByClassEntry
-{
- float Warrior = 0.0f;
- float Paladin = 0.0f;
- float Hunter = 0.0f;
- float Rogue = 0.0f;
- float Priest = 0.0f;
- float DeathKnight = 0.0f;
- float Shaman = 0.0f;
- float Mage = 0.0f;
- float Warlock = 0.0f;
- float Monk = 0.0f;
- float Druid = 0.0f;
-};
-
struct GtOctBaseHpByClassEntry
{
float Warrior = 0.0f;
@@ -331,8 +301,6 @@ TC_GAME_API extern GameTable<GtChanceToSpellCritEntry> sChanceToSpe
TC_GAME_API extern GameTable<GtChanceToSpellCritBaseEntry> sChanceToSpellCritBaseGameTable;
TC_GAME_API extern GameTable<GtCombatRatingsEntry> sCombatRatingsGameTable;
TC_GAME_API extern GameTable<GtNpcManaCostScalerEntry> sNpcManaCostScalerGameTable;
-TC_GAME_API extern GameTable<GtNpcDamageByClassEntry> sNpcDamageByClassGameTable[MAX_CLASSIC_EXPANSIONS];
-TC_GAME_API extern GameTable<GtNpcTotalHpEntry> sNpcTotalHpGameTable[MAX_CLASSIC_EXPANSIONS];
TC_GAME_API extern GameTable<GtOctBaseHpByClassEntry> sOctBaseHpByClassGameTable;
TC_GAME_API extern GameTable<GtOctBaseMpByClassEntry> sOctBaseMpByClassGameTable;
TC_GAME_API extern GameTable<GtOctClassCombatRatingScalarEntry> sOctClassCombatRatingScalarGameTable;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index 0e0535f0aab..b1db5850e65 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -9867,8 +9867,8 @@ CreatureBaseStats const* ObjectMgr::GetCreatureBaseStats(uint8 level, uint8 unit
void ObjectMgr::LoadCreatureClassLevelStats()
{
uint32 oldMSTime = getMSTime();
- // 0 1 2 3 4 5
- QueryResult result = WorldDatabase.Query("SELECT level, class, basemana, basearmor, attackpower, rangedattackpower FROM creature_classlevelstats");
+ // 0 1 2 3 4 5 6 7 8 9 10 11
+ QueryResult result = WorldDatabase.Query("SELECT level, class, basehp0, basehp1, basehp2, basemana, basearmor, attackpower, rangedattackpower, damage_base, damage_exp1, damage_exp2 FROM creature_classlevelstats");
if (!result)
{
@@ -9891,8 +9891,15 @@ void ObjectMgr::LoadCreatureClassLevelStats()
for (uint8 i = 0; i < MAX_CLASSIC_EXPANSIONS; ++i)
{
- stats.BaseHealth[i] = GetGameTableColumnForClass(sNpcTotalHpGameTable[i].GetRow(Level), Class);
- stats.BaseDamage[i] = GetGameTableColumnForClass(sNpcDamageByClassGameTable[i].GetRow(Level), Class);
+ stats.BaseHealth[i] = fields[2 + i].GetUInt32();
+
+ if (stats.BaseHealth[i] == 0)
+ {
+ TC_LOG_ERROR("sql.sql", "Creature base stats for class {}, level {} has invalid zero base HP[{}] - set to 1", Class, Level, i);
+ stats.BaseHealth[i] = 1;
+ }
+
+ stats.BaseDamage[i] = fields[9 + i].GetFloat();
if (stats.BaseDamage[i] < 0.0f)
{
TC_LOG_ERROR("sql.sql", "Creature base stats for class {}, level {} has invalid negative base damage[{}] - set to 0.0", Class, Level, i);
@@ -9900,11 +9907,11 @@ void ObjectMgr::LoadCreatureClassLevelStats()
}
}
- stats.BaseMana = fields[2].GetUInt32();
- stats.BaseArmor = fields[3].GetUInt32();
+ stats.BaseMana = fields[5].GetUInt32();
+ stats.BaseArmor = fields[6].GetUInt32();
- stats.AttackPower = fields[4].GetUInt16();
- stats.RangedAttackPower = fields[5].GetUInt16();
+ stats.AttackPower = fields[7].GetUInt16();
+ stats.RangedAttackPower = fields[8].GetUInt16();
_creatureBaseStatsStore[MAKE_PAIR16(Level, Class)] = stats;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 26eeb1320ef..44336e0aae5 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -90,9 +90,9 @@ enum Expansions
EXPANSION_CLASSIC = 0,
EXPANSION_THE_BURNING_CRUSADE = 1,
EXPANSION_WRATH_OF_THE_LICH_KING = 2,
- EXPANSION_CATACLYSM = 3,
MAX_CLASSIC_EXPANSIONS,
+ EXPANSION_CATACLYSM = 3,
EXPANSION_MISTS_OF_PANDARIA = 4,
EXPANSION_WARLORDS_OF_DRAENOR = 5,
EXPANSION_LEGION = 6,
diff --git a/src/tools/map_extractor/System.cpp b/src/tools/map_extractor/System.cpp
index 27ec0ddd40d..04f916dc43b 100644
--- a/src/tools/map_extractor/System.cpp
+++ b/src/tools/map_extractor/System.cpp
@@ -1342,14 +1342,15 @@ void ExtractGameTables()
{ 3999264, "ChanceToSpellCritBase.txt" },
{ 1391669, "CombatRatings.txt" },
{ 1391651, "NPCManaCostScaler.txt" },
- { 1391644, "NpcDamageByClass.txt" },
- { 1391645, "NpcDamageByClassExp1.txt" },
- { 1391646, "NpcDamageByClassExp2.txt" },
- { 1391647, "NpcDamageByClassExp3.txt" },
- { 1391652, "NpcTotalHp.txt" },
- { 1391653, "NpcTotalHpExp1.txt" },
- { 1391654, "NpcTotalHpExp2.txt" },
- { 1391655, "NpcTotalHpExp3.txt" },
+ // These are not complete and missing data
+ // { 1391644, "NpcDamageByClass.txt" },
+ // { 1391645, "NpcDamageByClassExp1.txt" },
+ // { 1391646, "NpcDamageByClassExp2.txt" },
+ // { 1391647, "NpcDamageByClassExp3.txt" },
+ // { 1391652, "NpcTotalHp.txt" },
+ // { 1391653, "NpcTotalHpExp1.txt" },
+ // { 1391654, "NpcTotalHpExp2.txt" },
+ // { 1391655, "NpcTotalHpExp3.txt" },
{ 5464960, "OCTBaseHPByClass.txt" },
{ 4049853, "OCTBaseMPByClass.txt" },
{ 4526467, "OCTClassCombatRatingScalar.txt" },