Commit | Line | Data |
---|---|---|
f7b3b2eb PG |
1 | #include "inputManager.h" |
2 | #include "../debug.h" | |
3 | ||
617dcc71 PG |
4 | |
5 | /// ***** Private Variables ***** | |
6 | ||
f7b3b2eb PG |
7 | enum State |
8 | { | |
9 | isR, | |
10 | wasP, | |
11 | isP, | |
12 | wasR | |
13 | }; | |
14 | ||
15 | static const int keySize = 323; | |
16 | static State keyState[keySize]; | |
17 | ||
617dcc71 PG |
18 | /// ***** Initializers/Cleaners ***** |
19 | ||
68b2316d | 20 | void input::init() |
f7b3b2eb PG |
21 | { |
22 | for(int i=0; i< keySize; i++) | |
23 | keyState[i] = isR; | |
24 | } | |
68b2316d | 25 | void input::clean() |
617dcc71 PG |
26 | { |
27 | ||
28 | } | |
29 | ||
30 | /// ***** Public Methods ***** | |
f7b3b2eb | 31 | |
68b2316d | 32 | void input::update() |
f7b3b2eb PG |
33 | { |
34 | SDL_Event event; | |
35 | ||
36 | for(int i=0; i< keySize; i++) | |
37 | { | |
38 | if(keyState[i] == wasR) | |
39 | keyState[i] = isR; | |
40 | else if(keyState[i] == wasP) | |
41 | keyState[i] = isP; | |
42 | } | |
43 | ||
44 | while(SDL_PollEvent(&event)) | |
45 | { | |
46 | switch(event.type) | |
47 | { | |
48 | case SDL_KEYUP: | |
49 | keyState[event.key.keysym.sym] = wasR; | |
50 | break; | |
51 | case SDL_KEYDOWN: | |
52 | keyState[event.key.keysym.sym] = wasP; | |
53 | break; | |
54 | } | |
55 | } | |
56 | } | |
57 | ||
68b2316d | 58 | bool input::isPressed(Uint8 key) |
f7b3b2eb PG |
59 | { |
60 | return keyState[key] == isP || keyState[key] == wasP; | |
61 | } | |
68b2316d | 62 | bool input::isReleased(Uint8 key) |
f7b3b2eb PG |
63 | { |
64 | return keyState[key] == isR || keyState[key] == wasR; | |
65 | } | |
66 | ||
68b2316d | 67 | bool input::wasPressed(Uint8 key) |
f7b3b2eb PG |
68 | { |
69 | return keyState[key] == wasP; | |
70 | } | |
68b2316d | 71 | bool input::wasReleased(Uint8 key) |
f7b3b2eb PG |
72 | { |
73 | return keyState[key] == wasR; | |
74 | } |