Merge remote-tracking branch 'origin/quinten' into willem
This commit is contained in:
commit
a848815c49
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
|
||||
/* Updated: 2025/06/04 18:14:36 by qmennen ### ########.fr */
|
||||
/* Updated: 2025/06/05 17:08:34 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -168,10 +168,13 @@ typedef struct s_scoreboard
|
||||
int total_tiles;
|
||||
int collectibles;
|
||||
int enemies;
|
||||
int start_time;
|
||||
int end_time;
|
||||
mlx_image_t *tiles_text;
|
||||
mlx_image_t *collectibles_text;
|
||||
mlx_image_t *battery_text;
|
||||
mlx_image_t *enemies_text;
|
||||
mlx_image_t *time_text;
|
||||
} t_scoreboard;
|
||||
|
||||
typedef struct s_game
|
||||
|
||||
@ -1,12 +1,12 @@
|
||||
/* ************************************************************************** */
|
||||
/* */
|
||||
/* :::::::: */
|
||||
/* game.c :+: :+: */
|
||||
/* +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
||||
/* +#+ */
|
||||
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
||||
/* Updated: 2025/06/04 16:43:14 by whaffman ######## odam.nl */
|
||||
/* ::: :::::::: */
|
||||
/* game.c :+: :+: :+: */
|
||||
/* +:+ +:+ +:+ */
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
||||
/* Updated: 2025/06/05 17:09:48 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -35,6 +35,7 @@ void game_over(t_game_manager *manager)
|
||||
game->screen->hud->instances[0].enabled = false;
|
||||
game->screen->minimap->instances[0].enabled = false;
|
||||
game->screen->img->instances[0].enabled = false;
|
||||
game->scoreboard->end_time = mlx_get_time();
|
||||
manager->state = GAME_STATE_END_SCREEN;
|
||||
manager->active_menu = &manager->end_screen;
|
||||
set_uniforms(game);
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/06/03 16:20:35 by qmennen #+# #+# */
|
||||
/* Updated: 2025/06/04 19:53:34 by qmennen ### ########.fr */
|
||||
/* Updated: 2025/06/05 17:12:02 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -49,15 +49,12 @@ char *get_score_text(char *prefix, char *suffix, int score)
|
||||
return (score_complete);
|
||||
}
|
||||
|
||||
static mlx_image_t *draw_score_line(mlx_t *mlx, char *text, int x, int y)
|
||||
static void draw_score_line(mlx_t *mlx, mlx_image_t **img, char *text, t_vec2_int pos)
|
||||
{
|
||||
mlx_image_t *image;
|
||||
|
||||
if (!text)
|
||||
return (NULL);
|
||||
image = mlx_put_string(mlx, text, x, y);
|
||||
if (!text || *img != NULL)
|
||||
return ;
|
||||
*img = mlx_put_string(mlx, text, pos.x, pos.y);
|
||||
free(text);
|
||||
return (image);
|
||||
}
|
||||
|
||||
void draw_end_screen(t_game_manager *manager, t_menu *menu)
|
||||
@ -66,6 +63,7 @@ void draw_end_screen(t_game_manager *manager, t_menu *menu)
|
||||
char *battery_percentage;
|
||||
char *collectibles_score;
|
||||
char *enemies_score;
|
||||
char *time_text;
|
||||
t_game *game;
|
||||
|
||||
if (!manager || !manager->game)
|
||||
@ -81,21 +79,24 @@ void draw_end_screen(t_game_manager *manager, t_menu *menu)
|
||||
+ menu->selected_option * 50;
|
||||
tiles_score = get_score_text("Discovered area: ", "%",
|
||||
(double) game->scoreboard->tiles_visited / game->scoreboard->total_tiles * 100);
|
||||
if (! game->scoreboard->tiles_text)
|
||||
game->scoreboard->tiles_text = draw_score_line(game->screen->mlx,
|
||||
tiles_score, 100, game->screen->height / 2 - 50);
|
||||
draw_score_line(game->screen->mlx, &game->scoreboard->tiles_text,
|
||||
tiles_score, (t_vec2_int){350, game->screen->height / 2 - 150});
|
||||
battery_percentage = get_score_text("Battery percentage: ",
|
||||
"%", (double) game->player->battery * 100);
|
||||
game->scoreboard->battery_text = draw_score_line(game->screen->mlx,
|
||||
battery_percentage, 100, game->screen->height / 2);
|
||||
draw_score_line(game->screen->mlx, &game->scoreboard->battery_text,
|
||||
battery_percentage, (t_vec2_int){350, game->screen->height / 2 - 100});
|
||||
collectibles_score = get_score_text("Batteries found: ", NULL,
|
||||
game->scoreboard->collectibles);
|
||||
game->scoreboard->collectibles_text = draw_score_line(game->screen->mlx,
|
||||
collectibles_score, 100, game->screen->height / 2 + 50);
|
||||
draw_score_line(game->screen->mlx, &game->scoreboard->collectibles_text,
|
||||
collectibles_score, (t_vec2_int){350, game->screen->height / 2 - 50});
|
||||
enemies_score = get_score_text("Enemies defeated: ", NULL,
|
||||
game->scoreboard->enemies);
|
||||
game->scoreboard->enemies_text = draw_score_line(game->screen->mlx,
|
||||
enemies_score, 100, game->screen->height / 2 + 100);
|
||||
draw_score_line(game->screen->mlx, &game->scoreboard->enemies_text,
|
||||
enemies_score, (t_vec2_int){350, game->screen->height / 2});
|
||||
time_text = get_score_text("Play time: ", " seconds",
|
||||
game->scoreboard->end_time - game->scoreboard->start_time);
|
||||
draw_score_line(game->screen->mlx, &game->scoreboard->time_text,
|
||||
time_text, (t_vec2_int){350, game->screen->height / 2 + 50});
|
||||
}
|
||||
|
||||
static void game_exit(struct s_menu_item *item, t_game_manager *manager)
|
||||
|
||||
@ -6,7 +6,7 @@
|
||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2025/05/28 14:14:11 by qmennen #+# #+# */
|
||||
/* Updated: 2025/06/04 19:53:06 by qmennen ### ########.fr */
|
||||
/* Updated: 2025/06/05 17:09:25 by qmennen ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
@ -28,6 +28,7 @@ static void game_start(struct s_menu_item *item, t_game_manager *manager)
|
||||
screen = game->screen;
|
||||
game->screen->minimap->instances[0].enabled = true;
|
||||
game->screen->hud->instances[0].enabled = true;
|
||||
game->scoreboard->start_time = mlx_get_time();
|
||||
menu_toggle(*(manager->active_menu), screen);
|
||||
manager->state = GAME_STATE_PLAYING;
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user