From b1395b9450d7f7d35b834a2062fd480273cdb13f Mon Sep 17 00:00:00 2001 From: Kitzunu <24550914+Kitzunu@users.noreply.github.com> Date: Sun, 8 Oct 2023 13:56:16 +0200 Subject: [PATCH] refactor(Core/Creature): Calculate BaseArmor as float (#17448) --- src/server/game/Entities/Creature/Creature.cpp | 2 +- src/server/game/Entities/Creature/CreatureData.h | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index d48b8e087..b88560d90 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -535,7 +535,7 @@ bool Creature::UpdateEntry(uint32 Entry, const CreatureData* data, bool changele SetMeleeDamageSchool(SpellSchools(cInfo->dmgschool)); CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(GetLevel(), cInfo->unit_class); - float armor = (float)stats->GenerateArmor(cInfo); /// @todo: Why is this treated as uint32 when it's a float? + float armor = stats->GenerateArmor(cInfo); SetModifierValue(UNIT_MOD_ARMOR, BASE_VALUE, armor); SetModifierValue(UNIT_MOD_RESISTANCE_HOLY, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_HOLY])); SetModifierValue(UNIT_MOD_RESISTANCE_FIRE, BASE_VALUE, float(cInfo->resistance[SPELL_SCHOOL_FIRE])); diff --git a/src/server/game/Entities/Creature/CreatureData.h b/src/server/game/Entities/Creature/CreatureData.h index 80e4b3c7b..2d33cb9d3 100644 --- a/src/server/game/Entities/Creature/CreatureData.h +++ b/src/server/game/Entities/Creature/CreatureData.h @@ -292,7 +292,7 @@ struct CreatureBaseStats { uint32 BaseHealth[MAX_EXPANSIONS]; uint32 BaseMana; - uint32 BaseArmor; + float BaseArmor; uint32 AttackPower; uint32 RangedAttackPower; float BaseDamage[MAX_EXPANSIONS]; @@ -313,9 +313,9 @@ struct CreatureBaseStats return uint32(std::ceil(BaseMana * info->ModMana)); } - uint32 GenerateArmor(CreatureTemplate const* info) const + float GenerateArmor(CreatureTemplate const* info) const { - return uint32(std::ceil(BaseArmor * info->ModArmor)); + return std::ceil(BaseArmor * info->ModArmor); } float GenerateBaseDamage(CreatureTemplate const* info) const