1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-14 11:54:39 +00:00

idle -> PAUSE_STATE_MAIN and substates -> PAUSE_MAIN_STATE_, mainSubState

This commit is contained in:
Dragorn421 2022-08-29 12:31:04 +02:00
parent 4330108a1b
commit 23d2ce1eb7
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
9 changed files with 153 additions and 140 deletions

View file

@ -748,7 +748,7 @@ typedef enum {
/* 3 */ PAUSE_STATE_INIT, // Load data and initialize/setup various things. /* 3 */ PAUSE_STATE_INIT, // Load data and initialize/setup various things.
/* 4 */ PAUSE_STATE_OPENING_1, // Animate the pause menu coming together with rotations and other animations. /* 4 */ PAUSE_STATE_OPENING_1, // Animate the pause menu coming together with rotations and other animations.
/* 5 */ PAUSE_STATE_OPENING_2, // Finish some animations for opening the menu. /* 5 */ PAUSE_STATE_OPENING_2, // Finish some animations for opening the menu.
/* 6 */ PAUSE_STATE_IDLE, // Pause menu ready for player inputs. /* 6 */ PAUSE_STATE_MAIN, // Pause menu ready for player inputs.
/* 7 */ PAUSE_STATE_7_SAVE_PROMPT_, // save /* 7 */ PAUSE_STATE_7_SAVE_PROMPT_, // save
/* 8 */ PAUSE_STATE_8, // saveGameOver /* 8 */ PAUSE_STATE_8, // saveGameOver
/* 9 */ PAUSE_STATE_9, // saveGameOver /* 9 */ PAUSE_STATE_9, // saveGameOver
@ -764,18 +764,19 @@ typedef enum {
/* 19 */ PAUSE_STATE_UNPAUSE /* 19 */ PAUSE_STATE_UNPAUSE
} PauseCtxState; } PauseCtxState;
// Sub-states of PAUSE_STATE_MAIN
typedef enum { typedef enum {
/* 0 */ PAUSE_S6_0_IDLE_, /* 0 */ PAUSE_MAIN_STATE_0_IDLE_,
/* 1 */ PAUSE_S6_1_SWITCH_PAGE_, /* 1 */ PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
/* 2 */ PAUSE_S6_2_PLAYBACK_SONG_, /* 2 */ PAUSE_MAIN_STATE_2_PLAYBACK_SONG_,
/* 3 */ PAUSE_S6_3, /* 3 */ PAUSE_MAIN_STATE_3,
/* 4 */ PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, /* 4 */ PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
/* 5 */ PAUSE_S6_5_PLAYER_PLAYING_SONG_, /* 5 */ PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
/* 6 */ PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, /* 6 */ PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_,
/* 7 */ PAUSE_S6_7, /* 7 */ PAUSE_MAIN_STATE_7,
/* 8 */ PAUSE_S6_8_IDLE_CURSOR_ON_SONG_, /* 8 */ PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_,
/* 9 */ PAUSE_S6_9_PLAYBACK_SONG_START_ /* 9 */ PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_
} PauseCtxUnk1E4; } PauseMainSubState;
typedef enum { typedef enum {
/* 0 */ PAUSE_S7_0, /* 0 */ PAUSE_S7_0,
@ -823,7 +824,7 @@ typedef struct {
/* 0x01D4 */ u16 state; /* 0x01D4 */ u16 state;
/* 0x01D6 */ u16 debugState; /* 0x01D6 */ u16 debugState;
/* 0x01D8 */ Vec3f eye; /* 0x01D8 */ Vec3f eye;
/* 0x01E4 */ u16 unk_1E4_ps6_; /* 0x01E4 */ u16 mainSubState;
/* 0x01E6 */ u16 mode; /* 0x01E6 */ u16 mode;
/* 0x01E8 */ u16 pageIndex; // "kscp_pos" /* 0x01E8 */ u16 pageIndex; // "kscp_pos"
/* 0x01EA */ u16 unk_1EA_OpenMenuAndPageSwitchTimer__; /* 0x01EA */ u16 unk_1EA_OpenMenuAndPageSwitchTimer__;

View file

@ -62,7 +62,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_WAIT_BG_PRERENDER pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_WAIT_BG_PRERENDER
} }
@ -70,7 +70,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9
} else if ((pauseCtx->state == PAUSE_STATE_WAIT_BG_PRERENDER) || (pauseCtx->state == PAUSE_STATE_9)) { } else if ((pauseCtx->state == PAUSE_STATE_WAIT_BG_PRERENDER) || (pauseCtx->state == PAUSE_STATE_9)) {
@ -120,7 +120,7 @@ void KaleidoScopeCall_Draw(PlayState* play) {
if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) { if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) {
if (((play->pauseCtx.state >= PAUSE_STATE_OPENING_1) && (play->pauseCtx.state <= PAUSE_STATE_7_SAVE_PROMPT_) if (((play->pauseCtx.state >= PAUSE_STATE_OPENING_1) && (play->pauseCtx.state <= PAUSE_STATE_7_SAVE_PROMPT_)
/* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */) || /* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_MAIN, PAUSE_STATE_7_SAVE_PROMPT_ */) ||
((play->pauseCtx.state >= PAUSE_STATE_11) && (play->pauseCtx.state <= PAUSE_STATE_CLOSING) ((play->pauseCtx.state >= PAUSE_STATE_11) && (play->pauseCtx.state <= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, PAUSE_STATE_15, /* PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, PAUSE_STATE_15,
PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */ PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */

View file

@ -42,8 +42,8 @@ void KaleidoSetup_Update(PlayState* play) {
R_PAUSE_CURSOR_RIGHT_X = 155; R_PAUSE_CURSOR_RIGHT_X = 155;
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_WAIT_LETTERBOX by pauseCtx->mainSubState = PAUSE_MAIN_STATE_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_WAIT_LETTERBOX
// KaleidoScopeCall_Update // by KaleidoScopeCall_Update
if (R_START_LABEL_DD(0) == 0) { if (R_START_LABEL_DD(0) == 0) {
pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex]; pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex];
@ -83,7 +83,7 @@ void KaleidoSetup_Init(PlayState* play) {
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->pageIndex = PAUSE_ITEM; pauseCtx->pageIndex = PAUSE_ITEM;

View file

@ -2762,7 +2762,7 @@ void Interface_DrawItemButtons(PlayState* play) {
if ((pauseCtx->state < PAUSE_STATE_8) if ((pauseCtx->state < PAUSE_STATE_8)
/* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT, /* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT,
PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */ PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_MAIN, PAUSE_STATE_7_SAVE_PROMPT_ */
|| (pauseCtx->state >= PAUSE_STATE_CLOSING) || (pauseCtx->state >= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */ /* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
) { ) {
@ -3321,7 +3321,7 @@ void Interface_Draw(PlayState* play) {
func_8008A994(interfaceCtx); func_8008A994(interfaceCtx);
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_3)) { if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_3)) {
// Inventory Equip Effects // Inventory Equip Effects
gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment); gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment);
Gfx_SetupDL_42Overlay(play->state.gfxCtx); Gfx_SetupDL_42Overlay(play->state.gfxCtx);

View file

@ -115,9 +115,9 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_kaleido_collect.c", 248); OPEN_DISPS(gfxCtx, "../z_kaleido_collect.c", 248);
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || if ((!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) || (pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->pageIndex == PAUSE_QUEST)) { (pauseCtx->pageIndex == PAUSE_QUEST)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
@ -125,7 +125,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
if (pauseCtx->cursorSpecialPos == 0) { if (pauseCtx->cursorSpecialPos == 0) {
pauseCtx->nameColorSet = 0; pauseCtx->nameColorSet = 0;
if ((pauseCtx->state != PAUSE_STATE_IDLE) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) { if ((pauseCtx->state != PAUSE_STATE_MAIN) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) {
// No cursor movement // No cursor movement
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
} else { } else {
@ -138,7 +138,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
nextCursorPoint = sCursorPointLinks[i][2]; nextCursorPoint = sCursorPointLinks[i][2];
if (nextCursorPoint == CURSOR_TO_LEFT) { if (nextCursorPoint == CURSOR_TO_LEFT) {
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT); KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} else { } else {
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -152,7 +152,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
nextCursorPoint = sCursorPointLinks[i][3]; nextCursorPoint = sCursorPointLinks[i][3];
if (nextCursorPoint == CURSOR_TO_RIGHT) { if (nextCursorPoint == CURSOR_TO_RIGHT) {
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT); KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} else { } else {
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -185,7 +185,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// if the cursor point changed // if the cursor point changed
if (pauseCtx->cursorPoint[PAUSE_QUEST] != i) { if (pauseCtx->cursorPoint[PAUSE_QUEST] != i) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} }
@ -232,7 +232,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// Handle part of the ocarina songs playback // Handle part of the ocarina songs playback
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
(pauseCtx->cursorSpecialPos == 0)) { (pauseCtx->cursorSpecialPos == 0)) {
if ((cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) { if ((cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) {
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
@ -265,24 +265,24 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
R_PAUSE_SONG_OCA_BTN_Y(OCARINA_BTN_C_LEFT) = -46; R_PAUSE_SONG_OCA_BTN_Y(OCARINA_BTN_C_LEFT) = -46;
R_PAUSE_SONG_OCA_BTN_Y(OCARINA_BTN_C_UP) = -41; R_PAUSE_SONG_OCA_BTN_Y(OCARINA_BTN_C_UP) = -41;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_8_IDLE_CURSOR_ON_SONG_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_;
// Stop having the player play a song as done above // Stop having the player play a song as done above
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
} }
} else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) { } else if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_) {
// Abort having the player play the song if the stick is moved // Abort having the player play the song if the stick is moved
if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) { if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
} else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_) { } else if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_) {
if (CHECK_BTN_ALL(input->press.button, BTN_A) && (cursor >= QUEST_SONG_MINUET) && if (CHECK_BTN_ALL(input->press.button, BTN_A) && (cursor >= QUEST_SONG_MINUET) &&
(cursor < QUEST_KOKIRI_EMERALD)) { (cursor < QUEST_KOKIRI_EMERALD)) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_9_PLAYBACK_SONG_START_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_;
sPlaybackSongStartDelayTimer = 10; sPlaybackSongStartDelayTimer = 10;
} }
@ -343,7 +343,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} }
} else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_9_PLAYBACK_SONG_START_) { } else if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_) {
// After a short delay, start playing the selected song back to the player // After a short delay, start playing the selected song back to the player
pauseCtx->cursorColorSet = 8; pauseCtx->cursorColorSet = 8;
@ -367,7 +367,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET]; pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET];
AudioOcarina_SetPlaybackSong(pauseCtx->ocarinaSongIdx + 1, 1); AudioOcarina_SetPlaybackSong(pauseCtx->ocarinaSongIdx + 1, 1);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_2_PLAYBACK_SONG_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_2_PLAYBACK_SONG_;
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0; pauseCtx->ocarinaStaff->pos = 0;
@ -561,7 +561,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
48, 48, 0); 48, 48, 0);
} }
if (pauseCtx->state == PAUSE_STATE_IDLE) { if (pauseCtx->state == PAUSE_STATE_MAIN) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);
@ -569,23 +569,25 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// Update cursor color // Update cursor color
if ((pauseCtx->cursorSpecialPos == 0) && (cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) { if ((pauseCtx->cursorSpecialPos == 0) && (cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) {
if ((pauseCtx->unk_1E4_ps6_ < if ((pauseCtx->mainSubState <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) || PAUSE_MAIN_STATE_2_PLAYBACK_SONG_ */
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) { || (pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) {
if (pauseCtx->cursorItem[pauseCtx->pageIndex] != PAUSE_ITEM_NONE) { if (pauseCtx->cursorItem[pauseCtx->pageIndex] != PAUSE_ITEM_NONE) {
pauseCtx->cursorColorSet = 8; pauseCtx->cursorColorSet = 8;
// PAUSE_S6_2_PLAYBACK_SONG_, PAUSE_S6_3, PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, // PAUSE_MAIN_STATE_2_PLAYBACK_SONG_, PAUSE_MAIN_STATE_3,
// PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_ // PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
if ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_2_PLAYBACK_SONG_) && // PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_
(pauseCtx->unk_1E4_ps6_ < PAUSE_S6_7)) { if ((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) &&
(pauseCtx->mainSubState < PAUSE_MAIN_STATE_7)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
} }
} }
} }
} }
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) { if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) {
// Draw ocarina buttons as the song playback progresses // Draw ocarina buttons as the song playback progresses
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
@ -632,12 +634,12 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
} }
} }
} else if (((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) && } else if (((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_) (pauseCtx->mainSubState <= PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_)
/* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_S6_5_PLAYER_PLAYING_SONG_, /* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_ */ PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_ */
) || ) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) { (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) {
// Draw the buttons for playing a song // Draw the buttons for playing a song
stepGreen = pauseCtx->ocarinaSongIdx; stepGreen = pauseCtx->ocarinaSongIdx;
@ -652,7 +654,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_) { if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_) {
if (gOcarinaSongButtons[stepGreen].buttonsIndex[i] == OCARINA_BTN_A) { if (gOcarinaSongButtons[stepGreen].buttonsIndex[i] == OCARINA_BTN_A) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 80, 255, 150, 200); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 80, 255, 150, 200);
} else { } else {
@ -675,7 +677,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
} }
if (pauseCtx->unk_1E4_ps6_ != PAUSE_S6_8_IDLE_CURSOR_ON_SONG_) { if (pauseCtx->mainSubState != PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_) {
// Draw the buttons colored as the player plays the song // Draw the buttons colored as the player plays the song
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
@ -730,7 +732,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
} }
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) { if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) {
for (i = 0; i < SONG_MAX_LENGTH; i++) { for (i = 0; i < SONG_MAX_LENGTH; i++) {
sPlayedSongBtns[i] = OCARINA_BTN_INVALID; sPlayedSongBtns[i] = OCARINA_BTN_INVALID;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
@ -743,7 +745,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->ocarinaStaff->pos = 0; pauseCtx->ocarinaStaff->pos = 0;
pauseCtx->ocarinaStaff->state = 0xFE; pauseCtx->ocarinaStaff->state = 0xFE;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_5_PLAYER_PLAYING_SONG_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_;
} }
} }
} }

