Adoranda/src/game.c

46 lines
1.1 KiB
C
Raw Normal View History

2021-07-29 18:33:22 +02:00
#include <gint/display.h>
#include <gint/keyboard.h>
2021-07-29 18:33:22 +02:00
#include "game.h"
#include "player.h"
#include "map.h"
struct Game init_game(struct Player *player) {
extern struct Map *maps[];
struct Game game = {
.map = maps[0],
.player = player,
.camera = camera_new(&player->pos_visual),
2021-12-23 18:37:48 +01:00
.background = C_BLACK
};
return game;
}
2021-07-29 18:33:22 +02:00
2021-08-08 01:43:26 +02:00
/*get the input with a timeout*/
int get_inputs(void) {
2021-08-05 03:12:40 +02:00
int opt = GETKEY_DEFAULT & GETKEY_REP_ARROWS;
int timeout = 1;
while(1) {
key_event_t ev = getkey_opt(opt, &timeout);
if(ev.type == KEYEV_NONE) return -1;
int key = ev.key;
2021-07-29 18:33:22 +02:00
2021-08-08 01:43:26 +02:00
/*direction*/
2021-07-29 18:33:22 +02:00
if(key == KEY_DOWN) return DIR_DOWN;
if(key == KEY_RIGHT) return DIR_RIGHT;
if(key == KEY_UP) return DIR_UP;
if(key == KEY_LEFT) return DIR_LEFT;
2021-08-08 01:43:26 +02:00
/*action key*/
2021-08-07 01:49:03 +02:00
if(key == KEY_SHIFT) return ACTION_SHIFT;
2021-08-08 01:43:26 +02:00
if(key == KEY_ALPHA) return ACTION_ALPHA;
2022-01-23 00:53:07 +01:00
if(key == KEY_OPTN) return ACTION_OPTN;
if(key == KEY_F1) return ACTION_F1;
if(key == KEY_F2) return ACTION_F2;
2021-07-29 18:33:22 +02:00
}
2021-08-15 03:46:49 +02:00
}