Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
55 changes: 55 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,61 @@ The native shim's ABI is tracked separately by `b2Version()` (currently `4`).

### Added

- **Platformer: MULTI-KEY doors + a two-key puzzle in L2 (asset-expansion Phase C,
slice 3 - part 1).** `pfMakeKeyDoor` was single-instance (one door per level via
shared globals); it now appends to a per-door table, so a level can plant
several coloured key+door pairs. The hero carries a SET of keys (`gKeysHeld`,
shown in the HUD as `[KEYS yellow,blue]`); each key tags itself `uPfKeyWord` =
its colour, rides along the shoulder (fanned out when you hold several), and is
CONSUMED when it opens its own colour of door (`pfTickDoors` loops every door).
Single-door levels (L3's red door) are unchanged. **L2 "The Works"** now ends on
a **two-key lockgate** - its stone VAULT finale was extended (~5,884 -> ~6,312px)
into a proper corridor so the yellow gate, a stretch, the blue gate and the steps
are each their own beat (the first cut had the blue door embedded in the goal
step) - and gains coins to **25** (was 19).
Example-side only; gates clean, audit 0 findings.
- **Platformer: latching SWITCH-GATES + a switch puzzle in L2 (Phase C slice 3 -
part 2).** `pfMakeSwitchGate pSwitchX, pColour, pGateL` plants a floor/ledge
switch (`switch_<colour>`) and the coloured kinematic gate (`block_<colour>`)
it opens. Unlike `pfMakeGate`'s momentary pressure pad, it **latches**: step on
the switch once and the gate rises out of the way for good (`pfTickSwitchGates`
polls only-moving-bodies, then `gSwDone` idles it in one compare/frame). L2 gets
a **green switch-gate** - the gate bars the crusher alley until you climb to the
third-bay cloud and press the switch up there, a "find the switch" beat (both
the keys and the switch are `gToysOK`-gated, so a missing tiles sheet degrades to
an open run). Example-side only; gates clean, audit 0 findings. Slice 3 done.
- **Platformer: LEVEL 7 "STONE KEEP" expanded to a blade-and-warden gauntlet (the
length + variety pass, vertical edition).** The climbing tower roughly doubles
in height (1,280 -> ~2,300px, **8 -> 16 ledges**) and goes from 8 coins / 2
spinners to **~22 coins / 2 bonus gems** and a real bestiary - all chosen to
work in a *vertical* shaft (bats/ghosts/snails/mimics hardcode a horizontal
ground-y and were ruled out): **five sweeping spinners** guarding the climb gaps
(each verified standing-safe on both adjacent ledges), a **stationary
half-blade** (`pHalf`) on the final ledge, and three **wardens** on the wide
"fight" ledges - a `pfMakeSlime` to stomp, a `pfMakeFrog`, and a spike-slime to
dodge (the makers that take an explicit surface-y, so they ride the one-way
ledges). `pfDressWall` now tiles the taller shaft. Example-side only; the
geometry audit skips vertical levels, so the spinner safety + ledge spacing were
hand-verified (script gates clean, L1-L6 still 0 findings). **Needs the OXT
pass** (the vertical-only checks: walkers resting on one-way ledges, the
spike-slime leap, blade timing).
- **Platformer: LEVEL 5 "SCORCHED DUNES" expanded to a full three-act level (the
length + variety pass, second of the audit).** From 4,200px / 12 coins / 3 foes
to **~6,400px and 24 coins**, keeping Act 1 verbatim and appending two desert
acts across three thorn pits: **Act 2** a darting `fly` (mover), a second dune a
sand `pfMakeBoulder` rolls down at you (re-parks at 4160 so the landing bank
stays safe), a high sand-cloud route, a fire `pfMakeCritter` (no stomp) and a
second `pfMakeFrog`; **Act 3** a treasure `pfMakeMimic`, a second fly, a final
cloud route and a homeward snail to the summit. Three checkpoints (now using
the fixed multi-checkpoint path). Example-side only; geometry audit clean (it
caught a summit coin overlapping the flag - fixed), 0 findings across 7 levels.
- **Platformer: multi-checkpoint activation fix.** `pfMakeCheckpoint` tracked the
flag + its x in single globals that each call overwrote, and the sensor handler
banked that one x behind a one-time guard - so L6's three checkpoints left all
but the last dead (the first never lit, a later one stood pre-raised). Each flag
now carries its own respawn x (`uPfCheckX`) and a one-shot guard
(`uPfCheckDone`); touching a flag activates THAT flag and only ever advances the
respawn point. Single-checkpoint levels (L1-L4) are unchanged.
- **Platformer: LEVEL 6 "CAVERN DEPTHS" expanded to a full three-act level (the
length + variety pass).** The thinnest level (2,976px, 9 coins, 3 foes) grows
to **~6,400px and 24 coins** with a rich cave bestiary, keeping all of Act 1
Expand Down
11 changes: 10 additions & 1 deletion docs/asset-expansion-plan.md
Original file line number Diff line number Diff line change
Expand Up @@ -187,7 +187,16 @@ needs an OXT eye.
sweeping blades across the L1->L2 and L4->L5 climb gaps, standing-safe on the
adjacent ledges. `pHalf` provides the wall-mounted `spinnerHalf` for slice 3.
Gated on `gSpooksOK` (no `enemies.png` = safe). **Blade timing is the OXT feel-pass.**
- **Slice 3 — TODO:** the **multi-key / switch puzzles** — the keep's real identity.
- **Slice 3 — DONE (pending OXT):** the **multi-key / switch puzzles**, woven into
L2 "The Works" (L7 went vertical, so the puzzle wing lives in the machinery
level - switches/gates/keys fit a factory). *Part 1:* `pfMakeKeyDoor` generalised
to N coloured doors (a per-door table; the hero holds a `gKeysHeld` set, each key
`uPfKeyWord`-tagged and consumed at its door) - deployed as a **two-key lockgate**
(yellow + blue) ending L2, which also tops L2 to ~24 coins. *Part 2:*
`pfMakeSwitchGate` - a **latching** floor switch (`switch_<colour>`) that opens
its coloured kinematic gate (`block_<colour>`) for good - deployed as a **green
switch-gate** barring the crusher alley until you find + press the switch on the
third-bay cloud. Both gated on `gToysOK` (a missing tiles sheet = an open run).
- **Assets:** `terrain_stone_*` (full), `switch_{blue,green,red}(_pressed)`,
`key_{blue,green}`, `lock_{blue,green}`, `spinner*`/`spinnerHalf*`,
`block_strong_*`.
Expand Down
Loading
Loading