feat(render): Phase U.4c — LoadedCell carries stab_list PVS + seen_outside
VisibleCells (full ids) + SeenOutside, populated at the EnvCell-build site from envCell.VisibleCells + envCell.Flags. Mirrors retail CEnvCell.stab_list / seen_outside (acclient.h ~30925). Data already in-process; render path no longer drops it. Consumed by the builder in U.4c-3. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
cd3ffe3b02
commit
639f20fa8a
2 changed files with 31 additions and 0 deletions
|
|
@ -83,6 +83,25 @@ public sealed class LoadedCell
|
|||
/// and route IndoorPass cell scoping.</para>
|
||||
/// </summary>
|
||||
public uint? BuildingId { get; internal set; }
|
||||
|
||||
/// <summary>
|
||||
/// Phase U.4c: the stab_list PVS as full (landblock-prefixed) cell ids — retail
|
||||
/// CEnvCell.stab_list (acclient.h ~30925), the stable set of cells potentially
|
||||
/// visible from this cell, precomputed by the AC content tools. Refreshed only at
|
||||
/// hydration (= retail's per-cell-entry grab_visible_cells, decomp:311878).
|
||||
/// PortalVisibilityBuilder grounds set membership in it so a brittle per-frame
|
||||
/// portal-side test can't drop a potentially-visible cell from the visible set.
|
||||
/// Empty when the dat carried no stab list (degenerate / old cell).
|
||||
/// </summary>
|
||||
public IReadOnlyList<uint> VisibleCells = System.Array.Empty<uint>();
|
||||
|
||||
/// <summary>
|
||||
/// Phase U.4c: retail CEnvCell.seen_outside (acclient.h ~30925) — this cell sees
|
||||
/// the exterior (an exit portal is reachable from it). Retail gates the landscape
|
||||
/// data + draw decision on the camera cell's value (RenderNormalMode decomp:92649,
|
||||
/// grab_visible_cells decomp:311878). The stable anchor for the terrain-draw test.
|
||||
/// </summary>
|
||||
public bool SeenOutside;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue