`z_parameter`: Buttons (part 9) (#1192)

* import button docs

* cleanup

* sync timer val

* add flag comments

* Update src/code/z_parameter.c

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Update src/code/z_parameter.c

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* Update src/code/z_parameter.c

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>

* fix merge master

---------

Co-authored-by: Derek Hensley <hensley.derek58@gmail.com>
This commit is contained in:
engineer124 2023-03-30 20:26:35 +11:00 committed by GitHub
parent 6685a4775e
commit f3c811d298
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 1313 additions and 83 deletions

View File

@ -1693,12 +1693,12 @@ void Interface_StartTimer(s16 timerId, s16 seconds);
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 Interface_UpdateButtonsPart2(PlayState* play);
void Interface_SetSceneRestrictions(PlayState* play);
void Interface_InitMinigame(PlayState* play);
void Interface_LoadItemIconImpl(PlayState* play, u8 btn);
void Interface_LoadItemIcon(PlayState* play, u8 btn);
void func_80112C0C(PlayState* play, u16 flag);
void Interface_UpdateButtonsAlt(PlayState* play, u16 flag);
u8 Item_Give(PlayState* play, u8 item);
u8 Item_CheckObtainability(u8 item);
void Inventory_DeleteItem(s16 item, s16 slot);

View File

@ -134,7 +134,7 @@ typedef struct {
/* 0x218 */ f32 aButtonRoll;
/* 0x21C */ s16 unk_21C;
/* 0x21E */ s16 bButtonDoAction;
/* 0x220 */ s16 unk_220;
/* 0x220 */ s16 tatlCalling;
/* 0x222 */ s16 unk_222;
/* 0x224 */ s16 unk_224;
/* 0x226 */ s16 lifeColorChange;

View File

@ -990,7 +990,7 @@ typedef struct Player {
/* 0xB5D */ u8 unk_B5D;
/* 0xB5E */ u8 unk_B5E;
/* 0xB5F */ u8 unk_B5F;
/* 0xB60 */ u16 unk_B60; // blast mask timer?
/* 0xB60 */ u16 blastMaskTimer;
/* 0xB62 */ s16 unk_B62;
/* 0xB64 */ u8 unk_B64;
/* 0xB65 */ u8 shockTimer;

View File

@ -313,7 +313,7 @@ typedef struct SaveContext {
/* 0x0000 */ Save save;
/* 0x100C */ u8 eventInf[8]; // "event_inf"
/* 0x1014 */ u8 unk_1014; // "stone_set_flag"
/* 0x1015 */ u8 unk_1015;
/* 0x1015 */ u8 bButtonStatus;
/* 0x1016 */ u16 jinxTimer;
/* 0x1018 */ s16 rupeeAccumulator; // "lupy_udct"
/* 0x101A */ u8 bottleTimerStates[BOTTLE_MAX]; // See the `BottleTimerState` enum. "bottle_status"
@ -572,8 +572,11 @@ typedef enum SunsSongState {
#define WEEKEVENTREG_07_10 PACK_WEEKEVENTREG_FLAG(7, 0x10)
#define WEEKEVENTREG_07_20 PACK_WEEKEVENTREG_FLAG(7, 0x20)
#define WEEKEVENTREG_07_40 PACK_WEEKEVENTREG_FLAG(7, 0x40)
// Entrance cutscene watched to the prison where the deku princess is kept. Also set in door_warp1.c
#define WEEKEVENTREG_ENTERED_WOODFALL_TEMPLE_PRISON PACK_WEEKEVENTREG_FLAG(7, 0x80)
// Related to Honey & Darling minigame
#define WEEKEVENTREG_08_01 PACK_WEEKEVENTREG_FLAG(8, 0x01)
#define WEEKEVENTREG_08_02 PACK_WEEKEVENTREG_FLAG(8, 0x02)
#define WEEKEVENTREG_08_04 PACK_WEEKEVENTREG_FLAG(8, 0x04)
@ -1267,6 +1270,7 @@ typedef enum SunsSongState {
// check if already healed Kamaro the Dancing Ghost
#define WEEKEVENTREG_82_04 PACK_WEEKEVENTREG_FLAG(82, 0x04)
// Related to Swordsman's log minigame
#define WEEKEVENTREG_82_08 PACK_WEEKEVENTREG_FLAG(82, 0x08)
#define WEEKEVENTREG_82_10 PACK_WEEKEVENTREG_FLAG(82, 0x10)
#define WEEKEVENTREG_82_20 PACK_WEEKEVENTREG_FLAG(82, 0x20)
@ -1290,6 +1294,7 @@ typedef enum SunsSongState {
#define WEEKEVENTREG_84_10 PACK_WEEKEVENTREG_FLAG(84, 0x10)
// Unconfirmed: "Obtained Fierce Deity's Mask?"
// Also related to moon child
#define WEEKEVENTREG_84_20 PACK_WEEKEVENTREG_FLAG(84, 0x20)
#define WEEKEVENTREG_84_40 PACK_WEEKEVENTREG_FLAG(84, 0x40)
@ -1354,6 +1359,8 @@ typedef enum SunsSongState {
#define WEEKEVENTREG_90_04 PACK_WEEKEVENTREG_FLAG(90, 0x04)
#define WEEKEVENTREG_90_08 PACK_WEEKEVENTREG_FLAG(90, 0x08)
#define WEEKEVENTREG_90_10 PACK_WEEKEVENTREG_FLAG(90, 0x10)
// Related to Fishermans's jumping minigame
#define WEEKEVENTREG_90_20 PACK_WEEKEVENTREG_FLAG(90, 0x20)
#define WEEKEVENTREG_90_40 PACK_WEEKEVENTREG_FLAG(90, 0x40)
#define WEEKEVENTREG_90_80 PACK_WEEKEVENTREG_FLAG(90, 0x80)
@ -1493,11 +1500,15 @@ typedef enum SunsSongState {
#define EVENTINF_32 0x32
#define EVENTINF_33 0x33
// Related to Deku playground minigame
#define EVENTINF_34 0x34
#define EVENTINF_35 0x35
#define EVENTINF_36 0x36
#define EVENTINF_37 0x37
#define EVENTINF_40 0x40
// Related to swamp boat (non-minigame)?
#define EVENTINF_41 0x41
#define EVENTINF_42 0x42
#define EVENTINF_43 0x43

View File

@ -474,7 +474,7 @@ u16 gSceneIdsPerRegion[REGION_MAX][27] = {
s32 Inventory_GetBtnBItem(PlayState* play) {
if (gSaveContext.buttonStatus[0] == BTN_DISABLED) {
return ITEM_NONE;
} else if (gSaveContext.unk_1015 == ITEM_NONE) {
} else if (gSaveContext.bButtonStatus == BTN_DISABLED) {
return ITEM_NONE;
} else if (CUR_FORM_EQUIP(EQUIP_SLOT_B) == ITEM_NONE) {
if (play->interfaceCtx.unk_21C != 0) {

File diff suppressed because it is too large Load Diff

View File

@ -2169,15 +2169,15 @@ void Player_DrawBlastMask(PlayState* play, Player* player) {
OPEN_DISPS(play->state.gfxCtx);
if (player->unk_B60 != 0) {
if (player->blastMaskTimer != 0) {
s32 alpha;
gSegments[0xA] = VIRTUAL_TO_PHYSICAL(player->maskObjectSegment);
AnimatedMat_DrawOpa(play, Lib_SegmentedToVirtual(&object_mask_bakuretu_Matanimheader_0011F8));
if (player->unk_B60 < 11) {
alpha = (player->unk_B60 / 10.0f) * 255;
if (player->blastMaskTimer <= 10) {
alpha = (player->blastMaskTimer / 10.0f) * 255;
} else {
alpha = 255;
}

View File

@ -241,9 +241,9 @@ void KaleidoScope_SetCursorVtx(PauseContext* pauseCtx, u16 index, Vtx* vtx) {
pauseCtx->cursorVtx[0].v.ob[1] = vtx[index].v.ob[1];
}
s16 sMagicArrowEffectsR[] = { 255, 100, 255 };
s16 sMagicArrowEffectsG[] = { 0, 100, 255 };
s16 sMagicArrowEffectsB[] = { 0, 255, 100 };
static s16 sMagicArrowEffectsR[] = { 255, 100, 255 };
static s16 sMagicArrowEffectsG[] = { 0, 100, 255 };
static s16 sMagicArrowEffectsB[] = { 0, 255, 100 };
void KaleidoScope_DrawItemSelect(PlayState* play) {
PauseContext* pauseCtx = &play->pauseCtx;

View File

@ -528,7 +528,7 @@ void KaleidoScope_UpdateOpening(PlayState* play) {
if (pauseCtx->switchPageTimer == 64) {
// Finished opening
func_80112C0C(play, 1);
Interface_UpdateButtonsAlt(play, 1);
if (pauseCtx->cursorSpecialPos == 0) {
gSaveContext.buttonStatus[EQUIP_SLOT_B] = D_801C6A98[pauseCtx->pageIndex][0];
@ -1340,7 +1340,7 @@ void KaleidoScope_Update(PlayState* play) {
gSaveContext.buttonStatus[EQUIP_SLOT_C_RIGHT] = sUnpausedButtonStatus[EQUIP_SLOT_C_RIGHT];
gSaveContext.buttonStatus[EQUIP_SLOT_A] = sUnpausedButtonStatus[EQUIP_SLOT_A];
func_80110038(play);
Interface_UpdateButtonsPart2(play);
gSaveContext.hudVisibility = HUD_VISIBILITY_IDLE;
Interface_SetHudVisibility(HUD_VISIBILITY_ALL);
MsgEvent_SendNullTask();

View File

@ -2104,14 +2104,14 @@
0x8010EF9C:("Interface_UpdateButtonAlphasByStatus",),
0x8010F0D4:("Interface_UpdateButtonAlphas",),
0x8010F1A8:("Interface_UpdateHudAlphas",),
0x80110038:("func_80110038",),
0x80111CB4:("func_80111CB4",),
0x80110038:("Interface_UpdateButtonsPart2",),
0x80111CB4:("Interface_UpdateButtonsPart1",),
0x801129E4:("Interface_SetSceneRestrictions",),
0x80112AF4:("Interface_Noop",),
0x80112AFC:("Interface_InitMinigame",),
0x80112B40:("Interface_LoadItemIconImpl",),
0x80112BE4:("Interface_LoadItemIcon",),
0x80112C0C:("func_80112C0C",),
0x80112C0C:("Interface_UpdateButtonsAlt",),
0x80112E80:("Item_Give",),
0x801143CC:("Item_CheckObtainabilityImpl",),
0x80114978:("Item_CheckObtainability",),
@ -2141,15 +2141,15 @@
0x80116114:("Magic_FlashMeterBorder",),
0x80116348:("Magic_Update",),
0x80116918:("Magic_DrawMeter",),
0x80116FD8:("func_80116FD8",),
0x801170B8:("func_801170B8",),
0x80117100:("func_80117100",),
0x80117A20:("func_80117A20",),
0x80117BD0:("func_80117BD0",),
0x80118084:("func_80118084",),
0x80118890:("func_80118890",),
0x80118BA4:("func_80118BA4",),
0x80119030:("func_80119030",),
0x80116FD8:("Interface_SetPerspectiveView",),
0x801170B8:("Interface_SetOrthoView",),
0x80117100:("Interface_DrawItemButtons",),
0x80117A20:("Interface_DrawItemIconTexture",),
0x80117BD0:("Interface_DrawAmmoCount",),
0x80118084:("Interface_DrawBButtonIcons",),
0x80118890:("Interface_DrawCButtonIcons",),
0x80118BA4:("Interface_DrawAButton",),
0x80119030:("Interface_DrawPauseMenuEquippingIcons",),
0x80119610:("Interface_DrawClock",),
0x8011B4E0:("Interface_SetPerfectLetters",),
0x8011B5C0:("Interface_UpdatePerfectLettersType1",),

View File

@ -1136,9 +1136,9 @@
0x801BFAFC:("D_801BFAFC","UNK_TYPE4","",0x4),
0x801BFB04:("D_801BFB04","UNK_TYPE1","",0x1),
0x801BFB0C:("D_801BFB0C","UNK_TYPE1","",0x1),
0x801BFB14:("D_801BFB14","UNK_TYPE1","",0x1),
0x801BFB1C:("D_801BFB1C","UNK_TYPE1","",0x1),
0x801BFB24:("D_801BFB24","UNK_TYPE1","",0x1),
0x801BFB14:("sMagicArrowEffectsR","UNK_TYPE1","",0x1),
0x801BFB1C:("sMagicArrowEffectsG","UNK_TYPE1","",0x1),
0x801BFB24:("sMagicArrowEffectsB","UNK_TYPE1","",0x1),
0x801BFB2C:("sThreeDayClockAlpha","UNK_TYPE2","",0x2),
0x801BFB30:("D_801BFB30","UNK_TYPE2","",0x2),
0x801BFB34:("D_801BFB34","UNK_TYPE2","",0x2),

View File

@ -1618,14 +1618,14 @@ asm/non_matchings/code/z_parameter/Interface_SetHudVisibility.s,Interface_SetHud
asm/non_matchings/code/z_parameter/Interface_UpdateButtonAlphasByStatus.s,Interface_UpdateButtonAlphasByStatus,0x8010EF9C,0x4E
asm/non_matchings/code/z_parameter/Interface_UpdateButtonAlphas.s,Interface_UpdateButtonAlphas,0x8010F0D4,0x35
asm/non_matchings/code/z_parameter/Interface_UpdateHudAlphas.s,Interface_UpdateHudAlphas,0x8010F1A8,0x3A4
asm/non_matchings/code/z_parameter/func_80110038.s,func_80110038,0x80110038,0x71F
asm/non_matchings/code/z_parameter/func_80111CB4.s,func_80111CB4,0x80111CB4,0x34C
asm/non_matchings/code/z_parameter/Interface_UpdateButtonsPart2.s,Interface_UpdateButtonsPart2,0x80110038,0x71F
asm/non_matchings/code/z_parameter/Interface_UpdateButtonsPart1.s,Interface_UpdateButtonsPart1,0x80111CB4,0x34C
asm/non_matchings/code/z_parameter/Interface_SetSceneRestrictions.s,Interface_SetSceneRestrictions,0x801129E4,0x44
asm/non_matchings/code/z_parameter/Interface_Noop.s,Interface_Noop,0x80112AF4,0x2
asm/non_matchings/code/z_parameter/Interface_InitMinigame.s,Interface_InitMinigame,0x80112AFC,0x11
asm/non_matchings/code/z_parameter/Interface_LoadItemIconImpl.s,Interface_LoadItemIconImpl,0x80112B40,0x29
asm/non_matchings/code/z_parameter/Interface_LoadItemIcon.s,Interface_LoadItemIcon,0x80112BE4,0xA
asm/non_matchings/code/z_parameter/func_80112C0C.s,func_80112C0C,0x80112C0C,0x9D
asm/non_matchings/code/z_parameter/Interface_UpdateButtonsAlt.s,Interface_UpdateButtonsAlt,0x80112C0C,0x9D
asm/non_matchings/code/z_parameter/Item_Give.s,Item_Give,0x80112E80,0x553
asm/non_matchings/code/z_parameter/Item_CheckObtainabilityImpl.s,Item_CheckObtainabilityImpl,0x801143CC,0x16B
asm/non_matchings/code/z_parameter/Item_CheckObtainability.s,Item_CheckObtainability,0x80114978,0xA
@ -1655,15 +1655,15 @@ asm/non_matchings/code/z_parameter/Magic_UpdateAddRequest.s,Magic_UpdateAddReque
asm/non_matchings/code/z_parameter/Magic_FlashMeterBorder.s,Magic_FlashMeterBorder,0x80116114,0x8D
asm/non_matchings/code/z_parameter/Magic_Update.s,Magic_Update,0x80116348,0x174
asm/non_matchings/code/z_parameter/Magic_DrawMeter.s,Magic_DrawMeter,0x80116918,0x1B0
asm/non_matchings/code/z_parameter/func_80116FD8.s,func_80116FD8,0x80116FD8,0x38
asm/non_matchings/code/z_parameter/func_801170B8.s,func_801170B8,0x801170B8,0x12
asm/non_matchings/code/z_parameter/func_80117100.s,func_80117100,0x80117100,0x248
asm/non_matchings/code/z_parameter/func_80117A20.s,func_80117A20,0x80117A20,0x6C
asm/non_matchings/code/z_parameter/func_80117BD0.s,func_80117BD0,0x80117BD0,0x12D
asm/non_matchings/code/z_parameter/func_80118084.s,func_80118084,0x80118084,0x203
asm/non_matchings/code/z_parameter/func_80118890.s,func_80118890,0x80118890,0xC5
asm/non_matchings/code/z_parameter/func_80118BA4.s,func_80118BA4,0x80118BA4,0x123
asm/non_matchings/code/z_parameter/func_80119030.s,func_80119030,0x80119030,0x178
asm/non_matchings/code/z_parameter/Interface_SetPerspectiveView.s,Interface_SetPerspectiveView,0x80116FD8,0x38
asm/non_matchings/code/z_parameter/Interface_SetOrthoView.s,Interface_SetOrthoView,0x801170B8,0x12
asm/non_matchings/code/z_parameter/Interface_DrawItemButtons.s,Interface_DrawItemButtons,0x80117100,0x248
asm/non_matchings/code/z_parameter/Interface_DrawItemIconTexture.s,Interface_DrawItemIconTexture,0x80117A20,0x6C
asm/non_matchings/code/z_parameter/Interface_DrawAmmoCount.s,Interface_DrawAmmoCount,0x80117BD0,0x12D
asm/non_matchings/code/z_parameter/Interface_DrawBButtonIcons.s,Interface_DrawBButtonIcons,0x80118084,0x203
asm/non_matchings/code/z_parameter/Interface_DrawCButtonIcons.s,Interface_DrawCButtonIcons,0x80118890,0xC5
asm/non_matchings/code/z_parameter/Interface_DrawAButton.s,Interface_DrawAButton,0x80118BA4,0x123
asm/non_matchings/code/z_parameter/Interface_DrawPauseMenuEquippingIcons.s,Interface_DrawPauseMenuEquippingIcons,0x80119030,0x178
asm/non_matchings/code/z_parameter/Interface_DrawClock.s,Interface_DrawClock,0x80119610,0x7B4
asm/non_matchings/code/z_parameter/Interface_SetPerfectLetters.s,Interface_SetPerfectLetters,0x8011B4E0,0x38
asm/non_matchings/code/z_parameter/Interface_UpdatePerfectLettersType1.s,Interface_UpdatePerfectLettersType1,0x8011B5C0,0x108

1 asm/non_matchings/code/z_en_a_keep/EnAObj_Init.s EnAObj_Init 0x800A5AC0 0x2B
1618 asm/non_matchings/code/z_parameter/Interface_UpdateButtonAlphasByStatus.s Interface_UpdateButtonAlphasByStatus 0x8010EF9C 0x4E
1619 asm/non_matchings/code/z_parameter/Interface_UpdateButtonAlphas.s Interface_UpdateButtonAlphas 0x8010F0D4 0x35
1620 asm/non_matchings/code/z_parameter/Interface_UpdateHudAlphas.s Interface_UpdateHudAlphas 0x8010F1A8 0x3A4
1621 asm/non_matchings/code/z_parameter/func_80110038.s asm/non_matchings/code/z_parameter/Interface_UpdateButtonsPart2.s func_80110038 Interface_UpdateButtonsPart2 0x80110038 0x71F
1622 asm/non_matchings/code/z_parameter/func_80111CB4.s asm/non_matchings/code/z_parameter/Interface_UpdateButtonsPart1.s func_80111CB4 Interface_UpdateButtonsPart1 0x80111CB4 0x34C
1623 asm/non_matchings/code/z_parameter/Interface_SetSceneRestrictions.s Interface_SetSceneRestrictions 0x801129E4 0x44
1624 asm/non_matchings/code/z_parameter/Interface_Noop.s Interface_Noop 0x80112AF4 0x2
1625 asm/non_matchings/code/z_parameter/Interface_InitMinigame.s Interface_InitMinigame 0x80112AFC 0x11
1626 asm/non_matchings/code/z_parameter/Interface_LoadItemIconImpl.s Interface_LoadItemIconImpl 0x80112B40 0x29
1627 asm/non_matchings/code/z_parameter/Interface_LoadItemIcon.s Interface_LoadItemIcon 0x80112BE4 0xA
1628 asm/non_matchings/code/z_parameter/func_80112C0C.s asm/non_matchings/code/z_parameter/Interface_UpdateButtonsAlt.s func_80112C0C Interface_UpdateButtonsAlt 0x80112C0C 0x9D
1629 asm/non_matchings/code/z_parameter/Item_Give.s Item_Give 0x80112E80 0x553
1630 asm/non_matchings/code/z_parameter/Item_CheckObtainabilityImpl.s Item_CheckObtainabilityImpl 0x801143CC 0x16B
1631 asm/non_matchings/code/z_parameter/Item_CheckObtainability.s Item_CheckObtainability 0x80114978 0xA
1655 asm/non_matchings/code/z_parameter/Magic_FlashMeterBorder.s Magic_FlashMeterBorder 0x80116114 0x8D
1656 asm/non_matchings/code/z_parameter/Magic_Update.s Magic_Update 0x80116348 0x174
1657 asm/non_matchings/code/z_parameter/Magic_DrawMeter.s Magic_DrawMeter 0x80116918 0x1B0
1658 asm/non_matchings/code/z_parameter/func_80116FD8.s asm/non_matchings/code/z_parameter/Interface_SetPerspectiveView.s func_80116FD8 Interface_SetPerspectiveView 0x80116FD8 0x38
1659 asm/non_matchings/code/z_parameter/func_801170B8.s asm/non_matchings/code/z_parameter/Interface_SetOrthoView.s func_801170B8 Interface_SetOrthoView 0x801170B8 0x12
1660 asm/non_matchings/code/z_parameter/func_80117100.s asm/non_matchings/code/z_parameter/Interface_DrawItemButtons.s func_80117100 Interface_DrawItemButtons 0x80117100 0x248
1661 asm/non_matchings/code/z_parameter/func_80117A20.s asm/non_matchings/code/z_parameter/Interface_DrawItemIconTexture.s func_80117A20 Interface_DrawItemIconTexture 0x80117A20 0x6C
1662 asm/non_matchings/code/z_parameter/func_80117BD0.s asm/non_matchings/code/z_parameter/Interface_DrawAmmoCount.s func_80117BD0 Interface_DrawAmmoCount 0x80117BD0 0x12D
1663 asm/non_matchings/code/z_parameter/func_80118084.s asm/non_matchings/code/z_parameter/Interface_DrawBButtonIcons.s func_80118084 Interface_DrawBButtonIcons 0x80118084 0x203
1664 asm/non_matchings/code/z_parameter/func_80118890.s asm/non_matchings/code/z_parameter/Interface_DrawCButtonIcons.s func_80118890 Interface_DrawCButtonIcons 0x80118890 0xC5
1665 asm/non_matchings/code/z_parameter/func_80118BA4.s asm/non_matchings/code/z_parameter/Interface_DrawAButton.s func_80118BA4 Interface_DrawAButton 0x80118BA4 0x123
1666 asm/non_matchings/code/z_parameter/func_80119030.s asm/non_matchings/code/z_parameter/Interface_DrawPauseMenuEquippingIcons.s func_80119030 Interface_DrawPauseMenuEquippingIcons 0x80119030 0x178
1667 asm/non_matchings/code/z_parameter/Interface_DrawClock.s Interface_DrawClock 0x80119610 0x7B4
1668 asm/non_matchings/code/z_parameter/Interface_SetPerfectLetters.s Interface_SetPerfectLetters 0x8011B4E0 0x38
1669 asm/non_matchings/code/z_parameter/Interface_UpdatePerfectLettersType1.s Interface_UpdatePerfectLettersType1 0x8011B5C0 0x108