From f5b3d6846f06498166b786e5bc2c8f5dcb85f76c Mon Sep 17 00:00:00 2001 From: Oxore Date: Tue, 1 Aug 2023 21:26:45 +0300 Subject: Fix figure placement --- src/main.rs | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main.rs b/src/main.rs index 807a813..80f95b8 100644 --- a/src/main.rs +++ b/src/main.rs @@ -281,6 +281,7 @@ impl Game { self.field.kill_line(line); } } + self.stop_place_timeout(); } fn hold_figure(&mut self) { (self.figure_on_hold, self.figure) = (Figure::from_kind(self.figure.kind.clone()), self.figure_on_hold.clone()); @@ -350,9 +351,9 @@ impl Game { self.place_figure(); } else { self.y -= 1; - } - if self.field.has_collision(&self.figure, self.x, self.y - 1) { - self.start_place_timeout(); + if self.field.has_collision(&self.figure, self.x, self.y - 1) { + self.start_place_timeout(); + } } self.reset_fall_timeout(); } @@ -364,7 +365,7 @@ impl Game { }; let advance_figure_result = if let Some(t) = &self.place_timeout { if t.is_elapsed() { - self.advance_figure(); + self.place_figure(); Some(StepResult::StateChanged) } else { None -- cgit v1.2.3