mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-23 16:00:32 +02:00
Structural lane batch 3: +4,128 padded / +4,101 meaningful bytes strict exact (3 functions), zero stable-verdict regressions. - rasterizer_xbox_active_camouflage.c: _rasterizer_active_camouflage_draw. The debug build (0x7cd9c0) writes each normal/hyper-stealth blend as one (1-p)*base + p*hyper expression. The texture-animation vertex constants are a block-scoped aggregate initializer, so both constant arrays share a slot as in January. - render_particles.c: _render_particles. The draw pass indexes group_particle_counts[group_index] with a short loop, and the inner loop is while (particle_count-- > 0), advancing the particle at the body end and before the delete-path continue (/Od 0x84f800). - rasterizer_xbox_shadows.c: __rasterizer_environment_shadow_begin. The debug build's boolean success = TRUE is returned once, and the translation terms use dot_product3d (/Od 0x80d870; HCEX array name vsh_constants__screenproj). Rule-24 disclosure (owner per-site admission, 2026-09-21): two new (real_vector3d const *)&shadow_matrix->position casts, one per dot_product3d call. The /Od build calls dot_product3d at 0x80db50 and 0x80dbc2 with the matrix position. Deleting both casts leaves the function strict exact, and point/vector share the three-real layout. parked.json: unpark _render_particles and __rasterizer_environment_shadow_begin. The owner packet gains the aggregate 3D->2D view-copy question. Gate: ninja PASS, parks 112/0/0, admission 0 contradicted/0 revoked, provider link PASS, fake scan unchanged, pytest 1152 passed / 5 skipped / 26 subtests. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>