Commit graph

29266 commits

Author SHA1 Message Date
toaster
fb2224e9b1 Allow pressing <a> again while a follower is on your Profile (or you have a local party and can't make any profile edits from here) to play horn... with goofy bonus text from the only obvious source 2025-08-15 13:20:09 +01:00
toaster
2e0c8fab33 Force a Challenge tile flip if you activate the effect of a given Challenge (profile set and alt title)
Racers and Followers will also play their unique sound too
2025-08-15 13:20:09 +01:00
toaster
a7f119328e Challenge Preview for SECRET_ALTMUSIC: Consistency
- Since we're only using 50% of rollangle steps at 35fps, we can smooth it out under interp conditions like the flipping tile
- Don't grey out the text/stop the button animation for the input prompt, since pressing it again will stop the music, whereas grey text on Drivers/Followers/Colors means no function
- Keep the tile flipping even when not hovered over
2025-08-15 13:20:09 +01:00
toaster
d98b88a61f M_DrawChallengeTile: The non-category size of SECRET_MAP will now show a "map face", ala Map Anger/menu Round Queue 2025-08-15 13:20:09 +01:00
toaster
ee76f539e9 M_DrawChallengeTile: Fix brief flickers of invalid side caused by interpolation 2025-08-15 13:20:09 +01:00
toaster
bc75a1702e Extra polish to SECRET_ALTMUSIC on Challenges menu
If playing a given altmusic unlock...
- If selected, spin the disc
- If not selected, constantly flip the relevant tile on the board
- Either way, flash the relevant pixel in the scroll bar
2025-08-15 13:20:08 +01:00
toaster
4fcdb3c5fe Challenges menu QoL: <a> to set Driver and Follower
Also adjusts coordinates of other Challenges UI previews with control inputs to match
2025-08-15 13:20:08 +01:00
toaster
7b6b26fe30 Add skincolor Profile set Qol too 2025-08-15 13:20:08 +01:00
toaster
9074eaf3c8 Add the ability to play Tutorial courses from the Challenges menu
- Only works in parties of 1
- Currently intentionally disabled for other types of Match Race, as they tend to have too many options and I don't want to risk infinite menu loops
2025-08-15 13:20:08 +01:00
toaster
248541833a extras-challenges: Clean up open and close
- Dedicated function for cleaning up Challenges Menu memory
- Adjust the required function slate to open Challenges menu without malformed data
    - Permits it to be used with restoreMenu, where it would silently infinitely loop before
2025-08-15 13:20:08 +01:00
toaster
7c7bfe6054 Adjust how major and minor challenges affect percieved challenge completion
- The Chao Medal in the top right corner will be completely filled if you've unlocked everything, even if that was via skips
    - You basically never saw the silver Chao Medal. Major challenges *are* designed to be skipped if you don't want to, only 101% should be gruelling (complementary)
- The Scroll Bar at the top will darken pixels of complete columns ever so slightly even if minor challenges aren't yet achieved, to make it easier to find conditions to go back and fulfil if you're truly hunting for everything
2025-08-15 13:20:08 +01:00
Oni VelocitOni
56fe6580e2 Merge branch 'tuto-minor' into 'master'
Minor tutorial addendums

See merge request kart-krew-dev/ring-racers-internal!2733
2025-08-15 04:44:26 +00:00
AJ Martinez
e7e719b595 Merge branch 'jartha/fix-titledemo-freeze' into 'master'
Fix replay playback not processing ticcmds after a titledemo ends

Closes #1623

See merge request kart-krew-dev/ring-racers-internal!2732
2025-08-13 21:50:38 +00:00
AJ Martinez
5ec12247ba Merge branch 'fix-slow-split-crash' into 'master'
Store initial skin configuration for split display

See merge request kart-krew-dev/ring-racers-internal!2734
2025-08-13 21:50:23 +00:00
toaster
1c6ca63933 K_DrawGameControl: Use _FONT enums instead of fragile laundered magic numbers
Fixes the Genesis font breaking all Menu font'd control visuals
2025-08-13 18:05:23 +01:00
VelocitOni
94197b13e1 "These may sometimes be needed for progression"
(Tutorial unlock message drops hint that some may block cups, in-case challenge board is unfortunately configured for the file)
2025-08-13 15:40:36 +01:00
toaster
cc72be970b Support UC_CONDITIONSET for condition text on Challenges menu
Permits recursion by exactly one level
2025-08-13 15:40:30 +01:00
toaster
2143fc6662 Dialogue UI: Tactical Normie Countermeasure
Fade and overlay with Genesis font depending on context
2025-08-13 15:40:16 +01:00
toaster
e76262ae5b Add Genesis font 2025-08-13 15:39:01 +01:00
toaster
b97e8a581e Challenges: Add "New Tutorial Data" popup alongside map unlock
Doesn't appear for Playground as it's explicitly not part of Tails' Way
2025-08-13 15:38:52 +01:00
toaster
08d8bc7f58 Fix direct skin assignment in netsave + Heavy Magician
Was not caught by compiler because these are void pointers 🥹
2025-08-13 10:14:09 +01:00
Antonio Martinez
662f849a71 Remove skin configuration debug prints 2025-08-13 03:57:23 -04:00
Antonio Martinez
5244648070 Store initial skin configuration for split display 2025-08-13 02:48:23 -04:00
Eidolon
892a6b8620 Merge public master 2025-08-12 16:49:14 -05:00
Eidolon
60e95ab0d8 Merge branch 'dynamic-skin-allocation' into 'master'
Dynamically allocate skins

See merge request KartKrew/RingRacers!125
2025-08-12 21:16:44 +00: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
toaster
2b3697e8c8 WERROR fixes 2025-08-12 12:55:04 +01:00
Antonio Martinez
9dc7453159 Toaster recs for demo hygiene 2025-08-12 04:40:04 -04:00
Antonio Martinez
1c66631e18 Also unset waitingfortally when adding ghosts 2025-08-12 04:30:34 -04:00
James R
d8732affdf Fix replay playback not processing ticcmds after a titledemo ends 2025-08-12 01:13:54 -07:00
Oni VelocitOni
18307871bf Merge branch 'ta-spindash-leniency' into 'master'
E-brake leniency in TA starts only

See merge request kart-krew-dev/ring-racers-internal!2729
2025-08-12 01:24:22 +00:00
Oni VelocitOni
148e72542e Merge branch 'speedy-stairjank' into 'master'
More lenient stairjank when moving quickly

See merge request kart-krew-dev/ring-racers-internal!2728
2025-08-11 23:46:43 +00:00
Oni VelocitOni
5bb1cf3036 Merge branch 'ancient-gear-ii' into 'master'
Ancient Gear Tweaks

See merge request kart-krew-dev/ring-racers-internal!2727
2025-08-11 23:46:38 +00:00
Antonio Martinez
da6b6abb03 E-brake leniency in TA starts only 2025-08-10 19:47:09 -04:00
Antonio Martinez
e82217c23e More lenient stairjank when moving quickly 2025-08-10 19:32:53 -04:00
VelocitOni
1c14edfe5b Gear & Gear Parts w/ MF_DRAWFROMFARAWAY
They draw from further away now, should be more visible in Playground
2025-08-10 07:45:30 -04:00
Lach
e6bef7a7d1 Disallow Ancient Gears from respawning after a retry 2025-08-10 18:27:00 +10:00
Lach
ae2a3cffaf Increase default Ancient Gear scale to 1.5 2025-08-10 16:09:30 +10:00
Oni VelocitOni
c7b3a49c85 Merge branch 'ancient-gear' into 'master'
Ancient Gear (resolves #1599)

Closes #1599

See merge request kart-krew-dev/ring-racers-internal!2726
2025-08-10 00:43:23 +00:00
Lach
bbe231e994 Add Ancient Gear object type & unlock type 2025-08-10 01:51:34 +10:00
Lach
0e45149045 Fix objectplace thing scales 2025-08-10 01:21:50 +10:00
Oni VelocitOni
39cb84f06c Merge branch 'ta-decompat' into 'master'
Replay de-compatibility

See merge request kart-krew-dev/ring-racers-internal!2715
2025-08-09 04:12:29 +00:00
Oni VelocitOni
3d1a7c1684 Merge branch 'ballhog-buffs' into 'master'
Ballhog Buffs & Feature

See merge request kart-krew-dev/ring-racers-internal!2725
2025-08-09 04:12:18 +00:00
Oni VelocitOni
0bab971e70 Merge branch 'match-race-splits' into 'master'
Splits in Race gametypes

See merge request kart-krew-dev/ring-racers-internal!2724
2025-08-09 04:12:08 +00:00
Oni VelocitOni
217316787a Merge branch 'lost-time-protection' into 'master'
TA: Prevent reset during tally if time is a new best

See merge request kart-krew-dev/ring-racers-internal!2723
2025-08-09 03:06:46 +00: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
015e2f0930 TA: Prevent reset during tally if time is a new best 2025-08-07 21:59:42 -04:00
AJ Martinez
0918e83873 Merge branch 'ta-rebalance-gaiden' into 'master'
TA rebalance gaiden

See merge request kart-krew-dev/ring-racers-internal!2710
2025-08-08 01:34:11 +00:00
Antonio Martinez
fad24db244 Merge remote-tracking branch 'origin/master' into ta-rebalance-gaiden 2025-08-07 21:20:00 -04:00