diff options
author | Oxore <oxore@protonmail.com> | 2023-08-01 21:26:45 +0300 |
---|---|---|
committer | Oxore <oxore@protonmail.com> | 2023-08-01 21:26:45 +0300 |
commit | f5b3d6846f06498166b786e5bc2c8f5dcb85f76c (patch) | |
tree | a2e0b2382ce9ce5aee078a036e7f16a611340921 /src | |
parent | 2d43dc5963e76e143b4d786051cccde0ab3cb1f8 (diff) |
Fix figure placement
Diffstat (limited to 'src')
-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 |