diff --git a/src/common/filesystem/include/resourcefile.h b/src/common/filesystem/include/resourcefile.h index 4a7f3255bc..5776963d79 100644 --- a/src/common/filesystem/include/resourcefile.h +++ b/src/common/filesystem/include/resourcefile.h @@ -219,6 +219,11 @@ public: auto l = GetLump(entry); return l ? l->LumpSize : -1; } + size_t Offset(int entry) + { + auto l = GetLump(entry); + return l ? l->GetFileOffset() : -1; + } FileReader GetEntryReader(int entry, bool newreader = true) { @@ -232,6 +237,18 @@ public: return l ? l->Flags : 0; } + int GetEntryNamespace(int entry) + { + auto l = GetLump(entry); + return l ? l->GetNamespace() : 0; + } + + int GetEntryResourceID(int entry) + { + auto l = GetLump(entry); + return l ? l->GetIndexNum() : 0; + } + ResourceData Read(int entry) { auto fr = GetEntryReader(entry, false); diff --git a/src/common/filesystem/source/filesystem.cpp b/src/common/filesystem/source/filesystem.cpp index 7f36e513ae..b4d7ebab31 100644 --- a/src/common/filesystem/source/filesystem.cpp +++ b/src/common/filesystem/source/filesystem.cpp @@ -206,11 +206,6 @@ void FileSystem::DeleteAll () Hashes.clear(); NumEntries = 0; - // explicitly delete all manually added lumps. - for (auto &frec : FileInfo) - { - if (frec.rfnum == -1) delete frec.lump; - } FileInfo.clear(); for (int i = (int)Files.size() - 1; i >= 0; --i) {