aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Miscellaneous/SharedDefines.h14
-rw-r--r--src/server/game/Spells/SpellInfo.cpp141
2 files changed, 7 insertions, 148 deletions
diff --git a/src/server/game/Miscellaneous/SharedDefines.h b/src/server/game/Miscellaneous/SharedDefines.h
index c42f5d8714c..7b34e1a08a1 100644
--- a/src/server/game/Miscellaneous/SharedDefines.h
+++ b/src/server/game/Miscellaneous/SharedDefines.h
@@ -2576,13 +2576,13 @@ enum Mechanics : uint32
};
// Used for spell 42292 Immune Movement Impairment and Loss of Control (0x49967ca6)
-#define IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK (\
- (1<<MECHANIC_CHARM)|(1<<MECHANIC_DISORIENTED)|(1<<MECHANIC_FEAR)| \
- (1<<MECHANIC_ROOT)|(1<<MECHANIC_SLEEP)|(1<<MECHANIC_SNARE)| \
- (1<<MECHANIC_STUN)|(1<<MECHANIC_FREEZE)|(1<<MECHANIC_SILENCE)|(1<<MECHANIC_DISARM)|(1<<MECHANIC_KNOCKOUT)| \
- (1<<MECHANIC_POLYMORPH)|(1<<MECHANIC_BANISH)|(1<<MECHANIC_SHACKLE)| \
- (1<<MECHANIC_TURN)|(1<<MECHANIC_HORROR)|(1<<MECHANIC_DAZE)| \
- (1<<MECHANIC_SAPPED))
+inline constexpr uint64 IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK(\
+ (1 << MECHANIC_CHARM) | (1 << MECHANIC_DISORIENTED) | (1 << MECHANIC_FEAR) | \
+ (1 << MECHANIC_ROOT) | (1 << MECHANIC_SLEEP) | (1 << MECHANIC_SNARE) | \
+ (1 << MECHANIC_STUN) | (1 << MECHANIC_FREEZE) | (1 << MECHANIC_SILENCE) | (1 << MECHANIC_DISARM) | (1 << MECHANIC_KNOCKOUT) | \
+ (1 << MECHANIC_POLYMORPH) | (1 << MECHANIC_BANISH) | (1 << MECHANIC_SHACKLE) | \
+ (1 << MECHANIC_TURN) | (1 << MECHANIC_HORROR) | (1 << MECHANIC_DAZE) | \
+ (1 << MECHANIC_SAPPED));
// Spell dispel type
enum DispelType
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index cb2875edd8e..7a365207d4b 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -3318,7 +3318,6 @@ void SpellInfo::_LoadImmunityInfo()
uint32 damageImmunityMask = 0;
int32 miscVal = effect.MiscValue;
- int32 amount = effect.CalcValue();
SpellEffectInfo::ImmunityInfo& immuneInfo = *workBuffer;
@@ -3336,146 +3335,6 @@ void SpellInfo::_LoadImmunityInfo()
for (AuraType aura : creatureImmunities->Aura)
immuneInfo.AuraTypeImmune.insert(aura);
}
-
- switch (miscVal)
- {
- case 96: // Free Friend, Uncontrollable Frenzy, Warlord's Presence
- {
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- break;
- }
- case 1615: // Incite Rage, Wolf Spirit, Overload, Lightning Tendrils
- {
- switch (Id)
- {
- case 43292: // Incite Rage
- case 49172: // Wolf Spirit
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- [[fallthrough]];
- case 61869: // Overload
- case 63481:
- case 61887: // Lightning Tendrils
- case 63486:
- mechanicImmunityMask |= (1 << MECHANIC_INTERRUPT) | (1 << MECHANIC_SILENCE);
-
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK);
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK_DEST);
- break;
- default:
- break;
- }
- break;
- }
- case 679: // Mind Control, Avenging Fury
- {
- if (Id == 57742) // Avenging Fury
- {
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- }
- break;
- }
- case 1557: // Startling Roar, Warlord Roar, Break Bonds, Stormshield
- {
- if (Id == 64187) // Stormshield
- {
- mechanicImmunityMask |= (1 << MECHANIC_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- }
- else
- {
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- }
- break;
- }
- case 1614: // Fixate
- case 1694: // Fixated, Lightning Tendrils
- {
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_ATTACK_ME);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_TAUNT);
- break;
- }
- case 1630: // Fervor, Berserk
- {
- if (Id == 64112) // Berserk
- {
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_ATTACK_ME);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_TAUNT);
- }
- else
- {
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- }
- break;
- }
- case 477: // Bladestorm
- case 1733: // Bladestorm, Killing Spree
- {
- if (!amount)
- {
- mechanicImmunityMask |= IMMUNE_TO_MOVEMENT_IMPAIRMENT_AND_LOSS_CONTROL_MASK;
-
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK);
- immuneInfo.SpellEffectImmune.insert(SPELL_EFFECT_KNOCK_BACK_DEST);
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_CONFUSE);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_FEAR);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_ROOT_2);
- }
- break;
- }
- case 878: // Whirlwind, Fog of Corruption, Determination
- {
- if (Id == 66092) // Determination
- {
- mechanicImmunityMask |= (1 << MECHANIC_SNARE) | (1 << MECHANIC_STUN)
- | (1 << MECHANIC_DISORIENTED) | (1 << MECHANIC_FREEZE);
-
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_STUN);
- immuneInfo.AuraTypeImmune.insert(SPELL_AURA_MOD_DECREASE_SPEED);
- }
- break;
- }
- default:
- break;
- }
break;
}
case SPELL_AURA_MECHANIC_IMMUNITY: