Alibek Omarov
4eaa32fc10
engine: whereami: sync with upstream
2025-01-21 20:03:20 +03:00
Alibek Omarov
2065ef143a
engine: server: fix ent_create under PrimeXT
2025-01-21 16:09:56 +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
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
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
Andrey Akhmichin
d278d3bdd7
engine: common: fix clang build.
2025-01-19 04:33:06 +03:00
Alibek Omarov
7811b60292
engine: common: fix build for apple and freebsd-15
2025-01-18 10:40:12 +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
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
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
69341e36a3
public: expose commit and branch as global variables instead of functions
2025-01-13 20:02:59 +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
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
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
83b5edea88
engine: platform: sdl: clear key states on losing window focus
2025-01-06 16:38:16 +03:00
Alibek Omarov
9d2a85f11f
engine: client: clear mouse state along with everything else in Key_ClearStates
2025-01-06 16:38:16 +03:00
Alibek Omarov
93d3df81ee
engine: client: small refactoring and better explanation for char input handler for menus that don't query our extended API
2025-01-06 16:00:11 +03:00
Alibek Omarov
2a7f13151a
engine: cmd: when command is already defined and has the same function pointer, show it as warning
2025-01-06 13:51:25 +03:00
Alibek Omarov
0c4f6ae61d
engine: client: like GoldSrc, use cancelselect command for escape key. It is handled in client.dll and allows mods to override Esc key behavior
2025-01-06 13:51:25 +03:00
Alibek Omarov
d6ebff81e2
engine: client: vgui: track textures upload to avoid issues in buggy mods (that are probably will never get fixed)
2024-12-30 07:28:33 +03:00
Alibek Omarov
ce4148f351
engine: client: vgui: deprecate VGUI_CreateTexture and VGUI_UploadTextureBlock functions, as they never used by vgui_support module
...
* vgui_support used them in old engine for font cache, but we don't have that anymore.
2024-12-30 07:16:30 +03:00
Alibek Omarov
08c2632c14
engine: platform: nswitch: export _Unwind_GetIPInfo as required by cs16-client
2024-12-29 09:11:21 +03:00
Alibek Omarov
687c9b004f
engine: platform: sdl: set directsound as default audio driver on Windows, due to incompatibilities with mods
2024-12-29 02:01:23 +03:00
Alibek Omarov
14e79f04ac
engine: prevent extra malloc in exec by checking if cfg already contains newline at EOL and appending it to cbuf if required
2024-12-28 16:03:49 +03:00
Alibek Omarov
5d6cf48687
engine: client: fix lightstyle timings on GoldSrc protocol, share the parser with Quake protocol handler
2024-12-28 01:40:59 +03:00
Alibek Omarov
88949a9ee6
engine: launcher: drop support for changing games from within internal launcher for platforms that do not have execv equivalent
2024-12-27 18:45:31 +03:00