From c8f42b1cc99bc3c099ff94bdeff79fe4be08a81c Mon Sep 17 00:00:00 2001 From: Simon Howard Date: Mon, 26 Mar 2007 12:09:53 +0000 Subject: Search WAD search dirs when loading dehacked patches. Subversion-branch: /trunk/chocolate-doom Subversion-revision: 863 --- src/d_iwad.c | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) (limited to 'src/d_iwad.c') diff --git a/src/d_iwad.c b/src/d_iwad.c index ef68ced9..895b5afb 100644 --- a/src/d_iwad.c +++ b/src/d_iwad.c @@ -43,6 +43,8 @@ // "128 IWAD search directories should be enough for anybody". #define MAX_IWAD_DIRS 128 + +static boolean iwad_dirs_built = false; static char *iwad_dirs[MAX_IWAD_DIRS]; static int num_iwad_dirs = 0; @@ -388,6 +390,11 @@ static void BuildIWADDirList(void) { char *doomwaddir; + if (iwad_dirs_built) + { + return; + } + // Look in the current directory. Doom always does this. AddIWADDir("."); @@ -420,6 +427,10 @@ static void BuildIWADDirList(void) AddIWADDir("/usr/local/share/games/doom"); #endif + + // Don't run this function again. + + iwad_dirs_built = true; } // @@ -438,6 +449,8 @@ char *D_FindWADByName(char *name) { return name; } + + BuildIWADDirList(); // Search through all IWAD paths for a file with the given name. @@ -500,10 +513,6 @@ char *D_FindIWAD(void) int iwadparm; int i; - // Build a list of locations to look for an IWAD - - BuildIWADDirList(); - // Check for the -iwad parameter //! @@ -535,6 +544,8 @@ char *D_FindIWAD(void) result = NULL; + BuildIWADDirList(); + for (i=0; result == NULL && i