input system setup, debug header started
[physics.git] / src / input / inputManager.cpp
CommitLineData
f7b3b2eb
PG
1
2#include "inputManager.h"
3#include "../debug.h"
4
5enum State
6{
7 isR,
8 wasP,
9 isP,
10 wasR
11};
12
13static const int keySize = 323;
14static State keyState[keySize];
15
16void inputInit()
17{
18 for(int i=0; i< keySize; i++)
19 keyState[i] = isR;
20}
21
22void 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
48bool isPressed(Uint8 key)
49{
50 return keyState[key] == isP || keyState[key] == wasP;
51}
52bool isReleased(Uint8 key)
53{
54 return keyState[key] == isR || keyState[key] == wasR;
55}
56
57bool wasPressed(Uint8 key)
58{
59 return keyState[key] == wasP;
60}
61bool wasReleased(Uint8 key)
62{
63 return keyState[key] == wasR;
64}