From 942bebb664e25636aeadbfadcdeeba15e2cfe826 Mon Sep 17 00:00:00 2001 From: staphen Date: Sat, 25 Oct 2025 18:12:50 -0400 Subject: [PATCH] Fix warnings about mismatched sign in comparisons --- Source/msg.cpp | 4 ++-- Source/pack.cpp | 46 ++++++++++++++++++------------------ Source/utils/endian_swap.hpp | 5 ++++ 3 files changed, 30 insertions(+), 25 deletions(-) diff --git a/Source/msg.cpp b/Source/msg.cpp index 1ebbe08f8..53a5e94c1 100644 --- a/Source/msg.cpp +++ b/Source/msg.cpp @@ -2810,8 +2810,8 @@ void delta_monster_hp(const Monster &monster, const Player &player) return; DMonsterStr *pD = &GetDeltaLevel(player).monster[monster.getId()]; - if (Swap32LE(pD->hitPoints) > monster.hitPoints) - pD->hitPoints = Swap32LE(monster.hitPoints); + if (SwapSigned32LE(pD->hitPoints) > monster.hitPoints) + pD->hitPoints = SwapSigned32LE(monster.hitPoints); } void delta_sync_monster(const TSyncMonster &monsterSync, uint8_t level) diff --git a/Source/pack.cpp b/Source/pack.cpp index 2e8a6b659..7755c465e 100644 --- a/Source/pack.cpp +++ b/Source/pack.cpp @@ -579,29 +579,29 @@ bool UnPackNetPlayer(const PlayerNetPack &packed, Player &player) CalcPlrInv(player, false); player._pGold = CalculateGold(player); - ValidateFields(player._pStrength, Swap32LE(packed.pStrength), player._pStrength == Swap32LE(packed.pStrength)); - ValidateFields(player._pMagic, Swap32LE(packed.pMagic), player._pMagic == Swap32LE(packed.pMagic)); - ValidateFields(player._pDexterity, Swap32LE(packed.pDexterity), player._pDexterity == Swap32LE(packed.pDexterity)); - ValidateFields(player._pVitality, Swap32LE(packed.pVitality), player._pVitality == Swap32LE(packed.pVitality)); - ValidateFields(player._pHitPoints, Swap32LE(packed.pHitPoints), player._pHitPoints == Swap32LE(packed.pHitPoints)); - ValidateFields(player._pMaxHP, Swap32LE(packed.pMaxHP), player._pMaxHP == Swap32LE(packed.pMaxHP)); - ValidateFields(player._pMana, Swap32LE(packed.pMana), player._pMana == Swap32LE(packed.pMana)); - ValidateFields(player._pMaxMana, Swap32LE(packed.pMaxMana), player._pMaxMana == Swap32LE(packed.pMaxMana)); - ValidateFields(player._pDamageMod, Swap32LE(packed.pDamageMod), player._pDamageMod == Swap32LE(packed.pDamageMod)); - ValidateFields(player.getBaseToBlock(), Swap32LE(packed.pBaseToBlk), player.getBaseToBlock() == Swap32LE(packed.pBaseToBlk)); - ValidateFields(player._pIMinDam, Swap32LE(packed.pIMinDam), player._pIMinDam == Swap32LE(packed.pIMinDam)); - ValidateFields(player._pIMaxDam, Swap32LE(packed.pIMaxDam), player._pIMaxDam == Swap32LE(packed.pIMaxDam)); - ValidateFields(player._pIAC, Swap32LE(packed.pIAC), player._pIAC == Swap32LE(packed.pIAC)); - ValidateFields(player._pIBonusDam, Swap32LE(packed.pIBonusDam), player._pIBonusDam == Swap32LE(packed.pIBonusDam)); - ValidateFields(player._pIBonusToHit, Swap32LE(packed.pIBonusToHit), player._pIBonusToHit == Swap32LE(packed.pIBonusToHit)); - ValidateFields(player._pIBonusAC, Swap32LE(packed.pIBonusAC), player._pIBonusAC == Swap32LE(packed.pIBonusAC)); - ValidateFields(player._pIBonusDamMod, Swap32LE(packed.pIBonusDamMod), player._pIBonusDamMod == Swap32LE(packed.pIBonusDamMod)); - ValidateFields(player._pIGetHit, Swap32LE(packed.pIGetHit), player._pIGetHit == Swap32LE(packed.pIGetHit)); - ValidateFields(player._pIEnAc, Swap32LE(packed.pIEnAc), player._pIEnAc == Swap32LE(packed.pIEnAc)); - ValidateFields(player._pIFMinDam, Swap32LE(packed.pIFMinDam), player._pIFMinDam == Swap32LE(packed.pIFMinDam)); - ValidateFields(player._pIFMaxDam, Swap32LE(packed.pIFMaxDam), player._pIFMaxDam == Swap32LE(packed.pIFMaxDam)); - ValidateFields(player._pILMinDam, Swap32LE(packed.pILMinDam), player._pILMinDam == Swap32LE(packed.pILMinDam)); - ValidateFields(player._pILMaxDam, Swap32LE(packed.pILMaxDam), player._pILMaxDam == Swap32LE(packed.pILMaxDam)); + ValidateFields(player._pStrength, SwapSigned32LE(packed.pStrength), player._pStrength == SwapSigned32LE(packed.pStrength)); + ValidateFields(player._pMagic, SwapSigned32LE(packed.pMagic), player._pMagic == SwapSigned32LE(packed.pMagic)); + ValidateFields(player._pDexterity, SwapSigned32LE(packed.pDexterity), player._pDexterity == SwapSigned32LE(packed.pDexterity)); + ValidateFields(player._pVitality, SwapSigned32LE(packed.pVitality), player._pVitality == SwapSigned32LE(packed.pVitality)); + ValidateFields(player._pHitPoints, SwapSigned32LE(packed.pHitPoints), player._pHitPoints == SwapSigned32LE(packed.pHitPoints)); + ValidateFields(player._pMaxHP, SwapSigned32LE(packed.pMaxHP), player._pMaxHP == SwapSigned32LE(packed.pMaxHP)); + ValidateFields(player._pMana, SwapSigned32LE(packed.pMana), player._pMana == SwapSigned32LE(packed.pMana)); + ValidateFields(player._pMaxMana, SwapSigned32LE(packed.pMaxMana), player._pMaxMana == SwapSigned32LE(packed.pMaxMana)); + ValidateFields(player._pDamageMod, SwapSigned32LE(packed.pDamageMod), player._pDamageMod == SwapSigned32LE(packed.pDamageMod)); + ValidateFields(player.getBaseToBlock(), SwapSigned32LE(packed.pBaseToBlk), player.getBaseToBlock() == SwapSigned32LE(packed.pBaseToBlk)); + ValidateFields(player._pIMinDam, SwapSigned32LE(packed.pIMinDam), player._pIMinDam == SwapSigned32LE(packed.pIMinDam)); + ValidateFields(player._pIMaxDam, SwapSigned32LE(packed.pIMaxDam), player._pIMaxDam == SwapSigned32LE(packed.pIMaxDam)); + ValidateFields(player._pIAC, SwapSigned32LE(packed.pIAC), player._pIAC == SwapSigned32LE(packed.pIAC)); + ValidateFields(player._pIBonusDam, SwapSigned32LE(packed.pIBonusDam), player._pIBonusDam == SwapSigned32LE(packed.pIBonusDam)); + ValidateFields(player._pIBonusToHit, SwapSigned32LE(packed.pIBonusToHit), player._pIBonusToHit == SwapSigned32LE(packed.pIBonusToHit)); + ValidateFields(player._pIBonusAC, SwapSigned32LE(packed.pIBonusAC), player._pIBonusAC == SwapSigned32LE(packed.pIBonusAC)); + ValidateFields(player._pIBonusDamMod, SwapSigned32LE(packed.pIBonusDamMod), player._pIBonusDamMod == SwapSigned32LE(packed.pIBonusDamMod)); + ValidateFields(player._pIGetHit, SwapSigned32LE(packed.pIGetHit), player._pIGetHit == SwapSigned32LE(packed.pIGetHit)); + ValidateFields(player._pIEnAc, SwapSigned32LE(packed.pIEnAc), player._pIEnAc == SwapSigned32LE(packed.pIEnAc)); + ValidateFields(player._pIFMinDam, SwapSigned32LE(packed.pIFMinDam), player._pIFMinDam == SwapSigned32LE(packed.pIFMinDam)); + ValidateFields(player._pIFMaxDam, SwapSigned32LE(packed.pIFMaxDam), player._pIFMaxDam == SwapSigned32LE(packed.pIFMaxDam)); + ValidateFields(player._pILMinDam, SwapSigned32LE(packed.pILMinDam), player._pILMinDam == SwapSigned32LE(packed.pILMinDam)); + ValidateFields(player._pILMaxDam, SwapSigned32LE(packed.pILMaxDam), player._pILMaxDam == SwapSigned32LE(packed.pILMaxDam)); ValidateFields(player._pMaxHPBase, player.calculateBaseLife(), player._pMaxHPBase <= player.calculateBaseLife()); ValidateFields(player._pMaxManaBase, player.calculateBaseMana(), player._pMaxManaBase <= player.calculateBaseMana()); diff --git a/Source/utils/endian_swap.hpp b/Source/utils/endian_swap.hpp index d0cb30363..02150e3dc 100644 --- a/Source/utils/endian_swap.hpp +++ b/Source/utils/endian_swap.hpp @@ -37,6 +37,11 @@ inline uint32_t Swap32LE(uint32_t val) #endif } +inline int32_t SwapSigned32LE(int32_t val) +{ + return static_cast(Swap32LE(static_cast(val))); +} + inline uint32_t Swap32BE(uint32_t val) { #ifdef USE_SDL3