Fix level-select dropdown loading into game instead of editor
Some checks failed
CI / build (pull_request) Failing after 0s
Deploy / deploy (push) Has been cancelled

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) <noreply@anthropic.com>
This commit was merged in pull request #17.
This commit is contained in:
2026-03-16 10:50:51 +00:00
parent 4bef8f37b4
commit 58bf89f2f2

View File

@@ -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;