summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Frame.cpp
diff options
context:
space:
mode:
authorRachel Bryk <RachelBryk@gmail.com>2014-09-16 17:41:16 -0400
committerRachel Bryk <RachelBryk@gmail.com>2014-09-16 19:19:41 -0400
commit5dc88a267396dc2be504b7445121d02fc3fc55b7 (patch)
treeb2322abb72d18af3d4c6b1a0bae935feaca63415 /Source/Core/DolphinWX/Frame.cpp
parent0dd05f4a3f4d5b241c7d741d81f7a180e890a327 (diff)
Add hotkeys to select save state slots and to save/load the currently selected slots.
Diffstat (limited to 'Source/Core/DolphinWX/Frame.cpp')
-rw-r--r--Source/Core/DolphinWX/Frame.cpp36
1 files changed, 36 insertions, 0 deletions
diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp
index 97711b9664..8b806ab34a 100644
--- a/Source/Core/DolphinWX/Frame.cpp
+++ b/Source/Core/DolphinWX/Frame.cpp
@@ -70,6 +70,7 @@ extern "C" {
#include "DolphinWX/resources/Dolphin.c" // NOLINT: Dolphin icon
};
+int g_saveSlot = 1;
CRenderFrame::CRenderFrame(wxFrame* parent, wxWindowID id, const wxString& title,
const wxPoint& pos, const wxSize& size, long style)
@@ -276,10 +277,13 @@ EVT_MENU(IDM_UNDOLOADSTATE, CFrame::OnUndoLoadState)
EVT_MENU(IDM_UNDOSAVESTATE, CFrame::OnUndoSaveState)
EVT_MENU(IDM_LOADSTATEFILE, CFrame::OnLoadStateFromFile)
EVT_MENU(IDM_SAVESTATEFILE, CFrame::OnSaveStateToFile)
+EVT_MENU(IDM_SAVESELECTEDSLOT, CFrame::OnSaveCurrentSlot)
+EVT_MENU(IDM_LOADSELECTEDSLOT, CFrame::OnLoadCurrentSlot)
EVT_MENU_RANGE(IDM_LOADSLOT1, IDM_LOADSLOT10, CFrame::OnLoadState)
EVT_MENU_RANGE(IDM_LOADLAST1, IDM_LOADLAST8, CFrame::OnLoadLastState)
EVT_MENU_RANGE(IDM_SAVESLOT1, IDM_SAVESLOT10, CFrame::OnSaveState)
+EVT_MENU_RANGE(IDM_SELECTSLOT1, IDM_SELECTSLOT10, CFrame::OnSelectSlot)
EVT_MENU_RANGE(IDM_FRAMESKIP0, IDM_FRAMESKIP9, CFrame::OnFrameSkip)
EVT_MENU_RANGE(IDM_DRIVE1, IDM_DRIVE24, CFrame::OnBootDrive)
EVT_MENU_RANGE(IDM_CONNECT_WIIMOTE1, IDM_CONNECT_BALANCEBOARD, CFrame::OnConnectWiimote)
@@ -931,6 +935,19 @@ int GetCmdForHotkey(unsigned int key)
case HK_UNDO_SAVE_STATE: return IDM_UNDOSAVESTATE;
case HK_LOAD_STATE_FILE: return IDM_LOADSTATEFILE;
case HK_SAVE_STATE_FILE: return IDM_SAVESTATEFILE;
+
+ case HK_SELECT_STATE_SLOT_1: return IDM_SELECTSLOT1;
+ case HK_SELECT_STATE_SLOT_2: return IDM_SELECTSLOT2;
+ case HK_SELECT_STATE_SLOT_3: return IDM_SELECTSLOT3;
+ case HK_SELECT_STATE_SLOT_4: return IDM_SELECTSLOT4;
+ case HK_SELECT_STATE_SLOT_5: return IDM_SELECTSLOT5;
+ case HK_SELECT_STATE_SLOT_6: return IDM_SELECTSLOT6;
+ case HK_SELECT_STATE_SLOT_7: return IDM_SELECTSLOT7;
+ case HK_SELECT_STATE_SLOT_8: return IDM_SELECTSLOT8;
+ case HK_SELECT_STATE_SLOT_9: return IDM_SELECTSLOT9;
+ case HK_SELECT_STATE_SLOT_10: return IDM_SELECTSLOT10;
+ case HK_SAVE_STATE_SLOT_SELECTED: return IDM_SAVESELECTEDSLOT;
+ case HK_LOAD_STATE_SLOT_SELECTED: return IDM_LOADSELECTEDSLOT;
}
return -1;
@@ -1052,8 +1069,27 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
if (--SConfig::GetInstance().m_Framelimit > 0x19)
SConfig::GetInstance().m_Framelimit = 0x19;
}
+ else if (IsHotkey(event, HK_SAVE_STATE_SLOT_SELECTED))
+ {
+ State::Save(g_saveSlot);
+ }
+ else if (IsHotkey(event, HK_LOAD_STATE_SLOT_SELECTED))
+ {
+ State::Load(g_saveSlot);
+ }
+
else
{
+ for (int i = HK_SELECT_STATE_SLOT_1; i < HK_SELECT_STATE_SLOT_10; ++i)
+ {
+ if (IsHotkey (event, i))
+ {
+ wxCommandEvent slot_event;
+ slot_event.SetId(i + IDM_SELECTSLOT1 - HK_SELECT_STATE_SLOT_1);
+ CFrame::OnSelectSlot(slot_event);
+ }
+ }
+
unsigned int i = NUM_HOTKEYS;
if (!SConfig::GetInstance().m_LocalCoreStartupParameter.bRenderToMain || TASInputHasFocus())
{