diff --git a/pcsx2/gui/MainFrame.cpp b/pcsx2/gui/MainFrame.cpp index 16d128aa33..af024945ee 100644 --- a/pcsx2/gui/MainFrame.cpp +++ b/pcsx2/gui/MainFrame.cpp @@ -43,7 +43,8 @@ wxMenu* MainEmuFrame::MakeStatesSubMenu(int baseid, int loadBackupId) const for (int i = 0; i < 10; i++) { // Will be changed once an iso is loaded. - mnuSubstates->Append(baseid + i + 1, wxsFormat(_("Slot %d"), i)); + wxMenuItem* m = mnuSubstates->Append(baseid + i + 1, wxsFormat(_("Slot %d"), i), wxEmptyString, wxITEM_CHECK); + m->Check(i == 0); // 0 is the default selected slot } if (loadBackupId >= 0) diff --git a/pcsx2/gui/Saveslots.cpp b/pcsx2/gui/Saveslots.cpp index cb2ba86c74..aeb174df22 100644 --- a/pcsx2/gui/Saveslots.cpp +++ b/pcsx2/gui/Saveslots.cpp @@ -139,20 +139,23 @@ int States_GetCurrentSlot() return StatesC; } -void States_SetCurrentSlot(int slot) +void States_SetCurrentSlot(int slot_num) { - StatesC = std::min(std::max(slot, 0), StateSlotsCount); + StatesC = std::min(std::max(slot_num, 0), StateSlotsCount); + for (Saveslot& slot : saveslot_cache) + { + sMainFrame.CheckMenuItem(slot.load_item_id, slot.slot_num == slot_num); + sMainFrame.CheckMenuItem(slot.save_item_id, slot.slot_num == slot_num); + } OnSlotChanged(); } void States_CycleSlotForward() { - StatesC = (StatesC + 1) % StateSlotsCount; - OnSlotChanged(); + States_SetCurrentSlot((StatesC + 1) % StateSlotsCount); } void States_CycleSlotBackward() { - StatesC = (StatesC + StateSlotsCount - 1) % StateSlotsCount; - OnSlotChanged(); + States_SetCurrentSlot((StatesC + StateSlotsCount - 1) % StateSlotsCount); } diff --git a/pcsx2/gui/Saveslots.h b/pcsx2/gui/Saveslots.h index f15bd28ec1..24444ad421 100644 --- a/pcsx2/gui/Saveslots.h +++ b/pcsx2/gui/Saveslots.h @@ -132,6 +132,6 @@ extern void States_DefrostCurrentSlot(); extern void States_FreezeCurrentSlot(); extern void States_CycleSlotForward(); extern void States_CycleSlotBackward(); -extern void States_SetCurrentSlot(int slot); +extern void States_SetCurrentSlot(int slot_num); extern int States_GetCurrentSlot(); extern void States_updateLoadBackupMenuItem(); \ No newline at end of file diff --git a/pcsx2/gui/UpdateUI.cpp b/pcsx2/gui/UpdateUI.cpp index 575f641a01..c8b4b262a7 100644 --- a/pcsx2/gui/UpdateUI.cpp +++ b/pcsx2/gui/UpdateUI.cpp @@ -86,6 +86,7 @@ static void _SaveLoadStuff(bool enabled) slot.crc = ElfCRC; sMainFrame.EnableMenuItem(slot.load_item_id, !slot.empty); + sMainFrame.CheckMenuItem(slot.load_item_id, slot.slot_num == States_GetCurrentSlot()); sMainFrame.SetMenuItemLabel(slot.load_item_id, slot.SlotName()); sMainFrame.SetMenuItemLabel(slot.save_item_id, slot.SlotName()); }