diff options
| author | Jordan Longstaff <JordanLongstaff@users.noreply.github.com> | 2026-09-20 08:58:30 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-20 09:58:30 -0300 |
| commit | 8abe023044c4eaa1da81e5244ef67dc1c0cb968c (patch) | |
| tree | 7207bddcf4c2bbe3c932b18fbd5e145bd0d6bc2a | |
| parent | 4a8851c7fb2b29914d71f7ff42e4fef21ae7c380 (diff) | |
Document player transformation mask flags (#1904)
| -rw-r--r-- | include/z64save.h | 8 | ||||
| -rw-r--r-- | src/code/z_sram_JPN.c | 5 | ||||
| -rw-r--r-- | src/code/z_sram_NES.c | 5 | ||||
| -rw-r--r-- | src/overlays/actors/ovl_player_actor/z_player.c | 20 | ||||
| -rw-r--r-- | tools/overlayhelpers/mscriptdis.py | 8 | ||||
| -rwxr-xr-x | tools/weekeventregconvert.py | 8 |
6 files changed, 28 insertions, 26 deletions
diff --git a/include/z64save.h b/include/z64save.h index 36e7f24aa..02d2e9ee3 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -967,10 +967,10 @@ typedef enum { #define WEEKEVENTREG_30_02 PACK_WEEKEVENTREG_FLAG(30, 0x02) #define WEEKEVENTREG_30_04 PACK_WEEKEVENTREG_FLAG(30, 0x04) #define WEEKEVENTREG_30_08 PACK_WEEKEVENTREG_FLAG(30, 0x08) -#define WEEKEVENTREG_30_10 PACK_WEEKEVENTREG_FLAG(30, 0x10) -#define WEEKEVENTREG_30_20 PACK_WEEKEVENTREG_FLAG(30, 0x20) -#define WEEKEVENTREG_30_40 PACK_WEEKEVENTREG_FLAG(30, 0x40) -#define WEEKEVENTREG_30_80 PACK_WEEKEVENTREG_FLAG(30, 0x80) +#define WEEKEVENTREG_WORE_DEKU_MASK PACK_WEEKEVENTREG_FLAG(30, 0x10) +#define WEEKEVENTREG_WORE_GORON_MASK PACK_WEEKEVENTREG_FLAG(30, 0x20) +#define WEEKEVENTREG_WORE_ZORA_MASK PACK_WEEKEVENTREG_FLAG(30, 0x40) +#define WEEKEVENTREG_WORE_FIERCE_DEITY_MASK PACK_WEEKEVENTREG_FLAG(30, 0x80) #define WEEKEVENTREG_31_01 PACK_WEEKEVENTREG_FLAG(31, 0x01) #define WEEKEVENTREG_31_02 PACK_WEEKEVENTREG_FLAG(31, 0x02) diff --git a/src/code/z_sram_JPN.c b/src/code/z_sram_JPN.c index b8e0f76f7..0ac2da08c 100644 --- a/src/code/z_sram_JPN.c +++ b/src/code/z_sram_JPN.c @@ -110,8 +110,9 @@ u16 sPersistentCycleWeekEventRegs[ARRAY_COUNT(gSaveContext.save.saveInfo.weekEve /* 28 */ 0, /* 29 */ 0, /* 30 */ - PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_10) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_20) | - PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_40) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_80), + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_DEKU_MASK) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_GORON_MASK) | + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_ZORA_MASK) | + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_FIERCE_DEITY_MASK), /* 31 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_01) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_02) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_04) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_20), diff --git a/src/code/z_sram_NES.c b/src/code/z_sram_NES.c index b8e0f76f7..0ac2da08c 100644 --- a/src/code/z_sram_NES.c +++ b/src/code/z_sram_NES.c @@ -110,8 +110,9 @@ u16 sPersistentCycleWeekEventRegs[ARRAY_COUNT(gSaveContext.save.saveInfo.weekEve /* 28 */ 0, /* 29 */ 0, /* 30 */ - PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_10) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_20) | - PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_40) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_30_80), + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_DEKU_MASK) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_GORON_MASK) | + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_ZORA_MASK) | + PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_WORE_FIERCE_DEITY_MASK), /* 31 */ PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_01) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_02) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_04) | PERSISTENT_WEEKEVENTREG(WEEKEVENTREG_31_20), diff --git a/src/overlays/actors/ovl_player_actor/z_player.c b/src/overlays/actors/ovl_player_actor/z_player.c index 8e9182a73..a658258b2 100644 --- a/src/overlays/actors/ovl_player_actor/z_player.c +++ b/src/overlays/actors/ovl_player_actor/z_player.c @@ -18600,11 +18600,11 @@ void func_80855218(PlayState* play, Player* this, struct_8085D910** arg2) { } //! @bug This array may be indexed with PLAYER_FORM_HUMAN, causing an out-of-bounds access -u16 D_8085D908[] = { - WEEKEVENTREG_30_80, // PLAYER_FORM_FIERCE_DEITY - WEEKEVENTREG_30_20, // PLAYER_FORM_GORON - WEEKEVENTREG_30_40, // PLAYER_FORM_ZORA - WEEKEVENTREG_30_10, // PLAYER_FORM_DEKU +u16 gPlayerTransformMaskFlags[] = { + WEEKEVENTREG_WORE_FIERCE_DEITY_MASK, // PLAYER_FORM_FIERCE_DEITY + WEEKEVENTREG_WORE_GORON_MASK, // PLAYER_FORM_GORON + WEEKEVENTREG_WORE_ZORA_MASK, // PLAYER_FORM_ZORA + WEEKEVENTREG_WORE_DEKU_MASK, // PLAYER_FORM_DEKU #ifdef AVOID_UB // Avoid UB: Provide the data that would be read by indexing this with PLAYER_FORM_HUMAN. // Both this array and D_8085D910 are read-only so this is not expected to change. @@ -18643,14 +18643,14 @@ void Player_Action_86(Player* this, PlayState* play) { this->actor.draw = NULL; this->av1.actionVar1 = 0; Play_DisableMotionBlurPriority(); - SET_WEEKEVENTREG(D_8085D908[GET_PLAYER_FORM]); + SET_WEEKEVENTREG(gPlayerTransformMaskFlags[GET_PLAYER_FORM]); } } else if ((this->av1.actionVar1++ > ((this->transformation == PLAYER_FORM_HUMAN) ? 0x53 : 0x37)) || ((this->av1.actionVar1 >= 5) && - (sp48 = - ((this->transformation != PLAYER_FORM_HUMAN) || CHECK_WEEKEVENTREG(D_8085D908[GET_PLAYER_FORM])) && - CHECK_BTN_ANY(sPlayerControlInput->press.button, - BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP | BTN_B | BTN_A)))) { + (sp48 = ((this->transformation != PLAYER_FORM_HUMAN) || + CHECK_WEEKEVENTREG(gPlayerTransformMaskFlags[GET_PLAYER_FORM])) && + CHECK_BTN_ANY(sPlayerControlInput->press.button, + BTN_CRIGHT | BTN_CLEFT | BTN_CDOWN | BTN_CUP | BTN_B | BTN_A)))) { R_PLAY_FILL_SCREEN_ON = 45; R_PLAY_FILL_SCREEN_R = 220; R_PLAY_FILL_SCREEN_G = 220; diff --git a/tools/overlayhelpers/mscriptdis.py b/tools/overlayhelpers/mscriptdis.py index 07e728bc2..db79a721a 100644 --- a/tools/overlayhelpers/mscriptdis.py +++ b/tools/overlayhelpers/mscriptdis.py @@ -305,10 +305,10 @@ week_event_reg = { (30 << 8) | 0x02: "WEEKEVENTREG_30_02", (30 << 8) | 0x04: "WEEKEVENTREG_30_04", (30 << 8) | 0x08: "WEEKEVENTREG_30_08", - (30 << 8) | 0x10: "WEEKEVENTREG_30_10", - (30 << 8) | 0x20: "WEEKEVENTREG_30_20", - (30 << 8) | 0x40: "WEEKEVENTREG_30_40", - (30 << 8) | 0x80: "WEEKEVENTREG_30_80", + (30 << 8) | 0x10: "WEEKEVENTREG_WORE_DEKU_MASK", + (30 << 8) | 0x20: "WEEKEVENTREG_WORE_GORON_MASK", + (30 << 8) | 0x40: "WEEKEVENTREG_WORE_ZORA_MASK", + (30 << 8) | 0x80: "WEEKEVENTREG_WORE_FIERCE_DEITY_MASK", (31 << 8) | 0x01: "WEEKEVENTREG_31_01", (31 << 8) | 0x02: "WEEKEVENTREG_31_02", (31 << 8) | 0x04: "WEEKEVENTREG_31_04", diff --git a/tools/weekeventregconvert.py b/tools/weekeventregconvert.py index 4483fc57d..1031460ab 100755 --- a/tools/weekeventregconvert.py +++ b/tools/weekeventregconvert.py @@ -248,10 +248,10 @@ weekEventReg = { (30 << 8) | 0x02: "WEEKEVENTREG_30_02", (30 << 8) | 0x04: "WEEKEVENTREG_30_04", (30 << 8) | 0x08: "WEEKEVENTREG_30_08", - (30 << 8) | 0x10: "WEEKEVENTREG_30_10", - (30 << 8) | 0x20: "WEEKEVENTREG_30_20", - (30 << 8) | 0x40: "WEEKEVENTREG_30_40", - (30 << 8) | 0x80: "WEEKEVENTREG_30_80", + (30 << 8) | 0x10: "WEEKEVENTREG_WORE_DEKU_MASK", + (30 << 8) | 0x20: "WEEKEVENTREG_WORE_GORON_MASK", + (30 << 8) | 0x40: "WEEKEVENTREG_WORE_ZORA_MASK", + (30 << 8) | 0x80: "WEEKEVENTREG_WORE_FIERCE_DEITY_MASK", (31 << 8) | 0x01: "WEEKEVENTREG_31_01", (31 << 8) | 0x02: "WEEKEVENTREG_31_02", (31 << 8) | 0x04: "WEEKEVENTREG_31_04", |
