From 38a1a05af3bf303a21de02b1bfc213b4351a5e25 Mon Sep 17 00:00:00 2001 From: Christoph Oelckers Date: Tue, 16 Jul 2019 20:22:15 +0200 Subject: [PATCH] - moved iwadinfo.txt to zd_extra.pk3. This was done for two reasons: 1. It forces loading of zd_extra.pk3 for the stock IWADs, eliminating a certain kind of user error. 2. It removes the stock IWAD definitions for custom games that distribute the engine along with their data, so that it doesn't pick up on Steam and GOG installations and shows an inappropriate IWAD picker. --- src/d_iwad.cpp | 14 +++++++------- src/d_main.cpp | 4 ++-- src/d_main.h | 2 +- {wadsrc => wadsrc_extra}/static/iwadinfo.txt | 0 4 files changed, 10 insertions(+), 10 deletions(-) rename {wadsrc => wadsrc_extra}/static/iwadinfo.txt (100%) diff --git a/src/d_iwad.cpp b/src/d_iwad.cpp index f7656e9d4b..70e7bcb30c 100644 --- a/src/d_iwad.cpp +++ b/src/d_iwad.cpp @@ -262,10 +262,10 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize, // //========================================================================== -FIWadManager::FIWadManager(const char *fn) +FIWadManager::FIWadManager(const char *fn, const char *optfn) { - FResourceFile *resfile = FResourceFile::OpenResourceFile(fn, true); - if (resfile != NULL) + FResourceFile *resfile = FResourceFile::OpenResourceFile(optfn, true); + if (resfile != NULL && 0) { uint32_t cnt = resfile->LumpCount(); for(int i=cnt-1; i>=0; i--) @@ -280,10 +280,10 @@ FIWadManager::FIWadManager(const char *fn) } } delete resfile; - } - if (mIWadNames.Size() == 0 || mIWadInfos.Size() == 0) - { - I_FatalError("No IWAD definitions found"); + if (mIWadNames.Size() == 0 || mIWadInfos.Size() == 0) + { + I_FatalError("No IWAD definitions found"); + } } } diff --git a/src/d_main.cpp b/src/d_main.cpp index 930f1893dc..1aa67e9b48 100644 --- a/src/d_main.cpp +++ b/src/d_main.cpp @@ -2338,7 +2338,7 @@ void D_DoomMain (void) FString optionalwad = BaseFileSearch(OPTIONALWAD, NULL, true); - iwad_man = new FIWadManager(basewad); + iwad_man = new FIWadManager(basewad, optionalwad); // Now that we have the IWADINFO, initialize the autoload ini sections. GameConfig->DoAutoloadSetup(iwad_man); @@ -2368,7 +2368,7 @@ void D_DoomMain (void) if (iwad_man == NULL) { - iwad_man = new FIWadManager(basewad); + iwad_man = new FIWadManager(basewad, optionalwad); } const FIWADInfo *iwad_info = iwad_man->FindIWAD(allwads, iwad, basewad, optionalwad); gameinfo.gametype = iwad_info->gametype; diff --git a/src/d_main.h b/src/d_main.h index 764850aa9c..f19aa66714 100644 --- a/src/d_main.h +++ b/src/d_main.h @@ -151,7 +151,7 @@ class FIWadManager void AddIWADCandidates(const char *dir); void ValidateIWADs(); public: - FIWadManager(const char *fn); + FIWadManager(const char *fn, const char *fnopt); const FIWADInfo *FindIWAD(TArray &wadfiles, const char *iwad, const char *basewad, const char *optionalwad); const FString *GetAutoname(unsigned int num) const { diff --git a/wadsrc/static/iwadinfo.txt b/wadsrc_extra/static/iwadinfo.txt similarity index 100% rename from wadsrc/static/iwadinfo.txt rename to wadsrc_extra/static/iwadinfo.txt