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:
parent
25396d3ffd
commit
b86a12149a
2 changed files with 10 additions and 12 deletions
|
@ -563,7 +563,7 @@ void D_AddFile (char *file)
|
||||||
//
|
//
|
||||||
void IdentifyVersion (void)
|
void IdentifyVersion (void)
|
||||||
{
|
{
|
||||||
char *wadfile;
|
char *wadfile, *slash;
|
||||||
|
|
||||||
if (M_CheckParm ("-shdev"))
|
if (M_CheckParm ("-shdev"))
|
||||||
{
|
{
|
||||||
|
@ -615,35 +615,35 @@ void IdentifyVersion (void)
|
||||||
language = french;
|
language = french;
|
||||||
printf("French version\n");
|
printf("French version\n");
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("doom2.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("doom2.wad")) ) {
|
||||||
gamemode = commercial;
|
gamemode = commercial;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("plutonia.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("plutonia.wad")) ) {
|
||||||
gamemode = commercial;
|
gamemode = commercial;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("tnt.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("tnt.wad")) ) {
|
||||||
gamemode = commercial;
|
gamemode = commercial;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("doomu.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("doomu.wad")) ) {
|
||||||
gamemode = retail;
|
gamemode = retail;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("doom.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("doom.wad")) ) {
|
||||||
gamemode = registered;
|
gamemode = registered;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else if ( (wadfile = I_IdentifyWAD("doom1.wad")) ) {
|
} else if ( (wadfile = I_IdentifyWAD("doom1.wad")) ) {
|
||||||
gamemode = shareware;
|
gamemode = shareware;
|
||||||
D_AddFile (wadfile);
|
D_AddFile (wadfile);
|
||||||
return;
|
|
||||||
} else {
|
} else {
|
||||||
printf("Game mode indeterminate.\n");
|
printf("Game mode indeterminate.\n");
|
||||||
gamemode = indetermined;
|
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");
|
||||||
}
|
}
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|
|
@ -300,12 +300,10 @@ void M_LoadDefaults (void)
|
||||||
// check for a custom default file
|
// check for a custom default file
|
||||||
i = M_CheckParm ("-config");
|
i = M_CheckParm ("-config");
|
||||||
if (i && i<myargc-1)
|
if (i && i<myargc-1)
|
||||||
{
|
|
||||||
defaultfile = myargv[i+1];
|
defaultfile = myargv[i+1];
|
||||||
printf (" default file: %s\n",defaultfile);
|
|
||||||
}
|
|
||||||
else
|
else
|
||||||
defaultfile = basedefault;
|
defaultfile = basedefault;
|
||||||
|
printf (" default file: %s\n",defaultfile);
|
||||||
|
|
||||||
// read the file in, overriding any set defaults
|
// read the file in, overriding any set defaults
|
||||||
f = fopen (defaultfile, "r");
|
f = fopen (defaultfile, "r");
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue