Commit graph

1611 commits

Author SHA1 Message Date
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
Antonio Martinez
28f12acab1 Merge remote-tracking branch 'origin/master' into duel 2025-05-24 16:34:36 -04:00
Antonio Martinez
0e515f8688 Check map command for rulechange 2025-05-23 20:02:50 -04:00
Antonio Martinez
2940b45a22 No map command in GP 2025-05-20 18:52:41 -04:00
Antonio Martinez
654f25f684 Strict Fastfall: review fixups 2025-05-11 17:58:44 -07:00
AJ Martinez
90c28dc2d9 Spindash button, Strict Fastfall profile option 2025-05-05 20:36:00 -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
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
Oni
d9bf5d26dd Merge branch 'rqdx' into 'master'
Roundqueue DX

Closes #1411

See merge request KartKrew/Kart!2473
2024-10-20 18:52:35 +00:00
toaster
40964f5556 Permit partial parameter -c (alias for -clear) on setscore 2024-10-19 13:19:40 +01:00
Sal
323452df73 Merge branch 'vote-anger-fix' into 'master'
Fix map anger race condition

See merge request KartKrew/Kart!2447
2024-10-18 01:13:42 +00:00
toaster
ff7bb5cd2b Rework showscores command
Prints a full, ordered table of results, basically equivalent to intermission.
Much closer to the kind of logging one would want for tournament play, rather than the SRB2 leftover this command was holding previously.
2024-10-11 13:46:43 +01:00
toaster
5b4d771f28 D_SetupVote: Fix minor memory issues
memset takes UINT8-based arguments and cannot set UINT16_MAX
2024-10-11 13:46:39 +01: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
toaster
8bd50ddb65 clearscores is now setscore
- `setscore 0 50` will set the player in slot 0's score to 50 points
- `setscore 0 50 -add` will add 50 points to their score
- `setscore -clear` will clear all players' score, as per the old function
- Command will error if PWR is in use (no roundqueue/`usepwrlv 0`/cheats off in GP)
- The previous cheat `setscore` is renamed to `setroundscore`
2024-10-11 13:40:11 +01:00
toaster
b62892ba1c Reimplement midgame Pause Menu flow for Spectate status change
- Currently no console command, as "teamchange" no longer applies... relatively simple to add one if needed though
- Change the "Team Change" warning when allowteamchange is false to say "Joining Play"
2024-09-22 17:44:26 +01:00
toaster
27f5da1fd5 Fix typo that was no-selling Race Grief spectatorifying 2024-09-22 17:24:43 +01:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00:00
Sally Coolatta
0d3cc16403 Queued skin/color changes
Instead of janky spectate on skin change, let the player finish their current round as their current skin.
2024-09-07 10:54:36 -04:00
Sally Coolatta
e21cf463ea Duel vote: More conveyance
- Show X over selection, to make it more obvious when it's rip snortin' time
- "Waiting for [player]..." when it's not your turn
- Halve vote timer in Duels (maybe make a separate cvar?)
- Fix bots sometimes striking stages out realllllly slowly
2024-09-03 20:56:36 -04:00
Sally Coolatta
141a37c48a Duel voting
Instead of voting for the level you want and the pick is decided by RNG ... now you take turns picking the maps you *don't* want, and the last one remaining gets picked. The previous loser gets to strike two stages and goes first, while the previous winner only gets to strike one.

Very incomplete visuals, very janky.
2024-09-03 20:08:04 -04:00
Sally Coolatta
3020f9c3ef Fix map anger race condition
Was making angry maps never actually get picked. Dang.
2024-09-02 04:20:39 -04:00
Sally Coolatta
9b63fb4078 Fix map anger race condition
Was making angry maps never actually get picked. Dang.
2024-09-02 04:20:04 -04: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
katsy
348ad7c1f0 Remove leftover Record Attack lockout warnings 2024-05-07 12:15:10 -05:00
Ashnal
71cc9c0800 Auto-Ring Accessibility Option
Lacking animation at this commit
2024-05-05 01:18:22 -07:00
AJ Martinez
d17fe040ec Merge branch 'restartlevel-is-cheating' into 'master'
Disallow restartlevel in rule-restricted gameplay

See merge request KartKrew/Kart!2342
2024-05-04 23:27:34 +00: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
AJ Martinez
db6e4afdaa Disallow restartlevel in rule-restricted gameplay 2024-05-01 21:21:29 -07: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
e0c33596e8 Sync mindelay setting to server
- Adds playerdelaytable, no UX changes
2024-04-27 04:09:21 -07:00
AJ Martinez
89953dfe42 Check vote setup command for admin rights 2024-04-13 23:32:56 -07:00
AJ Martinez
a7085d7494 Allow promoted admins to trigger vote screen (gametype change) 2024-04-13 23:29:12 -07:00
toaster
e569377ad3 Instead of ineffectually restricting karteliminatelast via console callback exclusively in release builds, just don't use the cvar's value if you can't K_CanChangeRules 2024-04-11 20:34:56 +01:00
toaster
0c782767be Add "then" condition string builder type
Better for some sentences
2024-04-10 17:24:45 +01:00
Oni
797f78abab Merge branch 'roboticize-copyright' into 'master'
SRB2 -> DRRR copyright

Closes #1122

See merge request KartKrew/Kart!2232
2024-04-06 00:27:55 +00:00
Sally Coolatta
c157acf9be Kill MODID
SRB2APPLICATION has replaced all of its uses in the modern Master Server, let's not keep this old cruft around. Exposed to Lua as "APPLICATION", in all caps.
2024-04-05 11:31:48 -04: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
toaster
2c5f0de69c The author of this commit hates the print in NumLaps_OnChange so much
- Don't print outside of Playing()
    - Fixes the one cvar set message when playing back any Staff Replay
- Have a bespoke map default print for outside-of-level changes
2024-04-03 21:01:08 +01:00
toaster
b818a7d776 Forbid character-based unlocks if you switched your skin in a context where it didn't auto-spectate you (more robust stop for #1231) 2024-04-01 18:03:00 +01:00
Gunla
20d6dcda88 Merge branch 'discord-rp-update' into 'master'
Update Discord Rich Presence for Ring Racers

See merge request KartKrew/Kart!2155
2024-03-29 20:30:20 +00:00
James R
acbb7eb463 Add password checking system
Co-authored-by: toaster <rollerorbital@gmail.com>
2024-03-28 00:09:11 -07:00
James R
17c4fbbb51 fastforward: appears on the cheats menu 2024-03-28 00:09:02 -07:00
Sally Coolatta
d41ca3711a Update Discord RP for Ring Racers 2024-03-23 01:31:51 -04:00
AJ Martinez
e369bbc538 Merge branch 'cpu-names-conflict' into 'master'
CPU Naming conflict

See merge request KartKrew/Kart!2131
2024-03-19 03:50:44 +00:00
toaster
a161df579f EnsurePlayerNameIsGood: Remove trailing whitespace, instead of just failing on it
Interesting error with its recursive duplication resolving exposed by the previous commit!
2024-03-18 19:24:42 +00:00
toaster
1ef3063772 EnsurePlayerNameIsGood: Only evaluate strlen once
Also has a slightly better chance of conflict avoidance for its absolute worst case scenario
2024-03-18 19:17:34 +00:00