From 9ef460759c159af8cad6f269625a285607cf45d0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=A9=E9=B9=AD?= <18535853+PkllonG@users.noreply.github.com> Date: Tue, 7 Apr 2026 19:54:43 +0800 Subject: [PATCH] refactor(Core/Immunities): Simplify UI64 literal conversion for cleaner code (#25360) --- .../game/Entities/Creature/Creature.cpp | 4 +-- src/server/game/Entities/Unit/Unit.cpp | 32 +++++++++---------- .../game/Spells/Auras/SpellAuraEffects.cpp | 2 +- src/server/game/Spells/Spell.cpp | 16 +++++----- src/server/game/Spells/SpellEffects.cpp | 4 +-- src/server/game/Spells/SpellInfo.cpp | 14 ++++---- src/server/scripts/Commands/cs_npc.cpp | 2 +- .../UtgardeKeep/UtgardeKeep/utgarde_keep.cpp | 2 +- src/server/scripts/Spells/spell_dk.cpp | 2 +- src/server/scripts/Spells/spell_druid.cpp | 4 +-- src/server/scripts/Spells/spell_item.cpp | 4 +-- src/server/scripts/Spells/spell_mage.cpp | 2 +- src/server/scripts/Spells/spell_paladin.cpp | 2 +- src/server/scripts/Spells/spell_priest.cpp | 2 +- src/server/scripts/Spells/spell_rogue.cpp | 4 +-- src/server/scripts/Spells/spell_shaman.cpp | 2 +- src/server/scripts/Spells/spell_warlock.cpp | 2 +- src/server/scripts/Spells/spell_warrior.cpp | 4 +-- src/server/shared/SharedDefines.h | 32 +++++++++---------- 19 files changed, 68 insertions(+), 68 deletions(-) diff --git a/src/server/game/Entities/Creature/Creature.cpp b/src/server/game/Entities/Creature/Creature.cpp index 5d7804d01..14cbd71cf 100644 --- a/src/server/game/Entities/Creature/Creature.cpp +++ b/src/server/game/Entities/Creature/Creature.cpp @@ -2224,7 +2224,7 @@ bool Creature::IsImmunedToSpell(SpellInfo const* spellInfo, Spell const* spell) // Xinef: this should exclude self casts... // Spells that don't have effectMechanics. - if (spellInfo->Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(UI64LIT(1) << spellInfo->Mechanic)) + if (spellInfo->Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(1ULL << spellInfo->Mechanic)) return true; // The above helper uses the creature_immunities table rather than a @@ -2247,7 +2247,7 @@ bool Creature::IsImmunedToSpell(SpellInfo const* spellInfo, Spell const* spell) bool Creature::IsImmunedToSpellEffect(SpellInfo const* spellInfo, uint32 index, Unit const* caster /*= nullptr*/) const { // Xinef: this should exclude self casts... - if (spellInfo->Effects[index].Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(UI64LIT(1) << spellInfo->Effects[index].Mechanic)) + if (spellInfo->Effects[index].Mechanic > MECHANIC_NONE && HasMechanicTemplateImmunity(1ULL << spellInfo->Effects[index].Mechanic)) return true; if (GetCreatureTemplate()->type == CREATURE_TYPE_MECHANICAL && spellInfo->Effects[index].Effect == SPELL_EFFECT_HEAL) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 95c5a1529..e15d68f60 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -2194,7 +2194,7 @@ bool Unit::IsDamageReducedByArmor(SpellSchoolMask schoolMask, SpellInfo const* s { if (spellInfo->Effects[effIndex].ApplyAuraName == SPELL_AURA_PERIODIC_DAMAGE || spellInfo->Effects[effIndex].Effect == SPELL_EFFECT_SCHOOL_DAMAGE) - if (spellInfo->GetEffectMechanicMask(effIndex) & (1 << MECHANIC_BLEED)) + if (spellInfo->GetEffectMechanicMask(effIndex) & (1ULL << MECHANIC_BLEED)) return false; } } @@ -5490,7 +5490,7 @@ void Unit::RemoveAurasWithFamily(SpellFamilyNames family, uint32 familyFlag1, ui void Unit::RemoveMovementImpairingAuras(bool withRoot) { if (withRoot) - RemoveAurasWithMechanic(1 << MECHANIC_ROOT); + RemoveAurasWithMechanic(1ULL << MECHANIC_ROOT); // Snares for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();) @@ -5525,7 +5525,7 @@ void Unit::RemoveAurasWithMechanic(uint64 mechanic_mask, AuraRemoveMode removemo void Unit::RemoveAurasByShapeShift() { - uint64 mechanic_mask = (UI64LIT(1) << MECHANIC_SNARE) | (UI64LIT(1) << MECHANIC_ROOT); + uint64 mechanic_mask = (1ULL << MECHANIC_SNARE) | (1ULL << MECHANIC_ROOT); for (AuraApplicationMap::iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end();) { Aura const* aura = iter->second->GetBase(); @@ -6082,12 +6082,12 @@ bool Unit::HasAuraWithMechanic(uint64 mechanicMask) const for (AuraApplicationMap::const_iterator iter = m_appliedAuras.begin(); iter != m_appliedAuras.end(); ++iter) { SpellInfo const* spellInfo = iter->second->GetBase()->GetSpellInfo(); - if (spellInfo->Mechanic && (mechanicMask & (UI64LIT(1) << spellInfo->Mechanic))) + if (spellInfo->Mechanic && (mechanicMask & (1ULL << spellInfo->Mechanic))) return true; for (uint8 i = 0; i < MAX_SPELL_EFFECTS; ++i) if (iter->second->HasEffect(i) && spellInfo->Effects[i].Effect && spellInfo->Effects[i].Mechanic) - if (mechanicMask & (UI64LIT(1) << spellInfo->Effects[i].Mechanic)) + if (mechanicMask & (1ULL << spellInfo->Effects[i].Mechanic)) return true; } @@ -8591,7 +8591,7 @@ float Unit::SpellPctDamageModsDone(Unit* victim, SpellInfo const* spellProto, Da // Torment the weak if (spellProto->SpellFamilyFlags[0] & 0x20600021 || spellProto->SpellFamilyFlags[1] & 0x9000) - if (victim->HasAuraWithMechanic((1 << MECHANIC_SNARE) | (1 << MECHANIC_SLOW_ATTACK))) + if (victim->HasAuraWithMechanic((1ULL << MECHANIC_SNARE) | (1ULL << MECHANIC_SLOW_ATTACK))) if (AuraEffect* aurEff = GetAuraEffect(SPELL_AURA_DUMMY, SPELLFAMILY_GENERIC, 3263, EFFECT_0)) AddPct(DoneTotalMod, aurEff->GetAmount()); break; @@ -8910,7 +8910,7 @@ uint32 Unit::SpellDamageBonusTaken(Unit* caster, SpellInfo const* spellProto, ui if (!caster || caster->GetGUID() != (*i)->GetCasterGUID()) continue; - if (mechanicMask & uint64(UI64LIT(1) << (*i)->GetMiscValue())) + if (mechanicMask & (1ULL << (*i)->GetMiscValue())) { if ((*i)->GetAmount() > 0) { @@ -9218,7 +9218,7 @@ float Unit::SpellTakenCritChance(Unit const* caster, SpellInfo const* spellProto case SPELLFAMILY_MAGE: // Glyph of Fire Blast if (spellProto->SpellFamilyFlags[0] == 0x2 && spellProto->SpellIconID == 12) - if (HasAuraWithMechanic((1 << MECHANIC_STUN) | (1 << MECHANIC_KNOCKOUT))) + if (HasAuraWithMechanic((1ULL << MECHANIC_STUN) | (1ULL << MECHANIC_KNOCKOUT))) if (AuraEffect const* aurEff = caster->GetAuraEffect(56369, EFFECT_0)) crit_chance += aurEff->GetAmount(); break; @@ -10364,13 +10364,13 @@ uint32 Unit::MeleeDamageBonusTaken(Unit* attacker, uint32 pdamage, WeaponAttackT // Shred, Maul - "Effects which increase Bleed damage also increase Shred damage" if (spellProto->SpellFamilyName == SPELLFAMILY_DRUID && spellProto->SpellFamilyFlags[0] & 0x00008800) - mechanicMask |= (UI64LIT(1) << MECHANIC_BLEED); + mechanicMask |= (1ULL << MECHANIC_BLEED); if (mechanicMask) { TakenTotalMod *= GetTotalAuraMultiplier(SPELL_AURA_MOD_MECHANIC_DAMAGE_TAKEN_PERCENT, [mechanicMask](AuraEffect const* aurEff) -> bool { - if (mechanicMask & uint64(UI64LIT(1) << (aurEff->GetMiscValue()))) + if (mechanicMask & (1ULL << (aurEff->GetMiscValue()))) return true; return false; }); @@ -11215,8 +11215,8 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) if (Creature* creature = ToCreature()) { // use creature helper which now consults creature_immunities table - if (creature->HasMechanicTemplateImmunity(UI64LIT(1) << MECHANIC_SNARE) || - creature->HasMechanicTemplateImmunity(UI64LIT(1) << MECHANIC_DAZE)) + if (creature->HasMechanicTemplateImmunity(1ULL << MECHANIC_SNARE) || + creature->HasMechanicTemplateImmunity(1ULL << MECHANIC_DAZE)) break; } @@ -11237,7 +11237,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced) if (creature && !IsPet() && !(IsControlledByPlayer() && IsVehicle()) - && !(creature->HasMechanicTemplateImmunity(UI64LIT(1) << MECHANIC_SNARE)) + && !(creature->HasMechanicTemplateImmunity(1ULL << MECHANIC_SNARE)) && !(creature->IsDungeonBoss())) { // 1.6% for each % under 30. @@ -11595,7 +11595,7 @@ int32 Unit::ModSpellDuration(SpellInfo const* spellProto, Unit const* target, in // xinef: also calculate self casts, spell can be reflected for example if (!positive) { - int32 mechanic = spellProto->GetSpellMechanicMaskByEffectMask(effectMask); + uint64 mechanic = spellProto->GetSpellMechanicMaskByEffectMask(effectMask); int32 durationMod; int32 durationMod_always = 0; @@ -11603,11 +11603,11 @@ int32 Unit::ModSpellDuration(SpellInfo const* spellProto, Unit const* target, in for (uint8 i = 1; i <= MECHANIC_ENRAGED; ++i) { - if (!(mechanic & 1 << i)) + if (!(mechanic & (1ULL << i))) continue; // Xinef: spells affecting movement imparing effects should not reduce duration if disoriented mechanic is present - if (i == MECHANIC_SNARE && (mechanic & (1 << MECHANIC_DISORIENTED))) + if (i == MECHANIC_SNARE && (mechanic & (1ULL << MECHANIC_DISORIENTED))) continue; // Find total mod value (negative bonus) diff --git a/src/server/game/Spells/Auras/SpellAuraEffects.cpp b/src/server/game/Spells/Auras/SpellAuraEffects.cpp index 5506a9461..16c3c989c 100644 --- a/src/server/game/Spells/Auras/SpellAuraEffects.cpp +++ b/src/server/game/Spells/Auras/SpellAuraEffects.cpp @@ -1223,7 +1223,7 @@ bool AuraEffect::CheckEffectProc(AuraApplication* aurApp, ProcEventInfo& eventIn case SPELL_AURA_MECHANIC_IMMUNITY: case SPELL_AURA_MOD_MECHANIC_RESISTANCE: // compare mechanic - if (!spellInfo || !(spellInfo->GetAllEffectsMechanicMask() & (UI64LIT(1) << GetMiscValue()))) + if (!spellInfo || !(spellInfo->GetAllEffectsMechanicMask() & (1ULL << GetMiscValue()))) return false; break; case SPELL_AURA_MOD_CASTING_SPEED_NOT_STACK: diff --git a/src/server/game/Spells/Spell.cpp b/src/server/game/Spells/Spell.cpp index 69a795012..d492451a0 100644 --- a/src/server/game/Spells/Spell.cpp +++ b/src/server/game/Spells/Spell.cpp @@ -6828,7 +6828,7 @@ SpellCastResult Spell::CheckCasterAuras(bool preventionOnly) const return SPELL_CAST_OK; uint8 school_immune = 0; - uint32 mechanic_immune = 0; + uint64 mechanic_immune = 0; uint32 dispel_immune = 0; // Check if the spell grants school or mechanic immunity. @@ -6840,7 +6840,7 @@ SpellCastResult Spell::CheckCasterAuras(bool preventionOnly) const if (m_spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_SCHOOL_IMMUNITY) school_immune |= uint32(m_spellInfo->Effects[i].MiscValue); else if (m_spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_MECHANIC_IMMUNITY) - mechanic_immune |= 1 << uint32(m_spellInfo->Effects[i].MiscValue); + mechanic_immune |= 1ULL << uint32(m_spellInfo->Effects[i].MiscValue); else if (m_spellInfo->Effects[i].ApplyAuraName == SPELL_AURA_DISPEL_IMMUNITY) dispel_immune |= SpellInfo::GetDispelMask(DispelType(m_spellInfo->Effects[i].MiscValue)); } @@ -6871,13 +6871,13 @@ SpellCastResult Spell::CheckCasterAuras(bool preventionOnly) const if (usableInStun) { bool foundNotStun = false; - uint32 mask = (1 << MECHANIC_STUN) | (1 << MECHANIC_FREEZE) | (1 << MECHANIC_HORROR); + uint64 mask = (1ULL << MECHANIC_STUN) | (1ULL << MECHANIC_FREEZE) | (1ULL << MECHANIC_HORROR); // Barkskin should skip sleep effects, sap and fears if (m_spellInfo->Id == 22812) - mask |= 1 << MECHANIC_SAPPED | 1 << MECHANIC_HORROR | 1 << MECHANIC_SLEEP; + mask |= 1ULL << MECHANIC_SAPPED | 1ULL << MECHANIC_HORROR | 1ULL << MECHANIC_SLEEP; // Hand of Freedom, can be used while sapped and while under fear-mechanic stuns (e.g. Intimidating Shout primary target) if (m_spellInfo->Id == 1044) - mask |= (1 << MECHANIC_SAPPED) | (1 << MECHANIC_FEAR); + mask |= (1ULL << MECHANIC_SAPPED) | (1ULL << MECHANIC_FEAR); Unit::AuraEffectList const& stunAuras = m_caster->GetAuraEffectsByType(SPELL_AURA_MOD_STUN); for (Unit::AuraEffectList::const_iterator i = stunAuras.begin(); i != stunAuras.end(); ++i) { @@ -6936,13 +6936,13 @@ SpellCastResult Spell::CheckCasterAuras(bool preventionOnly) const { case SPELL_AURA_MOD_STUN: { - uint32 mask = 1 << MECHANIC_STUN; + uint64 mask = 1ULL << MECHANIC_STUN; // Barkskin should skip sleep effects, sap and fears if (m_spellInfo->Id == 22812) - mask |= 1 << MECHANIC_SAPPED | 1 << MECHANIC_HORROR | 1 << MECHANIC_SLEEP; + mask |= 1ULL << MECHANIC_SAPPED | 1ULL << MECHANIC_HORROR | 1ULL << MECHANIC_SLEEP; // Hand of Freedom, can be used while sapped and while under fear-mechanic stuns (e.g. Intimidating Shout primary target) if (m_spellInfo->Id == 1044) - mask |= (1 << MECHANIC_SAPPED) | (1 << MECHANIC_FEAR); + mask |= (1ULL << MECHANIC_SAPPED) | (1ULL << MECHANIC_FEAR); if (!usableInStun || !(auraInfo->GetAllEffectsMechanicMask() & mask)) return SPELL_FAILED_STUNNED; diff --git a/src/server/game/Spells/SpellEffects.cpp b/src/server/game/Spells/SpellEffects.cpp index 46e674736..a9147f307 100644 --- a/src/server/game/Spells/SpellEffects.cpp +++ b/src/server/game/Spells/SpellEffects.cpp @@ -856,7 +856,7 @@ void Spell::EffectTriggerSpell(SpellEffIndex effIndex) SpellInfo const* spell = iter->second->GetBase()->GetSpellInfo(); // Pounce Bleed shouldn't be removed by Cloak of Shadows. - if (spell->GetAllEffectsMechanicMask() & (UI64LIT(1) << MECHANIC_BLEED)) + if (spell->GetAllEffectsMechanicMask() & (1ULL << MECHANIC_BLEED)) return; bool dmgClassNone = false; @@ -5157,7 +5157,7 @@ void Spell::EffectDispelMechanic(SpellEffIndex effIndex) continue; if (roll_chance_i(aura->CalcDispelChance(unitTarget, !unitTarget->IsFriendlyTo(m_caster)))) { - if ((aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (UI64LIT(1) << mechanic))) + if (aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1ULL << mechanic)) { dispel_list.push(std::make_pair(aura->GetId(), aura->GetCasterGUID())); diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index 1775e9ec1..f2e5d803c 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1900,10 +1900,10 @@ uint64 SpellInfo::GetAllEffectsMechanicMask() const { uint64 mask = 0; if (Mechanic) - mask |= UI64LIT(1) << Mechanic; + mask |= 1ULL << Mechanic; for (int i = 0; i < MAX_SPELL_EFFECTS; ++i) if (Effects[i].IsEffect() && Effects[i].Mechanic) - mask |= UI64LIT(1) << Effects[i].Mechanic; + mask |= 1ULL << Effects[i].Mechanic; return mask; } @@ -1911,9 +1911,9 @@ uint64 SpellInfo::GetEffectMechanicMask(uint8 effIndex) const { uint64 mask = 0; if (Mechanic) - mask |= UI64LIT(1) << Mechanic; + mask |= 1ULL << Mechanic; if (Effects[effIndex].IsEffect() && Effects[effIndex].Mechanic) - mask |= UI64LIT(1) << Effects[effIndex].Mechanic; + mask |= 1ULL << Effects[effIndex].Mechanic; return mask; } @@ -1921,10 +1921,10 @@ uint64 SpellInfo::GetSpellMechanicMaskByEffectMask(uint32 effectMask) const { uint64 mask = 0; if (Mechanic) - mask |= UI64LIT(1) << Mechanic; + mask |= 1ULL << Mechanic; for (int i = 0; i < MAX_SPELL_EFFECTS; ++i) if ((effectMask & (1 << i)) && Effects[i].Mechanic) - mask |= UI64LIT(1) << Effects[i].Mechanic; + mask |= 1ULL << Effects[i].Mechanic; return mask; } @@ -2008,7 +2008,7 @@ AuraStateType SpellInfo::LoadAuraState() const return AURA_STATE_ENRAGE; // Bleeding aura state - if (GetAllEffectsMechanicMask() & (UI64LIT(1) << MECHANIC_BLEED)) + if (GetAllEffectsMechanicMask() & (1ULL << MECHANIC_BLEED)) return AURA_STATE_BLEEDING; // Banished aura state diff --git a/src/server/scripts/Commands/cs_npc.cpp b/src/server/scripts/Commands/cs_npc.cpp index 6eb781317..62a9468bd 100644 --- a/src/server/scripts/Commands/cs_npc.cpp +++ b/src/server/scripts/Commands/cs_npc.cpp @@ -705,7 +705,7 @@ public: handler->PSendSysMessage(LANG_NPCINFO_MECHANIC_IMMUNE, Acore::StringFormat("0x{:X}", mechanicImmuneMask).c_str()); for (uint8 i = 1; i < MAX_MECHANIC; ++i) - if (mechanicImmuneMask & (UI64LIT(1) << i)) + if (mechanicImmuneMask & (1ULL << i)) handler->PSendSysMessage(mechanicImmunes[i].text, mechanicImmunes[i].flag); handler->PSendSysMessage(LANG_NPCINFO_SPELL_SCHOOL_IMMUNE, spellSchoolImmuneMask); diff --git a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp index fcad4c62c..e7c71732e 100644 --- a/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp +++ b/src/server/scripts/Northrend/UtgardeKeep/UtgardeKeep/utgarde_keep.cpp @@ -224,7 +224,7 @@ class spell_uk_second_wind : public AuraScript if (!spellInfo) return false; - return (spellInfo->GetAllEffectsMechanicMask() & ((1 << MECHANIC_ROOT) | (1 << MECHANIC_STUN))) != 0; + return (spellInfo->GetAllEffectsMechanicMask() & ((1ULL << MECHANIC_ROOT) | (1ULL << MECHANIC_STUN))) != 0; } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_dk.cpp b/src/server/scripts/Spells/spell_dk.cpp index 442139783..228a35642 100644 --- a/src/server/scripts/Spells/spell_dk.cpp +++ b/src/server/scripts/Spells/spell_dk.cpp @@ -3001,7 +3001,7 @@ class spell_dk_pvp_4p_bonus : public AuraScript if (!spellInfo) return false; - return (spellInfo->GetAllEffectsMechanicMask() & ((1 << MECHANIC_ROOT) | (1 << MECHANIC_SNARE))) != 0; + return (spellInfo->GetAllEffectsMechanicMask() & ((1ULL << MECHANIC_ROOT) | (1ULL << MECHANIC_SNARE))) != 0; } void HandleProc(AuraEffect const* aurEff, ProcEventInfo& eventInfo) diff --git a/src/server/scripts/Spells/spell_druid.cpp b/src/server/scripts/Spells/spell_druid.cpp index 0670da786..77e4ac038 100644 --- a/src/server/scripts/Spells/spell_druid.cpp +++ b/src/server/scripts/Spells/spell_druid.cpp @@ -770,7 +770,7 @@ class spell_dru_moonkin_form_passive : public AuraScript void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount) { // reduces all damage taken while Stunned in Moonkin Form - if (GetTarget()->GetUnitFlags() & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN)) + if (GetTarget()->GetUnitFlags() & (UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1ULL << MECHANIC_STUN)) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } @@ -837,7 +837,7 @@ class spell_dru_primal_tenacity : public AuraScript void Absorb(AuraEffect* /*aurEff*/, DamageInfo& dmgInfo, uint32& absorbAmount) { // reduces all damage taken while Stunned in Cat Form - if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1 << MECHANIC_STUN)) + if (GetTarget()->GetShapeshiftForm() == FORM_CAT && GetTarget()->HasUnitFlag(UNIT_FLAG_STUNNED) && GetTarget()->HasAuraWithMechanic(1ULL << MECHANIC_STUN)) absorbAmount = CalculatePct(dmgInfo.GetDamage(), absorbPct); } diff --git a/src/server/scripts/Spells/spell_item.cpp b/src/server/scripts/Spells/spell_item.cpp index dc9340479..cda844dbb 100644 --- a/src/server/scripts/Spells/spell_item.cpp +++ b/src/server/scripts/Spells/spell_item.cpp @@ -4372,7 +4372,7 @@ class spell_item_luffa : public SpellScript for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) { Aura const* aura = itr->second->GetBase(); - if (!(aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1 << MECHANIC_BLEED)) || aura->GetCasterLevel() > 60 || aura->GetSpellInfo()->IsPositive()) + if (!(aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1ULL << MECHANIC_BLEED)) || aura->GetCasterLevel() > 60 || aura->GetSpellInfo()->IsPositive()) continue; return SPELL_CAST_OK; @@ -4392,7 +4392,7 @@ class spell_item_luffa : public SpellScript for (Unit::AuraApplicationMap::const_iterator itr = auras.begin(); itr != auras.end(); ++itr) { Aura const* aura = itr->second->GetBase(); - if (!(aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1 << MECHANIC_BLEED)) || aura->GetCasterLevel() > 60 || aura->GetSpellInfo()->IsPositive()) + if (!(aura->GetSpellInfo()->GetAllEffectsMechanicMask() & (1ULL << MECHANIC_BLEED)) || aura->GetCasterLevel() > 60 || aura->GetSpellInfo()->IsPositive()) continue; player->RemoveAurasDueToSpell(aura->GetId(), aura->GetCasterGUID()); diff --git a/src/server/scripts/Spells/spell_mage.cpp b/src/server/scripts/Spells/spell_mage.cpp index f6d5f240a..be2d979e5 100644 --- a/src/server/scripts/Spells/spell_mage.cpp +++ b/src/server/scripts/Spells/spell_mage.cpp @@ -120,7 +120,7 @@ class spell_mage_burning_determination : public AuraScript return false; // Need Interrupt or Silenced mechanic - if (!(eventInfo.GetSpellInfo()->GetAllEffectsMechanicMask() & ((1 << MECHANIC_INTERRUPT) | (1 << MECHANIC_SILENCE)))) + if (!(eventInfo.GetSpellInfo()->GetAllEffectsMechanicMask() & ((1ULL << MECHANIC_INTERRUPT) | (1ULL << MECHANIC_SILENCE)))) return false; // Xinef: immuned effect should just eat charge diff --git a/src/server/scripts/Spells/spell_paladin.cpp b/src/server/scripts/Spells/spell_paladin.cpp index 963d1d266..5b33c2fc9 100644 --- a/src/server/scripts/Spells/spell_paladin.cpp +++ b/src/server/scripts/Spells/spell_paladin.cpp @@ -1486,7 +1486,7 @@ class spell_pal_divine_purpose : public AuraScript { PreventDefaultAction(); if (Unit* target = eventInfo.GetActionTarget()) - target->RemoveAurasWithMechanic(1 << MECHANIC_STUN, AURA_REMOVE_BY_ENEMY_SPELL); + target->RemoveAurasWithMechanic(1ULL << MECHANIC_STUN, AURA_REMOVE_BY_ENEMY_SPELL); } void Register() override diff --git a/src/server/scripts/Spells/spell_priest.cpp b/src/server/scripts/Spells/spell_priest.cpp index 4ab3a1611..93b6f807f 100644 --- a/src/server/scripts/Spells/spell_priest.cpp +++ b/src/server/scripts/Spells/spell_priest.cpp @@ -473,7 +473,7 @@ class spell_pri_mana_burn : public SpellScript void HandleAfterHit() { if (Unit* unitTarget = GetHitUnit()) - unitTarget->RemoveAurasWithMechanic((1 << MECHANIC_FEAR) | (1 << MECHANIC_POLYMORPH)); + unitTarget->RemoveAurasWithMechanic((1ULL << MECHANIC_FEAR) | (1ULL << MECHANIC_POLYMORPH)); } void Register() override diff --git a/src/server/scripts/Spells/spell_rogue.cpp b/src/server/scripts/Spells/spell_rogue.cpp index 1d01f3028..302727ca6 100644 --- a/src/server/scripts/Spells/spell_rogue.cpp +++ b/src/server/scripts/Spells/spell_rogue.cpp @@ -735,13 +735,13 @@ class spell_rog_vanish_purge : public SpellScript void HandleRootRemove(SpellEffIndex /*effIndex*/) { if (GetCaster() && !GetCaster()->HasAura(SPELL_PARALYZE)) // Root from Tainted Core SSC, should not be removed by vanish. - GetCaster()->RemoveAurasWithMechanic(1 << MECHANIC_ROOT); + GetCaster()->RemoveAurasWithMechanic(1ULL << MECHANIC_ROOT); } void HandleSnareRemove(SpellEffIndex /*effIndex*/) { if (GetCaster()) - GetCaster()->RemoveAurasWithMechanic(1 << MECHANIC_SNARE); + GetCaster()->RemoveAurasWithMechanic(1ULL << MECHANIC_SNARE); } void Register() override diff --git a/src/server/scripts/Spells/spell_shaman.cpp b/src/server/scripts/Spells/spell_shaman.cpp index 1a9c545a5..eef753444 100644 --- a/src/server/scripts/Spells/spell_shaman.cpp +++ b/src/server/scripts/Spells/spell_shaman.cpp @@ -1494,7 +1494,7 @@ class spell_sha_astral_shift_aura : public AuraScript bool CheckProc(ProcEventInfo& eventInfo) { if (SpellInfo const* spellInfo = eventInfo.GetSpellInfo()) - if (spellInfo->GetAllEffectsMechanicMask() & ((1 << MECHANIC_SILENCE) | (1 << MECHANIC_STUN) | (1 << MECHANIC_FEAR))) + if (spellInfo->GetAllEffectsMechanicMask() & ((1ULL << MECHANIC_SILENCE) | (1ULL << MECHANIC_STUN) | (1ULL << MECHANIC_FEAR))) return true; return false; diff --git a/src/server/scripts/Spells/spell_warlock.cpp b/src/server/scripts/Spells/spell_warlock.cpp index c3410d0da..49d698a26 100644 --- a/src/server/scripts/Spells/spell_warlock.cpp +++ b/src/server/scripts/Spells/spell_warlock.cpp @@ -927,7 +927,7 @@ class spell_warl_demonic_circle_teleport : public AuraScript if (GameObject* circle = player->GetGameObject(SPELL_WARLOCK_DEMONIC_CIRCLE_SUMMON)) { player->NearTeleportTo(circle->GetPositionX(), circle->GetPositionY(), circle->GetPositionZ(), circle->GetOrientation(), false, false, false, true); - player->RemoveAurasWithMechanic(1 << MECHANIC_SNARE); + player->RemoveAurasWithMechanic(1ULL << MECHANIC_SNARE); } } } diff --git a/src/server/scripts/Spells/spell_warrior.cpp b/src/server/scripts/Spells/spell_warrior.cpp index b6a4f53e1..5462102d4 100644 --- a/src/server/scripts/Spells/spell_warrior.cpp +++ b/src/server/scripts/Spells/spell_warrior.cpp @@ -612,7 +612,7 @@ class spell_warr_shattering_throw : public SpellScript // remove shields, will still display immune to damage part if (Unit* target = GetHitUnit()) - target->RemoveAurasWithMechanic(1 << MECHANIC_IMMUNE_SHIELD, AURA_REMOVE_BY_ENEMY_SPELL); + target->RemoveAurasWithMechanic(1ULL << MECHANIC_IMMUNE_SHIELD, AURA_REMOVE_BY_ENEMY_SPELL); } void Register() override @@ -1013,7 +1013,7 @@ class spell_warr_second_wind : public AuraScript return false; // Must be from stun or root mechanic - if (!(procSpell->GetAllEffectsMechanicMask() & ((1 << MECHANIC_ROOT) | (1 << MECHANIC_STUN)))) + if (!(procSpell->GetAllEffectsMechanicMask() & ((1ULL << MECHANIC_ROOT) | (1ULL << MECHANIC_STUN)))) return false; // Not from self diff --git a/src/server/shared/SharedDefines.h b/src/server/shared/SharedDefines.h index 9b081e7f5..502a8a743 100644 --- a/src/server/shared/SharedDefines.h +++ b/src/server/shared/SharedDefines.h @@ -1352,22 +1352,22 @@ enum Mechanics : uint32 // Used for spell 42292 Immune Movement Impairment and Loss of Control (0x49967ca6) inline constexpr uint64 IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK = - (UI64LIT(1) << MECHANIC_CHARM) | - (UI64LIT(1) << MECHANIC_DISORIENTED) | - (UI64LIT(1) << MECHANIC_FEAR) | - (UI64LIT(1) << MECHANIC_ROOT) | - (UI64LIT(1) << MECHANIC_SLEEP) | - (UI64LIT(1) << MECHANIC_SNARE) | - (UI64LIT(1) << MECHANIC_STUN) | - (UI64LIT(1) << MECHANIC_FREEZE) | - (UI64LIT(1) << MECHANIC_KNOCKOUT) | - (UI64LIT(1) << MECHANIC_POLYMORPH) | - (UI64LIT(1) << MECHANIC_BANISH) | - (UI64LIT(1) << MECHANIC_SHACKLE) | - (UI64LIT(1) << MECHANIC_TURN) | - (UI64LIT(1) << MECHANIC_HORROR) | - (UI64LIT(1) << MECHANIC_DAZE) | - (UI64LIT(1) << MECHANIC_SAPPED); + (1ULL << MECHANIC_CHARM) | + (1ULL << MECHANIC_DISORIENTED) | + (1ULL << MECHANIC_FEAR) | + (1ULL << MECHANIC_ROOT) | + (1ULL << MECHANIC_SLEEP) | + (1ULL << MECHANIC_SNARE) | + (1ULL << MECHANIC_STUN) | + (1ULL << MECHANIC_FREEZE) | + (1ULL << MECHANIC_KNOCKOUT) | + (1ULL << MECHANIC_POLYMORPH) | + (1ULL << MECHANIC_BANISH) | + (1ULL << MECHANIC_SHACKLE) | + (1ULL << MECHANIC_TURN) | + (1ULL << MECHANIC_HORROR) | + (1ULL << MECHANIC_DAZE) | + (1ULL << MECHANIC_SAPPED); // Spell dispel type enum DispelType