- 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
- 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
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.
- 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
- 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.
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
- 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.
- 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
- 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"
- 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)
`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
- 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
- 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