Commit graph

108 commits

Author SHA1 Message Date
Antonio Martinez
ae0100ba05 Extended staffsync RNG/resync reporting 2025-09-27 23:09:52 -04:00
Antonio Martinez
3d16ecd7e9 Staffsync excludes many RNG classes 2025-09-27 20:38:42 -04:00
Antonio Martinez
667ad18339 Disable PR_ITEM_DEBRIS detections in staffsync 2025-09-26 23:35:31 -04:00
Eidolon
f2ab528062 Workaround g_teamplay assigning teams erroneously in demos
Fixes https://gitlab.com/kart-krew-dev/ring-racers/-/issues/210
2025-09-25 22:09:48 -05:00
Eidolon
0dc337c9a5 Fix lots of code for clang-cl compatibility 2025-09-17 17:24:32 -05:00
AJ Martinez
237b72ea3e Merge branch 'master' into 'more-flip-fixes'
# Conflicts:
#   src/g_demo.cpp
2025-09-17 02:57:14 +00:00
toaster
575690305d Fix writing followercolor in replays ( resolves ring-racers#94 )
Technically was always broken, but usually failed safe into duplicating slot 0's.
2025-09-17 00:30:21 +01:00
Ashnal
2832b6fb38 ghost compat 2025-09-15 20:52:41 -04:00
toaster
d2d0174003 K_FlipFromObject: ACTUALLY properly calculate flip
- Now matches P_SpawnMobjFromMobjUnscaled
- To my great annoyance, requires increment of DEMOVERSION
2025-09-15 20:34:52 +01:00
toaster
73c381750a Instead of trying to carve out an exception for the brief window of time after winning but before director begins, just remove the <x> input for starting demo title entry 2025-08-28 19:30:48 +01:00
toaster
ae21a8266d Disable Demo title entry inputs in GS_LEVEL freecam
Also disables <x> input when Director is enabled
2025-08-28 15:51:25 +01:00
Oni VelocitOni
1da803c736 Merge branch 'file-fixes' into 'master'
Filesearch fixes

See merge request kart-krew-dev/ring-racers-internal!2770
2025-08-26 20:32:21 +00:00
Antonio Martinez
a498ca732f Legacy Proration, force "Leader" splits for Class R 2025-08-26 00:51:52 -04:00
toaster
48261ae4b5 filesearch: Add "Priority folder" string parameter
If non-NULL, filesearch will begin in that subfolder of the desired searchpath, but can go back up to the root of the search later if not found in that location.

Primarily a small optimisation for checking the addons folder first
2025-08-25 20:14:37 +01:00
toaster
8d75727419 Fix writing followers into demos
Does not require a demoversion bump, was a plain mistake in write condition. Previously dependent on whether the memory of `player->follower` - a mobj_t reference - was nonzero, instead of the actual followerskin ID. We essentially got REALLY lucky that TA properly saved 'em currently so we don't have to do a ton of hex editing just to make them visible again
2025-08-23 21:47:46 +01:00
toaster
a52411b552 More gracefully amend Splits/Attackstart data on ghost load rather than splits load 2025-08-21 18:25:15 +01:00
toaster
be3c0faf7e More gracefully amend Splits/Attackstart data on ghost load rather than splits load 2025-08-21 18:25:03 +01:00
Eidolon
ea45def97b Add dynslope demoversion compat check 2025-08-20 18:54:06 -05:00
toaster
846042be93 Endianness fix for Splits
Discovered while reading over diff for `encouraging-splits`
2025-08-20 14:18:18 +01:00
Oni VelocitOni
5dc2957c1e Merge branch 'encouraging-splits' into 'master'
Add split modes: "Off", "Next", "Leader"

See merge request kart-krew-dev/ring-racers-internal!2740
2025-08-20 09:16:20 +00:00
Antonio Martinez
7b39fc4b7e "Staffsync" command to test staff ghost playback 2025-08-19 18:52:13 -04:00
Antonio Martinez
8583613578 Add split modes: "Off", "Next", "Leader" 2025-08-18 20:43:29 -04: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
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
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
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
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
Antonio Martinez
385257af73 Splits in Race gametypes 2025-08-08 20:09:14 -04:00
Antonio Martinez
fad24db244 Merge remote-tracking branch 'origin/master' into ta-rebalance-gaiden 2025-08-07 21:20:00 -04:00
Antonio Martinez
848c3d4f7a Read splits in G_DoPlayDemoEx (crash fix) 2025-08-07 04:53:24 -04:00
Antonio Martinez
024ae0f8ab More splits 2025-08-06 22:09:06 -04:00
Antonio Martinez
a11acfaf0e WIP: splits 2025-08-06 19:51:36 -04:00
Antonio Martinez
bf8511c495 Review fixup 2025-08-06 16:48:20 -04:00
Antonio Martinez
49c5318261 Don't set demo attack timing in playback 2025-08-05 21:16:12 -04:00
Antonio Martinez
fec835a544 Remove DXD_START, add demo header info for attack starts 2025-08-04 04:38:17 -04:00
Antonio Martinez
528eaf0e64 I would really like to believe that this just makes foes work in demos 2025-08-04 04:23:37 -04:00
toaster
c389922f69 Remove legacy non-json Standings handling 2025-08-03 20:31:04 +01:00
toaster
841fc2472c Remove all replay backwards compat
- Cleans up codebase in some high density regions
- Prevents crashing on the title screen due to old demos being played before we replace staffghosts
- Guarantees nothing we don't want slips in
2025-08-01 16:39:13 +01:00
Antonio Martinez
cd439be74c Bot difficulty and grading tweaks 2025-06-07 17:49:11 -04: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
9e0510d674 Improve Demo end handing
- Demos/Ghosts that end before ticking once are now correctly ignored. (Resolves KartKrew/RingRacers#168)
    - There was code for discovering it on read! It was just placed slightly too early, probably due to the conversion for netreplays! I'm very mad!
- As a preventative measure, demos *recorded* before ticking will simply not save in the first place.
    - This was also a frustratingly easy fix for the amount of headache it's caused us.
- Reduced the amount of copypasted boilerplate by simplifying the places where DEMOMARKER can be written (and therefore read).
    - Previously, like half the write functions tried to guess their own output size and potentially end the demo at any point.
    - At best, this will grant us a few tics of reprireve for large netgames and MAYBE a handful of seconds for time attack, The Mode In Which The Aim Is To Go Fast.
    - Instead, double the size of the deadspace buffer extension and just check to see if we've crossed into that territory.
2025-06-01 00:02:19 +01:00
Antonio Martinez
e75ffd0707 Save team assignments in demo (DEMO BREAKER) 2025-05-28 15:20:06 -04:00
AJ Martinez
90c28dc2d9 Spindash button, Strict Fastfall profile option 2025-05-05 20:36:00 -04:00
Eidolon
bd7646346b Use new containers and json 2025-03-16 18:45:11 -05:00
Eidolon
cb7f437e60 Merge public master 2025-02-13 15:48:11 -06:00