Skip to content

Commit

Permalink
[9409] Use SpellEffectIndex as arg type for spell effect handlers.
Browse files Browse the repository at this point in the history
  • Loading branch information
VladimirMangos committed Feb 18, 2010
1 parent d3107bb commit 2eefab5
Show file tree
Hide file tree
Showing 4 changed files with 358 additions and 357 deletions.
12 changes: 6 additions & 6 deletions src/game/Spell.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -1163,7 +1163,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
{
if (effectMask & (1 << effectNumber))
{
HandleEffects(unit, NULL, NULL, effectNumber, m_damageMultipliers[effectNumber]);
HandleEffects(unit, NULL, NULL, SpellEffectIndex(effectNumber), m_damageMultipliers[effectNumber]);
if ( m_applyMultiplierMask & (1 << effectNumber) )
{
// Get multiplier
Expand Down Expand Up @@ -1194,7 +1194,7 @@ void Spell::DoAllEffectOnTarget(GOTargetInfo *target)

for(int effectNumber = 0; effectNumber < MAX_EFFECT_INDEX; ++effectNumber)
if (effectMask & (1 << effectNumber))
HandleEffects(NULL, NULL, go, effectNumber);
HandleEffects(NULL, NULL, go, SpellEffectIndex(effectNumber));

// cast at creature (or GO) quest objectives update at successful cast finished (+channel finished)
// ignore autorepeat/melee casts for speed (not exist quest for spells (hm... )
Expand All @@ -1213,7 +1213,7 @@ void Spell::DoAllEffectOnTarget(ItemTargetInfo *target)

for(int effectNumber = 0; effectNumber < MAX_EFFECT_INDEX; ++effectNumber)
if (effectMask & (1 << effectNumber))
HandleEffects(NULL, target->item, NULL, effectNumber);
HandleEffects(NULL, target->item, NULL, SpellEffectIndex(effectNumber));
}

bool Spell::IsAliveUnitPresentInTargetList()
Expand Down Expand Up @@ -2820,7 +2820,7 @@ void Spell::_handle_immediate_phase()
// apply Send Event effect to ground in case empty target lists
if( m_spellInfo->Effect[j] == SPELL_EFFECT_SEND_EVENT && !HaveTargetsForEffect(j) )
{
HandleEffects(NULL, NULL, NULL, j);
HandleEffects(NULL, NULL, NULL, SpellEffectIndex(j));
continue;
}

Expand Down Expand Up @@ -2853,7 +2853,7 @@ void Spell::_handle_immediate_phase()
{
// persistent area auras target only the ground
if(m_spellInfo->Effect[j] == SPELL_EFFECT_PERSISTENT_AREA_AURA)
HandleEffects(NULL, NULL, NULL, j);
HandleEffects(NULL, NULL, NULL, SpellEffectIndex(j));
}
}

Expand Down Expand Up @@ -3895,7 +3895,7 @@ void Spell::HandleThreatSpells(uint32 spellId)
DEBUG_LOG("Spell %u, rank %u, added an additional %i threat", spellId, sSpellMgr.GetSpellRank(spellId), threat);
}

