summaryrefslogtreecommitdiff
path: root/src/scenes/puzzleScene.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/scenes/puzzleScene.c')
-rw-r--r--src/scenes/puzzleScene.c25
1 files changed, 18 insertions, 7 deletions
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;