shithub: choc

Download patch

ref: 7f7a72d67a97c2a4419cdb0a0673c4c99a639553
parent: 1e606b8a6179da1e3071a3fd20cd4938049bdee8
parent: c247ce4a3c8c35ad6e41fab67cb38c6e53689030
author: Fabian Greffrath <fabian@greffrath.com>
date: Fri Jan 25 03:31:46 EST 2019

Merge pull request #1130 from chocolate-doom/defaultsavename

default save name is map name and containing WAD file name

--- a/src/doom/m_menu.c
+++ b/src/doom/m_menu.c
@@ -49,6 +49,7 @@
 #include "m_argv.h"
 #include "m_controls.h"
 #include "p_saveg.h"
+#include "p_setup.h"
 
 #include "s_sound.h"
 
@@ -634,8 +635,19 @@
 //
 static void SetDefaultSaveName(int slot)
 {
-    M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE - 1,
-               "JOYSTICK SLOT %i", itemOn + 1);
+    // map from IWAD or PWAD?
+    if (W_IsIWADLump(maplumpinfo))
+    {
+        M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE,
+                   "%s", maplumpinfo->name);
+    }
+    else
+    {
+        M_snprintf(savegamestrings[itemOn], SAVESTRINGSIZE,
+                   "%s: %s", W_WadNameForLump(maplumpinfo),
+                   maplumpinfo->name);
+    }
+    M_ForceUppercase(savegamestrings[itemOn]);
     joypadSave = false;
 }
 
--- a/src/doom/p_setup.c
+++ b/src/doom/p_setup.c
@@ -760,6 +760,9 @@
     }
 }
 
+// pointer to the current map lump info struct
+lumpinfo_t *maplumpinfo;
+
 //
 // P_SetupLevel
 //
@@ -816,6 +819,8 @@
 
     lumpnum = W_GetNumForName (lumpname);
 	
+    maplumpinfo = lumpinfo[lumpnum];
+
     leveltime = 0;
 	
     // note: most of this ordering is important	
--- a/src/doom/p_setup.h
+++ b/src/doom/p_setup.h
@@ -20,8 +20,10 @@
 #ifndef __P_SETUP__
 #define __P_SETUP__
 
+#include "w_wad.h"
 
 
+extern lumpinfo_t *maplumpinfo;
 
 // NOT called by W_Ticker. Fixme.
 void
--- a/src/w_wad.c
+++ b/src/w_wad.c
@@ -618,3 +618,12 @@
     W_GenerateHashTable();
 }
 
+const char *W_WadNameForLump(const lumpinfo_t *lump)
+{
+	return M_BaseName(lump->wad_file->path);
+}
+
+boolean W_IsIWADLump(const lumpinfo_t *lump)
+{
+	return lump->wad_file == lumpinfo[0]->wad_file;
+}
--- a/src/w_wad.h
+++ b/src/w_wad.h
@@ -72,4 +72,7 @@
 void W_ReleaseLumpNum(lumpindex_t lump);
 void W_ReleaseLumpName(const char *name);
 
+const char *W_WadNameForLump(const lumpinfo_t *lump);
+boolean W_IsIWADLump(const lumpinfo_t *lump);
+
 #endif