View file

@ -150,7 +150,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
} }
} }
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
(pauseCtx->pageIndex == PAUSE_EQUIP)) { (pauseCtx->pageIndex == PAUSE_EQUIP)) {
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_EQUIP]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_EQUIP];
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
@ -467,7 +467,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->equipVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->equipVtx);
if ((pauseCtx->cursorSpecialPos == 0) && (cursorItem != PAUSE_ITEM_NONE) && if ((pauseCtx->cursorSpecialPos == 0) && (cursorItem != PAUSE_ITEM_NONE) &&
(pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && (pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
CHECK_BTN_ALL(input->press.button, BTN_A) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0)) { CHECK_BTN_ALL(input->press.button, BTN_A) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0)) {
if ((gEquipAgeReqs[pauseCtx->cursorY[PAUSE_EQUIP]][pauseCtx->cursorX[PAUSE_EQUIP]] == 9) || if ((gEquipAgeReqs[pauseCtx->cursorY[PAUSE_EQUIP]][pauseCtx->cursorX[PAUSE_EQUIP]] == 9) ||
@ -497,7 +497,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_7; pauseCtx->mainSubState = PAUSE_MAIN_STATE_7;
sEquipTimer = 10; sEquipTimer = 10;
} else { } else {
Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
@ -509,13 +509,13 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} }
} else if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) && (pauseCtx->pageIndex == PAUSE_EQUIP)) { } else if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_7) && (pauseCtx->pageIndex == PAUSE_EQUIP)) {
KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_EQUIP] * 4, pauseCtx->equipVtx); KaleidoScope_SetCursorVtx(pauseCtx, pauseCtx->cursorSlot[PAUSE_EQUIP] * 4, pauseCtx->equipVtx);
pauseCtx->cursorColorSet = 8; pauseCtx->cursorColorSet = 8;
sEquipTimer--; sEquipTimer--;
if (sEquipTimer == 0) { if (sEquipTimer == 0) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} }
} }
@ -582,11 +582,11 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
KaleidoScope_DrawPlayerWork(play); KaleidoScope_DrawPlayerWork(play);
if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) && (sEquipTimer == 10)) { if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_7) && (sEquipTimer == 10)) {
KaleidoScope_SetupPlayerPreRender(play); KaleidoScope_SetupPlayerPreRender(play);
} }
if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) && (sEquipTimer == 9)) { if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_7) && (sEquipTimer == 9)) {
//! @bug: This function shouldn't take any arguments //! @bug: This function shouldn't take any arguments
KaleidoScope_ProcessPlayerPreRender(play); KaleidoScope_ProcessPlayerPreRender(play);
} }

