diff options
Diffstat (limited to 'src/scenes/puzzlePreviewScene.c')
| -rw-r--r-- | src/scenes/puzzlePreviewScene.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/src/scenes/puzzlePreviewScene.c b/src/scenes/puzzlePreviewScene.c index 6ce3ba7..27b0541 100644 --- a/src/scenes/puzzlePreviewScene.c +++ b/src/scenes/puzzlePreviewScene.c @@ -34,7 +34,14 @@ void closePreviewWindow(Scene *self) { if (self == NULL) return; puzzlePreviewData *data = ((Scene *)self)->data; if (data == NULL) return; - data->state = POPUP_HIDING_ALT; + data->state = POPUP_HIDING_OVERLAY; +} + +static PopUpState getCurrentState(void *self) { + if (self == NULL || ((Scene *)self)->data == NULL) + return POPUP_ACTIVE; + puzzlePreviewData *data = ((Scene *)self)->data; + return data->state; } bool updatePuzzlePreview(void *self) { @@ -48,7 +55,7 @@ bool updatePuzzlePreview(void *self) { } return true; - case POPUP_HIDING_ALT: + case POPUP_HIDING_OVERLAY: data->scroll_up -= SCROLL_SPEED * GetFrameTime(); if (data->scroll_up <= 0) { if (data->puzzle != NULL) FreePuzzle(data->puzzle); @@ -158,6 +165,9 @@ Scene *CreatePuzzlePreview(Puzzle *puzzle) { outp->Deint = deinitPuzzlePreview; outp->IsTransparent = true; + outp->GetCurrentState = getCurrentState; + outp->Reopen = NULL; + puzzlePreviewData *data = malloc(sizeof(puzzlePreviewData)); if (data == NULL) { free(outp); |
