1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-13 19:35:28 +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.
/* 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.
/* 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
/* 8 */ PAUSE_STATE_8, // saveGameOver
/* 9 */ PAUSE_STATE_9, // saveGameOver
@ -764,18 +764,19 @@ typedef enum {
/* 19 */ PAUSE_STATE_UNPAUSE
} PauseCtxState;
// Sub-states of PAUSE_STATE_MAIN
typedef enum {
/* 0 */ PAUSE_S6_0_IDLE_,
/* 1 */ PAUSE_S6_1_SWITCH_PAGE_,
/* 2 */ PAUSE_S6_2_PLAYBACK_SONG_,
/* 3 */ PAUSE_S6_3,
/* 4 */ PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
/* 5 */ PAUSE_S6_5_PLAYER_PLAYING_SONG_,
/* 6 */ PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_,
/* 7 */ PAUSE_S6_7,
/* 8 */ PAUSE_S6_8_IDLE_CURSOR_ON_SONG_,
/* 9 */ PAUSE_S6_9_PLAYBACK_SONG_START_
} PauseCtxUnk1E4;
/* 0 */ PAUSE_MAIN_STATE_0_IDLE_,
/* 1 */ PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
/* 2 */ PAUSE_MAIN_STATE_2_PLAYBACK_SONG_,
/* 3 */ PAUSE_MAIN_STATE_3,
/* 4 */ PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
/* 5 */ PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
/* 6 */ PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_,
/* 7 */ PAUSE_MAIN_STATE_7,
/* 8 */ PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_,
/* 9 */ PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_
} PauseMainSubState;
typedef enum {
/* 0 */ PAUSE_S7_0,
@ -823,7 +824,7 @@ typedef struct {
/* 0x01D4 */ u16 state;
/* 0x01D6 */ u16 debugState;
/* 0x01D8 */ Vec3f eye;
/* 0x01E4 */ u16 unk_1E4_ps6_;
/* 0x01E4 */ u16 mainSubState;
/* 0x01E6 */ u16 mode;
/* 0x01E8 */ u16 pageIndex; // "kscp_pos"
/* 0x01EA */ u16 unk_1EA_OpenMenuAndPageSwitchTimer__;

View file

@ -62,7 +62,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
HREG(80) = 7;
HREG(82) = 3;
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->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_WAIT_BG_PRERENDER
}
@ -70,7 +70,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
HREG(80) = 7;
HREG(82) = 3;
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->state = (pauseCtx->state & 0xFFFF) + 1; // 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 (((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)
/* PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, PAUSE_STATE_15,
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;
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_WAIT_LETTERBOX by
// KaleidoScopeCall_Update
pauseCtx->mainSubState = PAUSE_MAIN_STATE_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_WAIT_LETTERBOX
// by KaleidoScopeCall_Update
if (R_START_LABEL_DD(0) == 0) {
pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex];
@ -83,7 +83,7 @@ void KaleidoSetup_Init(PlayState* play) {
pauseCtx->debugState = 0;
pauseCtx->alpha = 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->pageIndex = PAUSE_ITEM;

View file

@ -2762,7 +2762,7 @@ void Interface_DrawItemButtons(PlayState* play) {
if ((pauseCtx->state < PAUSE_STATE_8)
/* 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)
/* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
) {
@ -3321,7 +3321,7 @@ void Interface_Draw(PlayState* play) {
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
gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment);
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);
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
if ((!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->pageIndex == PAUSE_QUEST)) {
pauseCtx->cursorColorSet = 0;
@ -125,7 +125,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
if (pauseCtx->cursorSpecialPos == 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
cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
} else {
@ -138,7 +138,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
nextCursorPoint = sCursorPointLinks[i][2];
if (nextCursorPoint == CURSOR_TO_LEFT) {
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_LEFT);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} else {
while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -152,7 +152,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
nextCursorPoint = sCursorPointLinks[i][3];
if (nextCursorPoint == CURSOR_TO_RIGHT) {
KaleidoScope_MoveCursorToSpecialPos(play, PAUSE_CURSOR_PAGE_RIGHT);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
} else {
while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -185,7 +185,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// if the cursor point changed
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,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
}
@ -232,7 +232,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// 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)) {
if ((cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) {
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_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
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
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);
}
} 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) &&
(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;
}
@ -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
pauseCtx->cursorColorSet = 8;
@ -367,7 +367,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET];
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->pos = 0;
@ -561,7 +561,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
48, 48, 0);
}
if (pauseCtx->state == PAUSE_STATE_IDLE) {
if (pauseCtx->state == PAUSE_STATE_MAIN) {
gDPPipeSync(POLY_OPA_DISP++);
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
if ((pauseCtx->cursorSpecialPos == 0) && (cursor >= QUEST_SONG_MINUET) && (cursor < QUEST_KOKIRI_EMERALD)) {
if ((pauseCtx->unk_1E4_ps6_ <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) {
if ((pauseCtx->mainSubState <
PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
PAUSE_MAIN_STATE_2_PLAYBACK_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) {
pauseCtx->cursorColorSet = 8;
// PAUSE_S6_2_PLAYBACK_SONG_, PAUSE_S6_3, PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
// PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_
if ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_2_PLAYBACK_SONG_) &&
(pauseCtx->unk_1E4_ps6_ < PAUSE_S6_7)) {
// PAUSE_MAIN_STATE_2_PLAYBACK_SONG_, PAUSE_MAIN_STATE_3,
// PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
// PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_
if ((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) &&
(pauseCtx->mainSubState < PAUSE_MAIN_STATE_7)) {
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
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
@ -632,12 +634,12 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gSP1Quadrangle(POLY_OPA_DISP++, 0, 2, 3, 1, 0);
}
}
} else if (((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_)
/* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_S6_5_PLAYER_PLAYING_SONG_,
PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_ */
} else if (((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->mainSubState <= PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_)
/* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_, PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_,
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
stepGreen = pauseCtx->ocarinaSongIdx;
@ -652,7 +654,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
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) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, 80, 255, 150, 200);
} else {
@ -675,7 +677,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
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
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
@ -730,7 +732,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
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++) {
sPlayedSongBtns[i] = OCARINA_BTN_INVALID;
sPlayedSongBtnsAlpha[i] = 0;
@ -743,7 +745,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->ocarinaStaff->pos = 0;
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)) {
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_EQUIP];
pauseCtx->cursorColorSet = 0;
@ -467,7 +467,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
KaleidoScope_SetCursorVtx(pauseCtx, cursorSlot * 4, pauseCtx->equipVtx);
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)) {
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,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_7;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_7;
sEquipTimer = 10;
} else {
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,
&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);
pauseCtx->cursorColorSet = 8;
sEquipTimer--;
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);
if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) && (sEquipTimer == 10)) {
if ((pauseCtx->mainSubState == PAUSE_MAIN_STATE_7) && (sEquipTimer == 10)) {
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
KaleidoScope_ProcessPlayerPreRender(play);
}

View file

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

View file

@ -388,7 +388,7 @@ void KaleidoScope_SetDefaultCursor(PlayState* play) {
}
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;
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);
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_)) &&
(pauseCtx->state == PAUSE_STATE_IDLE)) ||
if ((((pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) || (temp == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_MAIN)) ||
((pauseCtx->pageIndex == PAUSE_QUEST) &&
((temp < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ ||
(temp == PAUSE_S6_5_PLAYER_PLAYING_SONG_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)))) {
((temp < PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
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) {
s16 i;
@ -563,7 +564,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
if ((pauseCtx->state < PAUSE_STATE_8)
/* 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)
/* 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;
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[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;
}
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[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] =
@ -1174,7 +1177,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
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,
sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha);
}
@ -1183,7 +1187,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
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,
sCursorLeftRightSelectedPrimBlue, sCursorLeftRightSelectedPrimAlpha);
}
@ -1209,22 +1214,25 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 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->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) ||
((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <=
PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_S6_7 */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
(!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) ||
((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->mainSubState <= PAUSE_MAIN_STATE_7)) /* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
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->cursorSpecialPos == 0)) {
if (!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) ||
((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <=
PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_S6_7 */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) {
if (!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_2_PLAYBACK_SONG_) ||
((pauseCtx->mainSubState >= PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->mainSubState <=
PAUSE_MAIN_STATE_7)) /* PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_,
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;
@ -1285,10 +1293,11 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
KaleidoScope_DrawQuadTextureRGBA32(play->state.gfxCtx, gGoldSkulltulaIconTex, 24, 24, 0);
}
}
} else if ((pauseCtx->unk_1E4_ps6_ <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) {
} else if ((pauseCtx->mainSubState <
PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
PAUSE_MAIN_STATE_2_PLAYBACK_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[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],
D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4);
} 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[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
@ -1490,7 +1499,7 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
} else if (pauseCtx->nameColorSet == 0) {
if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= QUEST_SONG_MINUET) &&
(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_EQUIP) && (pauseCtx->cursorX[PAUSE_EQUIP] != 0))) {
if (pauseCtx->namedItem != ITEM_SOLD_OUT) {
@ -1534,7 +1543,7 @@ void KaleidoScope_UpdateSwitchPage_(PlayState* play, Input* input) {
if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == 64) {
pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
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->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->state++; // PAUSE_STATE_OPENING_2 or PAUSE_STATE_IDLE
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->state++; // PAUSE_STATE_OPENING_2 or PAUSE_STATE_MAIN
pauseCtx->alpha = 255;
Interface_LoadActionLabelB(play, DO_ACTION_SAVE);
@ -2633,7 +2642,7 @@ void KaleidoScope_UpdateDungeonMap(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 sTimer_D_8082B260 = 0;
PauseContext* pauseCtx = &play->pauseCtx;
@ -2654,16 +2663,16 @@ void KaleidoScope_Update(PlayState* play) {
if ((R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) &&
(((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)
/* 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 */
))) {
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_IDLE)) {
if ((!pauseCtx->mainSubState /* PAUSE_MAIN_STATE_0_IDLE_ */ ||
(pauseCtx->mainSubState == PAUSE_MAIN_STATE_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_MAIN)) {
pauseCtx->stickRelX = input->rel.stick_x;
pauseCtx->stickRelY = input->rel.stick_y;
@ -2671,14 +2680,15 @@ void KaleidoScope_Update(PlayState* play) {
KaleidoScope_UpdateCursorSize(play);
KaleidoScope_HandlePageToggles(pauseCtx, input);
} else if ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((pauseCtx->unk_1E4_ps6_ <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_))) {
((pauseCtx->mainSubState <
PAUSE_MAIN_STATE_3) /* PAUSE_MAIN_STATE_0_IDLE_, PAUSE_MAIN_STATE_1_SWITCH_PAGE_,
PAUSE_MAIN_STATE_2_PLAYBACK_SONG_ */
|| (pauseCtx->mainSubState == PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_))) {
KaleidoScope_UpdateCursorSize(play);
}
if (pauseCtx->state == PAUSE_STATE_IDLE) {
if (pauseCtx->state == PAUSE_STATE_MAIN) {
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));
KaleidoScope_UpdateOpening_(play);
if (pauseCtx->state == PAUSE_STATE_IDLE) {
if (pauseCtx->state == PAUSE_STATE_MAIN) {
KaleidoScope_UpdateNamePanel(play);
}
break;
case PAUSE_STATE_IDLE:
switch (pauseCtx->unk_1E4_ps6_) {
case PAUSE_S6_0_IDLE_:
case PAUSE_STATE_MAIN:
switch (pauseCtx->mainSubState) {
case PAUSE_MAIN_STATE_0_IDLE_:
if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_CLOSING;
@ -3112,27 +3122,27 @@ void KaleidoScope_Update(PlayState* play) {
}
break;
case PAUSE_S6_1_SWITCH_PAGE_:
case PAUSE_MAIN_STATE_1_SWITCH_PAGE_:
KaleidoScope_UpdateSwitchPage_(play, &play->state.input[0]);
break;
case PAUSE_S6_2_PLAYBACK_SONG_:
case PAUSE_MAIN_STATE_2_PLAYBACK_SONG_:
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->state == 0) {
// 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);
}
break;
case PAUSE_S6_3:
case PAUSE_MAIN_STATE_3:
KaleidoScope_UpdateItemEquip(play);
break;
case PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_:
case PAUSE_MAIN_STATE_4_PLAYER_PLAYING_SONG_INIT_:
break;
case PAUSE_S6_5_PLAYER_PLAYING_SONG_:
case PAUSE_MAIN_STATE_5_PLAYER_PLAYING_SONG_:
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
@ -3141,11 +3151,11 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
break;
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->mode = 0;
pauseCtx->promptChoice = 0;
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,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
D_8082B258_sState66NextState_ = PAUSE_S6_0_IDLE_;
D_8082B258_sState66NextState_ = PAUSE_MAIN_STATE_0_IDLE_;
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) {
// The player failed to play the song
Audio_PlaySfxGeneral(NA_SE_SY_OCARINA_ERROR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&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;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_;
}
break;
case PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_:
case PAUSE_MAIN_STATE_6_PLAYER_PLAYING_SONG_DONE_:
D_8082B25C_sState66NextStateTimer_--;
if (D_8082B25C_sState66NextStateTimer_ == 0) {
pauseCtx->unk_1E4_ps6_ = D_8082B258_sState66NextState_;
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) {
pauseCtx->mainSubState = D_8082B258_sState66NextState_;
if (pauseCtx->mainSubState == PAUSE_MAIN_STATE_0_IDLE_) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
}
}
break;
case PAUSE_S6_7:
case PAUSE_MAIN_STATE_7:
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)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240;
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)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
pauseCtx->mode = 0;
pauseCtx->promptChoice = 0;
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
@ -3216,11 +3226,11 @@ void KaleidoScope_Update(PlayState* play) {
}
break;
case PAUSE_S6_9_PLAYBACK_SONG_START_:
case PAUSE_MAIN_STATE_9_PLAYBACK_SONG_START_:
break;
default:
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mainSubState = PAUSE_MAIN_STATE_0_IDLE_;
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_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
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->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 0.0f;
@ -3322,7 +3332,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 160.0f;
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;
}
break;