Alibek Omarov
b8792e4084
filesystem: set qwrap as falldir for Quake games
2026-04-05 07:03:46 +05:00
Alibek Omarov
2713f03ec2
filesystem: fix Quake gamedir check if pak0.pak is written in uppercase, omitting caseinsensitive FS emulation as is VFS is not enabled at this stage
2026-04-05 07:03:46 +05:00
Alibek Omarov
8e450d869b
engine: common: add host.default_gamedir containing gamedir passed to us from game launcher
2026-04-03 04:09:25 +05:00
Alibek Omarov
f42e2f59b7
filesystem: mark some fs ops const
2026-03-17 00:19:27 +05:00
Alibek Omarov
192ed942c4
public: add new features to ParseFileSafe, such as disabling interpreting certain characters as separate tokens, or instead forcing them to be separate tokens
2026-02-28 04:17:34 +05:00
Alibek Omarov
ea0fed24ec
filesystem: remove unneccessary dependency on const.h
2026-02-26 10:29:09 +05:00
Alibek Omarov
2bdc22fbeb
public: exclude build_vcs from libpublic dependencies, add it per project
2026-02-23 21:48:23 +05:00
Alibek Omarov
baa005ff71
filesystem: replace COM_CheckString and COM_CheckStringEmpty by COM_StringEmptyOrNULL and COM_StringEmpty
2026-02-21 01:20:34 +05:00
Alibek Omarov
732bc50a3a
filesystem: set custom_loader flag even if loading DLLs from archives is unsupported
...
After all, it's an engine job to figure out whether it wants to load this binary or not.
2026-02-03 17:48:27 +05:00
Alibek Omarov
dae8c6cb9c
filesystem: in case of missing/incomplete liblist.gam make c0a0 default start map
2025-12-14 04:41:52 +03:00
Alibek Omarov
dd7811e5bc
filesystem: wscript: do not link library_suffix on PSVita
2025-11-16 18:46:08 +05:00
Alibek Omarov
0dfeea5213
Migrate to library-suffix library
2025-11-11 06:59:41 +05:00
Alibek Omarov
73950e867f
filesystem: initial set of fixes for big endian
2025-11-06 23:26:12 +05:00
Alibek Omarov
9330e44817
filesystem: fix missing newline in anonymous file creation error string. Turn it into a warning, because it's not fatal
2025-10-17 09:08:50 +05:00
lewa_j
37e9ac453b
win32: engine: common: client: filesystem: Fix windows build with -Werror=implicit-function-declaration
2025-10-12 00:21:00 +08:00
Alibek Omarov
3d132e0e83
common: port: move filesystem related macros to filesystem module, try to include less globally for faster builds
2025-10-08 05:03:29 +05:00
Alibek Omarov
a1d3b7d65f
Remove STDINT_H macro, use stdint.h directly. Compilers and platforms that do not have this header shall provide them on their own.
2025-10-08 03:53:37 +05:00
Alibek Omarov
8b55d01f78
filesystem: fix missing const qualifier on FS_WriteGameInfo
2025-10-03 17:41:34 +08:00
Alibek Omarov
4ef23543ae
filesystem: make current set GameInfo const
2025-10-02 22:42:51 +05:00
Alibek Omarov
55d50e2815
filesystem: explicitly tell JVM that we're done with some objects
2025-10-02 02:42:32 +08:00
Alibek Omarov
9c6589fa03
engine: introduce vfs.cfg to properly control user set addon folders
...
vfs.cfg executed before game directory is mounted, this way we can know which
folders must be mounted before engine initialization.
This commit also removes buggy hot reload of the addon folders.
2025-09-01 01:42:37 +05:00
Alibek Omarov
af0d77caf7
filesystem: android: more verbosity when mounting assets on Android fails
2025-08-11 18:49:26 +05:00
Alibek Omarov
1c0d145874
filesystem: restore lib prefix on Android, otherwise Android won't unpack the libraries
2025-08-08 16:00:03 +05:00
Alibek Omarov
81c7ef20eb
filesystem: android: use commit date as android assets file time
2025-08-04 10:25:42 +05:00
Alibek Omarov
c69a87fa89
filesystem: wscript: strip lib prefix on Android
2025-08-03 19:01:56 +05:00
Sergey Degtyar
7dc88f9417
filesystem: common: move wad structures to wadfile.h
2025-07-16 23:54:56 +05:00
Alibek Omarov
e9440a8612
filesystem: fix folder exists check in RoDir
2025-06-15 13:01:13 +05:00
Alibek Omarov
d457d7d093
filesystem: archive mounting refactoring
2025-04-28 22:28:30 +03:00
Alibek Omarov
60fa855d47
filesystem: wscript: strip lib prefix on Termux too
2025-04-24 21:42:20 +03:00
Alibek Omarov
75eb1f1e8b
filesystem: android: make failing to find JNI env non-fatal
2025-04-24 20:52:18 +03:00
Alibek Omarov
71d31330f9
filesystem: dir: fix possible null dereference
2025-04-05 14:03:24 +05:00
Alibek Omarov
9c49253388
filesystem: allow symlinks when using listdirectory with dirs_only = true
...
Should fix special setups when game directories are actually symlinks
2025-03-20 20:31:44 +03:00
Alibek Omarov
0c8da36a0b
filesystem: disallow path traversal in FS_Delete and FS_Rename
2025-02-23 03:13:46 +03:00
Alibek Omarov
1d99f65e86
filesystem: when shutting down, clean up gameinfo pointers and total games count
2025-02-05 21:14:08 +03:00
Alibek Omarov
674a4e5883
filesystem: add ability to mount HD, LV, addon and language folders by engine request
2025-02-05 18:24:36 +03:00
Alibek Omarov
2457ecf226
filesystem: fix recursive basedir possible cyclic dependency when default game directory uses a basedir that's base directory is undefined
...
That could happen when default game directory depends on base directory that don't have gameinfo.txt.
Because all game directories with liblist.gam automatically have dependency on default game directory, it causes cyclic dependency.
2025-01-29 09:49:29 +03:00
Alibek Omarov
8cd99885f1
filesystem: clean added status for game folders when purging search paths
2025-01-29 09:46:18 +03:00
Alibek Omarov
375998dffb
Cleanup xash3d_types.h from engine-specific macros and types
2025-01-22 15:10:18 +03:00
Alibek Omarov
b7c025b167
filesystem: android: request buffer for Android asset LoadFile implementation
...
Might be better than asking for random access and then only reading forward.
2025-01-21 19:50:14 +03:00
Alibek Omarov
f29c588e0f
filesystem: take code from DarkPlaces to properly read compressed files
2025-01-21 18:47:42 +03:00
Alibek Omarov
a5c02c85f0
filesystem: wad: get rid of sentinel value at the end of wad_types array
2025-01-21 15:26:06 +03:00
Alibek Omarov
154df00f94
filesystem: don't create full path to rwdir, as cwd is always equal to rwdir
...
Fixes updating gameinfo.txt.
2025-01-20 19:53:04 +03:00
Alibek Omarov
a1da10fe38
filesystem: set default values for quick/autosave aged count
2025-01-20 16:06:57 +03:00
Alibek Omarov
785632a437
filesystem: minor refactoring in MD5_HashFile, use initializer instead of memset, limit buffer variable scope
2025-01-14 11:36:13 +03:00
Alibek Omarov
69341e36a3
public: expose commit and branch as global variables instead of functions
2025-01-13 20:02:59 +03:00
Alibek Omarov
35dc072b26
filesystem: on Android, assume all paths are case-sensitive because doing Linux-specific ioctl check crashes FUSE driver and kills our app
2025-01-13 13:56:15 +03:00
Alibek Omarov
f92a3695b3
filesystem: fix fd leak in Platform_GetDirectoryCaseSensitivity
2025-01-13 13:54:42 +03:00
Alibek Omarov
d4fe3d6f8a
filesystem: wscript: check d_type field in struct dirent, as this is an extension and some supported ports (like psvita) don't have it
2025-01-08 01:22:23 +03:00
Alibek Omarov
1907485895
filesystem: re-enable folder check for array returned by listdirectory with dirs_only set to true
...
According to glibc manual, not all filesystems support it and some might return DT_UNKNOWN.
2025-01-08 01:22:23 +03:00
Alibek Omarov
cfebb3e1d6
filesystem: massively rework how scanning game directories work
...
* No more conversion from liblist.gam to gameinfo.txt. We are using liblist.gam directly now.
gameinfo.txt being native format to Xash3D not only remains, it takes priority over liblist.gam.
* Quake game directories now don't receive autogenerated gameinfo.txt.
* Empty directories don't get gameinfo.txt either, finally making it easier to support HD addon folders.
* If user still wishes to generate gameinfo.txt, there is now command fs_make_gameinfo that creates
gameinfo.txt for currently running game.
* No more creating empty folders for RoDir. They are now created on demand.
2025-01-08 01:22:23 +03:00