#include #ifndef SCENES_H #define SCENES_H #define SCENE_STACK_SIZE 16 /// This structure represents a scene that is stored in a stack. /// The main appeal of this data type is dynamic creation of different /// scenes that don't depend on global state typedef struct { bool (*Update)(void *self); bool (*Draw)(void *self); void (*Deint)(void *self); /// A generic pointer to whatever data the scene needs. You will have to /// cast it yourself void *data; } Scene; bool InitSceneStack(); bool AddScene(Scene *newScene); void DeleteSceneFromStack(); bool DrawScene(); bool UpdateScene(); Scene *CreateMainMenu(); #endif // SCENES_H