From 00b2880d67bffbe599a08ef8ee6dfd1c9980777a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Elias=20M=C3=BCller?= Date: Sat, 7 Nov 2026 15:52:00 +0100 Subject: [PATCH] base exe patch moves the per-chapter coin and flag arrays into free .data space (128 entries), so every testlevel chapter is safe (revision 2, caches rebuilt once); new projects start on a free chapter from 32, manual shows number ranges, texture swatch caches follow texture edits, stray levelbau.md.orig removed --- CHANGELOG.md | 2 + docs/manual/18-mods.md | 2 +- notes/img/mods/testlevel_ch9_fixed.jpg | Bin 0 -> 33271 bytes notes/levelbau.md.orig | 306 ------------------ notes/llamamod-app.md | 9 +- notes/testlevel-chapters.md | 54 +++- .../llamamod/editor/io/Templates.java | 3 +- .../editor/tools/geometry/GeoWidgets.java | 21 ++ .../editor/tools/help/ManualContent.java | 35 +- .../llamamod/editor/ui/NewLevelDialog.java | 23 +- .../llamamod/mods/ModManager.java | 6 +- .../llamamod/mods/levels/EditorCli.java | 4 + .../llamamod/mods/levels/LevelProjects.java | 22 ++ .../llamamod/platform/ExePatcher.java | 93 +++++- .../llamamod/platform/Installer.java | 2 +- .../llamamod/save/TestLevelChapters.java | 5 +- .../tools/geometry/GeoWidgetsCacheTest.java | 45 +++ .../editor/tools/help/ManualTest.java | 15 + .../llamamod/exe/ExeImageTest.java | 6 +- .../llamamod/mods/ExeModCombinationsTest.java | 3 +- .../llamamod/mods/ModOptionsAndExeTest.java | 2 +- .../mods/levels/LevelProjectModTest.java | 11 + .../llamamod/platform/ExePatcherTest.java | 69 +++- .../llamamod/platform/IsoVariantsTest.java | 2 +- 24 files changed, 376 insertions(+), 364 deletions(-) create mode 100644 notes/img/mods/testlevel_ch9_fixed.jpg delete mode 100644 notes/levelbau.md.orig create mode 100644 src/test/java/com/eliasmueller/llamamod/editor/tools/geometry/GeoWidgetsCacheTest.java diff --git a/CHANGELOG.md b/CHANGELOG.md index 2015a8b..9ea6bd9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -36,6 +36,8 @@ There are two downloads: **full** (launcher + level editor) and **launcher** (mo - **New levels and the Alligator Arena only use TestLevel chapters 1 and 32–49.** On other chapters the game stored the level's coins over your progress and other game data (chapter 9 broke the world map). Levels and settings on old chapters move to a free one automatically. + The game itself is fixed too: picking an empty TestLevel chapter on the world map (or in + Boot to level) no longer damages your progress. - The level tally shows the real coin and secret totals of new levels, the Test World and the arena instead of the Village's "55". - **Save games** diff --git a/docs/manual/18-mods.md b/docs/manual/18-mods.md index 9ddb0ff..41bfd18 100644 --- a/docs/manual/18-mods.md +++ b/docs/manual/18-mods.md @@ -107,7 +107,7 @@ A minigame on a TestLevel chapter: alligators come in waves into a walled pit. E | Waves | 1 – 5 | 3 | Wave n brings n alligators (at most 2 at once). | | Llama energy | 1 – 5 | 4 | Energy cap of the llama in the arena (5 = normal). | | Coins per hit | 0 – 5 | 1 | Coins that pop out per hit (5 more at the end). | -| TestLevel chapter | 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 | 49 | Chapter of world 9 the arena replaces (32–49; chapter 1 is the Test World's). | +| TestLevel chapter | 32 – 49 | 49 | Chapter of world 9 the arena replaces (32–49; chapter 1 is the Test World's). | #### Test World diff --git a/notes/img/mods/testlevel_ch9_fixed.jpg b/notes/img/mods/testlevel_ch9_fixed.jpg new file mode 100644 index 0000000000000000000000000000000000000000..46261cd7d58c1608667da98c4dc6748a50f8c065 GIT binary patch literal 33271 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 b_tl;zgzuSOqk#cG