summaryrefslogtreecommitdiff
path: root/in_practice/breakout/game.h
diff options
context:
space:
mode:
Diffstat (limited to 'in_practice/breakout/game.h')
-rw-r--r--in_practice/breakout/game.h43
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