aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Entities/Creature/Creature.h2
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp6
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h1
-rw-r--r--src/server/game/Server/Packets/QueryPackets.cpp4
-rw-r--r--src/server/game/Server/Packets/QueryPackets.h2
5 files changed, 8 insertions, 7 deletions
diff --git a/src/server/game/Entities/Creature/Creature.h b/src/server/game/Entities/Creature/Creature.h
index a92f4d4fea6..661d655d321 100644
--- a/src/server/game/Entities/Creature/Creature.h
+++ b/src/server/game/Entities/Creature/Creature.h
@@ -92,7 +92,7 @@ struct TC_GAME_API CreatureTemplate
int16 minlevel;
int16 maxlevel;
int32 expansion;
- uint32 HealthScalingExpansion;
+ int32 HealthScalingExpansion;
uint32 RequiredExpansion;
uint32 VignetteID; /// @todo Read Vignette.db2
uint32 faction;
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index e84d2d97939..b3a5919fa15 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -479,7 +479,7 @@ void ObjectMgr::LoadCreatureTemplate(Field* fields)
creatureTemplate.minlevel = fields[15].GetInt16();
creatureTemplate.maxlevel = fields[16].GetInt16();
creatureTemplate.expansion = fields[17].GetInt16();
- creatureTemplate.HealthScalingExpansion = fields[18].GetUInt32();
+ creatureTemplate.HealthScalingExpansion = fields[18].GetInt32();
creatureTemplate.RequiredExpansion = fields[19].GetUInt32();
creatureTemplate.VignetteID = fields[20].GetUInt32();
creatureTemplate.faction = fields[21].GetUInt16();
@@ -971,13 +971,13 @@ void ObjectMgr::CheckCreatureTemplate(CreatureTemplate const* cInfo)
const_cast<CreatureTemplate*>(cInfo)->expansion = 0;
}
- if (cInfo->HealthScalingExpansion > MAX_EXPANSIONS)
+ if ((cInfo->HealthScalingExpansion > (MAX_EXPANSIONS - 1)) && cInfo->HealthScalingExpansion != EXPANSION_LEVEL_CURRENT)
{
TC_LOG_ERROR("sql.sql", "Table `creature_template` lists creature (Entry: %u) with `HealthScalingExpansion` %u. Ignored and set to 0.", cInfo->Entry, cInfo->HealthScalingExpansion);
const_cast<CreatureTemplate*>(cInfo)->HealthScalingExpansion = 0;
}
- if (cInfo->RequiredExpansion > MAX_EXPANSIONS)
+ if (cInfo->RequiredExpansion > (MAX_EXPANSIONS - 1))
{
TC_LOG_ERROR("sql.sql", "Table `creature_template` lists creature (Entry: %u) with `RequiredExpansion` %u. Ignored and set to 0.", cInfo->Entry, cInfo->RequiredExpansion);
const_cast<CreatureTemplate*>(cInfo)->RequiredExpansion = 0;
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index 82aba647281..22172f01989 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -76,6 +76,7 @@ enum LootModes
enum Expansions
{
+ EXPANSION_LEVEL_CURRENT = -1,
EXPANSION_CLASSIC = 0,
EXPANSION_THE_BURNING_CRUSADE = 1,
EXPANSION_WRATH_OF_THE_LICH_KING = 2,
diff --git a/src/server/game/Server/Packets/QueryPackets.cpp b/src/server/game/Server/Packets/QueryPackets.cpp
index d7eb1d576a2..17b911eb029 100644
--- a/src/server/game/Server/Packets/QueryPackets.cpp
+++ b/src/server/game/Server/Packets/QueryPackets.cpp
@@ -73,9 +73,9 @@ WorldPacket const* WorldPackets::Query::QueryCreatureResponse::Write()
_worldPacket << float(Stats.EnergyMulti);
_worldPacket << uint32(Stats.QuestItems.size());
_worldPacket << int32(Stats.CreatureMovementInfoID);
+ _worldPacket << int32(Stats.HealthScalingExpansion);
_worldPacket << int32(Stats.RequiredExpansion);
- _worldPacket << int32(0); // FlagQuest
- _worldPacket << int32(0);
+ _worldPacket << int32(Stats.VignetteID);
if (!Stats.Title.empty())
_worldPacket << Stats.Title;
diff --git a/src/server/game/Server/Packets/QueryPackets.h b/src/server/game/Server/Packets/QueryPackets.h
index c0e79b88a6f..c41e3717688 100644
--- a/src/server/game/Server/Packets/QueryPackets.h
+++ b/src/server/game/Server/Packets/QueryPackets.h
@@ -53,7 +53,7 @@ namespace WorldPackets
bool Leader = false;
std::vector<int32> QuestItems;
uint32 CreatureMovementInfoID = 0;
- uint32 HealthScalingExpansion = 0;
+ int32 HealthScalingExpansion = 0;
uint32 RequiredExpansion = 0;
uint32 VignetteID = 0;
uint32 Flags[2];