Commit graph

40 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
Ashnal
7410978882 Cleanup
No functionality changes
2025-06-22 23:36:21 -04:00
Ashnal
2a36838b54 grading refinements attempt 2025-06-12 00:09:44 -04:00
Antonio Martinez
7c1df623ae Podium: display continues on special, transparent grade icon below continues 2025-06-10 13:29:55 -04:00
Antonio Martinez
2459affaa3 GP refinements 2025-06-07 15:21:58 -04:00
Antonio Martinez
2f73cddf50 Show difficulty on GP results screen 2025-05-24 15:31:50 -04:00
Ashnal
d4a822c088 remove exp totals from lines
adjust crystal coloring
2025-05-18 14:30:46 -04:00
Ashnal
ac02ecda3d podium screen polish
adjusts bottom right drawer positioning
colorizes exp crystals like the hud
2025-05-18 14:30:46 -04:00
Ashnal
d65fe8f6bf Removes score from,gp grading
fixes podium warp data generation
more minor renames
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
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Sally Coolatta
99fc0c13cd Draw Chaos Emerald again for Sealed Star 2024-04-15 15:25:15 +01:00
Oni
3154d8ccf9 Merge branch 'emerald-disambig' into 'master'
Make default Emerald pickup in extra Sealed Star a fake SA2 yellow-gold Chaos Emerald

See merge request KartKrew/Kart!2268
2024-04-12 03:40:49 +00:00
toaster
9252ea186e Merge branch 'no-game-over-podium-results' into 'master'
Splitscreen GP: do not display stats for rounds by which that player GAME OVERed

Closes #1262

See merge request KartKrew/Kart!2262
2024-04-11 19:53:38 +00:00
toaster
536840485b The default Emerald pickup in a Sealed Star is a fake SA2 yellow-gold Chaos Emerald
Minimal effort disambiguation for a Sealed Star's Page 2/3 rematch from its Page 1 canon appearance, without also repeating the green Chaos Emerald.
2024-04-11 20:11:25 +01:00
James R.
da82b4c9c7 Merge branch 'widescreen-a' into 'master'
Widescreen support for Y_IntermissionButton

See merge request KartKrew/Kart!2256
2024-04-11 03:06:43 +00:00
James R
722e443c2d Splitscreen GP: do not display stats for rounds by which that player GAME OVERed 2024-04-10 06:10:02 -07:00
toaster
86b9d1a7c2 Widescreen support for Y_IntermissionButton 2024-04-10 00:51:09 +01:00
James R
ca9fbed974 Podium: fix time for failed Sealed Star
- Displays as --'--"--
2024-04-08 23:21:17 -07:00
toaster
f06e6e8d26 Podium HUD: Use player's skin for minimap rank icon, not the overall best skin (Resolves #1246) 2024-04-06 23:14:10 +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
6e46f97847 As promised, Encore (alt)music
- `EncoreMusic` on mapheader
    - Supports up to 3 alt musics, as with every other type
- Do not vape/nightcoreify if provided
- To avoid complicating the Alt Music logic too much, uses "side B" of the same Prison Egg CD
    - That is to say, if there are 2 encore tracks and 3 normal tracks, the second Encore track will only play if you've gotten the CD associated with the second normal track

I haven't actually tested it *with* any Encore music, but I've triplechecked literally everywhere to make sure it didn't break standard play
2024-03-10 21:18:15 +00:00
AJ Martinez
a14080cb40 Podium S Rank sound 2024-03-05 18:41:39 -07:00
toaster
e8523b69f0 Sealed Star re-ordering (resolves #606)
- If emerald not yet collected on that cup, pick the first uncollected emerald, then get the cup's CUPCACHE_SPECIAL with that ID to pick the stage
- Already collected emeralds retain their swappage across gamedata saves
- Returns to normal order if you get all 7 OR Special Mode is unlocked (chao key? debug? password in modded games? sky's the limit)
- Pops up a Message from the Stars telling you the gems have been returned to their natural place
- Add-ons will always use their dedicated sealed star, since it's unordered material

If it weren't so last minute I could have a better solution for GP Backups, but right now what I've gone for is it always trusts whatever G_GPCupIntoRoundQueue does AS LONG AS THE COURSE ISN'T THE ONE YOU'RE RELOADING INTO. If it IS, then it checks to see if it's exactly what's been saved, and complains (with the generic error message, unfortunately) if it isn't.
2024-03-03 00:24:31 +00:00
Sally Coolatta
0ea4f8c98a Add fill backing to podium 2024-02-22 10:58:51 -05:00
Sally Coolatta
b4a8249b68 Display grading points on podium 2024-02-22 10:03:57 -05:00
Sal
3958c15dfe New Credits 2024-01-28 23:31:30 +00:00
toaster
64922460ac Handle Podium unlocks during mapload, not when finishing the ceremony
Solves mid-podium crashes not granting second page material
2023-12-23 22:12:00 +00:00
James R
5d0c062785 Add g_reloadingMap, true if the map is restarted/retried 2023-11-27 06:28:29 -08:00
James R
d3f9c6e826 Remove mapmusflags 2023-11-27 05:38:20 -08:00
toaster
bf0d0f39bc Podium: Fix Y_DrawIntermissionButton slidein 2023-11-19 18:28:47 +00:00
toaster
b09a9b40c4 Account for Hidden Palace-like replacement levels in the round queue and ranking systems
- When a nextmapoverride is in play, do not insert the just-played map into the GP Rank
- Put all the behaviour that determines which Round icon to show in exactly one places

Also, fix a bug where it would show the skin realname for a spectating player's tally instead of the ROUND text.
2023-11-19 18:01:02 +00:00
toaster
dc4e14d9d9 G_DoCompleted: Use gamedata->deferredsave to reduce the number of intermediate gamedata saves 2023-11-17 16:58:38 +00:00
toaster
388b14e956 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into will-it-blend
# Conflicts:
#	src/k_podium.c
2023-10-29 12:36:30 +00:00
Sal
cecd81b4aa Podium rank screen polished 2023-10-29 06:04:22 +00:00