Commit graph

14 commits

Author SHA1 Message Date
toaster
83366b6507 More universal Course restriction based on progression
All courses are restricted in Match Race/Time Attack/Online if not visited in GP UNLESS:
- It is the first Race Course of a Cup
- Course has "NoVisitNeeded = True`
    - The Controls Tutorial and Test Run are the only two stages that will need this

The above replaces:
- A lot of restricted courses having to be marked with `FinishNeeded = True`
    - Hidden Palace
    - Sealed Stars 1-14
        - Once Special Mode is unlocked, it will now be possible to practice Sealed Stars before rematching them in GP
- Almost all Tutorial-specific behaviour, since it was heinously hacky

HOWEVER, `FinishNeeded = True` was left in specifically for future releases, and I reserve the right to use it on Adventure Example again before launch.
2024-01-07 13:57:05 +00:00
toaster
b46b61e7a1 Fixes for Cups with incomplete map list
- Don't check alt-Podium maps as possible Cup stages
- Guarantee the cupcache is initialised to NEXTMAP_INVALID properly
2023-11-21 22:13:11 +00:00
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
19e73f4fe3 Final statistics cleanup
- Characters is default page because it's Dr Eggman's game
- Keep page when exiting menu and returning
- Remove/comment out the overview page, since the overview is currently visible on all pages
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
648a97aaf3 Grand Prix page for statistics screen
Shows windata for all unlocked difficulties, or dotted dash lines if no windata is available
2023-08-10 00:28:17 +01:00
toaster
d4049bb9a0 Saner list end handling for M_DrawStatsChars 2023-08-10 00:28:16 +01:00
toaster
9ed1471c95 Add "Characters & Emgine Classes" page to statistics
- Shows wins for every character
- Shows heatmap of which stats are your favourite (of the loaded skins)
- Adds a header to the top of all statistics pages showing you can scroll left and right
    - General spacing is adjusted to accomodate
2023-08-10 00:28:16 +01:00
toaster
49e3e6b500 Instead of calculating relevant medals for every frame, calculate once and store the result 2023-08-10 00:28:16 +01:00
toaster
efe02794d4 (re-)implement pages for the Statistics Menu
Was previously a feature of older versions of SRB2, but newer releases have had more compact statistics menus.
However, we now have wayyyyy more to track than SRB2 ever did, so this is now actually justified.

Currently there are only two pages, and the first page is empty. This will change shortly.
2023-08-10 00:28:16 +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
0124cf7356 No TEST RUN in statistics as that's also forbidden in Time Attack 2023-03-14 20:36:54 +00:00
toaster
22e17fd881 Statistics respects cups now
- Adds headers to the list
- Adds indentation
- Doesn't show extra medals if there are none available
- Cleans up some of the undesired duplication in the drawer
2023-03-14 20:27:58 +00:00
James R
b26cd786ec Move all specialized code out of k_menufunc.c
Adds new files:

- menus/extras-statistics.c
- menus/play-online-room-select.c
- menus/transient/cup-select.c
- menus/transient/explosions.c
- menus/transient/gametype.c
- menus/transient/message-box.c
- menus/transient/virtual-keyboard.c
2023-01-12 20:31:31 -08:00