View file

@ -103,7 +103,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
pauseCtx->nameColorSet = 0; pauseCtx->nameColorSet = 0;
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
(pauseCtx->pageIndex == PAUSE_ITEM)) { (pauseCtx->pageIndex == PAUSE_ITEM)) {
moveCursorResult = 0; moveCursorResult = 0;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM];
@ -345,8 +345,8 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
index = cursorSlot * 4; // required to match? index = cursorSlot * 4; // required to match?
KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx); KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx);
if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_IDLE) && if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_MAIN) &&
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
if (CHECK_BTN_ANY(input->press.button, BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) { if (CHECK_BTN_ANY(input->press.button, BTN_CLEFT | BTN_CDOWN | BTN_CRIGHT)) {
if (((gSlotAgeReqs[cursorSlot] == 9) || if (((gSlotAgeReqs[cursorSlot] == 9) ||
(gSlotAgeReqs[cursorSlot] == ((void)0, gSaveContext.linkAge))) && (gSlotAgeReqs[cursorSlot] == ((void)0, gSaveContext.linkAge))) &&
@ -361,7 +361,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
pauseCtx->equipTargetItem = cursorItem; pauseCtx->equipTargetItem = cursorItem;
pauseCtx->equipTargetSlot = cursorSlot; pauseCtx->equipTargetSlot = cursorSlot;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_3; pauseCtx->mainSubState = PAUSE_MAIN_STATE_3;
pauseCtx->equipAnimX = pauseCtx->itemVtx[index].v.ob[0] * 10; pauseCtx->equipAnimX = pauseCtx->itemVtx[index].v.ob[0] * 10;
pauseCtx->equipAnimY = pauseCtx->itemVtx[index].v.ob[1] * 10; pauseCtx->equipAnimY = pauseCtx->itemVtx[index].v.ob[1] * 10;
pauseCtx->equipAnimAlpha = 255; pauseCtx->equipAnimAlpha = 255;
@ -410,7 +410,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} }
} else if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_3) && (pauseCtx->pageIndex == PAUSE_ITEM)) { } else if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_3) && (pauseCtx->pageIndex == PAUSE_ITEM)) {
KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->itemVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->itemVtx);
pauseCtx->cursorColorSet = 4; pauseCtx->cursorColorSet = 4;
} }
@ -434,7 +434,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 255, 255, 255, pauseCtx->alpha);
if (gSaveContext.inventory.items[i] != ITEM_NONE) { if (gSaveContext.inventory.items[i] != ITEM_NONE) {
if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && (pauseCtx->pageIndex == PAUSE_ITEM) && if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) && (pauseCtx->pageIndex == PAUSE_ITEM) &&
(pauseCtx->cursorSpecialPos == 0)) { (pauseCtx->cursorSpecialPos == 0)) {
if ((gSlotAgeReqs[i] == 9) || (gSlotAgeReqs[i] == ((void)0, gSaveContext.linkAge))) { if ((gSlotAgeReqs[i] == 9) || (gSlotAgeReqs[i] == ((void)0, gSaveContext.linkAge))) {
if ((sEquipState == 2) && (i == 3)) { if ((sEquipState == 2) && (i == 3)) {
@ -804,7 +804,7 @@ void KaleidoScope_UpdateItemEquip(PlayState* play) {
gSaveContext.equips.cButtonSlots[2]); gSaveContext.equips.cButtonSlots[2]);
} }
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
sEquipMoveTimer = 10; sEquipMoveTimer = 10;
WREG(90) = 320; WREG(90) = 320;
WREG(87) = WREG(91); WREG(87) = WREG(91);

View file

@ -46,7 +46,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 123); OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 123);
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
(pauseCtx->pageIndex == PAUSE_MAP)) { (pauseCtx->pageIndex == PAUSE_MAP)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_MAP]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_MAP];
@ -411,7 +411,7 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 556); OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 556);
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) &&
(pauseCtx->pageIndex == PAUSE_MAP)) { (pauseCtx->pageIndex == PAUSE_MAP)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_WORLD_MAP]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_WORLD_MAP];

