From d6701edcb6922f8d84cc4b2390f0dc233851b87e Mon Sep 17 00:00:00 2001
From: toasterbabe <rollerorbital@gmail.com>
Date: Sun, 27 Aug 2017 18:46:53 +0100
Subject: [PATCH] Don't allow creating a new save when it wouldn't end up
 making a save file (ie, modified game without savemoddata).

---
 src/m_menu.c | 10 ++++++++--
 1 file changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/m_menu.c b/src/m_menu.c
index a158cd9559..b983546cc3 100644
--- a/src/m_menu.c
+++ b/src/m_menu.c
@@ -2582,7 +2582,7 @@ boolean M_Responder(event_t *ev)
 				{
 					if (((currentMenu->menuitems[itemOn].status & IT_CALLTYPE) & IT_CALL_NOTMODIFIED) && modifiedgame && !savemoddata)
 					{
-						S_StartSound(NULL, sfx_menu1);
+						S_StartSound(NULL, sfx_skid);
 						M_StartMessage(M_GetText("This cannot be done in a modified game.\n\n(Press a key)\n"), NULL, MM_NOTHING);
 						return true;
 					}
@@ -6565,7 +6565,13 @@ static void M_HandleLoadSave(INT32 choice)
 				S_StartSound(NULL, sfx_skid);
 				M_StartMessage("Are you sure you want to play\n\x85ultimate mode\x80? It isn't remotely fair,\nand you don't even get an emblem for it.\n\n(Press 'Y' to confirm)\n",M_SaveGameUltimateResponse,MM_YESNO);
 			}
-			else if (savegameinfo[saveSlotSelected-1].lives != -666) // don't allow loading of "bad saves"
+			else if (saveSlotSelected != NOSAVESLOT && savegameinfo[saveSlotSelected-1].lives == -42 && !(!modifiedgame || savemoddata))
+			{
+				loadgamescroll = 0;
+				S_StartSound(NULL, sfx_skid);
+				M_StartMessage(M_GetText("This cannot be done in a modified game.\n\n(Press a key)\n"), NULL, MM_NOTHING);
+			}
+			else if (saveSlotSelected == NOSAVESLOT || savegameinfo[saveSlotSelected-1].lives != -666) // don't allow loading of "bad saves"
 			{
 				loadgamescroll = 0;
 				S_StartSound(NULL, sfx_menu1);
-- 
GitLab