When calculating the Y position of the UDP download progress bar the
scale factor must be taken into account. Otherwise the bar will be drawn
outside the visible area of the console. This was missed when scaling
was first implemented years ago and broken since then.
Reported by @SiemensSchuckert, closes#1172.
"Quality vs performance" might not correspond to reality; text deleted.
Documentation updated to reflect current state of both OpenAL and SDL
sound systems.
Authored by @Yamagi.
"make NO_SDL_GYRO=1" disables sensor reading support and forces
behavior of SDL < 2.0.14 under any version, even SDL 3.
Meant for Arch Linux ARM, which supports 2.30.10 at this time, but
doesn't support gyro readings (no HIDAPI support?), even if it shows
an additional "IMU joystick" when connecting Nintendo gamepads.
This commit allows to use the "IMU joystick" in game, extending #990.
Identification of joysticks as "IMU" or "Left Joy-Con" is more
generic now, covering more possible naming conventions.
A basic "squeeze/stretch" effect to fov when diving underwater.
Intensity is controlled by gl1_waterwarp, 0 disables the effect.
Original from Fitzquake.
It was being called repeteadly with the same parameters, so it was
re-written with only one needed parameter, with the rest of the data
being obtained inside the function, to avoid logic duplication.
'Pickup style' just like weapprev/weapnext, only works when cycleweap
is called with 3 or more parameters.
Weapon binds in gamepad menus now include xatrix and rogue weapons.
change parameter type to match CURL lib
(prevents crash on HTTP download)
example
test server:
q2.bot.nu:27912
server config:
set sv_downloadserver "https://quake2.pages.dev/"
map DEBEQUA2
Client connects, and three files added to queue:
HTTP download: /.filelist - Queued
HTTP download: /maps/DEBEQUA2.filelist - Queued
HTTP download: maps/DEBEQUA2.bsp - Queued
from URL:
https://quake2.pages.dev/.filelist - no file
https://quake2.pages.dev/maps/DEBEQUA2.filelist - no file
https://quake2.pages.dev/maps/DEBEQUA2.bsp - exists
when 404 response received for '.filelist' file,
CL_HTTP_Recv() is called and uses wrong file length in malloc()
one of tests:
==43024==ERROR: AddressSanitizer: requested allocation size 0x8000000000000000 (0x8000000000001000 after adjustments for alignment, red zones etc.) exceeds maximum supported size of 0x10000000000 (thread T0)
0 0x7ffff74b4887 in __interceptor_malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:145
1 0x55555566b023 in CL_HTTP_Recv src/client/curl/download.c:98
2 0x7fffcbcc257a (/lib/x86_64-linux-gnu/libcurl.so.4+0x5157a)
when empty filelist downloaded from HTTP server,
CL_ParseFileList() uses unallocated buffer for strchr()
segfault happens:
0 __strchr_avx2 () at ../sysdeps/x86_64/multiarch/strchr-avx2.S:65
1 0x00007ffff743de2c in __interceptor_strchr (s=0x0, c=<optimized out>)
at ../../../../src/libsanitizer/sanitizer_common/sanitizer_common_interceptors.inc:705
2 0x000055555566d7f8 in CL_ParseFileList (dl=0x55555587a178 <cls+20984>)
at src/client/curl/download.c:484
3 0x000055555566e26c in CL_FinishHTTPDownload ()
at src/client/curl/download.c:670