1
0
Fork 0
mirror of https://github.com/zeldaret/oot.git synced 2025-07-03 22:44:30 +00:00

Some doc, some regs, some bulk rename of wip enums, add enum for R_PAUSE_MENU_MODE

This commit is contained in:
Dragorn421 2022-08-28 16:24:40 +02:00
parent 8ddd1c1051
commit 5337eddf3a
No known key found for this signature in database
GPG key ID: 32B53D2D16FC4118
22 changed files with 494 additions and 421 deletions

View file

@ -81,6 +81,8 @@
#define R_C_UP_ICON_X YREG(88) #define R_C_UP_ICON_X YREG(88)
#define R_C_UP_ICON_Y YREG(89) #define R_C_UP_ICON_Y YREG(89)
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + (i)) #define R_MAGIC_FILL_COLOR(i) ZREG(0 + (i))
#define R_PAUSE_PAGE_CHANGE_FRAME_ADVANCE_ON ZREG(13)
#define R_PAUSE_CURSOR_L_R_SELECTED_PRIM_TIMER ZREG(28)
#define R_C_BTN_COLOR(i) ZREG(39 + (i)) #define R_C_BTN_COLOR(i) ZREG(39 + (i))
#define R_B_BTN_COLOR(i) ZREG(43 + (i)) #define R_B_BTN_COLOR(i) ZREG(43 + (i))
#define R_START_LABEL_DD(i) ZREG(48 + (i)) #define R_START_LABEL_DD(i) ZREG(48 + (i))
@ -128,6 +130,11 @@
#define R_ENV_LIGHT1_DIR(i) cREG(3 + (i)) #define R_ENV_LIGHT1_DIR(i) cREG(3 + (i))
#define R_ENV_LIGHT2_DIR(i) cREG(6 + (i)) #define R_ENV_LIGHT2_DIR(i) cREG(6 + (i))
#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_DEPTH WREG(3)
#define R_PAUSE_CURSOR_LEFT_X WREG(16)
#define R_PAUSE_CURSOR_RIGHT_X WREG(17)
#define R_PAUSE_CURSOR_LEFT_RIGHT_Y WREG(18)
#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)

View file

