Commit graph

537 commits

Author SHA1 Message Date
toaster
95ea6ae883 Tutorials are now strongly ordered, as opposed to passively ordered
- You will only see one uncompleted course on the Tutorial level select at a time.
    - All subsequent stages will not be visible.
    - This actually doesn't apply if you've beaten all the basegame Tutorial courses, and then load custom ones, to avoid discouraging the creation of those.
- If you select the menu and any loaded Tutorial stage is not completed, that stage will be highlighted automatically.
    - Uses the same icon as the Grand Prix backup tracker
        - Partly because it's the same general concept, saving your progress between sessions and alerting you to incompletion
        - Partly so I didn't have to bother any asset creators for something more specialised
2023-11-04 22:13:24 +00:00
toaster
388b14e956 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into will-it-blend
# Conflicts:
#	src/k_podium.c
2023-10-29 12:36:30 +00:00
Sal
cecd81b4aa Podium rank screen polished 2023-10-29 06:04:22 +00:00
toaster
e060e9dadc More consistent handling of special event round icons
- Gametypes have "GPpic" and "GPpicMini" parameters
- These are shown in contexts where a Round Number would be shown in GP, but an eventmode is under way.
- Instead of having different rules to show up on the pause menu, titlecard, and tally/intermission...
    - Pause Menu Roundqueue, Tally, and Intermission have all been aligned to the same rules.
    - As long as the titlecard is standard, it will show the GP Pic per those rules. (GTR_SPECIALSTART and GTR_BOSS still have their unique behaviour here)
2023-10-25 20:34:40 +01:00
Oni
a5bd49b882 Merge branch 'break-through-them-all' into 'master'
Break Through Them All

Closes #704

See merge request KartKrew/Kart!1570
2023-10-21 23:47:50 +00:00
toaster
de5b151985 Merge branch 'Custom-Cup-statistics-menu-icon' into 'master'
Custom Cup monitor now shows up in Statistics Menu

See merge request KartKrew/Kart!1568
2023-10-19 16:53:39 +00:00
VelocitOni
a25b6ca49f Custom Cup monitor now shows up in Statistics Menu
toaster asked me to paste this code in, she's busy w/ break-through-them-all
2023-10-19 12:47:34 -04:00
toaster
0478d9a2e3 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into break-through-them-all 2023-10-19 17:32:35 +01:00
VelocitOni
645a6df765 Adjusted cup icon offsets
Made the Chaotix Monitor & Sonic Advance capsule cup icons have proper icon offsets.
2023-10-19 12:24:08 -04:00
Sally Coolatta
5d9e813c5e Fixes for titlemaps
- Removed all old dev title screen remainders that were interfering with titlemaps.
- F_VersionDrawer displays on all title screen types
- SA2 intro sound only plays whenever there's am actual title card to show (before it checked for not GS_CEREMONY?)
- Removed redundant customversionstring check in menus (F_VersionDrawer already handles customversionstring)
2023-10-17 17:56:10 -04:00
toaster
f1e3c547b3 M_DrawStatistics: Rename maps page to "COURSES & MEDALS" per Oni's request 2023-10-14 18:32:28 +01:00
toaster
7d5f0ea3ba M_DrawChallengeTile: Updates
- Add SECRET_ALTMUSIC tile associations
- Fix association for MISC
2023-10-12 21:15:57 +01:00
toaster
bddb1d576d Challenges Menu: Fix copypaste error with Chao Medal fill drawer 2023-10-09 12:54:02 +01:00
toaster
d386800c1e Ancient Shrine: Code the rest of the owl
- If a follower with the specific Mystic Melody sound effect (DSMELODY) is used on the Shrine by a local player...
- Activates the shrine after two seconds!
    - This is clientside only.
- Stores on the mapheaderinfo's mapvisited record
2023-10-06 22:24:40 +01:00
toaster
c26b4036b7 Challenges Menu: Subtle glowverlay on the Chao Key in the top left if you're able to skip the currently selected tile 2023-09-29 11:01:20 +01:00
toaster
5ac1854b1b The conversion rate for Rounds to Keys is now 32:1 per popular consensus 2023-09-29 10:03:05 +01:00
toaster
911588a5fe Challenges Tutorial messages
Currently exists for:
- Generating a Chao Key
- Attempting to use a Chao Key on a Major Challenge
    - Only shows after Generating a Chao Key just so it doesn't fire before you know what's going on
