Commit graph

140 commits

Author SHA1 Message Date
Eidolon
0dc337c9a5 Fix lots of code for clang-cl compatibility 2025-09-17 17:24:32 -05:00
Eidolon
f970151789 Merge branch 'rypo_ta_command_fixup' into 'master'
Improve a couple of debug commands

See merge request kart-krew-dev/ring-racers!17
2025-09-17 13:29:48 -05:00
RypoFalem
ddee1675a1 Fix "platinums" command time differences
They never accounted for differences above 1 minute.
2025-09-16 22:41:51 -05:00
RypoFalem
67b72a1c44 Print recipt after using dumprrautomedaltimes
Give the user some feedback and let them know where the csv is located.
2025-09-16 22:19:42 -05:00
Oni VelocitOni
b46ae2ffca Merge branch 'ta-comms' into 'master'
Remap TA retry from Z (dialogue) back to Y (bail)

See merge request kart-krew-dev/ring-racers-internal!2815
2025-09-14 22:03:38 +00:00
Antonio Martinez
9d3ec02ab9 Don't touch demo ticcmds just in case 2025-09-13 02:59:05 -04:00
Antonio Martinez
4723a17bca TA start weirdness mk69 2025-09-13 02:57:11 -04:00
toaster
ca57c5e597 Remap TA retry from Z (dialogue) back to Y (bail)
Fixes dialogue regression in TA
2025-09-12 17:35:08 +01:00
Gunla
50ab7c7489
Merge branch 'platinum-audit' into 'master'
"platinums" command

See merge request kart-krew-dev/ring-racers-internal!2798
2025-09-08 01:16:48 +00:00
toaster
d3382001b1 Fix RVFXANIM not updating for flats at runtime 2025-09-07 18:12:55 +01:00
Antonio Martinez
fcd9f5cfaf Track duplicates 2025-09-03 15:17:37 -04:00
toaster
4d19faf600 Fix RVFXANIM
- P_InitPicAnims: Parse RVFXANIM *before* ANIMDEFS in same archive
- P_ParseANIMDEFSLump: Account for comment and blank lines so not repeatedly re-evaluating the same line
2025-09-02 17:19:29 +01:00
Antonio Martinez
25417e96eb Print all ghosts for any map along with their gaps 2025-09-02 06:31:10 -04:00
Antonio Martinez
d4cbcab1cb Platinum breakdown by author 2025-09-02 04:05:44 -04:00
Antonio Martinez
75717e8f65 Audit platinums 2025-09-02 04:05:44 -04:00
Eidolon
29f963c685 Merge public master 2025-09-01 14:19:20 -05:00
Freaky Mutant Man
acc6c0b52f Add alternate ANIMDEF lump, RVFXANIM, for altering texture animation speed when reducevfx is on. 2025-09-01 19:03:10 +00:00
Antonio Martinez
0a94c2ac83 Remove debug print 2025-08-25 16:24:16 -04:00
Antonio Martinez
d67bba9255 Fix SPB Attack and Class R attack replays 2025-08-25 15:53:11 -04:00
Oni VelocitOni
f8f4d6cfd6 Merge branch 'challenges-bonnus' into 'master'
Challenges Bonnus

See merge request kart-krew-dev/ring-racers-internal!2738
2025-08-19 19:39:29 +00:00
Antonio Martinez
df17ba38b9 Take snapshotmaps on leveltime 5 2025-08-18 20:00:15 +01:00
Eidolon
8cb962ee19 Add dumprrautomedaltimes console command 2025-08-17 17:47:30 -05:00
toaster
2f6d7230f0 Dumb post alert: Ease off the horn
If we're bringing the spice we have to bring the whole pepper
2025-08-17 13:06:02 +01: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
Lach
bbe231e994 Add Ancient Gear object type & unlock type 2025-08-10 01:51:34 +10:00
Antonio Martinez
015e2f0930 TA: Prevent reset during tally if time is a new best 2025-08-07 21:59:42 -04:00
toaster
998823db32 Fix "_Profile" relevantskin option
- Gets closest statted character if yours is not yet unlocked
- Accounts for default skin color (previously was mildly broken in this case)
2025-07-24 19:29:51 +01:00
toaster
757c40844b Add "_Profile" relevant skin option
Uses profile skin/color for Tutorial courses
2025-07-23 19:27:04 +01:00
Eidolon
b7aa8c2464 Flush 2D on level memory purge 2025-07-15 16:42:20 -05:00
Ashnal
f7c9f5dfaf Rebase whoopsies fixups 2025-06-23 18:07:59 -04:00
Antonio Martinez
4af7ab2555 Lower Duel HUD, global option to disable/enable Duel 2025-06-06 21:32:37 -04:00
James R
d457a0b581 Replays: replace slashes in branch name with hyphen 2025-06-03 16:15:34 -07:00
toaster
57cdb4fcb5 Time Attack respawn button: Specify hold behaviour
Now that TA wipes are their intended length, holding Respawn during Time Attack for more than a single frame repeatedly restarts the run. This is not ideal, and frankly wasteful of CPU. Here is the specified replacement for this case:
- Holding gc_respawn will hold on a black(/white) screen before mapload.
    - Allows for taking a conscious breather (or opportunity to curse) in the middle of long Time Attack sessions.
- Ticcmdbuilder will not interpret gc_respawn into BT_ constants in Time Attack contexts at all.
    - Fixes the occasionally visible E-Brake when coming out of this breather state.
2025-06-01 00:05:45 +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
860b888460 P_FreeLevelState
A chunk of P_LoadLevel, extracted.
Calling it in D_ClearState should clear up some of the straggling pointers that might cause Laz' reported issue.
With any luck, it should also significantly reduce the amount of memory the menu uses.
2025-06-01 00:02:19 +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
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
SteelT
b98b4dda5f Add CameraHeight level header option for forcing the player's camera to be at a certain height.
CamHeight can also be used as a shorter alternative to it.
2025-05-17 22:30:33 -04:00
Eidolon
b45f9a8ebf Merge public master 2025-04-25 10:37:43 -05:00
JugadorXEI
68a1271ab0 Fix loop desyncs (by making loop end point sorting consistent) 2025-04-22 19:23:50 +00:00
Eidolon
d3c39907f7 Add md5expected to W_InitFile
Optional parameter that specifies the expected md5sum as a hex character
string.
2025-04-08 09:34:23 -05:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
820fa9b647 Allow GL-specific memoized map properties in all comp modes 2025-03-12 22:16:10 -05:00
Eidolon
e4fc3cc5c2 Fix conditionals on rendermode to allow for more modes 2025-03-12 21:50:37 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00
Eidolon
a4d304a1f5 Update copyright years to 2025 2025-02-13 15:32:26 -06:00
Eidolon
1a8467fdaf Merge public master 2025-02-12 19:02:38 -06:00