Commit graph

1380 commits

Author SHA1 Message Date
toaster
48261ae4b5 filesearch: Add "Priority folder" string parameter
If non-NULL, filesearch will begin in that subfolder of the desired searchpath, but can go back up to the root of the search later if not found in that location.

Primarily a small optimisation for checking the addons folder first
2025-08-25 20:14:37 +01:00
Eidolon
22c0ce4d3a Make the mouse cursor sane 2025-08-17 17:12:27 -05:00
Antonio Martinez
3bc26f2e75 Disable error messages while fuzzing 2025-07-03 03:08:18 -04:00
Eidolon
610599e7d1 Don't try to open microphone when sound is disabled 2025-05-29 15:32:50 -05:00
Eidolon
55a8a53077 Turn on and off microphone explicitly
On most devices these days, there is a mandatory microphone indicator
when an input device is being used. Moreover, on macOS and some Linux
distros, the user will be prompted to grant permission to the game for
microphone access. To ensure we're playing nicely with these
expectations, instead of just leaving the device on at all times on
first use, close and reopen the device as sound input is needed.
2025-05-29 15:21:14 -05:00
Eidolon
02b22241e1 Merge public master 2025-04-09 09:29:22 -05:00
Nep2Disk
934e983769 Fix Mumble compile 2025-04-06 06:26:27 +00:00
Nep2Disk
2372c11735 Re-enable Mumble support.
READ/WRITE macros have been fixed for C++ since a4f856b0
2025-04-06 06:13:55 +00:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
28e4440bb0 Un-comment the mouse grab code
This was not supposed to be commented out, but given RR doesn't use
the mouse maybe I should just make a separate change to remove it all?
2025-03-16 16:41:56 -05:00
Eidolon
7365443609 Use new shader lookup in RHI GL2 2025-03-16 15:39:32 -05:00
Eidolon
faa0fbd31f Add W_InitShaderLookup, W_ReadShader
This manages a lump list of shader lumps from a shaders.pk3, separate
from the loaded wadlist, so that shaders do not participate in the
wadlist system at all.
2025-03-16 15:39:32 -05:00
Eidolon
e4fc3cc5c2 Fix conditionals on rendermode to allow for more modes 2025-03-12 21:50:37 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
SteelT
c9c4796260 Set SDL_HINT_APP_NAME SDL hint
As with SDL3 and SDL2-compat, the app name logic is different and the default name is instead a generic "SDL Application"
2025-02-03 21:13:36 -05:00
Eidolon
e7f0c1e79e Clear audio graph on I_ShutdownSound
Fixes a crash when destroying SDL AudioStreams under SDL3 and
SDL2-compat.
2025-01-30 17:01:10 -06:00
Eidolon
1cc261e902 Check for input devices before opening them 2025-01-20 22:00:14 -06:00
Eidolon
22b20b5877 Add netgame voice chat
Implemented using libopus for the Opus codec, same as is used in Discord.
This adds the following cvars:

- `voice_chat` On/Off, triggers self-deafen state on server via weaponprefs
- `voice_mode` Activity/PTT
- `voice_selfmute` On/Off, triggers self-mute state on server via weaponprefs
- `voice_inputamp` -30 to 30, scales input by value in decibels
- `voice_activationthreshold` -30 to 0, if any peak in a frame is higher, activates voice
- `voice_loopback` On/Off, plays back local transcoded voice
- `voice_proximity` On/Off, enables proximity effects for server
- `voice_distanceattenuation_distance` distance in fracunits to scale voice volume over
- `voice_distanceattenuation_factor` distance in logarithmic factor to scale voice volume by distance to. e.g. 0.5 for "half as loud" at or above max distance
- `voice_stereopanning_factor` at 1.0, player voices are panned to left or right speaker, scaling to no effect at 0.0
- `voice_concurrentattenuation_factor` the logarithmic factor to attenuate player voices with concurrent speakers
- `voice_concurrentattenuation_min` the minimum concurrent speakers before global concurrent speaker attenuation
- `voice_concurrentattenuation_max` the maximum concurrent speakers for full global concurrent speaker attenuation
- `voice_servermute` whether voice chat is enabled on this server. visible from MS via bitflag
- `voicevolume` local volume of all voice playback

A Voice Options menu is added with a subset of these options, and Server Options has server mute.
2024-12-13 17:12:14 -06:00
Eidolon
136761cf3b rhi: Remove Pipeline, Uniform/BindingSet, add dynamic state
The pipeline abstraction mimicked Vulkan and d3d12 explicit pipeline state objects
but, like GraphicsContext, was ill-considered for the kinds of drawing
behavior SRB2 uses. Rather than push this complexity into the drawing
code, it will instead be the responsibility of the backend to manage
explicit pipeline objects if necessary.

Now, drawing code must create a Program instance, bind it, and set the
rasterizer state to do the equivalent. Uniform, sampler, and vertex
attribute bindings are significantly simpler to set up now.
2024-10-30 09:08:04 -05:00
Sal
7c46cc029d Merge branch 'save-display' into 'master'
Remember the last used window display

