diff options
author | Shauren <shauren.trinity@gmail.com> | 2025-05-19 14:41:23 +0200 |
---|---|---|
committer | Ovahlord <dreadkiller@gmx.de> | 2025-05-26 20:49:49 +0200 |
commit | 5b3d7604e5706de37ec21ba27972ec49fc76febb (patch) | |
tree | 753d5d444d7e0f95cd00ec477d776a8b21641076 /src/server | |
parent | 5e2fb0d52085e29dbaec29be08b0381cca8e2b09 (diff) |
Core/Misc: Silence some statis analysis false positive warnings
(cherry picked from commit fe788a5eeb0bc8600ec877d9062614b9bfc43a64)
Diffstat (limited to 'src/server')
-rw-r--r-- | src/server/game/Entities/Pet/PetDefines.h | 2 | ||||
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Spells/Spell.cpp | 17 |
3 files changed, 19 insertions, 8 deletions
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)) |