[3.3.5] CastSpell unclusterfucking (that's a word now) (#21123)

Core/Spell: The giant CastSpell unclusterfucking (that's a word now) of this generation.

- CastSpell now always takes three arguments - target, spellId, and a struct containing extra arguments
- This struct (CastSpellExtraArgs, see SpellDefines.h) serves as a conglomerate of every previous combination of the 20 billion different CastSpell overloads, all merged into one
  - It has some great utility constructors - check them out! All of these can be used to implicitly construct the ExtraArgs object.
- A gajillion refactors to make everything behave the way it always has

(cherry picked from commit d507a7e338)
This commit is contained in:
Treeston
2017-12-30 20:28:41 +01:00
committed by Shauren
parent 2ea8f5e6fc
commit 9b141207d1
138 changed files with 1240 additions and 1028 deletions

View File

@@ -509,10 +509,10 @@ void WorldSession::HandleAcceptTradeOpcode(WorldPackets::Trade::AcceptTrade& acc
trader->ModifyMoney(my_trade->GetMoney());
if (my_spell)
my_spell->prepare(&my_targets);
my_spell->prepare(my_targets);
if (his_spell)
his_spell->prepare(&his_targets);
his_spell->prepare(his_targets);
// cleanup
clearAcceptTradeMode(my_trade, his_trade);