docs: file #185 - local player jams half-way up outdoor stairs (house on stilts)
This commit is contained in:
parent
bd632f6f6d
commit
29e01c3829
1 changed files with 47 additions and 0 deletions
|
|
@ -46,6 +46,53 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #185 — LOCAL player jams half-way up outdoor stairs (house on stilts); a jump clears it
|
||||
|
||||
**Status:** OPEN (investigated, root cause characterised — NOT yet fixed; a fix touches the frozen collision internals → brainstorm gate first)
|
||||
**Severity:** MEDIUM
|
||||
**Filed:** 2026-07-08
|
||||
**Component:** physics / collision (building/stair BSP + step-up vs slide classification)
|
||||
|
||||
**Description:** Running the LOCAL player up the outside stairs of a house-on-stilts, you hit
|
||||
an invisible block **half-way up** that you cannot walk through — you shuffle sideways but
|
||||
never advance. **Jumping clears it** and you continue up normally. Pre-existing (observed
|
||||
before the #184 work); unrelated to the remote de-overlap thread. Building object
|
||||
`0xf6822103`, landblock `0xf682`, jam at world ≈ (132, 77.8, 61.4), cell `0xF682002C`.
|
||||
|
||||
**Root cause / status (from `ACDREAM_CAPTURE_RESOLVE` at the jam):** The staircase is a
|
||||
fairly uniform ~0.4 m-rise / **38.7°** flight of tilted tread faces (`n=(0,-0.62,0.78)`),
|
||||
which is under the ~49° walkable cutoff, so the player *glides* straight up it (long
|
||||
no-collision stretches; the wireframe shows discrete stacked step faces). At **one junction
|
||||
(~Z 61.4)** there is an anomalous **~52° face** (`collisionNormal=(0,0.78,0.62)`, constant
|
||||
across every stuck frame → a real stable face, NOT the #137 synthetic-negated-run-direction
|
||||
normal). 52° is just past the walkable cutoff, so the sweep treats it as a **wall**: it
|
||||
**flattens that normal to a pure-horizontal `(0,1,0)` sliding normal** (Z zeroed) and slides
|
||||
the player sideways in X, pinning Y+Z — instead of recognising it as a normal ~0.4 m **step**
|
||||
and stepping the player up onto the next tread. The jump clears it because the jump's +Z
|
||||
velocity is not in the horizontal `(0,1,0)` slide plane. The staircase continues climbable
|
||||
above the jam (more 38.7° treads → a flat porch at Z 63.6) — so it is ONE localised spot,
|
||||
not a general stair failure. Classic **#137 / building-collision-mesh junction-anomaly family**
|
||||
(TS-4 sliding-normal-provenance), stair edition.
|
||||
|
||||
**Open question (decides mesh-artifact vs faithful):** is that 52° face **real dat geometry**
|
||||
of object `0xf6822103` or a **mesh-generation artifact** at a BSP-leaf / sub-object junction
|
||||
on our side? The capture only records treads the player STOOD on, so it can't show the jam
|
||||
face's own extent or the tread directly above it. Decisive next read: dump `0xf6822103`'s
|
||||
collision faces (`ACDREAM_DUMP_GFXOBJS`, or resolve its GfxObj/Setup and decode the BSP) and
|
||||
check for a spurious ~52° face where a 38.7° continuation should be. If the step to the next
|
||||
tread is ≤ 0.6 m (the step-up budget; it looks ~0.4 m), step-up SHOULD lift the player → bug
|
||||
in step-up-vs-wall classification for a just-over-walkable face.
|
||||
|
||||
**Files:** `src/AcDream.Core/Physics/TransitionTypes.cs` (step-up / slide classification, the
|
||||
sliding-normal horizontalisation); building-collision mesh generation (BSP faces for
|
||||
landblock stabs). Capture apparatus: `ACDREAM_CAPTURE_RESOLVE`.
|
||||
|
||||
**Acceptance:** the LOCAL player walks up the full outdoor staircase of the house-on-stilts
|
||||
without jumping; no sideways-slide pin at the ~Z 61.4 junction; regression pass on other
|
||||
stairs/ramps (indoor + outdoor) — no new phantom blocks.
|
||||
|
||||
---
|
||||
|
||||
## #184 — [DONE 2026-07-08 · `37a94e1f`+`f51c1dff`+`e1ac56cc`+`ddb5a967`] Remote monsters overlap (arms interpenetrating) in a crowd; retail barely overlaps
|
||||
|
||||
**Status:** CLOSED 2026-07-08 — all four slices shipped + both visual gates passed. Slices 1+3
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue