mirror of
https://github.com/zeldaret/oot
synced 2026-08-22 06:44:46 -04:00
Document pause page switching (#1550)
* Document pause page switching * document initial scroll left setup, when opening the pause menu * `PAUSE_MAIN_STATE_1` -> `PAUSE_MAIN_STATE_SWITCHING_PAGE` * try a diagram of the pages layout in world space as a comment * expand `nextPageMode` comment * touch up pause camera header comments * expand comment on irrelevant init `mainState = PAUSE_MAIN_STATE_SWITCHING_PAGE` * expand doc on `sKaleidoSetup*` data * expand docs on `gPageSwitchNextButtonStatus` * add some doc on `sPageSwitch*` arrays * SwitchPage -> PageSwitch * add `PAGE_SWITCH_NSTEPS` * `SWITCH_PAGE_*_PT` -> `PAGE_SWITCH_PT_*` * peepoArtist --------- Co-authored-by: fig02 <fig02srl@gmail.com>
This commit is contained in:
@@ -109,6 +109,7 @@
|
||||
#define R_C_UP_ICON_Y YREG(89)
|
||||
#define R_EPONAS_SONG_PLAYED DREG(53)
|
||||
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + (i))
|
||||
#define R_PAUSE_PAGE_SWITCH_FRAME_ADVANCE_ON ZREG(13)
|
||||
#define R_C_BTN_COLOR(i) ZREG(39 + (i))
|
||||
#define R_B_BTN_COLOR(i) ZREG(43 + (i))
|
||||
#define R_START_LABEL_DD(i) ZREG(48 + (i))
|
||||
|
||||
+30
-3
@@ -20,6 +20,33 @@ typedef enum {
|
||||
/* 0x04 */ PAUSE_WORLD_MAP
|
||||
} PauseMenuPage;
|
||||
|
||||
// The XZ coordinates in which direction each pause page is at
|
||||
// e.g. the item page is in the -z direction
|
||||
/*
|
||||
* < item >
|
||||
*
|
||||
* ^ ^
|
||||
* x
|
||||
* equip o--> map
|
||||
* |
|
||||
* v z v v
|
||||
*
|
||||
* < quest >
|
||||
*/
|
||||
#define PAUSE_ITEM_X (0)
|
||||
#define PAUSE_ITEM_Z (-1)
|
||||
#define PAUSE_MAP_X (1)
|
||||
#define PAUSE_MAP_Z (0)
|
||||
#define PAUSE_QUEST_X (0)
|
||||
#define PAUSE_QUEST_Z (1)
|
||||
#define PAUSE_EQUIP_X (-1)
|
||||
#define PAUSE_EQUIP_Z (0)
|
||||
|
||||
// The pause camera looks at x=0,z=0,
|
||||
// with the eye being PAUSE_EYE_DIST away in the direction opposite to the active page,
|
||||
// which results in the camera being pointed (through x=0,z=0) towards the active page.
|
||||
#define PAUSE_EYE_DIST (64.0f)
|
||||
|
||||
#define PAUSE_EQUIP_PLAYER_WIDTH 64
|
||||
#define PAUSE_EQUIP_PLAYER_HEIGHT 112
|
||||
|
||||
@@ -58,7 +85,7 @@ typedef enum {
|
||||
// Sub-states of PAUSE_STATE_MAIN
|
||||
typedef enum {
|
||||
/* 0 */ PAUSE_MAIN_STATE_IDLE,
|
||||
/* 1 */ PAUSE_MAIN_STATE_1,
|
||||
/* 1 */ PAUSE_MAIN_STATE_SWITCHING_PAGE,
|
||||
/* 2 */ PAUSE_MAIN_STATE_2,
|
||||
/* 3 */ PAUSE_MAIN_STATE_3,
|
||||
/* 4 */ PAUSE_MAIN_STATE_4,
|
||||
@@ -98,9 +125,9 @@ typedef struct {
|
||||
/* 0x01D6 */ u16 debugState;
|
||||
/* 0x01D8 */ Vec3f eye;
|
||||
/* 0x01E4 */ u16 mainState;
|
||||
/* 0x01E6 */ u16 mode;
|
||||
/* 0x01E6 */ u16 nextPageMode; // During a page switch, indicates the page before switching and the direction to scroll in. Value is `(2 * prev pageIndex) + (scroll left ? 1 : 0)`
|
||||
/* 0x01E8 */ u16 pageIndex; // "kscp_pos"
|
||||
/* 0x01EA */ u16 unk_1EA;
|
||||
/* 0x01EA */ u16 pageSwitchTimer;
|
||||
/* 0x01EC */ u16 unk_1EC;
|
||||
/* 0x01F0 */ f32 unk_1F0;
|
||||
/* 0x01F4 */ f32 unk_1F4;
|
||||
|
||||
Reference in New Issue
Block a user