Commit graph

21521 commits

Author SHA1 Message Date
Christoph Oelckers
869d7a6dcb only try to find a common folder in Zips if there's some data to check against.
Without this the check for required file names will always fail so running the entire thing is pointless.
2023-12-14 17:55:46 +01:00
Christoph Oelckers
f8d839d6eb move root folder detection out of file_zip.
added support for Descent Hog and Mvl files., mainly useful for playing Descent's music directly from the asset files.
2023-12-14 17:22:32 +01:00
Christoph Oelckers
799679bf6c block off shared readers to worker threads.
The file system should be thread safe now.
2023-12-14 17:22:32 +01:00
Christoph Oelckers
737e3f22d7 implement the different reader types. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
11d6b3e5b4 only use the new flag names 2023-12-14 17:22:32 +01:00
Christoph Oelckers
301323944f eliminate the intermediate reader for the savegame pics. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
78a71bb662 streamline the buffer readers. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
235d36fe69 simplification of MemoryArrayReader interface. 2023-12-14 17:22:32 +01:00
Christoph Oelckers
9bcbdfa09c take OpenDecompressor out of FileReader and fixed exploding decompression 2023-12-14 17:22:32 +01:00
Christoph Oelckers
6f8c3c60c4 Use FResourceFile directly for the simple container types.
Instead let FResourceFile provide an interface for ad-hoc construction of a new container.
2023-12-14 17:22:31 +01:00
Christoph Oelckers
72a2e5d532 fixed remaining issues in resource file loading. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
f3c7e01195 fixed BufferingReader 2023-12-14 17:22:31 +01:00
Christoph Oelckers
292705ddc3 fixed OpenDecompressor flag handling. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
e1cf8af9d3 zero the Entries array on allocation 2023-12-14 17:22:31 +01:00
Christoph Oelckers
0be8fed6fc fixed BufferingReader. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
df3e82d94c cleaned up some redundant file reads and fixed file opening in the movie player.
As a streaming action this cannot borrow the one from the archive.
2023-12-14 17:22:31 +01:00
Christoph Oelckers
3e7ec9118f got rid of FUncompressedFile and reenabled postprocessing. 2023-12-14 17:22:31 +01:00
Christoph Oelckers
10f743a0d6 cleaned out all remaining references to FResourceLump.
Most importantly, the lump locking mechanism is finally gone.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
e35b0f1453 got rid of FZipLump. 2023-12-14 17:22:30 +01:00
Christoph Oelckers
c27c8c232a handle RFF encryption like compression.
This allows simplifiying the code a lot by moving the decrypter to OpenDecompressor and handling it with generic code in the base class.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
728bbd6327 fix some stuff 2023-12-14 17:22:30 +01:00
Christoph Oelckers
39020f7f95 preparations for getting rid of FZipLump
* allow ancient compression algorithms to be handled by OpenDecompressor.
* move FCompressedBuffer to fs_files.h
* use a mutex lock for 7z access because it cannot be made thread save otherwise.
2023-12-14 17:22:30 +01:00
Christoph Oelckers
9710c71669 got rid of FWadFileLump 2023-12-14 17:22:30 +01:00
Christoph Oelckers
854097024f Get rid of FUncompressedFile::Lumps
(RFF is inoperable in this commit!)
2023-12-14 17:22:30 +01:00
Christoph Oelckers
27a356814c got rid of F7ZLump 2023-12-14 17:22:30 +01:00
Christoph Oelckers
f5f9d5b5d8 got rid of FDirectoryLump. 2023-12-14 17:22:30 +01:00
Christoph Oelckers
3b0d101607 move GetRawData and associated code out of FResourceLump 2023-12-14 17:22:29 +01:00
Christoph Oelckers
ae1bd3c890 set up the new Entries array. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
e9700e2771 remove unused variable 2023-12-14 17:22:29 +01:00
Christoph Oelckers
fe106d9bfe merge FileData and ResourceData. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
d2cb44b1bf get rid of the FResourceLump pointer in LumpRecord. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
dc52cac89e more access methods for FResourceFile 2023-12-14 17:22:29 +01:00
Christoph Oelckers
aaea3d52aa fixed more warnings. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
c1ecc41f9d rewrote FileSystem::AddFromBuffer so that it gets backed by an actual FResourceFile. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
0a1eccef92 remove unused FileSystem::AddExternalFile method. 2023-12-14 17:22:29 +01:00
Christoph Oelckers
21acb9d467 simplify lump filter setup and move the Doom special case for 'doom.doom' out of FResourceFile 2023-12-14 17:22:28 +01:00
Rachael Alexanderson
4850ee3776 - fix nullptr check for target in HolySpirit.Slam (fixes #2296) 2023-12-13 09:59:14 -05:00
Christoph Oelckers
c95d611c1f fixed ibm437_to_utf8 2023-12-12 18:07:31 +01:00
Rachael Alexanderson
0bf634013e - fix nullptr dereference 2023-12-11 08:00:23 +01:00
Rachael Alexanderson
93772c4e0c - add new ccmd cvarsearch allows searching cvar by name, languageid, or description 2023-12-11 08:00:23 +01:00
Christoph Oelckers
6ff667a490 fixed savepic loading. 2023-12-10 22:14:09 +01:00
Rachael Alexanderson
42ab7dd70f - mark gl_maplightmode as a cheat
I've heard from several people since this was put in that this should be marked as a cheat. This PR lets you make the final call on that.
2023-12-10 18:22:57 +01:00
Christoph Oelckers
f873946bd0 fixed some warnings. 2023-12-10 13:31:50 +01:00
Christoph Oelckers
36d05112d5 backend update from Raze.
Mainly fixing case table for Georgian script and de-inlining M_Calloc.
2023-12-10 13:26:43 +01:00
Christoph Oelckers
749d4e3acb use the FResourceFile interface in favor of FResourceLump's where possible. 2023-12-10 12:20:06 +01:00
Christoph Oelckers
5c04185d5a renamed things. 2023-12-10 12:06:52 +01:00
Christoph Oelckers
96b3f1f5e0 removed unused variable in M_FindResponseFile and added file length check in ANM player. 2023-12-10 11:55:42 +01:00
Christoph Oelckers
02a6e0422d Clang did not like this... 2023-12-10 11:00:44 +01:00
Christoph Oelckers
7d0ad4897f use proper access functions to ResourceData. 2023-12-10 10:32:16 +01:00
Christoph Oelckers
4da196a416 UTF8 conversion stuff.
This is for dealing with Unicode file names which cannot be handled with an idealized Unicode approach as was present before.
utf8proc was included to handle normalization because with externally provided filenames we have no control over enforcing our pld rules.
2023-12-10 10:29:38 +01:00