Activities extent silhouette
This is the other shared-geometry branch of original Activities 3B33690, distinct from the already restored XZ range annulus. Its size comes from object+1C0, not the predicate/range radius at object+180 or PowerService+3E8.
3AF6C40 waits for the original service-ready getter, looks up metadata for the actual cached navigation centre, and calls 1418810. The complete69-byte helper returns0 for rawState0. For a nonzero state it resolves the actual owner-index definition through typed service+50, then reads definition+1A0+rawState*16+8. The definition stride is260hex; these state extents are separate from the definition RGB and from recent counters. The tool accepts only currently established raw states0–4. Missing metadata, unknown future state, invalid owner, malformed/stale sources and nonfinite values remain unknown. An observed rawState0 supplies a known extent0.
Navigation.GalaxyPowerOuterExtent.cs ports this as a guarded read-only lookup. It does not call the original service+150 getter, which writes a last-key cache. It keeps the original centre address/XYZ, source-ready flags, definition vector and metadata identity bound, and the runtime entry retains the existing owning-thread, PID/image, entity/current-system and500ms context guards. Its own-allocation fixture passes255 in eight source-linked runs, covering high64-bit address identity, known state0, missing metadata, invalid state/value/owner, source loss and no writes. The optional wire field is powerOuter.extent; missing/null stays unknown, independently of radius. It is a current cache classification, not a claim of globally complete metadata.
For extent r and actual eye distance d, 3B064F0 submits nothing unless d>r>0. It builds the original largest-axis orthonormal basis facing the eye, including its tie branches. Quad width and height are 2.222222328186035*r*d/sqrt(d*d-r*r). The original VS halves this width/height; the material's core radius.9 cancels the allocation margin to establish the tangent silhouette radius. Applying2.2222 directly to a visible circle would therefore be wrong.
Actual callback 551F838+8 ->3A1E730 ->3C05840 appends 64-byte records: position4, U-axis/width4, V-axis/height4, colour4. Per-viewport primitive+38 is created from render-config+100 by 3C022F0, selecting FocusBillboard/GalaxyMapFocusBillboard. Draw vtable5538210+20 is3C16230: it passes type5 and primitiveCount2 to51BE30, whose verified(1,2) conversion yields four TriangleStrip vertices. The default source RGB is the appearance config13C..144, exact bits3CDD2F1B/3F716873/3F800000: approximately(.027,.943,1), with alpha0.
The original PS combines interior fade.75, core radius.9, exterior fade.92, fade intensity.175, highlight intensity1.5 and band width.005. Its antialias factor uses actual target dimensions and screen derivatives. Emissive rescaling is type2 from the owned exposure texel1*.125, with this material's separate EVOffset1 multiplier2. The actual compiled blend is One/InverseSourceAlpha/Add. The explicit scalar probe remains separate from the tool-owned original ManualExposure path.
GalaxyOriginalPowerActivityBillboardGeometry, GalaxyPowerActivityBillboardGraphics.cs and the independent b12 HLSL implement the source geometry and shader. The source-linked WARP probe compares the original VS/PS over4388 lit pixels: maximum difference9.54e-7, mean5.84e-10. It also verifies additive output, alpha0, owned manual texture sampling, missing-source/default0 suppression, missing bounds and nonzero pixels from the actual production partial. Core regressions cover missing/zero extent, inside-eye gating, exact tangent allocation and all basis branches. No game process, original function invocation or DLL installation occurs.
Trace-GalaxyPowerActivityBillboard.py reproduces the pinned geometry/material checks. galaxy_power_outer_extent_compatibility.py separately validates the Native source against ED5 using three complete/paired functions and three actual typed slots; it introduces no guessed global or RVA displacement. Per-system influence links, live runtime material overrides and the complete original pipeline remain separate unfinished work.