Finish renaming quicksave slot 0 to 10 (resolves #3112)
This commit is contained in:
parent
7f33a8836d
commit
007d862c58
|
@ -5,6 +5,10 @@ namespace BizHawk.Client.Common
|
|||
{
|
||||
public sealed class SaveStateApi : ISaveStateApi
|
||||
{
|
||||
private const string ERR_MSG_NOT_A_SLOT = "saveslots are 1 through 10";
|
||||
|
||||
private const string ERR_MSG_USE_SLOT_10 = "pass 10 for slot 10, not 0";
|
||||
|
||||
private readonly IMainFormForApi _mainForm;
|
||||
|
||||
private readonly Action<string> LogCallback;
|
||||
|
@ -28,14 +32,26 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void LoadSlot(int slotNum, bool suppressOSD)
|
||||
{
|
||||
if (slotNum is >= 0 and <= 9) _mainForm.LoadQuickSave(slotNum, suppressOSD: suppressOSD);
|
||||
if (slotNum is < 0 or > 10) throw new ArgumentOutOfRangeException(paramName: nameof(slotNum), message: ERR_MSG_NOT_A_SLOT);
|
||||
if (slotNum is 0)
|
||||
{
|
||||
LogCallback(ERR_MSG_USE_SLOT_10);
|
||||
slotNum = 10;
|
||||
}
|
||||
_mainForm.LoadQuickSave(slotNum, suppressOSD: suppressOSD);
|
||||
}
|
||||
|
||||
public void Save(string path, bool suppressOSD) => _mainForm.SaveState(path, path, true, suppressOSD);
|
||||
|
||||
public void SaveSlot(int slotNum, bool suppressOSD)
|
||||
{
|
||||
if (slotNum is >= 0 and <= 9) _mainForm.SaveQuickSave(slotNum, suppressOSD: suppressOSD, fromLua: true);
|
||||
if (slotNum is < 0 or > 10) throw new ArgumentOutOfRangeException(paramName: nameof(slotNum), message: ERR_MSG_NOT_A_SLOT);
|
||||
if (slotNum is 0)
|
||||
{
|
||||
LogCallback(ERR_MSG_USE_SLOT_10);
|
||||
slotNum = 10;
|
||||
}
|
||||
_mainForm.SaveQuickSave(slotNum, suppressOSD: suppressOSD, fromLua: true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,4 +1,5 @@
|
|||
using System.IO;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
using BizHawk.Common;
|
||||
using BizHawk.Emulation.Common;
|
||||
|
@ -22,21 +23,21 @@ namespace BizHawk.Client.Common
|
|||
return;
|
||||
}
|
||||
|
||||
for (int i = 0; i < 10; i++)
|
||||
for (int i = 1; i <= 10; i++)
|
||||
{
|
||||
if (movie is ITasMovie tasMovie)
|
||||
{
|
||||
_slots[(i + 1) % 10] = i < tasMovie.Branches.Count;
|
||||
_slots[i - 1] = (i - 1) < tasMovie.Branches.Count;
|
||||
}
|
||||
else
|
||||
{
|
||||
var file = new FileInfo($"{saveStatePrefix}.QuickSave{i}.State");
|
||||
var file = new FileInfo($"{saveStatePrefix}.QuickSave{i % 10}.State");
|
||||
if (file.Directory != null && file.Directory.Exists == false)
|
||||
{
|
||||
file.Directory.Create();
|
||||
}
|
||||
|
||||
_slots[i] = file.Exists;
|
||||
_slots[i - 1] = file.Exists;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -54,7 +55,7 @@ namespace BizHawk.Client.Common
|
|||
}
|
||||
|
||||
Update(emulator, movie, savestatePrefix);
|
||||
return _slots[slot];
|
||||
return _slots[slot - 1];
|
||||
}
|
||||
|
||||
public void ClearRedoList()
|
||||
|
@ -67,10 +68,11 @@ namespace BizHawk.Client.Common
|
|||
|
||||
public void ToggleRedo(IMovie movie, int slot)
|
||||
{
|
||||
if (0.RangeTo(9).Contains(slot) && !(movie is ITasMovie)) _redo[slot] ^= true;
|
||||
if (slot is >= 1 and <= 10 && movie is not ITasMovie) _redo[slot - 1] ^= true;
|
||||
}
|
||||
|
||||
public bool IsRedo(IMovie movie, int slot) => 0.RangeTo(9).Contains(slot) && !(movie is ITasMovie) && _redo[slot];
|
||||
public bool IsRedo(IMovie movie, int slot)
|
||||
=> slot is >= 1 and <= 10 && movie is not ITasMovie && _redo[slot - 1];
|
||||
|
||||
public void SwapBackupSavestate(IMovie movie, string path, int currentSlot)
|
||||
{
|
||||
|
|
|
@ -74,7 +74,7 @@ namespace BizHawk.Client.Common
|
|||
Bind("Save States", "Save State 7", "Shift+F7");
|
||||
Bind("Save States", "Save State 8", "Shift+F8");
|
||||
Bind("Save States", "Save State 9", "Shift+F9");
|
||||
Bind("Save States", "Save State 0", "Shift+F10");
|
||||
Bind("Save States", "Save State 10", "Shift+F10");
|
||||
Bind("Save States", "Load State 1", "F1");
|
||||
Bind("Save States", "Load State 2", "F2");
|
||||
Bind("Save States", "Load State 3", "F3");
|
||||
|
@ -84,7 +84,7 @@ namespace BizHawk.Client.Common
|
|||
Bind("Save States", "Load State 7", "F7");
|
||||
Bind("Save States", "Load State 8", "F8");
|
||||
Bind("Save States", "Load State 9", "F9");
|
||||
Bind("Save States", "Load State 0", "F10");
|
||||
Bind("Save States", "Load State 10", "F10");
|
||||
Bind("Save States", "Select State 1", "Number1");
|
||||
Bind("Save States", "Select State 2", "Number2");
|
||||
Bind("Save States", "Select State 3", "Number3");
|
||||
|
@ -94,7 +94,7 @@ namespace BizHawk.Client.Common
|
|||
Bind("Save States", "Select State 7", "Number7");
|
||||
Bind("Save States", "Select State 8", "Number8");
|
||||
Bind("Save States", "Select State 9", "Number9");
|
||||
Bind("Save States", "Select State 0", "Number0");
|
||||
Bind("Save States", "Select State 10", "Number0");
|
||||
Bind("Save States", "Quick Load", "P");
|
||||
Bind("Save States", "Quick Save", "I");
|
||||
Bind("Save States", "Save Named State");
|
||||
|
|
|
@ -523,7 +523,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
//
|
||||
// SaveState0MenuItem
|
||||
//
|
||||
this.SaveState0MenuItem.Text = "0";
|
||||
this.SaveState0MenuItem.Text = "10";
|
||||
this.SaveState0MenuItem.Click += new System.EventHandler(this.QuickSavestateMenuItem_Click);
|
||||
//
|
||||
// SaveNamedStateMenuItem
|
||||
|
@ -604,7 +604,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
//
|
||||
// LoadState0MenuItem
|
||||
//
|
||||
this.LoadState0MenuItem.Text = "0";
|
||||
this.LoadState0MenuItem.Text = "10";
|
||||
this.LoadState0MenuItem.Click += new System.EventHandler(this.QuickLoadstateMenuItem_Click);
|
||||
//
|
||||
// LoadNamedStateMenuItem
|
||||
|
@ -640,7 +640,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
//
|
||||
// SelectSlot0MenuItem
|
||||
//
|
||||
this.SelectSlot0MenuItem.Text = "Select Slot 0";
|
||||
this.SelectSlot0MenuItem.Text = "Select Slot 10";
|
||||
this.SelectSlot0MenuItem.Click += new System.EventHandler(this.SelectSlotMenuItems_Click);
|
||||
//
|
||||
// SelectSlot1MenuItem
|
||||
|
@ -2149,7 +2149,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
// Slot0StatusButton
|
||||
//
|
||||
this.Slot0StatusButton.Text = "0";
|
||||
this.Slot0StatusButton.ToolTipText = "Save slot 0";
|
||||
this.Slot0StatusButton.ToolTipText = "Save slot 10";
|
||||
this.Slot0StatusButton.MouseUp += new System.Windows.Forms.MouseEventHandler(this.SlotStatusButtons_MouseUp);
|
||||
//
|
||||
// CheatStatusButton
|
||||
|
|
|
@ -133,7 +133,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
SetSlotFont(SaveState7MenuItem, 7);
|
||||
SetSlotFont(SaveState8MenuItem, 8);
|
||||
SetSlotFont(SaveState9MenuItem, 9);
|
||||
SetSlotFont(SaveState0MenuItem, 0);
|
||||
SetSlotFont(SaveState0MenuItem, 10);
|
||||
|
||||
AutosaveLastSlotMenuItem.Checked = Config.AutoSaveLastSaveSlot;
|
||||
|
||||
|
@ -146,7 +146,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
SaveState7MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save State 7"];
|
||||
SaveState8MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save State 8"];
|
||||
SaveState9MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save State 9"];
|
||||
SaveState0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save State 0"];
|
||||
SaveState0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save State 10"];
|
||||
SaveNamedStateMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Save Named State"];
|
||||
}
|
||||
|
||||
|
@ -161,7 +161,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
LoadState7MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load State 7"];
|
||||
LoadState8MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load State 8"];
|
||||
LoadState9MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load State 9"];
|
||||
LoadState0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load State 0"];
|
||||
LoadState0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load State 10"];
|
||||
LoadNamedStateMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Load Named State"];
|
||||
|
||||
AutoloadLastSlotMenuItem.Checked = Config.AutoLoadLastSaveSlot;
|
||||
|
@ -175,7 +175,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
LoadState7MenuItem.Enabled = HasSlot(7);
|
||||
LoadState8MenuItem.Enabled = HasSlot(8);
|
||||
LoadState9MenuItem.Enabled = HasSlot(9);
|
||||
LoadState0MenuItem.Enabled = HasSlot(0);
|
||||
LoadState0MenuItem.Enabled = HasSlot(10);
|
||||
}
|
||||
|
||||
private void SaveSlotSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
|
@ -189,7 +189,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
SelectSlot7MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 7"];
|
||||
SelectSlot8MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 8"];
|
||||
SelectSlot9MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 9"];
|
||||
SelectSlot0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 0"];
|
||||
SelectSlot0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 10"];
|
||||
PreviousSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Previous Slot"];
|
||||
NextSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Next Slot"];
|
||||
SaveToCurrentSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Quick Save"];
|
||||
|
@ -204,7 +204,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
SelectSlot7MenuItem.Checked = Config.SaveSlot == 7;
|
||||
SelectSlot8MenuItem.Checked = Config.SaveSlot == 8;
|
||||
SelectSlot9MenuItem.Checked = Config.SaveSlot == 9;
|
||||
SelectSlot0MenuItem.Checked = Config.SaveSlot == 0;
|
||||
SelectSlot0MenuItem.Checked = Config.SaveSlot is 10;
|
||||
}
|
||||
|
||||
private void SaveRamSubMenu_DropDownOpened(object sender, EventArgs e)
|
||||
|
@ -381,7 +381,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
else if (sender == SelectSlot7MenuItem) Config.SaveSlot = 7;
|
||||
else if (sender == SelectSlot8MenuItem) Config.SaveSlot = 8;
|
||||
else if (sender == SelectSlot9MenuItem) Config.SaveSlot = 9;
|
||||
else if (sender == SelectSlot0MenuItem) Config.SaveSlot = 0;
|
||||
else if (sender == SelectSlot0MenuItem) Config.SaveSlot = 10;
|
||||
|
||||
UpdateStatusSlots();
|
||||
SaveSlotSelectedMessage();
|
||||
|
@ -2358,7 +2358,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
}
|
||||
|
||||
var file = new FileInfo($"{SaveStatePrefix()}.QuickSave{Config.SaveSlot}.State.bak");
|
||||
var file = new FileInfo($"{SaveStatePrefix()}.QuickSave{Config.SaveSlot % 10}.State.bak");
|
||||
|
||||
if (file.Exists)
|
||||
{
|
||||
|
@ -2477,7 +2477,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void UndoSavestateContextMenuItem_Click(object sender, EventArgs e)
|
||||
{
|
||||
_stateSlots.SwapBackupSavestate(MovieSession.Movie, $"{SaveStatePrefix()}.QuickSave{Config.SaveSlot}.State", Config.SaveSlot);
|
||||
_stateSlots.SwapBackupSavestate(MovieSession.Movie, $"{SaveStatePrefix()}.QuickSave{Config.SaveSlot % 10}.State", Config.SaveSlot);
|
||||
AddOnScreenMessage($"Save slot {Config.SaveSlot} restored.");
|
||||
}
|
||||
|
||||
|
@ -2509,7 +2509,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
|
||||
private void SlotStatusButtons_MouseUp(object sender, MouseEventArgs e)
|
||||
{
|
||||
int slot = 0;
|
||||
var slot = 10;
|
||||
if (sender == Slot1StatusButton) slot = 1;
|
||||
if (sender == Slot2StatusButton) slot = 2;
|
||||
if (sender == Slot3StatusButton) slot = 3;
|
||||
|
@ -2519,7 +2519,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
if (sender == Slot7StatusButton) slot = 7;
|
||||
if (sender == Slot8StatusButton) slot = 8;
|
||||
if (sender == Slot9StatusButton) slot = 9;
|
||||
if (sender == Slot0StatusButton) slot = 0;
|
||||
if (sender == Slot0StatusButton) slot = 10;
|
||||
|
||||
if (e.Button is MouseButtons.Right) SaveQuickSave(slot);
|
||||
else if (e.Button is MouseButtons.Left && HasSlot(slot)) LoadQuickSave(slot);
|
||||
|
|
|
@ -160,9 +160,6 @@ namespace BizHawk.Client.EmuHawk
|
|||
break;
|
||||
|
||||
// Save States
|
||||
case "Save State 0":
|
||||
SelectAndSaveToSlot(0);
|
||||
break;
|
||||
case "Save State 1":
|
||||
SelectAndSaveToSlot(1);
|
||||
break;
|
||||
|
@ -190,8 +187,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
case "Save State 9":
|
||||
SelectAndSaveToSlot(9);
|
||||
break;
|
||||
case "Load State 0":
|
||||
SelectAndLoadFromSlot(0);
|
||||
case "Save State 10":
|
||||
SelectAndSaveToSlot(10);
|
||||
break;
|
||||
case "Load State 1":
|
||||
SelectAndLoadFromSlot(1);
|
||||
|
@ -220,10 +217,10 @@ namespace BizHawk.Client.EmuHawk
|
|||
case "Load State 9":
|
||||
SelectAndLoadFromSlot(9);
|
||||
break;
|
||||
|
||||
case "Select State 0":
|
||||
SelectSlot(0);
|
||||
case "Load State 10":
|
||||
SelectAndLoadFromSlot(10);
|
||||
break;
|
||||
|
||||
case "Select State 1":
|
||||
SelectSlot(1);
|
||||
break;
|
||||
|
@ -251,6 +248,9 @@ namespace BizHawk.Client.EmuHawk
|
|||
case "Select State 9":
|
||||
SelectSlot(9);
|
||||
break;
|
||||
case "Select State 10":
|
||||
SelectSlot(10);
|
||||
break;
|
||||
case "Save Named State":
|
||||
SaveStateAs();
|
||||
break;
|
||||
|
|
|
@ -2626,7 +2626,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Slot7StatusButton.ForeColor = SlotForeColor(7);
|
||||
Slot8StatusButton.ForeColor = SlotForeColor(8);
|
||||
Slot9StatusButton.ForeColor = SlotForeColor(9);
|
||||
Slot0StatusButton.ForeColor = SlotForeColor(0);
|
||||
Slot0StatusButton.ForeColor = SlotForeColor(10);
|
||||
|
||||
Slot1StatusButton.BackColor = SlotBackColor(1);
|
||||
Slot2StatusButton.BackColor = SlotBackColor(2);
|
||||
|
@ -2637,7 +2637,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
Slot7StatusButton.BackColor = SlotBackColor(7);
|
||||
Slot8StatusButton.BackColor = SlotBackColor(8);
|
||||
Slot9StatusButton.BackColor = SlotBackColor(9);
|
||||
Slot0StatusButton.BackColor = SlotBackColor(0);
|
||||
Slot0StatusButton.BackColor = SlotBackColor(10);
|
||||
|
||||
SaveSlotsStatusLabel.Visible =
|
||||
Slot1StatusButton.Visible =
|
||||
|
@ -4254,7 +4254,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
return;
|
||||
}
|
||||
var quickSlotName = $"QuickSave{slot}";
|
||||
var quickSlotName = $"QuickSave{slot % 10}";
|
||||
EmuClient.OnBeforeQuickLoad(this, quickSlotName, out var handled);
|
||||
if (handled)
|
||||
{
|
||||
|
@ -4321,7 +4321,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
{
|
||||
return;
|
||||
}
|
||||
var quickSlotName = $"QuickSave{slot}";
|
||||
var quickSlotName = $"QuickSave{slot % 10}";
|
||||
EmuClient.OnBeforeQuickSave(this, quickSlotName, out var handled);
|
||||
if (handled)
|
||||
{
|
||||
|
@ -4476,19 +4476,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
var handled = Master.PreviousSlot();
|
||||
if (handled) return;
|
||||
}
|
||||
if (Config.SaveSlot == 0)
|
||||
{
|
||||
Config.SaveSlot = 9; // Wrap to end of slot list
|
||||
}
|
||||
else if (Config.SaveSlot > 9)
|
||||
{
|
||||
Config.SaveSlot = 9; // Meh, just in case
|
||||
}
|
||||
else
|
||||
{
|
||||
Config.SaveSlot--;
|
||||
}
|
||||
|
||||
Config.SaveSlot++;
|
||||
if (Config.SaveSlot < 1) Config.SaveSlot = 10;
|
||||
SaveSlotSelectedMessage();
|
||||
UpdateStatusSlots();
|
||||
}
|
||||
|
@ -4501,19 +4490,8 @@ namespace BizHawk.Client.EmuHawk
|
|||
var handled = Master.NextSlot();
|
||||
if (handled) return;
|
||||
}
|
||||
if (Config.SaveSlot >= 9)
|
||||
{
|
||||
Config.SaveSlot = 0; // Wrap to beginning of slot list
|
||||
}
|
||||
else if (Config.SaveSlot < 0)
|
||||
{
|
||||
Config.SaveSlot = 0; // Meh, just in case
|
||||
}
|
||||
else
|
||||
{
|
||||
Config.SaveSlot++;
|
||||
}
|
||||
|
||||
Config.SaveSlot++;
|
||||
if (Config.SaveSlot > 10) Config.SaveSlot = 1;
|
||||
SaveSlotSelectedMessage();
|
||||
UpdateStatusSlots();
|
||||
}
|
||||
|
|
|
@ -168,6 +168,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
initialConfig = ConfigService.Load<Config>(configPath);
|
||||
}
|
||||
initialConfig.ResolveDefaults();
|
||||
if (initialConfig.SaveSlot is 0) initialConfig.SaveSlot = 10; //TODO remove after a while
|
||||
// initialConfig should really be globalConfig as it's mutable
|
||||
|
||||
FFmpegService.FFmpegPath = Path.Combine(PathUtils.DataDirectoryPath, "dll", OSTC.IsUnixHost ? "ffmpeg" : "ffmpeg.exe");
|
||||
|
|
|
@ -958,7 +958,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
"Slot 7",
|
||||
"Slot 8",
|
||||
"Slot 9",
|
||||
"Slot 0"});
|
||||
"Slot 10"});
|
||||
this.StartFromSlotBox.Location = new System.Drawing.Point(71, 25);
|
||||
this.StartFromSlotBox.Name = "StartFromSlotBox";
|
||||
this.StartFromSlotBox.Size = new System.Drawing.Size(75, 21);
|
||||
|
|
|
@ -153,7 +153,7 @@ namespace BizHawk.Client.EmuHawk
|
|||
.ToDictionary(tkey => tkey.ButtonName, tvalue => tvalue.Probability);
|
||||
|
||||
private int SelectedSlot
|
||||
=> (1 + StartFromSlotBox.SelectedIndex) % 10;
|
||||
=> 1 + StartFromSlotBox.SelectedIndex;
|
||||
|
||||
private long Attempts
|
||||
{
|
||||
|
|
|
@ -31,18 +31,14 @@ namespace BizHawk.Client.EmuHawk
|
|||
}
|
||||
|
||||
public void SaveQuickSave(int slot)
|
||||
{
|
||||
BookMarkControl.UpdateBranchExternal(slot is 0 ? 9 : slot - 1);
|
||||
}
|
||||
=> BookMarkControl.UpdateBranchExternal(slot - 1);
|
||||
|
||||
public void LoadQuickSave(int slot)
|
||||
{
|
||||
BookMarkControl.LoadBranchExternal(slot is 0 ? 9 : slot - 1);
|
||||
}
|
||||
=> BookMarkControl.LoadBranchExternal(slot - 1);
|
||||
|
||||
public bool SelectSlot(int slot)
|
||||
{
|
||||
BookMarkControl.SelectBranchExternal(slot is 0 ? 9 : slot - 1);
|
||||
BookMarkControl.SelectBranchExternal(slot - 1);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue