mirror of
https://github.com/zeldaret/mm.git
synced 2026-07-11 14:18:39 -04:00
z_parameter: Main (#1157)
* main docs * formatting and bss issues * PR Suggestions * missed enums * better macros/enums * restrictions improvement, still wip * fix name, more common restriction patterns * more restrictions cleanup * rm comment
This commit is contained in:
+8
-11
@@ -1621,9 +1621,9 @@ s32 func_8010A0A4(PlayState* play);
|
||||
void Minimap_SavePlayerRoomInitInfo(PlayState* play);
|
||||
void Map_InitRoomData(PlayState* play, s16 room);
|
||||
void Map_Destroy(PlayState* play);
|
||||
// void Map_Init(PlayState* play);
|
||||
// void Minimap_Draw(PlayState* play);
|
||||
// void Map_Update(PlayState* play);
|
||||
void Map_Init(PlayState* play);
|
||||
void Minimap_Draw(PlayState* play);
|
||||
void Map_Update(PlayState* play);
|
||||
// void func_8010A760(void);
|
||||
// void func_8010A7CC(void);
|
||||
// void func_8010A814(void);
|
||||
@@ -1710,8 +1710,7 @@ void Interface_StartPostmanTimer(s16 seconds, s16 bunnyHoodState);
|
||||
void Interface_NewDay(PlayState* play, s32 day);
|
||||
void Interface_SetHudVisibility(u16 hudVisibility);
|
||||
void func_80110038(PlayState* play);
|
||||
// void func_80111CB4(void);
|
||||
// void func_801129E4(void);
|
||||
void Interface_SetSceneRestrictions(PlayState* play);
|
||||
void Interface_InitMinigame(PlayState* play);
|
||||
void Interface_LoadItemIconImpl(PlayState* play, u8 btn);
|
||||
void Interface_LoadItemIcon(PlayState* play, u8 btn);
|
||||
@@ -1727,12 +1726,10 @@ s32 Inventory_HasItemInBottle(u8 item);
|
||||
void Inventory_UpdateBottleItem(PlayState* play, u8 item, u8 btn);
|
||||
s32 Inventory_ConsumeFairy(PlayState* play);
|
||||
void Inventory_UpdateItem(PlayState* play, s16 slot, s16 item);
|
||||
// void func_801153C8(void);
|
||||
// void func_80115428(void);
|
||||
void func_8011552C(PlayState* play, u16 arg1);
|
||||
void func_801155B4(PlayState* play, s16 arg1);
|
||||
void func_80115764(PlayState* play, UNK_TYPE arg1);
|
||||
void func_80115844(PlayState* play, s16 param_2);
|
||||
void func_80115844(PlayState* play, s16 doAction);
|
||||
s32 Health_ChangeBy(PlayState* play, s16 healthChange);
|
||||
void Health_GiveHearts(s16 hearts);
|
||||
void Rupees_ChangeBy(s16 rupeeChange);
|
||||
@@ -1812,7 +1809,7 @@ s32 Player_ActionToExplosive(Player* player, PlayerItemAction itemAction);
|
||||
s32 Player_GetExplosiveHeld(Player* player);
|
||||
s32 Player_ActionToSword(Actor* actor, PlayerItemAction itemAction);
|
||||
s32 func_801242B4(Player* player);
|
||||
s32 Player_GetEnvTimerType(PlayState* play);
|
||||
s32 Player_GetEnvironmentalHazard(PlayState* play);
|
||||
void func_80124420(Player* player);
|
||||
void func_80124618(struct_80124618 arg0[], f32 curFrame, Vec3f* arg2);
|
||||
void Player_DrawImpl(PlayState* play, void** skeleton, Vec3s* jointTable, s32 dListCount, s32 lod, PlayerTransformation playerForm, s32 boots, s32 face, OverrideLimbDrawFlex overrideLimbDraw, PostLimbDrawFlex postLimbDraw, Actor* actor);
|
||||
@@ -2327,8 +2324,8 @@ void func_80165DF0(void);
|
||||
// void func_80166060(void);
|
||||
Gfx* func_801660B8(PlayState* play, Gfx* gfx);
|
||||
void Play_Destroy(GameState* thisx);
|
||||
// void func_801663C4(void);
|
||||
// void func_80166644(void);
|
||||
void Play_CompressI8ToI5(void* srcI8, void* destI5, size_t size);
|
||||
void Play_DecompressI5ToI8(void* srcI5, void* destI8, size_t size);
|
||||
// void func_801668B4(void);
|
||||
void func_80166968(PlayState* play, Camera* camera);
|
||||
void func_80166B30(PlayState* play);
|
||||
|
||||
+20
-8
@@ -60,14 +60,24 @@
|
||||
#define R_PLAY_FILL_SCREEN_B MREG(67)
|
||||
#define R_PLAY_FILL_SCREEN_ALPHA MREG(68)
|
||||
|
||||
#define R_PAUSE_WORLD_MAP_YAW YREG(24)
|
||||
#define R_PAUSE_WORLD_MAP_Y_OFFSET YREG(25)
|
||||
#define R_PAUSE_WORLD_MAP_DEPTH YREG(26)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_ON YREG(69)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_X YREG(70)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_Y YREG(71)
|
||||
#define R_C_UP_ICON_X YREG(88)
|
||||
#define R_C_UP_ICON_Y YREG(89)
|
||||
#define R_PAUSE_WORLD_MAP_YAW YREG(24)
|
||||
#define R_PAUSE_WORLD_MAP_Y_OFFSET YREG(25)
|
||||
#define R_PAUSE_WORLD_MAP_DEPTH YREG(26)
|
||||
#define R_PICTO_FOCUS_BORDER_TOPLEFT_X YREG(32)
|
||||
#define R_PICTO_FOCUS_BORDER_TOPLEFT_Y YREG(33)
|
||||
#define R_PICTO_FOCUS_BORDER_TOPRIGHT_X YREG(34)
|
||||
#define R_PICTO_FOCUS_BORDER_TOPRIGHT_Y YREG(35)
|
||||
#define R_PICTO_FOCUS_BORDER_BOTTOMLEFT_X YREG(36)
|
||||
#define R_PICTO_FOCUS_BORDER_BOTTOMLEFT_Y YREG(37)
|
||||
#define R_PICTO_FOCUS_BORDER_BOTTOMRIGHT_X YREG(38)
|
||||
#define R_PICTO_FOCUS_BORDER_BOTTOMRIGHT_Y YREG(39)
|
||||
#define R_PICTO_FOCUS_ICON_X YREG(40)
|
||||
#define R_PICTO_FOCUS_ICON_Y YREG(41)
|
||||
#define R_PICTO_FOCUS_TEXT_X YREG(42)
|
||||
#define R_PICTO_FOCUS_TEXT_Y YREG(43)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_ON YREG(69)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_X YREG(70)
|
||||
#define R_PAUSE_DBG_QUEST_CURSOR_Y YREG(71)
|
||||
|
||||
#define R_MAGIC_FILL_COLOR(i) ZREG(0 + i)
|
||||
#define R_C_BTN_COLOR(i) ZREG(39 + i)
|
||||
@@ -86,11 +96,13 @@
|
||||
#define R_ITEM_ICON_Y(i) ZREG(86 + i)
|
||||
#define R_ITEM_ICON_DD(i) ZREG(90 + i)
|
||||
|
||||
#define R_MAGIC_DBG_SET_UPGRADE XREG(4)
|
||||
#define R_A_BTN_Y XREG(16)
|
||||
#define R_A_BTN_X XREG(17)
|
||||
#define R_A_ICON_Y XREG(19)
|
||||
#define R_A_ICON_X XREG(20)
|
||||
#define R_A_BTN_COLOR(i) XREG(22 + i)
|
||||
#define R_A_BTN_Y_OFFSET XREG(31)
|
||||
#define R_MAGIC_CONSUME_TIMER_GIANTS_MASK XREG(41)
|
||||
#define R_THREE_DAY_CLOCK_Y_POS XREG(43)
|
||||
#define R_THREE_DAY_CLOCK_SUN_MOON_CUTOFF XREG(44)
|
||||
|
||||
+1
-122
@@ -631,127 +631,6 @@ extern UNK_PTR D_801BEC14;
|
||||
// extern UNK_TYPE2 D_801BF5B0;
|
||||
extern UNK_PTR D_801BF5C0;
|
||||
// extern UNK_TYPE1 D_801BF68C;
|
||||
// extern UNK_TYPE1 D_801BF6C0;
|
||||
// extern UNK_TYPE1 D_801BF79E;
|
||||
// extern UNK_TYPE2 D_801BF884;
|
||||
// extern UNK_TYPE2 D_801BF888;
|
||||
// extern UNK_TYPE2 D_801BF88C;
|
||||
// extern UNK_TYPE2 D_801BF890;
|
||||
// extern UNK_TYPE2 D_801BF898;
|
||||
// extern UNK_TYPE2 D_801BF89C;
|
||||
// extern UNK_TYPE2 sMagicMeterOutlinePrimRed;
|
||||
// extern UNK_TYPE2 sMagicMeterOutlinePrimGreen;
|
||||
// extern UNK_TYPE2 sMagicMeterOutlinePrimBlue;
|
||||
// extern UNK_TYPE2 sMagicBorderRatio;
|
||||
// extern UNK_TYPE2 sMagicBorderStep;
|
||||
// extern UNK_TYPE2 sEnvTimerType;
|
||||
// extern UNK_TYPE2 sEnvTimerActive;
|
||||
// extern UNK_TYPE2 sPostmanBunnyHoodState;
|
||||
// extern UNK_TYPE4 sTimerPausedOsTime;
|
||||
// extern UNK_TYPE4 sBottleTimerPausedOsTime;
|
||||
// extern UNK_TYPE4 D_801BF8F4;
|
||||
// extern UNK_TYPE4 D_801BF8F8;
|
||||
// extern UNK_TYPE4 D_801BF8FC;
|
||||
// extern UNK_TYPE4 D_801BF930;
|
||||
// extern UNK_TYPE4 D_801BF934;
|
||||
// extern UNK_TYPE1 sIsTimerPaused;
|
||||
// extern UNK_TYPE1 D_801BF96A;
|
||||
// extern UNK_TYPE1 sIsBottleTimerPaused;
|
||||
// extern UNK_TYPE1 D_801BF96E;
|
||||
// extern UNK_TYPE2 sTimerId;
|
||||
// extern UNK_TYPE1 D_801BF972;
|
||||
// extern UNK_TYPE2 D_801BF974;
|
||||
// extern UNK_TYPE2 D_801BF978;
|
||||
// extern UNK_TYPE2 D_801BF97C;
|
||||
// extern UNK_TYPE4 D_801BF980;
|
||||
// extern UNK_TYPE1 D_801BF988;
|
||||
// extern UNK_TYPE1 D_801BF998;
|
||||
// extern UNK_TYPE2 D_801BF9B0;
|
||||
// extern UNK_TYPE1 D_801BF9B4;
|
||||
// extern UNK_TYPE1 D_801BF9BC;
|
||||
// extern UNK_TYPE1 D_801BF9C4;
|
||||
// extern UNK_TYPE1 D_801BF9C8;
|
||||
// extern UNK_TYPE1 D_801BF9CC;
|
||||
// extern UNK_TYPE2 D_801BF9D4;
|
||||
// extern UNK_TYPE2 D_801BF9D6;
|
||||
// extern UNK_TYPE2 D_801BF9D8;
|
||||
// extern UNK_TYPE2 D_801BF9DA;
|
||||
// extern UNK_TYPE2 D_801BF9DC;
|
||||
// extern UNK_TYPE2 D_801BF9DE;
|
||||
// extern UNK_TYPE2 D_801BF9E0;
|
||||
// extern UNK_TYPE2 D_801BF9E2;
|
||||
// extern UNK_TYPE2 D_801BF9E4;
|
||||
// extern UNK_TYPE2 D_801BF9E6;
|
||||
// extern UNK_TYPE2 D_801BF9E8;
|
||||
// extern UNK_TYPE2 D_801BF9EA;
|
||||
// extern UNK_TYPE2 D_801BF9EC;
|
||||
// extern UNK_TYPE2 D_801BF9F0;
|
||||
// extern UNK_TYPE2 D_801BF9F4;
|
||||
// extern UNK_TYPE2 D_801BF9F8;
|
||||
// extern UNK_TYPE2 D_801BF9FC;
|
||||
// extern UNK_TYPE2 D_801BFA00;
|
||||
// extern UNK_TYPE1 D_801BFAB0;
|
||||
// extern UNK_TYPE1 D_801BFAB8;
|
||||
// extern UNK_TYPE1 D_801BFAC4;
|
||||
// extern UNK_TYPE1 D_801BFACC;
|
||||
// extern UNK_TYPE1 D_801BFAD4;
|
||||
// extern UNK_TYPE2 D_801BFAF4;
|
||||
// extern UNK_TYPE2 D_801BFAF6;
|
||||
// extern UNK_TYPE2 D_801BFAF8;
|
||||
// extern UNK_TYPE2 D_801BFAFA;
|
||||
// extern UNK_TYPE1 D_801BFAFC;
|
||||
// extern UNK_TYPE1 D_801BFB04;
|
||||
// extern UNK_TYPE1 D_801BFB0C;
|
||||
// extern UNK_TYPE1 D_801BFB14;
|
||||
// extern UNK_TYPE1 D_801BFB1C;
|
||||
// extern UNK_TYPE1 D_801BFB24;
|
||||
// extern UNK_TYPE2 sThreeDayClockAlpha;
|
||||
// extern UNK_TYPE2 D_801BFB30;
|
||||
// extern UNK_TYPE2 D_801BFB34;
|
||||
// extern UNK_TYPE1 sThreeDayClockHours;
|
||||
// extern UNK_TYPE1 sThreeDayClockHourTextures;
|
||||
// extern UNK_TYPE2 D_801BFBCC;
|
||||
// extern UNK_TYPE2 D_801BFBD0;
|
||||
// extern UNK_TYPE2 D_801BFBD4;
|
||||
// extern UNK_TYPE2 D_801BFBD8;
|
||||
// extern UNK_TYPE2 D_801BFBDC;
|
||||
// extern UNK_TYPE2 D_801BFBE0;
|
||||
// extern UNK_TYPE2 D_801BFBE4;
|
||||
// extern UNK_TYPE2 D_801BFBE8;
|
||||
// extern UNK_TYPE1 D_801BFBEC;
|
||||
// extern UNK_TYPE1 D_801BFBF0;
|
||||
// extern UNK_TYPE1 D_801BFBF4;
|
||||
// extern UNK_TYPE1 D_801BFBF8;
|
||||
// extern UNK_TYPE1 D_801BFBFC;
|
||||
// extern UNK_TYPE1 D_801BFC00;
|
||||
// extern UNK_TYPE1 D_801BFC04;
|
||||
// extern UNK_TYPE1 D_801BFC08;
|
||||
// extern UNK_TYPE1 D_801BFC0C;
|
||||
// extern UNK_TYPE1 D_801BFC10;
|
||||
// extern UNK_TYPE1 sFinalHoursDigitTextures;
|
||||
// extern UNK_TYPE1 D_801BFC40;
|
||||
// extern UNK_TYPE2 sTimerStateTimer;
|
||||
// extern UNK_TYPE2 sTimerDigits;
|
||||
// extern UNK_TYPE2 D_801BFCEA;
|
||||
// extern UNK_TYPE2 D_801BFCEC;
|
||||
// extern UNK_TYPE2 D_801BFCEE;
|
||||
// extern UNK_TYPE2 D_801BFCF0;
|
||||
// extern UNK_TYPE2 D_801BFCF2;
|
||||
// extern UNK_TYPE2 D_801BFCF4;
|
||||
// extern UNK_TYPE2 sTimerBeepSfxSeconds;
|
||||
// extern UNK_TYPE2 D_801BFCFC;
|
||||
// extern UNK_TYPE2 D_801BFD0C;
|
||||
// extern UNK_TYPE1 D_801BFD1C;
|
||||
// extern UNK_TYPE1 D_801BFD24;
|
||||
// extern UNK_TYPE1 D_801BFD2C;
|
||||
// extern UNK_TYPE1 D_801BFD40;
|
||||
// extern UNK_TYPE1 D_801BFD54;
|
||||
// extern UNK_TYPE1 D_801BFD64;
|
||||
// extern UNK_TYPE2 D_801BFD6C;
|
||||
// extern UNK_TYPE1 D_801BFD84;
|
||||
// extern UNK_TYPE1 D_801BFD8C;
|
||||
// extern UNK_TYPE1 D_801BFD94;
|
||||
// extern UNK_TYPE2 D_801BFD98;
|
||||
|
||||
extern FlexSkeletonHeader* gPlayerSkeletons[PLAYER_FORM_MAX];
|
||||
extern PlayerModelIndices gPlayerModelTypes[];
|
||||
@@ -2926,7 +2805,7 @@ extern GfxPool gGfxPools[2];
|
||||
extern u8 gAudioHeap[0x138000];
|
||||
extern u8 gSystemHeap[UNK_SIZE];
|
||||
|
||||
extern u8 D_80780000[0x4600];
|
||||
extern u8 gPictoPhotoI8[PICTO_PHOTO_SIZE];
|
||||
extern u8 D_80784600[0x56200];
|
||||
extern u16 gFramebuffer0[SCREEN_HEIGHT][SCREEN_WIDTH];
|
||||
|
||||
|
||||
+3
-1
@@ -987,7 +987,9 @@ struct PlayState {
|
||||
/* 0x18B4C */ PreRender pauseBgPreRender;
|
||||
/* 0x18B9C */ char unk_18B9C[0x2B8];
|
||||
/* 0x18E54 */ SceneTableEntry* loadedScene;
|
||||
/* 0x18E58 */ char unk_18E58[0x10];
|
||||
/* 0x18E58 */ char unk_18E58[0x4];
|
||||
/* 0x18E5C */ TexturePtr pictoPhotoI8;
|
||||
/* 0x18E60 */ char unk_18E60[0x8];
|
||||
/* 0x18E68 */ void* unk_18E68;
|
||||
/* 0x18E6C */ char unk_18E6C[0x3EC];
|
||||
}; // size = 0x19258
|
||||
|
||||
+1
-1
@@ -310,7 +310,7 @@ typedef enum {
|
||||
|
||||
#define ACTORCTX_FLAG_0 (1 << 0)
|
||||
#define ACTORCTX_FLAG_1 (1 << 1)
|
||||
#define ACTORCTX_FLAG_2 (1 << 2)
|
||||
#define ACTORCTX_FLAG_PICTO_BOX_ON (1 << 2)
|
||||
#define ACTORCTX_FLAG_3 (1 << 3)
|
||||
#define ACTORCTX_FLAG_4 (1 << 4)
|
||||
#define ACTORCTX_FLAG_5 (1 << 5)
|
||||
|
||||
+96
-22
@@ -4,6 +4,60 @@
|
||||
#include "ultra64.h"
|
||||
#include "z64view.h"
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ A_BTN_STATE_0,
|
||||
/* 1 */ A_BTN_STATE_1,
|
||||
/* 2 */ A_BTN_STATE_2,
|
||||
/* 3 */ A_BTN_STATE_3,
|
||||
/* 4 */ A_BTN_STATE_4
|
||||
} AButtonState;
|
||||
|
||||
typedef enum {
|
||||
/* 0x00 */ DO_ACTION_ATTACK,
|
||||
/* 0x01 */ DO_ACTION_CHECK,
|
||||
/* 0x02 */ DO_ACTION_ENTER,
|
||||
/* 0x03 */ DO_ACTION_RETURN,
|
||||
/* 0x04 */ DO_ACTION_OPEN,
|
||||
/* 0x05 */ DO_ACTION_JUMP,
|
||||
/* 0x06 */ DO_ACTION_DECIDE,
|
||||
/* 0x07 */ DO_ACTION_DIVE,
|
||||
/* 0x08 */ DO_ACTION_FASTER,
|
||||
/* 0x09 */ DO_ACTION_THROW,
|
||||
/* 0x0A */ DO_ACTION_NONE, // in do_action_static, the texture at this position is NAVI, however this value is in practice the "No Action" value
|
||||
/* 0x0B */ DO_ACTION_CLIMB,
|
||||
/* 0x0C */ DO_ACTION_DROP,
|
||||
/* 0x0D */ DO_ACTION_DOWN,
|
||||
/* 0x0E */ DO_ACTION_QUIT,
|
||||
/* 0x0F */ DO_ACTION_SPEAK,
|
||||
/* 0x10 */ DO_ACTION_NEXT,
|
||||
/* 0x11 */ DO_ACTION_GRAB,
|
||||
/* 0x12 */ DO_ACTION_STOP,
|
||||
/* 0x13 */ DO_ACTION_PUTAWAY,
|
||||
/* 0x14 */ DO_ACTION_REEL,
|
||||
/* 0x15 */ DO_ACTION_INFO,
|
||||
/* 0x16 */ DO_ACTION_WARP,
|
||||
/* 0x17 */ DO_ACTION_SNAP,
|
||||
/* 0x18 */ DO_ACTION_EXPLODE,
|
||||
/* 0x19 */ DO_ACTION_DANCE,
|
||||
/* 0x1A */ DO_ACTION_MARCH,
|
||||
/* 0x1B */ DO_ACTION_1,
|
||||
/* 0x1C */ DO_ACTION_2,
|
||||
/* 0x1D */ DO_ACTION_3,
|
||||
/* 0x1E */ DO_ACTION_4,
|
||||
/* 0x1F */ DO_ACTION_5,
|
||||
/* 0x20 */ DO_ACTION_6,
|
||||
/* 0x21 */ DO_ACTION_7,
|
||||
/* 0x22 */ DO_ACTION_8,
|
||||
/* 0x23 */ DO_ACTION_CURL,
|
||||
/* 0x24 */ DO_ACTION_SURFACE,
|
||||
/* 0x25 */ DO_ACTION_SWIM,
|
||||
/* 0x26 */ DO_ACTION_PUNCH,
|
||||
/* 0x27 */ DO_ACTION_POUND,
|
||||
/* 0x28 */ DO_ACTION_HOOK,
|
||||
/* 0x29 */ DO_ACTION_SHOOT,
|
||||
/* 0x2A */ DO_ACTION_MAX
|
||||
} DoAction;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ MINIGAME_STATE_NONE,
|
||||
/* 1 */ MINIGAME_STATE_COUNTDOWN_SETUP_3,
|
||||
@@ -39,6 +93,27 @@ typedef enum {
|
||||
#define PERFECT_LETTERS_NUM_LETTERS 8
|
||||
#define PERFECT_LETTERS_ANGLE_PER_LETTER (0x10000 / PERFECT_LETTERS_NUM_LETTERS)
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ STORY_DMA_IDLE,
|
||||
/* 1 */ STORY_DMA_LOADING,
|
||||
/* 2 */ STORY_DMA_DONE
|
||||
} StoryLoadStatus;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ STORY_STATE_OFF,
|
||||
/* 1 */ STORY_STATE_INIT,
|
||||
/* 2 */ STORY_STATE_IDLE,
|
||||
/* 3 */ STORY_STATE_DESTROY,
|
||||
/* 4 */ STORY_STATE_SETUP_IDLE,
|
||||
/* 5 */ STORY_STATE_FADE_OUT,
|
||||
/* 6 */ STORY_STATE_FADE_IN
|
||||
} StoryState;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ STORY_TYPE_MASK_FESTIVAL,
|
||||
/* 1 */ STORY_TYPE_GIANTS_LEAVING
|
||||
} StoryType;
|
||||
|
||||
typedef struct {
|
||||
/* 0x000 */ View view;
|
||||
/* 0x168 */ Vtx* actionVtx;
|
||||
@@ -47,17 +122,16 @@ typedef struct {
|
||||
/* 0x174 */ u8* doActionSegment;
|
||||
/* 0x178 */ u8* iconItemSegment;
|
||||
/* 0x17C */ u8* mapSegment;
|
||||
/* 0x180 */ u8* unk_180;
|
||||
/* 0x184 */ DmaRequest dmaRequest_184;
|
||||
/* 0x1A4 */ DmaRequest dmaRequest_1A4;
|
||||
/* 0x1C4 */ DmaRequest dmaRequest_1C4;
|
||||
/* 0x180 */ u8* unk_180; // unused segment?
|
||||
/* 0x184 */ DmaRequest dmaRequest;
|
||||
/* 0x1A4 */ UNK_TYPE1 unk_1A4[0x40]; // likely 2 DmaRequest
|
||||
/* 0x1E4 */ OSMesgQueue loadQueue;
|
||||
/* 0x1FC */ OSMesg loadMsg;
|
||||
/* 0x200 */ Viewport viewport;
|
||||
/* 0x210 */ s16 unk_210;
|
||||
/* 0x210 */ s16 aButtonState;
|
||||
/* 0x212 */ u16 unk_212;
|
||||
/* 0x214 */ u16 unk_214;
|
||||
/* 0x218 */ f32 unk_218;
|
||||
/* 0x214 */ u16 aButtonDoAction;
|
||||
/* 0x218 */ f32 aButtonRoll;
|
||||
/* 0x21C */ s16 unk_21C;
|
||||
/* 0x21E */ s16 bButtonDoAction;
|
||||
/* 0x220 */ s16 unk_220;
|
||||
@@ -74,7 +148,7 @@ typedef struct {
|
||||
/* 0x246 */ s16 heartsEnvG[2];
|
||||
/* 0x24A */ s16 heartsEnvB[2];
|
||||
/* 0x24E */ s16 health;
|
||||
/* 0x250 */ s16 unkTimer;
|
||||
/* 0x250 */ s16 healthTimer;
|
||||
/* 0x252 */ s16 lifeSizeChange;
|
||||
/* 0x254 */ s16 lifeSizeChangeDirection; // 1 means shrinking, 0 growing
|
||||
/* 0x256 */ s16 unk_256;
|
||||
@@ -84,7 +158,7 @@ typedef struct {
|
||||
/* 0x25E */ u16 minigameHiddenPoints; // Points to add to the secondary set of minigame points not displayed. Reset to 0 every frame.
|
||||
/* 0x260 */ u16 minigameAmmo;
|
||||
/* 0x262 */ u16 minigameUnusedPoints; // Associated with other minigame points, unused
|
||||
/* 0x264 */ s16 unk_264;
|
||||
/* 0x264 */ s16 screenFillAlpha;
|
||||
/* 0x266 */ s16 aAlpha;
|
||||
/* 0x268 */ s16 bAlpha;
|
||||
/* 0x26A */ s16 cLeftAlpha;
|
||||
@@ -116,27 +190,27 @@ typedef struct {
|
||||
/* 0x30A */ s16 perfectLettersColorTimer;
|
||||
/* 0x30C */ s16 perfectLettersTimer;
|
||||
struct {
|
||||
/* 0x30E */ u8 unk_30E; // "h_gauge"
|
||||
/* 0x30E */ u8 hGauge;
|
||||
/* 0x30F */ u8 bButton;
|
||||
/* 0x310 */ u8 aButton;
|
||||
/* 0x311 */ u8 tradeItems;
|
||||
/* 0x312 */ u8 unk_312;
|
||||
/* 0x313 */ u8 unk_313;
|
||||
/* 0x314 */ u8 unk_314;
|
||||
/* 0x311 */ u8 tradeItems; // Includes deed trade quest, anju/kafei trade quest, bottles, and ocarina
|
||||
/* 0x312 */ u8 songOfTime;
|
||||
/* 0x313 */ u8 songOfDoubleTime;
|
||||
/* 0x314 */ u8 invSongOfTime;
|
||||
/* 0x315 */ u8 songOfSoaring;
|
||||
/* 0x316 */ u8 songOfStorms;
|
||||
/* 0x317 */ u8 unk_317;
|
||||
/* 0x318 */ u8 pictographBox;
|
||||
/* 0x317 */ u8 masks;
|
||||
/* 0x318 */ u8 pictoBox;
|
||||
/* 0x319 */ u8 all; // "another"; enables all item restrictions
|
||||
} restrictions; // size = 0xC
|
||||
/* 0x31A */ u8 storyState;
|
||||
/* 0x31B */ u8 storyType;
|
||||
/* 0x31C */ u8 unk_31C;
|
||||
/* 0x320 */ OSMesgQueue unk_320;
|
||||
/* 0x338 */ OSMesg unk_338;
|
||||
/* 0x33C */ void* unk_33C;
|
||||
/* 0x340 */ u32 unk_340;
|
||||
/* 0x344 */ u32 unk_344;
|
||||
/* 0x31C */ u8 storyDmaStatus;
|
||||
/* 0x320 */ OSMesgQueue storyMsgQueue;
|
||||
/* 0x338 */ OSMesg storyMsgBuf;
|
||||
/* 0x33C */ u8* storySegment;
|
||||
/* 0x340 */ uintptr_t storyAddr;
|
||||
/* 0x344 */ size_t storySize;
|
||||
} InterfaceContext; // size = 0x348
|
||||
|
||||
#endif
|
||||
|
||||
+10
-1
@@ -9,7 +9,8 @@
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_TYPE_SWORD,
|
||||
/* 1 */ EQUIP_TYPE_SHIELD,
|
||||
/* 2 */ EQUIP_TYPE_MAX
|
||||
/* 2 */ EQUIP_TYPE_TUNIC, // Remnant of OoT
|
||||
/* 3 */ EQUIP_TYPE_MAX
|
||||
} EquipmentType;
|
||||
|
||||
typedef enum {
|
||||
@@ -28,6 +29,14 @@ typedef enum {
|
||||
/* 3 */ EQUIP_VALUE_SHIELD_MAX
|
||||
} EquipValueShield;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ EQUIP_VALUE_TUNIC_NONE,
|
||||
/* 1 */ EQUIP_VALUE_TUNIC_KOKIRI,
|
||||
/* 2 */ EQUIP_VALUE_TUNIC_GORON,
|
||||
/* 3 */ EQUIP_VALUE_TUNIC_ZORA,
|
||||
/* 4 */ EQUIP_VALUE_TUNIC_MAX
|
||||
} EquipValueTunic; // Remnant of OoT
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ UPG_QUIVER,
|
||||
/* 1 */ UPG_BOMB_BAG,
|
||||
|
||||
+6
-6
@@ -72,12 +72,12 @@ typedef enum PlayerMask {
|
||||
} PlayerMask;
|
||||
|
||||
typedef enum {
|
||||
/* 0 */ PLAYER_ENV_TIMER_NONE,
|
||||
/* 1 */ PLAYER_ENV_TIMER_HOTROOM,
|
||||
/* 2 */ PLAYER_ENV_TIMER_UNDERWATER_FLOOR,
|
||||
/* 3 */ PLAYER_ENV_TIMER_SWIMMING,
|
||||
/* 4 */ PLAYER_ENV_TIMER_UNDERWATER_FREE
|
||||
} PlayerEnvTimerType;
|
||||
/* 0 */ PLAYER_ENV_HAZARD_NONE,
|
||||
/* 1 */ PLAYER_ENV_HAZARD_HOTROOM,
|
||||
/* 2 */ PLAYER_ENV_HAZARD_UNDERWATER_FLOOR,
|
||||
/* 3 */ PLAYER_ENV_HAZARD_SWIMMING,
|
||||
/* 4 */ PLAYER_ENV_HAZARD_UNDERWATER_FREE
|
||||
} PlayerEnvHazard;
|
||||
|
||||
typedef enum PlayerItemAction {
|
||||
/* -1 */ PLAYER_IA_MINUS1 = -1,
|
||||
|
||||
+22
-5
@@ -55,6 +55,14 @@ typedef enum {
|
||||
#define MAGIC_NORMAL_METER 0x30
|
||||
#define MAGIC_DOUBLE_METER (2 * MAGIC_NORMAL_METER)
|
||||
|
||||
// See `R_MAGIC_DBG_SET_UPGRADE`
|
||||
#define MAGIC_DBG_SET_UPGRADE_NO_ACTION 0
|
||||
#define MAGIC_DBG_SET_UPGRADE_NORMAL_METER -1
|
||||
#define MAGIC_DBG_SET_UPGRADE_DOUBLE_METER 1
|
||||
|
||||
#define ENV_HAZARD_TEXT_TRIGGER_HOTROOM (1 << 0)
|
||||
#define ENV_HAZARD_TEXT_TRIGGER_UNDERWATER (1 << 1)
|
||||
|
||||
#define SECONDS_TO_TIMER(seconds) ((seconds) * 100)
|
||||
|
||||
#define OSTIME_TO_TIMER(osTime) ((osTime) * 64 / 3000 / 10000)
|
||||
@@ -69,7 +77,7 @@ typedef enum {
|
||||
/* 2 */ TIMER_ID_2,
|
||||
/* 3 */ TIMER_ID_MOON_CRASH, // timer used for mooncrash on the clocktower roof
|
||||
/* 4 */ TIMER_ID_MINIGAME_2, // minigame timer
|
||||
/* 5 */ TIMER_ID_ENV, // environmental timer (underwater or hot room)
|
||||
/* 5 */ TIMER_ID_ENV_HAZARD, // environmental hazard timer (underwater or hot room)
|
||||
/* 6 */ TIMER_ID_GORON_RACE_UNUSED,
|
||||
/* 7 */ TIMER_ID_MAX,
|
||||
/* 99 */ TIMER_ID_NONE = 99,
|
||||
@@ -89,7 +97,7 @@ typedef enum {
|
||||
/* 5 */ TIMER_STATE_STOP,
|
||||
/* 6 */ TIMER_STATE_6, // like `TIMER_STATE_STOP` but with extra minigame checks
|
||||
/* 7 */ TIMER_STATE_7, // stopped but still update `timerCurTimes`
|
||||
/* 8 */ TIMER_STATE_ENV_START,
|
||||
/* 8 */ TIMER_STATE_ENV_HAZARD_START,
|
||||
/* 9 */ TIMER_STATE_ALT_START,
|
||||
/* 10 */ TIMER_STATE_10, // precursor to `TIMER_STATE_ALT_COUNTING`
|
||||
/* 11 */ TIMER_STATE_ALT_COUNTING,
|
||||
@@ -139,6 +147,15 @@ typedef enum {
|
||||
/* 52 */ HUD_VISIBILITY_NONE_INSTANT = 52
|
||||
} HudVisibility;
|
||||
|
||||
#define PICTO_PHOTO_WIDTH 160
|
||||
#define PICTO_PHOTO_HEIGHT 112
|
||||
|
||||
#define PICTO_PHOTO_TOPLEFT_X ((SCREEN_WIDTH - PICTO_PHOTO_WIDTH) / 2)
|
||||
#define PICTO_PHOTO_TOPLEFT_Y ((SCREEN_HEIGHT - PICTO_PHOTO_HEIGHT) / 2)
|
||||
|
||||
#define PICTO_PHOTO_SIZE (PICTO_PHOTO_WIDTH * PICTO_PHOTO_HEIGHT)
|
||||
#define PICTO_PHOTO_COMPRESSED_SIZE (PICTO_PHOTO_SIZE * 5 / 8)
|
||||
|
||||
typedef struct SramContext {
|
||||
/* 0x00 */ u8* readBuff;
|
||||
/* 0x04 */ u8 *saveBuf;
|
||||
@@ -304,7 +321,7 @@ typedef struct SaveContext {
|
||||
/* 0x1050 */ u64 bottleTimerTimeLimits[BOTTLE_MAX]; // The original total time given before the timer expires, in centiseconds (1/100th sec). "bottle_sub"
|
||||
/* 0x1080 */ u64 bottleTimerCurTimes[BOTTLE_MAX]; // The remaining time left before the timer expires, in centiseconds (1/100th sec). "bottle_time"
|
||||
/* 0x10B0 */ OSTime bottleTimerPausedOsTimes[BOTTLE_MAX]; // The cumulative osTime spent with the timer paused. "bottle_stop_time"
|
||||
/* 0x10E0 */ u64 pictoPhoto[1400]; // buffer containing the pictograph photo
|
||||
/* 0x10E0 */ u8 pictoPhotoI5[PICTO_PHOTO_COMPRESSED_SIZE]; // buffer containing the pictograph photo, compressed to I5 from I8
|
||||
/* 0x3CA0 */ s32 fileNum; // "file_no"
|
||||
/* 0x3CA4 */ s16 powderKegTimer; // "big_bom_timer"
|
||||
/* 0x3CA6 */ u8 unk_3CA6;
|
||||
@@ -318,7 +335,7 @@ typedef struct SaveContext {
|
||||
/* 0x3DBA */ u8 unk_3DBA; // "player_wipe_item"
|
||||
/* 0x3DBB */ u8 unk_3DBB; // "next_walk"
|
||||
/* 0x3DBC */ s16 dogParams; // "dog_flag"
|
||||
/* 0x3DBE */ u8 textTriggerFlags; // "guide_status"
|
||||
/* 0x3DBE */ u8 envHazardTextTriggerFlags; // "guide_status"
|
||||
/* 0x3DBF */ u8 showTitleCard; // "name_display"
|
||||
/* 0x3DC0 */ s16 unk_3DC0; // "shield_magic_timer"
|
||||
/* 0x3DC2 */ u8 unk_3DC2; // "pad1"
|
||||
@@ -607,7 +624,7 @@ typedef enum SunsSongState {
|
||||
|
||||
#define WEEKEVENTREG_14_02 PACK_WEEKEVENTREG_FLAG(14, 0x02)
|
||||
#define WEEKEVENTREG_14_04 PACK_WEEKEVENTREG_FLAG(14, 0x04)
|
||||
#define WEEKEVENTREG_14_08 PACK_WEEKEVENTREG_FLAG(14, 0x08)
|
||||
#define WEEKEVENTREG_DRANK_CHATEAU_ROMANI PACK_WEEKEVENTREG_FLAG(14, 0x08)
|
||||
#define WEEKEVENTREG_14_10 PACK_WEEKEVENTREG_FLAG(14, 0x10)
|
||||
#define WEEKEVENTREG_14_20 PACK_WEEKEVENTREG_FLAG(14, 0x20)
|
||||
#define WEEKEVENTREG_14_40 PACK_WEEKEVENTREG_FLAG(14, 0x40)
|
||||
|
||||
Reference in New Issue
Block a user