Builds on the course panel PR (fix/dan-select-exam-panel). Merge that one first.
自己ベスト rows
Each exam shows a 自己ベスト row like the cabinet's: a white pill under the condition, with the label on the left and the recorded best on the right.
The gauge box's pill is already part of exam_gauge_box.
The right-hand boxes get yellow_box/exam_best_pill, one per song segment.
Strings come from dan_exam_best_label (ja/en/zh/ko); value size from dan_exam_best_value.
The values come from the engine's box:exam_best(i) / box:exam_song_best(i, j) (Yonokid/YataiDON#307). Without them, or before a course is played, only the label is shown.
Six clear stamps
box/clear_mark and yellow_box/clear_mark now have all six stamps: red/gold × pass/full combo/all good.
The stamp is picked by the record's rank, box.record_rank (2–7), also from #307.
On an engine without it, clear_mark still picks frame 0 (passed) or 5 (rank 7), as before.
Checked on dan select with a two-song test course on auto: the bests appeared after the run and the matching stamp was shown. No errors in the log.
Builds on the course panel PR (`fix/dan-select-exam-panel`). Merge that one first.
**自己ベスト rows**
Each exam shows a 自己ベスト row like the cabinet's: a white pill under the condition, with the label on the left and the recorded best on the right.
- The gauge box's pill is already part of `exam_gauge_box`.
- The right-hand boxes get `yellow_box/exam_best_pill`, one per song segment.
- Strings come from `dan_exam_best_label` (ja/en/zh/ko); value size from `dan_exam_best_value`.
- The values come from the engine's `box:exam_best(i)` / `box:exam_song_best(i, j)` (Yonokid/YataiDON#307). Without them, or before a course is played, only the label is shown.
**Six clear stamps**
`box/clear_mark` and `yellow_box/clear_mark` now have all six stamps: red/gold × pass/full combo/all good.
- The stamp is picked by the record's rank, `box.record_rank` (2–7), also from #307.
- On an engine without it, `clear_mark` still picks frame 0 (passed) or 5 (rank 7), as before.
Checked on dan select with a two-song test course on auto: the bests appeared after the run and the matching stamp was shown. No errors in the log.
`checksums.sha256` is not part of this PR.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
- Each exam shows its 自己ベスト row as on the cabinet: a white pill (part of
exam_gauge_box, and yellow_box/exam_best_pill for the right-hand boxes, one per song
segment) with the label on the left and the recorded best on the right. Needs the
engine's box:exam_best / exam_song_best; without them, or before a course is played,
the label is shown alone.
- box/clear_mark and yellow_box/clear_mark have the cabinet's six stamps (red/gold x
pass/full combo/all good), picked by the record's rank (box.record_rank); an engine
without it falls back to clear_mark (frames 0 and 5).
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Builds on the course panel PR (
fix/dan-select-exam-panel). Merge that one first.自己ベスト rows
Each exam shows a 自己ベスト row like the cabinet's: a white pill under the condition, with the label on the left and the recorded best on the right.
exam_gauge_box.yellow_box/exam_best_pill, one per song segment.dan_exam_best_label(ja/en/zh/ko); value size fromdan_exam_best_value.box:exam_best(i)/box:exam_song_best(i, j)(Yonokid/YataiDON#307). Without them, or before a course is played, only the label is shown.Six clear stamps
box/clear_markandyellow_box/clear_marknow have all six stamps: red/gold × pass/full combo/all good.box.record_rank(2–7), also from #307.clear_markstill picks frame 0 (passed) or 5 (rank 7), as before.Checked on dan select with a two-song test course on auto: the bests appeared after the run and the matching stamp was shown. No errors in the log.
checksums.sha256is not part of this PR.🤖 Generated with Claude Code