games/doom: fix config file never being loaded or saved (thanks qu7uux)

basedefault[], the default path to the config file, is never set and remains
blank, unless -config %s is used (cd d_main.c). when games/doom attempts to
open the file, it silently fails and no config file is ever read or written.
this patch sets basedefault to a file in whatever directory a valid wad is
found in I_IdentifyWAD().
This commit is contained in:
cinap_lenrek 2015-07-30 20:30:47 +02:00
parent 25396d3ffd
commit b86a12149a
2 changed files with 10 additions and 12 deletions

View file

@ -563,7 +563,7 @@ void D_AddFile (char *file)
//
void IdentifyVersion (void)
{
char *wadfile;
char *wadfile, *slash;
if (M_CheckParm ("-shdev"))
{
@ -615,35 +615,35 @@ void IdentifyVersion (void)
language = french;
printf("French version\n");
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("doom2.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("plutonia.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("tnt.wad")) ) {
gamemode = commercial;
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("doomu.wad")) ) {
gamemode = retail;
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("doom.wad")) ) {
gamemode = registered;
D_AddFile (wadfile);
return;
} else if ( (wadfile = I_IdentifyWAD("doom1.wad")) ) {
gamemode = shareware;
D_AddFile (wadfile);
return;
} else {
printf("Game mode indeterminate.\n");
gamemode = indetermined;
return;
}
strncpy(basedefault, wadfile, sizeof(basedefault)-5);
basedefault[sizeof(basedefault)-5] = '\0';
slash = strrchr(basedefault, '/');
if (slash++ == 0)
slash = basedefault;
strcpy(slash, "cfg");
}
//

View file

@ -300,12 +300,10 @@ void M_LoadDefaults (void)
// check for a custom default file
i = M_CheckParm ("-config");
if (i && i<myargc-1)
{
defaultfile = myargv[i+1];
printf (" default file: %s\n",defaultfile);
}
else
defaultfile = basedefault;
printf (" default file: %s\n",defaultfile);
// read the file in, overriding any set defaults
f = fopen (defaultfile, "r");