checkpoint(render): G2 owner findings — terrain punch assigned to S4, portal-haze probe
Owner G2 check at 4b0b29e4: Facility Hub PASS, Holtburg house PASS,
cathedral leak unchanged (S3/S4). Two new findings:
- doorway-sized fragments of houses on the terrace below show through
the hill in Holtburg: PortalDepthMaskRenderer draws every visited cell's
exit-portal fan with depth compare Always + write, so a doorway behind
terrain still punches far depth through it. Pre-existing; S4 owns the
punch (ledger row updated).
- the purple UnHide haze (script type 0x75, played on the retail
Hidden->visible physics-state edge) no longer shows on the local player
after a portal. Under investigation: temporary print-only traces
[pes-spawn]/[pes-vis] under ACDREAM_DUMP_PLAYSCRIPT=1 (launch-options row
amended; both die with the investigation) and a timed arrival route
tools/overhaul-selfgate/route-portal-haze.txt.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
4b0b29e4cd
commit
7ec72765d7
6 changed files with 69 additions and 7 deletions
|
|
@ -860,11 +860,25 @@ public sealed class ParticleSystem : IParticleSystem
|
|||
}
|
||||
}
|
||||
|
||||
/// <summary>TEMPORARY (2026-09-03 portal-haze investigation, dies with
|
||||
/// it): print-only trace of renderable-index flips, wired under
|
||||
/// <c>ACDREAM_DUMP_PLAYSCRIPT=1</c> beside the hook sink's trace.</summary>
|
||||
public Action<string>? DiagnosticSink { get; set; }
|
||||
|
||||
private static readonly bool DiagEnabled =
|
||||
Environment.GetEnvironmentVariable("ACDREAM_DUMP_PLAYSCRIPT") == "1";
|
||||
|
||||
private void RefreshRenderableIndex(ParticleEmitter emitter, bool wasRenderable)
|
||||
{
|
||||
bool isRenderable = IsRenderable(emitter);
|
||||
if (wasRenderable == isRenderable)
|
||||
return;
|
||||
if (DiagEnabled)
|
||||
DiagnosticSink?.Invoke(
|
||||
$"[pes-vis] handle={emitter.Handle} owner=0x{emitter.AttachedObjectId:X8} "
|
||||
+ $"cell=0x{emitter.OwnerCellId:X8} renderable={isRenderable} "
|
||||
+ $"viewEligible={emitter.ViewEligible} presentationVisible={emitter.PresentationVisible} "
|
||||
+ $"pass={emitter.RenderPass}");
|
||||
|
||||
SortedSet<int> index =
|
||||
_renderableHandlesByPass[RenderPassIndex(emitter.RenderPass)];
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue