Skip to content

Commit a88ba40

Browse files
committed
Simplify some save slot UI event handlers
1 parent 1b30122 commit a88ba40

File tree

2 files changed

+41
-51
lines changed

2 files changed

+41
-51
lines changed

src/BizHawk.Client.EmuHawk/MainForm.Events.cs

+30-51
Original file line numberDiff line numberDiff line change
@@ -115,31 +115,30 @@ private void LoadStateSubMenu_DropDownOpened(object sender, EventArgs e)
115115

116116
private void SaveSlotSubMenu_DropDownOpened(object sender, EventArgs e)
117117
{
118-
SelectSlot1MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 1"];
119-
SelectSlot2MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 2"];
120-
SelectSlot3MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 3"];
121-
SelectSlot4MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 4"];
122-
SelectSlot5MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 5"];
123-
SelectSlot6MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 6"];
124-
SelectSlot7MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 7"];
125-
SelectSlot8MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 8"];
126-
SelectSlot9MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 9"];
127-
SelectSlot0MenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Select State 10"];
118+
var slotMenuItems = new ToolStripMenuItem/*?*/[]
119+
{
120+
null,
121+
SelectSlot1MenuItem,
122+
SelectSlot2MenuItem,
123+
SelectSlot3MenuItem,
124+
SelectSlot4MenuItem,
125+
SelectSlot5MenuItem,
126+
SelectSlot6MenuItem,
127+
SelectSlot7MenuItem,
128+
SelectSlot8MenuItem,
129+
SelectSlot9MenuItem,
130+
SelectSlot0MenuItem,
131+
};
132+
for (var i = 1; i < slotMenuItems.Length; i++)
133+
{
134+
slotMenuItems[i]!.ShortcutKeyDisplayString = Config.HotkeyBindings[$"Select State {i}"];
135+
}
128136
PreviousSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Previous Slot"];
129137
NextSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Next Slot"];
130138
SaveToCurrentSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Quick Save"];
131139
LoadCurrentSlotMenuItem.ShortcutKeyDisplayString = Config.HotkeyBindings["Quick Load"];
132-
133-
SelectSlot1MenuItem.Checked = Config.SaveSlot == 1;
134-
SelectSlot2MenuItem.Checked = Config.SaveSlot == 2;
135-
SelectSlot3MenuItem.Checked = Config.SaveSlot == 3;
136-
SelectSlot4MenuItem.Checked = Config.SaveSlot == 4;
137-
SelectSlot5MenuItem.Checked = Config.SaveSlot == 5;
138-
SelectSlot6MenuItem.Checked = Config.SaveSlot == 6;
139-
SelectSlot7MenuItem.Checked = Config.SaveSlot == 7;
140-
SelectSlot8MenuItem.Checked = Config.SaveSlot == 8;
141-
SelectSlot9MenuItem.Checked = Config.SaveSlot == 9;
142-
SelectSlot0MenuItem.Checked = Config.SaveSlot is 10;
140+
var slot = Config.SaveSlot;
141+
for (var i = 1; i < slotMenuItems.Length; i++) slotMenuItems[i]!.Checked = slot == i;
143142
}
144143

145144
private void SaveRamSubMenu_DropDownOpened(object sender, EventArgs e)
@@ -288,17 +287,7 @@ private void AutosaveLastSlotMenuItem_Click(object sender, EventArgs e)
288287

289288
private void SelectSlotMenuItems_Click(object sender, EventArgs e)
290289
{
291-
if (sender == SelectSlot1MenuItem) Config.SaveSlot = 1;
292-
else if (sender == SelectSlot2MenuItem) Config.SaveSlot = 2;
293-
else if (sender == SelectSlot3MenuItem) Config.SaveSlot = 3;
294-
else if (sender == SelectSlot4MenuItem) Config.SaveSlot = 4;
295-
else if (sender == SelectSlot5MenuItem) Config.SaveSlot = 5;
296-
else if (sender == SelectSlot6MenuItem) Config.SaveSlot = 6;
297-
else if (sender == SelectSlot7MenuItem) Config.SaveSlot = 7;
298-
else if (sender == SelectSlot8MenuItem) Config.SaveSlot = 8;
299-
else if (sender == SelectSlot9MenuItem) Config.SaveSlot = 9;
300-
else if (sender == SelectSlot0MenuItem) Config.SaveSlot = 10;
301-
290+
Config.SaveSlot = (int) ((ToolStripItem) sender).Tag;
302291
UpdateStatusSlots();
303292
SaveSlotSelectedMessage();
304293
}
@@ -1276,19 +1265,18 @@ private void MainFormContextMenu_Opening(object sender, System.ComponentModel.Ca
12761265
}
12771266
}
12781267

