X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcommon%2FTargetingMode.h;h=1800d2bb958ab7f21821094b7a3a0986dcb0c73c;hb=4309d259becd96ead792678257e910c03a6b4a3d;hp=5376d1344b1d73a9385f9655f2e0e6b8f341b4ce;hpb=d872d756e64b8f1f57cba64ae19f479f8eab3927;p=l2e.git diff --git a/src/common/TargetingMode.h b/src/common/TargetingMode.h index 5376d13..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,36 +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 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