View file

@ -388,7 +388,7 @@ void KaleidoScope_SetDefaultCursor(PlayState* play) {
} }
void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) { void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_1_SWITCH_PAGE_;
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
if (!pt) { // pt == 0, scroll left if (!pt) { // pt == 0, scroll left
@ -457,13 +457,14 @@ void KaleidoScope_DrawCursor(PlayState* play, u16 pageIndex) {
OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 955); OPEN_DISPS(play->state.gfxCtx, "../z_kaleido_scope_PAL.c", 955);
temp = pauseCtx->unk_1E4_ps6_; temp = pauseCtx->mainSubState;
if ((((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && if ((((pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) || (temp == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_IDLE)) || (pauseCtx->state == PAUSE_STATE_MAIN)) ||
((pauseCtx->pageIndex == PAUSE_QUEST) && ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((temp < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ || ((temp < PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
(temp == PAUSE_S6_5_PLAYER_PLAYING_SONG_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)))) { PAUSE_MAIN_STATE_2_PLAYBACK_SONG_ */
|| (temp == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_) || (temp == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)))) {
if (pauseCtx->pageIndex == pageIndex) { if (pauseCtx->pageIndex == pageIndex) {
s16 i; s16 i;
@ -563,7 +564,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
if ((pauseCtx->state < PAUSE_STATE_8) if ((pauseCtx->state < PAUSE_STATE_8)
/* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT, /* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT,
PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */ PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_MAIN, PAUSE_STATE_7_SAVE_PROMPT_ */
|| (pauseCtx->state >= PAUSE_STATE_CLOSING) || (pauseCtx->state >= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */ /* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
) { ) {
@ -1113,7 +1114,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
pauseCtx->infoPanelVtx[5].v.ob[0] = pauseCtx->infoPanelVtx[7].v.ob[0] = pauseCtx->infoPanelVtx[4].v.ob[0] + 72; pauseCtx->infoPanelVtx[5].v.ob[0] = pauseCtx->infoPanelVtx[7].v.ob[0] = pauseCtx->infoPanelVtx[4].v.ob[0] + 72;
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) &&
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = R_PAUSE_CURSOR_LEFT_X; pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = R_PAUSE_CURSOR_LEFT_X;
pauseCtx->infoPanelVtx[9].v.ob[0] = pauseCtx->infoPanelVtx[11].v.ob[0] = pauseCtx->infoPanelVtx[8].v.ob[0] + 24; pauseCtx->infoPanelVtx[9].v.ob[0] = pauseCtx->infoPanelVtx[11].v.ob[0] = pauseCtx->infoPanelVtx[8].v.ob[0] + 24;
@ -1133,7 +1135,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
pauseCtx->infoPanelVtx[8].v.ob[1] - 26; pauseCtx->infoPanelVtx[8].v.ob[1] - 26;
} }
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) &&
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = R_PAUSE_CURSOR_RIGHT_X; pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = R_PAUSE_CURSOR_RIGHT_X;
pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] = pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] =
@ -1174,7 +1177,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
gSPDisplayList(POLY_OPA_DISP++, gItemNamePanelDL); gSPDisplayList(POLY_OPA_DISP++, gItemNamePanelDL);
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) &&
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen, gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen,
sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha); sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha);
} }
@ -1183,7 +1187,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 180, 210, 255, 220); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 180, 210, 255, 220);
if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) &&
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen, gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sCursorLeftRightSelectedPrimRed, sCursorLeftRightSelectedPrimGreen,
sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha); sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha);
} }
@ -1209,22 +1214,25 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0); gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0);
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) && if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) &&
(pauseCtx->nameDisplayTimer < R_PAUSE_NAME_DISPLAY_TIMER_THRESHOLD_) && (pauseCtx->nameDisplayTimer < R_PAUSE_NAME_DISPLAY_TIMER_THRESHOLD_) &&
(!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) || (!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) ||
(pauseCtx->unk_1E4_ps6_ <= ((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, (pauseCtx->mainSubState <= PAUSE_MAIN_STATE_7)) /* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_S6_7 */ PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_MAIN_STATE_7 */
|| (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->cursorSpecialPos == 0)) { (pauseCtx->cursorSpecialPos == 0)) {
if (!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) || if (!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) ||
(pauseCtx->unk_1E4_ps6_ <= ((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, (pauseCtx->mainSubState <=
PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_S6_7 */ PAUSE_MAIN_STATE_7)) /* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) { PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_, PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_,
PAUSE_MAIN_STATE_7 */
|| (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) {
pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
@ -1285,10 +1293,11 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gGoldSkulltulaIconTex, 24, 24, 0); KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gGoldSkulltulaIconTex, 24, 24, 0);
} }
} }
} else if ((pauseCtx->unk_1E4_ps6_ < } else if ((pauseCtx->mainSubState <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) || PAUSE_MAIN_STATE_2_PLAYBACK_SONG_ */
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) { || (pauseCtx->mainSubState == PAUSE_MAIN_STATE_7) ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) {
pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = y; pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = y;
pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] = pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] =
@ -1324,7 +1333,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60_toDecideTextTextures_[gSaveContext.language], KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60_toDecideTextTextures_[gSaveContext.language],
D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4); D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4);
} else if (pauseCtx->cursorSpecialPos != 0) { } else if (pauseCtx->cursorSpecialPos != 0) {
if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->state == PAUSE_STATE_MAIN) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_)) {
pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
@ -1490,7 +1499,7 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
} else if (pauseCtx->nameColorSet == 0) { } else if (pauseCtx->nameColorSet == 0) {
if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= QUEST_SONG_MINUET) && if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= QUEST_SONG_MINUET) &&
(pauseCtx->cursorSlot[PAUSE_QUEST] < QUEST_KOKIRI_EMERALD) && (pauseCtx->cursorSlot[PAUSE_QUEST] < QUEST_KOKIRI_EMERALD) &&
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) || (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) ||
(pauseCtx->pageIndex == PAUSE_ITEM) || (pauseCtx->pageIndex == PAUSE_ITEM) ||
((pauseCtx->pageIndex == PAUSE_EQUIP) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0))) { ((pauseCtx->pageIndex == PAUSE_EQUIP) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0))) {
if (pauseCtx->namedItem != ITEM_SOLD_OUT) { if (pauseCtx->namedItem != ITEM_SOLD_OUT) {
@ -1534,7 +1543,7 @@ void KaleidoScope_UpdateSwitchPage_(PlayState* play, Input* input) {
if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == 64) { if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == 64) {
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} }
} }
} }
@ -2501,8 +2510,8 @@ void KaleidoScope_UpdateOpening_(PlayState* play) {
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->state++; // PAUSE_STATE_OPENING_2 or PAUSE_STATE_IDLE pauseCtx->state++; // PAUSE_STATE_OPENING_2 or PAUSE_STATE_MAIN
pauseCtx->alpha = 255; pauseCtx->alpha = 255;
Interface_LoadActionLabelB(play, DO_ACTION_SAVE); Interface_LoadActionLabelB(play, DO_ACTION_SAVE);
@ -2633,7 +2642,7 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) {
} }
void KaleidoScope_Update(PlayState* play) { void KaleidoScope_Update(PlayState* play) {
static s16 D_8082B258_sState66NextState_ = PAUSE_S6_0_IDLE_; static s16 D_8082B258_sState66NextState_ = PAUSE_MAIN_STATE_0_IDLE_;
static s16 D_8082B25C_sState66NextStateTimer_ = 10; static s16 D_8082B25C_sState66NextStateTimer_ = 10;
static s16 sTimer_D_8082B260 = 0; static s16 sTimer_D_8082B260 = 0;
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
@ -2654,16 +2663,16 @@ void KaleidoScope_Update(PlayState* play) {
if ((R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) && if ((R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) &&
(((pauseCtx->state >= PAUSE_STATE_OPENING_1) && (pauseCtx->state <= PAUSE_STATE_7_SAVE_PROMPT_) (((pauseCtx->state >= PAUSE_STATE_OPENING_1) && (pauseCtx->state <= PAUSE_STATE_7_SAVE_PROMPT_)
/* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */ /* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_MAIN, PAUSE_STATE_7_SAVE_PROMPT_ */
) || ) ||
((pauseCtx->state >= PAUSE_STATE_10) && (pauseCtx->state <= PAUSE_STATE_CLOSING) ((pauseCtx->state >= PAUSE_STATE_10) && (pauseCtx->state <= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, /* PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14,
PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */ PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */
))) { ))) {
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || if ((!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && (pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_IDLE)) { (pauseCtx->state == PAUSE_STATE_MAIN)) {
pauseCtx->stickRelX = input->rel.stick_x; pauseCtx->stickRelX = input->rel.stick_x;
pauseCtx->stickRelY = input->rel.stick_y; pauseCtx->stickRelY = input->rel.stick_y;
@ -2671,14 +2680,15 @@ void KaleidoScope_Update(PlayState* play) {
KaleidoScope_UpdateCursorSize(play); KaleidoScope_UpdateCursorSize(play);
KaleidoScope_HandlePageToggles(pauseCtx, input); KaleidoScope_HandlePageToggles(pauseCtx, input);
} else if ((pauseCtx->pageIndex == PAUSE_QUEST) && } else if ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((pauseCtx->unk_1E4_ps6_ < ((pauseCtx->mainSubState <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_))) { PAUSE_MAIN_STATE_2_PLAYBACK_SONG_ */
|| (pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_))) {
KaleidoScope_UpdateCursorSize(play); KaleidoScope_UpdateCursorSize(play);
} }
if (pauseCtx->state == PAUSE_STATE_IDLE) { if (pauseCtx->state == PAUSE_STATE_MAIN) {
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }
} }
@ -3084,14 +3094,14 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION)); pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION));
KaleidoScope_UpdateOpening_(play); KaleidoScope_UpdateOpening_(play);
if (pauseCtx->state == PAUSE_STATE_IDLE) { if (pauseCtx->state == PAUSE_STATE_MAIN) {
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }
break; break;
case PAUSE_STATE_IDLE: case PAUSE_STATE_MAIN:
switch (pauseCtx->unk_1E4_ps6_) { switch (pauseCtx->mainSubState) {
case PAUSE_S6_0_IDLE_: case PAUSE_MAIN_STATE_0_IDLE_:
if (CHECK_BTN_ALL(input->press.button, BTN_START)) { if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
Interface_SetDoAction(play, DO_ACTION_NONE); Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_CLOSING; pauseCtx->state = PAUSE_STATE_CLOSING;
@ -3112,27 +3122,27 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_S6_1_SWITCH_PAGE_: case PAUSE_MAIN_STATE_1_SWITCH_PAGE_:
KaleidoScope_UpdateSwitchPage_(play, &play->state.input[0]); KaleidoScope_UpdateSwitchPage_(play, &play->state.input[0]);
break; break;
case PAUSE_S6_2_PLAYBACK_SONG_: case PAUSE_MAIN_STATE_2_PLAYBACK_SONG_:
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->state == 0) { if (pauseCtx->ocarinaStaff->state == 0) {
// Song playback is finished // Song playback is finished
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_;
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
break; break;
case PAUSE_S6_3: case PAUSE_MAIN_STATE_3:
KaleidoScope_UpdateItemEquip(play); KaleidoScope_UpdateItemEquip(play);
break; break;
case PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_: case PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_:
break; break;
case PAUSE_S6_5_PLAYER_PLAYING_SONG_: case PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_:
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (CHECK_BTN_ALL(input->press.button, BTN_START)) { if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
@ -3141,11 +3151,11 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->state = PAUSE_STATE_CLOSING; pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
break; break;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->promptChoice = 0; pauseCtx->promptChoice = 0;
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
@ -3163,45 +3173,45 @@ void KaleidoScope_Update(PlayState* play) {
Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_TRE_BOX_APPEAR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
D_8082B258_sState66NextState_ = PAUSE_S6_0_IDLE_; D_8082B258_sState66NextState_ = PAUSE_MAIN_STATE_0_IDLE_;
D_8082B25C_sState66NextStateTimer_ = 30; D_8082B25C_sState66NextStateTimer_ = 30;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_;
} else if (pauseCtx->ocarinaStaff->state == 0xFF) { } else if (pauseCtx->ocarinaStaff->state == 0xFF) {
// The player failed to play the song // The player failed to play the song
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
D_8082B258_sState66NextState_ = PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_; D_8082B258_sState66NextState_ = PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_;
D_8082B25C_sState66NextStateTimer_ = 20; D_8082B25C_sState66NextStateTimer_ = 20;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_;
} }
break; break;
case PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_: case PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_:
D_8082B25C_sState66NextStateTimer_--; D_8082B25C_sState66NextStateTimer_--;
if (D_8082B25C_sState66NextStateTimer_ == 0) { if (D_8082B25C_sState66NextStateTimer_ == 0) {
pauseCtx->unk_1E4_ps6_ = D_8082B258_sState66NextState_; pauseCtx->mainSubState = D_8082B258_sState66NextState_;
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) { if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
} }
break; break;
case PAUSE_S6_7: case PAUSE_MAIN_STATE_7:
break; break;
case PAUSE_S6_8_IDLE_CURSOR_ON_SONG_: case PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_:
if (CHECK_BTN_ALL(input->press.button, BTN_START)) { if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE); Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_CLOSING; pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->promptChoice = 0; pauseCtx->promptChoice = 0;
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
@ -3216,11 +3226,11 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_S6_9_PLAYBACK_SONG_START_: case PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_:
break; break;
default: default:
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
break; break;
} }
break; break;
@ -3294,7 +3304,7 @@ void KaleidoScope_Update(PlayState* play) {
R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION; R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
if (pauseCtx->rollRotSavePromptPage_unk_204 >= -314.0f) { if (pauseCtx->rollRotSavePromptPage_unk_204 >= -314.0f) {
pauseCtx->state = PAUSE_STATE_IDLE; pauseCtx->state = PAUSE_STATE_MAIN;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 0.0f; pauseCtx->rollRotPageQuest = 0.0f;
@ -3322,7 +3332,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 160.0f; pauseCtx->rollRotPageQuest = 160.0f;
pauseCtx->namedItem = PAUSE_ITEM_NONE; pauseCtx->namedItem = PAUSE_ITEM_NONE;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->rollRotSavePromptPage_unk_204 = -434.0f; pauseCtx->rollRotSavePromptPage_unk_204 = -434.0f;
} }
break; break;