Skip to content

Commit 48f8a3f

Browse files
committed
Core/Spells: Added enum flag operators to TriggerCastFlags to prevent accidentally using CastSpellExtraArgs(bool) constructor when CastSpellExtraArgs(TriggerCastFlags) was intended
(cherry picked from commit c484530)
1 parent 024331c commit 48f8a3f

File tree

11 files changed

+16
-13
lines changed

11 files changed

+16
-13
lines changed

src/server/game/Spells/Spell.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -556,7 +556,7 @@ m_caster((info->HasAttribute(SPELL_ATTR6_CAST_BY_CHARMER) && caster->GetCharmerO
556556
m_spellState = SPELL_STATE_NULL;
557557
_triggeredCastFlags = triggerFlags;
558558
if (info->HasAttribute(SPELL_ATTR4_CAN_CAST_WHILE_CASTING))
559-
_triggeredCastFlags = TriggerCastFlags(uint32(_triggeredCastFlags) | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY);
559+
_triggeredCastFlags |= TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY;
560560

561561
m_CastItem = nullptr;
562562
m_castItemGUID.Clear();

src/server/game/Spells/SpellDefines.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -173,6 +173,8 @@ enum TriggerCastFlags : uint32
173173
TRIGGERED_FULL_DEBUG_MASK = 0xFFFFFFFF
174174
};
175175

176+
DEFINE_ENUM_FLAG(TriggerCastFlags);
177+
176178
enum SpellCastTargetFlags : uint32
177179
{
178180
TARGET_FLAG_NONE = 0x00000000,

src/server/game/Spells/SpellEffects.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3732,7 +3732,7 @@ void Spell::EffectStuck()
37323732
}
37333733

37343734
// we have hearthstone not on cooldown, just use it
3735-
player->CastSpell(player, 8690, TriggerCastFlags(TRIGGERED_FULL_MASK&~TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD));
3735+
player->CastSpell(player, 8690, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_SPELL_AND_CATEGORY_CD);
37363736
}
37373737

37383738
void Spell::EffectSummonPlayer()
@@ -5413,8 +5413,9 @@ void Spell::EffectCastButtons()
54135413
if (player->GetPower(POWER_MANA) < cost)
54145414
continue;
54155415

5416-
TriggerCastFlags triggerFlags = TriggerCastFlags(TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY);
5417-
player->CastSpell(player, spell_id, triggerFlags);
5416+
CastSpellExtraArgs args;
5417+
args.TriggerFlags = TRIGGERED_IGNORE_GCD | TRIGGERED_IGNORE_CAST_IN_PROGRESS | TRIGGERED_CAST_DIRECTLY;
5418+
m_caster->CastSpell(m_caster, spellInfo->Id, args);
54185419
}
54195420
}
54205421

src/server/scripts/Events/brewfest.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -225,7 +225,7 @@ class spell_brewfest_relay_race_intro_force_player_to_throw : public SpellScript
225225
PreventHitDefaultEffect(effIndex);
226226
// All this spells trigger a spell that requires reagents; if the
227227
// triggered spell is cast as "triggered", reagents are not consumed
228-
GetHitUnit()->CastSpell(nullptr, GetEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
228+
GetHitUnit()->CastSpell(nullptr, GetEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
229229
}
230230

231231
void Register() override

src/server/scripts/Kalimdor/zone_silithus.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1463,7 +1463,7 @@ class spell_silithus_summon_cultist_periodic : public AuraScript
14631463

14641464
// All these spells trigger a spell that requires reagents; if the
14651465
// triggered spell is cast as "triggered", reagents are not consumed
1466-
GetTarget()->CastSpell(nullptr, aurEff->GetSpellEffectInfo().TriggerSpell, CastSpellExtraArgs(TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST)).SetTriggeringAura(aurEff));
1466+
GetTarget()->CastSpell(nullptr, aurEff->GetSpellEffectInfo().TriggerSpell, CastSpellExtraArgs(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST).SetTriggeringAura(aurEff));
14671467
}
14681468

