Adds in-game menu for selecting a dungeon quest/randomizer (#1863)

* Adds most visuals and interactions for quest select menu.

* "Scrolling" menu, adds remaining sub/title textures, language support

* Tweak: ENG, FRA, GER title to match the original style

* ADD: Randomizer tex

* TWEAK: Randomizer ZAPD extension format

* Adds control stick prompts to the "scrolling" menu.

* Adds third entry for Randomizer.

* Bold text on randomizer subtitle.

* Ensures the game won't allow selecting an unsupported quest.

* Makes save files be created from the quest menu selection.

* Removes the master quest and randomizer checkboxes (no longer needed).

* Removes lock on MQ-only rando.

* Skips quest select if only one quest is playable.

* Adds ability to back out of quest select menu

* Show seed icons while Randomizer is selected on Quest Select Menu.

* Fixes custom hud colors and d-pad navigation.

* Implements backing up from name entry to quest select.

Also implements backwards rotations on the file select screen.

Co-authored-by: PurpleHato <linkvssangoku.jr@gmail.com>
This commit is contained in:
Christopher Leggett 2022-11-02 11:50:47 -04:00 committed by GitHub
commit fd8a2c9483
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
14 changed files with 787 additions and 300 deletions

View file

@ -1322,6 +1322,23 @@ typedef struct {
/* 0x00A8 */ View view;
} OpeningContext; // size = 0x1D0
typedef struct {
/* 0x00 */ u32 stickColorR;
/* 0x04 */ u32 stickColorG;
/* 0x08 */ u32 stickColorB;
/* 0x0C */ u32 stickColorA;
/* 0x10 */ f32 stickTexX;
/* 0x14 */ f32 stickTexY;
/* 0x18 */ u32 arrowColorR;
/* 0x1C */ u32 arrowColorG;
/* 0x20 */ u32 arrowColorB;
/* 0x24 */ u32 arrowColorA;
/* 0x28 */ f32 arrowTexX;
/* 0x2C */ f32 arrowTexY;
/* 0x30 */ f32 z;
/* 0x34 */ s32 isEnabled;
} StickDirectionPrompt;
typedef struct {
/* 0x00000 */ GameState state;
/* 0x000A4 */ Vtx* windowVtx;
@ -1392,6 +1409,14 @@ typedef struct {
/* 0x1CAD2 */ s16 kbdY;
/* 0x1CAD4 */ s16 newFileNameCharCount;
/* 0x1CAD6 */ s16 unk_1CAD6[5];
s16 logoAlpha;
s8 questType[3]; // 0 for Normal, 1 for MQ
StickDirectionPrompt stickLeftPrompt;
StickDirectionPrompt stickRightPrompt;
f32 arrowAnimTween;
f32 stickAnimTween;
u8 arrowAnimState;
u8 stickAnimState;
} FileChooseContext; // size = 0x1CAE0
typedef enum {