[8528] Implementing implicit target 49, 50. Thanks to qsa.

Signed-off-by: Ambal <pogrebniak@gala.net>
This commit is contained in:
Ambal 2009-09-25 10:29:23 +03:00
parent c71fc301ec
commit b24e9de324
3 changed files with 26 additions and 3 deletions

View file

@ -1041,8 +1041,10 @@ enum Targets
TARGET_TOTEM_FIRE = 44, TARGET_TOTEM_FIRE = 44,
TARGET_CHAIN_HEAL = 45, TARGET_CHAIN_HEAL = 45,
TARGET_SCRIPT_COORDINATES = 46, TARGET_SCRIPT_COORDINATES = 46,
TARGET_DYNAMIC_OBJECT = 47, TARGET_DYNAMIC_OBJECT_FRONT = 47,
TARGET_SUMMON = 48, TARGET_SUMMON = 48,
TARGET_DYNAMIC_OBJECT_LEFT_SIDE = 49,
TARGET_DYNAMIC_OBJECT_RIGHT_SIDE = 50,
TARGET_AREAEFFECT_CUSTOM_2 = 52, TARGET_AREAEFFECT_CUSTOM_2 = 52,
TARGET_CURRENT_ENEMY_COORDINATES = 53, // set unit coordinates as dest, only 16 target B imlemented TARGET_CURRENT_ENEMY_COORDINATES = 53, // set unit coordinates as dest, only 16 target B imlemented
TARGET_ALL_RAID_AROUND_CASTER = 56, TARGET_ALL_RAID_AROUND_CASTER = 56,

View file

@ -1319,7 +1319,6 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap)
case TARGET_TOTEM_FIRE: case TARGET_TOTEM_FIRE:
case TARGET_SELF: case TARGET_SELF:
case TARGET_SELF2: case TARGET_SELF2:
case TARGET_DYNAMIC_OBJECT:
case TARGET_AREAEFFECT_CUSTOM: case TARGET_AREAEFFECT_CUSTOM:
case TARGET_AREAEFFECT_CUSTOM_2: case TARGET_AREAEFFECT_CUSTOM_2:
case TARGET_SUMMON: case TARGET_SUMMON:
@ -1986,6 +1985,28 @@ void Spell::SetTargetMap(uint32 effIndex,uint32 targetMode,UnitList& TagUnitMap)
if(DynamicObject* dynObj = m_caster->GetDynObject(m_triggeredByAuraSpell ? m_triggeredByAuraSpell->Id : m_spellInfo->Id)) if(DynamicObject* dynObj = m_caster->GetDynObject(m_triggeredByAuraSpell ? m_triggeredByAuraSpell->Id : m_spellInfo->Id))
m_targets.setDestination(dynObj->GetPositionX(), dynObj->GetPositionY(), dynObj->GetPositionZ()); m_targets.setDestination(dynObj->GetPositionX(), dynObj->GetPositionY(), dynObj->GetPositionZ());
break; break;
case TARGET_DYNAMIC_OBJECT_FRONT:
case TARGET_DYNAMIC_OBJECT_LEFT_SIDE:
case TARGET_DYNAMIC_OBJECT_RIGHT_SIDE:
if (!(m_targets.m_targetMask & TARGET_FLAG_DEST_LOCATION))
{
float angle = m_caster->GetOrientation();
switch(targetMode)
{
case TARGET_DYNAMIC_OBJECT_FRONT: break;
case TARGET_DYNAMIC_OBJECT_LEFT_SIDE: angle -= 3*M_PI/4; break;
case TARGET_DYNAMIC_OBJECT_RIGHT_SIDE: angle += 3*M_PI/4; break;
}
float x,y;
m_caster->GetNearPoint2D(x,y,radius,angle);
m_targets.setDestination(x,y,m_caster->GetPositionZ());
}
TagUnitMap.push_back(m_caster);
break;
case TARGET_POINT_AT_NORTH: case TARGET_POINT_AT_NORTH:
case TARGET_POINT_AT_SOUTH: case TARGET_POINT_AT_SOUTH:
case TARGET_POINT_AT_EAST: case TARGET_POINT_AT_EAST:

View file

@ -1,4 +1,4 @@
#ifndef __REVISION_NR_H__ #ifndef __REVISION_NR_H__
#define __REVISION_NR_H__ #define __REVISION_NR_H__
#define REVISION_NR "8527" #define REVISION_NR "8528"
#endif // __REVISION_NR_H__ #endif // __REVISION_NR_H__