@ -734,26 +734,26 @@ 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 */ PAUSECTX_STATE_0, /* 0 */ PAUSE_STATE_0,
/* 1 */ PAUSECTX_STATE_1, /* 1 */ PAUSE_STATE_1,
/* 2 */ PAUSECTX_STATE_2, /* 2 */ PAUSE_STATE_2,
/* 3 */ PAUSECTX_STATE_3, /* 3 */ PAUSE_STATE_3,
/* 4 */ PAUSECTX_STATE_4, /* 4 */ PAUSE_STATE_4,
/* 5 */ PAUSECTX_STATE_5, /* 5 */ PAUSE_STATE_5,
/* 6 */ PAUSECTX_STATE_6, // listen to inputs /* 6 */ PAUSE_STATE_6, // listen to inputs
/* 7 */ PAUSECTX_STATE_7_SAVE_PROMPT_, // save /* 7 */ PAUSE_STATE_7_SAVE_PROMPT_, // save
/* 8 */ PAUSECTX_STATE_8, // saveGameOver /* 8 */ PAUSE_STATE_8, // saveGameOver
/* 9 */ PAUSECTX_STATE_9, // saveGameOver /* 9 */ PAUSE_STATE_9, // saveGameOver
/* 10 */ PAUSECTX_STATE_10, // game over saveGameOver /* 10 */ PAUSE_STATE_10, // game over saveGameOver
/* 11 */ PAUSECTX_STATE_11, // game over KaleidoScope_DrawGameOver saveGameOver /* 11 */ PAUSE_STATE_11, // game over KaleidoScope_DrawGameOver saveGameOver
/* 12 */ PAUSECTX_STATE_12, // game over KaleidoScope_DrawGameOver saveGameOver /* 12 */ PAUSE_STATE_12, // game over KaleidoScope_DrawGameOver saveGameOver
/* 13 */ PAUSECTX_STATE_13, // game over KaleidoScope_DrawGameOver saveGameOver /* 13 */ PAUSE_STATE_13, // game over KaleidoScope_DrawGameOver saveGameOver
/* 14 */ PAUSECTX_STATE_14, // game over KaleidoScope_DrawGameOver saveGameOver /* 14 */ PAUSE_STATE_14, // game over KaleidoScope_DrawGameOver saveGameOver
/* 15 */ PAUSECTX_STATE_15, // game over KaleidoScope_DrawGameOver saveGameOver /* 15 */ PAUSE_STATE_15, // game over KaleidoScope_DrawGameOver saveGameOver
/* 16 */ PAUSECTX_STATE_16, // game over KaleidoScope_DrawGameOver saveGameOver /* 16 */ PAUSE_STATE_16, // game over KaleidoScope_DrawGameOver saveGameOver
/* 17 */ PAUSECTX_STATE_17, // game over KaleidoScope_DrawGameOver saveGameOver /* 17 */ PAUSE_STATE_17, // game over KaleidoScope_DrawGameOver saveGameOver
/* 18 */ PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE, /* 18 */ PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE,
/* 19 */ PAUSECTX_STATE_19_UNPAUSE /* 19 */ PAUSE_STATE_19_UNPAUSE
} PauseCtxState; } PauseCtxState;
typedef enum { typedef enum {
@ -770,15 +770,23 @@ typedef enum {
} PauseCtxUnk1E4; } PauseCtxUnk1E4;
typedef enum { typedef enum {
/* 0 */ PAUSECTX_UNK_1EC_0, /* 0 */ PAUSE_S7_0,
/* 1 */ PAUSECTX_UNK_1EC_1, /* 1 */ PAUSE_S7_1,
/* 2 */ PAUSECTX_UNK_1EC_2, /* 2 */ PAUSE_S7_2,
/* 3 */ PAUSECTX_UNK_1EC_3, /* 3 */ PAUSE_S7_3,
/* 4 */ PAUSECTX_UNK_1EC_4, /* 4 */ PAUSE_S7_4,
/* 5 */ PAUSECTX_UNK_1EC_5, /* 5 */ PAUSE_S7_5,
/* 6 */ PAUSECTX_UNK_1EC_6 /* 6 */ PAUSE_S7_6
} PauseCtxUnk1EC; } PauseCtxUnk1EC;
typedef enum {
/* 0 */ PAUSE_MENU_REG_MODE_0,
/* 1 */ PAUSE_MENU_REG_MODE_1,
/* 2 */ PAUSE_MENU_REG_MODE_2,
/* 3 */ PAUSE_MENU_REG_MODE_3,
/* 4 */ PAUSE_MENU_REG_MODE_MAX
} PauseMenuRegMode;
typedef struct { typedef struct {
/* 0x0000 */ View view; /* 0x0000 */ View view;
/* 0x0128 */ u8* iconItemSegment; /* 0x0128 */ u8* iconItemSegment;
@ -811,13 +819,13 @@ typedef struct {
/* 0x01E6 */ u16 mode; /* 0x01E6 */ u16 mode;
/* 0x01E8 */ u16 pageIndex; // "kscp_pos" /* 0x01E8 */ u16 pageIndex; // "kscp_pos"
/* 0x01EA */ u16 unk_1EA; /* 0x01EA */ u16 unk_1EA;
/* 0x01EC */ u16 unk_1EC; /* 0x01EC */ u16 unk_1EC_ps7_;
/* 0x01F0 */ f32 unk_1F0; /* 0x01F0 */ f32 savePromptOffsetDepth_unk_1F0;
/* 0x01F4 */ f32 rotXpauseItem_unk_1F4; /* 0x01F4 */ f32 rollRotPageItem;
/* 0x01F8 */ f32 rotPauseEquip_unk_1F8; /* 0x01F8 */ f32 rollRotPageEquip;
/* 0x01FC */ f32 rotPauseMap_unk_1FC; /* 0x01FC */ f32 rollRotPageMap;
/* 0x0200 */ f32 rotPauseQuest_unk_200; /* 0x0200 */ f32 rollRotPageQuest;
/* 0x0204 */ f32 rotXorZ_unk_204; // "angle_s" /* 0x0204 */ f32 rollRotSavePromptPage_unk_204; // "angle_s"
/* 0x0208 */ u16 alpha; /* 0x0208 */ u16 alpha;
/* 0x020A */ s16 offsetY; /* 0x020A */ s16 offsetY;
/* 0x020C */ char unk_20C[0x08]; /* 0x020C */ char unk_20C[0x08];

View file

@ -309,7 +309,7 @@ void GameState_Update(GameState* gameState) {
} }
} }
if (R_PAUSE_MENU_MODE != 2u) { if (R_PAUSE_MENU_MODE != (u32)PAUSE_MENU_REG_MODE_2) {
GameState_Draw(gameState, gfxCtx); GameState_Draw(gameState, gfxCtx);
func_800C49F4(gfxCtx); func_800C49F4(gfxCtx);
} }

View file

@ -3144,8 +3144,8 @@ 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 != 0; pauseState = dynaRaycast->play->pauseCtx.state != PAUSE_STATE_0;
if (pauseState == 0) { if (!pauseState) {
pauseState = dynaRaycast->play->pauseCtx.debugState != 0; pauseState = dynaRaycast->play->pauseCtx.debugState != 0;
} }
if (!pauseState && (dynaRaycast->colCtx->dyna.bgActorFlags[*dynaRaycast->bgId] & BGACTOR_1)) { if (!pauseState && (dynaRaycast->colCtx->dyna.bgActorFlags[*dynaRaycast->bgId] & BGACTOR_1)) {

View file

@ -270,7 +270,7 @@ void func_80111070(void) {
ZREG(10) = 200; ZREG(10) = 200;
ZREG(11) = 0; ZREG(11) = 0;
ZREG(12) = 200; ZREG(12) = 200;
ZREG(13) = 0; R_PAUSE_PAGE_CHANGE_FRAME_ADVANCE_ON = false;
ZREG(14) = 110; ZREG(14) = 110;
ZREG(15) = 56; ZREG(15) = 56;
ZREG(16) = 1; ZREG(16) = 1;
@ -285,7 +285,7 @@ void func_80111070(void) {
ZREG(25) = 4; ZREG(25) = 4;
ZREG(26) = 20; ZREG(26) = 20;
ZREG(27) = 10; ZREG(27) = 10;
ZREG(28) = 20; R_PAUSE_CURSOR_L_R_SELECTED_PRIM_TIMER = 20;
ZREG(29) = 4; ZREG(29) = 4;
ZREG(30) = 20; ZREG(30) = 20;
ZREG(31) = 10; ZREG(31) = 10;
@ -430,8 +430,8 @@ void func_80111070(void) {
XREG(93) = 100; XREG(93) = 100;
XREG(94) = 160; XREG(94) = 160;
XREG(95) = 200; XREG(95) = 200;
WREG(2) = -6080; // y offset of pause menu R_PAUSE_OFFSET_VERTICAL = -6080;
WREG(3) = 9355; // somehow, depth offset of pause menu (offset on distance to "center") R_PAUSE_OFFSET_DEPTH = 9355;
WREG(4) = 8; WREG(4) = 8;
WREG(5) = 3; WREG(5) = 3;
WREG(6) = 8; WREG(6) = 8;
@ -444,9 +444,9 @@ void func_80111070(void) {
WREG(13) = 22; WREG(13) = 22;
WREG(14) = -380; WREG(14) = -380;
WREG(15) = -350; WREG(15) = -350;
WREG(16) = -175; R_PAUSE_CURSOR_LEFT_X = -175;
WREG(17) = 155; R_PAUSE_CURSOR_RIGHT_X = 155;
WREG(18) = 10; R_PAUSE_CURSOR_LEFT_RIGHT_Y = 10;
WREG(19) = 10; WREG(19) = 10;
WREG(20) = -50; WREG(20) = -50;
WREG(21) = -54; WREG(21) = -54;

View file

@ -92,7 +92,7 @@ void GameOver_Update(PlayState* play) {
gGameOverTimer--; gGameOverTimer--;
if (gGameOverTimer == 0) { if (gGameOverTimer == 0) {
play->pauseCtx.state = 8; play->pauseCtx.state = PAUSE_STATE_8;
gameOverCtx->state++; gameOverCtx->state++;
func_800AA15C(); func_800AA15C();
} }

View file

@ -56,30 +56,30 @@ 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 != PAUSECTX_STATE_0) || (pauseCtx->debugState != 0)) { if ((pauseCtx->state != PAUSE_STATE_0) || (pauseCtx->debugState != 0)) {
if (pauseCtx->state == PAUSECTX_STATE_1) { if (pauseCtx->state == PAUSE_STATE_1) {
if (Letterbox_GetSize() == 0) { if (Letterbox_GetSize() == 0) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_MENU_MODE = 1; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_1;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_2 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_2
} }
} else if (pauseCtx->state == PAUSECTX_STATE_8) { } else if (pauseCtx->state == PAUSE_STATE_8) {
HREG(80) = 7; HREG(80) = 7;
HREG(82) = 3; HREG(82) = 3;
R_PAUSE_MENU_MODE = 1; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_1;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
pauseCtx->unk_1EC = PAUSECTX_UNK_1EC_0; pauseCtx->unk_1EC_ps7_ = PAUSE_S7_0;
pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSECTX_STATE_9 pauseCtx->state = (pauseCtx->state & 0xFFFF) + 1; // PAUSE_STATE_9
} else if ((pauseCtx->state == PAUSECTX_STATE_2) || (pauseCtx->state == PAUSECTX_STATE_9)) { } else if ((pauseCtx->state == PAUSE_STATE_2) || (pauseCtx->state == PAUSE_STATE_9)) {
osSyncPrintf("PR_KAREIDOSCOPE_MODE=%d\n", R_PAUSE_MENU_MODE); osSyncPrintf("PR_KAREIDOSCOPE_MODE=%d\n", R_PAUSE_MENU_MODE);
if (R_PAUSE_MENU_MODE >= 3) { if (R_PAUSE_MENU_MODE >= PAUSE_MENU_REG_MODE_3) {
pauseCtx->state++; // PAUSECTX_STATE_3 or PAUSECTX_STATE_10 pauseCtx->state++; // PAUSE_STATE_3 or PAUSE_STATE_10
} }
} else if (pauseCtx->state != PAUSECTX_STATE_0) { } else if (pauseCtx->state != PAUSE_STATE_0) {
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 == 0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) {
osSyncPrintf(VT_FGCOL(GREEN)); osSyncPrintf(VT_FGCOL(GREEN));
// "Kaleido area Kaleidoscope Emission" // "Kaleido area Kaleidoscope Emission"
osSyncPrintf("カレイド領域 カレイドスコープ排出\n"); osSyncPrintf("カレイド領域 カレイドスコープ排出\n");
@ -118,9 +118,13 @@ void KaleidoScopeCall_Update(PlayState* play) {
void KaleidoScopeCall_Draw(PlayState* play) { void KaleidoScopeCall_Draw(PlayState* play) {
KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE]; KaleidoMgrOverlay* kaleidoScopeOvl = &gKaleidoMgrOverlayTable[KALEIDO_OVL_KALEIDO_SCOPE];
if (R_PAUSE_MENU_MODE >= 3) { if (R_PAUSE_MENU_MODE >= PAUSE_MENU_REG_MODE_3) {
if (((play->pauseCtx.state >= 4) && (play->pauseCtx.state <= 7)) || if (((play->pauseCtx.state >= PAUSE_STATE_4) && (play->pauseCtx.state <= PAUSE_STATE_7_SAVE_PROMPT_)
((play->pauseCtx.state >= 11) && (play->pauseCtx.state <= 18))) { /* PAUSE_STATE_4, PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */) ||
((play->pauseCtx.state >= PAUSE_STATE_11) && (play->pauseCtx.state <= PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)
/* 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 */
)) {
if (gKaleidoMgrCurOvl == kaleidoScopeOvl) { if (gKaleidoMgrCurOvl == kaleidoScopeOvl) {
sKaleidoScopeDrawFunc(play); sKaleidoScopeDrawFunc(play);
} }

View file

@ -12,11 +12,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 == PAUSECTX_STATE_0 && pauseCtx->debugState == 0 && if (pauseCtx->state == PAUSE_STATE_0 && pauseCtx->debugState == 0 && play->gameOverCtx.state == GAMEOVER_INACTIVE &&
play->gameOverCtx.state == GAMEOVER_INACTIVE && play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionTrigger == TRANS_TRIGGER_OFF && play->transitionMode == TRANS_MODE_OFF &&
play->transitionMode == TRANS_MODE_OFF && gSaveContext.cutsceneIndex < 0xFFF0 && gSaveContext.cutsceneIndex < 0xFFF0 && gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) &&
gSaveContext.nextCutsceneIndex < 0xFFF0 && !Play_InCsMode(play) && play->shootingGalleryStatus <= 1 && play->shootingGalleryStatus <= 1 && gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY &&
gSaveContext.magicState != MAGIC_STATE_STEP_CAPACITY && gSaveContext.magicState != MAGIC_STATE_FILL && 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)) {
@ -26,8 +26,8 @@ void KaleidoSetup_Update(PlayState* play) {
} else if (CHECK_BTN_ALL(input->press.button, BTN_START)) { } else if (CHECK_BTN_ALL(input->press.button, BTN_START)) {
gSaveContext.unk_13EE = gSaveContext.unk_13EA; gSaveContext.unk_13EE = gSaveContext.unk_13EA;
WREG(16) = -175; R_PAUSE_CURSOR_LEFT_X = -175;
WREG(17) = 155; R_PAUSE_CURSOR_RIGHT_X = 155;
pauseCtx->unk_1EA = 0; pauseCtx->unk_1EA = 0;
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_1;
@ -43,14 +43,14 @@ void KaleidoSetup_Update(PlayState* play) {
} }
pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1; pauseCtx->mode = (u16)(pauseCtx->pageIndex * 2) + 1;
pauseCtx->state = PAUSECTX_STATE_1; pauseCtx->state = PAUSE_STATE_1;
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 == PAUSECTX_STATE_1) { if (pauseCtx->state == PAUSE_STATE_1) {
WREG(2) = -6240; R_PAUSE_OFFSET_VERTICAL = -6240;
R_UPDATE_RATE = 2; R_UPDATE_RATE = 2;
if (Letterbox_GetSizeTarget() != 0) { if (Letterbox_GetSizeTarget() != 0) {
@ -66,7 +66,7 @@ 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 = PAUSECTX_STATE_0; pauseCtx->state = PAUSE_STATE_0;
pauseCtx->debugState = 0; pauseCtx->debugState = 0;
pauseCtx->alpha = 0; pauseCtx->alpha = 0;
pauseCtx->unk_1EA = 0; pauseCtx->unk_1EA = 0;
@ -74,12 +74,12 @@ void KaleidoSetup_Init(PlayState* play) {
pauseCtx->mode = 0; pauseCtx->mode = 0;
pauseCtx->pageIndex = PAUSE_ITEM; pauseCtx->pageIndex = PAUSE_ITEM;
pauseCtx->rotXpauseItem_unk_1F4 = pauseCtx->rotPauseEquip_unk_1F8 = pauseCtx->rotPauseMap_unk_1FC = pauseCtx->rollRotPageItem = pauseCtx->rollRotPageEquip = pauseCtx->rollRotPageMap = pauseCtx->rollRotPageQuest =
pauseCtx->rotPauseQuest_unk_200 = 160.0f; 160.0f;
pauseCtx->eye.z = 64.0f; pauseCtx->eye.z = 64.0f;
pauseCtx->unk_1F0 = 936.0f; pauseCtx->savePromptOffsetDepth_unk_1F0 = 936.0f;
pauseCtx->eye.x = pauseCtx->eye.y = 0.0f; pauseCtx->eye.x = pauseCtx->eye.y = 0.0f;
pauseCtx->rotXorZ_unk_204 = -314.0f; pauseCtx->rollRotSavePromptPage_unk_204 = -314.0f;
pauseCtx->cursorPoint[PAUSE_ITEM] = 0; pauseCtx->cursorPoint[PAUSE_ITEM] = 0;
pauseCtx->cursorPoint[PAUSE_MAP] = VREG(30) + 3; pauseCtx->cursorPoint[PAUSE_MAP] = VREG(30) + 3;

View file

@ -886,8 +886,8 @@ void Environment_Update(PlayState* play, EnvironmentContext* envCtx, LightContex
func_800AA16C(); func_800AA16C();
} }
if (pauseCtx->state == PAUSECTX_STATE_0) { if (pauseCtx->state == PAUSE_STATE_0) {
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_0) && (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 == PAUSECTX_STATE_0) && (gameOverCtx->state == GAMEOVER_INACTIVE)) { if ((pauseCtx->state == PAUSE_STATE_0) && (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,7 +506,7 @@ 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 == 0) && (play->pauseCtx.debugState == 0) && if (!Player_InCsMode(play) && (play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) &&
Health_IsCritical() && !Play_InCsMode(play)) { Health_IsCritical() && !Play_InCsMode(play)) {
func_80078884(NA_SE_SY_HITPOINT_ALARM); func_80078884(NA_SE_SY_HITPOINT_ALARM);
} }

View file

@ -364,7 +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 < 4) { if (play->pauseCtx.state < PAUSE_STATE_4) {
/* PAUSE_STATE_0, PAUSE_STATE_1, PAUSE_STATE_2, PAUSE_STATE_3 */
switch (play->sceneId) { switch (play->sceneId) {
case SCENE_YDAN: case SCENE_YDAN:
case SCENE_DDAN: case SCENE_DDAN:
@ -520,7 +521,7 @@ void Map_Update(PlayState* play) {
s16 floor; s16 floor;
s16 i; s16 i;
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0)) {
switch (play->sceneId) { switch (play->sceneId) {
case SCENE_YDAN: case SCENE_YDAN:
case SCENE_DDAN: case SCENE_DDAN:

View file

@ -2103,7 +2103,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 != PAUSECTX_STATE_0) { if (pauseCtx->state != PAUSE_STATE_0) {
interfaceCtx->unk_1EC = 3; interfaceCtx->unk_1EC = 3;
} }
} }
@ -2518,9 +2518,10 @@ 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 == 0) && (play->pauseCtx.debugState == 0) && (msgCtx->msgMode == MSGMODE_NONE) && if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) &&
(play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->transitionTrigger == TRANS_TRIGGER_OFF) && (msgCtx->msgMode == MSGMODE_NONE) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) &&
(play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play)) { (play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF) &&
!Play_InCsMode(play)) {
if ((gSaveContext.magic == 0) || ((func_8008F2F8(play) >= 2) && (func_8008F2F8(play) < 5)) || if ((gSaveContext.magic == 0) || ((func_8008F2F8(play) >= 2) && (func_8008F2F8(play) < 5)) ||
((gSaveContext.equips.buttonItems[1] != ITEM_LENS) && ((gSaveContext.equips.buttonItems[1] != ITEM_LENS) &&
(gSaveContext.equips.buttonItems[2] != ITEM_LENS) && (gSaveContext.equips.buttonItems[2] != ITEM_LENS) &&
@ -2763,10 +2764,12 @@ 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 < PAUSECTX_STATE_8) /* PAUSECTX_STATE_0, PAUSECTX_STATE_1, PAUSECTX_STATE_2, PAUSECTX_STATE_3, if ((pauseCtx->state < PAUSE_STATE_8) /* PAUSE_STATE_0, PAUSE_STATE_1, PAUSE_STATE_2, PAUSE_STATE_3,
PAUSECTX_STATE_4, PAUSECTX_STATE_5, PAUSECTX_STATE_6, PAUSECTX_STATE_7_SAVE_PROMPT_ */ PAUSE_STATE_4, PAUSE_STATE_5, PAUSE_STATE_6, PAUSE_STATE_7_SAVE_PROMPT_ */
|| (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)) { (pauseCtx->state >=
PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE) /* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */) {
if ((play->pauseCtx.state != PAUSE_STATE_0) || (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);
@ -2794,7 +2797,7 @@ void Interface_DrawItemButtons(PlayState* play) {
} }
} }
if (interfaceCtx->naviCalling && (play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) && if (interfaceCtx->naviCalling && (play->pauseCtx.state == PAUSE_STATE_0) && (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)
@ -3205,7 +3208,7 @@ void Interface_Draw(PlayState* play) {
Magic_DrawMeter(play); Magic_DrawMeter(play);
Minimap_Draw(play); Minimap_Draw(play);
if ((R_PAUSE_MENU_MODE != 2) && (R_PAUSE_MENU_MODE != 3)) { if ((R_PAUSE_MENU_MODE != PAUSE_MENU_REG_MODE_2) && (R_PAUSE_MENU_MODE != PAUSE_MENU_REG_MODE_3)) {
func_8002C124(&play->actorCtx.targetCtx, play); // Draw Z-Target func_8002C124(&play->actorCtx.targetCtx, play); // Draw Z-Target
} }
@ -3320,7 +3323,7 @@ void Interface_Draw(PlayState* play) {
func_8008A994(interfaceCtx); func_8008A994(interfaceCtx);
if ((pauseCtx->state == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_3)) { if ((pauseCtx->state == PAUSE_STATE_6) && (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 +3374,7 @@ void Interface_Draw(PlayState* play) {
Gfx_SetupDL_39Overlay(play->state.gfxCtx); Gfx_SetupDL_39Overlay(play->state.gfxCtx);
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_0) && (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 +3470,7 @@ void Interface_Draw(PlayState* play) {
} }
} }
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) && if ((play->pauseCtx.state == PAUSE_STATE_0) && (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 +3894,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 == 0) && (play->pauseCtx.debugState == 0)) { if ((play->pauseCtx.state == PAUSE_STATE_0) && (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,10 +4038,10 @@ void Interface_Update(PlayState* play) {
Health_UpdateMeter(play); Health_UpdateMeter(play);
if ((gSaveContext.timer1State >= 3) && (play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) && if ((gSaveContext.timer1State >= 3) && (play->pauseCtx.state == PAUSE_STATE_0) &&
(msgCtx->msgMode == MSGMODE_NONE) && !(player->stateFlags2 & PLAYER_STATE2_24) && (play->pauseCtx.debugState == 0) && (msgCtx->msgMode == MSGMODE_NONE) &&
(play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->transitionMode == TRANS_MODE_OFF) && !(player->stateFlags2 & PLAYER_STATE2_24) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
!Play_InCsMode(play)) {} (play->transitionMode == TRANS_MODE_OFF) && !Play_InCsMode(play)) {}
if (gSaveContext.rupeeAccumulator != 0) { if (gSaveContext.rupeeAccumulator != 0) {
if (gSaveContext.rupeeAccumulator > 0) { if (gSaveContext.rupeeAccumulator > 0) {
@ -4121,9 +4124,10 @@ void Interface_Update(PlayState* play) {
WREG(7) = interfaceCtx->unk_1F4; WREG(7) = interfaceCtx->unk_1F4;
// Update Magic // Update Magic
if ((play->pauseCtx.state == 0) && (play->pauseCtx.debugState == 0) && (msgCtx->msgMode == MSGMODE_NONE) && if ((play->pauseCtx.state == PAUSE_STATE_0) && (play->pauseCtx.debugState == 0) &&
(play->transitionTrigger == TRANS_TRIGGER_OFF) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (msgCtx->msgMode == MSGMODE_NONE) && (play->transitionTrigger == TRANS_TRIGGER_OFF) &&
(play->transitionMode == TRANS_MODE_OFF) && ((play->csCtx.state == CS_STATE_IDLE) || !Player_InCsMode(play))) { (play->gameOverCtx.state == GAMEOVER_INACTIVE) && (play->transitionMode == TRANS_MODE_OFF) &&
((play->csCtx.state == CS_STATE_IDLE) || !Player_InCsMode(play))) {
if (gSaveContext.isMagicAcquired && (gSaveContext.magicLevel == 0)) { if (gSaveContext.isMagicAcquired && (gSaveContext.magicLevel == 0)) {
gSaveContext.magicLevel = gSaveContext.isDoubleMagicAcquired + 1; gSaveContext.magicLevel = gSaveContext.isDoubleMagicAcquired + 1;

View file

@ -178,7 +178,7 @@ void Play_Destroy(GameState* thisx) {
this->state.gfxCtx->callbackParam = 0; this->state.gfxCtx->callbackParam = 0;
SREG(91) = 0; SREG(91) = 0;
R_PAUSE_MENU_MODE = 0; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_0;
PreRender_Destroy(&this->pauseBgPreRender); PreRender_Destroy(&this->pauseBgPreRender);
Effect_DeleteAll(this); Effect_DeleteAll(this);
@ -355,7 +355,7 @@ void Play_Init(GameState* thisx) {
} }
SREG(91) = -1; SREG(91) = -1;
R_PAUSE_MENU_MODE = 0; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_0;
PreRender_Init(&this->pauseBgPreRender); PreRender_Init(&this->pauseBgPreRender);
PreRender_SetValuesSave(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0); PreRender_SetValuesSave(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0, 0);
PreRender_SetValues(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0); PreRender_SetValues(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, 0, 0);
@ -838,7 +838,7 @@ void Play_Update(PlayState* this) {
} }
PLAY_LOG(3551); PLAY_LOG(3551);
sp80 = (this->pauseCtx.state != 0) || (this->pauseCtx.debugState != 0); sp80 = (this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0);
PLAY_LOG(3555); PLAY_LOG(3555);
AnimationContext_Reset(&this->animationCtx); AnimationContext_Reset(&this->animationCtx);
@ -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 != 0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_0) || (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 != 0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_0) || (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) {
@ -1002,7 +1002,7 @@ skip:
} }
void Play_DrawOverlayElements(PlayState* this) { void Play_DrawOverlayElements(PlayState* this) {
if ((this->pauseCtx.state != 0) || (this->pauseCtx.debugState != 0)) { if ((this->pauseCtx.state != PAUSE_STATE_0) || (this->pauseCtx.debugState != 0)) {
KaleidoScopeCall_Draw(this); KaleidoScopeCall_Draw(this);
} }
@ -1110,15 +1110,15 @@ void Play_Draw(PlayState* this) {
} else { } else {
PreRender_SetValues(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, gfxCtx->curFrameBuffer, gZBuffer); PreRender_SetValues(&this->pauseBgPreRender, SCREEN_WIDTH, SCREEN_HEIGHT, gfxCtx->curFrameBuffer, gZBuffer);
if (R_PAUSE_MENU_MODE == 2) { if (R_PAUSE_MENU_MODE == PAUSE_MENU_REG_MODE_2) {
Sched_FlushTaskQueue(); Sched_FlushTaskQueue();
PreRender_Calc(&this->pauseBgPreRender); PreRender_Calc(&this->pauseBgPreRender);
R_PAUSE_MENU_MODE = 3; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_3;
} else if (R_PAUSE_MENU_MODE >= 4) { } else if (R_PAUSE_MENU_MODE >= PAUSE_MENU_REG_MODE_MAX) {
R_PAUSE_MENU_MODE = 0; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_0;
} }
if (R_PAUSE_MENU_MODE == 3) { if (R_PAUSE_MENU_MODE == PAUSE_MENU_REG_MODE_3) {
Gfx* sp84 = POLY_OPA_DISP; Gfx* sp84 = POLY_OPA_DISP;
func_800C24BC(&this->pauseBgPreRender, &sp84); func_800C24BC(&this->pauseBgPreRender, &sp84);
@ -1233,16 +1233,16 @@ void Play_Draw(PlayState* this) {
DebugDisplay_DrawObjects(this); DebugDisplay_DrawObjects(this);
} }
if ((R_PAUSE_MENU_MODE == 1) || (gTrnsnUnkState == 1)) { if ((R_PAUSE_MENU_MODE == PAUSE_MENU_REG_MODE_1) || (gTrnsnUnkState == 1)) {
Gfx* sp70 = OVERLAY_DISP; Gfx* sp70 = OVERLAY_DISP;
this->pauseBgPreRender.fbuf = gfxCtx->curFrameBuffer; this->pauseBgPreRender.fbuf = gfxCtx->curFrameBuffer;
this->pauseBgPreRender.fbufSave = (u16*)gZBuffer; this->pauseBgPreRender.fbufSave = (u16*)gZBuffer;
func_800C1F20(&this->pauseBgPreRender, &sp70); func_800C1F20(&this->pauseBgPreRender, &sp70);
if (R_PAUSE_MENU_MODE == 1) { if (R_PAUSE_MENU_MODE == PAUSE_MENU_REG_MODE_1) {
this->pauseBgPreRender.cvgSave = (u8*)gfxCtx->curFrameBuffer; this->pauseBgPreRender.cvgSave = (u8*)gfxCtx->curFrameBuffer;
func_800C20B4(&this->pauseBgPreRender, &sp70); func_800C20B4(&this->pauseBgPreRender, &sp70);
R_PAUSE_MENU_MODE = 2; R_PAUSE_MENU_MODE = PAUSE_MENU_REG_MODE_2;
} else { } else {
gTrnsnUnkState = 2; gTrnsnUnkState = 2;
} }

View file

@ -1469,7 +1469,8 @@ void Gfx_SetupFrame(GraphicsContext* gfxCtx, u8 r, u8 g, u8 b) {
gDPSetDepthImage(POLY_XLU_DISP++, gZBuffer); gDPSetDepthImage(POLY_XLU_DISP++, gZBuffer);
gDPSetDepthImage(OVERLAY_DISP++, gZBuffer); gDPSetDepthImage(OVERLAY_DISP++, gZBuffer);
if ((R_PAUSE_MENU_MODE < 2) && (gTrnsnUnkState < 2)) { if ((R_PAUSE_MENU_MODE < PAUSE_MENU_REG_MODE_2) /* PAUSE_MENU_REG_MODE_0, PAUSE_MENU_REG_MODE_1 */ &&
(gTrnsnUnkState < 2)) {
s32 letterboxSize = Letterbox_GetSize(); s32 letterboxSize = Letterbox_GetSize();
if (HREG(80) == 16) { if (HREG(80) == 16) {

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 == 0) && (play->gameOverCtx.state == GAMEOVER_INACTIVE) && if (((play->pauseCtx.state == PAUSE_STATE_0) && (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

@ -2,6 +2,8 @@
#include "assets/textures/parameter_static/parameter_static.h" #include "assets/textures/parameter_static/parameter_static.h"
#include "assets/textures/icon_item_static/icon_item_static.h" #include "assets/textures/icon_item_static/icon_item_static.h"
#define SONG_MAX_LENGTH 8
void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) { void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
static s16 sHpPrimColors[][4] = { static s16 sHpPrimColors[][4] = {
{ 255, 0, 0, 255 }, { 255, 0, 0, 255 },
@ -30,7 +32,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
static s16 sPlayedSongBtnsNum = 0; static s16 sPlayedSongBtnsNum = 0;
static s16 D_8082A120_playbackSongStartTimer_ = 0; static s16 D_8082A120_playbackSongStartTimer_ = 0;
static u8 sPlayedSongBtns[8] = { 0 }; static u8 sPlayedSongBtns[SONG_MAX_LENGTH] = { 0 };
static s32 sUnused1 = 0; static s32 sUnused1 = 0;
static void* sOcarinaBtnTextures[] = { static void* sOcarinaBtnTextures[] = {
gOcarinaATex, // OCARINA_BTN_A gOcarinaATex, // OCARINA_BTN_A
@ -42,7 +44,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
static u16 D_8082A144[] = { static u16 D_8082A144[] = {
0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC, 0xFFCC,
}; };
static s16 sPlayedSongBtnsAlpha[8] = { 0 }; static s16 sPlayedSongBtnsAlpha[SONG_MAX_LENGTH] = { 0 };
static s32 sUnused2 = 0; static s32 sUnused2 = 0;
static s16 sSongsPrimRed[] = { static s16 sSongsPrimRed[] = {
@ -123,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 != PAUSECTX_STATE_6) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) { if ((pauseCtx->state != PAUSE_STATE_6) || ((pauseCtx->stickRelX == 0) && (pauseCtx->stickRelY == 0))) {
// No cursor movement // No cursor movement
cursor = pauseCtx->cursorSlot[PAUSE_QUEST]; cursor = pauseCtx->cursorSlot[PAUSE_QUEST];
} else { } else {
@ -228,16 +230,21 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
// Use the appropriate QUEST_MEDALLION_FOREST-QUEST_HEART_PIECE quad (see `KaleidoScope_InitVertices`) // 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_IDLE_) && // Handle part of the ocarina songs playback
if ((pauseCtx->state == PAUSE_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])) {
// The cursor is on a learned song
// Set some things up for song playback
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_playbackSongStartTimer_ = 10; D_8082A120_playbackSongStartTimer_ = 10;
for (i = 0; i < 8; i++) { for (i = 0; i < SONG_MAX_LENGTH; i++) {
sPlayedSongBtns[i] = 0xFF; sPlayedSongBtns[i] = 0xFF;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
} }
@ -265,6 +272,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} }
} else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) { } else if (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_5_PLAYER_PLAYING_SONG_) {
// Abort having the player play the song if the stick is moved
if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) { if ((pauseCtx->stickRelX != 0) || (pauseCtx->stickRelY != 0)) {
pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_; pauseCtx->unk_1E4_ps6_ = PAUSE_S6_0_IDLE_;
@ -281,6 +289,8 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) { } else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
if (pauseCtx->stickRelX > 30) { if (pauseCtx->stickRelX > 30) {
// Move cursor right from the "scroll to left page" position
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;
@ -301,6 +311,8 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
} }
} else { // cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT } else { // cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT
if (pauseCtx->stickRelX < -30) { if (pauseCtx->stickRelX < -30) {
// Move cursor left from the "scroll to right page" position
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;
@ -316,10 +328,10 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
cursorItem = cursorItem =
ITEM_MEDALLION_FOREST - QUEST_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST]; ITEM_MEDALLION_FOREST - QUEST_MEDALLION_FOREST + pauseCtx->cursorPoint[PAUSE_QUEST];
} else if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_LULLABY) { } else if (pauseCtx->cursorPoint[PAUSE_QUEST] < QUEST_SONG_LULLABY) {
//! @bug this results in the wrong item //! @bug this would result in the wrong item
cursorItem = ITEM_SCALE_GOLDEN - QUEST_SONG_MINUET + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem = ITEM_SCALE_GOLDEN - QUEST_SONG_MINUET + pauseCtx->cursorPoint[PAUSE_QUEST];
} else { } else {
//! @bug this results in the wrong item //! @bug this would result in the wrong item
cursorItem = ITEM_COMPASS - QUEST_SONG_LULLABY + pauseCtx->cursorPoint[PAUSE_QUEST]; cursorItem = ITEM_COMPASS - QUEST_SONG_LULLABY + pauseCtx->cursorPoint[PAUSE_QUEST];
} }
} else { } else {
@ -335,7 +347,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
pauseCtx->cursorColorSet = 8; pauseCtx->cursorColorSet = 8;
if (--D_8082A120_playbackSongStartTimer_ == 0) { if (--D_8082A120_playbackSongStartTimer_ == 0) {
for (i = 0; i < 8; i++) { for (i = 0; i < SONG_MAX_LENGTH; i++) {
sPlayedSongBtns[i] = 0xFF; sPlayedSongBtns[i] = 0xFF;
sPlayedSongBtnsAlpha[i] = 0; sPlayedSongBtnsAlpha[i] = 0;
} }
@ -530,7 +542,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 == PAUSECTX_STATE_4) || (pauseCtx->state == PAUSECTX_STATE_18_FLIP_PAGES_AND_UNPAUSE)) { if ((pauseCtx->state == PAUSE_STATE_4) || (pauseCtx->state == PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)) {
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 {
@ -547,7 +559,7 @@ void KaleidoScope_DrawQuestStatus(PlayState* play, GraphicsContext* gfxCtx) {
48, 48, 0); 48, 48, 0);
} }
if (pauseCtx->state == PAUSECTX_STATE_6) { if (pauseCtx->state == PAUSE_STATE_6) {
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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_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_IDLE_) && (pauseCtx->state == PAUSE_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) ||

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_IDLE_) && if ((pauseCtx->state == PAUSE_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];
@ -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 == PAUSECTX_STATE_6) && if ((pauseCtx->debugState == 0) && (pauseCtx->state == PAUSE_STATE_6) &&
(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 == PAUSECTX_STATE_6) && (pauseCtx->unk_1E4_ps6_ == PAUSE_S6_0_IDLE_) && if ((pauseCtx->state == PAUSE_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_IDLE_) && if ((pauseCtx->state == PAUSE_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];

View file

@ -8,8 +8,8 @@ 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_SAVE_PROMPT_) && (pauseCtx->unk_1EC == PAUSECTX_UNK_1EC_1)) || if (((pauseCtx->state == PAUSE_STATE_7_SAVE_PROMPT_) && (pauseCtx->unk_1EC_ps7_ == PAUSE_S7_1)) ||
(pauseCtx->state == PAUSECTX_STATE_14) || (pauseCtx->state == PAUSECTX_STATE_16)) { (pauseCtx->state == PAUSE_STATE_14) || (pauseCtx->state == PAUSE_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,
&gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb); &gSfxDefaultFreqAndVolScale, &gSfxDefaultReverb);

File diff suppressed because it is too large Load diff

View file

@ -80,7 +80,9 @@ void PauseMapMark_DrawForDungeon(PlayState* play) {
Matrix_Push(); Matrix_Push();
if ((play->pauseCtx.state == 4) || (play->pauseCtx.state >= 0x12)) { if ((play->pauseCtx.state == PAUSE_STATE_4) || (play->pauseCtx.state >= PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE)
/* PAUSE_STATE_18_FLIP_PAGES_AND_UNPAUSE, PAUSE_STATE_19_UNPAUSE */
) {
Matrix_Translate(-36.0f, 101.0f, 0.0f, MTXMODE_APPLY); Matrix_Translate(-36.0f, 101.0f, 0.0f, MTXMODE_APPLY);
} else { } else {
Matrix_Translate(-36.0f, 21.0f, 0.0f, MTXMODE_APPLY); Matrix_Translate(-36.0f, 21.0f, 0.0f, MTXMODE_APPLY);