tool paths configurable by environment (LLAMAMOD_CD, LAMA_WINEPREFIX, LAMA_MOD, APPTEST_ROOT, APPTEST_ISO; tools/lamapaths.py), music tracks without a file on the cd marked in the editor and the tutorial uses kronk, levelbuild.py accepts the english texture names
This commit is contained in:
1 parent
a0d961357e
commit
6d449257a7
21 files changed
+153
-44
No files matched your search
+2
-2
@@ -21,8 +21,8 @@ java -jar build/libs/llamamod-*-all.jar --editor # the editor alone
|
||||
Details (jlink, launch4j, editions, version and build id): [notes/llamamod-app.md](../notes/llamamod-app.md#build).
|
||||
|
||||
**Tests that need the game.** Golden and in-game-data tests read the CD folder given by
|
||||
`-Dllamamod.cd=<…/Setup/<lang>/Cd>` (default: the author's Wine setup); without it they are
|
||||
skipped. Byte-exact round trips over all level WADs (WAD, TRAK, MAP, TEXT, strat code) are the
|
||||
`-Dllamamod.cd=<…/Setup/<lang>/Cd>` or the environment variable `LLAMAMOD_CD` (default:
|
||||
`~/.wine-lama/iso-dk/Setup/Eng/Cd`); if that folder does not exist they are skipped. Byte-exact round trips over all level WADs (WAD, TRAK, MAP, TEXT, strat code) are the
|
||||
safety net for every format change.
|
||||
|
||||
## Code map
|
||||
|
||||
@@ -43,10 +43,14 @@ Building blocks: `floor`, `box`, `platform`, `pillar`, `ramp`, `stairs`, `fence`
|
||||
`quad`, `collider`, `obj` (an OBJ file), `height_at`. The exit needs a floor with collision
|
||||
material 16 in its cell – the test world uses `box(..., mat=16)` under the door.
|
||||
|
||||
The Python tools have a few **hard-coded paths** at the top of the scripts (`WADS`, `MODWAD` in
|
||||
`levelbuild.py`, `CD_WADS` in `debugviz.py`, `PREFIX` in `lamatest.py`) that point into the original
|
||||
author's Wine setup; use `--base <cd>/wads/t1l1m001.wad` or adjust them. `--install` only works with
|
||||
that setup – with LlamaMod, use a Java level or the editor instead.
|
||||
**Texture names**: the Python builder's own names are German (`gras`, `stein`, `erde`, `platte`,
|
||||
`meer` …, list: `--textures`); the English names of the Java builder (`grass`, `stone`, `earth`,
|
||||
`slab`, `sea` …) work as well and give the same result.
|
||||
|
||||
The base level is `t1l1m001.wad` in the CD folder `$LLAMAMOD_CD/wads` (default
|
||||
`~/.wine-lama/iso-dk/Setup/Eng/Cd`), or `--base <file>`. `--install` copies the WAD into the TestLevel
|
||||
mod of a hand-made Wine setup (`$LAMA_WINEPREFIX/mods/testlevel`, default `~/.wine-lama`) – with
|
||||
LlamaMod, use a Java level or the editor instead. All variables: [Tools: Paths](../tools.md#paths).
|
||||
|
||||
## A Java level
|
||||
|
||||
|
||||
@@ -113,7 +113,7 @@ Colour pickers update the viewport live while you pick; the whole pick is one un
|
||||
|
||||
| Field | Meaning |
|
||||
|---|---|
|
||||
| **Music** | Track started when the zone becomes active (`music/<name>.ASF`): VILLAGE, JUNGLE1, RIVER, CITY, CATACOMB, LAB, BALLOON, KRONK, VICTORY … *0 – (none)* stops the music. |
|
||||
| **Music** | Track started when the zone becomes active (`music/<name>.ASF`): VILLAGE, JUNGLE1, RIVER, CITY, CATACOMB, LAB, BALLOON, KRONK, VICTORY … *0 – (none)* stops the music. Tracks marked *(no file on the CD)* have no music file (on the German CD) – pick another one. |
|
||||
| **Sky model** | The object model drawn as the sky dome (one of the sky models used in this level), or none. |
|
||||
| **Sky yaw** | Turns the sky dome. |
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ The start of the level uses the **start zone**:
|
||||
4. In the Inspector, click **Fog / sky colour** and choose a new colour – for example a soft
|
||||
orange for an evening mood. The viewport follows while you pick.
|
||||
5. Lower **End (Max)** a little for a denser fog.
|
||||
6. Under **Music & sky**, choose another **Music** track, for example `PUZZLE2`.
|
||||
6. Under **Music & sky**, choose another **Music** track, for example `22 – KRONK`.
|
||||
|
||||
The village houses have their own zones (one per door), so the inside of a house keeps its
|
||||
original fog. See [Environment](12-environment.md) for every field.
|
||||
|
||||
@@ -30,7 +30,7 @@ The id table, as used by the editor's zone inspector
|
||||
| 9 | TITLE | 19 | RIVRACE | 29 | CITYPUZZ | 39 | ENDGAME |
|
||||
|
||||
Four names (GAMEOVER, TALLY, PUZZLE2, PLATFORM) have no `.asf` file on the German CD; what the
|
||||
game plays for them (probably nothing) was not checked.
|
||||
game plays for them (probably nothing) was not checked. The editor marks them *(no file on the CD)*.
|
||||
|
||||
**Changing the music of a level** works today: pick another id for the start zone (or any zone)
|
||||
in the editor's *Environment* panel ([manual: Environment](../manual/12-environment.md),
|
||||
|
||||
+18
-4
@@ -82,8 +82,22 @@ The reverse-engineering toolkit the project started with. Python 3.8+ with `nump
|
||||
Level scripts in [`levels/`](../levels/): `testwelt.py` (the original test world),
|
||||
`sprunglabor.py` (jump lab used to measure the llama), `testwelt_parkour.seq` (scripted run).
|
||||
|
||||
Several scripts have **hard-coded paths** to the original author's Wine setup at the top (see
|
||||
[Levels from scripts](guide/levels-in-code.md#a-python-level)).
|
||||
### Paths
|
||||
|
||||
The tools find the original game files through these environment variables
|
||||
([`tools/lamapaths.py`](../tools/lamapaths.py)); the defaults match a hand-made Wine setup.
|
||||
Command-line options (`--base`, `--src`, `--root`, `--iso`) win over them.
|
||||
|
||||
| Variable | Used by | Default |
|
||||
|---|---|---|
|
||||
| `LLAMAMOD_CD` | `levelbuild.py`, `debugviz.py`, `debugviz_check.py`, Gradle tests (`-Dllamamod.cd`) | `$LAMA_WINEPREFIX/iso-dk/Setup/Eng/Cd` – the CD folder (`wads/`, `music/`, `*.cor`) |
|
||||
| `LAMA_WINEPREFIX` | `lamatest.py`, `levelbuild.py --install` | `~/.wine-lama` |
|
||||
| `LAMA_MOD` | `lamatest.py` | `~/.local/bin/lama-mod`, else `tools/lama-mod` |
|
||||
| `APPTEST_ROOT` | `apptest.py` (session folders) | `$CLAUDE_JOB_DIR/tmp` if set, else `~/.cache/llamamod-apptest` |
|
||||
| `APPTEST_ISO` | `apptest.py` (first install) | `~/Downloads/GROOVE_DK.iso` |
|
||||
| `LAMATEST_DIR` | `lamatest.py` (state, logs) | `/tmp/lamatest-$USER` |
|
||||
|
||||
A missing folder stops the tool with a message naming the variable to set.
|
||||
|
||||
## Testing in the game
|
||||
|
||||
@@ -93,8 +107,8 @@ Several scripts have **hard-coded paths** to the original author's Wine setup at
|
||||
| [`tools/lamatest.py`](../tools/lamatest.py) | the older harness for a hand-made Wine setup: loads a WAD as TestLevel and runs a key sequence | [notes/testharness.md](../notes/testharness.md) |
|
||||
|
||||
Linux only; needs Wine, Xvfb, xdotool, ImageMagick, tesseract (German data, for reading menu
|
||||
texts) and PulseAudio. `apptest.py` defaults to a session root inside the author's job folder –
|
||||
set `APPTEST_ROOT`.
|
||||
texts) and PulseAudio. Session folders and the ISO: `APPTEST_ROOT`, `APPTEST_ISO` (see
|
||||
[Paths](#paths)).
|
||||
|
||||
```bash
|
||||
./gradlew fatJar
|
||||
|
||||
Reference in new issue
Block a user