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
Lach
bbe231e994
Add Ancient Gear object type & unlock type
2025-08-10 01:51:34 +10:00
VelocitOni
62e14fb2a3
Change some menu wording
...
"finish a perfect round" specifies above Gear 1, and Intense GP mentions top half instead of "4th" (because this changes in co-op)
2025-08-03 01:22:35 -04:00
toaster
f8aaa43f73
Reset *all* First Boot specific state in M_ClearSecrets, not M_ClearStats
...
Guarantees wiping gamedata will send you through goner again, since otherwise why are we wiping gonerlevel
Also fixes restarting Goner's audio
2025-07-24 20:03:47 +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
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
79e4af5b8e
oops I'm a dipshit
2025-05-24 21:34:46 -04:00
Antonio Martinez
1b308d0278
Perfect Round + SIGL Duel support
2025-05-24 21:26:35 -04:00
toaster
ecb4ffeeca
Add bonus pickups in conditions you couldn't grab Spray Cans before
...
- If you've gotten every Spray Can, or you're on a custom course...
- Only one of these spawns per map
- Correctly save and load these
- Statistics menu counts base-game bonuses
- If there are gaps in the list, or new Spray Cans are added later, these base-game bonuses are converted into the new Spray Cans
- New graphics required so far:
- SBONA0 to SBONP0 - 16-frame prerendered circling sprite animation
- GOTBON - 8x8 representation of the SBON object
2025-05-20 20:27:06 +01:00
toaster
3f9c0685eb
Move cache_spraycan on the mapheader_t struct to recorddata_t
...
Still in that struct, just in a more appropriate container
2025-05-20 20:18:11 +01:00
Ashnal
144e2be262
More renaming
2025-05-18 14:30:46 -04:00
toaster
beacbca72a
M_EmblemMapNum: Free medal string once no longer relevant
2025-02-19 15:46:06 +00:00
toaster
405c6cb3e2
M_GetConditionString, UC_EMBLEM: Prevent Medal ID out-of-bounds
2025-02-19 15:46:06 +00:00
Eidolon
a4d304a1f5
Update copyright years to 2025
2025-02-13 15:32:26 -06:00
AJ Martinez
d32ba6cf64
Vicious difficulty
2024-05-05 13:57:18 -07:00
AJ Martinez
1a8b4dc78f
Retheme difficulty modes
2024-05-05 20:56:40 +01:00
toaster
8790e20df7
PodiumCup condition: Don't say "Grade S or better"
...
No longer in unlocks.pk3, but fixed for future
2024-05-02 23:07:56 +01:00
toaster
2be1a50ae1
Allow Chao Keying large tiles if the only touching locked tiles are Big Challenges
...
Defuses the 12-long chain scenario in a relatively fair way
2024-05-01 00:03:38 +01:00
toaster
04214c05ec
Reduce code duplication in M_UpdateChallengeGridExtraData for adjacency rules
2024-05-01 00:03:26 +01: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
ff05516901
Don't show Super Emerald related condition text if you haven't unlocked the second row of cups yet
2024-04-15 14:52:16 +01:00
toaster
9d5860d38d
Also prevent Fury Bike chao key blastin ( resolves #1275 )
...
Fury Bike ID handled by #define now
2024-04-14 23:04:53 +00:00
toaster
c9651f92af
Grab a certain prize from a random Prison Egg
...
Extra word added because the newline situation sucks
2024-04-14 23:38:28 +01:00
toaster
6df31e96f0
M_BuildConditionString: Fix invalid conjunction behaviour
...
- Nothing except DescriptionOverride will prevent an `- OR ` being inserted
- Question marks for further secret types won't prevent alternate conditions from showing up
2024-04-14 21:33:45 +01:00
toaster
39d701359a
The "(Find other secrets to learn about this...)" text only happens if it's at the start of the challenge, otherwise it does "???" as before
...
Least need to go over and check every challenge description again
2024-04-14 21:16:32 +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
283f2188db
Merge branch 'clear-data-fixes' into 'master'
...
Erase Data screen now has responsibilities more properly divided
Closes #1204 and #1155
See merge request KartKrew/Kart!2263
2024-04-12 03:40:14 +00:00
AJ Martinez
cb7a579b16
Fury Bike
2024-04-11 17:43:59 -07: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
toaster
0c782767be
Add "then" condition string builder type
...
Better for some sentences
2024-04-10 17:24:45 +01:00
toaster
9383551cc3
Remove quotation marks from UC_UNLOCKABLE condition text
2024-04-10 17:20:45 +01:00
toaster
595c1ff9c8
BONUS ROUND --> GRAND PRIX
...
Also, slightly clearer phrasing for "Grab a certain prize"
2024-04-09 16:55:57 +01:00
toaster
4794440eea
FinishTime, FinishTimeExact, FinishTimeLeft conditions: Guarantee all Prison Eggs are broken before awarding
...
Fixes how running out of time activated the Death Egg's Eye challenge
Done this way to avoid extensive last minute unlocks.pk3 update
2024-04-08 23:11:12 +01:00
toaster
5b466527e8
Merge branch 'throw-more-dots' into 'master'
...
Add a bunch more statistics
See merge request KartKrew/Kart!1973
2024-04-06 22:08:30 +00:00
Eidolon
23e4df3c90
Add per-map time stats and TA/SPB time stats
2024-04-06 11:25:31 -05:00
Eidolon
3ebe235154
Add total netgame time stat
2024-04-06 11:25:31 -05:00
Eidolon
0cd5a662ce
Add statistic for time looking at statistics
2024-04-06 11:25:31 -05:00
Eidolon
19341b71a3
Add total menu time stat
2024-04-06 11:25:31 -05:00
Eidolon
a0d52ddacd
Add per-gametype time stats
2024-04-06 11:25:31 -05:00
toaster
3e8bb45f2a
Challenge Condition final hardcoded adjustments
...
- play 4 Prison Rounds --> clear 4 Prison Rounds
- draft -> tether
2024-04-05 20:27:57 +01:00
toaster
b35a05ad61
M_CountMedals: Don't count Platinums towards the overall counter, they're explicitly 101%
...
(This func isn't used by Challenges - M_GotEnoughMedals is, and that doesn't care about AUTOMEDAL_PLATINUM)
2024-04-05 00:38:58 +01:00
toaster
b8c67dcc9e
Copyright update: Recieved notice of legal name change
...
(which is formal speak for I got back in contact with an old friend :D )
2024-04-03 20:44:19 +01:00
toaster
d7f4cd2d8f
Copyright update for Viv Grannell specifically (the author of this commit)
2024-04-02 17:38:18 +01:00
James R.
96948258d2
Merge branch 'challenge-reskin' into 'master'
...
Halt skin-switching Challenge cheese (resolves #1231 )
Closes #1231
See merge request KartKrew/Kart!2206
2024-04-02 00:39:23 +00:00
toaster
3d5c0182fe
M_BuildConditionSetString: Show a more tantalising message for Challenges with forbidden descriptions
...
"(Find other secrets to learn about this...)" - this replaces "???"
2024-04-01 18:44:15 +01:00
toaster
b818a7d776
Forbid character-based unlocks if you switched your skin in a context where it didn't auto-spectate you (more robust stop for #1231 )
2024-04-01 18:03:00 +01:00
AJ Martinez
9d304846d5
Allow UCRP_FINISHGRADE to fire when skipping tally
2024-03-31 15:35:21 -07:00
James R
acbb7eb463
Add password checking system
...
Co-authored-by: toaster <rollerorbital@gmail.com>
2024-03-28 00:09:11 -07:00