1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-04 23:14:37 +00:00

wip 3, comments in KaleidoScope_DrawQuestStatus and starting to figure out the state 6 substates (unk_1E4)

This commit is contained in:
Dragorn421 2022-08-27 20:23:46 +02:00
parent 118e3f84d5
commit 8ddd1c1051
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
11 changed files with 206 additions and 155 deletions

View file

@ -741,7 +741,7 @@ typedef enum {
/* 4 */ PAUSECTX_STATE_4, /* 4 */ PAUSECTX_STATE_4,
/* 5 */ PAUSECTX_STATE_5, /* 5 */ PAUSECTX_STATE_5,
/* 6 */ PAUSECTX_STATE_6, // listen to inputs /* 6 */ PAUSECTX_STATE_6, // listen to inputs
/* 7 */ PAUSECTX_STATE_7, // save /* 7 */ PAUSECTX_STATE_7_SAVE_PROMPT_, // save
/* 8 */ PAUSECTX_STATE_8, // saveGameOver /* 8 */ PAUSECTX_STATE_8, // saveGameOver
/* 9 */ PAUSECTX_STATE_9, // saveGameOver /* 9 */ PAUSECTX_STATE_9, // saveGameOver
/* 10 */ PAUSECTX_STATE_10, // game over saveGameOver /* 10 */ PAUSECTX_STATE_10, // game over saveGameOver
@ -757,16 +757,16 @@ typedef enum {
} PauseCtxState; } PauseCtxState;
typedef enum { typedef enum {
/* 0 */ PAUSE_S6_0, /* 0 */ PAUSE_S6_0_IDLE_,
/* 1 */ PAUSE_S6_1, /* 1 */ PAUSE_S6_1,
/* 2 */ PAUSE_S6_2, /* 2 */ PAUSE_S6_2_PLAYBACK_SONG_,
/* 3 */ PAUSE_S6_3, /* 3 */ PAUSE_S6_3,
/* 4 */ PAUSE_S6_4, /* 4 */ PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
/* 5 */ PAUSE_S6_5_PLAYING_SONG_, /* 5 */ PAUSE_S6_5_PLAYER_PLAYING_SONG_,
/* 6 */ PAUSE_S6_6, /* 6 */ PAUSE_S6_6,
/* 7 */ PAUSE_S6_7, /* 7 */ PAUSE_S6_7,
/* 8 */ PAUSE_S6_8, /* 8 */ PAUSE_S6_8_PLAYBACK_SONG_READY_,
/* 9 */ PAUSE_S6_9 /* 9 */ PAUSE_S6_9_PLAYBACK_SONG_START_
} PauseCtxUnk1E4; } PauseCtxUnk1E4;
typedef enum { typedef enum {
@ -807,7 +807,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; /* 0x01E4 */ u16 unk_1E4_ps6_;
/* 0x01E6 */ u16 mode; /* 0x01E6 */ u16 mode;
/* 0x01E8 */ u16 pageIndex; // "kscp_pos" /* 0x01E8 */ u16 pageIndex; // "kscp_pos"
/* 0x01EA */ u16 unk_1EA; /* 0x01EA */ u16 unk_1EA;

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_MENU_MODE = 1; R_PAUSE_MENU_MODE = 1;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_2 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_2
} }
@ -70,7 +70,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_MENU_MODE = 1; R_PAUSE_MENU_MODE = 1;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_9 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_9
} else if ((pauseCtx->state == PAUSECTX_STATE_2) || (pauseCtx->state == PAUSECTX_STATE_9)) { } else if ((pauseCtx->state == PAUSECTX_STATE_2) || (pauseCtx->state == PAUSECTX_STATE_9)) {

View file

@ -70,7 +70,7 @@ void KaleidoSetup_Init(PlayState* play) {
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
pauseCtx->unk_1EA = 0; pauseCtx->unk_1EA = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->pageIndex = PAUSE_ITEM; pauseCtx->pageIndex = PAUSE_ITEM;

View file

@ -2764,7 +2764,7 @@ void Interface_DrawItemButtons(PlayState* play) {
G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1, R_ITEM_BTN_DD(3) << 1); G_TX_RENDERTILE, 0, 0, R_ITEM_BTN_DD(3) << 1, R_ITEM_BTN_DD(3) << 1);
if ((pauseCtx->state < PAUSECTX_STATE_8) /* PAUSECTX_STATE_0, PAUSECTX_STATE_1, PAUSECTX_STATE_2, PAUSECTX_STATE_3, if ((pauseCtx->state < PAUSECTX_STATE_8) /* PAUSECTX_STATE_0, PAUSECTX_STATE_1, PAUSECTX_STATE_2, PAUSECTX_STATE_3,
PAUSECTX_STATE_4, PAUSECTX_STATE_5, PAUSECTX_STATE_6, PAUSECTX_STATE_7 */ PAUSECTX_STATE_4, PAUSECTX_STATE_5, PAUSECTX_STATE_6, PAUSECTX_STATE_7_SAVE_PROMPT_ */
|| (pauseCtx->state >= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */) { || (pauseCtx->state >= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */) {
if ((play->pauseCtx.state != 0) || (play->pauseCtx.debugState != 0)) { if ((play->pauseCtx.state != 0) || (play->pauseCtx.debugState != 0)) {
// Start Button Texture, Color & Label // Start Button Texture, Color & Label

View file

@ -1448,7 +1448,6 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
Matrix_MultVec3f(&sZeroVec, sCurBodyPartPos); Matrix_MultVec3f(&sZeroVec, sCurBodyPartPos);
} }
if (limbIndex == PLAYER_LIMB_L_HAND) { if (limbIndex == PLAYER_LIMB_L_HAND) {
MtxF sp14C; MtxF sp14C;
Actor* hookedActor; Actor* hookedActor;

View file

@ -29,7 +29,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
static s16 sHpPrimState = 0; static s16 sHpPrimState = 0;
static s16 sPlayedSongBtnsNum = 0; static s16 sPlayedSongBtnsNum = 0;
static s16 D_8082A120 = 0; static s16 D_8082A120_playbackSongStartTimer_ = 0;
static u8 sPlayedSongBtns[8] = { 0 }; static u8 sPlayedSongBtns[8] = { 0 };
static s32 sUnused1 = 0; static s32 sUnused1 = 0;
static void* sOcarinaBtnTextures[] = { static void* sOcarinaBtnTextures[] = {
@ -113,24 +113,30 @@ 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 */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYING_SONG_) || if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) &&
(pauseCtx->pageIndex == PAUSE_QUEST)) { (pauseCtx->pageIndex == PAUSE_QUEST)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
if (pauseCtx->cursorSpecialPos == 0) { if (pauseCtx->cursorSpecialPos == 0) {
pauseCtx->nameColorSet = 0; pauseCtx->nameColorSet = 0;
if ((pauseCtx->state != PAUSECTX_STATE_6) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) { if ((pauseCtx->state != PAUSECTX_STATE_6) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) {
// No cursor movement
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
} else { } else {
// Move cursor based on stick input
i = pauseCtx->cursorPoint[PAUSE_QUEST]; i = pauseCtx->cursorPoint[PAUSE_QUEST];
if (pauseCtx->stickRelX < -30) { if (pauseCtx->stickRelX < -30) {
// Move cursor left
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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
} else { } else {
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -140,10 +146,11 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} }
} else if (pauseCtx->stickRelX > 30) { } else if (pauseCtx->stickRelX > 30) {
// Move cursor right
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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
} else { } else {
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -155,6 +162,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
if (pauseCtx->stickRelY < -30) { if (pauseCtx->stickRelY < -30) {
// Move cursor down
nextCursorPoint = sCursorPointLinks[i][1]; nextCursorPoint = sCursorPointLinks[i][1];
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -163,6 +171,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
nextCursorPoint = sCursorPointLinks[nextCursorPoint][1]; nextCursorPoint = sCursorPointLinks[nextCursorPoint][1];
} }
} else if (pauseCtx->stickRelY > 30) { } else if (pauseCtx->stickRelY > 30) {
// Move cursor up
nextCursorPoint = sCursorPointLinks[i][0]; nextCursorPoint = sCursorPointLinks[i][0];
while (nextCursorPoint >= 0) { while (nextCursorPoint >= 0) {
if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) { if ((s16)KaleidoScope_UpdateQuestStatusPoint(pauseCtx, nextCursorPoint)) {
@ -174,23 +183,27 @@ 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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
} }
// Update cursor item and slot
if (pauseCtx->cursorPoint[PAUSE_QUEST] != QUEST_HEART_PIECE) { if (pauseCtx->cursorPoint[PAUSE_QUEST] != QUEST_HEART_PIECE) {
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_MINUET) { if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_MINUET) {
cursorItem = ITEM_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem =
ITEM_MEDALLION_FOREST - QUEST_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST];
osSyncPrintf("000 ccc=%d\n", cursorItem); osSyncPrintf("000 ccc=%d\n", cursorItem);
} else if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_KOKIRI_EMERALD) { } else if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_KOKIRI_EMERALD) {
cursorItem = ITEM_SCALE_GOLDEN + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem = ITEM_SONG_MINUET - QUEST_SONG_MINUET + pauseCtx->cursorPoint[PAUSE_QUEST];
osSyncPrintf("111 ccc=%d\n", cursorItem); osSyncPrintf("111 ccc=%d\n", cursorItem);
} else { } else {
cursorItem = ITEM_SONG_MINUET + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem =
ITEM_KOKIRI_EMERALD - QUEST_KOKIRI_EMERALD + pauseCtx->cursorPoint[PAUSE_QUEST];
osSyncPrintf("222 ccc=%d (%d, %d, %d)\n", cursorItem, pauseCtx->cursorPoint[PAUSE_QUEST], osSyncPrintf("222 ccc=%d (%d, %d, %d)\n", cursorItem, pauseCtx->cursorPoint[PAUSE_QUEST],
0x12, 0x6C); QUEST_KOKIRI_EMERALD, ITEM_KOKIRI_EMERALD);
} }
} else { } else {
cursorItem = PAUSE_ITEM_NONE; cursorItem = PAUSE_ITEM_NONE;
@ -212,46 +225,58 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorSlot[pauseCtx->pageIndex] = cursor; pauseCtx->cursorSlot[pauseCtx->pageIndex] = cursor;
} }
// Use the appropriate QUEST_MEDALLION_FOREST-QUEST_HEART_PIECE quad (see `KaleidoScope_InitVertices`)
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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])) {
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET]; pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET];
D_8082A120 = 10;
D_8082A120_playbackSongStartTimer_ = 10;
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
sPlayedSongBtns[i] = 0xFF; sPlayedSongBtns[i] = 0xFF;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
} }
sPlayedSongBtnsNum = 0; sPlayedSongBtnsNum = 0;
// Have the player play a song, immediately cancelled below
// Also clear the playback staff
// This has no purpose (?)
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000); AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0; pauseCtx->ocarinaStaff->pos = 0;
pauseCtx->ocarinaStaff->state = 0xFF; pauseCtx->ocarinaStaff->state = 0xFF;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_A) = -62; R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_A) = -62;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_DOWN) = -56; R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_DOWN) = -56;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_RIGHT) = -49; R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_RIGHT) = -49;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_LEFT) = -46; R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_LEFT) = -46;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_UP) = -41; R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_UP) = -41;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_8;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_8_PLAYBACK_SONG_READY_;
// 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_PLAYING_SONG_) { } else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) {
if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) { if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
} else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8) { } else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_) {
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_SONG_STORMS)) { (cursor < QUEST_KOKIRI_EMERALD)) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_9;
D_8082A120 = 10; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_9_PLAYBACK_SONG_START_;
D_8082A120_playbackSongStartTimer_ = 10;
} }
} }
} else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { } else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
@ -259,12 +284,14 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorPoint[PAUSE_QUEST] = QUEST_STONE_OF_AGONY; pauseCtx->cursorPoint[PAUSE_QUEST] = QUEST_STONE_OF_AGONY;
pauseCtx->nameDisplayTimer = 0; pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0; pauseCtx->cursorSpecialPos = 0;
cursor = pauseCtx->cursorPoint[PAUSE_QUEST]; cursor = pauseCtx->cursorPoint[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
cursorItem = ITEM_SONG_MINUET + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem = ITEM_STONE_OF_AGONY - QUEST_STONE_OF_AGONY + pauseCtx->cursorPoint[PAUSE_QUEST];
} else { } else {
cursorItem = PAUSE_ITEM_NONE; cursorItem = PAUSE_ITEM_NONE;
} }
@ -277,11 +304,14 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorPoint[PAUSE_QUEST] = QUEST_MEDALLION_FOREST; pauseCtx->cursorPoint[PAUSE_QUEST] = QUEST_MEDALLION_FOREST;
pauseCtx->nameDisplayTimer = 0; pauseCtx->nameDisplayTimer = 0;
pauseCtx->cursorSpecialPos = 0; pauseCtx->cursorSpecialPos = 0;
cursor = pauseCtx->cursorPoint[PAUSE_QUEST]; cursor = pauseCtx->cursorPoint[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);
if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) { if (CHECK_QUEST_ITEM(pauseCtx->cursorPoint[PAUSE_QUEST])) {
// Only the first if may be reached, as QUEST_MEDALLION_FOREST is set above
if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_MINUET) { if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_MINUET) {
cursorItem = cursorItem =
ITEM_MEDALLION_FOREST - QUEST_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST]; ITEM_MEDALLION_FOREST - QUEST_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST];
@ -301,37 +331,39 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} }
} else { } else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_9_PLAYBACK_SONG_START_) {
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_9) { pauseCtx->cursorColorSet = 8;
pauseCtx->cursorColorSet = 8;
if (--D_8082A120 == 0) { if (--D_8082A120_playbackSongStartTimer_ == 0) {
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
sPlayedSongBtns[i] = 0xFF; sPlayedSongBtns[i] = 0xFF;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
}
sPlayedSongBtnsNum = 0;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_A) = -62;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_DOWN) = -56;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_RIGHT) = -49;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_LEFT) = -46;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_UP) = -41;
cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET];
AudioOcarina_SetPlaybackSong(pauseCtx->ocarinaSongIdx + 1, 1);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_2;
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0;
cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
} }
} else { sPlayedSongBtnsNum = 0;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_A) = -62;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_DOWN) = -56;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_RIGHT) = -49;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_LEFT) = -46;
R_PAUSE_SONG_NOTE_Y(OCARINA_BTN_C_UP) = -41;
cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
pauseCtx->ocarinaSongIdx = gOcarinaSongItemMap[cursor - QUEST_SONG_MINUET];
AudioOcarina_SetPlaybackSong(pauseCtx->ocarinaSongIdx + 1, 1);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_2_PLAYBACK_SONG_;
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0;
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx); KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
} }
} else {
cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
KaleidoScope_SetCursorVtx(pauseCtx, cursor * 4, pauseCtx->questVtx);
} }
// Draw medallions // Draw medallions
@ -521,20 +553,22 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
bufI += 4; bufI += 4;
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_ < PAUSE_S6_3) /* PAUSE_S6_0, PAUSE_S6_1, PAUSE_S6_2 */ || if ((pauseCtx->unk_1E4_ps6_ < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1, PAUSE_S6_2_PLAYBACK_SONG_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYING_SONG_) || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) { (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) {
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, PAUSE_S6_3, PAUSE_S6_4, PAUSE_S6_5_PLAYING_SONG_, // PAUSE_S6_2_PLAYBACK_SONG_, PAUSE_S6_3, PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
// PAUSE_S6_6 // PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6
if ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_2) && (pauseCtx->unk_1E4_ps6_ < PAUSE_S6_7)) { if ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_2_PLAYBACK_SONG_) &&
(pauseCtx->unk_1E4_ps6_ < PAUSE_S6_7)) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
} }
} }
} }
} }
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2) { if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) {
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->pos != 0) { if (pauseCtx->ocarinaStaff->pos != 0) {
@ -579,9 +613,10 @@ 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) && } else if (((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_6)) /* PAUSE_S6_4, PAUSE_S6_5_PLAYING_SONG_, PAUSE_S6_6 */ (pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_6)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) { PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6 */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) {
stepGreen = pauseCtx->ocarinaSongIdx; stepGreen = pauseCtx->ocarinaSongIdx;
stepRed = gOcarinaSongButtons[stepGreen].numButtons; stepRed = gOcarinaSongButtons[stepGreen].numButtons;
@ -594,7 +629,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8) { if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_) {
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 {
@ -616,7 +651,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) { if (pauseCtx->unk_1E4_ps6_ != PAUSE_S6_8_PLAYBACK_SONG_READY_) {
pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlayingStaff();
if (pauseCtx->ocarinaStaff->pos != 0) { if (pauseCtx->ocarinaStaff->pos != 0) {
@ -668,19 +703,20 @@ 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) { if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) {
for (i = 0; i < 8; i++) { for (i = 0; i < 8; i++) {
sPlayedSongBtns[i] = 0xFF; sPlayedSongBtns[i] = 0xFF;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
} }
sPlayedSongBtnsNum = 0; sPlayedSongBtnsNum = 0;
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_DEFAULT);
AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000); AudioOcarina_Start((1 << pauseCtx->ocarinaSongIdx) + 0x8000);
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
pauseCtx->ocarinaStaff->pos = 0; pauseCtx->ocarinaStaff->pos = 0;
pauseCtx->ocarinaStaff->state = 0xFE; pauseCtx->ocarinaStaff->state = 0xFE;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_5_PLAYING_SONG_;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_5_PLAYER_PLAYING_SONG_;
} }
} }
} }

