docs: file #111 - ACE-mutated indoor restores start outdoor-classified (transparent until door-press); evidence + retail fix direction
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
e4f6750e09
commit
383af0ab5f
1 changed files with 44 additions and 0 deletions
|
|
@ -3709,6 +3709,50 @@ stable now; this is a draw-order/depth oscillation localized to the door surface
|
|||
|
||||
---
|
||||
|
||||
## #111 — Indoor login from an ACE-mutated restore starts outdoor-classified (transparent interior until door-press)
|
||||
|
||||
**Status:** OPEN
|
||||
**Severity:** MEDIUM (UX; no wedge — always controllable, heals on door-press)
|
||||
**Filed:** 2026-06-10 (split out of #107's gate runs)
|
||||
**Component:** physics / player snap (grounding) + membership lateral recovery
|
||||
|
||||
**Symptom (user-gated ×3, wedge-107-gate3/4/5 logs):** logging in indoors, the
|
||||
interior renders transparent (walls see-through, own char invisible) until the
|
||||
player presses into the DOORWAY, which promotes membership into the proper room
|
||||
and everything renders. Collision works throughout. "It feels like I'm logging
|
||||
in a step up" — correct: ACE restores the player ~1 m above the floor (or 1.8 m
|
||||
below, in the cellar volume).
|
||||
|
||||
**Mechanism (fully evidenced):** ACE does not persist our reported (cell, pos)
|
||||
pair — `GameActionAutonomousPosition.Handle` → `SetRequestedLocation` feeds
|
||||
ACE's SERVER-SIDE physics player, and the logout save is ACE's physics state:
|
||||
same XY as ours verbatim, but ACE's own Z + cell (observed: claim 0x172 z=95.0;
|
||||
claim 0x147 z=92.226 cellar; claim 0x14F z=94.85 — stacked volumes under/over
|
||||
the room 0x171 the user actually stood in at z=94.0). Our entry snap
|
||||
(PhysicsEngine.Resolve + retail AdjustPosition, #107) validates the claim at
|
||||
the RESTORED point — geometrically valid for the lofted/sunk point — but never
|
||||
GROUNDS and re-validates: the first movement drops the player to the floor
|
||||
where the stacked claim no longer contains them → the pick (correctly
|
||||
portal-local, P1-validated) cannot laterally recover the 2-hop room → demote
|
||||
to outdoor INSIDE the building → render (downstream of membership) draws the
|
||||
outdoor flood → transparent interior until the doorway portal promotes.
|
||||
|
||||
**Fix direction (retail-anchored):** retail `SetPositionInternal` does NOT
|
||||
commit the raw restored position — after AdjustPosition it runs
|
||||
`CheckPositionInternal → CTransition::find_valid_position` (:283426, :280070),
|
||||
settling the sphere onto valid floor BEFORE committing, then stores the
|
||||
SETTLED position. Port shape: at the snap, ground the position (floor under
|
||||
the point within the claim's visible graph), re-run AdjustPosition at the
|
||||
settled foot-center (for the gate-5 case: z 95.0→94.0, then 0x172's stab list
|
||||
corrects to 0x171), commit the corrected pair. ⚠️ Open sub-question: the
|
||||
gate-5 snap committed the lofted pair VERBATIM (z=95.0, cell unchanged) even
|
||||
though Resolve's indoor floor-snap should have grounded to the closest floor —
|
||||
instrument which early-out fired (suspects: `physics is null` landblock-lookup
|
||||
miss at snap time; step-height reject; bestCell null). Logs:
|
||||
wedge-107-gate3/4/5-indoor-login.log; scans in Issue107SpawnDiagnosticTests.
|
||||
|
||||
---
|
||||
|
||||
# Recently closed
|
||||
|
||||
## #107 — Indoor-login spawn wedge — [DONE 2026-06-10 · 1090189]
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue