Rachael Alexanderson
b85b7c18da
Merge branch '4.14' of c:/projects/gzdoom into gzd4-14-merge
2024-12-18 10:23:00 -05:00
Christoph Oelckers
9b62379645
removed -hashfiles after finding out it had been broken for an extended time period.
...
this is a strong indicator that nobody was using it - and I do not feel like fixing such an invasive feature with little utility.
2024-11-23 21:10:11 +01:00
Magnus Norddahl
ee7771f71f
ZDRay lump loading adjustments
2024-01-16 12:42:58 +01:00
Christoph Oelckers
83aa9388ca
backend update from Raze
...
* moving large allocations off the stack
* use proper printf formatters for size_t and ptrdiff_t.
* adding some missing 'noexcept'.
2024-01-06 15:24:10 +01:00
Christoph Oelckers
958303556f
warnings and debug code cleanup
2023-12-26 22:16:21 +01:00
Christoph Oelckers
baa9251741
simplified the directory reader a little bit
...
* we do not need to make a second allocation for the systemFilePath
* as systemFilePath is never null, there is no need to check for that case.
* moved systemFilePath into a separate array to save memory on other file types.
2023-12-24 08:35:47 +01:00
Vasilii Shirokii
90d672e345
Maintain the actual on-disk path (FResourceEntry::SystemFilePath) for the directory filesystem, because the FResourceEntry::FileName can be modified by game filter-s
2023-12-24 08:22:40 +01:00
Christoph Oelckers
d2c395757c
fixed bad setup in FileData constructor.
2023-12-21 17:14:56 +01:00
Christoph Oelckers
efef4bdfd1
addressed a few warnings in the filesystem code.
2023-12-17 13:32:44 +01:00
Christoph Oelckers
aec7feb48a
add 'noexcept' to two functions.
2023-12-16 11:48:08 +01:00
Christoph Oelckers
633c09a3bb
de-inlined two functions that were generating too much code.
2023-12-16 10:58:04 +01:00
Christoph Oelckers
08614613be
for memory backed files, let FResourceFile::Read return a reference to the backing store instead of copying the data.
2023-12-16 10:54:31 +01:00
Christoph Oelckers
bae3adc89f
moved writezip.cpp out of filesystem and eliminated uses of TArray.
2023-12-15 16:59:00 +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
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
292705ddc3
fixed OpenDecompressor flag handling.
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
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
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
fe106d9bfe
merge FileData and ResourceData.
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
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
Christoph Oelckers
f873946bd0
fixed some warnings.
2023-12-10 13:31:50 +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
df56fc65e0
rework some of the friend-dependent access to FResourceLump.
2023-12-10 10:26:44 +01:00
Christoph Oelckers
ebc808e2a9
did some cleanup of the FResourceFile interface.
...
* making all members protected (but adding friend overrides for the classes which still need it)
* allowing to read data without retrieving the FResourceLump object.
2023-12-10 10:24:39 +01:00
Christoph Oelckers
fc84579319
let FileReader::Read return an opaque buffer instead of std::vector.
...
This can later allow returning a pointer to a static buffer from a cache without creating copies.
2023-12-10 09:07:49 +01:00
Cacodemon345
4497d7fdaa
Update LZMA SDK to 23.01
...
As a bonus, add support for XZ-compressed files in ZIP
2023-10-07 17:31:24 +02:00
Christoph Oelckers
4fd5f00c4b
- made all FileReader implementations 64 bit capable.
2023-09-14 21:45:38 +02:00
Professor Hastig
8b31e0d3b6
- fix bad stringpool setup in filesystem.
...
Doing it in the constructor does not work because InitMultipleFiles will clear everything again before building up the directory so it would always be null.
This triggered another bug in file_directory.cpp which used the constructor's unvalidated parameter.
2023-09-13 16:42:22 +02:00
alexey.lysiuk
bfefc12427
- fixed a bunch of Linux and macOS compilation errors
2023-08-23 12:34:33 +03:00
Christoph Oelckers
5a1b858c0e
- added some safety checks for reading empty lumps into a std::vector.
...
These can trip the internal safety checks, even though nothing gets read in.
2023-08-22 22:59:29 +02:00
Christoph Oelckers
c77ece4922
moved private definitions out of public headers.
2023-08-22 22:54:54 +02:00
Christoph Oelckers
ebb71cebf1
- put the entire filesystem code into a namespace and created some subdirectories.
2023-08-22 22:54:54 +02:00