aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-05-19 14:41:23 +0200
committerOvahlord <dreadkiller@gmx.de>2025-05-26 20:49:49 +0200
commit5b3d7604e5706de37ec21ba27972ec49fc76febb (patch)
tree753d5d444d7e0f95cd00ec477d776a8b21641076
parent5e2fb0d52085e29dbaec29be08b0381cca8e2b09 (diff)
Core/Misc: Silence some statis analysis false positive warnings
(cherry picked from commit fe788a5eeb0bc8600ec877d9062614b9bfc43a64)
-rw-r--r--src/common/Collision/Maps/MMapDefines.h12
-rw-r--r--src/server/game/Entities/Pet/PetDefines.h2
-rw-r--r--src/server/game/Entities/Player/Player.cpp8
-rw-r--r--src/server/game/Spells/Spell.cpp17
4 files changed, 25 insertions, 14 deletions
diff --git a/src/common/Collision/Maps/MMapDefines.h b/src/common/Collision/Maps/MMapDefines.h
index 4f73094e907..368281543a2 100644
--- a/src/common/Collision/Maps/MMapDefines.h
+++ b/src/common/Collision/Maps/MMapDefines.h
@@ -39,12 +39,12 @@ struct MmapTileHeader
// All padding fields must be handled and initialized to ensure mmaps_generator will produce binary-identical *.mmtile files
static_assert(sizeof(MmapTileHeader) == 20, "MmapTileHeader size is not correct, adjust the padding field size");
-static_assert(sizeof(MmapTileHeader) == (sizeof(MmapTileHeader::mmapMagic) +
- sizeof(MmapTileHeader::dtVersion) +
- sizeof(MmapTileHeader::mmapVersion) +
- sizeof(MmapTileHeader::size) +
- sizeof(MmapTileHeader::usesLiquids) +
- sizeof(MmapTileHeader::padding)), "MmapTileHeader has uninitialized padding fields");
+static_assert(sizeof(MmapTileHeader) == sizeof(MmapTileHeader::mmapMagic) +
+ sizeof(MmapTileHeader::dtVersion) +
+ sizeof(MmapTileHeader::mmapVersion) +
+ sizeof(MmapTileHeader::size) +
+ sizeof(MmapTileHeader::usesLiquids) +
+ sizeof(MmapTileHeader::padding), "MmapTileHeader has uninitialized padding fields");
enum NavArea
{
diff --git a/src/server/game/Entities/Pet/PetDefines.h b/src/server/game/Entities/Pet/PetDefines.h
index e926cf64966..359009a91d6 100644
--- a/src/server/game/Entities/Pet/PetDefines.h
+++ b/src/server/game/Entities/Pet/PetDefines.h
@@ -30,7 +30,7 @@ enum PetType : uint8
{
SUMMON_PET = 0,
HUNTER_PET = 1,
- MAX_PET_TYPE = 4
+ MAX_PET_TYPE
};
#define MAX_ACTIVE_PETS 5
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 33c6bb16b5e..d3f19b2d03d 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2948,7 +2948,7 @@ void Player::RemoveSpell(uint32 spell_id, bool disabled /*= false*/, bool learn_
RemovePetAura(petSpell);
// update free primary prof.points (if not overflow setting, can be in case GM use before .learn prof. learning)
- if (spellInfo && spellInfo->IsPrimaryProfessionFirstRank())
+ if (spellInfo->IsPrimaryProfessionFirstRank())
{
uint32 freeProfs = GetFreePrimaryProfessionPoints()+1;
if (freeProfs <= sWorld->getIntConfig(CONFIG_MAX_PRIMARY_TRADE_SKILL))
@@ -3085,7 +3085,7 @@ void Player::RemoveSpell(uint32 spell_id, bool disabled /*= false*/, bool learn_
if (m_canTitanGrip)
{
- if (spellInfo && spellInfo->IsPassive() && spellInfo->HasEffect(SPELL_EFFECT_TITAN_GRIP))
+ if (spellInfo->IsPassive() && spellInfo->HasEffect(SPELL_EFFECT_TITAN_GRIP))
{
RemoveAurasDueToSpell(m_titanGripPenaltySpellId);
SetCanTitanGrip(false);
@@ -3094,7 +3094,7 @@ void Player::RemoveSpell(uint32 spell_id, bool disabled /*= false*/, bool learn_
if (m_canDualWield)
{
- if (spellInfo && spellInfo->IsPassive() && spellInfo->HasEffect(SPELL_EFFECT_DUAL_WIELD))
+ if (spellInfo->IsPassive() && spellInfo->HasEffect(SPELL_EFFECT_DUAL_WIELD))
SetCanDualWield(false);
}
@@ -13671,7 +13671,7 @@ Quest const* Player::GetNextQuest(Object const* questGiver, Quest const* quest)
//we should obtain map pointer from GetMap() in 99% of cases. Special case
//only for quests which cast teleport spells on player
- if (WorldObject const* worldObjectQuestGiver = dynamic_cast<WorldObject const*>(questGiver))
+ if (WorldObject const* worldObjectQuestGiver = questGiver->ToWorldObject())
if (!IsInMap(worldObjectQuestGiver))
return nullptr;
diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp
index 2f870eb2cee..d39691e5a9c 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -7872,9 +7872,20 @@ void Spell::DelayedChannel()
m_timer -= delaytime;
for (TargetInfo const& targetInfo : m_UniqueTargetInfo)
- if (targetInfo.MissCondition == SPELL_MISS_NONE)
- if (Unit* unit = (unitCaster->GetGUID() == targetInfo.TargetGUID) ? unitCaster : ObjectAccessor::GetUnit(*unitCaster, targetInfo.TargetGUID))
- unit->DelayOwnedAuras(m_spellInfo->Id, m_originalCasterGUID, delaytime);
+ {
+ if (targetInfo.MissCondition != SPELL_MISS_NONE)
+ continue;
+
+ Unit* unit = unitCaster;
+ if (unitCaster->GetGUID() != targetInfo.TargetGUID)
+ {
+ unit = ObjectAccessor::GetUnit(*unitCaster, targetInfo.TargetGUID);
+ if (!unit)
+ continue;
+ }
+
+ unit->DelayOwnedAuras(m_spellInfo->Id, m_originalCasterGUID, delaytime);
+ }
// partially interrupt persistent area auras
if (DynamicObject* dynObj = unitCaster->GetDynObject(m_spellInfo->Id))