File session details on the file select screen #818
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Overview
The goal was to be able to know if there was an ongoing session. You can see some informations about the ongoing session associated with the files before continuing them from the file select screen:
-> is it customizable in Everest? If it is, I need to make the session details compatible
-> like the one at the bottom of the when in pause
-> only if the map has already been completed
-> scales to not take too much space
It addresses issue #439.
Implementation
SessionDetailsPage
entity that stores the relevant informations of a session to render them, and can be updated to switch sessions (the berry list is baked into a virtual render target)SessionDetailsPage
instance inOuiFileSelect
OuiFileSelect.Update()
to modify input captureOuiFileSelectSlot.Render
to change ticket rendering position based on a theOuiFileSelectSlot.ticketRenderPosition
property (added by this change too) to make the ticket move depending onOuiFileSelect.SessionDetailsEase
OuiFileSelectSlot.IdlePosition
to shift the slots idle position to the left when showing session detailsOverworld.InputEntity
andOverworld.Update()
to show the input prompt for toggling session details in the bottom right of the screen with "Confirm" and "Cancel"Compatibility
AltSideHelper
I don't know what needs to be exposed and how.
For now I did put into (private) fields of
SessionDetailsPage
the things that I think are relevant for AltSide compatCollabUtils2
Maybe being able to see the icon and the name of the lobby the map is associated with would be great.
-> for example, Strawberry jam maps will display their sub-difficulty indicator as their icon
Save slots manipulation
There is the idea of being adding the possibility to move save slots. I also thought about being able to erase a slot (so every slot below it get moved up by one).
We need to think of a way to cleanly allow those save slots operations without conflicts. For now there is a mod for moving slots (https://gamebanana.com/mods/539280), but it also uses the journal key (I actually didn't test the interaction between this mod and my patches)
Issues / things to add
Things I just noticed I need to fix, or I think would be (more or less) relevant to consider doing/adding in continuation to the initial commit, at some point in time or never, by someone else or me, in Everest or in a mod.... I don't know, and I'm asking you about what you think (maybe that's not the right place to do that for some of them):
SessionDetailsPage
toOuiFileSelectSessionDetailsPage
and move it to a seperate filebool ShowSessionDetailsUI
field toOverworld
and update it fromOuiFileSelect
instead of harcoding the check inOverworld.Update()
-> apart from the name, chapter, and area icon, there is also: custom banner (title and accent), tab, mode icon (for B and C sides)
-> maybe add something LevelSetPicker-like between the ticket and session details page to move between played campaigns (use the savedata total playtime of the areas in the levelset to determine?) that can navigate between played campaigns when viewing session details
-> by pressing confirm?