Commit Graph

1195 Commits

Author SHA1 Message Date
Alibek Omarov
a834f4996f engine: move client adding functions to their appropriate subsystems and make them static. Make in-engine functions inlined. 2024-12-20 05:47:46 +03:00
Alibek Omarov
fdcf267fe3 engine: client: fix usermessage being removed because of case-sensitivity (message names are case-insensitive when transferred from server to client) 2024-12-20 03:05:14 +03:00
Alibek Omarov
3f1eed9f59 engine: client: remove svc_goldsrc_* definitions for message that semantics matches Xash3D 49 protocol and instead use it's definitions 2024-12-20 01:51:24 +03:00
Alibek Omarov
0637dbaab1 engine: client: refactor and simplify CL_RegisterUserMessage 2024-12-20 01:51:24 +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
de961eb45e engine: client: use new extension for creating temporary files for demoheader 2024-12-19 07:10:02 +03:00
Alibek Omarov
98e587285b engine: client: allocate static entities only when server sends static entity packet 2024-12-18 06:57:43 +03:00
Alibek Omarov
ca0c5f929a engine: slight refactoring of lightstyle handling functions 2024-12-17 17:04:26 +03:00
Alibek Omarov
48cc526c7e engine: client: fix possible svc_pings misparse by reading until null bit is encountered 2024-12-15 18:22:40 +03:00
Alibek Omarov
c8bf7e5630 engine: avi: get rid of stubs file, temporarily put these stubs into avi_ffmpeg.c 2024-12-13 03:04:32 +03:00
Alibek Omarov
4987080e1e engine: client: remove unused S_RawSamples wrapper function 2024-12-13 03:04:32 +03:00
Alibek Omarov
1d78e400ff engine: sound: increase MAX_RAW_SAMPLES to 16384 to fit an audio track coming from the movies 2024-12-13 03:04:32 +03:00
Alibek Omarov
2d1a885954 common: render_api: use movie_state_s in AVI functions for easier type checking 2024-12-13 03:04:32 +03:00
Alibek Omarov
43ba2e747b engine: avi: mention SDL3 and FTEQW developers which ffmpeg integrations in their projects helped me to understand the ffmpeg API 2024-12-13 03:04:32 +03:00
Alibek Omarov
eefb823ee2 engine: client: remove legacy movie audio track streaming functions 2024-12-13 03:04:32 +03:00
Alibek Omarov
a3c33e0fa9 engine: client: sound: make S_RawSampleStereo public to other parts of engine 2024-12-13 03:04:32 +03:00
Alibek Omarov
16fe6b1b1a engine: client: avi: remove VFW-based player 2024-12-13 03:04:32 +03:00
Alibek Omarov
4275829bd5 engine: client: partially rework how AVI playback works in Xash. Add ffmpeg-based player.
This intentionally will not build without --enable-ffmpeg for now.

We add new functions to the RenderAPI called AVI_Think and AVI_SetParm. Game
developer is supposed to call AVI_Think each frame and set video playback
parameters through AVI_SetParm function.

