1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-02-23 15:55:47 +00:00

Name pause states except saving/gameover and related/misc docs

This commit is contained in:
Dragorn421 2022-08-29 12:10:39 +02:00
parent 5fdf0f529f
commit 4330108a1b
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
20 changed files with 272 additions and 223 deletions

View file

@ -1086,7 +1086,7 @@ s32 Player_OverrideLimbDrawGameplay_80090440(PlayState* play, s32 limbIndex, Gfx
u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase); u8 func_80090480(PlayState* play, ColliderQuad* collider, WeaponInfo* weaponInfo, Vec3f* newTip, Vec3f* newBase);
void Player_DrawGetItem(PlayState* play, Player* this); void Player_DrawGetItem(PlayState* play, Player* this);
void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx); void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, void* thisx);
u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime); u32 Player_InitDrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime);
void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale, void Player_DrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime, Vec3f* pos, Vec3s* rot, f32 scale,
s32 sword, s32 tunic, s32 shield, s32 boots); s32 sword, s32 tunic, s32 shield, s32 boots);
void PreNMI_Init(GameState* thisx); void PreNMI_Init(GameState* thisx);

View file

@ -133,9 +133,13 @@
#define R_B_LABEL_DD WREG(0) #define R_B_LABEL_DD WREG(0)
#define R_PAUSE_OFFSET_VERTICAL WREG(2) #define R_PAUSE_OFFSET_VERTICAL WREG(2)
#define R_PAUSE_OFFSET_DEPTH WREG(3) #define R_PAUSE_OFFSET_DEPTH WREG(3)
#define R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION WREG(4)
#define R_PAUSE_UI_ANIMS_DURATION WREG(6)
#define R_PAUSE_CURSOR_LEFT_X WREG(16) #define R_PAUSE_CURSOR_LEFT_X WREG(16)
#define R_PAUSE_CURSOR_RIGHT_X WREG(17) #define R_PAUSE_CURSOR_RIGHT_X WREG(17)
#define R_PAUSE_CURSOR_LEFT_RIGHT_Y WREG(18) #define R_PAUSE_CURSOR_LEFT_RIGHT_Y WREG(18)
#define R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X WREG(25)
#define R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X WREG(26)
#define R_OW_MINIMAP_X WREG(29) #define R_OW_MINIMAP_X WREG(29)
#define R_OW_MINIMAP_Y WREG(30) #define R_OW_MINIMAP_Y WREG(30)
#define R_MINIMAP_DISABLED WREG(31) #define R_MINIMAP_DISABLED WREG(31)
@ -143,6 +147,8 @@
#define R_B_LABEL_Y(i) WREG(43 + (i)) #define R_B_LABEL_Y(i) WREG(43 + (i))
#define R_DGN_MINIMAP_X WREG(68) #define R_DGN_MINIMAP_X WREG(68)
#define R_DGN_MINIMAP_Y WREG(69) #define R_DGN_MINIMAP_Y WREG(69)
#define R_PAUSE_NAME_DISPLAY_TIMER_MAX_ WREG(88)
#define R_PAUSE_NAME_DISPLAY_TIMER_THRESHOLD_ WREG(89)
#define R_TEXTBOX_X VREG(0) #define R_TEXTBOX_X VREG(0)
#define R_TEXTBOX_Y VREG(1) #define R_TEXTBOX_Y VREG(1)
#define R_TEXTBOX_CLEF_XPOS VREG(7) #define R_TEXTBOX_CLEF_XPOS VREG(7)

View file

