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