mirror of https://github.com/stella-emu/stella.git
add hotkey to decrease current state slot
This commit is contained in:
parent
59d0c7fbda
commit
dd3a58d4ac
|
@ -736,13 +736,19 @@
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Switch current state slot</td>
|
<td>Change to previous state slot</td>
|
||||||
|
<td>Shift + F10</td>
|
||||||
|
<td>Shift + F10</td>
|
||||||
|
</tr>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>Change to next state slot</td>
|
||||||
<td>F10</td>
|
<td>F10</td>
|
||||||
<td>F10</td>
|
<td>F10</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td>Automatically switch state slot</td>
|
<td>Automatically change state slot</td>
|
||||||
<td>Alt + F10</td>
|
<td>Alt + F10</td>
|
||||||
<td>Cmd + F10</td>
|
<td>Cmd + F10</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -2243,7 +2249,7 @@
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td><pre>-autoslot <1|0></pre></td>
|
<td><pre>-autoslot <1|0></pre></td>
|
||||||
<td>Automatically switch to the next available save state slot after
|
<td>Automatically change to the next available save state slot after
|
||||||
saving a ROM state file.</td>
|
saving a ROM state file.</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
|
@ -3395,9 +3401,9 @@
|
||||||
</td>
|
</td>
|
||||||
<td>-saveonexit</td>
|
<td>-saveonexit</td>
|
||||||
</tr><tr>
|
</tr><tr>
|
||||||
<td>Automatically switch...</td>
|
<td>Automatically change...</td>
|
||||||
<td>
|
<td>
|
||||||
Automatically switch to the next available save state slot after saving a ROM state file.
|
Automatically change to the next available save state slot after saving a ROM state file.
|
||||||
</td>
|
</td>
|
||||||
<td>-autoslot</td>
|
<td>-autoslot</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
|
@ -406,7 +406,8 @@ PhysicalKeyboardHandler::EventMappingArray PhysicalKeyboardHandler::DefaultCommo
|
||||||
{Event::ConsoleRightDiffB, KBDK_F8},
|
{Event::ConsoleRightDiffB, KBDK_F8},
|
||||||
{Event::SaveState, KBDK_F9},
|
{Event::SaveState, KBDK_F9},
|
||||||
{Event::SaveAllStates, KBDK_F9, MOD3},
|
{Event::SaveAllStates, KBDK_F9, MOD3},
|
||||||
{Event::ChangeState, KBDK_F10},
|
{Event::PreviousState, KBDK_F10, KBDM_SHIFT},
|
||||||
|
{Event::NextState, KBDK_F10},
|
||||||
{Event::ToggleAutoSlot, KBDK_F10, MOD3},
|
{Event::ToggleAutoSlot, KBDK_F10, MOD3},
|
||||||
{Event::LoadState, KBDK_F11},
|
{Event::LoadState, KBDK_F11},
|
||||||
{Event::LoadAllStates, KBDK_F11, MOD3},
|
{Event::LoadAllStates, KBDK_F11, MOD3},
|
||||||
|
|
|
@ -297,9 +297,13 @@ void StateManager::saveState(int slot)
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void StateManager::changeState()
|
void StateManager::changeState(int direction)
|
||||||
{
|
{
|
||||||
myCurrentSlot = (myCurrentSlot + 1) % 10;
|
myCurrentSlot += direction;
|
||||||
|
if (myCurrentSlot < 0)
|
||||||
|
myCurrentSlot = 9;
|
||||||
|
else
|
||||||
|
myCurrentSlot %= 10;
|
||||||
|
|
||||||
// Print appropriate message
|
// Print appropriate message
|
||||||
ostringstream buf;
|
ostringstream buf;
|
||||||
|
|
|
@ -114,9 +114,9 @@ class StateManager
|
||||||
void saveState(int slot = -1);
|
void saveState(int slot = -1);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Switches to the next higher state slot (circular queue style).
|
Switches to the next higher or lower state slot (circular queue style).
|
||||||
*/
|
*/
|
||||||
void changeState();
|
void changeState(int direction);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Toggles auto slot mode.
|
Toggles auto slot mode.
|
||||||
|
|
|
@ -144,7 +144,8 @@ void DebuggerDialog::handleKeyDown(StellaKey key, StellaMod mod, bool repeated)
|
||||||
|
|
||||||
case Event::SaveState:
|
case Event::SaveState:
|
||||||
case Event::SaveAllStates:
|
case Event::SaveAllStates:
|
||||||
case Event::ChangeState:
|
case Event::PreviousState :
|
||||||
|
case Event::NextState:
|
||||||
case Event::LoadState:
|
case Event::LoadState:
|
||||||
case Event::LoadAllStates:
|
case Event::LoadAllStates:
|
||||||
|
|
||||||
|
|
|
@ -93,7 +93,7 @@ class Event
|
||||||
OptionsMenuMode, CmdMenuMode, DebuggerMode, ExitMode,
|
OptionsMenuMode, CmdMenuMode, DebuggerMode, ExitMode,
|
||||||
TakeSnapshot, ToggleContSnapshots, ToggleContSnapshotsFrame,
|
TakeSnapshot, ToggleContSnapshots, ToggleContSnapshotsFrame,
|
||||||
|
|
||||||
ChangeState, LoadState, SaveState,
|
NextState, PreviousState, LoadState, SaveState,
|
||||||
SaveAllStates, LoadAllStates,
|
SaveAllStates, LoadAllStates,
|
||||||
ToggleAutoSlot, ToggleTimeMachine, TimeMachineMode,
|
ToggleAutoSlot, ToggleTimeMachine, TimeMachineMode,
|
||||||
Rewind1Menu, Rewind10Menu, RewindAllMenu,
|
Rewind1Menu, Rewind10Menu, RewindAllMenu,
|
||||||
|
@ -134,7 +134,7 @@ class Event
|
||||||
};
|
};
|
||||||
|
|
||||||
// Event list version, update only if the id of existing(!) event types changed
|
// Event list version, update only if the id of existing(!) event types changed
|
||||||
static constexpr Int32 VERSION = 2;
|
static constexpr Int32 VERSION = 3;
|
||||||
|
|
||||||
using EventSet = std::set<Event::Type>;
|
using EventSet = std::set<Event::Type>;
|
||||||
|
|
||||||
|
|
|
@ -656,8 +656,12 @@ void EventHandler::handleEvent(Event::Type event, Int32 value, bool repeated)
|
||||||
myOSystem.frameBuffer().showMessage(myOSystem.state().rewindManager().saveAllStates());
|
myOSystem.frameBuffer().showMessage(myOSystem.state().rewindManager().saveAllStates());
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Event::ChangeState:
|
case Event::NextState:
|
||||||
if(pressed) myOSystem.state().changeState();
|
if(pressed) myOSystem.state().changeState(1);
|
||||||
|
return;
|
||||||
|
|
||||||
|
case Event::PreviousState:
|
||||||
|
if (pressed) myOSystem.state().changeState(-1);
|
||||||
return;
|
return;
|
||||||
|
|
||||||
case Event::ToggleAutoSlot:
|
case Event::ToggleAutoSlot:
|
||||||
|
@ -1810,9 +1814,13 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { {
|
||||||
{ Event::ConsoleRightDiffB, "P1 Difficulty B", "" },
|
{ Event::ConsoleRightDiffB, "P1 Difficulty B", "" },
|
||||||
{ Event::ConsoleRightDiffToggle, "P1 Toggle Difficulty", "" },
|
{ Event::ConsoleRightDiffToggle, "P1 Toggle Difficulty", "" },
|
||||||
{ Event::SaveState, "Save state", "" },
|
{ Event::SaveState, "Save state", "" },
|
||||||
{ Event::ChangeState, "Change state slot", "" },
|
{ Event::SaveAllStates, "Save all TM states of current game", "" },
|
||||||
|
{ Event::PreviousState, "Change to previous state slot", "" },
|
||||||
|
{ Event::NextState, "Change to next state slot", "" },
|
||||||
{ Event::ToggleAutoSlot, "Toggle automatic state slot change", "" },
|
{ Event::ToggleAutoSlot, "Toggle automatic state slot change", "" },
|
||||||
{ Event::LoadState, "Load state", "" },
|
{ Event::LoadState, "Load state", "" },
|
||||||
|
{ Event::LoadAllStates, "Load saved TM states for current game", "" },
|
||||||
|
|
||||||
#ifdef PNG_SUPPORT
|
#ifdef PNG_SUPPORT
|
||||||
{ Event::TakeSnapshot, "Snapshot", "" },
|
{ Event::TakeSnapshot, "Snapshot", "" },
|
||||||
{ Event::ToggleContSnapshots, "Save continuous snapsh. (as defined)", "" },
|
{ Event::ToggleContSnapshots, "Save continuous snapsh. (as defined)", "" },
|
||||||
|
@ -1939,8 +1947,6 @@ EventHandler::EmulActionList EventHandler::ourEmulActionList = { {
|
||||||
{ Event::ToggleGrabMouse, "Toggle grab mouse", "" },
|
{ Event::ToggleGrabMouse, "Toggle grab mouse", "" },
|
||||||
{ Event::ToggleSAPortOrder, "Swap Stelladaptor port ordering", "" },
|
{ Event::ToggleSAPortOrder, "Swap Stelladaptor port ordering", "" },
|
||||||
|
|
||||||
{ Event::SaveAllStates, "Save all TM states of current game", "" },
|
|
||||||
{ Event::LoadAllStates, "Load saved TM states for current game", "" },
|
|
||||||
{ Event::ToggleTimeMachine, "Toggle 'Time Machine' mode", "" },
|
{ Event::ToggleTimeMachine, "Toggle 'Time Machine' mode", "" },
|
||||||
{ Event::TimeMachineMode, "Toggle 'Time Machine' UI", "" },
|
{ Event::TimeMachineMode, "Toggle 'Time Machine' UI", "" },
|
||||||
{ Event::RewindPause, "Rewind one state & enter Pause mode", "" },
|
{ Event::RewindPause, "Rewind one state & enter Pause mode", "" },
|
||||||
|
@ -2026,8 +2032,8 @@ const Event::EventSet EventHandler::AudioVideoEvents = {
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
const Event::EventSet EventHandler::StateEvents = {
|
const Event::EventSet EventHandler::StateEvents = {
|
||||||
Event::ChangeState, Event::LoadState, Event::SaveState, Event::TimeMachineMode,
|
Event::NextState, Event::PreviousState, Event::LoadState, Event::SaveState,
|
||||||
Event::RewindPause, Event::UnwindPause, Event::ToggleTimeMachine,
|
Event::TimeMachineMode, Event::RewindPause, Event::UnwindPause, Event::ToggleTimeMachine,
|
||||||
Event::Rewind1Menu, Event::Rewind10Menu, Event::RewindAllMenu,
|
Event::Rewind1Menu, Event::Rewind10Menu, Event::RewindAllMenu,
|
||||||
Event::Unwind1Menu, Event::Unwind10Menu, Event::UnwindAllMenu,
|
Event::Unwind1Menu, Event::Unwind10Menu, Event::UnwindAllMenu,
|
||||||
Event::SaveAllStates, Event::LoadAllStates, Event::ToggleAutoSlot,
|
Event::SaveAllStates, Event::LoadAllStates, Event::ToggleAutoSlot,
|
||||||
|
|
|
@ -468,7 +468,7 @@ class EventHandler
|
||||||
#else
|
#else
|
||||||
PNG_SIZE = 0,
|
PNG_SIZE = 0,
|
||||||
#endif
|
#endif
|
||||||
EMUL_ACTIONLIST_SIZE = 143 + PNG_SIZE + COMBO_SIZE,
|
EMUL_ACTIONLIST_SIZE = 144 + PNG_SIZE + COMBO_SIZE,
|
||||||
MENU_ACTIONLIST_SIZE = 18
|
MENU_ACTIONLIST_SIZE = 18
|
||||||
;
|
;
|
||||||
|
|
||||||
|
|
|
@ -469,7 +469,7 @@ void Settings::usage() const
|
||||||
<< endl
|
<< endl
|
||||||
<< " -saveonexit <none|current Automatically save state(s) when exiting emulation\n"
|
<< " -saveonexit <none|current Automatically save state(s) when exiting emulation\n"
|
||||||
<< " all>\n"
|
<< " all>\n"
|
||||||
<< " -autoslot <1|0> Automatically switch to next save slot when\n"
|
<< " -autoslot <1|0> Automatically change to next save slot when\n"
|
||||||
<< " state saving\n"
|
<< " state saving\n"
|
||||||
<< endl
|
<< endl
|
||||||
<< " -rominfo <rom> Display detailed information for the given ROM\n"
|
<< " -rominfo <rom> Display detailed information for the given ROM\n"
|
||||||
|
|
|
@ -168,7 +168,7 @@ void CommandDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
|
|
||||||
case kStateSlotCmd:
|
case kStateSlotCmd:
|
||||||
{
|
{
|
||||||
event = Event::ChangeState;
|
event = Event::NextState;
|
||||||
stateCmd = true;
|
stateCmd = true;
|
||||||
int slot = (instance().state().currentSlot() + 1) % 10;
|
int slot = (instance().state().currentSlot() + 1) % 10;
|
||||||
updateSlot(slot);
|
updateSlot(slot);
|
||||||
|
|
|
@ -495,7 +495,7 @@ void DeveloperDialog::addTimeMachineTab(const GUI::Font& font)
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
|
||||||
myAutoSlotWidget = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Automatically switch save state slots");
|
myAutoSlotWidget = new CheckboxWidget(myTab, font, HBORDER, ypos + 1, "Automatically change save state slots");
|
||||||
wid.push_back(myAutoSlotWidget);
|
wid.push_back(myAutoSlotWidget);
|
||||||
ypos += lineHeight + VGAP;
|
ypos += lineHeight + VGAP;
|
||||||
|
|
||||||
|
|
|
@ -191,7 +191,7 @@ void MinUICommandDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
|
|
||||||
case kStateSlotCmd:
|
case kStateSlotCmd:
|
||||||
{
|
{
|
||||||
event = Event::ChangeState;
|
event = Event::NextState;
|
||||||
stateCmd = true;
|
stateCmd = true;
|
||||||
int slot = (instance().state().currentSlot() + 1) % 10;
|
int slot = (instance().state().currentSlot() + 1) % 10;
|
||||||
updateSlot(slot);
|
updateSlot(slot);
|
||||||
|
|
Loading…
Reference in New Issue