first!
This commit is contained in:
parent
19f0b80394
commit
b75523115a
25 changed files with 1672 additions and 14 deletions
67
src/input.c
Normal file
67
src/input.c
Normal file
|
@ -0,0 +1,67 @@
|
|||
#include "sdl.h"
|
||||
#include "interface.h"
|
||||
#include "input.h"
|
||||
|
||||
int Input(APP *app, char *run, FONTS *fonts, 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);
|
||||
}
|
||||
|
||||
CloseFonts(fonts);
|
||||
InitFonts(fonts, *app);
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return INPUT_NORMAL;
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue