Rename marking methods and use get_coords

Introduce push_marked_cell, pop_marked_cell and end_marking_cells to
replace the
previous set_marked_cell, undo_marked_cell and clear_marked_cells.
Collapse
get_row/get_col into get_coords and update all callers accordingly.
This commit is contained in:
2026-05-19 00:59:48 +02:00
parent 34c5e448ce
commit 5b960c65ff
4 changed files with 19 additions and 29 deletions
+2 -2
View File
@@ -83,10 +83,10 @@ pub fn skirmish_keybindings(app: &mut App, key_event: &KeyEvent) {
ZoomLevel::ZoomedOut => {} ZoomLevel::ZoomedOut => {}
}, },
Action::Space => board.toggle_marking(), Action::Space => board.toggle_marking(),
Action::Backspace => board.undo_marked_cell(), Action::Backspace => board.pop_marked_cell(),
Action::Delete => { Action::Delete => {
board.marked_cells.marking_cells = false; board.marked_cells.marking_cells = false;
board.clear_marked_cells() board.end_marking_cells()
} }
Action::Tab => { Action::Tab => {
states.skirmish.side_panel = !states.skirmish.side_panel; states.skirmish.side_panel = !states.skirmish.side_panel;
+14 -19
View File
@@ -68,7 +68,8 @@ impl BoardState {
let mut rows: Vec<CellWidget> = Vec::new(); let mut rows: Vec<CellWidget> = Vec::new();
for col in 0..map_width { for col in 0..map_width {
let selected: bool = row == focused_cell.get_row() && col == focused_cell.get_col(); let (focused_row, focused_col) = focused_cell.get_coords();
let selected: bool = row == focused_row && col == focused_col;
let player_base: bool = row == player_base_coords.0 && col == player_base_coords.1; let player_base: bool = row == player_base_coords.0 && col == player_base_coords.1;
let player_ore: bool = let player_ore: bool =
row == player_base_coords.0 && col == player_base_coords.1 - 1; row == player_base_coords.0 && col == player_base_coords.1 - 1;
@@ -154,11 +155,11 @@ impl BoardState {
if self.marked_cells.marking_cells { if self.marked_cells.marking_cells {
self.start_marking_cells(); self.start_marking_cells();
} else { } else {
self.clear_marked_cells(); self.end_marking_cells();
} }
} }
pub fn set_marked_cell(&mut self, new_cell: (usize, usize)) { pub fn push_marked_cell(&mut self, new_cell: (usize, usize)) {
let cell: &mut CellWidget = self.get_mut_cell(new_cell.0, new_cell.1); let cell: &mut CellWidget = self.get_mut_cell(new_cell.0, new_cell.1);
if !cell.get_marked() { if !cell.get_marked() {
@@ -168,11 +169,9 @@ impl BoardState {
self.marked_cells self.marked_cells
.marked_cells .marked_cells
.push_back((new_cell.0, new_cell.1)); .push_back((new_cell.0, new_cell.1));
// info!("{:?}", self.marked_cells.marked_cells);
} }
pub fn undo_marked_cell(&mut self) { pub fn pop_marked_cell(&mut self) {
if self.marked_cells.marked_cells.len() < 2 { if self.marked_cells.marked_cells.len() < 2 {
return; return;
} }
@@ -202,8 +201,7 @@ impl BoardState {
} }
pub fn start_marking_cells(&mut self) { pub fn start_marking_cells(&mut self) {
let row: usize = self.focused_cell.get_row(); let (row, col) = self.focused_cell.get_coords();
let col: usize = self.focused_cell.get_col();
let cell: &mut CellWidget = self.get_mut_cell(row, col); let cell: &mut CellWidget = self.get_mut_cell(row, col);
cell.set_marked(true); cell.set_marked(true);
@@ -212,7 +210,7 @@ impl BoardState {
self.marked_cells.marked_cells.push_back((row, col)); self.marked_cells.marked_cells.push_back((row, col));
} }
pub fn clear_marked_cells(&mut self) { pub fn end_marking_cells(&mut self) {
for (row, col) in self.marked_cells.marked_cells.clone() { for (row, col) in self.marked_cells.marked_cells.clone() {
self.get_mut_cell(row, col).set_marked(false); self.get_mut_cell(row, col).set_marked(false);
} }
@@ -244,8 +242,7 @@ impl BoardState {
let vertical_offset: usize = self.vertical_offset.get_value(); let vertical_offset: usize = self.vertical_offset.get_value();
let horizontal_offset: usize = self.horizontal_offset.get_value(); let horizontal_offset: usize = self.horizontal_offset.get_value();
let row: usize = self.focused_cell.get_row(); let (row, col) = self.focused_cell.get_coords();
let col: usize = self.focused_cell.get_col();
if 0usize.saturating_add(vertical_offset) > row if 0usize.saturating_add(vertical_offset) > row
|| row >= self.rows.saturating_add(vertical_offset) || row >= self.rows.saturating_add(vertical_offset)
@@ -293,12 +290,10 @@ impl BoardState {
self.horizontal_offset = self.horizontal_offset =
Offset::new(Some(self.horizontal_offset.get_value()), Some(h_max_offset)); Offset::new(Some(self.horizontal_offset.get_value()), Some(h_max_offset));
self.focused_cell = FocusedCell::new( let (focused_row, focused_coll) = self.focused_cell.get_coords();
self.focused_cell.get_row(),
self.focused_cell.get_col(), self.focused_cell =
self.map_height, FocusedCell::new(focused_row, focused_coll, self.map_height, self.map_width);
self.map_width,
);
for row in 0..self.map_height { for row in 0..self.map_height {
for col in 0..self.map_width { for col in 0..self.map_width {
@@ -308,7 +303,7 @@ impl BoardState {
} }
pub fn change_focused_cell(&mut self, direction: MoveFocusedCell) { pub fn change_focused_cell(&mut self, direction: MoveFocusedCell) {
let old_cell: (usize, usize) = (self.focused_cell.get_row(), self.focused_cell.get_col()); let old_cell: (usize, usize) = self.focused_cell.get_coords();
let new_cell: (usize, usize) = self.focused_cell.move_focused_cell(direction); let new_cell: (usize, usize) = self.focused_cell.move_focused_cell(direction);
self.get_mut_cell(old_cell.0, old_cell.1) self.get_mut_cell(old_cell.0, old_cell.1)
@@ -316,7 +311,7 @@ impl BoardState {
self.get_mut_cell(new_cell.0, new_cell.1).set_selected(true); self.get_mut_cell(new_cell.0, new_cell.1).set_selected(true);
if self.marked_cells.marking_cells { if self.marked_cells.marking_cells {
self.set_marked_cell(new_cell); self.push_marked_cell(new_cell);
} }
} }
} }
@@ -23,12 +23,8 @@ impl FocusedCell {
} }
} }
pub fn get_row(&self) -> usize { pub fn get_coords(&self) -> (usize, usize) {
self.row (self.row, self.col)
}
pub fn get_col(&self) -> usize {
self.col
} }
pub fn move_focused_cell(&mut self, direction: MoveFocusedCell) -> (usize, usize) { pub fn move_focused_cell(&mut self, direction: MoveFocusedCell) -> (usize, usize) {
+1 -2
View File
@@ -130,8 +130,7 @@ pub fn skirmish_view(app: &App, area: Rect, buf: &mut Buffer) {
BoardWidget::new(&board).render(cells_area, buf); BoardWidget::new(&board).render(cells_area, buf);
if states.skirmish.side_panel { if states.skirmish.side_panel {
let row: usize = board.get_focused_cell().get_row(); let (row, col) = board.get_focused_cell().get_coords();
let col: usize = board.get_focused_cell().get_col();
let mut is_unit_marked: bool = false; let mut is_unit_marked: bool = false;
if let Some((first_row, first_col)) = board.marked_cells.marked_cells.get(0) { if let Some((first_row, first_col)) = board.marked_cells.marked_cells.get(0) {