- bool TargetsEnemy() const { return (mode & FACTION_MASK) == ENEMY; }
- bool TargetsAlly() const { return (mode & FACTION_MASK) == ALLY; }
- bool TargetsAll() const { return (mode & COUNT_MASK) == ALL; }
- bool TargetsMultiple() const { return (mode & COUNT_MASK) == MULTIPLE; }
- bool TargetsSingle() const { return (mode & COUNT_MASK) == SINGLE; }
-
- void TargetAllEnemies() { mode = ENEMY | ALL; }
- void TargetMultipleEnemies() { mode = ENEMY | MULTIPLE; }
- void TargetSingleEnemy() { mode = ENEMY | SINGLE; }
- void TargetAllAllies() { mode = ALLY | ALL; }
- void TargetMultipleAllies() { mode = ALLY | MULTIPLE; }
- void TargetSingleAlly() { mode = ALLY | SINGLE; }
+ bool TargetsEnemy() const { return !ally; }
+ bool TargetsAlly() const { return ally; }
+ bool TargetsAll() const { return mode == ALL; }
+ bool TargetsMultiple() const { return mode == MULTIPLE; }
+ bool TargetsSingle() const { return mode == SINGLE; }
+
+ void TargetAll() { mode = ALL; }
+ void TargetMultiple() { mode = MULTIPLE; }
+ void TargetSingle() { mode = SINGLE; }
+ void TargetAlly() { ally = true; }
+ void TargetEnemy() { ally = false; }
+
+ static void CreateTypeDescription();
+ static void Construct(void *);