1279-
var file = new FileInfo($"{SaveStatePrefix()}.QuickSave{Config.SaveSlot % 10}.State.bak");
1280-
1281-
if (file.Exists)
1268+
var quicksaveSlot = Config.SaveSlot;
1269+
if (File.Exists($"{SaveStatePrefix()}.QuickSave{quicksaveSlot % 10}.State.bak"))
12821270
{
12831271
UndoSavestateContextMenuItem.Enabled = true;
1284-
if (_stateSlots.IsRedo(MovieSession.Movie, Config.SaveSlot))
1272+
if (_stateSlots.IsRedo(MovieSession.Movie, quicksaveSlot))
12851273
{
1286-
UndoSavestateContextMenuItem.Text = $"Redo Save to slot {Config.SaveSlot}";
1274+
UndoSavestateContextMenuItem.Text = $"Redo Save to slot {quicksaveSlot}";
12871275
UndoSavestateContextMenuItem.Image = Properties.Resources.Redo;
12881276
}
12891277
else
12901278
{
1291-
UndoSavestateContextMenuItem.Text = $"Undo Save to slot {Config.SaveSlot}";
1279+
UndoSavestateContextMenuItem.Text = $"Undo Save to slot {quicksaveSlot}";
12921280
UndoSavestateContextMenuItem.Image = Properties.Resources.Undo;
12931281
}
12941282
}
@@ -1385,8 +1373,9 @@ private void ViewCommentsContextMenuItem_Click(object sender, EventArgs e)
13851373

13861374
private void UndoSavestateContextMenuItem_Click(object sender, EventArgs e)
13871375
{
1388-
_stateSlots.SwapBackupSavestate(MovieSession.Movie, $"{SaveStatePrefix()}.QuickSave{Config.SaveSlot % 10}.State", Config.SaveSlot);
1389-
AddOnScreenMessage($"Save slot {Config.SaveSlot} restored.");
1376+
var slot = Config.SaveSlot;
1377+
_stateSlots.SwapBackupSavestate(MovieSession.Movie, $"{SaveStatePrefix()}.QuickSave{slot % 10}.State", slot);
1378+
AddOnScreenMessage($"Save slot {slot} restored.");
13901379
}
13911380

13921381
private void ClearSramContextMenuItem_Click(object sender, EventArgs e)
@@ -1419,17 +1408,7 @@ private void DumpStatusButton_Click(object sender, EventArgs e)
14191408

14201409
private void SlotStatusButtons_MouseEnter(object/*?*/ sender, EventArgs e)
14211410
{
1422-
var slot = 10;
1423-
if (sender == Slot1StatusButton) slot = 1;
1424-
else if (sender == Slot2StatusButton) slot = 2;
1425-
else if (sender == Slot3StatusButton) slot = 3;
1426-
else if (sender == Slot4StatusButton) slot = 4;
1427-
else if (sender == Slot5StatusButton) slot = 5;
1428-
else if (sender == Slot6StatusButton) slot = 6;
1429-
else if (sender == Slot7StatusButton) slot = 7;
1430-
else if (sender == Slot8StatusButton) slot = 8;
1431-
else if (sender == Slot9StatusButton) slot = 9;
1432-
//TODO just put the slot number in Control.Tag already
1411+
var slot = (int) ((ToolStripItem) sender).Tag;
14331412
if (!(HasSlot(slot) && ReadScreenshotFromSavestate(slot: slot) is {} bb))
14341413
{
14351414
_screenshotTooltip.FadeOut();

src/BizHawk.Client.EmuHawk/MainForm.cs

+11
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,17 @@ private void MainForm_Load(object sender, EventArgs e)
6767
{
6868
UpdateWindowTitle();
6969

70+
Slot1StatusButton.Tag = SelectSlot1MenuItem.Tag = 1;
71+
Slot2StatusButton.Tag = SelectSlot2MenuItem.Tag = 2;
72+
Slot3StatusButton.Tag = SelectSlot3MenuItem.Tag = 3;
73+
Slot4StatusButton.Tag = SelectSlot4MenuItem.Tag = 4;
74+
Slot5StatusButton.Tag = SelectSlot5MenuItem.Tag = 5;
75+
Slot6StatusButton.Tag = SelectSlot6MenuItem.Tag = 6;
76+
Slot7StatusButton.Tag = SelectSlot7MenuItem.Tag = 7;
77+
Slot8StatusButton.Tag = SelectSlot8MenuItem.Tag = 8;
78+
Slot9StatusButton.Tag = SelectSlot9MenuItem.Tag = 9;
79+
Slot0StatusButton.Tag = SelectSlot0MenuItem.Tag = 10;
80+
7081
{
7182
for (int i = 1; i <= WINDOW_SCALE_MAX; i++)
7283
{

0 commit comments

Comments
 (0)