launcher: notice when an interrupted apply was finished or rolled back (retries while another window applies), windows take over config changes made in another window, hints and settings wrap at the minimum window size, data paths with .. cleaned up, boot-to-level starts bound to their level (ignored for other levels)

This commit is contained in:
MineTec committed 2026-11-07 12:48:43 +01:00
1 parent 8b78958306
commit c4fa500198
30 files changed
+695 -102

No files matched your search

+10 -1
View File
@@ -10,7 +10,16 @@ no world map. Used by the level editor's Play button (details, offsets and tests
| `slot` | 3 | save slot the game plays with (new game if empty) |
| `logos` | on | skip logo movies and title screen (skipped if intro-skip already patched them) |
| `quitOnEscape` | off | Escape (pause) ends the game at once through the normal exit path |
| `start` | empty | "x, y, z[, yaw]" in cells: moves the level's player start (WAD rebuild) |
| `start` | empty | "x, y, z[, yaw][ @ world/chapter]" in cells: moves the level's player start (WAD rebuild) |
**Start bound to a level** (2026-11-07): a start with "@ world/chapter"
(`BootToLevelMod.formatStart(world, chapter, …)`) is used only while `world`/`chapter` name that
level; for any other level it is ignored with a progress note ("Player start ignored: it was set
for world W chapter C") instead of failing with "no collision floor" (a play-test whose restore
never ran left its start in config.json, and every later apply for another level failed). A start
without "@" applies to whatever level is chosen (old configs, hand-typed values) and is still
checked strictly. Tests: `BootToLevelModTest.startOfAnotherLevelIsIgnored`, `parsesStartLevel`.
The editor's play-test (`PlaytestRunner.install`) should write the bound form – see the report.
Patches: `jmp` at 0x549C50 (main-menu frame handler) → once: read slots (FUN_0041c0e0), load
slot (FUN_0041cc70), set tribe/world/chapter/map 0x584EB4…, music shutdown, state 0x5846E4 = 3,