summaryrefslogtreecommitdiff
path: root/src/scenes/scenes.h
diff options
context:
space:
mode:
authorPhysick <96335032+DegustatorPonos@users.noreply.github.com>2026-09-03 01:54:55 +0500
committerPhysick <96335032+DegustatorPonos@users.noreply.github.com>2026-09-03 01:54:55 +0500
commit2f811f69c13c3ad9b05d15e6510192a7dde95c71 (patch)
treef65eda3ceef69243de609560c24538e9bf38c7b1 /src/scenes/scenes.h
parentda295397942073453ed9f82cc88dafd083d4c782 (diff)
scene reopen API
Diffstat (limited to 'src/scenes/scenes.h')
-rw-r--r--src/scenes/scenes.h13
1 files changed, 11 insertions, 2 deletions
diff --git a/src/scenes/scenes.h b/src/scenes/scenes.h
index f4ba579..3c420d3 100644
--- a/src/scenes/scenes.h
+++ b/src/scenes/scenes.h
@@ -7,12 +7,18 @@
#define SCENE_STACK_SIZE 16
typedef enum {
+ /// The full screen blackout
POPUP_REVEALING,
- POPUP_REVEALING_ALT,
+ /// The popup of a transparent scene
+ POPUP_REVEALING_OVERLAY,
+ /// The scene is actively rendered
POPUP_ACTIVE,
+ /// The full screen blackout
POPUP_HIDING,
- POPUP_HIDING_ALT,
+ /// The popup of a transparent scene
+ POPUP_HIDING_OVERLAY,
} PopUpState;
+
static const int SCROLL_SPEED = 8;
static const int BLACKOUT_SPEED = 3;
@@ -23,6 +29,9 @@ typedef struct {
bool (*Update)(void *self);
bool (*Draw)(void *self);
void (*Deint)(void *self);
+ /// Is called when the scene becomes active after the next scene was popped
+ void (*Reopen)(void *self, PopUpState PreviousSceneState);
+ PopUpState (*GetCurrentState)(void *self);
/// A generic pointer to whatever data the scene needs. You will have to
/// cast it yourself
void *data;