See merge request KartKrew/Kart!2393
2024-08-28 20:45:21 +00:00
Sally Coolatta
6b87b586d2 "snapshotmaps" command
Takes two screenshots for a list of maps that have an "Alternate View Point" thing with tag 0 -- one intended for level select pictures and another for Discord Rich Presence. If no view point exists, the map is skipped.
2024-07-21 08:54:49 -04:00
Oni
93dae32e99 Merge branch 'manual-link' into 'master'
Add Online Manual and I_OpenURL stuff

See merge request KartKrew/Kart!2396
2024-05-20 21:20:19 +00:00
AJ Martinez
0bc91fe1a0 Fix I_OpenURL wunused on old SDL 2024-05-19 20:03:37 -07:00
AJ Martinez
d7661e50cf Add version check to I_OpenURL 2024-05-19 19:52:36 -07:00
toaster
d9ed882584 sdl/i_system.cpp: Remove FUNCNORETURN on signal_handler()
Fixes ERRORMODE compliation after !2372
2024-05-19 17:58:39 +01:00
AJ Martinez
2679e0eae0 Add Online Manual and I_OpenURL stuff 2024-05-18 21:09:00 -07:00
Lach
3d8a3e581c Remember the last used window display 2024-05-18 23:55:19 +10:00
Eidolon
c44790749d Merge branch 'i-error-got-damn-it' into 'master'
Stop writing gamedata/config/profiles in I_Error

See merge request KartKrew/Kart!2379
2024-05-18 01:37:55 +00:00
Sally Coolatta
caf6231fed Stop writing gamedata/config/profiles in I_Error 2024-05-12 14:51:47 -04:00
Eidolon
75b749dda8 Do less in NEWSIGNALHANDLER handler
Since there are less crashes than ever before, and there are risks
with trying to do anything inside a signal handler beyond the most
basic recovery stuff, we should avoid doing *anything* in here.
2024-05-12 00:39:16 -05:00
Eidolon
f75564371d Merge public master 2024-05-03 12:55:15 -05:00
bitten2up
cfacbd91be Fix implicit casts of int expecting 4-byte width
This fixes the issue with certain compilers that have int set to
different sizes by either explicitly casting or setting templates
manually
2024-05-03 17:53:53 +00:00
James R.
fa361eaa54 Merge branch 'fix-old-sdl-build' into 'master'
Fix build against old SDL versions

See merge request KartKrew/Kart!2350
2024-05-03 03:24:30 +00:00
Eidolon
9960336554 Bump version to 2.2, modversion to 3 2024-05-02 22:23:55 -05:00
Eidolon
d0932922c0 Fix build against old SDL versions
There are a few (void) casts of unused variables in some gamepad-
related functions which do not compile on old SDL versions because
their parameters don't match up. This fixes that.
2024-05-02 20:47:51 -05:00
Eidolon
f9d70530ed Add snd_mixingbuffersize cvar
Allows the user to configure the mixing buffer size to reduce
latency at the cost of higher CPU usage, or vice versa.

This also raises the default buffer size from 1024 to 2048, to
address some underrun problems people have with the current buffer
size.
2024-04-30 23:31:24 -05:00
AAGaming
e523fe0323
don't use execinfo for backtraces on musl 2024-04-27 14:11:41 -04:00
James R
88ac62241f Menus/Video/Advanced: hide Legacy GL options in Software mode 2024-04-10 05:52:29 -07:00
Sally Coolatta
9d9864c983 SRB2 -> DRRR copyright in sdl folder 2024-04-05 10:38:06 -04:00
AJ Martinez
0072170b2e Add SalCRT Sharp 2024-03-17 17:50:29 -07:00
Lach
94c074a26a Add new Ring Racers app icon for macOS 2024-03-13 22:30:41 +11:00
James R
161125fc83 mainwads is inclusive 2024-03-09 13:56:03 -08:00
Eidolon
161d4480e6 Force rhi to only load shaders from shaders.pk3
Loading custom shaders is dangerous and error-prone and I don't want to
implicitly allow this to occur without having good barriers in place.
2024-03-09 13:51:49 -06:00
Eidolon
123477dac9 Add Sharp Bilinear mode, make default 2024-03-07 22:03:36 -06:00
Eidolon
0156db0dc1 Add optional CRT screen effect 2024-03-06 22:39:21 -06:00
Oni
4ea946067a Merge branch 'srb2-tidy' into 'master'
Clear out unused SRB2/Kart stuff from info tables

See merge request KartKrew/Kart!1811
2024-02-03 19:40:52 +00:00
Eidolon
640ad6bc1e Remove GME VGM music emulation
We cannot comply with the terms of the GPL in using and distributing
libgme due to MAME license incompatibility, so the feature needs to
be removed.
2024-01-29 15:54:20 -06:00
toaster
6fdec66dc3 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into srb2-tidy 2024-01-26 00:29:06 +00:00
Eidolon
bdc0795704 Fix several Clang compile warnings 2024-01-16 06:11:43 -05:00