Commit graph

300 commits

Author SHA1 Message Date
toaster
5eeb29d552 Merge branch 'stereo-tidy' into 'master'
Memory fixes for Stereo

See merge request KartKrew/Kart!1284
2023-06-14 12:53:37 +00:00
toaster
65ab29b469 M_DrawSoundTest: If a song has no title, show "Untitled" instead. 2023-06-13 20:45:22 +01:00
toaster
6c6306889a M_StartMessage revamp
Immense 25-file diff, so spun off into its own branch.
- Improved appearance
    - Not just a big block of text on a blue background
    - Well, OK, the main part is, but some stuff has been spun out into its own fields
        - Title text
        - Text and button prompt for Yes/No or OK
    - Slides with pow on and off the screen
- Disabled MM_EVENTHANDLER, which has always been dog but got considerably worse after newmenus to the point nothing's using it anymore
    - Required in order to reduce the reliance on FUNCPTRCAST, which prevents Eidolon from compiling some stuff because it's not valid C++
2023-06-09 19:23:36 +01:00
toaster
da1e865e8b M_DrawChallenges, M_DrawChallengesPreview: Button prompts
- Chao Key usage(/skipping unlock animation)
- Toggle text for SECRET_ALTTITLE
2023-06-09 14:37:06 +01:00
toaster
2241c443f1 K_DrawMenuTyping: Use V_6WIDTHSPACE for header text 2023-06-08 17:49:47 +01:00
toaster
cb4a876e5a K_DrawTimeAttack: Use K_drawButtonAnim 2023-06-08 17:49:17 +01:00
toaster
fcaf4e2fc2 Smoother Virtual Keyboard sliding 2023-06-08 13:44:35 +01:00
toaster
d7b46b967a Wrongwarp: Randomised SMK character drivealong
Eggman always leads the pack
2023-06-08 00:58:27 +01:00
toaster
4cd1f894a2 M_DrawCharacterSprite: Refactor for more fine-grained control of sprite2, angle, and animation frame 2023-06-08 00:56:46 +01:00
toaster
7bda2f72cf Wrongwarp cheat
`banana` was the cheat for the previous entry in the series.
Visuals are incomplete but I have to go out in a little bit and the bulk of it is done

(The Tournament mode cheat's password is "placeholder" for now.)
2023-06-07 17:46:21 +01:00
toaster
823315667b Hold C to use a Chao Key
- Takes a second and a half.
- No accidential usage of your hard-earned Chao Keys.
- Does a full clockwise rotation around the unlocked spot, so there's an intuitive understanding of how long you have to bail out.
2023-06-07 17:46:20 +01:00
toaster
36191fa4db Y_PlayerStandingsDrawer: Add slide in from bottom of screen for Pause
In the process makes all y coordinates in the function relative to a base y, so it's less fragile to future maintenance.
2023-06-07 17:46:20 +01:00
toaster
ceb1655185 M_DrawCupSelect: Only draw Emerald on difficulties greater than Easy. 2023-05-31 11:55:20 +01:00
toaster
e74d01660f K_GetGradeColor
Colors for grades.
Done as a seperate function so that future other circumstances can utilise it.
But for now, just apply to M_DrawCupSelect windata.
2023-05-30 22:15:08 +01:00
toaster
d9940fdef2 M_DrawCupSelect: Flickering Chaos/Super Emerald icon ala S3 Data Select 2023-05-30 21:23:07 +01:00
toaster
0c7d66791b Expand datatype for Unlockables, emblems (Medals + nonmedals), and Conditions.
Made sure there is more than enough headroom for our current purposes.
It should be easy to double again if necessary now that the datatypes have been increased... but that would be obscene at this point
- 1024 Unlockables and 1024 Conditions (these were always tied together in slots)
- 2048 emblems (Medals + nonmedals). If we ship with ~250 maps this permits 8 Medals per map - which is higher than we intend right now but could easily fill out in patches
2023-05-30 21:08:29 +01:00
toaster
4387ea2f71 M_DrawCupSelect: Updated visuals for Cup windata per difficulty
- New Rank icons
- Use Minimap-sized Emerald instead of Battle HUD
- Shows associated character you last updated (or matched) the position with
    - Also removes the temporary printout display on G_LoadGameData.
2023-05-30 12:21:42 +01:00
toaster
4c34d04f8a recorddata_t handling adjustments
Preperatory work for the next feature on my agenda.
- No longer independently allocated.
    - This was a byproduct of the previous NUMMAPS-based implementation. It's just cleaner to have it live directly on the mapheader_t, no caveats about it.
- Now contains mapvisited bitflag array.
    - Now all to-gamedata properties on a mapheader's struct are grouped together.
        - I was of two minds about it, but decided that this would have cleaner guarantees for compartmentalisation, saving, and loading.
        - They can still be wiped independently (G_ClearRecords for time/lap and M_ClearSecrets for mapvisited).
2023-05-30 12:21:39 +01:00
toaster
a0f0c83975 M_DrawMenuTyping: On Virtual Keyboard, highlight when system button presses occour
- A
- B/X
- C
- Start
2023-05-21 00:14:11 +01:00
toaster
38ddfeeef8 Make virtual keyboard even stronger
- Show a textbox (with highlighted border) so the console font is more likely to be legible.
    - Increases the width of the virtual keys to match this.
- Show menu entry name and tooltip on faded view (if they exist), for additional context for what you're writing
- Make the text entry and the virtual keys slide seperately
2023-05-20 20:43:00 +01:00
toaster
ca68fe630b Show PAUSED image when the game is stopped by the pause command
In addition, don't show the pause menu PAUSED in modeattacking/netgames
This text is now snapto-affected, since we can't (or at least shouldn't) summon the widescreen border in regular pause instances.
2023-05-19 22:16:07 +01:00
toaster
af334f927f Cleanup of the Virtual Keyboard
- Variable width key support
    - Rearrangement of keys to take advantage of this
