Core/Spells: Added enum flag operators to TriggerCastFlags to prevent accidentally using CastSpellExtraArgs(bool) constructor when CastSpellExtraArgs(TriggerCastFlags) was intended
This commit is contained in:
@@ -547,10 +547,10 @@ m_spellValue(new SpellValue(m_spellInfo, caster)), _spellEvent(nullptr)
|
||||
_triggeredCastFlags = triggerFlags;
|
||||
|
||||
if (info->HasAttribute(SPELL_ATTR2_DO_NOT_REPORT_SPELL_FAILURE))
|
||||
_triggeredCastFlags = TriggerCastFlags(uint32(_triggeredCastFlags) | TRIGGERED_DONT_REPORT_CAST_ERROR);
|
||||
_triggeredCastFlags |= TRIGGERED_DONT_REPORT_CAST_ERROR;
|
||||
|
||||
if (info->HasAttribute(SPELL_ATTR4_ALLOW_CAST_WHILE_CASTING))
|
||||
_triggeredCastFlags = TriggerCastFlags(uint32(_triggeredCastFlags) | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
_triggeredCastFlags |= TRIGGERED_IGNORE_CAST_IN_PROGRESS;
|
||||
|
||||
m_CastItem = nullptr;
|
||||
m_castItemGUID.Clear();
|
||||
|
||||
@@ -267,6 +267,8 @@ enum TriggerCastFlags : uint32
|
||||
TRIGGERED_FULL_DEBUG_MASK = 0xFFFFFFFF
|
||||
};
|
||||
|
||||
DEFINE_ENUM_FLAG(TriggerCastFlags);
|
||||
|
||||
enum SpellCastTargetFlags : uint32
|
||||
{
|
||||
TARGET_FLAG_NONE = 0x00000000,
|
||||
|
||||
@@ -5054,7 +5054,7 @@ void Spell::EffectCastButtons()
|
||||
continue;
|
||||
|
||||
CastSpellExtraArgs args;
|
||||
args.TriggerFlags = TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY | TRIGGERED_DONT_REPORT_CAST_ERROR);
|
||||
args.TriggerFlags = TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY | TRIGGERED_DONT_REPORT_CAST_ERROR;
|
||||
args.OriginalCastId = m_castId;
|
||||
args.CastDifficulty = GetCastDifficulty();
|
||||
m_caster->CastSpell(m_caster, spellInfo->Id, args);
|
||||
|
||||
@@ -225,7 +225,7 @@ class spell_brewfest_relay_race_intro_force_player_to_throw : public SpellScript
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
// All this spells trigger a spell that requires reagents; if the
|
||||
// triggered spell is cast as "triggered", reagents are not consumed
|
||||
GetHitUnit()->CastSpell(nullptr, GetEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
|
||||
GetHitUnit()->CastSpell(nullptr, GetEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -1463,7 +1463,7 @@ class spell_silithus_summon_cultist_periodic : public AuraScript
|
||||
|
||||
// All these spells trigger a spell that requires reagents; if the
|
||||
// triggered spell is cast as "triggered", reagents are not consumed
|
||||
GetTarget()->CastSpell(nullptr, aurEff->GetSpellEffectInfo().TriggerSpell, CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST)).SetTriggeringAura(aurEff));
|
||||
GetTarget()->CastSpell(nullptr, aurEff->GetSpellEffectInfo().TriggerSpell, CastSpellExtraArgs(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST).SetTriggeringAura(aurEff));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -96,7 +96,7 @@ class spell_ahnkahet_shadow_sickle : public AuraScript
|
||||
|
||||
if (owner->IsAIEnabled())
|
||||
if (Unit* target = owner->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 40.f))
|
||||
owner->CastSpell(target, spellId, CastSpellExtraArgs(aurEff).SetTriggerFlags(TriggerCastFlags::TRIGGERED_FULL_MASK));
|
||||
owner->CastSpell(target, spellId, CastSpellExtraArgs(aurEff).SetTriggerFlags(TRIGGERED_FULL_MASK));
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -2875,7 +2875,7 @@ class spell_hor_quel_delars_will : public SpellScript
|
||||
PreventHitDefaultEffect(effIndex);
|
||||
|
||||
// dummy spell consumes reagent, don't ignore it
|
||||
GetHitUnit()->CastSpell(GetCaster(), GetEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
|
||||
GetHitUnit()->CastSpell(GetCaster(), GetEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -1851,7 +1851,7 @@ class spell_igb_periodic_trigger_with_power_cost : public AuraScript
|
||||
void HandlePeriodicTick(AuraEffect const* aurEff)
|
||||
{
|
||||
PreventDefaultAction();
|
||||
GetTarget()->CastSpell(GetTarget(), aurEff->GetSpellEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
|
||||
GetTarget()->CastSpell(GetTarget(), aurEff->GetSpellEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -1412,7 +1412,7 @@ class spell_kaelthas_remove_weapons : public SpellScript
|
||||
{
|
||||
if (Player* player = GetHitPlayer())
|
||||
for (uint32 spells : RemoveWeaponsSpells)
|
||||
player->CastSpell(player, spells, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
|
||||
player->CastSpell(player, spells, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
|
||||
@@ -717,7 +717,7 @@ class spell_dru_innervate : public SpellScript
|
||||
if (caster != GetHitUnit())
|
||||
if (AuraEffect const* innervateR2 = caster->GetAuraEffect(SPELL_DRUID_INNERVATE_RANK_2, EFFECT_0))
|
||||
caster->CastSpell(caster, SPELL_DRUID_INNERVATE,
|
||||
CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD | TRIGGERED_IGNORE_CAST_IN_PROGRESS))
|
||||
CastSpellExtraArgs(TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD | TRIGGERED_IGNORE_CAST_IN_PROGRESS)
|
||||
.SetTriggeringSpell(GetSpell())
|
||||
.AddSpellMod(SPELLVALUE_BASE_POINT0, -innervateR2->GetAmount()));
|
||||
|
||||
|
||||
@@ -317,7 +317,7 @@ class spell_pal_awakening : public AuraScript
|
||||
}
|
||||
else
|
||||
GetTarget()->CastSpell(GetTarget(), SPELL_PALADIN_AVENGING_WRATH,
|
||||
CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD))
|
||||
CastSpellExtraArgs(TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD)
|
||||
.SetTriggeringSpell(eventInfo.GetProcSpell())
|
||||
.AddSpellMod(SPELLVALUE_DURATION, extraDuration.count()));
|
||||
}
|
||||
|
||||
@@ -480,7 +480,7 @@ struct areatrigger_pri_divine_star : AreaTriggerAI
|
||||
if (std::find(_affectedUnits.begin(), _affectedUnits.end(), unit->GetGUID()) != _affectedUnits.end())
|
||||
return;
|
||||
|
||||
constexpr TriggerCastFlags TriggerFlags = TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
constexpr TriggerCastFlags TriggerFlags = TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS;
|
||||
|
||||
if (caster->IsValidAttackTarget(unit))
|
||||
caster->CastSpell(unit, at->GetSpellId() == SPELL_PRIEST_DIVINE_STAR_SHADOW ? SPELL_PRIEST_DIVINE_STAR_SHADOW_DAMAGE : SPELL_PRIEST_DIVINE_STAR_HOLY_DAMAGE,
|
||||
@@ -646,10 +646,10 @@ struct areatrigger_pri_halo : AreaTriggerAI
|
||||
{
|
||||
if (caster->IsValidAttackTarget(unit))
|
||||
caster->CastSpell(unit, at->GetSpellId() == SPELL_PRIEST_HALO_SHADOW ? SPELL_PRIEST_HALO_SHADOW_DAMAGE : SPELL_PRIEST_HALO_HOLY_DAMAGE,
|
||||
CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS)));
|
||||
TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
else if (caster->IsValidAssistTarget(unit))
|
||||
caster->CastSpell(unit, at->GetSpellId() == SPELL_PRIEST_HALO_SHADOW ? SPELL_PRIEST_HALO_SHADOW_HEAL : SPELL_PRIEST_HALO_HOLY_HEAL,
|
||||
CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS)));
|
||||
TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
}
|
||||
}
|
||||
};
|
||||
@@ -1448,7 +1448,7 @@ class spell_pri_purge_the_wicked : public SpellScript
|
||||
Unit* target = GetHitUnit();
|
||||
|
||||
if (target->HasAura(SPELL_PRIEST_PURGE_THE_WICKED_PERIODIC, caster->GetGUID()))
|
||||
caster->CastSpell(target, SPELL_PRIEST_PURGE_THE_WICKED_DUMMY, CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS)));
|
||||
caster->CastSpell(target, SPELL_PRIEST_PURGE_THE_WICKED_DUMMY, TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -1520,7 +1520,7 @@ class spell_pri_purge_the_wicked_dummy : public SpellScript
|
||||
Unit* caster = GetCaster();
|
||||
Unit* target = GetHitUnit();
|
||||
|
||||
caster->CastSpell(target, SPELL_PRIEST_PURGE_THE_WICKED_PERIODIC, CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS)));
|
||||
caster->CastSpell(target, SPELL_PRIEST_PURGE_THE_WICKED_PERIODIC, TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS);
|
||||
}
|
||||
|
||||
void Register() override
|
||||
@@ -1551,7 +1551,7 @@ class spell_pri_rapture : public SpellScript
|
||||
|
||||
if (Unit* target = ObjectAccessor::GetUnit(*caster, _raptureTarget))
|
||||
caster->CastSpell(target, SPELL_PRIEST_POWER_WORD_SHIELD,
|
||||
CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_AND_REAGENT_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS))
|
||||
CastSpellExtraArgs(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_POWER_AND_REAGENT_COST | TRIGGERED_IGNORE_CAST_IN_PROGRESS)
|
||||
.SetTriggeringSpell(GetSpell()));
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user