Better error handling

This commit is contained in:
Alexander Batalov 2023-06-01 18:27:14 +03:00
parent 5298dc0985
commit 39b52117e4
1 changed files with 16 additions and 10 deletions

View File

@ -270,22 +270,28 @@ static SDL_Scancode get_scancode_from_key(int key)
bool sfall_kb_is_key_pressed(int key) bool sfall_kb_is_key_pressed(int key)
{ {
const Uint8* state = SDL_GetKeyboardState(nullptr);
SDL_Scancode scancode = get_scancode_from_key(key); SDL_Scancode scancode = get_scancode_from_key(key);
if (scancode == SDL_SCANCODE_UNKNOWN) {
return false;
}
const Uint8* state = SDL_GetKeyboardState(nullptr);
return state[scancode] != 0; return state[scancode] != 0;
} }
void sfall_kb_press_key(int key) void sfall_kb_press_key(int key)
{ {
SDL_Scancode scancode = get_scancode_from_key(key); SDL_Scancode scancode = get_scancode_from_key(key);
if (scancode != SDL_SCANCODE_UNKNOWN) { if (scancode == SDL_SCANCODE_UNKNOWN) {
SDL_Event event; return;
event.key.keysym.scancode = scancode;
event.type = SDL_KEYDOWN;
SDL_PushEvent(&event);
event.type = SDL_KEYUP;
SDL_PushEvent(&event);
} }
SDL_Event event;
event.key.keysym.scancode = scancode;
event.type = SDL_KEYDOWN;
SDL_PushEvent(&event);
event.type = SDL_KEYUP;
SDL_PushEvent(&event);
} }