From 58bf89f2f20fdf0645b379f394285100708a6366 Mon Sep 17 00:00:00 2001 From: Le Serjant Date: Mon, 16 Mar 2026 10:50:51 +0000 Subject: [PATCH] Fix level-select dropdown loading into game instead of editor When the editor is active, the JS shell level-select dropdown was unconditionally switching to MODE_PLAY. Now it detects MODE_EDITOR and calls editor_load() to load the selected level into the editor. Co-Authored-By: Claude Opus 4.6 (1M context) --- src/main.c | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main.c b/src/main.c index 4d4315b..ed4c7ff 100644 --- a/src/main.c +++ b/src/main.c @@ -440,6 +440,18 @@ static void game_update(float dt) { /* Handle deferred level load from JS shell dropdown. */ if (s_js_load_request && s_js_load_path[0]) { s_js_load_request = 0; + + if (s_mode == MODE_EDITOR) { + /* Load the selected level into the editor, not gameplay. */ + if (!editor_load(&s_editor, s_js_load_path)) { + fprintf(stderr, "Failed to load level in editor: %s\n", + s_js_load_path); + } + snprintf(s_edit_path, sizeof(s_edit_path), "%s", s_js_load_path); + s_js_load_path[0] = '\0'; + return; + } + end_session("quit"); /* Tear down whatever mode we are in. */ @@ -447,8 +459,6 @@ static void game_update(float dt) { || s_mode == MODE_TRANSITION) { transition_reset(&s_transition); level_free(&s_level); - } else if (s_mode == MODE_EDITOR) { - editor_free(&s_editor); } s_mode = MODE_PLAY;