Commit graph

28809 commits

Author SHA1 Message Date
toaster
830cfe76da Round Queue UI on Level Select
- Only works in Match Race and Online level selects
- Shows in-progress state on Pause and Cup Grid, but no direct influence available on those screens
- Z to queue current highlighted map
    - Pending until you press A, then sent to server
    - When done online, tries to send one at a time to avoid overloading connection
- C to clear
    - Removes one from pending first
    - If you're out of pending maps, prompts whether you want to clear server's queue
2025-06-01 00:25:20 +01:00
toaster
5bfbfccdae M_LevelSelectInit: Catch potentially invalid skin dereference for Hivolt message, just in case 2025-06-01 00:05:45 +01: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
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
Oni VelocitOni
565733224f Merge branch 'whip-thief-pt1' into 'master'
Whip thief Pt 1

See merge request kart-krew-dev/ring-racers-internal!2597
2025-05-30 01:08:32 +00:00
Oni VelocitOni
341cd5682f Merge branch 'puyo-margin' into 'master'
Margin Boost UI psychosis

Closes #1543

See merge request kart-krew-dev/ring-racers-internal!2596
2025-05-30 00:34:24 +00:00
Eidolon
b9f80f902b Allow drop target to be picked up by whipping
and a bit of cleanup
2025-05-29 20:14:16 -04:00
Ashnal
cdc49d755b Update K_TryPickMeUp with allowHostile boolean 2025-05-29 20:14:16 -04:00
Ashnal
136cb20cb6 Whip collects items 2025-05-29 20:13:47 -04:00
Oni VelocitOni
a9e3472e21 Merge branch 'allied-item-screen-edge' into 'master'
Don't draw screen edge arrows for pickmeups

See merge request kart-krew-dev/ring-racers-internal!2593
2025-05-29 23:37:48 +00:00
Oni VelocitOni
f29e6f0327 Merge branch 'snap-message-drawer' into 'master'
Snap MessageFeed

See merge request kart-krew-dev/ring-racers-internal!2594
2025-05-29 23:37:25 +00:00
Antonio Martinez
9c07bd3ca8 Margin Boost UI psychosis 2025-05-29 19:11:32 -04:00
Eidolon
610599e7d1 Don't try to open microphone when sound is disabled 2025-05-29 15:32:50 -05:00
Eidolon
55a8a53077 Turn on and off microphone explicitly
On most devices these days, there is a mandatory microphone indicator
when an input device is being used. Moreover, on macOS and some Linux
distros, the user will be prompted to grant permission to the game for
microphone access. To ensure we're playing nicely with these
expectations, instead of just leaving the device on at all times on
first use, close and reopen the device as sound input is needed.
2025-05-29 15:21:14 -05:00
Antonio Martinez
0aa4c3f472 WIP - Puyo-like margin icon stacking 2025-05-29 13:47:58 -04:00
Antonio Martinez
4bcf0e2924 Snap MessageFeed 2025-05-29 11:57:44 -04:00
Oni VelocitOni
fdd093ef92 Merge branch 'early-items-again' into 'master'
Fix early items being incorrectly visible when race start doesn't spincam

Closes #1541

See merge request kart-krew-dev/ring-racers-internal!2592
2025-05-28 21:32:40 +00:00
Oni VelocitOni
dd26c3c488 Merge branch 'team-assignment' into 'master'
Save team assignments in demo (DEMO BREAKER)

Closes #1525

See merge request kart-krew-dev/ring-racers-internal!2591
2025-05-28 21:32:34 +00:00
Antonio Martinez
5d4dc6e297 Don't draw screen edge arrows for pickmeups 2025-05-28 17:20:05 -04:00
Antonio Martinez
e6de2e73d8 I'M TIRED OF YOU 2025-05-28 15:30:25 -04:00
Antonio Martinez
e75ffd0707 Save team assignments in demo (DEMO BREAKER) 2025-05-28 15:20:06 -04:00
AJ Martinez
1de1fec92e Merge branch 'flamescale' into 'master'
Scale flame shield to player when ticking

Closes #1522

See merge request kart-krew-dev/ring-racers-internal!2587
2025-05-28 04:11:03 +00:00
AJ Martinez
715c1a83c8 Merge branch 'fix-#1412' into 'master'
Always update match stats even in PWRLV_DISABLED

Closes #1412