Text is preliminary
2023-09-29 00:25:51 +01:00
toaster
07afe6cb06 Challenge Grid is 5 tiles high now again
I'm sorry, it was just TOO SWAG.
Gamedata minor version increment
2023-09-28 22:30:26 +01:00
toaster
20f47a69dd Challenges Menu: Cooler winged counters for Chao Keys and Completion Percentage
Moves rounds-to-key metyr back to being horizontal and under the counter again, but integrated into the wing
2023-09-28 21:54:42 +01:00
toaster
aca676a7b6 M_DrawChallengePreview: Fix inverted presence of Alt-character stats dot on Character Select preview 2023-09-28 21:40:24 +01:00
toaster
54ddf72466 Challenges Menu: Do not show any conditiontext underlay for empty tile spots 2023-09-28 12:29:44 +01:00
toaster
cf1367fb8d Challenges Menu: Chao Medal icon in the top right
Fills up as you complete challenges.
Unlock all Challenges without using Chao Keys on a major tile to get the Beginner Chao Medal.
Do so without using any Chao Keys at all and you get 101%, with the Challenge Chao Medal!
(This can retroactively apply if you complete the relevant tasks legitimately at a later date.)

Also makes CC_s into an enum (now prefixed with CMC_, since CC_MAX exists in a header file already).
2023-09-28 12:28:14 +01:00
toaster
bd7be2dd6f M_DrawChallengeKeys: Grey out the last Chao Key on the stack if you're either out of them, or going to be out of them after the animation is over 2023-09-28 12:22:17 +01:00
toaster
6bf364545e Seperate our M_DrawChallengeKeys from the already pretty big M_DrawChallenges 2023-09-28 09:57:32 +01:00
toaster
1a91f41dbb Update Challenge Menu UI
- Percentage for Challenges completion
- Smaller footprint in either top corner
    - Uses mini rank numbers
    - Rounds to new Key meter is now vertical
2023-09-27 21:19:39 +01:00
toaster
f29430f29c Longer delay for using a Chao Key on a Major Challenge Tile
Also tidies up a lot of the code and constants related to the Key usage timing
2023-09-27 20:54:32 +01:00
toaster
3e901b312c Catch all unconditional cv_playercolor[] visuals
Resolves #704
Now converts to skin prefcolor in:
- Player menu party
- Challenges menu
    - Why it's done on this branch - want to avoid merge conflicts
- Gamepad indicator
    - Actually fixes a bug at the same time for skins with nonstandard startcolors
2023-09-27 16:02:29 +01:00
toaster
1ce41bdfb4 Large Challenge Tiles can now be Key'd.
- Must have every challenge surrounding it unlocked. (CHE_ALLCLEAR, see previous commits)
- Takes 10 Chao Keys.
- Has a swag animation.

In addition:
- Replace the DEVELOP-only Z button behaviour with "add a free key", since large tiles are no longer permalocked, only expensive.
2023-09-27 16:02:29 +01:00
toaster
b33597e225 Beginnings of system for using Chao Keys on large tiles
- M_UpdateChallengeGridExtraData: Register whether major unlock tiles have had every surrounding Challenge cleared (CHE_ALLCLEAR)
- M_DrawChallengeTile: For locked tiles with CHE_ALLCLEAR, show a little dot (temporary drawer)
2023-09-27 16:02:28 +01:00
toaster
36f8a64d65 Stereo Mode: Add "shf" (Shuffle) option
This basically came to me in a dream, who am I to look the horse in its mouth

- Press to start a shuffled sequence, losing your current position in the autosequence.
    - Press again to disable, but keep your current track.
- Adjust horizontal offset of Stereo buttons slightly.
- More judiciously comment Sound Test functionality, to assist future maintainers.
2023-09-24 10:46:32 +01:00
toaster
4a160b8951 Statistics - Maps & Medals: Draw Medal and Spray-Can graphics at native resolution 2023-09-11 09:46:01 +01:00
toaster
244db81f04 Visual adjustments to the Server Browser and Room Select
Based on VC discussions
- When you've unlocked add-ons, show "Core Servers" or "Modded Servers" in lieu of "Server Browser
- Adjust the vertical height of the Room Select graphics to not be visually overlapped
2023-08-31 20:50:15 +01:00
toaster
cd8057ed53 Room Select: Add a tooltip 2023-08-31 20:00:36 +01:00
toaster
cdf5eaaa16 Server Browser Room Select changes
Instead of putting you on the room select but forbidding changing the room...
- You haven't unlocked add-ons (formerly forced to CORE)
    - Skips the Room Select and takes you directly to the CORE mode Server Browser
- Game has add-ons loaded (formerly forced to MODDED)
    - Forbid accessing the Server Browser with a helpful message.
        - Reduces tech support burden.
        - Parity with the previous entry in the series.
2023-08-31 20:00:35 +01:00
toaster
c14ff69d9a Server Browser change alert (KartKrew/Kart-Public!277)
- Let players know if their cv_masterserver was changed, and give them the opportunity to change it back
- A limited number of nag attempts, so if people are using a legitimate custom Server Browser they won't be annoyed for the rest of the game's lifespan
- Show the Server Browser at the bottom of all online menus
    - KNOWN BUG: currently overlaps with the Join IP
        - we're redoing this menu before launch because it's buggy so this is just another bug on that pile
