diff --git a/include/z64save.h b/include/z64save.h index 333953a76..eaff390f8 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -1017,7 +1017,10 @@ typedef enum { #define WEEKEVENTREG_51_08 PACK_WEEKEVENTREG_FLAG(51, 0x08) #define WEEKEVENTREG_51_10 PACK_WEEKEVENTREG_FLAG(51, 0x10) #define WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT PACK_WEEKEVENTREG_FLAG(51, 0x20) -#define WEEKEVENTREG_51_40 PACK_WEEKEVENTREG_FLAG(51, 0x40) + +// Set by Kafei +#define WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED PACK_WEEKEVENTREG_FLAG(51, 0x40) + #define WEEKEVENTREG_51_80 PACK_WEEKEVENTREG_FLAG(51, 0x80) // Protected Cremia @@ -1359,7 +1362,10 @@ typedef enum { #define WEEKEVENTREG_86_40 PACK_WEEKEVENTREG_FLAG(86, 0x40) #define WEEKEVENTREG_86_80 PACK_WEEKEVENTREG_FLAG(86, 0x80) #define WEEKEVENTREG_87_01 PACK_WEEKEVENTREG_FLAG(87, 0x01) -#define WEEKEVENTREG_87_02 PACK_WEEKEVENTREG_FLAG(87, 0x02) + +// Set by Anju +#define WEEKEVENTREG_COUPLES_MASK_CUTSCENE_STARTED PACK_WEEKEVENTREG_FLAG(87, 0x02) + #define WEEKEVENTREG_87_04 PACK_WEEKEVENTREG_FLAG(87, 0x04) #define WEEKEVENTREG_87_08 PACK_WEEKEVENTREG_FLAG(87, 0x08) #define WEEKEVENTREG_87_10 PACK_WEEKEVENTREG_FLAG(87, 0x10) diff --git a/src/overlays/actors/ovl_En_An/z_en_an.c b/src/overlays/actors/ovl_En_An/z_en_an.c index 365cf83c8..d26f97fe5 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -3161,7 +3161,7 @@ void EnAn_FollowSchedule(EnAn* this, PlayState* play) { this->timePathTimeSpeed = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); - if (!(this->actor.params & ENAN_8000) && !this->unk_3C0 && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { + if (!(this->actor.params & ENAN_8000) && !this->unk_3C0 && CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED)) { Actor_Kill(&this->actor); return; } @@ -3224,7 +3224,7 @@ void EnAn_Talk(EnAn* this, PlayState* play) { void EnAn_HandleCutscene(EnAn* this, PlayState* play) { s32 animIds[] = { - /* 0 */ ENAN_ANIM_HOLDING_HANDS, + /* 0 */ 0, /* 1 */ ENAN_ANIM_SITTING_IN_DISBELIEVE, /* 2 */ ENAN_ANIM_SITTING_RAISE_FACE, /* 3 */ ENAN_ANIM_25, @@ -3248,7 +3248,7 @@ void EnAn_HandleCutscene(EnAn* this, PlayState* play) { this->cueId = cueId; if (this->cueId == 3) { - SET_WEEKEVENTREG(WEEKEVENTREG_87_02); + SET_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_STARTED); this->drawMoonMask = true; } if (this->cueId == 9) { @@ -3277,16 +3277,16 @@ void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; s32 temp_v1; - s32 temp_v0; + s32 watchedCouplesMaskCs; if (play->sceneId != SCENE_YADOYA) { this->actor.params &= (s16)~ENAN_8000; } temp_v1 = (this->actor.params & ENAN_8000) >> 0xF; - temp_v0 = CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40); + watchedCouplesMaskCs = CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED); - if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { + if ((!watchedCouplesMaskCs && (temp_v1 == 1)) || (watchedCouplesMaskCs && (temp_v1 == 0))) { Actor_Kill(&this->actor); return; } @@ -3312,7 +3312,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { gSaveContext.save.day = 3; if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { - gSaveContext.save.time = CLOCK_TIME(4, 30); + gSaveContext.save.time = CLOCK_TIME(3, 0); } SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); @@ -3568,26 +3568,26 @@ void EnAn_DrawStruct(EnAn* this, PlayState* play) { } #endif -static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { - gAnju1Mouth00E6E0Tex, // ENAN_MOUTH_0 - gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY - gAnju1Mouth0101A0Tex, // ENAN_MOUTH_2 -}; - -static TexturePtr sEyeTextures[ENAN_EYES_MAX] = { - gAnju1EyeOpenTex, // ENAN_EYES_OPEN - gAnju1EyeHalfTex, // ENAN_EYES_HALF1 - gAnju1EyeClosedTex, // ENAN_EYES_CLOSED - gAnju1EyeHalfTex, // ENAN_EYES_HALF2 - gAnju1Eye00FDA0Tex, // ENAN_EYES_4 - gAnju1EyeSadTex, // ENAN_EYES_SAD - gAnju1EyeAngryTex, // ENAN_EYES_ANGRY -}; - void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; if ((this->scheduleResult != ANJU_SCH_NONE) || this->forceDraw) { + static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { + gAnju1Mouth00E6E0Tex, // ENAN_MOUTH_0 + gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY + gAnju1Mouth0101A0Tex, // ENAN_MOUTH_2 + }; + + static TexturePtr sEyeTextures[ENAN_EYES_MAX] = { + gAnju1EyeOpenTex, // ENAN_EYES_OPEN + gAnju1EyeHalfTex, // ENAN_EYES_HALF1 + gAnju1EyeClosedTex, // ENAN_EYES_CLOSED + gAnju1EyeHalfTex, // ENAN_EYES_HALF2 + gAnju1Eye00FDA0Tex, // ENAN_EYES_4 + gAnju1EyeSadTex, // ENAN_EYES_SAD + gAnju1EyeAngryTex, // ENAN_EYES_ANGRY + }; + OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_Drs/z_en_drs.c b/src/overlays/actors/ovl_En_Drs/z_en_drs.c index e067b57b4..cc2c42893 100644 --- a/src/overlays/actors/ovl_En_Drs/z_en_drs.c +++ b/src/overlays/actors/ovl_En_Drs/z_en_drs.c @@ -115,7 +115,7 @@ void EnDrs_PostLimbDraw(PlayState* play2, s32 limbIndex, Gfx** dList, Vec3s* rot // Anju removes the Moon Mask at the start of the Couple's Mask cutscene // after that it will no longer be rendered. - if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_87_02) && (limbIndex == WEDDING_DRESS_MANNEQUIN_LIMB_MASK)) { + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_STARTED) && (limbIndex == WEDDING_DRESS_MANNEQUIN_LIMB_MASK)) { OPEN_DISPS(play->state.gfxCtx); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp].segment); diff --git a/src/overlays/actors/ovl_En_Test3/z_en_test3.c b/src/overlays/actors/ovl_En_Test3/z_en_test3.c index 90ea18d05..ee9b90985 100644 --- a/src/overlays/actors/ovl_En_Test3/z_en_test3.c +++ b/src/overlays/actors/ovl_En_Test3/z_en_test3.c @@ -824,7 +824,7 @@ s32 func_80A3FE20(EnTest3* this, PlayState* play) { s32 func_80A3FF10(EnTest3* this, PlayState* play, struct_80A41828* arg2, ScheduleOutput* scheduleOutput) { static Vec3f D_80A418BC = { -420.0f, 210.0f, -162.0f }; - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED)) { D_80A41D68 = 2; Math_Vec3f_Copy(&this->player.actor.world.pos, &D_80A418BC); Math_Vec3f_Copy(&this->player.actor.home.pos, &D_80A418BC); @@ -856,7 +856,7 @@ s32 func_80A3FFD0(EnTest3* this, PlayState* play2) { D_80A41D68 = 2; } } else { - SET_WEEKEVENTREG(WEEKEVENTREG_51_40); + SET_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED); play->startPlayerCutscene(play, &this->player, PLAYER_CSMODE_110); } return false; diff --git a/tools/weekeventregconvert.py b/tools/weekeventregconvert.py index 35757a022..f0a19d0af 100755 --- a/tools/weekeventregconvert.py +++ b/tools/weekeventregconvert.py @@ -418,7 +418,7 @@ weekEventReg = { (51 << 8) | 0x08: "WEEKEVENTREG_51_08", (51 << 8) | 0x10: "WEEKEVENTREG_51_10", (51 << 8) | 0x20: "WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT", - (51 << 8) | 0x40: "WEEKEVENTREG_51_40", + (51 << 8) | 0x40: "WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED", (51 << 8) | 0x80: "WEEKEVENTREG_51_80", (52 << 8) | 0x01: "WEEKEVENTREG_ESCORTED_CREMIA", (52 << 8) | 0x02: "WEEKEVENTREG_52_02", @@ -701,7 +701,7 @@ weekEventReg = { (86 << 8) | 0x40: "WEEKEVENTREG_86_40", (86 << 8) | 0x80: "WEEKEVENTREG_86_80", (87 << 8) | 0x01: "WEEKEVENTREG_87_01", - (87 << 8) | 0x02: "WEEKEVENTREG_87_02", + (87 << 8) | 0x02: "WEEKEVENTREG_COUPLES_MASK_CUTSCENE_STARTED", (87 << 8) | 0x04: "WEEKEVENTREG_87_04", (87 << 8) | 0x08: "WEEKEVENTREG_87_08", (87 << 8) | 0x10: "WEEKEVENTREG_87_10",