#ifndef GAME_H #define GAME_H #include "types.h" #include "input.h" #include "sprite.h" #include "level.h" #include "ball.h" #include "particle.h" #include "post_processor.h" #include "powerup.h" #include "text.h" enum game_state { game_active, game_menu, game_win }; #define max_powerups 4 #define max_levels 4 struct game { enum game_state state; i32 running; struct input input; i32 width, height; const char *bindir; 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; }; 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