Commit graph

53 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
7161de29fd Migrate old profiles, set descriptiveinput Modern 2024-09-27 06:44:00 -07:00
Antonio Martinez
80912b173c Descriptiveinput in profiles, various 6bt. modes 2024-09-27 03:28:40 -07:00
toaster
012bbc6a74 Refactor how Profile cvar toggles are set when applying changes
Reduces the number of unique places to update when adding new ones
2024-08-24 15:43:54 +01:00
Ashnal
71cc9c0800 Auto-Ring Accessibility Option
Lacking animation at this commit
2024-05-05 01:18:22 -07:00
VelocitOni
020cb6c60b Turn Auto Roulette off in new versions
Turns off auto roulette in profiles from internal version 2 -> 3
2024-05-03 20:33:25 -04:00
James R
a3a1579875 Bump PROFILEVER, old profiles are converted and have Lite Steer turned off
- Prints a message in the log file

  Profile 'PRFA' was converted from version 1 to version 2
2024-04-25 01:45:25 -07:00
Eidolon
c22d6d75db Add several skin record stats, profile rounds 2024-04-06 11:25:31 -05:00
toaster
224deed01d More copyright updates
- TehRealSalt and Lat` are currently preoccupied, so handle their credits
- Correct some accidential copypastes of existing boilerplate into new files
- Add a handful more of mine
- Consistency for Kaito Sinclaire's online handle
2024-04-02 22:14:49 +01:00
James R
df2e4f57fd Menus/Accessibility: add FOV option, 70 to 110
Adds FOV to profiles json
2024-03-04 22:11:35 -08:00
Eidolon
7b40b4c8c6 Rewrite ringprofiles format 2024-02-25 10:23:46 -06:00
AJ Martinez
06bc06869c Lite Steer profile option, itemstate pflags -> player.itemflags 2023-11-09 17:29:26 -07:00
AJ Martinez
f9f5c74244 New bans 2023-10-16 23:50:50 +00:00
AJ Martinez
3900189199 Auto Spin -> Auto Roulette 2023-08-20 16:26:34 -07:00
AJ Martinez
fbfc75df71 Item box autospin 2023-08-20 05:08:53 -07:00
toaster
317c30f7c1 Profiles: Fix deficiencies with pre-existing color handling that was exacerbated by this branch
- Do not turn SKINCOLOR_NONE into prefcolor automatically anymore (removed PR_GetProfileColor)
- M_DrawProfileCard:
    - Handle SKINCOLOR_NONE into prefcolor directly
    - Profile Card should not turn NONE-green if skin uses different startcolor for remap
    - Do not attempt to draw Follower if simply not selected for this profile
2023-04-25 14:19:53 +01:00
toaster
df38d6fcde Comment fix 2023-04-11 20:07:45 +01:00
toaster
a97373cb7a Increment PROFILEVER due to merge conflict resolution 2023-04-11 19:49:08 +01:00
AJ Martinez
4f569641fc Store total wins in profiles 2023-04-11 19:38:02 +01:00
AJ Martinez
3012839138 Serverside PWR: Completely rip out profile PWR, add PWR to XD_ADDPLAYER 2023-04-11 19:38:02 +01:00
toaster
046ff49134 Update PROFILEVER handling to account for Rumble support 2023-04-06 20:09:42 +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
James R
3b67f99d0d RRID: correct remaining instances of hardcoded sizes to defines 2023-03-28 03:54:29 -07:00
James R
4413939e85 RRID: generate keys for old profiles
Bump PROFILEVER to 3
2023-03-28 01:25:56 -07:00
AJ Martinez
5a475c7888 Cleanup + fix off-by-one in gamestate 2023-03-28 01:25:55 -07:00
AJ Martinez
936da9870c Move guest profile checks into dedicated method 2023-03-28 01:20:43 -07:00
AJ Martinez
66c6ba125d Final fixup for profile-level keys and passing to player_t 2023-03-28 01:20:41 -07:00
AJ Martinez
4ffae5d862 Store keypairs in profiles, do signature verification for all splitscreen players 2023-03-28 01:19:43 -07:00
Eidolon
be021baa02 Add extern "C" in C++ to all headers 2022-12-30 19:26:16 -06:00
James R
b5310a1f68 Add typedef.h
All typedefs for structs that were present in other header
files have been moved to here. (Except node_t because the
renderer and netcode both define node_t LOL.)
2022-11-27 17:21:40 -08: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
toaster
8946bf9e01 Refactor PR_ApplyProfile and its ilk
- Reduces copypasted code.
- Preperation for the next commit.
2022-09-03 00:16:41 +01:00
toaster
5c4ff2ead0 Rewrite Profile saving and loading
- Previous implementation used fopen, fwrite, fread, etc.
- Instead, use the byteptr.h macros to/from a buffer, performing IO all at once before/after.
- This way, if we do something unrecoverable mid-write, we won't corrupt the user's profile.
- Also cross-endian compatible AND now capable of supporting changes in the struct.
- Sadly not back-compatible. This should be the last time we destroy the team's existing profiles...

Also, modify a typo in a gamedata error this system used as reference.
2022-09-02 19:38:54 +01:00
Sally Coolatta
abac095d06 Properly use 0 power for the guest player 2022-08-30 04:07:42 -04:00
Sally Coolatta
8228377a0e Save ringprofiles as a "prf" file
It shouldn't be cfg since it's raw data, not a text format.
2022-08-30 03:52:41 -04:00
Sally Coolatta
d5a4954dd3 Profiles handle power level properly now
Overwriting the global power level all the time and not updating any code to use the profile was extremely yikes. This also allows for splitscreen players with power levels.
2022-08-30 03:51:35 -04:00
Sally Coolatta
b388890647 Profile fixes
- Less M_StartMessage spam
- Say "NEW" instead of "EMPTY" for new profile creation
- Use Eggman instead of Sonic for the Guest profile
- Instead of needing to hold X for 3 seconds to exit the test controls menu, you simply press nothing for 5 seconds.
- Add separate back option to controls menu.
- Started on the ability to use prefcolor as your profile color
- Allow guest online because there is literally already mechanics for having a player with no power level :V
2022-08-29 04:08:12 -04:00
toaster
d963dea4f9 Merge branch 'master' into new-menus
# Conflicts:
#	src/Sourcefile
#	src/deh_soc.c
#	src/m_menu.c
#	src/p_user.c
#	src/r_data.h
#	src/r_skins.h
2022-05-25 15:12:51 +01:00
toaster
5b13d4f75d Repair character colors and followercolors via the menu, both visually and mechanically.
* Fully reimplement the MenuColor system from 2.2's codebase, so super and emerald colours are now inaccessible again.
* Add FOLLOWERCOLOR_ constants and internal loop support to M_GetColorBefore and M_GetColorAfter.
* Fix improper initialisation of certain menu colour data.
* Repair previously created (or manually-edited) profiles with invalid colours.
* Add an actual function to turn followercolor constants to effective values.
2022-05-22 16:57:26 +01:00
SinnamonLat
399272946c Tie POWERLEVEL to Profiles 2022-05-21 17:47:15 +02:00
SinnamonLat
60449b8a26 Fix crash when editing profile character with existing follower 2022-05-20 16:47:03 +02:00
SinnamonLat
d0db7e4381 rethink input mapping menu (again (again)) 2022-05-20 01:15:29 +02:00
SinnamonLat
d5d34f9b99 profiles may now be deleted from data options 2022-05-18 14:20:19 +02:00
toaster
c85cc0f182 Update all data files that have the "kart" prefix to "ring", so that you can use this in the same folder as an existing non-newmenus install.
ringconfig.cfg
ringprofiles.cfg
ringsavedips.txt
ringexec.cfg
ringserv.cfg
ringdata.dat
replay folder "ringracers"

Screenshots/gifs do not currently have adjusted name to prevent name leakage, we can change this later.
2022-03-29 17:15:18 +01:00
SinnamonLat
5801d67706 Add profile # and player name on the card 2022-02-20 15:23:08 +01:00
James R
c83803dd42 Refactor profiles code to use pointers 2022-02-19 14:25:34 -08:00
SinnamonLat
2b74b7188f profiles: they work(?) now 2022-02-19 18:57:17 +01:00
SinnamonLat
3aadf1bff0 Allow creating new profiles 2022-02-19 16:08:50 +01:00