Commit graph

23081 commits

Author SHA1 Message Date
toaster
efa849c8cc Y_PlayerStandingsDrawer: Make player index referencing in loop cleaner 2023-05-11 16:46:03 +01:00
toaster
c712cd7452 Prepare value string for intermission screen once, rather than every rendered frame
("RETIRED.", "0:24:13", "27", "1004", "----", etc)
2023-05-11 16:37:06 +01:00
toaster
77aa563a74 Depointerify several properties on y_data
- character is written directly
- color is written directly
- no more duplication of the player_names pointer
2023-05-11 16:36:03 +01:00
toaster
d581389c9c Y_PlayerStandingsDrawer: All local splitscreen players are now highlighted on the results screen
- Uses function pointers to highlight display players instead in demo playback
- Was previously doing this to avoid all players being highlighted in local splitscreen, but this is now relevant there too thanks to bots
2023-05-11 14:44:27 +01:00
toaster
0757d39930 Slight cleanup after extraction
Fixes Lua being able to hide the timer in the corner
2023-05-11 14:32:41 +01:00
toaster
7ddbd23f98 Y_PlayerStandingsDrawer
*Also* reduces how absolutely monolithic Y_IntermissionDrawer is.
2023-05-11 14:24:49 +01:00
toaster
0a7e8d9bf3 Y_RoundQueueDrawer
Reduces how absolutely monolithic Y_IntermissionDrawer is.
2023-05-11 14:08:09 +01:00
James R
21703c1504 Orbinaut shield: fix dropped state
- Fixes dropped orbinauts driving in circles
- Fixes dropped orbinauts not stopping once land on ground
2023-05-10 21:53:37 -07:00
Sally Coolatta
a8af5b7616 Improve general bot handling
- Their waypoint radius gets thinner quicker
- Waypoint distance is scaled with each ones' floor slope, instead of done once at the end of the prediction.
- Prediction is pulled back further when it goes through a wall
- Prediction starts earlier and goes less far
- Bots will brake at shallower angles (allows them to brake-turn more often)
- K_AddDodgeObject and K_AddAttackObject now adjust based on the radius of the object
- Fixed K_AddDodgeObject adding to the goto objects instead of avoid objects
- Optimized blockmap search size for K_FindObjectsForNudging
- Current waypoint is no longer cleared each frame
2023-05-10 22:25:24 -04:00
Sally Coolatta
7d4720b1a6 Fix bot rubberband being different per map scale 2023-05-10 20:28:42 -04:00
Sally Coolatta
a2c57d7066 Fix bot extra friction on ice TERRAIN 2023-05-10 20:27:11 -04:00
Sally Coolatta
d129422382 Bots can now see TERRAIN-based offroad / damage 2023-05-10 19:55:41 -04:00
Sally Coolatta
3450a0126f Bot traversal wall detection improved, and waypoints do it too 2023-05-10 19:52:40 -04:00
Sally Coolatta
b72b8f354e lowfloor/highceiling respects FOFs properly
Found while working on bot changes to respect step-up, lowfloor would occasionally be the floor below instead of the FOF. Also code cleanup to remove redundant / unused stuff.
2023-05-10 19:48:08 -04:00
toaster
e3c3a8c80a Sliding of the progression bar
- On the last non-rank-restricted round in the queue, if the final entry is visible (you've been to it before OR you're just about to go to it for the first time), slide over before the bar fills up.
- Adds one second to the timer to give it extra breathing room
2023-05-10 20:40:01 +01:00
toaster
174b58c043 Pixel perfect progression bar filling
- Final line now ALSO uses ClipRect
- Reduce existing overreliance on ClipRect. A little overdraw is fine to prevent gaps
2023-05-10 14:42:59 +01:00
toaster
d0daa09637 Interpolation of the Player Pin when moving to new round
- Known hack: A one-frame offset if R_UsingFrameInterpolation() returns true
    - This permits the Sealed Star rank progression bar fill to reach the end.
    - It also allows us to match possible sound cue events between interp and non-interp frames.
