Commit graph

2163 commits

Author SHA1 Message Date
JugadorXEI
1e2e833d80 Bot library for Lua (botvars getter/setter, bot functions) 2025-08-22 01:24:13 +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
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
toaster
1db8e810df G_SetGameModified: silent parameter is now unused, please void for ERRORMODE 2024-05-21 00:35:57 +01:00
katsy
348ad7c1f0 Remove leftover Record Attack lockout warnings 2024-05-07 12:15:10 -05:00
Gunla
97f3475ca4 Merge branch 'correctly-defer-encore' into 'master'
G_GetNextMap: More ironclad behaviour for encore update deferral

See merge request KartKrew/Kart!2334
2024-05-05 22:22:29 +00:00
Gunla
254cdc795f Merge branch 'claw-determination' into 'master'
UFO determination

See merge request KartKrew/Kart!2355
2024-05-05 22:14:03 +00:00
toaster
2dc8ce330a Review
- Update SAV_VERSIONMINOR so 2.0/2.1 cup backup files won't load
- Move specialDamage to grandprixinfo_t (from rank_t, per Sal review)
2024-05-05 20:36:43 +01:00
Ashnal
71cc9c0800 Auto-Ring Accessibility Option
Lacking animation at this commit
2024-05-05 01:18:22 -07:00
AJ Martinez
6867fcfba3 Race starting rings 5->10 2024-05-02 20:43:10 -07:00
AJ Martinez
3c68ab7674 Improved spindash + ebrake 2024-05-01 20:35:49 -07:00
toaster
ceae24f239 G_GetNextMap: More ironclad behaviour for encore update deferral
Resolves CallieMacN's bug
2024-05-01 17:01:59 +01:00
Sally Coolatta
b70e72fc75 Higher bot level decrease on retry 2024-04-27 20:59:30 -04:00
toaster
a9ac7e64c6 Permit entering the tutorial challenge multiple times per savedata 2024-04-26 14:59:48 +01:00
James R
d366e9bb11 Tutorial Skip: use profile character, color and follower 2024-04-25 17:25:06 -07:00
Sally Coolatta
f160a99ea3 Update unlocks immediately after tutorialdone 2024-04-25 17:04:45 -04:00
Sally Coolatta
2c5caf582b "TutorialDone" unlockable condition
Replace all instances of `MapBeaten RR_SunbeamParadiseSprings` with `TutorialDone`, for the new early exits to work.
2024-04-25 15:18:47 -04:00
toaster
b654533bf6 Don't add rings to total in GPEVENT_SPECIAL 2024-04-15 15:56:30 +01:00
toaster
2caa5ff018 Dedicated server -spoilers startup parameter
Servers should get enough free for a healthy launch ecosystem, but not everything.
We'll give the relevant password out after, like, the first week probably? Please be patient, commit-diver
2024-04-12 14:17:33 +01:00
Oni
a7951fc41c Merge branch 'furybike' into 'master'
Fury Bike

See merge request KartKrew/Kart!2273
2024-04-12 03:41:24 +00:00
Oni
47b44086e9 Merge branch 'show-lap-time' into 'master'
Show last lap time on HUD

See merge request KartKrew/Kart!2267
2024-04-12 03:40:38 +00:00
AJ Martinez
cb7a579b16 Fury Bike 2024-04-11 17:43:59 -07:00
Sally Coolatta
f1f7edbe9a Show last lap time on HUD
Inspired by RoyKirbs' Joypolis journey
2024-04-11 03:05:11 -04:00
toaster
a1ed3f8b23 "Clear GP and Record Data" has handed off some of its respnsibilities
- Map visitation flags (used for level select access) are now cleared by using "Clear Challenges Data" instead
    - Custom courses will still have their data completely wiped here because it's the case most likely to mean "I want to remove everything", and because I don't want to pick through all the possible places to nuke 'em
