Commit graph

163 commits

Author SHA1 Message Date
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
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
Antonio Martinez
f721eca7be Shorter key names 2024-09-28 02:52:31 -07:00
Antonio Martinez
8e47e37af1 Responsive button display setting, no more standardbuttons 2024-09-27 03:28:40 -07:00
Antonio Martinez
735a792380 ABSTRACTION HELL 2024-09-27 03:28:38 -07:00
Antonio Martinez
7a9e36cfb4 Read out of binds in use directly! 2024-09-27 03:28:38 -07:00
Antonio Martinez
9edeaaf0ba Keyboard label fuckapalooza 2024-09-27 03:28:37 -07:00
Antonio Martinez
512eb5ec67 Allow overriding stplyr in Srb2::Draw::Parse 2024-09-27 03:28:37 -07:00
Antonio Martinez
1c87d358fb Early review fixes 2024-09-27 03:28:37 -07:00
Antonio Martinez
7019c77b96 Generic input nightmare fuck 2024-09-27 03:28:37 -07:00
Antonio Martinez
31eb1a8f5d Descriptive input: visually box control legends, better bind search 2024-09-27 03:28:37 -07:00
Antonio Martinez
dbd43859fe Descriptive input: K_DrawGameControl rich text wrapper (WIP) 2024-09-27 03:28:36 -07:00
Antonio Martinez
0b9c5c7415 Move bind-search logic to g_input 2024-09-27 03:28:36 -07:00
Antonio Martinez
511255216c WIP 2024-09-27 03:28:36 -07:00
James R
020ca75cc9 Default chat binding is keyboard 't', old profiles (version 1) are converted
- Old profiles (version 1) have the chat key reset to
  default, unless the chat key was already bound to
  something else
2024-04-25 23:29:18 +00:00
Sally Coolatta
7dfa597c7d SRB2 -> DRRR copyright in src, acs, android folder
Be consistent with toaster's recent changes to copyright
2024-04-05 02:08:23 -04:00
James R
bea1cccdde Virtual Keyboard: rewrite keyboard-gamepad switching
- Input handling is done straight in G_MapEventsToControls
- If a keyboard event is received, switch off virtual
  keyboard
  - Removed the input lock while virtual keyboard is
    sliding away
- If a gamepad event is received, and it is a change of at
  least half the full range, switch on virtual keyboard
2024-03-05 17:03:05 -08:00
James R
b452232974 Add PF_ANALOGSTICK, tells if this player has bound analog stick to d-pad 2024-02-24 21:29:19 -08:00
James R
5e37aa12a5 Replace memcpy to gamecontrol with G_ApplyControlScheme 2024-02-24 21:29:18 -08:00
AJ Martinez
07a4474d4b Allow gamepad reassignment in vote + from joystick input 2024-01-12 15:48:01 -07:00
Eidolon
02e56a304e Reset all gamekeydown arrays for all devices 2024-01-11 22:04:13 -06:00
AJ Martinez
df73260131 Revert to v1 default keyboard controls 2024-01-09 02:59:15 -07:00
Eidolon
9cc3850c3f Use M_GetCvPlayerColor for pad LED color 2023-11-05 12:23:05 -06:00
toaster
986fbd06b9 Self-review: G_SetPlayerGamepadIndicator - use skincolor's ramp directly instead of cacheing and then indexing an entire colormap 2023-10-20 14:47:28 +01:00
toaster
3e901b312c Catch all unconditional cv_playercolor[] visuals
Resolves #704
Now converts to skin prefcolor in:
- Player menu party
- Challenges menu
    - Why it's done on this branch - want to avoid merge conflicts
- Gamepad indicator
    - Actually fixes a bug at the same time for skins with nonstandard startcolors
2023-09-27 16:02:29 +01:00
James R
6c0b042eed Refactor cvar definitions completely, move everything to cvars.cpp
- No need to call CV_RegisterVar
- Cvar definitions live in only one file, easier to locate
- Organized into sections -- netvars, cheats, etc.
- Use builder pattern to initialize cvars
- Still need to extern if you want to read the cvar value
2023-08-25 17:22:40 -07:00
toaster
3210b7b80c Revert "Revert "Ignore OS key repeats for game controls""
This reverts commit b6b5175bbee451579dc7d364cb40787e29b25a83.
2023-04-12 18:42:16 +01:00
toaster
5349b45a09 Revert "Ignore OS key repeats for game controls"
This reverts commit 2131973ecce45690bb82ddc80a2dee2107f8362f.
2023-04-06 20:02:13 +01:00
James R
e0f999fcd7 Ignore OS key repeats for game controls 2023-04-06 20:02:12 +01:00
James R
d9faef58cb Add game control for lossless video recording, set default keys for gc_screenshot, etc
Renames gc_startgif to gc_startmovie.

