X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcommon%2FHeroGroup.h;fp=src%2Fcommon%2FHeroGroup.h;h=ef6fd251b336d37e255d9cb23b9a7d63a8dd9c2e;hb=d872d756e64b8f1f57cba64ae19f479f8eab3927;hp=0000000000000000000000000000000000000000;hpb=fb10fbd4a72793048916557308772fdaa2afebc2;p=l2e.git diff --git a/src/common/HeroGroup.h b/src/common/HeroGroup.h new file mode 100644 index 0000000..ef6fd25 --- /dev/null +++ b/src/common/HeroGroup.h @@ -0,0 +1,64 @@ +/* + * HeroGroup.h + * + * Created on: Aug 10, 2012 + * Author: holy + */ + +#ifndef COMMON_HEROGROUP_H_ +#define COMMON_HEROGROUP_H_ + +#include + +namespace common { + +class HeroGroup { + +public: + HeroGroup() : members(NOBODY) { } + +public: + bool HasMaxim() const { return members & MAXIM; } + bool HasSelan() const { return members & SELAN; } + bool HasGuy() const { return members & GUY; } + bool HasArtea() const { return members & ARTEA; } + bool HasTia() const { return members & TIA; } + bool HasDekar() const { return members & DEKAR; } + bool HasLexis() const { return members & LEXIS; } + + void AddMaxim() { members |= MAXIM; } + void AddSelan() { members |= SELAN; } + void AddGuy() { members |= GUY; } + void AddArtea() { members |= ARTEA; } + void AddTia() { members |= TIA; } + void AddDekar() { members |= DEKAR; } + void AddLexis() { members |= LEXIS; } + void AddAll() { members = (MAXIM | SELAN | GUY | ARTEA | TIA | DEKAR | LEXIS); } + + void RemoveMaxim() { members &= ~MAXIM; } + void RemoveSelan() { members &= ~SELAN; } + void RemoveGuy() { members &= ~GUY; } + void RemoveArtea() { members &= ~ARTEA; } + void RemoveTia() { members &= ~TIA; } + void RemoveDekar() { members &= ~DEKAR; } + void RemoveLexis() { members &= ~LEXIS; } + void RemoveAll() { members = NOBODY; } + +public: + enum { + NOBODY = 0, + MAXIM = 1, + SELAN = 2, + GUY = 4, + ARTEA = 8, + TIA = 16, + DEKAR = 32, + LEXIS = 64, + }; + Uint8 members; + +}; + +} + +#endif /* COMMON_HEROGROUP_H_ */