*Some cleanup in SharedDefines

*Implement spell target modes 96-103, 91, 92

--HG--
branch : trunk
This commit is contained in:
QAston
2010-01-25 12:40:03 +01:00
parent 83c2b6a4d0
commit 3f6999f744
4 changed files with 44 additions and 20 deletions
+19 -12
View File
@@ -965,12 +965,11 @@ enum AuraState
AURA_STATE_JUDGEMENT = 5, // C | AURA_STATE_JUDGEMENT = 5, // C |
//AURA_STATE_UNKNOWN6 = 6, // | not used //AURA_STATE_UNKNOWN6 = 6, // | not used
AURA_STATE_HUNTER_PARRY = 7, // C | AURA_STATE_HUNTER_PARRY = 7, // C |
AURA_STATE_ROGUE_ATTACK_FROM_STEALTH = 7, // C | FIX ME: not implemented yet! //AURA_STATE_UNKNOWN7 = 7, // c | creature cheap shot / focused bursts spells
//AURA_STATE_UNKNOWN7 = 7, // c | random/focused bursts spells (?) //AURA_STATE_UNKNOWN8 = 8, // t| test spells
//AURA_STATE_UNKNOWN8 = 8, // | not used //AURA_STATE_UNKNOWN9 = 9, // |
//AURA_STATE_UNKNOWN9 = 9, // | not used
AURA_STATE_WARRIOR_VICTORY_RUSH = 10, // C | warrior victory rush AURA_STATE_WARRIOR_VICTORY_RUSH = 10, // C | warrior victory rush
//AURA_STATE_UNKNOWN11 = 11, // t| //AURA_STATE_UNKNOWN11 = 11, // C t| 60348 - Maelstrom Ready!, test spells
AURA_STATE_FAERIE_FIRE = 12, // c t| AURA_STATE_FAERIE_FIRE = 12, // c t|
AURA_STATE_HEALTHLESS_35_PERCENT = 13, // C T | AURA_STATE_HEALTHLESS_35_PERCENT = 13, // C T |
AURA_STATE_CONFLAGRATE = 14, // T | AURA_STATE_CONFLAGRATE = 14, // T |
@@ -981,7 +980,7 @@ enum AuraState
//AURA_STATE_UNKNOWN19 = 19, // | not used //AURA_STATE_UNKNOWN19 = 19, // | not used
//AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide) //AURA_STATE_UNKNOWN20 = 20, // c | only (45317 Suicide)
//AURA_STATE_UNKNOWN21 = 21, // | not used //AURA_STATE_UNKNOWN21 = 21, // | not used
//AURA_STATE_UNKNOWN22 = 22, // C | not implemented yet (Requires Evasive Charges to use) //AURA_STATE_UNKNOWN22 = 22, // C t| varius spells (63884, 50240)
AURA_STATE_HEALTH_ABOVE_75_PERCENT = 23, // C | AURA_STATE_HEALTH_ABOVE_75_PERCENT = 23, // C |
}; };
@@ -1092,7 +1091,6 @@ enum Targets
TARGET_UNIT_AREA_ENEMY_DST = 16, TARGET_UNIT_AREA_ENEMY_DST = 16,
TARGET_DST_DB = 17, // uses in teleport spells and some other TARGET_DST_DB = 17, // uses in teleport spells and some other
TARGET_DST_CASTER = 18, TARGET_DST_CASTER = 18,
TARGET_PREV_EFFECT_SUMMON = 18,
TARGET_UNIT_PARTY_CASTER = 20, TARGET_UNIT_PARTY_CASTER = 20,
TARGET_UNIT_TARGET_ALLY = 21, TARGET_UNIT_TARGET_ALLY = 21,
TARGET_SRC_CASTER = 22, TARGET_SRC_CASTER = 22,
@@ -1167,13 +1165,22 @@ enum Targets
TARGET_DEST_DYNOBJ_NONE = 88, TARGET_DEST_DYNOBJ_NONE = 88,
TARGET_DEST_TRAJ = 89, TARGET_DEST_TRAJ = 89,
TARGET_UNIT_MINIPET = 90, TARGET_UNIT_MINIPET = 90,
TARGET_UNK_91 = 91, TARGET_DEST_DEST_RANDOM_DIR_DIST = 91,
TARGET_UNK_92 = 92, TARGET_UNIT_UNK_92 = 92,
TARGET_CORPSE_AREA_ENEMY_PLAYER = 93, TARGET_CORPSE_AREA_ENEMY_PLAYER_SRC= 93,
TARGET_UNIT_VEHICLE = 94, TARGET_UNIT_VEHICLE = 94,
TARGET_UNIT_DRIVER = 95, //? TARGET_UNIT_DRIVER = 95,
TARGET_UNIT_PASSENGER = 97, TARGET_UNIT_PASSENGER_0 = 96,
TARGET_UNIT_PASSENGER_1 = 97,
TARGET_UNIT_PASSENGER_2 = 98,
TARGET_UNIT_PASSENGER_3 = 99,
TARGET_UNIT_PASSENGER_4 = 100,
TARGET_UNIT_PASSENGER_5 = 101,
TARGET_UNIT_PASSENGER_6 = 102,
TARGET_UNIT_PASSENGER_7 = 103,
TARGET_UNIT_AREA_PATH = 104, TARGET_UNIT_AREA_PATH = 104,
TARGET_UNIT_UNK_105 = 105, // 1 spell
TARGET_DEST_UNK_110 = 110, // some kind of traj?
}; };
#define TOTAL_SPELL_TARGETS 105 #define TOTAL_SPELL_TARGETS 105
+11 -3
View File
@@ -1864,9 +1864,16 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
if(Unit *vehicle = m_caster->GetVehicleBase()) if(Unit *vehicle = m_caster->GetVehicleBase())
AddUnitTarget(vehicle, i); AddUnitTarget(vehicle, i);
break; break;
case TARGET_UNIT_PASSENGER: case TARGET_UNIT_PASSENGER_0:
case TARGET_UNIT_PASSENGER_1:
case TARGET_UNIT_PASSENGER_2:
case TARGET_UNIT_PASSENGER_3:
case TARGET_UNIT_PASSENGER_4:
case TARGET_UNIT_PASSENGER_5:
case TARGET_UNIT_PASSENGER_6:
case TARGET_UNIT_PASSENGER_7:
if(m_caster->GetTypeId() == TYPEID_UNIT && ((Creature*)m_caster)->IsVehicle()) if(m_caster->GetTypeId() == TYPEID_UNIT && ((Creature*)m_caster)->IsVehicle())
if(Unit *unit = m_caster->GetVehicleKit()->GetPassenger(1)) // maybe not right if(Unit *unit = m_caster->GetVehicleKit()->GetPassenger(cur - TARGET_UNIT_PASSENGER_0))
AddUnitTarget(unit, i); AddUnitTarget(unit, i);
break; break;
} }
@@ -1904,6 +1911,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
case TARGET_UNIT_TARGET_RAID: case TARGET_UNIT_TARGET_RAID:
case TARGET_UNIT_TARGET_PARTY: case TARGET_UNIT_TARGET_PARTY:
case TARGET_UNIT_MINIPET: case TARGET_UNIT_MINIPET:
case TARGET_UNIT_UNK_92:
AddUnitTarget(target, i); AddUnitTarget(target, i);
break; break;
case TARGET_UNIT_PARTY_TARGET: case TARGET_UNIT_PARTY_TARGET:
@@ -2090,7 +2098,7 @@ void Spell::SelectEffectTargets(uint32 i, uint32 cur)
float dist; float dist;
dist = GetSpellRadiusForFriend(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i])); dist = GetSpellRadiusForFriend(sSpellRadiusStore.LookupEntry(m_spellInfo->EffectRadiusIndex[i]));
if (cur == TARGET_DEST_DEST_RANDOM) if (cur == TARGET_DEST_DEST_RANDOM || cur == TARGET_DEST_DEST_RANDOM_DIR_DIST)
dist *= rand_norm(); dist *= rand_norm();
// must has dst, no need to set flag // must has dst, no need to set flag
+4 -4
View File
@@ -33,10 +33,10 @@ class Aura;
enum SpellCastTargetFlags enum SpellCastTargetFlags
{ {
TARGET_FLAG_SELF = 0x00000000, TARGET_FLAG_SELF = 0x00000000,
TARGET_FLAG_UNUSED1 = 0x00000001, // not used in any spells as of 3.0.3 (can be set dynamically) TARGET_FLAG_UNUSED1 = 0x00000001, // not used in any spells as of 3.2.2a (can be set dynamically)
TARGET_FLAG_UNIT = 0x00000002, // pguid TARGET_FLAG_UNIT = 0x00000002, // pguid
TARGET_FLAG_UNUSED2 = 0x00000004, // not used in any spells as of 3.0.3 (can be set dynamically) TARGET_FLAG_UNUSED2 = 0x00000004, // not used in any spells as of 3.2.2a (can be set dynamically)
TARGET_FLAG_UNUSED3 = 0x00000008, // not used in any spells as of 3.0.3 (can be set dynamically) TARGET_FLAG_UNUSED3 = 0x00000008, // not used in any spells as of 3.2.2a (can be set dynamically)
TARGET_FLAG_ITEM = 0x00000010, // pguid TARGET_FLAG_ITEM = 0x00000010, // pguid
TARGET_FLAG_SOURCE_LOCATION = 0x00000020, // 3 float TARGET_FLAG_SOURCE_LOCATION = 0x00000020, // 3 float
TARGET_FLAG_DEST_LOCATION = 0x00000040, // 3 float TARGET_FLAG_DEST_LOCATION = 0x00000040, // 3 float
@@ -49,7 +49,7 @@ enum SpellCastTargetFlags
TARGET_FLAG_STRING = 0x00002000, // string, 0 spells TARGET_FLAG_STRING = 0x00002000, // string, 0 spells
TARGET_FLAG_UNK1 = 0x00004000, // 199 spells, opening object/lock TARGET_FLAG_UNK1 = 0x00004000, // 199 spells, opening object/lock
TARGET_FLAG_CORPSE = 0x00008000, // pguid, resurrection spells TARGET_FLAG_CORPSE = 0x00008000, // pguid, resurrection spells
TARGET_FLAG_UNK2 = 0x00010000, // pguid, not used in any spells as of 3.0.3 (can be set dynamically) TARGET_FLAG_UNK2 = 0x00010000, // pguid, not used in any spells as of 3.2.2a (can be set dynamically)
TARGET_FLAG_GLYPH = 0x00020000 // used in glyph spells TARGET_FLAG_GLYPH = 0x00020000 // used in glyph spells
}; };
+10 -1
View File
@@ -110,7 +110,14 @@ SpellMgr::SpellMgr()
case TARGET_UNIT_PARTY_CASTER: case TARGET_UNIT_PARTY_CASTER:
case TARGET_UNIT_RAID_CASTER: case TARGET_UNIT_RAID_CASTER:
case TARGET_UNIT_VEHICLE: case TARGET_UNIT_VEHICLE:
case TARGET_UNIT_PASSENGER: case TARGET_UNIT_PASSENGER_0:
case TARGET_UNIT_PASSENGER_1:
case TARGET_UNIT_PASSENGER_2:
case TARGET_UNIT_PASSENGER_3:
case TARGET_UNIT_PASSENGER_4:
case TARGET_UNIT_PASSENGER_5:
case TARGET_UNIT_PASSENGER_6:
case TARGET_UNIT_PASSENGER_7:
SpellTargetType[i] = TARGET_TYPE_UNIT_CASTER; SpellTargetType[i] = TARGET_TYPE_UNIT_CASTER;
break; break;
case TARGET_UNIT_MINIPET: case TARGET_UNIT_MINIPET:
@@ -122,6 +129,7 @@ SpellMgr::SpellMgr()
case TARGET_UNIT_PARTY_TARGET: case TARGET_UNIT_PARTY_TARGET:
case TARGET_UNIT_CLASS_TARGET: case TARGET_UNIT_CLASS_TARGET:
case TARGET_UNIT_CHAINHEAL: case TARGET_UNIT_CHAINHEAL:
case TARGET_UNIT_UNK_92:
SpellTargetType[i] = TARGET_TYPE_UNIT_TARGET; SpellTargetType[i] = TARGET_TYPE_UNIT_TARGET;
break; break;
case TARGET_UNIT_NEARBY_ENEMY: case TARGET_UNIT_NEARBY_ENEMY:
@@ -196,6 +204,7 @@ SpellMgr::SpellMgr()
case TARGET_DEST_DEST_RIGHT: case TARGET_DEST_DEST_RIGHT:
case TARGET_DEST_DEST_LEFT: case TARGET_DEST_DEST_LEFT:
case TARGET_DEST_DEST_RANDOM: case TARGET_DEST_DEST_RANDOM:
case TARGET_DEST_DEST_RANDOM_DIR_DIST:
SpellTargetType[i] = TARGET_TYPE_DEST_DEST; SpellTargetType[i] = TARGET_TYPE_DEST_DEST;
break; break;
case TARGET_DST_DB: case TARGET_DST_DB: