Commit graph

1642 commits

Author SHA1 Message Date
JugadorXEI
9921d0b427 Ensure bot names set by Lua's K_SetNameForBot are good 2025-10-03 21:19:25 +02:00
Antonio Martinez
ae0100ba05 Extended staffsync RNG/resync reporting 2025-09-27 23:09:52 -04:00
AJ Martinez
3f8ee05db8 Merge branch 'acs-netlumps' into 'master'
ACS netlumps

See merge request kart-krew-dev/ring-racers-internal!2876
2025-09-26 17:57:39 +00:00
Antonio Martinez
4aa3309885 Oops deleted staffsync 2025-09-23 03:22:15 -04:00
Antonio Martinez
595874f4e5 CompatLevel fixes 2025-09-23 03:18:14 -04:00
toaster
1517ba4d89 Fix mainwads-dependent calculations
- sounds.pk3 was being considered a mainwad in some spots due to use of <= instead of <
- fileneeded material was manually skipping over base musicwads when it didn't have to
2025-09-19 16:12:59 +01:00
Oni VelocitOni
04e37029d7 Merge branch 'toggle-tombola' into 'master'
Net-safe item toggle menu (resolves ring-racers#85)

Closes ring-racers#85

See merge request kart-krew-dev/ring-racers-internal!2843
2025-09-15 18:01:40 +00:00
toaster
99d8e33cfd Net-safe item toggle menu
Use cvar callbacks for items-thunderdome relationship & sounds
2025-09-14 22:32:57 +01:00
Sally Coolatta
0a4ced4da4 Add skin change notice 2025-09-13 01:53:14 -04:00
Sally Coolatta
6a3ee467a8 Send skin+color all the way thru clientcfg 2025-09-13 00:57:51 -04:00
Sally Coolatta
c743a156b1 Write skins, colors, weaponprefs into XD_ADDPLAYER
Should fix the Green Eggman bug. Needs multiplayer testing.
2025-09-12 01:38:15 -04:00
Antonio Martinez
75717e8f65 Audit platinums 2025-09-02 04:05:44 -04:00
toaster
48261ae4b5 filesearch: Add "Priority folder" string parameter
If non-NULL, filesearch will begin in that subfolder of the desired searchpath, but can go back up to the root of the search later if not found in that location.

Primarily a small optimisation for checking the addons folder first
2025-08-25 20:14:37 +01:00
toaster
4d6fe8f233 W_VerifyNMUSlumps: Clean up
- Bake W_VerifyFile in, since it was a stub never called anywhere else
- Make it operate off file handles, since the following locations quickly filesearch'd more than once in quick succession.
    - W_InitFile
    - Command_Addfile
- Remove spurious call from W_InitMultipleFiles for `-file` startup param
2025-08-25 19:51:48 +01:00
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
6337e1d40f Staffsync: more pleasant sound 2025-08-19 22:05:31 -04:00
Antonio Martinez
7b39fc4b7e "Staffsync" command to test staff ghost playback 2025-08-19 18:52:13 -04:00
Oni VelocitOni
f8f4d6cfd6 Merge branch 'challenges-bonnus' into 'master'
Challenges Bonnus

See merge request kart-krew-dev/ring-racers-internal!2738
2025-08-19 19:39:29 +00:00
toaster
10ab07b005 Bring snapshotmaps into the map, queuemap, showmap fold
- Support partial names (but only with quotes around spaces, to accomodate for the multiple course support)
- Also permit `snapshotmap` as a command alias, with this one given in the help message
2025-08-18 20:04:08 +01:00
Eidolon
8cb962ee19 Add dumprrautomedaltimes console command 2025-08-17 17:47:30 -05:00
toaster
2f6d7230f0 Dumb post alert: Ease off the horn
If we're bringing the spice we have to bring the whole pepper
2025-08-17 13:06:02 +01:00
Eidolon
892a6b8620 Merge public master 2025-08-12 16:49:14 -05:00
Eidolon
255570cfca Dynamically allocate skins
This avoids an issue where the skins array takes up a fixed, but large
amount of memory at runtime. On x86_64 linux, that array is roughly 80
megabytes in memory, most of which is unused when the game is unmodded.
Instead, we treat `skins` as a dynamically resizing array, and it is an
array-of-pointers into separate allocated `skin_t`.

This is based on Lactozilla's skin limit MR for SRB2, but I've rewritten
it because RR has diverged quite a bit.

This was verified to check every access of `skins` by using clangd's
find-all-references function. However, I have only tested plain skins,
not Lua addons, so that could afford some extra checking.
2025-08-12 15:33:00 -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
Antonio Martinez
0a7abc7a9e setamps cheat command 2025-06-29 21:37:58 -04:00
Oni VelocitOni
a7b4c6dcdc Merge branch 'postrace-director' into 'master'
Postrace director cam

Closes #1475

See merge request kart-krew-dev/ring-racers-internal!2565
2025-06-04 00:37:43 +00:00
AJ Martinez
f12153cb8b Merge branch 'damage-debug' into 'master'
More damage cheats

See merge request kart-krew-dev/ring-racers-internal!2604
2025-06-03 22:50:55 +00:00
Antonio Martinez
32f40ca013 More damage cheats 2025-06-02 12:47:38 -04:00
Antonio Martinez
3a39399346 Control prompt localplayers cleanup 2025-06-01 16:04:14 -04: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
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