]> git.localhorst.tv Git - l2e.git/blob - src/common/HeroGroup.h
implemented modulo operation for scripts
[l2e.git] / src / common / HeroGroup.h
1 /*
2  * HeroGroup.h
3  *
4  *  Created on: Aug 10, 2012
5  *      Author: holy
6  */
7
8 #ifndef COMMON_HEROGROUP_H_
9 #define COMMON_HEROGROUP_H_
10
11 #include <SDL.h>
12
13 namespace common {
14
15 class HeroGroup {
16
17 public:
18         HeroGroup() : members(NOBODY) { }
19
20 public:
21         bool HasMaxim() const { return members & MAXIM; }
22         bool HasSelan() const { return members & SELAN; }
23         bool HasGuy() const { return members & GUY; }
24         bool HasArtea() const { return members & ARTEA; }
25         bool HasTia() const { return members & TIA; }
26         bool HasDekar() const { return members & DEKAR; }
27         bool HasLexis() const { return members & LEXIS; }
28
29         void AddMaxim() { members |= MAXIM; }
30         void AddSelan() { members |= SELAN; }
31         void AddGuy() { members |= GUY; }
32         void AddArtea() { members |= ARTEA; }
33         void AddTia() { members |= TIA; }
34         void AddDekar() { members |= DEKAR; }
35         void AddLexis() { members |= LEXIS; }
36         void AddAll() { members = (MAXIM | SELAN | GUY | ARTEA | TIA | DEKAR | LEXIS); }
37
38         void RemoveMaxim() { members &= ~MAXIM; }
39         void RemoveSelan() { members &= ~SELAN; }
40         void RemoveGuy() { members &= ~GUY; }
41         void RemoveArtea() { members &= ~ARTEA; }
42         void RemoveTia() { members &= ~TIA; }
43         void RemoveDekar() { members &= ~DEKAR; }
44         void RemoveLexis() { members &= ~LEXIS; }
45         void RemoveAll() { members = NOBODY; }
46
47 public:
48         enum {
49                 NOBODY = 0,
50                 MAXIM = 1,
51                 SELAN = 2,
52                 GUY = 4,
53                 ARTEA = 8,
54                 TIA = 16,
55                 DEKAR = 32,
56                 LEXIS = 64,
57         };
58         Uint8 members;
59
60 };
61
62 }
63
64 #endif /* COMMON_HEROGROUP_H_ */