mirror of
https://github.com/KartKrewDev/RingRacers.git
synced 2025-10-30 08:01:28 +00:00
filesearch: Add "Priority folder" string parameter
If non-NULL, filesearch will begin in that subfolder of the desired searchpath, but can go back up to the root of the search later if not found in that location. Primarily a small optimisation for checking the addons folder first
This commit is contained in:
parent
8230bbbca4
commit
48261ae4b5
14 changed files with 67 additions and 38 deletions
|
|
@ -853,7 +853,7 @@ static void COM_Exec_f(void)
|
||||||
// Now try by searching the file path
|
// Now try by searching the file path
|
||||||
// filename is modified with the full found path
|
// filename is modified with the full found path
|
||||||
strcpy(filename, COM_Argv(1));
|
strcpy(filename, COM_Argv(1));
|
||||||
if (findfile(filename, NULL, true) != FS_NOTFOUND)
|
if (findfile(filename, NULL, NULL, true) != FS_NOTFOUND)
|
||||||
FIL_ReadFile(filename, &buf);
|
FIL_ReadFile(filename, &buf);
|
||||||
|
|
||||||
if (!buf)
|
if (!buf)
|
||||||
|
|
|
||||||
|
|
@ -1434,7 +1434,7 @@ static void IdentifyVersion(void)
|
||||||
|
|
||||||
#define MUSICTEST(str) \
|
#define MUSICTEST(str) \
|
||||||
musicpath = va(spandf,srb2waddir,"data",str);\
|
musicpath = va(spandf,srb2waddir,"data",str);\
|
||||||
handle = W_OpenWadFile(&musicpath, false); \
|
handle = W_OpenWadFile(&musicpath, NULL, false); \
|
||||||
if (handle) \
|
if (handle) \
|
||||||
{ \
|
{ \
|
||||||
int ms = W_VerifyNMUSlumps(musicpath, handle, false); \
|
int ms = W_VerifyNMUSlumps(musicpath, handle, false); \
|
||||||
|
|
|
||||||
|
|
@ -4311,7 +4311,7 @@ static void Got_RunSOCcmd(const UINT8 **cp, INT32 playernum)
|
||||||
// Maybe add md5 support?
|
// Maybe add md5 support?
|
||||||
if (strstr(filename, ".soc") != NULL)
|
if (strstr(filename, ".soc") != NULL)
|
||||||
{
|
{
|
||||||
ncs = findfile(filename,NULL,true);
|
ncs = findfile(filename, "addons", NULL, true);
|
||||||
|
|
||||||
if (ncs != FS_FOUND)
|
if (ncs != FS_FOUND)
|
||||||
{
|
{
|
||||||
|
|
@ -4397,7 +4397,7 @@ static void Command_Addfile(void)
|
||||||
fhandle = NULL;
|
fhandle = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((fhandle = W_OpenWadFile(&fn, true)) != NULL)
|
if ((fhandle = W_OpenWadFile(&fn, "addons", true)) != NULL)
|
||||||
{
|
{
|
||||||
musiconly = W_VerifyNMUSlumps(fn, fhandle, false);
|
musiconly = W_VerifyNMUSlumps(fn, fhandle, false);
|
||||||
}
|
}
|
||||||
|
|
@ -4523,7 +4523,7 @@ static void Got_RequestAddfilecmd(const UINT8 **cp, INT32 playernum)
|
||||||
if (numwadfiles >= MAX_WADFILES)
|
if (numwadfiles >= MAX_WADFILES)
|
||||||
toomany = true;
|
toomany = true;
|
||||||
else
|
else
|
||||||
ncs = findfile(filename,md5sum,true);
|
ncs = findfile(filename, "addons", md5sum, true);
|
||||||
|
|
||||||
if (ncs != FS_FOUND || toomany)
|
if (ncs != FS_FOUND || toomany)
|
||||||
{
|
{
|
||||||
|
|
@ -4567,7 +4567,7 @@ static void Got_Addfilecmd(const UINT8 **cp, INT32 playernum)
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
ncs = findfile(filename,md5sum,true);
|
ncs = findfile(filename, "addons", md5sum, true);
|
||||||
|
|
||||||
if (ncs != FS_FOUND || !P_AddWadFile(filename))
|
if (ncs != FS_FOUND || !P_AddWadFile(filename))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -636,7 +636,7 @@ INT32 CL_CheckFiles(void)
|
||||||
|
|
||||||
packetsize += nameonlylength(fileneeded[i].filename) + 22;
|
packetsize += nameonlylength(fileneeded[i].filename) + 22;
|
||||||
|
|
||||||
fileneeded[i].status = findfile(fileneeded[i].filename, fileneeded[i].md5sum, true);
|
fileneeded[i].status = findfile(fileneeded[i].filename, "addons", fileneeded[i].md5sum, true);
|
||||||
CONS_Debug(DBG_NETPLAY, "found %d\n", fileneeded[i].status);
|
CONS_Debug(DBG_NETPLAY, "found %d\n", fileneeded[i].status);
|
||||||
return 4;
|
return 4;
|
||||||
}
|
}
|
||||||
|
|
@ -1759,13 +1759,13 @@ filestatus_t checkfilemd5(char *filename, const UINT8 *wantedmd5sum)
|
||||||
// Rewritten by Monster Iestyn to be less stupid
|
// Rewritten by Monster Iestyn to be less stupid
|
||||||
// Note: if completepath is true, "filename" is modified, but only if FS_FOUND is going to be returned
|
// Note: if completepath is true, "filename" is modified, but only if FS_FOUND is going to be returned
|
||||||
// (Don't worry about WinCE's version of filesearch, nobody cares about that OS anymore)
|
// (Don't worry about WinCE's version of filesearch, nobody cares about that OS anymore)
|
||||||
filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum, boolean completepath)
|
filestatus_t findfile(char *filename, const char *priorityfolder, const UINT8 *wantedmd5sum, boolean completepath)
|
||||||
{
|
{
|
||||||
filestatus_t homecheck; // store result of last file search
|
filestatus_t homecheck; // store result of last file search
|
||||||
boolean badmd5 = false; // store whether md5 was bad from either of the first two searches (if nothing was found in the third)
|
boolean badmd5 = false; // store whether md5 was bad from either of the first two searches (if nothing was found in the third)
|
||||||
|
|
||||||
// first, check SRB2's "home" directory
|
// first, check SRB2's "home" directory
|
||||||
homecheck = filesearch(filename, srb2home, wantedmd5sum, completepath, 10);
|
homecheck = filesearch(filename, srb2home, priorityfolder, wantedmd5sum, completepath, 10);
|
||||||
|
|
||||||
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
||||||
return FS_FOUND;
|
return FS_FOUND;
|
||||||
|
|
@ -1774,7 +1774,7 @@ filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum, boolean complet
|
||||||
// if not found at all, just move on without doing anything
|
// if not found at all, just move on without doing anything
|
||||||
|
|
||||||
// next, check SRB2's "path" directory
|
// next, check SRB2's "path" directory
|
||||||
homecheck = filesearch(filename, srb2path, wantedmd5sum, completepath, 10);
|
homecheck = filesearch(filename, srb2path, priorityfolder, wantedmd5sum, completepath, 10);
|
||||||
|
|
||||||
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
if (homecheck == FS_FOUND) // we found the file, so return that we have :)
|
||||||
return FS_FOUND;
|
return FS_FOUND;
|
||||||
|
|
@ -1783,7 +1783,7 @@ filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum, boolean complet
|
||||||
// if not found at all, just move on without doing anything
|
// if not found at all, just move on without doing anything
|
||||||
|
|
||||||
// finally check "." directory
|
// finally check "." directory
|
||||||
homecheck = filesearch(filename, ".", wantedmd5sum, completepath, 10);
|
homecheck = filesearch(filename, ".", priorityfolder, wantedmd5sum, completepath, 10);
|
||||||
|
|
||||||
if (homecheck != FS_NOTFOUND) // if not found this time, fall back on the below return statement
|
if (homecheck != FS_NOTFOUND) // if not found this time, fall back on the below return statement
|
||||||
return homecheck; // otherwise return the result we got
|
return homecheck; // otherwise return the result we got
|
||||||
|
|
|
||||||
|
|
@ -157,7 +157,7 @@ void Command_Downloads_f(void);
|
||||||
boolean fileexist(char *filename, time_t ptime);
|
boolean fileexist(char *filename, time_t ptime);
|
||||||
|
|
||||||
// Search a file in the wadpath, return FS_FOUND when found
|
// Search a file in the wadpath, return FS_FOUND when found
|
||||||
filestatus_t findfile(char *filename, const UINT8 *wantedmd5sum,
|
filestatus_t findfile(char *filename, const char *suggestedfolder, const UINT8 *wantedmd5sum,
|
||||||
boolean completepath);
|
boolean completepath);
|
||||||
filestatus_t checkfilemd5(char *filename, const UINT8 *wantedmd5sum);
|
filestatus_t checkfilemd5(char *filename, const UINT8 *wantedmd5sum);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -333,7 +333,8 @@ char *refreshdirname = NULL;
|
||||||
|
|
||||||
|
|
||||||
#if defined (_XBOX) && defined (_MSC_VER)
|
#if defined (_XBOX) && defined (_MSC_VER)
|
||||||
filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum,
|
filestatus_t filesearch(char *filename, const char *startpath,
|
||||||
|
const char *priorityfolder, const UINT8 *wantedmd5sum,
|
||||||
boolean completepath, int maxsearchdepth)
|
boolean completepath, int maxsearchdepth)
|
||||||
{
|
{
|
||||||
//NONE?
|
//NONE?
|
||||||
|
|
@ -364,7 +365,8 @@ boolean preparefilemenu(boolean samedepth, boolean replayhut)
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif defined (_WIN32_WCE)
|
#elif defined (_WIN32_WCE)
|
||||||
filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum,
|
filestatus_t filesearch(char *filename, const char *startpath,
|
||||||
|
const char *priorityfolder, const UINT8 *wantedmd5sum,
|
||||||
boolean completepath, int maxsearchdepth)
|
boolean completepath, int maxsearchdepth)
|
||||||
{
|
{
|
||||||
#ifdef __GNUC__
|
#ifdef __GNUC__
|
||||||
|
|
@ -378,6 +380,8 @@ filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *want
|
||||||
HANDLE searchhandle = INVALID_HANDLE_VALUE;
|
HANDLE searchhandle = INVALID_HANDLE_VALUE;
|
||||||
const wchar_t wm[4] = L"*.*";
|
const wchar_t wm[4] = L"*.*";
|
||||||
|
|
||||||
|
(void)priorityfolder;
|
||||||
|
|
||||||
//if (startpath) SetCurrentDirectory(startpath);
|
//if (startpath) SetCurrentDirectory(startpath);
|
||||||
if (FIL_ReadFileOK(filename))
|
if (FIL_ReadFileOK(filename))
|
||||||
{
|
{
|
||||||
|
|
@ -396,7 +400,7 @@ filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *want
|
||||||
//if (SetCurrentDirectory(dta.cFileName))
|
//if (SetCurrentDirectory(dta.cFileName))
|
||||||
{ // can fail if we haven't the right
|
{ // can fail if we haven't the right
|
||||||
filestatus_t found;
|
filestatus_t found;
|
||||||
found = filesearch(filename,NULL,wantedmd5sum,completepath,maxsearchdepth-1);
|
found = filesearch(filename,NULL,NULL,wantedmd5sum,completepath,maxsearchdepth-1);
|
||||||
//SetCurrentDirectory("..");
|
//SetCurrentDirectory("..");
|
||||||
if (found == FS_FOUND || found == FS_MD5SUMBAD)
|
if (found == FS_FOUND || found == FS_MD5SUMBAD)
|
||||||
{
|
{
|
||||||
|
|
@ -442,7 +446,9 @@ static const char *filesearch_exclude[] = {
|
||||||
NULL
|
NULL
|
||||||
};
|
};
|
||||||
|
|
||||||
filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum, boolean completepath, int maxsearchdepth)
|
filestatus_t filesearch(char *filename, const char *startpath,
|
||||||
|
const char *priorityfolder, const UINT8 *wantedmd5sum,
|
||||||
|
boolean completepath, int maxsearchdepth)
|
||||||
{
|
{
|
||||||
filestatus_t retval = FS_NOTFOUND;
|
filestatus_t retval = FS_NOTFOUND;
|
||||||
DIR **dirhandle;
|
DIR **dirhandle;
|
||||||
|
|
@ -479,6 +485,27 @@ filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *want
|
||||||
else
|
else
|
||||||
searchpathindex[depthleft]--;
|
searchpathindex[depthleft]--;
|
||||||
|
|
||||||
|
if (priorityfolder != NULL)
|
||||||
|
{
|
||||||
|
// Start the search at [startpath]/priorityfolder
|
||||||
|
|
||||||
|
strcpy(&searchpath[searchpathindex[depthleft]], priorityfolder);
|
||||||
|
|
||||||
|
if (stat(searchpath,&fsstat) < 0) // do we want to follow symlinks? if not: change it to lstat
|
||||||
|
; // was the file (re)moved? can't stat it
|
||||||
|
else if (S_ISDIR(fsstat.st_mode) && depthleft)
|
||||||
|
{
|
||||||
|
if ((dirhandle[depthleft-1] = opendir(searchpath)) != NULL)
|
||||||
|
{
|
||||||
|
// Got read permissions!
|
||||||
|
searchpathindex[--depthleft] = strlen(searchpath) + 1;
|
||||||
|
|
||||||
|
searchpath[searchpathindex[depthleft]-1] = PATHSEP[0];
|
||||||
|
searchpath[searchpathindex[depthleft]] = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
while ((!found) && (depthleft < maxsearchdepth))
|
while ((!found) && (depthleft < maxsearchdepth))
|
||||||
{
|
{
|
||||||
searchpath[searchpathindex[depthleft]]=0;
|
searchpath[searchpathindex[depthleft]]=0;
|
||||||
|
|
@ -517,7 +544,14 @@ filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *want
|
||||||
if (depthleft == maxsearchdepth-1)
|
if (depthleft == maxsearchdepth-1)
|
||||||
{
|
{
|
||||||
// When we're at the root of the search, we exclude certain folders.
|
// When we're at the root of the search, we exclude certain folders.
|
||||||
for (; *path; path++)
|
|
||||||
|
if (priorityfolder != NULL
|
||||||
|
&& strcasecmp(priorityfolder, dent->d_name))
|
||||||
|
{
|
||||||
|
// We skip revisiting the priority by pretending
|
||||||
|
// it matched the first exclude directory instead
|
||||||
|
}
|
||||||
|
else for (; *path; path++)
|
||||||
{
|
{
|
||||||
if (strcasecmp(*path, dent->d_name))
|
if (strcasecmp(*path, dent->d_name))
|
||||||
continue;
|
continue;
|
||||||
|
|
|
||||||
|
|
@ -31,6 +31,7 @@ extern consvar_t cv_addons_md5, cv_addons_showall, cv_addons_search_case, cv_add
|
||||||
|
|
||||||
\param filename the file to look for
|
\param filename the file to look for
|
||||||
\param startpath where to start look from
|
\param startpath where to start look from
|
||||||
|
\param priorityfolder priority for starting checking, then go back up?
|
||||||
\param wantedmd5sum want to check with MD5
|
\param wantedmd5sum want to check with MD5
|
||||||
\param completepath want to return the complete path of the file?
|
\param completepath want to return the complete path of the file?
|
||||||
\param maxsearchdepth the max depth to search for the file
|
\param maxsearchdepth the max depth to search for the file
|
||||||
|
|
@ -40,7 +41,7 @@ extern consvar_t cv_addons_md5, cv_addons_showall, cv_addons_search_case, cv_add
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
filestatus_t filesearch(char *filename, const char *startpath, const UINT8 *wantedmd5sum,
|
filestatus_t filesearch(char *filename, const char *startpath, const char *priorityfolder, const UINT8 *wantedmd5sum,
|
||||||
boolean completepath, int maxsearchdepth);
|
boolean completepath, int maxsearchdepth);
|
||||||
|
|
||||||
#define menudepth 20
|
#define menudepth 20
|
||||||
|
|
|
||||||
|
|
@ -1785,7 +1785,7 @@ static void G_LoadDemoExtraFiles(UINT8 **pp)
|
||||||
if (numwadfiles >= MAX_WADFILES)
|
if (numwadfiles >= MAX_WADFILES)
|
||||||
toomany = true;
|
toomany = true;
|
||||||
else
|
else
|
||||||
ncs = findfile(filename, md5sum, false);
|
ncs = findfile(filename, "addons", md5sum, false);
|
||||||
|
|
||||||
if (toomany)
|
if (toomany)
|
||||||
{
|
{
|
||||||
|
|
@ -1894,7 +1894,7 @@ static UINT8 G_CheckDemoExtraFiles(savebuffer_t *info, boolean quick)
|
||||||
|
|
||||||
if (numwadfiles >= MAX_WADFILES)
|
if (numwadfiles >= MAX_WADFILES)
|
||||||
error = DFILE_ERROR_CANNOTLOAD;
|
error = DFILE_ERROR_CANNOTLOAD;
|
||||||
else if (!quick && findfile(filename, md5sum, false) != FS_FOUND)
|
else if (!quick && findfile(filename, "addons", md5sum, false) != FS_FOUND)
|
||||||
error = DFILE_ERROR_CANNOTLOAD;
|
error = DFILE_ERROR_CANNOTLOAD;
|
||||||
else if (error < DFILE_ERROR_INCOMPLETEOUTOFORDER)
|
else if (error < DFILE_ERROR_INCOMPLETEOUTOFORDER)
|
||||||
error |= DFILE_ERROR_NOTLOADED;
|
error |= DFILE_ERROR_NOTLOADED;
|
||||||
|
|
|
||||||
|
|
@ -628,7 +628,7 @@ void LUA_DumpFile(const char *filename)
|
||||||
|
|
||||||
// If findfile finds the file, the full path will be returned
|
// If findfile finds the file, the full path will be returned
|
||||||
// in filenamebuf == filename.
|
// in filenamebuf == filename.
|
||||||
if (findfile(filenamebuf, NULL, true))
|
if (findfile(filenamebuf, NULL, NULL, true))
|
||||||
{
|
{
|
||||||
if ((handle = fopen(filename, "rb")) == NULL)
|
if ((handle = fopen(filename, "rb")) == NULL)
|
||||||
{
|
{
|
||||||
|
|
|
||||||
|
|
@ -2160,7 +2160,7 @@ static const char *searchWad(const char *searchDir)
|
||||||
filestatus_t fstemp;
|
filestatus_t fstemp;
|
||||||
|
|
||||||
strcpy(tempsw, WADKEYWORD);
|
strcpy(tempsw, WADKEYWORD);
|
||||||
fstemp = filesearch(tempsw,searchDir,NULL,true,20);
|
fstemp = filesearch(tempsw, searchDir, NULL, NULL, true, 20);
|
||||||
if (fstemp == FS_FOUND)
|
if (fstemp == FS_FOUND)
|
||||||
{
|
{
|
||||||
pathonly(tempsw);
|
pathonly(tempsw);
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,7 @@ static char *searchFont(const char *fontsearchDir)
|
||||||
filestatus_t fstemp;
|
filestatus_t fstemp;
|
||||||
|
|
||||||
strcpy(tempsw, FONTFILE);
|
strcpy(tempsw, FONTFILE);
|
||||||
fstemp = filesearch(tempsw, fontsearchDir, NULL, true, 20);
|
fstemp = filesearch(tempsw, fontsearchDir, NULL, NULL, true, 20);
|
||||||
if (fstemp == FS_FOUND)
|
if (fstemp == FS_FOUND)
|
||||||
{
|
{
|
||||||
return tempsw;
|
return tempsw;
|
||||||
|
|
|
||||||
|
|
@ -3432,7 +3432,7 @@ static const char *searchWad(const char *searchDir)
|
||||||
filestatus_t fstemp;
|
filestatus_t fstemp;
|
||||||
|
|
||||||
strcpy(tempsw, WADKEYWORD);
|
strcpy(tempsw, WADKEYWORD);
|
||||||
fstemp = filesearch(tempsw,searchDir,NULL,true,20);
|
fstemp = filesearch(tempsw, searchDir, NULL, NULL, true, 20);
|
||||||
if (fstemp == FS_FOUND)
|
if (fstemp == FS_FOUND)
|
||||||
{
|
{
|
||||||
pathonly(tempsw);
|
pathonly(tempsw);
|
||||||
|
|
|
||||||
|
|
@ -186,7 +186,7 @@ static char filenamebuf[MAX_WADPATH];
|
||||||
// Returns the FILE * handle for the file, or NULL if not found or could not be opened
|
// Returns the FILE * handle for the file, or NULL if not found or could not be opened
|
||||||
// If "useerrors" is true then print errors in the console, else just don't bother
|
// If "useerrors" is true then print errors in the console, else just don't bother
|
||||||
// "filename" may be modified to have the correct path the actual file is located in, if necessary
|
// "filename" may be modified to have the correct path the actual file is located in, if necessary
|
||||||
FILE *W_OpenWadFile(const char **filename, boolean useerrors)
|
FILE *W_OpenWadFile(const char **filename, const char *priorityfolder, boolean useerrors)
|
||||||
{
|
{
|
||||||
FILE *handle;
|
FILE *handle;
|
||||||
|
|
||||||
|
|
@ -209,7 +209,7 @@ FILE *W_OpenWadFile(const char **filename, boolean useerrors)
|
||||||
|
|
||||||
// If findfile finds the file, the full path will be returned
|
// If findfile finds the file, the full path will be returned
|
||||||
// in filenamebuf == *filename.
|
// in filenamebuf == *filename.
|
||||||
if (findfile(filenamebuf, NULL, true))
|
if (findfile(filenamebuf, priorityfolder, NULL, true))
|
||||||
{
|
{
|
||||||
if ((handle = fopen(*filename, "rb")) == NULL)
|
if ((handle = fopen(*filename, "rb")) == NULL)
|
||||||
{
|
{
|
||||||
|
|
@ -845,7 +845,7 @@ UINT16 W_InitFile(const char *filename, boolean mainfile, boolean startup, const
|
||||||
}
|
}
|
||||||
|
|
||||||
// open wad file
|
// open wad file
|
||||||
if ((handle = W_OpenWadFile(&filename, true)) == NULL)
|
if ((handle = W_OpenWadFile(&filename, (mainfile ? NULL : "addons"), true)) == NULL)
|
||||||
return W_InitFileError(filename, startup);
|
return W_InitFileError(filename, startup);
|
||||||
|
|
||||||
important = W_VerifyNMUSlumps(filename, handle, startup);
|
important = W_VerifyNMUSlumps(filename, handle, startup);
|
||||||
|
|
@ -2472,17 +2472,11 @@ void W_InitShaderLookup(const char *filename)
|
||||||
{
|
{
|
||||||
nameonly(filename_buf);
|
nameonly(filename_buf);
|
||||||
|
|
||||||
if (findfile(filename_buf, NULL, true))
|
if (!findfile(filename_buf, "data", NULL, true))
|
||||||
{
|
return;
|
||||||
if ((handle = fopen(filename_buf, "rb")) == NULL)
|
|
||||||
{
|
if ((handle = fopen(filename_buf, "rb")) == NULL)
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
return;
|
return;
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// It is acceptable to fail opening the pk3 lookup.
|
// It is acceptable to fail opening the pk3 lookup.
|
||||||
|
|
|
||||||
|
|
@ -147,7 +147,7 @@ extern wadfile_t *wadfiles[MAX_WADFILES];
|
||||||
void W_Shutdown(void);
|
void W_Shutdown(void);
|
||||||
|
|
||||||
// Opens a WAD file. Returns the FILE * handle for the file, or NULL if not found or could not be opened
|
// Opens a WAD file. Returns the FILE * handle for the file, or NULL if not found or could not be opened
|
||||||
FILE *W_OpenWadFile(const char **filename, boolean useerrors);
|
FILE *W_OpenWadFile(const char **filename, const char *priorityfolder, boolean useerrors);
|
||||||
// Load and add a wadfile to the active wad files, returns numbers of lumps, INT16_MAX on error
|
// Load and add a wadfile to the active wad files, returns numbers of lumps, INT16_MAX on error
|
||||||
UINT16 W_InitFile(const char *filename, boolean mainfile, boolean startup, const char *md5expected);
|
UINT16 W_InitFile(const char *filename, boolean mainfile, boolean startup, const char *md5expected);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue