Alibek Omarov
4ef23543ae
filesystem: make current set GameInfo const
2025-10-02 22:42:51 +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
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
375998dffb
Cleanup xash3d_types.h from engine-specific macros and types
2025-01-22 15:10:18 +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
4798cd6d1e
filesystem: add new export to get fs_rootdir path
2024-11-30 09:28:30 +03:00
Alibek Omarov
b94446161e
filesystem: add functions to directly look up into archives
2024-11-23 13:56:53 +03:00
Alibek Omarov
d15949d2e8
Rename _format to FORMAT_CHECK
2024-11-07 14:24:07 +03:00
Alibek Omarov
9ee1b32e2d
engine: set malloc like and warn_unused_result attributes on common allocation functions, fs, image and soundlib
2024-09-30 04:00:28 +03:00
Alibek Omarov
2df01316ce
engine: client: add two new APIs for mainui to get extended new gameinfo structure
2024-08-13 18:28:07 +03:00
Alibek Omarov
d114dffcb4
filesystem: add new gameinfo.txt key: demomap
2024-08-13 17:22:06 +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
17950fec3e
filesystem: make engfuncs const
2024-07-16 15:23:03 +03:00
Alibek Omarov
c73fa3d7a6
filesystem: fix mounting wads again
...
Because of the mounting order, VFS fails to automatically find unpacked WADs
2024-06-28 18:00:40 +03:00
Alibek Omarov
5694610478
filesystem: fix writedir being prepended to rodir path when searching for library
...
* Refactor generating shortName
* Refactor library origin checks
2024-06-27 08:16:56 +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
60c6767337
filesystem: copy absolute path to library in FS_FindLibrary for compatibility
...
Extend fullPath for longer absolute paths.
2024-04-22 04:02:46 +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
683c4874f8
common: add ALLOC_CHECK macro that enables attribute alloc_size on GCC that allows to prevent suspicious allocation sizes
2023-12-09 19:00:25 +03:00
Alibek Omarov
fb0102eb8e
filesystem: add support for two new liblist.gam keys: animated_title and hd_background
2023-11-22 11:01:18 +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
cd46ad19a3
filesystem: expose a special flag for archive mounter to skip included WADs
2023-07-05 07:00:39 +03:00
Alibek Omarov
6f7b1695d7
filesystem: expose archive mount generic function for Xar
2023-07-05 07:00:39 +03:00
Alibek Omarov
88c560aac4
filesystem: add two new gameinfo.txt keys quicksave_aged_count and autosave_aged_count that control the amount of quick/autosaves rotated
2023-07-02 04:53:16 +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
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
e2540bd446
filesystem: turn unused caseinsensitive argument in InitStdio into a reserved argument (set to true by default)
2023-04-30 10:14:02 +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
b1ee27a3f3
filesystem: add new token internal_vgui_support to mark client dlls that have internal VGUI implementation(to support other UI systems)
2022-11-12 16:35:18 +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
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