@ -742,13 +742,13 @@ typedef enum {
#define PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE 0x5000 #define PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE 0x5000
typedef enum { typedef enum {
/* 0 */ PAUSE_STATE_0, /* 0 */ PAUSE_STATE_OFF,
/* 1 */ PAUSE_STATE_1, /* 1 */ PAUSE_STATE_WAIT_LETTERBOX, // Request no letterboxing and wait for it.
/* 2 */ PAUSE_STATE_2, /* 2 */ PAUSE_STATE_WAIT_BG_PRERENDER, // Wait for the pause background prerender to be done.
/* 3 */ PAUSE_STATE_3, /* 3 */ PAUSE_STATE_INIT, // Load data and initialize/setup various things.
/* 4 */ PAUSE_STATE_4, /* 4 */ PAUSE_STATE_OPENING_1, // Animate the pause menu coming together with rotations and other animations.
/* 5 */ PAUSE_STATE_5, /* 5 */ PAUSE_STATE_OPENING_2, // Finish some animations for opening the menu.
/* 6 */ PAUSE_STATE_6, // listen to inputs /* 6 */ PAUSE_STATE_IDLE, // Pause menu ready for player inputs.
/* 7 */ PAUSE_STATE_7_SAVE_PROMPT_, // save /* 7 */ PAUSE_STATE_7_SAVE_PROMPT_, // save
/* 8 */ PAUSE_STATE_8, // saveGameOver /* 8 */ PAUSE_STATE_8, // saveGameOver
/* 9 */ PAUSE_STATE_9, // saveGameOver /* 9 */ PAUSE_STATE_9, // saveGameOver
@ -760,8 +760,8 @@ typedef enum {
/* 15 */ PAUSE_STATE_15, // game over KaleidoScope_DrawGameOver saveGameOver /* 15 */ PAUSE_STATE_15, // game over KaleidoScope_DrawGameOver saveGameOver
/* 16 */ PAUSE_STATE_16, // game over KaleidoScope_DrawGameOver saveGameOver /* 16 */ PAUSE_STATE_16, // game over KaleidoScope_DrawGameOver saveGameOver
/* 17 */ PAUSE_STATE_17, // game over KaleidoScope_DrawGameOver saveGameOver /* 17 */ PAUSE_STATE_17, // game over KaleidoScope_DrawGameOver saveGameOver
/* 18 */ PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, /* 18 */ PAUSE_STATE_CLOSING, // Animate the pause menu closing
/* 19 */ PAUSE_STATE_19_UNPAUSE /* 19 */ PAUSE_STATE_UNPAUSE
} PauseCtxState; } PauseCtxState;
typedef enum { typedef enum {
@ -826,7 +826,7 @@ typedef struct {
/* 0x01E4 */ u16 unk_1E4_ps6_; /* 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_PageSwitchTimer__; /* 0x01EA */ u16 unk_1EA_OpenMenuAndPageSwitchTimer__;
/* 0x01EC */ u16 unk_1EC_ps7_; /* 0x01EC */ u16 unk_1EC_ps7_;
/* 0x01F0 */ f32 savePromptOffsetDepth_unk_1F0; /* 0x01F0 */ f32 savePromptOffsetDepth_unk_1F0;
/* 0x01F4 */ f32 rollRotPageItem; /* 0x01F4 */ f32 rollRotPageItem;

View file

@ -3144,7 +3144,7 @@ f32 BgCheck_RaycastFloorDyna(DynaRaycast* dynaRaycast) {
dynaActor = DynaPoly_GetActor(dynaRaycast->colCtx, *dynaRaycast->bgId); dynaActor = DynaPoly_GetActor(dynaRaycast->colCtx, *dynaRaycast->bgId);
if ((result != BGCHECK_Y_MIN) && (dynaActor != NULL) && (dynaRaycast->play != NULL)) { if ((result != BGCHECK_Y_MIN) && (dynaActor != NULL) && (dynaRaycast->play != NULL)) {
pauseState = dynaRaycast->play->pauseCtx.state != PAUSE_STATE_0; pauseState = dynaRaycast->play->pauseCtx.state != PAUSE_STATE_OFF;
if (!pauseState) { if (!pauseState) {
pauseState = dynaRaycast->play->pauseCtx.debugState != 0; pauseState = dynaRaycast->play->pauseCtx.debugState != 0;
} }

View file

@ -432,9 +432,9 @@ void func_80111070(void) {
XREG(95) = 200; XREG(95) = 200;
R_PAUSE_OFFSET_VERTICAL = -6080; R_PAUSE_OFFSET_VERTICAL = -6080;
R_PAUSE_OFFSET_DEPTH = 9355; R_PAUSE_OFFSET_DEPTH = 9355;
WREG(4) = 8; R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION = 8;
WREG(5) = 3; WREG(5) = 3;
WREG(6) = 8; R_PAUSE_UI_ANIMS_DURATION = 8;
WREG(7) = 0; WREG(7) = 0;
WREG(8) = 100; WREG(8) = 100;
WREG(9) = 109; WREG(9) = 109;
@ -453,8 +453,8 @@ void func_80111070(void) {
WREG(22) = -32; WREG(22) = -32;
WREG(23) = -38; WREG(23) = -38;
WREG(24) = -36; WREG(24) = -36;
WREG(25) = 40; R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X = 40;
WREG(26) = -40; R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X = -40;
WREG(27) = 0; WREG(27) = 0;
WREG(28) = 0; WREG(28) = 0;
R_OW_MINIMAP_X = 238; R_OW_MINIMAP_X = 238;
@ -497,8 +497,8 @@ void func_80111070(void) {
R_DGN_MINIMAP_X = 204; R_DGN_MINIMAP_X = 204;
R_DGN_MINIMAP_Y = 140; R_DGN_MINIMAP_Y = 140;
WREG(87) = 80; WREG(87) = 80;
WREG(88) = 70; R_PAUSE_NAME_DISPLAY_TIMER_MAX_ = 70;
WREG(89) = 40; R_PAUSE_NAME_DISPLAY_TIMER_THRESHOLD_ = 40;
WREG(90) = 320; WREG(90) = 320;
WREG(91) = 40; WREG(91) = 40;
WREG(92) = 3; WREG(92) = 3;

View file

@ -56,15 +56,15 @@ void KaleidoScopeCall_Update(PlayState* play) {
KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE]; KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE];
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
if ((pauseCtx->state != PAUSE_STATE_0) || (pauseCtx->debugState != 0)) { if ((pauseCtx->state != PAUSE_STATE_OFF) || (pauseCtx->debugState != 0)) {
if (pauseCtx->state == PAUSE_STATE_1) { if (pauseCtx->state == PAUSE_STATE_WAIT_LETTERBOX) {
if (Letterbox_GetSize() == 0) { if (Letterbox_GetSize() == 0) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_DRAW;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_2 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_WAIT_BG_PRERENDER
} }
} else if (pauseCtx->state == PAUSE_STATE_8) { } else if (pauseCtx->state == PAUSE_STATE_8) {
HREG(80) = 7; HREG(80) = 7;
@ -73,13 +73,13 @@ void KaleidoScopeCall_Update(PlayState* play) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9
} else if ((pauseCtx->state == PAUSE_STATE_2) || (pauseCtx->state == PAUSE_STATE_9)) { } else if ((pauseCtx->state == PAUSE_STATE_WAIT_BG_PRERENDER) || (pauseCtx->state == PAUSE_STATE_9)) {
osSyncPrintf("PR_KAREIDOSCOPE_MODE=%d\n", R_PAUSE_BG_PRERENDER_STATE); osSyncPrintf("PR_KAREIDOSCOPE_MODE=%d\n", R_PAUSE_BG_PRERENDER_STATE);
if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) { if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) {
pauseCtx->state++; // PAUSE_STATE_3 or PAUSE_STATE_10 pauseCtx->state++; // PAUSE_STATE_INIT or PAUSE_STATE_10
} }
} else if (pauseCtx->state != PAUSE_STATE_0) { } else if (pauseCtx->state != PAUSE_STATE_OFF) {
if (gKaleidoMgrCurOvl != kaleidoScopeOvl) { if (gKaleidoMgrCurOvl != kaleidoScopeOvl) {
if (gKaleidoMgrCurOvl != NULL) { if (gKaleidoMgrCurOvl != NULL) {
osSyncPrintf(VT_FGCOL(GREEN)); osSyncPrintf(VT_FGCOL(GREEN));
@ -101,7 +101,7 @@ void KaleidoScopeCall_Update(PlayState* play) {
if (gKaleidoMgrCurOvl == kaleidoScopeOvl) { if (gKaleidoMgrCurOvl == kaleidoScopeOvl) {
sKaleidoScopeUpdateFunc(play); sKaleidoScopeUpdateFunc(play);
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0)) {
osSyncPrintf(VT_FGCOL(GREEN)); osSyncPrintf(VT_FGCOL(GREEN));
// "Kaleido area Kaleidoscope Emission" // "Kaleido area Kaleidoscope Emission"
osSyncPrintf("カレイド領域 カレイドスコープ排出\n"); osSyncPrintf("カレイド領域 カレイドスコープ排出\n");
@ -119,11 +119,11 @@ void KaleidoScopeCall_Draw(PlayState* play) {
KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE]; KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE];
if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) { if (R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) {
if (((play->pauseCtx.state >= PAUSE_STATE_4) && (play->pauseCtx.state <= PAUSE_STATE_7_SAVE_PROMPT_) if (((play->pauseCtx.state >= PAUSE_STATE_OPENING_1) && (play->pauseCtx.state <= PAUSE_STATE_7_SAVE_PROMPT_)
/* PAUSE_STATE_4, PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */) || /* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */) ||
((play->pauseCtx.state >= PAUSE_STATE_11) && (play->pauseCtx.state <= PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) ((play->pauseCtx.state >= PAUSE_STATE_11) && (play->pauseCtx.state <= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, PAUSE_STATE_15, /* PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, PAUSE_STATE_15,
PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE */ PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */
)) { )) {
if (gKaleidoMgrCurOvl == kaleidoScopeOvl) { if (gKaleidoMgrCurOvl == kaleidoScopeOvl) {
sKaleidoScopeDrawFunc(play); sKaleidoScopeDrawFunc(play);

View file

@ -1,10 +1,20 @@
#include "global.h" #include "global.h"
s16 sKaleidoSetupKscpPos0[] = { PAUSE_QUEST, PAUSE_EQUIP, PAUSE_ITEM, PAUSE_MAP }; s16 sKaleidoSetupKscpPos0[] = {
PAUSE_QUEST, // PAUSE_ITEM
PAUSE_EQUIP, // PAUSE_MAP
PAUSE_ITEM, // PAUSE_QUEST
PAUSE_MAP, // PAUSE_EQUIP
};
f32 sKaleidoSetupEyeX0[] = { 0.0f, 64.0f, 0.0f, -64.0f }; f32 sKaleidoSetupEyeX0[] = { 0.0f, 64.0f, 0.0f, -64.0f };
f32 sKaleidoSetupEyeZ0[] = { -64.0f, 0.0f, 64.0f, 0.0f }; f32 sKaleidoSetupEyeZ0[] = { -64.0f, 0.0f, 64.0f, 0.0f };
s16 sKaleidoSetupKscpPos1[] = { PAUSE_MAP, PAUSE_QUEST, PAUSE_EQUIP, PAUSE_ITEM }; s16 sKaleidoSetupKscpPos1[] = {
PAUSE_MAP, // PAUSE_ITEM
PAUSE_QUEST, // PAUSE_MAP
PAUSE_EQUIP, // PAUSE_QUEST
PAUSE_ITEM, // PAUSE_EQUIP
};
f32 sKaleidoSetupEyeX1[] = { -64.0f, 0.0f, 64.0f, 0.0f }; f32 sKaleidoSetupEyeX1[] = { -64.0f, 0.0f, 64.0f, 0.0f };
f32 sKaleidoSetupEyeZ1[] = { 0.0f, -64.0f, 0.0f, 64.0f }; f32 sKaleidoSetupEyeZ1[] = { 0.0f, -64.0f, 0.0f, 64.0f };
@ -12,11 +22,11 @@ void KaleidoSetup_Update(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
Input* input = &play->state.input[0]; Input* input = &play->state.input[0];
if (pauseCtx->state == PAUSE_STATE_0 && pauseCtx->debugState == 0 && play->gameOverCtx.state == GAMEOVER_INACTIVE && if (pauseCtx->state == PAUSE_STATE_OFF && pauseCtx->debugState == 0 &&
play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF && play->gameOverCtx.state == GAMEOVER_INACTIVE && play->transitionTrigger == TRANS_TRIGGER_OFF &&
gSaveContext.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) && play->transitionMode == TRANS_MODE_OFF && gSaveContext.cutsceneIndex < 0xFFF0 &&
play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) && play->shootingGalleryStatus <= 1 &&
gSaveContext.magicState != MAGIC_STATE_FILL && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL &&
(play->sceneId != SCENE_BOWLING || !Flags_GetSwitch(play, 0x38))) { (play->sceneId != SCENE_BOWLING || !Flags_GetSwitch(play, 0x38))) {
if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) { if (CHECK_BTN_ALL(input->cur.button, BTN_L) && CHECK_BTN_ALL(input->press.button, BTN_CUP)) {
@ -24,16 +34,18 @@ void KaleidoSetup_Update(PlayState* play) {
pauseCtx->debugState = 3; pauseCtx->debugState = 3;
} }
} else if (CHECK_BTN_ALL(input->press.button, BTN_START)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
// The start button was pressed, pause
gSaveContext.unk_13EE = gSaveContext.unk_13EA; gSaveContext.unk_13EE = gSaveContext.unk_13EA;
R_PAUSE_CURSOR_LEFT_X = -175; R_PAUSE_CURSOR_LEFT_X = -175;
R_PAUSE_CURSOR_RIGHT_X = 155; R_PAUSE_CURSOR_RIGHT_X = 155;
pauseCtx->unk_1EA_PageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->unk_1E4_ps6_ = pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_WAIT_LETTERBOX by
PAUSE_S6_1_SWITCH_PAGE_; // irrelevant? reset in PAUSE_STATE_1 by KaleidoScopeCall_Update // KaleidoScopeCall_Update
if (ZREG(48) == 0) { if (R_START_LABEL_DD(0) == 0) {
pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex]; pauseCtx->eye.x = sKaleidoSetupEyeX0[pauseCtx->pageIndex];
pauseCtx->eye.z = sKaleidoSetupEyeZ0[pauseCtx->pageIndex]; pauseCtx->eye.z = sKaleidoSetupEyeZ0[pauseCtx->pageIndex];
pauseCtx->pageIndex = sKaleidoSetupKscpPos0[pauseCtx->pageIndex]; pauseCtx->pageIndex = sKaleidoSetupKscpPos0[pauseCtx->pageIndex];
@ -44,13 +56,13 @@ void KaleidoSetup_Update(PlayState* play) {
} }
pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1;
pauseCtx->state = PAUSE_STATE_1; pauseCtx->state = PAUSE_STATE_WAIT_LETTERBOX;
osSyncPrintf("=%d eye.x=%f, eye.z=%f kscp_pos=%d\n", pauseCtx->mode, pauseCtx->eye.x, osSyncPrintf("=%d eye.x=%f, eye.z=%f kscp_pos=%d\n", pauseCtx->mode, pauseCtx->eye.x,
pauseCtx->eye.z, pauseCtx->pageIndex); pauseCtx->eye.z, pauseCtx->pageIndex);
} }
if (pauseCtx->state == PAUSE_STATE_1) { if (pauseCtx->state == PAUSE_STATE_WAIT_LETTERBOX) {
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
R_UPDATE_RATE = 2; R_UPDATE_RATE = 2;
@ -67,10 +79,10 @@ void KaleidoSetup_Init(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
u64 temp = 0; // Necessary to match u64 temp = 0; // Necessary to match
pauseCtx->state = PAUSE_STATE_0; pauseCtx->state = PAUSE_STATE_OFF;
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
pauseCtx->unk_1EA_PageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->pageIndex = PAUSE_ITEM; pauseCtx->pageIndex = PAUSE_ITEM;

View file

@ -886,8 +886,8 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
func_800AA16C(); func_800AA16C();
} }
if (pauseCtx->state == PAUSE_STATE_0) { if (pauseCtx->state == PAUSE_STATE_OFF) {
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0)) {
if (play->skyboxId == SKYBOX_NORMAL_SKY) { if (play->skyboxId == SKYBOX_NORMAL_SKY) {
play->skyboxCtx.rot.y -= 0.001f; play->skyboxCtx.rot.y -= 0.001f;
} else if (play->skyboxId == SKYBOX_CUTSCENE_MAP) { } else if (play->skyboxId == SKYBOX_CUTSCENE_MAP) {
@ -918,7 +918,7 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
} }
} }
if ((pauseCtx->state == PAUSE_STATE_0) && (gameOverCtx->state == GAMEOVER_INACTIVE)) { if ((pauseCtx->state == PAUSE_STATE_OFF) && (gameOverCtx->state == GAMEOVER_INACTIVE)) {
if (((msgCtx->msgLength == 0) && (msgCtx->msgMode == MSGMODE_NONE)) || if (((msgCtx->msgLength == 0) && (msgCtx->msgMode == MSGMODE_NONE)) ||
(((void)0, gSaveContext.gameMode) == GAMEMODE_END_CREDITS)) { (((void)0, gSaveContext.gameMode) == GAMEMODE_END_CREDITS)) {
if ((envCtx->changeSkyboxTimer == 0) && !FrameAdvance_IsEnabled(play) && if ((envCtx->changeSkyboxTimer == 0) && !FrameAdvance_IsEnabled(play) &&

View file

@ -506,8 +506,8 @@ void Health_UpdateBeatingHeart(PlayState* play) {
if (interfaceCtx->beatingHeartOscillator <= 0) { if (interfaceCtx->beatingHeartOscillator <= 0) {
interfaceCtx->beatingHeartOscillator = 0; interfaceCtx->beatingHeartOscillator = 0;
interfaceCtx->beatingHeartOscillatorDirection = 0; interfaceCtx->beatingHeartOscillatorDirection = 0;
if (!Player_InCsMode(play) && (play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) && if (!Player_InCsMode(play) && (play->pauseCtx.state == PAUSE_STATE_OFF) &&
Health_IsCritical() && !Play_InCsMode(play)) { (play->pauseCtx.debugState == 0) && Health_IsCritical() && !Play_InCsMode(play)) {
func_80078884(NA_SE_SY_HITPOINT_ALARM); func_80078884(NA_SE_SY_HITPOINT_ALARM);
} }
} }

View file

@ -364,8 +364,8 @@ void Minimap_Draw(PlayState* play) {
OPEN_DISPS(play->state.gfxCtx, "../z_map_exp.c", 626); OPEN_DISPS(play->state.gfxCtx, "../z_map_exp.c", 626);
if (play->pauseCtx.state < PAUSE_STATE_4) { if (play->pauseCtx.state < PAUSE_STATE_OPENING_1) {
/* PAUSE_STATE_0, PAUSE_STATE_1, PAUSE_STATE_2, PAUSE_STATE_3 */ /* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT */
switch (play->sceneId) { switch (play->sceneId) {
case SCENE_YDAN: case SCENE_YDAN:
case SCENE_DDAN: case SCENE_DDAN:
@ -521,7 +521,7 @@ void Map_Update(PlayState* play) {
s16 floor; s16 floor;
s16 i; s16 i;
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0)) {
switch (play->sceneId) { switch (play->sceneId) {
case SCENE_YDAN: case SCENE_YDAN:
case SCENE_DDAN: case SCENE_DDAN:

View file

@ -2099,7 +2099,7 @@ void Interface_SetDoAction(PlayState* play, u16 action) {
interfaceCtx->unk_1EC = 1; interfaceCtx->unk_1EC = 1;
interfaceCtx->unk_1F4 = 0.0f; interfaceCtx->unk_1F4 = 0.0f;
Interface_LoadActionLabel(interfaceCtx, action, 1); Interface_LoadActionLabel(interfaceCtx, action, 1);
if (pauseCtx->state != PAUSE_STATE_0) { if (pauseCtx->state != PAUSE_STATE_OFF) {
interfaceCtx->unk_1EC = 3; interfaceCtx->unk_1EC = 3;
} }
} }
@ -2514,7 +2514,7 @@ void Magic_Update(PlayState* play) {
case MAGIC_STATE_CONSUME_LENS: case MAGIC_STATE_CONSUME_LENS:
// Slowly consume magic while lens is on // Slowly consume magic while lens is on
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) && if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0) &&
(msgCtx->msgMode == MSGMODE_NONE) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) &&
(play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF) &&
!Play_InCsMode(play)) { !Play_InCsMode(play)) {
@ -2760,12 +2760,13 @@ void Interface_DrawItemButtons(PlayState* play) {
(R_ITEM_BTN_X(3) + R_ITEM_BTN_WIDTH(3)) << 2, (R_ITEM_BTN_Y(3) + R_ITEM_BTN_WIDTH(3)) << 2, (R_ITEM_BTN_X(3) + R_ITEM_BTN_WIDTH(3)) << 2, (R_ITEM_BTN_Y(3) + R_ITEM_BTN_WIDTH(3)) << 2,
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 < PAUSE_STATE_8) /* PAUSE_STATE_0, PAUSE_STATE_1, PAUSE_STATE_2, PAUSE_STATE_3, if ((pauseCtx->state < PAUSE_STATE_8)
PAUSE_STATE_4, PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */ /* 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_ */
(pauseCtx->state >= || (pauseCtx->state >= PAUSE_STATE_CLOSING)
PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */) { /* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
if ((play->pauseCtx.state != PAUSE_STATE_0) || (play->pauseCtx.debugState != 0)) { ) {
if ((play->pauseCtx.state != PAUSE_STATE_OFF) || (play->pauseCtx.debugState != 0)) {
// Start Button Texture, Color & Label // Start Button Texture, Color & Label
gDPPipeSync(OVERLAY_DISP++); gDPPipeSync(OVERLAY_DISP++);
gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 120, 120, interfaceCtx->startAlpha); gDPSetPrimColor(OVERLAY_DISP++, 0, 0, 120, 120, 120, interfaceCtx->startAlpha);
@ -2793,7 +2794,7 @@ void Interface_DrawItemButtons(PlayState* play) {
} }
} }
if (interfaceCtx->naviCalling && (play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) && if (interfaceCtx->naviCalling && (play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0) &&
(play->csCtx.state == CS_STATE_IDLE)) { (play->csCtx.state == CS_STATE_IDLE)) {
if (!sCUpInvisible) { if (!sCUpInvisible) {
// C-Up Button Texture, Color & Label (Navi Text) // C-Up Button Texture, Color & Label (Navi Text)
@ -3320,7 +3321,7 @@ void Interface_Draw(PlayState* play) {
func_8008A994(interfaceCtx); func_8008A994(interfaceCtx);
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_3)) { if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_3)) {
// Inventory Equip Effects // Inventory Equip Effects
gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment); gSPSegment(OVERLAY_DISP++, 0x08, pauseCtx->iconItemSegment);
Gfx_SetupDL_42Overlay(play->state.gfxCtx); Gfx_SetupDL_42Overlay(play->state.gfxCtx);
@ -3371,7 +3372,7 @@ void Interface_Draw(PlayState* play) {
Gfx_SetupDL_39Overlay(play->state.gfxCtx); Gfx_SetupDL_39Overlay(play->state.gfxCtx);
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0)) {
if (gSaveContext.minigameState != 1) { if (gSaveContext.minigameState != 1) {
// Carrots rendering if the action corresponds to riding a horse // Carrots rendering if the action corresponds to riding a horse
if (interfaceCtx->unk_1EE == 8) { if (interfaceCtx->unk_1EE == 8) {
@ -3467,7 +3468,7 @@ void Interface_Draw(PlayState* play) {
} }
} }
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) && if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0) &&
(play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) &&
!(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && !(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play) && (gSaveContext.minigameState != 1) && (play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play) && (gSaveContext.minigameState != 1) &&
@ -3891,7 +3892,7 @@ void Interface_Update(PlayState* play) {
osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language); osSyncPrintf("J_N=%x J_N=%x\n", gSaveContext.language, &gSaveContext.language);
} }
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0)) {
if ((gSaveContext.minigameState == 1) || !IS_CUTSCENE_LAYER || if ((gSaveContext.minigameState == 1) || !IS_CUTSCENE_LAYER ||
((play->sceneId == SCENE_SPOT20) && (gSaveContext.sceneLayer == 4))) { ((play->sceneId == SCENE_SPOT20) && (gSaveContext.sceneLayer == 4))) {
if ((msgCtx->msgMode == MSGMODE_NONE) || if ((msgCtx->msgMode == MSGMODE_NONE) ||
@ -4035,7 +4036,7 @@ void Interface_Update(PlayState* play) {
Health_UpdateMeter(play); Health_UpdateMeter(play);
if ((gSaveContext.timer1State >= 3) && (play->pauseCtx.state == PAUSE_STATE_0) && if ((gSaveContext.timer1State >= 3) && (play->pauseCtx.state == PAUSE_STATE_OFF) &&
(play->pauseCtx.debugState == 0) && (msgCtx->msgMode == MSGMODE_NONE) && (play->pauseCtx.debugState == 0) && (msgCtx->msgMode == MSGMODE_NONE) &&
!(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && !(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play)) {} (play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play)) {}
@ -4121,7 +4122,7 @@ void Interface_Update(PlayState* play) {
WREG(7) = interfaceCtx->unk_1F4; WREG(7) = interfaceCtx->unk_1F4;
// Update Magic // Update Magic
if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) && if ((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->pauseCtx.debugState == 0) &&
(msgCtx->msgMode == MSGMODE_NONE) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (msgCtx->msgMode == MSGMODE_NONE) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->transitionMode == TRANS_MODE_OFF) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->transitionMode == TRANS_MODE_OFF) &&
((play->csCtx.state == CS_STATE_IDLE) || !Player_InCsMode(play))) { ((play->csCtx.state == CS_STATE_IDLE) || !Player_InCsMode(play))) {

View file

@ -443,7 +443,7 @@ void Play_Init(GameState* thisx) {
void Play_Update(PlayState* this) { void Play_Update(PlayState* this) {
s32 pad1; s32 pad1;
s32 sp80; s32 isPaused;
Input* input; Input* input;
u32 i; u32 i;
s32 pad2; s32 pad2;
@ -838,7 +838,7 @@ void Play_Update(PlayState* this) {
} }
PLAY_LOG(3551); PLAY_LOG(3551);
sp80 = (this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0); isPaused = (this->pauseCtx.state != PAUSE_STATE_OFF) || (this->pauseCtx.debugState != 0);
PLAY_LOG(3555); PLAY_LOG(3555);
AnimationContext_Reset(&this->animationCtx); AnimationContext_Reset(&this->animationCtx);
@ -848,7 +848,7 @@ void Play_Update(PlayState* this) {
PLAY_LOG(3577); PLAY_LOG(3577);
if ((sp80 == 0) && (IREG(72) == 0)) { if (!isPaused && (IREG(72) == 0)) {
PLAY_LOG(3580); PLAY_LOG(3580);
this->gameplayFrames++; this->gameplayFrames++;
@ -915,7 +915,7 @@ void Play_Update(PlayState* this) {
if (this->viewpoint != VIEWPOINT_NONE) { if (this->viewpoint != VIEWPOINT_NONE) {
if (CHECK_BTN_ALL(input[0].press.button, BTN_CUP)) { if (CHECK_BTN_ALL(input[0].press.button, BTN_CUP)) {
if ((this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_OFF) || (this->pauseCtx.debugState != 0)) {
// "Changing viewpoint is prohibited due to the kaleidoscope" // "Changing viewpoint is prohibited due to the kaleidoscope"
osSyncPrintf(VT_FGCOL(CYAN) "カレイドスコープ中につき視点変更を禁止しております\n" VT_RST); osSyncPrintf(VT_FGCOL(CYAN) "カレイドスコープ中につき視点変更を禁止しております\n" VT_RST);
} else if (Player_InCsMode(this)) { } else if (Player_InCsMode(this)) {
@ -939,7 +939,7 @@ void Play_Update(PlayState* this) {
PLAY_LOG(3716); PLAY_LOG(3716);
if ((this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_OFF) || (this->pauseCtx.debugState != 0)) {
PLAY_LOG(3721); PLAY_LOG(3721);
KaleidoScopeCall_Update(this); KaleidoScopeCall_Update(this);
} else if (this->gameOverCtx.state != GAMEOVER_INACTIVE) { } else if (this->gameOverCtx.state != GAMEOVER_INACTIVE) {
@ -976,7 +976,7 @@ void Play_Update(PlayState* this) {
skip: skip:
PLAY_LOG(3801); PLAY_LOG(3801);
if ((sp80 == 0) || gDbgCamEnabled) { if (!isPaused || gDbgCamEnabled) {
s32 pad3[5]; s32 pad3[5];
s32 i; s32 i;
@ -1002,7 +1002,7 @@ skip:
} }
void Play_DrawOverlayElements(PlayState* this) { void Play_DrawOverlayElements(PlayState* this) {
if ((this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_OFF) || (this->pauseCtx.debugState != 0)) {
KaleidoScopeCall_Draw(this); KaleidoScopeCall_Draw(this);
} }

View file

@ -1640,7 +1640,7 @@ void Player_PostLimbDrawGameplay(PlayState* play, s32 limbIndex, Gfx** dList, Ve
} }
} }
u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) { u32 Player_InitDrawPause(PlayState* play, u8* segment, SkelAnime* skelAnime) {
s16 linkObjectId = gLinkObjectIds[(void)0, gSaveContext.linkAge]; s16 linkObjectId = gLinkObjectIds[(void)0, gSaveContext.linkAge];
u32 size; u32 size;
void* ptr; void* ptr;
@ -1662,7 +1662,7 @@ u32 func_80091738(PlayState* play, u8* segment, SkelAnime* skelAnime) {
SkelAnime_InitLink(play, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge], &gPlayerAnim_003238, 9, ptr, SkelAnime_InitLink(play, skelAnime, gPlayerSkelHeaders[(void)0, gSaveContext.linkAge], &gPlayerAnim_003238, 9, ptr,
ptr, PLAYER_LIMB_MAX); ptr, PLAYER_LIMB_MAX);
return size + PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE + return PAUSE_EQUIP_BUFFER_SIZE + PAUSE_PLAYER_SEGMENT_GAMEPLAY_KEEP_BUFFER_SIZE + size +
sizeof(Vec3s[PLAYER_LIMB_BUF_COUNT]); sizeof(Vec3s[PLAYER_LIMB_BUF_COUNT]);
} }

View file

@ -71,7 +71,7 @@ void EnOkarinaEffect_TriggerStorm(EnOkarinaEffect* this, PlayState* play) {
void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, PlayState* play) { void EnOkarinaEffect_ManageStorm(EnOkarinaEffect* this, PlayState* play) {
Flags_UnsetEnv(play, 5); // clear storms env flag Flags_UnsetEnv(play, 5); // clear storms env flag
if (((play->pauseCtx.state == PAUSE_STATE_0) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && if (((play->pauseCtx.state == PAUSE_STATE_OFF) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) &&
(play->msgCtx.msgLength == 0) && (!FrameAdvance_IsEnabled(play)) && (play->msgCtx.msgLength == 0) && (!FrameAdvance_IsEnabled(play)) &&
((play->transitionMode == TRANS_MODE_OFF) || (gSaveContext.gameMode != GAMEMODE_NORMAL))) || ((play->transitionMode == TRANS_MODE_OFF) || (gSaveContext.gameMode != GAMEMODE_NORMAL))) ||
(this->timer >= 250)) { (this->timer >= 250)) {

View file

@ -125,7 +125,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
if (pauseCtx->cursorSpecialPos == 0) { if (pauseCtx->cursorSpecialPos == 0) {
pauseCtx->nameColorSet = 0; pauseCtx->nameColorSet = 0;
if ((pauseCtx->state != PAUSE_STATE_6) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) { if ((pauseCtx->state != PAUSE_STATE_IDLE) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) {
// No cursor movement // No cursor movement
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
} else { } else {
@ -232,7 +232,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// Handle part of the ocarina songs playback // Handle part of the ocarina songs playback
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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])) {
@ -544,7 +544,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0, gDPSetCombineLERP(POLY_OPA_DISP++, PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0,
PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); PRIMITIVE, ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
if ((pauseCtx->state == PAUSE_STATE_4) || (pauseCtx->state == PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) { if ((pauseCtx->state == PAUSE_STATE_OPENING_1) || (pauseCtx->state == PAUSE_STATE_CLOSING)) {
gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sHpPrimColors[0][0], sHpPrimColors[0][1], sHpPrimColors[0][2], gDPSetPrimColor(POLY_OPA_DISP++, 0, 0, sHpPrimColors[0][0], sHpPrimColors[0][1], sHpPrimColors[0][2],
pauseCtx->alpha); pauseCtx->alpha);
} else { } else {
@ -561,7 +561,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
48, 48, 0); 48, 48, 0);
} }
if (pauseCtx->state == PAUSE_STATE_6) { if (pauseCtx->state == PAUSE_STATE_IDLE) {
gDPPipeSync(POLY_OPA_DISP++); gDPPipeSync(POLY_OPA_DISP++);
gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM); gDPSetCombineMode(POLY_OPA_DISP++, G_CC_MODULATEIA_PRIM, G_CC_MODULATEIA_PRIM);

View file

@ -150,7 +150,7 @@ void KaleidoScope_DrawEquipment(PlayState* play) {
} }
} }
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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 == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && (pauseCtx->state == PAUSE_STATE_IDLE) && (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) ||

View file

@ -103,7 +103,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
pauseCtx->cursorColorSet = 0; pauseCtx->cursorColorSet = 0;
pauseCtx->nameColorSet = 0; pauseCtx->nameColorSet = 0;
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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];
@ -345,7 +345,7 @@ void KaleidoScope_DrawItemSelect(PlayState* play) {
index = cursorSlot * 4; // required to match? index = cursorSlot * 4; // required to match?
KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx); KaleidoScope_SetCursorVtx(pauseCtx, index, pauseCtx->itemVtx);
if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_6) && if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_IDLE) &&
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { (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) ||

View file

@ -46,7 +46,7 @@ void KaleidoScope_DrawDungeonMap(PlayState* play, GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 123); OPEN_DISPS(gfxCtx, "../z_kaleido_map_PAL.c", 123);
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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 == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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];

View file

@ -135,6 +135,7 @@ s16 D_8082AB2C_height_MAP_PAGE_VTX_NOT_IN_DUNGEON_SCENE_[] = {
24, 72, 13, 22, 19, 20, 19, 27, 14, 26, 22, 21, 49, 32, 45, 60, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 32, 8, 24, 72, 13, 22, 19, 20, 19, 27, 14, 26, 22, 21, 49, 32, 45, 60, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 8, 16, 32, 8,
}; };
// TODO may not be indexed by `PAUSE_`
static u8 D_8082AB6C[][5] = { static u8 D_8082AB6C[][5] = {
{ BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_ENABLED }, // PAUSE_ITEM { BTN_ENABLED, BTN_DISABLED, BTN_DISABLED, BTN_DISABLED, BTN_ENABLED }, // PAUSE_ITEM
{ BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_DISABLED }, // PAUSE_MAP { BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_ENABLED, BTN_DISABLED }, // PAUSE_MAP
@ -248,7 +249,7 @@ static void* sPromptChoiceTexs[][2] = {
{ gPauseYesFRATex, gPauseNoFRATex }, { gPauseYesFRATex, gPauseNoFRATex },
}; };
static u8 D_808321A8[5]; static u8 D_808321A8_savedButtonStatus[5];
static PreRender sPlayerPreRender; static PreRender sPlayerPreRender;
static void* sPreRenderCvg; static void* sPreRenderCvg;
@ -388,7 +389,7 @@ void KaleidoScope_SetDefaultCursor(PlayState* play) {
void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) { void KaleidoScope_SwitchPage(PauseContext* pauseCtx, u8 pt) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1_SWITCH_PAGE_;
pauseCtx->unk_1EA_PageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
if (!pt) { // pt == 0, scroll left if (!pt) { // pt == 0, scroll left
pauseCtx->mode = pauseCtx->pageIndex * 2 + 1; pauseCtx->mode = pauseCtx->pageIndex * 2 + 1;
@ -459,7 +460,7 @@ 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_IDLE_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && if ((((pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_6)) || (pauseCtx->state == PAUSE_STATE_IDLE)) ||
((pauseCtx->pageIndex == PAUSE_QUEST) && ((pauseCtx->pageIndex == PAUSE_QUEST) &&
((temp < PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ || ((temp < PAUSE_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_S6_5_PLAYER_PLAYING_SONG_) || (temp == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)))) {
@ -560,9 +561,12 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
OPEN_DISPS(gfxCtx, "../z_kaleido_scope_PAL.c", 1100); OPEN_DISPS(gfxCtx, "../z_kaleido_scope_PAL.c", 1100);
if ((pauseCtx->state < PAUSE_STATE_8) /* PAUSE_STATE_0, PAUSE_STATE_1, PAUSE_STATE_2, PAUSE_STATE_3, PAUSE_STATE_4, if ((pauseCtx->state < PAUSE_STATE_8)
PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */ /* PAUSE_STATE_OFF, PAUSE_STATE_WAIT_LETTERBOX, PAUSE_STATE_WAIT_BG_PRERENDER, PAUSE_STATE_INIT,
|| (pauseCtx->state > PAUSE_STATE_17) /* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */) { PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */
|| (pauseCtx->state >= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
) {
if (pauseCtx->state != PAUSE_STATE_7_SAVE_PROMPT_) { if (pauseCtx->state != PAUSE_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]) /
@ -847,7 +851,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
Gfx_SetupDL_42Opa(gfxCtx); Gfx_SetupDL_42Opa(gfxCtx);
if ((pauseCtx->state == PAUSE_STATE_7_SAVE_PROMPT_) || if ((pauseCtx->state == PAUSE_STATE_7_SAVE_PROMPT_) ||
((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) ((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_CLOSING))
/* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, /* PAUSE_STATE_8, PAUSE_STATE_9, 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_13, PAUSE_STATE_14, PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17 */
) { ) {
@ -891,7 +895,7 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx, "../z_kaleido_scope_PAL.c", 1424), gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(gfxCtx, "../z_kaleido_scope_PAL.c", 1424),
G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW);
if (((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) if (((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_CLOSING))
/* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, /* PAUSE_STATE_8, PAUSE_STATE_9, 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_13, PAUSE_STATE_14, PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17 */) {
POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sGameOverTexs); POLY_OPA_DISP = KaleidoScope_DrawPageSections(POLY_OPA_DISP, pauseCtx->saveVtx, sGameOverTexs);
@ -1205,8 +1209,8 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0); ENVIRONMENT, TEXEL0, ENVIRONMENT, TEXEL0, 0, PRIMITIVE, 0);
gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0); gDPSetEnvColor(POLY_OPA_DISP++, 20, 30, 40, 0);
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) && if ((pauseCtx->state == PAUSE_STATE_IDLE) && (pauseCtx->namedItem != PAUSE_ITEM_NONE) &&
(pauseCtx->nameDisplayTimer < WREG(89)) && (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_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_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= (pauseCtx->unk_1E4_ps6_ <=
@ -1214,12 +1218,14 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
PAUSE_S6_5_PLAYER_PLAYING_SONG_, PAUSE_S6_6_PLAYER_PLAYING_SONG_DONE_, PAUSE_S6_7 */ 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->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->cursorSpecialPos == 0)) { (pauseCtx->cursorSpecialPos == 0)) {
if (!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_2_PLAYBACK_SONG_) || if (!pauseCtx->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_4_PLAYER_PLAYING_SONG_INIT_) &&
(pauseCtx->unk_1E4_ps6_ <= (pauseCtx->unk_1E4_ps6_ <=
PAUSE_S6_7)) /* PAUSE_S6_4_PLAYER_PLAYING_SONG_INIT_, 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 */ 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->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) {
pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63; pauseCtx->infoPanelVtx[16].v.ob[0] = pauseCtx->infoPanelVtx[18].v.ob[0] = -63;
pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] = pauseCtx->infoPanelVtx[17].v.ob[0] = pauseCtx->infoPanelVtx[19].v.ob[0] =
@ -1318,7 +1324,7 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60_toDecideTextTextures_[gSaveContext.language], KaleidoScope_QuadTextureIA8(POLY_OPA_DISP, D_8082AD60_toDecideTextTextures_[gSaveContext.language],
D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4); D_8082ADE0_toDecideTextWidth_[gSaveContext.language], 16, 4);
} else if (pauseCtx->cursorSpecialPos != 0) { } else if (pauseCtx->cursorSpecialPos != 0) {
if ((pauseCtx->state == PAUSE_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_)) { if ((pauseCtx->state == PAUSE_STATE_IDLE) && (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] =
@ -1440,41 +1446,43 @@ void KaleidoScope_DrawInfoPanel(PlayState* play) {
void KaleidoScope_UpdateNamePanel(PlayState* play) { void KaleidoScope_UpdateNamePanel(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
u16 sp2A; u16 texIndex;
if ((pauseCtx->namedItem != pauseCtx->cursorItem[pauseCtx->pageIndex]) || if ((pauseCtx->namedItem != pauseCtx->cursorItem[pauseCtx->pageIndex]) ||
((pauseCtx->pageIndex == PAUSE_MAP) && (pauseCtx->cursorSpecialPos != 0))) { ((pauseCtx->pageIndex == PAUSE_MAP) && (pauseCtx->cursorSpecialPos != 0))) {
pauseCtx->namedItem = pauseCtx->cursorItem[pauseCtx->pageIndex]; pauseCtx->namedItem = pauseCtx->cursorItem[pauseCtx->pageIndex];
sp2A = pauseCtx->namedItem; texIndex = pauseCtx->namedItem;
osCreateMesgQueue(&pauseCtx->loadQueue, &pauseCtx->loadMsg, 1); osCreateMesgQueue(&pauseCtx->loadQueue, &pauseCtx->loadMsg, 1);
if (pauseCtx->namedItem != PAUSE_ITEM_NONE) { if (pauseCtx->namedItem != PAUSE_ITEM_NONE) {
if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) { if ((pauseCtx->pageIndex == PAUSE_MAP) && !sInDungeonScene) {
if (gSaveContext.language) { if (gSaveContext.language) { // != LANGUAGE_ENG
sp2A += 12; texIndex += 12;
} }
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == LANGUAGE_FRA) {
sp2A += 12; texIndex += 12;
} }
DmaMgr_SendRequest1(pauseCtx->nameSegment, (uintptr_t)_map_name_staticSegmentRomStart + (sp2A * 0x400), DmaMgr_SendRequest1(pauseCtx->nameSegment,
0x400, "../z_kaleido_scope_PAL.c", 2093); (uintptr_t)_map_name_staticSegmentRomStart + (texIndex * 0x400), 0x400,
"../z_kaleido_scope_PAL.c", 2093);
} else { } else {
osSyncPrintf("zoom_name=%d\n", pauseCtx->namedItem); osSyncPrintf("zoom_name=%d\n", pauseCtx->namedItem);
if (gSaveContext.language) { if (gSaveContext.language) { // != LANGUAGE_ENG
sp2A += 123; texIndex += 123;
} }
if (gSaveContext.language == LANGUAGE_FRA) { if (gSaveContext.language == LANGUAGE_FRA) {
sp2A += 123; texIndex += 123;
} }
osSyncPrintf("J_N=%d point=%d\n", gSaveContext.language, sp2A); osSyncPrintf("J_N=%d point=%d\n", gSaveContext.language, texIndex);
DmaMgr_SendRequest1(pauseCtx->nameSegment, (uintptr_t)_item_name_staticSegmentRomStart + (sp2A * 0x400), DmaMgr_SendRequest1(pauseCtx->nameSegment,
0x400, "../z_kaleido_scope_PAL.c", 2120); (uintptr_t)_item_name_staticSegmentRomStart + (texIndex * 0x400), 0x400,
"../z_kaleido_scope_PAL.c", 2120);
} }
pauseCtx->nameDisplayTimer = 0; pauseCtx->nameDisplayTimer = 0;
@ -1487,7 +1495,7 @@ void KaleidoScope_UpdateNamePanel(PlayState* play) {
((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) {
pauseCtx->nameDisplayTimer++; pauseCtx->nameDisplayTimer++;
if (pauseCtx->nameDisplayTimer > WREG(88)) { if (pauseCtx->nameDisplayTimer > R_PAUSE_NAME_DISPLAY_TIMER_MAX_) {
pauseCtx->nameDisplayTimer = 0; pauseCtx->nameDisplayTimer = 0;
} }
} }
@ -1513,18 +1521,18 @@ void KaleidoScope_UpdateSwitchPage_(PlayState* play, Input* input) {
pauseCtx->eye.x += D_8082ABAC_pageSwitch_eye_dx_[mode]; pauseCtx->eye.x += D_8082ABAC_pageSwitch_eye_dx_[mode];
pauseCtx->eye.z += D_8082ABCC_pageSwitch_eye_dz_[mode]; pauseCtx->eye.z += D_8082ABCC_pageSwitch_eye_dz_[mode];
if (pauseCtx->unk_1EA_PageSwitchTimer__ < 32) { if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ < 32) {
R_PAUSE_CURSOR_LEFT_X -= WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X -= R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X -= WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X -= R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
} else { } else {
R_PAUSE_CURSOR_LEFT_X += WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X += WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
} }
pauseCtx->unk_1EA_PageSwitchTimer__ += 4; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ += 4;
if (pauseCtx->unk_1EA_PageSwitchTimer__ == 64) { if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == 64) {
pauseCtx->unk_1EA_PageSwitchTimer__ = 0; pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ = 0;
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
} }
@ -1801,7 +1809,7 @@ s16 func_80823A0C_makeVertices_(PlayState* play, Vtx* vtx, s16 usage_arg2, s16 a
vtx[bufI + 1].v.ob[0] = vtx[bufI + 3].v.ob[0] = vtx[bufI + 0].v.ob[0] + ptr2_width_[j]; vtx[bufI + 1].v.ob[0] = vtx[bufI + 3].v.ob[0] = vtx[bufI + 0].v.ob[0] + ptr2_width_[j];
if (!((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) if (!((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_CLOSING))
/* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, /* PAUSE_STATE_8, PAUSE_STATE_9, 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_13, PAUSE_STATE_14, PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17 */) {
vtx[bufI + 0].v.ob[1] = vtx[bufI + 1].v.ob[1] = ptr3_y_[j] + pauseCtx->offsetY; vtx[bufI + 0].v.ob[1] = vtx[bufI + 1].v.ob[1] = ptr3_y_[j] + pauseCtx->offsetY;
@ -1939,13 +1947,13 @@ void KaleidoScope_InitVertices(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->offsetY = 0; pauseCtx->offsetY = 0;
if ((pauseCtx->state == PAUSE_STATE_4) || if ((pauseCtx->state == PAUSE_STATE_OPENING_1) ||
(pauseCtx->state >= (pauseCtx->state >= PAUSE_STATE_CLOSING
PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */ /* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */) ||
|| ((pauseCtx->state == PAUSE_STATE_7_SAVE_PROMPT_) && ((pauseCtx->state == PAUSE_STATE_7_SAVE_PROMPT_) &&
((pauseCtx->unk_1EC_ps7_ == PAUSE_S7_2) || (pauseCtx->unk_1EC_ps7_ == PAUSE_S7_5))) || ((pauseCtx->unk_1EC_ps7_ == PAUSE_S7_2) || (pauseCtx->unk_1EC_ps7_ == PAUSE_S7_5))) ||
((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state <= PAUSE_STATE_13)) ((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state <= PAUSE_STATE_13)
/* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13 */) { /* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13 */)) {
pauseCtx->offsetY = 80; pauseCtx->offsetY = 80;
} }
@ -2435,7 +2443,7 @@ void KaleidoScope_Draw(PlayState* play) {
KaleidoScope_SetView(pauseCtx, 0.0f, 0.0f, 64.0f); KaleidoScope_SetView(pauseCtx, 0.0f, 0.0f, 64.0f);
if (!((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) if (!((pauseCtx->state >= PAUSE_STATE_8) && (pauseCtx->state < PAUSE_STATE_CLOSING))
/* PAUSE_STATE_8, PAUSE_STATE_9, PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, /* PAUSE_STATE_8, PAUSE_STATE_9, 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_13, PAUSE_STATE_14, PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17 */) {
KaleidoScope_DrawInfoPanel(play); KaleidoScope_DrawInfoPanel(play);
@ -2475,26 +2483,30 @@ void KaleidoScope_GrayOutTextureRGBA32(u32* texture, u16 pixelCount) {
} }
} }
void func_808265BC_switchPageToSave___(PlayState* play) { void KaleidoScope_UpdateOpening_(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx; PauseContext* pauseCtx = &play->pauseCtx;
pauseCtx->eye.x += D_8082ABAC_pageSwitch_eye_dx_[pauseCtx->mode] * ZREG(46); pauseCtx->eye.x += D_8082ABAC_pageSwitch_eye_dx_[pauseCtx->mode] * ZREG(46);
pauseCtx->eye.z += D_8082ABCC_pageSwitch_eye_dz_[pauseCtx->mode] * ZREG(46); pauseCtx->eye.z += D_8082ABCC_pageSwitch_eye_dz_[pauseCtx->mode] * ZREG(46);
pauseCtx->unk_1EA_PageSwitchTimer__ += 4 * ZREG(46); pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ += 4 * ZREG(46);
if (pauseCtx->unk_1EA_PageSwitchTimer__ == (64 * ZREG(47))) { if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == (4 * 16 * ZREG(47))) {
func_80084BF4(play, 1); func_80084BF4(play, 1);
gSaveContext.buttonStatus[0] = D_8082AB6C[pauseCtx->pageIndex][0]; gSaveContext.buttonStatus[0] = D_8082AB6C[pauseCtx->pageIndex][0];
gSaveContext.buttonStatus[1] = D_8082AB6C[pauseCtx->pageIndex][1]; gSaveContext.buttonStatus[1] = D_8082AB6C[pauseCtx->pageIndex][1];
gSaveContext.buttonStatus[2] = D_8082AB6C[pauseCtx->pageIndex][2]; gSaveContext.buttonStatus[2] = D_8082AB6C[pauseCtx->pageIndex][2];
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_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->state++; // PAUSE_STATE_5 or PAUSE_STATE_6 pauseCtx->state++; // PAUSE_STATE_OPENING_2 or PAUSE_STATE_IDLE
pauseCtx->alpha = 255; pauseCtx->alpha = 255;
Interface_LoadActionLabelB(play, DO_ACTION_SAVE); Interface_LoadActionLabelB(play, DO_ACTION_SAVE);
} else if (pauseCtx->unk_1EA_PageSwitchTimer__ == 64) { } else if (pauseCtx->unk_1EA_OpenMenuAndPageSwitchTimer__ == 64) {
pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode]; pauseCtx->pageIndex = D_8082ABEC_modeToNewPageIndex_[pauseCtx->mode];
pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1;
} }
@ -2630,8 +2642,8 @@ void KaleidoScope_Update(PlayState* play) {
Player* player = GET_PLAYER(play); Player* player = GET_PLAYER(play);
Input* input = &play->state.input[0]; Input* input = &play->state.input[0];
u32 size; u32 size;
u32 size0; u32 iconItemStaticSize;
u32 size1; u32 playerSegmentDrawPauseSize;
u32 size2; u32 size2;
u16 i; u16 i;
s16 stepR; s16 stepR;
@ -2641,40 +2653,43 @@ void KaleidoScope_Update(PlayState* play) {
s32 pad; s32 pad;
if ((R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) && if ((R_PAUSE_BG_PRERENDER_STATE >= PAUSE_BG_PRERENDER_DONE) &&
(((pauseCtx->state >= PAUSE_STATE_4) && (pauseCtx->state <= PAUSE_STATE_7_SAVE_PROMPT_) (((pauseCtx->state >= PAUSE_STATE_OPENING_1) && (pauseCtx->state <= PAUSE_STATE_7_SAVE_PROMPT_)
/* PAUSE_STATE_4, PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */ /* PAUSE_STATE_OPENING_1, PAUSE_STATE_OPENING_2, PAUSE_STATE_IDLE, PAUSE_STATE_7_SAVE_PROMPT_ */
) || ) ||
((pauseCtx->state >= PAUSE_STATE_10) && (pauseCtx->state <= PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) ((pauseCtx->state >= PAUSE_STATE_10) && (pauseCtx->state <= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14, /* PAUSE_STATE_10, PAUSE_STATE_11, PAUSE_STATE_12, PAUSE_STATE_13, PAUSE_STATE_14,
PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE */ PAUSE_STATE_15, PAUSE_STATE_16, PAUSE_STATE_17, PAUSE_STATE_CLOSING */
))) { ))) {
if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ || if ((!pauseCtx->unk_1E4_ps6_ /* PAUSE_S6_0_IDLE_ */ ||
(pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_8_IDLE_CURSOR_ON_SONG_)) &&
(pauseCtx->state == PAUSE_STATE_6)) { (pauseCtx->state == PAUSE_STATE_IDLE)) {
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_ < ((pauseCtx->unk_1E4_ps6_ <
PAUSE_S6_3) /* PAUSE_S6_0_IDLE_, PAUSE_S6_1_SWITCH_PAGE_, PAUSE_S6_2_PLAYBACK_SONG_ */ 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_5_PLAYER_PLAYING_SONG_))) {
KaleidoScope_UpdateCursorSize(play); KaleidoScope_UpdateCursorSize(play);
} }
if (pauseCtx->state == PAUSE_STATE_6) { if (pauseCtx->state == PAUSE_STATE_IDLE) {
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }
} }
switch (pauseCtx->state) { switch (pauseCtx->state) {
case PAUSE_STATE_3: case PAUSE_STATE_INIT:
D_808321A8[0] = gSaveContext.buttonStatus[0]; D_808321A8_savedButtonStatus[0] = gSaveContext.buttonStatus[0];
D_808321A8[1] = gSaveContext.buttonStatus[1]; D_808321A8_savedButtonStatus[1] = gSaveContext.buttonStatus[1];
D_808321A8[2] = gSaveContext.buttonStatus[2]; D_808321A8_savedButtonStatus[2] = gSaveContext.buttonStatus[2];
D_808321A8[3] = gSaveContext.buttonStatus[3]; D_808321A8_savedButtonStatus[3] = gSaveContext.buttonStatus[3];
D_808321A8[4] = gSaveContext.buttonStatus[4]; D_808321A8_savedButtonStatus[4] = gSaveContext.buttonStatus[4];
pauseCtx->cursorX[PAUSE_MAP] = 0; pauseCtx->cursorX[PAUSE_MAP] = 0;
pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot = pauseCtx->cursorSlot[PAUSE_MAP] = pauseCtx->cursorPoint[PAUSE_MAP] = pauseCtx->dungeonMapSlot =
@ -2688,15 +2703,17 @@ void KaleidoScope_Update(PlayState* play) {
//! @bug messed up alignment, should match `ALIGN64` //! @bug messed up alignment, should match `ALIGN64`
pauseCtx->playerSegment = (void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F); pauseCtx->playerSegment = (void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F);
size1 = func_80091738(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime); playerSegmentDrawPauseSize =
osSyncPrintf("プレイヤー size1%x\n", size1); Player_InitDrawPause(play, pauseCtx->playerSegment, &pauseCtx->playerSkelAnime);
osSyncPrintf("プレイヤー size1%x\n", playerSegmentDrawPauseSize);
pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)pauseCtx->playerSegment + size1); pauseCtx->iconItemSegment = (void*)ALIGN16((uintptr_t)pauseCtx->playerSegment + playerSegmentDrawPauseSize);
size0 = (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart; iconItemStaticSize =
osSyncPrintf("icon_item size0=%x\n", size0); (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart;
DmaMgr_SendRequest1(pauseCtx->iconItemSegment, (uintptr_t)_icon_item_staticSegmentRomStart, size0, osSyncPrintf("icon_item size0=%x\n", iconItemStaticSize);
"../z_kaleido_scope_PAL.c", 3662); DmaMgr_SendRequest1(pauseCtx->iconItemSegment, (uintptr_t)_icon_item_staticSegmentRomStart,
iconItemStaticSize, "../z_kaleido_scope_PAL.c", 3662);
gSegments[8] = VIRTUAL_TO_PHYSICAL(pauseCtx->iconItemSegment); gSegments[8] = VIRTUAL_TO_PHYSICAL(pauseCtx->iconItemSegment);
@ -2706,7 +2723,7 @@ void KaleidoScope_Update(PlayState* play) {
} }
} }
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0); pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + iconItemStaticSize);
size = (uintptr_t)_icon_item_24_staticSegmentRomEnd - (uintptr_t)_icon_item_24_staticSegmentRomStart; size = (uintptr_t)_icon_item_24_staticSegmentRomEnd - (uintptr_t)_icon_item_24_staticSegmentRomStart;
osSyncPrintf("icon_item24 size=%x\n", size); osSyncPrintf("icon_item24 size=%x\n", size);
@ -2778,10 +2795,12 @@ void KaleidoScope_Update(PlayState* play) {
pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size); pauseCtx->nameSegment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemLangSegment + size);
osSyncPrintf("サイズ=%x\n", size2 + size1 + size0 + size); // This printf may have been used to compute the size used on playerSegment at one point,
// but is missing the size of icon_item_24_static
osSyncPrintf("サイズ=%x\n", size2 + playerSegmentDrawPauseSize + iconItemStaticSize + size);
osSyncPrintf("item_name I_N_PT=%x\n", 0x800); osSyncPrintf("item_name I_N_PT=%x\n", 0x800);
Interface_SetDoAction(play, DO_ACTION_DECIDE); Interface_SetDoAction(play, DO_ACTION_DECIDE);
osSyncPrintf("サイズ=%x\n", size2 + size1 + size0 + size + 0x800); osSyncPrintf("サイズ=%x\n", size2 + playerSegmentDrawPauseSize + iconItemStaticSize + size + 0x800);
if (((void)0, gSaveContext.worldMapArea) < 22) { if (((void)0, gSaveContext.worldMapArea) < 22) {
if (gSaveContext.language == LANGUAGE_ENG) { if (gSaveContext.language == LANGUAGE_ENG) {
@ -3032,47 +3051,50 @@ void KaleidoScope_Update(PlayState* play) {
} }
} }
pauseCtx->state = PAUSE_STATE_4; pauseCtx->state = PAUSE_STATE_OPENING_1;
break; break;
case PAUSE_STATE_4: case PAUSE_STATE_OPENING_1:
if (pauseCtx->rollRotPageItem == 160.0f) { if (pauseCtx->rollRotPageItem == 160.0f) {
// First frame in this state
KaleidoScope_SetDefaultCursor(play); KaleidoScope_SetDefaultCursor(play);
KaleidoScope_ProcessPlayerPreRender(); KaleidoScope_ProcessPlayerPreRender();
} }
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest -= 160.0f / WREG(6); pauseCtx->rollRotPageQuest -= 160.0f / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->infoPanelOffsetY += 40 / WREG(6); pauseCtx->infoPanelOffsetY += 40 / R_PAUSE_UI_ANIMS_DURATION;
interfaceCtx->startAlpha += 255 / WREG(6); interfaceCtx->startAlpha += 255 / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_LEFT_X += WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X += WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
XREG(5) += 150 / WREG(6); XREG(5) += 150 / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4))); pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION));
if (pauseCtx->rollRotPageItem == 0) { if (pauseCtx->rollRotPageItem == 0) {
interfaceCtx->startAlpha = 255; interfaceCtx->startAlpha = 255;
R_PAUSE_OFFSET_VERTICAL = 0; R_PAUSE_OFFSET_VERTICAL = 0;
pauseCtx->state = PAUSE_STATE_5; pauseCtx->state = PAUSE_STATE_OPENING_2;
} }
func_808265BC_switchPageToSave___(play); KaleidoScope_UpdateOpening_(play);
break; break;
case PAUSE_STATE_5: case PAUSE_STATE_OPENING_2:
pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4))); pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION));
func_808265BC_switchPageToSave___(play); KaleidoScope_UpdateOpening_(play);
if (pauseCtx->state == PAUSE_STATE_6) {
if (pauseCtx->state == PAUSE_STATE_IDLE) {
KaleidoScope_UpdateNamePanel(play); KaleidoScope_UpdateNamePanel(play);
} }
break; break;
case PAUSE_STATE_6: case PAUSE_STATE_IDLE:
switch (pauseCtx->unk_1E4_ps6_) { switch (pauseCtx->unk_1E4_ps6_) {
case PAUSE_S6_0_IDLE_: 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 = PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0); func_800F64E0(0);
} else if (CHECK_BTN_ALL(input->press.button, BTN_B)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_B)) {
@ -3116,7 +3138,7 @@ void KaleidoScope_Update(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_START)) { if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE); Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
@ -3173,7 +3195,7 @@ void KaleidoScope_Update(PlayState* play) {
if (CHECK_BTN_ALL(input->press.button, BTN_START)) { if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF); AudioOcarina_SetInstrument(OCARINA_INSTRUMENT_OFF);
Interface_SetDoAction(play, DO_ACTION_NONE); Interface_SetDoAction(play, DO_ACTION_NONE);
pauseCtx->state = PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE; pauseCtx->state = PAUSE_STATE_CLOSING;
R_PAUSE_OFFSET_VERTICAL = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
func_800F64E0(0); func_800F64E0(0);
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
@ -3206,9 +3228,9 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_STATE_7_SAVE_PROMPT_: case PAUSE_STATE_7_SAVE_PROMPT_:
switch (pauseCtx->unk_1EC_ps7_) { switch (pauseCtx->unk_1EC_ps7_) {
case PAUSE_S7_0: case PAUSE_S7_0:
pauseCtx->rollRotSavePromptPage_unk_204 -= 314.0f / WREG(6); pauseCtx->rollRotSavePromptPage_unk_204 -= 314.0f / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_LEFT_X -= WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X -= R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X -= WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X -= R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
if (pauseCtx->rollRotSavePromptPage_unk_204 <= -628.0f) { if (pauseCtx->rollRotSavePromptPage_unk_204 <= -628.0f) {
pauseCtx->rollRotSavePromptPage_unk_204 = -628.0f; pauseCtx->rollRotSavePromptPage_unk_204 = -628.0f;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_1; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_1;
@ -3268,11 +3290,11 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_S7_3: case PAUSE_S7_3:
case PAUSE_S7_6: case PAUSE_S7_6:
pauseCtx->rollRotSavePromptPage_unk_204 += 314.0f / WREG(6); pauseCtx->rollRotSavePromptPage_unk_204 += 314.0f / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_LEFT_X += WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X += WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
if (pauseCtx->rollRotSavePromptPage_unk_204 >= -314.0f) { if (pauseCtx->rollRotSavePromptPage_unk_204 >= -314.0f) {
pauseCtx->state = PAUSE_STATE_6; pauseCtx->state = PAUSE_STATE_IDLE;
pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 0.0f; pauseCtx->rollRotPageQuest = 0.0f;
@ -3284,19 +3306,19 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_S7_5: case PAUSE_S7_5:
if (pauseCtx->rollRotSavePromptPage_unk_204 != (YREG(8) + 160.0f)) { if (pauseCtx->rollRotSavePromptPage_unk_204 != (YREG(8) + 160.0f)) {
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest += 160.0f / WREG(6); pauseCtx->rollRotPageQuest += 160.0f / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->rollRotSavePromptPage_unk_204 += 160.0f / WREG(6); pauseCtx->rollRotSavePromptPage_unk_204 += 160.0f / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->infoPanelOffsetY -= 40 / WREG(6); pauseCtx->infoPanelOffsetY -= 40 / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_LEFT_X -= WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X -= R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X -= WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X -= R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
XREG(5) -= 150 / WREG(6); XREG(5) -= 150 / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->alpha -= (u16)(255 / WREG(6)); pauseCtx->alpha -= (u16)(255 / R_PAUSE_UI_ANIMS_DURATION);
if (pauseCtx->rollRotSavePromptPage_unk_204 == (YREG(8) + 160.0f)) { if (pauseCtx->rollRotSavePromptPage_unk_204 == (YREG(8) + 160.0f)) {
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
} }
} else { } else {
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->state = PAUSE_STATE_19_UNPAUSE; pauseCtx->state = PAUSE_STATE_UNPAUSE;
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 160.0f; pauseCtx->rollRotPageQuest = 160.0f;
pauseCtx->namedItem = PAUSE_ITEM_NONE; pauseCtx->namedItem = PAUSE_ITEM_NONE;
@ -3317,12 +3339,13 @@ void KaleidoScope_Update(PlayState* play) {
//! @bug messed up alignment, should match `ALIGN64` //! @bug messed up alignment, should match `ALIGN64`
pauseCtx->iconItemSegment = (void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F); pauseCtx->iconItemSegment = (void*)(((uintptr_t)play->objectCtx.spaceStart + 0x30) & ~0x3F);
size0 = (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart; iconItemStaticSize =
osSyncPrintf("icon_item size0=%x\n", size0); (uintptr_t)_icon_item_staticSegmentRomEnd - (uintptr_t)_icon_item_staticSegmentRomStart;
DmaMgr_SendRequest1(pauseCtx->iconItemSegment, (uintptr_t)_icon_item_staticSegmentRomStart, size0, osSyncPrintf("icon_item size0=%x\n", iconItemStaticSize);
"../z_kaleido_scope_PAL.c", 4356); DmaMgr_SendRequest1(pauseCtx->iconItemSegment, (uintptr_t)_icon_item_staticSegmentRomStart,
iconItemStaticSize, "../z_kaleido_scope_PAL.c", 4356);
pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + size0); pauseCtx->iconItem24Segment = (void*)ALIGN16((uintptr_t)pauseCtx->iconItemSegment + iconItemStaticSize);
size = (uintptr_t)_icon_item_24_staticSegmentRomEnd - (uintptr_t)_icon_item_24_staticSegmentRomStart; size = (uintptr_t)_icon_item_24_staticSegmentRomEnd - (uintptr_t)_icon_item_24_staticSegmentRomStart;
osSyncPrintf("icon_item24 size=%x\n", size); osSyncPrintf("icon_item24 size=%x\n", size);
DmaMgr_SendRequest1(pauseCtx->iconItem24Segment, (uintptr_t)_icon_item_24_staticSegmentRomStart, size, DmaMgr_SendRequest1(pauseCtx->iconItem24Segment, (uintptr_t)_icon_item_24_staticSegmentRomStart, size,
@ -3437,14 +3460,15 @@ void KaleidoScope_Update(PlayState* play) {
case PAUSE_STATE_13: case PAUSE_STATE_13:
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = pauseCtx->rollRotSavePromptPage_unk_204 -= 160.0f / WREG(6); pauseCtx->rollRotPageQuest = pauseCtx->rollRotSavePromptPage_unk_204 -=
pauseCtx->infoPanelOffsetY += 40 / WREG(6); 160.0f / R_PAUSE_UI_ANIMS_DURATION;
interfaceCtx->startAlpha += 255 / WREG(6); pauseCtx->infoPanelOffsetY += 40 / R_PAUSE_UI_ANIMS_DURATION;
interfaceCtx->startAlpha += 255 / R_PAUSE_UI_ANIMS_DURATION;
VREG(88) -= 3; VREG(88) -= 3;
R_PAUSE_CURSOR_LEFT_X += WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X += R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X += WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X += R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
XREG(5) += 150 / WREG(6); XREG(5) += 150 / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->alpha += (u16)(255 / (WREG(6) + WREG(4))); pauseCtx->alpha += (u16)(255 / (R_PAUSE_UI_ANIMS_DURATION + R_PAUSE_UI_ANIM_ALPHA_ADD_DURATION));
if (pauseCtx->rollRotSavePromptPage_unk_204 < -628.0f) { if (pauseCtx->rollRotSavePromptPage_unk_204 < -628.0f) {
pauseCtx->rollRotSavePromptPage_unk_204 = -628.0f; pauseCtx->rollRotSavePromptPage_unk_204 = -628.0f;
interfaceCtx->startAlpha = 255; interfaceCtx->startAlpha = 255;
@ -3569,7 +3593,7 @@ void KaleidoScope_Update(PlayState* play) {
interfaceCtx->unk_244 += 10; interfaceCtx->unk_244 += 10;
if (interfaceCtx->unk_244 >= 255) { if (interfaceCtx->unk_244 >= 255) {
interfaceCtx->unk_244 = 255; interfaceCtx->unk_244 = 255;
pauseCtx->state = PAUSE_STATE_0; pauseCtx->state = PAUSE_STATE_OFF;
R_UPDATE_RATE = 3; R_UPDATE_RATE = 3;
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_OFF; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_OFF;
func_800981B8(&play->objectCtx); func_800981B8(&play->objectCtx);
@ -3603,22 +3627,22 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE: case PAUSE_STATE_CLOSING:
if (pauseCtx->rollRotPageItem != 160.0f) { if (pauseCtx->rollRotPageItem != 160.0f) {
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest += 160.0f / WREG(6); pauseCtx->rollRotPageQuest += 160.0f / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->infoPanelOffsetY -= 40 / WREG(6); pauseCtx->infoPanelOffsetY -= 40 / R_PAUSE_UI_ANIMS_DURATION;
interfaceCtx->startAlpha -= 255 / WREG(6); interfaceCtx->startAlpha -= 255 / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_LEFT_X -= WREG(25) / WREG(6); R_PAUSE_CURSOR_LEFT_X -= R_PAUSE_CURSOR_LEFT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
R_PAUSE_CURSOR_RIGHT_X -= WREG(26) / WREG(6); R_PAUSE_CURSOR_RIGHT_X -= R_PAUSE_CURSOR_RIGHT_MOVE_OFFSET_X / R_PAUSE_UI_ANIMS_DURATION;
XREG(5) -= 150 / WREG(6); XREG(5) -= 150 / R_PAUSE_UI_ANIMS_DURATION;
pauseCtx->alpha -= (u16)(255 / WREG(6)); pauseCtx->alpha -= (u16)(255 / R_PAUSE_UI_ANIMS_DURATION);
if (pauseCtx->rollRotPageItem == 160.0f) { if (pauseCtx->rollRotPageItem == 160.0f) {
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
} }
} else { } else {
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->state = PAUSE_STATE_19_UNPAUSE; pauseCtx->state = PAUSE_STATE_UNPAUSE;
pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap =
pauseCtx->rollRotPageQuest = 160.0f; pauseCtx->rollRotPageQuest = 160.0f;
pauseCtx->namedItem = PAUSE_ITEM_NONE; pauseCtx->namedItem = PAUSE_ITEM_NONE;
@ -3626,10 +3650,11 @@ void KaleidoScope_Update(PlayState* play) {
} }
break; break;
case PAUSE_STATE_19_UNPAUSE: case PAUSE_STATE_UNPAUSE:
pauseCtx->state = PAUSE_STATE_0; pauseCtx->state = PAUSE_STATE_OFF;
R_UPDATE_RATE = 3; R_UPDATE_RATE = 3;
R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_OFF; R_PAUSE_BG_PRERENDER_STATE = PAUSE_BG_PRERENDER_OFF;
func_800981B8(&play->objectCtx); func_800981B8(&play->objectCtx);
func_800418D0(&play->colCtx, play); func_800418D0(&play->colCtx, play);
@ -3656,18 +3681,23 @@ void KaleidoScope_Update(PlayState* play) {
break; break;
} }
gSaveContext.buttonStatus[0] = D_808321A8[0]; gSaveContext.buttonStatus[0] = D_808321A8_savedButtonStatus[0];
gSaveContext.buttonStatus[1] = D_808321A8[1]; gSaveContext.buttonStatus[1] = D_808321A8_savedButtonStatus[1];
gSaveContext.buttonStatus[2] = D_808321A8[2]; gSaveContext.buttonStatus[2] = D_808321A8_savedButtonStatus[2];
gSaveContext.buttonStatus[3] = D_808321A8[3]; gSaveContext.buttonStatus[3] = D_808321A8_savedButtonStatus[3];
gSaveContext.buttonStatus[4] = D_808321A8[4]; gSaveContext.buttonStatus[4] = D_808321A8_savedButtonStatus[4];
interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0; interfaceCtx->unk_1FA = interfaceCtx->unk_1FC = 0;
osSyncPrintf(VT_FGCOL(YELLOW)); osSyncPrintf(VT_FGCOL(YELLOW));
osSyncPrintf("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.unk_13EE); osSyncPrintf("i=%d LAST_TIME_TYPE=%d\n", i, gSaveContext.unk_13EE);
gSaveContext.unk_13EA = 0; gSaveContext.unk_13EA = 0;
Interface_ChangeAlpha(gSaveContext.unk_13EE); Interface_ChangeAlpha(gSaveContext.unk_13EE);
player->targetActor = NULL; player->targetActor = NULL;
Player_SetEquipmentData(play, player); Player_SetEquipmentData(play, player);
osSyncPrintf(VT_RST); osSyncPrintf(VT_RST);
break; break;
} }

View file

@ -80,8 +80,8 @@ void PauseMapMark_DrawForDungeon(PlayState* play) {
Matrix_Push(); Matrix_Push();
if ((play->pauseCtx.state == PAUSE_STATE_4) || (play->pauseCtx.state >= PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) if ((play->pauseCtx.state == PAUSE_STATE_OPENING_1) || (play->pauseCtx.state >= PAUSE_STATE_CLOSING)
/* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */ /* PAUSE_STATE_CLOSING, PAUSE_STATE_UNPAUSE */
) { ) {
Matrix_Translate(-36.0f, 101.0f, 0.0f, MTXMODE_APPLY); Matrix_Translate(-36.0f, 101.0f, 0.0f, MTXMODE_APPLY);
} else { } else {