aboutsummaryrefslogtreecommitdiff
path: root/src/server
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2025-05-19 14:41:23 +0200
committerShauren <shauren.trinity@gmail.com>2025-05-19 14:41:23 +0200
commitfe788a5eeb0bc8600ec877d9062614b9bfc43a64 (patch)
tree1863b636967a425c70d61e839c9cee3e6da9603d /src/server
parentde5f2ff7985f6572ee61e9a505008cc701feeb71 (diff)
Core/Misc: Silence some statis analysis false positive warnings
Diffstat (limited to 'src/server')
-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
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 a246971f703..3be0ab20d43 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 a53225db319..69319ef113a 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -3304,7 +3304,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))
@@ -3445,7 +3445,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);
@@ -3454,7 +3454,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);
}
@@ -14506,7 +14506,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 c613b124f67..1172ef132b6 100644
--- a/src/server/game/Spells/Spell.cpp
+++ b/src/server/game/Spells/Spell.cpp
@@ -8137,9 +8137,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))