Commit graph

2233 commits

Author SHA1 Message Date
Antonio Martinez
7b39fc4b7e "Staffsync" command to test staff ghost playback 2025-08-19 18:52:13 -04: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
Antonio Martinez
5e9a80bb32 Fix race split carryover between rounds 2025-08-08 22:42:42 -04:00
Antonio Martinez
385257af73 Splits in Race gametypes 2025-08-08 20:09:14 -04:00
Antonio Martinez
fad24db244 Merge remote-tracking branch 'origin/master' into ta-rebalance-gaiden 2025-08-07 21:20:00 -04:00
Antonio Martinez
bf8511c495 Review fixup 2025-08-06 16:48:20 -04:00
Antonio Martinez
76b88990cc WIP: Foes 2025-08-04 04:23:37 -04:00
toaster
7b134a1a90 Resolve #1616 2025-08-03 20:17:15 +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
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
dc45f4427b Try fixing vote party crash 2025-06-23 14:10:57 -04:00
Antonio Martinez
331110e6cf Use rank percentage for Sealed Star entry, not grade 2025-06-21 02:22:50 -04:00
AJ Martinez
9f506f93dd Merge branch 'gp-tweaks-420' into 'master'
GP refinements

Closes #1527

See merge request kart-krew-dev/ring-racers-internal!2620
2025-06-19 06:44:28 +00:00
Oni VelocitOni
f5c2031ea5 Merge branch 'beyond-the-relink' into 'master'
Use ChangePlayerReferences to relink kartitems

See merge request kart-krew-dev/ring-racers-internal!2622
2025-06-11 21:37:18 +00:00
Antonio Martinez
878972fc7b Use ChangePlayerReferences to relink kartitems 2025-06-07 19:30:59 -04:00
Antonio Martinez
cd439be74c Bot difficulty and grading tweaks 2025-06-07 17:49:11 -04:00
Antonio Martinez
2459affaa3 GP refinements 2025-06-07 15:21:58 -04:00
Antonio Martinez
4af7ab2555 Lower Duel HUD, global option to disable/enable Duel 2025-06-06 21:32:37 -04:00
TehRealSalt
75047a630d Merge branch 'fix-duel-death' into 'master'
Restore duel score after true death

Closes #1542

See merge request kart-krew-dev/ring-racers-internal!2608
2025-06-04 04:32:02 +00:00
Antonio Martinez
a5790f0ce1 Restore duel score after true death 2025-06-02 18:50:40 -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
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
Antonio Martinez
e75ffd0707 Save team assignments in demo (DEMO BREAKER) 2025-05-28 15:20:06 -04:00
AJ Martinez
9009a5aef9 Merge branch 'early-item-fix' into 'master'
Fix inconsistent early item behavior

Closes #1533

See merge request kart-krew-dev/ring-racers-internal!2585
2025-05-28 04:10:34 +00:00
Antonio Martinez
ea7a7ea7e6 Allow viewing enemy team in replays 2025-05-27 20:54:45 -04:00
Antonio Martinez
0ae5ca3341 Fix weird inconsistent initialization of cangrabitems maybe???
I took a shower and I want to go to bed
2025-05-27 03:38:04 -04:00
AJ Martinez
4b00703856 Merge remote-tracking branch 'origin/master' into duel 2025-05-25 15:38:38 -04:00
James R
0fc22e5fbd Preserve spectatewait between maps
- Add spectatewait to G_PlayerReborn
- This was making shuffeloser not work
- Testing setup
  - `-server -splitscreen 4 +shuffleloser 1 +maxplayers 2 +numlaps 0 +debugstart 0 +inttime 0 +advancemap random`
  - Spectate two players, go to map
2025-05-25 00:58:50 -07:00
Antonio Martinez
b9818d52e4 Duel sprint lockout, duel overtime darken 2025-05-25 01:57:02 -04:00
Antonio Martinez
28f12acab1 Merge remote-tracking branch 'origin/master' into duel 2025-05-24 16:34:36 -04:00
Antonio Martinez
2ec4fa044c Tiny roulette fixes 2025-05-20 15:35:05 -04:00
Oni VelocitOni
ae962c4d14 Merge branch 'ta24' into 'master'
2.4 TA refinements mkII

Closes #1507 and #1508

See merge request kart-krew-dev/ring-racers-internal!2532
2025-05-18 22:12:47 +00: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
144e2be262 More renaming 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
Antonio Martinez
0bb8684142 Merge remote-tracking branch 'origin/master' into ta24 2025-05-18 14:30:14 -04:00
Oni VelocitOni
524d29066f Merge branch 'strict-fastfall' into 'master'
Spindash button, Strict Fastfall profile option

Closes #1312

See merge request kart-krew-dev/ring-racers-internal!2527
2025-05-17 01:40:12 +00:00
Antonio Martinez
77167d1e32 Early item fade, fix gametypes / edge cases 2025-05-13 16:49:32 -04:00
Antonio Martinez
4b1417fe97 Reset grabitems between maps 2025-05-13 13:52:15 -04:00
Antonio Martinez
5129250e48 WIP: no early items 2025-05-13 12:39:16 -04:00
Antonio Martinez
cacf470f6f 2.4 TA refinements mkII 2025-05-12 17:18:14 -04:00
Antonio Martinez
654f25f684 Strict Fastfall: review fixups 2025-05-11 17:58:44 -07:00
Eidolon
e4fc3cc5c2 Fix conditionals on rendermode to allow for more modes 2025-03-12 21:50:37 -05:00