fix(ui): render partial target-bank states
Records 90 through 104 and 109 through 120 deactivate in linked three-line groups. For each group, the flag-bearing head switches its recovered bounds from overlay B to overlay A until the complete bank rearms every record. Rust updated collision activity but never drew these nine intermediate states. Render the five bumper-bank and four TDK-bank head regions directly from the 175-record ledger. Extend the bank regression to prove partial activation and post-completion clearing, and seed two partial groups in the deterministic rules framebuffer. Test Plan: - `cargo test --workspace --all-targets --all-features` -- 120 passed - `cargo clippy --workspace --all-targets --all-features -- -D warnings` -- passed - `rumdl check --flavor commonmark RECONSTRUCTION.md CHANGELOG.md` -- passed - `cargo run -- --simulate targets --step 26 --screenshot /tmp/tdkpin-targets-banks.png` -- passed; partial bumper and TDK bank regions visually inspected at 640x460 - `git diff --cached --check` -- passed
This commit is contained in:
@@ -26,6 +26,17 @@ const BUMPER_VALUE_REGIONS: [(i32, i32, i32, i32); 5] = [
|
||||
(177, 280, 195, 299),
|
||||
(193, 303, 211, 322),
|
||||
];
|
||||
const BANK_TARGET_REGIONS: [(u8, i32, i32, i32, i32); 9] = [
|
||||
(90, 282, 231, 306, 246),
|
||||
(93, 282, 217, 306, 231),
|
||||
(96, 282, 202, 306, 216),
|
||||
(99, 282, 187, 306, 201),
|
||||
(102, 282, 174, 306, 186),
|
||||
(109, 192, 214, 206, 236),
|
||||
(112, 178, 209, 191, 231),
|
||||
(115, 163, 204, 177, 226),
|
||||
(118, 149, 198, 163, 221),
|
||||
];
|
||||
|
||||
fn bumper_value_indicator_count(value: u32) -> usize {
|
||||
usize::try_from(value / 1_000)
|
||||
@@ -742,6 +753,11 @@ impl App {
|
||||
);
|
||||
}
|
||||
}
|
||||
for (record_id, left, top, right, bottom) in BANK_TARGET_REGIONS {
|
||||
if game.bank_target_lit(record_id) {
|
||||
self.draw_active_table_region(left, top, right - left + 1, bottom - top + 1);
|
||||
}
|
||||
}
|
||||
if game.player().diamond_segments > 0 {
|
||||
let index = usize::from(game.player().diamond_segments.min(9) - 1);
|
||||
draw_texture(&self.assets.diamond[index], 123.0, 300.0, WHITE);
|
||||
|
||||
Reference in New Issue
Block a user