Alibek Omarov
f42e2f59b7
filesystem: mark some fs ops const
2026-03-17 00:19:27 +05: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
d457d7d093
filesystem: archive mounting refactoring
2025-04-28 22:28:30 +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
f29c588e0f
filesystem: take code from DarkPlaces to properly read compressed files
2025-01-21 18:47:42 +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
Alibek Omarov
ceb2b0c5e4
filesystem: add utility function FS_CheckForQuakePak that parses Quake PAK file and looks for specific files in it's root
...
Used to properly detect Quake game dirs.
2025-01-08 01:22:23 +03:00
Alibek Omarov
4798cd6d1e
filesystem: add new export to get fs_rootdir path
2024-11-30 09:28:30 +03:00
Alibek Omarov
d15949d2e8
Rename _format to FORMAT_CHECK
2024-11-07 14:24:07 +03:00
Alibek Omarov
2e5bc31c9e
filesystem: set malloc like attribute for imported zone memory allocator functions
2024-09-30 04:00:28 +03:00
Alibek Omarov
52f9aad4d0
filesystem: add new call to fs_stdio C API to check whether we support that archive format
2024-07-30 15:25:20 +03:00
Alibek Omarov
2a394eee62
filesystem: make g_api const
2024-07-16 15:23:03 +03:00
Alibek Omarov
ec107dfba5
filesystem: load on-disk archives like PAK and PK3 through VFS (disk-only for now)
...
* Track from which archive the file has been opened and provide needed functions for it
2024-06-27 07:31:11 +03:00
Alibek Omarov
42f6719e8d
filesystem: drop direct path hacks for WAD files, let VFS decide how to open WAD archives
2024-06-27 05:55:06 +03:00
Alibek Omarov
636a2228f6
filesystem: add new API function LoadFileMalloc that returns a pointer that can be freed using standard free()
2024-02-07 23:22:27 +03:00
Alibek Omarov
0d37244490
filesystem: add missing const to 2nd argument of stringlistappend
2023-11-03 16:23:52 +03:00
Velaron
6426919cb5
filesystem: add Android assets support
2023-11-03 16:23:03 +03:00
Alibek Omarov
597429cf41
engine, filesystem: unify GetNativeObject between all the APIs. Allow getting filesystem APIs through GetNativeObject
2023-10-31 21:25:11 +03:00
Alibek Omarov
58df771c9e
filesystem: implement .pk3dir convention
2023-06-08 22:58:24 +03:00
Alibek Omarov
37e890f326
filesystem: make fs_searchpaths completely private to the filesystem core
2023-06-08 22:30:45 +03:00
Alibek Omarov
0d6137ee40
filesystem: make generic archive loading functions (with the exception of WADs). Do not alter global searchpath from archives.
2023-06-08 22:14:30 +03:00
Alibek Omarov
653eb00cc6
filesystem: unify prototypes of archive opening functions
2023-06-08 20:02:48 +03:00
Alibek Omarov
1855fab80b
filesystem: fix Platform_GetNativeObject macro definition
2023-06-06 17:46:38 +03:00
Alibek Omarov
02ce80981c
filesystem: update optional funcs interface, add platform-specific GetNativeObject call
2023-06-05 20:30:18 +03:00
Alibek Omarov
e791d44dd8
filesystem: properly support compressed archives in FS_LoadFile
2023-05-27 20:46:48 +03:00
Alibek Omarov
5a7b68fcc1
filesystem: add new export FS_GetFullDiskPath, similar to FS_GetDiskPath, but generates full path to the file, including searchpath
2023-05-02 08:52:54 +03:00
Alibek Omarov
eb0686fca1
filesystem: fix wrong data type for character in Gets and Ungetc
2023-04-18 04:47:55 +03:00
Alibek Omarov
de88aec958
filesystem: restore DarkPlaces contributors copyrights lost in filesystem_stdio
...
* Add Xash3D FWGS contributors copyrights
2023-04-15 02:39:38 +03:00
Alibek Omarov
cb9605430d
filesystem: bump FS_API_VERSION (removed unused argument from SysFileExists)
2023-01-04 18:07:18 +03:00
Alibek Omarov
fe1aba3561
filesystem: apply caseinsensitivity to file creation
...
Replace fs_writedir with fs_writepath, exposing current writeable searchpath.
Fix caseinsensitive FS_Search
Remove unused argument from listdirectory()
Minor optimizations and refactoring
2022-12-27 02:31:46 +03:00
Alibek Omarov
3393e2d95c
filesystem: implement directory entries caching, to avoid excessive directory listing syscalls to emulate case-insensitive filesystems
...
* simplify game directory initialization code
2022-12-27 02:31:46 +03:00
Alibek Omarov
f1ec612819
filesystem: hungry
2022-12-15 01:06:20 +03:00
Alibek Omarov
08f834cd82
filesystem: make all archive searchpath functions private
2022-12-15 00:59:52 +03:00
Alibek Omarov
48c17d08d9
filesystem: dir: move searchpath initialization to dir.c, make all DIR functions static
2022-12-15 00:52:09 +03:00
Velaron
24f7db19d8
filesystem: switch file operations to an interface
2022-11-24 03:19:05 +03:00
Alibek Omarov
234c843f60
filesystem: integrate inotify for file changes
2022-09-10 22:55:07 +03:00
Alibek Omarov
fce8afabfb
filesystem: allow acquiring C interface through CreateInterface export
2022-08-25 20:33:16 +03:00
Alibek Omarov
0d449370e0
filesystem: fixes for GCC 3
2022-08-06 20:33:01 +03:00
Alibek Omarov
55a29e6e6b
filesystem: implement VFileSystem009 interface
2022-07-28 18:56:02 +03:00
Alibek Omarov
5e4fc64430
filesystem: introduce new module, based on engine filesystem.
...
The goal is to share filesystem code between engine and
utilities and provide C++ VFileSystem interface in the future
2022-07-28 18:56:02 +03:00