From 81449728d7a6217460e9e451eca20232e86a3316 Mon Sep 17 00:00:00 2001 From: MaxED Date: Mon, 24 Oct 2016 14:13:40 +0300 Subject: [PATCH] Allows loading directories as IWADs using "-iwad" command line parameter. --- src/d_iwad.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index 1fc63e03d3..6fa8604a0c 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -292,6 +292,7 @@ void FIWadManager::ParseIWadInfos(const char *fn) int FIWadManager::ScanIWAD (const char *iwad) { FResourceFile *iwadfile = FResourceFile::OpenResourceFile(iwad, NULL, true); + if (iwadfile == NULL) iwadfile = FResourceFile::OpenDirectory(iwad, true); //mxd. A directory can also work as an IWAD if (iwadfile != NULL) { @@ -344,7 +345,7 @@ int FIWadManager::CheckIWAD (const char *doomwaddir, WadStuff *wads) iwad.Format ("%s%s%s", doomwaddir, slash, mIWadNames[i].GetChars()); FixPathSeperator (iwad); - if (FileExists (iwad)) + if (DirEntryExists(iwad)) { wads[i].Type = ScanIWAD (iwad); if (wads[i].Type != -1) @@ -413,7 +414,7 @@ int FIWadManager::IdentifyVersion (TArray &wadfiles, const char *iwad, } else { - DefaultExtension (custwad, ".wad"); + if(FileExists(custwad)) DefaultExtension (custwad, ".wad"); //mxd. Don't treat folders as .wads iwadparm = custwad; mIWadNames[0] = custwad; CheckIWAD ("", &wads[0]);