14691469
void Register() override

src/server/scripts/Northrend/AzjolNerub/Ahnkahet/ahnkahet.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ class spell_ahnkahet_shadow_sickle : public AuraScript
8888

8989
if (owner->IsAIEnabled())
9090
if (Unit* target = owner->GetAI()->SelectTarget(SelectTargetMethod::Random, 0, 40.f))
91-
owner->CastSpell(target, spellId, CastSpellExtraArgs(aurEff).SetTriggerFlags(TriggerCastFlags::TRIGGERED_FULL_MASK));
91+
owner->CastSpell(target, spellId, CastSpellExtraArgs(aurEff).SetTriggerFlags(TRIGGERED_FULL_MASK));
9292
}
9393

9494
void Register() override

src/server/scripts/Northrend/FrozenHalls/HallsOfReflection/halls_of_reflection.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2860,7 +2860,7 @@ class spell_hor_quel_delars_will : public SpellScript
28602860
PreventHitDefaultEffect(effIndex);
28612861

28622862
// dummy spell consumes reagent, don't ignore it
2863-
GetHitUnit()->CastSpell(GetCaster(), GetEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
2863+
GetHitUnit()->CastSpell(GetCaster(), GetEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
28642864
}
28652865

28662866
void Register() override

src/server/scripts/Northrend/IcecrownCitadel/boss_icecrown_gunship_battle.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1864,7 +1864,7 @@ class spell_igb_periodic_trigger_with_power_cost : public AuraScript
18641864
void HandlePeriodicTick(AuraEffect const* aurEff)
18651865
{
18661866
PreventDefaultAction();
1867-
GetTarget()->CastSpell(GetTarget(), aurEff->GetSpellEffectInfo().TriggerSpell, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
1867+
GetTarget()->CastSpell(GetTarget(), aurEff->GetSpellEffectInfo().TriggerSpell, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
18681868
}
18691869

18701870
void Register() override

src/server/scripts/Outland/TempestKeep/Eye/boss_kaelthas.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1412,7 +1412,7 @@ class spell_kaelthas_remove_weapons : public SpellScript
14121412
{
14131413
if (Player* player = GetHitPlayer())
14141414
for (uint32 spells : RemoveWeaponsSpells)
1415-
player->CastSpell(player, spells, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
1415+
player->CastSpell(player, spells, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
14161416
}
14171417

14181418
void Register() override

src/server/scripts/Spells/spell_dk.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1710,7 +1710,7 @@ class spell_dk_raise_dead : public SpellScript
17101710
{
17111711
// No corpse found, take reagents
17121712
if (!_corpse)
1713-
GetCaster()->CastSpell(GetCaster(), SPELL_DK_RAISE_DEAD_USE_REAGENT, TriggerCastFlags(TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
1713+
GetCaster()->CastSpell(GetCaster(), SPELL_DK_RAISE_DEAD_USE_REAGENT, TRIGGERED_FULL_MASK & ~TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
17141714
}
17151715

17161716
uint32 GetGhoulSpellId()
@@ -2758,7 +2758,7 @@ class spell_dk_dancing_rune_weapon : public AuraScript
27582758
return;
27592759

27602760
if (runeWeapon->IsInCombat() && runeWeapon->GetVictim())
2761-
runeWeapon->CastSpell(runeWeapon->GetVictim(), procSpell->Id, CastSpellExtraArgs(TriggerCastFlags::TRIGGERED_IGNORE_POWER_AND_REAGENT_COST));
2761+
runeWeapon->CastSpell(runeWeapon->GetVictim(), procSpell->Id, TRIGGERED_IGNORE_POWER_AND_REAGENT_COST);
27622762
}
27632763

27642764
void Register() override

0 commit comments

Comments
 (0)