Refactor keybindings and add validated CLI arguments

Extracted common quit/esc handling into `common_keybindings`. Introduced
`Group::CtrlMovement` for Ctrl‑arrow keys and updated keybinding
definitions.
Removed duplicated quit logic in main_menu and skirmish modules. Bumped
clap to 4.6.0 and updated Cargo.lock. Added range‑checked parsers for
map
size, resources, supply limit, XP modifier and skill points in the CLI.
This commit is contained in:
GarandPLG committed 2026-03-27 20:15:15 +01:00
1 parent 9300eef906
commit ba0028b7a7
9 files changed
+71 -51

No files matched your search

+3 -5
View File
@@ -1,19 +1,17 @@
use crate::app::{
App, View,
keybindings::{Action, event_to_action},
App,
keybindings::{Action, common_keybindings, event_to_action},
};
use ratatui::crossterm::event::KeyEvent;
pub fn skirmish_keybindings(app: &mut App, key_event: &KeyEvent) {
if let Some(action) = event_to_action(&key_event) {
common_keybindings(app, action);
match action {
Action::ScrollUp => app.states.skirmish.vertical_offset.prev(),
Action::ScrollDown => app.states.skirmish.vertical_offset.next(),
Action::ScrollLeft => app.states.skirmish.horizontal_offset.prev(),
Action::ScrollRight => app.states.skirmish.horizontal_offset.next(),
Action::Quit => app.exit = true,
Action::Quit2 => app.exit = true,
Action::Esc => app.view = View::MainMenu,
_ => (),
}
}