Commit graph

57 commits

Author SHA1 Message Date
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
Antonio Martinez
015e2f0930 TA: Prevent reset during tally if time is a new best 2025-08-07 21:59:42 -04:00
toaster
5da7e1612e Don't show "position" in GT_TUTORIAL tab rankings, as everybody's in 1st place all the time 2025-08-01 23:38:11 +01:00
Antonio Martinez
331110e6cf Use rank percentage for Sealed Star entry, not grade 2025-06-21 02:22:50 -04:00
Eidolon
fe1afa33c5 Don't show voice indicators on score panel outside netgames 2025-06-10 18:34:16 -05:00
Oni VelocitOni
338b0e893b Merge branch 'teams-juice' into 'master'
Teams juice

See merge request kart-krew-dev/ring-racers-internal!2601
2025-06-04 02:22:40 +00:00
Antonio Martinez
2190b5ebfe Teamplay intermission fixup TWO 2025-06-01 19:21:48 -04:00
Antonio Martinez
b8a4d21ba5 Intermission teamscore fixup 2025-06-01 18:28:32 -04:00
Antonio Martinez
adff23f106 Teams juice 2025-06-01 05:52:28 -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
9dfdacb7c5 Always update match stats even in PWRLV_DISABLED 2025-05-27 15:00:32 -04:00
Oni VelocitOni
1cdf381aba Merge branch 'more-exp-stuff' into 'master'
Exp Improvements

See merge request kart-krew-dev/ring-racers-internal!2577
2025-05-26 02:22:24 +00:00
Ashnal
6e49378bc8 Fix botched tally rate increase 2025-05-25 18:30:40 -04:00
Ashnal
0cdd4d1b07 Increase intermission tally speed 2025-05-25 17:13:28 -04:00
AJ Martinez
4b00703856 Merge remote-tracking branch 'origin/master' into duel 2025-05-25 15:38:38 -04:00
Lach
a434e760c5 Add rank mode label to intermission tally screens (EXP/MOBIUMS) 2025-05-25 16:28:31 +10:00
Antonio Martinez
28f12acab1 Merge remote-tracking branch 'origin/master' into duel 2025-05-24 16:34:36 -04:00
Ashnal
50fd04bdb1 small hud performance improvement
now that we have spots on the player struct for both gradingfactor and exp, store exp in the exp field after adjusting gradingfactor, and just reference it instead of recalculating every time
2025-05-18 14:30:46 -04:00
Ashnal
5a42c99d0a Rname stuff better 2025-05-18 14:30:45 -04:00
Ashnal
bf6a5babfb Reworks changes to K_CalculateGPRankPoints to account for the 125+10 max for points
and untramples the implementation
fixes gp results screen totals

I really need to refactor lappoints to be named exppoints or something later
2025-05-18 14:30:45 -04:00
Ashnal
8242cb89f0 Replace GP points with exp
update GP results screen lap patches with exp patches
2025-05-18 14:30:45 -04:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
e4fc3cc5c2 Fix conditionals on rendermode to allow for more modes 2025-03-12 21:50:37 -05: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
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
81d6ac9f6e FUCK A DRAWBUTTON 2024-09-27 03:28:39 -07:00
Sal
653766010d FRIENDCODE (aka, Teamplay) 2024-09-17 01:41:26 +00: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
b43d62367f Nametag stuff
- Enable item spy in all modes
- Add CPU tags
- New CPU indicator for tab screen
2024-08-23 01:51:52 -04:00
Eidolon
f75564371d Merge public master 2024-05-03 12:55:15 -05:00
bitten2up
cfacbd91be Fix implicit casts of int expecting 4-byte width
This fixes the issue with certain compilers that have int set to
different sizes by either explicitly casting or setting templates
manually
2024-05-03 17:53:53 +00: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
toaster
86b9d1a7c2 Widescreen support for Y_IntermissionButton 2024-04-10 00:51:09 +01:00
toaster
d7f4cd2d8f Copyright update for Viv Grannell specifically (the author of this commit) 2024-04-02 17:38:18 +01:00
toaster
a6d4c2fd2c Do not extend Sealed Star progression bar off-screen in non-green resolution (resolves #1232) 2024-04-01 00:12:15 +01:00
James R
bd22f756dd Tally, Intermission: mask not-yet-unlocked characters
- Name becomes "???"
- Use question mark icon
- Silhouette A2 sprite
2024-03-26 00:15:36 -07:00
toaster
0182d2cb43 Don't draw invalid Grade in Match Race Tab Rankings
Here because it was extremely overt in Tutorial Challenge
2024-03-21 22:13:56 +00:00
AJ Martinez
4d4f6f3bdd Merge branch 'fix-splitscreen-tally-ff-inter-music' into 'master'
Intermission: Don't retrigger music, even if tally ffwd sets countdown

See merge request KartKrew/Kart!2136
2024-03-19 03:51:16 +00:00
AJ Martinez
604d4d21db Intermission: Don't retrigger music, even if tally ffwd sets countdown 2024-03-18 20:23:27 -07:00
AJ Martinez
17cd1550a1 Tally: Fix intermission music being played on rounds without intermissions 2024-03-18 18:38:41 -07:00
James R
0a1f8331fe Attract: no intermission or tally for Attract demos 2024-03-18 01:19:10 -07:00
Gunla
9e549d5607 Merge branch 'replay-hud-fixes' into 'master'
Replay HUD fixes; also fix HERE COMES A NEW CHALLENGER in splitscreen

Closes #1172, #1169, #1177, and #1165

See merge request KartKrew/Kart!2125
2024-03-17 22:07:38 +00:00
James R
d68e7072a2 Lock user out of menu when replay goes to intermission
- Access to the replay menu in intermission leads to
  various problems
  - Broken options
  - HOM effect
- You can press A on the intermission screen to end it
2024-03-17 04:54:02 -07:00
AJ Martinez
40a95dbc83 TA record/playback fixes 2024-03-16 21:40:42 -07:00
James R
ecae138f0e Y_CalculateMatchData: only overwrite demo extrainfo section if there is standings data to save 2024-03-14 07:52:30 -07:00
Oni
4de4c9e57d Merge branch 'pre-podium-music' into 'master'
Add pre-Podium intermission music

Closes #1084

See merge request KartKrew/Kart!2075
2024-03-10 21:08:11 +00:00
Sally Coolatta
9b93f56111 Add pre-Podium intermission music 2024-03-10 14:08:59 -04:00