X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FTargetingMode.h;h=1800d2bb958ab7f21821094b7a3a0986dcb0c73c;hb=4309d259becd96ead792678257e910c03a6b4a3d;hp=90414485599168a349a1cf4572b4e1506f539621;hpb=d5959073b2c413ba1bd6f3d14bc8bcf59304e488;p=l2e.git diff --git a/src/common/TargetingMode.h b/src/common/TargetingMode.h index 9041448..1800d2b 100644 --- a/src/common/TargetingMode.h +++ b/src/common/TargetingMode.h @@ -1,10 +1,3 @@ -/* - * TargetingMode.h - * - * Created on: Aug 10, 2012 - * Author: holy - */ - #ifndef COMMON_TARGETINGMODE_H_ #define COMMON_TARGETINGMODE_H_ @@ -15,42 +8,38 @@ namespace common { class TargetingMode { public: - TargetingMode() : mode(0) { } + static const int TYPE_ID = 306; + +public: + TargetingMode() : mode(0), ally(true) { } 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; } + 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; }; } -#endif /* COMMON_TARGETINGMODE_H_ */ +#endif