From ad04490ef84d7565fbec0fa878a21694ad2d61f0 Mon Sep 17 00:00:00 2001 From: pryazha Date: Tue, 26 Aug 2025 10:55:18 +0500 Subject: guess that's all --- in_practice/breakout/game.h | 43 +++++++++++++++++++++++++++++-------------- 1 file changed, 29 insertions(+), 14 deletions(-) (limited to 'in_practice/breakout/game.h') diff --git a/in_practice/breakout/game.h b/in_practice/breakout/game.h index 31f5dcd..5bc7abe 100644 --- a/in_practice/breakout/game.h +++ b/in_practice/breakout/game.h @@ -6,28 +6,43 @@ #include "sprite.h" #include "level.h" #include "ball.h" +#include "particle.h" +#include "post_processor.h" +#include "powerup.h" +#include "text.h" -typedef enum { +enum game_state { game_active, game_menu, game_win -} game_state_enum; +}; -typedef struct { - game_state_enum state; +#define max_powerups 4 +#define max_levels 4 + +struct game { + enum game_state state; i32 running; - input_t input; + struct input input; i32 width, height; const char *bindir; - sprite_renderer_t renderer; - level_t level; - object_t player; - ball_t ball; -} game_t; + struct sprite_renderer renderer; + struct level levels[max_levels]; + i32 level; + struct object player; + u32 lives; + struct ball ball; + struct particle_generator generator; + struct post_processor post_processor; + f32 time; + f32 shake_time; + struct powerup powerups[max_powerups]; + struct text_renderer text_renderer; +}; -extern game_t init_game(i32 width, i32 height); -extern void process_input(game_t *game); -extern void update_game(game_t *game, f32 dt); -extern void render_game(game_t game); +struct game init_game(i32 width, i32 height); +void process_input(struct game *game); +void update_game(struct game *game, f32 dt); +void render_game(struct game game); #endif -- cgit v1.2.3-70-g09d2