diff --git a/docs/hails-additions/PULL-REQUESTS.md b/docs/hails-additions/PULL-REQUESTS.md index fad9868d..e44b872c 100644 --- a/docs/hails-additions/PULL-REQUESTS.md +++ b/docs/hails-additions/PULL-REQUESTS.md @@ -8,13 +8,19 @@ verification, open questions). | PR | Type | Title | Documents | Fork commits | Depends on | Status | |---|---|---|---|---|---|---| -| A | Setup fix | Setup: ISO extraction argument order and Windows long paths | [01](01-iso-extraction.md), [02](02-long-paths.md) | `ea549ab`, `0a88f7a` | — | Ready to propose | -| B | Feature (input) | SDL3 gamepad input with XInput fallback | [03](03-sdl3-gamepad-input.md) | `3d485c8` | — | Ready to propose | -| C | Gameplay data | Authored map spawns and headings | [04](04-map-spawns.md) | `b495ed6`, `f00b329` | — | Ready to propose | -| D | Gameplay data | Skip collision volumes that have no surface IDs | [05](05-collision-volumes.md) | `dec7ade` | — | Ready to propose | -| E | Performance | Indexed stock collection lookups (game startup −5.5 s) | [07](07-collections-index.md) | `810defa` | — | Verified | -| F | Tooling | Streaming map validator (`--validate-maps`) wired into setup | [06](06-map-validator.md) | `18f41a3` | E (speed only) | Verified (full setup) | -| G | Performance (setup) | Skip decoding duplicate stream copies; run the customiser beside the maps; parallel clothing library and pro roster, plus a native RefPack DLL in `Build.ps1` | [08](08-setup-performance.md) | `8327e94` (+ overlap hunks of `install.py` in `18f41a3`) | — | Verified (full setup 466 → 331 s; customiser library 127 → 51 s, roster 90 → 16 s; outputs identical; one-time customiser rebuild) | +| A | Setup fix | Setup: ISO extraction argument order and Windows long paths | [01](01-iso-extraction.md), [02](02-long-paths.md) | `ea549ab`, `0a88f7a` | — | Draft upstream [#23](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/23) | +| B | Feature (input) | SDL3 gamepad input with XInput fallback | [03](03-sdl3-gamepad-input.md) | `3d485c8` | — | Draft upstream [#24](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/24) | +| C | Gameplay data | Authored map spawns and headings | [04](04-map-spawns.md) | `b495ed6`, `f00b329` | — | Draft upstream [#27](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/27) | +| D | Gameplay data | Skip collision volumes that have no surface IDs | [05](05-collision-volumes.md) | `dec7ade` | — | Draft upstream [#25](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/25) | +| E | Performance | Indexed stock collection lookups (game startup −5.5 s) | [07](07-collections-index.md) | `810defa` | — | Draft upstream [#26](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/26) | +| F | Tooling | Streaming map validator (`--validate-maps`) wired into setup | [06](06-map-validator.md) | `18f41a3` | E (speed only) | Draft upstream [#28](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/28) | +| G | Performance (setup) | Skip decoding duplicate stream copies; run the customiser beside the maps; parallel clothing library and pro roster, plus a native RefPack DLL in `Build.ps1` | [08](08-setup-performance.md) | `8327e94` (+ overlap hunks of `install.py` in `18f41a3`) | — | Draft upstream [#29](https://github.com/SK8-ENGINE/skate-3-rust-engine/pull/29) | + +Opened 2026-10-01 as drafts from per-PR branches cut from upstream `60efdef` +(code only; `docs/hails-additions` stays in the fork). #29 (G) is stacked on +#28 (F); in the upstream branches the customiser-overlap hunks of `install.py` +live in G, and each branch has its own equivalence pairs (F: maps main→F; +G: character/environment/maps from main and from F). Bodies: `.claude/pr-drafts/`. Notes for whoever opens them: diff --git a/mods/water-test-teleport/main.lua b/mods/water-test-teleport/main.lua new file mode 100644 index 00000000..943db4d6 --- /dev/null +++ b/mods/water-test-teleport/main.lua @@ -0,0 +1,35 @@ +-- Dev only (branch gameplay/water). F2/F3/F4 drop the skater 2 m above water +-- collision (centroids from `WATER_POINTS=1 cargo run -p skate-data --example +-- water_surfaces`). Shift+F2/F3/F4 stand on dry ground facing that water +-- (`WATER_VIEW=x,y,z[,reach,rise]`). The University spots only make sense on +-- University, the DownTown ones only on DownTown. F6 is the game's camera key. +local SPOTS = { + F2 = { + water = { label = "University fountain basin (water 67.94 m)", position = { 340.3, 69.94, -294.3 }, heading = 0 }, + view = { label = "University fountain basin, view", position = { 346.5, 68.53, -293.2 }, heading = -1.751 }, + }, + F3 = { + water = { label = "University reservoir (water 217.87 m)", position = { -156.3, 219.87, -1090.2 }, heading = 0 }, + view = { label = "University reservoir, view from the bank", position = { -171.8, 227.26, -1079.2 }, heading = 2.188 }, + }, + F4 = { + water = { label = "DownTown fountain (water 18.72 m)", position = { 44.3, 20.72, 241.5 }, heading = 0 }, + view = { label = "DownTown fountain, view", position = { 44.2, 19.49, 247.9 }, heading = 3.120 }, + }, +} +local held = {} + +return { + on_update = function() + local shift = sdk.input.down("ShiftLeft") == true or sdk.input.down("ShiftRight") == true + for key, spot in pairs(SPOTS) do + local down = sdk.input.down(key) == true + if down and not held[key] then + local target = shift and spot.view or spot.water + sdk.player.teleport({ position = target.position, heading = target.heading, velocity = { 0, 0, 0 } }) + sdk.ui.text("water-test", "Teleported: " .. target.label) + end + held[key] = down + end + end, +} diff --git a/mods/water-test-teleport/mod.json b/mods/water-test-teleport/mod.json new file mode 100644 index 00000000..e874e320 --- /dev/null +++ b/mods/water-test-teleport/mod.json @@ -0,0 +1,9 @@ +{ + "id": "dev-water-test-teleport", + "api": 2, + "name": "Water Test Teleport (dev)", + "version": "0.1.0", + "author": "Hails", + "description": "Dev only, for branch gameplay/water: F2 University fountain basin, F3 University reservoir, F4 DownTown fountain drop the skater into the water; Shift+F2/F3/F4 stand on dry ground facing it. F6 is the camera key.", + "entry": "main.lua" +}