summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/main.rs6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main.rs b/src/main.rs
index 80f95b8..f670989 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -146,8 +146,10 @@ impl Field {
continue;
}
let color = figure.cells[i] & !GHOST_MASK;
- if color != 0 {
- self.cells[f_x as usize + f_y as usize * FIELD_COLS] = figure.cells[i];
+ let current = f_x as usize + f_y as usize * FIELD_COLS;
+ let ghost_or_empty = (self.cells[current] & GHOST_MASK != 0) || self.cells[current] == 0;
+ if color != 0 && ghost_or_empty {
+ self.cells[current] = figure.cells[i];
}
}
}