From d5f0e36abd8de6e1bfe4a912c540d35f023ffdc7 Mon Sep 17 00:00:00 2001 From: claywar Date: Sun, 5 Jan 2025 08:29:35 -0500 Subject: [PATCH] Fix TakeSwipeLungeDamage, CalculateBaseTP parameter types TakeSwipeLungeDamage should be CBattleEntity type for Attacker, changed from CCharEntity. CalculateBaseTP had signature mismatch between defined/declared (Defined: int, Declared: int32) for delay. Changed all to int32. Remove undefined function: CheckMobMultiHits --- src/map/lua/lua_baseentity.cpp | 6 +++--- src/map/utils/battleutils.cpp | 2 +- src/map/utils/battleutils.h | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/map/lua/lua_baseentity.cpp b/src/map/lua/lua_baseentity.cpp index 14f7eb0c8ba..ef7a319024d 100644 --- a/src/map/lua/lua_baseentity.cpp +++ b/src/map/lua/lua_baseentity.cpp @@ -14770,8 +14770,8 @@ int32 CLuaBaseEntity::takeSwipeLungeDamage(CLuaBaseEntity* caster, int32 damage, return 0; } - auto* PChar = dynamic_cast(caster->m_PBaseEntity); - if (!PChar) + auto* PBattleAttacker = dynamic_cast(caster->m_PBaseEntity); + if (!PBattleAttacker) { ShowWarning("Invalid entity type passed as Attacker (%s).", m_PBaseEntity->getName()); return 0; @@ -14780,7 +14780,7 @@ int32 CLuaBaseEntity::takeSwipeLungeDamage(CLuaBaseEntity* caster, int32 damage, ATTACK_TYPE attackType = static_cast(atkType); DAMAGE_TYPE damageType = static_cast(dmgType); - return battleutils::TakeSwipeLungeDamage(PBattleDefender, PChar, damage, attackType, damageType); + return battleutils::TakeSwipeLungeDamage(PBattleDefender, PBattleAttacker, damage, attackType, damageType); } /************************************************************************ diff --git a/src/map/utils/battleutils.cpp b/src/map/utils/battleutils.cpp index ca47a30723c..68dd33c0ce0 100644 --- a/src/map/utils/battleutils.cpp +++ b/src/map/utils/battleutils.cpp @@ -2611,7 +2611,7 @@ namespace battleutils * * ************************************************************************/ - int32 TakeSwipeLungeDamage(CBattleEntity* PDefender, CCharEntity* PAttacker, int32 damage, ATTACK_TYPE attackType, DAMAGE_TYPE damageType) + int32 TakeSwipeLungeDamage(CBattleEntity* PDefender, CBattleEntity* PAttacker, int32 damage, ATTACK_TYPE attackType, DAMAGE_TYPE damageType) { damage = CheckAndApplyDamageCap(damage, PDefender); diff --git a/src/map/utils/battleutils.h b/src/map/utils/battleutils.h index da590fd3c25..1108b3d141e 100644 --- a/src/map/utils/battleutils.h +++ b/src/map/utils/battleutils.h @@ -108,7 +108,6 @@ namespace battleutils uint8 CheckMultiHits(CBattleEntity* PEntity, CItemWeapon* PWeapon); uint8 getHitCount(uint8 hits); - uint8 CheckMobMultiHits(CBattleEntity* PEntity); int16 GetSnapshotReduction(CBattleEntity* battleEntity, int16 delay); int32 GetRangedAttackBonuses(CBattleEntity* battleEntity); @@ -162,7 +161,7 @@ namespace battleutils bool primary, float tpMultiplier, uint16 bonusTP, float targetTPMultiplier); int32 TakeSkillchainDamage(CBattleEntity* PAttacker, CBattleEntity* PDefender, int32 lastSkillDamage, CBattleEntity* taChar); int32 TakeSpellDamage(CBattleEntity* PDefender, CBattleEntity* PAttacker, CSpell* PSpell, int32 damage, ATTACK_TYPE attackType, DAMAGE_TYPE damageType); - int32 TakeSwipeLungeDamage(CBattleEntity* PDefender, CCharEntity* PAttacker, int32 damage, ATTACK_TYPE attackType, DAMAGE_TYPE damageType); + int32 TakeSwipeLungeDamage(CBattleEntity* PDefender, CBattleEntity* PAttacker, int32 damage, ATTACK_TYPE attackType, DAMAGE_TYPE damageType); bool TryInterruptSpell(CBattleEntity* PAttacker, CBattleEntity* PDefender, CSpell* PSpell); float GetRangedDamageRatio(CBattleEntity* PAttacker, CBattleEntity* PDefender, bool isCritical, int16 bonusRangedAttack); @@ -181,7 +180,7 @@ namespace battleutils int16 GetEnmityModCure(int16 level); bool isValidSelfTargetWeaponskill(int wsid); bool CanUseWeaponskill(CCharEntity* PChar, CWeaponSkill* PSkill); - int16 CalculateBaseTP(int delay); + int16 CalculateBaseTP(int32 delay); void GenerateCureEnmity(CBattleEntity* PSource, CBattleEntity* PTarget, int32 amount, int32 fixedCE = 0, int32 fixedVE = 0); void GenerateInRangeEnmity(CBattleEntity* PSource, int16 CE, int16 VE);