Bubba-3D  0.9.0
Awesome game engine!
ControlStatus.h
1 /*
2  * This file is part of Bubba-3D.
3  *
4  * Bubba-3D is free software: you can redistribute it and/or modify
5  * it under the terms of the GNU Lesser General Public License as published by
6  * the Free Software Foundation, either version 3 of the License, or
7  * (at your option) any later version.
8  *
9  * Bubba-3D is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU Lesser General Public License for more details.
13  *
14  * You should have received a copy of the GNU Lesser General Public License
15  * along with Bubba-3D. If not, see http://www.gnu.org/licenses/.
16  */
17 //
18 // Created by simon on 2015-12-20.
19 //
20 
21 #ifndef BUBBA_3D_BUTTONSTATUS_H
22 #define BUBBA_3D_BUTTONSTATUS_H
23 
24 #include <map>
25 
60 public:
61  enum Activator {NONE = 1024,KEYBOARD = 256, MOUSE = 512, JOYSTICK_0 = 1, JOYSTICK_1 = 2, JOYSTICK_2 = 4,
62  JOYSTICK_3 = 8, JOYSTICK_4 = 16, JOYSTICK_5 = 32, JOYSTICK_6 = 64, JOYSTICK_7 = 128, JOYSTICK = 255};
63 
64 
65  static Activator activatorFromJoystickNumber(int n);
66 
71  Activator getMaxActivator();
72 
78  float getValue();
79 
85  float getValue(Activator activator);
86 
87  /*
88  * Alias for getValue() != 0;
89  */
90  bool isActive();
91 
96  bool isActive(Activator activator);
97 
101  ControlStatus(Activator activator, float value);
102  ControlStatus();
103  void addButton(Activator activator, float value);
104  void merge(ControlStatus cs);
105 
106 private:
107  std::map<Activator,float> buttons;
108  float maxValue = NO_MAX;
109  Activator maxValueActivator;
110  static const float NO_MAX;
111 
112 };
113 
114 
115 #endif //BUBBA_3D_BUTTONSTATUS_H
The class that contains information about a function at the state of creation.
Definition: ControlStatus.h:59
Activator getMaxActivator()