void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,uint32 i, float DamageMultiplier)
void Spell::HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,SpellEffectIndex i, float DamageMultiplier)
{
unitTarget = pUnitTarget;
itemTarget = pItemTarget;
Expand Down
235 changes: 118 additions & 117 deletions src/game/Spell.h
Original file line number Diff line number Diff line change
Expand Up @@ -216,120 +216,115 @@ class Spell
friend void Unit::SetCurrentCastedSpell( Spell * pSpell );
public:

void EffectNULL(uint32 );
void EffectUnused(uint32 );
void EffectDistract(uint32 i);
void EffectPull(uint32 i);
void EffectSchoolDMG(uint32 i);
void EffectEnvironmentalDMG(uint32 i);
void EffectInstaKill(uint32 i);
void EffectDummy(uint32 i);
void EffectTeleportUnits(uint32 i);
void EffectApplyAura(uint32 i);
void EffectSendEvent(uint32 i);
void EffectPowerBurn(uint32 i);
void EffectPowerDrain(uint32 i);
void EffectHeal(uint32 i);
void EffectHealthLeech(uint32 i);
void EffectQuestComplete(uint32 i);
void EffectCreateItem(uint32 i);
void EffectCreateItem2(uint32 i);
void EffectCreateRandomItem(uint32 i);
void EffectPersistentAA(uint32 i);
void EffectEnergize(uint32 i);
void EffectOpenLock(uint32 i);
void EffectSummonChangeItem(uint32 i);
void EffectProficiency(uint32 i);
void EffectApplyAreaAura(uint32 i);
void EffectSummonType(uint32 i);
void EffectSummon(uint32 i);
void EffectLearnSpell(uint32 i);
void EffectDispel(uint32 i);
void EffectDualWield(uint32 i);
void EffectPickPocket(uint32 i);
void EffectAddFarsight(uint32 i);
void EffectSummonWild(uint32 i, uint32 forceFaction = 0);
void EffectSummonGuardian(uint32 i, uint32 forceFaction = 0);
void EffectHealMechanical(uint32 i);
void EffectJump(uint32 i);
void EffectTeleUnitsFaceCaster(uint32 i);
void EffectLearnSkill(uint32 i);
void EffectAddHonor(uint32 i);
void EffectTradeSkill(uint32 i);
void EffectEnchantItemPerm(uint32 i);
void EffectEnchantItemTmp(uint32 i);
void EffectTameCreature(uint32 i);
void EffectSummonPet(uint32 i);
void EffectLearnPetSpell(uint32 i);
void EffectWeaponDmg(uint32 i);
void EffectForceCast(uint32 i);
void EffectTriggerSpell(uint32 i);
void EffectTriggerMissileSpell(uint32 i);
void EffectThreat(uint32 i);
void EffectHealMaxHealth(uint32 i);
void EffectInterruptCast(uint32 i);
void EffectSummonObjectWild(uint32 i);
void EffectScriptEffect(uint32 i);
void EffectSanctuary(uint32 i);
void EffectAddComboPoints(uint32 i);
void EffectDuel(uint32 i);
void EffectStuck(uint32 i);
void EffectSummonPlayer(uint32 i);
void EffectActivateObject(uint32 i);
void EffectApplyGlyph(uint32 i);
void EffectSummonTotem(uint32 i, uint8 slot = 0);
void EffectEnchantHeldItem(uint32 i);
void EffectSummonObject(uint32 i);
void EffectResurrect(uint32 i);
void EffectParry(uint32 i);
void EffectBlock(uint32 i);
void EffectLeapForward(uint32 i);
void EffectLeapBack(uint32 i);
void EffectTransmitted(uint32 i);
void EffectDisEnchant(uint32 i);
void EffectInebriate(uint32 i);
void EffectFeedPet(uint32 i);
void EffectDismissPet(uint32 i);
void EffectReputation(uint32 i);
void EffectSelfResurrect(uint32 i);
void EffectSkinning(uint32 i);
void EffectCharge(uint32 i);
void EffectCharge2(uint32 i);
void EffectProspecting(uint32 i);
void EffectMilling(uint32 i);
void EffectRenamePet(uint32 i);
void EffectSendTaxi(uint32 i);
void EffectSummonCritter(uint32 i, uint32 forceFaction = 0);
void EffectKnockBack(uint32 i);
void EffectPlayerPull(uint32 i);
void EffectDispelMechanic(uint32 i);
void EffectSummonDeadPet(uint32 i);
void EffectSummonAllTotems(uint32 i);
void EffectDestroyAllTotems(uint32 i);
void EffectDurabilityDamage(uint32 i);
void EffectSkill(uint32 i);
void EffectTaunt(uint32 i);
void EffectDurabilityDamagePCT(uint32 i);
void EffectModifyThreatPercent(uint32 i);
void EffectResurrectNew(uint32 i);
void EffectAddExtraAttacks(uint32 i);
void EffectSpiritHeal(uint32 i);
void EffectSkinPlayerCorpse(uint32 i);
void EffectStealBeneficialBuff(uint32 i);
void EffectUnlearnSpecialization(uint32 i);
void EffectHealPct(uint32 i);
void EffectEnergisePct(uint32 i);
void EffectTriggerSpellWithValue(uint32 i);
void EffectTriggerRitualOfSummoning(uint32 i);
void EffectKillCreditPersonal(uint32 i);
void EffectKillCredit(uint32 i);
void EffectQuestFail(uint32 i);
void EffectActivateRune(uint32 i);
void EffectTitanGrip(uint32 i);
void EffectEnchantItemPrismatic(uint32 i);
void EffectPlayMusic(uint32 i);
void EffectSpecCount(uint32 i);
void EffectActivateSpec(uint32 i);
void EffectNULL(SpellEffectIndex eff_idx);
void EffectUnused(SpellEffectIndex eff_idx);
void EffectDistract(SpellEffectIndex eff_idx);
void EffectPull(SpellEffectIndex eff_idx);
void EffectSchoolDMG(SpellEffectIndex eff_idx);
void EffectEnvironmentalDMG(SpellEffectIndex eff_idx);
void EffectInstaKill(SpellEffectIndex eff_idx);
void EffectDummy(SpellEffectIndex eff_idx);
void EffectTeleportUnits(SpellEffectIndex eff_idx);
void EffectApplyAura(SpellEffectIndex eff_idx);
void EffectSendEvent(SpellEffectIndex eff_idx);
void EffectPowerBurn(SpellEffectIndex eff_idx);
void EffectPowerDrain(SpellEffectIndex eff_idx);
void EffectHeal(SpellEffectIndex eff_idx);
void EffectHealthLeech(SpellEffectIndex eff_idx);
void EffectQuestComplete(SpellEffectIndex eff_idx);
void EffectCreateItem(SpellEffectIndex eff_idx);
void EffectCreateItem2(SpellEffectIndex eff_idx);
void EffectCreateRandomItem(SpellEffectIndex eff_idx);
void EffectPersistentAA(SpellEffectIndex eff_idx);
void EffectEnergize(SpellEffectIndex eff_idx);
void EffectOpenLock(SpellEffectIndex eff_idx);
void EffectSummonChangeItem(SpellEffectIndex eff_idx);
void EffectProficiency(SpellEffectIndex eff_idx);
void EffectApplyAreaAura(SpellEffectIndex eff_idx);
void EffectSummonType(SpellEffectIndex eff_idx);
void EffectLearnSpell(SpellEffectIndex eff_idx);
void EffectDispel(SpellEffectIndex eff_idx);
void EffectDualWield(SpellEffectIndex eff_idx);
void EffectPickPocket(SpellEffectIndex eff_idx);
void EffectAddFarsight(SpellEffectIndex eff_idx);
void EffectHealMechanical(SpellEffectIndex eff_idx);
void EffectJump(SpellEffectIndex eff_idx);
void EffectTeleUnitsFaceCaster(SpellEffectIndex eff_idx);
void EffectLearnSkill(SpellEffectIndex eff_idx);
void EffectAddHonor(SpellEffectIndex eff_idx);
void EffectTradeSkill(SpellEffectIndex eff_idx);
void EffectEnchantItemPerm(SpellEffectIndex eff_idx);
void EffectEnchantItemTmp(SpellEffectIndex eff_idx);
void EffectTameCreature(SpellEffectIndex eff_idx);
void EffectSummonPet(SpellEffectIndex eff_idx);
void EffectLearnPetSpell(SpellEffectIndex eff_idx);
void EffectWeaponDmg(SpellEffectIndex eff_idx);
void EffectForceCast(SpellEffectIndex eff_idx);
void EffectTriggerSpell(SpellEffectIndex eff_idx);
void EffectTriggerMissileSpell(SpellEffectIndex eff_idx);
void EffectThreat(SpellEffectIndex eff_idx);
void EffectHealMaxHealth(SpellEffectIndex eff_idx);
void EffectInterruptCast(SpellEffectIndex eff_idx);
void EffectSummonObjectWild(SpellEffectIndex eff_idx);
void EffectScriptEffect(SpellEffectIndex eff_idx);
void EffectSanctuary(SpellEffectIndex eff_idx);
void EffectAddComboPoints(SpellEffectIndex eff_idx);
void EffectDuel(SpellEffectIndex eff_idx);
void EffectStuck(SpellEffectIndex eff_idx);
void EffectSummonPlayer(SpellEffectIndex eff_idx);
void EffectActivateObject(SpellEffectIndex eff_idx);
void EffectApplyGlyph(SpellEffectIndex eff_idx);
void EffectEnchantHeldItem(SpellEffectIndex eff_idx);
void EffectSummonObject(SpellEffectIndex eff_idx);
void EffectResurrect(SpellEffectIndex eff_idx);
void EffectParry(SpellEffectIndex eff_idx);
void EffectBlock(SpellEffectIndex eff_idx);
void EffectLeapForward(SpellEffectIndex eff_idx);
void EffectLeapBack(SpellEffectIndex eff_idx);
void EffectTransmitted(SpellEffectIndex eff_idx);
void EffectDisEnchant(SpellEffectIndex eff_idx);
void EffectInebriate(SpellEffectIndex eff_idx);
void EffectFeedPet(SpellEffectIndex eff_idx);
void EffectDismissPet(SpellEffectIndex eff_idx);
void EffectReputation(SpellEffectIndex eff_idx);
void EffectSelfResurrect(SpellEffectIndex eff_idx);
void EffectSkinning(SpellEffectIndex eff_idx);
void EffectCharge(SpellEffectIndex eff_idx);
void EffectCharge2(SpellEffectIndex eff_idx);
void EffectProspecting(SpellEffectIndex eff_idx);
void EffectMilling(SpellEffectIndex eff_idx);
void EffectRenamePet(SpellEffectIndex eff_idx);
void EffectSendTaxi(SpellEffectIndex eff_idx);
void EffectKnockBack(SpellEffectIndex eff_idx);
void EffectPlayerPull(SpellEffectIndex eff_idx);
void EffectDispelMechanic(SpellEffectIndex eff_idx);
void EffectSummonDeadPet(SpellEffectIndex eff_idx);
void EffectSummonAllTotems(SpellEffectIndex eff_idx);
void EffectDestroyAllTotems(SpellEffectIndex eff_idx);
void EffectDurabilityDamage(SpellEffectIndex eff_idx);
void EffectSkill(SpellEffectIndex eff_idx);
void EffectTaunt(SpellEffectIndex eff_idx);
void EffectDurabilityDamagePCT(SpellEffectIndex eff_idx);
void EffectModifyThreatPercent(SpellEffectIndex eff_idx);
void EffectResurrectNew(SpellEffectIndex eff_idx);
void EffectAddExtraAttacks(SpellEffectIndex eff_idx);
void EffectSpiritHeal(SpellEffectIndex eff_idx);
void EffectSkinPlayerCorpse(SpellEffectIndex eff_idx);
void EffectStealBeneficialBuff(SpellEffectIndex eff_idx);
void EffectUnlearnSpecialization(SpellEffectIndex eff_idx);
void EffectHealPct(SpellEffectIndex eff_idx);
void EffectEnergisePct(SpellEffectIndex eff_idx);
void EffectTriggerSpellWithValue(SpellEffectIndex eff_idx);
void EffectTriggerRitualOfSummoning(SpellEffectIndex eff_idx);
void EffectKillCreditPersonal(SpellEffectIndex eff_idx);
void EffectKillCredit(SpellEffectIndex eff_idx);
void EffectQuestFail(SpellEffectIndex eff_idx);
void EffectActivateRune(SpellEffectIndex eff_idx);
void EffectTitanGrip(SpellEffectIndex eff_idx);
void EffectEnchantItemPrismatic(SpellEffectIndex eff_idx);
void EffectPlayMusic(SpellEffectIndex eff_idx);
void EffectSpecCount(SpellEffectIndex eff_idx);
void EffectActivateSpec(SpellEffectIndex eff_idx);

Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, Spell** triggeringContainer = NULL );
~Spell();
Expand Down Expand Up @@ -368,7 +363,13 @@ class Spell
uint32 getState() const { return m_spellState; }
void setState(uint32 state) { m_spellState = state; }

