Commit Graph

281 Commits

Author SHA1 Message Date
Alibek Omarov
2da0db4a31 engine: client: refactor connection to the server, always send bandwidth test and challenge from single function 2025-09-15 13:03:22 +05:00
Sergey Degtyar
ccc44f3c5f engine: voice: fix voice loopback bit 2025-09-09 01:19:27 +05:00
Alibek Omarov
b2f4d84272 engine: client: give server a bit more time to reply to bandwidth test 2025-09-08 21:19:53 +05:00
Alibek Omarov
2daaa94666 engine: voice: fix voice loopback on GoldSrc proto 2025-09-03 03:07:36 +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
2bdeb05153 engine: client: oops, fix including non-existent file 2025-07-25 00:24:45 +05:00
Sergey Degtyar
6111df486e engine: client: GoldSrc spray support 2025-07-16 23:54:56 +05:00
Alibek Omarov
c554eef3b9 engine: client: add ability to disable prepending [Xash3D] tag to the nickname when connecting to GoldSrc servers 2025-07-09 17:44:13 +05:00
Sergey Degtyar
6bb7bcd378 engine: client: GoldSrc voice chat support
- Added support for GoldSrc voice mode, including initialization and shutdown functions.
- Implemented data size verification for the GoldSrc voice package.
- Creation and processing of voice packets, CRC verification of data integrity.
- Added a Steam ID field to the client_static_t structure
- Automatic gain control has been introduced for voice samples.
- The voice status structure has been updated.
- Refactored voice data handling for better type consistency and maintainability.
- Fixed ISO C90 compliance issues for better portability.
- Fixed decoder index usage.
2025-07-01 16:09:09 +03:00
Alibek Omarov
c807faf5b9 engine: client: rename queryserver to ui_queryserver (so q<tab> will always result in quit command, by users request) 2025-06-19 16:43:08 +05:00
Alibek Omarov
72485da491 engine: client: make demo recording and demo removing command privileged 2025-05-25 03:22:19 +05:00
Alibek Omarov
bb620d1265 engine: client: set cl_upmax to 508 by default 2025-05-20 14:35:29 +05:00
Alibek Omarov
3d26ba1ed8 engine: client: always pass a valid pointer to usercmd_t in ref_params_t to prevent crassh when client.dll reads them during demo playback 2025-05-05 03:40:18 +03:00
Alibek Omarov
c564cc96c7 engine: get rid of host.crashed field, as it's a complete duplicate of host.status 2025-04-21 16:59:44 +03:00
Alibek Omarov
34322f025b engine: client: limit ticket generator choices to revemu2013 only 2025-03-06 12:35:32 +03:00
Alibek Omarov
5f0880d4a2 engine: client: lower the bandwidth test fragment sizes to 1400 and less, as using 64k, 32k and more is unreliable 2025-03-02 20:20:40 +03:00
Alibek Omarov
f1f726822c engine: client: restore cl_cmdrate default value at 30. It wasn't an intentional change. 2025-02-25 19:52:48 +03:00
Alibek Omarov
8982d55392 engine: client: set default rate value to 25000
3500 is barely playable these days. Those who have worse than usual internet
connection, should set appropriate value themselves.
2025-02-25 17:36:43 +03:00
Alibek Omarov
add02dc6f9 engine: fix potential UB in netadr_t 2025-02-06 20:54:18 +03:00
Alibek Omarov
62e3ba2126 engine: add cvars to control mounting additional directories
Use existing ui_language cvar for mounting localization folders.
2025-02-05 18:54:28 +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
95af635ab4 engine: client: add command replaybufferdat to aid in debugging protocol errors by parsing buffer.dat 2025-02-02 05:22:46 +03:00
Alibek Omarov
ad6db91285 engine: move xashid stuff onto client 2025-01-25 17:51:48 +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
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
2d51d23d89 engine: client: don't send commands until ca_active on Xash protocol 2025-01-17 15:06:59 +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
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
69341e36a3 public: expose commit and branch as global variables instead of functions 2025-01-13 20:02:59 +03:00
Alibek Omarov
a5d78ecfd7 engine: be more verbose on why the engine is going to be shut down 2024-12-27 18:30:46 +03:00
Alibek Omarov
48bdd4238e engine: always include reason to server shutdown 2024-12-26 02:13:13 +03:00
Alibek Omarov
85388e97c1 engine: client: add command cl_list_messages to print all registered user messages 2024-12-20 01:51:24 +03:00
Alibek Omarov
c4f71f1a44 engine: client: remove unncesseray int <-> qboolean branch in CL_GetMessage 2024-11-18 10:42:39 +03:00
Alibek Omarov
0d2a8488ae engine: client: replace illegal for infostring characters in server info got from TSource Engine Query 2024-11-06 19:46:22 +03:00
Alibek Omarov
fa6f564c12 engine: client: allow extended amount of commands to be sent for newer GoldSrc server. Also refactoring 2024-11-06 01:39:45 +03:00
Alibek Omarov
f88d424ecd engine: client: don't make useless comparison, cl_cmdrate is always clamped between 10 and 100. 2024-10-30 18:16:47 +03:00
Alibek Omarov
c2ca80c889 engine: client: don't immediately send client packet after receiveing server packet or full update
It doesn't seem to be useful for anything. Instead, it completely breaks cl_cmdrate behavior, constantly
spamming server with move commands
2024-10-30 18:11:48 +03:00
Alibek Omarov
85b0273911 engine: client: check resource nIndex before writing it to the precache arrays 2024-10-28 12:22:10 +03:00
Alibek Omarov
2656eb1aeb engine: fix A2S_GOLDSRC_INFO, it must always include Source Engine Query and a null terminator 2024-10-26 20:24:31 +03:00
Alibek Omarov
cff8ee13e6 engine: rcon refactoring. Use sizebuf_t to concatenate commands. Only call redirect when we're executing command. 2024-10-26 19:37:30 +03:00
Alibek Omarov
9600218757 engine: client: send tempdecal.wad to GoldSrc servers 2024-10-26 19:16:59 +03:00
Alibek Omarov
2db7cb0d64 engine: client: when validating, we're supposed to send move and delta commands 2024-10-26 19:12:52 +03:00
Alibek Omarov
f7c4cd9398 engine: client: allow case-insensitive goldsrc proto argument in connect and queryserver commands 2024-10-26 05:15:46 +03:00
Alibek Omarov
6ab2c9dbbf engine: client: fix out of bounds access with some ticket generators
* Update MultiEmulator submodule
2024-10-22 02:13:36 +03:00
Alibek Omarov
ae2ad6ddf2 3rdparty: add MultiEmulator by 2010kohtep
* patched to be portable, turned into a static library
* integrated to the engine
2024-10-21 06:19:11 +03:00
Alibek Omarov
60d6214ad7 engine: client: implement parsing GoldSrc server query response for mainui_cpp 2024-10-21 02:31:45 +03:00
Alibek Omarov
d0f3a6f74b engine: client: add command queryserver for mainui to query a specific address. Make server querying commands restricted 2024-10-20 02:22:09 +03:00
Alibek Omarov
e3e4bcc015 engine: global refactoring of connectionless packets, now they can be customized from single protocol.h header 2024-10-19 14:05:00 +03:00
Alibek Omarov
da76abda75 engine: even more refactorings to avoid global cls.legacymode usage, now with GoldSrc server autodetection 2024-10-16 07:31:27 +03:00