2023-05-10 14:42:59 +01:00
toaster
cc4dbe48cf Adjust timing of player pin hop impact 2023-05-10 14:42:58 +01:00
toaster
db5734b64d On second thoughts, do not make the one-round roundqueue start in the upward position
This is so the two-round roundqueue condition where the second round is a Sealed Star will not give the game away early, or be discontinuous
2023-05-10 14:42:58 +01:00
toaster
b4a1b7daf3 Fix horizontal page scroll for cases where player results are centered 2023-05-10 14:42:58 +01:00
toaster
f42192f21d data.mainplayer
Instead of using whiteplayer (which isn't handled in splitscreen)
- Get the highest-ranked non-spectator player who's local (or display if demo.playback)
- Show an alternate arrow (currently not in assets) if
    - no player was found
    - OR the player becomes a spectator
    - OR has otherwise invalid properties
- Use SKINCOLOR_WHITE (and its invcolor) for associated colormaps in this case
2023-05-10 14:42:58 +01:00
toaster
9788df79e7 Hide song credit in artificial fade on menu-caused playsim start
Technically unrelated but it was annoying me, and since I modified songcredit here I can attach it as a second bullet point
2023-05-10 14:42:58 +01:00
toaster
d7e0df8bd8 Change y coordinate of Song Credit on intermission screen to be along bottom 2023-05-10 14:42:58 +01:00
toaster
0c63b76364 Funny little parabola for player pin on progression bar when progressing to new round 2023-05-10 14:42:57 +01:00
toaster
5a20a4756f Judder on incomplete fill for rank-based progression to Sealed Star
- Cleaner handling of player arrow position through addition rather than overwrite
- Cleaner inputs to FixedDiv
2023-05-10 14:42:57 +01:00
toaster
9fca550ab6 Line meter fill animation for grade at the end of the race rounds in GP
TODO:
- Interpolation
- Sounds
2023-05-10 14:42:57 +01:00
toaster
6aea8859fe G_MapIntoRoundQueue: Fix infinite loop if Cup has more bonus stages than regular stages 2023-05-10 14:42:57 +01:00
toaster
9352b3ef07 Make the one-round case of the roundqueue more visually interesting 2023-05-10 14:42:57 +01:00
toaster
679e901e5f Fix not having a background ramp upwards when the first entry in the round queue is on the "upper level" of the zigzag 2023-05-10 14:42:57 +01:00
toaster
b63246ccaf Fix erroneous case if there wasn't a special stage in the cup but gamedata->everseenspecial was true 2023-05-10 14:42:57 +01:00
toaster
1ed022d697 K_CeremonyDrawer: Adjust "EMERALD" option in case we don't come back to this later
- Show as "???" if you've never been in a Special round before
- Show as "PRIZE" if the cup doesn't use an Emerald
2023-05-10 14:42:56 +01:00
toaster
4cb639307c Roundqueue rank-restricted entry special case visual
- Show if you've ever visited a Special Stage
- Show if you're on the final non-Special Stage cup round and you're on pace to enter
- A horizontal line to the Prize option, which has its own unique bump around it.
    - Frustratingly has to be done inside the loop, due to overlap and order of operation issues.
2023-05-10 14:42:56 +01:00
toaster
a333b265b4 Clean up material that is no longer necessary to keep around 2023-05-10 14:42:56 +01:00
toaster
0d9f8076f8 Re-add Auto gamespeed scramble text (temporary height) 2023-05-10 14:42:56 +01:00
toaster
f4f52ede32 New consistent between-round countdowns using SmallNums
- Intermission
    - Unlike before, shows in all contexts, not just netgame/netreplay
- Voting
    - Replaces currently extant counter
2023-05-10 14:42:56 +01:00
toaster
84a2a94b28 Reimplement bottom progression bar
- Actually accomodates variable-length cups/roundqueues
- Uses player skin and color for position indicator instead of iterating through results
TODO: Make the Sealed Star entry a special case
2023-05-10 14:42:56 +01:00
toaster
208f7d3b81 Improve header text handling
- Text on the header
    - If they won, show [skin realname] GOT THROUGH ROUND
        - This branch was showing this previously but inexplicably only had the skin realname when in GP
    - If they retired, show NO CONTEST...
    - Else, show spectator non-participation text
        - if GT_VERSUS, show Boss name
        - if battleprisons, "PRISON BREAK"
        - else, "[gametype name] STAGE"
            - Matches S1/S2 "SPECIAL STAGE" non-completion text
- Scrolls with the page
    - Second page text always reads "TOTAL RANKINGS"
2023-05-10 14:42:55 +01:00
toaster
4ffb5f2e10 Improvements to background handling
- Don't draw Lua HUD hook behind the background
- Flip background in Encore mode
- Only animate scrolling elements when not paused or P_AutoPause
- Don't clobber the (TC_DEFAULT, SKINCOLOR_YELLOW) cache, instead use (TC_RAINBOW, SKINCOLOR_INTERMISSION) directly
- Clearer variable name for background colormap (color to bgcolor)
2023-05-10 14:42:55 +01:00
toaster
2ca9f1aee5 Rename and rearrange the difficult-to-interpret patch variable names for the GP bottom progression visual
`rrmrk1` is now `level_dot[BPP_DONE]`, for example.
BPP is short for "Bottom Progression Patch"

This is a necessary prerequisite to making the roundqueue visuals dynamic, but that is not yet the case
2023-05-10 14:42:55 +01:00
toaster
aa925be7c5 Reimplement player result data
- A series of bars with stuff on them.
    - Player position num
    - Player character + color (via minimap icon)
        - Uses MINIDEAD if a bot NO CONTESTs
    - Player name (Aqua text instead of white if you're the main player)
    - Player TIME/SCORE/RANK/PWR depending on context
        - NO CONTEST now reads "RETIRED."
            - More economical use of more limited space
            - Gives failure a slightly different flavor to the previous entry in the series
- Re-implements the slide when switching from TIME/SCORE to RANK/PWR
- These are automatically spaced in varying degrees to try and use as much or as little space as possible, given the bars are fixed width.
    - 1 to 3 players: Center-aligned column of result bars
    - 4 to 6 players: Two columns of result bars, 1 extra pixel of vertical spacing
    - 7 to 10 players: Two columns of result bars
    - 11 to 16 players: Two columns of result bars, 1 less pixel of vertical spacing

TODO:
- "LAGLESS" host name-and-shame, which the revamped screen was not designed around
- Adjusting position of other entries on the screen to accomodate higher quantities of players
- Adjust spacing of other graphics on the screen to prevent overlap
2023-05-10 14:42:55 +01:00
toaster
06c4a898e2 First steps at reimplementing functionality
- Re-add demo save HUD
- Re-add skip for drawing 3D scene required since Twodee
- Re-add Lua-controlled HUD disabling
- Cleanup for 0 instead of NULL in pointer field of patch drawer macros
- Cleanup for more extra tabs than the browser session of someone with ADHD
2023-05-10 14:42:55 +01:00
toaster
ae7830b9ab Compilation fixes
- grandprixinfo.roundnum --> roundqueue.roundnum
- comment out unused patch
2023-05-10 14:42:54 +01:00
wolfy852
7712074b29 Make line colors reflect progress 2023-05-10 14:42:54 +01:00
wolfy852
465369f383 Logic for progress display markers 2023-05-10 14:42:54 +01:00
wolfy852
b20c16f3fd Draw remaining assets, GP restriction 2023-05-10 14:42:54 +01:00
James R
582b76f168 Intermission: fix marquee scroll 2023-05-10 14:42:54 +01:00
wolfy852
aa94bdb7cc Fix scroll directions 2023-05-10 14:42:54 +01:00
wolfy852
f8c1a0f758 WIP: Marquee & Checker scrolling
Bad numbers. Scroll is happening, just not the way we want it to.
2023-05-10 14:42:53 +01:00
wolfy852
ddd8f84648 Use a more descriptive var name 2023-05-10 14:42:53 +01:00
wolfy852
b1524a8c7f intermission skincolor + demolition of sanity 2023-05-10 14:42:53 +01:00