Save/Load menu: Add delete bind for gamepads

This commit is contained in:
Sally Coolatta 2025-07-26 17:23:53 -04:00 committed by Ricardo Luís Vaz Silva
commit 4cc5fe942d

View file

@ -299,6 +299,16 @@ class LoadSaveMenu : ListMenu
//
//=============================================================================
virtual void TryDeleteMessage()
{
if (Selected != -1 && Selected < manager.SavegameCount())
{
String EndString;
EndString = String.Format("%s%s%s%s?\n\n%s", Stringtable.Localize("$MNU_DELETESG"), TEXTCOLOR_WHITE, manager.GetSavegame(Selected).SaveTitle, TEXTCOLOR_NORMAL, Stringtable.Localize("$PRESSYN"));
StartMessage (EndString, 0);
}
}
override bool MenuEvent (int mkey, bool fromcontroller)
{
switch (mkey)
@ -373,6 +383,14 @@ class LoadSaveMenu : ListMenu
}
return true;
case MKEY_Clear:
// This is handled by OnUIEvent for keyboard
if (fromcontroller == true)
{
TryDeleteMessage();
}
return true;
case MKEY_Enter:
return false; // This event will be handled by the subclasses
@ -446,11 +464,7 @@ class LoadSaveMenu : ListMenu
return true;
case UIEvent.Key_DEL:
{
String EndString;
EndString = String.Format("%s%s%s%s?\n\n%s", Stringtable.Localize("$MNU_DELETESG"), TEXTCOLOR_WHITE, manager.GetSavegame(Selected).SaveTitle, TEXTCOLOR_NORMAL, Stringtable.Localize("$PRESSYN"));
StartMessage (EndString, 0);
}
TryDeleteMessage();
return true;
}
}
@ -511,6 +525,17 @@ class SaveMenu : LoadSaveMenu
//
//=============================================================================
override void TryDeleteMessage()
{
// cannot delete 'new save game' item
if (Selected == 0)
{
return;
}
super.TryDeleteMessage();
}
override bool MenuEvent (int mkey, bool fromcontroller)
{
if (Super.MenuEvent(mkey, fromcontroller))
@ -576,11 +601,6 @@ class SaveMenu : LoadSaveMenu
{
switch (ev.KeyChar)
{
case UIEvent.Key_DEL:
// cannot delete 'new save game' item
if (Selected == 0) return true;
break;
case 78://'N':
Selected = TopItem = 0;
manager.UnloadSaveData ();