]> git.localhorst.tv Git - l2e.git/blobdiff - src/common/HeroGroup.h
added spells
[l2e.git] / src / common / HeroGroup.h
diff --git a/src/common/HeroGroup.h b/src/common/HeroGroup.h
new file mode 100644 (file)
index 0000000..ef6fd25
--- /dev/null
@@ -0,0 +1,64 @@
+/*
+ * HeroGroup.h
+ *
+ *  Created on: Aug 10, 2012
+ *      Author: holy
+ */
+
+#ifndef COMMON_HEROGROUP_H_
+#define COMMON_HEROGROUP_H_
+
+#include <SDL.h>
+
+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_ */