- Uses thin strings
    - Or arrow sigils for backspace/shift
- Shift and caps lock have been visually combined to match other virtual keyboards
    - Press shift once to enable shift, press again to disable shift and enable caps lock
    - Indicator light on shift to show capslock state
2023-05-19 21:21:48 +01:00
toaster
276bbebc6f Use 6widthspace for Virtual Keyboard bottom-of-screen message 2023-05-19 17:33:08 +01:00
toaster
23378048e3 k_menudraw.c: For all IT_CV_STRING handling, use a selection arrow instead of a flashing underscore
Makes it clear that you can't type directly into the field, but must select it first.
2023-05-19 12:52:31 +01:00
toaster
03a7f33c55 M_DrawMenuTyping: Slightly more consistent spacing for single-char virtual keys
The entire virtual keyboard needs a visual redesign, but this will make navigating it slightly easier for now.
2023-05-19 12:51:40 +01:00
toaster
2e1a80c9ca M_DrawPause: Show Round number/event sigil when roundqueue/GP is in action 2023-05-16 22:21:09 +01:00
SteelT
c419d037e8 Port the menu drawer function
- k_hud.c: Add K_DrawSticker function (was previously named M_DrawSticker)
- Seperated the confirm handling into the menu ticker (fixes the confirm delay being framerate dependent)
- Updated to use the button graphics
2023-05-14 20:21:03 -04:00
toaster
27dc9a3006 M_DrawPause: Only draw roundqueue outside of GS_INTERMISSION - that's already drawing it 2023-05-11 23:07:02 +01:00
toaster
c9b438d50d Show Round Queue on Pause menu
Also includes secret support for widescreen.
I was planning to put this on tab rankings, which doesn't have borders.
Pause menu does, but it would be a waste to strip it back out again.
2023-05-11 22:44:09 +01:00
James R
3bc7b48b7e Remove Replay Hut code 2023-04-28 12:50:43 -07:00
James R
d9b406f4d0 Add TIMER_FONT, rename V_DrawKartString to V_DrawTimerString
Separates timer and FREE PLAY fonts.
2023-04-21 00:34:06 -07:00
AJ Martinez
4f569641fc Store total wins in profiles 2023-04-11 19:38:02 +01:00
AJ Martinez
3012839138 Serverside PWR: Completely rip out profile PWR, add PWR to XD_ADDPLAYER 2023-04-11 19:38:02 +01:00
Sally Coolatta
198672c845 Fix vote buffer for G_RandMap being broken 2023-04-11 01:19:30 -04:00
Sally Coolatta
81871bc73b Rewrite random map buffer
Each map now just has a countdown for when they'll reappear (stored in mapheader), which gets decremented each time a new map is played. This means it's now compatible across gametype switches, is a lot less complex, and is easy to retrieve the value for a specific map without needing to iterate constantly.

