L.P.T/src/input.c
2025-06-04 21:26:11 +03:00

65 lines
1.3 KiB
C

#include "sdl.h"
#include "interface.h"
#include "input.h"
int Input(APP *app, char *run, char flag) {
SDL_Event event;
while (SDL_PollEvent(&event)) {
switch (event.type) {
case SDL_KEYDOWN:
if (event.key.keysym.sym == SDLK_q) {
*run = 0;
return EXIT;
}
else if (event.key.keysym.sym == SDLK_k)
return SAVE;
else if (flag == IN_MENU) {
if (event.key.keysym.sym == SDLK_s)
return SETTINGS;
else if (event.key.keysym.sym == SDLK_c)
return CONTINUE;
else if (event.key.keysym.sym == SDLK_n)
return NEW_GAME;
}
else if (flag == IN_SETTINGS || flag == IN_GAME) {
if (event.key.keysym.sym == SDLK_DOWN)
return KEY_DOWN;
else if (event.key.keysym.sym == SDLK_UP)
return KEY_UP;
else if (event.key.keysym.sym == SDLK_RIGHT)
return KEY_RIGHT;
else if (event.key.keysym.sym == SDLK_LEFT)
return KEY_LEFT;
}
break;
case SDL_QUIT:
if (flag == IN_MENU)
*run = 0;
break;
case SDL_WINDOWEVENT:
if (event.window.event == SDL_WINDOWEVENT_SIZE_CHANGED) {
SDL_GetWindowSize(app->window, &app->scr_width, &app->scr_height);
SDL_UpdateWindowSurface(app->window);
}
break;
default:
break;
}
}
return INPUT_NORMAL;
}