Commit graph

1367 commits

Author SHA1 Message Date
toaster
be3c0faf7e More gracefully amend Splits/Attackstart data on ghost load rather than splits load 2025-08-21 18:25:03 +01:00
Antonio Martinez
df17ba38b9 Take snapshotmaps on leveltime 5 2025-08-18 20:00:15 +01:00
Eidolon
4fd5f1f986 Fix remaining issues with voice cvar logic flip 2025-07-24 22:59:25 -05: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
283e010301 "Server Voice Chat" (still named cv_voice_servermute for now)
Flipped all bools (HOPEFULLY CORRECTLY)
2025-07-24 22:38:42 -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
Antonio Martinez
249d97dbec Fuzz fixups 2025-07-03 11:21:22 -04:00
Oni VelocitOni
92d9d66657 Merge branch 'fix-duel-vote' into 'master'
Don't let players party-crash duel vote

Closes #1534

See merge request kart-krew-dev/ring-racers-internal!2645
2025-06-26 23:06:11 +00: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
5a01279c10 Move join spectate below bot set, just in case 2025-06-23 15:00:18 -04:00
Antonio Martinez
dc45f4427b Try fixing vote party crash 2025-06-23 14:10:57 -04:00
Eidolon
f001f07f77 Disable spectator voice in-level 2025-06-10 18:24:42 -05: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
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
d66278dfeb Fail gracefully on Hamachi/Radmin/etc 2025-05-01 22:03:57 -04: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
5a3f1c7653 Merge public master 2025-02-12 22:01:13 -06:00
Craftyawesome
093bfd9be0 use a signed type for NodeToSplitPlayer 2025-01-23 15:59:48 -05:00
Eidolon
4be98c6c13 Fix src/d_clisrv.c line endings 2024-12-26 19:10:45 -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
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
Sally Coolatta
45bbb4826a DUMPCONSISTENCY for the modern age
- dumpconsistency cvar is always enabled (rather than a define), but is now a cheat.
- It now dumps on resend, instead of on consistency failure kick. (Those don't even happen on too many resyncs anymore, anyways...)
- It now dumps for both the server & the client that is resyncing, so there's gamestates to compare. The two files are given names with metadata so they can be matched up.

It's not great, but it was easy enough to do and more useable than having 0 tools to inspect resync at all.
2024-10-22 02:22:31 -04:00
toaster
6578cf1b56 Rework the map command suite a little
The following funcs are now a suite with almost-identical argument lists.

- `map` is for immediately going to a map
    - Add `-random`/`-r`
- `queuemap` is for interacting with the live Round Queue
    - Add `-random`/`-r`
        - Performed server-side
    - `-clear` and `-show` now accept partial params `-c` and `-s`
    - Fix minor error with 0-argument print's text
- `showmap` is for printing information
    - Add arbitrary map name/ID input
        - `showmap robo` prints the course `map robo` would resolve to
    - Add `-gametype`/`-gt`/`-g`
        - For compatibility testing
    - Add `-random`/`-r`
        - Combine with `-gametype` for extra guarantees
- `randommap` was deprecated
    - Will only print replacement instructions of `map -random`, and nothing else
2024-10-11 13:46:36 +01:00
toaster
63aaec65b1 Add roundqueue -show
Reveals the next Round in the queue via server shout message.
Can be used manually, or with automate commands for tournament rulesets that permit foreknowledge of the next Round without requiring the host to work off memory or document.
2024-10-11 13:46:30 +01:00
toaster
512ec6c2eb XD_REQMAPQUEUE --> PT_REQMAPQUEUE
It was technically possible for custom clients to spoil future rounds of a tournament queued while they are connected to a server.
Making it a PT direct packet to the servernode both solves this problem AND reduces irrelevant NetXCmd traffic for clients.
2024-10-11 13:46:26 +01:00
Oni
71588f490f Merge branch 'queue-skin' into 'master'
Queued skin/color changes

See merge request KartKrew/Kart!2452
2024-09-28 17:46:42 +00:00
Antonio Martinez
555e4eaa4c Final raw button literal fixups?! 2024-09-27 04:44:59 -07:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
Sally Coolatta
03874c3374 New Ballhog design
Taking the old charge idea, but instead of missiles, it's bananas that explode on the floor and can only be lobbed forward. Charging creates more projectiles in a circle pattern around it.
2024-08-28 01:26:53 -04:00
Ashnal
df4e99b050 WIP Race Checkpoints
MobjList count

WIP: Checkpoints grant lap bonus

help?

can't allocate vector

 fixed tagged line iteration and collision detection

Multiplayer animations and map retart fixes

Clear between maps
2024-08-13 20:20:21 -04:00
James R
3939966a7f Fix saycmd message buffer handling
- Properly bounds check say_pak
- Fix off-by-one read in Got_Saycmd
2024-05-20 16:42:31 -07:00
AJ Martinez
0647791c32 Mindelay fixes
- Don't apply mindelay to clients that are already slower than their mindelay, WTF
- Don't double apply mindelay to hosts to compensate for the above, WTF
2024-05-15 22:31:26 -07:00
toaster
3a8de19aa4 TryRunTics: Handle deferred title/credits continue outside inner tic loop, don't bail outside of level gamestate
Fixes netxcmds not being processed locally in time to init rivals properly
2024-05-02 20:28:15 +01:00
Oni
32c43044cb Merge branch 'mindelay-client' into 'master'
Fix delay indicator online

See merge request KartKrew/Kart!2311
2024-05-02 12:58:20 +00:00
Eidolon
fc3128df12 Always exit TryRunTics loop early if deferring gamestate change
Calls to F_ContinueCredits and D_StartTitle, even if deferred,
change the current gamestate. However, the tic loop in TryRunTics
may still have a couple tics to execute to catch up to current
time, and as a consequence G_Ticker may execute game logic while
the current state is not GS_LEVEL or equivalent. As a result, it is
highly likely for the game to crash.

This adds deferred credits start to the tic loop, and exits that
loop if either title or credits are supposed to start after the
current iteration, fixing this crash scenario.

Fixes KartKrew/Kart#1185
2024-04-30 22:54:42 -05:00
James R
3e5f6466a0 Base gentlemen delay on lowest average
Was previously based on the delay at the moment of
calculation, which may fluctuate. I changed it to use the
average because the number was flickering in the HUD.
2024-04-27 15:44:47 -07:00
James R
8103bd21c1 HUD: fix delay indicator online
- As a bonus, the mindelay setting of other players is now
  visible to everyone
2024-04-27 15:44:43 -07:00
James R
e0c33596e8 Sync mindelay setting to server
- Adds playerdelaytable, no UX changes
2024-04-27 04:09:21 -07:00
AJ Martinez
632d9b4d0d More lax + more helpful RRID timestamp errors 2024-04-25 18:02:43 -07:00
toaster
2caa5ff018 Dedicated server -spoilers startup parameter
Servers should get enough free for a healthy launch ecosystem, but not everything.
We'll give the relevant password out after, like, the first week probably? Please be patient, commit-diver
2024-04-12 14:17:33 +01:00
Sally Coolatta
1e40d08cec HandleConnect handles bots 2024-04-11 17:41:06 -04:00
Sally Coolatta
af9ddb5519 Keep PT_SERVERINFO struct the same in all builds
Sends the commit hash in all builds now, just doesn't do anything with it in release builds. Makes web view development easier according to Tyron.
2024-04-05 11:08:09 -04:00
toaster
7f6de407f1 Copyright update: Add Kart Krew (2024) in general for high-traffic inherited sourcefiles 2024-04-02 17:42:38 +01:00
toaster
0aaf5649dd Server Browser last-minute adjustments
- Menu string for server count
- Thin string for server name
- Gear instead of difficulty (renamed to keep the old assets just in case online GP)
- Pwr fixes
    - Handle -1 case as "No Pwr"
    - Adjust draw coords a little
- Custom gametype support
    - Shows name as net-communicated instead of Pwr
    - Affects d_clisrv side a little bit too
        - All custom gametypes MUST show up on the Modded room, no exceptions
        - Cache gametype info instead of constant strcmp
2024-03-29 22:04:17 +00:00
toaster
2a8ddd4a40 SV_SendServerInfo: Use K_UsingPowerLevels instead of plain cv_kartusepwrlv 2024-03-29 22:04:17 +00:00
toaster
31288a6f21 Introduce a variant of M_DrawEggaChannel aligned to center or left depending on parameter 2024-03-29 22:04:17 +00:00