mirror of
https://github.com/ZDoom/gzdoom.git
synced 2024-11-22 20:21:26 +00:00
- fixed setup of IPK3's where all content is in a subdirectory.
These never received the file name list that was needed to eliminate this directory from internal paths.
This commit is contained in:
parent
14ce0f4605
commit
6dfc416b51
2 changed files with 19 additions and 7 deletions
|
@ -263,6 +263,8 @@ void FIWadManager::ParseIWadInfo(const char *fn, const char *data, int datasize,
|
|||
// Look for IWAD definition lump
|
||||
//
|
||||
//==========================================================================
|
||||
extern const char* iwad_folders[13];
|
||||
extern const char* iwad_reserved[12];
|
||||
|
||||
FIWadManager::FIWadManager(const char *firstfn, const char *optfn)
|
||||
{
|
||||
|
@ -352,7 +354,13 @@ int FIWadManager::CheckIWADInfo(const char* fn)
|
|||
{
|
||||
FileSystem check;
|
||||
|
||||
check.InitSingleFile(fn, true);
|
||||
LumpFilterInfo lfi;
|
||||
for (auto p : iwad_folders) lfi.reservedFolders.Push(p);
|
||||
for (auto p : iwad_reserved) lfi.requiredPrefixes.Push(p);
|
||||
|
||||
TArray<FString> filenames;
|
||||
filenames.Push(fn);
|
||||
check.InitMultipleFiles(filenames, true, &lfi);
|
||||
if (check.GetNumEntries() > 0)
|
||||
{
|
||||
int num = check.CheckNumForName("IWADINFO");
|
||||
|
|
|
@ -184,6 +184,9 @@ extern bool M_DemoNoPlay; // [RH] if true, then skip any demos in the loop
|
|||
extern bool insave;
|
||||
extern TDeletingArray<FLightDefaults *> LightDefaults;
|
||||
|
||||
const char* iwad_folders[13] = { "flats/", "textures/", "hires/", "sprites/", "voxels/", "colormaps/", "acs/", "maps/", "voices/", "patches/", "graphics/", "sounds/", "music/" };
|
||||
const char* iwad_reserved[12] = { "mapinfo", "zmapinfo", "gameinfo", "sndinfo", "sbarinfo", "menudef", "gldefs", "animdefs", "decorate", "zscript", "iwadinfo" "maps/" };
|
||||
|
||||
|
||||
CUSTOM_CVAR(Float, i_timescale, 1.0f, CVAR_NOINITCALL)
|
||||
{
|
||||
|
@ -1850,8 +1853,12 @@ static FString CheckGameInfo(TArray<FString> & pwads)
|
|||
{
|
||||
FileSystem check;
|
||||
|
||||
LumpFilterInfo lfi;
|
||||
for (auto p : iwad_folders) lfi.reservedFolders.Push(p);
|
||||
for (auto p : iwad_reserved) lfi.requiredPrefixes.Push(p);
|
||||
|
||||
// Open the entire list as a temporary file system and look for a GAMEINFO lump. The last one will automatically win.
|
||||
check.InitMultipleFiles(pwads, true);
|
||||
check.InitMultipleFiles(pwads, true, &lfi);
|
||||
if (check.GetNumEntries() > 0)
|
||||
{
|
||||
int num = check.CheckNumForName("GAMEINFO");
|
||||
|
@ -2989,11 +2996,8 @@ static int D_DoomMain_Internal (void)
|
|||
}
|
||||
lfi.gameTypeFilter.Push(FStringf("game-%s", GameTypeName()));
|
||||
|
||||
static const char* folders[] = { "flats/", "textures/", "hires/", "sprites/", "voxels/", "colormaps/", "acs/", "maps/", "voices/", "patches/", "graphics/", "sounds/", "music/" };
|
||||
for (auto p : folders) lfi.reservedFolders.Push(p);
|
||||
|
||||
static const char* reserved[] = { "mapinfo", "zmapinfo", "gameinfo", "sndinfo", "sbarinfo", "menudef", "gldefs", "animdefs", "decorate", "zscript", "maps/" };
|
||||
for (auto p : reserved) lfi.requiredPrefixes.Push(p);
|
||||
for (auto p : iwad_folders) lfi.reservedFolders.Push(p);
|
||||
for (auto p : iwad_reserved) lfi.requiredPrefixes.Push(p);
|
||||
|
||||
lfi.postprocessFunc = [&]()
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue