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> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/04/15 15:52:44 by qmennen #+# #+# */
|
/* 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 total_tiles;
|
||||||
int collectibles;
|
int collectibles;
|
||||||
int enemies;
|
int enemies;
|
||||||
|
int start_time;
|
||||||
|
int end_time;
|
||||||
mlx_image_t *tiles_text;
|
mlx_image_t *tiles_text;
|
||||||
mlx_image_t *collectibles_text;
|
mlx_image_t *collectibles_text;
|
||||||
mlx_image_t *battery_text;
|
mlx_image_t *battery_text;
|
||||||
mlx_image_t *enemies_text;
|
mlx_image_t *enemies_text;
|
||||||
|
mlx_image_t *time_text;
|
||||||
} t_scoreboard;
|
} t_scoreboard;
|
||||||
|
|
||||||
typedef struct s_game
|
typedef struct s_game
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
/* */
|
/* */
|
||||||
/* :::::::: */
|
/* ::: :::::::: */
|
||||||
/* game.c :+: :+: */
|
/* game.c :+: :+: :+: */
|
||||||
/* +:+ */
|
/* +:+ +:+ +:+ */
|
||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
/* Created: 2025/04/15 15:46:08 by qmennen #+# #+# */
|
||||||
/* Updated: 2025/06/04 16:43:14 by whaffman ######## odam.nl */
|
/* 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->hud->instances[0].enabled = false;
|
||||||
game->screen->minimap->instances[0].enabled = false;
|
game->screen->minimap->instances[0].enabled = false;
|
||||||
game->screen->img->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->state = GAME_STATE_END_SCREEN;
|
||||||
manager->active_menu = &manager->end_screen;
|
manager->active_menu = &manager->end_screen;
|
||||||
set_uniforms(game);
|
set_uniforms(game);
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/06/03 16:20:35 by qmennen #+# #+# */
|
/* 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);
|
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 || *img != NULL)
|
||||||
|
return ;
|
||||||
if (!text)
|
*img = mlx_put_string(mlx, text, pos.x, pos.y);
|
||||||
return (NULL);
|
|
||||||
image = mlx_put_string(mlx, text, x, y);
|
|
||||||
free(text);
|
free(text);
|
||||||
return (image);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void draw_end_screen(t_game_manager *manager, t_menu *menu)
|
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 *battery_percentage;
|
||||||
char *collectibles_score;
|
char *collectibles_score;
|
||||||
char *enemies_score;
|
char *enemies_score;
|
||||||
|
char *time_text;
|
||||||
t_game *game;
|
t_game *game;
|
||||||
|
|
||||||
if (!manager || !manager->game)
|
if (!manager || !manager->game)
|
||||||
@ -81,21 +79,24 @@ void draw_end_screen(t_game_manager *manager, t_menu *menu)
|
|||||||
+ menu->selected_option * 50;
|
+ menu->selected_option * 50;
|
||||||
tiles_score = get_score_text("Discovered area: ", "%",
|
tiles_score = get_score_text("Discovered area: ", "%",
|
||||||
(double) game->scoreboard->tiles_visited / game->scoreboard->total_tiles * 100);
|
(double) game->scoreboard->tiles_visited / game->scoreboard->total_tiles * 100);
|
||||||
if (! game->scoreboard->tiles_text)
|
draw_score_line(game->screen->mlx, &game->scoreboard->tiles_text,
|
||||||
game->scoreboard->tiles_text = draw_score_line(game->screen->mlx,
|
tiles_score, (t_vec2_int){350, game->screen->height / 2 - 150});
|
||||||
tiles_score, 100, game->screen->height / 2 - 50);
|
|
||||||
battery_percentage = get_score_text("Battery percentage: ",
|
battery_percentage = get_score_text("Battery percentage: ",
|
||||||
"%", (double) game->player->battery * 100);
|
"%", (double) game->player->battery * 100);
|
||||||
game->scoreboard->battery_text = draw_score_line(game->screen->mlx,
|
draw_score_line(game->screen->mlx, &game->scoreboard->battery_text,
|
||||||
battery_percentage, 100, game->screen->height / 2);
|
battery_percentage, (t_vec2_int){350, game->screen->height / 2 - 100});
|
||||||
collectibles_score = get_score_text("Batteries found: ", NULL,
|
collectibles_score = get_score_text("Batteries found: ", NULL,
|
||||||
game->scoreboard->collectibles);
|
game->scoreboard->collectibles);
|
||||||
game->scoreboard->collectibles_text = draw_score_line(game->screen->mlx,
|
draw_score_line(game->screen->mlx, &game->scoreboard->collectibles_text,
|
||||||
collectibles_score, 100, game->screen->height / 2 + 50);
|
collectibles_score, (t_vec2_int){350, game->screen->height / 2 - 50});
|
||||||
enemies_score = get_score_text("Enemies defeated: ", NULL,
|
enemies_score = get_score_text("Enemies defeated: ", NULL,
|
||||||
game->scoreboard->enemies);
|
game->scoreboard->enemies);
|
||||||
game->scoreboard->enemies_text = draw_score_line(game->screen->mlx,
|
draw_score_line(game->screen->mlx, &game->scoreboard->enemies_text,
|
||||||
enemies_score, 100, game->screen->height / 2 + 100);
|
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)
|
static void game_exit(struct s_menu_item *item, t_game_manager *manager)
|
||||||
|
|||||||
@ -6,7 +6,7 @@
|
|||||||
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
/* By: qmennen <qmennen@student.codam.nl> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2025/05/28 14:14:11 by qmennen #+# #+# */
|
/* 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;
|
screen = game->screen;
|
||||||
game->screen->minimap->instances[0].enabled = true;
|
game->screen->minimap->instances[0].enabled = true;
|
||||||
game->screen->hud->instances[0].enabled = true;
|
game->screen->hud->instances[0].enabled = true;
|
||||||
|
game->scoreboard->start_time = mlx_get_time();
|
||||||
menu_toggle(*(manager->active_menu), screen);
|
menu_toggle(*(manager->active_menu), screen);
|
||||||
manager->state = GAME_STATE_PLAYING;
|
manager->state = GAME_STATE_PLAYING;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user