This should be dealt with at the source, not one level up, so that it also works properly if the GetReader function of the ResourceFile object is called directly and not through the resource manager.
This commit is contained in:
Christoph Oelckers 2018-03-12 10:26:36 +01:00
parent 3cf1959070
commit c85389c976
2 changed files with 3 additions and 4 deletions

View File

@ -106,7 +106,8 @@ public:
static FResourceFile *OpenResourceFile(const char *filename, bool quiet = false, bool containeronly = false);
static FResourceFile *OpenDirectory(const char *filename, bool quiet = false);
virtual ~FResourceFile();
FileReader *GetReader() { return &Reader; }
// If this FResourceFile represents a directory, the Reader object is not usable so don't return it.
FileReader *GetReader() { return Reader.isOpen()? &Reader : nullptr; }
uint32_t LumpCount() const { return NumLumps; }
uint32_t GetFirstLump() const { return FirstLump; }
void SetFirstLump(uint32_t f) { FirstLump = f; }

View File

@ -1364,9 +1364,7 @@ FileReader *FWadCollection::GetFileReader(int wadnum)
return NULL;
}
// Return reader for real files only and nullptr otherwise
FileReader* const reader = Files[wadnum]->GetReader();
return reader->isOpen() ? reader : nullptr;
return Files[wadnum]->GetReader();
}
//==========================================================================