fix(game): restore the recovered collision table
Replace the mirrored, partial wall transcription with all active static line and circle objects from the Win16 registration table. Preserve the original object IDs for drain and shooter-stop handling, and use bounded physics substeps so fast balls cannot skip thin rails. Test Plan: - cargo fmt --all -- --check - cargo test - cargo clippy --all-targets --all-features -- -D warnings - git diff --check
This commit is contained in:
@@ -2,6 +2,7 @@ use crate::{
|
||||
assets::Assets,
|
||||
game::{Controls, Event, Game},
|
||||
persistence::{HighScore, Language, Persistence, SavedData, insert_high_score},
|
||||
table::BUMPERS,
|
||||
};
|
||||
use macroquad::prelude::*;
|
||||
|
||||
@@ -460,13 +461,10 @@ impl App {
|
||||
},
|
||||
);
|
||||
}
|
||||
for (index, center) in [vec2(207.0, 109.0), vec2(167.0, 148.0), vec2(219.0, 167.0)]
|
||||
.into_iter()
|
||||
.enumerate()
|
||||
{
|
||||
for (index, bumper) in BUMPERS.into_iter().enumerate() {
|
||||
if game.bumper_flash[index] > 0.0 {
|
||||
draw_circle_lines(center.x, center.y, 17.0, 3.0, WHITE);
|
||||
draw_circle_lines(center.x, center.y, 13.0, 2.0, YELLOW);
|
||||
draw_circle_lines(bumper.center.x, bumper.center.y, 17.0, 3.0, WHITE);
|
||||
draw_circle_lines(bumper.center.x, bumper.center.y, 13.0, 2.0, YELLOW);
|
||||
}
|
||||
}
|
||||
if game.player().diamond_segments > 0 {
|
||||
@@ -503,8 +501,8 @@ impl App {
|
||||
}
|
||||
|
||||
for (start, end) in [
|
||||
(vec2(103.0, 394.0), vec2(58.0, 374.0)),
|
||||
(vec2(211.0, 394.0), vec2(256.0, 374.0)),
|
||||
(vec2(103.0, 397.0), vec2(58.0, 374.0)),
|
||||
(vec2(210.0, 397.0), vec2(256.0, 374.0)),
|
||||
] {
|
||||
draw_line(start.x, start.y, end.x, end.y, 22.0, BLACK);
|
||||
draw_circle(start.x, start.y, 11.0, BLACK);
|
||||
|
||||
Reference in New Issue
Block a user