Commit graph

687 commits

Author SHA1 Message Date
Oni VelocitOni
e7917b2f05 Merge branch 'change-public-server-wording' into 'master'
Advertising a Server & Voice Chat Menu Rewording

See merge request kart-krew-dev/ring-racers-internal!2705
2025-07-25 04:52:14 +00:00
VelocitOni
d3e4f91824 More reversals to fix
More reverals fixed, forgot wording on blurb
2025-07-24 23:19:03 -04:00
VelocitOni
29d1dcef2d "Deafen" and "Server Voice Chat" now have new variables
cv_voice_chat -> cv_voice_selfdeafen & cv_voice_servermute -> cv_voice_allowservervoice
2025-07-24 22:54:43 -04:00
VelocitOni
51ac6c250b "Undeafen" (still cv_voice_chat for now), flipped all bools
Flipped all bools on Undeafen since it's worded different
2025-07-24 22:37:51 -04:00
VelocitOni
2c98eefa8d Another bit of renaming, and now is in mirrors into Server Options
Flipped the On/Off switch on Server Voice Chat & Deafen, put the server VC options in Server Options too
2025-07-24 22:02:07 -04:00
VelocitOni
aa0667bac3 Put Server VC options in Server options
Made a copy of Server VC Options and put it in the Server Options menu
2025-07-24 21:52:42 -04:00
VelocitOni
62e19778a0 Renamed "All Voice Chat" to "Undeafen & Unmute"
Even less confusion, All Voice Chat -> Undeafen & Unmute, moved Self-Mute to the top right above it.
2025-07-24 21:12:26 -04:00
VelocitOni
079d00ab15 Voice Chat menu for normies
Changed a bit of wording around to stop in-dev confusion, closer to Discord for player facing variables. Didn't change any of the actual true variable names at all.
2025-07-24 20:10:40 -04:00
VelocitOni
797a776ca4 Server Options "Advertising..." Rewording
"Advertising..." -> "Broadcast..."; "Advertise" -> "Make Public"
2025-07-24 20:09:40 -04:00
VelocitOni
c3482ee779 Base Online Menu "Advertise" Rewording
"Advertise" --> "Public"
2025-07-24 20:08:44 -04:00
toaster
f8aaa43f73 Reset *all* First Boot specific state in M_ClearSecrets, not M_ClearStats
Guarantees wiping gamedata will send you through goner again, since otherwise why are we wiping gonerlevel
Also fixes restarting Goner's audio
2025-07-24 20:03:47 +01:00
toaster
56df65d18c Extra newline for "do you want to play the tutorial again" text 2025-07-24 19:52:02 +01:00
toaster
43fef1a59b Replace the Playground Hack with a specific fix via a case that needed its own function 2025-07-24 19:40:51 +01:00
toaster
8a7df9678e Add photosensitivity warning to Goner
Allows you to turn on reducevfx, screenshake, and screen tilting with one confirm input
Shows up every time game boots just in case you get into Sunbeam and it's too much and need to restart
(also dummied out Kickstart Accel option)
2025-07-24 19:28:27 +01:00
toaster
340b1914d2 Add MBF_CANTRESTORE
Replaces hardcoded exception to restoreMenu
2025-07-24 18:22:25 +01:00
toaster
f0fbd07804 Got better at working in CPP... we don't want a forward_list here, we want a deque! 2025-07-24 13:28:59 +01:00
toaster
585683b978 Fix Proceed password "fake crash"
Didn't always properly reset text, now it does
2025-07-24 13:12:23 +01:00
toaster
1a57416b16 Minor adjustments for Goner Choice
- "session" -> "tutorial"
- make it clear that Addons and Online *will* eventually be unlocked in Tails' Way, just not immediately
- Don't allow looping inputs (pressing right when Eggman's Way is selected and vicea versa)
2025-07-24 12:54:58 +01:00
toaster
c5ab5ec71e Fix minor edge case with error message for Eggman's Way 2025-07-23 19:34:42 +01:00
toaster
6ce6c0d6cf Two minor hacks for Playground that I can't be bothered to do properly, to match desired spec
- Play intro when exiting goner Playground
- Do not allow using menu to skip driving down that hill in goner Playground
The reason these two are hacks is because a map is considered goner Playground if you use -warp at command line or map in console on title screen to get to a Tutorial course... but these are unimportant edge cases IMO
2025-07-23 19:32:07 +01:00
toaster
295e8dd0ce Add Goner Choice
- Selection between Tails' Way (existing Tutorial) and Eggman's Way (Playground)
    - Semi-passable UI
    - Characterful descriptions
- Add "PlaygroundRoute" condition to Challenges
    - Fires if you select Eggman's Way
