diff options
Diffstat (limited to 'src/main.rs')
-rw-r--r-- | src/main.rs | 9 |
1 files 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 |