fix(game): honor original mechanism timer choices

Map detail levels 1-5 to the recovered 50, 40, 30, 20, and 10 ms callback
periods for claw animation while retaining the invariant 10 ms physics step.
This removes the hard-coded default cadence from non-default configurations.

Keep repaint batching documented separately because Rust exposes intermediate
physics states instead of reproducing Win16 GDI callback batching.

Test Plan:
- `cargo test --all-targets` -- 51 passed
- `cargo clippy --all-targets -- -D warnings` -- passed
- `cargo build --profile production` -- passed
- all five claw cadence boundary tests -- passed
- `git diff --cached --check` -- passed
This commit is contained in:
2026-08-22 21:55:21 +02:00
parent 77c93ec36b
commit 25e32b2c06
3 changed files with 34 additions and 15 deletions
+8 -10
View File
@@ -50,18 +50,16 @@ renamed.
## Explicit pending evidence
- Differentially verify the recovered 10/20/30/40/50 ms timer choices against
live original captures; the Rust port intentionally uses the default 30 ms
claw cadence independently of render rate.
- Transcribe the full fixed-point flipper impulse calculation, then compare it
with the Rust floating-point collision response.
- Force each chosen claw terminal in the live original and compare its complete
frame/trajectory sequence with the deterministic Rust trace. A controlled
collision probe has covered terminal 18; terminals 1, 6, and 7 remain.
- Transcribe the full raw fixed-point flipper impulse calculation. Production
behavior currently uses live-fitted up/down transfer curves with exact record
geometry and probe tests.
- Reproduce original callback batching for non-default detail settings. Physics
substeps and claw cadence are recovered, but Rust presents intermediate 10 ms
physics states instead of batching 1-5 substeps into one Win16 repaint.
Those items are intentionally not counted as semantic parity. The readable
C file preserves their raw constants and labels the unresolved conversion so a
later implementation cannot silently turn an estimate into claimed evidence.
C files preserve their raw constants and label unresolved batching/fitted
arithmetic so later work cannot silently turn an estimate into claimed evidence.
## Runtime comparison on 2026-08-22