void DoCreateItem(uint32 i, uint32 itemtype);
void DoCreateItem(SpellEffectIndex eff_idx, uint32 itemtype);
void DoSummon(SpellEffectIndex eff_idx);
void DoSummonWild(SpellEffectIndex eff_idx, uint32 forceFaction = 0);
void DoSummonGuardian(SpellEffectIndex eff_idx, uint32 forceFaction = 0);
void DoSummonTotem(SpellEffectIndex eff_idx, uint8 slot = 0);
void DoSummonCritter(SpellEffectIndex eff_idx, uint32 forceFaction = 0);

void WriteSpellGoTargets( WorldPacket * data );
void WriteAmmoToPacket( WorldPacket * data );

Expand Down Expand Up @@ -398,7 +399,7 @@ class Spell
void SendResurrectRequest(Player* target);
void SendPlaySpellVisual(uint32 SpellID);

void HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,uint32 i, float DamageMultiplier = 1.0);
void HandleEffects(Unit *pUnitTarget,Item *pItemTarget,GameObject *pGOTarget,SpellEffectIndex i, float DamageMultiplier = 1.0);
void HandleThreatSpells(uint32 spellId);
//void HandleAddAura(Unit* Target);

Expand Down Expand Up @@ -769,7 +770,7 @@ namespace MaNGOS
#endif
}

typedef void(Spell::*pEffect)(uint32 i);
typedef void(Spell::*pEffect)(SpellEffectIndex eff_idx);

class SpellEvent : public BasicEvent
{
Expand Down

0 comments on commit 2eefab5

Please sign in to comment.