mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-07-29 00:59:44 -06:00
Merge remote-tracking branch 'John-Peterson/state'
This commit is contained in:
@ -204,13 +204,14 @@ EVT_MENU_RANGE(IDM_LOGWINDOW, IDM_VIDEOWINDOW, CFrame::OnToggleWindow)
|
||||
|
||||
EVT_MENU(IDM_PURGECACHE, CFrame::GameListChanged)
|
||||
|
||||
EVT_MENU(IDM_LOADLASTSTATE, CFrame::OnLoadLastState)
|
||||
EVT_MENU(IDM_SAVEFIRSTSTATE, CFrame::OnSaveFirstState)
|
||||
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_RANGE(IDM_LOADSLOT1, IDM_LOADSLOT8, CFrame::OnLoadState)
|
||||
EVT_MENU_RANGE(IDM_LOADLAST1, IDM_LOADLAST8, CFrame::OnLoadLastState)
|
||||
EVT_MENU_RANGE(IDM_SAVESLOT1, IDM_SAVESLOT8, CFrame::OnSaveState)
|
||||
EVT_MENU_RANGE(IDM_FRAMESKIP0, IDM_FRAMESKIP9, CFrame::OnFrameSkip)
|
||||
EVT_MENU_RANGE(IDM_DRIVE1, IDM_DRIVE24, CFrame::OnBootDrive)
|
||||
@ -719,104 +720,56 @@ int GetCmdForHotkey(unsigned int key)
|
||||
{
|
||||
switch (key)
|
||||
{
|
||||
case HK_OPEN:
|
||||
return wxID_OPEN;
|
||||
case HK_OPEN: return wxID_OPEN;
|
||||
case HK_CHANGE_DISC: return IDM_CHANGEDISC;
|
||||
case HK_REFRESH_LIST: return wxID_REFRESH;
|
||||
case HK_PLAY_PAUSE: return IDM_PLAY;
|
||||
case HK_STOP: return IDM_STOP;
|
||||
case HK_RESET: return IDM_RESET;
|
||||
case HK_FRAME_ADVANCE: return IDM_FRAMESTEP;
|
||||
case HK_START_RECORDING: return IDM_RECORD;
|
||||
case HK_PLAY_RECORDING: return IDM_PLAYRECORD;
|
||||
case HK_EXPORT_RECORDING: return IDM_RECORDEXPORT;
|
||||
case HK_READ_ONLY_MODE: return IDM_RECORDREADONLY;
|
||||
case HK_FULLSCREEN: return IDM_TOGGLE_FULLSCREEN;
|
||||
case HK_SCREENSHOT: return IDM_SCREENSHOT;
|
||||
case HK_EXIT: return wxID_EXIT;
|
||||
|
||||
case HK_CHANGE_DISC:
|
||||
return IDM_CHANGEDISC;
|
||||
case HK_WIIMOTE1_CONNECT: return IDM_CONNECT_WIIMOTE1;
|
||||
case HK_WIIMOTE2_CONNECT: return IDM_CONNECT_WIIMOTE2;
|
||||
case HK_WIIMOTE3_CONNECT: return IDM_CONNECT_WIIMOTE3;
|
||||
case HK_WIIMOTE4_CONNECT: return IDM_CONNECT_WIIMOTE4;
|
||||
|
||||
case HK_REFRESH_LIST:
|
||||
return wxID_REFRESH;
|
||||
case HK_LOAD_STATE_SLOT_1: return IDM_LOADSLOT1;
|
||||
case HK_LOAD_STATE_SLOT_2: return IDM_LOADSLOT2;
|
||||
case HK_LOAD_STATE_SLOT_3: return IDM_LOADSLOT3;
|
||||
case HK_LOAD_STATE_SLOT_4: return IDM_LOADSLOT4;
|
||||
case HK_LOAD_STATE_SLOT_5: return IDM_LOADSLOT5;
|
||||
case HK_LOAD_STATE_SLOT_6: return IDM_LOADSLOT6;
|
||||
case HK_LOAD_STATE_SLOT_7: return IDM_LOADSLOT7;
|
||||
case HK_LOAD_STATE_SLOT_8: return IDM_LOADSLOT8;
|
||||
|
||||
case HK_PLAY_PAUSE:
|
||||
return IDM_PLAY;
|
||||
case HK_SAVE_STATE_SLOT_1: return IDM_SAVESLOT1;
|
||||
case HK_SAVE_STATE_SLOT_2: return IDM_SAVESLOT2;
|
||||
case HK_SAVE_STATE_SLOT_3: return IDM_SAVESLOT3;
|
||||
case HK_SAVE_STATE_SLOT_4: return IDM_SAVESLOT4;
|
||||
case HK_SAVE_STATE_SLOT_5: return IDM_SAVESLOT5;
|
||||
case HK_SAVE_STATE_SLOT_6: return IDM_SAVESLOT6;
|
||||
case HK_SAVE_STATE_SLOT_7: return IDM_SAVESLOT7;
|
||||
case HK_SAVE_STATE_SLOT_8: return IDM_SAVESLOT8;
|
||||
|
||||
case HK_STOP:
|
||||
return IDM_STOP;
|
||||
case HK_LOAD_LAST_STATE_1: return IDM_LOADLAST1;
|
||||
case HK_LOAD_LAST_STATE_2: return IDM_LOADLAST2;
|
||||
case HK_LOAD_LAST_STATE_3: return IDM_LOADLAST3;
|
||||
case HK_LOAD_LAST_STATE_4: return IDM_LOADLAST4;
|
||||
case HK_LOAD_LAST_STATE_5: return IDM_LOADLAST5;
|
||||
case HK_LOAD_LAST_STATE_6: return IDM_LOADLAST6;
|
||||
case HK_LOAD_LAST_STATE_7: return IDM_LOADLAST7;
|
||||
case HK_LOAD_LAST_STATE_8: return IDM_LOADLAST8;
|
||||
|
||||
case HK_RESET:
|
||||
return IDM_RESET;
|
||||
|
||||
case HK_FRAME_ADVANCE:
|
||||
return IDM_FRAMESTEP;
|
||||
|
||||
case HK_START_RECORDING:
|
||||
return IDM_RECORD;
|
||||
|
||||
case HK_PLAY_RECORDING:
|
||||
return IDM_PLAYRECORD;
|
||||
|
||||
case HK_EXPORT_RECORDING:
|
||||
return IDM_RECORDEXPORT;
|
||||
|
||||
case HK_READ_ONLY_MODE:
|
||||
return IDM_RECORDREADONLY;
|
||||
|
||||
case HK_FULLSCREEN:
|
||||
return IDM_TOGGLE_FULLSCREEN;
|
||||
|
||||
case HK_SCREENSHOT:
|
||||
return IDM_SCREENSHOT;
|
||||
|
||||
case HK_WIIMOTE1_CONNECT:
|
||||
return IDM_CONNECT_WIIMOTE1;
|
||||
|
||||
case HK_WIIMOTE2_CONNECT:
|
||||
return IDM_CONNECT_WIIMOTE2;
|
||||
|
||||
case HK_WIIMOTE3_CONNECT:
|
||||
return IDM_CONNECT_WIIMOTE3;
|
||||
|
||||
case HK_WIIMOTE4_CONNECT:
|
||||
return IDM_CONNECT_WIIMOTE4;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_1:
|
||||
return IDM_LOADSLOT1;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_2:
|
||||
return IDM_LOADSLOT2;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_3:
|
||||
return IDM_LOADSLOT3;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_4:
|
||||
return IDM_LOADSLOT4;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_5:
|
||||
return IDM_LOADSLOT5;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_6:
|
||||
return IDM_LOADSLOT6;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_7:
|
||||
return IDM_LOADSLOT7;
|
||||
|
||||
case HK_LOAD_STATE_SLOT_8:
|
||||
return IDM_LOADSLOT8;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_1:
|
||||
return IDM_SAVESLOT1;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_2:
|
||||
return IDM_SAVESLOT2;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_3:
|
||||
return IDM_SAVESLOT3;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_4:
|
||||
return IDM_SAVESLOT4;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_5:
|
||||
return IDM_SAVESLOT5;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_6:
|
||||
return IDM_SAVESLOT6;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_7:
|
||||
return IDM_SAVESLOT7;
|
||||
|
||||
case HK_SAVE_STATE_SLOT_8:
|
||||
return IDM_SAVESLOT8;
|
||||
case HK_SAVE_FIRST_STATE: return IDM_SAVEFIRSTSTATE;
|
||||
case HK_UNDO_LOAD_STATE: return IDM_UNDOLOADSTATE;
|
||||
case HK_UNDO_SAVE_STATE: return IDM_UNDOSAVESTATE;
|
||||
}
|
||||
|
||||
return -1;
|
||||
@ -859,6 +812,8 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
|
||||
// Screenshot hotkey
|
||||
else if (IsHotkey(event, HK_SCREENSHOT))
|
||||
Core::SaveScreenShot();
|
||||
else if (IsHotkey(event, HK_EXIT))
|
||||
wxPostEvent(this, wxCommandEvent(wxID_EXIT));
|
||||
// Wiimote connect and disconnect hotkeys
|
||||
else if (IsHotkey(event, HK_WIIMOTE1_CONNECT))
|
||||
WiimoteId = 0;
|
||||
@ -868,28 +823,6 @@ void CFrame::OnKeyDown(wxKeyEvent& event)
|
||||
WiimoteId = 2;
|
||||
else if (IsHotkey(event, HK_WIIMOTE4_CONNECT))
|
||||
WiimoteId = 3;
|
||||
// State save and state load hotkeys
|
||||
/*else if (event.GetKeyCode() >= WXK_F1 && event.GetKeyCode() <= WXK_F8)
|
||||
{
|
||||
int slot_number = event.GetKeyCode() - WXK_F1 + 1;
|
||||
if (event.GetModifiers() == wxMOD_NONE)
|
||||
State::Load(slot_number);
|
||||
else if (event.GetModifiers() == wxMOD_SHIFT)
|
||||
State::Save(slot_number);
|
||||
else
|
||||
event.Skip();
|
||||
}*/
|
||||
else if (event.GetKeyCode() == WXK_F11 && event.GetModifiers() == wxMOD_NONE)
|
||||
State::LoadLastSaved();
|
||||
else if (event.GetKeyCode() == WXK_F12)
|
||||
{
|
||||
if (event.GetModifiers() == wxMOD_NONE)
|
||||
State::UndoSaveState();
|
||||
else if (event.GetModifiers() == wxMOD_SHIFT)
|
||||
State::UndoLoadState();
|
||||
else
|
||||
event.Skip();
|
||||
}
|
||||
else
|
||||
{
|
||||
unsigned int i = NUM_HOTKEYS;
|
||||
|
@ -289,6 +289,7 @@ private:
|
||||
void OnLoadStateFromFile(wxCommandEvent& event);
|
||||
void OnSaveStateToFile(wxCommandEvent& event);
|
||||
void OnLoadLastState(wxCommandEvent& event);
|
||||
void OnSaveFirstState(wxCommandEvent& event);
|
||||
void OnUndoLoadState(wxCommandEvent& event);
|
||||
void OnUndoSaveState(wxCommandEvent& event);
|
||||
|
||||
|
@ -150,26 +150,25 @@ void CFrame::CreateMenu()
|
||||
emulationMenu->Append(IDM_SAVESTATE, _("Sa&ve State"), saveMenu);
|
||||
|
||||
saveMenu->Append(IDM_SAVESTATEFILE, _("Save State..."));
|
||||
loadMenu->Append(IDM_UNDOSAVESTATE, _("Last Overwritten State") + wxString(wxT("\tF12")));
|
||||
saveMenu->Append(IDM_SAVEFIRSTSTATE, GetMenuLabel(HK_SAVE_FIRST_STATE));
|
||||
loadMenu->Append(IDM_UNDOSAVESTATE, GetMenuLabel(HK_UNDO_SAVE_STATE));
|
||||
saveMenu->AppendSeparator();
|
||||
|
||||
loadMenu->Append(IDM_LOADSTATEFILE, _("Load State..."));
|
||||
|
||||
// Reserve F11 for the "step into" function in the debugger
|
||||
if (g_pCodeWindow)
|
||||
loadMenu->Append(IDM_LOADLASTSTATE, _("Last Saved State"));
|
||||
else
|
||||
loadMenu->Append(IDM_LOADLASTSTATE, _("Last Saved State") + wxString(wxT("\tF11")));
|
||||
|
||||
loadMenu->Append(IDM_UNDOLOADSTATE, _("Undo Load State") + wxString(wxT("\tShift+F12")));
|
||||
loadMenu->Append(IDM_UNDOLOADSTATE, GetMenuLabel(HK_UNDO_LOAD_STATE));
|
||||
loadMenu->AppendSeparator();
|
||||
|
||||
for (int i = 1; i <= 8; i++)
|
||||
for (int i = 1; i <= State::NUM_STATES; i++)
|
||||
{
|
||||
loadMenu->Append(IDM_LOADSLOT1 + i - 1, GetMenuLabel(HK_LOAD_STATE_SLOT_1 + i - 1));
|
||||
saveMenu->Append(IDM_SAVESLOT1 + i - 1, GetMenuLabel(HK_SAVE_STATE_SLOT_1 + i - 1));
|
||||
}
|
||||
|
||||
loadMenu->AppendSeparator();
|
||||
for (int i = 1; i <= State::NUM_STATES; i++)
|
||||
loadMenu->Append(IDM_LOADLAST1 + i - 1, GetMenuLabel(HK_LOAD_LAST_STATE_1 + i - 1));
|
||||
|
||||
m_MenuBar->Append(emulationMenu, _("&Emulation"));
|
||||
|
||||
// Options menu
|
||||
@ -360,6 +359,9 @@ wxString CFrame::GetMenuLabel(int Id)
|
||||
case HK_SCREENSHOT:
|
||||
Label = _("Take Screenshot");
|
||||
break;
|
||||
case HK_EXIT:
|
||||
Label = _("Exit");
|
||||
break;
|
||||
|
||||
case HK_WIIMOTE1_CONNECT:
|
||||
case HK_WIIMOTE2_CONNECT:
|
||||
@ -393,6 +395,22 @@ wxString CFrame::GetMenuLabel(int Id)
|
||||
Id - HK_SAVE_STATE_SLOT_1 + 1);
|
||||
break;
|
||||
|
||||
case HK_LOAD_LAST_STATE_1:
|
||||
case HK_LOAD_LAST_STATE_2:
|
||||
case HK_LOAD_LAST_STATE_3:
|
||||
case HK_LOAD_LAST_STATE_4:
|
||||
case HK_LOAD_LAST_STATE_5:
|
||||
case HK_LOAD_LAST_STATE_6:
|
||||
case HK_LOAD_LAST_STATE_7:
|
||||
case HK_LOAD_LAST_STATE_8:
|
||||
Label = wxString::Format(_("Last %i"),
|
||||
Id - HK_LOAD_LAST_STATE_1 + 1);
|
||||
break;
|
||||
|
||||
case HK_SAVE_FIRST_STATE: Label = wxString("Save Oldest State"); break;
|
||||
case HK_UNDO_LOAD_STATE: Label = wxString("Undo Load State"); break;
|
||||
case HK_UNDO_SAVE_STATE: Label = wxString("Undo Save State"); break;
|
||||
|
||||
default:
|
||||
Label = wxString::Format(_("Undefined %i"), Id);
|
||||
}
|
||||
@ -1437,10 +1455,20 @@ void CFrame::OnSaveStateToFile(wxCommandEvent& WXUNUSED (event))
|
||||
State::SaveAs(WxStrToStr(path));
|
||||
}
|
||||
|
||||
void CFrame::OnLoadLastState(wxCommandEvent& WXUNUSED (event))
|
||||
void CFrame::OnLoadLastState(wxCommandEvent& event)
|
||||
{
|
||||
if (Core::IsRunningAndStarted())
|
||||
State::LoadLastSaved();
|
||||
{
|
||||
int id = event.GetId();
|
||||
int slot = id - IDM_LOADLAST1 + 1;
|
||||
State::LoadLastSaved(slot);
|
||||
}
|
||||
}
|
||||
|
||||
void CFrame::OnSaveFirstState(wxCommandEvent& WXUNUSED(event))
|
||||
{
|
||||
if (Core::GetState() != Core::CORE_UNINITIALIZED)
|
||||
State::SaveFirstSaved();
|
||||
}
|
||||
|
||||
void CFrame::OnUndoLoadState(wxCommandEvent& WXUNUSED (event))
|
||||
|
@ -25,7 +25,7 @@ enum
|
||||
{
|
||||
IDM_LOADSTATE = 200, // File menu
|
||||
IDM_SAVESTATE,
|
||||
IDM_LOADLASTSTATE,
|
||||
IDM_SAVEFIRSTSTATE,
|
||||
IDM_UNDOLOADSTATE,
|
||||
IDM_UNDOSAVESTATE,
|
||||
IDM_LOADSTATEFILE,
|
||||
@ -46,6 +46,14 @@ enum
|
||||
IDM_LOADSLOT6,
|
||||
IDM_LOADSLOT7,
|
||||
IDM_LOADSLOT8,
|
||||
IDM_LOADLAST1,
|
||||
IDM_LOADLAST2,
|
||||
IDM_LOADLAST3,
|
||||
IDM_LOADLAST4,
|
||||
IDM_LOADLAST5,
|
||||
IDM_LOADLAST6,
|
||||
IDM_LOADLAST7,
|
||||
IDM_LOADLAST8,
|
||||
IDM_FRAMESKIP0,
|
||||
IDM_FRAMESKIP1,
|
||||
IDM_FRAMESKIP2,
|
||||
|
@ -179,6 +179,7 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
||||
|
||||
_("Toggle Fullscreen"),
|
||||
_("Take Screenshot"),
|
||||
_("Exit"),
|
||||
|
||||
_("Connect Wiimote 1"),
|
||||
_("Connect Wiimote 2"),
|
||||
@ -201,7 +202,20 @@ void HotkeyConfigDialog::CreateHotkeyGUIControls(void)
|
||||
_("Save State Slot 5"),
|
||||
_("Save State Slot 6"),
|
||||
_("Save State Slot 7"),
|
||||
_("Save State Slot 8")
|
||||
_("Save State Slot 8"),
|
||||
|
||||
_("Load State Last 1"),
|
||||
_("Load State Last 2"),
|
||||
_("Load State Last 3"),
|
||||
_("Load State Last 4"),
|
||||
_("Load State Last 5"),
|
||||
_("Load State Last 6"),
|
||||
_("Load State Last 7"),
|
||||
_("Load State Last 8"),
|
||||
|
||||
_("Save Oldest State"),
|
||||
_("Undo Load State"),
|
||||
_("Undo Save State")
|
||||
};
|
||||
|
||||
const int page_breaks[3] = {HK_OPEN, HK_LOAD_STATE_SLOT_1, NUM_HOTKEYS};
|
||||
|
Reference in New Issue
Block a user