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))
|
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) )
|
if ( m_applyMultiplierMask & (1 << effectNumber) )
|
||||||
{
|
{
|
||||||
// Get multiplier
|
// Get multiplier
|
||||||
|
|
@ -1194,7 +1194,7 @@ void Spell::DoAllEffectOnTarget(GOTargetInfo *target)
|
||||||
|
|
||||||
for(int effectNumber = 0; effectNumber < MAX_EFFECT_INDEX; ++effectNumber)
|
for(int effectNumber = 0; effectNumber < MAX_EFFECT_INDEX; ++effectNumber)
|
||||||
if (effectMask & (1 << 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)
|
// 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... )
|
// 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)
|
for(int effectNumber = 0; effectNumber < MAX_EFFECT_INDEX; ++effectNumber)
|
||||||
if (effectMask & (1 << effectNumber))
|
if (effectMask & (1 << effectNumber))
|
||||||
HandleEffects(NULL, target->item, NULL, effectNumber);
|
HandleEffects(NULL, target->item, NULL, SpellEffectIndex(effectNumber));
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Spell::IsAliveUnitPresentInTargetList()
|
bool Spell::IsAliveUnitPresentInTargetList()
|
||||||
|
|
@ -2820,7 +2820,7 @@ void Spell::_handle_immediate_phase()
|
||||||
// apply Send Event effect to ground in case empty target lists
|
// apply Send Event effect to ground in case empty target lists
|
||||||
if( m_spellInfo->Effect[j] == SPELL_EFFECT_SEND_EVENT && !HaveTargetsForEffect(j) )
|
if( m_spellInfo->Effect[j] == SPELL_EFFECT_SEND_EVENT && !HaveTargetsForEffect(j) )
|
||||||
{
|
{
|
||||||
HandleEffects(NULL, NULL, NULL, j);
|
HandleEffects(NULL, NULL, NULL, SpellEffectIndex(j));
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -2853,7 +2853,7 @@ void Spell::_handle_immediate_phase()
|
||||||
{
|
{
|
||||||
// persistent area auras target only the ground
|
// persistent area auras target only the ground
|
||||||
if(m_spellInfo->Effect[j] == SPELL_EFFECT_PERSISTENT_AREA_AURA)
|
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);
|
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;
|
unitTarget = pUnitTarget;
|
||||||
itemTarget = pItemTarget;
|
itemTarget = pItemTarget;
|
||||||
|
|
|
||||||
235
src/game/Spell.h
235
src/game/Spell.h
|
|
@ -216,120 +216,115 @@ class Spell
|
||||||
friend void Unit::SetCurrentCastedSpell( Spell * pSpell );
|
friend void Unit::SetCurrentCastedSpell( Spell * pSpell );
|
||||||
public:
|
public:
|
||||||
|
|
||||||
void EffectNULL(uint32 );
|
void EffectNULL(SpellEffectIndex eff_idx);
|
||||||
void EffectUnused(uint32 );
|
void EffectUnused(SpellEffectIndex eff_idx);
|
||||||
void EffectDistract(uint32 i);
|
void EffectDistract(SpellEffectIndex eff_idx);
|
||||||
void EffectPull(uint32 i);
|
void EffectPull(SpellEffectIndex eff_idx);
|
||||||
void EffectSchoolDMG(uint32 i);
|
void EffectSchoolDMG(SpellEffectIndex eff_idx);
|
||||||
void EffectEnvironmentalDMG(uint32 i);
|
void EffectEnvironmentalDMG(SpellEffectIndex eff_idx);
|
||||||
void EffectInstaKill(uint32 i);
|
void EffectInstaKill(SpellEffectIndex eff_idx);
|
||||||
void EffectDummy(uint32 i);
|
void EffectDummy(SpellEffectIndex eff_idx);
|
||||||
void EffectTeleportUnits(uint32 i);
|
void EffectTeleportUnits(SpellEffectIndex eff_idx);
|
||||||
void EffectApplyAura(uint32 i);
|
void EffectApplyAura(SpellEffectIndex eff_idx);
|
||||||
void EffectSendEvent(uint32 i);
|
void EffectSendEvent(SpellEffectIndex eff_idx);
|
||||||
void EffectPowerBurn(uint32 i);
|
void EffectPowerBurn(SpellEffectIndex eff_idx);
|
||||||
void EffectPowerDrain(uint32 i);
|
void EffectPowerDrain(SpellEffectIndex eff_idx);
|
||||||
void EffectHeal(uint32 i);
|
void EffectHeal(SpellEffectIndex eff_idx);
|
||||||
void EffectHealthLeech(uint32 i);
|
void EffectHealthLeech(SpellEffectIndex eff_idx);
|
||||||
void EffectQuestComplete(uint32 i);
|
void EffectQuestComplete(SpellEffectIndex eff_idx);
|
||||||
void EffectCreateItem(uint32 i);
|
void EffectCreateItem(SpellEffectIndex eff_idx);
|
||||||
void EffectCreateItem2(uint32 i);
|
void EffectCreateItem2(SpellEffectIndex eff_idx);
|
||||||
void EffectCreateRandomItem(uint32 i);
|
void EffectCreateRandomItem(SpellEffectIndex eff_idx);
|
||||||
void EffectPersistentAA(uint32 i);
|
void EffectPersistentAA(SpellEffectIndex eff_idx);
|
||||||
void EffectEnergize(uint32 i);
|
void EffectEnergize(SpellEffectIndex eff_idx);
|
||||||
void EffectOpenLock(uint32 i);
|
void EffectOpenLock(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonChangeItem(uint32 i);
|
void EffectSummonChangeItem(SpellEffectIndex eff_idx);
|
||||||
void EffectProficiency(uint32 i);
|
void EffectProficiency(SpellEffectIndex eff_idx);
|
||||||
void EffectApplyAreaAura(uint32 i);
|
void EffectApplyAreaAura(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonType(uint32 i);
|
void EffectSummonType(SpellEffectIndex eff_idx);
|
||||||
void EffectSummon(uint32 i);
|
void EffectLearnSpell(SpellEffectIndex eff_idx);
|
||||||
void EffectLearnSpell(uint32 i);
|
void EffectDispel(SpellEffectIndex eff_idx);
|
||||||
void EffectDispel(uint32 i);
|
void EffectDualWield(SpellEffectIndex eff_idx);
|
||||||
void EffectDualWield(uint32 i);
|
void EffectPickPocket(SpellEffectIndex eff_idx);
|
||||||
void EffectPickPocket(uint32 i);
|
void EffectAddFarsight(SpellEffectIndex eff_idx);
|
||||||
void EffectAddFarsight(uint32 i);
|
void EffectHealMechanical(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonWild(uint32 i, uint32 forceFaction = 0);
|
void EffectJump(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonGuardian(uint32 i, uint32 forceFaction = 0);
|
void EffectTeleUnitsFaceCaster(SpellEffectIndex eff_idx);
|
||||||
void EffectHealMechanical(uint32 i);
|
void EffectLearnSkill(SpellEffectIndex eff_idx);
|
||||||
void EffectJump(uint32 i);
|
void EffectAddHonor(SpellEffectIndex eff_idx);
|
||||||
void EffectTeleUnitsFaceCaster(uint32 i);
|
void EffectTradeSkill(SpellEffectIndex eff_idx);
|
||||||
void EffectLearnSkill(uint32 i);
|
void EffectEnchantItemPerm(SpellEffectIndex eff_idx);
|
||||||
void EffectAddHonor(uint32 i);
|
void EffectEnchantItemTmp(SpellEffectIndex eff_idx);
|
||||||
void EffectTradeSkill(uint32 i);
|
void EffectTameCreature(SpellEffectIndex eff_idx);
|
||||||
void EffectEnchantItemPerm(uint32 i);
|
void EffectSummonPet(SpellEffectIndex eff_idx);
|
||||||
void EffectEnchantItemTmp(uint32 i);
|
void EffectLearnPetSpell(SpellEffectIndex eff_idx);
|
||||||
void EffectTameCreature(uint32 i);
|
void EffectWeaponDmg(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonPet(uint32 i);
|
void EffectForceCast(SpellEffectIndex eff_idx);
|
||||||
void EffectLearnPetSpell(uint32 i);
|
void EffectTriggerSpell(SpellEffectIndex eff_idx);
|
||||||
void EffectWeaponDmg(uint32 i);
|
void EffectTriggerMissileSpell(SpellEffectIndex eff_idx);
|
||||||
void EffectForceCast(uint32 i);
|
void EffectThreat(SpellEffectIndex eff_idx);
|
||||||
void EffectTriggerSpell(uint32 i);
|
void EffectHealMaxHealth(SpellEffectIndex eff_idx);
|
||||||
void EffectTriggerMissileSpell(uint32 i);
|
void EffectInterruptCast(SpellEffectIndex eff_idx);
|
||||||
void EffectThreat(uint32 i);
|
void EffectSummonObjectWild(SpellEffectIndex eff_idx);
|
||||||
void EffectHealMaxHealth(uint32 i);
|
void EffectScriptEffect(SpellEffectIndex eff_idx);
|
||||||
void EffectInterruptCast(uint32 i);
|
void EffectSanctuary(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonObjectWild(uint32 i);
|
void EffectAddComboPoints(SpellEffectIndex eff_idx);
|
||||||
void EffectScriptEffect(uint32 i);
|
void EffectDuel(SpellEffectIndex eff_idx);
|
||||||
void EffectSanctuary(uint32 i);
|
void EffectStuck(SpellEffectIndex eff_idx);
|
||||||
void EffectAddComboPoints(uint32 i);
|
void EffectSummonPlayer(SpellEffectIndex eff_idx);
|
||||||
void EffectDuel(uint32 i);
|
void EffectActivateObject(SpellEffectIndex eff_idx);
|
||||||
void EffectStuck(uint32 i);
|
void EffectApplyGlyph(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonPlayer(uint32 i);
|
void EffectEnchantHeldItem(SpellEffectIndex eff_idx);
|
||||||
void EffectActivateObject(uint32 i);
|
void EffectSummonObject(SpellEffectIndex eff_idx);
|
||||||
void EffectApplyGlyph(uint32 i);
|
void EffectResurrect(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonTotem(uint32 i, uint8 slot = 0);
|
void EffectParry(SpellEffectIndex eff_idx);
|
||||||
void EffectEnchantHeldItem(uint32 i);
|
void EffectBlock(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonObject(uint32 i);
|
void EffectLeapForward(SpellEffectIndex eff_idx);
|
||||||
void EffectResurrect(uint32 i);
|
void EffectLeapBack(SpellEffectIndex eff_idx);
|
||||||
void EffectParry(uint32 i);
|
void EffectTransmitted(SpellEffectIndex eff_idx);
|
||||||
void EffectBlock(uint32 i);
|
void EffectDisEnchant(SpellEffectIndex eff_idx);
|
||||||
void EffectLeapForward(uint32 i);
|
void EffectInebriate(SpellEffectIndex eff_idx);
|
||||||
void EffectLeapBack(uint32 i);
|
void EffectFeedPet(SpellEffectIndex eff_idx);
|
||||||
void EffectTransmitted(uint32 i);
|
void EffectDismissPet(SpellEffectIndex eff_idx);
|
||||||
void EffectDisEnchant(uint32 i);
|
void EffectReputation(SpellEffectIndex eff_idx);
|
||||||
void EffectInebriate(uint32 i);
|
void EffectSelfResurrect(SpellEffectIndex eff_idx);
|
||||||
void EffectFeedPet(uint32 i);
|
void EffectSkinning(SpellEffectIndex eff_idx);
|
||||||
void EffectDismissPet(uint32 i);
|
void EffectCharge(SpellEffectIndex eff_idx);
|
||||||
void EffectReputation(uint32 i);
|
void EffectCharge2(SpellEffectIndex eff_idx);
|
||||||
void EffectSelfResurrect(uint32 i);
|
void EffectProspecting(SpellEffectIndex eff_idx);
|
||||||
void EffectSkinning(uint32 i);
|
void EffectMilling(SpellEffectIndex eff_idx);
|
||||||
void EffectCharge(uint32 i);
|
void EffectRenamePet(SpellEffectIndex eff_idx);
|
||||||
void EffectCharge2(uint32 i);
|
void EffectSendTaxi(SpellEffectIndex eff_idx);
|
||||||
void EffectProspecting(uint32 i);
|
void EffectKnockBack(SpellEffectIndex eff_idx);
|
||||||
void EffectMilling(uint32 i);
|
void EffectPlayerPull(SpellEffectIndex eff_idx);
|
||||||
void EffectRenamePet(uint32 i);
|
void EffectDispelMechanic(SpellEffectIndex eff_idx);
|
||||||
void EffectSendTaxi(uint32 i);
|
void EffectSummonDeadPet(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonCritter(uint32 i, uint32 forceFaction = 0);
|
void EffectSummonAllTotems(SpellEffectIndex eff_idx);
|
||||||
void EffectKnockBack(uint32 i);
|
void EffectDestroyAllTotems(SpellEffectIndex eff_idx);
|
||||||
void EffectPlayerPull(uint32 i);
|
void EffectDurabilityDamage(SpellEffectIndex eff_idx);
|
||||||
void EffectDispelMechanic(uint32 i);
|
void EffectSkill(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonDeadPet(uint32 i);
|
void EffectTaunt(SpellEffectIndex eff_idx);
|
||||||
void EffectSummonAllTotems(uint32 i);
|
void EffectDurabilityDamagePCT(SpellEffectIndex eff_idx);
|
||||||
void EffectDestroyAllTotems(uint32 i);
|
void EffectModifyThreatPercent(SpellEffectIndex eff_idx);
|
||||||
void EffectDurabilityDamage(uint32 i);
|
void EffectResurrectNew(SpellEffectIndex eff_idx);
|
||||||
void EffectSkill(uint32 i);
|
void EffectAddExtraAttacks(SpellEffectIndex eff_idx);
|
||||||
void EffectTaunt(uint32 i);
|
void EffectSpiritHeal(SpellEffectIndex eff_idx);
|
||||||
void EffectDurabilityDamagePCT(uint32 i);
|
void EffectSkinPlayerCorpse(SpellEffectIndex eff_idx);
|
||||||
void EffectModifyThreatPercent(uint32 i);
|
void EffectStealBeneficialBuff(SpellEffectIndex eff_idx);
|
||||||
void EffectResurrectNew(uint32 i);
|
void EffectUnlearnSpecialization(SpellEffectIndex eff_idx);
|
||||||
void EffectAddExtraAttacks(uint32 i);
|
void EffectHealPct(SpellEffectIndex eff_idx);
|
||||||
void EffectSpiritHeal(uint32 i);
|
void EffectEnergisePct(SpellEffectIndex eff_idx);
|
||||||
void EffectSkinPlayerCorpse(uint32 i);
|
void EffectTriggerSpellWithValue(SpellEffectIndex eff_idx);
|
||||||
void EffectStealBeneficialBuff(uint32 i);
|
void EffectTriggerRitualOfSummoning(SpellEffectIndex eff_idx);
|
||||||
void EffectUnlearnSpecialization(uint32 i);
|
void EffectKillCreditPersonal(SpellEffectIndex eff_idx);
|
||||||
void EffectHealPct(uint32 i);
|
void EffectKillCredit(SpellEffectIndex eff_idx);
|
||||||
void EffectEnergisePct(uint32 i);
|
void EffectQuestFail(SpellEffectIndex eff_idx);
|
||||||
void EffectTriggerSpellWithValue(uint32 i);
|
void EffectActivateRune(SpellEffectIndex eff_idx);
|
||||||
void EffectTriggerRitualOfSummoning(uint32 i);
|
void EffectTitanGrip(SpellEffectIndex eff_idx);
|
||||||
void EffectKillCreditPersonal(uint32 i);
|
void EffectEnchantItemPrismatic(SpellEffectIndex eff_idx);
|
||||||
void EffectKillCredit(uint32 i);
|
void EffectPlayMusic(SpellEffectIndex eff_idx);
|
||||||
void EffectQuestFail(uint32 i);
|
void EffectSpecCount(SpellEffectIndex eff_idx);
|
||||||
void EffectActivateRune(uint32 i);
|
void EffectActivateSpec(SpellEffectIndex eff_idx);
|
||||||
void EffectTitanGrip(uint32 i);
|
|
||||||
void EffectEnchantItemPrismatic(uint32 i);
|
|
||||||
void EffectPlayMusic(uint32 i);
|
|
||||||
void EffectSpecCount(uint32 i);
|
|
||||||
void EffectActivateSpec(uint32 i);
|
|
||||||
|
|
||||||
Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, Spell** triggeringContainer = NULL );
|
Spell( Unit* Caster, SpellEntry const *info, bool triggered, uint64 originalCasterGUID = 0, Spell** triggeringContainer = NULL );
|
||||||
~Spell();
|
~Spell();
|
||||||
|
|
@ -368,7 +363,13 @@ class Spell
|
||||||
uint32 getState() const { return m_spellState; }
|
uint32 getState() const { return m_spellState; }
|
||||||
void setState(uint32 state) { m_spellState = state; }
|
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 WriteSpellGoTargets( WorldPacket * data );
|
||||||
void WriteAmmoToPacket( WorldPacket * data );
|
void WriteAmmoToPacket( WorldPacket * data );
|
||||||
|
|
||||||
|
|
@ -398,7 +399,7 @@ class Spell
|
||||||
void SendResurrectRequest(Player* target);
|
void SendResurrectRequest(Player* target);
|
||||||
void SendPlaySpellVisual(uint32 SpellID);
|
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 HandleThreatSpells(uint32 spellId);
|
||||||
//void HandleAddAura(Unit* Target);
|
//void HandleAddAura(Unit* Target);
|
||||||
|
|
||||||
|
|
@ -769,7 +770,7 @@ namespace MaNGOS
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
typedef void(Spell::*pEffect)(uint32 i);
|
typedef void(Spell::*pEffect)(SpellEffectIndex eff_idx);
|
||||||
|
|
||||||
class SpellEvent : public BasicEvent
|
class SpellEvent : public BasicEvent
|
||||||
{
|
{
|
||||||
|
|
|
||||||
File diff suppressed because it is too large
Load diff
|
|
@ -1,4 +1,4 @@
|
||||||
#ifndef __REVISION_NR_H__
|
#ifndef __REVISION_NR_H__
|
||||||
#define __REVISION_NR_H__
|
#define __REVISION_NR_H__
|
||||||
#define REVISION_NR "9408"
|
#define REVISION_NR "9409"
|
||||||
#endif // __REVISION_NR_H__
|
#endif // __REVISION_NR_H__
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue