Alibek Omarov
c7e8ea2ffa
scripts: gha: linux: build smaller SDL2 (without 2D renderer) for Linux as well
2025-01-31 10:02:19 +03:00
Alibek Omarov
1c1cf3d646
scripts: waifulib: psvita: make sce_sys truly optional in apply_vpk
2025-01-31 10:02:19 +03:00
Alibek Omarov
9759b80b78
scripts: waifulib: psvita: set default title id and app name to just test
2025-01-31 09:10:39 +03:00
Alibek Omarov
94b2c0b443
scripts: gha: build render-less SDL2 for PSVita
2025-01-31 09:10:09 +03:00
Alibek Omarov
ff8d17a5a8
scripts: waifulib: psvita: add missing cprogram attributes
2025-01-31 09:04:40 +03:00
Alibek Omarov
aa23196a55
scripts: waifulib: support vpk and nro pass for pure C programs, just in case
2025-01-30 20:51:01 +03:00
Alibek Omarov
83b488c37e
wscript: let building client and dedicated server in the same configuration
2025-01-30 20:23:12 +03:00
Alibek Omarov
77abf621d7
ref: gl: make GL_Support and GL_MaxTextureUnits functions inlined
2025-01-30 19:02:53 +03:00
Alibek Omarov
f9d4ac2771
ref: gl: fix ugly seam at the skybox, thanks Spoike for help
2025-01-30 18:53:31 +03:00
Alibek Omarov
f076d84975
engine: platform: android: move dlsym-weak hack from C++ to C
2025-01-30 18:07:35 +03:00
Alibek Omarov
faf0b32a94
ref: gl: fix massive frame drop caused by ripples code rendering same texture multiple times in the frame
2025-01-29 20:15:21 +03:00
Alibek Omarov
feb80e5997
engine: platform: sdl: read gamecontrollerdb.txt from extras.pk3
2025-01-29 13:43:10 +03:00
Alibek Omarov
578a77518f
engine: client: fix clearing keyboard buttons caused by typical brain fart
2025-01-29 10:04:47 +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
684e229ac8
engine: client: get rid of absolutely useless bitfields
2025-01-26 23:34:04 +03:00
Alibek Omarov
92dc04ff3c
engine: client: minor change, add forgotten newline in CL_DeltaEntityGS Host_Error call
2025-01-25 17:51:48 +03:00
Alibek Omarov
ad6db91285
engine: move xashid stuff onto client
2025-01-25 17:51:48 +03:00
Alibek Omarov
7da9772143
engine: check for macOS bundle in SDL_GetBasePath, and fallback to SDL_GetPrefPath for our directory
2025-01-23 22:58:19 +03:00
Alibek Omarov
f0b29bac1b
engine: client: add cl_trace_consistency used to print which resources server wants to check
2025-01-23 13:57:17 +03:00
Alibek Omarov
7b5ff606bd
3rdparty: extras: enable compression of extras.pk3
2025-01-23 13:08:53 +03:00
Alibek Omarov
3e22ee64ae
scripts: waifulib: zip: add support for passing compression level on Python 3.7. Exclude PNG files from compression
2025-01-23 13:08:21 +03:00
Alibek Omarov
c86c45503f
engine: replace few more Xash3D strings by XASH_ENGINE_NAME macro
2025-01-23 10:33:22 +03:00
Alibek Omarov
ef75a4c28d
engine: rename pref path on Mac to Xash3D FWGS by allowing for custom branding through XASH_ENGINE_NAME macro
2025-01-23 10:24:55 +03:00
Alibek Omarov
bccd3f2271
engine: pass launcher's default game directory all the way down to Platform_Init, so we mount correct extras.pk3 on Mac
2025-01-23 10:22:53 +03:00
Alibek Omarov
c34e0c66d9
engine: add fuzzing target for Mod_LoadModel
2025-01-23 10:12:32 +03:00
Alibek Omarov
e5d80878b8
scripts: waifulib: add asan-only build type
2025-01-23 10:11:56 +03:00
Alibek Omarov
1e075d25b7
engine: make LZSS compression optional for 49 protocol, disable it for local clients (singleplayer)
2025-01-22 21:18:19 +03:00
Alibek Omarov
d29e53481d
engine: client: remove unused S_StreamAviSamples
2025-01-22 20:01:11 +03:00
Alibek Omarov
d23a2fd2df
engine: client: stub AVI_StreamSound RenderAPI call, it is not used in ffmpeg-based video playback code
2025-01-22 20:00:50 +03:00
Alibek Omarov
f6f15cc204
engine: mod_studio: validate studio self-reported length before loading model
2025-01-22 20:00:13 +03:00
Alibek Omarov
4f2249ed8e
ref: support loading sprites with truncated palette
2025-01-22 19:24:00 +03:00
Alibek Omarov
9f322df498
engine: imagelib: handle loading truncated palette files, by filling remaining bytes with zeros
2025-01-22 19:21:51 +03:00
Alibek Omarov
b554d7e215
ref: properly handle unloading sprites that aren't loaded completely
2025-01-22 19:20:20 +03:00
Alibek Omarov
719093c10b
ref: properly return false to the engine if renderer refuses to load the model for some reason
2025-01-22 19:13:23 +03:00
Alibek Omarov
c2da140ccc
engine: model: do not crash if renderer refused to load this model
2025-01-22 19:12:43 +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
787444f63d
engine: simplify sound fx allocation
2025-01-22 14:46:40 +03:00
Alibek Omarov
0c50076ff0
engine: zone: ensure poolcount is zero on Memory_Init
2025-01-22 13:49:51 +03:00
Alibek Omarov
8ce01c38c7
engine: http: ensure we don't write broken decompressed files
2025-01-22 13:49:24 +03:00
Alibek Omarov
cac6206984
engine: client: allocate everything related to sounds in the sound pool
2025-01-22 13:49:02 +03:00
Alibek Omarov
a5c88bdda9
engine: touch: allow smoother migration from old engine touch configs by stripping .tga extension
2025-01-22 13:40:47 +03:00
Alibek Omarov
fc017286a6
engine: base_cmd: slightly faster search based on assumption that list is always ordered
2025-01-22 05:41:52 +03:00
Alibek Omarov
20d4e3e719
engine: fix flexible array member usage in case of null terminated strings
...
(woops)
2025-01-22 05:41:52 +03:00
Alibek Omarov
4eaa32fc10
engine: whereami: sync with upstream
2025-01-21 20:03:20 +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
2065ef143a
engine: server: fix ent_create under PrimeXT
2025-01-21 16:09:56 +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
9a8761f1d8
engine: client: remove unused NetAPI_ValueForKey function
2025-01-21 15:17:03 +03:00
Alibek Omarov
273990d292
engine: cmd: store command description in flexible array member
2025-01-21 15:06:08 +03:00
Alibek Omarov
0e27d8717c
ref: remove servercount from texture struct, Xash don't use it (and it's also harmful anyway)
2025-01-21 14:36:42 +03:00
Alibek Omarov
8a9b209db0
engine: zone: optimize memory usage a bit by compressing memheader_t better while keeping it efficient
...
It saves about 40 kilobytes of memory.
2025-01-21 14:04:33 +03:00
Alibek Omarov
232d1f8583
engine: make separate mempools for cmds, cvars and basecmd
2025-01-21 11:26:35 +03:00
Alibek Omarov
6cfa5877a4
engine: base_cmd: decrease base cmd hash size
2025-01-21 11:25:33 +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
c5649c94d5
engine: client: fix delta entity packet flush on GoldSrc protocol
...
Implement counting playerbytes for more accurate net_graph, even if we're
skipping this delta frame.
2025-01-20 19:38:44 +03:00
Alibek Omarov
a1da10fe38
filesystem: set default values for quick/autosave aged count
2025-01-20 16:06:57 +03:00
Alibek Omarov
7811b60292
engine: common: fix build for apple and freebsd-15
2025-01-18 10:40:12 +03:00
Alibek Omarov
870fad5606
public: tests: remove Q_colorstr tests
2025-01-18 10:36:11 +03:00
Alibek Omarov
3e93aa459d
engine: net_buffer: turn bit write and read masks into predefined arrays, so we don't have to call InitMasks
...
In future, net_buffer might get moved to libpublic.
Also, get rid of 32-th bit write mask, it's only get used when we're trying to
write zero bits value which is nonsense.
2025-01-18 09:54:11 +03:00
Alibek Omarov
626c5e44f6
engine: client: use existing engine functions for some client API functions
2025-01-18 09:44:21 +03:00
Alibek Omarov
c906aa0106
ref: gl: make DrawGLPoly and R_TextureAnimation private to brush rendering code
2025-01-18 08:39:31 +03:00
Alibek Omarov
0a41b70e44
ref: gl: store ripple texture in texture's fb_texturenum as it's only used for water and water don't have luma
2025-01-18 08:38:43 +03:00
Alibek Omarov
ea338adc46
ref: gl: make GL_FrustumSetPlanme private to the frustum implementation
2025-01-18 08:34:25 +03:00
Alibek Omarov
5fa777578b
ref: gl: fix detail texture leak, fix texture leak when texture have default texture set (in which case it still might have other textures set)
2025-01-18 08:33:20 +03:00
Alibek Omarov
5b9db5940b
engine: mod_bmodel: don't try to load luma/fullbright texture for water, as no renderers support it anyway, and instead we will use that field for rippletexture
2025-01-18 08:30:59 +03:00
Alibek Omarov
4b1b3aa13c
public: remove Q_colorstr, as it's completely useless and checking for color string is easy actually
2025-01-18 08:29:36 +03:00
Alibek Omarov
2d51d23d89
engine: client: don't send commands until ca_active on Xash protocol
2025-01-17 15:06:59 +03:00
Alibek Omarov
b5b6dad39c
engine: fix a typo in scroll lock (missing L)
2025-01-15 23:49:13 +03:00
Alibek Omarov
a5619e9960
engine: take keydefs header from Quake-2 source code (client/keys.h)
2025-01-15 23:47:55 +03:00
Alibek Omarov
a75666a3cd
engine: common: fix dedicated build by defining SV_GetMaxClients before CL_GetMaxClients stub (that redirects to it)
...
Also remove CL_Shutdown from dedicated stub lists.
2025-01-14 13:10:02 +03:00
Alibek Omarov
49426721d8
engine: use zero initializers instead of memset
2025-01-14 12:11:27 +03:00
Alibek Omarov
04125284a3
engine: dedicated: make some stubs inlined
2025-01-14 12:10:31 +03:00
Alibek Omarov
1d4f7b2f94
engine: server: slight refactoring, make SV_ModelHandle inlined, move PlayerIsFrozen to sv_client, fix packet loss data type
2025-01-14 12:09:23 +03:00
Alibek Omarov
38c82a3f76
engine: don't bother calculating crc32 for local clients for better performance (thanks @tyabus for the idea)
2025-01-14 11:55:28 +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
4be75af214
engine: client: always write buffer.dat so we will be able to request it from users. Append protocol number to it
2025-01-14 11:31:10 +03:00
Alibek Omarov
dcdca01e86
ref: gl: declare VBO globals static
2025-01-14 11:30:35 +03:00
Alibek Omarov
201d9c8f80
public: split VCS info to separate file for slightly better compilation speeds
2025-01-13 20:02:59 +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
3532a77643
public: move git commit and branch private to libpublic
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
a7b776f3b9
Revert "wscript: disable /showIncludes based msvcdeps for now, it causes issues with non-English locales"
...
Add option --enable-msvcdeps that we only enable on CI.
This reverts commit e58007aab3 .
2025-01-10 21:48:43 +03:00
Alibek Omarov
f2fb668c9e
android: now run exit() from Java side, as the next engine run is expected to be clean
2025-01-09 21:29:01 +03:00
Alibek Omarov
90e493fa3a
engine: common: add Host_ExitInMain function that will force engine return from Host_Main() function, essentially making engine gracefully exit on Android
...
In future, this might be used everywhere, so users would be able to add custom
cleanup in some advanced game_launch implementation, on any platform.
2025-01-09 20:31:26 +03:00
Alibek Omarov
692bcc4073
engine: client: cl_tent: rewrite fizz effect, fix incorrect positoning along the way
2025-01-09 19:23:40 +03:00
Alibek Omarov
823642b10d
readme: add link to ipa-reader.com for Xash word pronounciation [skip ci]
2025-01-09 17:13:56 +03:00
Alibek Omarov
07189ca2f5
engine: client: remove spammy message about not precached model on client side
...
Recently, mods (Brutal Half-Life v3 and MMod) started to call this function
every frame as a hacky way to detect presence of some model on the level. I
don't know why they do that, but users (who co-incidentally run engine with
-dev) has been complaining about console spam.
This is why we can't have things.
2025-01-09 17:10:54 +03:00
Alibek Omarov
0d55441830
engine: properly pass shutdown reason down to close log, helps to finally get rid of global finalmsg
2025-01-09 08:04:18 +03:00
Alibek Omarov
98ff33d9e2
engine: mod_bmodel: rewrite .lit file loader using normal stream io functions
2025-01-09 08:02:39 +03:00
Alibek Omarov
baa8fbaaec
engine: mod_bmodel: fix misleading debug message telling about monochrome lighting when .lit file is used
2025-01-09 08:02:39 +03:00
Alibek Omarov
a0b46da04b
engine: consolidate all box clipnodes used in studio models, pmove and server in a single place
2025-01-09 08:02:39 +03:00
Alibek Omarov
e70ba7ad64
engine: now, remove SUPPORT_BSP2_FORMAT macro, only prevent ref_soft from loading such maps
2025-01-09 08:02:39 +03:00
Alibek Omarov
8a41be9d47
engine: server: finally, make a union for large leaf indices in edict_t so we can run bsp2 maps without recompiling
2025-01-09 08:02:39 +03:00
Alibek Omarov
47aff9e30b
engine: hack mnode_t struct so we can have 24-bit face and children indices to support BSP2 format in runtime
2025-01-09 08:02:39 +03:00
Alibek Omarov
ced8744ac9
engine: split edge struct into two with 16-bit indicies and 32-bit indicies to support BSP2 format in runtime
2025-01-08 14:46:07 +03:00
Alibek Omarov
734c07ddab
engine: split clipnodes struct into two with 16-bit indicies and 32-bit indicies to support BSP2 format in runtime
2025-01-08 14:46:07 +03:00
Alibek Omarov
ceb603488a
engine: platform: sdl: set up our custom log output function to catch all SDL errors in engine log file
2025-01-08 10:10:45 +03:00