From 8b79b8149d1e23d90b5871f980aec65d8aa7ae23 Mon Sep 17 00:00:00 2001 From: physick Date: Wed, 15 Jul 2026 17:46:13 +0500 Subject: Puzzle infrastructure pt 1. --- src/scenes/puzzleScene.c | 25 ++++++++++++++++++------- 1 file changed, 18 insertions(+), 7 deletions(-) (limited to 'src/scenes/puzzleScene.c') diff --git a/src/scenes/puzzleScene.c b/src/scenes/puzzleScene.c index 5590bb8..57ac15d 100644 --- a/src/scenes/puzzleScene.c +++ b/src/scenes/puzzleScene.c @@ -72,7 +72,7 @@ bool drawPuzzleScene(void *self) { // return true; Rectangle pane1, pane2; - GetPanesSplit(&pane1, &pane2, body, 0.5, 0.4); + GetPanesSplit(&pane1, &pane2, body, 0.35, 0.4); DrawRecBordered(pane1, WHITE, COLORSCHEME_ORANGE, BORDER); DrawRecBordered(pane2, WHITE, COLORSCHEME_ORANGE, BORDER); @@ -85,12 +85,19 @@ bool drawPuzzleScene(void *self) { bool updatePuzzleScene(void *self) { puzzleSceneData *data = ((Scene *)self)->data; - HandleKeyboard(data->EditorInfo); + + Rectangle body = GetBodyRect(); + Rectangle pane1, pane2; + GetPanesSplit(&pane1, &pane2, body, 0.35, 0.4); + UpdateTextArea(data->EditorInfo, pane2); + if (IsKeyPressed(KEY_F5)) { - char *txt = GetText(data->EditorInfo); - char *outp = EvaluateScript(txt); - free(txt); - AddScene(CreateResultView(outp)); + char *script = GetText(data->EditorInfo); + // char *outp = EvaluateScript(txt); + // free(txt); + // AddScene(CreateResultView(outp)); + SubmitionResult *res = SubmitSolution(data->PuzzlePtr, script); + AddScene(CreateResultView(res)); } return true; @@ -122,8 +129,12 @@ Scene *CreatePuzzleScene(Puzzle *puzzle) { EditorDisplayParams->scroll_h = 0; EditorDisplayParams->scroll_v = 0; } - data->EditorInfo = CreateTextArea(EditorDisplayParams); + if (puzzle->InitialCode != NULL) { + data->EditorInfo = CreateTextAreaFromText(EditorDisplayParams, puzzle->InitialCode); + } else { + data->EditorInfo = CreateTextArea(EditorDisplayParams); + } outp->data = data; return outp; -- cgit v1.3