summaryrefslogtreecommitdiffstats
path: root/src/game.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/game.c')
-rw-r--r--src/game.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/game.c b/src/game.c
index 6a8be75..e336c03 100644
--- a/src/game.c
+++ b/src/game.c
@@ -25,6 +25,7 @@
#include "dirs.h"
#include "game.h"
#include "maze.h"
+#include "player.h"
#include "tk.h"
#include "util.h"
@@ -65,6 +66,7 @@ int
mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
{
struct mf_maze *maze = NULL;
+ struct mf_player *player = NULL;
SDL_Color maze_color;
char *font_path = NULL;
TTF_Font *text_font = NULL;
@@ -89,6 +91,11 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
maze_color.b = MF_COLOR_MAZE_B;
maze_color.a = MF_COLOR_MAZE_A;
+ player = mf_player_new(maze, MF_WINDOW_H / size);
+ if (player == NULL) {
+ goto err;
+ }
+
font_path = mf_strcat(mf_get_fonts_dir(), "/FifteenTwenty-Regular.ttf");
text_font = TTF_OpenFont(font_path, MF_TEXT_FONT_S);
if (text_font == NULL) {
@@ -131,6 +138,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
default:
break;
}
+ mf_player_key_event(player, &event);
switch (mftk_window_event(win, &event)) {
case 0:
break;
@@ -140,11 +148,13 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
goto err;
}
}
+ mf_player_update(player);
SDL_SetRenderDrawColor(renderer,
MF_COLOR_BACK_R, MF_COLOR_BACK_G,
MF_COLOR_BACK_B, MF_COLOR_BACK_A);
SDL_RenderClear(renderer);
mf_maze_render(maze, renderer, &maze_color, MF_WINDOW_H / size);
+ mf_player_render(player, renderer);
secs = (beg - game.beg) / 1000;
if (sprintf(game.time_buf, "%02d:%02d", secs / 60, secs % 60)
< 0) {
@@ -175,6 +185,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
TTF_CloseFont(text_font);
text_font = NULL;
mf_maze_destroy(&maze);
+ mf_player_destroy(&player);
return 0;
quit:
@@ -182,6 +193,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
TTF_CloseFont(text_font);
text_font = NULL;
mf_maze_destroy(&maze);
+ mf_player_destroy(&player);
return 1;
err:
@@ -193,5 +205,6 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer)
}
mftk_window_destroy(&win);
mf_maze_destroy(&maze);
+ mf_player_destroy(&player);
return -1;
}