From 2ab411c4b8855d11d48454a93262e8eae3ba7fc7 Mon Sep 17 00:00:00 2001 From: quou Date: Sat, 6 May 2023 09:02:04 +1000 Subject: Menus, game over, dying, etc. --- game.h | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 game.h (limited to 'game.h') diff --git a/game.h b/game.h new file mode 100644 index 0000000..6562673 --- /dev/null +++ b/game.h @@ -0,0 +1,36 @@ +#ifndef game_h +#define game_h + +#include "world.h" +#include "menu.h" + +typedef enum { + game_state_menu = 0, + game_state_game, + game_state_credits, + game_state_dead +} Game_State; + +typedef struct Game Game; + +typedef struct { + void (*state_init)(Game* game); + void (*state_update)(Game* game); + void (*state_deinit)(Game* game); +} Game_State_Fns; + +struct Game { + const Game_State_Fns* fns; + Game_State state; + Menu menu; + + World world; +}; + +void game_init(Game* game, Game_State state); +void game_update(Game* game); +void game_deinit(Game* game); + +void game_change_state(Game* game, Game_State state); + +#endif -- cgit v1.2.3-54-g00ecf