mirror of
https://github.com/mangosfour/server.git
synced 2025-12-17 16:37:00 +00:00
[9409] Use SpellEffectIndex as arg type for spell effect handlers.
This commit is contained in:
parent
ff8d494ed4
commit
11b84d27c2
4 changed files with 358 additions and 357 deletions
|
|
@ -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
|
||||
|
|
@ -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... )
|
||||
|
|
@ -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()
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
|
@ -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));
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -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;
|
||||
|
|
|
|||
235
src/game/Spell.h
235
src/game/Spell.h
|
|
@ -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();
|
||||
|
|
@ -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 );
|
||||
|
||||
|
|
@ -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);
|
||||
|
||||
|
|
@ -769,7 +770,7 @@ namespace MaNGOS
|
|||
#endif
|
||||
}
|
||||
|
||||
typedef void(Spell::*pEffect)(uint32 i);
|
||||
typedef void(Spell::*pEffect)(SpellEffectIndex eff_idx);
|
||||
|
||||
class SpellEvent : public BasicEvent
|
||||
{
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
|||
#ifndef __REVISION_NR_H__
|
||||
#define __REVISION_NR_H__
|
||||
#define REVISION_NR "9408"
|
||||
#define REVISION_NR "9409"
|
||||
#endif // __REVISION_NR_H__
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue