Commit graph

3480 commits

Author SHA1 Message Date
Denis Pauk
7372623056 cleanup function definitions 2024-01-01 17:36:53 +02:00
Denis Pauk
13466185e6 models: update models min/max on load 2024-01-01 15:39:05 +02:00
Denis Pauk
6701ad8cc5 collision: add additional checks 2023-12-30 16:31:47 +02:00
Denis Pauk
59d6766e90 fix typo in 68e76c9c 2023-12-30 02:24:35 +02:00
Denis Pauk
68e76c9cfe models: set alias min/max in single place 2023-12-30 02:07:35 +02:00
Denis Pauk
4a6632dac6 models: Show list of model images in developer mode 2023-12-29 19:48:17 +02:00
Denis Pauk
057087b7dc renders: share R_CullAliasMeshModel 2023-12-29 17:23:47 +02:00
Denis Pauk
f9a2fee5b3 render: extend vertex to short 2023-12-28 19:59:47 +02:00
Denis Pauk
f89ea15d14 renders: Support embeded image use 2023-12-28 09:31:04 +02:00
Denis Pauk
abce26bdff models: share image load on model read 2023-12-28 09:03:04 +02:00
Denis Pauk
b2d58ee171 models: save embeded image 2023-12-28 08:46:45 +02:00
Denis Pauk
4d56576871 gl3,gl4: check worldmodel before dlight push
Fix crash if open multiplayer before load map.
2023-12-28 08:20:07 +02:00
Denis Pauk
083ea68a80 refresh: split models file to maps.c 2023-12-27 23:15:35 +02:00
Denis Pauk
22d36d6bfe Revert "client: Update stb_image_resize"
This reverts commit a08a8d35e1.

Fix visual glitches on texture edges in soft render.
2023-12-27 18:21:36 +02:00
Denis Pauk
985fa68b97 cinema: smaker video support if fully covered by avcodec 2023-12-27 17:50:25 +02:00
Denis Pauk
3e7bd79c5b models: model always has one mesh at least 2023-12-27 01:37:17 +02:00
Denis Pauk
531dc2f872 models: Use flex mesh type insteaad list of short 2023-12-27 00:54:30 +02:00
Denis Pauk
be95a149dc models: Use internal dmdx_t format 2023-12-27 00:13:06 +02:00
Denis Pauk
519b72adc9 models: function naming cleanup 2023-12-26 22:22:04 +02:00
Denis Pauk
d54f070246 gl3,gl4: cleanup light code 2023-12-26 14:59:10 +02:00
Denis Pauk
2a8e84ccd8 gl1,gl3,gl4,vk: sync R_LerpVerts 2023-12-26 14:14:31 +02:00
Denis Pauk
06ee407efa render: remove skin count limit 2023-12-25 14:44:44 +02:00
Denis Pauk
d4aa45d6cb Version bump to 8.31RR3 2023-12-25 00:14:45 +02:00
Denis Pauk
8ecef62a5d clean up model list show 2023-12-25 00:05:38 +02:00
Denis Pauk
70b0b1c77a Update windows build instruction 2023-12-25 00:05:38 +02:00
Denis Pauk
6b4f197ac0 game: Add third person view
Based on codes:
 * Lazarus mod
 * KMQuake2 codes
 * Slight Mechanical Destruction mod

https://bitbucket.org/Knightmare66/kmquake2_stable/src/master/game/p_chase.c
2023-12-25 00:05:38 +02:00
Denis Pauk
45413644bf gl4: remove GLES usage 2023-12-21 19:24:14 +02:00
Denis Pauk
fc543be4f5 gl3,gl4: LIGHTMAPS: Add support for DECOUPLEDLM.
Based on 9cb349e6e9
2023-12-21 18:59:33 +02:00
Denis Pauk
bd86f646da refresh: Sync lightmap function names 2023-12-21 17:15:52 +02:00
Denis Pauk
a180fd3086 Merge remote-tracking branch 'yquake2/master' 2023-12-19 23:22:36 +02:00
Yamagi
e40f5d1480
Merge pull request #1077 from apartfromtime/Fix-duplicate-entries
Fix duplicate menu key keyboard entries
2023-12-19 18:33:39 +01:00
Denis Pauk
1e6042ba35 client: fix cinematic run after load map
Fix regression from 51a8dfb6
2023-12-19 19:25:48 +02:00
Denis Pauk
b423cf6865 soft: fix colorspace for direct cinema 2023-12-19 15:30:08 +02:00
Denis Pauk
2b24ee9b53 soft: scale small video
in case if aspect ratio is same as window
2023-12-19 01:40:18 +02:00
Denis Pauk
fa3ec83253 soft: add warning if is already flushed 2023-12-19 00:39:45 +02:00
Denis Pauk
30ecd8ac57 cin: scale down ogv frame
Scale down frame to size of window if required,
Scale up in soft render is slow, so skip it for
small files.

ReRelease ogv files could be rendered in native
resolution and color space in soft render if windows
size is equal to video size.
2023-12-18 17:39:44 +02:00
Denis Pauk
d7b5bfc06f soft: support direct copy raw image 2023-12-18 15:52:18 +02:00
Denis Pauk
642aeedc43 Merge remote-tracking branch 'yquake2/master' 2023-12-18 12:47:09 +02:00
apartfromtime
87ae381ed2 Attempt to fix indentation 2023-12-18 09:27:57 +11:00
apartfromtime
1570baee4d Remove superfluous switch statement 2023-12-18 08:52:35 +11:00
Yamagi
18aa42653a
Merge pull request #1076 from protocultor/quick_weap
Faster "weapprev" and "weapnext" behavior
2023-12-17 11:58:28 +01:00
apartfromtime
089a1cd53f Fix duplicate menu key keyboard entries
Fixes a bug where duplicate keyboard entries would occur in menu fields when using the keypad keys with num-lock on.

Adds `IN_NumpadIsOn` function returning the state of the numpad key.
2023-12-17 09:55:58 +11:00
Denis Pauk
80ff901765 Fix build with Q_min/Q_max: 5da0e5f0 2023-12-16 23:37:20 +02:00
apartfromtime
ef456964e3 Revert "Fix duplicate menu key keyboard entries"
This reverts commit 2180ca6c40.
2023-12-17 08:18:38 +11:00
Denis Pauk
6b70251341 Merge remote-tracking branch 'yquake2/master' 2023-12-16 23:14:52 +02:00
Jaime Moreira
01ce6787dc Preview of the coming weapon for weapprev/weapnext
The weapon you are changing to appears in the HUD, in "pickup" format.
Requires g_quick_weap == 1.
2023-12-16 17:52:00 -03:00
apartfromtime
2180ca6c40 Fix duplicate menu key keyboard entries
Fixes a bug where duplicate keyboard entries would occur in menu fields when using the keypad keys with num-lock on.
Menu fields now mirror behaviour of the console field.
Removed keypad left arrow case from console key ignore list.
2023-12-12 14:29:52 +11:00
apartfromtime
71570bb2ef Revert changes to shaders
Uses min/max from shader language.
2023-12-09 12:28:30 +11:00
Jaime Moreira
9eca08fd92 Faster "weapprev" and "weapnext" behavior
These commands can now "count" how many times they have been called,
similar to how "cycleweap" operates after #865.
This allows for changing to different weapons, instead of just going
"one down" or "one up".
New cvar "g_quick_swap" allows to enable/disable this behavior.
2023-12-07 23:57:19 -03:00
apartfromtime
f0d2c5afaa More min\max function renaming
Missed function renaming.
2023-12-04 22:59:31 +11:00
David Carlier
734422cbdf client: build warning fixes. 2023-12-02 13:05:29 +02:00
apartfromtime
9ac19de4ac Rename min\max to avoid conflict with c-plus plus
While trying to compile the yquake2 rebased heretic2 source from 0lvin, a name conflict with min\max of different parameter counts included by a std::cpp library occurred.
2023-12-01 11:58:21 +11:00
Denis Pauk
e673301dfb renders: fix maps with hardcoded image extensions 2023-11-28 00:31:33 +02:00
Denis Pauk
fbdc7e3f79 renders: Use pcx->wal->m32->m8->tga priority 2023-11-27 23:56:16 +02:00
Denis Pauk
53067535ea vk: clean up unused code 2023-11-27 00:02:37 +02:00
Denis Pauk
888e9bac9d render: Save original name of requested image 2023-11-26 23:50:29 +02:00
Denis Pauk
8d35e72606 client: support png skins in multiplayer 2023-11-26 16:47:49 +02:00
Denis Pauk
d48a8abf5c Merge remote-tracking branch 'yquake2/master' 2023-11-25 16:14:28 +02:00
Yamagi
4967b9d0ca Update miniz to e5700656b34b732f8d4e5df87cb0de00a6c8f319. 2023-11-24 09:26:14 +01:00
Yamagi
3d8fa3995c Update minizip unzip to 643e17b7498d12ab8d15565662880579692f769d. 2023-11-23 18:42:20 +01:00
Yamagi
90402c3f85 Move miniz into a subdirectory.
An upcoming update will add several files, having miniz in it's own
subdirectory makes it clear what belongs to it an whit to unzip.
2023-11-23 18:21:44 +01:00
Denis Pauk
dab662c8ba game: fix guardian and shambler save 2023-11-18 20:14:48 +02:00
Denis Pauk
38f2442d84 soft: move RE_SetSky to warp file
Same structure as other renders have
2023-11-18 17:52:43 +02:00
Denis Pauk
9958db18d6 game: Add ReRelease Shambler Monster 2023-11-17 00:45:58 +02:00
Denis Pauk
1151c91069 game: Add ReRelease Guardian Monster 2023-11-12 23:51:58 +02:00
Denis Pauk
145027c240 game: fix actor save, revert of 038b7f01 2023-11-09 23:55:29 +02:00
Denis Pauk
6aece83adb game: restore rerelease target_actor used in biggun 2023-11-09 00:56:33 +02:00
Denis Pauk
081d0fffa4 game: add ReRelease Arachnoid monster 2023-11-09 00:15:23 +02:00
Denis Pauk
015741ae4f Merge remote-tracking branch 'yquake2/master' 2023-11-06 00:37:49 +02:00
Denis Pauk
1270ae66d5 client: cache 8 maps in collision code 2023-11-05 18:50:02 +02:00
Yamagi
d4940703f0 Bump version number to 8.31pre. 2023-11-05 12:15:35 +01:00
Yamagi
11993ed7e6 Bump version number to 8.30. 2023-11-05 12:13:43 +01:00
Denis Pauk
51a8dfb6f3 client: cache four last maps 2023-11-05 02:49:00 +02:00
Denis Pauk
a50c75e069 Fix possible undefined code in recursive CM_BoxLeafnums_r
Found by @devnexen in https://github.com/0lvin/heretic2/pull/13/files
2023-11-04 23:00:37 +02:00
Denis Pauk
1ab34c87fd Combine credits for addons 2023-11-04 21:50:28 +02:00
Denis Pauk
172e8b743e game: merge ctf 2023-11-04 21:03:05 +02:00
Denis Pauk
f0155f0163 game: sync ctf g_ai 2023-11-04 20:22:01 +02:00
Denis Pauk
63d3e5ac74 Merge remote-tracking branch 'yquake2/master' 2023-11-04 19:45:48 +02:00
Denis Pauk
977dbc34e6 game: disable ctf menu if game != ctf 2023-11-04 19:45:23 +02:00
Denis Pauk
d27fc1f333 game: sync ctf player 2023-11-04 18:30:46 +02:00
Denis Pauk
802a874f64 game: sync ctf g_cmds 2023-11-04 17:32:56 +02:00
Denis Pauk
2b69f3774f game: sync ctf hud/trail 2023-11-04 17:01:06 +02:00
Yamagi
06017193fc
Merge pull request #1070 from devnexen/network_getaddrinfo_error
NET_Socket unix using getaddrinfo's error code in case.
2023-11-04 14:13:24 +01:00
Denis Pauk
16dee61c78 game: sync ctf g_{spawn,phys} 2023-11-03 01:00:51 +02:00
Denis Pauk
9947744114 game: sync ctf g_{chase,func,items,misc,weapon} 2023-11-03 00:36:57 +02:00
Denis Pauk
c41b72125a game: sync with ctf g_svcmds, g_target, g_trigger 2023-11-02 00:58:27 +02:00
Denis Pauk
d68c31e0e4 ctf: Add game monsters 2023-11-02 00:38:33 +02:00
Denis Pauk
2fe5162add game: ctf g_utils sync 2023-11-02 00:26:48 +02:00
Denis Pauk
571c0b96c2 Support custom model format in multiplayer select 2023-11-02 00:03:34 +02:00
Denis Pauk
67adb452dc Loki Games intro game alias support (movie@menu) 2023-11-02 00:03:11 +02:00
Denis Pauk
77e61531d5 Version bump to 8.21RR2 2023-10-31 23:15:36 +02:00
Denis Pauk
07b3d0f9a7 Partial fix of windows build 2023-10-31 19:03:47 +02:00
Denis Pauk
585af3a0bd client: Add network/demo protocol version print 2023-10-30 00:41:35 +02:00
Denis Pauk
0792a535fa client: update unzip to zlib 1.3 version
https://github.com/madler/zlib/releases/tag/v1.3
2023-10-29 12:50:10 +02:00
Denis Pauk
646420f10c gl3,gl4: Update HandmadeMath.h
https://raw.githubusercontent.com/HandmadeMath/HandmadeMath/v1.13.0/HandmadeMath.h
2023-10-29 12:30:12 +02:00
Denis Pauk
21ca36cf66 Update miniz to 3.0.2 version
https://github.com/richgel999/miniz/releases/tag/3.0.2
2023-10-29 12:12:27 +02:00
Denis Pauk
4c2c94beea gl3,gl4: Reuse HandmadeMath and DG_dynarr 2023-10-29 11:28:22 +02:00
Denis Pauk
a08a8d35e1 client: Update stb_image_resize
New optimized version:
https://raw.githubusercontent.com/nothings/stb/e81f294/stb_image_resize2.h
2023-10-29 11:04:29 +02:00
Denis Pauk
75d9d7ddfc client: Update stb_image_write to v1.16
https://github.com/nothings/stb/blob/1ee679c/stb_image_write.h
2023-10-29 10:39:25 +02:00
Denis Pauk
64215c04f6 Fix endline in files, without code changes
Run: sed -i 's/[[:blank:]]*$//' */*.{c,h}
2023-10-29 01:58:20 +03:00
Denis Pauk
e1fd35316d cin: fix build without avcodec 2023-10-29 01:09:08 +03:00
Denis Pauk
f76fa5526f cin: replace cin with ogv if available 2023-10-28 18:47:26 +03:00
Denis Pauk
a72fa5af3a cin: minimize memmove in avcodec code 2023-10-28 18:02:32 +03:00
David Carlier
478d16e786 NET_Socket unix using getaddrinfo's error code in case. 2023-10-28 15:34:50 +01:00
Denis Pauk
edb361b98f cin: fix memory leak in ffmpeg decode 2023-10-28 16:50:19 +03:00
Denis Pauk
17436190ae cin: remove transparent image fix for ffmpeg 2023-10-28 15:17:02 +03:00
Denis Pauk
00dcd5952b cin: minimaze memmove of video frames 2023-10-28 00:21:33 +03:00
Denis Pauk
f83d40ffe3 cin: cleanup debug message and support roq
RoQ format requires ffmpeg.
Reuse ffmpeg for mpg,smk also.
2023-10-27 20:19:51 +03:00
Denis Pauk
258d041b5d cin: Add ogv video support 2023-10-27 19:43:41 +03:00
David Carlier
a5192af173 fix curl uaf previous fix. 2023-10-25 18:46:03 +01:00
Denis Pauk
5c49886d7b game: sync ctf g_weapon 2023-10-24 17:23:01 +03:00
Denis Pauk
675ce35e75 game: Add g_ctf to game 2023-10-24 17:07:43 +03:00
Denis Pauk
fb5216ffcf game: add monster_tank_stand from ReRelease 2023-10-24 13:50:17 +03:00
Denis Pauk
600d6d34c1 game: add monster_guncmdr from ReRelease 2023-10-24 00:22:12 +03:00
Denis Pauk
59e3207bed game: sync ctf moster move code 2023-10-23 01:25:43 +03:00
Denis Pauk
d8b8a78d37 game: Add target_sky and target_music
Based on code https://github.com/id-Software/quake2-rerelease-dll.git

Required to stop sky rotation.
2023-10-23 00:18:35 +03:00
Denis Pauk
91ffbeea08 game: final merge of rogue 2023-10-22 17:59:13 +03:00
Denis Pauk
a46d6a2d83 game: sync all rogue monsters to game 2023-10-22 14:46:26 +03:00
Denis Pauk
5c87db6e88 game: sync rogue player code 2023-10-22 13:05:13 +03:00
Denis Pauk
5103bd6f72 game: sync rogue g_* files 2023-10-22 12:19:30 +03:00
Denis Pauk
17f223eada game: Add ctf to default build 2023-10-21 23:41:22 +03:00
Denis Pauk
1e39328655 game: sync rogue soldier logic 2023-10-21 19:06:01 +03:00
Denis Pauk
30fa1d6b83 game: sync g_* rogue logic 2023-10-21 18:42:18 +03:00
Denis Pauk
1ec141c954 game: final merge of xatrix 2023-10-21 13:15:54 +03:00
Denis Pauk
5b7696b789 game: sync game logic from xatrix 2023-10-21 02:28:43 +03:00
Denis Pauk
0956f965f7 game: sync up xatrix player 2023-10-21 01:12:13 +03:00
Denis Pauk
689e54c7eb game: sync up all xatrix monsters 2023-10-21 00:45:32 +03:00
Denis Pauk
f26caa7e72 gl1,vk,soft: fix open player model select 2023-10-20 22:54:02 +03:00
Denis Pauk
5ca0b0ce5d game: sync flipper and float with xatrix 2023-10-20 22:54:02 +03:00
Denis Pauk
00fc171350 game: sync boss3 with rogue 2023-10-20 22:54:02 +03:00
Denis Pauk
2dcad44128 game: sync boss2,boss3,brain and chick with xatrix 2023-10-20 22:54:02 +03:00
Denis Pauk
159dde8c2f game: combine monsters from separate files
Move to game all monsters defined in separate files, without real
usage for now.
2023-10-20 22:54:02 +03:00
Denis Pauk
9702700225 Temporary build rogue as separate library 2023-10-20 22:54:02 +03:00
Denis Pauk
0826949edc Fix curl warnings 2023-10-20 22:54:02 +03:00
Denis Pauk
7f74db318b Temporary build xatrix as separate library 2023-10-20 22:54:02 +03:00
Denis Pauk
96b4037ac7 Merge remote-tracking branch 'yquake2/master' 2023-10-20 22:53:04 +03:00
Jaime Moreira
36bf9de5a8 Typos 2023-10-18 20:37:49 -03:00
Jaime Moreira
fa218c9f4c Fixed gl1_overbrightbits limiter
Allows values between 0 and 4. Updated documentation.
2023-10-18 20:35:51 -03:00
Denis Pauk
7b50b2d89f game: Sync game/header/game.h, game/header/local.h 2023-10-18 19:40:55 +03:00
Denis Pauk
748cc322b3 client: Add ReRelease music files 2023-10-17 23:04:59 +03:00
Denis Pauk
cfe2f27fae Simplify SURF_ALPHATEST code
Fix for https://github.com/yquake2/yquake2/issues/956
2023-10-17 18:55:55 +03:00
Denis Pauk
586d62d4de server: badlands hack 2023-10-17 00:16:05 +03:00
Denis Pauk
858aa85c6a Merge remote-tracking branch 'yquake2/master' 2023-10-17 00:10:04 +03:00
Denis Pauk
83a31973c2 Add transparent with alpha test surface support
Based on surface flag from kmquake2 and rerelease documatation

https://github.com/id-Software/quake2-rerelease-dll#surf_alphatest-bit-25
2023-10-16 00:35:40 +03:00
Denis Pauk
b4e78d0fa3 vk,gl1: Fix mgu2m3 2023-10-15 23:09:05 +03:00
Denis Pauk
c3c80593c8 gl1,vk: reuse initial shared lightmap buffer 2023-10-15 21:29:10 +03:00
Denis Pauk
0506b02c60 gl1: Fix mgu3m2 2023-10-15 19:58:33 +03:00
Yamagi
5c642b6a5b
Merge pull request #1061 from DanielGibson/curl-uaf-fix
Fix use-after-free bugs in htttp download code
2023-10-15 18:09:25 +02:00
Denis Pauk
fd7cb11f92 files/light: add output buffer size check and desync LM sizes
Partial revert 660f5728.

After sync lightmaps generation is broken for gl1, revert sync
for now.
2023-10-15 19:00:49 +03:00
Denis Pauk
e17db97176 gl1: Temporary revert back Lightmap size to fix lights
Fix 1ab6214f, 660f5728
2023-10-15 16:41:52 +03:00
Denis Pauk
660f5728c1 gl1,gl3,gl4,vk: Sync LM size
Need to search way to dynamically change prefered lightmap texture
size and sync LM caching structures and code.

internal_format is always GL_LIGHTMAP_FORMAT so just directly use
constant instead set to variable.
2023-10-15 14:47:54 +03:00
Denis Pauk
1ab6214ff0 gl1,vk: move s_blocklights reallocation to files/light 2023-10-15 13:51:15 +03:00
Denis Pauk
2790b0de92 Fix lightmap temporary buffer size calculation
Introduced in a1249534, fixed load of mgu3m2 in vk render.
2023-10-15 12:49:15 +03:00
Denis Pauk
b54dc5559d Fix LoadMarksurfaces loads 2023-10-14 17:17:03 +03:00
Denis Pauk
c91dc0b9b2 Share R_PushDlights between all renders 2023-10-14 02:08:30 +03:00
Denis Pauk
4dbb6eb4bc Share R_MarkSurfaceLights between all renders 2023-10-14 01:32:19 +03:00
Denis Pauk
a124953432 gl1,vk: share R_BuildLightMap 2023-10-14 00:42:06 +03:00
Denis Pauk
0dde2cc731 gl1,vk: share R_AddDynamicLights 2023-10-13 23:33:35 +03:00
Denis Pauk
85c18a8090 gl1,vk: Share SetCacheState and fix q64/outpost 2023-10-13 18:30:52 +03:00
Denis Pauk
9874f1a6c0 vk:Reuse internal vertex format in poligon and skybox shaders 2023-10-13 00:26:21 +03:00
Denis Pauk
8694aebb20 vk:Reuse internal vertex format in lightmap shaders 2023-10-13 00:25:40 +03:00
Denis Pauk
7084e8d7cd Change code version to 'ReRelease 8.21.1' 2023-10-12 18:46:04 +03:00
Denis Pauk
19b29c648f gl3,gl4,vk: Share R_MakeSkyVec 2023-10-12 01:07:13 +03:00
Denis Pauk
03bfc581e2 gl1,gl3,gl4,vk: Parial share of warp code 2023-10-12 00:29:47 +03:00
Denis Pauk
d47d27ca00 Remove surface check
Soft render has issues with q64/outpost
2023-10-11 20:39:14 +03:00
Denis Pauk
8fb649709e Sync code style in sky warp functions 2023-10-11 20:14:07 +03:00
Denis Pauk
3e7b568ec9 Sync allocation sizes between renders 2023-10-11 00:19:52 +03:00
Denis Pauk
bd19960ddf Fix Hunk size calculation introdused in 371fb99c
Used LUMP_LEAFS instead LUMP_TEXINFO.
2023-10-10 01:27:10 +03:00
Denis Pauk
d26c9275f9 Fix leafbrushes allocation from e276ac80 2023-10-10 01:00:54 +03:00
Denis Pauk
3e1a3c6328 Revert back all limits
Code has issues with calculation of hunk size and mguhub load.
2023-10-10 00:43:19 +03:00
Denis Pauk
371fb99c50 Use hunk allocation for CMod_LoadSurfaces 2023-10-10 00:00:27 +03:00
Denis Pauk
9c55d2fe0f Use hunk allocation for CMod_LoadQLeafs 2023-10-09 23:58:42 +03:00
Denis Pauk
e276ac80a7 Use hunk allocation for CMod_LoadLeafBrushes 2023-10-09 23:56:12 +03:00
Denis Pauk
c5ed6f6ad8 Reuse Mod_LoadPlanes in renders and collision 2023-10-09 23:53:45 +03:00
Denis Pauk
6f0bf02ece Use hunk allocation for CMod_LoadBrushes 2023-10-09 23:49:43 +03:00
Denis Pauk
222244839d Use hunk allocation for CMod_LoadBrushSides 2023-10-09 00:59:29 +03:00
Denis Pauk
31c09bca3c Left CMod_LoadSubmodels with static allocation
Subcmodel is still statically allocated as big
ammount of code expect to access it after model cleanup
2023-10-09 00:00:02 +03:00
Denis Pauk
d860ba7762 Reuse Mod_LoadVisibility between renders and collision code 2023-10-08 18:43:36 +03:00
Denis Pauk
56a205c606 Use hunk allocation for CMod_LoadNodes 2023-10-08 18:42:58 +03:00
Denis Pauk
a89ff8c0a0 Use hunk allocation for CMod_LoadAreas 2023-10-08 15:19:33 +03:00
Denis Pauk
703d281391 Use hunk allocation for CMod_LoadAreaPortals 2023-10-08 14:21:19 +03:00
Denis Pauk
783c703b28 Use hunk allocation for CMod_LoadVisibility 2023-10-08 14:06:06 +03:00
Denis Pauk
b56df03b76 Initial server model load code with hunk alloc 2023-10-08 00:47:53 +03:00
Denis Pauk
f3b2a9c4bf Share R_SubdivideSurface between renders 2023-10-07 23:00:21 +03:00
Denis Pauk
4c4d244788 Implement Com_Error in renders 2023-10-07 18:52:23 +03:00
Denis Pauk
edfd93802b sync usage r_dynamic and r_dynamic 2023-10-07 18:08:33 +03:00
Denis Pauk
b1b3ff1992 Share Mod_LoadQBSPEdges between renders 2023-10-07 16:37:42 +03:00
Denis Pauk
d2468c9b66 Share Mod_LoadQBSPMarksurfaces between renders 2023-10-07 16:13:48 +03:00
Denis Pauk
d6de468c49 Share Mod_LoadQBSPNodes between renders 2023-10-07 15:24:02 +03:00
Denis Pauk
1121407e39 Share Mod_LoadQBSPLeafs between renders 2023-10-07 15:11:42 +03:00
Denis Pauk
073f9896f4 Share Mod_LoadBSPXDecoupledLM between renders 2023-10-07 14:11:28 +03:00
Denis Pauk
9b235a1711 Share Mod_CalcSurfaceExtents between renders 2023-10-07 14:04:17 +03:00
Denis Pauk
3b7170c4bd Share SetSurfaceLighting between renders 2023-10-07 13:36:15 +03:00
Denis Pauk
38cbdaf00a Apply BSPX_LightGridValue in R_LightPoint 2023-10-07 03:08:26 +03:00
Denis Pauk
f81e339efc R_LightPoint: share between renders 2023-10-07 01:41:18 +03:00
Denis Pauk
262a1ee5ef vk: Prepare to share R_LightPoint 2023-10-07 01:21:19 +03:00
Denis Pauk
0311194305 soft: Prepare to share R_LightPoint 2023-10-07 00:22:30 +03:00
Denis Pauk
22095bb832 gl4: Prepare to share R_LightPoint 2023-10-06 23:47:10 +03:00
Denis Pauk
b0835a92e6 gl3: Prepare to share R_LightPoint 2023-10-06 23:36:38 +03:00
Denis Pauk
7fd23f07db gl1: Prepare to share R_LightPoint 2023-10-06 23:15:53 +03:00
Denis Pauk
8f5a40710b R_RecursiveLightPoint: Share part of light logic 2023-10-06 18:38:24 +03:00
Denis Pauk
a381c9dc5d gl1,gl3,gl4,vk: Reuse mpoly_t 2023-10-06 01:27:43 +03:00
Denis Pauk
821490bbbd Prepare for reuse mpoly with mvtx_t/glvk_vtx_t 2023-10-05 22:42:56 +03:00
Denis Pauk
a567201160 gl3,gl4.6: Reuse mvtx_t 2023-10-05 19:41:45 +03:00
Denis Pauk
21ceb16de4 Move BSPX lighting code to shared code 2023-10-05 19:24:15 +03:00
Shpoike
a87c9a0cd8 Initial port of BSPX lights
0eeb410ce0
2023-10-05 01:30:54 +03:00
Denis Pauk
f2393a2e34 Fix load mguhub
Need dynamic allocation and additional checks for array sizes,
looks like overflow in mgu4m3, mgu5m2.
2023-10-04 00:30:26 +03:00
Denis Pauk
c3cd2d5aeb Show load timings 2023-10-03 23:06:54 +03:00
Denis Pauk
13b4d324d0 Rename IBSQ -> QBSP 2023-10-03 01:05:16 +03:00
Denis Pauk
1572b5ff2d gl1,vk: Share msurface_r/mpoly_t definition 2023-10-02 23:17:24 +03:00
Denis Pauk
c916e56d2d Reuse r_showtris in renders 2023-10-02 22:37:35 +03:00
Denis Pauk
67e892f186 Sync R_RecursiveLightPoint implementation between renders 2023-10-02 14:58:20 +03:00
Daniel Svensson
ee757f4100 ref_gl4: LIGHTMAPS: Add support for LMSHIFT.
Could be extended to support the LMSHIFT BSPX blob. Currently mostly a
cleanup to make DECOUPLEDLM changes more readable.
2023-10-02 14:41:52 +03:00
Denis Pauk
583164f7a5 Add listlights command 2023-10-01 18:42:54 +03:00
Denis Pauk
441bb2a3ca vk,soft: Fix license header. 2023-10-01 14:16:02 +03:00
Denis Pauk
d968cd959c Share R_BoundPoly code 2023-10-01 13:48:08 +03:00
Denis Pauk
27f029dcb7 Add .ent files hash checks #4 2023-10-01 00:13:53 +03:00
Denis Pauk
6d7ca26df2 cl_view: clean full screen line 2023-09-30 17:44:36 +03:00
Denis Pauk
ea3667ae9c show count of submodels and radius of model 2023-09-30 16:30:18 +03:00
Denis Pauk
0c578322ec soft: Load IBSQ map format 2023-09-29 00:45:15 +03:00
Denis Pauk
3458354d84 soft: remove R_NewMap 2023-09-28 23:39:04 +03:00
Denis Pauk
4a144ddec9 gl3: sync code structure with gl1 and BSPX load
BSPX just loaded without real usage of light maps
2023-09-28 00:31:43 +03:00
Denis Pauk
787e65fda4 soft: sync code structure with gl1 and BSPX load
BSPX just loaded without real usage of light maps
2023-09-28 00:21:19 +03:00
Denis Pauk
e0f4da0103 gl1,gl3,vk: sync code structure 2023-09-26 00:58:06 +03:00
Denis Pauk
c4a31e42c9 ref_gl3: Load IBSQ map format 2023-09-26 00:35:33 +03:00
Denis Pauk
5ab77f1a69 Enable quake3 like 'set' commands 2023-09-25 00:26:01 +03:00
Denis Pauk
bce1d70186 make input parameters consts in shared.c where possible 2023-09-22 22:47:31 +03:00
Denis Pauk
97967c37c1 DrawAltString const fix 2023-09-22 01:09:07 +03:00
Denis Pauk
ff70128bb9 Make all names in game interface const where possible 2023-09-22 00:58:40 +03:00
Denis Pauk
2274e86481 Make all names in render interface const 2023-09-21 23:40:45 +03:00
Denis Pauk
ddf31c962c Add OpenGL 4.6 to video menu 2023-09-20 01:34:00 +03:00
atsb
637933a23c Add the OpenGL 4.6 renderer for YQ2
https://github.com/yquake2/ref_gl4
2023-09-20 01:23:22 +03:00
Denis Pauk
7c4a06320a Sync gl1 and vk code style 2023-09-19 00:09:59 +03:00
Denis Pauk
6079adae75 Add support with several separate meshes for body parts
FM models has several meshes for different body parts, where
command lsit has section with different length sum of which equal
to total command count.
2023-09-18 23:53:46 +03:00
Denis Pauk
f6319f8bc0 ref_vk: Load IBSQ map format 2023-09-17 16:28:50 +03:00
Denis Pauk
893abc564a Daikatana fix search BSPX header 2023-09-17 16:01:11 +03:00
Denis Pauk
d5515c8525 Daikatana: load bsp and wal formats
https://gist.github.com/DanielGibson/2ceeba3fb6141e839c4aaf141b649762
2023-09-17 16:00:41 +03:00
Denis Pauk
b7f78626f8 Add additioan description of goals. 2023-09-17 15:48:42 +03:00
Daniel Svensson
bbf4a9f189 soft: LIGHTMAPS: Add support for LMSHIFT.
Could be extended to support the LMSHIFT BSPX blob. Currently mostly a
cleanup to make DECOUPLEDLM changes more readable.
2023-09-17 15:19:17 +03:00
Daniel Svensson
d3f0fde1ae gl3: LIGHTMAPS: Add support for LMSHIFT.
Could be extended to support the LMSHIFT BSPX blob. Currently mostly a
cleanup to make DECOUPLEDLM changes more readable.
2023-09-17 15:17:00 +03:00
Denis Pauk
42465a6b03 Add Vulkan render 2023-09-17 14:17:14 +03:00
Denis Pauk
92a0bcf128 fix heretic2 like sprite path 2023-09-17 14:07:01 +03:00
David CARLIER
34830efda1 Mod_LoadFlexModel fix uninit var 2023-09-17 14:04:49 +03:00
Denis Pauk
412ea8406a Add dkm models support (daikatana)
Based on:
 * [TrenchBroom](https://github.com/TrenchBroom/TrenchBroom/blob/master/common/src/IO/DkmParser.cpp)
 * [dkm2md2](http://charles.hollemeersch.net/daikatana-tools/)
2023-09-17 14:01:36 +03:00
Denis Pauk
cfac300e74 Add fm/heretic2 model support
Save additional list of meshes between dmdl_t and list of skins.

https://sourceforge.net/p/quark/code/HEAD/tree/runtime/trunk/plugins/ie_fm_import.py
2023-09-17 13:54:51 +03:00
Denis Pauk
db436ee6e4 Add Quake mdl format support
http://tfc.duke.free.fr/coding/mdl-specs-en.html
2023-09-17 13:48:09 +03:00
Denis Pauk
bd5685d201 Add Heretic 2 mpeg support
2aa2b7aec8
2023-09-17 12:11:41 +03:00
Dominic Szablewski
88079c9c70 Add mpeg decoder
https://github.com/phoboslab/pl_mpeg

License: MIT
2023-09-17 12:04:28 +03:00
Denis Pauk
c898573885 Add support of smacker files
https://sourceforge.net/projects/libsmacker/files/libsmacker-1.2/

libsmacker is released under the Lesser GNU Public License, v2.1.
2023-09-17 11:54:57 +03:00
Denis Pauk
85ebca9979 ref_gl1: Load IBSQ map format 2023-09-16 19:42:40 +03:00
Frank Richter
10e791471e Add 'skyautorotate' worldspawn property as found in rerelease game.
This is necessary to stop the sky in some rerelease maps, eg base1,
from spinning: these maps set a 'skyrotate' value, but explicitly
disable it with the new 'skyautorotate'.
2023-09-16 19:42:40 +03:00
Daniel Svensson
9cb349e6e9 ref_gl1: LIGHTMAPS: Add support for DECOUPLEDLM.
Decouples texture coordinates from lightmap coordinates to allow for
higher resolution lightmaps, and also avoids lightmap misalignment when
shadows span surfaces with differing texture scale.
2023-09-16 19:42:40 +03:00
Daniel Svensson
27331bcd1c ref_gl1: LIGHTMAPS: Add support for LMSHIFT.
Could be extended to support the LMSHIFT BSPX blob. Currently mostly a
cleanup to make DECOUPLEDLM changes more readable.
2023-09-16 19:42:40 +03:00
Denis Pauk
a11b298d5c ref_gl1: Add BSPX load 2023-09-16 19:42:40 +03:00
David CARLIER
437c16c0d1 "constifying" where underlying C calls expect compile time constants. 2023-09-16 18:16:52 +02:00
Yamagi
73c3afd47e
Merge pull request #1060 from devnexen/constify_it
"constifying" where underlying C calls expect compile time constants.
2023-09-16 18:14:17 +02:00
Yamagi
203780b613 Merge remote-tracking branch '0lvin/rerelease' 2023-09-16 17:29:36 +02:00
David CARLIER
3b8053edae "constifying" where underlying C calls expect compile time constants. 2023-09-16 16:20:21 +01:00
Daniel Gibson
3c8f087bb5 Fix use-after-free bugs in htttp download code
CL_RemoveFromQueue(qdlqueue_t *entry) free()s that entry, so the loops
that call q->next after CL_RemoveFromQueue(q) are accessing free'd
memory. Fix that by getting a pointer to the next entry before calling
CL_RemoveFromQueue().

Also did a tiny non-functional change to CL_RemoveFromQueue() to
make it easier to understand.
2023-09-16 16:59:31 +02:00
Yamagi
43e2a67f12 Fix indention problems introduced in the last commits. 2023-09-16 16:33:13 +02:00
Yamagi
49d4f2ce1f Merge remote-tracking branch 'menu/oss' 2023-09-16 16:30:04 +02:00
Denis Pauk
ae7d6c1800 r_retexturing: use rgb with pcx if image has builtin palette 2023-09-16 10:56:50 +03:00
Denis Pauk
3ffe9f522e soft: use same full light as gl* version if none
Use fullbright if not lights provided, same logic used by default
for gl renders and way to show something for ReRelease version
while real support is not implemented yet.
2023-09-16 10:56:50 +03:00
Denis Pauk
3b82261dec Make sound samples const 2023-09-16 10:56:50 +03:00
Denis Pauk
2fc15692d3 Add support of Quake 2 N64 ReRelease 2023-09-16 10:56:50 +03:00
Denis Pauk
318cd69318 Add nolerp filtering by * 2023-09-16 10:56:50 +03:00
Denis Pauk
9f8af6ec54 Generate palette and color map 2023-09-16 10:56:50 +03:00
Denis Pauk
dfff401645 Share 24to8 convert logic 2023-09-16 10:56:50 +03:00
Denis Pauk
43e4951f43 Automatically generate 16to8 bit colors 2023-09-16 10:56:50 +03:00
Denis Pauk
903272ee09 Support Quake2 ReRelease textures 2023-09-16 10:56:50 +03:00
Jaime Moreira
faee2203b8 Added missing include for USHRT_MAX 2023-09-15 11:42:50 -03:00
Yamagi
4afcd900cc
Merge pull request #1049 from protocultor/g_swap_speed_fix
Fix for g_swap_speed behaviour with extreme values
2023-09-14 21:01:42 +02:00
Jaime Moreira
9821c4b0a2 Show correct replacement for gl_lightmap cvar
Typos corrected
2023-08-26 19:18:24 -04:00
Jaime Moreira
c2ab0f61d7 Fixed Zoid Kirsch's name in credits 2023-08-26 19:10:26 -04:00
Jaime Moreira
118b78256f Fixed g_swap_speed behaviour with extreme values
When its value was between 0 and 1, rounded down to 0.
Did the same when bigger than 65535.
Both cases locked up the entire weapon animation.
2023-08-26 19:08:26 -04:00
Johan Mattsson
9c929ab463
Fix potential index out of bounds 2023-08-13 18:04:04 +02:00
David Carlier
efc59a3e3d unix NET_Socket fix socket leak at address assignment failure. 2023-07-29 06:55:22 +01:00
Yamagi
030af432f7
Merge pull request #1033 from BjossiAlfreds/vn2-fix
Fixed VectorNormalize2 not writing 0-length vectors to out
2023-07-16 09:48:54 +02:00
BjossiAlfreds
d3c9529df6 Fixed VectorNormalize2 not writing 0-length vectors to out 2023-07-07 23:59:20 +00:00
Denis Pauk
63d990487a models: ignore sprites/skins bigger than MAX_MD2SKINS 2023-07-02 00:30:21 +03:00
Denis Pauk
5c0883594f cl_cin: Support of RGBA png/jpg image with r_retexturing as cinematic 2023-07-02 00:03:18 +03:00
Denis Pauk
86dd7e6d2d Remove redudant rserr_invalid_fullscreen check 2023-07-01 23:17:17 +03:00
Yamagi
f6361740f5 Fix another spurious warning.
gcc 13.1 thinks that `newsocket` can be used uninitialized, because it
doesn't know that a call to `Com_Error()` is fatal.
2023-07-01 17:52:36 +02:00
Yamagi
cb317f2cd3
Merge pull request #1031 from protocultor/g_swap_speed
Cheat to speed up "weapon change" animations
2023-07-01 16:21:42 +02:00
Yamagi
8855d650c6
Merge pull request #1030 from devnexen/compile_time_checks
adding compile time assertion support whenever possible
2023-07-01 16:10:34 +02:00
Jaime Moreira
a94e9dca81 Snappier "g_swap_speed" behaviour
Player is no longer forced to go through the last frame of activation
or deactivation of a weapon before changing its state.
2023-06-29 11:14:58 -04:00
Jaime Moreira
c5e2d51fd7 Cheat cvar "g_swap_speed" implemented
Allows to skip frames of "putting down weapon" and
"raising weapon" animations, speeding them up.
2023-06-28 15:28:40 -04:00
David Carlier
ce3e9136a8 adding compile time assertion support whenever possible
and convert some runtime which deserve to be evaluated earlier.
2023-06-17 16:37:29 +01:00
Yamagi
0e92c704c9
Merge pull request #1028 from BjossiAlfreds/tdam-dir
T_Damage no longer modifies dir parameter
2023-06-17 17:28:36 +02:00
Yamagi
04abfca2df
Merge pull request #1027 from BjossiAlfreds/makronjmp-aifix
Fix for AI bug introduced by new makron jump code
2023-06-17 16:34:40 +02:00
David CARLIER
1ce09d7ef9 R_SetFrustum micro optimisation. 2023-06-16 13:06:05 +01:00
BjossiAlfreds
9ca5923082 T_Damage no longer modifies dir parameter 2023-06-10 18:19:37 +00:00
BjossiAlfreds
51bbb7da70 Fix for AI bug introduced by new makron jump code 2023-06-07 13:44:11 +00:00
Yamagi
4f04e7857a
Merge pull request #1016 from devnexen/netsocket_desc_leaks
network close descriptors on socket creation failure.
2023-06-05 19:16:23 +02:00
Yamagi
9212ded546
Merge pull request #1011 from devnexen/cl_setenv_overflow_fix
fix potential overflow on env vars settings.
2023-06-05 19:15:56 +02:00
Rykita
cd351a0602 Fixed vid_pauseonfocuslost, final. 2023-05-25 23:59:26 +02:00
apartfromtime
be1e6e1743 Fix pause/un-pause on window focus gained or lost
Fixed pause/un-pause on window focus gained or lost in pull request #1017.
Fixed ogg playback when switching video options, missed in #1004.
Fixed ogg playback when the last menu closed, misplaced in #1004.
2023-05-25 15:33:12 +10:00
Rykita
8cbbfaae9e Pause on Minimized/Focus Lost is now in the options menu 2023-05-24 16:42:36 +02:00
BjossiAlfreds
8d937b0a9c Various fixes to makron jump sequence 2023-05-21 16:43:07 +00:00
David CARLIER
c216eece9e network close descriptors on socket creation failure. 2023-05-21 15:24:28 +01:00
Daniel Gibson
218ac53ce9 GL3: Add hack to make lava glow, fix #1014
Normal warping surfaces (SURF_DRAWTURB) with water etc should use
brightness 0.5*intensity (like they did before), but those with lava
should be brighter, so use 1.0*intensity in the shader.
The reason that intensity needs to be scaled down is that these surfaces
have no lightmaps, so they'd be rendered fullbright otherwise.

I'm using the simple heuristic of texturename contains "lava" to
detect lava textures.
2023-05-20 21:07:16 +02:00
Yamagi
51cdc80525 Fix game with older SDL versions.
The window `flags` must be returned always, otherwise there won't be
usable Window flags and the game doesn't start.
2023-05-20 16:26:02 +02:00
David CARLIER
07553f0980 fix potential overflow on env vars settings.
changing a bit Q_strlcpy flow as it can report wrong bytes copied
if src > buffer size.
2023-05-14 19:16:18 +01:00
Yamagi
5f03705c5d Update stb_image.h to v2.28. 2023-05-14 10:01:04 +02:00
Yamagi
dbc0fa12ec Update glad-gles3 to it's latest version. 2023-05-14 09:57:45 +02:00
Yamagi
83fd0d092e Update glad-gl3 to it's latest version. 2023-05-14 09:55:37 +02:00
Yamagi
a5560ff3a2 Implement high dpi awareness into the client and all renderers.
Over the last years high dpi displays became increasingly popular. We
already implemented very basic high dpi support for Windows several
years ago by setting the "please don't scale us" option. Linux (and
all other unixoid platforms) hadn't a real understandig of high dpi
and everything involved until the advent of Wayland and finally the
*fractional-scale-v1* protocol last autumn.

Since then SDL (even bevore the protocol was finalized) and all three
common Wayland compositors (Gnome, KDE and wlroots) have grown support
for the protocol and are now high dpi aware. In a high dpi aware world
the choice is scale yourself or get scaled by the compositor. The later
option isn't so good for fast paced games like Quake II, it introduces
blur and slugishness. Therefore implement hig dpi awareness through SDL.

This isn't perfect right now:
* SDL is still getting high dpi awareness fixes with every release. High
  dpi awareness in YQ2 is currently limited to at least SDL 2.26 and we
  may rise the required version even more if necessary.
* There are stll bugs in the compositors. For example Gnome 44.1 has a
  tedency to misscalculate the space occupied by the fullscreen window,
  the game ends up wit a white bar on top. sway even misscalculates
  some scaling factors: https://github.com/swaywm/sway/issues/7463
* SDL hasn't got a reliable way to get the real non scales desktop
  resolution.

Because of this:
* High dpi awareness is currently restricted to Wayland. Let's get one
  platform right before we implement it for everything else.
* It's hidden behind `vid_highdpiawareness` and disabled by default.

High dpi awareness is implemented by setting `SDL_WINDOW_ALLOW_HIGHDPI`
on the window. After the window and rendering context are created
`SDL_GL_GetDrawableSize()` or `SDL_GetRendererOutputSize()` are used
to query the actual drawable size and the internal representation is
overwritten with it.

This would scale the fullscreen window over the full screen, no matter
what resolution was selected. Some work arounds are implemented to
(mostly) keep the old behaviour were resoltions lower than the desktop
resolution weren't scaled. There is one inconsistency: While the non
high dpi aware soft renderer always scaled over the full screen, the
high dpi aware variant doesn't. This is a restriction by SDL Renderer.

Setting native fullscreen was broken before when running on high dpi
displays and it's not fixed. This is caused by SDL being unable to
determine the real resolution (or whatever the compositor thinks the
real resolution is). Depending on the compositor or if the client is
high dpi aware the correct resolution must be set by hand **or** auto
setting with `r_mode -2` must be used. Resolution detection was switched
to `SDL_GetCurrentDisplayMode()` because it's somewhat less problematic
than `SDL_GetCDesktopDisplayMode()`.

The renderer API was extended by one function pointer `*GetDrawableSize`
used to communicate the actual drawable size between renderer and
client. The API version was bumped to 6. I'll fix ref_vk before pushing
this change to master.
2023-05-14 09:44:23 +02:00
BjossiAlfreds
f128c44e30 Fixed despawning makron torso 2023-05-09 18:37:15 +00:00
Yamagi
a241fd50e4
Merge pull request #999 from devnexen/gcc13_build_fixes
addressing few gcc 13 analyser warnings.
2023-05-08 21:16:55 +02:00
David Carlier
571f3f6fec addressing few gcc 13 analyser warnings. 2023-05-08 18:07:27 +01:00
Yamagi
5fcf2f8d3f
Merge pull request #1005 from BjossiAlfreds/makrondeath
Fixed ungibbable makron parts
2023-05-08 18:23:46 +02:00
Yamagi
040d17ef79
Merge pull request #1007 from BjossiAlfreds/parasitefoot
Fixed parasites ignoring g_monsterfootsteps
2023-05-08 18:16:30 +02:00
Yamagi
f74f61a76a
Merge pull request #1003 from BjossiAlfreds/intersight
Fixed monsters seeing players during intermissions
2023-05-08 18:08:48 +02:00
Yamagi
ff2206bf73
Merge pull request #997 from BjossiAlfreds/gladrange
Fixed stand-ground gladiators not attacking within a certain range
2023-05-08 18:07:24 +02:00
Yamagi
9816ff7712
Merge pull request #1004 from apartfromtime/ogg-pause-music-when-pause-game
Sound backend and ogg pause features
2023-05-08 18:06:22 +02:00
BjossiAlfreds
3ea9d4e291 Fixed parasites ignoring g_monsterfootsteps 2023-05-07 15:15:28 +00:00
BjossiAlfreds
e720bc819d Fixed ungibbable makron parts 2023-05-03 13:51:48 +00:00
apartfromtime
bc5926be4f Sound backend and ogg pause features
Playback features outlined in issue #715 .

Reintroduce activate\deactivate sound backend when window focus in changed.
Added "windowed_pauseonfocuslost" cvar to allowing user control of pause when the window changes focus.
Added "ogg_pausewithgame" cvar to allow user control of ogg playback whenever the game is paused.
Introduced ogg playback command "mute" as an additional playback option for the console, command buffer and key binds.

If the window focus is changed all sound playback will stop and resume as expected.
Setting "window_pauseonfocuslost" to 1 will force the game to pause when the window focus is lost, "cl_paused" is ignored in multiplayer.
Setting "ogg_pausewithgame" to 1 will force ogg playback to pause whenever the game is paused.
Toggling ogg mute through "ogg mute" sets the volume to 0 while playback resumes.
2023-04-29 13:27:38 +10:00
BjossiAlfreds
413781a334 Fixed monsters seeing players during intermissions 2023-04-25 00:02:32 +00:00
apartfromtime
0960984c91 Revert previous changes in 7d4cfd4acd
Implement @protocultors fix.
2023-04-23 17:52:45 +10:00
apartfromtime
7d4cfd4acd Fix implicit declaration of SDL_GameControllerGetSensorDataRate available since SDL 2.0.16 not 2.0.14 2023-04-23 14:31:53 +10:00
BjossiAlfreds
2582a23103 Fixed stand-ground gladiators not attacking within a certain range 2023-04-22 18:46:45 +00:00
Yamagi
22617d8812 Replace two more wcscat_s() overlooked in last commit. 2023-04-22 17:29:22 +02:00
Yamagi
df845e0f67 Avoid the use of wcscat_s() since it's unavailable under Win XP.
Code around it by using `wcsncpy()` and `wcscat()` combined with a
manual length check. This should be enough to make YQ2 working on Win
XP again.  Please note, that we don't support any Windows older than
10. However we still try to avoid breaking them.

Based on an idea by @ carlo-bramini, closes #994.
2023-04-22 16:44:26 +02:00
Yamagi
f67b65c00a
Merge pull request #993 from devnexen/clang16_attr_fnptr
fix clang 16 build as C11 _NoReturn/noreturn attributes conflict.
2023-04-16 11:24:16 +02:00
Yamagi
cbe3ef4c76 Fix several whitespace errors introduced in the last merge. 2023-04-16 11:20:52 +02:00
Yamagi
51f3810fb7
Merge pull request #986 from apartfromtime/playback-features
Ogg Playback Features
2023-04-16 11:18:29 +02:00
Yamagi
a04809a66e Ensure that new empty console line are really empty.
This fixes a corner case: When the client is in state `ca_disconnected`
and the user presses repeatedly return, there is a chance that a older
line is erroneously printed again. This is caused by spinning through
the console history buffer, when an old line is the current line a the
frame were the console refreshs it's printed. Work around that by
clearing every line as soon as it becomes the current line.

Closes #987.
2023-04-16 10:26:07 +02:00
David CARLIER
5b895615a4 fix clang 16 build as C11 _NoReturn/noreturn attributes conflict.
And remove a handful of unused vars.
2023-04-16 08:19:33 +01:00
Yamagi
11bea2a68b
Merge pull request #990 from protocultor/old_sdl_gyro_switch
Gyro aiming for Switch controllers with SDL < 2.0.14
2023-04-15 18:23:28 +02:00
Jaime Moreira
9a18b39114 Simplified definition of NATIVE_SDL_GYRO
It is being used as a "boolean" anyway; the code only checks its
existence.
2023-04-14 18:16:16 -04:00
Denis Pauk
538aadb9dc Fix sound characteristics calculations
Ogg file has incorrectly calculated size and samples as
result calculation of volume and timings have used
incorrect test samples for sterio sound.

Checked with compare ogg and wav samples from 25th
Anniversary mod:
```
ffmpeg -i 25acu/sound/world/goreshit.wav 25acu/sound/world/goreshit-ogg.wav
```

Soundlist:
```
]/soundlist
 (16b)  1404340(2 ch) world/goreshit.wav -11.7 dB 351.1s:15.0..0.3..1.1..2.0
 (16b)  1404340(2 ch) world/goreshit-ogg.wav -11.5 dB 351.1s:15.0..18.4..1.4..2.0
```

Fixes:
* https://github.com/glhrmfrts/q25_game/issues/8
* https://github.com/yquake2/yquake2/issues/991
2023-04-14 18:22:12 +03:00
Jaime Moreira
61df6a74d5 Gyro aiming for Switch controllers on SDL < 2.0.14
dkms-hid-nintendo can expose the IMU sensors of a Switch controller
as a "second joystick", which makes possible to use gyro aiming on a
system without SDL 2.0.14 available (the minimum required to read
controller sensors like gyro and accelerometer).

This commit makes both "sensor" and "joystick reading" to coexist.
"Sensor" is still the preferred method when available.
2023-03-28 23:06:34 -03:00
apartfromtime
f96deee197 Playback Features
Playback features outlined in issue #729.

Added shuffle playback parameters:

default - Ogg track currently active repeats. This is the quake2 default behaviour.
play once - Ogg track currently active plays once then stops.
sequential - Ogg tracks play in numerical order, from the currently playing track and like default repeats.
random - Ogg tracks play randomly, but never the same track twice.

Ogg tracks can be played from a full-screen console and tracks played will adhere to the shuffle parameter.

Loading a game map the map cd-track takes precedence as the first played track then subsequent playback of tracks will adhere to the shuffle parameter.

Any currently playing track can be overridden from the console with "ogg play <track>" command and subsequent playback of tracks will adhere to the shuffle parameter.

If a sound restart occurs the ogg backend will attempt to save and recover the currently playing track, though some data in the audio queue may be lost in the process.
2023-03-26 14:43:28 +11:00
Daniel Gibson
c2d80c64ee Fix crash in DDays "wake" map, #978
the HunkAlloc size calculated in calTexinfoAndFacesSize() was too
small because that map has a *massive* water poly.
Unfortunately it's not feasible to calculate the correct size
(it depends on the size of the poly, for which I'd need the vertex
coordinates, but to get them I'd have to load them first, which requires
the allocation...), but allocating 5MB extra (instead of 1) made it work
2023-03-25 19:18:35 +01:00
David CARLIER
038848b246 console fix warning build. 2023-03-17 17:17:32 +00:00
David CARLIER
5adf5175c4 CURL client fix on error with CURLMcode. 2023-03-11 15:02:59 +00:00
Denis Pauk
6c9c81e2f7 openal: Fix reverb slot configuration 2023-02-05 16:19:38 +02:00
Yamagi
74bb325deb
Merge pull request #970 from devnexen/silent_analyzers
silencing static analysis warnings.
2023-02-04 17:42:37 +01:00
Yamagi
6c6aa62032
Merge pull request #968 from devnexen/riscv_build_fix
cpu pause instruction for RISV-64 compatible gcc/clang.
2023-02-04 17:41:09 +01:00
Daniel Gibson
d3f748c03a Fix special case in filesystem when game is reset to baseq2, #969
When running a mod/addon and then switching back to baseq2,
FS_BuildGameSpecificSearchPath() is called and sets fs_gamedir
(amongst other things). Unfortunately it used fs_baseSearchPaths->path
to set it, and in the -portable case, the top base search path is
pak2.pak, i.e. not a normal directory, so fs_baseSearchPaths->path is ""
and fs_gamedir is set to "" => later Sys_Mkdir(fs_gamedir) fails.

Now fs_gamedir is set to the correct directory, based on fs_rawPath
2023-02-04 17:38:35 +01:00
David Carlier
2e51a9f72f silencing static analysis warnings. 2023-01-31 06:47:04 +00:00
David Carlier
a5ee9c9d4f cpu pause instruction for RISV-64 compatible gcc/clang. 2023-01-22 21:00:04 +00:00
Denis Pauk
16395a15d9 Fix m32 load code 2023-01-21 18:31:18 +02:00
Denis Pauk
0cd2eed28b Share R_CullBox and R_SetFrustum 2023-01-21 18:31:16 +02:00
Denis Pauk
32ab1e1815 Share R_MarkLights 2023-01-21 18:24:55 +02:00
Denis Pauk
d326b1be51 Share R_AreaVisible 2023-01-21 18:24:55 +02:00
Denis Pauk
c17210b34a Share R_TextureAnimation 2023-01-21 18:24:55 +02:00
Denis Pauk
42bfb2014c Share Mod_PointInLeaf 2023-01-21 18:24:55 +02:00
Denis Pauk
442fe10f27 Share Mod_Load* functions 2023-01-21 18:24:55 +02:00
Denis Pauk
4463e1fcd7 Share mnode_t and mleaf_t struct between renders. 2023-01-21 18:24:55 +02:00
Yamagi
54949d59ce
Merge pull request #960 from DanielGibson/cmake-msvc
Fix build with VisualC++'s internal CMake
2023-01-21 16:55:46 +01:00
Yamagi
6566a2ae7d Handle case that ResizeSTB() failed.
This unlikely, however the compiler printed a warning that `image` may
be used uninitialized.
2023-01-21 16:43:27 +01:00
Yamagi
e17d4f5dc0 Solve warning regarding deprecated curl macros.
These are deprecated since curl 7.31 and 7.50. Even Debian Stretch
(oldoldstable) ships with 7.52.
2023-01-21 16:31:02 +01:00
Yamagi
548b7ff37f Implement gl_polyblend for GL3.
Closes #965.
2023-01-21 16:24:02 +01:00
Yamagi
c5c2af0320 Rename gl1_polyblend to gl_polyblend.
An upcoming commit will implement it for GL3.
2023-01-21 16:19:18 +01:00
Daniel Gibson
651503d48a Fix build with VisualC++'s internal CMake
.. which doesn't set CMAKE_GENERATOR_PLATFORM

so set YQ2ARCH in src/common/header/common.h when building with MSVC
2023-01-16 06:02:26 +01:00
David Carlier
f394209c75 introduces a new cl_unpaused_scvis cvar to unpause the cli. 2023-01-08 10:14:09 +00:00
Yamagi
6c18d819d3
Merge pull request #947 from devnexen/sound_pause_option
Introduces new cvar cl_audiopaused to control if the audio loop
2023-01-08 10:45:55 +01:00
David Carlier
7616880b96 Introduces new cvar cl_audiopaused to control if the audio loop
ought to go on or not when the game pauses.
2023-01-07 20:16:24 +00:00
Denis Pauk
633c50177a Haptic: Fix comments 2023-01-07 21:30:21 +02:00
Denis Pauk
4e36b66654 Add joy_haptic_distance cvar.
Haptic maximum effect distance value, By default this cvar is `100.0`.
Any positive value is valid. E.g. effect of shot near barrel to barrel
has 58 points.
2023-01-07 21:30:21 +02:00
Denis Pauk
e1aed62201 Haptic code cleanup 2023-01-07 21:30:21 +02:00
Denis Pauk
1c4dae7c87 Haptic: Add sound filtering by string
filters are separated by spaces with '*' support,
and '!' for apply opposite decision.
2023-01-07 21:30:21 +02:00
Denis Pauk
37344b5330 Haptic: skip clean of slots without configured haptic 2023-01-07 21:30:21 +02:00
Denis Pauk
db83143b47 haptic: reuse old slots and left some slots for rumble on error 2023-01-07 21:30:21 +02:00
Denis Pauk
da65a6df12 haptic: Fix typos 2023-01-07 21:30:21 +02:00
Denis Pauk
66523aa98e Restore haptic feedback functionality.
Rumble feedback will be default.
Checked in both modes with:
* LibSDL2: 2.24.2+dfsg-1 (debian testing)
* Microntek USB Joystick (DragonRise hid-dr.ko)
2023-01-07 21:30:21 +02:00
Yamagi
81647f79ec Remove the unused msg cvar and server side infrastructure.
In Quake I this coould be used to filter messages by priority. id
Software never implemented it for Quake II, it's just a left-over.
Remove it.

The `msg` cvar was exploited in attacks against the client. A malicious
server send a `msg` cvar as stufftext -> it gets saved into the config
-> since it's retrivable over the network through the userinfo stuff
this can be used to track users, etc.
2023-01-07 19:15:01 +01:00
Denis Pauk
9fb4480948 Share SURF_* values between renders
Reuse DRAWSKY value in soft render instead unused
DRAWSKYBOX and SURF_FLOW.

Move mipadjust calculation to usage place in soft render.
2022-12-11 12:11:47 +02:00
Denis Pauk
c2dc8debb6 Share models structs in ref_shared.h
Fix calculation in:
```
hunkSize += calcLumpHunkSize(&header->lumps[LUMP_MODELS], sizeof(dmodel_t), sizeof(model_t));
```
`Mod_LoadSubmodels` uses whole model_t as submodel type.
2022-12-11 12:11:47 +02:00
Denis Pauk
322424ef33 Image: show missed images with r_validation 2022-12-11 12:11:47 +02:00
Denis Pauk
49a1478d44 Image: Check skin image before use 2022-12-11 12:11:46 +02:00
Denis Pauk
a22bbc8719 Image: Share Draw_FindPic 2022-12-11 12:11:46 +02:00
Denis Pauk
395641e1dc Image: Share GetTexImage 2022-12-11 12:11:46 +02:00
Denis Pauk
f6f6639a89 Image: Share loadSky textures
Add support of `r_palettedtextures` to all renders.
2022-12-11 12:11:46 +02:00
Denis Pauk
18bc788335 Image: Share LoadImage 2022-12-11 12:11:46 +02:00
Denis Pauk
43c690eab2 Image: Share Hicolor 2022-12-11 12:11:46 +02:00
Denis Pauk
5e2ecede93 Image: Add M32 support functions
https://github.com/TTimo/GtkRadiant/blob/master/plugins/imagem8/m32.h
2022-12-11 12:11:46 +02:00
Denis Pauk
f77e6940bd Image: Share M8 2022-12-11 12:11:46 +02:00
Denis Pauk
11f5b9e475 Image: Share code for load Wal 2022-12-11 12:11:46 +02:00
Denis Pauk
ec83adcba5 Image: Share code for add file extension 2022-12-11 12:11:46 +02:00
Denis Pauk
768139ad6a Image: Share Draw_GetPalette between renders 2022-12-11 12:11:46 +02:00
Yamagi
7f05cefbcf Bump the version number to 8.21pre. 2022-12-09 12:37:55 +01:00
Yamagi
09d7c41a6e Bump the version number to 8.20. 2022-12-09 12:37:27 +01:00
Yamagi
2270b79ea6
Merge pull request #945 from Dremor8484/sshotgun_aimfix_2.0
Update weapon.c
2022-12-03 16:52:44 +01:00
Yamagi
c764f3f142
Merge pull request #943 from devnexen/vulkan_menu_upd2
updating vulkan renderer sub menu to be a bit more on part with the r…
2022-12-03 16:48:39 +01:00
Yamagi
3617fa56be
Merge pull request #941 from protocultor/controller_refactor
Game Controller code refactor
2022-12-03 16:44:28 +01:00
Yamagi
a2d9b1f624
Merge pull request #939 from devnexen/windows_hidden
also pause the game if for example we change desktop's workspace
2022-12-03 16:37:13 +01:00
Dremor8484
a77ad02445
Update weapon.c
the aimfix was working only on half of the attack, since the supershotgun shoots 2 times (half bullets left, half bullets right)
2022-12-03 15:27:40 +01:00
David Carlier
91368f6f1b updating vulkan renderer sub menu to be a bit more on part with the rest. 2022-12-01 12:35:26 +00:00
Jaime Moreira
ad56a8bae5 Controller rumble support queried in SDL >= 2.0.9 2022-12-01 09:10:44 -03:00
Jaime Moreira
4d040f0878 Builds with SDL2 <= 2.0.9
Unneeded variable deleted
Regretted printing style choice after seeing logs in Windows Notepad
2022-11-24 21:05:34 -03:00
Daniel Gibson
89b0ed9f18 Fix build with newer Visual Studio versions
in the __STDC_VERSION__ >= 201112L + _MSC_VER case YQ2_ATTR_INLINE
wasn't defined

and fixed some indenting in the surrounding code
2022-11-24 15:38:34 +01:00
Jaime Moreira
618374f351 Game Controller code refactor
Patchwork from df399576 no longer needed, deleted
Joysticks open with error checking
Slight optimization for gyro aiming
Better console messages in game controller init
2022-11-23 01:12:38 -03:00
David Carlier
d93916d6ba also pause the game if for example we change desktop's workspace 2022-11-21 22:42:35 +00:00
Yamagi
15adee3b06
Merge pull request #936 from devnexen/mem_issues_fix_prop
OGG_LoadAsWav, release as long it had been allocated.
2022-11-20 17:15:33 +01:00
Yamagi
282f3a8e9c
Merge pull request #934 from devnexen/vk_menu_upd
adding new menu entry for the vulkan renderer
2022-11-20 17:08:29 +01:00
Yamagi
6f07cb2be0
Merge pull request #933 from protocultor/gamepad_menu
More options for Gamepad menu
2022-11-20 16:29:57 +01:00
Jaime Moreira
f8e86e9056 Removed unneeded info in controller init
Since now there's a menu to show and modify this info, we don't need it
printed on the console.
Also, controller can exit credits option now.
2022-11-19 23:14:43 -03:00