diff --git a/rust/cli_player/src/ui_screens/set_boats_layout_screen.rs b/rust/cli_player/src/ui_screens/set_boats_layout_screen.rs index 3558050..bd371fa 100644 --- a/rust/cli_player/src/ui_screens/set_boats_layout_screen.rs +++ b/rust/cli_player/src/ui_screens/set_boats_layout_screen.rs @@ -14,6 +14,7 @@ use sea_battle_backend::data::*; use crate::constants::*; use crate::ui_screens::confirm_dialog_screen::confirm; +use crate::ui_screens::popup_screen::PopupScreen; use crate::ui_screens::utils::{centered_rect_size, centered_text}; use crate::ui_screens::ScreenResult; use crate::ui_widgets::game_map_widget::{ColoredCells, GameMapWidget}; @@ -227,6 +228,13 @@ impl<'a> SetBoatsLayoutScreen<'a> { } let (w, h) = game_map_widget.estimated_size(); + + if f.size().width < w || f.size().height + 3 < h { + PopupScreen::new("Screen too small!").show_in_frame(f); + drop(game_map_widget); + return coordinates_mapper; + } + let area = centered_rect_size(w, h, &f.size()); f.render_widget(game_map_widget, area);