initial commit: llamamod 0.2.0 – reverse-engineered level formats (wad, map, trak, text, stpc), python tools and notes, java mod manager (iso install, mod pipeline with exe patching, save editor, wine/windows launcher) with mods (test world, debug wireframe, mirror, randomizer, fog, cheats, intro skip, practice, free camera, boot to level, level projects) and the 3d level editor (geometry, objects, cross-world import, environment, textures, play-test, manual)
This commit is contained in:
commit
b36a366240
826 files changed
+105304
No files matched your search
@@ -0,0 +1,54 @@
|
||||
# Level projects as mods (`mods.levels`, category LEVELS)
|
||||
|
||||
Every `.llamalevel` file (format: `notes/editor-format.md`) in `<data>/levels/` is a mod.
|
||||
Code: `mods/levels/LevelProjectSource` (a `ModSource`), `LevelProjectMod`, `LevelProjects`
|
||||
(folder, `importFile` for an "Import level…" button), `LoadingPicture`, `EditorCli`.
|
||||
|
||||
| | |
|
||||
|---|---|
|
||||
| id | `level-<file name>` (lower case, non-alphanumerics → `-`) |
|
||||
| name / description | level name, description and author from the project |
|
||||
| version | first 16 hex digits of the file's SHA-256 (any change of the file rebuilds) |
|
||||
| order | 60: after Test World (50, chapter 1), before Mirror (75) and the debug view (100), so those also apply to the level |
|
||||
| option `chapter` (new levels only) | TestLevel (world 9) chapter 1..49; default = the project's `targetChapter`, or the next free one (from 2) if another project already uses it |
|
||||
|
||||
Apply: the project is loaded against the **pristine** CD (`ctx.originalCd()`), built with
|
||||
`editor.io.WadBuilder` and written to `wads/T1L9M0nn.wad` (new levels) or `wads/<base>.wad`
|
||||
(edited originals). New levels also get a loading picture `T19<n>.COR` (thumbnail if present,
|
||||
level name, "TestLevel – chapter n"). If the target was already changed by an earlier mod (Test
|
||||
World on chapter 1, another level on the same chapter, two edits of one original level), the apply
|
||||
stops with a clear message naming the file and what to do.
|
||||
|
||||
World 9: `ModManager.world9Fixup` now also works when only a chapter other than 1 is provided:
|
||||
the lowest provided chapter fills all missing chapters 1..49 (the map crashes on a missing
|
||||
chapter WAD), loading pictures as before. To play chapter n: unlock it in the save editor (or
|
||||
`--unlock <slot> 9 <n> --cursor`), then select it on the world-9 map.
|
||||
|
||||
CLI (`EditorCli`): `--editor-import`, `--editor-new`, `--editor-build`, `--import-level`, see
|
||||
editor-format.md. The registry reads the folder when it is created (restart the app / create a
|
||||
new `ModRegistry` after importing).
|
||||
|
||||
## Verified in game (apptest, display :7, Wine 6, 2026-11-06)
|
||||
|
||||
* **Original imported → project → built** (`--editor-import t1l1m001`, mod `level-village`): the
|
||||
WAD in cd-active is byte-identical to the CD file; Village 1 loads and plays (intro, Pacha).
|
||||
* **Edited original** (`level-village-edited`: three coins moved, coins, charge boosters and three
|
||||
CheckPointPosts added): loads and plays; the added post stands where placed (3 cells ahead of
|
||||
the start, `img/mods/levels_01_village_edit.jpg`), the moved coins appear at their new places,
|
||||
added coins are collected (coin HUD). Note: in Village 1 the coins and other objects within ~3
|
||||
cells of the start are not visible at the start (also in the original), so edits there are
|
||||
hard to see.
|
||||
* **New level from brushes** (`examples/testwelt.llamalevel` → `level-testwelt`, chapter 2):
|
||||
loads from the world-9 map (slot shows "TestLevel Kapitel 2"), generated loading picture, plaza,
|
||||
gallery objects, walking (`img/mods/levels_02_testwelt_chapter2.jpg`). Its geometry, objects,
|
||||
waypoints and textures equal the Test World mod's WAD (unit test; only the generated death plane
|
||||
model differs).
|
||||
* **Mesh and texture import** (testwelt + an OBJ box with a PNG texture via MTL, a block with an
|
||||
imported PNG texture, chapter 3): both render with their textures, the mesh has collision
|
||||
(`img/mods/levels_03_mesh_import.jpg`).
|
||||
|
||||
## Known limits
|
||||
|
||||
* Exit doors (LevelDoor) keep their parameters; the test world's door leads to (1,9,1) = chapter 1
|
||||
(which then is a copy of the lowest provided chapter if no other mod provides it).
|
||||
* New ModRegistry instances are needed to see newly imported projects.
|
||||
Reference in new issue
Block a user