previous slot shortcut

Signed-off-by: Nicolas Adenis-Lamarre <nicolas.adenis.lamarre@gmail.com>
This commit is contained in:
Nicolas Adenis-Lamarre 2023-05-25 11:32:49 +00:00
parent 0a069f39c9
commit f32b0dc9c3
6 changed files with 16 additions and 0 deletions

View File

@ -400,6 +400,7 @@ const KeyMap_IntStrPair psp_button_names[] = {
{VIRTKEY_REWIND, "Rewind"},
{VIRTKEY_SAVE_STATE, "Save State"},
{VIRTKEY_LOAD_STATE, "Load State"},
{VIRTKEY_PREVIOUS_SLOT, "Previous Slot"},
{VIRTKEY_NEXT_SLOT, "Next Slot"},
#if !defined(MOBILE_DEVICE)
{VIRTKEY_TOGGLE_FULLSCREEN, "Toggle Fullscreen"},

View File

@ -71,6 +71,7 @@ enum {
VIRTKEY_SPEED_ANALOG = 0x40000024,
VIRTKEY_VR_CAMERA_ADJUST = 0x40000025,
VIRTKEY_VR_CAMERA_RESET = 0x40000026,
VIRTKEY_PREVIOUS_SLOT = 0x40000027,
VIRTKEY_LAST,
VIRTKEY_COUNT = VIRTKEY_LAST - VIRTKEY_FIRST
};

View File

@ -525,6 +525,11 @@ namespace SaveState
return g_Config.iCurrentStateSlot;
}
void PrevSlot()
{
g_Config.iCurrentStateSlot = (g_Config.iCurrentStateSlot - 1 + NUM_SLOTS) % NUM_SLOTS;
}
void NextSlot()
{
g_Config.iCurrentStateSlot = (g_Config.iCurrentStateSlot + 1) % NUM_SLOTS;

View File

@ -43,6 +43,7 @@ namespace SaveState
void Shutdown();
// Cycle through the 5 savestate slots
void PrevSlot();
void NextSlot();
void SaveSlot(const Path &gameFilename, int slot, Callback callback, void *cbUserData = 0);
void LoadSlot(const Path &gameFilename, int slot, Callback callback, void *cbUserData = 0);

View File

@ -701,6 +701,12 @@ void EmuScreen::onVKey(int virtualKeyCode, bool down) {
if (down)
SaveState::LoadSlot(gamePath_, g_Config.iCurrentStateSlot, &AfterSaveStateAction);
break;
case VIRTKEY_PREVIOUS_SLOT:
if (down) {
SaveState::PrevSlot();
NativeMessageReceived("savestate_displayslot", "");
}
break;
case VIRTKEY_NEXT_SLOT:
if (down) {
SaveState::NextSlot();

View File

@ -307,6 +307,7 @@ namespace CustomKeyData {
{ ImageID::invalid(), VIRTKEY_REWIND },
{ ImageID::invalid(), VIRTKEY_SAVE_STATE },
{ ImageID::invalid(), VIRTKEY_LOAD_STATE },
{ ImageID::invalid(), VIRTKEY_PREVIOUS_SLOT },
{ ImageID::invalid(), VIRTKEY_NEXT_SLOT },
#if !defined(MOBILE_DEVICE)
{ ImageID::invalid(), VIRTKEY_TOGGLE_FULLSCREEN },
@ -356,6 +357,7 @@ namespace GestureKey {
VIRTKEY_REWIND,
VIRTKEY_SAVE_STATE,
VIRTKEY_LOAD_STATE,
VIRTKEY_PREVIOUS_SLOT,
VIRTKEY_NEXT_SLOT,
VIRTKEY_TEXTURE_DUMP,
VIRTKEY_TEXTURE_REPLACE,