2022-02-06 17:23:24 +00:00
|
|
|
use crate::framework::context::Context;
|
|
|
|
use crate::framework::error::GameResult;
|
|
|
|
use crate::framework::filesystem;
|
|
|
|
use crate::input::combined_menu_controller::CombinedMenuController;
|
2022-06-22 22:08:36 +00:00
|
|
|
use crate::menu::coop_menu::PlayerCountMenu;
|
2022-06-30 15:39:56 +00:00
|
|
|
use crate::menu::MenuEntry;
|
2022-02-06 17:23:24 +00:00
|
|
|
use crate::menu::{Menu, MenuSelectionResult};
|
|
|
|
use crate::profile::GameProfile;
|
2022-06-30 15:39:56 +00:00
|
|
|
use crate::shared_game_state::{GameDifficulty, SharedGameState};
|
2022-02-06 17:23:24 +00:00
|
|
|
|
|
|
|
#[derive(Clone, Copy)]
|
|
|
|
pub struct MenuSaveInfo {
|
|
|
|
pub current_map: u32,
|
|
|
|
pub max_life: u16,
|
|
|
|
pub life: u16,
|
|
|
|
pub weapon_count: usize,
|
|
|
|
pub weapon_id: [u32; 8],
|
2022-02-27 10:21:43 +00:00
|
|
|
pub difficulty: u8,
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for MenuSaveInfo {
|
|
|
|
fn default() -> Self {
|
2022-02-27 10:21:43 +00:00
|
|
|
MenuSaveInfo { current_map: 0, max_life: 0, life: 0, weapon_count: 0, weapon_id: [0; 8], difficulty: 0 }
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
}
|
2022-06-22 22:08:36 +00:00
|
|
|
#[derive(PartialEq, Eq, Copy, Clone)]
|
|
|
|
#[repr(u8)]
|
|
|
|
#[allow(unused)]
|
2022-02-06 17:23:24 +00:00
|
|
|
pub enum CurrentMenu {
|
|
|
|
SaveMenu,
|
2022-02-27 10:21:43 +00:00
|
|
|
DifficultyMenu,
|
2022-06-22 22:08:36 +00:00
|
|
|
PlayerCountMenu,
|
2022-02-06 17:23:24 +00:00
|
|
|
DeleteConfirm,
|
2022-04-10 19:57:19 +00:00
|
|
|
LoadConfirm,
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub enum SaveMenuEntry {
|
|
|
|
Load(usize),
|
|
|
|
New(usize),
|
|
|
|
Back,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for SaveMenuEntry {
|
|
|
|
fn default() -> Self {
|
|
|
|
SaveMenuEntry::Load(0)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub enum DifficultyMenuEntry {
|
|
|
|
Title,
|
|
|
|
Difficulty(GameDifficulty),
|
|
|
|
Back,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for DifficultyMenuEntry {
|
|
|
|
fn default() -> Self {
|
|
|
|
DifficultyMenuEntry::Difficulty(GameDifficulty::Normal)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub enum DeleteConfirmMenuEntry {
|
|
|
|
Title,
|
|
|
|
Yes,
|
|
|
|
No,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for DeleteConfirmMenuEntry {
|
|
|
|
fn default() -> Self {
|
|
|
|
DeleteConfirmMenuEntry::No
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#[derive(Debug, Clone, Copy, Eq, PartialEq)]
|
|
|
|
pub enum LoadConfirmMenuEntry {
|
|
|
|
Start,
|
|
|
|
Delete,
|
|
|
|
Back,
|
|
|
|
}
|
|
|
|
|
|
|
|
impl Default for LoadConfirmMenuEntry {
|
|
|
|
fn default() -> Self {
|
|
|
|
LoadConfirmMenuEntry::Start
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-02-06 17:23:24 +00:00
|
|
|
pub struct SaveSelectMenu {
|
|
|
|
pub saves: [MenuSaveInfo; 3],
|
|
|
|
current_menu: CurrentMenu,
|
2022-07-24 14:52:51 +00:00
|
|
|
save_menu: Menu<SaveMenuEntry>,
|
|
|
|
save_detailed: Menu<usize>,
|
|
|
|
difficulty_menu: Menu<DifficultyMenuEntry>,
|
2022-06-22 22:08:36 +00:00
|
|
|
coop_menu: PlayerCountMenu,
|
2022-07-24 14:52:51 +00:00
|
|
|
delete_confirm: Menu<DeleteConfirmMenuEntry>,
|
|
|
|
load_confirm: Menu<LoadConfirmMenuEntry>,
|
2022-02-27 10:50:41 +00:00
|
|
|
skip_difficulty_menu: bool,
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
impl SaveSelectMenu {
|
|
|
|
pub fn new() -> SaveSelectMenu {
|
|
|
|
SaveSelectMenu {
|
|
|
|
saves: [MenuSaveInfo::default(); 3],
|
|
|
|
current_menu: CurrentMenu::SaveMenu,
|
2022-02-27 10:21:43 +00:00
|
|
|
save_menu: Menu::new(0, 0, 230, 0),
|
2022-06-22 22:08:36 +00:00
|
|
|
coop_menu: PlayerCountMenu::new(),
|
2022-04-10 19:57:19 +00:00
|
|
|
save_detailed: Menu::new(0, 0, 230, 0),
|
2022-02-27 10:21:43 +00:00
|
|
|
difficulty_menu: Menu::new(0, 0, 130, 0),
|
2022-02-06 17:23:24 +00:00
|
|
|
delete_confirm: Menu::new(0, 0, 75, 0),
|
2022-04-10 19:57:19 +00:00
|
|
|
load_confirm: Menu::new(0, 0, 75, 0),
|
2022-02-27 10:50:41 +00:00
|
|
|
skip_difficulty_menu: false,
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn init(&mut self, state: &mut SharedGameState, ctx: &Context) -> GameResult {
|
2022-02-27 10:21:43 +00:00
|
|
|
self.save_menu = Menu::new(0, 0, 230, 0);
|
2022-04-10 19:57:19 +00:00
|
|
|
self.save_detailed = Menu::new(0, 0, 230, 0);
|
2022-06-30 15:39:56 +00:00
|
|
|
self.coop_menu.init(state)?;
|
2022-02-27 10:21:43 +00:00
|
|
|
self.difficulty_menu = Menu::new(0, 0, 130, 0);
|
2022-02-23 00:46:49 +00:00
|
|
|
self.delete_confirm = Menu::new(0, 0, 75, 0);
|
2022-04-10 19:57:19 +00:00
|
|
|
self.load_confirm = Menu::new(0, 0, 75, 0);
|
2022-02-27 10:50:41 +00:00
|
|
|
self.skip_difficulty_menu = false;
|
2022-02-23 00:46:49 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
let mut should_mutate_selection = true;
|
|
|
|
|
2022-02-06 17:23:24 +00:00
|
|
|
for (iter, save) in self.saves.iter_mut().enumerate() {
|
2022-02-25 22:00:14 +00:00
|
|
|
if let Ok(data) = filesystem::user_open(ctx, state.get_save_filename(iter + 1).unwrap_or("".to_string())) {
|
2022-02-06 17:23:24 +00:00
|
|
|
let loaded_save = GameProfile::load_from_save(data)?;
|
|
|
|
|
|
|
|
save.current_map = loaded_save.current_map;
|
|
|
|
save.max_life = loaded_save.max_life;
|
|
|
|
save.life = loaded_save.life;
|
|
|
|
save.weapon_count = loaded_save.weapon_data.iter().filter(|weapon| weapon.weapon_id != 0).count();
|
|
|
|
save.weapon_id = loaded_save.weapon_data.map(|weapon| weapon.weapon_id);
|
2022-02-27 10:21:43 +00:00
|
|
|
save.difficulty = loaded_save.difficulty;
|
2022-02-06 17:23:24 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.save_menu.push_entry(SaveMenuEntry::Load(iter), MenuEntry::SaveData(*save));
|
|
|
|
|
|
|
|
if should_mutate_selection {
|
|
|
|
should_mutate_selection = false;
|
|
|
|
self.save_menu.selected = SaveMenuEntry::Load(iter);
|
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
} else {
|
2022-07-24 14:52:51 +00:00
|
|
|
self.save_menu.push_entry(SaveMenuEntry::New(iter), MenuEntry::NewSave);
|
|
|
|
|
|
|
|
if should_mutate_selection {
|
|
|
|
should_mutate_selection = false;
|
|
|
|
self.save_menu.selected = SaveMenuEntry::New(iter);
|
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.save_menu.push_entry(SaveMenuEntry::Back, MenuEntry::Active(state.t("common.back")));
|
2022-02-06 17:23:24 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.difficulty_menu
|
|
|
|
.push_entry(DifficultyMenuEntry::Title, MenuEntry::Disabled(state.t("menus.difficulty_menu.title")));
|
|
|
|
self.difficulty_menu.push_entry(
|
|
|
|
DifficultyMenuEntry::Difficulty(GameDifficulty::Easy),
|
|
|
|
MenuEntry::Active(state.t("menus.difficulty_menu.easy")),
|
|
|
|
);
|
|
|
|
self.difficulty_menu.push_entry(
|
|
|
|
DifficultyMenuEntry::Difficulty(GameDifficulty::Normal),
|
|
|
|
MenuEntry::Active(state.t("menus.difficulty_menu.normal")),
|
|
|
|
);
|
|
|
|
self.difficulty_menu.push_entry(
|
|
|
|
DifficultyMenuEntry::Difficulty(GameDifficulty::Hard),
|
|
|
|
MenuEntry::Active(state.t("menus.difficulty_menu.hard")),
|
|
|
|
);
|
|
|
|
self.difficulty_menu.push_entry(DifficultyMenuEntry::Back, MenuEntry::Active(state.t("common.back")));
|
2022-02-27 10:21:43 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.difficulty_menu.selected = DifficultyMenuEntry::Difficulty(GameDifficulty::Normal);
|
2022-02-27 10:21:43 +00:00
|
|
|
|
2022-06-22 22:08:36 +00:00
|
|
|
//self.coop_menu.init(state, ctx);
|
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.delete_confirm
|
|
|
|
.push_entry(DeleteConfirmMenuEntry::Title, MenuEntry::Disabled(state.t("menus.save_menu.delete_confirm")));
|
|
|
|
self.delete_confirm.push_entry(DeleteConfirmMenuEntry::Yes, MenuEntry::Active(state.t("common.yes")));
|
|
|
|
self.delete_confirm.push_entry(DeleteConfirmMenuEntry::No, MenuEntry::Active(state.t("common.no")));
|
2022-02-06 17:23:24 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.delete_confirm.selected = DeleteConfirmMenuEntry::No;
|
2022-02-06 17:23:24 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
self.load_confirm.push_entry(LoadConfirmMenuEntry::Start, MenuEntry::Active(state.t("menus.main_menu.start")));
|
|
|
|
self.load_confirm
|
|
|
|
.push_entry(LoadConfirmMenuEntry::Delete, MenuEntry::Active(state.t("menus.save_menu.delete_confirm")));
|
|
|
|
self.load_confirm.push_entry(LoadConfirmMenuEntry::Back, MenuEntry::Active(state.t("common.back")));
|
2022-04-10 19:57:19 +00:00
|
|
|
|
|
|
|
self.save_detailed.draw_cursor = false;
|
2022-06-22 22:08:36 +00:00
|
|
|
|
2022-07-24 14:52:51 +00:00
|
|
|
if let (_, MenuEntry::SaveData(save)) = self.save_menu.entries[0] {
|
|
|
|
self.save_detailed.push_entry(0, MenuEntry::SaveDataSingle(save));
|
2022-04-10 19:57:19 +00:00
|
|
|
}
|
|
|
|
|
2022-02-06 17:23:24 +00:00
|
|
|
self.update_sizes(state);
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
2022-02-27 10:50:41 +00:00
|
|
|
pub fn set_skip_difficulty_menu(&mut self, skip: bool) {
|
|
|
|
self.skip_difficulty_menu = skip;
|
|
|
|
}
|
|
|
|
|
2022-02-06 17:23:24 +00:00
|
|
|
fn update_sizes(&mut self, state: &SharedGameState) {
|
2022-03-15 01:54:03 +00:00
|
|
|
self.save_menu.update_width(state);
|
2022-02-06 17:23:24 +00:00
|
|
|
self.save_menu.update_height();
|
|
|
|
self.save_menu.x = ((state.canvas_size.0 - self.save_menu.width as f32) / 2.0).floor() as isize;
|
2022-04-10 19:57:19 +00:00
|
|
|
self.save_menu.y = ((state.canvas_size.1 - self.save_menu.height as f32) / 2.0).floor() as isize;
|
2022-03-15 01:54:03 +00:00
|
|
|
|
|
|
|
self.difficulty_menu.update_width(state);
|
2022-02-27 10:21:43 +00:00
|
|
|
self.difficulty_menu.update_height();
|
|
|
|
self.difficulty_menu.x = ((state.canvas_size.0 - self.difficulty_menu.width as f32) / 2.0).floor() as isize;
|
|
|
|
self.difficulty_menu.y =
|
|
|
|
30 + ((state.canvas_size.1 - self.difficulty_menu.height as f32) / 2.0).floor() as isize;
|
2022-03-15 01:54:03 +00:00
|
|
|
|
|
|
|
self.delete_confirm.update_width(state);
|
2022-02-06 17:23:24 +00:00
|
|
|
self.delete_confirm.update_height();
|
|
|
|
self.delete_confirm.x = ((state.canvas_size.0 - self.delete_confirm.width as f32) / 2.0).floor() as isize;
|
2022-04-10 19:57:19 +00:00
|
|
|
self.delete_confirm.y = 30 + ((state.canvas_size.1 - self.delete_confirm.height as f32) / 2.0).floor() as isize;
|
|
|
|
|
|
|
|
self.load_confirm.update_width(state);
|
|
|
|
self.load_confirm.update_height();
|
|
|
|
self.load_confirm.x = ((state.canvas_size.0 - self.load_confirm.width as f32) / 2.0).floor() as isize;
|
|
|
|
self.load_confirm.y = 30 + ((state.canvas_size.1 - self.load_confirm.height as f32) / 2.0).floor() as isize;
|
|
|
|
|
|
|
|
self.save_detailed.update_width(state);
|
|
|
|
self.save_detailed.update_height();
|
|
|
|
self.save_detailed.x = ((state.canvas_size.0 - self.save_detailed.width as f32) / 2.0).floor() as isize;
|
|
|
|
self.save_detailed.y = -40 + ((state.canvas_size.1 - self.save_detailed.height as f32) / 2.0).floor() as isize;
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
pub fn tick(
|
|
|
|
&mut self,
|
|
|
|
exit_action: &mut dyn FnMut(),
|
|
|
|
controller: &mut CombinedMenuController,
|
|
|
|
state: &mut SharedGameState,
|
|
|
|
ctx: &mut Context,
|
|
|
|
) -> GameResult {
|
|
|
|
self.update_sizes(state);
|
|
|
|
match self.current_menu {
|
|
|
|
CurrentMenu::SaveMenu => match self.save_menu.tick(controller, state) {
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(SaveMenuEntry::Back, _) | MenuSelectionResult::Canceled => exit_action(),
|
|
|
|
MenuSelectionResult::Selected(SaveMenuEntry::New(slot), _) => {
|
|
|
|
state.save_slot = slot + 1;
|
|
|
|
|
|
|
|
if self.skip_difficulty_menu {
|
|
|
|
self.current_menu = CurrentMenu::PlayerCountMenu;
|
|
|
|
} else {
|
|
|
|
self.difficulty_menu.selected = DifficultyMenuEntry::Difficulty(GameDifficulty::Normal);
|
|
|
|
self.current_menu = CurrentMenu::DifficultyMenu;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
MenuSelectionResult::Selected(SaveMenuEntry::Load(slot), _) => {
|
2022-02-27 10:21:43 +00:00
|
|
|
state.save_slot = slot + 1;
|
|
|
|
|
2022-04-10 19:57:19 +00:00
|
|
|
if let Ok(_) =
|
2022-02-27 10:21:43 +00:00
|
|
|
filesystem::user_open(ctx, state.get_save_filename(state.save_slot).unwrap_or("".to_string()))
|
|
|
|
{
|
2022-07-24 14:52:51 +00:00
|
|
|
if let (_, MenuEntry::SaveData(save)) = self.save_menu.entries[slot] {
|
2022-04-15 00:51:48 +00:00
|
|
|
self.save_detailed.entries.clear();
|
2022-07-24 14:52:51 +00:00
|
|
|
self.save_detailed.push_entry(0, MenuEntry::SaveDataSingle(save));
|
2022-04-10 19:57:19 +00:00
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
|
2022-04-10 19:57:19 +00:00
|
|
|
self.current_menu = CurrentMenu::LoadConfirm;
|
2022-07-24 14:52:51 +00:00
|
|
|
self.load_confirm.selected = LoadConfirmMenuEntry::Start;
|
2022-02-27 10:21:43 +00:00
|
|
|
}
|
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
_ => (),
|
|
|
|
},
|
2022-02-27 10:21:43 +00:00
|
|
|
CurrentMenu::DifficultyMenu => match self.difficulty_menu.tick(controller, state) {
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(DifficultyMenuEntry::Back, _) | MenuSelectionResult::Canceled => {
|
2022-02-27 10:21:43 +00:00
|
|
|
self.current_menu = CurrentMenu::SaveMenu;
|
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(DifficultyMenuEntry::Difficulty(difficulty), _) => {
|
|
|
|
state.difficulty = difficulty;
|
2022-06-22 22:08:36 +00:00
|
|
|
self.current_menu = CurrentMenu::PlayerCountMenu;
|
2022-02-27 10:21:43 +00:00
|
|
|
}
|
|
|
|
_ => (),
|
|
|
|
},
|
2022-06-22 22:08:36 +00:00
|
|
|
CurrentMenu::PlayerCountMenu => {
|
|
|
|
let cm = &mut self.current_menu;
|
|
|
|
let rm = CurrentMenu::SaveMenu;
|
|
|
|
self.coop_menu.tick(
|
|
|
|
&mut || {
|
|
|
|
*cm = rm;
|
|
|
|
},
|
|
|
|
controller,
|
|
|
|
state,
|
|
|
|
ctx,
|
|
|
|
)?;
|
2022-06-30 15:39:56 +00:00
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
CurrentMenu::DeleteConfirm => match self.delete_confirm.tick(controller, state) {
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(DeleteConfirmMenuEntry::Yes, _) => {
|
|
|
|
match self.save_menu.selected {
|
|
|
|
SaveMenuEntry::Load(slot) => {
|
|
|
|
state.sound_manager.play_sfx(17); // Player Death sfx
|
|
|
|
filesystem::user_delete(ctx, state.get_save_filename(slot + 1).unwrap_or("".to_string()))?;
|
|
|
|
}
|
|
|
|
_ => (),
|
|
|
|
}
|
|
|
|
|
|
|
|
self.save_menu.set_entry(self.save_menu.selected, MenuEntry::NewSave);
|
2022-08-06 11:47:02 +00:00
|
|
|
if let SaveMenuEntry::Load(slot) = self.save_menu.selected {
|
|
|
|
self.save_menu.set_id(self.save_menu.selected, SaveMenuEntry::New(slot));
|
|
|
|
self.save_menu.selected = SaveMenuEntry::New(slot);
|
|
|
|
}
|
|
|
|
|
2022-02-06 17:23:24 +00:00
|
|
|
self.current_menu = CurrentMenu::SaveMenu;
|
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(DeleteConfirmMenuEntry::No, _) | MenuSelectionResult::Canceled => {
|
2022-04-10 19:57:19 +00:00
|
|
|
self.current_menu = CurrentMenu::LoadConfirm;
|
2022-07-24 14:52:51 +00:00
|
|
|
self.load_confirm.selected = LoadConfirmMenuEntry::Start;
|
2022-04-10 19:57:19 +00:00
|
|
|
}
|
|
|
|
_ => (),
|
|
|
|
},
|
|
|
|
CurrentMenu::LoadConfirm => match self.load_confirm.tick(controller, state) {
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(LoadConfirmMenuEntry::Start, _) => {
|
2022-06-22 22:08:36 +00:00
|
|
|
self.current_menu = CurrentMenu::PlayerCountMenu;
|
2022-04-10 19:57:19 +00:00
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(LoadConfirmMenuEntry::Delete, _) => {
|
2022-04-10 19:57:19 +00:00
|
|
|
self.current_menu = CurrentMenu::DeleteConfirm;
|
2022-07-24 14:52:51 +00:00
|
|
|
self.delete_confirm.selected = DeleteConfirmMenuEntry::No;
|
2022-04-10 19:57:19 +00:00
|
|
|
}
|
2022-07-24 14:52:51 +00:00
|
|
|
MenuSelectionResult::Selected(LoadConfirmMenuEntry::Back, _) | MenuSelectionResult::Canceled => {
|
2022-02-06 17:23:24 +00:00
|
|
|
self.current_menu = CurrentMenu::SaveMenu;
|
|
|
|
}
|
|
|
|
_ => (),
|
|
|
|
},
|
|
|
|
}
|
|
|
|
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
|
|
|
|
pub fn draw(&self, state: &mut SharedGameState, ctx: &mut Context) -> GameResult {
|
|
|
|
match self.current_menu {
|
|
|
|
CurrentMenu::SaveMenu => {
|
|
|
|
self.save_menu.draw(state, ctx)?;
|
|
|
|
}
|
2022-02-27 10:21:43 +00:00
|
|
|
CurrentMenu::DifficultyMenu => {
|
|
|
|
self.difficulty_menu.draw(state, ctx)?;
|
|
|
|
}
|
2022-06-22 22:08:36 +00:00
|
|
|
CurrentMenu::PlayerCountMenu => {
|
|
|
|
self.coop_menu.draw(state, ctx)?;
|
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
CurrentMenu::DeleteConfirm => {
|
2022-04-10 19:57:19 +00:00
|
|
|
self.save_detailed.draw(state, ctx)?;
|
2022-02-06 17:23:24 +00:00
|
|
|
self.delete_confirm.draw(state, ctx)?;
|
|
|
|
}
|
2022-04-10 19:57:19 +00:00
|
|
|
CurrentMenu::LoadConfirm => {
|
|
|
|
self.save_detailed.draw(state, ctx)?;
|
|
|
|
self.load_confirm.draw(state, ctx)?;
|
|
|
|
}
|
2022-02-06 17:23:24 +00:00
|
|
|
}
|
|
|
|
Ok(())
|
|
|
|
}
|
|
|
|
}
|