X-Git-Url: http://gitweb.pgornicz.com/gitweb.cgi?p=physics.git;a=blobdiff_plain;f=src%2Finput%2FinputManager.cpp;h=94b645d334a7ae597f420c1c1dae221053e06f23;hp=21934c4c137769acdf76aeeb4c78497d947e7ad4;hb=4a0863f343fa6f68639759494e3c0f0ab8ae2a76;hpb=719d202f8ac20943df204e4c2bfa6ab491bd1182 diff --git a/src/input/inputManager.cpp b/src/input/inputManager.cpp index 21934c4..94b645d 100644 --- a/src/input/inputManager.cpp +++ b/src/input/inputManager.cpp @@ -18,6 +18,8 @@ #include "inputManager.h" #include "../debug.h" +#include + #include "../config/keys.h" @@ -48,6 +50,8 @@ void input::clean() /// ***** Public Methods ***** +const Uint32 eventMask = -1; // ALL events + void input::update() { SDL_Event event; @@ -60,7 +64,7 @@ void input::update() keyState[i] = isP; } - while(SDL_PollEvent(&event)) + while(0 < SDL_PeepEvents(&event, 1, SDL_GETEVENT, eventMask)) { switch(event.type) { @@ -73,6 +77,8 @@ void input::update() case SDL_QUIT: keyState[key::end] = wasR; break; + default: + break; } } } @@ -98,20 +104,20 @@ bool input::mouseRight() return state & SDL_BUTTON(3); } -bool input::isPressed(SDLKey key) +bool input::isPressed(const SDLKey& key) { return keyState[key] == isP || keyState[key] == wasP; } -bool input::isReleased(SDLKey key) +bool input::isReleased(const SDLKey& key) { return keyState[key] == isR || keyState[key] == wasR; } -bool input::wasPressed(SDLKey key) +bool input::wasPressed(const SDLKey& key) { return keyState[key] == wasP; } -bool input::wasReleased(SDLKey key) +bool input::wasReleased(const SDLKey& key) { return keyState[key] == wasR; }