enable "Organize save files" if no savegame found in old location

Also, remove the menu item since this will get switched back anyway.
This commit is contained in:
Fabian Greffrath 2023-12-05 13:34:04 +01:00
parent 724af3ca8b
commit 3951f1ad15
2 changed files with 37 additions and 23 deletions

View File

@ -2451,34 +2451,52 @@ void D_DoomMain(void)
PrintVersion(); PrintVersion();
if (!M_CheckParm("-save") && organize_savefiles) if (!M_CheckParm("-save"))
{ {
int i; if (!organize_savefiles)
char *wadname = wadfiles[0], *oldsavegame = basesavegame;
for (i = mainwadfile; i < numwadfiles; i++)
{ {
if (FileContainsMaps(wadfiles[i])) // [FG] check for at least one savegame in the old location
glob_t *glob = I_StartMultiGlob(basesavegame,
GLOB_FLAG_NOCASE|GLOB_FLAG_SORTED,
"*.dsg", NULL);
if (I_NextGlob(glob) == NULL)
{ {
wadname = wadfiles[i]; organize_savefiles = true;
break;
} }
I_EndGlob(glob);
} }
basesavegame = M_StringJoin(oldsavegame, DIR_SEPARATOR_S, if (organize_savefiles)
"savegames", NULL); {
free(oldsavegame); int i;
char *wadname = wadfiles[0], *oldsavegame = basesavegame;
NormalizeSlashes(basesavegame); for (i = mainwadfile; i < numwadfiles; i++)
M_MakeDirectory(basesavegame); {
if (FileContainsMaps(wadfiles[i]))
{
wadname = wadfiles[i];
break;
}
}
oldsavegame = basesavegame; basesavegame = M_StringJoin(oldsavegame, DIR_SEPARATOR_S,
basesavegame = M_StringJoin(oldsavegame, DIR_SEPARATOR_S, "savegames", NULL);
M_BaseName(wadname), NULL); free(oldsavegame);
free(oldsavegame);
NormalizeSlashes(basesavegame); NormalizeSlashes(basesavegame);
M_MakeDirectory(basesavegame); M_MakeDirectory(basesavegame);
oldsavegame = basesavegame;
basesavegame = M_StringJoin(oldsavegame, DIR_SEPARATOR_S,
M_BaseName(wadname), NULL);
free(oldsavegame);
NormalizeSlashes(basesavegame);
M_MakeDirectory(basesavegame);
}
} }
I_Printf(VB_INFO, "Savegame directory: %s\n", basesavegame); I_Printf(VB_INFO, "Savegame directory: %s\n", basesavegame);

View File

@ -3993,7 +3993,6 @@ enum {
gen4_demobar, gen4_demobar,
gen4_palette_changes, gen4_palette_changes,
gen4_level_brightness, gen4_level_brightness,
gen4_organize_savefiles,
gen4_end1, gen4_end1,
gen4_title2, gen4_title2,
@ -4188,9 +4187,6 @@ setup_menu_t gen_settings4[] = { // General Settings screen4
{"Level Brightness", S_THERMO|S_STRICT, m_null, M_X_THRM, {"Level Brightness", S_THERMO|S_STRICT, m_null, M_X_THRM,
M_Y + gen4_level_brightness*M_SPC, {"extra_level_brightness"}}, M_Y + gen4_level_brightness*M_SPC, {"extra_level_brightness"}},
{"Organize save files", S_YESNO|S_PRGWARN, m_null, M_X,
M_Y + gen4_organize_savefiles*M_SPC, {"organize_savefiles"}},
{"", S_SKIP, m_null, M_X, M_Y + gen4_end1*M_SPC}, {"", S_SKIP, m_null, M_X, M_Y + gen4_end1*M_SPC},
{"Compatibility-breaking Features" ,S_SKIP|S_TITLE, m_null, M_X, {"Compatibility-breaking Features" ,S_SKIP|S_TITLE, m_null, M_X,