X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FTargetingMode.h;h=f6f9e53f3947709f048c88f09b6340224cfe383d;hb=1907ca03c5e865c4d398170042aa384c67ffff29;hp=90414485599168a349a1cf4572b4e1506f539621;hpb=a137604bbb91ef06baf01eb9668a92a0ae1de8b1;p=l2e.git diff --git a/src/common/TargetingMode.h b/src/common/TargetingMode.h index 9041448..f6f9e53 100644 --- a/src/common/TargetingMode.h +++ b/src/common/TargetingMode.h @@ -15,39 +15,35 @@ namespace common { class TargetingMode { public: - TargetingMode() : mode(0) { } + static const int TYPE_ID = 306; public: - 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 TargetAll() { mode = (mode & FACTION_MASK) | ALL; } - void TargetMultiple() { mode = (mode & FACTION_MASK) | MULTIPLE; } - void TargetSingle() { mode = (mode & FACTION_MASK) | SINGLE; } - void TargetAlly() { mode = ALLY | (mode & COUNT_MASK); } - void TargetEnemy() { mode = ENEMY | (mode & COUNT_MASK); } - - 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; } + TargetingMode() : mode(0), ally(true) { } + +public: + 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 *); private: enum { ALL = 0, - ALLY = 0, MULTIPLE = 1, SINGLE = 2, - COUNT_MASK = 127, - ENEMY = 128, - FACTION_MASK = 128, }; - Uint8 mode; + int mode; + bool ally; };