diff --git a/src/menu/mod.rs b/src/menu/mod.rs index ea3e347..085f0fe 100644 --- a/src/menu/mod.rs +++ b/src/menu/mod.rs @@ -131,6 +131,15 @@ impl Menu { } } + pub fn set_id(&mut self, old_id: T, new_id: T) { + for i in 0..self.entries.len() { + if self.entries[i].0 == old_id { + self.entries[i].0 = new_id; + return; + } + } + } + pub fn update_width(&mut self, state: &SharedGameState) { let mut width = self.width as f32; diff --git a/src/menu/save_select_menu.rs b/src/menu/save_select_menu.rs index ba4d47b..bc1b104 100644 --- a/src/menu/save_select_menu.rs +++ b/src/menu/save_select_menu.rs @@ -299,6 +299,11 @@ impl SaveSelectMenu { } self.save_menu.set_entry(self.save_menu.selected, MenuEntry::NewSave); + 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); + } + self.current_menu = CurrentMenu::SaveMenu; } MenuSelectionResult::Selected(DeleteConfirmMenuEntry::No, _) | MenuSelectionResult::Canceled => {