Default controls:

- gc_screenshot - F8
- gc_startmovie - F9
- gc_startlossless - F10

Bumps PROFILEVER to 3, safely migrates existing profiles.
2023-04-06 20:02:11 +01:00
toaster
89fc9a618e Rumble toggle attached to profile
- Will silently merge conflict with !1093, make sure to adjust PROFILEVER handling
- (profile_t *)->rumble
- cv_rumble[MAXSPLITSCREENPLAYERS]
- cv_dummyprofilerumble
- Disables all current rumbles when toggling off
- Prevents new rumbles from being set while turned off
2023-04-02 23:16:58 +01:00
toaster
7a9779d242 Remove a bunch of mouse console variables that hold no relevance to us 2023-04-02 23:09:56 +01:00
Eidolon
839f2a6d15 Add G_ResetAllDeviceRumbles 2023-04-02 21:56:40 +01:00
Eidolon
17daf1aeba Add G_ functions to rumble a player's device 2023-04-02 21:56:39 +01:00
AJ Martinez
8f77a1a975 Playable default controls 2023-03-19 16:02:16 -07:00
toaster
6832488117 G_MapEventsToControls: On second thought, only handle reassignment when a trigger axis is activated, to closer match button behaviour. 2023-03-19 18:00:18 +00:00
toaster
22294c2c4d G_MapEventsToControls: Permit automagic controller reassignment for axis events greater than JOYAXISRANGE/2
The author of this commit uses a trigger for A(ccel) and was being misled by the absence of response.
2023-03-19 17:27:23 +00:00
toaster
dc63847e14 G_MapEventsToControls: Fix crash
- If G_GetDeviceGameKeyDownArray returns NULL, bail early.
- Also calls it once for all relevant event types, rather than possibly multiple times.
2023-03-19 17:27:23 +00:00
Sally Coolatta
edd5398373 G_PlayerAnalogInput cleanup
Emergency keyboard keys work again, and the input code is more straight-forward.
2023-03-07 05:01:26 -05:00
Eidolon
7ed5e7a7a5 Change gamepad LED colors on playercolor change 2023-03-07 00:07:47 -06:00
Eidolon
86a9579e16 Handle gamepads from interface dynamically
Fixes numerous issues with hotswapping, gamepad assignment, and menu
responsiveness.
2023-03-07 00:07:47 -06:00
toaster
3f1ba40246 Missing gamecontrolname 2022-11-26 23:24:02 +00:00
toaster
db95e3144d Re-add mid-game rankings
- gc_rankings, bound to TAB by default
- Now a toggle, rather than a hold behaviour
- Rearrange HU_Drawer to have chat (and cecho/music credits) render over everything else (like, say, tab rankings)
- Update PROFILEVER to 2 so we can add the new control to old profiles
2022-11-25 17:59:18 +00:00
X.organic
902fcfa569 Miscellaneous memory bug fixes to make AddressSanitizer happy
# Conflicts:
#	src/d_clisrv.c
#	src/dehacked.c
#	src/hardware/hw_cache.c
#	src/hardware/hw_md2.c
#	src/http-mserv.c
#	src/lua_hudlib_drawlist.c
2022-09-12 16:49:18 +01:00
Eidolon
85a132c149 Port Ediolon's SDL GameController work
Basically instantly solved all of the issues that made this branch completely unusable
2022-08-27 08:20:52 -04:00
SinnamonLat
c8c07aacc8 Add hardcoded keyboard defaults for menu navigation 2022-05-21 12:32:38 +02:00
SinnamonLat
26199dc284 Add enter and esc for menu navigation on default profile 2022-05-20 01:28:09 +02:00
SinnamonLat
1d4ee40758 Remove unecessary button associations in menu. X is now Back 2022-04-12 11:46:50 +02:00
SinnamonLat
6db54f77d8 Force menus to use default controls for now. Update device in realtime in control setup menu 2022-04-11 14:50:51 +02:00