What's tested:
* Intro cinematics.
* Looping videos.
* Playing back an hour long video.
* API extension (PrimeXT's avi branch at https://github.com/a1batross/PrimeXT).

What's broken:
* There is no way to seek a video file, only rewind to the start.
2024-12-13 03:04:32 +03:00
Alibek Omarov
1884f0a3ce engine: client: avi: add new macro XASH_AVI and corresponding backend select macros (AVI_NULL and AVI_FFMPEG) 2024-12-09 00:27:40 +03:00
Alibek Omarov
964744d330 engine: client: fix broken build due to incorrect constant being used 2024-12-05 14:20:43 +03:00
Alibek Omarov
f5d635b67b engine: client: allow VOX words use other formats than WAV 2024-12-05 12:41:56 +03:00
Alibek Omarov
d0112a98b5 engine: client: improve error reporting in VOX_LoadSound, allow longer result paths, fix possible buffer overflow 2024-12-05 12:41:56 +03:00
Alibek Omarov
b030cdb4e3 engine: client: add NULL check to prevent crash if in_graph key doesn't exist in client.dll 2024-12-03 21:56:06 +03:00
Alibek Omarov
6d00aef398 engine: move soundlib onto client, only leave snd_utils with some functions that's engine core or server are dependent on 2024-12-02 21:05:41 +03:00
SNMetamorph
86154f81aa engine: soundlib: allowed resampling sounds with rate >44kHz 2024-12-02 20:36:33 +03:00
Alibek Omarov
1f5c97964b engine: return full path in server's pfnGetGameDir, if possible 2024-11-30 09:28:30 +03:00
Alibek Omarov
bf6a9cb0e7 engine: client: make R_GetTextureParms inlined 2024-11-23 15:02:13 +03:00
Alibek Omarov
689e29bc42 engine: client: only load paused icon when requested 2024-11-23 15:01:50 +03:00
Alibek Omarov
b316af13d6 engine: client: only load tile image when requested 2024-11-23 15:01:50 +03:00
Alibek Omarov
b9f4f1eba4 engine: client: fix engine features masking for 48 and 49 protocol 2024-11-20 04:16:44 +03:00
Alibek Omarov
87f0217588 engine: client: add cl_showcmd, yet another debugging aid to print current usercmd state 2024-11-18 10:42:39 +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
af332eb8ac engine: client: validate dem_usercmd size before reading it into the buffer 2024-11-18 10:42:39 +03:00
Alibek Omarov
622d88eeba engine: client: only check active tempentities when detaching player following tents 2024-11-17 13:38:14 +03:00
Alibek Omarov
56c19c4f5a engine: client: make some simple functions, like querying entity by index, getting local player, inline 2024-11-17 13:37:32 +03:00
Alibek Omarov
229f1560b0 engine: fix some possible off by one errors 2024-11-17 13:04:20 +03:00
Alibek Omarov
0ceb0d9e11 engine: provide compatible replacement for CompareFileTime function 2024-11-17 04:33:13 +03:00
Alibek Omarov
190e4a5e8a engine: client: don't kill entity's beams if this entity number was never used on client
Fixes issue when beam was sent over to client before it's start point entity
(due to PVS, for example)
2024-11-15 08:07:21 +03:00
Alibek Omarov
d15949d2e8 Rename _format to FORMAT_CHECK 2024-11-07 14:24:07 +03:00
Alibek Omarov
3917e096ea engine: client: the most important change since forever, move downloading message a bit to the right so it looks better on 640x480 2024-11-07 14:12:10 +03:00
Alibek Omarov
d1a571201b engine: client: s_mix: attempt to fix S_InterpolateCubic2x buffer overflow 2024-11-07 14:12:10 +03:00
Alibek Omarov
8a8cdd2927 engine: client: another possible null pointer dereference 2024-11-07 14:12:10 +03:00
Alibek Omarov
6a2a2c33ee engine: client: don't go out of bounds if studio model don't have any sequences
Fixes models/null.mdl in Master Sword Rebirth. It's technically a valid model, though
completely useless for renderer.
2024-11-07 07:13:20 +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
41b78c26ef engine: client: s_vox: fix incorrect check in VOX_FreeWord 2024-11-06 01:39:46 +03:00
Alibek Omarov
ca93c5b666 engine: client: touch: use FillRGBA to draw edit grid 2024-11-06 01:39:46 +03:00
Alibek Omarov
80f8b778a9 engine: client: cl_tent: more accurate R_FizzEffect 2024-11-06 01:39:46 +03:00
Alibek Omarov
8c5db5f980 engine: client: turn some asserts in texture remap code into proper nullptr checks 2024-11-06 01:39:46 +03:00
Alibek Omarov
3756361cfe engine: client: fix possible NULL dereference when setting up bbox for non-solid visent that somehow doesn't have a model 2024-11-06 01:39:46 +03:00
Alibek Omarov
5f3e167799 engine: client: prevent possible null dereference with malformed consistency info packet 2024-11-06 01:39:45 +03:00