mirror of
https://github.com/zeldaret/oot.git
synced 2025-02-03 18:14:26 +00:00
Some pause menu inputs doc (#1370)
* `PauseContext.pageSwitchTimer` -> `delaySwitchPageInputTimer` * Document stick input repeat in the pause menu * format * `delaySwitchPageInputTimer` -> `pageSwitchInputTimer` * Fix swapped delay and delay_first, oops * Move timer incrs on their own lines Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com>
This commit is contained in:
parent
1cb00350d9
commit
9771afdc69
4 changed files with 42 additions and 36 deletions
|
@ -106,6 +106,8 @@
|
|||
#define R_TRANS_DBG_TYPE CREG(12)
|
||||
#define R_ENV_WIND_DIR(i) CREG(16 + (i))
|
||||
#define R_ENV_WIND_SPEED CREG(19)
|
||||
#define R_PAUSE_STICK_REPEAT_DELAY XREG(6)
|
||||
#define R_PAUSE_STICK_REPEAT_DELAY_FIRST XREG(8)
|
||||
#define R_A_BTN_Y XREG(16)
|
||||
#define R_A_BTN_X XREG(17)
|
||||
#define R_A_ICON_Y XREG(19)
|
||||
|
|
|
@ -786,7 +786,7 @@ typedef struct {
|
|||
/* 0x022C */ s16 cursorY[5]; // "cur_ypt"
|
||||
/* 0x0236 */ s16 dungeonMapSlot;
|
||||
/* 0x0238 */ s16 cursorSpecialPos; // "key_angle"
|
||||
/* 0x023A */ s16 pageSwitchTimer;
|
||||
/* 0x023A */ s16 pageSwitchInputTimer; // Used to introduce a delay before switching page when arriving on the "scroll left/right" positions while holding stick left/right.
|
||||
/* 0x023C */ u16 namedItem; // "zoom_name"
|
||||
/* 0x023E */ u16 cursorItem[4]; // "select_name"
|
||||
/* 0x0246 */ u16 cursorSlot[4];
|
||||
|
|
|
@ -345,9 +345,9 @@ void func_80111070(void) {
|
|||
XREG(3) = -4;
|
||||
XREG(4) = 3;
|
||||
XREG(5) = 0;
|
||||
XREG(6) = 2;
|
||||
R_PAUSE_STICK_REPEAT_DELAY = 2;
|
||||
XREG(7) = 30;
|
||||
XREG(8) = 10;
|
||||
R_PAUSE_STICK_REPEAT_DELAY_FIRST = 10;
|
||||
XREG(9) = 0;
|
||||
XREG(10) = -9550;
|
||||
XREG(11) = 9950;
|
||||
|
|
|
@ -313,7 +313,7 @@ void KaleidoScope_MoveCursorToSpecialPos(PlayState* play, u16 specialPos) {
|
|||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
|
||||
pauseCtx->cursorSpecialPos = specialPos;
|
||||
pauseCtx->pageSwitchTimer = 0;
|
||||
pauseCtx->pageSwitchInputTimer = 0;
|
||||
|
||||
Audio_PlaySfxGeneral(NA_SE_SY_DECIDE, &gSfxDefaultPos, 4, &gSfxDefaultFreqAndVolScale, &gSfxDefaultFreqAndVolScale,
|
||||
&gSfxDefaultReverb);
|
||||
|
@ -409,21 +409,21 @@ void KaleidoScope_HandlePageToggles(PauseContext* pauseCtx, Input* input) {
|
|||
|
||||
if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_LEFT) {
|
||||
if (pauseCtx->stickAdjX < -30) {
|
||||
pauseCtx->pageSwitchTimer++;
|
||||
if ((pauseCtx->pageSwitchTimer >= 10) || (pauseCtx->pageSwitchTimer == 0)) {
|
||||
pauseCtx->pageSwitchInputTimer++;
|
||||
if ((pauseCtx->pageSwitchInputTimer >= 10) || (pauseCtx->pageSwitchInputTimer == 0)) {
|
||||
KaleidoScope_SwitchPage(pauseCtx, 0);
|
||||
}
|
||||
} else {
|
||||
pauseCtx->pageSwitchTimer = -1;
|
||||
pauseCtx->pageSwitchInputTimer = -1;
|
||||
}
|
||||
} else if (pauseCtx->cursorSpecialPos == PAUSE_CURSOR_PAGE_RIGHT) {
|
||||
if (pauseCtx->stickAdjX > 30) {
|
||||
pauseCtx->pageSwitchTimer++;
|
||||
if ((pauseCtx->pageSwitchTimer >= 10) || (pauseCtx->pageSwitchTimer == 0)) {
|
||||
pauseCtx->pageSwitchInputTimer++;
|
||||
if ((pauseCtx->pageSwitchInputTimer >= 10) || (pauseCtx->pageSwitchInputTimer == 0)) {
|
||||
KaleidoScope_SwitchPage(pauseCtx, 2);
|
||||
}
|
||||
} else {
|
||||
pauseCtx->pageSwitchTimer = -1;
|
||||
pauseCtx->pageSwitchInputTimer = -1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -508,10 +508,10 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
};
|
||||
static s16 D_8082AD3C = 20;
|
||||
static s16 D_8082AD40 = 0;
|
||||
static s16 D_8082AD44 = 0;
|
||||
static s16 D_8082AD48 = 0;
|
||||
static s16 D_8082AD4C = 0;
|
||||
static s16 D_8082AD50 = 0;
|
||||
static s16 sStickXRepeatTimer = 0;
|
||||
static s16 sStickYRepeatTimer = 0;
|
||||
static s16 sStickXRepeatState = 0;
|
||||
static s16 sStickYRepeatState = 0;
|
||||
PauseContext* pauseCtx = &play->pauseCtx;
|
||||
s16 stepR;
|
||||
s16 stepG;
|
||||
|
@ -553,55 +553,59 @@ void KaleidoScope_DrawPages(PlayState* play, GraphicsContext* gfxCtx) {
|
|||
}
|
||||
|
||||
if (pauseCtx->stickAdjX < -30) {
|
||||
if (D_8082AD4C == -1) {
|
||||
if (--D_8082AD44 < 0) {
|
||||
D_8082AD44 = XREG(6);
|
||||
if (sStickXRepeatState == -1) {
|
||||
sStickXRepeatTimer--;
|
||||
if (sStickXRepeatTimer < 0) {
|
||||
sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY;
|
||||
} else {
|
||||
pauseCtx->stickAdjX = 0;
|
||||
}
|
||||
} else {
|
||||
D_8082AD44 = XREG(8);
|
||||
D_8082AD4C = -1;
|
||||
sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST;
|
||||
sStickXRepeatState = -1;
|
||||
}
|
||||
} else if (pauseCtx->stickAdjX > 30) {
|
||||
if (D_8082AD4C == 1) {
|
||||
if (--D_8082AD44 < 0) {
|
||||
D_8082AD44 = XREG(6);
|
||||
if (sStickXRepeatState == 1) {
|
||||
sStickXRepeatTimer--;
|
||||
if (sStickXRepeatTimer < 0) {
|
||||
sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY;
|
||||
} else {
|
||||
pauseCtx->stickAdjX = 0;
|
||||
}
|
||||
} else {
|
||||
D_8082AD44 = XREG(8);
|
||||
D_8082AD4C = 1;
|
||||
sStickXRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST;
|
||||
sStickXRepeatState = 1;
|
||||
}
|
||||
} else {
|
||||
D_8082AD4C = 0;
|
||||
sStickXRepeatState = 0;
|
||||
}
|
||||
|
||||
if (pauseCtx->stickAdjY < -30) {
|
||||
if (D_8082AD50 == -1) {
|
||||
if (--D_8082AD48 < 0) {
|
||||
D_8082AD48 = XREG(6);
|
||||
if (sStickYRepeatState == -1) {
|
||||
sStickYRepeatTimer--;
|
||||
if (sStickYRepeatTimer < 0) {
|
||||
sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY;
|
||||
} else {
|
||||
pauseCtx->stickAdjY = 0;
|
||||
}
|
||||
} else {
|
||||
D_8082AD48 = XREG(8);
|
||||
D_8082AD50 = -1;
|
||||
sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST;
|
||||
sStickYRepeatState = -1;
|
||||
}
|
||||
} else if (pauseCtx->stickAdjY > 30) {
|
||||
if (D_8082AD50 == 1) {
|
||||
if (--D_8082AD48 < 0) {
|
||||
D_8082AD48 = XREG(6);
|
||||
if (sStickYRepeatState == 1) {
|
||||
sStickYRepeatTimer--;
|
||||
if (sStickYRepeatTimer < 0) {
|
||||
sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY;
|
||||
} else {
|
||||
pauseCtx->stickAdjY = 0;
|
||||
}
|
||||
} else {
|
||||
D_8082AD48 = XREG(8);
|
||||
D_8082AD50 = 1;
|
||||
sStickYRepeatTimer = R_PAUSE_STICK_REPEAT_DELAY_FIRST;
|
||||
sStickYRepeatState = 1;
|
||||
}
|
||||
} else {
|
||||
D_8082AD50 = 0;
|
||||
sStickYRepeatState = 0;
|
||||
}
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue