aboutsummaryrefslogtreecommitdiff
path: root/src/game/SpellMgr.cpp
diff options
context:
space:
mode:
authormegamage <none@none>2008-12-20 19:33:03 -0600
committermegamage <none@none>2008-12-20 19:33:03 -0600
commit323c97bb3bda6899ae2906098ea34030759d2f01 (patch)
tree84003f104b6fb791ded599034b0381e9d2f58ce6 /src/game/SpellMgr.cpp
parent55ef3bca2ae79d87d2e08e80bf29eec38892545f (diff)
*Update spell target selection code.
--HG-- branch : trunk
Diffstat (limited to 'src/game/SpellMgr.cpp')
-rw-r--r--src/game/SpellMgr.cpp71
1 files changed, 70 insertions, 1 deletions
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index 0032f9f7e67..7a67018fc3c 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -1729,7 +1729,7 @@ void SpellMgr::LoadSpellScriptTarget()
}
}
- mSpellScriptTarget.insert(SpellScriptTarget::value_type(spellId,SpellTargetEntry(SpellTargetType(type),targetEntry)));
+ mSpellScriptTarget.insert(SpellScriptTarget::value_type(spellId,SpellTargetEntry(SpellScriptTargetType(type),targetEntry)));
++count;
} while (result->NextRow());
@@ -1953,6 +1953,7 @@ void SpellMgr::LoadSpellCustomAttr()
case SPELL_EFFECT_ADD_FARSIGHT:
case SPELL_EFFECT_TRIGGER_SPELL_2: //ritual of summon
case SPELL_EFFECT_TRIGGER_MISSILE:
+ case SPELL_EFFECT_PERSISTENT_AREA_AURA:
EffectTargetType[i] = SPELL_REQUIRE_DEST;
break;
case SPELL_EFFECT_PARRY: // 0
@@ -1968,6 +1969,74 @@ void SpellMgr::LoadSpellCustomAttr()
break;
}
}
+
+ for(int i = 0; i < TOTAL_SPELL_TARGETS; ++i)
+ {
+ switch(i)
+ {
+ case TARGET_UNIT_CASTER:
+ case TARGET_UNIT_CASTER_FISHING:
+ case TARGET_UNIT_MASTER:
+ case TARGET_UNIT_PET:
+ SpellTargetType[i] = TARGET_TYPE_UNIT_CASTER;
+ break;
+ case TARGET_UNIT_MINIPET:
+ case TARGET_UNIT_TARGET_ALLY:
+ case TARGET_UNIT_TARGET_RAID:
+ case TARGET_UNIT_TARGET_ANY:
+ case TARGET_UNIT_SINGLE_UNKNOWN:
+ case TARGET_UNIT_TARGET_ENEMY:
+ SpellTargetType[i] = TARGET_TYPE_UNIT_TARGET;
+ break;
+ case TARGET_UNIT_CHANNEL:
+ case TARGET_DEST_CHANNEL:
+ SpellTargetType[i] = TARGET_TYPE_CHANNEL;
+ break;
+ case TARGET_UNIT_AREA_ENEMY_GROUND:
+ case TARGET_UNIT_AREA_ENEMY:
+ case TARGET_UNIT_AREA_ALLY_GROUND:
+ case TARGET_UNIT_AREA_ALLY:
+ case TARGET_UNIT_AREA_ENTRY_GROUND:
+ case TARGET_UNIT_AREA_ENTRY:
+ case TARGET_UNIT_AREA_ENEMY_CHANNEL:
+ SpellTargetType[i] = TARGET_TYPE_AREA_DEST;
+ break;
+ case TARGET_DEST_TARGET_ENEMY:
+ case TARGET_DEST_TARGET_ENEMY_UNKNOWN:
+ case TARGET_DEST_TARGET_FRONT:
+ case TARGET_DEST_TARGET_BACK:
+ case TARGET_DEST_TARGET_RIGHT:
+ case TARGET_DEST_TARGET_LEFT:
+ case TARGET_DEST_TARGET_RANDOM:
+ case TARGET_DEST_TARGET_RADIUS:
+ SpellTargetType[i] = TARGET_TYPE_DEST_TARGET;
+ break;
+ case TARGET_DEST_CASTER_GROUND:
+ case TARGET_DEST_CASTER:
+ case TARGET_DEST_CASTER_FRONT_LEFT:
+ case TARGET_DEST_CASTER_BACK_LEFT:
+ case TARGET_DEST_CASTER_BACK_RIGHT:
+ case TARGET_DEST_CASTER_FRONT_RIGHT:
+ case TARGET_DEST_CASTER_FRONT:
+ case TARGET_MINION:
+ case TARGET_DEST_CASTER_FRONT_LEAP:
+ case TARGET_DEST_CASTER_FRONT_UNKNOWN:
+ case TARGET_DEST_CASTER_BACK:
+ case TARGET_DEST_CASTER_RIGHT:
+ case TARGET_DEST_CASTER_LEFT:
+ case TARGET_DEST_CASTER_RANDOM:
+ case TARGET_DEST_CASTER_RADIUS:
+ SpellTargetType[i] = TARGET_TYPE_DEST_CASTER;
+ break;
+ case TARGET_DEST_DEST_RANDOM:
+ case TARGET_DEST_DEST:
+ SpellTargetType[i] = TARGET_TYPE_DEST_DEST;
+ break;
+ default:
+ SpellTargetType[i] = TARGET_TYPE_DEFAULT;
+
+ }
+ }
}
void SpellMgr::LoadSpellLinked()