- Skin stats (and Eidolon's map stats) are now cleared by using "Clear Statistics Data" instead
2024-04-10 20:22:29 +01:00
Sal
5cec579f50 Merge branch 'cup-preview-final' into 'master'
Show Prison Break in GP cup preview

See merge request KartKrew/Kart!2251
2024-04-10 00:57:21 +00:00
toaster
1034dd7ec9 Grand Prix course preview adjustment: Show Prison Break stages too, just like on Challenges Board preview
- All gametypes will be shown in the drawer, as opposed to just Race
- However, don't attempt to add the preview pic for CUPCACHE_SPECIAL (the Sealed Star)
2024-04-09 17:47:30 +01:00
James R
a18cfeb58d Init evaluation screen at start of credits, to circumvent clobbered grandprixinfo
- Credits demos will erase grandprixinfo
- Call F_InitGameEvaluation (new function) at the
  beginning of the credits to cache the needed data from
  grandprixinfo
- Fixes the evaluation screen not showing up for GP
  credits
2024-04-08 22:06:58 -07:00
Eidolon
3348c571b1 Reset demobuf even when not saving a demo 2024-04-08 19:26:02 -05:00
James R
44ea14104e Add G_GametypeAllowsRetrying, split away from G_GametypeUsesLives
- Cases for lives specifically and not retrying use
  G_GametypeUsesLives
  - Such as HUD elements and GAME OVER

- Cases for retrying and losing lives use
  G_GametypeAllowsRetrying
  - Such as GP bonus rounds
2024-04-06 22:19:34 -07:00
Sal
1ff321d375 Merge branch 'retry-end-demo' into 'master'
Simpler solution to #1225: If a retry flag occurs in a demo, stop playback immediately!

See merge request KartKrew/Kart!2230
2024-04-06 23:27:08 +00:00
toaster
d618802abc Additional hack for Sealed Star game over: In demo.playback, do a retry flag anyways, just to guarantee it ends
Also guarantee it uses demo.netgame status where relevant
2024-04-06 23:57:25 +01:00
Eidolon
a0d52ddacd Add per-gametype time stats 2024-04-06 11:25:31 -05:00
toaster
6a07bca807 Minimal set of calls to dump you back to the EggTV menu as soon as possible
My patience is thin, let's just work around the crash as tightly as possible
2024-04-05 21:59:20 +01: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
0427f7f3ff Don't show uncollected Platinum medals
You'll see the Platinum time to reach as a guiding star when Time Attacking the specific course, but with no accompanying empty medal icon.

Also
- fixes an x coordinate issue for higher medal quantity on the version that draws under the timestamp
- cache SECRET_ENCORE and SECRET_SPBATTACK availability in the statistics drawer too
2024-04-05 00:45:31 +01:00
toaster
c7503a492d Simpler solution to #1225: If a retry flag occurs in a demo, stop playback immediately! 2024-04-04 21:37:17 +01:00
toaster
4f37a3f183 G_PlayerReborn: Clear roundcondition information on becoming a spectator (should resolve #1231) 2024-04-01 17:39:25 +01:00
Oni
8089cbd3a7 Merge branch 'sealed-acs-splitscreen' into 'master'
Sealed ACS Splitscreen (resolves #1209)

Closes #1209

See merge request KartKrew/Kart!2190
2024-03-31 05:54:16 +00:00
toaster
b33c65e118 Rings should ALWAYS be reset to map start's value on true death
Plugs a game design oversight that thankfully was completely sidestepped by all but one Attack replay
Replaces the reset that happened on lightsnake at -20.
2024-03-30 20:52:28 +00:00
toaster
e9205e19d6 ACS_RunPlayerEnterScript: If betweenmaps, defer until P_PostLoadLevel
Guarantees that the ENTER script actually consistently runs, since previously it was happening before ACS scope invalidation
2024-03-30 15:56:44 +00:00
Sally Coolatta
af6340741e Add speed to gametype
Set a specific gamespeed per gametype. KARTSPEED_AUTO for it to be decided by game settings.

Wanted this for a while, but also it makes game speed display logic for DRP very straightforward.
2024-03-22 16:58:36 -04:00
toaster
1c971660a9 Rework intro skipping
- Pressing/holding any input will now skip only ONE screen of the Intro, like a REAL VIDEOGAME
- Allow you to skip before the end of INTROSCENE_DISCLAIMER, but only once the text has been solid for half a second
- Fix regression re exiting title demos after using -skipintro command line parameter
    - intro_scenenum was stuck at 0, so the game was softlocked!
2024-03-19 22:03:09 +00:00
James R
0ce93b2d96 Add g_fast_forward_clock_stop, means to end g_fast_forward early if too much real world time is taken 2024-03-18 02:42:22 -07:00
James R
7abe285f84 Refactor: replace references to cv_timescale with I_GetTimeScale 2024-03-18 02:42:21 -07:00
James R
326e560329 Attract: fix attract demos end handling
Fixes two bugs:

- Attract mode carrying over to gameplay if an attract
  demo is allowed to finish without interrupting it
- Credits ending after the first replay ends
2024-03-18 02:42:21 -07:00
James R
93667eebb0 GP: do not apply continue logic twice if losing player waits out the tally
- If you lost and waited for TRY AGAIN to finish and
  automatically restart the map (did not touch Retry in the
  pause menu)
- Doing this would add TWO continues to your rank
  calculation and nerf the bot difficulty twice
- Did not affect lives at all
2024-03-14 02:16:57 -07:00
James R
59fb8aad8c Replays: end level music at tally of currently viewed player
- This is symmetrical with splitscreen behavior
- One edge case: if you switch away from the player after
  the level music stops but before the intermission music
  starts, then the silence will continue until you view
  another tally that reaches the intermission music
  - I think the benefit of doing the proper tally music at
    all outweighs this edge case
2024-03-12 06:42:24 -07:00
James R
d3bbae209f Preserve lap cheat timer between player deaths
Just being symmetrical with how safelap is preserved.
2024-03-10 17:08:09 -07:00
James R
fb6ebc6e6f Fix lap cheat prevention failing when player dies
- Cross a finish line so your lap goes forward and your
  waypoints update ahead of the line
- Turn around to face the opposite direction
- Do this on a map where the lap cheat timer activates
  when you turn around
- Drive a little way backward and make sure the lap cheat
  timer keeps going
- Activate Ring Shooter and start lightsnaking
- Immediately spectate and then rejoin
- The lightsnake would send you ahead of the finish line
  and give you an extra lap
2024-03-10 17:02:56 -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