diff options
Diffstat (limited to 'in_practice/breakout/game.h')
-rw-r--r-- | in_practice/breakout/game.h | 43 |
1 files changed, 29 insertions, 14 deletions
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 |