See merge request kart-krew-dev/ring-racers-internal!2586
2025-05-28 04:10:54 +00:00
AJ Martinez
4a6857814a Merge branch 'lightning-height-check' into 'master'
Height check Lightning Shield attack

Closes #1523

See merge request kart-krew-dev/ring-racers-internal!2588
2025-05-28 04:10:39 +00:00
AJ Martinez
9b09c7059d Merge branch 'fix-4p-accessibility' into 'master'
Fix 4P accessibility icons (close enough)

Closes #1484

See merge request kart-krew-dev/ring-racers-internal!2590
2025-05-28 04:10:36 +00:00
AJ Martinez
9009a5aef9 Merge branch 'early-item-fix' into 'master'
Fix inconsistent early item behavior

Closes #1533

See merge request kart-krew-dev/ring-racers-internal!2585
2025-05-28 04:10:34 +00:00
AJ Martinez
970d88d150 Merge branch 'replay-enemy-team' into 'master'
Allow viewing enemy team in replays

Closes #1524

See merge request kart-krew-dev/ring-racers-internal!2589
2025-05-28 04:10:19 +00:00
Antonio Martinez
045d561e4b Fix zero division in unusual teams situations 2025-05-27 23:52:26 -04:00
Antonio Martinez
7ea9945769 Cubic Lightning 2025-05-27 21:39:25 -04:00
Antonio Martinez
a333806da4 Fix 4P accessibility icons (close enough) 2025-05-27 21:27:55 -04:00
Antonio Martinez
ea7a7ea7e6 Allow viewing enemy team in replays 2025-05-27 20:54:45 -04:00
Antonio Martinez
628d9cd127 Height check Lightning Shield attack 2025-05-27 20:46:37 -04:00
Antonio Martinez
38e4fcf911 Fix lightning while I'm here 2025-05-27 16:25:33 -04:00
Antonio Martinez
2ba7310a10 EAT SHIT 2025-05-27 16:16:44 -04:00
Antonio Martinez
e0ec684539 Scale flame shield to player when ticking 2025-05-27 15:36:11 -04:00
Antonio Martinez
9dfdacb7c5 Always update match stats even in PWRLV_DISABLED 2025-05-27 15:00:32 -04:00
Antonio Martinez
0ae5ca3341 Fix weird inconsistent initialization of cangrabitems maybe???
I took a shower and I want to go to bed
2025-05-27 03:38:04 -04:00
Oni VelocitOni
da2a1dfd77 Merge branch 'improved-margin-display' into 'master'
Margin Boost refinements

See merge request kart-krew-dev/ring-racers-internal!2581
2025-05-27 04:05:34 +00:00
Oni VelocitOni
b51d3b3c8a Merge branch 'jartha/generic-bumpers' into 'master'
Generic bumper object functionality

See merge request kart-krew-dev/ring-racers-internal!2583
2025-05-27 04:04:19 +00:00
James R
465387c69e MT_SEALEDSTAR_BUMPER: use A_GenericBumper 2025-05-26 19:31:02 -07:00
James R
29234d8f20 Add A_GenericBumper, hardcoded generic version of some bumper object scripts 2025-05-26 19:31:02 -07:00
Oni VelocitOni
5c6e10d9c9 Merge branch 'tid-delete-waylaid' into 'master'
CallFunc_SetThingProperty: Get next mobj in TID chain at start of loop

See merge request kart-krew-dev/ring-racers-internal!2580
2025-05-27 01:01:31 +00:00
Eidolon
b056409f7b Merge branch 'jartha/fix-vector-copy-assign' into 'master'
srb2::Vector: fix copy assignment not clearing contents of vector

Closes #1506

See merge request kart-krew-dev/ring-racers-internal!2579
2025-05-26 19:51:04 -05:00
toaster
afab1eebd0 Drop time attack 1.0 records entirely on gamedata conversion
- We keep medals, but times are invalid due to the massive overhaul!
- To avoid double increment of minorversion, this will not fire on current internal, only 2.3 gamedatas
2025-05-26 21:33:01 +01:00
toaster
b4bb4db12b skinref_t: Don't dereference out-of-range
- Misjudged the boundary conditions as `numskins == MAXSKINS` is valid
- Internal version of public MR !113, credit Alu Folie for bringing attention to the area of error
2025-05-26 21:31:00 +01:00
toaster
e1cab3a62e Undo over-optimisation and don't drop the visited status of unloaded custom courses
Fixes everyone having to NoVisitNeeded their SP-intended stuff
2025-05-26 21:21:29 +01:00