diff options
Diffstat (limited to 'src/game.c')
-rw-r--r-- | src/game.c | 10 |
1 files changed, 10 insertions, 0 deletions
@@ -144,6 +144,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) { struct mf_maze *maze = NULL; struct mf_char *player = NULL; + struct mf_char *enemy = NULL; SDL_Color maze_color; char *font_path = NULL; TTF_Font *text_font = NULL; @@ -173,6 +174,10 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) if (player == NULL) { goto err; } + enemy = mf_enemy_new(maze, MF_WINDOW_H / size, size); + if (enemy == NULL) { + goto err; + } font_path = mf_strcat(mf_get_fonts_dir(), "/FifteenTwenty-Regular.ttf"); text_font = TTF_OpenFont(font_path, MF_TEXT_FONT_S); @@ -229,6 +234,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) } if (won == SDL_FALSE) { mf_char_update(player); + mf_char_update(enemy); mf_char_get_vector(player, &game.player_cx, &game.player_cy, &game.player_travel, &game.player_dx, &game.player_dy); @@ -246,6 +252,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) MF_COLOR_BACK_B, MF_COLOR_BACK_A); SDL_RenderClear(renderer); mf_char_render(player, renderer); + mf_char_render(enemy, renderer); if (fow == SDL_TRUE && _mf_game_fow(renderer, &game, maze, MF_WINDOW_H / size) < 0) { goto err; @@ -284,6 +291,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) text_font = NULL; mf_maze_destroy(&maze); mf_char_destroy(&player); + mf_char_destroy(&enemy); return 0; quit: @@ -292,6 +300,7 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) text_font = NULL; mf_maze_destroy(&maze); mf_char_destroy(&player); + mf_char_destroy(&enemy); return 1; err: @@ -304,5 +313,6 @@ mf_game(long seed, int size, int fow, int reveal, SDL_Renderer *renderer) mftk_window_destroy(&win); mf_maze_destroy(&maze); mf_char_destroy(&player); + mf_char_destroy(&enemy); return -1; } |