docs: close #189 (fountain water spray) — user visual gate passed
"Fountain is back! We can close it." Root cause was #190 (entity-id overflow), not the light-carrier hydration fix directly. Moved to Recently closed with the mechanism summary; the candle-flame identification sub-thread is noted as an unraised residual rather than a new open issue, since the user didn't re-flag it. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
parent
6e034ac610
commit
754b299f7a
1 changed files with 17 additions and 56 deletions
|
|
@ -46,62 +46,6 @@ Copy this block when adding a new issue:
|
|||
|
||||
---
|
||||
|
||||
## #189 — Ambient particle scripts (fountain water, possibly candle flames) don't render indoors
|
||||
|
||||
**Status:** 🟡 LIKELY FIXED (`e651cb6d`, #190) — pending final user visual re-confirmation
|
||||
**Severity:** MEDIUM
|
||||
**Filed:** 2026-07-09
|
||||
**Component:** rendering — particles / PhysicsScript
|
||||
|
||||
**Description:** In the Town Network fountain room (`0x00070144`), the fountain
|
||||
has no visible water-spray particle effect. User also reported missing candle
|
||||
flames in the same area (unconfirmed which object(s) those are — see Root
|
||||
cause below).
|
||||
|
||||
**Root cause / status:** NOT the A7.L1 mesh-empty hydration gate itself
|
||||
(`EntityHydrationRules.ShouldKeepEntity`) — directly refuted via dat-truth
|
||||
(`Issue93TownNetworkFountainRoomLightInspectionTests.
|
||||
FountainAndCandleSetup_DefaultScriptAndMeshSurvivorCount_Dump`): the fountain's
|
||||
Setup (`0x02000AA3`) has a surviving mesh part (not dropped) AND a real
|
||||
`DefaultScript.DataId = 0x33000B21` (almost certainly the water-spray
|
||||
PhysicsScript) — hydration itself was fine.
|
||||
|
||||
**Found instead (via revert-test, per user request): #190, an entity-id
|
||||
overflow the light fix triggered as a SIDE EFFECT.** The mesh-carrier fix
|
||||
kept ~394 more entities alive per landblock, pushing the Town Network's
|
||||
interior-entity counter from 248 to 277 — past the id scheme's 8-bit budget
|
||||
(`ACDREAM_DUMP_ENTITY=0x02000AA3` showed the fountain's `entity.Id` shift from
|
||||
`0x400007F8` to `0x40000815`, misdecoding as landblock Y=0x08 instead of the
|
||||
true Y=0x07). `EntityScriptActivator` keys script/particle tracking on
|
||||
`entity.Id` directly, so the aliased id broke the fountain's script tracking.
|
||||
Fixed by `#190` (widened the id counter 8→12 bits). Post-fix,
|
||||
`ACDREAM_DUMP_ENTITY` confirmed the fountain's id (`0x40007115`) decodes
|
||||
correctly again — **not yet re-confirmed visually by the user** (session moved
|
||||
on to an FPS question, then a movement bug, before the fountain was re-checked).
|
||||
|
||||
The guessed "candle" objects (`0x02001967`, 16 arranged around the fountain)
|
||||
turned out to have real mesh and `DefaultScript == 0` — they are NOT candles
|
||||
and carry no script at all, so the actual candle-flame source objects are
|
||||
still unidentified; that part of this issue stays open regardless of #190.
|
||||
|
||||
**Next steps:**
|
||||
1. Get the user's visual confirmation that the fountain water spray is back.
|
||||
2. Identify the real candle-flame source objects in this room (not
|
||||
`0x02001967`) before assuming they share a root cause with the fountain.
|
||||
|
||||
**Files:**
|
||||
- `src/AcDream.App/Rendering/Vfx/EntityScriptActivator.cs`
|
||||
- `src/AcDream.Core/World/InteriorEntityIdAllocator.cs` (the #190 fix)
|
||||
- `src/AcDream.App/Streaming/GpuWorldState.cs` (DefaultScript fire/stop sites)
|
||||
- `src/AcDream.Core/Vfx/ParticleHookSink.cs`
|
||||
- `tests/AcDream.Core.Tests/Rendering/Issue93TownNetworkFountainRoomLightInspectionTests.cs` (dat-truth apparatus, reusable)
|
||||
|
||||
**Acceptance:** The Town Network fountain shows a water-spray particle effect
|
||||
matching retail; candle/torch flame sources in the same room are identified
|
||||
and render correctly.
|
||||
|
||||
---
|
||||
|
||||
## #191 — Tapping W (brief forward press) glides forward without playing the step animation
|
||||
|
||||
**Status:** OPEN
|
||||
|
|
@ -7401,6 +7345,23 @@ outdoors at the angle that previously erased it.
|
|||
|
||||
# Recently closed
|
||||
|
||||
## #189 — Ambient particle scripts (fountain water, possibly candle flames) don't render indoors
|
||||
|
||||
**Status:** DONE (2026-07-09, user visual gate passed — "Fountain is back! We
|
||||
can close it"). Root cause was NOT the A7.L1 mesh-carrier hydration fix itself
|
||||
(the fountain's Setup `0x02000AA3` always had a surviving mesh part + a real
|
||||
`DefaultScript.DataId`) — it was `#190`, an entity-id overflow that fix
|
||||
triggered as a side effect (see `#190` below for the full mechanism). Fixed by
|
||||
`e651cb6d`; `ACDREAM_DUMP_ENTITY` confirmed the fountain's id decodes
|
||||
correctly post-fix, and the user confirmed the water spray visually. **Residual
|
||||
note, not re-raised by the user, kept for a future session:** the guessed
|
||||
"candle" objects (`0x02001967`, 16 arranged around the fountain) turned out to
|
||||
have real mesh and `DefaultScript == 0` — not candles, no script at all — so
|
||||
if candle-flame absence resurfaces, the actual source objects in this room are
|
||||
still unidentified.
|
||||
|
||||
---
|
||||
|
||||
## #190 — Interior entity id counter overflowed past its 8-bit budget, aliasing into the next landblock
|
||||
|
||||
**Status:** DONE (2026-07-09, `e651cb6d`). Found while investigating #189
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue