mirror of
https://github.com/fabiangreffrath/woof.git
synced 2025-09-25 05:48:03 -04:00
autoload from PWADs directories (#205)
* autoload from PWADs directories * don't create directories for PWADs * load .deh files from PWADs autoload directories
This commit is contained in:
parent
2bcc61d5db
commit
37b5d4f7e1
@ -645,7 +645,7 @@ char *D_DoomPrefDir(void)
|
||||
|
||||
static char *autoload_path = NULL;
|
||||
|
||||
static char *GetAutoloadDir(const char *iwadname)
|
||||
static char *GetAutoloadDir(const char *iwadname, boolean createdir)
|
||||
{
|
||||
char *result;
|
||||
|
||||
@ -657,7 +657,11 @@ static char *GetAutoloadDir(const char *iwadname)
|
||||
M_MakeDirectory(autoload_path);
|
||||
|
||||
result = M_StringJoin(autoload_path, DIR_SEPARATOR_S, iwadname, NULL);
|
||||
M_MakeDirectory(result);
|
||||
|
||||
if (createdir)
|
||||
{
|
||||
M_MakeDirectory(result);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
@ -1418,21 +1422,36 @@ static void AutoLoadWADs(const char *path)
|
||||
|
||||
// auto-loading of .wad files.
|
||||
|
||||
static void D_AutoloadWadDir()
|
||||
static void D_AutoloadIWadDir()
|
||||
{
|
||||
char *autoload_dir;
|
||||
|
||||
// common auto-loaded files for all Doom flavors
|
||||
autoload_dir = GetAutoloadDir("doom-all");
|
||||
autoload_dir = GetAutoloadDir("doom-all", true);
|
||||
AutoLoadWADs(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
|
||||
// auto-loaded files per IWAD
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(wadfiles[0]));
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(wadfiles[0]), true);
|
||||
AutoLoadWADs(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
}
|
||||
|
||||
static void D_AutoloadPWadDir()
|
||||
{
|
||||
int p = M_CheckParm("-file");
|
||||
if (p)
|
||||
{
|
||||
while (++p != myargc && myargv[p][0] != '-')
|
||||
{
|
||||
char *autoload_dir;
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(myargv[p]), false);
|
||||
AutoLoadWADs(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// killough 10/98: support preloaded wads
|
||||
|
||||
static void D_ProcessWadPreincludes(void)
|
||||
@ -1488,16 +1507,31 @@ static void D_AutoloadDehDir()
|
||||
char *autoload_dir;
|
||||
|
||||
// common auto-loaded files for all Doom flavors
|
||||
autoload_dir = GetAutoloadDir("doom-all");
|
||||
autoload_dir = GetAutoloadDir("doom-all", true);
|
||||
AutoLoadPatches(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
|
||||
// auto-loaded files per IWAD
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(wadfiles[0]));
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(wadfiles[0]), true);
|
||||
AutoLoadPatches(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
}
|
||||
|
||||
static void D_AutoloadPWadDehDir()
|
||||
{
|
||||
int p = M_CheckParm("-file");
|
||||
if (p)
|
||||
{
|
||||
while (++p != myargc && myargv[p][0] != '-')
|
||||
{
|
||||
char *autoload_dir;
|
||||
autoload_dir = GetAutoloadDir(M_BaseName(myargv[p]), false);
|
||||
AutoLoadPatches(autoload_dir);
|
||||
(free)(autoload_dir);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// killough 10/98: support preloaded deh/bex files
|
||||
|
||||
static void D_ProcessDehPreincludes(void)
|
||||
@ -1741,9 +1775,9 @@ void D_DoomMain(void)
|
||||
D_AddFile(s);
|
||||
}
|
||||
|
||||
// add wad files from autoload directory before wads from -file parameter
|
||||
// add wad files from autoload IWAD directories before wads from -file parameter
|
||||
|
||||
D_AutoloadWadDir();
|
||||
D_AutoloadIWadDir();
|
||||
|
||||
// add any files specified on the command line with -file wadfile
|
||||
// to the wad list
|
||||
@ -1765,6 +1799,10 @@ void D_DoomMain(void)
|
||||
D_AddFile(myargv[p]);
|
||||
}
|
||||
|
||||
// add wad files from autoload PWAD directories
|
||||
|
||||
D_AutoloadPWadDir();
|
||||
|
||||
if (!(p = M_CheckParm("-playdemo")) || p >= myargc-1) // killough
|
||||
{
|
||||
if ((p = M_CheckParm ("-fastdemo")) && p < myargc-1) // killough
|
||||
@ -1877,6 +1915,10 @@ void D_DoomMain(void)
|
||||
|
||||
D_ProcessDehInWads(); // killough 10/98: now process all deh in wads
|
||||
|
||||
// process .deh files from PWADs autoload directories
|
||||
|
||||
D_AutoloadPWadDehDir();
|
||||
|
||||
D_ProcessDehPreincludes(); // killough 10/98: process preincluded .deh files
|
||||
|
||||
// Check for -file in shareware
|
||||
|
Loading…
x
Reference in New Issue
Block a user