mirror of
https://github.com/Cesarus85/ringfall-mjolnir-vr.git
synced 2026-10-29 04:01:10 +01:00
The function stays residual at [sha]; this is not scoreboard movement. REAL regions 57 -> 53 with size, relocations and real code end all unchanged. THE DEFECT, verified from January's bytes before landing. Our source set allow_jump only when BOTH vehicle->vehicle.hover < 0.7f AND up.k < 0.8f. January tests hover (fcomp __real@3f333333 at 0x54e, jp 0x5fa), then executes mov byte ptr [ebp-3], 1 at 0x562 - allow_jump = TRUE - and only then tests up.k (fcomp __real@3f4ccccd at 0x566, jp 0x5fa). So January sets allow_jump whenever hover < 0.7, and falls through when up.k >= 0.8. Our source had a real behaviour difference; the if is now nested accordingly. The escape direction, crouch and break stay inside the up.k test. Also: rotation is scaled with the existing scale_vector3d helper instead of three *= statements. WHAT WAS NOT LANDED. The wave's primary variant PA also rewrote a negation with negate_vector3d, which makes actor_moving.obj newly define a _negate_vector3d COMDAT. January's actor_moving.obj does not define that symbol, so under the 2026-09-20 ownership ruling it cannot be emitted; PA_noNG, landed here, adds no new symbol. A further variant PB is byte-worse on padded size (+16) and its extra levers are neutral respellings rather than fixes, so it stays held. Verified: full ninja green; 11,060 function rows and 1,706 section rows diffed board-wide, 0 worse; actor_moving 31/5 unchanged; newly defined symbols versus the floor: none; parks 181 active / 0 stale / 0 invalid; forbid guard exit 0; fake_match_scan 0 findings. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>