Files
slipperstree cc4a765ed0 1. get_buttons() should be buttons_get() in Input.h
2. -ICode/... should be ICore/... in Makefile.gnw-flash
2022-04-18 17:22:31 +00:00

83 lines
1.8 KiB
C++

#ifndef INPUT_H
#define INPUT_H
#include "Defines.h"
#include "KeyState.h"
class Input{
public:
/**
* Returns a KeyState object containing the
* current state of the buttons
*/
static KeyState GetButtons(){
KeyState state;
#ifdef DESKTOP
SDL_Event event;
while (SDL_PollEvent(&event)) {
if (event.type == SDL_WINDOWEVENT){
if (event.window.event == SDL_WINDOWEVENT_CLOSE){
state.End = true;
}
}
if (event.type == SDL_KEYDOWN) {
switch (event.key.keysym.sym) {
case SDLK_UP:
state.Up = true;
break;
case SDLK_DOWN:
state.Down = true;
break;
case SDLK_LEFT:
state.Left = true;
break;
case SDLK_RIGHT:
state.Right = true;
break;
case SDLK_x:
state.A = true;
break;
case SDLK_c:
state.B = true;
break;
case SDLK_BACKSPACE:
state.Game = true;
break;
case SDLK_RETURN:
state.Pause = true;
break;
case SDLK_RSHIFT:
state.Time = true;
break;
case SDLK_ESCAPE:
state.End = true;
break;
}
}
}
#endif
#ifdef GAMENWATCH
uint32_t buttons = buttons_get();
if (buttons & B_Up)
state.Up = true;
if (buttons & B_Down)
state.Down = true;
if (buttons & B_Left)
state.Left = true;
if (buttons & B_Right)
state.Right = true;
if (buttons & B_A)
state.A = true;
if (buttons & B_B)
state.B = true;
if (buttons & B_GAME)
state.Game = true;
if (buttons & B_PAUSE)
state.Pause = true;
if (buttons & B_TIME)
state.Time = true;
#endif
return state;
}
};
#endif