Core/Spells: Add new spell implicit target categories data - will be used in future patches.

This commit is contained in:
QAston
2011-08-17 11:30:47 +02:00
parent a23c4592af
commit a44e1c505e
3 changed files with 243 additions and 38 deletions
+74 -2
View File
@@ -43,6 +43,64 @@ enum SpellEffectTargetTypes
SPELL_REQUIRE_GOBJECT,
};
enum SpellTargetSelectionCategories
{
TARGET_SELECT_CATEGORY_NYI,
TARGET_SELECT_CATEGORY_DEFAULT,
TARGET_SELECT_CATEGORY_CHANNEL,
TARGET_SELECT_CATEGORY_NEARBY,
TARGET_SELECT_CATEGORY_CONE,
TARGET_SELECT_CATEGORY_AREA,
};
enum SpellTargetReferenceTypes
{
TARGET_REFERENCE_TYPE_NONE,
TARGET_REFERENCE_TYPE_CASTER,
TARGET_REFERENCE_TYPE_TARGET,
TARGET_REFERENCE_TYPE_LAST,
TARGET_REFERENCE_TYPE_SRC,
TARGET_REFERENCE_TYPE_DEST,
};
enum SpellTargetObjectTypes
{
TARGET_OBJECT_TYPE_NONE,
TARGET_OBJECT_TYPE_SRC,
TARGET_OBJECT_TYPE_DEST,
TARGET_OBJECT_TYPE_UNIT,
TARGET_OBJECT_TYPE_GOBJ,
TARGET_OBJECT_TYPE_GOBJ_ITEM,
TARGET_OBJECT_TYPE_ITEM,
TARGET_OBJECT_TYPE_CORPSE,
};
enum SpellTargetSelectionCheckTypes
{
TARGET_SELECT_CHECK_DEFAULT,
TARGET_SELECT_CHECK_ENTRY,
TARGET_SELECT_CHECK_ENEMY,
TARGET_SELECT_CHECK_ALLY,
TARGET_SELECT_CHECK_PARTY,
TARGET_SELECT_CHECK_RAID,
TARGET_SELECT_CHECK_PASSENGER,
};
enum SpellTargetDirectionTypes
{
TARGET_DIR_NONE,
TARGET_DIR_FRONT,
TARGET_DIR_BACK,
TARGET_DIR_RIGHT,
TARGET_DIR_LEFT,
TARGET_DIR_FRONT_RIGHT,
TARGET_DIR_BACK_RIGHT,
TARGET_DIR_BACK_LEFT,
TARGET_DIR_FRONT_LEFT,
TARGET_DIR_RANDOM,
TARGET_DIR_ENTRY,
};
enum SpellSelectTargetTypes
{
TARGET_TYPE_DEFAULT,
@@ -121,6 +179,12 @@ public:
bool IsArea() const;
SpellSelectTargetTypes GetType() const;
SpellTargetSelectionCategories GetSelectionCategory() const;
SpellTargetReferenceTypes GetReferenceType() const;
SpellTargetObjectTypes GetObjectType() const;
SpellTargetSelectionCheckTypes GetSelectionCheckType() const;
SpellTargetDirectionTypes GetDirectionType() const;
float CalcDirectionAngle() const;
Targets GetTarget() const;
@@ -130,11 +194,19 @@ public:
private:
static bool InitStaticData();
static void InitAreaData();
static void InitTypeData();
static bool Init;
static bool Area[TOTAL_SPELL_TARGETS];
struct StaticData
{
SpellTargetObjectTypes ObjectType;
SpellTargetReferenceTypes ReferenceType;
SpellTargetSelectionCategories SelectionCategory;
SpellTargetSelectionCheckTypes SelectionCheckType;
SpellTargetDirectionTypes DirectionType;
};
static StaticData _data[TOTAL_SPELL_TARGETS];
};
class SpellEffectInfo