+
+#include "inputManager.h"
+#include "../debug.h"
+
+enum State
+{
+ isR,
+ wasP,
+ isP,
+ wasR
+};
+
+static const int keySize = 323;
+static State keyState[keySize];
+
+void inputInit()
+{
+ for(int i=0; i< keySize; i++)
+ keyState[i] = isR;
+}
+
+void inputUpdate()
+{
+ SDL_Event event;
+
+ for(int i=0; i< keySize; i++)
+ {
+ if(keyState[i] == wasR)
+ keyState[i] = isR;
+ else if(keyState[i] == wasP)
+ keyState[i] = isP;
+ }
+
+ while(SDL_PollEvent(&event))
+ {
+ switch(event.type)
+ {
+ case SDL_KEYUP:
+ keyState[event.key.keysym.sym] = wasR;
+ break;
+ case SDL_KEYDOWN:
+ keyState[event.key.keysym.sym] = wasP;
+ break;
+ }
+ }
+}
+
+bool isPressed(Uint8 key)
+{
+ return keyState[key] == isP || keyState[key] == wasP;
+}
+bool isReleased(Uint8 key)
+{
+ return keyState[key] == isR || keyState[key] == wasR;
+}
+
+bool wasPressed(Uint8 key)
+{
+ return keyState[key] == wasP;
+}
+bool wasReleased(Uint8 key)
+{
+ return keyState[key] == wasR;
+}