2023-08-31 20:00:35 +01:00
toaster
9d689c5e0c M_DrawServerCountAndHorizontalBar: Improve general overlaid text 2023-08-31 20:00:34 +01:00
toaster
7fd64a4c3d Get the Server Browser working again
- KartKrew/Kart-Public!313 has finally been integrated with the changed menu code
    - Attempts multiple times to get every public server, up to nettimeout
    - Clear the server list when entering/exiting and refrehing
    - Show visible servers and potential servers opposite the Refresh input
    - I would have done this in another commit, but the system was too broken to repair without just putting the working solution in wholesale
- Improved visual scrolling behaviour
- Pressing A actually joins the server
- CORE vs MODDED is handled in SL_InsertServer, not a seperate function to drop/memcpy things around

Also, abstract out the little "PLEASE WAIT..." message popup during potential IO block into M_PleaseWait (only used on connect process via Menu)
2023-08-31 20:00:33 +01:00
toaster
92bd71496e VC review
- Continue showing up on main in-game pause menu
- Flip to top half of screen, to avoid conflict with Round Queue
- Show over most UI, including menu
2023-08-25 21:41:15 +01:00
toaster
6d2e120e77 M_DrawCharSelectCircle: Fix offset colour id when number of colors available is odd VS even 2023-08-23 17:54:09 +01:00
toaster
e1b7cb66cb Rework the Spray Can system to ACTUALLY be what we want
Instead of being specific to each level, Spray Cans are stored in a list on gamedata that will be stepped along each Spray Can you collect.
They are only assigned to a level on collection - which prevents you from farming the same easy location for every colour in the game.

In addition, this new system is one step short of dehardcoding them entirely. Now only Spray Cans specifically asked for by the existence of UC_SPRAYCAN will be put in the list, and if a secondary parameter is either "Yes" or "True", it will be put at the head of the list. This could technically support custom skincolours one day, but the author of this commit doesn't care to do the last bit of work necessary to make it happen.

There's a slight extra overhead in that skincolor_t now also holds a `cache_spraycan` (renamed from `cachedcan`, which maps had previously)

Currently, there's no safeguard against grabbing it on a custom course - you'll lose the Spray Can as soon as you load a fresh game again - but  I consider that easy to fix (tomorrow) and necessary before merger, because the author of this commit does NOT want complaints on release because we forgot to protect users who keep on losing their skincolors.
2023-08-23 00:46:46 +01:00
toaster
f7635c4399 Merge branch 'master' of https://git.do.srb2.org/KartKrew/Kart into spraycans 2023-08-22 19:57:28 +01:00
James R
9c14fe1aeb Merge branch 'pause-graphic-sound-test' into 'master'
Don't draw PAUSE graphic in the Stereo menu

See merge request KartKrew/Kart!1407
2023-08-20 22:56:52 +00:00
toaster
ba7d319457 Make bios.pk3 consistent filename
Removes all reference to main.kart, not just the obvious ones.
2023-08-20 22:06:11 +01:00
toaster
dc695e7acf First pass at implementing Spray Can pickups
- Replaces a few D00DKart objects because the doomednum specifically replaced one of these
- Reports on load if the map has too many, or if one's assigned but the object doesn't exist
2023-08-19 22:21:20 +01:00
toaster
1d06637a38 First pass at assigning unique spraycans to level headers
Increments gamedata minor version, be aware
- M_AssignSpraycans
    - Called in M_FinaliseGameData.
    - Attaches a hardcoded set of colours to all race maps in cup order, stopping once we run out.
    - The colours are shuffled, with some "freebies" always at the head of the list.
    - Integrates partial lists pretty well.
    - In DEVELOP builds, I_Errors if it produces corrupted state.
- G_LoadGameData, G_SaveGameData
    - Save & Load is implemented for these assignments
2023-08-19 15:08:55 +01:00
James R
d06185f5a3 M_Drawer: don't draw PAUSE graphic in the Stereo menu 2023-08-19 03:45:43 -07:00
toaster
9a35a39f5d Challenges Chao Key usage: Eggman numbers to REALLY drive home that you have to hold the button, and that you can release it early 2023-08-10 00:28:18 +01:00
toaster
6015a96a84 General cleanup to Map Statistics screen
- One extra row, to match the position of the headers on other pages
- Add "time" column if Time Attack for relevant gametypes is unlocked
- Seperate row header from Lost and Found for tutorial mode maps
- Add background lines to each row to increase parsability
2023-08-10 00:28:17 +01:00
toaster
567e3863a3 GP stats: Make columns alternate in darkness, rather than gradient 2023-08-10 00:28:17 +01:00
toaster
bce9a2c146 Change the location of the "No [something!?" message to be where a header usually is 2023-08-10 00:28:17 +01:00