aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/game/SharedDefines.h2
-rw-r--r--src/game/Spell.cpp4
-rw-r--r--src/game/SpellMgr.cpp7
3 files changed, 9 insertions, 4 deletions
diff --git a/src/game/SharedDefines.h b/src/game/SharedDefines.h
index 9f28963581b..d047dd90544 100644
--- a/src/game/SharedDefines.h
+++ b/src/game/SharedDefines.h
@@ -1121,7 +1121,7 @@ enum Targets
TARGET_UNIT_PARTY_TARGET = 37,
TARGET_UNIT_NEARBY_ENTRY = 38,
TARGET_UNIT_CASTER_FISHING = 39,
- TARGET_OBJECT_USE = 40,
+ TARGET_GAMEOBJECT_NEARBY_ENTRY = 40,
TARGET_DEST_CASTER_FRONT_LEFT = 41, //earth totem
TARGET_DEST_CASTER_BACK_LEFT = 42, //water totem
TARGET_DEST_CASTER_BACK_RIGHT = 43, //air totem
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index add99c25795..6cbb9b16e48 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1754,8 +1754,8 @@ WorldObject* Spell::SearchNearbyTarget(float range, SpellTargets TargetType)
if ((*itr)->GetEntry() == i_spellST->second.targetEntry && (*itr)->IsWithinDistInMap(m_caster, range))
{
goScriptTarget = NULL;
- range = m_caster->GetDistance(creatureScriptTarget);
creatureScriptTarget = ((Creature *)*itr);
+ range = m_caster->GetDistance(creatureScriptTarget);
}
break;
case SPELL_TARGET_TYPE_GAMEOBJECT:
@@ -1941,6 +1941,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
target = SearchNearbyTarget(range, SPELL_TARGETS_ALLY);
break;
case TARGET_UNIT_NEARBY_ENTRY:
+ case TARGET_GAMEOBJECT_NEARBY_ENTRY:
range = GetSpellMaxRange(m_spellInfo, IsPositiveSpell(m_spellInfo->Id));
if(modOwner) modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_RANGE, range, this);
target = SearchNearbyTarget(range, SPELL_TARGETS_ENTRY);
@@ -2180,7 +2181,6 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
switch (cur)
{
case TARGET_GAMEOBJECT:
- case TARGET_OBJECT_USE:
if(m_targets.getGOTarget())
AddGOTarget(m_targets.getGOTarget(), i);
break;
diff --git a/src/game/SpellMgr.cpp b/src/game/SpellMgr.cpp
index a72718fc98b..3f01630a590 100644
--- a/src/game/SpellMgr.cpp
+++ b/src/game/SpellMgr.cpp
@@ -137,6 +137,7 @@ SpellMgr::SpellMgr()
case TARGET_UNIT_NEARBY_ALLY_UNK:
case TARGET_UNIT_NEARBY_ENTRY:
case TARGET_UNIT_NEARBY_RAID:
+ case TARGET_GAMEOBJECT_NEARBY_ENTRY:
SpellTargetType[i] = TARGET_TYPE_UNIT_NEARBY;
break;
case TARGET_UNIT_AREA_ENEMY_SRC:
@@ -1981,6 +1982,8 @@ void SpellMgr::LoadSpellScriptTarget()
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_AREA_ENTRY_DST ||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_NEARBY_ENTRY ||
spellProto->EffectImplicitTargetB[i]==TARGET_UNIT_NEARBY_ENTRY ||
+ spellProto->EffectImplicitTargetA[i]==TARGET_GAMEOBJECT_NEARBY_ENTRY ||
+ spellProto->EffectImplicitTargetB[i]==TARGET_GAMEOBJECT_NEARBY_ENTRY ||
spellProto->EffectImplicitTargetA[i]==TARGET_DST_NEARBY_ENTRY ||
spellProto->EffectImplicitTargetB[i]==TARGET_DST_NEARBY_ENTRY ||
spellProto->EffectImplicitTargetA[i]==TARGET_UNIT_CONE_ENTRY ||
@@ -1993,7 +1996,7 @@ void SpellMgr::LoadSpellScriptTarget()
if (!targetfound)
{
sLog.outErrorDb("Table `spell_script_target`: spellId %u listed for TargetEntry %u does not have any implicit target TARGET_UNIT_NEARBY_ENTRY(38) or TARGET_DST_NEARBY_ENTRY (46)\
- ,TARGET_UNIT_AREA_ENTRY_SRC(7), TARGET_UNIT_AREA_ENTRY_DST(8), TARGET_UNIT_CONE_ENTRY(60)",spellId,targetEntry);
+ ,TARGET_UNIT_AREA_ENTRY_SRC(7), TARGET_UNIT_AREA_ENTRY_DST(8), TARGET_UNIT_CONE_ENTRY(60), TARGET_GAMEOBJECT_NEARBY_ENTRY(40)",spellId,targetEntry);
continue;
}
@@ -2064,6 +2067,7 @@ void SpellMgr::LoadSpellScriptTarget()
case TARGET_UNIT_AREA_ENTRY_SRC:
case TARGET_UNIT_AREA_ENTRY_DST:
case TARGET_UNIT_NEARBY_ENTRY:
+ case TARGET_GAMEOBJECT_NEARBY_ENTRY:
case TARGET_DST_NEARBY_ENTRY:
case TARGET_UNIT_CONE_ENTRY:
found = true;
@@ -2077,6 +2081,7 @@ void SpellMgr::LoadSpellScriptTarget()
case TARGET_UNIT_AREA_ENTRY_SRC:
case TARGET_UNIT_AREA_ENTRY_DST:
case TARGET_UNIT_NEARBY_ENTRY:
+ case TARGET_GAMEOBJECT_NEARBY_ENTRY:
case TARGET_DST_NEARBY_ENTRY:
case TARGET_UNIT_CONE_ENTRY:
found = true;