- 0 Chao Keys unless you go back to Goner for the outro (which Playground skips)
2025-07-23 19:25:52 +01:00
Antonio Martinez
78fb3c0cdd No lives in Relaxed 2025-07-15 16:40:27 -04:00
Antonio Martinez
e4ab3a036e Allow room select even with mddified files 2025-07-02 22:49:46 -04:00
Antonio Martinez
84466de921 Minimum 80% XP in Frantic, remove Frantic poweritem buffs 2025-06-27 01:39:52 -04:00
Ashnal
f5aa2a701b Bail button
Transforms BT_RESPAWN into BT_BAIL
User bindings should migrate along with this
Respawn is now EBRAKE+BAIL
Respawn blocks LOOKBACK
Time Attack quick respawn is now VOTE
2025-06-23 18:07:59 -04:00
Antonio Martinez
4af7ab2555 Lower Duel HUD, global option to disable/enable Duel 2025-06-06 21:32:37 -04:00
Oni VelocitOni
03d9430bb9 Merge branch 'replay-kms' into 'master'
demo improvements (why)

See merge request kart-krew-dev/ring-racers-internal!2598
2025-06-02 21:30:45 +00:00
toaster
d9faf64463 Don't show the "start queue?" message outside of level play 2025-06-01 01:08:55 +01:00
toaster
830cfe76da Round Queue UI on Level Select
- Only works in Match Race and Online level selects
- Shows in-progress state on Pause and Cup Grid, but no direct influence available on those screens
- Z to queue current highlighted map
    - Pending until you press A, then sent to server
    - When done online, tries to send one at a time to avoid overloading connection
- C to clear
    - Removes one from pending first
    - If you're out of pending maps, prompts whether you want to clear server's queue
2025-06-01 00:25:20 +01:00
toaster
5bfbfccdae M_LevelSelectInit: Catch potentially invalid skin dereference for Hivolt message, just in case 2025-06-01 00:05:45 +01:00
toaster
71e1179030 M_MenuToLevelPreamble: Seriously clean up the process of starting a course from the menu
A lot of messy, copypasted boilerplate has been bundled together into a single function.
Programmers can now fire up a Match Race, the most basic type of gameplay, from menu code in only four steps (other modes take a little more attention):
- **M_MenuToLevelPreamble(UINT8 - splitscreen players #, boolean - false to extend wipe/true for short wipe)**
- set restoremenu
- D_MapChange(...)
- M_ClearMenus(...)
Includes the following fixes:
- Encore no longer has over-long wipes when started from menu, only standard-length
- "Boss Intro" and Encore start-of-round sounds will always play, even if no Title Card is drawn
- No long wipe when restarting a Time Attack run
- Auto Encore and Auto Gamespeed are no longer accidentially forced if you've manually changed them to Off and Gear 2 before starting netgame
2025-06-01 00:05:45 +01:00
toaster
e4907227fc New simpler rewind code + re-enable in UI
- Built off g_fast_forward to utilise a lot of existing structure
- Only does steps of 5 seconds and therefore isn't precise, but that's better than having to rewatch/fastforward through the entire thing
- No single frame step back or general in-motion rewind preview, but that was all overkill
2025-06-01 00:02:19 +01:00
toaster
09e23e6e18 Rip out all the rewinding code
It was all messy and none of it is called in release builds because it was so crashy in testing
2025-06-01 00:02:19 +01: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
AJ Martinez
4b00703856 Merge remote-tracking branch 'origin/master' into duel 2025-05-25 15:38:38 -04:00
VelocitOni
212603838d "use pwr.lv" into "use mobiums"
The only other case I can think of, I'd like to leave "PWR" on the master server
2025-05-25 04:48:48 -04:00
Antonio Martinez
3d39ab5225 more Duel 2025-05-24 21:19:33 -04:00
toaster
ecb4ffeeca Add bonus pickups in conditions you couldn't grab Spray Cans before
- If you've gotten every Spray Can, or you're on a custom course...
- Only one of these spawns per map
- Correctly save and load these
- Statistics menu counts base-game bonuses
- If there are gaps in the list, or new Spray Cans are added later, these base-game bonuses are converted into the new Spray Cans
- New graphics required so far:
    - SBONA0 to SBONP0 - 16-frame prerendered circling sprite animation
    - GOTBON - 8x8 representation of the SBON object
2025-05-20 20:27:06 +01:00
Antonio Martinez
0bb8684142 Merge remote-tracking branch 'origin/master' into ta24 2025-05-18 14:30:14 -04:00
Antonio Martinez
cacf470f6f 2.4 TA refinements mkII 2025-05-12 17:18:14 -04:00
AJ Martinez
90c28dc2d9 Spindash button, Strict Fastfall profile option 2025-05-05 20:36:00 -04:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
a2572f64df Update copyright years to 2025 2025-02-13 15:56:37 -06: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
Eidolon
1a8467fdaf Merge public master 2025-02-12 19:02:38 -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
NepDisk
a67bdb2ad0 Make i and j UINT16 to account for the fact MAXFOLLOWERS is 1024 2024-11-20 00:42:01 +00:00
Sal
8ff2e13c7d Merge branch 'dump-consistency-for-the-modern-age' into 'master'
DUMPCONSISTENCY for the modern age

See merge request KartKrew/Kart!2483
2024-10-25 17:48:21 +00:00
Sally Coolatta
6bf5662ca8 Delete resynchattempts
All values besides 0 and 1 have been unused for a while. Quite frankly, if the gamestate resend doesn't fix them, a rejoin won't either, so kicking them is just adding extra steps.
2024-10-22 02:57:05 -04:00