View file

@ -150,7 +150,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
} }
} }
if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && (pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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) ||
@ -515,7 +515,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
sEquipTimer--; sEquipTimer--;
if (sEquipTimer == 0) { if (sEquipTimer == 0) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
} }
} }

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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) &&
(pauseCtx->pageIndex == PAUSE_ITEM)) { (pauseCtx->pageIndex == PAUSE_ITEM)) {
moveCursorResult = 0; moveCursorResult = 0;
oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM]; oldCursorPoint = pauseCtx->cursorPoint[PAUSE_ITEM];
@ -346,7 +346,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx); KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx);
if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSECTX_STATE_6) && if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSECTX_STATE_6) &&
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0)) { (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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))) &&
@ -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) && (pauseCtx->pageIndex == PAUSE_ITEM) && if ((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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];
@ -562,9 +562,11 @@ void KaleidoScope_DrawWorldMap(PlayState* play, GraphicsContext* gfxCtx) {
for (j = i = 0; i < 8; i++, j += 4) { for (j = i = 0; i < 8; i++, j += 4) {
if (!(gSaveContext.worldMapAreaData & gBitFlags[cloudFlagNums[k + i]])) { if (!(gSaveContext.worldMapAreaData & gBitFlags[cloudFlagNums[k + i]])) {
gDPLoadTextureBlock_4b(POLY_OPA_DISP++, cloudTexs[k + i], G_IM_FMT_I, D_8082AAEC_width_MAP_PAGE_VTX_NOT_IN_DUNGEON_SCENE_[k + i], gDPLoadTextureBlock_4b(POLY_OPA_DISP++, cloudTexs[k + i], G_IM_FMT_I,
D_8082AB2C_height_MAP_PAGE_VTX_NOT_IN_DUNGEON_SCENE_[k + i], 0, G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, D_8082AAEC_width_MAP_PAGE_VTX_NOT_IN_DUNGEON_SCENE_[k + i],
G_TX_NOMASK, G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD); D_8082AB2C_height_MAP_PAGE_VTX_NOT_IN_DUNGEON_SCENE_[k + i], 0,
G_TX_WRAP | G_TX_NOMIRROR, G_TX_WRAP | G_TX_NOMIRROR, G_TX_NOMASK,
G_TX_NOMASK, G_TX_NOLOD, G_TX_NOLOD);
gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0); gSP1Quadrangle(POLY_OPA_DISP++, j, j + 2, j + 3, j + 1, 0);
} }

View file

@ -8,7 +8,7 @@ void KaleidoScope_UpdatePrompt(PlayState* play) {
s8 relStickX = input->rel.stick_x; s8 relStickX = input->rel.stick_x;
s16 step; s16 step;
if (((pauseCtx->state == PAUSECTX_STATE_7) && (pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_1)) || if (((pauseCtx->state == PAUSECTX_STATE_7_SAVE_PROMPT_) && (pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_1)) ||
(pauseCtx->state == PAUSECTX_STATE_14) || (pauseCtx->state == PAUSECTX_STATE_16)) { (pauseCtx->state == PAUSECTX_STATE_14) || (pauseCtx->state == PAUSECTX_STATE_16)) {
if ((pauseCtx->promptChoice == 0) && (relStickX >= 30)) { if ((pauseCtx->promptChoice == 0) && (relStickX >= 30)) {
Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, Audio_PlaySfxGeneral(NA_SE_SY_CURSOR, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale,

View file

@ -458,9 +458,11 @@ void KaleidoScope_DrawCursor(PlayState* play, u16 pageIndex) {
temp = pauseCtx->unk_1E4_ps6_; temp = pauseCtx->unk_1E4_ps6_;
if ((((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) || (temp == PAUSE_S6_8)) && (pauseCtx->state == PAUSECTX_STATE_6)) || if ((((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) || (temp == PAUSE_S6_8_PLAYBACK_SONG_READY_)) &&
((pauseCtx->pageIndex == PAUSE_QUEST) && ((temp < PAUSE_S6_3) /* PAUSE_S6_0, PAUSE_S6_1, PAUSE_S6_2 */ || (pauseCtx->state == PAUSECTX_STATE_6)) ||
(temp == PAUSE_S6_5_PLAYING_SONG_) || (temp == PAUSE_S6_8)))) { ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((temp < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1, PAUSE_S6_2_PLAYBACK_SONG_ */ ||
(temp == PAUSE_S6_5_PLAYER_PLAYING_SONG_) || (temp == PAUSE_S6_8_PLAYBACK_SONG_READY_)))) {
if (pauseCtx->pageIndex == pageIndex) { if (pauseCtx->pageIndex == pageIndex) {
s16 i; s16 i;
@ -559,10 +561,10 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
if ((pauseCtx->state < if ((pauseCtx->state <
PAUSECTX_STATE_8) /* PAUSECTX_STATE_0, PAUSECTX_STATE_1, PAUSECTX_STATE_2, PAUSECTX_STATE_3, PAUSECTX_STATE_4, PAUSECTX_STATE_8) /* PAUSECTX_STATE_0, PAUSECTX_STATE_1, PAUSECTX_STATE_2, PAUSECTX_STATE_3, PAUSECTX_STATE_4,
PAUSECTX_STATE_5, PAUSECTX_STATE_6, PAUSECTX_STATE_7 */ PAUSECTX_STATE_5, PAUSECTX_STATE_6, PAUSECTX_STATE_7_SAVE_PROMPT_ */
|| (pauseCtx->state > || (pauseCtx->state >
PAUSECTX_STATE_17) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */) { PAUSECTX_STATE_17) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */) {
if (pauseCtx->state != PAUSECTX_STATE_7) { if (pauseCtx->state != PAUSECTX_STATE_7_SAVE_PROMPT_) {
stepR = ABS(sColor82ABRed_D_8082AB8C - stepR = ABS(sColor82ABRed_D_8082AB8C -
sCursorColors_D_8082ACF4[pauseCtx->cursorColorSet + sCursorColorBlinkOffset_D_8082AD40][0]) / sCursorColors_D_8082ACF4[pauseCtx->cursorColorSet + sCursorColorBlinkOffset_D_8082AD40][0]) /
sCursorColorBlinkTimer_D_8082AD3C; sCursorColorBlinkTimer_D_8082AD3C;
@ -837,7 +839,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
Gfx_SetupDL_42Opa(gfxCtx); Gfx_SetupDL_42Opa(gfxCtx);
if ((pauseCtx->state == PAUSECTX_STATE_7) || if ((pauseCtx->state == PAUSECTX_STATE_7_SAVE_PROMPT_) ||
((pauseCtx->state >= PAUSECTX_STATE_8) && (pauseCtx->state < PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE)) ((pauseCtx->state >= PAUSECTX_STATE_8) && (pauseCtx->state < PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE))
/* PAUSECTX_STATE_8, PAUSECTX_STATE_9, PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12, /* PAUSECTX_STATE_8, PAUSECTX_STATE_9, PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12,
PAUSECTX_STATE_13, PAUSECTX_STATE_14, PAUSECTX_STATE_15, PAUSECTX_STATE_16, PAUSECTX_STATE_17 */ PAUSECTX_STATE_13, PAUSECTX_STATE_14, PAUSECTX_STATE_15, PAUSECTX_STATE_16, PAUSECTX_STATE_17 */
@ -889,7 +891,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
gSPVertex(POLY_OPA_DISP++, &pauseCtx->saveVtx[60], 32, 0); gSPVertex(POLY_OPA_DISP++, &pauseCtx->saveVtx[60], 32, 0);
if (((pauseCtx->state == PAUSECTX_STATE_7) && (pauseCtx->unk_1EC < PAUSECTX_UNK_1EC_4) if (((pauseCtx->state == PAUSECTX_STATE_7_SAVE_PROMPT_) && (pauseCtx->unk_1EC < PAUSECTX_UNK_1EC_4)
/* PAUSECTX_UNK_1EC_0, PAUSECTX_UNK_1EC_1, PAUSECTX_UNK_1EC_2, PAUSECTX_UNK_1EC_3 */) || /* PAUSECTX_UNK_1EC_0, PAUSECTX_UNK_1EC_1, PAUSECTX_UNK_1EC_2, PAUSECTX_UNK_1EC_3 */) ||
(pauseCtx->state == PAUSECTX_STATE_14)) { (pauseCtx->state == PAUSECTX_STATE_14)) {
POLY_OPA_DISP = POLY_OPA_DISP =
@ -914,7 +916,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
POLY_OPA_DISP = POLY_OPA_DISP =
KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, 16, 16); KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, sPromptChoiceTexs[gSaveContext.language][1], 48, 16, 16);
} else if ((pauseCtx->state != PAUSECTX_STATE_7) || (pauseCtx->unk_1EC < PAUSECTX_UNK_1EC_4) } else if ((pauseCtx->state != PAUSECTX_STATE_7_SAVE_PROMPT_) || (pauseCtx->unk_1EC < PAUSECTX_UNK_1EC_4)
/* PAUSECTX_UNK_1EC_0, PAUSECTX_UNK_1EC_1, PAUSECTX_UNK_1EC_2, PAUSECTX_UNK_1EC_3 */) { /* PAUSECTX_UNK_1EC_0, PAUSECTX_UNK_1EC_1, PAUSECTX_UNK_1EC_2, PAUSECTX_UNK_1EC_3 */) {
if ((pauseCtx->state != PAUSECTX_STATE_15) && if ((pauseCtx->state != PAUSECTX_STATE_15) &&
((pauseCtx->state == PAUSECTX_STATE_16) || (pauseCtx->state == PAUSECTX_STATE_17))) { ((pauseCtx->state == PAUSECTX_STATE_16) || (pauseCtx->state == PAUSECTX_STATE_17))) {
@ -1087,7 +1089,7 @@ 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)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) {
pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = WREG(16); pauseCtx->infoPanelVtx[8].v.ob[0] = pauseCtx->infoPanelVtx[10].v.ob[0] = WREG(16);
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;
@ -1107,7 +1109,7 @@ 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)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) {
pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = WREG(17); pauseCtx->infoPanelVtx[12].v.ob[0] = pauseCtx->infoPanelVtx[14].v.ob[0] = WREG(17);
pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] = pauseCtx->infoPanelVtx[13].v.ob[0] = pauseCtx->infoPanelVtx[15].v.ob[0] =
@ -1148,7 +1150,7 @@ 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)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6);
} }
@ -1156,7 +1158,7 @@ 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)) { if ((pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6); gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, D_808321A0, D_808321A2, D_808321A4, D_808321A6);
} }
@ -1183,15 +1185,17 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) && if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) &&
(pauseCtx->nameDisplayTimer < WREG(89)) && (pauseCtx->nameDisplayTimer < WREG(89)) &&
(!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0 */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2) || (!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) ||
((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4) && ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_7)) /* PAUSE_S6_4, PAUSE_S6_5_PLAYING_SONG_, PAUSE_S6_6, PAUSE_S6_7 */ (pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) && PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6, PAUSE_S6_7 */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) &&
(pauseCtx->cursorSpecialPos == 0)) { (pauseCtx->cursorSpecialPos == 0)) {
if (!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0 */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2) || 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) && ((pauseCtx->unk_1E4_ps6_ >= PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_7)) /* PAUSE_S6_4, PAUSE_S6_5_PLAYING_SONG_, PAUSE_S6_6, PAUSE_S6_7 */ (pauseCtx->unk_1E4_ps6_ <= PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_,
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) { PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6, PAUSE_S6_7 */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) {
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] =
@ -1251,8 +1255,9 @@ 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_ < PAUSE_S6_3) /* PAUSE_S6_0, PAUSE_S6_1, PAUSE_S6_2 */ } else if ((pauseCtx->unk_1E4_ps6_ < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1, PAUSE_S6_2_PLAYBACK_SONG_ */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) { || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_7) ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) {
pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = temp; pauseCtx->infoPanelVtx[20].v.ob[1] = pauseCtx->infoPanelVtx[21].v.ob[1] = temp;
pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] = pauseCtx->infoPanelVtx[22].v.ob[1] = pauseCtx->infoPanelVtx[23].v.ob[1] =
@ -1262,7 +1267,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 8, 0); gSPVertex(POLY_OPA_DISP++, &pauseCtx->infoPanelVtx[16], 8, 0);
if (pauseCtx->state == PAUSECTX_STATE_7) { if (pauseCtx->state == PAUSECTX_STATE_7_SAVE_PROMPT_) {
pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = WREG(61 + gSaveContext.language); pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = WREG(61 + gSaveContext.language);
pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
@ -1287,7 +1292,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60[gSaveContext.language], POLY_OPA_DISP = KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60[gSaveContext.language],
D_8082ADE0[gSaveContext.language], 16, 4); D_8082ADE0[gSaveContext.language], 16, 4);
} else if (pauseCtx->cursorSpecialPos != 0) { } else if (pauseCtx->cursorSpecialPos != 0) {
if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0)) { if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_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] =
@ -1442,7 +1447,8 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
} }
} else if (pauseCtx->nameColorSet == 0) { } else if (pauseCtx->nameColorSet == 0) {
if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) && if (((pauseCtx->pageIndex == PAUSE_QUEST) && (pauseCtx->cursorSlot[PAUSE_QUEST] >= 6) &&
(pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) || (pauseCtx->cursorSlot[PAUSE_QUEST] <= 0x11) &&
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) ||
(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) {
@ -1487,7 +1493,7 @@ void func_808237B4(PlayState* play, Input* input) {
if (pauseCtx->unk_1EA == 64) { if (pauseCtx->unk_1EA == 64) {
pauseCtx->unk_1EA = 0; pauseCtx->unk_1EA = 0;
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
} }
} }
} }
@ -1902,7 +1908,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
if ((pauseCtx->state == PAUSECTX_STATE_4) || if ((pauseCtx->state == PAUSECTX_STATE_4) ||
(pauseCtx->state >= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */ || (pauseCtx->state >= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSECTX_STATE_19_UNPAUSE */ ||
((pauseCtx->state == PAUSECTX_STATE_7) && ((pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_2) || (pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_5))) || ((pauseCtx->state == PAUSECTX_STATE_7_SAVE_PROMPT_) && ((pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_2) || (pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_5))) ||
((pauseCtx->state >= PAUSECTX_STATE_8) && (pauseCtx->state <= PAUSECTX_STATE_13)) ((pauseCtx->state >= PAUSECTX_STATE_8) && (pauseCtx->state <= PAUSECTX_STATE_13))
/* PAUSECTX_STATE_8, PAUSECTX_STATE_9, PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12, PAUSECTX_STATE_13 */) { /* PAUSECTX_STATE_8, PAUSECTX_STATE_9, PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12, PAUSECTX_STATE_13 */) {
pauseCtx->offsetY = 80; pauseCtx->offsetY = 80;
@ -2246,7 +2252,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
for (k = 0, j = 0; j < 47; j++, k += 4) { for (k = 0, j = 0; j < 47; j++, k += 4) {
phi_t2_2_width__ = D_8082B1F8_width_questVtx_[j]; phi_t2_2_width__ = D_8082B1F8_width_questVtx_[j];
if ((j < 6) || (j >= 41)) { if ((j < QUEST_SONG_MINUET) || (j >= 41)) {
pauseCtx->questVtx[k + 0].v.ob[0] = pauseCtx->questVtx[k + 2].v.ob[0] = D_8082B138_x_questVtx[j]; pauseCtx->questVtx[k + 0].v.ob[0] = pauseCtx->questVtx[k + 2].v.ob[0] = D_8082B138_x_questVtx[j];
pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] = pauseCtx->questVtx[k + 1].v.ob[0] = pauseCtx->questVtx[k + 3].v.ob[0] =
@ -2271,7 +2277,7 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
phi_t2_2_width__ = 8; phi_t2_2_width__ = 8;
} }
} else { } else {
if ((j >= 6) && (j <= 17)) { if ((j >= QUEST_SONG_MINUET) && (j < QUEST_KOKIRI_EMERALD)) {
phi_t2_2_width__ = 16; phi_t2_2_width__ = 16;
} }
@ -2449,7 +2455,7 @@ void func_808265BC_switchPageToSave___(PlayState* play) {
gSaveContext.buttonStatus[3] = D_8082AB6C[pauseCtx->pageIndex][3]; gSaveContext.buttonStatus[3] = D_8082AB6C[pauseCtx->pageIndex][3];
gSaveContext.buttonStatus[4] = D_8082AB6C[pauseCtx->pageIndex][4]; gSaveContext.buttonStatus[4] = D_8082AB6C[pauseCtx->pageIndex][4];
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->state++; // PAUSECTX_STATE_5 or PAUSECTX_STATE_6 pauseCtx->state++; // PAUSECTX_STATE_5 or PAUSECTX_STATE_6
pauseCtx->alpha = 255; pauseCtx->alpha = 255;
Interface_LoadActionLabelB(play, DO_ACTION_SAVE); Interface_LoadActionLabelB(play, DO_ACTION_SAVE);
@ -2580,8 +2586,8 @@ void KaleidoScope_UpdateDungeonMap(PlayState* play) {
} }
void KaleidoScope_Update(PlayState* play) { void KaleidoScope_Update(PlayState* play) {
static s16 D_8082B258 = PAUSE_S6_0; static s16 D_8082B258_sState66NextState_ = PAUSE_S6_0_IDLE_;
static s16 D_8082B25C = 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;
InterfaceContext* interfaceCtx = &play->interfaceCtx; InterfaceContext* interfaceCtx = &play->interfaceCtx;
@ -2600,21 +2606,22 @@ void KaleidoScope_Update(PlayState* play) {
s32 pad; s32 pad;
if ((R_PAUSE_MENU_MODE >= 3) && (((pauseCtx->state >= PAUSECTX_STATE_4) && if ((R_PAUSE_MENU_MODE >= 3) && (((pauseCtx->state >= PAUSECTX_STATE_4) &&
(pauseCtx->state <= PAUSECTX_STATE_7)) /* PAUSECTX_STATE_4, PAUSECTX_STATE_5, (pauseCtx->state <= PAUSECTX_STATE_7_SAVE_PROMPT_)) /* PAUSECTX_STATE_4, PAUSECTX_STATE_5,
PAUSECTX_STATE_6, PAUSECTX_STATE_7 */ PAUSECTX_STATE_6, PAUSECTX_STATE_7_SAVE_PROMPT_ */
|| ((pauseCtx->state >= PAUSECTX_STATE_10) && (pauseCtx || ((pauseCtx->state >= PAUSECTX_STATE_10) && (pauseCtx
->state <= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE)) ->state <= PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE))
/* PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12, PAUSECTX_STATE_13, PAUSECTX_STATE_14, PAUSECTX_STATE_15, PAUSECTX_STATE_16, PAUSECTX_STATE_17, PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE */)) { /* PAUSECTX_STATE_10, PAUSECTX_STATE_11, PAUSECTX_STATE_12, PAUSECTX_STATE_13, PAUSECTX_STATE_14, PAUSECTX_STATE_15, PAUSECTX_STATE_16, PAUSECTX_STATE_17, PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE */)) {
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0 */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8)) && if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_PLAYBACK_SONG_READY_)) &&
(pauseCtx->state == PAUSECTX_STATE_6)) { (pauseCtx->state == PAUSECTX_STATE_6)) {
pauseCtx->stickRelX = input->rel.stick_x; pauseCtx->stickRelX = input->rel.stick_x;
pauseCtx->stickRelY = input->rel.stick_y; pauseCtx->stickRelY = input->rel.stick_y;
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_ < PAUSE_S6_3) /* PAUSE_S6_0, PAUSE_S6_1, PAUSE_S6_2 */ ((pauseCtx->unk_1E4_ps6_ < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1, PAUSE_S6_2_PLAYBACK_SONG_ */
|| (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYING_SONG_))) { || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_))) {
KaleidoScope_UpdateCursorSize(play); KaleidoScope_UpdateCursorSize(play);
} }
@ -3024,7 +3031,7 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSECTX_STATE_6: case PAUSECTX_STATE_6:
switch (pauseCtx->unk_1E4_ps6_) { switch (pauseCtx->unk_1E4_ps6_) {
case PAUSE_S6_0: case PAUSE_S6_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 = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE;
@ -3041,7 +3048,7 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.unk_13EA = 0; gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(50); Interface_ChangeAlpha(50);
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0;
pauseCtx->state = PAUSECTX_STATE_7; pauseCtx->state = PAUSECTX_STATE_7_SAVE_PROMPT_;
} }
break; break;
@ -3049,10 +3056,11 @@ void KaleidoScope_Update(PlayState* play) {
func_808237B4(play, play->state.input); func_808237B4(play, play->state.input);
break; break;
case PAUSE_S6_2: case PAUSE_S6_2_PLAYBACK_SONG_:
pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff(); pauseCtx->ocarinaStaff = AudioOcarina_GetPlaybackStaff();
if (pauseCtx->ocarinaStaff->state == 0) { if (pauseCtx->ocarinaStaff->state == 0) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_4; // Song playback is finished
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_;
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
break; break;
@ -3061,10 +3069,10 @@ void KaleidoScope_Update(PlayState* play) {
KaleidoScope_UpdateItemEquip(play); KaleidoScope_UpdateItemEquip(play);
break; break;
case PAUSE_S6_4: case PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_:
break; break;
case PAUSE_S6_5_PLAYING_SONG_: case PAUSE_S6_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)) {
@ -3073,11 +3081,11 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->state = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE;
WREG(2) = -6240; WREG(2) = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_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,
@ -3088,27 +3096,33 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.unk_13EA = 0; gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(50); Interface_ChangeAlpha(50);
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0;
pauseCtx->state = PAUSECTX_STATE_7; pauseCtx->state = PAUSECTX_STATE_7_SAVE_PROMPT_;
} else if (pauseCtx->ocarinaStaff->state == pauseCtx->ocarinaSongIdx) { } else if (pauseCtx->ocarinaStaff->state == pauseCtx->ocarinaSongIdx) {
// The player successfully played the song
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 = PAUSE_S6_0;
D_8082B25C = 30; D_8082B258_sState66NextState_ = PAUSE_S6_0_IDLE_;
D_8082B25C_sState66NextStateTimer_ = 30;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6;
} else if (pauseCtx->ocarinaStaff->state == 0xFF) { } else if (pauseCtx->ocarinaStaff->state == 0xFF) {
// 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 = PAUSE_S6_4;
D_8082B25C = 20; D_8082B258_sState66NextState_ = PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_;
D_8082B25C_sState66NextStateTimer_ = 20;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_6;
} }
break; break;
case PAUSE_S6_6: case PAUSE_S6_6:
D_8082B25C--; D_8082B25C_sState66NextStateTimer_--;
if (D_8082B25C == 0) { if (D_8082B25C_sState66NextStateTimer_ == 0) {
pauseCtx->unk_1E4_ps6_ = D_8082B258; pauseCtx->unk_1E4_ps6_ = D_8082B258_sState66NextState_;
if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0) { if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
} }
} }
@ -3117,17 +3131,17 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_S6_7: case PAUSE_S6_7:
break; break;
case PAUSE_S6_8: case PAUSE_S6_8_PLAYBACK_SONG_READY_:
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 = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE;
WREG(2) = -6240; WREG(2) = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_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; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_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,
@ -3138,20 +3152,20 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.unk_13EA = 0; gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(50); Interface_ChangeAlpha(50);
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0;
pauseCtx->state = PAUSECTX_STATE_7; pauseCtx->state = PAUSECTX_STATE_7_SAVE_PROMPT_;
} }
break; break;
case PAUSE_S6_9: case PAUSE_S6_9_PLAYBACK_SONG_START_:
break; break;
default: default:
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
break; break;
} }
break; break;
case PAUSECTX_STATE_7: case PAUSECTX_STATE_7_SAVE_PROMPT_:
switch (pauseCtx->unk_1EC) { switch (pauseCtx->unk_1EC) {
case PAUSECTX_UNK_1EC_0: case PAUSECTX_UNK_1EC_0:
pauseCtx->rotXorZ_unk_204 -= 314.0f / WREG(6); pauseCtx->rotXorZ_unk_204 -= 314.0f / WREG(6);
@ -3183,7 +3197,7 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.savedSceneId = play->sceneId; gSaveContext.savedSceneId = play->sceneId;
Sram_WriteSave(&play->sramCtx); Sram_WriteSave(&play->sramCtx);
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_4; pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_4;
D_8082B25C = 3; D_8082B25C_sState66NextStateTimer_ = 3;
} }
} else if (CHECK_BTN_ALL(input->press.button, BTN_START) || } else if (CHECK_BTN_ALL(input->press.button, BTN_START) ||
CHECK_BTN_ALL(input->press.button, BTN_B)) { CHECK_BTN_ALL(input->press.button, BTN_B)) {
@ -3201,7 +3215,7 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSECTX_UNK_1EC_4: case PAUSECTX_UNK_1EC_4:
if (CHECK_BTN_ALL(input->press.button, BTN_B) || CHECK_BTN_ALL(input->press.button, BTN_A) || if (CHECK_BTN_ALL(input->press.button, BTN_B) || CHECK_BTN_ALL(input->press.button, BTN_A) ||
CHECK_BTN_ALL(input->press.button, BTN_START) || (--D_8082B25C == 0)) { CHECK_BTN_ALL(input->press.button, BTN_START) || (--D_8082B25C_sState66NextStateTimer_ == 0)) {
Interface_SetDoAction(play, DO_ACTION_NONE); Interface_SetDoAction(play, DO_ACTION_NONE);
gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] = gSaveContext.buttonStatus[0] = gSaveContext.buttonStatus[1] = gSaveContext.buttonStatus[2] =
gSaveContext.buttonStatus[3] = BTN_ENABLED; gSaveContext.buttonStatus[3] = BTN_ENABLED;
@ -3248,7 +3262,7 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->rotXpauseItem_unk_1F4 = pauseCtx->rotPauseEquip_unk_1F8 = pauseCtx->rotXpauseItem_unk_1F4 = pauseCtx->rotPauseEquip_unk_1F8 =
pauseCtx->rotPauseMap_unk_1FC = pauseCtx->rotPauseQuest_unk_200 = 160.0f; pauseCtx->rotPauseMap_unk_1FC = pauseCtx->rotPauseQuest_unk_200 = 160.0f;
pauseCtx->namedItem = PAUSE_ITEM_NONE; pauseCtx->namedItem = PAUSE_ITEM_NONE;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->rotXorZ_unk_204 = -434.0f; pauseCtx->rotXorZ_unk_204 = -434.0f;
} }
break; break;
@ -3424,17 +3438,17 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.savedSceneId = play->sceneId; gSaveContext.savedSceneId = play->sceneId;
Sram_WriteSave(&play->sramCtx); Sram_WriteSave(&play->sramCtx);
pauseCtx->state = PAUSECTX_STATE_15; pauseCtx->state = PAUSECTX_STATE_15;
D_8082B25C = 3; D_8082B25C_sState66NextStateTimer_ = 3;
} }
} }
break; break;
case PAUSECTX_STATE_15: case PAUSECTX_STATE_15:
D_8082B25C--; D_8082B25C_sState66NextStateTimer_--;
if (D_8082B25C == 0) { if (D_8082B25C_sState66NextStateTimer_ == 0) {
pauseCtx->state = PAUSECTX_STATE_16; pauseCtx->state = PAUSECTX_STATE_16;
gameOverCtx->state++; gameOverCtx->state++;
} else if ((D_8082B25C <= 80) && } else if ((D_8082B25C_sState66NextStateTimer_ <= 80) &&
(CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_START))) { (CHECK_BTN_ALL(input->press.button, BTN_A) || CHECK_BTN_ALL(input->press.button, BTN_START))) {
pauseCtx->state = PAUSECTX_STATE_16; pauseCtx->state = PAUSECTX_STATE_16;
gameOverCtx->state++; gameOverCtx->state++;