Lots of the old unused code surrounding this function was also removed. Lastly, added a PARANOIA check for callAgainSoon being mishandled.
2023-04-10 02:10:03 -04:00
toaster
1bdbfdf22b S_TickSoundTest: Clean up significantly.
- Introduce comments to make flow understandable.
- Abstract the number of seconds in the fade out (previously handled across multiple places) into SOUNDTEST_FADEOUTSECONDS.
- Make all next/conclude song cases for autosequence and non-looping track handled in one place.
    - Fixes the case where a non-looping track could stop the Sound Test even in autosequence mode.
2023-04-08 12:32:46 +01:00
toaster
c5bb660372 M_DrawSoundTest: Animated volume knob
- Animates every 2 tics when up/down is held.
- One frame when pressing confirm.
2023-04-08 12:32:46 +01:00
toaster
f24e09f813 M_DrawSoundTest: Fix being held in the up direction when holding Confirm, when only one input is sent 2023-04-08 12:32:46 +01:00
toaster
94f5048fd1 Stereo Mode: Move all left-aligned text one pixel inwards 2023-04-08 12:32:45 +01:00
toaster
bbf2fc0b5f Merge branch 'tutorial-access' into 'master'
Tutorial access

See merge request KartKrew/Kart!1102
2023-04-06 17:02:59 +00:00
James R
a469cebef7 M_DrawPause: fix iterating beyond bounds of menuitems 2023-04-04 22:01:42 -07:00
toaster
fbfb8a507d Extras menu: Add GT_TUTORIAL selection screen
- Disabled if no maps available/unlocked
- Has another exception for showing TEST RUN under all gametypes
- Splitplayers is forbidden
2023-04-03 00:28:38 +01:00
toaster
0c4ea2f51a GP Cup Select drawer: Use the Super Emerald graphic for cups with emerald numbers higher than 7 2023-03-31 18:35:36 +01:00
AJ Martinez
495b51f6c2 Merge branch 'licenses' into 'master'
Add LICENSE-3RD-PARTY.txt

See merge request KartKrew/Kart!1110
2023-03-31 03:00:58 +00:00
toaster
5a5a607c9a M_DrawSoundTest: STER_DOT
Draws a dot matrix over the background level icon
2023-03-31 00:28:15 +01:00
toaster
027fd2be04 Time elapsed functionality
- Shown on the menu
- soundtest.autosequence
    - Plays all songs in sequence, skipping over the soundtest entry.
        - Plays each looping song twice (and fades out if it's the last one in the musicdef's tracks)
        - Plays non-looping songs once with no fade ever
   - Disabled when S_SoundTestStop called
- Songs that end outside of autosequence will now stop the visible Playing.
2023-03-31 00:27:20 +01:00
toaster
6f99a75c24 Duplicate current track title per VC discussion 2023-03-30 23:31:37 +01:00
toaster
2c0645cba2 Improve Stereo text header drawing
- Use LSTitleHighString at the top of the menu for the music's title/Sound Test
- Only show Track for relevant entries
- Show cv_soundtest.value in hex for that Classic Sonic soundtest flavour
2023-03-30 18:36:09 +01:00
toaster
99f4641700 Improve level select icon handling
- Make it full base resolution...
- ...but use ClipRect to make it fit inside the window of the Stereo
2023-03-30 18:31:18 +01:00
toaster
e5c3b566bf Stereo Volume
Access to soundvolume and musicvolume through the Stereo Mode menu
- Draws a knob and volume bar (with loudness warning)
- Changes which cvar is associated with it depending on selected song/lack of
    - If on any regular song, use digital music volume
    - If on soundtest, use sound volume
        - unless on entry 0 aka N/A, where no volume is visible at all
2023-03-30 01:01:16 +01:00