From 6368519052d4f6ffbc557082ff39f7140e7fdd67 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 23 Sep 2023 18:56:47 -0300 Subject: [PATCH 01/78] Init and Destroy --- src/overlays/actors/ovl_En_An/z_en_an.c | 68 +++++++++++++++++++++++-- src/overlays/actors/ovl_En_An/z_en_an.h | 13 ++++- 2 files changed, 76 insertions(+), 5 deletions(-) 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 3ab31bfb8..5c5739d39 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -53,7 +53,34 @@ extern UNK_TYPE D_06012618; #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B539CC.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53A7C.s") +Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { + Actor* foundActor = NULL; + + while (true) { + foundActor = SubS_FindActor(play, foundActor, actorCategory, actorId); + + if (foundActor == NULL) { + break; + } + + if ((this != (EnAn*)foundActor)) { + if ((foundActor->update != NULL) && !(foundActor->params & 0x8000)) { + break; + } + } + + if (foundActor->next == NULL) { + foundActor = NULL; + break; + } + + foundActor = foundActor->next; + } + + return foundActor; +} + +//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53A7C.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53B3C.s") @@ -159,9 +186,44 @@ extern UNK_TYPE D_06012618; #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Init.s") +void EnAn_Init(Actor* thisx, PlayState* play) { + s32 pad; + EnAn* this = THIS; + s32 temp_v1; // sp1C + s32 temp_v0; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Destroy.s") + if (play->sceneId != SCENE_YADOYA) { + this->actor.params &= (s16)~0x8000; + } + + temp_v1 = ENAN_GET_8000(&this->actor); + temp_v0 = gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40; + + if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { + Actor_Kill(&this->actor); + return; + } + + if (temp_v1 == 0) { + if (func_80B53A7C(this, play, ACTORCAT_NPC, ACTOR_EN_AN) != NULL) { + Actor_Kill(&this->actor); + return; + } + } + + this->unk_214 = -0x80; + this->unk_3B8 = 0; + if (temp_v1 == 0) { + this->actor.room = -1; + } + this->actionFunc = func_80B577F0; +} + +void EnAn_Destroy(Actor* thisx, PlayState* play) { + EnAn* this = THIS; + + Collider_DestroyCylinder(play, &this->unk_190); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Update.s") diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 7f1a11930..b0c036315 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -7,11 +7,20 @@ struct EnAn; typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); +#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) + typedef struct EnAn { /* 0x000 */ Actor actor; - /* 0x144 */ char unk_144[0x44]; + /* 0x144 */ UNK_TYPE1 unk_144[0x44]; /* 0x188 */ EnAnActionFunc actionFunc; - /* 0x18C */ char unk_18C[0x23C]; + /* 0x18C */ UNK_TYPE1 unk_18C[0x4]; + /* 0x190 */ ColliderCylinder unk_190; + /* 0x1DC */ UNK_TYPE1 pad_1DC[0x214-0x1DC]; + /* 0x214 */ s8 unk_214; + /* 0x215 */ UNK_TYPE1 unk_215[0x3]; + /* 0x218 */ UNK_TYPE1 unk_218[0x3B8-0x218]; + /* 0x3B8 */ s32 unk_3B8; + /* 0x3BC */ UNK_TYPE1 unk_3BC[0x3C8-0x3BC]; } EnAn; // size = 0x3C8 #endif // Z_EN_AN_H From eddf0b6a393910b1faa643a2a52fb55d071a0bf6 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 23 Sep 2023 19:14:17 -0300 Subject: [PATCH 02/78] EnAn_Update --- src/overlays/actors/ovl_En_An/z_en_an.c | 49 +++++++++++++++++++++-- src/overlays/actors/ovl_En_An/z_en_an.h | 52 ++++++++++++++++++++++--- 2 files changed, 93 insertions(+), 8 deletions(-) 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 5c5739d39..8f70caab2 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -18,6 +18,19 @@ void func_80B577F0(EnAn* this, PlayState* play); void func_80B578F8(EnAn* this, PlayState* play); void func_80B57A44(EnAn* this, PlayState* play); + + +s32 func_80B53840(EnAn* this, PlayState* play); +s32 func_80B53BA8(EnAn* this, PlayState* play); +void func_80B53ED4(EnAn* this, PlayState* play); +void func_80B53F84(EnAn* this); +s32 func_80B55180(EnAn* this, PlayState* play); +s32 func_80B552E4(EnAn* this, PlayState* play); +void func_80B554E8(EnAn* this); +UNK_RET func_80B55914(EnAn* this, PlayState* play); +void func_80B57B48(EnAn* this, PlayState* play); + + #if 0 ActorInit En_An_InitVars = { ACTOR_EN_AN, @@ -80,8 +93,6 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) return foundActor; } -//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53A7C.s") - #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53B3C.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53BA8.s") @@ -216,6 +227,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { if (temp_v1 == 0) { this->actor.room = -1; } + this->actionFunc = func_80B577F0; } @@ -225,7 +237,38 @@ void EnAn_Destroy(Actor* thisx, PlayState* play) { Collider_DestroyCylinder(play, &this->unk_190); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Update.s") +void EnAn_Update(Actor* thisx, PlayState* play) { + EnAn* this = (EnAn* ) thisx; + + if (func_80B53840(this, play) != 0) { + return; + } + + if ((this->actionFunc != func_80B577F0) && (func_80B55180(this, play) == 0) && (func_80B552E4(this, play) != 0)) { + func_80B57B48(this, play); + func_80B53BA8(this, play); + func_80B53F84(this); + return; + } + + this->actionFunc(this, play); + if (this->unk_200 != 0) { + func_80B55914(this, play); + func_80B53BA8(this, play); + func_80B53F84(this); + func_80B554E8(this); + SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & 7); + + if (!(this->unk_360 & 0x40)) { + Actor_MoveWithGravity(&this->actor); + Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4U); + } + + func_80B53ED4(this, play); + } +} + +//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Update.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57EE8.s") diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index b0c036315..289263220 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -11,16 +11,58 @@ typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); typedef struct EnAn { /* 0x000 */ Actor actor; - /* 0x144 */ UNK_TYPE1 unk_144[0x44]; + /* 0x144 */ SkelAnime unk_144; /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ UNK_TYPE1 unk_18C[0x4]; /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ UNK_TYPE1 pad_1DC[0x214-0x1DC]; + /* 0x1DC */ char pad_1DC[0x24]; /* inferred */ + /* 0x200 */ u8 unk_200; /* inferred */ + /* 0x201 */ char pad_201[3]; /* maybe part of unk_200[4]? */ + /* 0x204 */ void* unk_204; /* inferred */ + /* 0x208 */ s8 unk_208; /* inferred */ + /* 0x209 */ s8 unk_209; /* inferred */ + /* 0x20A */ s8 unk_20A; /* inferred */ + /* 0x20B */ s8 unk_20B; /* inferred */ + /* 0x20C */ s8 unk_20C; /* inferred */ + /* 0x20D */ char pad_20D[3]; /* maybe part of unk_20C[4]? */ + /* 0x210 */ s32 unk_210; /* inferred */ /* 0x214 */ s8 unk_214; - /* 0x215 */ UNK_TYPE1 unk_215[0x3]; - /* 0x218 */ UNK_TYPE1 unk_218[0x3B8-0x218]; + /* 0x215 */ char pad_215[3]; /* maybe part of unk_214[4]? */ + /* 0x218 */ Actor* unk_218; /* inferred */ + /* 0x21C */ char pad_21C[0x48]; /* maybe part of unk_218[0x13]? */ + /* 0x264 */ Vec3s unk_264; /* inferred */ + /* 0x26A */ char pad_26A[0x78]; /* maybe part of unk_264[0x15]? */ + /* 0x2E2 */ Vec3s unk_2E2; /* inferred */ + /* 0x2E8 */ char pad_2E8[0x78]; /* maybe part of unk_2E2[0x15]? */ + /* 0x360 */ u16 unk_360; /* inferred */ + /* 0x362 */ char pad_362[2]; /* inferred */ + /* 0x364 */ s8 unk_364; /* inferred */ + /* 0x365 */ char pad_365[3]; /* maybe part of unk_364[4]? */ + /* 0x368 */ f32 unk_368; /* inferred */ + /* 0x36C */ char pad_36C[8]; /* maybe part of unk_368[3]? */ + /* 0x374 */ f32 unk_374; /* inferred */ + /* 0x378 */ char pad_378[4]; /* inferred */ + /* 0x37C */ s16 unk_37C; /* inferred */ + /* 0x37E */ s16 unk_37E; /* inferred */ + /* 0x380 */ char pad_380[4]; /* maybe part of unk_37E[3]? */ + /* 0x384 */ s16 unk_384; /* inferred */ + /* 0x386 */ char pad_386[2]; /* inferred */ + /* 0x388 */ s16 unk_388; /* inferred */ + /* 0x38A */ s16 unk_38A; /* inferred */ + /* 0x38C */ s16 unk_38C; /* inferred */ + /* 0x38E */ s16 unk_38E; /* inferred */ + /* 0x390 */ s16 unk_390; /* inferred */ + /* 0x392 */ s16 unk_392; /* inferred */ + /* 0x394 */ char pad_394[4]; /* maybe part of unk_392[3]? */ + /* 0x398 */ void* unk_398; /* inferred */ + /* 0x39C */ s32 unk_39C; /* inferred */ + /* 0x3A0 */ char pad_3A0[0x10]; /* maybe part of unk_39C[5]? */ + /* 0x3B0 */ s32 unk_3B0; /* inferred */ + /* 0x3B4 */ s32 unk_3B4; /* inferred */ /* 0x3B8 */ s32 unk_3B8; - /* 0x3BC */ UNK_TYPE1 unk_3BC[0x3C8-0x3BC]; + /* 0x3BC */ char pad_3BC[4]; /* inferred */ + /* 0x3C0 */ s32 unk_3C0; /* inferred */ + /* 0x3C4 */ char pad_3C4[4]; /* inferred */ } EnAn; // size = 0x3C8 #endif // Z_EN_AN_H From f6daa5b5e4bc2e703e2fac36a6a6ff83b802f89a Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 23 Sep 2023 19:46:43 -0300 Subject: [PATCH 03/78] EnAn_Draw --- asdf.c | 2789 +++++++++++++++++++++++ src/overlays/actors/ovl_En_An/z_en_an.c | 113 +- src/overlays/actors/ovl_En_An/z_en_an.h | 6 +- tools/disasm/functions.txt | 2 +- 4 files changed, 2899 insertions(+), 11 deletions(-) create mode 100644 asdf.c diff --git a/asdf.c b/asdf.c new file mode 100644 index 000000000..fa7935258 --- /dev/null +++ b/asdf.c @@ -0,0 +1,2789 @@ +s32 func_80B53840(EnAn* arg0, PlayState* arg1); /* static */ +Actor* func_80B539CC(Actor* arg0, PlayState* arg1, u8 arg2, s16 arg3); /* static */ +struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1); /* static */ +s32 func_80B53BA8(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B53CE8(Actor* arg0, PlayState* arg1, s32 arg2, Actor*); /* static */ +void func_80B53ED4(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B53F84(EnAn* arg0); /* static */ +void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2); /* static */ +s32 func_80B54678(Actor* arg0, s16 arg1, s32); /* static */ +s16 func_80B546F4(Actor* arg0, s32 arg1); /* static */ +s16 func_80B54750(Actor* arg0, s32 arg1); /* static */ +s32 func_80B547C8(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B5492C(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B54A94(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B54BC4(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B54C5C(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B54D18(Actor* arg0, PlayState* arg1); /* static */ +?* func_80B54DF4(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B55180(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B552E4(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B553AC(void* arg0); /* static */ +void func_80B554E8(EnAn* arg0); /* static */ +? func_80B555C8(Actor* arg0, PlayState* arg1); /* static */ +void func_80B556F8(Actor* arg0, PlayState* arg1); /* static */ +void func_80B557AC(Actor* arg0, PlayState* arg1); /* static */ +void func_80B55860(Actor* arg0, PlayState* arg1); /* static */ +? func_80B55914(EnAn* arg0, PlayState* arg1); /* static */ +Actor* func_80B55D20(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4); /* static */ +s32 func_80B55ECC(Actor* arg0); /* static */ +s32 func_80B55F8C(PlayState* arg0); /* static */ +s32 func_80B5600C(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B56094(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B5611C(Actor* arg0, PlayState* arg1); /* static */ +s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2); /* static */ +s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2); /* static */ +s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56BC0(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56CAC(Actor* arg0, PlayState* arg1, ? arg2); /* static */ +s32 func_80B56D28(EnAn* arg0, u8* arg2, u8*); /* static */ +? func_80B56E44(Actor* arg0, ? arg1); /* static */ +? func_80B56EB4(Actor* arg0, PlayState* arg1); /* static */ +? func_80B5702C(Actor* arg0, PlayState* arg1); /* static */ +? func_80B572D4(Actor* arg0, PlayState* arg1); /* static */ +? func_80B573F4(Actor* arg0, PlayState* arg1); /* static */ +? func_80B575BC(Actor* arg0, ? arg1); /* static */ +? func_80B57674(Actor* arg0, ? arg1); /* static */ +void func_80B57718(Actor* arg0, PlayState*); /* static */ +void func_80B57B48(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B57EE8(GraphicsContext** arg0, s32 arg1, Gfx** arg2, Vec3s* arg3, Actor* arg4); /* static */ +void func_80B57FC4(PlayState* arg0, s32 arg1, Actor* arg2); /* static */ +void func_80B580C0(Actor* this, PlayState* play); /* static */ +extern ? D_06000308; +extern ? D_06000378; +extern ? D_06000E70; +extern ? D_06012478; +extern ? D_0A000D40; +extern u8 D_80B581D0; +extern ? D_80B58618; +extern ? D_80B58718; +extern ? D_80B58784; +extern ? D_80B58808; +extern ? D_80B5885C; +extern ? D_80B58938; +extern ? D_80B58944; +extern ? D_80B5894C; +extern ? D_80B58954; +extern ? D_80B58980; +extern ? D_80B58988; +extern ? D_80B58994; +extern ? D_80B5899C; +extern ? D_80B589AC; +extern ? D_80B589FC; +extern ? D_80B58A04; +extern ? D_80B58A24; +extern ? D_80B58A3C; +extern ? D_80B58A44; +extern ? D_80B58ABC; +extern ? D_80B58AC4; +extern ? D_80B58AE8; +extern ? D_80B58AF4; +extern ? D_80B58B3C; +extern ? D_80B58B7C; +extern ? D_80B58B88; +extern ? D_80B58B90; +extern AnimationInfoS D_80B58BF4; +extern Vec3f D_80B58E34; +extern ? D_80B58E40; +extern Vec3f D_80B58E54; +extern Vec3s D_80B58E60; +extern Vec3f D_80B58E68; +extern Vec3s D_80B58E74; +extern Vec3f D_80B58E7C; +extern Vec3s D_80B58E88; +extern Vec3f D_80B58E90; +extern Vec3s D_80B58E9C; +extern Vec3s D_80B58EA4; +extern ? D_80B58EAC; +extern Vec3f D_80B58ED4; +extern ? D_80B58EE0; +extern ? D_80B58EEC; + +void EnAn_Destroy(Actor* thisx, PlayState* play) { + EnAn* this = (EnAn* ) thisx; + Collider_DestroyCylinder(play, &this->unk_190); +} + +void EnAn_Init(Actor* thisx, PlayState* play) { + s32 sp1C; + s32 temp_v0; + s32 temp_v1; + EnAn* this = (EnAn* ) thisx; + + if (play->sceneId != 0x61) { + this->actor.params &= 0x7FFF; + } + temp_v0 = gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40; + temp_v1 = (s32) (this->actor.params & 0x8000) >> 0xF; + if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { + Actor_Kill(&this->actor); + return; + } + if (temp_v1 == 0) { + sp1C = temp_v1; + if (func_80B53A7C(this, play, 4U, 0x202) != NULL) { + Actor_Kill(&this->actor); + return; + } + } + this->unk_214 = -0x80; + this->unk_3B8 = 0; + if (temp_v1 == 0) { + this->actor.room = -1; + } + this->actionFunc = func_80B577F0; +} + +void EnAn_Update(Actor* thisx, PlayState* play) { + EnAn* this = (EnAn* ) thisx; + if (func_80B53840(this, play) == 0) { + if ((func_80B577F0 != this->actionFunc) && (func_80B55180(this, play) == 0) && (func_80B552E4(this, play) != 0)) { + func_80B57B48(this, play); + func_80B53BA8(this, play); + func_80B53F84(this); + return; + } + this->actionFunc(this, play); + if ((u8) this->unk_1DC[0x24] != 0) { + func_80B55914(this, play); + func_80B53BA8(this, play); + func_80B53F84(this); + func_80B554E8(this); + SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & 7); + if (!(this->unk_360 & 0x40)) { + Actor_MoveWithGravity(&this->actor); + Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4U); + } + func_80B53ED4(this, play); + } + } +} + +s32 func_80B53840(EnAn* arg0, PlayState* arg1) { + s32 sp24; + void* sp20; + s8 temp_a0; + s8 temp_a0_2; + s8 temp_a0_3; + s8 temp_a0_4; + s8 temp_a0_5; + + sp24 = 0; + if ((arg1->roomCtx.curRoom.num != arg0->unk_214) && (arg1->roomCtx.status == 0) && (arg0->unk_3B8 == 0)) { + sp20 = arg1 + 0x18000; + arg0->unk_1DC[0x30] = SubS_GetObjectIndex(0x16, arg1); + arg0->unk_1DC[0x2F] = SubS_GetObjectIndex(0x1A, arg1); + arg0->unk_1DC[0x2E] = SubS_GetObjectIndex(0x1FF, arg1); + arg0->unk_1DC[0x2D] = SubS_GetObjectIndex(0xDD, arg1); + arg0->unk_1DC[0x2C] = SubS_GetObjectIndex(0xE0, arg1); + arg0->actor.draw = NULL; + arg0->unk_3B8 = 1; + arg0->unk_214 = sp20->unk_6E0; + } + if (arg0->unk_3B8 == 0) { + return 0; + } + temp_a0 = arg0->unk_1DC[0x2C]; + if (((temp_a0 >= 0) && (SubS_IsObjectLoaded(temp_a0, arg1) == 0)) || ((temp_a0_2 = arg0->unk_1DC[0x2D], (temp_a0_2 >= 0)) && (SubS_IsObjectLoaded(temp_a0_2, arg1) == 0)) || ((temp_a0_3 = arg0->unk_1DC[0x2E], (temp_a0_3 >= 0)) && (SubS_IsObjectLoaded(temp_a0_3, arg1) == 0)) || ((temp_a0_4 = arg0->unk_1DC[0x2F], (temp_a0_4 >= 0)) && (SubS_IsObjectLoaded(temp_a0_4, arg1) == 0)) || ((temp_a0_5 = arg0->unk_1DC[0x30], (temp_a0_5 >= 0)) && (SubS_IsObjectLoaded(temp_a0_5, arg1) == 0))) { + sp24 = 1; + } else { + arg0->actor.draw = func_80B580C0; + arg0->unk_3B8 = 0; + } + return sp24; +} + +Actor* func_80B539CC(Actor* arg0, PlayState* arg1, u8 arg2, s16 arg3) { + Actor* temp_v0; + Actor* temp_v1; + Actor* var_s0; + Actor* var_s0_2; + + var_s0_2 = NULL; +loop_1: + temp_v0 = SubS_FindActor(arg1, var_s0_2, arg2 & 0xFF & 0xFF, arg3); + var_s0 = temp_v0; + if ((temp_v0 != NULL) && ((temp_v0 == arg0) || (temp_v0->update == NULL))) { + temp_v1 = temp_v0->next; + if (temp_v1 == NULL) { + var_s0 = NULL; + } else { + var_s0_2 = temp_v1; + goto loop_1; + } + } + return var_s0; +} + +Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { + Actor* temp_v0; + Actor* temp_v1; + Actor* var_s0; + Actor* var_s0_2; + + var_s0_2 = NULL; +loop_1: + temp_v0 = SubS_FindActor(play, var_s0_2, actorCategory & 0xFF & 0xFF, actorId); + var_s0 = temp_v0; + if ((temp_v0 != NULL) && ((temp_v0 == this) || (temp_v0->update == NULL) || (temp_v0->params & 0x8000))) { + temp_v1 = temp_v0->next; + if (temp_v1 == NULL) { + var_s0 = NULL; + } else { + var_s0_2 = temp_v1; + goto loop_1; + } + } + return var_s0; +} + +struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1) { + s32 var_a1; + + switch (arg1) { + case 0x1A: + case 0x1B: + var_a1 = 0xD; +block_7: + return SubS_FindDoor(arg0, var_a1); + case 0x21: + case 0x22: + case 0x25: + case 0x26: + var_a1 = 0xB; + goto block_7; + case 0x24: + var_a1 = 0x10; + goto block_7; + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x23: + case 0x27: + var_a1 = 0xE; + goto block_7; + default: + return NULL; + } +} + +s32 func_80B53BA8(EnAn* arg0, PlayState* arg1) { + s8 sp1F; + s32 temp_v0; + s32 var_t0; + s32 var_v1; + s32 var_v1_2; + s8 temp_a0; + s8 temp_a0_2; + s8 temp_a0_3; + s8 temp_a3; + + temp_v0 = arg0->unk_39C; + temp_a3 = arg0->actor.objBankIndex; + var_v1 = -1; + var_t0 = 0; + if (temp_v0 >= 0x19) { + temp_a0 = arg0->unk_1DC[0x2F]; + if (temp_a0 >= 0) { + var_v1_2 = temp_a0 << 0x18; + goto block_11; + } + } + if (temp_v0 >= 0x15) { + temp_a0_2 = arg0->unk_1DC[0x2D]; + if (temp_a0_2 >= 0) { + var_v1_2 = temp_a0_2 << 0x18; + goto block_11; + } + } + if (temp_v0 >= 0x11) { + temp_a0_3 = arg0->unk_1DC[0x2C]; + if (temp_a0_3 >= 0) { + var_v1_2 = temp_a0_3 << 0x18; + goto block_11; + } + } + if (temp_v0 < 0x11) { + var_v1_2 = temp_a3 << 0x18; +block_11: + var_v1 = var_v1_2 >> 0x18; + } + if (var_v1 < 0) { + return 0; + } + if (var_v1 >= 0) { + *(gSegments + 0x18) = (arg1 + (var_v1 * 0x44))->unk_17D98 + 0x80000000; + arg0->unk_160 = (f32) arg0->unk_368; + sp1F = temp_a3; + var_t0 = SkelAnime_Update(arg0 + 0x144); + *(gSegments + 0x18) = (arg1 + (temp_a3 * 0x44))->unk_17D98 + 0x80000000; + } + return var_t0; +} + +s32 func_80B53CE8(Actor* arg0, PlayState* arg1, s32 arg2) { + s8 sp1F; + s32 temp_v0_4; + s32 temp_v0_5; + s32 temp_v0_6; + s32 temp_v0_7; + s32 var_t0; + s32 var_t2; + s32 var_v1; + s32 var_v1_2; + s8 temp_t1; + s8 temp_v0; + s8 temp_v0_2; + s8 temp_v0_3; + + temp_t1 = arg0->objBankIndex; + var_v1 = -1; + var_t0 = 0; + var_t2 = 0; + if (arg2 >= 0x19) { + temp_v0 = arg0->unk_20B; + if (temp_v0 >= 0) { + var_v1_2 = temp_v0 << 0x18; + goto block_11; + } + } + if (arg2 >= 0x15) { + temp_v0_2 = arg0->unk_209; + if (temp_v0_2 >= 0) { + var_v1_2 = temp_v0_2 << 0x18; + goto block_11; + } + } + if (arg2 >= 0x11) { + temp_v0_3 = arg0->unk_208; + if (temp_v0_3 >= 0) { + var_v1_2 = temp_v0_3 << 0x18; + goto block_11; + } + } + if (arg2 < 0x11) { + var_v1_2 = temp_t1 << 0x18; +block_11: + var_v1 = var_v1_2 >> 0x18; + } + if (var_v1 < 0) { + return 0; + } + switch (arg2) { + case 0x1: + case 0x2: + temp_v0_4 = arg0->unk_39C; + if ((temp_v0_4 != 1) && (temp_v0_4 != 2)) { +block_26: + var_t0 = 1; + } + break; + case 0x7: + case 0x8: + temp_v0_5 = arg0->unk_39C; + if ((temp_v0_5 != 7) && (temp_v0_5 != 8)) { + goto block_26; + } + break; + case 0x9: + case 0xA: + temp_v0_6 = arg0->unk_39C; + if ((temp_v0_6 != 9) && (temp_v0_6 != 0xA)) { + goto block_26; + } + break; + default: + if (arg2 != arg0->unk_39C) { + goto block_26; + } + break; + } + if ((var_t0 != 0) && (var_v1 >= 0)) { + *(gSegments + 0x18) = (arg1 + (var_v1 * 0x44))->unk_17D98 + 0x80000000; + arg0->unk_39C = arg2; + sp1F = temp_t1; + temp_v0_7 = SubS_ChangeAnimationByInfoS(arg0 + 0x144, &D_80B58BF4, arg2); + arg0->unk_368 = (f32) arg0->unk_160; + var_t2 = temp_v0_7; + *(gSegments + 0x18) = (arg1 + (temp_t1 * 0x44))->unk_17D98 + 0x80000000; + } + return var_t2; +} + +void func_80B53ED4(Actor* arg0, PlayState* arg1) { + Vec3f sp24; + ColliderCylinder* sp20; + ColliderCylinder* temp_a2; + ColliderCylinder* var_a2; + + temp_a2 = arg0 + 0x190; + if (arg0->unk_200 == 0x19) { + Lib_Vec3f_TranslateAndRotateY(arg0 + 0x24, arg0->shape.rot.y, &D_80B58E34, &sp24); + arg0->unk_1D0 = 0x14; + Math_Vec3f_ToVec3s(arg0 + 0x1D6, &sp24); + var_a2 = arg0 + 0x190; + } else { + sp20 = temp_a2; + Collider_UpdateCylinder(arg0, temp_a2); + var_a2 = temp_a2; + } + arg0->unk_1D2 = (s16) (s32) (arg0->focus.pos.y - arg0->world.pos.y); + CollisionCheck_SetOC(arg1, arg1 + 0x18884, &var_a2->base); +} + +void func_80B53F84(EnAn* arg0) { + s16 temp_t9; + s16 temp_v0; + s16 temp_v0_2; + s16 temp_v0_3; + s16 temp_v0_4; + s16 temp_v0_5; + s16 temp_v0_6; + s16 var_v1; + s32 var_a1; + + var_a1 = 0; + if (arg0->unk_360 & 0x100) { + temp_v0 = arg0->unk_38E; + if (temp_v0 == 0) { + var_v1 = 0; + } else { + arg0->unk_38E = (s16) (temp_v0 - 1); + var_v1 = arg0->unk_38E; + } + if (var_v1 == 0) { + temp_t9 = arg0->unk_38C; + switch (temp_t9) { + case 0x2: + case 0x4: + case 0x6: + temp_v0_2 = arg0->unk_390; + if ((temp_v0_2 == 5) || (temp_v0_2 == 2)) { + var_a1 = 1; + arg0->unk_390 = 5; + } + break; + case 0x5: + case 0x7: + temp_v0_3 = arg0->unk_390; + if ((temp_v0_3 == 6) || (temp_v0_3 == 1)) { + var_a1 = 1; + arg0->unk_390 = 6; + } + break; + case 0x8: + temp_v0_4 = arg0->unk_390; + if ((temp_v0_4 == 4) || (temp_v0_4 == 2)) { + var_a1 = 1; + arg0->unk_390 = 4; + } + break; + } + if (var_a1 == 0) { + temp_v0_5 = arg0->unk_390; + if ((temp_v0_5 == 4) || (temp_v0_5 == 5)) { + arg0->unk_390 = 0; + } else if (temp_v0_5 == 6) { + arg0->unk_390 = 1; + } + } + if (var_a1 == 0) { + arg0->unk_390 = (s16) (arg0->unk_390 + 1); + if (arg0->unk_390 >= 4) { + temp_v0_6 = arg0->unk_38C; + if ((temp_v0_6 == 0) || (temp_v0_6 == 1) || (temp_v0_6 == 3)) { + arg0->unk_38E = Rand_S16Offset(0x1E, 0x1E); + } else { + arg0->unk_38E = 8; + } + arg0->unk_390 = 0; + } + } + } + } + arg0->unk_392 = (s16) *(&D_80B58E40 + (arg0->unk_38C * 2)); +} + +void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2) { + s8 sp53; + s8 sp52; + GraphicsContext* sp4C; + void* sp44; + void* sp40; + GraphicsContext* temp_t0; + s8 temp_a2; + s8 temp_a2_2; + s8 temp_a2_3; + s8 temp_a2_4; + void* temp_v0; + void* temp_v0_10; + void* temp_v0_11; + void* temp_v0_12; + void* temp_v0_13; + void* temp_v0_14; + void* temp_v0_15; + void* temp_v0_16; + void* temp_v0_17; + void* temp_v0_18; + void* temp_v0_2; + void* temp_v0_3; + void* temp_v0_4; + void* temp_v0_5; + void* temp_v0_6; + void* temp_v0_7; + void* temp_v0_8; + void* temp_v0_9; + + sp53 = arg0->objBankIndex; + temp_t0 = *arg1; + sp4C = temp_t0; + Matrix_Push(); + switch (arg2) { + case 0x0: + if ((arg0->unk_360 & 0x800) && (arg0->unk_3B0 == 0)) { + arg0->unk_3A8 = (u32) (arg0->unk_3A8 + 1); + arg0->unk_3AC = (u32) (arg0->unk_3AC - 2); + sp4C = temp_t0; + Gfx_SetupDL25_Xlu(*arg1); + temp_v0 = temp_t0->polyXlu.tha.head; + temp_t0->polyXlu.tha.head = temp_v0 + 8; + *temp_v0 = 0xDA380003; + sp4C = temp_t0; + sp44 = temp_v0; + sp44->unk_4 = Matrix_NewMtx(*arg1); + temp_v0_2 = temp_t0->polyXlu.tha.head; + temp_t0->polyXlu.tha.head = temp_v0_2 + 8; + *temp_v0_2 = 0xDB060020; + sp4C = temp_t0; + sp40 = temp_v0_2; + sp40->unk_4 = Gfx_TwoTexScroll(*arg1, 0, arg0->unk_3A8, 0U, 0x10, 0x10, 1, 0U, arg0->unk_3AC, 0x10, 0x10); + temp_v0_3 = temp_t0->polyXlu.tha.head; + temp_t0->polyXlu.tha.head = temp_v0_3 + 8; + temp_v0_3->unk_0 = 0xDE000000; + temp_v0_3->unk_4 = &D_060111E8; + Gfx_SetupDL25_Opa(*arg1); + } + break; + case 0x1: + temp_a2 = arg0->unk_20A; + if ((arg0->unk_360 & 0x4000) && (arg0->unk_3B0 == 0) && (temp_a2 >= 0)) { + temp_v0_4 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_4 + 8; + temp_v0_4->unk_0 = 0xDB060028; + temp_v0_4->unk_4 = (?* ) (arg1 + (temp_a2 * 0x44))->unk_17D98; + sp4C = temp_t0; + Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); + temp_v0_5 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_5 + 8; + temp_v0_5->unk_0 = 0xDA380003; + sp4C = temp_t0; + temp_v0_5->unk_4 = Matrix_NewMtx(*arg1); + temp_v0_6 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_6 + 8; + temp_v0_6->unk_0 = 0xDE000000; + temp_v0_6->unk_4 = &D_0A000D40; + temp_v0_7 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_7 + 8; + temp_v0_7->unk_0 = 0xDB060018; + temp_v0_7->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + } + break; + case 0x2: + temp_a2_2 = arg0->unk_208; + if ((arg0->unk_360 & 0x1000) && (arg0->unk_3B0 == 0) && (temp_a2_2 >= 0)) { + temp_v0_8 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_8 + 8; + temp_v0_8->unk_0 = 0xDB060018; + temp_v0_8->unk_4 = (?* ) (arg1 + (temp_a2_2 * 0x44))->unk_17D98; + temp_v0_9 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_9 + 8; + temp_v0_9->unk_4 = &D_06000378; + temp_v0_9->unk_0 = 0xDE000000; + temp_v0_10 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_10 + 8; + temp_v0_10->unk_0 = 0xDB060018; + temp_v0_10->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + } + break; + case 0x3: + temp_a2_3 = arg0->unk_209; + if ((arg0->unk_360 & 0x2000) && (arg0->unk_3B0 == 0) && (temp_a2_3 >= 0)) { + temp_v0_11 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_11 + 8; + temp_v0_11->unk_0 = 0xDB060018; + temp_v0_11->unk_4 = (?* ) (arg1 + (temp_a2_3 * 0x44))->unk_17D98; + temp_v0_12 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_12 + 8; + temp_v0_12->unk_4 = &D_06000308; + temp_v0_12->unk_0 = 0xDE000000; + temp_v0_13 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_13 + 8; + temp_v0_13->unk_0 = 0xDB060018; + temp_v0_13->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + } + break; + case 0x4: + if ((arg0->unk_360 & 0x8000) && (arg0->unk_3B0 == 0)) { + temp_v0_14 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_14 + 8; + temp_v0_14->unk_4 = &D_06012478; + temp_v0_14->unk_0 = 0xDE000000; + } + break; + case 0x5: + temp_a2_4 = arg0->unk_20C; + if ((arg0->unk_3B4 != 0) && (temp_a2_4 >= 0)) { + sp52 = temp_a2_4; + sp4C = temp_t0; + Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); + temp_v0_15 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_15 + 8; + temp_v0_15->unk_0 = 0xDA380003; + sp4C = temp_t0; + sp52 = temp_a2_4; + temp_v0_15->unk_4 = Matrix_NewMtx(*arg1); + temp_v0_16 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_16 + 8; + temp_v0_16->unk_0 = 0xDB060018; + temp_v0_16->unk_4 = (?* ) (arg1 + (temp_a2_4 * 0x44))->unk_17D98; + temp_v0_17 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_17 + 8; + temp_v0_17->unk_4 = &D_06000E70; + temp_v0_17->unk_0 = 0xDE000000; + temp_v0_18 = temp_t0->polyOpa.tha.head; + temp_t0->polyOpa.tha.head = temp_v0_18 + 8; + temp_v0_18->unk_0 = 0xDB060018; + temp_v0_18->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + } + break; + } + Matrix_Pop(); +} + +s32 func_80B54678(Actor* arg0, s16 arg1) { + s32 sp1C; + + sp1C = 0; + if (CutsceneManager_GetCurrentCsId() == 0x7C) { + CutsceneManager_Stop(0x7C); + CutsceneManager_Queue(arg1); + } else if (CutsceneManager_IsNext(arg1) != 0) { + CutsceneManager_StartWithPlayerCs(arg1, arg0); + sp1C = 1; + } else { + CutsceneManager_Queue(arg1); + } + return sp1C; +} + +s16 func_80B546F4(Actor* arg0, s32 arg1) { + s32 var_s0; + s8 var_s1; + + var_s1 = arg0->csId; + var_s0 = 0; + if (arg1 > 0) { + do { + var_s0 += 1; + var_s1 = (s8) CutsceneManager_GetAdditionalCsId((s16) var_s1); + } while (var_s0 != arg1); + } + return (s16) var_s1; +} + +s16 func_80B54750(Actor* arg0, s32 arg1) { + Actor* temp_v0; + s32 var_s0; + s8 var_s1; + + temp_v0 = arg0->child; + var_s1 = -1; + if (temp_v0 != NULL) { + var_s0 = 0; + if (temp_v0->update != NULL) { + var_s1 = temp_v0->csId; + if (arg1 > 0) { + do { + var_s0 += 1; + var_s1 = (s8) CutsceneManager_GetAdditionalCsId((s16) var_s1); + } while (var_s0 != arg1); + } + } + } + return (s16) var_s1; +} + +s32 func_80B547C8(Actor* arg0, PlayState* arg1) { + s16 sp2A; + s32 sp24; + Actor* temp_v0; + s16 temp_a0; + s16 temp_a1; + s32 var_v1; + + temp_a0 = arg0->unk_394; + temp_a1 = func_80B546F4(arg0, 0); + var_v1 = 0; + switch (temp_a0) { + case 0x0: + sp24 = 0; + sp2A = temp_a1; + var_v1 = 0; + if (func_80B54678(arg0, temp_a1) != 0) { + case 0x2: + case 0x4: + case 0x6: + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); + var_v1 = 1; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + } + break; + case 0x1: + case 0x3: + case 0x5: + if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (temp_a0 == 3)) { + CutsceneManager_Stop(temp_a1); + } else { + temp_v0 = arg0->child; + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); + } + } + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + var_v1 = 1; + break; + case 0x7: + CutsceneManager_Stop(temp_a1); + var_v1 = 1; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + break; + } + return var_v1; +} + +s32 func_80B5492C(Actor* arg0, PlayState* arg1) { + s16 sp2A; + s32 sp24; + Actor* temp_v0; + s16 temp_a1; + s16 temp_v1; + s32 var_a2; + + temp_v1 = arg0->unk_394; + temp_a1 = func_80B546F4(arg0, 0); + var_a2 = 0; + switch (temp_v1) { + case 0x0: + sp2A = temp_a1; + sp24 = 0; + var_a2 = 0; + if (func_80B54678(arg0, temp_a1, 0) != 0) { + case 0x2: + case 0x4: + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); + var_a2 = 1; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + } + break; + case 0x1: + case 0x3: + if (!(gSaveContext.save.saveInfo.weekEventReg[0x4B] & 0x10) && (temp_v1 == 3)) { + CutsceneManager_Stop(temp_a1); + arg0->unk_394 = 5; + } else { + temp_v0 = arg0->child; + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); + } + } + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + var_a2 = 1; + break; + case 0x5: + CutsceneManager_Stop(temp_a1); + var_a2 = 1; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + break; + } + return var_a2; +} + +s32 func_80B54A94(Actor* arg0, PlayState* arg1) { + s16 sp2A; + s32 sp24; + Actor* temp_v0; + s16 temp_a1; + s32 var_v1; + u16 temp_t6; + + temp_t6 = arg0->unk_394; + temp_a1 = func_80B54750(arg0, 0); + var_v1 = 0; + switch (temp_t6) { + case 0x0: + sp24 = 0; + sp2A = temp_a1; + var_v1 = 0; + if (func_80B54678(arg0, temp_a1) != 0) { + case 0x2: + case 0x4: + case 0x6: + case 0x8: + temp_v0 = arg0->child; + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); + } + var_v1 = 1; + arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); + } + break; + case 0x1: + case 0x3: + case 0x5: + case 0x7: + Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); + var_v1 = 1; + arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); + break; + case 0x9: + CutsceneManager_Stop(temp_a1); + var_v1 = 1; + arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); + break; + } + return var_v1; +} + +s32 func_80B54BC4(Actor* arg0, PlayState* arg1) { + if (arg0->unk_394 == 0) { + func_800B7298(arg1, arg0, 7U); + arg1->nextEntrance = 0xBC30; + gSaveContext.nextCutsceneIndex = 0; + arg1->transitionTrigger = 0x14; + arg1->transitionType = 2; + gSaveContext.nextTransitionType = 6; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + } + return 0; +} + +s32 func_80B54C5C(Actor* arg0) { + s32 sp20; + s16 temp_v0; + + sp20 = 0; + temp_v0 = arg0->unk_394; + switch (temp_v0) { /* irregular */ + case 0x0: + func_80B53CE8(arg0, (PlayState* )0xD); + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + break; + case 0x1: + case 0x3: + if (Animation_OnFrame(arg0 + 0x144, arg0->unk_154) != 0) { + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + sp20 = 1; + } + break; + case 0x2: + func_80B53CE8(arg0, (PlayState* )0xE); + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + break; + } + return sp20; +} + +s32 func_80B54D18(Actor* arg0, PlayState* arg1) { + s16 temp_v0; + s32 var_v1; + u16 temp_t6; + + temp_v0 = arg0->unk_394; + var_v1 = 0; + switch (temp_v0) { /* irregular */ + case 0x0: + if ((Player_GetMask(arg1) == 2) || (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + case 0x1: + temp_t6 = arg0->unk_360 & 0xBFDF; + arg0->unk_360 = temp_t6; + arg0->unk_360 = (u16) (temp_t6 | 0x200); + func_80B53CE8(arg0, arg1, 0x14, arg0); + var_v1 = 1; + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + } else { + var_v1 = 1; + arg0->unk_360 = (u16) (arg0->unk_360 | 0x4000); + arg0->unk_394 = (s16) (arg0->unk_394 + 1); + } + break; + } + return var_v1; +} + +?* func_80B54DF4(Actor* arg0, PlayState* arg1) { + Actor* sp1C; + Actor* temp_v1; + u8 temp_a0; + u8 temp_t3; + u8 temp_v0; + u8 temp_v0_2; + u8 temp_v0_3; + + temp_v0 = arg0->unk_200; + temp_v1 = arg1->actorCtx.actorLists[2].first; + switch (temp_v0) { /* switch 1 */ + case 0x15: /* switch 1 */ + arg0->unk_398 = func_80B54A94; + return &D_80B58808; + case 0x10: /* switch 1 */ + arg0->unk_398 = func_80B547C8; + return &D_80B58718; + case 0x11: /* switch 1 */ + arg0->unk_398 = func_80B5492C; + return &D_80B58784; + case 0xE: /* switch 1 */ + arg0->unk_398 = func_80B54C5C; + return &D_80B58954; + case 0xC: /* switch 1 */ + return &D_80B5899C; + case 0x19: /* switch 1 */ + return &D_80B58B90; + default: /* switch 1 */ + if (temp_v1->unk_14B == 3) { + if ((s32) temp_v0 >= 4) { + switch (temp_v0) { /* switch 2 */ + case 0x28: /* switch 2 */ + case 0x2A: /* switch 2 */ + case 0x2B: /* switch 2 */ + case 0x2C: /* switch 2 */ + case 0x2D: /* switch 2 */ + case 0x2F: /* switch 2 */ + return &D_80B58B7C; + case 0x31: /* switch 2 */ + return &D_80B589FC; + default: /* switch 2 */ + return &D_80B58A04; + } + } else { + switch (temp_v0) { /* switch 4; irregular */ + case 0x1: /* switch 4 */ + return &D_80B58AE8; + case 0x3: /* switch 4 */ + return &D_80B58A24; + default: /* switch 4 */ + return &D_80B58A04; + } + } + } else { + sp1C = temp_v1; + if (Player_GetMask(arg1) == 2) { + temp_v0_2 = arg0->unk_200; + if (temp_v0_2 == 0x31) { + return &D_80B58B88; + } + if (temp_v0_2 == 0x17) { + arg0->unk_398 = func_80B54BC4; + return &D_80B589AC; + } + if (temp_v0_2 == 3) { + arg0->unk_398 = func_80B54D18; + return &D_80B58B3C; + } + if (gSaveContext.save.day >= 2) { + return &D_80B58A44; + } + if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { + return &D_80B58ABC; + } + return &D_80B58AC4; + } + temp_a0 = temp_v1->unk_14B; + if ((temp_a0 == 4) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + temp_v0_3 = arg0->unk_200; + if (temp_v0_3 == 0x17) { + arg0->unk_398 = func_80B54BC4; + return &D_80B589AC; + } + if (temp_v0_3 == 3) { + arg0->unk_398 = func_80B54D18; + return &D_80B58AF4; + } + if (gSaveContext.save.day >= 2) { + return &D_80B58A44; + } + goto block_40; + } +block_40: + temp_t3 = arg0->unk_200; + switch (temp_t3) { /* switch 3 */ + case 0x1: /* switch 3 */ + return &D_80B58AE8; + case 0x28: /* switch 3 */ + return &D_80B5894C; + case 0x2A: /* switch 3 */ + case 0x2B: /* switch 3 */ + case 0x2C: /* switch 3 */ + case 0x2D: /* switch 3 */ + return &D_80B58980; + case 0x3: /* switch 3 */ + arg0->unk_398 = func_80B54D18; + return &D_80B58AF4; + case 0x12: /* switch 3 */ + if (gSaveContext.save.day >= 2) { + return &D_80B58A3C; + } + return &D_80B5885C; + case 0x13: /* switch 3 */ + case 0x2F: /* switch 3 */ + return &D_80B58938; + case 0x16: /* switch 3 */ + return &D_80B58988; + case 0x17: /* switch 3 */ + return &D_80B589FC; + case 0x30: /* switch 3 */ + return &D_80B58944; + case 0x31: /* switch 3 */ + if (temp_a0 == 4) { + return &D_80B58B88; + } + return &D_80B589FC; + case 0x34: /* switch 3 */ + case 0x35: /* switch 3 */ + return &D_80B58994; + default: /* switch 3 */ + return NULL; + } + } + break; + } +} + +s32 func_80B55180(Actor* arg0, GameState* arg1) { + s32 sp1C; + s32 var_v1; + u8 temp_v1; + + var_v1 = 0; + if (arg0->unk_360 & 7) { + sp1C = 0; + var_v1 = sp1C; + if (Actor_ProcessTalkRequest(arg0, arg1) != 0) { + SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); + arg0->unk_3C4 = 0; + arg0->unk_394 = 0; + arg0->unk_398 = 0; + arg0->child = arg0->unk_218; + temp_v1 = arg0->unk_200; + arg0->unk_204 = func_80B54DF4(arg0, (PlayState* ) arg1); + if ((temp_v1 == 1) || (temp_v1 == 3) || (temp_v1 == 0x12) || (temp_v1 == 0x13) || (temp_v1 == 0x17) || (temp_v1 == 0x16) || (temp_v1 == 0x28) || (temp_v1 == 0x2A) || (temp_v1 == 0x2B) || (temp_v1 == 0x2C) || (temp_v1 == 0x2D) || (temp_v1 == 0x2F) || (temp_v1 == 0x30) || (temp_v1 == 0x31) || (temp_v1 == 0x34) || (temp_v1 == 0x35)) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + } + if ((arg0->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + } + arg0->unk_188 = func_80B57A44; + var_v1 = 1; + } + } + return var_v1; +} + +s32 func_80B552E4(EnAn* arg0, PlayState* arg1) { + s32 var_v1; + u16 temp_v0; + + temp_v0 = arg1->csCtx.scriptIndex; + var_v1 = 0; + if ((arg1->csCtx.state != 0) && (arg1->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { + if (arg0->unk_3B0 == 0) { + arg0->unk_38A = 0; + arg0->unk_38C = 0; + arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + arg0->unk_38E = 8; + arg0->unk_218[0x14C] = -1; + arg0->unk_3B0 = 1; + arg0->unk_3B4 = 0; + } + var_v1 = 1; + } else if (arg0->unk_3B0 != 0) { + arg0->unk_3B0 = 0; + arg0->unk_3B4 = 0; + arg0->unk_3C0 = 1; + arg0->actionFunc = func_80B578F8; + arg0->actor.room = arg1->roomCtx.curRoom.num; + } + return var_v1; +} + +void func_80B553AC(void* arg0) { + Vec3f sp40; + Vec3f sp34; + s16 temp_v0; + s16 temp_v0_3; + s16 var_v1; + s16 var_v1_2; + void* temp_v0_2; + + Math_Vec3f_Copy(&sp40, arg0->unk_218 + 0x24); + Math_Vec3f_Copy(&sp34, arg0 + 0x24); + Math_ApproachS(arg0 + 0x37E, (s16) (Math_Vec3f_Yaw(&sp34, &sp40) - arg0->unk_BE), 4, 0x2AA8); + temp_v0 = arg0->unk_37E; + if (temp_v0 < -0x1FFE) { + arg0->unk_37E = -0x1FFE; + } else { + var_v1 = temp_v0; + if (temp_v0 >= 0x1FFF) { + var_v1 = 0x1FFE; + } + arg0->unk_37E = var_v1; + } + Math_Vec3f_Copy(&sp34, arg0 + 0x3C); + temp_v0_2 = arg0->unk_218; + if (temp_v0_2->unk_0 == 0) { + sp40.y = temp_v0_2->unk_C44 + 3.0f; + } else { + Math_Vec3f_Copy(&sp40, temp_v0_2 + 0x3C); + } + Math_ApproachS(arg0 + 0x37C, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); + temp_v0_3 = arg0->unk_37C; + if (temp_v0_3 < -0x1554) { + arg0->unk_37C = -0x1554; + return; + } + var_v1_2 = temp_v0_3; + if (temp_v0_3 >= 0x1555) { + var_v1_2 = 0x1554; + } + arg0->unk_37C = var_v1_2; +} + +void func_80B554E8(EnAn* arg0) { + s16 temp_v0_2; + s16 temp_v0_4; + s16 var_v1; + s16 var_v1_2; + u16 temp_t2; + u16 temp_v0_3; + void* temp_v0; + + if (arg0->unk_360 & 0x20) { + temp_v0 = arg0->unk_218; + if ((temp_v0 != NULL) && (temp_v0->unk_138 != 0)) { + temp_v0_2 = arg0->unk_388; + if (temp_v0_2 == 0) { + var_v1 = 0; + } else { + arg0->unk_388 = (s16) (temp_v0_2 - 1); + var_v1 = arg0->unk_388; + } + if (var_v1 == 0) { + func_80B553AC(); + temp_t2 = arg0->unk_360 & 0xFDFF; + arg0->unk_360 = temp_t2; + arg0->unk_360 = (u16) (temp_t2 | 0x80); + return; + } + goto block_8; + } + } +block_8: + temp_v0_3 = arg0->unk_360; + if (temp_v0_3 & 0x80) { + arg0->unk_360 = (u16) (temp_v0_3 & 0xFF7F); + arg0->unk_37C = 0; + arg0->unk_37E = 0; + arg0->unk_388 = 0x14; + return; + } + temp_v0_4 = arg0->unk_388; + if (temp_v0_4 == 0) { + var_v1_2 = 0; + } else { + arg0->unk_388 = (s16) (temp_v0_4 - 1); + var_v1_2 = arg0->unk_388; + } + if (var_v1_2 == 0) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x200); + } +} + +? func_80B555C8(Actor* arg0, PlayState* arg1) { + s32 var_v0; + u8 temp_t6; + + temp_t6 = arg0->unk_200; + switch (temp_t6) { + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x17: + func_80B53CE8((Actor* )1); + break; + case 0x16: + func_80B53CE8((Actor* )0x17); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x2000); + break; + case 0xE: + func_80B53CE8((Actor* )0xC); + break; + case 0x15: + func_80B53CE8((Actor* )0xF); + break; + case 0x2F: + case 0x31: + func_80B53CE8((Actor* )7); + break; + case 0x34: + case 0x35: + func_80B53CE8((Actor* )0x16); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x2000); + break; + default: + var_v0 = arg0->unk_39C; + if (var_v0 == 0xF) { + func_80B53CE8((Actor* )0x10); + var_v0 = arg0->unk_39C; + } + if (var_v0 == 0x11) { + func_80B53CE8(arg0, arg1, 0x12); + var_v0 = arg0->unk_39C; + } + if ((var_v0 == 1) || (var_v0 == 2)) { + func_80B53CE8(arg0, arg1, 8); + } + break; + } + return 0; +} + +void func_80B556F8(Actor* arg0, PlayState* arg1) { + s16 temp_v0; + u16 temp_t4; + u16 temp_t8; + + temp_v0 = arg0->unk_396; + if (temp_v0 == 0) { + func_80B53CE8(arg0, arg1, 6, (Actor* ) arg1); + temp_t8 = arg0->unk_360 & 0xFFDF; + arg0->unk_360 = temp_t8; + arg0->unk_360 = (u16) (temp_t8 | 0x200); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + return; + } + if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { + func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + temp_t4 = arg0->unk_360 & 0xFDFF; + arg0->unk_360 = temp_t4; + arg0->unk_360 = (u16) (temp_t4 | 0x20); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + } +} + +void func_80B557AC(Actor* arg0, PlayState* arg1) { + s16 temp_v0; + u16 temp_t4; + u16 temp_t8; + + temp_v0 = arg0->unk_396; + if (temp_v0 == 0) { + func_80B53CE8(arg0, arg1, 3, (Actor* ) arg1); + temp_t8 = arg0->unk_360 & 0xFFDF; + arg0->unk_360 = temp_t8; + arg0->unk_360 = (u16) (temp_t8 | 0x200); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + return; + } + if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { + func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + temp_t4 = arg0->unk_360 & 0xFDFF; + arg0->unk_360 = temp_t4; + arg0->unk_360 = (u16) (temp_t4 | 0x20); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + } +} + +void func_80B55860(Actor* arg0, PlayState* arg1) { + s16 temp_v0; + u16 temp_t4; + u16 temp_t8; + + temp_v0 = arg0->unk_396; + if (temp_v0 == 0) { + func_80B53CE8(arg0, arg1, 4, (Actor* ) arg1); + temp_t8 = arg0->unk_360 | 0x200; + arg0->unk_360 = temp_t8; + arg0->unk_360 = (u16) (temp_t8 & 0xFFDF); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + return; + } + if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { + func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + temp_t4 = arg0->unk_360 & 0xFDFF; + arg0->unk_360 = temp_t4; + arg0->unk_360 = (u16) (temp_t4 | 0x20); + arg0->unk_396 = (s16) (arg0->unk_396 + 1); + } +} + +? func_80B55914(Actor* arg0, Actor* arg1) { + u16 sp22; + s32 sp18; + s32 var_v0; + u16 temp_t3; + u16 temp_v0; + void (*temp_v0_2)(Actor*, PlayState*); + + sp22 = arg1->unk_1680C; + if (arg1->unk_1CCC->unk_A6C & 0x40) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x400); + sp18 = (s32) sp22; + if (sp22 != arg0->unk_362) { + if ((s32) sp22 >= 0x28F9) { + if (sp22 != 0x295E) { + goto block_23; + } + goto block_20; + } + switch (sp18) { /* switch 3; irregular */ + case 0x28E5: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )5); + arg0->unk_360 = (u16) (arg0->unk_360 & 0xDFFF); + break; + case 0x28BA: /* switch 3 */ + case 0x28D1: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )5); + break; + case 0x28AF: /* switch 3 */ + case 0x28C1: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )1); + break; + case 0x28BC: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )2); + break; + case 0x28C6: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )0xF); + break; + case 0x28F5: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )0xA); + break; + case 0x28F7: /* switch 3 */ + case 0x28F8: /* switch 3 */ + func_80B53CE8(arg1, (PlayState* )0x15); + break; + case 0x28EB: /* switch 3 */ + if (arg0->unk_39C != 0x14) { + temp_t3 = arg0->unk_360 & 0xBFDF; + arg0->unk_360 = temp_t3; + arg0->unk_360 = (u16) (temp_t3 | 0x200); + func_80B53CE8(arg1, (PlayState* )0x14); + } + break; + case 0x28A4: /* switch 3 */ + case 0x28A9: /* switch 3 */ + case 0x28BE: /* switch 3 */ + case 0x28C0: /* switch 3 */ +block_20: + arg0->unk_18C = func_80B556F8; + arg0->unk_396 = 0; + break; + case 0x28E6: /* switch 3 */ + arg0->unk_360 = (u16) (arg0->unk_360 & 0xDFFF); + arg0->unk_18C = func_80B55860; + arg0->unk_396 = 0; + break; + case 0x1885: /* switch 3 */ + case 0x28A0: /* switch 3 */ + case 0x28A3: /* switch 3 */ + case 0x28A5: /* switch 3 */ + case 0x28B1: /* switch 3 */ + case 0x28D2: /* switch 3 */ + case 0x28D9: /* switch 3 */ + case 0x28DC: /* switch 3 */ + case 0x28DE: /* switch 3 */ + arg0->unk_18C = func_80B557AC; + arg0->unk_396 = 0; + break; + case 0x28A1: /* switch 3 */ + case 0x28A2: /* switch 3 */ + case 0x28A6: /* switch 3 */ + case 0x28A7: /* switch 3 */ + case 0x28A8: /* switch 3 */ + case 0x28AA: /* switch 3 */ + case 0x28AB: /* switch 3 */ + case 0x28AC: /* switch 3 */ + case 0x28AD: /* switch 3 */ + case 0x28AE: /* switch 3 */ + case 0x28B0: /* switch 3 */ + case 0x28B2: /* switch 3 */ + case 0x28B3: /* switch 3 */ + case 0x28B4: /* switch 3 */ + case 0x28B5: /* switch 3 */ + case 0x28B6: /* switch 3 */ + case 0x28B7: /* switch 3 */ + case 0x28B8: /* switch 3 */ + case 0x28B9: /* switch 3 */ + case 0x28BB: /* switch 3 */ + case 0x28BD: /* switch 3 */ + case 0x28BF: /* switch 3 */ + case 0x28C2: /* switch 3 */ + case 0x28C3: /* switch 3 */ + case 0x28C4: /* switch 3 */ + case 0x28C5: /* switch 3 */ + case 0x28C7: /* switch 3 */ + case 0x28C8: /* switch 3 */ + case 0x28C9: /* switch 3 */ + case 0x28CA: /* switch 3 */ + case 0x28CB: /* switch 3 */ + case 0x28CC: /* switch 3 */ + case 0x28CD: /* switch 3 */ + case 0x28CE: /* switch 3 */ + case 0x28CF: /* switch 3 */ + case 0x28D0: /* switch 3 */ + case 0x28D3: /* switch 3 */ + case 0x28D4: /* switch 3 */ + case 0x28D5: /* switch 3 */ + case 0x28D6: /* switch 3 */ + case 0x28D7: /* switch 3 */ + case 0x28D8: /* switch 3 */ + case 0x28DA: /* switch 3 */ + case 0x28DB: /* switch 3 */ + case 0x28DD: /* switch 3 */ + case 0x28DF: /* switch 3 */ + case 0x28E0: /* switch 3 */ + case 0x28E1: /* switch 3 */ + case 0x28E2: /* switch 3 */ + case 0x28E3: /* switch 3 */ + case 0x28E4: /* switch 3 */ + case 0x28E7: /* switch 3 */ + case 0x28E8: /* switch 3 */ + case 0x28E9: /* switch 3 */ + case 0x28EA: /* switch 3 */ + case 0x28EC: /* switch 3 */ + case 0x28ED: /* switch 3 */ + case 0x28EE: /* switch 3 */ + case 0x28EF: /* switch 3 */ + case 0x28F0: /* switch 3 */ + case 0x28F1: /* switch 3 */ + case 0x28F2: /* switch 3 */ + case 0x28F3: /* switch 3 */ + case 0x28F4: /* switch 3 */ + case 0x28F6: /* switch 3 */ +block_23: + var_v0 = arg0->unk_39C; + if (var_v0 == 0x10) { + func_80B53CE8(arg1, (PlayState* )0xF); + var_v0 = arg0->unk_39C; + } + if (var_v0 == 0x12) { + func_80B53CE8(arg0, (PlayState* ) arg1, 0x11); + var_v0 = arg0->unk_39C; + } + if ((var_v0 == 0x16) || (var_v0 == 0x17)) { + func_80B53CE8(arg0, (PlayState* ) arg1, 0x15); + var_v0 = arg0->unk_39C; + } + if ((var_v0 == 7) || (var_v0 == (s32) 8)) { + func_80B53CE8(arg0, (PlayState* ) arg1, 2); + } + break; + } + switch (sp18) { /* switch 4; irregular */ + case 0x28F5: /* switch 4 */ + arg0->unk_38A = 0; + /* fallthrough */ + case 0x28A5: /* switch 4 */ + case 0x28AA: /* switch 4 */ + case 0x28F8: /* switch 4 */ + arg0->unk_38C = 0; +block_50: + arg0->unk_38E = 8; + break; + case 0x1885: /* switch 4 */ + case 0x28A0: /* switch 4 */ + case 0x28A6: /* switch 4 */ + case 0x28AF: /* switch 4 */ + case 0x28C1: /* switch 4 */ + arg0->unk_38C = 3; + goto block_50; + case 0x28A2: /* switch 4 */ + case 0x28B3: /* switch 4 */ + case 0x28B6: /* switch 4 */ + case 0x28BA: /* switch 4 */ + case 0x28BE: /* switch 4 */ + case 0x28CE: /* switch 4 */ + case 0x28D0: /* switch 4 */ + case 0x28D6: /* switch 4 */ + case 0x28E5: /* switch 4 */ + case 0x28E7: /* switch 4 */ + case 0x28ED: /* switch 4 */ + arg0->unk_38C = 1; + goto block_50; + case 0x28AD: /* switch 4 */ + arg0->unk_38C = 8; + goto block_50; + case 0x28C0: /* switch 4 */ + case 0x28D7: /* switch 4 */ + case 0x28DE: /* switch 4 */ + arg0->unk_38C = 2; + goto block_50; + case 0x28E6: /* switch 4 */ + case 0x28F7: /* switch 4 */ + arg0->unk_38C = 6; + goto block_50; + case 0x28A3: /* switch 4 */ + case 0x28B1: /* switch 4 */ + case 0x28B8: /* switch 4 */ + case 0x28C6: /* switch 4 */ + case 0x28CA: /* switch 4 */ + case 0x28CC: /* switch 4 */ + case 0x28D5: /* switch 4 */ + case 0x28E2: /* switch 4 */ + case 0x28E3: /* switch 4 */ + case 0x28E4: /* switch 4 */ + arg0->unk_38C = 4; + goto block_50; + case 0x28EC: /* switch 4 */ + arg0->unk_38A = 5; + /* fallthrough */ + case 0x28DC: /* switch 4 */ + case 0x28EB: /* switch 4 */ + case 0x28F2: /* switch 4 */ + case 0x28F9: /* switch 4 */ + arg0->unk_38C = 5; + goto block_50; + case 0x28F6: /* switch 4 */ + arg0->unk_38C = 9; + goto block_50; + case 0x28A4: /* switch 4 */ + case 0x28A9: /* switch 4 */ + arg0->unk_38C = 7; + goto block_50; + } + } + arg0->unk_362 = sp22; + } else { + temp_v0 = arg0->unk_360; + if (temp_v0 & 0x400) { + arg0->unk_18C = NULL; + arg0->unk_362 = 0U; + arg0->unk_360 = (u16) (temp_v0 & 0xFBFF); + arg0->unk_38E = 4; + arg0->unk_38C = (s16) arg0->unk_38A; + func_80B555C8(arg1); + } + } + temp_v0_2 = arg0->unk_18C; + if (temp_v0_2 != NULL) { + temp_v0_2(arg0, (PlayState* ) arg1); + } + return 0; +} + +Actor* func_80B55D20(EnAn* arg0, PlayState* arg1) { + Actor* var_v0; + Actor* var_v1; + u8 temp_v0; + + temp_v0 = arg0->unk_1DC[0x24]; + switch (temp_v0) { /* irregular */ + default: + var_v1 = arg1->actorCtx.actorLists[2].first; + break; + case 0x15: + var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x243); +block_7: + var_v1 = var_v0; + break; + case 0x10: + var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x1D5); + goto block_7; + case 0x11: + var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x276); + goto block_7; + } + return var_v1; +} + +s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { + u8 sp4F; + void* sp48; + Vec3f sp3C; + Vec3f sp30; + Actor* sp2C; + s32 sp24; + Actor* temp_v0; + Actor* var_v1; + Path* temp_v0_2; + s32 temp_a2; + void* temp_v0_3; + + sp24 = 0; + sp4F = (u8) arg0->params; + temp_v0 = func_80B539CC(arg0, arg1, arg3, arg4); + arg0->unk_1DC = NULL; + var_v1 = temp_v0; + temp_a2 = *(&D_80B58618 + (*arg2 * 4)); + if (temp_a2 >= 0) { + sp2C = temp_v0; + var_v1 = sp2C; + arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a2); + } + if ((var_v1 != NULL) && (var_v1->update != NULL)) { + temp_v0_2 = arg0->unk_1DC; + if (temp_v0_2 != NULL) { + temp_v0_3 = Lib_SegmentedToVirtual(temp_v0_2->points); + sp48 = temp_v0_3; + Math_Vec3s_ToVec3f(&sp3C, ((arg0->unk_1DC->count * 6) + temp_v0_3) - 0xC); + Math_Vec3s_ToVec3f(&sp30, ((arg0->unk_1DC->count * 6) + sp48) - 6); + arg0->shape.shadowDraw = NULL; + arg0->world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); + Math_Vec3f_Copy(&arg0->world.pos, &sp30); + sp24 = 1; + } + } + return sp24; +} + +s32 func_80B55ECC(Actor* arg0) { + s32 sp1C; + f32 var_fv0; + s16 temp_v0; + s16 var_v1; + s32 var_t0; + + if (arg0->unk_3BC != 0) { + var_fv0 = 150.0f; + } else { + var_fv0 = 100.0f; + } + sp1C = 0; + var_t0 = 0; + if (Actor_IsFacingAndNearPlayer(arg0, var_fv0, 0x2800) != 0) { + var_t0 = 1; + } + temp_v0 = arg0->unk_386; + if (temp_v0 == 0) { + var_v1 = 0; + } else { + arg0->unk_386 = (s16) (temp_v0 - 1); + var_v1 = arg0->unk_386; + } + if (var_v1 == 0) { + arg0->unk_3BC = (s32) (arg0->unk_3BC ^ 1); + sp1C = var_t0; + arg0->unk_386 = Rand_S16Offset(0x3C, 0x3C); + } + return var_t0; +} + +s32 func_80B55F8C(PlayState* arg0) { + Actor* sp1C; + s32 sp18; + s32 var_v1; + + sp18 = 0; + sp1C = arg0->actorCtx.actorLists[2].first; + var_v1 = sp18; + if ((Player_GetMask(arg0) == 2) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + goto block_5; + } + if ((sp1C->unk_14B == 4) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { +block_5: + var_v1 = 1; + } + return var_v1; +} + +s32 func_80B5600C(Actor* arg0, PlayState* arg1) { + s32 sp2C; + s32 var_v1; + u16 temp_t9; + + sp2C = 0; + var_v1 = sp2C; + if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x1D5) != 0) { + func_80B53CE8(arg0, arg1, 1); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + var_v1 = 1; + temp_t9 = arg0->unk_360 | 0x120; + arg0->unk_360 = temp_t9; + arg0->unk_360 = (u16) (temp_t9 | 0x200); + } + return var_v1; +} + +s32 func_80B56094(Actor* arg0, PlayState* arg1) { + s32 sp2C; + s32 var_v1; + u16 temp_t9; + + sp2C = 0; + var_v1 = sp2C; + if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x276) != 0) { + func_80B53CE8(arg0, arg1, 1); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + var_v1 = 1; + temp_t9 = arg0->unk_360 | 0x120; + arg0->unk_360 = temp_t9; + arg0->unk_360 = (u16) (temp_t9 | 0x200); + } + return var_v1; +} + +s32 func_80B5611C(Actor* arg0, PlayState* arg1) { + s32 sp2C; + s32 var_v1; + u16 temp_t9; + + sp2C = 0; + var_v1 = sp2C; + if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x243) != 0) { + func_80B53CE8(arg0, arg1, 0xF); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + var_v1 = 1; + temp_t9 = arg0->unk_360 | 0x120; + arg0->unk_360 = temp_t9; + arg0->unk_360 = (u16) (temp_t9 | 0xA00); + } + return var_v1; +} + +s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { + u16 sp56; + u8 sp55; + struct EnDoor* sp50; + Vec3s* sp4C; + Vec3f sp40; + Vec3f sp34; + s32 sp2C; + Path* temp_v0; + Vec3s* temp_v0_2; + s16 temp_v0_3; + s16 var_v1; + s32 temp_a2; + u8 temp_v0_4; + + sp56 = gSaveContext.save.time - 0x3FFC; + sp2C = 0; + sp55 = (u8) arg0->params; + arg0->unk_1DC = NULL; + sp50 = func_80B53B3C(arg1, arg2->unk_0); + temp_a2 = *(&D_80B58618 + (arg2->unk_0 * 4)); + if (temp_a2 >= 0) { + arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp55, temp_a2); + } + if ((sp50 != NULL) && (sp50->unk_138 != 0)) { + temp_v0 = arg0->unk_1DC; + if (temp_v0 != NULL) { + temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); + sp4C = temp_v0_2; + Math_Vec3s_ToVec3f(&sp40, temp_v0_2); + Math_Vec3s_ToVec3f(&sp34, sp4C + 6); + Math_Vec3f_Copy(arg0 + 0x228, &sp40); + Math_Vec3f_Copy(arg0 + 0x234, &sp34); + arg0->world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + Math_Vec3f_Copy(arg0 + 0x24, &sp40); + temp_v0_3 = arg0->world.rot.y - sp50->unk_BE; + var_v1 = temp_v0_3; + if (temp_v0_3 < 0) { + var_v1 = -temp_v0_3; + } + if (var_v1 < 0x4001) { + arg0->unk_215 = -0x4B; + } else { + arg0->unk_215 = 0x4B; + } + arg0->unk_378 = (s16) (arg2->unk_8 - arg2->unk_4); + arg0->unk_37A = (s16) (sp56 - arg2->unk_4); + temp_v0_4 = arg2->unk_0; + switch (temp_v0_4) { /* switch 1 */ + case 0x1B: /* switch 1 */ + case 0x1C: /* switch 1 */ + case 0x20: /* switch 1 */ + case 0x21: /* switch 1 */ + case 0x22: /* switch 1 */ + case 0x23: /* switch 1 */ + case 0x25: /* switch 1 */ + case 0x26: /* switch 1 */ + arg0->unk_38A = 2; + arg0->unk_38C = 2; + arg0->unk_38E = 8; + break; + } + switch (arg2->unk_0) { /* switch 2 */ + case 0x1A: /* switch 2 */ + case 0x1B: /* switch 2 */ + case 0x1C: /* switch 2 */ + arg0->unk_360 = (u16) (arg0->unk_360 | 0x900); + func_80B53CE8(arg0, arg1, 0x10); + break; + case 0x24: /* switch 2 */ + case 0x27: /* switch 2 */ + arg0->unk_360 = (u16) (arg0->unk_360 | 0x2100); + func_80B53CE8(arg0, arg1, 0x16); + break; + default: /* switch 2 */ + arg0->unk_360 = (u16) (arg0->unk_360 | 0x100); + func_80B53CE8(arg0, arg1, 7); + break; + } + arg0->flags &= ~1; + arg0->unk_360 = (u16) (arg0->unk_360 | 0x200); + arg0->gravity = 0.0f; + sp2C = 1; + } + } + return sp2C; +} + +s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { + u16 sp2E; + u8 sp2B; + s32 sp20; + Path* var_v0; + s32 temp_a3; + s32 temp_lo; + s32 temp_v0_2; + s32 var_v1; + u16 temp_t0; + u16 temp_t3; + u16 temp_t7; + u16 temp_t8; + u16 temp_t9; + u16 var_v1_2; + u8 temp_v0; + u8 var_a1; + + sp2B = arg0->params & 0xFF; + arg0->unk_1DC = NULL; + temp_t0 = (gSaveContext.save.time - 0x3FFC) & 0xFFFF; + var_v1 = 0; + temp_a3 = *(&D_80B58618 + (arg2->unk_0 * 4)); + if (temp_a3 >= 0) { + sp20 = 0; + sp2E = temp_t0; + var_v1 = 0; + arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp2B, temp_a3); + } + var_v0 = arg0->unk_1DC; + if ((var_v0 != NULL) && ((s32) var_v0->count < 3)) { + arg0->unk_1DC = NULL; + var_v0 = NULL; + } + if (var_v0 != NULL) { + temp_v0 = arg0->unk_200; + if (((s32) temp_v0 < 0x28) && (temp_v0 != 0) && (arg0->unk_384 >= 0)) { + var_v1_2 = temp_t0 & 0xFFFF; + } else { + var_v1_2 = arg2->unk_6; + } + temp_v0_2 = arg2->unk_8; + if (temp_v0_2 < (s32) var_v1_2) { + arg0->unk_1F0 = (s32) ((var_v1_2 - temp_v0_2) + 0xFFFF); + } else { + arg0->unk_1F0 = (s32) (temp_v0_2 - var_v1_2); + } + arg0->unk_1FC = (s32) (temp_t0 - var_v1_2); + temp_lo = (s32) arg0->unk_1F0 / (s32) ((arg0->unk_1DC->count - 2) & 0xFFFF); + arg0->unk_1F4 = temp_lo; + temp_t7 = arg0->unk_360 & ~8; + arg0->unk_360 = temp_t7; + arg0->unk_1F8 = (s32) (((s32) arg0->unk_1FC / temp_lo) + 2); + arg0->unk_360 = (u16) (temp_t7 & 0xFFFF & ~0x10); + var_a1 = arg2->unk_0; + switch (var_a1) { /* switch 1 */ + case 0x2C: /* switch 1 */ + case 0x2D: /* switch 1 */ + case 0x32: /* switch 1 */ + case 0x33: /* switch 1 */ + case 0x36: /* switch 1 */ + case 0x37: /* switch 1 */ + case 0x38: /* switch 1 */ + case 0x39: /* switch 1 */ + case 0x3A: /* switch 1 */ + case 0x3B: /* switch 1 */ + case 0x3C: /* switch 1 */ + case 0x3D: /* switch 1 */ + case 0x3E: /* switch 1 */ + case 0x3F: /* switch 1 */ + arg0->unk_38A = 2; + arg0->unk_38C = 2; + arg0->unk_38E = 8; + var_a1 = arg2->unk_0; + break; + } + switch (var_a1) { /* switch 2 */ + case 0x2A: /* switch 2 */ + case 0x2B: /* switch 2 */ + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + /* fallthrough */ + case 0x2C: /* switch 2 */ + case 0x2D: /* switch 2 */ + func_80B53CE8(arg0, arg1, 0x10); + temp_t8 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t8; + arg0->unk_360 = (u16) (temp_t8 | 0x800); + break; + case 0x34: /* switch 2 */ + case 0x35: /* switch 2 */ + func_80B53CE8(arg0, arg1, 0x16); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + temp_t3 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t3; + arg0->unk_360 = (u16) (temp_t3 | 0x2000); + break; + case 0x32: /* switch 2 */ + case 0x33: /* switch 2 */ + func_80B53CE8(arg0, arg1, 7); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + break; + case 0x36: /* switch 2 */ + case 0x37: /* switch 2 */ + case 0x38: /* switch 2 */ + case 0x39: /* switch 2 */ + case 0x3A: /* switch 2 */ + case 0x3B: /* switch 2 */ + case 0x3C: /* switch 2 */ + case 0x3D: /* switch 2 */ + case 0x3E: /* switch 2 */ + case 0x3F: /* switch 2 */ + func_80B53CE8(arg0, arg1, 0x12); + temp_t9 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t9; + arg0->unk_360 = (u16) (temp_t9 | 0x1000); + break; + case 0x28: /* switch 2 */ + case 0x2F: /* switch 2 */ + case 0x30: /* switch 2 */ + case 0x31: /* switch 2 */ + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + /* fallthrough */ + default: /* switch 2 */ + func_80B53CE8(arg0, arg1, 7); + break; + } + var_v1 = 1; + arg0->gravity = -1.0f; + } + return var_v1; +} + +s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2) { + u8 sp4F; + Vec3f sp40; + Vec3f sp34; + Vec3s* sp30; + s32 sp28; + Path* temp_v0; + Vec3s* temp_v0_2; + s32 temp_a3; + s32 var_v1; + u16 temp_t6; + + var_v1 = 0; + sp4F = (u8) arg0->params; + arg0->unk_1DC = NULL; + temp_a3 = *(&D_80B58618 + (*arg2 * 4)); + if (temp_a3 >= 0) { + sp28 = 0; + var_v1 = sp28; + arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a3); + } + temp_v0 = arg0->unk_1DC; + if ((temp_v0 != NULL) && ((s32) temp_v0->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); + sp30 = temp_v0_2; + Math_Vec3s_ToVec3f(&sp40, temp_v0_2); + Math_Vec3s_ToVec3f(&sp34, sp30 + 6); + arg0->world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); + Math_Vec3f_Copy(arg0 + 0x24, &sp40); + Math_Vec3f_Copy(arg0 + 0x108, &sp40); + if (*arg2 == 0x16) { + func_80B53CE8(arg0, arg1, 0x17); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + temp_t6 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t6; + arg0->unk_360 = (u16) (temp_t6 | 0x2000); + } + var_v1 = 1; + } + return var_v1; +} + +s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { + u8 sp4F; + Vec3f sp40; + Vec3f sp34; + void* sp30; + s32 sp28; + Vec3s* sp24; + Path* temp_v0; + Vec3s* temp_a1; + s32 temp_a3; + s32 var_v1; + u16 temp_t0_2; + u16 temp_t3; + u8 temp_t0; + void* temp_v0_2; + + var_v1 = 0; + sp4F = (u8) arg0->params; + arg0->unk_1DC = NULL; + temp_a3 = *(&D_80B58618 + (*arg2 * 4)); + if (temp_a3 >= 0) { + sp28 = 0; + var_v1 = sp28; + arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a3); + } + temp_v0 = arg0->unk_1DC; + if ((temp_v0 != NULL) && ((s32) temp_v0->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); + sp30 = temp_v0_2; + Math_Vec3s_ToVec3f(&sp40, ((arg0->unk_1DC->count * 6) + temp_v0_2) - 6); + Math_Vec3s_ToVec3f(&sp34, ((arg0->unk_1DC->count * 6) + sp30) - 0xC); + arg0->world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); + temp_a1 = arg0 + 0x30; + sp24 = temp_a1; + Math_Vec3s_Copy(arg0 + 0xBC, temp_a1); + Math_Vec3s_Copy(arg0 + 0x14, temp_a1); + Math_Vec3f_Copy(arg0 + 0x24, &sp40); + Math_Vec3f_Copy(arg0 + 0x108, &sp40); + temp_t0 = *arg2; + switch (temp_t0) { + case 0x13: + arg0->world.rot.y += 0x7FF8; + /* fallthrough */ + case 0x12: + case 0x17: + func_80B53CE8(arg0, arg1, 1); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + arg0->unk_37A = 0; + arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + if (*arg2 == 0x12) { + arg0->unk_374 = 70.0f; + } + break; + case 0x3: + temp_t0_2 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t0_2; + arg0->unk_360 = (u16) (temp_t0_2 | 0x1000); + if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { + func_80B53CE8(arg0, arg1, 0x14); + arg0->world.rot.y += 0x7FF8; + arg0->unk_360 = (u16) (arg0->unk_360 | 0x40); + arg0->unk_37A = 4; + arg0->shape.rot.y = arg0->world.rot.y; + } else { + func_80B53CE8(arg0, arg1, 0x12); + arg0->unk_37A = 0; + } + arg0->unk_38A = 2; + arg0->unk_38C = 2; + arg0->unk_38E = 8; + break; + case 0xE: + func_80B53CE8(arg0, arg1, 0xC); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + temp_t3 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t3; + arg0->unk_360 = (u16) (temp_t3 | 0x8000); + break; + } + var_v1 = 1; + } + return var_v1; +} + +s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2) { + Vec3s* sp20; + Vec3s* temp_a2; + u16 temp_t0; + + Math_Vec3f_Copy(arg0 + 0x24, &D_80B58E7C); + temp_a2 = arg0 + 0xBC; + sp20 = temp_a2; + Math_Vec3s_Copy(temp_a2, &D_80B58E88); + Math_Vec3s_Copy(arg0 + 0x30, sp20); + if (*arg2 == 0xC) { + func_80B53CE8(arg0, arg1, 0xB); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + temp_t0 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t0; + arg0->unk_360 = (u16) (temp_t0 | 0x40); + arg0->unk_38A = 5; + arg0->unk_38C = 5; + arg0->unk_38E = 8; + } + return 1; +} + +s32 func_80B56BC0(Actor* arg0, PlayState* arg1, u8* arg2) { + Vec3s* sp24; + Vec3s* temp_a2; + u16 temp_t0; + u8 temp_v0; + + Math_Vec3f_Copy(arg0 + 0x24, &D_80B58E90); + temp_a2 = arg0 + 0xBC; + sp24 = temp_a2; + Math_Vec3s_Copy(temp_a2, &D_80B58E9C); + Math_Vec3s_Copy(arg0 + 0x30, sp24); + temp_v0 = *arg2; + switch (temp_v0) { /* irregular */ + case 0x1: + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + func_80B53CE8(arg0, arg1, 9); + break; + case 0x18: + func_80B53CE8(arg0, arg1, 0xB); + arg0->unk_38A = 5; + arg0->unk_38C = 5; + arg0->unk_38E = 8; + break; + } + temp_t0 = arg0->unk_360 | 0x300; + arg0->unk_360 = temp_t0; + arg0->unk_360 = (u16) (temp_t0 | 0x40); + arg0->gravity = 0.0f; + return 1; +} + +s32 func_80B56CAC(Actor* arg0, PlayState* arg1, ? arg2) { + Vec3s* sp20; + Vec3s* temp_a2; + + temp_a2 = arg0 + 0xBC; + sp20 = temp_a2; + Math_Vec3s_Copy(temp_a2, &D_80B58EA4); + Math_Vec3s_Copy(arg0 + 0x30, sp20); + func_80B53CE8(arg0, arg1, 0); + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + return 1; +} + +s32 func_80B56D28(EnAn* arg0, u8* arg2) { + s32 var_v1; + u8 temp_t0; + + arg0->actor.flags |= 1; + arg0->actor.targetMode = 6; + arg0->unk_360 = 0; + arg0->unk_38A = 0; + arg0->unk_38C = 0; + arg0->unk_38E = 8; + arg0->unk_374 = 40.0f; + temp_t0 = *arg2; + switch (temp_t0) { + case 0x10: + var_v1 = func_80B5600C(); + break; + case 0x11: + var_v1 = func_80B56094(); + break; + case 0x15: + var_v1 = func_80B5611C(); + break; + case 0xC: + var_v1 = func_80B56B00(); + break; + case 0x1: + case 0x18: + var_v1 = func_80B56BC0(); + break; + case 0x3: + case 0xE: + case 0x12: + case 0x13: + case 0x17: + var_v1 = func_80B56880(); + break; + case 0x16: + var_v1 = func_80B56744(); + break; + case 0x19: + var_v1 = func_80B56CAC(); + break; + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + var_v1 = func_80B561A4(); + break; + case 0x28: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + var_v1 = func_80B56418(); + break; + default: + var_v1 = 0; + break; + } + return var_v1; +} + +? func_80B56E44(Actor* arg0, ? arg1) { + Vec3f sp2C; + Vec3f sp20; + void* temp_v0; + + temp_v0 = arg0->unk_218; + if ((temp_v0 != NULL) && (temp_v0->unk_138 != 0)) { + Math_Vec3f_Copy(&sp2C, temp_v0 + 0x24); + Math_Vec3f_Copy(&sp20, arg0 + 0x24); + arg0->world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); + } + return 1; +} + +? func_80B56EB4(Actor* arg0, PlayState* arg1) { + struct EnDoor* sp44; + f32 sp40; + f32 sp3C; + f32 sp38; + Vec3f* sp28; /* compiler-managed */ + SkelAnime* temp_a0_2; + Vec3f* temp_a0; + f32 temp_fv0; + s16 temp_v0; + s16 temp_v1; + s16 var_a0; + + sp44 = func_80B53B3C(arg1, arg0->unk_200); + if ((SubS_InCsMode(arg1) == 0) && (arg0->unk_384 != 0)) { + if ((sp44 != NULL) && (sp44->unk_138 != 0)) { + if (((f32) arg0->unk_37A / (f32) arg0->unk_378) <= 0.9f) { + sp44->unk_1A7 = (s8) arg0->unk_215; + } else { + sp44->unk_1A7 = 0; + } + } + temp_v0 = arg0->unk_37A; + if (temp_v0 < 0) { + arg0->unk_37A = 0; + } else { + temp_v1 = arg0->unk_378; + var_a0 = temp_v0; + if (temp_v1 < temp_v0) { + var_a0 = temp_v1; + } + arg0->unk_37A = var_a0; + } + temp_a0 = arg0 + 0x228; + sp28 = temp_a0; + temp_fv0 = Math_Vec3f_DistXZ(temp_a0, arg0 + 0x234); + sp38 = 0.0f; + sp3C = 0.0f; + sp40 = (f32) arg0->unk_37A * (temp_fv0 / (f32) arg0->unk_378); + Lib_Vec3f_TranslateAndRotateY(temp_a0, arg0->world.rot.y, (Vec3f* ) &sp38, arg0 + 0x24); + temp_a0_2 = arg0 + 0x144; + arg0->unk_37A = (s16) (arg0->unk_37A + arg0->unk_384); + sp28 = temp_a0_2; + if ((Animation_OnFrame(temp_a0_2, 3.0f) != 0) || (Animation_OnFrame(temp_a0_2, 15.0f) != 0)) { + Actor_PlaySfx(arg0, 0x2971U); + } + } + return 0; +} + +? func_80B5702C(Actor* arg0, PlayState* arg1) { + f32 sp7C; + Vec3f sp70; + Vec3f sp64; + Vec3f sp58; + s32 sp54; + s32 sp50; + f32* sp48; /* compiler-managed */ + s32* sp44; + s32* sp40; + Vec3f* sp3C; + SkelAnime* temp_a0; + Vec3f* var_v1; + f32* temp_a1; + s32* temp_a2; + s32* temp_v0; + + sp50 = 0; + sp54 = 0; + SubS_TimePathing_FillKnots(&sp7C, 3, arg0->unk_1DC->count + 3); + var_v1 = arg0 + 0x1E0; + if (!(arg0->unk_360 & 8)) { + temp_v0 = arg0 + 0x1F8; + sp58.x = gZeroVec3f.x; + temp_a1 = arg0 + 0x1EC; + sp58.y = gZeroVec3f.y; + temp_a2 = arg0 + 0x1FC; + sp58.z = gZeroVec3f.z; + sp44 = temp_a2; + sp48 = temp_a1; + sp40 = temp_v0; + SubS_TimePathing_Update(arg0->unk_1DC, temp_a1, temp_a2, arg0->unk_1F4, arg0->unk_1F0, temp_v0, &sp7C, &sp58, (s32) arg0->unk_384); + SubS_TimePathing_ComputeInitialY(arg1, arg0->unk_1DC, arg0->unk_1F8, &sp58); + var_v1 = arg0 + 0x1E0; + arg0->unk_360 = (u16) (arg0->unk_360 | 8); + arg0->world.pos.y = sp58.y; + } else { + sp58.x = var_v1->x; + sp58.y = var_v1->y; + sp58.z = var_v1->z; + sp40 = arg0 + 0x1F8; + sp44 = arg0 + 0x1FC; + sp48 = arg0 + 0x1EC; + } + arg0->world.pos.x = (bitwise f32) sp58; + arg0->world.pos.z = sp58.z; + sp3C = var_v1; + if (SubS_InCsMode(arg1) != 0) { + sp54 = arg0->unk_1FC; + sp50 = arg0->unk_1F8; + sp58.x = arg0->world.pos.x; + sp58.y = arg0->world.pos.y; + sp58.z = arg0->world.pos.z; + } + var_v1->x = gZeroVec3f.x; + var_v1->y = gZeroVec3f.y; + var_v1->z = gZeroVec3f.z; + sp3C = var_v1; + if (SubS_TimePathing_Update(arg0->unk_1DC, sp48, sp44, arg0->unk_1F4, arg0->unk_1F0, sp40, &sp7C, var_v1, (s32) arg0->unk_384) != 0) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x10); + } else { + sp70.x = arg0->world.pos.x; + sp70.y = arg0->world.pos.y; + sp70.z = arg0->world.pos.z; + sp64.x = sp3C->x; + sp64.y = sp3C->y; + sp64.z = sp3C->z; + arg0->world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); + } + if (SubS_InCsMode(arg1) != 0) { + arg0->unk_1FC = sp54; + arg0->unk_1F8 = sp50; + sp3C->x = sp58.x; + sp3C->y = sp58.y; + sp3C->z = sp58.z; + } else { + temp_a0 = arg0 + 0x144; + sp48 = temp_a0; + if ((Animation_OnFrame(temp_a0, 3.0f) != 0) || (Animation_OnFrame(temp_a0, 15.0f) != 0)) { + Actor_PlaySfx(arg0, 0x2971U); + } + } + return 0; +} + +? func_80B572D4(Actor* arg0, PlayState* arg1) { + u8 temp_t6; + + temp_t6 = arg0->unk_200; + switch (temp_t6) { + case 0x17: + if ((func_80B55F8C(arg1) != 0) && (func_80B55ECC(arg0) != 0)) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + } else { + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + } + break; + case 0x1: + if (func_80B55ECC(arg0) != 0) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + } else { + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + } + break; + case 0x12: + case 0x13: + if (func_80B55ECC(arg0) != 0) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + } else { + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + } + break; + case 0x16: + if ((Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), 6.0f) != 0) && (arg0->unk_39C == 0x17)) { + Actor_PlaySfx(arg0, 0x2899U); + } + break; + } + return 0; +} + +? func_80B573F4(Actor* arg0, PlayState* arg1) { + s16 temp_v0; + s16 temp_v0_2; + s16 var_v1; + + temp_v0 = arg0->unk_37A; + switch (temp_v0) { + case 0x0: + arg0->unk_37A = (s16) (temp_v0 + 1); + arg0->world.rot.y += 0x7FF8; + break; + case 0x1: + if ((s16) (((s16) arg0->world.rot.y / 182) * 0xB6) == (s16) (((s16) arg0->shape.rot.y / 182) * 0xB6)) { + Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); + func_80B53CE8(arg0, arg1, 0x13); + arg0->unk_360 = (u16) (arg0->unk_360 | 0x40); + arg0->unk_37A = (s16) (arg0->unk_37A + 1); + } + break; + case 0x2: + if (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0) { + arg0->unk_37A = (s16) (arg0->unk_37A + 1); + } + break; + case 0x3: + temp_v0_2 = arg0->yawTowardsPlayer - arg0->shape.rot.y; + var_v1 = temp_v0_2; + if (temp_v0_2 < 0) { + var_v1 = -temp_v0_2; + } + if (var_v1 < 0x3000) { + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + } else { + SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); + } + break; + case 0x4: + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + arg0->unk_37A = (s16) (arg0->unk_37A + 1); + break; + } + return 0; +} + +? func_80B575BC(Actor* arg0, ? arg1) { + s16 temp_v1; + s32 var_v0; + + temp_v1 = arg0->yawTowardsPlayer - arg0->shape.rot.y; + var_v0 = temp_v1 << 0x10; + if (temp_v1 < 0) { + var_v0 = temp_v1 * -0x10000; + } + if ((var_v0 >> 0x10) < 0x4000) { + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + } else { + SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); + } + if (func_80B55ECC(arg0) != 0) { + arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + } else { + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + } + return 1; +} + +? func_80B57674(Actor* arg0, ? arg1) { + s16 temp_v1; + s32 var_v0; + + temp_v1 = arg0->yawTowardsPlayer - (s16) (arg0->shape.rot.y + 0x3000); + var_v0 = temp_v1 << 0x10; + if (temp_v1 < 0) { + var_v0 = temp_v1 * -0x10000; + } + if ((var_v0 >> 0x10) < 0x3000) { + SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + } else { + SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); + } + arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + return 1; +} + +void func_80B57718(Actor* arg0) { + u8 temp_t7; + + temp_t7 = arg0->unk_200; + switch (temp_t7) { + case 0x10: + case 0x11: + case 0x15: + func_80B56E44(arg0); + break; + case 0x3: + func_80B573F4(arg0); + break; + case 0x1: + func_80B575BC(arg0); + break; + case 0x19: + func_80B57674(arg0); + break; + case 0xC: + case 0xE: + case 0x12: + case 0x13: + case 0x16: + case 0x18: + func_80B572D4(arg0); + break; + case 0x17: + func_80B572D4(arg0); + break; + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + func_80B56EB4(arg0); + break; + case 0x28: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + func_80B5702C(arg0); + break; + } + Math_ApproachS(&arg0->shape.rot.y, arg0->world.rot.y, 3, 0x2AA8); +} + +void func_80B577F0(EnAn* this, PlayState* play) { + ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); + SkelAnime_InitFlex(play, (SkelAnime* ) this->unk_144, (FlexSkeletonHeader* ) &D_06012618, NULL, (Vec3s* ) &this->unk_218[0x4C], (Vec3s* ) &this->unk_218[0xCA], 0x15); + this->unk_39C = -1; + func_80B53CE8(&this->actor, play, 1); + Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); + CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); + if (this->actor.params & 0x8000) { + this->unk_3C0 = 1; + } + this->actor.draw = func_80B580C0; + Actor_SetScale(&this->actor, 0.01f); + this->unk_360 = 0; + this->unk_1DC[0x24] = 0; + this->actionFunc = func_80B578F8; + func_80B578F8(this, play); +} + +void func_80B578F8(EnAn* this, PlayState* play) { + u8 sp20; + + this->unk_384 = (s16) (gSaveContext.save.timeSpeedOffset + gRegEditor->data[0xF]); + if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && (gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40)) { + Actor_Kill(&this->actor); + return; + } + if (this->unk_3C0 != 0) { + sp20 = 0x19; + if ((u8) this->unk_1DC[0x24] != 0x19) { + func_80B56D28(this, (u8* ) play, &sp20); + } + } else if ((Schedule_RunScript(play, &D_80B581D0, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != (u8) this->unk_1DC[0x24]) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { + this->actor.shape.shadowDraw = NULL; + this->actor.flags &= ~1; + sp20 = 0; + } else { + this->actor.shape.shadowDraw = ActorShadow_DrawCircle; + this->actor.flags |= 1; + } + this->unk_1DC[0x24] = (s8) sp20; + this->unk_218 = func_80B55D20(this, play); + func_80B57718(&this->actor, play); +} + +void func_80B57A44(EnAn* this, PlayState* play) { + Vec3f sp38; + Vec3f sp2C; + u16 temp_t9; + u8 temp_v0; + void* temp_v0_2; + + if (func_8010BF58(&this->actor, play, this->unk_204, this->unk_398, (s32* ) &this->unk_1DC[0x34]) != 0) { + SubS_SetOfferMode((u16* ) &this->unk_218[0x148], 3U, 7U); + temp_t9 = this->unk_360 & 0xFFDF; + this->unk_360 = temp_t9; + this->unk_360 = (u16) (temp_t9 | 0x200); + this->unk_388 = 0x14; + this->unk_210 = 0; + this->actionFunc = func_80B578F8; + return; + } + temp_v0 = (u8) this->unk_1DC[0x24]; + if ((temp_v0 != 1) && (temp_v0 != 3) && (temp_v0 != 0xC) && (temp_v0 != 0xE) && (temp_v0 != 0x19)) { + temp_v0_2 = this->unk_218; + if ((temp_v0_2 != NULL) && (temp_v0_2->unk_138 != 0)) { + Math_Vec3f_Copy(&sp38, temp_v0_2 + 0x24); + Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); + Math_ApproachS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&sp2C, &sp38), 4, 0x2AA8); + } + } +} + +void func_80B57B48(Actor* arg0, PlayState* arg1) { + ? sp30; + s32 sp28; + s32 temp_v0; + s32 temp_v0_2; + u16 temp_v1; + u8 var_v0; + + M2C_MEMCPY_ALIGNED(&sp30, &D_80B58EAC, 0x28); + if (Cutscene_IsCueInChannel(arg1, 0x22DU) != 0) { + temp_v0 = Cutscene_GetCueChannel(arg1, 0x22DU); + sp28 = temp_v0; + temp_v1 = arg1->csCtx.actorCues[temp_v0]->id; + var_v0 = temp_v1 & 0xFF; + if ((temp_v1 & 0xFF) != arg0->unk_364) { + arg0->unk_364 = (u8) temp_v1; + if (var_v0 == 3) { + gSaveContext.save.saveInfo.weekEventReg[0x57] |= 2; + var_v0 = arg0->unk_364; + arg0->unk_3B4 = 1; + } + if (var_v0 == 9) { + arg0->unk_3B4 = 0; + } + func_80B53CE8(arg0, arg1, (sp + (temp_v1 * 4))->unk_30); + } + temp_v0_2 = arg0->unk_39C; + if (((temp_v0_2 == 0x1A) || (temp_v0_2 == 0x1C) || (temp_v0_2 == 0x1E) || (temp_v0_2 == 0x22)) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { + func_80B53CE8(arg0, arg1, arg0->unk_39C + 1); + } + Cutscene_ActorTranslateAndYaw(arg0, arg1, sp28); + } +} + +void func_80B57EE8(GraphicsContext** arg0, s32 arg1, Gfx** arg2, Vec3s* arg3, Actor* arg4) { + if (arg1 == 9) { + Matrix_MultVec3f(&D_80B58ED4, arg4 + 0x3C); + Math_Vec3s_Copy(arg4 + 0x48, arg4 + 0x30); + func_80B54124(arg4, arg0, 1U); + return; + } + if (arg1 == 8) { + func_80B54124(arg4, arg0, 0U); + func_80B54124(arg4, arg0, 4U); + func_80B54124(arg4, arg0, 2U); + func_80B54124(arg4, arg0, 3U); + return; + } + if (arg1 == 5) { + func_80B54124(arg4, arg0, 5U); + } +} + +void func_80B57FC4(PlayState* arg0, s32 arg1, Actor* arg2) { + s32 var_v0; + s32 var_v1; + u16 temp_v0; + + temp_v0 = arg2->unk_360; + var_v1 = 0; + if (!(temp_v0 & 0x200)) { + var_v1 = 0; + if (temp_v0 & 0x80) { + var_v1 = 1; + var_v0 = 1; + } else { + var_v0 = 1; + } + } else { + var_v0 = 0; + } + if (arg1 == 9) { + SubS_UpdateLimb((s16) (arg2->unk_37C + 0x4000), (s16) (arg2->unk_37E + arg2->shape.rot.y + 0x4000), arg2 + 0x240, arg2 + 0x258, var_v0, var_v1); + Matrix_Pop(); + Matrix_Translate(arg2->unk_240, arg2->unk_244, arg2->unk_248, MTXMODE_NEW); + Matrix_Scale(arg2->scale.x, arg2->scale.y, arg2->scale.z, MTXMODE_APPLY); + Matrix_RotateYS(arg2->unk_25A, MTXMODE_APPLY); + Matrix_RotateXS(arg2->unk_258, MTXMODE_APPLY); + Matrix_RotateZS(arg2->unk_25C, MTXMODE_APPLY); + Matrix_Push(); + } +} + +void func_80B580C0(Actor* this, PlayState* play) { + GraphicsContext* sp40; + void* sp38; + void* sp34; + GraphicsContext* temp_a0; + void* temp_v0; + void* temp_v0_2; + + if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { + temp_a0 = play->state.gfxCtx; + sp40 = temp_a0; + Gfx_SetupDL25_Opa(temp_a0); + temp_v0 = sp40->polyOpa.tha.head; + sp40->polyOpa.tha.head = temp_v0 + 8; + *temp_v0 = 0xDB060020; + sp38 = temp_v0; + sp38->unk_4 = Lib_SegmentedToVirtual(*(&D_80B58EEC + (this->unk_390 * 4))); + temp_v0_2 = sp40->polyOpa.tha.head; + sp40->polyOpa.tha.head = temp_v0_2 + 8; + *temp_v0_2 = 0xDB060024; + sp34 = temp_v0_2; + sp34->unk_4 = Lib_SegmentedToVirtual(*(&D_80B58EE0 + (this->unk_392 * 4))); + SkelAnime_DrawTransformFlexOpa(play, this->unk_148, this->unk_164, (s32) this->unk_146, NULL, (void (*)(PlayState*, s32, Gfx**, Vec3s*, Actor*)) func_80B57EE8, func_80B57FC4, this); + } +} +/* Warning: struct EnTorch2 is not defined (only forward-declared) */ +/* Warning: struct EnDoor is not defined (only forward-declared) */ 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 8f70caab2..9b560b68a 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -14,6 +14,9 @@ void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); void EnAn_Update(Actor* thisx, PlayState* play); +void EnAn_Draw(Actor* this, PlayState* play); + +// Action funcs void func_80B577F0(EnAn* this, PlayState* play); void func_80B578F8(EnAn* this, PlayState* play); void func_80B57A44(EnAn* this, PlayState* play); @@ -31,6 +34,8 @@ UNK_RET func_80B55914(EnAn* this, PlayState* play); void func_80B57B48(EnAn* this, PlayState* play); +extern AnimationInfoS D_80B58BF4[]; + #if 0 ActorInit En_An_InitVars = { ACTOR_EN_AN, @@ -60,7 +65,7 @@ extern ColliderCylinderInit D_80B58BBC; extern CollisionCheckInfoInit2 D_80B58BE8; extern UNK_TYPE D_060111E8; -extern UNK_TYPE D_06012618; +extern FlexSkeletonHeader D_06012618; #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53840.s") @@ -97,7 +102,65 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53BA8.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53CE8.s") +s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { + s8 temp_t1 = this->actor.objBankIndex; + s8 var_v1 = -1; + s32 var_t0 = 0; + s32 var_t2 = 0; + + if ((arg2 >= 0x19) && (this->unk_20B >= 0)) { + var_v1 = this->unk_20B; + } else if ((arg2 >= 0x15) && (this->unk_209 >= 0)) { + var_v1 = this->unk_209; + } else if ((arg2 >= 0x11) && (this->unk_208 >= 0)) { + var_v1 = this->unk_208; + } else if (arg2 < 0x11) { + var_v1 = temp_t1; + } + + if (var_v1 < 0) { + return 0; + } + + switch (arg2) { + case 0x1: + case 0x2: + if ((this->unk_39C != 1) && (this->unk_39C != 2)) { + var_t0 = 1; + } + break; + + case 0x7: + case 0x8: + if ((this->unk_39C != 7) && (this->unk_39C != 8)) { + var_t0 = 1; + } + break; + + case 0x9: + case 0xA: + if ((this->unk_39C != 9) && (this->unk_39C != 0xA)) { + var_t0 = 1; + } + break; + + default: + if (arg2 != this->unk_39C) { + var_t0 = 1; + } + break; + } + + if ((var_t0 != 0) && (var_v1 >= 0)) { + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); + this->unk_39C = arg2; + var_t2 = SubS_ChangeAnimationByInfoS(&this->unk_144, D_80B58BF4, arg2); + this->unk_368 = this->unk_144.playSpeed; + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_t1].segment); + } + + return var_t2; +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53ED4.s") @@ -189,7 +252,27 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57718.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B577F0.s") +void func_80B577F0(EnAn* this, PlayState* play) { + ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); + SkelAnime_InitFlex(play, &this->unk_144, &D_06012618, NULL, this->unk_264, this->unk_2E2, 0x15); + + this->unk_39C = -1; + func_80B53CE8(this, play, 1); + Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); + CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); + + if (this->actor.params & 0x8000) { + this->unk_3C0 = 1; + } + + this->actor.draw = EnAn_Draw; + Actor_SetScale(&this->actor, 0.01f); + this->unk_360 = 0; + this->unk_200 = 0; + + this->actionFunc = func_80B578F8; + this->actionFunc(this, play); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B578F8.s") @@ -268,10 +351,28 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } -//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/EnAn_Update.s") - +void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57EE8.s") +void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57FC4.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B580C0.s") +extern UNK_PTR D_80B58EEC[]; +extern UNK_PTR D_80B58EE0[]; + +void EnAn_Draw(Actor* thisx, PlayState* play) { + EnAn* this = (EnAn* ) thisx; + + if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { + OPEN_DISPS(play->state.gfxCtx); + + Gfx_SetupDL25_Opa(play->state.gfxCtx); + + gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->unk_390])); + gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->unk_392])); + + SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, this); + + CLOSE_DISPS(play->state.gfxCtx); + } +} diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 289263220..ba147f5ee 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -30,10 +30,8 @@ typedef struct EnAn { /* 0x215 */ char pad_215[3]; /* maybe part of unk_214[4]? */ /* 0x218 */ Actor* unk_218; /* inferred */ /* 0x21C */ char pad_21C[0x48]; /* maybe part of unk_218[0x13]? */ - /* 0x264 */ Vec3s unk_264; /* inferred */ - /* 0x26A */ char pad_26A[0x78]; /* maybe part of unk_264[0x15]? */ - /* 0x2E2 */ Vec3s unk_2E2; /* inferred */ - /* 0x2E8 */ char pad_2E8[0x78]; /* maybe part of unk_2E2[0x15]? */ + /* 0x264 */ Vec3s unk_264[0x15]; + /* 0x2E2 */ Vec3s unk_2E2[0x15]; /* 0x360 */ u16 unk_360; /* inferred */ /* 0x362 */ char pad_362[2]; /* inferred */ /* 0x364 */ s8 unk_364; /* inferred */ diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 56d3bc2a2..b08be0c0c 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14067,7 +14067,7 @@ 0x80B57D9C:("EnAn_Update",), 0x80B57EE8:("func_80B57EE8",), 0x80B57FC4:("func_80B57FC4",), - 0x80B580C0:("func_80B580C0",), + 0x80B580C0:("EnAn_Draw",), 0x80B5A720:("EnBee_Init",), 0x80B5A828:("EnBee_Destroy",), 0x80B5A854:("func_80B5A854",), From 39cced693d80a3bfea05ace13cd0f6404710b279 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 23 Sep 2023 20:07:46 -0300 Subject: [PATCH 04/78] the overrides --- asdf.c | 1109 ++++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.c | 55 +- src/overlays/actors/ovl_En_An/z_en_an.h | 9 +- 3 files changed, 632 insertions(+), 541 deletions(-) diff --git a/asdf.c b/asdf.c index fa7935258..9facd796a 100644 --- a/asdf.c +++ b/asdf.c @@ -1,10 +1,67 @@ -s32 func_80B53840(EnAn* arg0, PlayState* arg1); /* static */ -Actor* func_80B539CC(Actor* arg0, PlayState* arg1, u8 arg2, s16 arg3); /* static */ +typedef struct EnAn { + /* 0x000 */ Actor actor; + /* 0x144 */ SkelAnime unk_144; + /* 0x188 */ void (*actionFunc)(EnAn*, PlayState*); + /* 0x18C */ s8 unk_18C[4]; + /* 0x190 */ ColliderCylinder unk_190; + /* 0x1DC */ Path* unk_1DC; /* inferred */ + /* 0x1E0 */ char pad_1E0[0x10]; /* maybe part of unk_1DC[5]? */ + /* 0x1F0 */ s32 unk_1F0; /* inferred */ + /* 0x1F4 */ s32 unk_1F4; /* inferred */ + /* 0x1F8 */ s32 unk_1F8; /* inferred */ + /* 0x1FC */ s32 unk_1FC; /* inferred */ + /* 0x200 */ u8 unk_200; + /* 0x201 */ char pad_201[3]; /* maybe part of unk_200[4]? */ + /* 0x204 */ void* unk_204; + /* 0x208 */ s8 unk_208; + /* 0x209 */ s8 unk_209; + /* 0x20A */ s8 unk_20A; + /* 0x20B */ s8 unk_20B; + /* 0x20C */ s8 unk_20C; + /* 0x20D */ char pad_20D[3]; /* maybe part of unk_20C[4]? */ + /* 0x210 */ s32 unk_210; + /* 0x214 */ s8 unk_214; + /* 0x215 */ s8 unk_215; /* inferred */ + /* 0x216 */ char pad_216[2]; /* maybe part of unk_215[3]? */ + /* 0x218 */ Actor* unk_218; + /* 0x21C */ char pad_21C[0x48]; /* maybe part of unk_218[0x13]? */ + /* 0x264 */ Vec3s unk_264[0x15]; + /* 0x2E2 */ Vec3s unk_2E2[0x15]; + /* 0x360 */ u16 unk_360; + /* 0x362 */ u16 unk_362; /* inferred */ + /* 0x364 */ s8 unk_364; + /* 0x365 */ char pad_365[3]; /* maybe part of unk_364[4]? */ + /* 0x368 */ f32 unk_368; + /* 0x36C */ char pad_36C[8]; /* maybe part of unk_368[3]? */ + /* 0x374 */ f32 unk_374; + /* 0x378 */ s16 unk_378; /* inferred */ + /* 0x37A */ s16 unk_37A; /* inferred */ + /* 0x37C */ s16 unk_37C; + /* 0x37E */ s16 unk_37E; + /* 0x380 */ char pad_380[4]; /* maybe part of unk_37E[3]? */ + /* 0x384 */ s16 unk_384; + /* 0x386 */ char pad_386[2]; + /* 0x388 */ s16 unk_388; + /* 0x38A */ s16 unk_38A; + /* 0x38C */ s16 unk_38C; + /* 0x38E */ s16 unk_38E; + /* 0x390 */ s16 unk_390; + /* 0x392 */ s16 unk_392; + /* 0x394 */ s16 unk_394; /* inferred */ + /* 0x396 */ s16 unk_396; /* inferred */ + /* 0x398 */ void* unk_398; + /* 0x39C */ s32 unk_39C; + /* 0x3A0 */ char pad_3A0[0x10]; /* maybe part of unk_39C[5]? */ + /* 0x3B0 */ s32 unk_3B0; + /* 0x3B4 */ s32 unk_3B4; + /* 0x3B8 */ s32 unk_3B8; + /* 0x3BC */ char pad_3BC[4]; + /* 0x3C0 */ s32 unk_3C0; + /* 0x3C4 */ s32 unk_3C4; /* inferred */ +} EnAn; /* size = 0x3C8 */ + +Actor* func_80B539CC(EnAn* arg0, PlayState* arg1, u8 arg2, s16 arg3); /* static */ struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1); /* static */ -s32 func_80B53BA8(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B53CE8(Actor* arg0, PlayState* arg1, s32 arg2, Actor*); /* static */ -void func_80B53ED4(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B53F84(EnAn* arg0); /* static */ void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2); /* static */ s32 func_80B54678(Actor* arg0, s16 arg1, s32); /* static */ s16 func_80B546F4(Actor* arg0, s32 arg1); /* static */ @@ -13,45 +70,37 @@ s32 func_80B547C8(Actor* arg0, PlayState* arg1); /* static */ s32 func_80B5492C(Actor* arg0, PlayState* arg1); /* static */ s32 func_80B54A94(Actor* arg0, PlayState* arg1); /* static */ s32 func_80B54BC4(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B54C5C(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B54D18(Actor* arg0, PlayState* arg1); /* static */ -?* func_80B54DF4(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B55180(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B552E4(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B54C5C(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B54D18(EnAn* arg0, PlayState* arg1); /* static */ +?* func_80B54DF4(EnAn* arg0, PlayState* arg1); /* static */ void func_80B553AC(void* arg0); /* static */ -void func_80B554E8(EnAn* arg0); /* static */ -? func_80B555C8(Actor* arg0, PlayState* arg1); /* static */ -void func_80B556F8(Actor* arg0, PlayState* arg1); /* static */ -void func_80B557AC(Actor* arg0, PlayState* arg1); /* static */ -void func_80B55860(Actor* arg0, PlayState* arg1); /* static */ -? func_80B55914(EnAn* arg0, PlayState* arg1); /* static */ +? func_80B555C8(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B556F8(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B557AC(EnAn* arg0, PlayState* arg1); /* static */ +void func_80B55860(EnAn* arg0, PlayState* arg1); /* static */ Actor* func_80B55D20(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4); /* static */ +s32 func_80B55D98(EnAn* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4); /* static */ s32 func_80B55ECC(Actor* arg0); /* static */ s32 func_80B55F8C(PlayState* arg0); /* static */ -s32 func_80B5600C(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B56094(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B5611C(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2); /* static */ -s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2); /* static */ -s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56BC0(Actor* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56CAC(Actor* arg0, PlayState* arg1, ? arg2); /* static */ +s32 func_80B5600C(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B56094(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B5611C(EnAn* arg0, PlayState* arg1); /* static */ +s32 func_80B561A4(EnAn* arg0, PlayState* arg1, void* arg2); /* static */ +s32 func_80B56418(EnAn* arg0, PlayState* arg1, void* arg2); /* static */ +s32 func_80B56744(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56880(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56B00(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56BC0(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ +s32 func_80B56CAC(EnAn* arg0, PlayState* arg1, ? arg2); /* static */ s32 func_80B56D28(EnAn* arg0, u8* arg2, u8*); /* static */ -? func_80B56E44(Actor* arg0, ? arg1); /* static */ +? func_80B56E44(EnAn* arg0, ? arg1); /* static */ ? func_80B56EB4(Actor* arg0, PlayState* arg1); /* static */ ? func_80B5702C(Actor* arg0, PlayState* arg1); /* static */ ? func_80B572D4(Actor* arg0, PlayState* arg1); /* static */ -? func_80B573F4(Actor* arg0, PlayState* arg1); /* static */ +? func_80B573F4(EnAn* arg0, PlayState* arg1); /* static */ ? func_80B575BC(Actor* arg0, ? arg1); /* static */ -? func_80B57674(Actor* arg0, ? arg1); /* static */ -void func_80B57718(Actor* arg0, PlayState*); /* static */ -void func_80B57B48(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B57EE8(GraphicsContext** arg0, s32 arg1, Gfx** arg2, Vec3s* arg3, Actor* arg4); /* static */ -void func_80B57FC4(PlayState* arg0, s32 arg1, Actor* arg2); /* static */ -void func_80B580C0(Actor* this, PlayState* play); /* static */ +? func_80B57674(EnAn* arg0, ? arg1); /* static */ +void func_80B57718(EnAn* arg0, PlayState*); /* static */ extern ? D_06000308; extern ? D_06000378; extern ? D_06000E70; @@ -85,7 +134,6 @@ extern ? D_80B58B3C; extern ? D_80B58B7C; extern ? D_80B58B88; extern ? D_80B58B90; -extern AnimationInfoS D_80B58BF4; extern Vec3f D_80B58E34; extern ? D_80B58E40; extern Vec3f D_80B58E54; @@ -99,8 +147,6 @@ extern Vec3s D_80B58E9C; extern Vec3s D_80B58EA4; extern ? D_80B58EAC; extern Vec3f D_80B58ED4; -extern ? D_80B58EE0; -extern ? D_80B58EEC; void EnAn_Destroy(Actor* thisx, PlayState* play) { EnAn* this = (EnAn* ) thisx; @@ -147,7 +193,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { return; } this->actionFunc(this, play); - if ((u8) this->unk_1DC[0x24] != 0) { + if (this->unk_200 != 0) { func_80B55914(this, play); func_80B53BA8(this, play); func_80B53F84(this); @@ -162,7 +208,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } -s32 func_80B53840(EnAn* arg0, PlayState* arg1) { +s32 func_80B53840(EnAn* this, PlayState* play) { s32 sp24; void* sp20; s8 temp_a0; @@ -172,31 +218,31 @@ s32 func_80B53840(EnAn* arg0, PlayState* arg1) { s8 temp_a0_5; sp24 = 0; - if ((arg1->roomCtx.curRoom.num != arg0->unk_214) && (arg1->roomCtx.status == 0) && (arg0->unk_3B8 == 0)) { - sp20 = arg1 + 0x18000; - arg0->unk_1DC[0x30] = SubS_GetObjectIndex(0x16, arg1); - arg0->unk_1DC[0x2F] = SubS_GetObjectIndex(0x1A, arg1); - arg0->unk_1DC[0x2E] = SubS_GetObjectIndex(0x1FF, arg1); - arg0->unk_1DC[0x2D] = SubS_GetObjectIndex(0xDD, arg1); - arg0->unk_1DC[0x2C] = SubS_GetObjectIndex(0xE0, arg1); - arg0->actor.draw = NULL; - arg0->unk_3B8 = 1; - arg0->unk_214 = sp20->unk_6E0; + if ((play->roomCtx.curRoom.num != this->unk_214) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { + sp20 = play + 0x18000; + this->unk_20C = SubS_GetObjectIndex(0x16, play); + this->unk_20B = SubS_GetObjectIndex(0x1A, play); + this->unk_20A = SubS_GetObjectIndex(0x1FF, play); + this->unk_209 = SubS_GetObjectIndex(0xDD, play); + this->unk_208 = SubS_GetObjectIndex(0xE0, play); + this->actor.draw = NULL; + this->unk_3B8 = 1; + this->unk_214 = sp20->unk_6E0; } - if (arg0->unk_3B8 == 0) { + if (this->unk_3B8 == 0) { return 0; } - temp_a0 = arg0->unk_1DC[0x2C]; - if (((temp_a0 >= 0) && (SubS_IsObjectLoaded(temp_a0, arg1) == 0)) || ((temp_a0_2 = arg0->unk_1DC[0x2D], (temp_a0_2 >= 0)) && (SubS_IsObjectLoaded(temp_a0_2, arg1) == 0)) || ((temp_a0_3 = arg0->unk_1DC[0x2E], (temp_a0_3 >= 0)) && (SubS_IsObjectLoaded(temp_a0_3, arg1) == 0)) || ((temp_a0_4 = arg0->unk_1DC[0x2F], (temp_a0_4 >= 0)) && (SubS_IsObjectLoaded(temp_a0_4, arg1) == 0)) || ((temp_a0_5 = arg0->unk_1DC[0x30], (temp_a0_5 >= 0)) && (SubS_IsObjectLoaded(temp_a0_5, arg1) == 0))) { + temp_a0 = this->unk_208; + if (((temp_a0 >= 0) && (SubS_IsObjectLoaded(temp_a0, play) == 0)) || ((temp_a0_2 = this->unk_209, (temp_a0_2 >= 0)) && (SubS_IsObjectLoaded(temp_a0_2, play) == 0)) || ((temp_a0_3 = this->unk_20A, (temp_a0_3 >= 0)) && (SubS_IsObjectLoaded(temp_a0_3, play) == 0)) || ((temp_a0_4 = this->unk_20B, (temp_a0_4 >= 0)) && (SubS_IsObjectLoaded(temp_a0_4, play) == 0)) || ((temp_a0_5 = this->unk_20C, (temp_a0_5 >= 0)) && (SubS_IsObjectLoaded(temp_a0_5, play) == 0))) { sp24 = 1; } else { - arg0->actor.draw = func_80B580C0; - arg0->unk_3B8 = 0; + this->actor.draw = EnAn_Draw; + this->unk_3B8 = 0; } return sp24; } -Actor* func_80B539CC(Actor* arg0, PlayState* arg1, u8 arg2, s16 arg3) { +Actor* func_80B539CC(EnAn* arg0, PlayState* arg1, u8 arg2, s16 arg3) { Actor* temp_v0; Actor* temp_v1; Actor* var_s0; @@ -272,7 +318,7 @@ block_7: } } -s32 func_80B53BA8(EnAn* arg0, PlayState* arg1) { +s32 func_80B53BA8(EnAn* this, PlayState* play) { s8 sp1F; s32 temp_v0; s32 var_t0; @@ -283,26 +329,26 @@ s32 func_80B53BA8(EnAn* arg0, PlayState* arg1) { s8 temp_a0_3; s8 temp_a3; - temp_v0 = arg0->unk_39C; - temp_a3 = arg0->actor.objBankIndex; + temp_v0 = this->unk_39C; + temp_a3 = this->actor.objBankIndex; var_v1 = -1; var_t0 = 0; if (temp_v0 >= 0x19) { - temp_a0 = arg0->unk_1DC[0x2F]; + temp_a0 = this->unk_20B; if (temp_a0 >= 0) { var_v1_2 = temp_a0 << 0x18; goto block_11; } } if (temp_v0 >= 0x15) { - temp_a0_2 = arg0->unk_1DC[0x2D]; + temp_a0_2 = this->unk_209; if (temp_a0_2 >= 0) { var_v1_2 = temp_a0_2 << 0x18; goto block_11; } } if (temp_v0 >= 0x11) { - temp_a0_3 = arg0->unk_1DC[0x2C]; + temp_a0_3 = this->unk_208; if (temp_a0_3 >= 0) { var_v1_2 = temp_a0_3 << 0x18; goto block_11; @@ -317,16 +363,16 @@ block_11: return 0; } if (var_v1 >= 0) { - *(gSegments + 0x18) = (arg1 + (var_v1 * 0x44))->unk_17D98 + 0x80000000; - arg0->unk_160 = (f32) arg0->unk_368; + *(gSegments + 0x18) = (u32) (play->objectCtx.status[var_v1].segment + 0x80000000); + this->unk_144.playSpeed = this->unk_368; sp1F = temp_a3; - var_t0 = SkelAnime_Update(arg0 + 0x144); - *(gSegments + 0x18) = (arg1 + (temp_a3 * 0x44))->unk_17D98 + 0x80000000; + var_t0 = SkelAnime_Update(&this->unk_144); + *(gSegments + 0x18) = (u32) (play->objectCtx.status[temp_a3].segment + 0x80000000); } return var_t0; } -s32 func_80B53CE8(Actor* arg0, PlayState* arg1, s32 arg2) { +s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { s8 sp1F; s32 temp_v0_4; s32 temp_v0_5; @@ -341,26 +387,26 @@ s32 func_80B53CE8(Actor* arg0, PlayState* arg1, s32 arg2) { s8 temp_v0_2; s8 temp_v0_3; - temp_t1 = arg0->objBankIndex; + temp_t1 = this->actor.objBankIndex; var_v1 = -1; var_t0 = 0; var_t2 = 0; if (arg2 >= 0x19) { - temp_v0 = arg0->unk_20B; + temp_v0 = this->unk_20B; if (temp_v0 >= 0) { var_v1_2 = temp_v0 << 0x18; goto block_11; } } if (arg2 >= 0x15) { - temp_v0_2 = arg0->unk_209; + temp_v0_2 = this->unk_209; if (temp_v0_2 >= 0) { var_v1_2 = temp_v0_2 << 0x18; goto block_11; } } if (arg2 >= 0x11) { - temp_v0_3 = arg0->unk_208; + temp_v0_3 = this->unk_208; if (temp_v0_3 >= 0) { var_v1_2 = temp_v0_3 << 0x18; goto block_11; @@ -377,7 +423,7 @@ block_11: switch (arg2) { case 0x1: case 0x2: - temp_v0_4 = arg0->unk_39C; + temp_v0_4 = this->unk_39C; if ((temp_v0_4 != 1) && (temp_v0_4 != 2)) { block_26: var_t0 = 1; @@ -385,58 +431,55 @@ block_26: break; case 0x7: case 0x8: - temp_v0_5 = arg0->unk_39C; + temp_v0_5 = this->unk_39C; if ((temp_v0_5 != 7) && (temp_v0_5 != 8)) { goto block_26; } break; case 0x9: case 0xA: - temp_v0_6 = arg0->unk_39C; + temp_v0_6 = this->unk_39C; if ((temp_v0_6 != 9) && (temp_v0_6 != 0xA)) { goto block_26; } break; default: - if (arg2 != arg0->unk_39C) { + if (arg2 != this->unk_39C) { goto block_26; } break; } if ((var_t0 != 0) && (var_v1 >= 0)) { - *(gSegments + 0x18) = (arg1 + (var_v1 * 0x44))->unk_17D98 + 0x80000000; - arg0->unk_39C = arg2; + *(gSegments + 0x18) = (u32) (play->objectCtx.status[var_v1].segment + 0x80000000); + this->unk_39C = arg2; sp1F = temp_t1; - temp_v0_7 = SubS_ChangeAnimationByInfoS(arg0 + 0x144, &D_80B58BF4, arg2); - arg0->unk_368 = (f32) arg0->unk_160; + temp_v0_7 = SubS_ChangeAnimationByInfoS(&this->unk_144, D_80B58BF4, arg2); + this->unk_368 = this->unk_144.playSpeed; var_t2 = temp_v0_7; - *(gSegments + 0x18) = (arg1 + (temp_t1 * 0x44))->unk_17D98 + 0x80000000; + *(gSegments + 0x18) = (u32) (play->objectCtx.status[temp_t1].segment + 0x80000000); } return var_t2; } -void func_80B53ED4(Actor* arg0, PlayState* arg1) { +void func_80B53ED4(EnAn* this, PlayState* play) { Vec3f sp24; ColliderCylinder* sp20; ColliderCylinder* temp_a2; - ColliderCylinder* var_a2; - temp_a2 = arg0 + 0x190; - if (arg0->unk_200 == 0x19) { - Lib_Vec3f_TranslateAndRotateY(arg0 + 0x24, arg0->shape.rot.y, &D_80B58E34, &sp24); - arg0->unk_1D0 = 0x14; - Math_Vec3f_ToVec3s(arg0 + 0x1D6, &sp24); - var_a2 = arg0 + 0x190; + temp_a2 = &this->unk_190; + if (this->unk_200 == 0x19) { + Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); + this->unk_190.dim.radius = 0x14; + Math_Vec3f_ToVec3s(&this->unk_190.dim.pos, &sp24); } else { sp20 = temp_a2; - Collider_UpdateCylinder(arg0, temp_a2); - var_a2 = temp_a2; + Collider_UpdateCylinder(&this->actor, temp_a2); } - arg0->unk_1D2 = (s16) (s32) (arg0->focus.pos.y - arg0->world.pos.y); - CollisionCheck_SetOC(arg1, arg1 + 0x18884, &var_a2->base); + this->unk_190.dim.height = (s16) (s32) (this->actor.focus.pos.y - this->actor.world.pos.y); + CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); } -void func_80B53F84(EnAn* arg0) { +void func_80B53F84(EnAn* this) { s16 temp_t9; s16 temp_v0; s16 temp_v0_2; @@ -448,96 +491,96 @@ void func_80B53F84(EnAn* arg0) { s32 var_a1; var_a1 = 0; - if (arg0->unk_360 & 0x100) { - temp_v0 = arg0->unk_38E; + if (this->unk_360 & 0x100) { + temp_v0 = this->unk_38E; if (temp_v0 == 0) { var_v1 = 0; } else { - arg0->unk_38E = (s16) (temp_v0 - 1); - var_v1 = arg0->unk_38E; + this->unk_38E = temp_v0 - 1; + var_v1 = this->unk_38E; } if (var_v1 == 0) { - temp_t9 = arg0->unk_38C; + temp_t9 = this->unk_38C; switch (temp_t9) { case 0x2: case 0x4: case 0x6: - temp_v0_2 = arg0->unk_390; + temp_v0_2 = this->unk_390; if ((temp_v0_2 == 5) || (temp_v0_2 == 2)) { var_a1 = 1; - arg0->unk_390 = 5; + this->unk_390 = 5; } break; case 0x5: case 0x7: - temp_v0_3 = arg0->unk_390; + temp_v0_3 = this->unk_390; if ((temp_v0_3 == 6) || (temp_v0_3 == 1)) { var_a1 = 1; - arg0->unk_390 = 6; + this->unk_390 = 6; } break; case 0x8: - temp_v0_4 = arg0->unk_390; + temp_v0_4 = this->unk_390; if ((temp_v0_4 == 4) || (temp_v0_4 == 2)) { var_a1 = 1; - arg0->unk_390 = 4; + this->unk_390 = 4; } break; } if (var_a1 == 0) { - temp_v0_5 = arg0->unk_390; + temp_v0_5 = this->unk_390; if ((temp_v0_5 == 4) || (temp_v0_5 == 5)) { - arg0->unk_390 = 0; + this->unk_390 = 0; } else if (temp_v0_5 == 6) { - arg0->unk_390 = 1; + this->unk_390 = 1; } } if (var_a1 == 0) { - arg0->unk_390 = (s16) (arg0->unk_390 + 1); - if (arg0->unk_390 >= 4) { - temp_v0_6 = arg0->unk_38C; + this->unk_390 += 1; + if (this->unk_390 >= 4) { + temp_v0_6 = this->unk_38C; if ((temp_v0_6 == 0) || (temp_v0_6 == 1) || (temp_v0_6 == 3)) { - arg0->unk_38E = Rand_S16Offset(0x1E, 0x1E); + this->unk_38E = Rand_S16Offset(0x1E, 0x1E); } else { - arg0->unk_38E = 8; + this->unk_38E = 8; } - arg0->unk_390 = 0; + this->unk_390 = 0; } } } } - arg0->unk_392 = (s16) *(&D_80B58E40 + (arg0->unk_38C * 2)); + this->unk_392 = *(&D_80B58E40 + (this->unk_38C * 2)); } -void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2) { +void func_80B54124(EnAn* this, GraphicsContext** gfxCtx, u32 arg2) { s8 sp53; s8 sp52; GraphicsContext* sp4C; - void* sp44; - void* sp40; + Gfx* sp44; + Gfx* sp40; + Gfx* temp_v0; + Gfx* temp_v0_10; + Gfx* temp_v0_11; + Gfx* temp_v0_12; + Gfx* temp_v0_13; + Gfx* temp_v0_14; + Gfx* temp_v0_15; + Gfx* temp_v0_16; + Gfx* temp_v0_17; + Gfx* temp_v0_18; + Gfx* temp_v0_2; + Gfx* temp_v0_3; + Gfx* temp_v0_4; + Gfx* temp_v0_5; + Gfx* temp_v0_6; + Gfx* temp_v0_7; + Gfx* temp_v0_8; + Gfx* temp_v0_9; GraphicsContext* temp_t0; s8 temp_a2; s8 temp_a2_2; s8 temp_a2_3; s8 temp_a2_4; - void* temp_v0; - void* temp_v0_10; - void* temp_v0_11; - void* temp_v0_12; - void* temp_v0_13; - void* temp_v0_14; - void* temp_v0_15; - void* temp_v0_16; - void* temp_v0_17; - void* temp_v0_18; - void* temp_v0_2; - void* temp_v0_3; - void* temp_v0_4; - void* temp_v0_5; - void* temp_v0_6; - void* temp_v0_7; - void* temp_v0_8; - void* temp_v0_9; sp53 = arg0->objBankIndex; temp_t0 = *arg1; @@ -550,89 +593,89 @@ void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2) { arg0->unk_3AC = (u32) (arg0->unk_3AC - 2); sp4C = temp_t0; Gfx_SetupDL25_Xlu(*arg1); - temp_v0 = temp_t0->polyXlu.tha.head; - temp_t0->polyXlu.tha.head = temp_v0 + 8; - *temp_v0 = 0xDA380003; + temp_v0 = temp_t0->polyXlu.p; + temp_t0->polyXlu.p = temp_v0 + 8; + temp_v0->words.w0 = 0xDA380003; sp4C = temp_t0; sp44 = temp_v0; - sp44->unk_4 = Matrix_NewMtx(*arg1); - temp_v0_2 = temp_t0->polyXlu.tha.head; - temp_t0->polyXlu.tha.head = temp_v0_2 + 8; - *temp_v0_2 = 0xDB060020; + sp44->words.w1 = Matrix_NewMtx(*arg1); + temp_v0_2 = temp_t0->polyXlu.p; + temp_t0->polyXlu.p = temp_v0_2 + 8; + temp_v0_2->words.w0 = 0xDB060020; sp4C = temp_t0; sp40 = temp_v0_2; - sp40->unk_4 = Gfx_TwoTexScroll(*arg1, 0, arg0->unk_3A8, 0U, 0x10, 0x10, 1, 0U, arg0->unk_3AC, 0x10, 0x10); - temp_v0_3 = temp_t0->polyXlu.tha.head; - temp_t0->polyXlu.tha.head = temp_v0_3 + 8; - temp_v0_3->unk_0 = 0xDE000000; - temp_v0_3->unk_4 = &D_060111E8; + sp40->words.w1 = Gfx_TwoTexScroll(*arg1, 0, arg0->unk_3A8, 0U, 0x10, 0x10, 1, 0U, arg0->unk_3AC, 0x10, 0x10); + temp_v0_3 = temp_t0->polyXlu.p; + temp_t0->polyXlu.p = temp_v0_3 + 8; + temp_v0_3->words.w0 = 0xDE000000; + temp_v0_3->words.w1 = (u32) &D_060111E8; Gfx_SetupDL25_Opa(*arg1); } break; case 0x1: temp_a2 = arg0->unk_20A; if ((arg0->unk_360 & 0x4000) && (arg0->unk_3B0 == 0) && (temp_a2 >= 0)) { - temp_v0_4 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_4 + 8; - temp_v0_4->unk_0 = 0xDB060028; - temp_v0_4->unk_4 = (?* ) (arg1 + (temp_a2 * 0x44))->unk_17D98; + temp_v0_4 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_4 + 8; + temp_v0_4->words.w0 = 0xDB060028; + temp_v0_4->words.w1 = (arg1 + (temp_a2 * 0x44))->unk_17D98; sp4C = temp_t0; Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); - temp_v0_5 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_5 + 8; - temp_v0_5->unk_0 = 0xDA380003; + temp_v0_5 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_5 + 8; + temp_v0_5->words.w0 = 0xDA380003; sp4C = temp_t0; - temp_v0_5->unk_4 = Matrix_NewMtx(*arg1); - temp_v0_6 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_6 + 8; - temp_v0_6->unk_0 = 0xDE000000; - temp_v0_6->unk_4 = &D_0A000D40; - temp_v0_7 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_7 + 8; - temp_v0_7->unk_0 = 0xDB060018; - temp_v0_7->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_5->words.w1 = Matrix_NewMtx(*arg1); + temp_v0_6 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_6 + 8; + temp_v0_6->words.w0 = 0xDE000000; + temp_v0_6->words.w1 = (u32) &D_0A000D40; + temp_v0_7 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_7 + 8; + temp_v0_7->words.w0 = 0xDB060018; + temp_v0_7->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; } break; case 0x2: temp_a2_2 = arg0->unk_208; if ((arg0->unk_360 & 0x1000) && (arg0->unk_3B0 == 0) && (temp_a2_2 >= 0)) { - temp_v0_8 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_8 + 8; - temp_v0_8->unk_0 = 0xDB060018; - temp_v0_8->unk_4 = (?* ) (arg1 + (temp_a2_2 * 0x44))->unk_17D98; - temp_v0_9 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_9 + 8; - temp_v0_9->unk_4 = &D_06000378; - temp_v0_9->unk_0 = 0xDE000000; - temp_v0_10 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_10 + 8; - temp_v0_10->unk_0 = 0xDB060018; - temp_v0_10->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_8 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_8 + 8; + temp_v0_8->words.w0 = 0xDB060018; + temp_v0_8->words.w1 = (arg1 + (temp_a2_2 * 0x44))->unk_17D98; + temp_v0_9 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_9 + 8; + temp_v0_9->words.w1 = (u32) &D_06000378; + temp_v0_9->words.w0 = 0xDE000000; + temp_v0_10 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_10 + 8; + temp_v0_10->words.w0 = 0xDB060018; + temp_v0_10->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; } break; case 0x3: temp_a2_3 = arg0->unk_209; if ((arg0->unk_360 & 0x2000) && (arg0->unk_3B0 == 0) && (temp_a2_3 >= 0)) { - temp_v0_11 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_11 + 8; - temp_v0_11->unk_0 = 0xDB060018; - temp_v0_11->unk_4 = (?* ) (arg1 + (temp_a2_3 * 0x44))->unk_17D98; - temp_v0_12 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_12 + 8; - temp_v0_12->unk_4 = &D_06000308; - temp_v0_12->unk_0 = 0xDE000000; - temp_v0_13 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_13 + 8; - temp_v0_13->unk_0 = 0xDB060018; - temp_v0_13->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_11 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_11 + 8; + temp_v0_11->words.w0 = 0xDB060018; + temp_v0_11->words.w1 = (arg1 + (temp_a2_3 * 0x44))->unk_17D98; + temp_v0_12 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_12 + 8; + temp_v0_12->words.w1 = (u32) &D_06000308; + temp_v0_12->words.w0 = 0xDE000000; + temp_v0_13 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_13 + 8; + temp_v0_13->words.w0 = 0xDB060018; + temp_v0_13->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; } break; case 0x4: if ((arg0->unk_360 & 0x8000) && (arg0->unk_3B0 == 0)) { - temp_v0_14 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_14 + 8; - temp_v0_14->unk_4 = &D_06012478; - temp_v0_14->unk_0 = 0xDE000000; + temp_v0_14 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_14 + 8; + temp_v0_14->words.w1 = (u32) &D_06012478; + temp_v0_14->words.w0 = 0xDE000000; } break; case 0x5: @@ -641,24 +684,24 @@ void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2) { sp52 = temp_a2_4; sp4C = temp_t0; Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); - temp_v0_15 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_15 + 8; - temp_v0_15->unk_0 = 0xDA380003; + temp_v0_15 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_15 + 8; + temp_v0_15->words.w0 = 0xDA380003; sp4C = temp_t0; sp52 = temp_a2_4; - temp_v0_15->unk_4 = Matrix_NewMtx(*arg1); - temp_v0_16 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_16 + 8; - temp_v0_16->unk_0 = 0xDB060018; - temp_v0_16->unk_4 = (?* ) (arg1 + (temp_a2_4 * 0x44))->unk_17D98; - temp_v0_17 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_17 + 8; - temp_v0_17->unk_4 = &D_06000E70; - temp_v0_17->unk_0 = 0xDE000000; - temp_v0_18 = temp_t0->polyOpa.tha.head; - temp_t0->polyOpa.tha.head = temp_v0_18 + 8; - temp_v0_18->unk_0 = 0xDB060018; - temp_v0_18->unk_4 = (?* ) (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_15->words.w1 = Matrix_NewMtx(*arg1); + temp_v0_16 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_16 + 8; + temp_v0_16->words.w0 = 0xDB060018; + temp_v0_16->words.w1 = (arg1 + (temp_a2_4 * 0x44))->unk_17D98; + temp_v0_17 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_17 + 8; + temp_v0_17->words.w1 = (u32) &D_06000E70; + temp_v0_17->words.w0 = 0xDE000000; + temp_v0_18 = temp_t0->polyOpa.p; + temp_t0->polyOpa.p = temp_v0_18 + 8; + temp_v0_18->words.w0 = 0xDB060018; + temp_v0_18->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; } break; } @@ -872,7 +915,7 @@ s32 func_80B54BC4(Actor* arg0, PlayState* arg1) { return 0; } -s32 func_80B54C5C(Actor* arg0) { +s32 func_80B54C5C(EnAn* arg0, PlayState* arg1) { s32 sp20; s16 temp_v0; @@ -880,25 +923,25 @@ s32 func_80B54C5C(Actor* arg0) { temp_v0 = arg0->unk_394; switch (temp_v0) { /* irregular */ case 0x0: - func_80B53CE8(arg0, (PlayState* )0xD); - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + func_80B53CE8(arg0, arg1, 0xD); + arg0->unk_394 += 1; break; case 0x1: case 0x3: - if (Animation_OnFrame(arg0 + 0x144, arg0->unk_154) != 0) { - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + if (Animation_OnFrame(arg0 + 0x144, arg0->unk_144.endFrame) != 0) { + arg0->unk_394 += 1; sp20 = 1; } break; case 0x2: - func_80B53CE8(arg0, (PlayState* )0xE); - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + func_80B53CE8(arg0, arg1, 0xE); + arg0->unk_394 += 1; break; } return sp20; } -s32 func_80B54D18(Actor* arg0, PlayState* arg1) { +s32 func_80B54D18(EnAn* arg0, PlayState* arg1) { s16 temp_v0; s32 var_v1; u16 temp_t6; @@ -908,25 +951,25 @@ s32 func_80B54D18(Actor* arg0, PlayState* arg1) { switch (temp_v0) { /* irregular */ case 0x0: if ((Player_GetMask(arg1) == 2) || (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + arg0->unk_394 += 1; case 0x1: temp_t6 = arg0->unk_360 & 0xBFDF; arg0->unk_360 = temp_t6; - arg0->unk_360 = (u16) (temp_t6 | 0x200); - func_80B53CE8(arg0, arg1, 0x14, arg0); + arg0->unk_360 = temp_t6 | 0x200; + func_80B53CE8(arg0, arg1, 0x14); var_v1 = 1; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + arg0->unk_394 += 1; } else { var_v1 = 1; - arg0->unk_360 = (u16) (arg0->unk_360 | 0x4000); - arg0->unk_394 = (s16) (arg0->unk_394 + 1); + arg0->unk_360 |= 0x4000; + arg0->unk_394 += 1; } break; } return var_v1; } -?* func_80B54DF4(Actor* arg0, PlayState* arg1) { +?* func_80B54DF4(EnAn* arg0, PlayState* arg1) { Actor* sp1C; Actor* temp_v1; u8 temp_a0; @@ -948,7 +991,7 @@ s32 func_80B54D18(Actor* arg0, PlayState* arg1) { arg0->unk_398 = func_80B5492C; return &D_80B58784; case 0xE: /* switch 1 */ - arg0->unk_398 = func_80B54C5C; + arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54C5C; return &D_80B58954; case 0xC: /* switch 1 */ return &D_80B5899C; @@ -992,7 +1035,7 @@ s32 func_80B54D18(Actor* arg0, PlayState* arg1) { return &D_80B589AC; } if (temp_v0_2 == 3) { - arg0->unk_398 = func_80B54D18; + arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; return &D_80B58B3C; } if (gSaveContext.save.day >= 2) { @@ -1011,7 +1054,7 @@ s32 func_80B54D18(Actor* arg0, PlayState* arg1) { return &D_80B589AC; } if (temp_v0_3 == 3) { - arg0->unk_398 = func_80B54D18; + arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; return &D_80B58AF4; } if (gSaveContext.save.day >= 2) { @@ -1032,7 +1075,7 @@ block_40: case 0x2D: /* switch 3 */ return &D_80B58980; case 0x3: /* switch 3 */ - arg0->unk_398 = func_80B54D18; + arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; return &D_80B58AF4; case 0x12: /* switch 3 */ if (gSaveContext.save.day >= 2) { @@ -1064,59 +1107,59 @@ block_40: } } -s32 func_80B55180(Actor* arg0, GameState* arg1) { +s32 func_80B55180(EnAn* this, PlayState* play) { s32 sp1C; s32 var_v1; u8 temp_v1; var_v1 = 0; - if (arg0->unk_360 & 7) { + if (this->unk_360 & 7) { sp1C = 0; var_v1 = sp1C; - if (Actor_ProcessTalkRequest(arg0, arg1) != 0) { - SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); - arg0->unk_3C4 = 0; - arg0->unk_394 = 0; - arg0->unk_398 = 0; - arg0->child = arg0->unk_218; - temp_v1 = arg0->unk_200; - arg0->unk_204 = func_80B54DF4(arg0, (PlayState* ) arg1); + if (Actor_ProcessTalkRequest(&this->actor, &play->state) != 0) { + SubS_SetOfferMode(&this->unk_360, 0U, 7U); + this->unk_3C4 = 0; + this->unk_394 = 0; + this->unk_398 = NULL; + this->actor.child = this->unk_218; + temp_v1 = this->unk_200; + this->unk_204 = func_80B54DF4(this, play); if ((temp_v1 == 1) || (temp_v1 == 3) || (temp_v1 == 0x12) || (temp_v1 == 0x13) || (temp_v1 == 0x17) || (temp_v1 == 0x16) || (temp_v1 == 0x28) || (temp_v1 == 0x2A) || (temp_v1 == 0x2B) || (temp_v1 == 0x2C) || (temp_v1 == 0x2D) || (temp_v1 == 0x2F) || (temp_v1 == 0x30) || (temp_v1 == 0x31) || (temp_v1 == 0x34) || (temp_v1 == 0x35)) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); + this->unk_360 |= 0x20; } - if ((arg0->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + if ((this->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + this->unk_360 &= 0xFFDF; } - arg0->unk_188 = func_80B57A44; + this->actionFunc = func_80B57A44; var_v1 = 1; } } return var_v1; } -s32 func_80B552E4(EnAn* arg0, PlayState* arg1) { +s32 func_80B552E4(EnAn* this, PlayState* play) { s32 var_v1; u16 temp_v0; - temp_v0 = arg1->csCtx.scriptIndex; + temp_v0 = play->csCtx.scriptIndex; var_v1 = 0; - if ((arg1->csCtx.state != 0) && (arg1->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { - if (arg0->unk_3B0 == 0) { - arg0->unk_38A = 0; - arg0->unk_38C = 0; - arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); - arg0->unk_38E = 8; - arg0->unk_218[0x14C] = -1; - arg0->unk_3B0 = 1; - arg0->unk_3B4 = 0; + if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { + if (this->unk_3B0 == 0) { + this->unk_38A = 0; + this->unk_38C = 0; + this->unk_360 |= 0x300; + this->unk_38E = 8; + this->unk_364 = -1; + this->unk_3B0 = 1; + this->unk_3B4 = 0; } var_v1 = 1; - } else if (arg0->unk_3B0 != 0) { - arg0->unk_3B0 = 0; - arg0->unk_3B4 = 0; - arg0->unk_3C0 = 1; - arg0->actionFunc = func_80B578F8; - arg0->actor.room = arg1->roomCtx.curRoom.num; + } else if (this->unk_3B0 != 0) { + this->unk_3B0 = 0; + this->unk_3B4 = 0; + this->unk_3C0 = 1; + this->actionFunc = func_80B578F8; + this->actor.room = play->roomCtx.curRoom.num; } return var_v1; } @@ -1163,57 +1206,57 @@ void func_80B553AC(void* arg0) { arg0->unk_37C = var_v1_2; } -void func_80B554E8(EnAn* arg0) { +void func_80B554E8(EnAn* this) { + Actor* temp_v0; s16 temp_v0_2; s16 temp_v0_4; s16 var_v1; s16 var_v1_2; u16 temp_t2; u16 temp_v0_3; - void* temp_v0; - if (arg0->unk_360 & 0x20) { - temp_v0 = arg0->unk_218; - if ((temp_v0 != NULL) && (temp_v0->unk_138 != 0)) { - temp_v0_2 = arg0->unk_388; + if (this->unk_360 & 0x20) { + temp_v0 = this->unk_218; + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + temp_v0_2 = this->unk_388; if (temp_v0_2 == 0) { var_v1 = 0; } else { - arg0->unk_388 = (s16) (temp_v0_2 - 1); - var_v1 = arg0->unk_388; + this->unk_388 = temp_v0_2 - 1; + var_v1 = this->unk_388; } if (var_v1 == 0) { func_80B553AC(); - temp_t2 = arg0->unk_360 & 0xFDFF; - arg0->unk_360 = temp_t2; - arg0->unk_360 = (u16) (temp_t2 | 0x80); + temp_t2 = this->unk_360 & 0xFDFF; + this->unk_360 = temp_t2; + this->unk_360 = temp_t2 | 0x80; return; } goto block_8; } } block_8: - temp_v0_3 = arg0->unk_360; + temp_v0_3 = this->unk_360; if (temp_v0_3 & 0x80) { - arg0->unk_360 = (u16) (temp_v0_3 & 0xFF7F); - arg0->unk_37C = 0; - arg0->unk_37E = 0; - arg0->unk_388 = 0x14; + this->unk_360 = temp_v0_3 & 0xFF7F; + this->unk_37C = 0; + this->unk_37E = 0; + this->unk_388 = 0x14; return; } - temp_v0_4 = arg0->unk_388; + temp_v0_4 = this->unk_388; if (temp_v0_4 == 0) { var_v1_2 = 0; } else { - arg0->unk_388 = (s16) (temp_v0_4 - 1); - var_v1_2 = arg0->unk_388; + this->unk_388 = temp_v0_4 - 1; + var_v1_2 = this->unk_388; } if (var_v1_2 == 0) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x200); + this->unk_360 |= 0x200; } } -? func_80B555C8(Actor* arg0, PlayState* arg1) { +? func_80B555C8(EnAn* arg0, PlayState* arg1) { s32 var_v0; u8 temp_t6; @@ -1224,31 +1267,31 @@ block_8: case 0x12: case 0x13: case 0x17: - func_80B53CE8((Actor* )1); + func_80B53CE8(arg0, arg1, 1); break; case 0x16: - func_80B53CE8((Actor* )0x17); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x2000); + func_80B53CE8(arg0, arg1, 0x17); + arg0->unk_360 |= 0x2000; break; case 0xE: - func_80B53CE8((Actor* )0xC); + func_80B53CE8(arg0, arg1, 0xC); break; case 0x15: - func_80B53CE8((Actor* )0xF); + func_80B53CE8(arg0, arg1, 0xF); break; case 0x2F: case 0x31: - func_80B53CE8((Actor* )7); + func_80B53CE8(arg0, arg1, 7); break; case 0x34: case 0x35: - func_80B53CE8((Actor* )0x16); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x2000); + func_80B53CE8(arg0, arg1, 0x16); + arg0->unk_360 |= 0x2000; break; default: var_v0 = arg0->unk_39C; if (var_v0 == 0xF) { - func_80B53CE8((Actor* )0x10); + func_80B53CE8(arg0, arg1, 0x10); var_v0 = arg0->unk_39C; } if (var_v0 == 0x11) { @@ -1263,88 +1306,88 @@ block_8: return 0; } -void func_80B556F8(Actor* arg0, PlayState* arg1) { +void func_80B556F8(EnAn* arg0, PlayState* arg1) { s16 temp_v0; u16 temp_t4; u16 temp_t8; temp_v0 = arg0->unk_396; if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 6, (Actor* ) arg1); + func_80B53CE8(arg0, arg1, 6); temp_t8 = arg0->unk_360 & 0xFFDF; arg0->unk_360 = temp_t8; - arg0->unk_360 = (u16) (temp_t8 | 0x200); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t8 | 0x200; + arg0->unk_396 += 1; return; } - if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { - func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { + func_80B53CE8(arg0, arg1, 2); temp_t4 = arg0->unk_360 & 0xFDFF; arg0->unk_360 = temp_t4; - arg0->unk_360 = (u16) (temp_t4 | 0x20); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t4 | 0x20; + arg0->unk_396 += 1; } } -void func_80B557AC(Actor* arg0, PlayState* arg1) { +void func_80B557AC(EnAn* arg0, PlayState* arg1) { s16 temp_v0; u16 temp_t4; u16 temp_t8; temp_v0 = arg0->unk_396; if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 3, (Actor* ) arg1); + func_80B53CE8(arg0, arg1, 3); temp_t8 = arg0->unk_360 & 0xFFDF; arg0->unk_360 = temp_t8; - arg0->unk_360 = (u16) (temp_t8 | 0x200); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t8 | 0x200; + arg0->unk_396 += 1; return; } - if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { - func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { + func_80B53CE8(arg0, arg1, 2); temp_t4 = arg0->unk_360 & 0xFDFF; arg0->unk_360 = temp_t4; - arg0->unk_360 = (u16) (temp_t4 | 0x20); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t4 | 0x20; + arg0->unk_396 += 1; } } -void func_80B55860(Actor* arg0, PlayState* arg1) { +void func_80B55860(EnAn* arg0, PlayState* arg1) { s16 temp_v0; u16 temp_t4; u16 temp_t8; temp_v0 = arg0->unk_396; if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 4, (Actor* ) arg1); + func_80B53CE8(arg0, arg1, 4); temp_t8 = arg0->unk_360 | 0x200; arg0->unk_360 = temp_t8; - arg0->unk_360 = (u16) (temp_t8 & 0xFFDF); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t8 & 0xFFDF; + arg0->unk_396 += 1; return; } - if ((temp_v0 == 1) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { - func_80B53CE8(arg0, arg1, 2, (Actor* ) arg1); + if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { + func_80B53CE8(arg0, arg1, 2); temp_t4 = arg0->unk_360 & 0xFDFF; arg0->unk_360 = temp_t4; - arg0->unk_360 = (u16) (temp_t4 | 0x20); - arg0->unk_396 = (s16) (arg0->unk_396 + 1); + arg0->unk_360 = temp_t4 | 0x20; + arg0->unk_396 += 1; } } -? func_80B55914(Actor* arg0, Actor* arg1) { +void func_80B55914(EnAn* this, PlayState* play) { u16 sp22; s32 sp18; s32 var_v0; u16 temp_t3; u16 temp_v0; - void (*temp_v0_2)(Actor*, PlayState*); + void (*temp_v0_2)(EnAn*, PlayState*); - sp22 = arg1->unk_1680C; - if (arg1->unk_1CCC->unk_A6C & 0x40) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x400); + sp22 = play->msgCtx.currentTextId; + if (play->actorCtx.actorLists[2].first->unk_A6C & 0x40) { + this->unk_360 |= 0x400; sp18 = (s32) sp22; - if (sp22 != arg0->unk_362) { + if (sp22 != this->unk_362) { if ((s32) sp22 >= 0x28F9) { if (sp22 != 0x295E) { goto block_23; @@ -1353,36 +1396,36 @@ void func_80B55860(Actor* arg0, PlayState* arg1) { } switch (sp18) { /* switch 3; irregular */ case 0x28E5: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )5); - arg0->unk_360 = (u16) (arg0->unk_360 & 0xDFFF); + func_80B53CE8(this, play, 5); + this->unk_360 &= 0xDFFF; break; case 0x28BA: /* switch 3 */ case 0x28D1: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )5); + func_80B53CE8(this, play, 5); break; case 0x28AF: /* switch 3 */ case 0x28C1: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )1); + func_80B53CE8(this, play, 1); break; case 0x28BC: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )2); + func_80B53CE8(this, play, 2); break; case 0x28C6: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )0xF); + func_80B53CE8(this, play, 0xF); break; case 0x28F5: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )0xA); + func_80B53CE8(this, play, 0xA); break; case 0x28F7: /* switch 3 */ case 0x28F8: /* switch 3 */ - func_80B53CE8(arg1, (PlayState* )0x15); + func_80B53CE8(this, play, 0x15); break; case 0x28EB: /* switch 3 */ - if (arg0->unk_39C != 0x14) { - temp_t3 = arg0->unk_360 & 0xBFDF; - arg0->unk_360 = temp_t3; - arg0->unk_360 = (u16) (temp_t3 | 0x200); - func_80B53CE8(arg1, (PlayState* )0x14); + if (this->unk_39C != 0x14) { + temp_t3 = this->unk_360 & 0xBFDF; + this->unk_360 = temp_t3; + this->unk_360 = temp_t3 | 0x200; + func_80B53CE8(this, play, 0x14); } break; case 0x28A4: /* switch 3 */ @@ -1390,13 +1433,13 @@ void func_80B55860(Actor* arg0, PlayState* arg1) { case 0x28BE: /* switch 3 */ case 0x28C0: /* switch 3 */ block_20: - arg0->unk_18C = func_80B556F8; - arg0->unk_396 = 0; + this->unk_18C = func_80B556F8; + this->unk_396 = 0; break; case 0x28E6: /* switch 3 */ - arg0->unk_360 = (u16) (arg0->unk_360 & 0xDFFF); - arg0->unk_18C = func_80B55860; - arg0->unk_396 = 0; + this->unk_360 &= 0xDFFF; + this->unk_18C = func_80B55860; + this->unk_396 = 0; break; case 0x1885: /* switch 3 */ case 0x28A0: /* switch 3 */ @@ -1407,8 +1450,8 @@ block_20: case 0x28D9: /* switch 3 */ case 0x28DC: /* switch 3 */ case 0x28DE: /* switch 3 */ - arg0->unk_18C = func_80B557AC; - arg0->unk_396 = 0; + this->unk_18C = func_80B557AC; + this->unk_396 = 0; break; case 0x28A1: /* switch 3 */ case 0x28A2: /* switch 3 */ @@ -1476,41 +1519,41 @@ block_20: case 0x28F4: /* switch 3 */ case 0x28F6: /* switch 3 */ block_23: - var_v0 = arg0->unk_39C; + var_v0 = this->unk_39C; if (var_v0 == 0x10) { - func_80B53CE8(arg1, (PlayState* )0xF); - var_v0 = arg0->unk_39C; + func_80B53CE8(this, play, 0xF); + var_v0 = this->unk_39C; } if (var_v0 == 0x12) { - func_80B53CE8(arg0, (PlayState* ) arg1, 0x11); - var_v0 = arg0->unk_39C; + func_80B53CE8(this, play, 0x11); + var_v0 = this->unk_39C; } if ((var_v0 == 0x16) || (var_v0 == 0x17)) { - func_80B53CE8(arg0, (PlayState* ) arg1, 0x15); - var_v0 = arg0->unk_39C; + func_80B53CE8(this, play, 0x15); + var_v0 = this->unk_39C; } if ((var_v0 == 7) || (var_v0 == (s32) 8)) { - func_80B53CE8(arg0, (PlayState* ) arg1, 2); + func_80B53CE8(this, play, 2); } break; } switch (sp18) { /* switch 4; irregular */ case 0x28F5: /* switch 4 */ - arg0->unk_38A = 0; + this->unk_38A = 0; /* fallthrough */ case 0x28A5: /* switch 4 */ case 0x28AA: /* switch 4 */ case 0x28F8: /* switch 4 */ - arg0->unk_38C = 0; + this->unk_38C = 0; block_50: - arg0->unk_38E = 8; + this->unk_38E = 8; break; case 0x1885: /* switch 4 */ case 0x28A0: /* switch 4 */ case 0x28A6: /* switch 4 */ case 0x28AF: /* switch 4 */ case 0x28C1: /* switch 4 */ - arg0->unk_38C = 3; + this->unk_38C = 3; goto block_50; case 0x28A2: /* switch 4 */ case 0x28B3: /* switch 4 */ @@ -1523,19 +1566,19 @@ block_50: case 0x28E5: /* switch 4 */ case 0x28E7: /* switch 4 */ case 0x28ED: /* switch 4 */ - arg0->unk_38C = 1; + this->unk_38C = 1; goto block_50; case 0x28AD: /* switch 4 */ - arg0->unk_38C = 8; + this->unk_38C = 8; goto block_50; case 0x28C0: /* switch 4 */ case 0x28D7: /* switch 4 */ case 0x28DE: /* switch 4 */ - arg0->unk_38C = 2; + this->unk_38C = 2; goto block_50; case 0x28E6: /* switch 4 */ case 0x28F7: /* switch 4 */ - arg0->unk_38C = 6; + this->unk_38C = 6; goto block_50; case 0x28A3: /* switch 4 */ case 0x28B1: /* switch 4 */ @@ -1547,43 +1590,42 @@ block_50: case 0x28E2: /* switch 4 */ case 0x28E3: /* switch 4 */ case 0x28E4: /* switch 4 */ - arg0->unk_38C = 4; + this->unk_38C = 4; goto block_50; case 0x28EC: /* switch 4 */ - arg0->unk_38A = 5; + this->unk_38A = 5; /* fallthrough */ case 0x28DC: /* switch 4 */ case 0x28EB: /* switch 4 */ case 0x28F2: /* switch 4 */ case 0x28F9: /* switch 4 */ - arg0->unk_38C = 5; + this->unk_38C = 5; goto block_50; case 0x28F6: /* switch 4 */ - arg0->unk_38C = 9; + this->unk_38C = 9; goto block_50; case 0x28A4: /* switch 4 */ case 0x28A9: /* switch 4 */ - arg0->unk_38C = 7; + this->unk_38C = 7; goto block_50; } } - arg0->unk_362 = sp22; + this->unk_362 = sp22; } else { - temp_v0 = arg0->unk_360; + temp_v0 = this->unk_360; if (temp_v0 & 0x400) { - arg0->unk_18C = NULL; - arg0->unk_362 = 0U; - arg0->unk_360 = (u16) (temp_v0 & 0xFBFF); - arg0->unk_38E = 4; - arg0->unk_38C = (s16) arg0->unk_38A; - func_80B555C8(arg1); + this->unk_18C = NULL; + this->unk_362 = 0; + this->unk_360 = temp_v0 & 0xFBFF; + this->unk_38E = 4; + this->unk_38C = this->unk_38A; + func_80B555C8((EnAn* ) play); } } - temp_v0_2 = arg0->unk_18C; + temp_v0_2 = this->unk_18C; if (temp_v0_2 != NULL) { - temp_v0_2(arg0, (PlayState* ) arg1); + temp_v0_2(this, play); } - return 0; } Actor* func_80B55D20(EnAn* arg0, PlayState* arg1) { @@ -1591,27 +1633,27 @@ Actor* func_80B55D20(EnAn* arg0, PlayState* arg1) { Actor* var_v1; u8 temp_v0; - temp_v0 = arg0->unk_1DC[0x24]; + temp_v0 = arg0->unk_200; switch (temp_v0) { /* irregular */ default: var_v1 = arg1->actorCtx.actorLists[2].first; break; case 0x15: - var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x243); + var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x243); block_7: var_v1 = var_v0; break; case 0x10: - var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x1D5); + var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x1D5); goto block_7; case 0x11: - var_v0 = func_80B539CC((Actor* )4, (PlayState* )0x276); + var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x276); goto block_7; } return var_v1; } -s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { +s32 func_80B55D98(EnAn* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { u8 sp4F; void* sp48; Vec3f sp3C; @@ -1625,7 +1667,7 @@ s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { void* temp_v0_3; sp24 = 0; - sp4F = (u8) arg0->params; + sp4F = (u8) arg0->actor.params; temp_v0 = func_80B539CC(arg0, arg1, arg3, arg4); arg0->unk_1DC = NULL; var_v1 = temp_v0; @@ -1642,9 +1684,9 @@ s32 func_80B55D98(Actor* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { sp48 = temp_v0_3; Math_Vec3s_ToVec3f(&sp3C, ((arg0->unk_1DC->count * 6) + temp_v0_3) - 0xC); Math_Vec3s_ToVec3f(&sp30, ((arg0->unk_1DC->count * 6) + sp48) - 6); - arg0->shape.shadowDraw = NULL; - arg0->world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); - Math_Vec3f_Copy(&arg0->world.pos, &sp30); + arg0->actor.shape.shadowDraw = NULL; + arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); + Math_Vec3f_Copy(&arg0->actor.world.pos, &sp30); sp24 = 1; } } @@ -1701,7 +1743,7 @@ block_5: return var_v1; } -s32 func_80B5600C(Actor* arg0, PlayState* arg1) { +s32 func_80B5600C(EnAn* arg0, PlayState* arg1) { s32 sp2C; s32 var_v1; u16 temp_t9; @@ -1710,16 +1752,16 @@ s32 func_80B5600C(Actor* arg0, PlayState* arg1) { var_v1 = sp2C; if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x1D5) != 0) { func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); var_v1 = 1; temp_t9 = arg0->unk_360 | 0x120; arg0->unk_360 = temp_t9; - arg0->unk_360 = (u16) (temp_t9 | 0x200); + arg0->unk_360 = temp_t9 | 0x200; } return var_v1; } -s32 func_80B56094(Actor* arg0, PlayState* arg1) { +s32 func_80B56094(EnAn* arg0, PlayState* arg1) { s32 sp2C; s32 var_v1; u16 temp_t9; @@ -1728,16 +1770,16 @@ s32 func_80B56094(Actor* arg0, PlayState* arg1) { var_v1 = sp2C; if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x276) != 0) { func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); var_v1 = 1; temp_t9 = arg0->unk_360 | 0x120; arg0->unk_360 = temp_t9; - arg0->unk_360 = (u16) (temp_t9 | 0x200); + arg0->unk_360 = temp_t9 | 0x200; } return var_v1; } -s32 func_80B5611C(Actor* arg0, PlayState* arg1) { +s32 func_80B5611C(EnAn* arg0, PlayState* arg1) { s32 sp2C; s32 var_v1; u16 temp_t9; @@ -1746,16 +1788,16 @@ s32 func_80B5611C(Actor* arg0, PlayState* arg1) { var_v1 = sp2C; if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x243) != 0) { func_80B53CE8(arg0, arg1, 0xF); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); var_v1 = 1; temp_t9 = arg0->unk_360 | 0x120; arg0->unk_360 = temp_t9; - arg0->unk_360 = (u16) (temp_t9 | 0xA00); + arg0->unk_360 = temp_t9 | 0xA00; } return var_v1; } -s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { +s32 func_80B561A4(EnAn* arg0, PlayState* arg1, void* arg2) { u16 sp56; u8 sp55; struct EnDoor* sp50; @@ -1772,7 +1814,7 @@ s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { sp56 = gSaveContext.save.time - 0x3FFC; sp2C = 0; - sp55 = (u8) arg0->params; + sp55 = (u8) arg0->actor.params; arg0->unk_1DC = NULL; sp50 = func_80B53B3C(arg1, arg2->unk_0); temp_a2 = *(&D_80B58618 + (arg2->unk_0 * 4)); @@ -1788,9 +1830,9 @@ s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { Math_Vec3s_ToVec3f(&sp34, sp4C + 6); Math_Vec3f_Copy(arg0 + 0x228, &sp40); Math_Vec3f_Copy(arg0 + 0x234, &sp34); - arg0->world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); Math_Vec3f_Copy(arg0 + 0x24, &sp40); - temp_v0_3 = arg0->world.rot.y - sp50->unk_BE; + temp_v0_3 = arg0->actor.world.rot.y - sp50->unk_BE; var_v1 = temp_v0_3; if (temp_v0_3 < 0) { var_v1 = -temp_v0_3; @@ -1800,8 +1842,8 @@ s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { } else { arg0->unk_215 = 0x4B; } - arg0->unk_378 = (s16) (arg2->unk_8 - arg2->unk_4); - arg0->unk_37A = (s16) (sp56 - arg2->unk_4); + arg0->unk_378 = arg2->unk_8 - arg2->unk_4; + arg0->unk_37A = sp56 - arg2->unk_4; temp_v0_4 = arg2->unk_0; switch (temp_v0_4) { /* switch 1 */ case 0x1B: /* switch 1 */ @@ -1821,29 +1863,29 @@ s32 func_80B561A4(Actor* arg0, PlayState* arg1, void* arg2) { case 0x1A: /* switch 2 */ case 0x1B: /* switch 2 */ case 0x1C: /* switch 2 */ - arg0->unk_360 = (u16) (arg0->unk_360 | 0x900); + arg0->unk_360 |= 0x900; func_80B53CE8(arg0, arg1, 0x10); break; case 0x24: /* switch 2 */ case 0x27: /* switch 2 */ - arg0->unk_360 = (u16) (arg0->unk_360 | 0x2100); + arg0->unk_360 |= 0x2100; func_80B53CE8(arg0, arg1, 0x16); break; default: /* switch 2 */ - arg0->unk_360 = (u16) (arg0->unk_360 | 0x100); + arg0->unk_360 |= 0x100; func_80B53CE8(arg0, arg1, 7); break; } - arg0->flags &= ~1; - arg0->unk_360 = (u16) (arg0->unk_360 | 0x200); - arg0->gravity = 0.0f; + arg0->actor.flags &= ~1; + arg0->unk_360 |= 0x200; + arg0->actor.gravity = 0.0f; sp2C = 1; } } return sp2C; } -s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { +s32 func_80B56418(EnAn* arg0, PlayState* arg1, void* arg2) { u16 sp2E; u8 sp2B; s32 sp20; @@ -1861,7 +1903,7 @@ s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { u8 temp_v0; u8 var_a1; - sp2B = arg0->params & 0xFF; + sp2B = arg0->actor.params & 0xFF; arg0->unk_1DC = NULL; temp_t0 = (gSaveContext.save.time - 0x3FFC) & 0xFFFF; var_v1 = 0; @@ -1886,17 +1928,17 @@ s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { } temp_v0_2 = arg2->unk_8; if (temp_v0_2 < (s32) var_v1_2) { - arg0->unk_1F0 = (s32) ((var_v1_2 - temp_v0_2) + 0xFFFF); + arg0->unk_1F0 = (var_v1_2 - temp_v0_2) + 0xFFFF; } else { - arg0->unk_1F0 = (s32) (temp_v0_2 - var_v1_2); + arg0->unk_1F0 = temp_v0_2 - var_v1_2; } - arg0->unk_1FC = (s32) (temp_t0 - var_v1_2); + arg0->unk_1FC = temp_t0 - var_v1_2; temp_lo = (s32) arg0->unk_1F0 / (s32) ((arg0->unk_1DC->count - 2) & 0xFFFF); arg0->unk_1F4 = temp_lo; temp_t7 = arg0->unk_360 & ~8; arg0->unk_360 = temp_t7; - arg0->unk_1F8 = (s32) (((s32) arg0->unk_1FC / temp_lo) + 2); - arg0->unk_360 = (u16) (temp_t7 & 0xFFFF & ~0x10); + arg0->unk_1F8 = ((s32) arg0->unk_1FC / temp_lo) + 2; + arg0->unk_360 = temp_t7 & 0xFFFF & ~0x10; var_a1 = arg2->unk_0; switch (var_a1) { /* switch 1 */ case 0x2C: /* switch 1 */ @@ -1929,20 +1971,20 @@ s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { func_80B53CE8(arg0, arg1, 0x10); temp_t8 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t8; - arg0->unk_360 = (u16) (temp_t8 | 0x800); + arg0->unk_360 = temp_t8 | 0x800; break; case 0x34: /* switch 2 */ case 0x35: /* switch 2 */ func_80B53CE8(arg0, arg1, 0x16); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); temp_t3 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t3; - arg0->unk_360 = (u16) (temp_t3 | 0x2000); + arg0->unk_360 = temp_t3 | 0x2000; break; case 0x32: /* switch 2 */ case 0x33: /* switch 2 */ func_80B53CE8(arg0, arg1, 7); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + arg0->unk_360 |= 0x300; break; case 0x36: /* switch 2 */ case 0x37: /* switch 2 */ @@ -1957,26 +1999,26 @@ s32 func_80B56418(Actor* arg0, PlayState* arg1, void* arg2) { func_80B53CE8(arg0, arg1, 0x12); temp_t9 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t9; - arg0->unk_360 = (u16) (temp_t9 | 0x1000); + arg0->unk_360 = temp_t9 | 0x1000; break; case 0x28: /* switch 2 */ case 0x2F: /* switch 2 */ case 0x30: /* switch 2 */ case 0x31: /* switch 2 */ - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); + arg0->unk_360 |= 0x300; /* fallthrough */ default: /* switch 2 */ func_80B53CE8(arg0, arg1, 7); break; } var_v1 = 1; - arg0->gravity = -1.0f; + arg0->actor.gravity = -1.0f; } return var_v1; } -s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2) { +s32 func_80B56744(EnAn* arg0, PlayState* arg1, u8* arg2) { u8 sp4F; Vec3f sp40; Vec3f sp34; @@ -1989,7 +2031,7 @@ s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2) { u16 temp_t6; var_v1 = 0; - sp4F = (u8) arg0->params; + sp4F = (u8) arg0->actor.params; arg0->unk_1DC = NULL; temp_a3 = *(&D_80B58618 + (*arg2 * 4)); if (temp_a3 >= 0) { @@ -2003,23 +2045,23 @@ s32 func_80B56744(Actor* arg0, PlayState* arg1, u8* arg2) { sp30 = temp_v0_2; Math_Vec3s_ToVec3f(&sp40, temp_v0_2); Math_Vec3s_ToVec3f(&sp34, sp30 + 6); - arg0->world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); Math_Vec3f_Copy(arg0 + 0x24, &sp40); Math_Vec3f_Copy(arg0 + 0x108, &sp40); if (*arg2 == 0x16) { func_80B53CE8(arg0, arg1, 0x17); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); temp_t6 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t6; - arg0->unk_360 = (u16) (temp_t6 | 0x2000); + arg0->unk_360 = temp_t6 | 0x2000; } var_v1 = 1; } return var_v1; } -s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { +s32 func_80B56880(EnAn* arg0, PlayState* arg1, u8* arg2) { u8 sp4F; Vec3f sp40; Vec3f sp34; @@ -2036,7 +2078,7 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { void* temp_v0_2; var_v1 = 0; - sp4F = (u8) arg0->params; + sp4F = (u8) arg0->actor.params; arg0->unk_1DC = NULL; temp_a3 = *(&D_80B58618 + (*arg2 * 4)); if (temp_a3 >= 0) { @@ -2050,7 +2092,7 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { sp30 = temp_v0_2; Math_Vec3s_ToVec3f(&sp40, ((arg0->unk_1DC->count * 6) + temp_v0_2) - 6); Math_Vec3s_ToVec3f(&sp34, ((arg0->unk_1DC->count * 6) + sp30) - 0xC); - arg0->world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); + arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); temp_a1 = arg0 + 0x30; sp24 = temp_a1; Math_Vec3s_Copy(arg0 + 0xBC, temp_a1); @@ -2060,14 +2102,14 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { temp_t0 = *arg2; switch (temp_t0) { case 0x13: - arg0->world.rot.y += 0x7FF8; + arg0->actor.world.rot.y += 0x7FF8; /* fallthrough */ case 0x12: case 0x17: func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); arg0->unk_37A = 0; - arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + arg0->unk_360 |= 0x300; if (*arg2 == 0x12) { arg0->unk_374 = 70.0f; } @@ -2075,13 +2117,13 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { case 0x3: temp_t0_2 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t0_2; - arg0->unk_360 = (u16) (temp_t0_2 | 0x1000); + arg0->unk_360 = temp_t0_2 | 0x1000; if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { func_80B53CE8(arg0, arg1, 0x14); - arg0->world.rot.y += 0x7FF8; - arg0->unk_360 = (u16) (arg0->unk_360 | 0x40); + arg0->actor.world.rot.y += 0x7FF8; + arg0->unk_360 |= 0x40; arg0->unk_37A = 4; - arg0->shape.rot.y = arg0->world.rot.y; + arg0->actor.shape.rot.y = arg0->actor.world.rot.y; } else { func_80B53CE8(arg0, arg1, 0x12); arg0->unk_37A = 0; @@ -2092,10 +2134,10 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { break; case 0xE: func_80B53CE8(arg0, arg1, 0xC); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); temp_t3 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t3; - arg0->unk_360 = (u16) (temp_t3 | 0x8000); + arg0->unk_360 = temp_t3 | 0x8000; break; } var_v1 = 1; @@ -2103,7 +2145,7 @@ s32 func_80B56880(Actor* arg0, PlayState* arg1, u8* arg2) { return var_v1; } -s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2) { +s32 func_80B56B00(EnAn* arg0, PlayState* arg1, u8* arg2) { Vec3s* sp20; Vec3s* temp_a2; u16 temp_t0; @@ -2115,10 +2157,10 @@ s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2) { Math_Vec3s_Copy(arg0 + 0x30, sp20); if (*arg2 == 0xC) { func_80B53CE8(arg0, arg1, 0xB); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); temp_t0 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t0; - arg0->unk_360 = (u16) (temp_t0 | 0x40); + arg0->unk_360 = temp_t0 | 0x40; arg0->unk_38A = 5; arg0->unk_38C = 5; arg0->unk_38E = 8; @@ -2126,7 +2168,7 @@ s32 func_80B56B00(Actor* arg0, PlayState* arg1, u8* arg2) { return 1; } -s32 func_80B56BC0(Actor* arg0, PlayState* arg1, u8* arg2) { +s32 func_80B56BC0(EnAn* arg0, PlayState* arg1, u8* arg2) { Vec3s* sp24; Vec3s* temp_a2; u16 temp_t0; @@ -2152,12 +2194,12 @@ s32 func_80B56BC0(Actor* arg0, PlayState* arg1, u8* arg2) { } temp_t0 = arg0->unk_360 | 0x300; arg0->unk_360 = temp_t0; - arg0->unk_360 = (u16) (temp_t0 | 0x40); - arg0->gravity = 0.0f; + arg0->unk_360 = temp_t0 | 0x40; + arg0->actor.gravity = 0.0f; return 1; } -s32 func_80B56CAC(Actor* arg0, PlayState* arg1, ? arg2) { +s32 func_80B56CAC(EnAn* arg0, PlayState* arg1, ? arg2) { Vec3s* sp20; Vec3s* temp_a2; @@ -2166,8 +2208,8 @@ s32 func_80B56CAC(Actor* arg0, PlayState* arg1, ? arg2) { Math_Vec3s_Copy(temp_a2, &D_80B58EA4); Math_Vec3s_Copy(arg0 + 0x30, sp20); func_80B53CE8(arg0, arg1, 0); - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x300); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); + arg0->unk_360 |= 0x300; return 1; } @@ -2261,16 +2303,16 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2) { return var_v1; } -? func_80B56E44(Actor* arg0, ? arg1) { +? func_80B56E44(EnAn* arg0, ? arg1) { Vec3f sp2C; Vec3f sp20; - void* temp_v0; + Actor* temp_v0; temp_v0 = arg0->unk_218; - if ((temp_v0 != NULL) && (temp_v0->unk_138 != 0)) { + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { Math_Vec3f_Copy(&sp2C, temp_v0 + 0x24); Math_Vec3f_Copy(&sp20, arg0 + 0x24); - arg0->world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); + arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); } return 1; } @@ -2446,7 +2488,7 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2) { return 0; } -? func_80B573F4(Actor* arg0, PlayState* arg1) { +? func_80B573F4(EnAn* arg0, PlayState* arg1) { s16 temp_v0; s16 temp_v0_2; s16 var_v1; @@ -2454,37 +2496,37 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2) { temp_v0 = arg0->unk_37A; switch (temp_v0) { case 0x0: - arg0->unk_37A = (s16) (temp_v0 + 1); - arg0->world.rot.y += 0x7FF8; + arg0->unk_37A = temp_v0 + 1; + arg0->actor.world.rot.y += 0x7FF8; break; case 0x1: - if ((s16) (((s16) arg0->world.rot.y / 182) * 0xB6) == (s16) (((s16) arg0->shape.rot.y / 182) * 0xB6)) { + if ((s16) (((s16) arg0->actor.world.rot.y / 182) * 0xB6) == (s16) (((s16) arg0->actor.shape.rot.y / 182) * 0xB6)) { Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); func_80B53CE8(arg0, arg1, 0x13); - arg0->unk_360 = (u16) (arg0->unk_360 | 0x40); - arg0->unk_37A = (s16) (arg0->unk_37A + 1); + arg0->unk_360 |= 0x40; + arg0->unk_37A += 1; } break; case 0x2: - if (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0) { - arg0->unk_37A = (s16) (arg0->unk_37A + 1); + if (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0) { + arg0->unk_37A += 1; } break; case 0x3: - temp_v0_2 = arg0->yawTowardsPlayer - arg0->shape.rot.y; + temp_v0_2 = arg0->actor.yawTowardsPlayer - arg0->actor.shape.rot.y; var_v1 = temp_v0_2; if (temp_v0_2 < 0) { var_v1 = -temp_v0_2; } if (var_v1 < 0x3000) { - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); } else { - SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); + SubS_SetOfferMode(&arg0->unk_360, 0U, 7U); } break; case 0x4: - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - arg0->unk_37A = (s16) (arg0->unk_37A + 1); + SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); + arg0->unk_37A += 1; break; } return 0; @@ -2512,11 +2554,11 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2) { return 1; } -? func_80B57674(Actor* arg0, ? arg1) { +? func_80B57674(EnAn* arg0, ? arg1) { s16 temp_v1; s32 var_v0; - temp_v1 = arg0->yawTowardsPlayer - (s16) (arg0->shape.rot.y + 0x3000); + temp_v1 = arg0->actor.yawTowardsPlayer - (s16) (arg0->actor.shape.rot.y + 0x3000); var_v0 = temp_v1 << 0x10; if (temp_v1 < 0) { var_v0 = temp_v1 * -0x10000; @@ -2526,11 +2568,11 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2) { } else { SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); } - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); + arg0->unk_360 &= 0xFFDF; return 1; } -void func_80B57718(Actor* arg0) { +void func_80B57718(EnAn* arg0) { u8 temp_t7; temp_t7 = arg0->unk_200; @@ -2544,7 +2586,7 @@ void func_80B57718(Actor* arg0) { func_80B573F4(arg0); break; case 0x1: - func_80B575BC(arg0); + func_80B575BC(&arg0->actor); break; case 0x19: func_80B57674(arg0); @@ -2555,10 +2597,10 @@ void func_80B57718(Actor* arg0) { case 0x13: case 0x16: case 0x18: - func_80B572D4(arg0); + func_80B572D4(&arg0->actor); break; case 0x17: - func_80B572D4(arg0); + func_80B572D4(&arg0->actor); break; case 0x1A: case 0x1B: @@ -2574,7 +2616,7 @@ void func_80B57718(Actor* arg0) { case 0x25: case 0x26: case 0x27: - func_80B56EB4(arg0); + func_80B56EB4(&arg0->actor); break; case 0x28: case 0x2A: @@ -2599,26 +2641,26 @@ void func_80B57718(Actor* arg0) { case 0x3D: case 0x3E: case 0x3F: - func_80B5702C(arg0); + func_80B5702C(&arg0->actor); break; } - Math_ApproachS(&arg0->shape.rot.y, arg0->world.rot.y, 3, 0x2AA8); + Math_ApproachS(&arg0->actor.shape.rot.y, arg0->actor.world.rot.y, 3, 0x2AA8); } void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, (SkelAnime* ) this->unk_144, (FlexSkeletonHeader* ) &D_06012618, NULL, (Vec3s* ) &this->unk_218[0x4C], (Vec3s* ) &this->unk_218[0xCA], 0x15); + SkelAnime_InitFlex(play, &this->unk_144, &D_06012618, NULL, this->unk_264, this->unk_2E2, 0x15); this->unk_39C = -1; - func_80B53CE8(&this->actor, play, 1); + func_80B53CE8(this, play, 1); Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); if (this->actor.params & 0x8000) { this->unk_3C0 = 1; } - this->actor.draw = func_80B580C0; + this->actor.draw = EnAn_Draw; Actor_SetScale(&this->actor, 0.01f); this->unk_360 = 0; - this->unk_1DC[0x24] = 0; + this->unk_200 = 0; this->actionFunc = func_80B578F8; func_80B578F8(this, play); } @@ -2626,17 +2668,17 @@ void func_80B577F0(EnAn* this, PlayState* play) { void func_80B578F8(EnAn* this, PlayState* play) { u8 sp20; - this->unk_384 = (s16) (gSaveContext.save.timeSpeedOffset + gRegEditor->data[0xF]); + this->unk_384 = gSaveContext.save.timeSpeedOffset + gRegEditor->data[0xF]; if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && (gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40)) { Actor_Kill(&this->actor); return; } if (this->unk_3C0 != 0) { sp20 = 0x19; - if ((u8) this->unk_1DC[0x24] != 0x19) { + if (this->unk_200 != 0x19) { func_80B56D28(this, (u8* ) play, &sp20); } - } else if ((Schedule_RunScript(play, &D_80B581D0, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != (u8) this->unk_1DC[0x24]) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { + } else if ((Schedule_RunScript(play, &D_80B581D0, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != this->unk_200) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~1; sp20 = 0; @@ -2644,40 +2686,40 @@ void func_80B578F8(EnAn* this, PlayState* play) { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; this->actor.flags |= 1; } - this->unk_1DC[0x24] = (s8) sp20; + this->unk_200 = sp20; this->unk_218 = func_80B55D20(this, play); - func_80B57718(&this->actor, play); + func_80B57718(this, play); } void func_80B57A44(EnAn* this, PlayState* play) { Vec3f sp38; Vec3f sp2C; + Actor* temp_v0_2; u16 temp_t9; u8 temp_v0; - void* temp_v0_2; - if (func_8010BF58(&this->actor, play, this->unk_204, this->unk_398, (s32* ) &this->unk_1DC[0x34]) != 0) { - SubS_SetOfferMode((u16* ) &this->unk_218[0x148], 3U, 7U); + if (func_8010BF58(&this->actor, play, this->unk_204, this->unk_398, &this->unk_210) != 0) { + SubS_SetOfferMode(&this->unk_360, 3U, 7U); temp_t9 = this->unk_360 & 0xFFDF; this->unk_360 = temp_t9; - this->unk_360 = (u16) (temp_t9 | 0x200); + this->unk_360 = temp_t9 | 0x200; this->unk_388 = 0x14; this->unk_210 = 0; this->actionFunc = func_80B578F8; return; } - temp_v0 = (u8) this->unk_1DC[0x24]; + temp_v0 = this->unk_200; if ((temp_v0 != 1) && (temp_v0 != 3) && (temp_v0 != 0xC) && (temp_v0 != 0xE) && (temp_v0 != 0x19)) { temp_v0_2 = this->unk_218; - if ((temp_v0_2 != NULL) && (temp_v0_2->unk_138 != 0)) { - Math_Vec3f_Copy(&sp38, temp_v0_2 + 0x24); + if ((temp_v0_2 != NULL) && (temp_v0_2->update != NULL)) { + Math_Vec3f_Copy(&sp38, &temp_v0_2->world.pos); Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); Math_ApproachS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&sp2C, &sp38), 4, 0x2AA8); } } } -void func_80B57B48(Actor* arg0, PlayState* arg1) { +void func_80B57B48(EnAn* this, PlayState* play) { ? sp30; s32 sp28; s32 temp_v0; @@ -2686,56 +2728,56 @@ void func_80B57B48(Actor* arg0, PlayState* arg1) { u8 var_v0; M2C_MEMCPY_ALIGNED(&sp30, &D_80B58EAC, 0x28); - if (Cutscene_IsCueInChannel(arg1, 0x22DU) != 0) { - temp_v0 = Cutscene_GetCueChannel(arg1, 0x22DU); + if (Cutscene_IsCueInChannel(play, 0x22DU) != 0) { + temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); sp28 = temp_v0; - temp_v1 = arg1->csCtx.actorCues[temp_v0]->id; + temp_v1 = play->csCtx.actorCues[temp_v0]->id; var_v0 = temp_v1 & 0xFF; - if ((temp_v1 & 0xFF) != arg0->unk_364) { - arg0->unk_364 = (u8) temp_v1; + if ((temp_v1 & 0xFF) != (u8) this->unk_364) { + this->unk_364 = (s8) temp_v1; if (var_v0 == 3) { gSaveContext.save.saveInfo.weekEventReg[0x57] |= 2; - var_v0 = arg0->unk_364; - arg0->unk_3B4 = 1; + var_v0 = (u8) this->unk_364; + this->unk_3B4 = 1; } if (var_v0 == 9) { - arg0->unk_3B4 = 0; + this->unk_3B4 = 0; } - func_80B53CE8(arg0, arg1, (sp + (temp_v1 * 4))->unk_30); + func_80B53CE8(this, play, (sp + (temp_v1 * 4))->unk_30); } - temp_v0_2 = arg0->unk_39C; - if (((temp_v0_2 == 0x1A) || (temp_v0_2 == 0x1C) || (temp_v0_2 == 0x1E) || (temp_v0_2 == 0x22)) && (Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), arg0->unk_154) != 0)) { - func_80B53CE8(arg0, arg1, arg0->unk_39C + 1); + temp_v0_2 = this->unk_39C; + if (((temp_v0_2 == 0x1A) || (temp_v0_2 == 0x1C) || (temp_v0_2 == 0x1E) || (temp_v0_2 == 0x22)) && (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0)) { + func_80B53CE8(this, play, this->unk_39C + 1); } - Cutscene_ActorTranslateAndYaw(arg0, arg1, sp28); + Cutscene_ActorTranslateAndYaw(&this->actor, play, sp28); } } -void func_80B57EE8(GraphicsContext** arg0, s32 arg1, Gfx** arg2, Vec3s* arg3, Actor* arg4) { - if (arg1 == 9) { - Matrix_MultVec3f(&D_80B58ED4, arg4 + 0x3C); - Math_Vec3s_Copy(arg4 + 0x48, arg4 + 0x30); - func_80B54124(arg4, arg0, 1U); +void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { + if (limbIndex == 9) { + Matrix_MultVec3f(&D_80B58ED4, &thisx->focus.pos); + Math_Vec3s_Copy(&thisx->focus.rot, &thisx->world.rot); + func_80B54124(thisx, &play->state.gfxCtx, 1U); return; } - if (arg1 == 8) { - func_80B54124(arg4, arg0, 0U); - func_80B54124(arg4, arg0, 4U); - func_80B54124(arg4, arg0, 2U); - func_80B54124(arg4, arg0, 3U); + if (limbIndex == 8) { + func_80B54124(thisx, &play->state.gfxCtx, 0U); + func_80B54124(thisx, &play->state.gfxCtx, 4U); + func_80B54124(thisx, &play->state.gfxCtx, 2U); + func_80B54124(thisx, &play->state.gfxCtx, 3U); return; } - if (arg1 == 5) { - func_80B54124(arg4, arg0, 5U); + if (limbIndex == 5) { + func_80B54124(thisx, &play->state.gfxCtx, 5U); } } -void func_80B57FC4(PlayState* arg0, s32 arg1, Actor* arg2) { +void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { s32 var_v0; s32 var_v1; u16 temp_v0; - temp_v0 = arg2->unk_360; + temp_v0 = thisx->unk_360; var_v1 = 0; if (!(temp_v0 & 0x200)) { var_v1 = 0; @@ -2748,41 +2790,42 @@ void func_80B57FC4(PlayState* arg0, s32 arg1, Actor* arg2) { } else { var_v0 = 0; } - if (arg1 == 9) { - SubS_UpdateLimb((s16) (arg2->unk_37C + 0x4000), (s16) (arg2->unk_37E + arg2->shape.rot.y + 0x4000), arg2 + 0x240, arg2 + 0x258, var_v0, var_v1); + if (limbIndex == 9) { + SubS_UpdateLimb((s16) (thisx->unk_37C + 0x4000), (s16) (thisx->unk_37E + thisx->shape.rot.y + 0x4000), thisx + 0x240, thisx + 0x258, var_v0, var_v1); Matrix_Pop(); - Matrix_Translate(arg2->unk_240, arg2->unk_244, arg2->unk_248, MTXMODE_NEW); - Matrix_Scale(arg2->scale.x, arg2->scale.y, arg2->scale.z, MTXMODE_APPLY); - Matrix_RotateYS(arg2->unk_25A, MTXMODE_APPLY); - Matrix_RotateXS(arg2->unk_258, MTXMODE_APPLY); - Matrix_RotateZS(arg2->unk_25C, MTXMODE_APPLY); + Matrix_Translate(thisx->unk_240, thisx->unk_244, thisx->unk_248, MTXMODE_NEW); + Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); + Matrix_RotateYS(thisx->unk_25A, MTXMODE_APPLY); + Matrix_RotateXS(thisx->unk_258, MTXMODE_APPLY); + Matrix_RotateZS(thisx->unk_25C, MTXMODE_APPLY); Matrix_Push(); } } -void func_80B580C0(Actor* this, PlayState* play) { +void EnAn_Draw(Actor* thisx, PlayState* play) { GraphicsContext* sp40; - void* sp38; - void* sp34; + Gfx* sp38; + Gfx* sp34; + Gfx* temp_v0; + Gfx* temp_v0_2; GraphicsContext* temp_a0; - void* temp_v0; - void* temp_v0_2; + EnAn* this = (EnAn* ) thisx; if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { temp_a0 = play->state.gfxCtx; sp40 = temp_a0; Gfx_SetupDL25_Opa(temp_a0); - temp_v0 = sp40->polyOpa.tha.head; - sp40->polyOpa.tha.head = temp_v0 + 8; - *temp_v0 = 0xDB060020; + temp_v0 = sp40->polyOpa.p; + sp40->polyOpa.p = temp_v0 + 8; + temp_v0->words.w0 = 0xDB060020; sp38 = temp_v0; - sp38->unk_4 = Lib_SegmentedToVirtual(*(&D_80B58EEC + (this->unk_390 * 4))); - temp_v0_2 = sp40->polyOpa.tha.head; - sp40->polyOpa.tha.head = temp_v0_2 + 8; - *temp_v0_2 = 0xDB060024; + sp38->words.w1 = Lib_SegmentedToVirtual(D_80B58EEC[this->unk_390]); + temp_v0_2 = sp40->polyOpa.p; + sp40->polyOpa.p = temp_v0_2 + 8; + temp_v0_2->words.w0 = 0xDB060024; sp34 = temp_v0_2; - sp34->unk_4 = Lib_SegmentedToVirtual(*(&D_80B58EE0 + (this->unk_392 * 4))); - SkelAnime_DrawTransformFlexOpa(play, this->unk_148, this->unk_164, (s32) this->unk_146, NULL, (void (*)(PlayState*, s32, Gfx**, Vec3s*, Actor*)) func_80B57EE8, func_80B57FC4, this); + sp34->words.w1 = Lib_SegmentedToVirtual(D_80B58EE0[this->unk_392]); + SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, (s32) this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); } } /* Warning: struct EnTorch2 is not defined (only forward-declared) */ 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 9b560b68a..7792bc3fe 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -166,6 +166,7 @@ s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53F84.s") +void func_80B54124(EnAn* this, PlayState* play, u32 arg2); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54124.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54678.s") @@ -351,17 +352,59 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } -void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57EE8.s") +extern Vec3f D_80B58ED4; -void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57FC4.s") +void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { + EnAn* this = THIS; + + if (limbIndex == 9) { + Matrix_MultVec3f(&D_80B58ED4, &this->actor.focus.pos); + Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); + func_80B54124(this, play, 1U); + } else if (limbIndex == 8) { + func_80B54124(this, play, 0U); + func_80B54124(this, play, 4U); + func_80B54124(this, play, 2U); + func_80B54124(this, play, 3U); + } else if (limbIndex == 5) { + func_80B54124(this, play, 5U); + } +} + +void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { + EnAn* this = THIS; + s32 stepRot; + s32 overrideRot; + + if (!(this->unk_360 & 0x200)) { + if (this->unk_360 & 0x80) { + overrideRot = true; + } else { + overrideRot = false; + } + stepRot = true; + } else { + overrideRot = false; + stepRot = false; + } + + if (limbIndex == 9) { + SubS_UpdateLimb((s16) (this->unk_37C + 0x4000), (s16) (this->unk_37E + this->actor.shape.rot.y + 0x4000), &this->unk_240, &this->unk_258, stepRot, overrideRot); + Matrix_Pop(); + Matrix_Translate(this->unk_240.x, this->unk_240.y, this->unk_240.z, MTXMODE_NEW); + Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); + Matrix_RotateYS(this->unk_258.y, MTXMODE_APPLY); + Matrix_RotateXS(this->unk_258.x, MTXMODE_APPLY); + Matrix_RotateZS(this->unk_258.z, MTXMODE_APPLY); + Matrix_Push(); + } +} extern UNK_PTR D_80B58EEC[]; extern UNK_PTR D_80B58EE0[]; void EnAn_Draw(Actor* thisx, PlayState* play) { - EnAn* this = (EnAn* ) thisx; + EnAn* this = THIS; if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { OPEN_DISPS(play->state.gfxCtx); @@ -371,7 +414,7 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->unk_390])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->unk_392])); - SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, this); + SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index ba147f5ee..cc2ce8236 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -29,10 +29,15 @@ typedef struct EnAn { /* 0x214 */ s8 unk_214; /* 0x215 */ char pad_215[3]; /* maybe part of unk_214[4]? */ /* 0x218 */ Actor* unk_218; /* inferred */ - /* 0x21C */ char pad_21C[0x48]; /* maybe part of unk_218[0x13]? */ + /* 0x21C */ UNK_TYPE1 unk_21C[0x24]; /* maybe part of unk_218[0x13]? */ + /* 0x240 */ Vec3f unk_240; + /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; + /* 0x258 */ Vec3s unk_258; + /* 0x25E */ UNK_TYPE1 unk_25E[0x2]; + /* 0x260 */ UNK_TYPE1 unk_260[0x4]; /* 0x264 */ Vec3s unk_264[0x15]; /* 0x2E2 */ Vec3s unk_2E2[0x15]; - /* 0x360 */ u16 unk_360; /* inferred */ + /* 0x360 */ u16 unk_360; // flags? /* 0x362 */ char pad_362[2]; /* inferred */ /* 0x364 */ s8 unk_364; /* inferred */ /* 0x365 */ char pad_365[3]; /* maybe part of unk_364[4]? */ From 5083222163d1fd93a0d1834a4df254bdf2e7e0b8 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 23 Sep 2023 22:15:27 -0300 Subject: [PATCH 05/78] func_80B54124 --- src/overlays/actors/ovl_En_An/z_en_an.c | 95 ++++++++++++++++++++++++- src/overlays/actors/ovl_En_An/z_en_an.h | 4 +- 2 files changed, 95 insertions(+), 4 deletions(-) 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 7792bc3fe..3247b042d 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -64,7 +64,7 @@ static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; extern ColliderCylinderInit D_80B58BBC; extern CollisionCheckInfoInit2 D_80B58BE8; -extern UNK_TYPE D_060111E8; +extern Gfx D_060111E8[]; extern FlexSkeletonHeader D_06012618; #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53840.s") @@ -166,8 +166,97 @@ s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53F84.s") -void func_80B54124(EnAn* this, PlayState* play, u32 arg2); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54124.s") +extern Vec3f D_80B58E54; +extern Vec3s D_80B58E60; + +extern Gfx D_0A000D40[]; + +extern Gfx D_06000378[]; +extern Gfx D_06000308[]; +extern Gfx D_06012478[]; +extern Gfx D_06000E70[]; + +extern Vec3f D_80B58E68; +extern Vec3s D_80B58E74; + + +void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { + s32 pad; + s8 sp53 = this->actor.objBankIndex; + s8 temp_a2; + + OPEN_DISPS(play->state.gfxCtx); + + Matrix_Push(); + + switch (arg2) { + case 0x0: + if ((this->unk_360 & 0x800) && (this->unk_3B0 == 0)) { + this->unk_3A8 += 1; + this->unk_3AC -= 2; + Gfx_SetupDL25_Xlu(play->state.gfxCtx); + + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, 0x10, 0x10)); + gSPDisplayList(POLY_XLU_DISP++, D_060111E8); + + Gfx_SetupDL25_Opa(play->state.gfxCtx); + } + break; + + case 0x1: + temp_a2 = this->unk_20A; + if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.status[temp_a2].segment); + + Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); + + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPDisplayList(POLY_OPA_DISP++, D_0A000D40); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + } + break; + case 0x2: + temp_a2 = this->unk_208; + if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPDisplayList(POLY_OPA_DISP++, D_06000378); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + } + break; + + case 0x3: + temp_a2 = this->unk_209; + if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPDisplayList(POLY_OPA_DISP++, D_06000308); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + } + break; + + case 0x4: + if ((this->unk_360 & 0x8000) && (this->unk_3B0 == 0)) { + gSPDisplayList(POLY_OPA_DISP++, D_06012478); + } + break; + + case 0x5: + temp_a2 = this->unk_20C; + if ((this->unk_3B4 != 0) && (temp_a2 >= 0)) { + Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); + + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPDisplayList(POLY_OPA_DISP++, D_06000E70); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + } + break; + } + + Matrix_Pop(); + + CLOSE_DISPS(play->state.gfxCtx); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54678.s") diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index cc2ce8236..2c633c429 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -59,7 +59,9 @@ typedef struct EnAn { /* 0x394 */ char pad_394[4]; /* maybe part of unk_392[3]? */ /* 0x398 */ void* unk_398; /* inferred */ /* 0x39C */ s32 unk_39C; /* inferred */ - /* 0x3A0 */ char pad_3A0[0x10]; /* maybe part of unk_39C[5]? */ + /* 0x3A0 */ char pad_3A0[8]; /* maybe part of unk_39C[3]? */ + /* 0x3A8 */ u32 unk_3A8; /* inferred */ + /* 0x3AC */ u32 unk_3AC; /* inferred */ /* 0x3B0 */ s32 unk_3B0; /* inferred */ /* 0x3B4 */ s32 unk_3B4; /* inferred */ /* 0x3B8 */ s32 unk_3B8; From df39e617274ed599fa525496913e2adc8402edf1 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 08:57:35 -0300 Subject: [PATCH 06/78] two more --- asdf.c | 104 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.c | 94 +++++++++++++++++++-- src/overlays/actors/ovl_En_An/z_en_an.h | 31 +++---- 3 files changed, 155 insertions(+), 74 deletions(-) diff --git a/asdf.c b/asdf.c index 9facd796a..2851112e0 100644 --- a/asdf.c +++ b/asdf.c @@ -24,7 +24,12 @@ typedef struct EnAn { /* 0x215 */ s8 unk_215; /* inferred */ /* 0x216 */ char pad_216[2]; /* maybe part of unk_215[3]? */ /* 0x218 */ Actor* unk_218; - /* 0x21C */ char pad_21C[0x48]; /* maybe part of unk_218[0x13]? */ + /* 0x21C */ s8 unk_21C[0x24]; + /* 0x240 */ Vec3f unk_240; + /* 0x24C */ s8 unk_24C[0xC]; + /* 0x258 */ Vec3s unk_258; + /* 0x25E */ s8 unk_25E[2]; + /* 0x260 */ s8 unk_260[4]; /* 0x264 */ Vec3s unk_264[0x15]; /* 0x2E2 */ Vec3s unk_2E2[0x15]; /* 0x360 */ u16 unk_360; @@ -51,7 +56,9 @@ typedef struct EnAn { /* 0x396 */ s16 unk_396; /* inferred */ /* 0x398 */ void* unk_398; /* 0x39C */ s32 unk_39C; - /* 0x3A0 */ char pad_3A0[0x10]; /* maybe part of unk_39C[5]? */ + /* 0x3A0 */ char pad_3A0[8]; /* maybe part of unk_39C[3]? */ + /* 0x3A8 */ u32 unk_3A8; + /* 0x3AC */ u32 unk_3AC; /* 0x3B0 */ s32 unk_3B0; /* 0x3B4 */ s32 unk_3B4; /* 0x3B8 */ s32 unk_3B8; @@ -62,7 +69,6 @@ typedef struct EnAn { Actor* func_80B539CC(EnAn* arg0, PlayState* arg1, u8 arg2, s16 arg3); /* static */ struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1); /* static */ -void func_80B54124(Actor* arg0, GraphicsContext** arg1, u32 arg2); /* static */ s32 func_80B54678(Actor* arg0, s16 arg1, s32); /* static */ s16 func_80B546F4(Actor* arg0, s32 arg1); /* static */ s16 func_80B54750(Actor* arg0, s32 arg1); /* static */ @@ -101,11 +107,6 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2, u8*); /* static */ ? func_80B575BC(Actor* arg0, ? arg1); /* static */ ? func_80B57674(EnAn* arg0, ? arg1); /* static */ void func_80B57718(EnAn* arg0, PlayState*); /* static */ -extern ? D_06000308; -extern ? D_06000378; -extern ? D_06000E70; -extern ? D_06012478; -extern ? D_0A000D40; extern u8 D_80B581D0; extern ? D_80B58618; extern ? D_80B58718; @@ -136,17 +137,12 @@ extern ? D_80B58B88; extern ? D_80B58B90; extern Vec3f D_80B58E34; extern ? D_80B58E40; -extern Vec3f D_80B58E54; -extern Vec3s D_80B58E60; -extern Vec3f D_80B58E68; -extern Vec3s D_80B58E74; extern Vec3f D_80B58E7C; extern Vec3s D_80B58E88; extern Vec3f D_80B58E90; extern Vec3s D_80B58E9C; extern Vec3s D_80B58EA4; extern ? D_80B58EAC; -extern Vec3f D_80B58ED4; void EnAn_Destroy(Actor* thisx, PlayState* play) { EnAn* this = (EnAn* ) thisx; @@ -552,7 +548,7 @@ void func_80B53F84(EnAn* this) { this->unk_392 = *(&D_80B58E40 + (this->unk_38C * 2)); } -void func_80B54124(EnAn* this, GraphicsContext** gfxCtx, u32 arg2) { +void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { s8 sp53; s8 sp52; GraphicsContext* sp4C; @@ -582,105 +578,105 @@ void func_80B54124(EnAn* this, GraphicsContext** gfxCtx, u32 arg2) { s8 temp_a2_3; s8 temp_a2_4; - sp53 = arg0->objBankIndex; - temp_t0 = *arg1; + sp53 = this->actor.objBankIndex; + temp_t0 = play->state.gfxCtx; sp4C = temp_t0; Matrix_Push(); switch (arg2) { case 0x0: - if ((arg0->unk_360 & 0x800) && (arg0->unk_3B0 == 0)) { - arg0->unk_3A8 = (u32) (arg0->unk_3A8 + 1); - arg0->unk_3AC = (u32) (arg0->unk_3AC - 2); + if ((this->unk_360 & 0x800) && (this->unk_3B0 == 0)) { + this->unk_3A8 += 1; + this->unk_3AC -= 2; sp4C = temp_t0; - Gfx_SetupDL25_Xlu(*arg1); + Gfx_SetupDL25_Xlu(play->state.gfxCtx); temp_v0 = temp_t0->polyXlu.p; temp_t0->polyXlu.p = temp_v0 + 8; temp_v0->words.w0 = 0xDA380003; sp4C = temp_t0; sp44 = temp_v0; - sp44->words.w1 = Matrix_NewMtx(*arg1); + sp44->words.w1 = Matrix_NewMtx(play->state.gfxCtx); temp_v0_2 = temp_t0->polyXlu.p; temp_t0->polyXlu.p = temp_v0_2 + 8; temp_v0_2->words.w0 = 0xDB060020; sp4C = temp_t0; sp40 = temp_v0_2; - sp40->words.w1 = Gfx_TwoTexScroll(*arg1, 0, arg0->unk_3A8, 0U, 0x10, 0x10, 1, 0U, arg0->unk_3AC, 0x10, 0x10); + sp40->words.w1 = Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, 0x10, 0x10); temp_v0_3 = temp_t0->polyXlu.p; temp_t0->polyXlu.p = temp_v0_3 + 8; temp_v0_3->words.w0 = 0xDE000000; - temp_v0_3->words.w1 = (u32) &D_060111E8; - Gfx_SetupDL25_Opa(*arg1); + temp_v0_3->words.w1 = (u32) D_060111E8; + Gfx_SetupDL25_Opa(play->state.gfxCtx); } break; case 0x1: - temp_a2 = arg0->unk_20A; - if ((arg0->unk_360 & 0x4000) && (arg0->unk_3B0 == 0) && (temp_a2 >= 0)) { + temp_a2 = this->unk_20A; + if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { temp_v0_4 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_4 + 8; temp_v0_4->words.w0 = 0xDB060028; - temp_v0_4->words.w1 = (arg1 + (temp_a2 * 0x44))->unk_17D98; + temp_v0_4->words.w1 = (u32) play->objectCtx.status[temp_a2].segment; sp4C = temp_t0; Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); temp_v0_5 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_5 + 8; temp_v0_5->words.w0 = 0xDA380003; sp4C = temp_t0; - temp_v0_5->words.w1 = Matrix_NewMtx(*arg1); + temp_v0_5->words.w1 = Matrix_NewMtx(play->state.gfxCtx); temp_v0_6 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_6 + 8; temp_v0_6->words.w0 = 0xDE000000; - temp_v0_6->words.w1 = (u32) &D_0A000D40; + temp_v0_6->words.w1 = (u32) D_0A000D40; temp_v0_7 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_7 + 8; temp_v0_7->words.w0 = 0xDB060018; - temp_v0_7->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_7->words.w1 = (u32) play->objectCtx.status[sp53].segment; } break; case 0x2: - temp_a2_2 = arg0->unk_208; - if ((arg0->unk_360 & 0x1000) && (arg0->unk_3B0 == 0) && (temp_a2_2 >= 0)) { + temp_a2_2 = this->unk_208; + if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2_2 >= 0)) { temp_v0_8 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_8 + 8; temp_v0_8->words.w0 = 0xDB060018; - temp_v0_8->words.w1 = (arg1 + (temp_a2_2 * 0x44))->unk_17D98; + temp_v0_8->words.w1 = (u32) play->objectCtx.status[temp_a2_2].segment; temp_v0_9 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_9 + 8; - temp_v0_9->words.w1 = (u32) &D_06000378; + temp_v0_9->words.w1 = (u32) D_06000378; temp_v0_9->words.w0 = 0xDE000000; temp_v0_10 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_10 + 8; temp_v0_10->words.w0 = 0xDB060018; - temp_v0_10->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_10->words.w1 = (u32) play->objectCtx.status[sp53].segment; } break; case 0x3: - temp_a2_3 = arg0->unk_209; - if ((arg0->unk_360 & 0x2000) && (arg0->unk_3B0 == 0) && (temp_a2_3 >= 0)) { + temp_a2_3 = this->unk_209; + if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2_3 >= 0)) { temp_v0_11 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_11 + 8; temp_v0_11->words.w0 = 0xDB060018; - temp_v0_11->words.w1 = (arg1 + (temp_a2_3 * 0x44))->unk_17D98; + temp_v0_11->words.w1 = (u32) play->objectCtx.status[temp_a2_3].segment; temp_v0_12 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_12 + 8; - temp_v0_12->words.w1 = (u32) &D_06000308; + temp_v0_12->words.w1 = (u32) D_06000308; temp_v0_12->words.w0 = 0xDE000000; temp_v0_13 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_13 + 8; temp_v0_13->words.w0 = 0xDB060018; - temp_v0_13->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_13->words.w1 = (u32) play->objectCtx.status[sp53].segment; } break; case 0x4: - if ((arg0->unk_360 & 0x8000) && (arg0->unk_3B0 == 0)) { + if ((this->unk_360 & 0x8000) && (this->unk_3B0 == 0)) { temp_v0_14 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_14 + 8; - temp_v0_14->words.w1 = (u32) &D_06012478; + temp_v0_14->words.w1 = (u32) D_06012478; temp_v0_14->words.w0 = 0xDE000000; } break; case 0x5: - temp_a2_4 = arg0->unk_20C; - if ((arg0->unk_3B4 != 0) && (temp_a2_4 >= 0)) { + temp_a2_4 = this->unk_20C; + if ((this->unk_3B4 != 0) && (temp_a2_4 >= 0)) { sp52 = temp_a2_4; sp4C = temp_t0; Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); @@ -689,19 +685,19 @@ void func_80B54124(EnAn* this, GraphicsContext** gfxCtx, u32 arg2) { temp_v0_15->words.w0 = 0xDA380003; sp4C = temp_t0; sp52 = temp_a2_4; - temp_v0_15->words.w1 = Matrix_NewMtx(*arg1); + temp_v0_15->words.w1 = Matrix_NewMtx(play->state.gfxCtx); temp_v0_16 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_16 + 8; temp_v0_16->words.w0 = 0xDB060018; - temp_v0_16->words.w1 = (arg1 + (temp_a2_4 * 0x44))->unk_17D98; + temp_v0_16->words.w1 = (u32) play->objectCtx.status[temp_a2_4].segment; temp_v0_17 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_17 + 8; - temp_v0_17->words.w1 = (u32) &D_06000E70; + temp_v0_17->words.w1 = (u32) D_06000E70; temp_v0_17->words.w0 = 0xDE000000; temp_v0_18 = temp_t0->polyOpa.p; temp_t0->polyOpa.p = temp_v0_18 + 8; temp_v0_18->words.w0 = 0xDB060018; - temp_v0_18->words.w1 = (arg1 + (sp53 * 0x44))->unk_17D98; + temp_v0_18->words.w1 = (u32) play->objectCtx.status[sp53].segment; } break; } @@ -2757,18 +2753,18 @@ void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Acto if (limbIndex == 9) { Matrix_MultVec3f(&D_80B58ED4, &thisx->focus.pos); Math_Vec3s_Copy(&thisx->focus.rot, &thisx->world.rot); - func_80B54124(thisx, &play->state.gfxCtx, 1U); + func_80B54124((EnAn* ) thisx, play, 1U); return; } if (limbIndex == 8) { - func_80B54124(thisx, &play->state.gfxCtx, 0U); - func_80B54124(thisx, &play->state.gfxCtx, 4U); - func_80B54124(thisx, &play->state.gfxCtx, 2U); - func_80B54124(thisx, &play->state.gfxCtx, 3U); + func_80B54124((EnAn* ) thisx, play, 0U); + func_80B54124((EnAn* ) thisx, play, 4U); + func_80B54124((EnAn* ) thisx, play, 2U); + func_80B54124((EnAn* ) thisx, play, 3U); return; } if (limbIndex == 5) { - func_80B54124(thisx, &play->state.gfxCtx, 5U); + func_80B54124((EnAn* ) thisx, play, 5U); } } 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 3247b042d..3d3b293b3 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -69,6 +69,7 @@ extern FlexSkeletonHeader D_06012618; #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53840.s") +Actor* func_80B539CC(EnAn* this, PlayState* play, u8 arg2, s16 arg3); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B539CC.s") Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { @@ -276,11 +277,62 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54D18.s") +UNK_PTR func_80B54DF4(EnAn* this, PlayState* play); + #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54DF4.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55180.s") +s32 func_80B55180(EnAn* this, PlayState* play) { + s32 ret = false; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B552E4.s") + if ((this->unk_360 & 7) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { + SubS_SetOfferMode(&this->unk_360, 0U, 7U); + this->unk_3C4 = 0; + this->unk_394 = 0; + this->unk_398 = NULL; + this->actor.child = this->unk_218; + this->unk_204 = func_80B54DF4(this, play); + + if ((this->unk_200 == 1) || (this->unk_200 == 3) || (this->unk_200 == 0x12) || (this->unk_200 == 0x13) || (this->unk_200 == 0x17) || (this->unk_200 == 0x16) || (this->unk_200 == 0x28) || (this->unk_200 == 0x2A) || (this->unk_200 == 0x2B) || (this->unk_200 == 0x2C) || (this->unk_200 == 0x2D) || (this->unk_200 == 0x2F) || (this->unk_200 == 0x30) || (this->unk_200 == 0x31) || (this->unk_200 == 0x34) || (this->unk_200 == 0x35)) { + this->unk_360 |= 0x20; + } + + if ((this->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + this->unk_360 &= ~0x20; + } + + this->actionFunc = func_80B57A44; + ret = true; + } + + return ret; +} + +s32 func_80B552E4(EnAn* this, PlayState* play) { + u16 temp_v0 = play->csCtx.scriptIndex; + s32 ret = false; + + if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { + if (this->unk_3B0 == 0) { + this->unk_38A = 0; + this->unk_38C = 0; + this->unk_360 |= 0x300; + this->unk_38E = 8; + this->unk_364 = -1; + this->unk_3B0 = 1; + this->unk_3B4 = 0; + } + + ret = true; + } else if (this->unk_3B0 != 0) { + this->unk_3B0 = 0; + this->unk_3B4 = 0; + this->unk_3C0 = 1; + this->actor.room = play->roomCtx.curRoom.num; + this->actionFunc = func_80B578F8; + } + + return ret; +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B553AC.s") @@ -296,6 +348,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55914.s") +Actor* func_80B55D20(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55D20.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55D98.s") @@ -324,6 +377,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56CAC.s") +s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56D28.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56E44.s") @@ -340,6 +394,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57674.s") +void func_80B57718(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57718.s") void func_80B577F0(EnAn* this, PlayState* play) { @@ -364,7 +419,36 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->actionFunc(this, play); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B578F8.s") +extern u8 D_80B581D0[]; + +void func_80B578F8(EnAn* this, PlayState* play) { + ScheduleOutput sp20; + + this->unk_384 = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); + + if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && (gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40)) { + Actor_Kill(&this->actor); + return; + } + + if (this->unk_3C0 != 0) { + sp20.result = 0x19; + if (this->unk_200 != 0x19) { + func_80B56D28(this, play, &sp20); + } + } else if ((Schedule_RunScript(play, D_80B581D0, &sp20) == 0) || ((this->unk_200 != sp20.result) && (func_80B56D28(this, play, &sp20) == 0))) { + this->actor.shape.shadowDraw = NULL; + this->actor.flags &= ~1; + sp20.result = 0; + } else { + this->actor.shape.shadowDraw = ActorShadow_DrawCircle; + this->actor.flags |= 1; + } + + this->unk_200 = sp20.result; + this->unk_218 = func_80B55D20(this, play); + func_80B57718(this, play); +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57A44.s") @@ -373,7 +457,7 @@ void func_80B577F0(EnAn* this, PlayState* play) { void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; - s32 temp_v1; // sp1C + s32 temp_v1; s32 temp_v0; if (play->sceneId != SCENE_YADOYA) { @@ -417,7 +501,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { return; } - if ((this->actionFunc != func_80B577F0) && (func_80B55180(this, play) == 0) && (func_80B552E4(this, play) != 0)) { + if ((this->actionFunc != func_80B577F0) && !func_80B55180(this, play) && (func_80B552E4(this, play) != 0)) { func_80B57B48(this, play); func_80B53BA8(this, play); func_80B53F84(this); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 2c633c429..2b6607463 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -15,19 +15,19 @@ typedef struct EnAn { /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ UNK_TYPE1 unk_18C[0x4]; /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ char pad_1DC[0x24]; /* inferred */ + /* 0x1DC */ char unk_1DC[0x24]; /* inferred */ /* 0x200 */ u8 unk_200; /* inferred */ - /* 0x201 */ char pad_201[3]; /* maybe part of unk_200[4]? */ + /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ /* 0x204 */ void* unk_204; /* inferred */ /* 0x208 */ s8 unk_208; /* inferred */ /* 0x209 */ s8 unk_209; /* inferred */ /* 0x20A */ s8 unk_20A; /* inferred */ /* 0x20B */ s8 unk_20B; /* inferred */ /* 0x20C */ s8 unk_20C; /* inferred */ - /* 0x20D */ char pad_20D[3]; /* maybe part of unk_20C[4]? */ + /* 0x20D */ char unk_20D[3]; /* maybe part of unk_20C[4]? */ /* 0x210 */ s32 unk_210; /* inferred */ /* 0x214 */ s8 unk_214; - /* 0x215 */ char pad_215[3]; /* maybe part of unk_214[4]? */ + /* 0x215 */ char unk_215[3]; /* maybe part of unk_214[4]? */ /* 0x218 */ Actor* unk_218; /* inferred */ /* 0x21C */ UNK_TYPE1 unk_21C[0x24]; /* maybe part of unk_218[0x13]? */ /* 0x240 */ Vec3f unk_240; @@ -38,36 +38,37 @@ typedef struct EnAn { /* 0x264 */ Vec3s unk_264[0x15]; /* 0x2E2 */ Vec3s unk_2E2[0x15]; /* 0x360 */ u16 unk_360; // flags? - /* 0x362 */ char pad_362[2]; /* inferred */ - /* 0x364 */ s8 unk_364; /* inferred */ - /* 0x365 */ char pad_365[3]; /* maybe part of unk_364[4]? */ + /* 0x362 */ char unk_362[2]; /* inferred */ + /* 0x364 */ u8 unk_364; + /* 0x365 */ char unk_365[3]; /* maybe part of unk_364[4]? */ /* 0x368 */ f32 unk_368; /* inferred */ - /* 0x36C */ char pad_36C[8]; /* maybe part of unk_368[3]? */ + /* 0x36C */ char unk_36C[8]; /* maybe part of unk_368[3]? */ /* 0x374 */ f32 unk_374; /* inferred */ - /* 0x378 */ char pad_378[4]; /* inferred */ + /* 0x378 */ char unk_378[4]; /* inferred */ /* 0x37C */ s16 unk_37C; /* inferred */ /* 0x37E */ s16 unk_37E; /* inferred */ - /* 0x380 */ char pad_380[4]; /* maybe part of unk_37E[3]? */ + /* 0x380 */ char unk_380[4]; /* maybe part of unk_37E[3]? */ /* 0x384 */ s16 unk_384; /* inferred */ - /* 0x386 */ char pad_386[2]; /* inferred */ + /* 0x386 */ char unk_386[2]; /* inferred */ /* 0x388 */ s16 unk_388; /* inferred */ /* 0x38A */ s16 unk_38A; /* inferred */ /* 0x38C */ s16 unk_38C; /* inferred */ /* 0x38E */ s16 unk_38E; /* inferred */ /* 0x390 */ s16 unk_390; /* inferred */ /* 0x392 */ s16 unk_392; /* inferred */ - /* 0x394 */ char pad_394[4]; /* maybe part of unk_392[3]? */ + /* 0x394 */ u16 unk_394; + /* 0x396 */ UNK_TYPE1 unk_396[0x2]; /* 0x398 */ void* unk_398; /* inferred */ /* 0x39C */ s32 unk_39C; /* inferred */ - /* 0x3A0 */ char pad_3A0[8]; /* maybe part of unk_39C[3]? */ + /* 0x3A0 */ char unk_3A0[8]; /* maybe part of unk_39C[3]? */ /* 0x3A8 */ u32 unk_3A8; /* inferred */ /* 0x3AC */ u32 unk_3AC; /* inferred */ /* 0x3B0 */ s32 unk_3B0; /* inferred */ /* 0x3B4 */ s32 unk_3B4; /* inferred */ /* 0x3B8 */ s32 unk_3B8; - /* 0x3BC */ char pad_3BC[4]; /* inferred */ + /* 0x3BC */ char unk_3BC[4]; /* inferred */ /* 0x3C0 */ s32 unk_3C0; /* inferred */ - /* 0x3C4 */ char pad_3C4[4]; /* inferred */ + /* 0x3C4 */ s32 unk_3C4; } EnAn; // size = 0x3C8 #endif // Z_EN_AN_H From f0ae3a161b0ac5d791d1531db4a5d808163cdc8e Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 11:18:49 -0300 Subject: [PATCH 07/78] more funcs --- src/overlays/actors/ovl_En_An/z_en_an.c | 380 +++++++++++++++++++++++- src/overlays/actors/ovl_En_An/z_en_an.h | 21 +- 2 files changed, 375 insertions(+), 26 deletions(-) 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 3d3b293b3..a5c50b2ee 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -23,9 +23,6 @@ void func_80B57A44(EnAn* this, PlayState* play); -s32 func_80B53840(EnAn* this, PlayState* play); -s32 func_80B53BA8(EnAn* this, PlayState* play); -void func_80B53ED4(EnAn* this, PlayState* play); void func_80B53F84(EnAn* this); s32 func_80B55180(EnAn* this, PlayState* play); s32 func_80B552E4(EnAn* this, PlayState* play); @@ -67,10 +64,59 @@ extern CollisionCheckInfoInit2 D_80B58BE8; extern Gfx D_060111E8[]; extern FlexSkeletonHeader D_06012618; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53840.s") +s32 func_80B53840(EnAn* this, PlayState* play) { + s32 ret = 0; -Actor* func_80B539CC(EnAn* this, PlayState* play, u8 arg2, s16 arg3); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B539CC.s") + if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { + this->unk_20C = SubS_GetObjectIndex(OBJECT_MSMO, play); + this->unk_20B = SubS_GetObjectIndex(OBJECT_AN4, play); + this->unk_20A = SubS_GetObjectIndex(OBJECT_MASK_KERFAY, play); + this->unk_209 = SubS_GetObjectIndex(OBJECT_AN3, play); + this->unk_208 = SubS_GetObjectIndex(OBJECT_AN2, play); + this->actor.draw = NULL; + this->unk_214 = play->roomCtx.curRoom.num; + this->unk_3B8 = 1; + } + + if (this->unk_3B8 == 0) { + return 0; + } + + if (((this->unk_208 >= 0) && (SubS_IsObjectLoaded(this->unk_208, play) == 0)) || ((this->unk_209 >= 0) && (SubS_IsObjectLoaded(this->unk_209, play) == 0)) || ((this->unk_20A >= 0) && (SubS_IsObjectLoaded(this->unk_20A, play) == 0)) || ((this->unk_20B >= 0) && (SubS_IsObjectLoaded(this->unk_20B, play) == 0)) || ((this->unk_20C >= 0) && (SubS_IsObjectLoaded(this->unk_20C, play) == 0))) { + ret = 1; + } else { + this->actor.draw = EnAn_Draw; + this->unk_3B8 = 0; + } + + return ret; +} + + +Actor* func_80B539CC(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { + Actor* foundActor = NULL; + + while (true) { + foundActor = SubS_FindActor(play, foundActor, actorCategory, actorId); + + if (foundActor == NULL) { + break; + } + + if ((this != (EnAn*)foundActor) && (foundActor->update != NULL)) { + break; + } + + if (foundActor->next == NULL) { + foundActor = NULL; + break; + } + + foundActor = foundActor->next; + } + + return foundActor; +} Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { Actor* foundActor = NULL; @@ -82,8 +128,8 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) break; } - if ((this != (EnAn*)foundActor)) { - if ((foundActor->update != NULL) && !(foundActor->params & 0x8000)) { + if ((this != (EnAn*)foundActor) && (foundActor->update != NULL)) { + if (!(foundActor->params & 0x8000)) { break; } } @@ -101,7 +147,34 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53B3C.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53BA8.s") +s32 func_80B53BA8(EnAn* this, PlayState* play) { + s8 temp_a3 = this->actor.objBankIndex; + s8 var_v1 = -1; + s32 ret = 0; + + if ((this->unk_39C >= 0x19) && (this->unk_20B >= 0)) { + var_v1 = this->unk_20B; + } else if ((this->unk_39C >= 0x15) && (this->unk_209 >= 0)) { + var_v1 = this->unk_209; + } else if ((this->unk_39C >= 0x11) && (this->unk_208 >= 0)) { + var_v1 = this->unk_208; + } else if (this->unk_39C < 0x11) { + var_v1 = temp_a3; + } + + if (var_v1 < 0) { + return 0; + } + + if (var_v1 >= 0) { + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); + this->unk_144.playSpeed = this->unk_368; + ret = SkelAnime_Update(&this->unk_144); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_a3].segment); + } + + return ret; +} s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { s8 temp_t1 = this->actor.objBankIndex; @@ -163,9 +236,85 @@ s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { return var_t2; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53ED4.s") +extern Vec3f D_80B58E34; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53F84.s") +void func_80B53ED4(EnAn* this, PlayState* play) { + f32 temp; + s32 pad; + Vec3f sp24; + + if (this->unk_200 == 0x19) { + Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); + this->unk_190.dim.radius = 20; + Math_Vec3f_ToVec3s(&this->unk_190.dim.pos, &sp24); + } else { + Collider_UpdateCylinder(&this->actor, &this->unk_190); + } + + temp = this->actor.focus.pos.y - this->actor.world.pos.y; + this->unk_190.dim.height = TRUNCF_BINANG(temp); + CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); +} + +extern s16 D_80B58E40[]; + +void func_80B53F84(EnAn* this) { + s32 var_a1 = 0; + + if (this->unk_360 & 0x100) { + if (DECR(this->unk_38E) == 0) { + // default case doesn't match + switch (this->unk_38C) { + case 0x2: + case 0x4: + case 0x6: + if ((this->unk_390 == 5) || (this->unk_390 == 2)) { + var_a1 = 1; + this->unk_390 = 5; + } + break; + + case 0x5: + case 0x7: + if ((this->unk_390 == 6) || (this->unk_390 == 1)) { + var_a1 = 1; + this->unk_390 = 6; + } + break; + + case 0x8: + if ((this->unk_390 == 4) || (this->unk_390 == 2)) { + var_a1 = 1; + this->unk_390 = 4; + } + break; + } + + if (var_a1 == 0) { + if ((this->unk_390 == 4) || (this->unk_390 == 5)) { + this->unk_390 = 0; + } else if (this->unk_390 == 6) { + this->unk_390 = 1; + } + } + + if (var_a1 == 0) { + this->unk_390++; + + if (this->unk_390 >= 4) { + if ((this->unk_38C == 0) || (this->unk_38C == 1) || (this->unk_38C == 3)) { + this->unk_38E = Rand_S16Offset(0x1E, 0x1E); + } else { + this->unk_38E = 8; + } + this->unk_390 = 0; + } + } + } + } + + this->unk_392 = D_80B58E40[this->unk_38C]; +} extern Vec3f D_80B58E54; extern Vec3s D_80B58E60; @@ -265,21 +414,197 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54750.s") +s32 func_80B547C8(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B547C8.s") +s32 func_80B5492C(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5492C.s") +s32 func_80B54A94(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54A94.s") +s32 func_80B54BC4(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54BC4.s") +s32 func_80B54C5C(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54C5C.s") +s32 func_80B54D18(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54D18.s") -UNK_PTR func_80B54DF4(EnAn* this, PlayState* play); +extern s32 D_80B58718[]; +extern s32 D_80B58784[]; +extern s32 D_80B58808[]; +extern s32 D_80B5885C[]; +extern s32 D_80B58938[]; +extern s32 D_80B58944[]; +extern s32 D_80B5894C[]; +extern s32 D_80B58954[]; +extern s32 D_80B58980[]; +extern s32 D_80B58988[]; +extern s32 D_80B58994[]; +extern s32 D_80B5899C[]; +extern s32 D_80B589AC[]; +extern s32 D_80B589FC[]; +extern s32 D_80B58A04[]; +extern s32 D_80B58A24[]; +extern s32 D_80B58A3C[]; +extern s32 D_80B58A44[]; +extern s32 D_80B58ABC[]; +extern s32 D_80B58AC4[]; +extern s32 D_80B58AE8[]; +extern s32 D_80B58AF4[]; +extern s32 D_80B58B3C[]; +extern s32 D_80B58B7C[]; +extern s32 D_80B58B88[]; +extern s32 D_80B58B90[]; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54DF4.s") +s32* func_80B54DF4(EnAn* this, PlayState* play) { + Player* player = GET_PLAYER(play); + + switch (this->unk_200) { + case 0x15: + this->msgEventFunc = func_80B54A94; + return D_80B58808; + + case 0x10: + this->msgEventFunc = func_80B547C8; + return D_80B58718; + + case 0x11: + this->msgEventFunc = func_80B5492C; + return D_80B58784; + + case 0xE: + this->msgEventFunc = func_80B54C5C; + return D_80B58954; + + case 0xC: + return D_80B5899C; + + case 0x19: + return D_80B58B90; + + default: + if (player->transformation == PLAYER_FORM_DEKU) { + switch (this->unk_200) { + case 0x1: + return D_80B58AE8; + + case 0x28: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2F: + return D_80B58B7C; + + case 0x3: + return D_80B58A24; + + case 0x31: + return D_80B589FC; + + default: + return D_80B58A04; + } + } else { + if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { + if (this->unk_200 == 0x31) { + return D_80B58B88; + } + + if (this->unk_200 == 0x17) { + this->msgEventFunc = func_80B54BC4; + return D_80B589AC; + } + + if (this->unk_200 == 3) { + this->msgEventFunc = func_80B54D18; + return D_80B58B3C; + } + + if (gSaveContext.save.day >= 2) { + return D_80B58A44; + } + + //if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { + if ((gSaveContext.save.time - (CLOCK_TIME(6, 0)-4)) < (CLOCK_TIME(8, 18)-5)) { + return D_80B58ABC; + } + return D_80B58AC4; + } + + if ((player->transformation == PLAYER_FORM_HUMAN) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + if (this->unk_200 == 0x17) { + this->msgEventFunc = func_80B54BC4; + return D_80B589AC; + } + if (this->unk_200 == 3) { + this->msgEventFunc = func_80B54D18; + return D_80B58AF4; + } + if (gSaveContext.save.day >= 2) { + return D_80B58A44; + } + } + + switch (this->unk_200) { + case 0x1: + return D_80B58AE8; + + case 0x28: + return D_80B5894C; + + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + return D_80B58980; + + case 0x3: + this->msgEventFunc = func_80B54D18; + return D_80B58AF4; + + case 0x12: + if (gSaveContext.save.day >= 2) { + return D_80B58A3C; + } + return D_80B5885C; + + case 0x13: + case 0x2F: + return D_80B58938; + + case 0x16: + return D_80B58988; + + case 0x17: + return D_80B589FC; + + case 0x30: + return D_80B58944; + + case 0x31: + if (player->transformation == PLAYER_FORM_HUMAN) { + return D_80B58B88; + } + return D_80B589FC; + + case 0x34: + case 0x35: + return D_80B58994; + + default: + break; + } + } + break; + } + + return NULL; +} +//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54DF4.s") s32 func_80B55180(EnAn* this, PlayState* play) { s32 ret = false; @@ -288,9 +613,9 @@ s32 func_80B55180(EnAn* this, PlayState* play) { SubS_SetOfferMode(&this->unk_360, 0U, 7U); this->unk_3C4 = 0; this->unk_394 = 0; - this->unk_398 = NULL; + this->msgEventFunc = NULL; this->actor.child = this->unk_218; - this->unk_204 = func_80B54DF4(this, play); + this->msgEventScript = func_80B54DF4(this, play); if ((this->unk_200 == 1) || (this->unk_200 == 3) || (this->unk_200 == 0x12) || (this->unk_200 == 0x13) || (this->unk_200 == 0x17) || (this->unk_200 == 0x16) || (this->unk_200 == 0x28) || (this->unk_200 == 0x2A) || (this->unk_200 == 0x2B) || (this->unk_200 == 0x2C) || (this->unk_200 == 0x2D) || (this->unk_200 == 0x2F) || (this->unk_200 == 0x30) || (this->unk_200 == 0x31) || (this->unk_200 == 0x34) || (this->unk_200 == 0x35)) { this->unk_360 |= 0x20; @@ -450,7 +775,30 @@ void func_80B578F8(EnAn* this, PlayState* play) { func_80B57718(this, play); } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57A44.s") + +void func_80B57A44(EnAn* this, PlayState* play) { + if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos) != 0) { + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + + this->unk_360 &= ~0x20; + this->unk_360 |= 0x200; + this->unk_388 = 0x14; + this->msgScriptResumePos = 0; + this->actionFunc = func_80B578F8; + } else if ((this->unk_200 != 1) && (this->unk_200 != 3) && (this->unk_200 != 0xC) && (this->unk_200 != 0xE) && (this->unk_200 != 0x19)) { + if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { + s32 temp; + Vec3f sp38; + Vec3f sp2C; + + Math_Vec3f_Copy(&sp38, &this->unk_218->world.pos); + Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); + temp = Math_Vec3f_Yaw(&sp2C, &sp38); + + Math_ApproachS(&this->actor.shape.rot.y, temp, 4, 0x2AA8); + } + } +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 2b6607463..b9f730b6e 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -6,6 +6,7 @@ struct EnAn; typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); +typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) @@ -16,17 +17,17 @@ typedef struct EnAn { /* 0x18C */ UNK_TYPE1 unk_18C[0x4]; /* 0x190 */ ColliderCylinder unk_190; /* 0x1DC */ char unk_1DC[0x24]; /* inferred */ - /* 0x200 */ u8 unk_200; /* inferred */ + /* 0x200 */ u8 unk_200; // enum? /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ - /* 0x204 */ void* unk_204; /* inferred */ - /* 0x208 */ s8 unk_208; /* inferred */ - /* 0x209 */ s8 unk_209; /* inferred */ - /* 0x20A */ s8 unk_20A; /* inferred */ - /* 0x20B */ s8 unk_20B; /* inferred */ - /* 0x20C */ s8 unk_20C; /* inferred */ + /* 0x204 */ s32* msgEventScript; + /* 0x208 */ s8 unk_208; + /* 0x209 */ s8 unk_209; + /* 0x20A */ s8 unk_20A; + /* 0x20B */ s8 unk_20B; + /* 0x20C */ s8 unk_20C; /* 0x20D */ char unk_20D[3]; /* maybe part of unk_20C[4]? */ - /* 0x210 */ s32 unk_210; /* inferred */ - /* 0x214 */ s8 unk_214; + /* 0x210 */ s32 msgScriptResumePos; + /* 0x214 */ s8 unk_214; // curRoom.num /* 0x215 */ char unk_215[3]; /* maybe part of unk_214[4]? */ /* 0x218 */ Actor* unk_218; /* inferred */ /* 0x21C */ UNK_TYPE1 unk_21C[0x24]; /* maybe part of unk_218[0x13]? */ @@ -58,7 +59,7 @@ typedef struct EnAn { /* 0x392 */ s16 unk_392; /* inferred */ /* 0x394 */ u16 unk_394; /* 0x396 */ UNK_TYPE1 unk_396[0x2]; - /* 0x398 */ void* unk_398; /* inferred */ + /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 unk_39C; /* inferred */ /* 0x3A0 */ char unk_3A0[8]; /* maybe part of unk_39C[3]? */ /* 0x3A8 */ u32 unk_3A8; /* inferred */ From bf65d2c25a9b03e824d244e40a62d8fe2dbfa9e8 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 11:42:47 -0300 Subject: [PATCH 08/78] SCHEDULE_CALC_TIME_ALT --- include/z64schedule.h | 3 +- src/overlays/actors/ovl_En_An/z_en_an.c | 58 +++++++++++++++++++++++-- src/overlays/actors/ovl_En_An/z_en_an.h | 2 +- 3 files changed, 57 insertions(+), 6 deletions(-) diff --git a/include/z64schedule.h b/include/z64schedule.h index 07a942e90..64855c659 100644 --- a/include/z64schedule.h +++ b/include/z64schedule.h @@ -28,7 +28,8 @@ */ // Macro to convert the time format used in the save struct into the format used in Schedule -#define SCHEDULE_CONVERT_TIME(time) ((u16)((time) - 0x10000 / 360 * 90)) +#define SCHEDULE_CONVERT_TIME_ALT(time) ((time) - 0x10000 / 360 * 90) +#define SCHEDULE_CONVERT_TIME(time) ((u16)SCHEDULE_CONVERT_TIME_ALT(time)) #define SCHEDULE_TIME_NOW SCHEDULE_CONVERT_TIME(gSaveContext.save.time) typedef enum { 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 a5c50b2ee..39e7d2934 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -408,14 +408,61 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { CLOSE_DISPS(play->state.gfxCtx); } +s32 func_80B54678(EnAn *this, s32 arg1); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54678.s") +s16 func_80B546F4(EnAn *this, s32 arg1); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B546F4.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54750.s") -s32 func_80B547C8(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B547C8.s") +s32 func_80B547C8(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + s16 temp_a1 = func_80B546F4(this, 0); + s32 ret = 0; + + switch (this->unk_394) { + case 0x0: + ret = 0; + if (func_80B54678(this, temp_a1) != 0) { + goto label; + } + break; + + case 0x2: + case 0x4: + case 0x6: + label: + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), &this->actor); + ret = 1; + this->unk_394++; + break; + + case 0x1: + case 0x3: + case 0x5: + if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (this->unk_394 == 3)) { + CutsceneManager_Stop(temp_a1); + } else { + Actor* temp_v0 = this->actor.child; + + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); + } + } + this->unk_394++; + ret = 1; + break; + + case 0x7: + CutsceneManager_Stop(temp_a1); + ret = 1; + this->unk_394++; + break; + } + + return ret; +} s32 func_80B5492C(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5492C.s") @@ -459,6 +506,9 @@ extern s32 D_80B58B7C[]; extern s32 D_80B58B88[]; extern s32 D_80B58B90[]; +// TODO: figure out what to do with this +#define SCHEDULE_CALC_TIME_ALT(hour, minute) SCHEDULE_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f)) + s32* func_80B54DF4(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); @@ -529,7 +579,8 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { } //if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { - if ((gSaveContext.save.time - (CLOCK_TIME(6, 0)-4)) < (CLOCK_TIME(8, 18)-5)) { + //if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, 18))) { + if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { return D_80B58ABC; } return D_80B58AC4; @@ -604,7 +655,6 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { return NULL; } -//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54DF4.s") s32 func_80B55180(EnAn* this, PlayState* play) { s32 ret = false; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index b9f730b6e..c2493fa48 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -57,7 +57,7 @@ typedef struct EnAn { /* 0x38E */ s16 unk_38E; /* inferred */ /* 0x390 */ s16 unk_390; /* inferred */ /* 0x392 */ s16 unk_392; /* inferred */ - /* 0x394 */ u16 unk_394; + /* 0x394 */ s16 unk_394; /* 0x396 */ UNK_TYPE1 unk_396[0x2]; /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 unk_39C; /* inferred */ From 438e76318b99f5fd0743d123bb0529b583ff4b22 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 13:22:42 -0300 Subject: [PATCH 09/78] moar --- src/overlays/actors/ovl_En_An/z_en_an.c | 142 +++++++++++++++++++++--- 1 file changed, 129 insertions(+), 13 deletions(-) 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 39e7d2934..83b79e095 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -414,6 +414,7 @@ s32 func_80B54678(EnAn *this, s32 arg1); s16 func_80B546F4(EnAn *this, s32 arg1); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B546F4.s") +s16 func_80B54750(EnAn* this, s32 arg1); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54750.s") s32 func_80B547C8(Actor* thisx, PlayState* play) { @@ -443,12 +444,8 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { case 0x5: if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (this->unk_394 == 3)) { CutsceneManager_Stop(temp_a1); - } else { - Actor* temp_v0 = this->actor.child; - - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); - } + } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); } this->unk_394++; ret = 1; @@ -463,18 +460,137 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { return ret; } +s32 func_80B5492C(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + s16 csId = func_80B546F4(this, 0); + s32 var_a2 = 0; -s32 func_80B5492C(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5492C.s") + switch (this->unk_394) { + case 0x0: + var_a2 = 0; + if (func_80B54678(this, csId) != 0) { + goto label; + } + break; -s32 func_80B54A94(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54A94.s") + case 0x2: + case 0x4: + label: + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); + var_a2 = 1; + this->unk_394++; + break; -s32 func_80B54BC4(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54BC4.s") + + case 0x1: + case 0x3: + if (!(gSaveContext.save.saveInfo.weekEventReg[0x4B] & 0x10) && (this->unk_394 == 3)) { + CutsceneManager_Stop(csId); + this->unk_394 = 5; + } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); + } + this->unk_394++; + var_a2 = 1; + break; + + case 0x5: + CutsceneManager_Stop(csId); + var_a2 = 1; + this->unk_394++; + break; + } + return var_a2; +} + +s32 func_80B54A94(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + s16 temp_a1 = func_80B54750(this, 0); + s32 ret = 0; + + switch (this->unk_394) { + case 0x0: + ret = 0; + if (func_80B54678(this, (s32) temp_a1) != 0) { + goto label; + } + break; + + case 0x2: + case 0x4: + case 0x6: + case 0x8: + label: + if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); + } + ret = 1; + this->unk_394 += 1; + break; + + case 0x1: + case 0x3: + case 0x5: + case 0x7: + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), &this->actor); + ret = 1; + this->unk_394 += 1; + break; + + case 0x9: + CutsceneManager_Stop(temp_a1); + ret = 1; + this->unk_394 += 1; + break; + } + + return ret; +} + +s32 func_80B54BC4(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + + if (this->unk_394 == 0) { + func_800B7298(play, &this->actor, PLAYER_CSMODE_WAIT); + play->nextEntrance = ENTRANCE(STOCK_POT_INN, 3); + gSaveContext.nextCutsceneIndex = 0; + play->transitionTrigger = TRANS_TRIGGER_START; + play->transitionType = TRANS_TYPE_FADE_BLACK; + gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK_SLOW; + this->unk_394++; + } + return 0; +} + +s32 func_80B54C5C(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + s32 sp20 = false; + + switch (this->unk_394) { + case 0x0: + func_80B53CE8(this, play, 0xD); + this->unk_394++; + break; + + case 0x1: + case 0x3: + if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + this->unk_394++; + sp20 = true; + } + break; + + case 0x2: + func_80B53CE8(this, play, 0xE); + this->unk_394++; + break; + } + + return sp20; +} s32 func_80B54C5C(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54C5C.s") +//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54C5C.s") s32 func_80B54D18(Actor* thisx, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54D18.s") From ef0c9ed33e3da95e9f8ecf7759835032ee33262f Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 14:11:46 -0300 Subject: [PATCH 10/78] mor --- src/overlays/actors/ovl_En_An/z_en_an.c | 161 +++++++++++++++++++----- 1 file changed, 130 insertions(+), 31 deletions(-) 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 83b79e095..5e28895cf 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -23,13 +23,6 @@ void func_80B57A44(EnAn* this, PlayState* play); -void func_80B53F84(EnAn* this); -s32 func_80B55180(EnAn* this, PlayState* play); -s32 func_80B552E4(EnAn* this, PlayState* play); -void func_80B554E8(EnAn* this); -UNK_RET func_80B55914(EnAn* this, PlayState* play); -void func_80B57B48(EnAn* this, PlayState* play); - extern AnimationInfoS D_80B58BF4[]; @@ -408,24 +401,58 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { CLOSE_DISPS(play->state.gfxCtx); } -s32 func_80B54678(EnAn *this, s32 arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54678.s") +s32 func_80B54678(EnAn* this, s16 csId) { + s32 ret = false; -s16 func_80B546F4(EnAn *this, s32 arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B546F4.s") + if (CutsceneManager_GetCurrentCsId() == CS_ID_GLOBAL_TALK) { + CutsceneManager_Stop(CS_ID_GLOBAL_TALK); + CutsceneManager_Queue(csId); + } else if (CutsceneManager_IsNext(csId)) { + CutsceneManager_StartWithPlayerCs(csId, &this->actor); + ret = true; + } else { + CutsceneManager_Queue(csId); + } -s16 func_80B54750(EnAn* this, s32 arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54750.s") + return ret; +} + +s16 func_80B546F4(EnAn* this, s32 arg1) { + s16 csId = this->actor.csId; + s32 i; + + for (i = 0; i < arg1; i++) { + csId = CutsceneManager_GetAdditionalCsId(csId); + } + + return csId; +} + +s16 func_80B54750(EnAn* this, s32 arg1) { + Actor* temp_v0 = this->actor.child; + s16 csId = -1; + s32 i; + + if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { + csId = temp_v0->csId; + + for (i = 0; i < arg1; i++) { + csId = CutsceneManager_GetAdditionalCsId(csId); + } + } + + return csId; +} s32 func_80B547C8(Actor* thisx, PlayState* play) { EnAn *this = THIS; - s16 temp_a1 = func_80B546F4(this, 0); + s16 csId = func_80B546F4(this, 0); s32 ret = 0; switch (this->unk_394) { case 0x0: ret = 0; - if (func_80B54678(this, temp_a1) != 0) { + if (func_80B54678(this, csId)) { goto label; } break; @@ -434,7 +461,7 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { case 0x4: case 0x6: label: - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), &this->actor); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = 1; this->unk_394++; break; @@ -443,16 +470,16 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { case 0x3: case 0x5: if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (this->unk_394 == 3)) { - CutsceneManager_Stop(temp_a1); + CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); } this->unk_394++; ret = 1; break; case 0x7: - CutsceneManager_Stop(temp_a1); + CutsceneManager_Stop(csId); ret = 1; this->unk_394++; break; @@ -468,7 +495,7 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { switch (this->unk_394) { case 0x0: var_a2 = 0; - if (func_80B54678(this, csId) != 0) { + if (func_80B54678(this, csId)) { goto label; } break; @@ -505,13 +532,13 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { s32 func_80B54A94(Actor* thisx, PlayState* play) { EnAn *this = THIS; - s16 temp_a1 = func_80B54750(this, 0); + s16 csId = func_80B54750(this, 0); s32 ret = 0; switch (this->unk_394) { case 0x0: ret = 0; - if (func_80B54678(this, (s32) temp_a1) != 0) { + if (func_80B54678(this, csId)) { goto label; } break; @@ -522,7 +549,7 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { case 0x8: label: if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), this->actor.child); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); } ret = 1; this->unk_394 += 1; @@ -532,13 +559,13 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { case 0x3: case 0x5: case 0x7: - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(temp_a1)), &this->actor); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = 1; this->unk_394 += 1; break; case 0x9: - CutsceneManager_Stop(temp_a1); + CutsceneManager_Stop(csId); ret = 1; this->unk_394 += 1; break; @@ -589,11 +616,34 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) { return sp20; } -s32 func_80B54C5C(Actor* thisx, PlayState* play); -//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54C5C.s") +s32 func_80B54D18(Actor* thisx, PlayState* play) { + EnAn *this = THIS; + s32 ret = false; -s32 func_80B54D18(Actor* thisx, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B54D18.s") + switch (this->unk_394) { + case 0x0: + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + this->unk_394++; + goto label; + } else { + ret = true; + this->unk_360 |= 0x4000; + this->unk_394++; + } + break; + + case 0x1: + label: + this->unk_360 &= ~(0x20|0x4000); + this->unk_360 |= 0x200; + func_80B53CE8(this, play, 0x14); + ret = true; + this->unk_394++; + break; + } + + return ret; +} extern s32 D_80B58718[]; extern s32 D_80B58784[]; @@ -825,9 +875,56 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { return ret; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B553AC.s") +void func_80B553AC(EnAn* this) { + Actor* temp_v0_2; + Vec3f sp40; + Vec3f sp34; + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B554E8.s") + Math_Vec3f_Copy(&sp40, &this->unk_218->world.pos); + Math_Vec3f_Copy(&sp34, &this->actor.world.pos); + Math_ApproachS(&this->unk_37E, Math_Vec3f_Yaw(&sp34, &sp40) - this->actor.shape.rot.y, 4, 0x2AA8); + + this->unk_37E = CLAMP(this->unk_37E, -0x1FFE, 0x1FFE); + + Math_Vec3f_Copy(&sp34, &this->actor.focus.pos); + + temp_v0_2 = this->unk_218; + if (temp_v0_2->id == ACTOR_PLAYER) { + sp40.y = ((Player*)temp_v0_2)->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; + } else { + Math_Vec3f_Copy(&sp40, &temp_v0_2->focus.pos); + } + + Math_ApproachS(&this->unk_37C, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); + + this->unk_37C = CLAMP(this->unk_37C, -0x1554, 0x1554); +} + +void func_80B554E8(EnAn* this) { + if (this->unk_360 & 0x20) { + if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { + if (DECR(this->unk_388) == 0) { + func_80B553AC(this); + this->unk_360 &= ~0x200; + this->unk_360 |= 0x80; + return; + } + } + } + + if (this->unk_360 & 0x80) { + this->unk_360 &= ~0x80; + this->unk_37C = 0; + this->unk_37E = 0; + this->unk_388 = 0x14; + return; + } + + if (DECR(this->unk_388) == 0) { + this->unk_360 |= 0x200; + } +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B555C8.s") @@ -837,6 +934,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55860.s") +UNK_RET func_80B55914(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55914.s") Actor* func_80B55D20(EnAn* this, PlayState* play); @@ -966,6 +1064,7 @@ void func_80B57A44(EnAn* this, PlayState* play) { } } +void func_80B57B48(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") void EnAn_Init(Actor* thisx, PlayState* play) { From 7f9df9ce7b0bd57c440869dc8e35181e0088c96b Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 14:55:57 -0300 Subject: [PATCH 11/78] mas --- src/overlays/actors/ovl_En_An/z_en_an.c | 483 +++++++++++++++++++++++- src/overlays/actors/ovl_En_An/z_en_an.h | 7 +- 2 files changed, 475 insertions(+), 15 deletions(-) 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 5e28895cf..8f5947538 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -926,19 +926,368 @@ void func_80B554E8(EnAn* this) { } } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B555C8.s") +s32 func_80B555C8(EnAn* this, PlayState* play) { + switch (this->unk_200) { + case 0x10: + case 0x11: + case 0x12: + case 0x13: + case 0x17: + func_80B53CE8(this, play, 1); + break; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B556F8.s") + case 0x16: + func_80B53CE8(this, play, 0x17); + this->unk_360 |= 0x2000; + break; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B557AC.s") + case 0xE: + func_80B53CE8(this, play, 0xC); + break; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55860.s") + case 0x15: + func_80B53CE8(this, play, 0xF); + break; -UNK_RET func_80B55914(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55914.s") + case 0x2F: + case 0x31: + func_80B53CE8(this, play, 7); + break; -Actor* func_80B55D20(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55D20.s") + case 0x34: + case 0x35: + func_80B53CE8(this, play, 0x16); + this->unk_360 |= 0x2000; + break; + + default: + if (this->unk_39C == 0xF) { + func_80B53CE8(this, play, 0x10); + } + if (this->unk_39C == 0x11) { + func_80B53CE8(this, play, 0x12); + } + if ((this->unk_39C == 1) || (this->unk_39C == 2)) { + func_80B53CE8(this, play, 8); + } + break; + } + + return 0; +} + +void func_80B556F8(EnAn* this, PlayState* play) { + if (this->unk_396 == 0) { + func_80B53CE8(this, play, 6); + this->unk_360 &= 0xFFDF; + this->unk_360 |= 0x200; + this->unk_396++; + } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + func_80B53CE8(this, play, 2); + this->unk_360 &= 0xFDFF; + this->unk_360 |= 0x20; + this->unk_396++; + } +} + +void func_80B557AC(EnAn* this, PlayState* play) { + if (this->unk_396 == 0) { + func_80B53CE8(this, play, 3); + this->unk_360 &= 0xFFDF; + this->unk_360 |= 0x200; + this->unk_396++; + } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + func_80B53CE8(this, play, 2); + this->unk_360 &= 0xFDFF; + this->unk_360 |= 0x20; + this->unk_396++; + } +} + +void func_80B55860(EnAn* this, PlayState* play) { + if (this->unk_396 == 0) { + func_80B53CE8(this, play, 4); + this->unk_360 |= 0x200; + this->unk_360 &= 0xFFDF; + this->unk_396++; + } else if ((this->unk_396 == 1) && (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0)) { + func_80B53CE8(this, play, 2); + this->unk_360 &= 0xFDFF; + this->unk_360 |= 0x20; + this->unk_396++; + } +} + +s32 func_80B55914(EnAn* this, PlayState* play) { + Player* player; + u16 sp22; + + player = GET_PLAYER(play); + sp22 = play->msgCtx.currentTextId; + if (player->stateFlags1 & PLAYER_STATE1_40) { + this->unk_360 |= 0x400; + if (this->unk_362 != sp22) { + switch (sp22) { /* switch 3; irregular */ + case 0x28E5: /* switch 3 */ + func_80B53CE8(this, play, 5); + this->unk_360 &= 0xDFFF; + break; + case 0x28BA: /* switch 3 */ + case 0x28D1: /* switch 3 */ + func_80B53CE8(this, play, 5); + break; + case 0x28AF: /* switch 3 */ + case 0x28C1: /* switch 3 */ + func_80B53CE8(this, play, 1); + break; + case 0x28BC: /* switch 3 */ + func_80B53CE8(this, play, 2); + break; + case 0x28C6: /* switch 3 */ + func_80B53CE8(this, play, 0xF); + break; + case 0x28F5: /* switch 3 */ + func_80B53CE8(this, play, 0xA); + break; + case 0x28F7: /* switch 3 */ + case 0x28F8: /* switch 3 */ + func_80B53CE8(this, play, 0x15); + break; + case 0x28EB: /* switch 3 */ + if (this->unk_39C != 0x14) { + this->unk_360 &= 0xBFDF; + this->unk_360 |= 0x200; + func_80B53CE8(this, play, 0x14); + } + break; + case 0x28A4: /* switch 3 */ + case 0x28A9: /* switch 3 */ + case 0x28BE: /* switch 3 */ + case 0x28C0: /* switch 3 */ + case 0x295E: + this->unk_18C = func_80B556F8; + this->unk_396 = 0; + break; + case 0x28E6: /* switch 3 */ + this->unk_360 &= 0xDFFF; + this->unk_18C = func_80B55860; + this->unk_396 = 0; + break; + case 0x1885: /* switch 3 */ + case 0x28A0: /* switch 3 */ + case 0x28A3: /* switch 3 */ + case 0x28A5: /* switch 3 */ + case 0x28B1: /* switch 3 */ + case 0x28D2: /* switch 3 */ + case 0x28D9: /* switch 3 */ + case 0x28DC: /* switch 3 */ + case 0x28DE: /* switch 3 */ + this->unk_18C = func_80B557AC; + this->unk_396 = 0; + break; + case 0x28A1: /* switch 3 */ + case 0x28A2: /* switch 3 */ + case 0x28A6: /* switch 3 */ + case 0x28A7: /* switch 3 */ + case 0x28A8: /* switch 3 */ + case 0x28AA: /* switch 3 */ + case 0x28AB: /* switch 3 */ + case 0x28AC: /* switch 3 */ + case 0x28AD: /* switch 3 */ + case 0x28AE: /* switch 3 */ + case 0x28B0: /* switch 3 */ + case 0x28B2: /* switch 3 */ + case 0x28B3: /* switch 3 */ + case 0x28B4: /* switch 3 */ + case 0x28B5: /* switch 3 */ + case 0x28B6: /* switch 3 */ + case 0x28B7: /* switch 3 */ + case 0x28B8: /* switch 3 */ + case 0x28B9: /* switch 3 */ + case 0x28BB: /* switch 3 */ + case 0x28BD: /* switch 3 */ + case 0x28BF: /* switch 3 */ + case 0x28C2: /* switch 3 */ + case 0x28C3: /* switch 3 */ + case 0x28C4: /* switch 3 */ + case 0x28C5: /* switch 3 */ + case 0x28C7: /* switch 3 */ + case 0x28C8: /* switch 3 */ + case 0x28C9: /* switch 3 */ + case 0x28CA: /* switch 3 */ + case 0x28CB: /* switch 3 */ + case 0x28CC: /* switch 3 */ + case 0x28CD: /* switch 3 */ + case 0x28CE: /* switch 3 */ + case 0x28CF: /* switch 3 */ + case 0x28D0: /* switch 3 */ + case 0x28D3: /* switch 3 */ + case 0x28D4: /* switch 3 */ + case 0x28D5: /* switch 3 */ + case 0x28D6: /* switch 3 */ + case 0x28D7: /* switch 3 */ + case 0x28D8: /* switch 3 */ + case 0x28DA: /* switch 3 */ + case 0x28DB: /* switch 3 */ + case 0x28DD: /* switch 3 */ + case 0x28DF: /* switch 3 */ + case 0x28E0: /* switch 3 */ + case 0x28E1: /* switch 3 */ + case 0x28E2: /* switch 3 */ + case 0x28E3: /* switch 3 */ + case 0x28E4: /* switch 3 */ + case 0x28E7: /* switch 3 */ + case 0x28E8: /* switch 3 */ + case 0x28E9: /* switch 3 */ + case 0x28EA: /* switch 3 */ + case 0x28EC: /* switch 3 */ + case 0x28ED: /* switch 3 */ + case 0x28EE: /* switch 3 */ + case 0x28EF: /* switch 3 */ + case 0x28F0: /* switch 3 */ + case 0x28F1: /* switch 3 */ + case 0x28F2: /* switch 3 */ + case 0x28F3: /* switch 3 */ + case 0x28F4: /* switch 3 */ + case 0x28F6: /* switch 3 */ + default: // idk + if (this->unk_39C == 0x10) { + func_80B53CE8(this, play, 0xF); + } + if (this->unk_39C == 0x12) { + func_80B53CE8(this, play, 0x11); + } + if ((this->unk_39C == 0x16) || (this->unk_39C == 0x17)) { + func_80B53CE8(this, play, 0x15); + } + if ((this->unk_39C == 7) || (this->unk_39C == 8)) { + func_80B53CE8(this, play, 2); + } + break; + } + + switch (sp22) { /* switch 4; irregular */ + case 0x28F5: /* switch 4 */ + this->unk_38A = 0; + /* fallthrough */ + case 0x28A5: /* switch 4 */ + case 0x28AA: /* switch 4 */ + case 0x28F8: /* switch 4 */ + this->unk_38C = 0; + this->unk_38E = 8; + break; + case 0x1885: /* switch 4 */ + case 0x28A0: /* switch 4 */ + case 0x28A6: /* switch 4 */ + case 0x28AF: /* switch 4 */ + case 0x28C1: /* switch 4 */ + this->unk_38C = 3; + this->unk_38E = 8; + break; + case 0x28A2: /* switch 4 */ + case 0x28B3: /* switch 4 */ + case 0x28B6: /* switch 4 */ + case 0x28BA: /* switch 4 */ + case 0x28BE: /* switch 4 */ + case 0x28CE: /* switch 4 */ + case 0x28D0: /* switch 4 */ + case 0x28D6: /* switch 4 */ + case 0x28E5: /* switch 4 */ + case 0x28E7: /* switch 4 */ + case 0x28ED: /* switch 4 */ + this->unk_38C = 1; + this->unk_38E = 8; + break; + case 0x28AD: /* switch 4 */ + this->unk_38C = 8; + this->unk_38E = 8; + break; + case 0x28C0: /* switch 4 */ + case 0x28D7: /* switch 4 */ + case 0x28DE: /* switch 4 */ + this->unk_38C = 2; + this->unk_38E = 8; + break; + case 0x28E6: /* switch 4 */ + case 0x28F7: /* switch 4 */ + this->unk_38C = 6; + this->unk_38E = 8; + break; + case 0x28A3: /* switch 4 */ + case 0x28B1: /* switch 4 */ + case 0x28B8: /* switch 4 */ + case 0x28C6: /* switch 4 */ + case 0x28CA: /* switch 4 */ + case 0x28CC: /* switch 4 */ + case 0x28D5: /* switch 4 */ + case 0x28E2: /* switch 4 */ + case 0x28E3: /* switch 4 */ + case 0x28E4: /* switch 4 */ + this->unk_38C = 4; + this->unk_38E = 8; + break; + case 0x28EC: /* switch 4 */ + this->unk_38A = 5; + /* fallthrough */ + case 0x28DC: /* switch 4 */ + case 0x28EB: /* switch 4 */ + case 0x28F2: /* switch 4 */ + case 0x28F9: /* switch 4 */ + this->unk_38C = 5; + this->unk_38E = 8; + break; + case 0x28F6: /* switch 4 */ + this->unk_38C = 9; + this->unk_38E = 8; + break; + case 0x28A4: /* switch 4 */ + case 0x28A9: /* switch 4 */ + this->unk_38C = 7; + this->unk_38E = 8; + break; + } + } + + this->unk_362 = sp22; + } else if (this->unk_360 & 0x400) { + this->unk_18C = NULL; + this->unk_362 = 0; + this->unk_360 &= ~0x400; + this->unk_38C = this->unk_38A; + this->unk_38E = 4; + func_80B555C8(this, play); + } + + if (this->unk_18C != NULL) { + this->unk_18C(this, play); + } + + return 0; +} + +Actor* func_80B55D20(EnAn* this, PlayState* play) { + Actor* actor; + + switch (this->unk_200) { + default: + actor = GET_PLAYER(play); + break; + + case 0x15: + actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_NB); + break; + + case 0x10: + actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_PM); + break; + + case 0x11: + actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_IG); + break; + } + + return actor; +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55D98.s") @@ -946,28 +1295,138 @@ Actor* func_80B55D20(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55F8C.s") +s32 func_80B5600C(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5600C.s") +s32 func_80B56094(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56094.s") +s32 func_80B5611C(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5611C.s") +s32 func_80B561A4(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B561A4.s") +s32 func_80B56418(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56418.s") +s32 func_80B56744(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56744.s") +s32 func_80B56880(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56880.s") +s32 func_80B56B00(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56B00.s") +s32 func_80B56BC0(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56BC0.s") +s32 func_80B56CAC(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56CAC.s") -s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56D28.s") +s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 ret; + + this->actor.flags |= ACTOR_FLAG_TARGETABLE; + this->actor.targetMode = TARGET_MODE_6; + this->unk_360 = 0; + this->unk_38A = 0; + this->unk_38C = 0; + this->unk_38E = 8; + this->unk_374 = 40.0f; + + switch (scheduleOutput->result) { + case 0x10: + ret = func_80B5600C(this, play); + break; + + case 0x11: + ret = func_80B56094(this, play); + break; + + case 0x15: + ret = func_80B5611C(this, play); + break; + + case 0xC: + ret = func_80B56B00(this, play); + break; + + case 0x1: + case 0x18: + ret = func_80B56BC0(this, play); + break; + + case 0x3: + case 0xE: + case 0x12: + case 0x13: + case 0x17: + ret = func_80B56880(this, play); + break; + + case 0x16: + ret = func_80B56744(this, play); + break; + + case 0x19: + ret = func_80B56CAC(this, play); + break; + + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + ret = func_80B561A4(this, play); + break; + + case 0x28: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + ret = func_80B56418(this, play); + break; + + default: + ret = 0; + break; + } + + return ret; +} + +//s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); +//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56D28.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56E44.s") @@ -1027,11 +1486,11 @@ void func_80B578F8(EnAn* this, PlayState* play) { } } else if ((Schedule_RunScript(play, D_80B581D0, &sp20) == 0) || ((this->unk_200 != sp20.result) && (func_80B56D28(this, play, &sp20) == 0))) { this->actor.shape.shadowDraw = NULL; - this->actor.flags &= ~1; + this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; sp20.result = 0; } else { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; - this->actor.flags |= 1; + this->actor.flags |= ACTOR_FLAG_TARGETABLE; } this->unk_200 = sp20.result; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index c2493fa48..0a983d8ab 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -6,6 +6,7 @@ struct EnAn; typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); +typedef void (*EnAnUnkFunc)(struct EnAn*, PlayState*); typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) @@ -14,7 +15,7 @@ typedef struct EnAn { /* 0x000 */ Actor actor; /* 0x144 */ SkelAnime unk_144; /* 0x188 */ EnAnActionFunc actionFunc; - /* 0x18C */ UNK_TYPE1 unk_18C[0x4]; + /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; /* 0x1DC */ char unk_1DC[0x24]; /* inferred */ /* 0x200 */ u8 unk_200; // enum? @@ -39,7 +40,7 @@ typedef struct EnAn { /* 0x264 */ Vec3s unk_264[0x15]; /* 0x2E2 */ Vec3s unk_2E2[0x15]; /* 0x360 */ u16 unk_360; // flags? - /* 0x362 */ char unk_362[2]; /* inferred */ + /* 0x362 */ u16 unk_362; /* inferred */ /* 0x364 */ u8 unk_364; /* 0x365 */ char unk_365[3]; /* maybe part of unk_364[4]? */ /* 0x368 */ f32 unk_368; /* inferred */ @@ -58,7 +59,7 @@ typedef struct EnAn { /* 0x390 */ s16 unk_390; /* inferred */ /* 0x392 */ s16 unk_392; /* inferred */ /* 0x394 */ s16 unk_394; - /* 0x396 */ UNK_TYPE1 unk_396[0x2]; + /* 0x396 */ s16 unk_396; /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 unk_39C; /* inferred */ /* 0x3A0 */ char unk_3A0[8]; /* maybe part of unk_39C[3]? */ From e18e8fc1195ea7ad8a5802e154cf876f490ae4c5 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 16:20:39 -0300 Subject: [PATCH 12/78] scriiiipts --- src/overlays/actors/ovl_En_An/z_en_an.c | 321 ++++++++++++++++++++++-- src/overlays/actors/ovl_En_An/z_en_an.h | 19 +- 2 files changed, 309 insertions(+), 31 deletions(-) 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 8f5947538..2c7de3af1 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -5,6 +5,7 @@ */ #include "z_en_an.h" +#include "overlays/actors/ovl_En_Door/z_en_door.h" #define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_20) @@ -138,6 +139,7 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) return foundActor; } +EnDoor* func_80B53B3C(PlayState* play, s32 arg1); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53B3C.s") s32 func_80B53BA8(EnAn* this, PlayState* play) { @@ -1270,7 +1272,7 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { switch (this->unk_200) { default: - actor = GET_PLAYER(play); + actor = &GET_PLAYER(play)->actor; break; case 0x15: @@ -1289,40 +1291,305 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { return actor; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55D98.s") +extern s32 D_80B58618[]; + +s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u8 actorCategory, s16 actorId) { + u8 sp4F = this->actor.params & 0xFF; + Vec3s* temp_v0_3; + Vec3f sp3C; + Vec3f sp30; + Actor* var_v1; + s32 pad; + s32 ret = false; + + var_v1 = func_80B539CC(this, play, actorCategory, actorId); + this->unk_1DC = NULL; + + if (D_80B58618[scheduleOutput->result] >= 0) { + this->unk_1DC = SubS_GetAdditionalPath(play, sp4F, D_80B58618[scheduleOutput->result]); + } + + if ((var_v1 != NULL) && (var_v1->update != NULL)) { + if (this->unk_1DC != NULL) { + temp_v0_3 = Lib_SegmentedToVirtual(this->unk_1DC->points); + Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->unk_1DC->count-2]); + Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->unk_1DC->count-1]); + this->actor.shape.shadowDraw = NULL; + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); + Math_Vec3f_Copy(&this->actor.world.pos, &sp30); + ret = true; + } + } + + return ret; +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55ECC.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55F8C.s") -s32 func_80B5600C(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5600C.s") +s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 ret = false; -s32 func_80B56094(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56094.s") + if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM) != 0) { + func_80B53CE8(this, play, 1); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + ret = true; -s32 func_80B5611C(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5611C.s") + this->unk_360 |= 0x120; + this->unk_360 |= 0x200; + } -s32 func_80B561A4(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B561A4.s") + return ret; +} -s32 func_80B56418(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56418.s") +s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 ret = false; -s32 func_80B56744(EnAn* this, PlayState* play); + if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG) != 0) { + func_80B53CE8(this, play, 1); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + ret = true; + + this->unk_360 |= 0x120; + this->unk_360 |= 0x200; + } + + return ret; +} + +s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 ret = false; + + if (func_80B55D98(this, play, scheduleOutput, 4, 0x243) != 0) { + func_80B53CE8(this, play, 0xF); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + ret = true; + + this->unk_360 |= 0x120; + this->unk_360 |= 0xA00; + } + + return ret; +} + +extern s32 D_80B58618[]; + +s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + u16 sp56 = SCHEDULE_TIME_NOW; + u8 pathIndex = this->actor.params & 0xFF; + EnDoor* sp50; + Vec3s* temp_v0_2; + Vec3f sp40; + Vec3f sp34; + s32 limit; + s32 ret = false; + + this->unk_1DC = NULL; + sp50 = func_80B53B3C(play, scheduleOutput->result); + + limit = D_80B58618[scheduleOutput->result]; + if (limit >= 0) { + this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + } + + if ((sp50 != NULL) && (sp50->knobDoor.dyna.actor.update != NULL)) { + if (this->unk_1DC != NULL) { + temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); + Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); + Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); + Math_Vec3f_Copy(&this->unk_228, &sp40); + Math_Vec3f_Copy(&this->unk_234, &sp34); + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + Math_Vec3f_Copy(&this->actor.world.pos, &sp40); + + if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, sp50->knobDoor.dyna.actor.shape.rot.y)) <= 0x4000) { + this->unk_215 = -0x4B; + } else { + this->unk_215 = 0x4B; + } + + this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; + this->unk_37A = sp56 - scheduleOutput->time0; + + switch (scheduleOutput->result) { /* switch 1 */ + case 0x1B: /* switch 1 */ + case 0x1C: /* switch 1 */ + case 0x20: /* switch 1 */ + case 0x21: /* switch 1 */ + case 0x22: /* switch 1 */ + case 0x23: /* switch 1 */ + case 0x25: /* switch 1 */ + case 0x26: /* switch 1 */ + this->unk_38A = 2; + this->unk_38C = 2; + this->unk_38E = 8; + break; + } + + switch (scheduleOutput->result) { /* switch 2 */ + case 0x1A: /* switch 2 */ + case 0x1B: /* switch 2 */ + case 0x1C: /* switch 2 */ + this->unk_360 |= 0x900; + func_80B53CE8(this, play, 0x10); + break; + case 0x24: /* switch 2 */ + case 0x27: /* switch 2 */ + this->unk_360 |= 0x2100; + func_80B53CE8(this, play, 0x16); + break; + default: /* switch 2 */ + this->unk_360 |= 0x100; + func_80B53CE8(this, play, 7); + break; + } + + this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; + this->unk_360 |= 0x200; + this->actor.gravity = 0.0f; + ret = true; + } + } + + return ret; +} + +s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + u16 temp_t0 = (gSaveContext.save.time - 0x3FFC); + u16 var_v1_2; + u8 sp2B = this->actor.params & 0xFF; + s32 pad; + s32 var_v1 = 0; + s32 temp_a3; + + this->unk_1DC = NULL; + temp_a3 = D_80B58618[scheduleOutput->result]; + + if (temp_a3 >= 0) { + this->unk_1DC = SubS_GetAdditionalPath(play, sp2B, temp_a3); + } + + if ((this->unk_1DC != NULL) && (this->unk_1DC->count < 3)) { + this->unk_1DC = NULL; + } + + if (this->unk_1DC != NULL) { + if ((this->unk_200 < 0x28) && (this->unk_200 != 0) && (this->unk_384 >= 0)) { + var_v1_2 = temp_t0; + } else { + var_v1_2 = scheduleOutput->time0; + } + + if (scheduleOutput->time1 < var_v1_2) { + this->unk_1F0 = (var_v1_2 - scheduleOutput->time1) + 0xFFFF; + } else { + this->unk_1F0 = scheduleOutput->time1 - var_v1_2; + } + + this->unk_1FC = temp_t0 - var_v1_2; + var_v1_2 = (this->unk_1DC->count - 2); + this->unk_1F4 = this->unk_1F0 / var_v1_2; + + this->unk_1F8 = (this->unk_1FC / this->unk_1F4) + 2; + this->unk_360 &= ~8; + this->unk_360 &= ~0x10; + + switch (scheduleOutput->result) { /* switch 1 */ + case 0x2C: /* switch 1 */ + case 0x2D: /* switch 1 */ + case 0x32: /* switch 1 */ + case 0x33: /* switch 1 */ + case 0x36: /* switch 1 */ + case 0x37: /* switch 1 */ + case 0x38: /* switch 1 */ + case 0x39: /* switch 1 */ + case 0x3A: /* switch 1 */ + case 0x3B: /* switch 1 */ + case 0x3C: /* switch 1 */ + case 0x3D: /* switch 1 */ + case 0x3E: /* switch 1 */ + case 0x3F: /* switch 1 */ + this->unk_38A = 2; + this->unk_38C = 2; + this->unk_38E = 8; + break; + } + + switch (scheduleOutput->result) { /* switch 2 */ + case 0x2A: /* switch 2 */ + case 0x2B: /* switch 2 */ + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + /* fallthrough */ + case 0x2C: /* switch 2 */ + case 0x2D: /* switch 2 */ + func_80B53CE8(this, play, 0x10); + this->unk_360 |= 0x300; + this->unk_360 |= 0x800; + break; + + case 0x34: /* switch 2 */ + case 0x35: /* switch 2 */ + func_80B53CE8(this, play, 0x16); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + + this->unk_360 |= 0x300; + this->unk_360 |= 0x2000; + break; + + case 0x32: /* switch 2 */ + case 0x33: /* switch 2 */ + func_80B53CE8(this, play, 7); + this->unk_360 |= 0x300; + break; + + case 0x36: /* switch 2 */ + case 0x37: /* switch 2 */ + case 0x38: /* switch 2 */ + case 0x39: /* switch 2 */ + case 0x3A: /* switch 2 */ + case 0x3B: /* switch 2 */ + case 0x3C: /* switch 2 */ + case 0x3D: /* switch 2 */ + case 0x3E: /* switch 2 */ + case 0x3F: /* switch 2 */ + func_80B53CE8(this, play, 0x12); + this->unk_360 |= 0x300; + this->unk_360 |= 0x1000; + break; + + case 0x28: /* switch 2 */ + case 0x2F: /* switch 2 */ + case 0x30: /* switch 2 */ + case 0x31: /* switch 2 */ + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + this->unk_360 |= 0x300; + /* fallthrough */ + default: /* switch 2 */ + func_80B53CE8(this, play, 7); + break; + } + + var_v1 = 1; + this->actor.gravity = -1.0f; + } + + return var_v1; +} + +s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56744.s") -s32 func_80B56880(EnAn* this, PlayState* play); +s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56880.s") -s32 func_80B56B00(EnAn* this, PlayState* play); +s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56B00.s") -s32 func_80B56BC0(EnAn* this, PlayState* play); +s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56BC0.s") -s32 func_80B56CAC(EnAn* this, PlayState* play); +s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56CAC.s") s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { @@ -1338,24 +1605,24 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case 0x10: - ret = func_80B5600C(this, play); + ret = func_80B5600C(this, play, scheduleOutput); break; case 0x11: - ret = func_80B56094(this, play); + ret = func_80B56094(this, play, scheduleOutput); break; case 0x15: - ret = func_80B5611C(this, play); + ret = func_80B5611C(this, play, scheduleOutput); break; case 0xC: - ret = func_80B56B00(this, play); + ret = func_80B56B00(this, play, scheduleOutput); break; case 0x1: case 0x18: - ret = func_80B56BC0(this, play); + ret = func_80B56BC0(this, play, scheduleOutput); break; case 0x3: @@ -1363,15 +1630,15 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x12: case 0x13: case 0x17: - ret = func_80B56880(this, play); + ret = func_80B56880(this, play, scheduleOutput); break; case 0x16: - ret = func_80B56744(this, play); + ret = func_80B56744(this, play, scheduleOutput); break; case 0x19: - ret = func_80B56CAC(this, play); + ret = func_80B56CAC(this, play, scheduleOutput); break; case 0x1A: @@ -1388,7 +1655,7 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x25: case 0x26: case 0x27: - ret = func_80B561A4(this, play); + ret = func_80B561A4(this, play, scheduleOutput); break; case 0x28: @@ -1414,7 +1681,7 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x3D: case 0x3E: case 0x3F: - ret = func_80B56418(this, play); + ret = func_80B56418(this, play, scheduleOutput); break; default: diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 0a983d8ab..f5e655db8 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -9,6 +9,8 @@ typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); typedef void (*EnAnUnkFunc)(struct EnAn*, PlayState*); typedef s32 (*MsgEventFunc)(Actor*, PlayState*); +// path index : 0xFF + #define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) typedef struct EnAn { @@ -17,7 +19,12 @@ typedef struct EnAn { /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ char unk_1DC[0x24]; /* inferred */ + /* 0x1DC */ Path* unk_1DC; + /* 0x1E0 */ char unk_1E0[0x10]; /* maybe part of unk_1DC[5]? */ + /* 0x1F0 */ s32 unk_1F0; /* inferred */ + /* 0x1F4 */ s32 unk_1F4; /* inferred */ + /* 0x1F8 */ s32 unk_1F8; /* inferred */ + /* 0x1FC */ s32 unk_1FC; /* inferred */ /* 0x200 */ u8 unk_200; // enum? /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ /* 0x204 */ s32* msgEventScript; @@ -29,9 +36,12 @@ typedef struct EnAn { /* 0x20D */ char unk_20D[3]; /* maybe part of unk_20C[4]? */ /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 unk_214; // curRoom.num - /* 0x215 */ char unk_215[3]; /* maybe part of unk_214[4]? */ + /* 0x215 */ s8 unk_215; + /* 0x216 */ UNK_TYPE1 unk_216[0x2]; /* 0x218 */ Actor* unk_218; /* inferred */ - /* 0x21C */ UNK_TYPE1 unk_21C[0x24]; /* maybe part of unk_218[0x13]? */ + /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; /* maybe part of unk_218[0x13]? */ + /* 0x228 */ Vec3f unk_228; + /* 0x234 */ Vec3f unk_234; /* 0x240 */ Vec3f unk_240; /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; /* 0x258 */ Vec3s unk_258; @@ -46,7 +56,8 @@ typedef struct EnAn { /* 0x368 */ f32 unk_368; /* inferred */ /* 0x36C */ char unk_36C[8]; /* maybe part of unk_368[3]? */ /* 0x374 */ f32 unk_374; /* inferred */ - /* 0x378 */ char unk_378[4]; /* inferred */ + /* 0x378 */ u16 unk_378; // schedule time diff + /* 0x37A */ u16 unk_37A; /* 0x37C */ s16 unk_37C; /* inferred */ /* 0x37E */ s16 unk_37E; /* inferred */ /* 0x380 */ char unk_380[4]; /* maybe part of unk_37E[3]? */ From e0a310b37d6266d62ddcd5912dc3684550ec70eb Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 16:40:31 -0300 Subject: [PATCH 13/78] mor funcs --- src/overlays/actors/ovl_En_An/z_en_an.c | 227 ++++++++++++++++++++++-- 1 file changed, 212 insertions(+), 15 deletions(-) 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 2c7de3af1..e855b8413 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -139,8 +139,42 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) return foundActor; } -EnDoor* func_80B53B3C(PlayState* play, s32 arg1); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B53B3C.s") +EnDoor* func_80B53B3C(PlayState* play, s32 scheduleOutputResult) { + s32 switchFlag; + + switch (scheduleOutputResult) { + case 0x1A: + case 0x1B: + switchFlag = 0xD; + break; + + case 0x21: + case 0x22: + case 0x25: + case 0x26: + switchFlag = 0xB; + break; + + case 0x24: + switchFlag = 0x10; + break; + + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x23: + case 0x27: + switchFlag = 0xE; + break; + + default: + return NULL; + } + + return SubS_FindDoor(play, switchFlag); +} s32 func_80B53BA8(EnAn* this, PlayState* play) { s8 temp_a3 = this->actor.objBankIndex; @@ -1577,20 +1611,186 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return var_v1; } -s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56744.s") +s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + u8 pathIndex = this->actor.params & 0xFF; + Vec3f sp40; + Vec3f sp34; + Vec3s* temp_v0_2; + s32 limit; + s32 ret = false; -s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56880.s") + this->unk_1DC = NULL; -s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56B00.s") + limit = D_80B58618[scheduleOutput->result]; + if (limit >= 0) { + this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + } -s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56BC0.s") + if ((this->unk_1DC != NULL) && (this->unk_1DC->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); + Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); + Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); -s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56CAC.s") + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); + Math_Vec3f_Copy(&this->actor.world.pos, &sp40); + Math_Vec3f_Copy(&this->actor.prevPos, &sp40); + if (scheduleOutput->result == 0x16) { + func_80B53CE8(this, play, 0x17); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + + this->unk_360 |= 0x300; + this->unk_360 |= 0x2000; + } + ret = true; + } + + return ret; +} + +s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + u8 pathIndex = this->actor.params & 0xFF; + Vec3f sp40; + Vec3f sp34; + Vec3s* temp_v0_2; // sp30 + s32 limit; + s32 ret = false; + + this->unk_1DC = NULL; + limit = D_80B58618[scheduleOutput->result]; + if (limit >= 0) { + this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + } + + if ((this->unk_1DC != NULL) && (this->unk_1DC->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); + Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->unk_1DC->count-1]); + Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->unk_1DC->count-2]); + + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); + + Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); + Math_Vec3s_Copy(&this->actor.home.rot, &this->actor.world.rot); + Math_Vec3f_Copy(&this->actor.world.pos, &sp40); + Math_Vec3f_Copy(&this->actor.prevPos, &sp40); + + switch (scheduleOutput->result) { + case 0x13: + this->actor.world.rot.y += 0x7FF8; + /* fallthrough */ + case 0x12: + case 0x17: + func_80B53CE8(this, play, 1); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + this->unk_37A = 0; + this->unk_360 |= 0x300; + if (scheduleOutput->result == 0x12) { + this->unk_374 = 70.0f; + } + break; + + case 0x3: + this->unk_360 |= 0x300; + this->unk_360 |= 0x1000; + + if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { + func_80B53CE8(this, play, 0x14); + this->unk_360 |= 0x40; + this->actor.world.rot.y += 0x7FF8; + this->actor.shape.rot.y = this->actor.world.rot.y; + this->unk_37A = 4; + } else { + func_80B53CE8(this, play, 0x12); + this->unk_37A = 0; + } + + this->unk_38A = 2; + this->unk_38C = 2; + this->unk_38E = 8; + break; + case 0xE: + func_80B53CE8(this, play, 0xC); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + + this->unk_360 |= 0x300; + this->unk_360 |= 0x8000; + break; + } + ret = true; + } + + return ret; +} + +extern Vec3f D_80B58E7C; +extern Vec3s D_80B58E88; + +s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 pad; + + Math_Vec3f_Copy(&this->actor.world.pos, &D_80B58E7C); + Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58E88); + Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); + + if (scheduleOutput->result == 0xC) { + func_80B53CE8(this, play, 0xB); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + + this->unk_360 |= 0x300; + this->unk_360 |= 0x40; + + this->unk_38A = 5; + this->unk_38C = 5; + this->unk_38E = 8; + } + + return true; +} + +extern Vec3f D_80B58E90; +extern Vec3s D_80B58E9C; + +s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 pad; + + Math_Vec3f_Copy(&this->actor.world.pos, &D_80B58E90); + Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58E9C); + Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); + + switch (scheduleOutput->result) { + case 0x1: + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + func_80B53CE8(this, play, 9); + break; + + case 0x18: + func_80B53CE8(this, play, 0xB); + this->unk_38A = 5; + this->unk_38C = 5; + this->unk_38E = 8; + break; + } + + this->unk_360 |= 0x300; + this->unk_360 |= 0x40; + + this->actor.gravity = 0.0f; + return true; +} + +extern Vec3s D_80B58EA4; + +s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + s32 pad; + + Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); + Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); + func_80B53CE8(this, play, 0); + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + this->unk_360 |= 0x300; + + return 1; +} s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret; @@ -1692,9 +1892,6 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -//s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput); -//#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56D28.s") - #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56E44.s") #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56EB4.s") From ce87457b0e11b96ae05aff51f14ffab1147c4e1a Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 17:57:18 -0300 Subject: [PATCH 14/78] almost everythihng --- src/overlays/actors/ovl_En_An/z_en_an.c | 358 +++++++++++++++++++++++- src/overlays/actors/ovl_En_An/z_en_an.h | 13 +- 2 files changed, 354 insertions(+), 17 deletions(-) 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 e855b8413..184692dac 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1358,9 +1358,33 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u return ret; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55ECC.s") +s32 func_80B55ECC(EnAn* this) { + s32 ret = false; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B55F8C.s") + if (Actor_IsFacingAndNearPlayer(&this->actor, (this->unk_3BC != 0) ? 150.0f : 100.0f, 0x2800)) { + ret = true; + } + + if (DECR(this->unk_386) == 0) { + this->unk_3BC ^= 1; + this->unk_386 = Rand_S16Offset(0x3C, 0x3C); + } + + return ret; +} + +s32 func_80B55F8C(PlayState* play) { + Player* player = GET_PLAYER(play); + s32 var_v1 = false; + + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + var_v1 = true; + } else if ((player->transformation == PLAYER_FORM_HUMAN) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + var_v1 = true; + } + + return var_v1; +} s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; @@ -1892,22 +1916,295 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56E44.s") +s32 func_80B56E44(EnAn* this, PlayState* play) { + Vec3f sp2C; + Vec3f sp20; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B56EB4.s") + if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { + Math_Vec3f_Copy(&sp2C, &this->unk_218->world.pos); + Math_Vec3f_Copy(&sp20, &this->actor.world.pos); + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B5702C.s") + return true; +} -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B572D4.s") +s32 func_80B56EB4(EnAn* this, PlayState* play) { + EnDoor* sp44 = func_80B53B3C(play, this->unk_200); + Vec3f sp38; + f32 temp_fv0; + s32 pad; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B573F4.s") + if (!SubS_InCsMode(play) && (this->unk_384 != 0)) { + if ((sp44 != NULL) && (sp44->knobDoor.dyna.actor.update != NULL)) { + if ((this->unk_37A / (f32) this->unk_378) <= 0.9f) { + sp44->unk_1A7 = this->unk_215; + } else { + sp44->unk_1A7 = 0; + } + } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B575BC.s") + this->unk_37A = CLAMP(this->unk_37A, 0, this->unk_378); + temp_fv0 = Math_Vec3f_DistXZ(&this->unk_228, &this->unk_234) / this->unk_378; -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57674.s") + sp38.x = 0.0f; + sp38.y = 0.0f; + sp38.z = this->unk_37A * temp_fv0; -void func_80B57718(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57718.s") + Lib_Vec3f_TranslateAndRotateY(&this->unk_228, this->actor.world.rot.y, &sp38, &this->actor.world.pos); + + this->unk_37A += this->unk_384; + if (Animation_OnFrame(&this->unk_144, 3.0f) || Animation_OnFrame(&this->unk_144, 15.0f)) { + Actor_PlaySfx(&this->actor, 0x2971); + } + } + return 0; +} + +s32 func_80B5702C(EnAn* this, PlayState* play) { + f32 sp7C[265]; + Vec3f sp70; + Vec3f sp64; + Vec3f sp58; + s32 sp54; + s32 sp50 = 0; + s32 pad; + + sp54 = 0; + SubS_TimePathing_FillKnots(sp7C, 3, this->unk_1DC->count + 3); + + if (!(this->unk_360 & 8)) { + sp58 = gZeroVec3f; + SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, &this->unk_1F8, sp7C, &sp58, this->unk_384); + SubS_TimePathing_ComputeInitialY(play, this->unk_1DC, this->unk_1F8, &sp58); + this->actor.world.pos.y = sp58.y; + this->unk_360 |= 8; + } else { + sp58 = this->unk_1E0; + } + + this->actor.world.pos.x = sp58.x; + this->actor.world.pos.z = sp58.z; + + if (SubS_InCsMode(play) != 0) { + sp54 = this->unk_1FC; + sp50 = this->unk_1F8; + sp58 = this->actor.world.pos; + } + this->unk_1E0 = gZeroVec3f; + + if (SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, &this->unk_1F8, sp7C, &this->unk_1E0, this->unk_384)) { + this->unk_360 |= 0x10; + } else { + sp70 = this->actor.world.pos; + sp64 = this->unk_1E0; + this->actor.world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); + } + + if (SubS_InCsMode(play) != 0) { + this->unk_1FC = sp54; + this->unk_1F8 = sp50; + this->unk_1E0 = sp58; + } else if (Animation_OnFrame(&this->unk_144, 3.0f) || Animation_OnFrame(&this->unk_144, 15.0f)) { + Actor_PlaySfx(&this->actor, 0x2971); + } + + return 0; +} + +s32 func_80B572D4(EnAn* this, PlayState* play) { + switch (this->unk_200) { + case 0x17: + if ((func_80B55F8C(play) != 0) && (func_80B55ECC(this) != 0)) { + this->unk_360 |= 0x20; + } else { + this->unk_360 &= ~0x20; + } + break; + + case 0x1: + if (func_80B55ECC(this) != 0) { + this->unk_360 |= 0x20; + } else { + this->unk_360 &= ~0x20; + } + break; + + case 0x12: + case 0x13: + if (func_80B55ECC(this) != 0) { + this->unk_360 |= 0x20; + } else { + this->unk_360 &= ~0x20; + } + break; + + case 0x16: + if (Animation_OnFrame(&this->unk_144, 6.0f) && (this->unk_39C == 0x17)) { + Actor_PlaySfx(&this->actor, 0x2899); + } + break; + } + + return 0; +} + +s32 func_80B573F4(EnAn* this, PlayState* play) { + s16 temp1; + s16 temp2; + + switch (this->unk_37A) { + case 0x0: + this->actor.world.rot.y += 0x7FF8; + this->unk_37A++; + break; + + case 0x1: + temp1 = (this->actor.world.rot.y / 0xB6) * 0xB6; + temp2 = (this->actor.shape.rot.y / 0xB6) * 0xB6; + if (temp1 == temp2) { + Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); + func_80B53CE8(this, play, 0x13); + this->unk_360 |= 0x40; + this->unk_37A++; + } + break; + + case 0x2: + if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + this->unk_37A++; + } + break; + + case 0x3: + if (ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, this->actor.shape.rot.y)) < 0x3000) { + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + } else { + SubS_SetOfferMode(&this->unk_360, 0U, 7U); + } + break; + + case 0x4: + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + this->unk_37A++; + break; + } + + return 0; +} + +s32 func_80B575BC(EnAn* this, PlayState* play) { + s32 temp = this->actor.shape.rot.y; + s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); + + if (temp_v1 < 0x4000) { + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + } else { + SubS_SetOfferMode(&this->unk_360, 0U, 7U); + } + + if (func_80B55ECC(this) != 0) { + this->unk_360 |= 0x20; + } else { + this->unk_360 &= ~0x20; + } + + return 1; +} + +s32 func_80B57674(EnAn* this, PlayState* play) { + s16 temp = BINANG_ADD(this->actor.shape.rot.y, 0x3000); + s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); + + if (temp_v1 < 0x3000) { + SubS_SetOfferMode(&this->unk_360, 3U, 7U); + } else { + SubS_SetOfferMode(&this->unk_360, 0U, 7U); + } + + this->unk_360 &= ~0x20; + return 1; +} + +void func_80B57718(EnAn* this, PlayState* play) { + switch (this->unk_200) { + case 0x10: + case 0x11: + case 0x15: + func_80B56E44(this, play); + break; + + case 0x3: + func_80B573F4(this, play); + break; + + case 0x1: + func_80B575BC(this, play); + break; + + case 0x19: + func_80B57674(this, play); + break; + + case 0xC: + case 0xE: + case 0x12: + case 0x13: + case 0x16: + case 0x18: + func_80B572D4(this, play); + break; + + case 0x17: + func_80B572D4(this, play); + break; + + case 0x1A: + case 0x1B: + case 0x1C: + case 0x1D: + case 0x1E: + case 0x1F: + case 0x20: + case 0x21: + case 0x22: + case 0x23: + case 0x24: + case 0x25: + case 0x26: + case 0x27: + func_80B56EB4(this, play); + break; + + case 0x28: + case 0x2A: + case 0x2B: + case 0x2C: + case 0x2D: + case 0x2E: + case 0x2F: + case 0x30: + case 0x31: + case 0x32: + case 0x33: + case 0x34: + case 0x35: + case 0x36: + case 0x37: + case 0x38: + case 0x39: + case 0x3A: + case 0x3B: + case 0x3C: + case 0x3D: + case 0x3E: + case 0x3F: + func_80B5702C(this, play); + break; + } + + Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 3, 0x2AA8); +} void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); @@ -1987,8 +2284,47 @@ void func_80B57A44(EnAn* this, PlayState* play) { } } +#if 0 +//extern s32 D_80B58EAC[0xA]; + +void func_80B57B48(EnAn* this, PlayState* play) { + s32 sp30[0xA]; + s32 temp_v0; // sp28 + u16 temp_v1; + u8 var_v0; + + //M2C_MEMCPY_ALIGNED(&sp30, &D_80B58EAC, 0x28); + if (Cutscene_IsCueInChannel(play, 0x22DU) != 0) { + temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); + + temp_v1 = play->csCtx.actorCues[temp_v0]->id; + var_v0 = temp_v1 & 0xFF; + if ((temp_v1 & 0xFF) != this->unk_364) { + this->unk_364 = (u8) temp_v1; + if (var_v0 == 3) { + gSaveContext.save.saveInfo.weekEventReg[0x57] |= 2; + var_v0 = this->unk_364; + this->unk_3B4 = 1; + } + + if (var_v0 == 9) { + this->unk_3B4 = 0; + } + + func_80B53CE8(this, play, sp30[temp_v1]); + } + + if (((this->unk_39C == 0x1A) || (this->unk_39C == 0x1C) || (this->unk_39C == 0x1E) || (this->unk_39C == 0x22)) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + func_80B53CE8(this, play, this->unk_39C + 1); + } + + Cutscene_ActorTranslateAndYaw(&this->actor, play, temp_v0); + } +} +#else void func_80B57B48(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") +#endif void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index f5e655db8..4e469250c 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -20,12 +20,13 @@ typedef struct EnAn { /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; /* 0x1DC */ Path* unk_1DC; - /* 0x1E0 */ char unk_1E0[0x10]; /* maybe part of unk_1DC[5]? */ + /* 0x1E0 */ Vec3f unk_1E0; /* maybe part of unk_1DC[5]? */ + /* 0x1EC */ f32 unk_1EC; /* 0x1F0 */ s32 unk_1F0; /* inferred */ /* 0x1F4 */ s32 unk_1F4; /* inferred */ /* 0x1F8 */ s32 unk_1F8; /* inferred */ /* 0x1FC */ s32 unk_1FC; /* inferred */ - /* 0x200 */ u8 unk_200; // enum? + /* 0x200 */ u8 unk_200; // enum? // schedule result /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ /* 0x204 */ s32* msgEventScript; /* 0x208 */ s8 unk_208; @@ -56,13 +57,13 @@ typedef struct EnAn { /* 0x368 */ f32 unk_368; /* inferred */ /* 0x36C */ char unk_36C[8]; /* maybe part of unk_368[3]? */ /* 0x374 */ f32 unk_374; /* inferred */ - /* 0x378 */ u16 unk_378; // schedule time diff - /* 0x37A */ u16 unk_37A; + /* 0x378 */ s16 unk_378; // schedule time diff + /* 0x37A */ s16 unk_37A; /* 0x37C */ s16 unk_37C; /* inferred */ /* 0x37E */ s16 unk_37E; /* inferred */ /* 0x380 */ char unk_380[4]; /* maybe part of unk_37E[3]? */ /* 0x384 */ s16 unk_384; /* inferred */ - /* 0x386 */ char unk_386[2]; /* inferred */ + /* 0x386 */ s16 unk_386; /* 0x388 */ s16 unk_388; /* inferred */ /* 0x38A */ s16 unk_38A; /* inferred */ /* 0x38C */ s16 unk_38C; /* inferred */ @@ -79,7 +80,7 @@ typedef struct EnAn { /* 0x3B0 */ s32 unk_3B0; /* inferred */ /* 0x3B4 */ s32 unk_3B4; /* inferred */ /* 0x3B8 */ s32 unk_3B8; - /* 0x3BC */ char unk_3BC[4]; /* inferred */ + /* 0x3BC */ s32 unk_3BC; /* 0x3C0 */ s32 unk_3C0; /* inferred */ /* 0x3C4 */ s32 unk_3C4; } EnAn; // size = 0x3C8 From 6e14494beb66fa26626eb37c029074e167d23699 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 18:43:21 -0300 Subject: [PATCH 15/78] migrate data --- spec | 1 - src/overlays/actors/ovl_En_An/z_en_an.c | 625 +++++++++++++++++++++++- tools/disasm/variables.txt | 2 +- 3 files changed, 621 insertions(+), 7 deletions(-) diff --git a/spec b/spec index 5f8c616e5..cb6eca1e1 100644 --- a/spec +++ b/spec @@ -3785,7 +3785,6 @@ beginseg name "ovl_En_An" compress include "build/src/overlays/actors/ovl_En_An/z_en_an.o" - include "build/data/ovl_En_An/ovl_En_An.data.o" include "build/data/ovl_En_An/ovl_En_An.reloc.o" endseg 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 184692dac..1c8fa0881 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -27,7 +27,559 @@ void func_80B57A44(EnAn* this, PlayState* play); extern AnimationInfoS D_80B58BF4[]; -#if 0 + +static u8 sScheduleScript[] = { + /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005), + /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A), + /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L( 6, 0, 10, 55, 0x14A - 0x011), + /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018), + /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F), + /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026), + /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D), + /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034), + /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B), + /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042), + /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049), + /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050), + /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057), + /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E), + /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065), + /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C), + /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073), + /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079), + /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F), + /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085), + /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B), + /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091), + /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097), + /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D), + /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1), + /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(), + /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8), + /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE), + /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 0, 0, 6, 0, 0x0B5 - 0x0B4), + /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(), + /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME( 0, 0, 6, 0, 23), + /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, 49), + /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, 31), + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, 30), + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, 48), + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), + /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, 18), + /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, 17), + /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, 18), + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, 16), + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, 18), + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, 46), + /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, 29), + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, 28), + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, 45), + /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, 27), + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 44), + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, 21), + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, 43), + /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, 26), + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 42), + /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, 14), + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, 40), + /* 0x14A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, 18), + /* 0x150 */ SCHEDULE_CMD_RET_NONE(), + /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), + /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B), + /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160), + /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167), + /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D), + /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173), + /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179), + /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F), + /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185), + /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B), + /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191), + /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197), + /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D), + /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), + /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), + /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(), + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, 24), + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, 30), + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, 48), + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, 18), + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, 35), + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, 51), + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, 34), + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, 33), + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, 50), + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, 32), + /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6), + /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC), + /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202), + /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208), + /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E), + /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214), + /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A), + /* 0x21A */ SCHEDULE_CMD_RET_NONE(), + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, 38), + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, 59), + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, 58), + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, 55), + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, 54), + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, 37), + /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243), + /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249), + /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F), + /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255), + /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B), + /* 0x25B */ SCHEDULE_CMD_RET_NONE(), + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, 63), + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, 62), + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, 61), + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, 60), + /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278), + /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E), + /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284), + /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A), + /* 0x28A */ SCHEDULE_CMD_RET_NONE(), + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, 57), + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, 3), + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, 56), + /* 0x29D */ SCHEDULE_CMD_RET_NONE(), + /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3), + /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L( 6, 0, 10, 55, 0x38A - 0x2AA), + /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1), + /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8), + /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF), + /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6), + /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD), + /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4), + /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB), + /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1), + /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7), + /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED), + /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3), + /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9), + /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF), + /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305), + /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B), + /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311), + /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), + /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), + /* 0x31D */ SCHEDULE_CMD_RET_NONE(), + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, 24), + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, 30), + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, 48), + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, 18), + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, 46), + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, 29), + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, 28), + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, 45), + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, 27), + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 44), + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, 21), + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, 43), + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, 26), + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 42), + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, 14), + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, 40), + /* 0x38A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, 18), + /* 0x390 */ SCHEDULE_CMD_RET_NONE(), + /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), + /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A), + /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E), + /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 6, 0, 11, 0, 0x3D5 - 0x3A4), + /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA), + /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0), + /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6), + /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), + /* 0x3BC */ SCHEDULE_CMD_RET_NONE(), + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, 39), + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 53), + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, 36), + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, 52), + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, 22), + /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), + /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), + /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(), + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 12), + /* 0x3EC */ SCHEDULE_CMD_RET_NONE(), + /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1), + /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 6, 0, 11, 0, 0x440 - 0x3F7), + /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD), + /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403), + /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409), + /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F), + /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415), + /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 5, 0, 6, 0, 0x41C - 0x41B), + /* 0x41B */ SCHEDULE_CMD_RET_NONE(), + /* 0x41C */ SCHEDULE_CMD_RET_TIME( 5, 0, 6, 0, 1), + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, 1), + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, 39), + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 53), + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, 36), + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, 52), + /* 0x440 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, 22), + /* 0x446 */ SCHEDULE_CMD_RET_NONE(), + /* 0x447 */ SCHEDULE_CMD_RET_NONE(), +}; + +s32 D_80B58618[0x40] = { + -1, + 0xA, + -1, + 0, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + -1, + 0, + -1, + 0xA, + 0xA, + 0xA, + 0xB, + -1, + 4, + 0x16, + 0xF, + -1, + -1, + 3, + 6, + 8, + 9, + 0xD, + 0xE, + 0x10, + 0x12, + 0x13, + 0x15, + 0x17, + 0, + 5, + 0x19, + 0, + 1, + 2, + 4, + 5, + 7, + 0xA, + 0xB, + 0xC, + 0xF, + 0x11, + 0x14, + 0x16, + 0x18, + 1, + 2, + 0, + 1, + 3, + 4, + 0, + 1, + 2, + 3, +}; +s32 D_80B58718[0x1B] = { + 0x560800, + 0x44090000, + 0x0E28BA0C, + 0x09000017, + 0x0E28BB0C, + 0x09000018, + 0x0E28BC0C, + 0x09000017, + 0x0E28BD0C, + 0x09000018, + 0x0E28BE0C, + 0x09000017, + 0x0E28BF0C, + 0x09000018, + 0x0E28C02D, + 0x12D00, + 0x0B0C0900, + 0x115608, + 0x10090000, + 0x0E295C0C, + 0x09000017, + 0x0E295D0C, + 0x09000018, + 0x0E295E2D, + 0x12D00, + 0x0B0C0900, + 0x100000, +}; +s32 D_80B58784[0x21] = { + 0x09000000, + 0x4B10001E, + 0x0E28B10C, + 0x09000017, + 0x0E28B20C, + 0x09000018, + 0x0E28B32D, + 0x11137, + 0x020C0900, + 0x100056, + 0x10002E0E, + 0x28B10C09, + 0x170E, + 0x28B50C09, + 0x180E, + 0x28B60C09, + 0x170E, + 0x28B70C09, + 0x180E, + 0x28B82D00, + 0x010C0900, + 0x115610, + 0x10090000, + 0x170E2956, + 0x0C090000, + 0x180E2957, + 0x0C090000, + 0x170E2958, + 0x0C090000, + 0x180E2959, + 0x2D00010C, + 0x09000012, + 0x10000000, +}; +s32 D_80B58808[0x15] = { + 0x09000017, + 0x0E28C70C, + 0x09000018, + 0x0E28C80C, + 0x09000017, + 0x0E28C90C, + 0x09000018, + 0x0E28CA0C, + 0x09000017, + 0x0E28CB0C, + 0x09000018, + 0x0E28CC0C, + 0x09000017, + 0x0E28CD0C, + 0x09000018, + 0x0E28CE0C, + 0x09000017, + 0x0E28CF2D, + 0x12D00, + 0x0E0C0900, + 0x100000, +}; +s32 D_80B5885C[0x37] = { + 0x220B0000, + 0x69002020, + 0x64004B, + 0x1000B700, + 0x370100AA, + 0x370200, + 0x550E28A0, + 0x0C090000, + 0x0F28A80C, + 0x05000000, + 0x30000030, + 0x0E28A90C, + 0x0F28AA0C, + 0x0F28AB0C, + 0x120600A0, + 0x1300, + 0xA02F0000, + 0x2E2D0014, + 0x0C114B10, + 0x0700000E, + 0x28AD2D00, + 0x010C2400, + 0x41161031, + 0x0E28A30C, + 0x0900000F, + 0x28A52D00, + 0x010C1137, + 0x01100020, + 0x2000340E, + 0x28A00C09, + 0xF28, + 0xA10C0500, + 0xF00, + 0x300E28, + 0xA20C0900, + 0xF28A3, + 0x0C190008, + 0x310E28A4, + 0x0C090000, + 0x0F28A52D, + 0x10C11, + 0x20201023, + 0x400012, + 0x0E28A00C, + 0x0900000F, + 0x28A62D00, + 0x010C2400, + 0x40100E28, + 0xA72D0001, + 0x0C102300, + 0x41000B0E, + 0x28AC2D00, + 0x010C2400, + 0x41100E28, + 0xAD0C1000, +}; +s32 D_80B58938[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; +s32 D_80B58944[2] = { 0x0E28AF2D, 0x10C10 }; +s32 D_80B5894C[2] = { 0x0E28C12D, 0x10C10 }; +s32 D_80B58954[0xB] = { + 0x350100, + 0x1C0E28C3, + 0x0C0F28C4, + 0x0C150900, + 0xE28C5, + 0x2D00010C, + 0x15090000, + 0x11350112, + 0x100E28C2, + 0x2D00010C, + 0x10000000, +}; +s32 D_80B58980[2] = { 0x0E28C62D, 0x10C10 }; +s32 D_80B58988[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; +s32 D_80B58994[2] = { 0x0E28F82D, 0x10C10 }; +s32 D_80B5899C[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; +s32 D_80B589AC[0x14] = { + 0x0E28D70C, + 0x0F28D80C, + 0x0F28D90C, + 0x0F28DA0C, + 0x0F28DB0C, + 0x05000700, + 0x731, + 0x0E28D919, + -0x16CFF2, + 0x28DC0C11, + 0x32201132, + 0x10120600, + 0xAA000013, + 0xAA2F00, + 0x2E2D00, + 0x012D0017, + 0x2D00160C, + 0x0700000E, + 0x28DE0C15, + 0x09000010, +}; +s32 D_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; +s32 D_80B58A04[8] = { + 0x522000, + 0x100E294F, + 0x0C0F2950, + 0x2D00010C, + 0x12115220, + 0x100E2951, + 0x2D00010C, + 0x12100000, +}; +s32 D_80B58A24[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; +s32 D_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; +s32 D_80B58A44[0x1E] = { + 0x320800, + 0x080E28D5, + 0x2D00010C, + 0x10003220, + 0x80E28, + -0x2BD2FFFF, + 0x0C100033, + 0x01001A25, + 0x30001D, + 0x27000300, + 0x080E28E3, + 0x2D00010C, + 0x100E28E2, + 0x2D00010C, + 0x100E28E1, + 0x2D00010C, + 0x100E28E4, + 0x0C0E00FF, + 0x1E003600, + 0x0E000000, + 0x0C2C28E7, + 0x0C2F0000, + 0x2D00010C, + 0x1012102C, + 0x28E50C2F, + 0xC2A, + 0x300F28, + -0x19D2FFFF, + 0x2D001A0C, + 0x11330110, +}; +s32 D_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; +s32 D_80B58AC4[9] = { + 0x320800, + 0x160E28D1, + 0x0C0F28D2, + 0x0C0F28D3, + 0x2D00152D, + 0x10C11, + 0x3208100E, + 0x28D32D00, + 0x010C1000, +}; +s32 D_80B58AE8[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; +s32 D_80B58AF4[0x12] = { + 0x372000, + 0x29003208, + 0x2A0E28, + -0x17F3EAF7, + 0xE28, + -0x16F3F0D8, + -0x15F3EAF7, + 0xE28, + -0x14F3F0D8, + -0x13D2FFFF, + 0x0C121137, + 0x20100E28, + -0x13F3EDF0, + 0x0E28EE0C, + 0x0F28EB0C, + 0x0F28EC2D, + 0x10C12, + 0x11372010, +}; +s32 D_80B58B3C[0x10] = { + 0x372000, + 0x21003208, + 0x220E28, + -0x17F3F0D8, + -0x12F3EAF7, + 0xE28, + -0x14F3F0D8, + -0x13D2FFFF, + 0x0C121137, + 0x20100E28, + -0x13F3EDF0, + 0x0E28EE0C, + 0x0F28EB0C, + 0x0F28EC2D, + 0x10C12, + 0x11372010, +}; +s32 D_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; +s32 D_80B58B88[2] = { 0x0E29612D, 0x10C10 }; +s32 D_80B58B90[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; + ActorInit En_An_InitVars = { ACTOR_EN_AN, ACTORCAT_NPC, @@ -50,7 +602,70 @@ static ColliderCylinderInit D_80B58BBC = { // sColChkInfoInit static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; -#endif + +AnimationInfoS D_80B58BF4[0x24] = { + { (AnimationHeader* )0x06013E1C, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06008B6C, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06008B6C, 1.0f, 0, -1, 0, -6 }, + { (AnimationHeader* )0x0600544C, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x0600544C, 1.0f, 0, -1, 2, -6 }, + { (AnimationHeader* )0x060026B4, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06001E74, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06013048, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06013048, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060071E8, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060071E8, 1.0f, 0, -1, 0, -6 }, + { (AnimationHeader* )0x06007E08, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060065C8, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06001090, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x0600144C, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x0600341C, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06003EA8, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060028DC, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060042CC, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060038A0, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06001B80, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x0600201C, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06002A4C, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060012C0, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060038A0, -1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06006CC0, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x06007E3C, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x060088C0, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060013C8, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06002550, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x0600353C, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06004498, 1.0f, 0, -1, 0, 0 }, + { (AnimationHeader* )0x060060B4, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x0600041C, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x06004A78, 1.0f, 0, -1, 2, 0 }, + { (AnimationHeader* )0x0600506C, 1.0f, 0, -1, 0, 0 }, +}; +Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; +s16 D_80B58E40[0xA] = { 0, 2, 0, 1, 2, 0, 1, 2, 1, 1 }; +Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; +Vec3s D_80B58E60 = { 0, 0, 0x4168 }; +Vec3f D_80B58E68 = { 450.0f, 700.0f, -760.0f }; +Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; +Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; +Vec3s D_80B58E88 = { 0, 0, 0 }; +Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; +Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; +Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; +s32 D_80B58EAC[0xA] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; +Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; +void* D_80B58EE0[3] = { (void* )0x0600E6E0, (void* )0x0600F7A0, (void* )0x060101A0 }; +void* D_80B58EEC[9] = { + (void* )0x0600E1E0, + (void* )0x0600EFA0, + (void* )0x0600F3A0, + (void* )0x0600EFA0, + (void* )0x0600FDA0, + (void* )0x0600F9A0, + (void* )0x060103A0, + NULL, + NULL, +}; extern ColliderCylinderInit D_80B58BBC; extern CollisionCheckInfoInit2 D_80B58BE8; @@ -2228,7 +2843,7 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->actionFunc(this, play); } -extern u8 D_80B581D0[]; +extern u8 sScheduleScript[]; void func_80B578F8(EnAn* this, PlayState* play) { ScheduleOutput sp20; @@ -2245,7 +2860,7 @@ void func_80B578F8(EnAn* this, PlayState* play) { if (this->unk_200 != 0x19) { func_80B56D28(this, play, &sp20); } - } else if ((Schedule_RunScript(play, D_80B581D0, &sp20) == 0) || ((this->unk_200 != sp20.result) && (func_80B56D28(this, play, &sp20) == 0))) { + } else if ((Schedule_RunScript(play, sScheduleScript, &sp20) == 0) || ((this->unk_200 != sp20.result) && (func_80B56D28(this, play, &sp20) == 0))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; sp20.result = 0; @@ -2284,8 +2899,8 @@ void func_80B57A44(EnAn* this, PlayState* play) { } } +extern s32 D_80B58EAC[]; #if 0 -//extern s32 D_80B58EAC[0xA]; void func_80B57B48(EnAn* this, PlayState* play) { s32 sp30[0xA]; diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index b1b5b726b..cde420f3f 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14495,7 +14495,7 @@ 0x80B534A4:("D_80B534A4","f32","",0x4), 0x80B534A8:("D_80B534A8","f32","",0x4), 0x80B534AC:("D_80B534AC","f32","",0x4), - 0x80B581D0:("D_80B581D0","UNK_TYPE1","",0x1), + 0x80B581D0:("sScheduleScript","UNK_TYPE1","",0x1), 0x80B58618:("D_80B58618","UNK_TYPE1","",0x1), 0x80B58718:("D_80B58718","UNK_TYPE1","",0x1), 0x80B58784:("D_80B58784","UNK_TYPE1","",0x1), From 71eb067e22f31464521641a0d43992c585eef6ed Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 19:15:03 -0300 Subject: [PATCH 16/78] func_80B57B48 NON_EQUIVALENT --- asdf.c | 4 +-- src/overlays/actors/ovl_En_An/z_en_an.c | 46 +++++++++++-------------- 2 files changed, 23 insertions(+), 27 deletions(-) diff --git a/asdf.c b/asdf.c index 2851112e0..e7b1fa8d0 100644 --- a/asdf.c +++ b/asdf.c @@ -107,7 +107,7 @@ s32 func_80B56D28(EnAn* arg0, u8* arg2, u8*); /* static */ ? func_80B575BC(Actor* arg0, ? arg1); /* static */ ? func_80B57674(EnAn* arg0, ? arg1); /* static */ void func_80B57718(EnAn* arg0, PlayState*); /* static */ -extern u8 D_80B581D0; +extern u8 sScheduleScript; extern ? D_80B58618; extern ? D_80B58718; extern ? D_80B58784; @@ -2674,7 +2674,7 @@ void func_80B578F8(EnAn* this, PlayState* play) { if (this->unk_200 != 0x19) { func_80B56D28(this, (u8* ) play, &sp20); } - } else if ((Schedule_RunScript(play, &D_80B581D0, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != this->unk_200) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { + } else if ((Schedule_RunScript(play, &sScheduleScript, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != this->unk_200) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~1; sp20 = 0; 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 1c8fa0881..6d8c25b1b 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -652,20 +652,6 @@ Vec3s D_80B58E88 = { 0, 0, 0 }; Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; -s32 D_80B58EAC[0xA] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; -Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; -void* D_80B58EE0[3] = { (void* )0x0600E6E0, (void* )0x0600F7A0, (void* )0x060101A0 }; -void* D_80B58EEC[9] = { - (void* )0x0600E1E0, - (void* )0x0600EFA0, - (void* )0x0600F3A0, - (void* )0x0600EFA0, - (void* )0x0600FDA0, - (void* )0x0600F9A0, - (void* )0x060103A0, - NULL, - NULL, -}; extern ColliderCylinderInit D_80B58BBC; extern CollisionCheckInfoInit2 D_80B58BE8; @@ -2899,19 +2885,15 @@ void func_80B57A44(EnAn* this, PlayState* play) { } } -extern s32 D_80B58EAC[]; -#if 0 - +#ifdef NON_EQUIVALENT void func_80B57B48(EnAn* this, PlayState* play) { - s32 sp30[0xA]; + s32 sp30[] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; s32 temp_v0; // sp28 u16 temp_v1; u8 var_v0; - //M2C_MEMCPY_ALIGNED(&sp30, &D_80B58EAC, 0x28); if (Cutscene_IsCueInChannel(play, 0x22DU) != 0) { temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); - temp_v1 = play->csCtx.actorCues[temp_v0]->id; var_v0 = temp_v1 & 0xFF; if ((temp_v1 & 0xFF) != this->unk_364) { @@ -2921,26 +2903,40 @@ void func_80B57B48(EnAn* this, PlayState* play) { var_v0 = this->unk_364; this->unk_3B4 = 1; } - if (var_v0 == 9) { this->unk_3B4 = 0; } - func_80B53CE8(this, play, sp30[temp_v1]); } - if (((this->unk_39C == 0x1A) || (this->unk_39C == 0x1C) || (this->unk_39C == 0x1E) || (this->unk_39C == 0x22)) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { - func_80B53CE8(this, play, this->unk_39C + 1); + if ((this->unk_39C == 0x1A) || (this->unk_39C == 0x1C) || (this->unk_39C == 0x1E) || (this->unk_39C == 0x22)) { + if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0) { + func_80B53CE8(this, play, this->unk_39C + 1); + } } - Cutscene_ActorTranslateAndYaw(&this->actor, play, temp_v0); } } #else +s32 D_80B58EAC[0xA] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; void func_80B57B48(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") #endif +Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; +void* D_80B58EE0[3] = { (void* )0x0600E6E0, (void* )0x0600F7A0, (void* )0x060101A0 }; +void* D_80B58EEC[9] = { + (void* )0x0600E1E0, + (void* )0x0600EFA0, + (void* )0x0600F3A0, + (void* )0x0600EFA0, + (void* )0x0600FDA0, + (void* )0x0600F9A0, + (void* )0x060103A0, + NULL, + NULL, +}; + void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; From e03d41c9209e6b5ea5c774f01aa069eab64d0297 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 20:18:12 -0300 Subject: [PATCH 17/78] object symbols --- asdf.c | 2828 ----------------------- src/overlays/actors/ovl_En_An/z_en_an.c | 459 ++-- src/overlays/actors/ovl_En_An/z_en_an.h | 65 +- tools/disasm/functions.txt | 2 +- undefined_syms.txt | 9 - 5 files changed, 279 insertions(+), 3084 deletions(-) delete mode 100644 asdf.c diff --git a/asdf.c b/asdf.c deleted file mode 100644 index e7b1fa8d0..000000000 --- a/asdf.c +++ /dev/null @@ -1,2828 +0,0 @@ -typedef struct EnAn { - /* 0x000 */ Actor actor; - /* 0x144 */ SkelAnime unk_144; - /* 0x188 */ void (*actionFunc)(EnAn*, PlayState*); - /* 0x18C */ s8 unk_18C[4]; - /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ Path* unk_1DC; /* inferred */ - /* 0x1E0 */ char pad_1E0[0x10]; /* maybe part of unk_1DC[5]? */ - /* 0x1F0 */ s32 unk_1F0; /* inferred */ - /* 0x1F4 */ s32 unk_1F4; /* inferred */ - /* 0x1F8 */ s32 unk_1F8; /* inferred */ - /* 0x1FC */ s32 unk_1FC; /* inferred */ - /* 0x200 */ u8 unk_200; - /* 0x201 */ char pad_201[3]; /* maybe part of unk_200[4]? */ - /* 0x204 */ void* unk_204; - /* 0x208 */ s8 unk_208; - /* 0x209 */ s8 unk_209; - /* 0x20A */ s8 unk_20A; - /* 0x20B */ s8 unk_20B; - /* 0x20C */ s8 unk_20C; - /* 0x20D */ char pad_20D[3]; /* maybe part of unk_20C[4]? */ - /* 0x210 */ s32 unk_210; - /* 0x214 */ s8 unk_214; - /* 0x215 */ s8 unk_215; /* inferred */ - /* 0x216 */ char pad_216[2]; /* maybe part of unk_215[3]? */ - /* 0x218 */ Actor* unk_218; - /* 0x21C */ s8 unk_21C[0x24]; - /* 0x240 */ Vec3f unk_240; - /* 0x24C */ s8 unk_24C[0xC]; - /* 0x258 */ Vec3s unk_258; - /* 0x25E */ s8 unk_25E[2]; - /* 0x260 */ s8 unk_260[4]; - /* 0x264 */ Vec3s unk_264[0x15]; - /* 0x2E2 */ Vec3s unk_2E2[0x15]; - /* 0x360 */ u16 unk_360; - /* 0x362 */ u16 unk_362; /* inferred */ - /* 0x364 */ s8 unk_364; - /* 0x365 */ char pad_365[3]; /* maybe part of unk_364[4]? */ - /* 0x368 */ f32 unk_368; - /* 0x36C */ char pad_36C[8]; /* maybe part of unk_368[3]? */ - /* 0x374 */ f32 unk_374; - /* 0x378 */ s16 unk_378; /* inferred */ - /* 0x37A */ s16 unk_37A; /* inferred */ - /* 0x37C */ s16 unk_37C; - /* 0x37E */ s16 unk_37E; - /* 0x380 */ char pad_380[4]; /* maybe part of unk_37E[3]? */ - /* 0x384 */ s16 unk_384; - /* 0x386 */ char pad_386[2]; - /* 0x388 */ s16 unk_388; - /* 0x38A */ s16 unk_38A; - /* 0x38C */ s16 unk_38C; - /* 0x38E */ s16 unk_38E; - /* 0x390 */ s16 unk_390; - /* 0x392 */ s16 unk_392; - /* 0x394 */ s16 unk_394; /* inferred */ - /* 0x396 */ s16 unk_396; /* inferred */ - /* 0x398 */ void* unk_398; - /* 0x39C */ s32 unk_39C; - /* 0x3A0 */ char pad_3A0[8]; /* maybe part of unk_39C[3]? */ - /* 0x3A8 */ u32 unk_3A8; - /* 0x3AC */ u32 unk_3AC; - /* 0x3B0 */ s32 unk_3B0; - /* 0x3B4 */ s32 unk_3B4; - /* 0x3B8 */ s32 unk_3B8; - /* 0x3BC */ char pad_3BC[4]; - /* 0x3C0 */ s32 unk_3C0; - /* 0x3C4 */ s32 unk_3C4; /* inferred */ -} EnAn; /* size = 0x3C8 */ - -Actor* func_80B539CC(EnAn* arg0, PlayState* arg1, u8 arg2, s16 arg3); /* static */ -struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1); /* static */ -s32 func_80B54678(Actor* arg0, s16 arg1, s32); /* static */ -s16 func_80B546F4(Actor* arg0, s32 arg1); /* static */ -s16 func_80B54750(Actor* arg0, s32 arg1); /* static */ -s32 func_80B547C8(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B5492C(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B54A94(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B54BC4(Actor* arg0, PlayState* arg1); /* static */ -s32 func_80B54C5C(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B54D18(EnAn* arg0, PlayState* arg1); /* static */ -?* func_80B54DF4(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B553AC(void* arg0); /* static */ -? func_80B555C8(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B556F8(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B557AC(EnAn* arg0, PlayState* arg1); /* static */ -void func_80B55860(EnAn* arg0, PlayState* arg1); /* static */ -Actor* func_80B55D20(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B55D98(EnAn* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4); /* static */ -s32 func_80B55ECC(Actor* arg0); /* static */ -s32 func_80B55F8C(PlayState* arg0); /* static */ -s32 func_80B5600C(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B56094(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B5611C(EnAn* arg0, PlayState* arg1); /* static */ -s32 func_80B561A4(EnAn* arg0, PlayState* arg1, void* arg2); /* static */ -s32 func_80B56418(EnAn* arg0, PlayState* arg1, void* arg2); /* static */ -s32 func_80B56744(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56880(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56B00(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56BC0(EnAn* arg0, PlayState* arg1, u8* arg2); /* static */ -s32 func_80B56CAC(EnAn* arg0, PlayState* arg1, ? arg2); /* static */ -s32 func_80B56D28(EnAn* arg0, u8* arg2, u8*); /* static */ -? func_80B56E44(EnAn* arg0, ? arg1); /* static */ -? func_80B56EB4(Actor* arg0, PlayState* arg1); /* static */ -? func_80B5702C(Actor* arg0, PlayState* arg1); /* static */ -? func_80B572D4(Actor* arg0, PlayState* arg1); /* static */ -? func_80B573F4(EnAn* arg0, PlayState* arg1); /* static */ -? func_80B575BC(Actor* arg0, ? arg1); /* static */ -? func_80B57674(EnAn* arg0, ? arg1); /* static */ -void func_80B57718(EnAn* arg0, PlayState*); /* static */ -extern u8 sScheduleScript; -extern ? D_80B58618; -extern ? D_80B58718; -extern ? D_80B58784; -extern ? D_80B58808; -extern ? D_80B5885C; -extern ? D_80B58938; -extern ? D_80B58944; -extern ? D_80B5894C; -extern ? D_80B58954; -extern ? D_80B58980; -extern ? D_80B58988; -extern ? D_80B58994; -extern ? D_80B5899C; -extern ? D_80B589AC; -extern ? D_80B589FC; -extern ? D_80B58A04; -extern ? D_80B58A24; -extern ? D_80B58A3C; -extern ? D_80B58A44; -extern ? D_80B58ABC; -extern ? D_80B58AC4; -extern ? D_80B58AE8; -extern ? D_80B58AF4; -extern ? D_80B58B3C; -extern ? D_80B58B7C; -extern ? D_80B58B88; -extern ? D_80B58B90; -extern Vec3f D_80B58E34; -extern ? D_80B58E40; -extern Vec3f D_80B58E7C; -extern Vec3s D_80B58E88; -extern Vec3f D_80B58E90; -extern Vec3s D_80B58E9C; -extern Vec3s D_80B58EA4; -extern ? D_80B58EAC; - -void EnAn_Destroy(Actor* thisx, PlayState* play) { - EnAn* this = (EnAn* ) thisx; - Collider_DestroyCylinder(play, &this->unk_190); -} - -void EnAn_Init(Actor* thisx, PlayState* play) { - s32 sp1C; - s32 temp_v0; - s32 temp_v1; - EnAn* this = (EnAn* ) thisx; - - if (play->sceneId != 0x61) { - this->actor.params &= 0x7FFF; - } - temp_v0 = gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40; - temp_v1 = (s32) (this->actor.params & 0x8000) >> 0xF; - if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { - Actor_Kill(&this->actor); - return; - } - if (temp_v1 == 0) { - sp1C = temp_v1; - if (func_80B53A7C(this, play, 4U, 0x202) != NULL) { - Actor_Kill(&this->actor); - return; - } - } - this->unk_214 = -0x80; - this->unk_3B8 = 0; - if (temp_v1 == 0) { - this->actor.room = -1; - } - this->actionFunc = func_80B577F0; -} - -void EnAn_Update(Actor* thisx, PlayState* play) { - EnAn* this = (EnAn* ) thisx; - if (func_80B53840(this, play) == 0) { - if ((func_80B577F0 != this->actionFunc) && (func_80B55180(this, play) == 0) && (func_80B552E4(this, play) != 0)) { - func_80B57B48(this, play); - func_80B53BA8(this, play); - func_80B53F84(this); - return; - } - this->actionFunc(this, play); - if (this->unk_200 != 0) { - func_80B55914(this, play); - func_80B53BA8(this, play); - func_80B53F84(this); - func_80B554E8(this); - SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & 7); - if (!(this->unk_360 & 0x40)) { - Actor_MoveWithGravity(&this->actor); - Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4U); - } - func_80B53ED4(this, play); - } - } -} - -s32 func_80B53840(EnAn* this, PlayState* play) { - s32 sp24; - void* sp20; - s8 temp_a0; - s8 temp_a0_2; - s8 temp_a0_3; - s8 temp_a0_4; - s8 temp_a0_5; - - sp24 = 0; - if ((play->roomCtx.curRoom.num != this->unk_214) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { - sp20 = play + 0x18000; - this->unk_20C = SubS_GetObjectIndex(0x16, play); - this->unk_20B = SubS_GetObjectIndex(0x1A, play); - this->unk_20A = SubS_GetObjectIndex(0x1FF, play); - this->unk_209 = SubS_GetObjectIndex(0xDD, play); - this->unk_208 = SubS_GetObjectIndex(0xE0, play); - this->actor.draw = NULL; - this->unk_3B8 = 1; - this->unk_214 = sp20->unk_6E0; - } - if (this->unk_3B8 == 0) { - return 0; - } - temp_a0 = this->unk_208; - if (((temp_a0 >= 0) && (SubS_IsObjectLoaded(temp_a0, play) == 0)) || ((temp_a0_2 = this->unk_209, (temp_a0_2 >= 0)) && (SubS_IsObjectLoaded(temp_a0_2, play) == 0)) || ((temp_a0_3 = this->unk_20A, (temp_a0_3 >= 0)) && (SubS_IsObjectLoaded(temp_a0_3, play) == 0)) || ((temp_a0_4 = this->unk_20B, (temp_a0_4 >= 0)) && (SubS_IsObjectLoaded(temp_a0_4, play) == 0)) || ((temp_a0_5 = this->unk_20C, (temp_a0_5 >= 0)) && (SubS_IsObjectLoaded(temp_a0_5, play) == 0))) { - sp24 = 1; - } else { - this->actor.draw = EnAn_Draw; - this->unk_3B8 = 0; - } - return sp24; -} - -Actor* func_80B539CC(EnAn* arg0, PlayState* arg1, u8 arg2, s16 arg3) { - Actor* temp_v0; - Actor* temp_v1; - Actor* var_s0; - Actor* var_s0_2; - - var_s0_2 = NULL; -loop_1: - temp_v0 = SubS_FindActor(arg1, var_s0_2, arg2 & 0xFF & 0xFF, arg3); - var_s0 = temp_v0; - if ((temp_v0 != NULL) && ((temp_v0 == arg0) || (temp_v0->update == NULL))) { - temp_v1 = temp_v0->next; - if (temp_v1 == NULL) { - var_s0 = NULL; - } else { - var_s0_2 = temp_v1; - goto loop_1; - } - } - return var_s0; -} - -Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { - Actor* temp_v0; - Actor* temp_v1; - Actor* var_s0; - Actor* var_s0_2; - - var_s0_2 = NULL; -loop_1: - temp_v0 = SubS_FindActor(play, var_s0_2, actorCategory & 0xFF & 0xFF, actorId); - var_s0 = temp_v0; - if ((temp_v0 != NULL) && ((temp_v0 == this) || (temp_v0->update == NULL) || (temp_v0->params & 0x8000))) { - temp_v1 = temp_v0->next; - if (temp_v1 == NULL) { - var_s0 = NULL; - } else { - var_s0_2 = temp_v1; - goto loop_1; - } - } - return var_s0; -} - -struct EnDoor* func_80B53B3C(PlayState* arg0, u8 arg1) { - s32 var_a1; - - switch (arg1) { - case 0x1A: - case 0x1B: - var_a1 = 0xD; -block_7: - return SubS_FindDoor(arg0, var_a1); - case 0x21: - case 0x22: - case 0x25: - case 0x26: - var_a1 = 0xB; - goto block_7; - case 0x24: - var_a1 = 0x10; - goto block_7; - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x23: - case 0x27: - var_a1 = 0xE; - goto block_7; - default: - return NULL; - } -} - -s32 func_80B53BA8(EnAn* this, PlayState* play) { - s8 sp1F; - s32 temp_v0; - s32 var_t0; - s32 var_v1; - s32 var_v1_2; - s8 temp_a0; - s8 temp_a0_2; - s8 temp_a0_3; - s8 temp_a3; - - temp_v0 = this->unk_39C; - temp_a3 = this->actor.objBankIndex; - var_v1 = -1; - var_t0 = 0; - if (temp_v0 >= 0x19) { - temp_a0 = this->unk_20B; - if (temp_a0 >= 0) { - var_v1_2 = temp_a0 << 0x18; - goto block_11; - } - } - if (temp_v0 >= 0x15) { - temp_a0_2 = this->unk_209; - if (temp_a0_2 >= 0) { - var_v1_2 = temp_a0_2 << 0x18; - goto block_11; - } - } - if (temp_v0 >= 0x11) { - temp_a0_3 = this->unk_208; - if (temp_a0_3 >= 0) { - var_v1_2 = temp_a0_3 << 0x18; - goto block_11; - } - } - if (temp_v0 < 0x11) { - var_v1_2 = temp_a3 << 0x18; -block_11: - var_v1 = var_v1_2 >> 0x18; - } - if (var_v1 < 0) { - return 0; - } - if (var_v1 >= 0) { - *(gSegments + 0x18) = (u32) (play->objectCtx.status[var_v1].segment + 0x80000000); - this->unk_144.playSpeed = this->unk_368; - sp1F = temp_a3; - var_t0 = SkelAnime_Update(&this->unk_144); - *(gSegments + 0x18) = (u32) (play->objectCtx.status[temp_a3].segment + 0x80000000); - } - return var_t0; -} - -s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { - s8 sp1F; - s32 temp_v0_4; - s32 temp_v0_5; - s32 temp_v0_6; - s32 temp_v0_7; - s32 var_t0; - s32 var_t2; - s32 var_v1; - s32 var_v1_2; - s8 temp_t1; - s8 temp_v0; - s8 temp_v0_2; - s8 temp_v0_3; - - temp_t1 = this->actor.objBankIndex; - var_v1 = -1; - var_t0 = 0; - var_t2 = 0; - if (arg2 >= 0x19) { - temp_v0 = this->unk_20B; - if (temp_v0 >= 0) { - var_v1_2 = temp_v0 << 0x18; - goto block_11; - } - } - if (arg2 >= 0x15) { - temp_v0_2 = this->unk_209; - if (temp_v0_2 >= 0) { - var_v1_2 = temp_v0_2 << 0x18; - goto block_11; - } - } - if (arg2 >= 0x11) { - temp_v0_3 = this->unk_208; - if (temp_v0_3 >= 0) { - var_v1_2 = temp_v0_3 << 0x18; - goto block_11; - } - } - if (arg2 < 0x11) { - var_v1_2 = temp_t1 << 0x18; -block_11: - var_v1 = var_v1_2 >> 0x18; - } - if (var_v1 < 0) { - return 0; - } - switch (arg2) { - case 0x1: - case 0x2: - temp_v0_4 = this->unk_39C; - if ((temp_v0_4 != 1) && (temp_v0_4 != 2)) { -block_26: - var_t0 = 1; - } - break; - case 0x7: - case 0x8: - temp_v0_5 = this->unk_39C; - if ((temp_v0_5 != 7) && (temp_v0_5 != 8)) { - goto block_26; - } - break; - case 0x9: - case 0xA: - temp_v0_6 = this->unk_39C; - if ((temp_v0_6 != 9) && (temp_v0_6 != 0xA)) { - goto block_26; - } - break; - default: - if (arg2 != this->unk_39C) { - goto block_26; - } - break; - } - if ((var_t0 != 0) && (var_v1 >= 0)) { - *(gSegments + 0x18) = (u32) (play->objectCtx.status[var_v1].segment + 0x80000000); - this->unk_39C = arg2; - sp1F = temp_t1; - temp_v0_7 = SubS_ChangeAnimationByInfoS(&this->unk_144, D_80B58BF4, arg2); - this->unk_368 = this->unk_144.playSpeed; - var_t2 = temp_v0_7; - *(gSegments + 0x18) = (u32) (play->objectCtx.status[temp_t1].segment + 0x80000000); - } - return var_t2; -} - -void func_80B53ED4(EnAn* this, PlayState* play) { - Vec3f sp24; - ColliderCylinder* sp20; - ColliderCylinder* temp_a2; - - temp_a2 = &this->unk_190; - if (this->unk_200 == 0x19) { - Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); - this->unk_190.dim.radius = 0x14; - Math_Vec3f_ToVec3s(&this->unk_190.dim.pos, &sp24); - } else { - sp20 = temp_a2; - Collider_UpdateCylinder(&this->actor, temp_a2); - } - this->unk_190.dim.height = (s16) (s32) (this->actor.focus.pos.y - this->actor.world.pos.y); - CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); -} - -void func_80B53F84(EnAn* this) { - s16 temp_t9; - s16 temp_v0; - s16 temp_v0_2; - s16 temp_v0_3; - s16 temp_v0_4; - s16 temp_v0_5; - s16 temp_v0_6; - s16 var_v1; - s32 var_a1; - - var_a1 = 0; - if (this->unk_360 & 0x100) { - temp_v0 = this->unk_38E; - if (temp_v0 == 0) { - var_v1 = 0; - } else { - this->unk_38E = temp_v0 - 1; - var_v1 = this->unk_38E; - } - if (var_v1 == 0) { - temp_t9 = this->unk_38C; - switch (temp_t9) { - case 0x2: - case 0x4: - case 0x6: - temp_v0_2 = this->unk_390; - if ((temp_v0_2 == 5) || (temp_v0_2 == 2)) { - var_a1 = 1; - this->unk_390 = 5; - } - break; - case 0x5: - case 0x7: - temp_v0_3 = this->unk_390; - if ((temp_v0_3 == 6) || (temp_v0_3 == 1)) { - var_a1 = 1; - this->unk_390 = 6; - } - break; - case 0x8: - temp_v0_4 = this->unk_390; - if ((temp_v0_4 == 4) || (temp_v0_4 == 2)) { - var_a1 = 1; - this->unk_390 = 4; - } - break; - } - if (var_a1 == 0) { - temp_v0_5 = this->unk_390; - if ((temp_v0_5 == 4) || (temp_v0_5 == 5)) { - this->unk_390 = 0; - } else if (temp_v0_5 == 6) { - this->unk_390 = 1; - } - } - if (var_a1 == 0) { - this->unk_390 += 1; - if (this->unk_390 >= 4) { - temp_v0_6 = this->unk_38C; - if ((temp_v0_6 == 0) || (temp_v0_6 == 1) || (temp_v0_6 == 3)) { - this->unk_38E = Rand_S16Offset(0x1E, 0x1E); - } else { - this->unk_38E = 8; - } - this->unk_390 = 0; - } - } - } - } - this->unk_392 = *(&D_80B58E40 + (this->unk_38C * 2)); -} - -void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { - s8 sp53; - s8 sp52; - GraphicsContext* sp4C; - Gfx* sp44; - Gfx* sp40; - Gfx* temp_v0; - Gfx* temp_v0_10; - Gfx* temp_v0_11; - Gfx* temp_v0_12; - Gfx* temp_v0_13; - Gfx* temp_v0_14; - Gfx* temp_v0_15; - Gfx* temp_v0_16; - Gfx* temp_v0_17; - Gfx* temp_v0_18; - Gfx* temp_v0_2; - Gfx* temp_v0_3; - Gfx* temp_v0_4; - Gfx* temp_v0_5; - Gfx* temp_v0_6; - Gfx* temp_v0_7; - Gfx* temp_v0_8; - Gfx* temp_v0_9; - GraphicsContext* temp_t0; - s8 temp_a2; - s8 temp_a2_2; - s8 temp_a2_3; - s8 temp_a2_4; - - sp53 = this->actor.objBankIndex; - temp_t0 = play->state.gfxCtx; - sp4C = temp_t0; - Matrix_Push(); - switch (arg2) { - case 0x0: - if ((this->unk_360 & 0x800) && (this->unk_3B0 == 0)) { - this->unk_3A8 += 1; - this->unk_3AC -= 2; - sp4C = temp_t0; - Gfx_SetupDL25_Xlu(play->state.gfxCtx); - temp_v0 = temp_t0->polyXlu.p; - temp_t0->polyXlu.p = temp_v0 + 8; - temp_v0->words.w0 = 0xDA380003; - sp4C = temp_t0; - sp44 = temp_v0; - sp44->words.w1 = Matrix_NewMtx(play->state.gfxCtx); - temp_v0_2 = temp_t0->polyXlu.p; - temp_t0->polyXlu.p = temp_v0_2 + 8; - temp_v0_2->words.w0 = 0xDB060020; - sp4C = temp_t0; - sp40 = temp_v0_2; - sp40->words.w1 = Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, 0x10, 0x10); - temp_v0_3 = temp_t0->polyXlu.p; - temp_t0->polyXlu.p = temp_v0_3 + 8; - temp_v0_3->words.w0 = 0xDE000000; - temp_v0_3->words.w1 = (u32) D_060111E8; - Gfx_SetupDL25_Opa(play->state.gfxCtx); - } - break; - case 0x1: - temp_a2 = this->unk_20A; - if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - temp_v0_4 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_4 + 8; - temp_v0_4->words.w0 = 0xDB060028; - temp_v0_4->words.w1 = (u32) play->objectCtx.status[temp_a2].segment; - sp4C = temp_t0; - Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); - temp_v0_5 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_5 + 8; - temp_v0_5->words.w0 = 0xDA380003; - sp4C = temp_t0; - temp_v0_5->words.w1 = Matrix_NewMtx(play->state.gfxCtx); - temp_v0_6 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_6 + 8; - temp_v0_6->words.w0 = 0xDE000000; - temp_v0_6->words.w1 = (u32) D_0A000D40; - temp_v0_7 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_7 + 8; - temp_v0_7->words.w0 = 0xDB060018; - temp_v0_7->words.w1 = (u32) play->objectCtx.status[sp53].segment; - } - break; - case 0x2: - temp_a2_2 = this->unk_208; - if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2_2 >= 0)) { - temp_v0_8 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_8 + 8; - temp_v0_8->words.w0 = 0xDB060018; - temp_v0_8->words.w1 = (u32) play->objectCtx.status[temp_a2_2].segment; - temp_v0_9 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_9 + 8; - temp_v0_9->words.w1 = (u32) D_06000378; - temp_v0_9->words.w0 = 0xDE000000; - temp_v0_10 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_10 + 8; - temp_v0_10->words.w0 = 0xDB060018; - temp_v0_10->words.w1 = (u32) play->objectCtx.status[sp53].segment; - } - break; - case 0x3: - temp_a2_3 = this->unk_209; - if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2_3 >= 0)) { - temp_v0_11 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_11 + 8; - temp_v0_11->words.w0 = 0xDB060018; - temp_v0_11->words.w1 = (u32) play->objectCtx.status[temp_a2_3].segment; - temp_v0_12 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_12 + 8; - temp_v0_12->words.w1 = (u32) D_06000308; - temp_v0_12->words.w0 = 0xDE000000; - temp_v0_13 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_13 + 8; - temp_v0_13->words.w0 = 0xDB060018; - temp_v0_13->words.w1 = (u32) play->objectCtx.status[sp53].segment; - } - break; - case 0x4: - if ((this->unk_360 & 0x8000) && (this->unk_3B0 == 0)) { - temp_v0_14 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_14 + 8; - temp_v0_14->words.w1 = (u32) D_06012478; - temp_v0_14->words.w0 = 0xDE000000; - } - break; - case 0x5: - temp_a2_4 = this->unk_20C; - if ((this->unk_3B4 != 0) && (temp_a2_4 >= 0)) { - sp52 = temp_a2_4; - sp4C = temp_t0; - Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); - temp_v0_15 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_15 + 8; - temp_v0_15->words.w0 = 0xDA380003; - sp4C = temp_t0; - sp52 = temp_a2_4; - temp_v0_15->words.w1 = Matrix_NewMtx(play->state.gfxCtx); - temp_v0_16 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_16 + 8; - temp_v0_16->words.w0 = 0xDB060018; - temp_v0_16->words.w1 = (u32) play->objectCtx.status[temp_a2_4].segment; - temp_v0_17 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_17 + 8; - temp_v0_17->words.w1 = (u32) D_06000E70; - temp_v0_17->words.w0 = 0xDE000000; - temp_v0_18 = temp_t0->polyOpa.p; - temp_t0->polyOpa.p = temp_v0_18 + 8; - temp_v0_18->words.w0 = 0xDB060018; - temp_v0_18->words.w1 = (u32) play->objectCtx.status[sp53].segment; - } - break; - } - Matrix_Pop(); -} - -s32 func_80B54678(Actor* arg0, s16 arg1) { - s32 sp1C; - - sp1C = 0; - if (CutsceneManager_GetCurrentCsId() == 0x7C) { - CutsceneManager_Stop(0x7C); - CutsceneManager_Queue(arg1); - } else if (CutsceneManager_IsNext(arg1) != 0) { - CutsceneManager_StartWithPlayerCs(arg1, arg0); - sp1C = 1; - } else { - CutsceneManager_Queue(arg1); - } - return sp1C; -} - -s16 func_80B546F4(Actor* arg0, s32 arg1) { - s32 var_s0; - s8 var_s1; - - var_s1 = arg0->csId; - var_s0 = 0; - if (arg1 > 0) { - do { - var_s0 += 1; - var_s1 = (s8) CutsceneManager_GetAdditionalCsId((s16) var_s1); - } while (var_s0 != arg1); - } - return (s16) var_s1; -} - -s16 func_80B54750(Actor* arg0, s32 arg1) { - Actor* temp_v0; - s32 var_s0; - s8 var_s1; - - temp_v0 = arg0->child; - var_s1 = -1; - if (temp_v0 != NULL) { - var_s0 = 0; - if (temp_v0->update != NULL) { - var_s1 = temp_v0->csId; - if (arg1 > 0) { - do { - var_s0 += 1; - var_s1 = (s8) CutsceneManager_GetAdditionalCsId((s16) var_s1); - } while (var_s0 != arg1); - } - } - } - return (s16) var_s1; -} - -s32 func_80B547C8(Actor* arg0, PlayState* arg1) { - s16 sp2A; - s32 sp24; - Actor* temp_v0; - s16 temp_a0; - s16 temp_a1; - s32 var_v1; - - temp_a0 = arg0->unk_394; - temp_a1 = func_80B546F4(arg0, 0); - var_v1 = 0; - switch (temp_a0) { - case 0x0: - sp24 = 0; - sp2A = temp_a1; - var_v1 = 0; - if (func_80B54678(arg0, temp_a1) != 0) { - case 0x2: - case 0x4: - case 0x6: - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); - var_v1 = 1; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - } - break; - case 0x1: - case 0x3: - case 0x5: - if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (temp_a0 == 3)) { - CutsceneManager_Stop(temp_a1); - } else { - temp_v0 = arg0->child; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); - } - } - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - var_v1 = 1; - break; - case 0x7: - CutsceneManager_Stop(temp_a1); - var_v1 = 1; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - break; - } - return var_v1; -} - -s32 func_80B5492C(Actor* arg0, PlayState* arg1) { - s16 sp2A; - s32 sp24; - Actor* temp_v0; - s16 temp_a1; - s16 temp_v1; - s32 var_a2; - - temp_v1 = arg0->unk_394; - temp_a1 = func_80B546F4(arg0, 0); - var_a2 = 0; - switch (temp_v1) { - case 0x0: - sp2A = temp_a1; - sp24 = 0; - var_a2 = 0; - if (func_80B54678(arg0, temp_a1, 0) != 0) { - case 0x2: - case 0x4: - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); - var_a2 = 1; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - } - break; - case 0x1: - case 0x3: - if (!(gSaveContext.save.saveInfo.weekEventReg[0x4B] & 0x10) && (temp_v1 == 3)) { - CutsceneManager_Stop(temp_a1); - arg0->unk_394 = 5; - } else { - temp_v0 = arg0->child; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); - } - } - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - var_a2 = 1; - break; - case 0x5: - CutsceneManager_Stop(temp_a1); - var_a2 = 1; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - break; - } - return var_a2; -} - -s32 func_80B54A94(Actor* arg0, PlayState* arg1) { - s16 sp2A; - s32 sp24; - Actor* temp_v0; - s16 temp_a1; - s32 var_v1; - u16 temp_t6; - - temp_t6 = arg0->unk_394; - temp_a1 = func_80B54750(arg0, 0); - var_v1 = 0; - switch (temp_t6) { - case 0x0: - sp24 = 0; - sp2A = temp_a1; - var_v1 = 0; - if (func_80B54678(arg0, temp_a1) != 0) { - case 0x2: - case 0x4: - case 0x6: - case 0x8: - temp_v0 = arg0->child; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0->child); - } - var_v1 = 1; - arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); - } - break; - case 0x1: - case 0x3: - case 0x5: - case 0x7: - Camera_SetTargetActor(Play_GetCamera(arg1, CutsceneManager_GetCurrentSubCamId(temp_a1)), arg0); - var_v1 = 1; - arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); - break; - case 0x9: - CutsceneManager_Stop(temp_a1); - var_v1 = 1; - arg0->unk_394 = (u16) ((s16) arg0->unk_394 + 1); - break; - } - return var_v1; -} - -s32 func_80B54BC4(Actor* arg0, PlayState* arg1) { - if (arg0->unk_394 == 0) { - func_800B7298(arg1, arg0, 7U); - arg1->nextEntrance = 0xBC30; - gSaveContext.nextCutsceneIndex = 0; - arg1->transitionTrigger = 0x14; - arg1->transitionType = 2; - gSaveContext.nextTransitionType = 6; - arg0->unk_394 = (s16) (arg0->unk_394 + 1); - } - return 0; -} - -s32 func_80B54C5C(EnAn* arg0, PlayState* arg1) { - s32 sp20; - s16 temp_v0; - - sp20 = 0; - temp_v0 = arg0->unk_394; - switch (temp_v0) { /* irregular */ - case 0x0: - func_80B53CE8(arg0, arg1, 0xD); - arg0->unk_394 += 1; - break; - case 0x1: - case 0x3: - if (Animation_OnFrame(arg0 + 0x144, arg0->unk_144.endFrame) != 0) { - arg0->unk_394 += 1; - sp20 = 1; - } - break; - case 0x2: - func_80B53CE8(arg0, arg1, 0xE); - arg0->unk_394 += 1; - break; - } - return sp20; -} - -s32 func_80B54D18(EnAn* arg0, PlayState* arg1) { - s16 temp_v0; - s32 var_v1; - u16 temp_t6; - - temp_v0 = arg0->unk_394; - var_v1 = 0; - switch (temp_v0) { /* irregular */ - case 0x0: - if ((Player_GetMask(arg1) == 2) || (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { - arg0->unk_394 += 1; - case 0x1: - temp_t6 = arg0->unk_360 & 0xBFDF; - arg0->unk_360 = temp_t6; - arg0->unk_360 = temp_t6 | 0x200; - func_80B53CE8(arg0, arg1, 0x14); - var_v1 = 1; - arg0->unk_394 += 1; - } else { - var_v1 = 1; - arg0->unk_360 |= 0x4000; - arg0->unk_394 += 1; - } - break; - } - return var_v1; -} - -?* func_80B54DF4(EnAn* arg0, PlayState* arg1) { - Actor* sp1C; - Actor* temp_v1; - u8 temp_a0; - u8 temp_t3; - u8 temp_v0; - u8 temp_v0_2; - u8 temp_v0_3; - - temp_v0 = arg0->unk_200; - temp_v1 = arg1->actorCtx.actorLists[2].first; - switch (temp_v0) { /* switch 1 */ - case 0x15: /* switch 1 */ - arg0->unk_398 = func_80B54A94; - return &D_80B58808; - case 0x10: /* switch 1 */ - arg0->unk_398 = func_80B547C8; - return &D_80B58718; - case 0x11: /* switch 1 */ - arg0->unk_398 = func_80B5492C; - return &D_80B58784; - case 0xE: /* switch 1 */ - arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54C5C; - return &D_80B58954; - case 0xC: /* switch 1 */ - return &D_80B5899C; - case 0x19: /* switch 1 */ - return &D_80B58B90; - default: /* switch 1 */ - if (temp_v1->unk_14B == 3) { - if ((s32) temp_v0 >= 4) { - switch (temp_v0) { /* switch 2 */ - case 0x28: /* switch 2 */ - case 0x2A: /* switch 2 */ - case 0x2B: /* switch 2 */ - case 0x2C: /* switch 2 */ - case 0x2D: /* switch 2 */ - case 0x2F: /* switch 2 */ - return &D_80B58B7C; - case 0x31: /* switch 2 */ - return &D_80B589FC; - default: /* switch 2 */ - return &D_80B58A04; - } - } else { - switch (temp_v0) { /* switch 4; irregular */ - case 0x1: /* switch 4 */ - return &D_80B58AE8; - case 0x3: /* switch 4 */ - return &D_80B58A24; - default: /* switch 4 */ - return &D_80B58A04; - } - } - } else { - sp1C = temp_v1; - if (Player_GetMask(arg1) == 2) { - temp_v0_2 = arg0->unk_200; - if (temp_v0_2 == 0x31) { - return &D_80B58B88; - } - if (temp_v0_2 == 0x17) { - arg0->unk_398 = func_80B54BC4; - return &D_80B589AC; - } - if (temp_v0_2 == 3) { - arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; - return &D_80B58B3C; - } - if (gSaveContext.save.day >= 2) { - return &D_80B58A44; - } - if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { - return &D_80B58ABC; - } - return &D_80B58AC4; - } - temp_a0 = temp_v1->unk_14B; - if ((temp_a0 == 4) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { - temp_v0_3 = arg0->unk_200; - if (temp_v0_3 == 0x17) { - arg0->unk_398 = func_80B54BC4; - return &D_80B589AC; - } - if (temp_v0_3 == 3) { - arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; - return &D_80B58AF4; - } - if (gSaveContext.save.day >= 2) { - return &D_80B58A44; - } - goto block_40; - } -block_40: - temp_t3 = arg0->unk_200; - switch (temp_t3) { /* switch 3 */ - case 0x1: /* switch 3 */ - return &D_80B58AE8; - case 0x28: /* switch 3 */ - return &D_80B5894C; - case 0x2A: /* switch 3 */ - case 0x2B: /* switch 3 */ - case 0x2C: /* switch 3 */ - case 0x2D: /* switch 3 */ - return &D_80B58980; - case 0x3: /* switch 3 */ - arg0->unk_398 = (s32 (*)(Actor*, PlayState*)) func_80B54D18; - return &D_80B58AF4; - case 0x12: /* switch 3 */ - if (gSaveContext.save.day >= 2) { - return &D_80B58A3C; - } - return &D_80B5885C; - case 0x13: /* switch 3 */ - case 0x2F: /* switch 3 */ - return &D_80B58938; - case 0x16: /* switch 3 */ - return &D_80B58988; - case 0x17: /* switch 3 */ - return &D_80B589FC; - case 0x30: /* switch 3 */ - return &D_80B58944; - case 0x31: /* switch 3 */ - if (temp_a0 == 4) { - return &D_80B58B88; - } - return &D_80B589FC; - case 0x34: /* switch 3 */ - case 0x35: /* switch 3 */ - return &D_80B58994; - default: /* switch 3 */ - return NULL; - } - } - break; - } -} - -s32 func_80B55180(EnAn* this, PlayState* play) { - s32 sp1C; - s32 var_v1; - u8 temp_v1; - - var_v1 = 0; - if (this->unk_360 & 7) { - sp1C = 0; - var_v1 = sp1C; - if (Actor_ProcessTalkRequest(&this->actor, &play->state) != 0) { - SubS_SetOfferMode(&this->unk_360, 0U, 7U); - this->unk_3C4 = 0; - this->unk_394 = 0; - this->unk_398 = NULL; - this->actor.child = this->unk_218; - temp_v1 = this->unk_200; - this->unk_204 = func_80B54DF4(this, play); - if ((temp_v1 == 1) || (temp_v1 == 3) || (temp_v1 == 0x12) || (temp_v1 == 0x13) || (temp_v1 == 0x17) || (temp_v1 == 0x16) || (temp_v1 == 0x28) || (temp_v1 == 0x2A) || (temp_v1 == 0x2B) || (temp_v1 == 0x2C) || (temp_v1 == 0x2D) || (temp_v1 == 0x2F) || (temp_v1 == 0x30) || (temp_v1 == 0x31) || (temp_v1 == 0x34) || (temp_v1 == 0x35)) { - this->unk_360 |= 0x20; - } - if ((this->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { - this->unk_360 &= 0xFFDF; - } - this->actionFunc = func_80B57A44; - var_v1 = 1; - } - } - return var_v1; -} - -s32 func_80B552E4(EnAn* this, PlayState* play) { - s32 var_v1; - u16 temp_v0; - - temp_v0 = play->csCtx.scriptIndex; - var_v1 = 0; - if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { - if (this->unk_3B0 == 0) { - this->unk_38A = 0; - this->unk_38C = 0; - this->unk_360 |= 0x300; - this->unk_38E = 8; - this->unk_364 = -1; - this->unk_3B0 = 1; - this->unk_3B4 = 0; - } - var_v1 = 1; - } else if (this->unk_3B0 != 0) { - this->unk_3B0 = 0; - this->unk_3B4 = 0; - this->unk_3C0 = 1; - this->actionFunc = func_80B578F8; - this->actor.room = play->roomCtx.curRoom.num; - } - return var_v1; -} - -void func_80B553AC(void* arg0) { - Vec3f sp40; - Vec3f sp34; - s16 temp_v0; - s16 temp_v0_3; - s16 var_v1; - s16 var_v1_2; - void* temp_v0_2; - - Math_Vec3f_Copy(&sp40, arg0->unk_218 + 0x24); - Math_Vec3f_Copy(&sp34, arg0 + 0x24); - Math_ApproachS(arg0 + 0x37E, (s16) (Math_Vec3f_Yaw(&sp34, &sp40) - arg0->unk_BE), 4, 0x2AA8); - temp_v0 = arg0->unk_37E; - if (temp_v0 < -0x1FFE) { - arg0->unk_37E = -0x1FFE; - } else { - var_v1 = temp_v0; - if (temp_v0 >= 0x1FFF) { - var_v1 = 0x1FFE; - } - arg0->unk_37E = var_v1; - } - Math_Vec3f_Copy(&sp34, arg0 + 0x3C); - temp_v0_2 = arg0->unk_218; - if (temp_v0_2->unk_0 == 0) { - sp40.y = temp_v0_2->unk_C44 + 3.0f; - } else { - Math_Vec3f_Copy(&sp40, temp_v0_2 + 0x3C); - } - Math_ApproachS(arg0 + 0x37C, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); - temp_v0_3 = arg0->unk_37C; - if (temp_v0_3 < -0x1554) { - arg0->unk_37C = -0x1554; - return; - } - var_v1_2 = temp_v0_3; - if (temp_v0_3 >= 0x1555) { - var_v1_2 = 0x1554; - } - arg0->unk_37C = var_v1_2; -} - -void func_80B554E8(EnAn* this) { - Actor* temp_v0; - s16 temp_v0_2; - s16 temp_v0_4; - s16 var_v1; - s16 var_v1_2; - u16 temp_t2; - u16 temp_v0_3; - - if (this->unk_360 & 0x20) { - temp_v0 = this->unk_218; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - temp_v0_2 = this->unk_388; - if (temp_v0_2 == 0) { - var_v1 = 0; - } else { - this->unk_388 = temp_v0_2 - 1; - var_v1 = this->unk_388; - } - if (var_v1 == 0) { - func_80B553AC(); - temp_t2 = this->unk_360 & 0xFDFF; - this->unk_360 = temp_t2; - this->unk_360 = temp_t2 | 0x80; - return; - } - goto block_8; - } - } -block_8: - temp_v0_3 = this->unk_360; - if (temp_v0_3 & 0x80) { - this->unk_360 = temp_v0_3 & 0xFF7F; - this->unk_37C = 0; - this->unk_37E = 0; - this->unk_388 = 0x14; - return; - } - temp_v0_4 = this->unk_388; - if (temp_v0_4 == 0) { - var_v1_2 = 0; - } else { - this->unk_388 = temp_v0_4 - 1; - var_v1_2 = this->unk_388; - } - if (var_v1_2 == 0) { - this->unk_360 |= 0x200; - } -} - -? func_80B555C8(EnAn* arg0, PlayState* arg1) { - s32 var_v0; - u8 temp_t6; - - temp_t6 = arg0->unk_200; - switch (temp_t6) { - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x17: - func_80B53CE8(arg0, arg1, 1); - break; - case 0x16: - func_80B53CE8(arg0, arg1, 0x17); - arg0->unk_360 |= 0x2000; - break; - case 0xE: - func_80B53CE8(arg0, arg1, 0xC); - break; - case 0x15: - func_80B53CE8(arg0, arg1, 0xF); - break; - case 0x2F: - case 0x31: - func_80B53CE8(arg0, arg1, 7); - break; - case 0x34: - case 0x35: - func_80B53CE8(arg0, arg1, 0x16); - arg0->unk_360 |= 0x2000; - break; - default: - var_v0 = arg0->unk_39C; - if (var_v0 == 0xF) { - func_80B53CE8(arg0, arg1, 0x10); - var_v0 = arg0->unk_39C; - } - if (var_v0 == 0x11) { - func_80B53CE8(arg0, arg1, 0x12); - var_v0 = arg0->unk_39C; - } - if ((var_v0 == 1) || (var_v0 == 2)) { - func_80B53CE8(arg0, arg1, 8); - } - break; - } - return 0; -} - -void func_80B556F8(EnAn* arg0, PlayState* arg1) { - s16 temp_v0; - u16 temp_t4; - u16 temp_t8; - - temp_v0 = arg0->unk_396; - if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 6); - temp_t8 = arg0->unk_360 & 0xFFDF; - arg0->unk_360 = temp_t8; - arg0->unk_360 = temp_t8 | 0x200; - arg0->unk_396 += 1; - return; - } - if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { - func_80B53CE8(arg0, arg1, 2); - temp_t4 = arg0->unk_360 & 0xFDFF; - arg0->unk_360 = temp_t4; - arg0->unk_360 = temp_t4 | 0x20; - arg0->unk_396 += 1; - } -} - -void func_80B557AC(EnAn* arg0, PlayState* arg1) { - s16 temp_v0; - u16 temp_t4; - u16 temp_t8; - - temp_v0 = arg0->unk_396; - if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 3); - temp_t8 = arg0->unk_360 & 0xFFDF; - arg0->unk_360 = temp_t8; - arg0->unk_360 = temp_t8 | 0x200; - arg0->unk_396 += 1; - return; - } - if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { - func_80B53CE8(arg0, arg1, 2); - temp_t4 = arg0->unk_360 & 0xFDFF; - arg0->unk_360 = temp_t4; - arg0->unk_360 = temp_t4 | 0x20; - arg0->unk_396 += 1; - } -} - -void func_80B55860(EnAn* arg0, PlayState* arg1) { - s16 temp_v0; - u16 temp_t4; - u16 temp_t8; - - temp_v0 = arg0->unk_396; - if (temp_v0 == 0) { - func_80B53CE8(arg0, arg1, 4); - temp_t8 = arg0->unk_360 | 0x200; - arg0->unk_360 = temp_t8; - arg0->unk_360 = temp_t8 & 0xFFDF; - arg0->unk_396 += 1; - return; - } - if ((temp_v0 == 1) && (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0)) { - func_80B53CE8(arg0, arg1, 2); - temp_t4 = arg0->unk_360 & 0xFDFF; - arg0->unk_360 = temp_t4; - arg0->unk_360 = temp_t4 | 0x20; - arg0->unk_396 += 1; - } -} - -void func_80B55914(EnAn* this, PlayState* play) { - u16 sp22; - s32 sp18; - s32 var_v0; - u16 temp_t3; - u16 temp_v0; - void (*temp_v0_2)(EnAn*, PlayState*); - - sp22 = play->msgCtx.currentTextId; - if (play->actorCtx.actorLists[2].first->unk_A6C & 0x40) { - this->unk_360 |= 0x400; - sp18 = (s32) sp22; - if (sp22 != this->unk_362) { - if ((s32) sp22 >= 0x28F9) { - if (sp22 != 0x295E) { - goto block_23; - } - goto block_20; - } - switch (sp18) { /* switch 3; irregular */ - case 0x28E5: /* switch 3 */ - func_80B53CE8(this, play, 5); - this->unk_360 &= 0xDFFF; - break; - case 0x28BA: /* switch 3 */ - case 0x28D1: /* switch 3 */ - func_80B53CE8(this, play, 5); - break; - case 0x28AF: /* switch 3 */ - case 0x28C1: /* switch 3 */ - func_80B53CE8(this, play, 1); - break; - case 0x28BC: /* switch 3 */ - func_80B53CE8(this, play, 2); - break; - case 0x28C6: /* switch 3 */ - func_80B53CE8(this, play, 0xF); - break; - case 0x28F5: /* switch 3 */ - func_80B53CE8(this, play, 0xA); - break; - case 0x28F7: /* switch 3 */ - case 0x28F8: /* switch 3 */ - func_80B53CE8(this, play, 0x15); - break; - case 0x28EB: /* switch 3 */ - if (this->unk_39C != 0x14) { - temp_t3 = this->unk_360 & 0xBFDF; - this->unk_360 = temp_t3; - this->unk_360 = temp_t3 | 0x200; - func_80B53CE8(this, play, 0x14); - } - break; - case 0x28A4: /* switch 3 */ - case 0x28A9: /* switch 3 */ - case 0x28BE: /* switch 3 */ - case 0x28C0: /* switch 3 */ -block_20: - this->unk_18C = func_80B556F8; - this->unk_396 = 0; - break; - case 0x28E6: /* switch 3 */ - this->unk_360 &= 0xDFFF; - this->unk_18C = func_80B55860; - this->unk_396 = 0; - break; - case 0x1885: /* switch 3 */ - case 0x28A0: /* switch 3 */ - case 0x28A3: /* switch 3 */ - case 0x28A5: /* switch 3 */ - case 0x28B1: /* switch 3 */ - case 0x28D2: /* switch 3 */ - case 0x28D9: /* switch 3 */ - case 0x28DC: /* switch 3 */ - case 0x28DE: /* switch 3 */ - this->unk_18C = func_80B557AC; - this->unk_396 = 0; - break; - case 0x28A1: /* switch 3 */ - case 0x28A2: /* switch 3 */ - case 0x28A6: /* switch 3 */ - case 0x28A7: /* switch 3 */ - case 0x28A8: /* switch 3 */ - case 0x28AA: /* switch 3 */ - case 0x28AB: /* switch 3 */ - case 0x28AC: /* switch 3 */ - case 0x28AD: /* switch 3 */ - case 0x28AE: /* switch 3 */ - case 0x28B0: /* switch 3 */ - case 0x28B2: /* switch 3 */ - case 0x28B3: /* switch 3 */ - case 0x28B4: /* switch 3 */ - case 0x28B5: /* switch 3 */ - case 0x28B6: /* switch 3 */ - case 0x28B7: /* switch 3 */ - case 0x28B8: /* switch 3 */ - case 0x28B9: /* switch 3 */ - case 0x28BB: /* switch 3 */ - case 0x28BD: /* switch 3 */ - case 0x28BF: /* switch 3 */ - case 0x28C2: /* switch 3 */ - case 0x28C3: /* switch 3 */ - case 0x28C4: /* switch 3 */ - case 0x28C5: /* switch 3 */ - case 0x28C7: /* switch 3 */ - case 0x28C8: /* switch 3 */ - case 0x28C9: /* switch 3 */ - case 0x28CA: /* switch 3 */ - case 0x28CB: /* switch 3 */ - case 0x28CC: /* switch 3 */ - case 0x28CD: /* switch 3 */ - case 0x28CE: /* switch 3 */ - case 0x28CF: /* switch 3 */ - case 0x28D0: /* switch 3 */ - case 0x28D3: /* switch 3 */ - case 0x28D4: /* switch 3 */ - case 0x28D5: /* switch 3 */ - case 0x28D6: /* switch 3 */ - case 0x28D7: /* switch 3 */ - case 0x28D8: /* switch 3 */ - case 0x28DA: /* switch 3 */ - case 0x28DB: /* switch 3 */ - case 0x28DD: /* switch 3 */ - case 0x28DF: /* switch 3 */ - case 0x28E0: /* switch 3 */ - case 0x28E1: /* switch 3 */ - case 0x28E2: /* switch 3 */ - case 0x28E3: /* switch 3 */ - case 0x28E4: /* switch 3 */ - case 0x28E7: /* switch 3 */ - case 0x28E8: /* switch 3 */ - case 0x28E9: /* switch 3 */ - case 0x28EA: /* switch 3 */ - case 0x28EC: /* switch 3 */ - case 0x28ED: /* switch 3 */ - case 0x28EE: /* switch 3 */ - case 0x28EF: /* switch 3 */ - case 0x28F0: /* switch 3 */ - case 0x28F1: /* switch 3 */ - case 0x28F2: /* switch 3 */ - case 0x28F3: /* switch 3 */ - case 0x28F4: /* switch 3 */ - case 0x28F6: /* switch 3 */ -block_23: - var_v0 = this->unk_39C; - if (var_v0 == 0x10) { - func_80B53CE8(this, play, 0xF); - var_v0 = this->unk_39C; - } - if (var_v0 == 0x12) { - func_80B53CE8(this, play, 0x11); - var_v0 = this->unk_39C; - } - if ((var_v0 == 0x16) || (var_v0 == 0x17)) { - func_80B53CE8(this, play, 0x15); - var_v0 = this->unk_39C; - } - if ((var_v0 == 7) || (var_v0 == (s32) 8)) { - func_80B53CE8(this, play, 2); - } - break; - } - switch (sp18) { /* switch 4; irregular */ - case 0x28F5: /* switch 4 */ - this->unk_38A = 0; - /* fallthrough */ - case 0x28A5: /* switch 4 */ - case 0x28AA: /* switch 4 */ - case 0x28F8: /* switch 4 */ - this->unk_38C = 0; -block_50: - this->unk_38E = 8; - break; - case 0x1885: /* switch 4 */ - case 0x28A0: /* switch 4 */ - case 0x28A6: /* switch 4 */ - case 0x28AF: /* switch 4 */ - case 0x28C1: /* switch 4 */ - this->unk_38C = 3; - goto block_50; - case 0x28A2: /* switch 4 */ - case 0x28B3: /* switch 4 */ - case 0x28B6: /* switch 4 */ - case 0x28BA: /* switch 4 */ - case 0x28BE: /* switch 4 */ - case 0x28CE: /* switch 4 */ - case 0x28D0: /* switch 4 */ - case 0x28D6: /* switch 4 */ - case 0x28E5: /* switch 4 */ - case 0x28E7: /* switch 4 */ - case 0x28ED: /* switch 4 */ - this->unk_38C = 1; - goto block_50; - case 0x28AD: /* switch 4 */ - this->unk_38C = 8; - goto block_50; - case 0x28C0: /* switch 4 */ - case 0x28D7: /* switch 4 */ - case 0x28DE: /* switch 4 */ - this->unk_38C = 2; - goto block_50; - case 0x28E6: /* switch 4 */ - case 0x28F7: /* switch 4 */ - this->unk_38C = 6; - goto block_50; - case 0x28A3: /* switch 4 */ - case 0x28B1: /* switch 4 */ - case 0x28B8: /* switch 4 */ - case 0x28C6: /* switch 4 */ - case 0x28CA: /* switch 4 */ - case 0x28CC: /* switch 4 */ - case 0x28D5: /* switch 4 */ - case 0x28E2: /* switch 4 */ - case 0x28E3: /* switch 4 */ - case 0x28E4: /* switch 4 */ - this->unk_38C = 4; - goto block_50; - case 0x28EC: /* switch 4 */ - this->unk_38A = 5; - /* fallthrough */ - case 0x28DC: /* switch 4 */ - case 0x28EB: /* switch 4 */ - case 0x28F2: /* switch 4 */ - case 0x28F9: /* switch 4 */ - this->unk_38C = 5; - goto block_50; - case 0x28F6: /* switch 4 */ - this->unk_38C = 9; - goto block_50; - case 0x28A4: /* switch 4 */ - case 0x28A9: /* switch 4 */ - this->unk_38C = 7; - goto block_50; - } - } - this->unk_362 = sp22; - } else { - temp_v0 = this->unk_360; - if (temp_v0 & 0x400) { - this->unk_18C = NULL; - this->unk_362 = 0; - this->unk_360 = temp_v0 & 0xFBFF; - this->unk_38E = 4; - this->unk_38C = this->unk_38A; - func_80B555C8((EnAn* ) play); - } - } - temp_v0_2 = this->unk_18C; - if (temp_v0_2 != NULL) { - temp_v0_2(this, play); - } -} - -Actor* func_80B55D20(EnAn* arg0, PlayState* arg1) { - Actor* var_v0; - Actor* var_v1; - u8 temp_v0; - - temp_v0 = arg0->unk_200; - switch (temp_v0) { /* irregular */ - default: - var_v1 = arg1->actorCtx.actorLists[2].first; - break; - case 0x15: - var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x243); -block_7: - var_v1 = var_v0; - break; - case 0x10: - var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x1D5); - goto block_7; - case 0x11: - var_v0 = func_80B539CC((EnAn* )4, (PlayState* )0x276); - goto block_7; - } - return var_v1; -} - -s32 func_80B55D98(EnAn* arg0, PlayState* arg1, u8* arg2, u8 arg3, s16 arg4) { - u8 sp4F; - void* sp48; - Vec3f sp3C; - Vec3f sp30; - Actor* sp2C; - s32 sp24; - Actor* temp_v0; - Actor* var_v1; - Path* temp_v0_2; - s32 temp_a2; - void* temp_v0_3; - - sp24 = 0; - sp4F = (u8) arg0->actor.params; - temp_v0 = func_80B539CC(arg0, arg1, arg3, arg4); - arg0->unk_1DC = NULL; - var_v1 = temp_v0; - temp_a2 = *(&D_80B58618 + (*arg2 * 4)); - if (temp_a2 >= 0) { - sp2C = temp_v0; - var_v1 = sp2C; - arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a2); - } - if ((var_v1 != NULL) && (var_v1->update != NULL)) { - temp_v0_2 = arg0->unk_1DC; - if (temp_v0_2 != NULL) { - temp_v0_3 = Lib_SegmentedToVirtual(temp_v0_2->points); - sp48 = temp_v0_3; - Math_Vec3s_ToVec3f(&sp3C, ((arg0->unk_1DC->count * 6) + temp_v0_3) - 0xC); - Math_Vec3s_ToVec3f(&sp30, ((arg0->unk_1DC->count * 6) + sp48) - 6); - arg0->actor.shape.shadowDraw = NULL; - arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); - Math_Vec3f_Copy(&arg0->actor.world.pos, &sp30); - sp24 = 1; - } - } - return sp24; -} - -s32 func_80B55ECC(Actor* arg0) { - s32 sp1C; - f32 var_fv0; - s16 temp_v0; - s16 var_v1; - s32 var_t0; - - if (arg0->unk_3BC != 0) { - var_fv0 = 150.0f; - } else { - var_fv0 = 100.0f; - } - sp1C = 0; - var_t0 = 0; - if (Actor_IsFacingAndNearPlayer(arg0, var_fv0, 0x2800) != 0) { - var_t0 = 1; - } - temp_v0 = arg0->unk_386; - if (temp_v0 == 0) { - var_v1 = 0; - } else { - arg0->unk_386 = (s16) (temp_v0 - 1); - var_v1 = arg0->unk_386; - } - if (var_v1 == 0) { - arg0->unk_3BC = (s32) (arg0->unk_3BC ^ 1); - sp1C = var_t0; - arg0->unk_386 = Rand_S16Offset(0x3C, 0x3C); - } - return var_t0; -} - -s32 func_80B55F8C(PlayState* arg0) { - Actor* sp1C; - s32 sp18; - s32 var_v1; - - sp18 = 0; - sp1C = arg0->actorCtx.actorLists[2].first; - var_v1 = sp18; - if ((Player_GetMask(arg0) == 2) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { - goto block_5; - } - if ((sp1C->unk_14B == 4) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { -block_5: - var_v1 = 1; - } - return var_v1; -} - -s32 func_80B5600C(EnAn* arg0, PlayState* arg1) { - s32 sp2C; - s32 var_v1; - u16 temp_t9; - - sp2C = 0; - var_v1 = sp2C; - if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x1D5) != 0) { - func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - var_v1 = 1; - temp_t9 = arg0->unk_360 | 0x120; - arg0->unk_360 = temp_t9; - arg0->unk_360 = temp_t9 | 0x200; - } - return var_v1; -} - -s32 func_80B56094(EnAn* arg0, PlayState* arg1) { - s32 sp2C; - s32 var_v1; - u16 temp_t9; - - sp2C = 0; - var_v1 = sp2C; - if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x276) != 0) { - func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - var_v1 = 1; - temp_t9 = arg0->unk_360 | 0x120; - arg0->unk_360 = temp_t9; - arg0->unk_360 = temp_t9 | 0x200; - } - return var_v1; -} - -s32 func_80B5611C(EnAn* arg0, PlayState* arg1) { - s32 sp2C; - s32 var_v1; - u16 temp_t9; - - sp2C = 0; - var_v1 = sp2C; - if (func_80B55D98(arg0, arg1, (u8* )4, (u8) 0x243) != 0) { - func_80B53CE8(arg0, arg1, 0xF); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - var_v1 = 1; - temp_t9 = arg0->unk_360 | 0x120; - arg0->unk_360 = temp_t9; - arg0->unk_360 = temp_t9 | 0xA00; - } - return var_v1; -} - -s32 func_80B561A4(EnAn* arg0, PlayState* arg1, void* arg2) { - u16 sp56; - u8 sp55; - struct EnDoor* sp50; - Vec3s* sp4C; - Vec3f sp40; - Vec3f sp34; - s32 sp2C; - Path* temp_v0; - Vec3s* temp_v0_2; - s16 temp_v0_3; - s16 var_v1; - s32 temp_a2; - u8 temp_v0_4; - - sp56 = gSaveContext.save.time - 0x3FFC; - sp2C = 0; - sp55 = (u8) arg0->actor.params; - arg0->unk_1DC = NULL; - sp50 = func_80B53B3C(arg1, arg2->unk_0); - temp_a2 = *(&D_80B58618 + (arg2->unk_0 * 4)); - if (temp_a2 >= 0) { - arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp55, temp_a2); - } - if ((sp50 != NULL) && (sp50->unk_138 != 0)) { - temp_v0 = arg0->unk_1DC; - if (temp_v0 != NULL) { - temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); - sp4C = temp_v0_2; - Math_Vec3s_ToVec3f(&sp40, temp_v0_2); - Math_Vec3s_ToVec3f(&sp34, sp4C + 6); - Math_Vec3f_Copy(arg0 + 0x228, &sp40); - Math_Vec3f_Copy(arg0 + 0x234, &sp34); - arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); - Math_Vec3f_Copy(arg0 + 0x24, &sp40); - temp_v0_3 = arg0->actor.world.rot.y - sp50->unk_BE; - var_v1 = temp_v0_3; - if (temp_v0_3 < 0) { - var_v1 = -temp_v0_3; - } - if (var_v1 < 0x4001) { - arg0->unk_215 = -0x4B; - } else { - arg0->unk_215 = 0x4B; - } - arg0->unk_378 = arg2->unk_8 - arg2->unk_4; - arg0->unk_37A = sp56 - arg2->unk_4; - temp_v0_4 = arg2->unk_0; - switch (temp_v0_4) { /* switch 1 */ - case 0x1B: /* switch 1 */ - case 0x1C: /* switch 1 */ - case 0x20: /* switch 1 */ - case 0x21: /* switch 1 */ - case 0x22: /* switch 1 */ - case 0x23: /* switch 1 */ - case 0x25: /* switch 1 */ - case 0x26: /* switch 1 */ - arg0->unk_38A = 2; - arg0->unk_38C = 2; - arg0->unk_38E = 8; - break; - } - switch (arg2->unk_0) { /* switch 2 */ - case 0x1A: /* switch 2 */ - case 0x1B: /* switch 2 */ - case 0x1C: /* switch 2 */ - arg0->unk_360 |= 0x900; - func_80B53CE8(arg0, arg1, 0x10); - break; - case 0x24: /* switch 2 */ - case 0x27: /* switch 2 */ - arg0->unk_360 |= 0x2100; - func_80B53CE8(arg0, arg1, 0x16); - break; - default: /* switch 2 */ - arg0->unk_360 |= 0x100; - func_80B53CE8(arg0, arg1, 7); - break; - } - arg0->actor.flags &= ~1; - arg0->unk_360 |= 0x200; - arg0->actor.gravity = 0.0f; - sp2C = 1; - } - } - return sp2C; -} - -s32 func_80B56418(EnAn* arg0, PlayState* arg1, void* arg2) { - u16 sp2E; - u8 sp2B; - s32 sp20; - Path* var_v0; - s32 temp_a3; - s32 temp_lo; - s32 temp_v0_2; - s32 var_v1; - u16 temp_t0; - u16 temp_t3; - u16 temp_t7; - u16 temp_t8; - u16 temp_t9; - u16 var_v1_2; - u8 temp_v0; - u8 var_a1; - - sp2B = arg0->actor.params & 0xFF; - arg0->unk_1DC = NULL; - temp_t0 = (gSaveContext.save.time - 0x3FFC) & 0xFFFF; - var_v1 = 0; - temp_a3 = *(&D_80B58618 + (arg2->unk_0 * 4)); - if (temp_a3 >= 0) { - sp20 = 0; - sp2E = temp_t0; - var_v1 = 0; - arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp2B, temp_a3); - } - var_v0 = arg0->unk_1DC; - if ((var_v0 != NULL) && ((s32) var_v0->count < 3)) { - arg0->unk_1DC = NULL; - var_v0 = NULL; - } - if (var_v0 != NULL) { - temp_v0 = arg0->unk_200; - if (((s32) temp_v0 < 0x28) && (temp_v0 != 0) && (arg0->unk_384 >= 0)) { - var_v1_2 = temp_t0 & 0xFFFF; - } else { - var_v1_2 = arg2->unk_6; - } - temp_v0_2 = arg2->unk_8; - if (temp_v0_2 < (s32) var_v1_2) { - arg0->unk_1F0 = (var_v1_2 - temp_v0_2) + 0xFFFF; - } else { - arg0->unk_1F0 = temp_v0_2 - var_v1_2; - } - arg0->unk_1FC = temp_t0 - var_v1_2; - temp_lo = (s32) arg0->unk_1F0 / (s32) ((arg0->unk_1DC->count - 2) & 0xFFFF); - arg0->unk_1F4 = temp_lo; - temp_t7 = arg0->unk_360 & ~8; - arg0->unk_360 = temp_t7; - arg0->unk_1F8 = ((s32) arg0->unk_1FC / temp_lo) + 2; - arg0->unk_360 = temp_t7 & 0xFFFF & ~0x10; - var_a1 = arg2->unk_0; - switch (var_a1) { /* switch 1 */ - case 0x2C: /* switch 1 */ - case 0x2D: /* switch 1 */ - case 0x32: /* switch 1 */ - case 0x33: /* switch 1 */ - case 0x36: /* switch 1 */ - case 0x37: /* switch 1 */ - case 0x38: /* switch 1 */ - case 0x39: /* switch 1 */ - case 0x3A: /* switch 1 */ - case 0x3B: /* switch 1 */ - case 0x3C: /* switch 1 */ - case 0x3D: /* switch 1 */ - case 0x3E: /* switch 1 */ - case 0x3F: /* switch 1 */ - arg0->unk_38A = 2; - arg0->unk_38C = 2; - arg0->unk_38E = 8; - var_a1 = arg2->unk_0; - break; - } - switch (var_a1) { /* switch 2 */ - case 0x2A: /* switch 2 */ - case 0x2B: /* switch 2 */ - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - /* fallthrough */ - case 0x2C: /* switch 2 */ - case 0x2D: /* switch 2 */ - func_80B53CE8(arg0, arg1, 0x10); - temp_t8 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t8; - arg0->unk_360 = temp_t8 | 0x800; - break; - case 0x34: /* switch 2 */ - case 0x35: /* switch 2 */ - func_80B53CE8(arg0, arg1, 0x16); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - temp_t3 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t3; - arg0->unk_360 = temp_t3 | 0x2000; - break; - case 0x32: /* switch 2 */ - case 0x33: /* switch 2 */ - func_80B53CE8(arg0, arg1, 7); - arg0->unk_360 |= 0x300; - break; - case 0x36: /* switch 2 */ - case 0x37: /* switch 2 */ - case 0x38: /* switch 2 */ - case 0x39: /* switch 2 */ - case 0x3A: /* switch 2 */ - case 0x3B: /* switch 2 */ - case 0x3C: /* switch 2 */ - case 0x3D: /* switch 2 */ - case 0x3E: /* switch 2 */ - case 0x3F: /* switch 2 */ - func_80B53CE8(arg0, arg1, 0x12); - temp_t9 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t9; - arg0->unk_360 = temp_t9 | 0x1000; - break; - case 0x28: /* switch 2 */ - case 0x2F: /* switch 2 */ - case 0x30: /* switch 2 */ - case 0x31: /* switch 2 */ - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - arg0->unk_360 |= 0x300; - /* fallthrough */ - default: /* switch 2 */ - func_80B53CE8(arg0, arg1, 7); - break; - } - var_v1 = 1; - arg0->actor.gravity = -1.0f; - } - return var_v1; -} - -s32 func_80B56744(EnAn* arg0, PlayState* arg1, u8* arg2) { - u8 sp4F; - Vec3f sp40; - Vec3f sp34; - Vec3s* sp30; - s32 sp28; - Path* temp_v0; - Vec3s* temp_v0_2; - s32 temp_a3; - s32 var_v1; - u16 temp_t6; - - var_v1 = 0; - sp4F = (u8) arg0->actor.params; - arg0->unk_1DC = NULL; - temp_a3 = *(&D_80B58618 + (*arg2 * 4)); - if (temp_a3 >= 0) { - sp28 = 0; - var_v1 = sp28; - arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a3); - } - temp_v0 = arg0->unk_1DC; - if ((temp_v0 != NULL) && ((s32) temp_v0->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); - sp30 = temp_v0_2; - Math_Vec3s_ToVec3f(&sp40, temp_v0_2); - Math_Vec3s_ToVec3f(&sp34, sp30 + 6); - arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); - Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); - Math_Vec3f_Copy(arg0 + 0x24, &sp40); - Math_Vec3f_Copy(arg0 + 0x108, &sp40); - if (*arg2 == 0x16) { - func_80B53CE8(arg0, arg1, 0x17); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - temp_t6 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t6; - arg0->unk_360 = temp_t6 | 0x2000; - } - var_v1 = 1; - } - return var_v1; -} - -s32 func_80B56880(EnAn* arg0, PlayState* arg1, u8* arg2) { - u8 sp4F; - Vec3f sp40; - Vec3f sp34; - void* sp30; - s32 sp28; - Vec3s* sp24; - Path* temp_v0; - Vec3s* temp_a1; - s32 temp_a3; - s32 var_v1; - u16 temp_t0_2; - u16 temp_t3; - u8 temp_t0; - void* temp_v0_2; - - var_v1 = 0; - sp4F = (u8) arg0->actor.params; - arg0->unk_1DC = NULL; - temp_a3 = *(&D_80B58618 + (*arg2 * 4)); - if (temp_a3 >= 0) { - sp28 = 0; - var_v1 = sp28; - arg0->unk_1DC = SubS_GetAdditionalPath(arg1, sp4F, temp_a3); - } - temp_v0 = arg0->unk_1DC; - if ((temp_v0 != NULL) && ((s32) temp_v0->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(temp_v0->points); - sp30 = temp_v0_2; - Math_Vec3s_ToVec3f(&sp40, ((arg0->unk_1DC->count * 6) + temp_v0_2) - 6); - Math_Vec3s_ToVec3f(&sp34, ((arg0->unk_1DC->count * 6) + sp30) - 0xC); - arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); - temp_a1 = arg0 + 0x30; - sp24 = temp_a1; - Math_Vec3s_Copy(arg0 + 0xBC, temp_a1); - Math_Vec3s_Copy(arg0 + 0x14, temp_a1); - Math_Vec3f_Copy(arg0 + 0x24, &sp40); - Math_Vec3f_Copy(arg0 + 0x108, &sp40); - temp_t0 = *arg2; - switch (temp_t0) { - case 0x13: - arg0->actor.world.rot.y += 0x7FF8; - /* fallthrough */ - case 0x12: - case 0x17: - func_80B53CE8(arg0, arg1, 1); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - arg0->unk_37A = 0; - arg0->unk_360 |= 0x300; - if (*arg2 == 0x12) { - arg0->unk_374 = 70.0f; - } - break; - case 0x3: - temp_t0_2 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t0_2; - arg0->unk_360 = temp_t0_2 | 0x1000; - if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { - func_80B53CE8(arg0, arg1, 0x14); - arg0->actor.world.rot.y += 0x7FF8; - arg0->unk_360 |= 0x40; - arg0->unk_37A = 4; - arg0->actor.shape.rot.y = arg0->actor.world.rot.y; - } else { - func_80B53CE8(arg0, arg1, 0x12); - arg0->unk_37A = 0; - } - arg0->unk_38A = 2; - arg0->unk_38C = 2; - arg0->unk_38E = 8; - break; - case 0xE: - func_80B53CE8(arg0, arg1, 0xC); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - temp_t3 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t3; - arg0->unk_360 = temp_t3 | 0x8000; - break; - } - var_v1 = 1; - } - return var_v1; -} - -s32 func_80B56B00(EnAn* arg0, PlayState* arg1, u8* arg2) { - Vec3s* sp20; - Vec3s* temp_a2; - u16 temp_t0; - - Math_Vec3f_Copy(arg0 + 0x24, &D_80B58E7C); - temp_a2 = arg0 + 0xBC; - sp20 = temp_a2; - Math_Vec3s_Copy(temp_a2, &D_80B58E88); - Math_Vec3s_Copy(arg0 + 0x30, sp20); - if (*arg2 == 0xC) { - func_80B53CE8(arg0, arg1, 0xB); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - temp_t0 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t0; - arg0->unk_360 = temp_t0 | 0x40; - arg0->unk_38A = 5; - arg0->unk_38C = 5; - arg0->unk_38E = 8; - } - return 1; -} - -s32 func_80B56BC0(EnAn* arg0, PlayState* arg1, u8* arg2) { - Vec3s* sp24; - Vec3s* temp_a2; - u16 temp_t0; - u8 temp_v0; - - Math_Vec3f_Copy(arg0 + 0x24, &D_80B58E90); - temp_a2 = arg0 + 0xBC; - sp24 = temp_a2; - Math_Vec3s_Copy(temp_a2, &D_80B58E9C); - Math_Vec3s_Copy(arg0 + 0x30, sp24); - temp_v0 = *arg2; - switch (temp_v0) { /* irregular */ - case 0x1: - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - func_80B53CE8(arg0, arg1, 9); - break; - case 0x18: - func_80B53CE8(arg0, arg1, 0xB); - arg0->unk_38A = 5; - arg0->unk_38C = 5; - arg0->unk_38E = 8; - break; - } - temp_t0 = arg0->unk_360 | 0x300; - arg0->unk_360 = temp_t0; - arg0->unk_360 = temp_t0 | 0x40; - arg0->actor.gravity = 0.0f; - return 1; -} - -s32 func_80B56CAC(EnAn* arg0, PlayState* arg1, ? arg2) { - Vec3s* sp20; - Vec3s* temp_a2; - - temp_a2 = arg0 + 0xBC; - sp20 = temp_a2; - Math_Vec3s_Copy(temp_a2, &D_80B58EA4); - Math_Vec3s_Copy(arg0 + 0x30, sp20); - func_80B53CE8(arg0, arg1, 0); - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - arg0->unk_360 |= 0x300; - return 1; -} - -s32 func_80B56D28(EnAn* arg0, u8* arg2) { - s32 var_v1; - u8 temp_t0; - - arg0->actor.flags |= 1; - arg0->actor.targetMode = 6; - arg0->unk_360 = 0; - arg0->unk_38A = 0; - arg0->unk_38C = 0; - arg0->unk_38E = 8; - arg0->unk_374 = 40.0f; - temp_t0 = *arg2; - switch (temp_t0) { - case 0x10: - var_v1 = func_80B5600C(); - break; - case 0x11: - var_v1 = func_80B56094(); - break; - case 0x15: - var_v1 = func_80B5611C(); - break; - case 0xC: - var_v1 = func_80B56B00(); - break; - case 0x1: - case 0x18: - var_v1 = func_80B56BC0(); - break; - case 0x3: - case 0xE: - case 0x12: - case 0x13: - case 0x17: - var_v1 = func_80B56880(); - break; - case 0x16: - var_v1 = func_80B56744(); - break; - case 0x19: - var_v1 = func_80B56CAC(); - break; - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x21: - case 0x22: - case 0x23: - case 0x24: - case 0x25: - case 0x26: - case 0x27: - var_v1 = func_80B561A4(); - break; - case 0x28: - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2E: - case 0x2F: - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: - var_v1 = func_80B56418(); - break; - default: - var_v1 = 0; - break; - } - return var_v1; -} - -? func_80B56E44(EnAn* arg0, ? arg1) { - Vec3f sp2C; - Vec3f sp20; - Actor* temp_v0; - - temp_v0 = arg0->unk_218; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - Math_Vec3f_Copy(&sp2C, temp_v0 + 0x24); - Math_Vec3f_Copy(&sp20, arg0 + 0x24); - arg0->actor.world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); - } - return 1; -} - -? func_80B56EB4(Actor* arg0, PlayState* arg1) { - struct EnDoor* sp44; - f32 sp40; - f32 sp3C; - f32 sp38; - Vec3f* sp28; /* compiler-managed */ - SkelAnime* temp_a0_2; - Vec3f* temp_a0; - f32 temp_fv0; - s16 temp_v0; - s16 temp_v1; - s16 var_a0; - - sp44 = func_80B53B3C(arg1, arg0->unk_200); - if ((SubS_InCsMode(arg1) == 0) && (arg0->unk_384 != 0)) { - if ((sp44 != NULL) && (sp44->unk_138 != 0)) { - if (((f32) arg0->unk_37A / (f32) arg0->unk_378) <= 0.9f) { - sp44->unk_1A7 = (s8) arg0->unk_215; - } else { - sp44->unk_1A7 = 0; - } - } - temp_v0 = arg0->unk_37A; - if (temp_v0 < 0) { - arg0->unk_37A = 0; - } else { - temp_v1 = arg0->unk_378; - var_a0 = temp_v0; - if (temp_v1 < temp_v0) { - var_a0 = temp_v1; - } - arg0->unk_37A = var_a0; - } - temp_a0 = arg0 + 0x228; - sp28 = temp_a0; - temp_fv0 = Math_Vec3f_DistXZ(temp_a0, arg0 + 0x234); - sp38 = 0.0f; - sp3C = 0.0f; - sp40 = (f32) arg0->unk_37A * (temp_fv0 / (f32) arg0->unk_378); - Lib_Vec3f_TranslateAndRotateY(temp_a0, arg0->world.rot.y, (Vec3f* ) &sp38, arg0 + 0x24); - temp_a0_2 = arg0 + 0x144; - arg0->unk_37A = (s16) (arg0->unk_37A + arg0->unk_384); - sp28 = temp_a0_2; - if ((Animation_OnFrame(temp_a0_2, 3.0f) != 0) || (Animation_OnFrame(temp_a0_2, 15.0f) != 0)) { - Actor_PlaySfx(arg0, 0x2971U); - } - } - return 0; -} - -? func_80B5702C(Actor* arg0, PlayState* arg1) { - f32 sp7C; - Vec3f sp70; - Vec3f sp64; - Vec3f sp58; - s32 sp54; - s32 sp50; - f32* sp48; /* compiler-managed */ - s32* sp44; - s32* sp40; - Vec3f* sp3C; - SkelAnime* temp_a0; - Vec3f* var_v1; - f32* temp_a1; - s32* temp_a2; - s32* temp_v0; - - sp50 = 0; - sp54 = 0; - SubS_TimePathing_FillKnots(&sp7C, 3, arg0->unk_1DC->count + 3); - var_v1 = arg0 + 0x1E0; - if (!(arg0->unk_360 & 8)) { - temp_v0 = arg0 + 0x1F8; - sp58.x = gZeroVec3f.x; - temp_a1 = arg0 + 0x1EC; - sp58.y = gZeroVec3f.y; - temp_a2 = arg0 + 0x1FC; - sp58.z = gZeroVec3f.z; - sp44 = temp_a2; - sp48 = temp_a1; - sp40 = temp_v0; - SubS_TimePathing_Update(arg0->unk_1DC, temp_a1, temp_a2, arg0->unk_1F4, arg0->unk_1F0, temp_v0, &sp7C, &sp58, (s32) arg0->unk_384); - SubS_TimePathing_ComputeInitialY(arg1, arg0->unk_1DC, arg0->unk_1F8, &sp58); - var_v1 = arg0 + 0x1E0; - arg0->unk_360 = (u16) (arg0->unk_360 | 8); - arg0->world.pos.y = sp58.y; - } else { - sp58.x = var_v1->x; - sp58.y = var_v1->y; - sp58.z = var_v1->z; - sp40 = arg0 + 0x1F8; - sp44 = arg0 + 0x1FC; - sp48 = arg0 + 0x1EC; - } - arg0->world.pos.x = (bitwise f32) sp58; - arg0->world.pos.z = sp58.z; - sp3C = var_v1; - if (SubS_InCsMode(arg1) != 0) { - sp54 = arg0->unk_1FC; - sp50 = arg0->unk_1F8; - sp58.x = arg0->world.pos.x; - sp58.y = arg0->world.pos.y; - sp58.z = arg0->world.pos.z; - } - var_v1->x = gZeroVec3f.x; - var_v1->y = gZeroVec3f.y; - var_v1->z = gZeroVec3f.z; - sp3C = var_v1; - if (SubS_TimePathing_Update(arg0->unk_1DC, sp48, sp44, arg0->unk_1F4, arg0->unk_1F0, sp40, &sp7C, var_v1, (s32) arg0->unk_384) != 0) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x10); - } else { - sp70.x = arg0->world.pos.x; - sp70.y = arg0->world.pos.y; - sp70.z = arg0->world.pos.z; - sp64.x = sp3C->x; - sp64.y = sp3C->y; - sp64.z = sp3C->z; - arg0->world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); - } - if (SubS_InCsMode(arg1) != 0) { - arg0->unk_1FC = sp54; - arg0->unk_1F8 = sp50; - sp3C->x = sp58.x; - sp3C->y = sp58.y; - sp3C->z = sp58.z; - } else { - temp_a0 = arg0 + 0x144; - sp48 = temp_a0; - if ((Animation_OnFrame(temp_a0, 3.0f) != 0) || (Animation_OnFrame(temp_a0, 15.0f) != 0)) { - Actor_PlaySfx(arg0, 0x2971U); - } - } - return 0; -} - -? func_80B572D4(Actor* arg0, PlayState* arg1) { - u8 temp_t6; - - temp_t6 = arg0->unk_200; - switch (temp_t6) { - case 0x17: - if ((func_80B55F8C(arg1) != 0) && (func_80B55ECC(arg0) != 0)) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); - } else { - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); - } - break; - case 0x1: - if (func_80B55ECC(arg0) != 0) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); - } else { - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); - } - break; - case 0x12: - case 0x13: - if (func_80B55ECC(arg0) != 0) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); - } else { - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); - } - break; - case 0x16: - if ((Animation_OnFrame((SkelAnime* ) (arg0 + 0x144), 6.0f) != 0) && (arg0->unk_39C == 0x17)) { - Actor_PlaySfx(arg0, 0x2899U); - } - break; - } - return 0; -} - -? func_80B573F4(EnAn* arg0, PlayState* arg1) { - s16 temp_v0; - s16 temp_v0_2; - s16 var_v1; - - temp_v0 = arg0->unk_37A; - switch (temp_v0) { - case 0x0: - arg0->unk_37A = temp_v0 + 1; - arg0->actor.world.rot.y += 0x7FF8; - break; - case 0x1: - if ((s16) (((s16) arg0->actor.world.rot.y / 182) * 0xB6) == (s16) (((s16) arg0->actor.shape.rot.y / 182) * 0xB6)) { - Math_Vec3s_Copy(arg0 + 0xBC, arg0 + 0x30); - func_80B53CE8(arg0, arg1, 0x13); - arg0->unk_360 |= 0x40; - arg0->unk_37A += 1; - } - break; - case 0x2: - if (Animation_OnFrame(&arg0->unk_144, arg0->unk_144.endFrame) != 0) { - arg0->unk_37A += 1; - } - break; - case 0x3: - temp_v0_2 = arg0->actor.yawTowardsPlayer - arg0->actor.shape.rot.y; - var_v1 = temp_v0_2; - if (temp_v0_2 < 0) { - var_v1 = -temp_v0_2; - } - if (var_v1 < 0x3000) { - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - } else { - SubS_SetOfferMode(&arg0->unk_360, 0U, 7U); - } - break; - case 0x4: - SubS_SetOfferMode(&arg0->unk_360, 3U, 7U); - arg0->unk_37A += 1; - break; - } - return 0; -} - -? func_80B575BC(Actor* arg0, ? arg1) { - s16 temp_v1; - s32 var_v0; - - temp_v1 = arg0->yawTowardsPlayer - arg0->shape.rot.y; - var_v0 = temp_v1 << 0x10; - if (temp_v1 < 0) { - var_v0 = temp_v1 * -0x10000; - } - if ((var_v0 >> 0x10) < 0x4000) { - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - } else { - SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); - } - if (func_80B55ECC(arg0) != 0) { - arg0->unk_360 = (u16) (arg0->unk_360 | 0x20); - } else { - arg0->unk_360 = (u16) (arg0->unk_360 & 0xFFDF); - } - return 1; -} - -? func_80B57674(EnAn* arg0, ? arg1) { - s16 temp_v1; - s32 var_v0; - - temp_v1 = arg0->actor.yawTowardsPlayer - (s16) (arg0->actor.shape.rot.y + 0x3000); - var_v0 = temp_v1 << 0x10; - if (temp_v1 < 0) { - var_v0 = temp_v1 * -0x10000; - } - if ((var_v0 >> 0x10) < 0x3000) { - SubS_SetOfferMode(arg0 + 0x360, 3U, 7U); - } else { - SubS_SetOfferMode(arg0 + 0x360, 0U, 7U); - } - arg0->unk_360 &= 0xFFDF; - return 1; -} - -void func_80B57718(EnAn* arg0) { - u8 temp_t7; - - temp_t7 = arg0->unk_200; - switch (temp_t7) { - case 0x10: - case 0x11: - case 0x15: - func_80B56E44(arg0); - break; - case 0x3: - func_80B573F4(arg0); - break; - case 0x1: - func_80B575BC(&arg0->actor); - break; - case 0x19: - func_80B57674(arg0); - break; - case 0xC: - case 0xE: - case 0x12: - case 0x13: - case 0x16: - case 0x18: - func_80B572D4(&arg0->actor); - break; - case 0x17: - func_80B572D4(&arg0->actor); - break; - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x21: - case 0x22: - case 0x23: - case 0x24: - case 0x25: - case 0x26: - case 0x27: - func_80B56EB4(&arg0->actor); - break; - case 0x28: - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2E: - case 0x2F: - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: - func_80B5702C(&arg0->actor); - break; - } - Math_ApproachS(&arg0->actor.shape.rot.y, arg0->actor.world.rot.y, 3, 0x2AA8); -} - -void func_80B577F0(EnAn* this, PlayState* play) { - ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, &this->unk_144, &D_06012618, NULL, this->unk_264, this->unk_2E2, 0x15); - this->unk_39C = -1; - func_80B53CE8(this, play, 1); - Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); - CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); - if (this->actor.params & 0x8000) { - this->unk_3C0 = 1; - } - this->actor.draw = EnAn_Draw; - Actor_SetScale(&this->actor, 0.01f); - this->unk_360 = 0; - this->unk_200 = 0; - this->actionFunc = func_80B578F8; - func_80B578F8(this, play); -} - -void func_80B578F8(EnAn* this, PlayState* play) { - u8 sp20; - - this->unk_384 = gSaveContext.save.timeSpeedOffset + gRegEditor->data[0xF]; - if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && (gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40)) { - Actor_Kill(&this->actor); - return; - } - if (this->unk_3C0 != 0) { - sp20 = 0x19; - if (this->unk_200 != 0x19) { - func_80B56D28(this, (u8* ) play, &sp20); - } - } else if ((Schedule_RunScript(play, &sScheduleScript, (ScheduleOutput* ) &sp20) == 0) || ((sp20 != this->unk_200) && (func_80B56D28(this, (u8* ) play, &sp20) == 0))) { - this->actor.shape.shadowDraw = NULL; - this->actor.flags &= ~1; - sp20 = 0; - } else { - this->actor.shape.shadowDraw = ActorShadow_DrawCircle; - this->actor.flags |= 1; - } - this->unk_200 = sp20; - this->unk_218 = func_80B55D20(this, play); - func_80B57718(this, play); -} - -void func_80B57A44(EnAn* this, PlayState* play) { - Vec3f sp38; - Vec3f sp2C; - Actor* temp_v0_2; - u16 temp_t9; - u8 temp_v0; - - if (func_8010BF58(&this->actor, play, this->unk_204, this->unk_398, &this->unk_210) != 0) { - SubS_SetOfferMode(&this->unk_360, 3U, 7U); - temp_t9 = this->unk_360 & 0xFFDF; - this->unk_360 = temp_t9; - this->unk_360 = temp_t9 | 0x200; - this->unk_388 = 0x14; - this->unk_210 = 0; - this->actionFunc = func_80B578F8; - return; - } - temp_v0 = this->unk_200; - if ((temp_v0 != 1) && (temp_v0 != 3) && (temp_v0 != 0xC) && (temp_v0 != 0xE) && (temp_v0 != 0x19)) { - temp_v0_2 = this->unk_218; - if ((temp_v0_2 != NULL) && (temp_v0_2->update != NULL)) { - Math_Vec3f_Copy(&sp38, &temp_v0_2->world.pos); - Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); - Math_ApproachS(&this->actor.shape.rot.y, Math_Vec3f_Yaw(&sp2C, &sp38), 4, 0x2AA8); - } - } -} - -void func_80B57B48(EnAn* this, PlayState* play) { - ? sp30; - s32 sp28; - s32 temp_v0; - s32 temp_v0_2; - u16 temp_v1; - u8 var_v0; - - M2C_MEMCPY_ALIGNED(&sp30, &D_80B58EAC, 0x28); - if (Cutscene_IsCueInChannel(play, 0x22DU) != 0) { - temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); - sp28 = temp_v0; - temp_v1 = play->csCtx.actorCues[temp_v0]->id; - var_v0 = temp_v1 & 0xFF; - if ((temp_v1 & 0xFF) != (u8) this->unk_364) { - this->unk_364 = (s8) temp_v1; - if (var_v0 == 3) { - gSaveContext.save.saveInfo.weekEventReg[0x57] |= 2; - var_v0 = (u8) this->unk_364; - this->unk_3B4 = 1; - } - if (var_v0 == 9) { - this->unk_3B4 = 0; - } - func_80B53CE8(this, play, (sp + (temp_v1 * 4))->unk_30); - } - temp_v0_2 = this->unk_39C; - if (((temp_v0_2 == 0x1A) || (temp_v0_2 == 0x1C) || (temp_v0_2 == 0x1E) || (temp_v0_2 == 0x22)) && (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0)) { - func_80B53CE8(this, play, this->unk_39C + 1); - } - Cutscene_ActorTranslateAndYaw(&this->actor, play, sp28); - } -} - -void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { - if (limbIndex == 9) { - Matrix_MultVec3f(&D_80B58ED4, &thisx->focus.pos); - Math_Vec3s_Copy(&thisx->focus.rot, &thisx->world.rot); - func_80B54124((EnAn* ) thisx, play, 1U); - return; - } - if (limbIndex == 8) { - func_80B54124((EnAn* ) thisx, play, 0U); - func_80B54124((EnAn* ) thisx, play, 4U); - func_80B54124((EnAn* ) thisx, play, 2U); - func_80B54124((EnAn* ) thisx, play, 3U); - return; - } - if (limbIndex == 5) { - func_80B54124((EnAn* ) thisx, play, 5U); - } -} - -void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { - s32 var_v0; - s32 var_v1; - u16 temp_v0; - - temp_v0 = thisx->unk_360; - var_v1 = 0; - if (!(temp_v0 & 0x200)) { - var_v1 = 0; - if (temp_v0 & 0x80) { - var_v1 = 1; - var_v0 = 1; - } else { - var_v0 = 1; - } - } else { - var_v0 = 0; - } - if (limbIndex == 9) { - SubS_UpdateLimb((s16) (thisx->unk_37C + 0x4000), (s16) (thisx->unk_37E + thisx->shape.rot.y + 0x4000), thisx + 0x240, thisx + 0x258, var_v0, var_v1); - Matrix_Pop(); - Matrix_Translate(thisx->unk_240, thisx->unk_244, thisx->unk_248, MTXMODE_NEW); - Matrix_Scale(thisx->scale.x, thisx->scale.y, thisx->scale.z, MTXMODE_APPLY); - Matrix_RotateYS(thisx->unk_25A, MTXMODE_APPLY); - Matrix_RotateXS(thisx->unk_258, MTXMODE_APPLY); - Matrix_RotateZS(thisx->unk_25C, MTXMODE_APPLY); - Matrix_Push(); - } -} - -void EnAn_Draw(Actor* thisx, PlayState* play) { - GraphicsContext* sp40; - Gfx* sp38; - Gfx* sp34; - Gfx* temp_v0; - Gfx* temp_v0_2; - GraphicsContext* temp_a0; - EnAn* this = (EnAn* ) thisx; - - if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { - temp_a0 = play->state.gfxCtx; - sp40 = temp_a0; - Gfx_SetupDL25_Opa(temp_a0); - temp_v0 = sp40->polyOpa.p; - sp40->polyOpa.p = temp_v0 + 8; - temp_v0->words.w0 = 0xDB060020; - sp38 = temp_v0; - sp38->words.w1 = Lib_SegmentedToVirtual(D_80B58EEC[this->unk_390]); - temp_v0_2 = sp40->polyOpa.p; - sp40->polyOpa.p = temp_v0_2 + 8; - temp_v0_2->words.w0 = 0xDB060024; - sp34 = temp_v0_2; - sp34->words.w1 = Lib_SegmentedToVirtual(D_80B58EE0[this->unk_392]); - SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, (s32) this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); - } -} -/* Warning: struct EnTorch2 is not defined (only forward-declared) */ -/* Warning: struct EnDoor is not defined (only forward-declared) */ 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 6d8c25b1b..75fd73e91 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -7,6 +7,12 @@ #include "z_en_an.h" #include "overlays/actors/ovl_En_Door/z_en_door.h" +#include "assets/objects/object_an2/object_an2.h" +#include "assets/objects/object_an3/object_an3.h" +#include "assets/objects/object_an4/object_an4.h" +#include "assets/objects/object_mask_kerfay/object_mask_kerfay.h" +#include "assets/objects/object_msmo/object_msmo.h" + #define FLAGS (ACTOR_FLAG_TARGETABLE | ACTOR_FLAG_FRIENDLY | ACTOR_FLAG_10 | ACTOR_FLAG_20) #define THIS ((EnAn*)thisx) @@ -602,72 +608,15 @@ static ColliderCylinderInit D_80B58BBC = { // sColChkInfoInit static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; - -AnimationInfoS D_80B58BF4[0x24] = { - { (AnimationHeader* )0x06013E1C, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06008B6C, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06008B6C, 1.0f, 0, -1, 0, -6 }, - { (AnimationHeader* )0x0600544C, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x0600544C, 1.0f, 0, -1, 2, -6 }, - { (AnimationHeader* )0x060026B4, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06001E74, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06013048, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06013048, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060071E8, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060071E8, 1.0f, 0, -1, 0, -6 }, - { (AnimationHeader* )0x06007E08, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060065C8, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06001090, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x0600144C, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x0600341C, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06003EA8, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060028DC, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060042CC, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060038A0, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06001B80, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x0600201C, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06002A4C, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060012C0, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060038A0, -1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06006CC0, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x06007E3C, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x060088C0, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060013C8, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06002550, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x0600353C, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06004498, 1.0f, 0, -1, 0, 0 }, - { (AnimationHeader* )0x060060B4, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x0600041C, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x06004A78, 1.0f, 0, -1, 2, 0 }, - { (AnimationHeader* )0x0600506C, 1.0f, 0, -1, 0, 0 }, -}; -Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; -s16 D_80B58E40[0xA] = { 0, 2, 0, 1, 2, 0, 1, 2, 1, 1 }; -Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; -Vec3s D_80B58E60 = { 0, 0, 0x4168 }; -Vec3f D_80B58E68 = { 450.0f, 700.0f, -760.0f }; -Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; -Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; -Vec3s D_80B58E88 = { 0, 0, 0 }; -Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; -Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; -Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; - -extern ColliderCylinderInit D_80B58BBC; -extern CollisionCheckInfoInit2 D_80B58BE8; - -extern Gfx D_060111E8[]; -extern FlexSkeletonHeader D_06012618; - s32 func_80B53840(EnAn* this, PlayState* play) { s32 ret = 0; if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { - this->unk_20C = SubS_GetObjectIndex(OBJECT_MSMO, play); - this->unk_20B = SubS_GetObjectIndex(OBJECT_AN4, play); - this->unk_20A = SubS_GetObjectIndex(OBJECT_MASK_KERFAY, play); - this->unk_209 = SubS_GetObjectIndex(OBJECT_AN3, play); - this->unk_208 = SubS_GetObjectIndex(OBJECT_AN2, play); + this->msmoObjIndex = SubS_GetObjectIndex(OBJECT_MSMO, play); + this->an4ObjIndex = SubS_GetObjectIndex(OBJECT_AN4, play); + this->maskKerfayObjIndex = SubS_GetObjectIndex(OBJECT_MASK_KERFAY, play); + this->an3ObjIndex = SubS_GetObjectIndex(OBJECT_AN3, play); + this->an2ObjIndex = SubS_GetObjectIndex(OBJECT_AN2, play); this->actor.draw = NULL; this->unk_214 = play->roomCtx.curRoom.num; this->unk_3B8 = 1; @@ -677,7 +626,7 @@ s32 func_80B53840(EnAn* this, PlayState* play) { return 0; } - if (((this->unk_208 >= 0) && (SubS_IsObjectLoaded(this->unk_208, play) == 0)) || ((this->unk_209 >= 0) && (SubS_IsObjectLoaded(this->unk_209, play) == 0)) || ((this->unk_20A >= 0) && (SubS_IsObjectLoaded(this->unk_20A, play) == 0)) || ((this->unk_20B >= 0) && (SubS_IsObjectLoaded(this->unk_20B, play) == 0)) || ((this->unk_20C >= 0) && (SubS_IsObjectLoaded(this->unk_20C, play) == 0))) { + if (((this->an2ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an2ObjIndex, play) == 0)) || ((this->an3ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an3ObjIndex, play) == 0)) || ((this->maskKerfayObjIndex >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjIndex, play) == 0)) || ((this->an4ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an4ObjIndex, play) == 0)) || ((this->msmoObjIndex >= 0) && (SubS_IsObjectLoaded(this->msmoObjIndex, play) == 0))) { ret = 1; } else { this->actor.draw = EnAn_Draw; @@ -782,13 +731,13 @@ s32 func_80B53BA8(EnAn* this, PlayState* play) { s8 var_v1 = -1; s32 ret = 0; - if ((this->unk_39C >= 0x19) && (this->unk_20B >= 0)) { - var_v1 = this->unk_20B; - } else if ((this->unk_39C >= 0x15) && (this->unk_209 >= 0)) { - var_v1 = this->unk_209; - } else if ((this->unk_39C >= 0x11) && (this->unk_208 >= 0)) { - var_v1 = this->unk_208; - } else if (this->unk_39C < 0x11) { + if ((this->animIndex >= 0x19) && (this->an4ObjIndex >= 0)) { + var_v1 = this->an4ObjIndex; + } else if ((this->animIndex >= 0x15) && (this->an3ObjIndex >= 0)) { + var_v1 = this->an3ObjIndex; + } else if ((this->animIndex >= 0x11) && (this->an2ObjIndex >= 0)) { + var_v1 = this->an2ObjIndex; + } else if (this->animIndex < 0x11) { var_v1 = temp_a3; } @@ -798,27 +747,71 @@ s32 func_80B53BA8(EnAn* this, PlayState* play) { if (var_v1 >= 0) { gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); - this->unk_144.playSpeed = this->unk_368; - ret = SkelAnime_Update(&this->unk_144); + this->skelAnime.playSpeed = this->unk_368; + ret = SkelAnime_Update(&this->skelAnime); gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_a3].segment); } return ret; } -s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { +// sAnimationInfo +AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { + { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 + { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_1 + { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 + { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 + { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_4 + { &object_an1_Anim_0026B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_5 + { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 + { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 + { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 + { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_9 + { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_10 + { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 + { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 + { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 + { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 + { &object_an1_Anim_00341C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_15 + { &object_an1_Anim_003EA8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_16 + + { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 + { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 + { &object_an2_Anim_0038A0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_19 + { &object_an2_Anim_001B80, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_20 + + { &object_an3_Anim_00201C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_21 + { &object_an3_Anim_002A4C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_22 + { &object_an3_Anim_0012C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_23 + //! @bug Uses symbol from OBJECT_AN2 instead of OBJECT_AN3 + { &object_an2_Anim_0038A0, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 + + { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25 + { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26 + { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27 + { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_28 + { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_29 + { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_30 + { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_31 + { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_32 + { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_33 + { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_34 + { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35 +}; + +s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { s8 temp_t1 = this->actor.objBankIndex; s8 var_v1 = -1; s32 var_t0 = 0; s32 var_t2 = 0; - if ((arg2 >= 0x19) && (this->unk_20B >= 0)) { - var_v1 = this->unk_20B; - } else if ((arg2 >= 0x15) && (this->unk_209 >= 0)) { - var_v1 = this->unk_209; - } else if ((arg2 >= 0x11) && (this->unk_208 >= 0)) { - var_v1 = this->unk_208; - } else if (arg2 < 0x11) { + if ((animIndex >= 25) && (this->an4ObjIndex >= 0)) { + var_v1 = this->an4ObjIndex; + } else if ((animIndex >= 21) && (this->an3ObjIndex >= 0)) { + var_v1 = this->an3ObjIndex; + } else if ((animIndex >= 17) && (this->an2ObjIndex >= 0)) { + var_v1 = this->an2ObjIndex; + } else if (animIndex < 17) { var_v1 = temp_t1; } @@ -826,30 +819,30 @@ s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { return 0; } - switch (arg2) { - case 0x1: - case 0x2: - if ((this->unk_39C != 1) && (this->unk_39C != 2)) { + switch (animIndex) { + case ENAN_ANIM_1: + case ENAN_ANIM_2: + if ((this->animIndex != ENAN_ANIM_1) && (this->animIndex != ENAN_ANIM_2)) { var_t0 = 1; } break; - case 0x7: - case 0x8: - if ((this->unk_39C != 7) && (this->unk_39C != 8)) { + case ENAN_ANIM_7: + case ENAN_ANIM_8: + if ((this->animIndex != ENAN_ANIM_7) && (this->animIndex != ENAN_ANIM_8)) { var_t0 = 1; } break; - case 0x9: - case 0xA: - if ((this->unk_39C != 9) && (this->unk_39C != 0xA)) { + case ENAN_ANIM_9: + case ENAN_ANIM_10: + if ((this->animIndex != ENAN_ANIM_9) && (this->animIndex != ENAN_ANIM_10)) { var_t0 = 1; } break; default: - if (arg2 != this->unk_39C) { + if (animIndex != this->animIndex) { var_t0 = 1; } break; @@ -857,16 +850,16 @@ s32 func_80B53CE8(EnAn* this, PlayState* play, s32 arg2) { if ((var_t0 != 0) && (var_v1 >= 0)) { gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); - this->unk_39C = arg2; - var_t2 = SubS_ChangeAnimationByInfoS(&this->unk_144, D_80B58BF4, arg2); - this->unk_368 = this->unk_144.playSpeed; + this->animIndex = animIndex; + var_t2 = SubS_ChangeAnimationByInfoS(&this->skelAnime, D_80B58BF4, animIndex); + this->unk_368 = this->skelAnime.playSpeed; gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_t1].segment); } return var_t2; } -extern Vec3f D_80B58E34; +Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; void func_80B53ED4(EnAn* this, PlayState* play) { f32 temp; @@ -886,7 +879,7 @@ void func_80B53ED4(EnAn* this, PlayState* play) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); } -extern s16 D_80B58E40[]; +s16 D_80B58E40[0xA] = { 0, 2, 0, 1, 2, 0, 1, 2, 1, 1 }; void func_80B53F84(EnAn* this) { s32 var_a1 = 0; @@ -898,67 +891,58 @@ void func_80B53F84(EnAn* this) { case 0x2: case 0x4: case 0x6: - if ((this->unk_390 == 5) || (this->unk_390 == 2)) { + if ((this->eyeTexIndex == 5) || (this->eyeTexIndex == 2)) { var_a1 = 1; - this->unk_390 = 5; + this->eyeTexIndex = 5; } break; case 0x5: case 0x7: - if ((this->unk_390 == 6) || (this->unk_390 == 1)) { + if ((this->eyeTexIndex == 6) || (this->eyeTexIndex == 1)) { var_a1 = 1; - this->unk_390 = 6; + this->eyeTexIndex = 6; } break; case 0x8: - if ((this->unk_390 == 4) || (this->unk_390 == 2)) { + if ((this->eyeTexIndex == 4) || (this->eyeTexIndex == 2)) { var_a1 = 1; - this->unk_390 = 4; + this->eyeTexIndex = 4; } break; } if (var_a1 == 0) { - if ((this->unk_390 == 4) || (this->unk_390 == 5)) { - this->unk_390 = 0; - } else if (this->unk_390 == 6) { - this->unk_390 = 1; + if ((this->eyeTexIndex == 4) || (this->eyeTexIndex == 5)) { + this->eyeTexIndex = 0; + } else if (this->eyeTexIndex == 6) { + this->eyeTexIndex = 1; } } if (var_a1 == 0) { - this->unk_390++; + this->eyeTexIndex++; - if (this->unk_390 >= 4) { + if (this->eyeTexIndex >= 4) { if ((this->unk_38C == 0) || (this->unk_38C == 1) || (this->unk_38C == 3)) { this->unk_38E = Rand_S16Offset(0x1E, 0x1E); } else { this->unk_38E = 8; } - this->unk_390 = 0; + this->eyeTexIndex = 0; } } } } - this->unk_392 = D_80B58E40[this->unk_38C]; + this->mouthTexIndex = D_80B58E40[this->unk_38C]; } -extern Vec3f D_80B58E54; -extern Vec3s D_80B58E60; - -extern Gfx D_0A000D40[]; - -extern Gfx D_06000378[]; -extern Gfx D_06000308[]; -extern Gfx D_06012478[]; -extern Gfx D_06000E70[]; - -extern Vec3f D_80B58E68; -extern Vec3s D_80B58E74; - +Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; +Vec3s D_80B58E60 = { 0, 0, 0x4168 }; +Vec3f D_80B58E68 = { 450.0f, 700.0f, -760.0f }; +Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { s32 pad; @@ -978,56 +962,57 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, 0x10, 0x10)); - gSPDisplayList(POLY_XLU_DISP++, D_060111E8); + gSPDisplayList(POLY_XLU_DISP++, object_an1_DL_0111E8); Gfx_SetupDL25_Opa(play->state.gfxCtx); } break; case 0x1: - temp_a2 = this->unk_20A; + temp_a2 = this->maskKerfayObjIndex; if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.status[temp_a2].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, D_0A000D40); + gSPDisplayList(POLY_OPA_DISP++, object_mask_kerfay_DL_000D40); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); } break; + case 0x2: - temp_a2 = this->unk_208; + temp_a2 = this->an2ObjIndex; if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); - gSPDisplayList(POLY_OPA_DISP++, D_06000378); + gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); } break; case 0x3: - temp_a2 = this->unk_209; + temp_a2 = this->an3ObjIndex; if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); - gSPDisplayList(POLY_OPA_DISP++, D_06000308); + gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); } break; case 0x4: if ((this->unk_360 & 0x8000) && (this->unk_3B0 == 0)) { - gSPDisplayList(POLY_OPA_DISP++, D_06012478); + gSPDisplayList(POLY_OPA_DISP++, object_an1_DL_012478); } break; case 0x5: - temp_a2 = this->unk_20C; + temp_a2 = this->msmoObjIndex; if ((this->unk_3B4 != 0) && (temp_a2 >= 0)) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); - gSPDisplayList(POLY_OPA_DISP++, D_06000E70); + gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); } break; @@ -1232,20 +1217,20 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) { switch (this->unk_394) { case 0x0: - func_80B53CE8(this, play, 0xD); + EnAn_ChangeAnim(this, play, ENAN_ANIM_13); this->unk_394++; break; case 0x1: case 0x3: - if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_394++; sp20 = true; } break; case 0x2: - func_80B53CE8(this, play, 0xE); + EnAn_ChangeAnim(this, play, ENAN_ANIM_14); this->unk_394++; break; } @@ -1273,7 +1258,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { label: this->unk_360 &= ~(0x20|0x4000); this->unk_360 |= 0x200; - func_80B53CE8(this, play, 0x14); + EnAn_ChangeAnim(this, play, ENAN_ANIM_20); ret = true; this->unk_394++; break; @@ -1570,42 +1555,42 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case 0x12: case 0x13: case 0x17: - func_80B53CE8(this, play, 1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); break; case 0x16: - func_80B53CE8(this, play, 0x17); + EnAn_ChangeAnim(this, play, ENAN_ANIM_23); this->unk_360 |= 0x2000; break; case 0xE: - func_80B53CE8(this, play, 0xC); + EnAn_ChangeAnim(this, play, ENAN_ANIM_12); break; case 0x15: - func_80B53CE8(this, play, 0xF); + EnAn_ChangeAnim(this, play, ENAN_ANIM_15); break; case 0x2F: case 0x31: - func_80B53CE8(this, play, 7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; case 0x34: case 0x35: - func_80B53CE8(this, play, 0x16); + EnAn_ChangeAnim(this, play, ENAN_ANIM_22); this->unk_360 |= 0x2000; break; default: - if (this->unk_39C == 0xF) { - func_80B53CE8(this, play, 0x10); + if (this->animIndex == ENAN_ANIM_15) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_16); } - if (this->unk_39C == 0x11) { - func_80B53CE8(this, play, 0x12); + if (this->animIndex == ENAN_ANIM_17) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_18); } - if ((this->unk_39C == 1) || (this->unk_39C == 2)) { - func_80B53CE8(this, play, 8); + if ((this->animIndex == ENAN_ANIM_1) || (this->animIndex == ENAN_ANIM_2)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_8); } break; } @@ -1615,12 +1600,12 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { void func_80B556F8(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { - func_80B53CE8(this, play, 6); + EnAn_ChangeAnim(this, play, ENAN_ANIM_6); this->unk_360 &= 0xFFDF; this->unk_360 |= 0x200; this->unk_396++; - } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { - func_80B53CE8(this, play, 2); + } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->unk_360 &= 0xFDFF; this->unk_360 |= 0x20; this->unk_396++; @@ -1629,12 +1614,12 @@ void func_80B556F8(EnAn* this, PlayState* play) { void func_80B557AC(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { - func_80B53CE8(this, play, 3); + EnAn_ChangeAnim(this, play, ENAN_ANIM_3); this->unk_360 &= 0xFFDF; this->unk_360 |= 0x200; this->unk_396++; - } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { - func_80B53CE8(this, play, 2); + } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->unk_360 &= 0xFDFF; this->unk_360 |= 0x20; this->unk_396++; @@ -1643,12 +1628,12 @@ void func_80B557AC(EnAn* this, PlayState* play) { void func_80B55860(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { - func_80B53CE8(this, play, 4); + EnAn_ChangeAnim(this, play, ENAN_ANIM_4); this->unk_360 |= 0x200; this->unk_360 &= 0xFFDF; this->unk_396++; - } else if ((this->unk_396 == 1) && (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0)) { - func_80B53CE8(this, play, 2); + } else if ((this->unk_396 == 1) && (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) != 0)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->unk_360 &= 0xFDFF; this->unk_360 |= 0x20; this->unk_396++; @@ -1666,35 +1651,35 @@ s32 func_80B55914(EnAn* this, PlayState* play) { if (this->unk_362 != sp22) { switch (sp22) { /* switch 3; irregular */ case 0x28E5: /* switch 3 */ - func_80B53CE8(this, play, 5); + EnAn_ChangeAnim(this, play, ENAN_ANIM_5); this->unk_360 &= 0xDFFF; break; case 0x28BA: /* switch 3 */ case 0x28D1: /* switch 3 */ - func_80B53CE8(this, play, 5); + EnAn_ChangeAnim(this, play, ENAN_ANIM_5); break; case 0x28AF: /* switch 3 */ case 0x28C1: /* switch 3 */ - func_80B53CE8(this, play, 1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); break; case 0x28BC: /* switch 3 */ - func_80B53CE8(this, play, 2); + EnAn_ChangeAnim(this, play, ENAN_ANIM_2); break; case 0x28C6: /* switch 3 */ - func_80B53CE8(this, play, 0xF); + EnAn_ChangeAnim(this, play, ENAN_ANIM_15); break; case 0x28F5: /* switch 3 */ - func_80B53CE8(this, play, 0xA); + EnAn_ChangeAnim(this, play, ENAN_ANIM_10); break; case 0x28F7: /* switch 3 */ case 0x28F8: /* switch 3 */ - func_80B53CE8(this, play, 0x15); + EnAn_ChangeAnim(this, play, ENAN_ANIM_21); break; case 0x28EB: /* switch 3 */ - if (this->unk_39C != 0x14) { + if (this->animIndex != ENAN_ANIM_20) { this->unk_360 &= 0xBFDF; this->unk_360 |= 0x200; - func_80B53CE8(this, play, 0x14); + EnAn_ChangeAnim(this, play, ENAN_ANIM_20); } break; case 0x28A4: /* switch 3 */ @@ -1787,18 +1772,18 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28F3: /* switch 3 */ case 0x28F4: /* switch 3 */ case 0x28F6: /* switch 3 */ - default: // idk - if (this->unk_39C == 0x10) { - func_80B53CE8(this, play, 0xF); + default: + if (this->animIndex == ENAN_ANIM_16) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_15); } - if (this->unk_39C == 0x12) { - func_80B53CE8(this, play, 0x11); + if (this->animIndex == ENAN_ANIM_18) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_17); } - if ((this->unk_39C == 0x16) || (this->unk_39C == 0x17)) { - func_80B53CE8(this, play, 0x15); + if ((this->animIndex == ENAN_ANIM_22) || (this->animIndex == ENAN_ANIM_23)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_21); } - if ((this->unk_39C == 7) || (this->unk_39C == 8)) { - func_80B53CE8(this, play, 2); + if ((this->animIndex == ENAN_ANIM_7) || (this->animIndex == ENAN_ANIM_8)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_2); } break; } @@ -1991,7 +1976,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM) != 0) { - func_80B53CE8(this, play, 1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->unk_360, 3U, 7U); ret = true; @@ -2006,7 +1991,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG) != 0) { - func_80B53CE8(this, play, 1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->unk_360, 3U, 7U); ret = true; @@ -2021,7 +2006,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, 4, 0x243) != 0) { - func_80B53CE8(this, play, 0xF); + EnAn_ChangeAnim(this, play, ENAN_ANIM_15); SubS_SetOfferMode(&this->unk_360, 3U, 7U); ret = true; @@ -2091,16 +2076,16 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x1B: /* switch 2 */ case 0x1C: /* switch 2 */ this->unk_360 |= 0x900; - func_80B53CE8(this, play, 0x10); + EnAn_ChangeAnim(this, play, ENAN_ANIM_16); break; case 0x24: /* switch 2 */ case 0x27: /* switch 2 */ this->unk_360 |= 0x2100; - func_80B53CE8(this, play, 0x16); + EnAn_ChangeAnim(this, play, ENAN_ANIM_22); break; default: /* switch 2 */ this->unk_360 |= 0x100; - func_80B53CE8(this, play, 7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; } @@ -2182,14 +2167,14 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { /* fallthrough */ case 0x2C: /* switch 2 */ case 0x2D: /* switch 2 */ - func_80B53CE8(this, play, 0x10); + EnAn_ChangeAnim(this, play, ENAN_ANIM_16); this->unk_360 |= 0x300; this->unk_360 |= 0x800; break; case 0x34: /* switch 2 */ case 0x35: /* switch 2 */ - func_80B53CE8(this, play, 0x16); + EnAn_ChangeAnim(this, play, ENAN_ANIM_22); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; @@ -2198,7 +2183,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x32: /* switch 2 */ case 0x33: /* switch 2 */ - func_80B53CE8(this, play, 7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_7); this->unk_360 |= 0x300; break; @@ -2212,7 +2197,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x3D: /* switch 2 */ case 0x3E: /* switch 2 */ case 0x3F: /* switch 2 */ - func_80B53CE8(this, play, 0x12); + EnAn_ChangeAnim(this, play, ENAN_ANIM_18); this->unk_360 |= 0x300; this->unk_360 |= 0x1000; break; @@ -2225,7 +2210,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 |= 0x300; /* fallthrough */ default: /* switch 2 */ - func_80B53CE8(this, play, 7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; } @@ -2261,7 +2246,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.world.pos, &sp40); Math_Vec3f_Copy(&this->actor.prevPos, &sp40); if (scheduleOutput->result == 0x16) { - func_80B53CE8(this, play, 0x17); + EnAn_ChangeAnim(this, play, ENAN_ANIM_23); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; @@ -2305,7 +2290,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { /* fallthrough */ case 0x12: case 0x17: - func_80B53CE8(this, play, 1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_37A = 0; this->unk_360 |= 0x300; @@ -2319,13 +2304,13 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 |= 0x1000; if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { - func_80B53CE8(this, play, 0x14); + EnAn_ChangeAnim(this, play, ENAN_ANIM_20); this->unk_360 |= 0x40; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; this->unk_37A = 4; } else { - func_80B53CE8(this, play, 0x12); + EnAn_ChangeAnim(this, play, ENAN_ANIM_18); this->unk_37A = 0; } @@ -2334,7 +2319,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_38E = 8; break; case 0xE: - func_80B53CE8(this, play, 0xC); + EnAn_ChangeAnim(this, play, ENAN_ANIM_12); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; @@ -2347,8 +2332,9 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -extern Vec3f D_80B58E7C; -extern Vec3s D_80B58E88; +Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; +Vec3s D_80B58E88 = { 0, 0, 0 }; + s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 pad; @@ -2358,7 +2344,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); if (scheduleOutput->result == 0xC) { - func_80B53CE8(this, play, 0xB); + EnAn_ChangeAnim(this, play, ENAN_ANIM_11); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; @@ -2372,8 +2358,8 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return true; } -extern Vec3f D_80B58E90; -extern Vec3s D_80B58E9C; +Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; +Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 pad; @@ -2385,11 +2371,11 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case 0x1: SubS_SetOfferMode(&this->unk_360, 3U, 7U); - func_80B53CE8(this, play, 9); + EnAn_ChangeAnim(this, play, ENAN_ANIM_9); break; case 0x18: - func_80B53CE8(this, play, 0xB); + EnAn_ChangeAnim(this, play, ENAN_ANIM_11); this->unk_38A = 5; this->unk_38C = 5; this->unk_38E = 8; @@ -2403,14 +2389,14 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return true; } -extern Vec3s D_80B58EA4; +Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 pad; Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); - func_80B53CE8(this, play, 0); + EnAn_ChangeAnim(this, play, ENAN_ANIM_0); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; @@ -2555,7 +2541,7 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { Lib_Vec3f_TranslateAndRotateY(&this->unk_228, this->actor.world.rot.y, &sp38, &this->actor.world.pos); this->unk_37A += this->unk_384; - if (Animation_OnFrame(&this->unk_144, 3.0f) || Animation_OnFrame(&this->unk_144, 15.0f)) { + if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, 0x2971); } } @@ -2606,7 +2592,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { this->unk_1FC = sp54; this->unk_1F8 = sp50; this->unk_1E0 = sp58; - } else if (Animation_OnFrame(&this->unk_144, 3.0f) || Animation_OnFrame(&this->unk_144, 15.0f)) { + } else if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, 0x2971); } @@ -2641,7 +2627,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { break; case 0x16: - if (Animation_OnFrame(&this->unk_144, 6.0f) && (this->unk_39C == 0x17)) { + if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_23)) { Actor_PlaySfx(&this->actor, 0x2899); } break; @@ -2665,14 +2651,14 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { temp2 = (this->actor.shape.rot.y / 0xB6) * 0xB6; if (temp1 == temp2) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); - func_80B53CE8(this, play, 0x13); + EnAn_ChangeAnim(this, play, ENAN_ANIM_19); this->unk_360 |= 0x40; this->unk_37A++; } break; case 0x2: - if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame)) { + if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->unk_37A++; } break; @@ -2809,10 +2795,10 @@ void func_80B57718(EnAn* this, PlayState* play) { void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, &this->unk_144, &D_06012618, NULL, this->unk_264, this->unk_2E2, 0x15); + SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->unk_264, this->unk_2E2, 0x15); - this->unk_39C = -1; - func_80B53CE8(this, play, 1); + this->animIndex = ENAN_ANIM_NONE; + EnAn_ChangeAnim(this, play, ENAN_ANIM_1); Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); @@ -2887,7 +2873,7 @@ void func_80B57A44(EnAn* this, PlayState* play) { #ifdef NON_EQUIVALENT void func_80B57B48(EnAn* this, PlayState* play) { - s32 sp30[] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; + s32 sp30[] = { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0 }; s32 temp_v0; // sp28 u16 temp_v1; u8 var_v0; @@ -2906,37 +2892,23 @@ void func_80B57B48(EnAn* this, PlayState* play) { if (var_v0 == 9) { this->unk_3B4 = 0; } - func_80B53CE8(this, play, sp30[temp_v1]); + EnAn_ChangeAnim(this, play, sp30[temp_v1]); } - if ((this->unk_39C == 0x1A) || (this->unk_39C == 0x1C) || (this->unk_39C == 0x1E) || (this->unk_39C == 0x22)) { - if (Animation_OnFrame(&this->unk_144, this->unk_144.endFrame) != 0) { - func_80B53CE8(this, play, this->unk_39C + 1); + if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_34)) { + if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + EnAn_ChangeAnim(this, play, this->animIndex + 1); } } Cutscene_ActorTranslateAndYaw(&this->actor, play, temp_v0); } } #else -s32 D_80B58EAC[0xA] = { 0, 0xB, 0x22, 0x19, 0x1A, 0x1C, 0x1E, 0x20, 0x21, 0 }; +s32 D_80B58EAC[] = { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0 }; void func_80B57B48(EnAn* this, PlayState* play); #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") #endif -Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; -void* D_80B58EE0[3] = { (void* )0x0600E6E0, (void* )0x0600F7A0, (void* )0x060101A0 }; -void* D_80B58EEC[9] = { - (void* )0x0600E1E0, - (void* )0x0600EFA0, - (void* )0x0600F3A0, - (void* )0x0600EFA0, - (void* )0x0600FDA0, - (void* )0x0600F9A0, - (void* )0x060103A0, - NULL, - NULL, -}; - void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; @@ -3008,7 +2980,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } -extern Vec3f D_80B58ED4; +Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnAn* this = THIS; @@ -3045,7 +3017,7 @@ void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { } if (limbIndex == 9) { - SubS_UpdateLimb((s16) (this->unk_37C + 0x4000), (s16) (this->unk_37E + this->actor.shape.rot.y + 0x4000), &this->unk_240, &this->unk_258, stepRot, overrideRot); + SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, &this->unk_258, stepRot, overrideRot); Matrix_Pop(); Matrix_Translate(this->unk_240.x, this->unk_240.y, this->unk_240.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); @@ -3056,8 +3028,23 @@ void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { } } -extern UNK_PTR D_80B58EEC[]; -extern UNK_PTR D_80B58EE0[]; +// mouth textures +TexturePtr D_80B58EE0[] = { + object_an1_Tex_00E6E0, + object_an1_Tex_00F7A0, + object_an1_Tex_0101A0, +}; + +// eye textures +TexturePtr D_80B58EEC[] = { + object_an1_Tex_00E1E0, + object_an1_Tex_00EFA0, + object_an1_Tex_00F3A0, + object_an1_Tex_00EFA0, + object_an1_Tex_00FDA0, + object_an1_Tex_00F9A0, + object_an1_Tex_0103A0, +}; void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; @@ -3067,10 +3054,10 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Opa(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->unk_390])); - gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->unk_392])); + gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->eyeTexIndex])); + gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->mouthTexIndex])); - SkelAnime_DrawTransformFlexOpa(play, this->unk_144.skeleton, this->unk_144.jointTable, this->unk_144.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); + SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 4e469250c..0057d8052 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -2,6 +2,7 @@ #define Z_EN_AN_H #include "global.h" +#include "assets/objects/object_an1/object_an1.h" struct EnAn; @@ -13,9 +14,53 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) +typedef enum EnAnAnimation { + /* -1 */ ENAN_ANIM_NONE = -1, + /* 0 */ ENAN_ANIM_0, + /* 1 */ ENAN_ANIM_1, + /* 2 */ ENAN_ANIM_2, + /* 3 */ ENAN_ANIM_3, + /* 4 */ ENAN_ANIM_4, + /* 5 */ ENAN_ANIM_5, + /* 6 */ ENAN_ANIM_6, + /* 7 */ ENAN_ANIM_7, + /* 8 */ ENAN_ANIM_8, + /* 9 */ ENAN_ANIM_9, + /* 10 */ ENAN_ANIM_10, + /* 11 */ ENAN_ANIM_11, + /* 12 */ ENAN_ANIM_12, + /* 13 */ ENAN_ANIM_13, + /* 14 */ ENAN_ANIM_14, + /* 15 */ ENAN_ANIM_15, + /* 16 */ ENAN_ANIM_16, + + /* 17 */ ENAN_ANIM_17, + /* 18 */ ENAN_ANIM_18, + /* 19 */ ENAN_ANIM_19, + /* 20 */ ENAN_ANIM_20, + + /* 21 */ ENAN_ANIM_21, + /* 22 */ ENAN_ANIM_22, + /* 23 */ ENAN_ANIM_23, + /* 24 */ ENAN_ANIM_24, + + /* 25 */ ENAN_ANIM_25, + /* 26 */ ENAN_ANIM_26, + /* 27 */ ENAN_ANIM_27, + /* 28 */ ENAN_ANIM_28, + /* 29 */ ENAN_ANIM_29, + /* 30 */ ENAN_ANIM_30, + /* 31 */ ENAN_ANIM_31, + /* 32 */ ENAN_ANIM_32, + /* 33 */ ENAN_ANIM_33, + /* 34 */ ENAN_ANIM_34, + /* 35 */ ENAN_ANIM_35, + /* 36 */ ENAN_ANIM_MAX +} EnAnAnimation; + typedef struct EnAn { /* 0x000 */ Actor actor; - /* 0x144 */ SkelAnime unk_144; + /* 0x144 */ SkelAnime skelAnime; /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; @@ -29,11 +74,11 @@ typedef struct EnAn { /* 0x200 */ u8 unk_200; // enum? // schedule result /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ /* 0x204 */ s32* msgEventScript; - /* 0x208 */ s8 unk_208; - /* 0x209 */ s8 unk_209; - /* 0x20A */ s8 unk_20A; - /* 0x20B */ s8 unk_20B; - /* 0x20C */ s8 unk_20C; + /* 0x208 */ s8 an2ObjIndex; + /* 0x209 */ s8 an3ObjIndex; + /* 0x20A */ s8 maskKerfayObjIndex; + /* 0x20B */ s8 an4ObjIndex; + /* 0x20C */ s8 msmoObjIndex; /* 0x20D */ char unk_20D[3]; /* maybe part of unk_20C[4]? */ /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 unk_214; // curRoom.num @@ -68,13 +113,13 @@ typedef struct EnAn { /* 0x38A */ s16 unk_38A; /* inferred */ /* 0x38C */ s16 unk_38C; /* inferred */ /* 0x38E */ s16 unk_38E; /* inferred */ - /* 0x390 */ s16 unk_390; /* inferred */ - /* 0x392 */ s16 unk_392; /* inferred */ + /* 0x390 */ s16 eyeTexIndex; + /* 0x392 */ s16 mouthTexIndex; /* inferred */ /* 0x394 */ s16 unk_394; /* 0x396 */ s16 unk_396; /* 0x398 */ MsgEventFunc msgEventFunc; - /* 0x39C */ s32 unk_39C; /* inferred */ - /* 0x3A0 */ char unk_3A0[8]; /* maybe part of unk_39C[3]? */ + /* 0x39C */ EnAnAnimation animIndex; + /* 0x3A0 */ UNK_TYPE1 unk_3A0[8]; /* 0x3A8 */ u32 unk_3A8; /* inferred */ /* 0x3AC */ u32 unk_3AC; /* inferred */ /* 0x3B0 */ s32 unk_3B0; /* inferred */ diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index b08be0c0c..f779040fd 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14012,7 +14012,7 @@ 0x80B53A7C:("func_80B53A7C",), 0x80B53B3C:("func_80B53B3C",), 0x80B53BA8:("func_80B53BA8",), - 0x80B53CE8:("func_80B53CE8",), + 0x80B53CE8:("EnAn_ChangeAnim",), 0x80B53ED4:("func_80B53ED4",), 0x80B53F84:("func_80B53F84",), 0x80B54124:("func_80B54124",), diff --git a/undefined_syms.txt b/undefined_syms.txt index 45307fc87..3e74e0409 100644 --- a/undefined_syms.txt +++ b/undefined_syms.txt @@ -361,15 +361,6 @@ D_06009278 = 0x06009278; D_06012B70 = 0x06012B70; D_06013EA8 = 0x06013EA8; -// ovl_En_An - -D_06000308 = 0x06000308; -D_06000378 = 0x06000378; -D_06000E70 = 0x06000E70; -D_060111E8 = 0x060111E8; -D_06012478 = 0x06012478; -D_06012618 = 0x06012618; - // ovl_En_Bal D_060005FC = 0x060005FC; From 9331eff8dee01e495101d5d3bedb09163d3f8fbe Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 24 Sep 2023 21:34:00 -0300 Subject: [PATCH 18/78] face --- src/overlays/actors/ovl_En_An/z_en_an.c | 321 ++++++++++++++---------- src/overlays/actors/ovl_En_An/z_en_an.h | 109 +++----- tools/disasm/functions.txt | 6 +- 3 files changed, 217 insertions(+), 219 deletions(-) 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 75fd73e91..07e1ce440 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -20,7 +20,6 @@ void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); void EnAn_Update(Actor* thisx, PlayState* play); - void EnAn_Draw(Actor* this, PlayState* play); // Action funcs @@ -28,12 +27,6 @@ void func_80B577F0(EnAn* this, PlayState* play); void func_80B578F8(EnAn* this, PlayState* play); void func_80B57A44(EnAn* this, PlayState* play); - - - -extern AnimationInfoS D_80B58BF4[]; - - static u8 sScheduleScript[] = { /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005), /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A), @@ -609,7 +602,7 @@ static ColliderCylinderInit D_80B58BBC = { static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; s32 func_80B53840(EnAn* this, PlayState* play) { - s32 ret = 0; + s32 ret = false; if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { this->msmoObjIndex = SubS_GetObjectIndex(OBJECT_MSMO, play); @@ -623,11 +616,11 @@ s32 func_80B53840(EnAn* this, PlayState* play) { } if (this->unk_3B8 == 0) { - return 0; + return false; } if (((this->an2ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an2ObjIndex, play) == 0)) || ((this->an3ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an3ObjIndex, play) == 0)) || ((this->maskKerfayObjIndex >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjIndex, play) == 0)) || ((this->an4ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an4ObjIndex, play) == 0)) || ((this->msmoObjIndex >= 0) && (SubS_IsObjectLoaded(this->msmoObjIndex, play) == 0))) { - ret = 1; + ret = true; } else { this->actor.draw = EnAn_Draw; this->unk_3B8 = 0; @@ -755,6 +748,50 @@ s32 func_80B53BA8(EnAn* this, PlayState* play) { return ret; } +typedef enum EnAnAnimation { + /* -1 */ ENAN_ANIM_NONE = -1, + /* 0 */ ENAN_ANIM_0, + /* 1 */ ENAN_ANIM_1, + /* 2 */ ENAN_ANIM_2, + /* 3 */ ENAN_ANIM_3, + /* 4 */ ENAN_ANIM_4, + /* 5 */ ENAN_ANIM_5, + /* 6 */ ENAN_ANIM_6, + /* 7 */ ENAN_ANIM_7, + /* 8 */ ENAN_ANIM_8, + /* 9 */ ENAN_ANIM_9, + /* 10 */ ENAN_ANIM_10, + /* 11 */ ENAN_ANIM_11, + /* 12 */ ENAN_ANIM_12, + /* 13 */ ENAN_ANIM_13, + /* 14 */ ENAN_ANIM_14, + /* 15 */ ENAN_ANIM_15, + /* 16 */ ENAN_ANIM_16, + + /* 17 */ ENAN_ANIM_17, + /* 18 */ ENAN_ANIM_18, + /* 19 */ ENAN_ANIM_19, + /* 20 */ ENAN_ANIM_20, + + /* 21 */ ENAN_ANIM_21, + /* 22 */ ENAN_ANIM_22, + /* 23 */ ENAN_ANIM_23, + /* 24 */ ENAN_ANIM_24, + + /* 25 */ ENAN_ANIM_25, + /* 26 */ ENAN_ANIM_26, + /* 27 */ ENAN_ANIM_27, + /* 28 */ ENAN_ANIM_28, + /* 29 */ ENAN_ANIM_29, + /* 30 */ ENAN_ANIM_30, + /* 31 */ ENAN_ANIM_31, + /* 32 */ ENAN_ANIM_32, + /* 33 */ ENAN_ANIM_33, + /* 34 */ ENAN_ANIM_34, + /* 35 */ ENAN_ANIM_35, + /* 36 */ ENAN_ANIM_MAX +} EnAnAnimation; + // sAnimationInfo AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 @@ -879,64 +916,107 @@ void func_80B53ED4(EnAn* this, PlayState* play) { CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); } -s16 D_80B58E40[0xA] = { 0, 2, 0, 1, 2, 0, 1, 2, 1, 1 }; +typedef enum EnAnEyes { + /* 0 */ ENAN_EYES_0, + /* 1 */ ENAN_EYES_1, + /* 2 */ ENAN_EYES_2, + /* 3 */ ENAN_EYES_3, + /* 4 */ ENAN_EYES_4, + /* 5 */ ENAN_EYES_5, + /* 6 */ ENAN_EYES_6, + /* 7 */ ENAN_EYES_MAX +} EnAnEyes; -void func_80B53F84(EnAn* this) { - s32 var_a1 = 0; +typedef enum EnAnMouth { + /* 0 */ ENAN_MOUTH_0, + /* 1 */ ENAN_MOUTH_1, + /* 2 */ ENAN_MOUTH_2, + /* 3 */ ENAN_MOUTH_MAX +} EnAnMouth; + +typedef enum EnAnFace { + /* 0 */ ENAN_FACE_0, + /* 1 */ ENAN_FACE_1, + /* 2 */ ENAN_FACE_2, + /* 3 */ ENAN_FACE_3, + /* 4 */ ENAN_FACE_4, + /* 5 */ ENAN_FACE_5, + /* 6 */ ENAN_FACE_6, + /* 7 */ ENAN_FACE_7, + /* 8 */ ENAN_FACE_8, + /* 9 */ ENAN_FACE_9, + /* 10 */ ENAN_FACE_MAX +} EnAnFace; + +s16 D_80B58E40[ENAN_FACE_MAX] = { + ENAN_MOUTH_0, // ENAN_FACE_0 + ENAN_MOUTH_2, // ENAN_FACE_1 + ENAN_MOUTH_0, // ENAN_FACE_2 + ENAN_MOUTH_1, // ENAN_FACE_3 + ENAN_MOUTH_2, // ENAN_FACE_4 + ENAN_MOUTH_0, // ENAN_FACE_5 + ENAN_MOUTH_1, // ENAN_FACE_6 + ENAN_MOUTH_2, // ENAN_FACE_7 + ENAN_MOUTH_1, // ENAN_FACE_8 + ENAN_MOUTH_1, // ENAN_FACE_9 +}; + +void EnAn_UpdateFace(EnAn* this) { + s32 var_a1 = false; if (this->unk_360 & 0x100) { if (DECR(this->unk_38E) == 0) { // default case doesn't match - switch (this->unk_38C) { - case 0x2: - case 0x4: - case 0x6: - if ((this->eyeTexIndex == 5) || (this->eyeTexIndex == 2)) { - var_a1 = 1; - this->eyeTexIndex = 5; + switch (this->faceIndex) { + case ENAN_FACE_2: + case ENAN_FACE_4: + case ENAN_FACE_6: + if ((this->eyeTexIndex == ENAN_EYES_5) || (this->eyeTexIndex == ENAN_EYES_2)) { + var_a1 = true; + this->eyeTexIndex = ENAN_EYES_5; } break; - case 0x5: - case 0x7: - if ((this->eyeTexIndex == 6) || (this->eyeTexIndex == 1)) { - var_a1 = 1; - this->eyeTexIndex = 6; + case ENAN_FACE_5: + case ENAN_FACE_7: + if ((this->eyeTexIndex == ENAN_EYES_6) || (this->eyeTexIndex == ENAN_EYES_1)) { + var_a1 = true; + this->eyeTexIndex = ENAN_EYES_6; } break; - case 0x8: - if ((this->eyeTexIndex == 4) || (this->eyeTexIndex == 2)) { - var_a1 = 1; - this->eyeTexIndex = 4; + case ENAN_FACE_8: + if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_2)) { + var_a1 = true; + this->eyeTexIndex = ENAN_EYES_4; } break; } - if (var_a1 == 0) { - if ((this->eyeTexIndex == 4) || (this->eyeTexIndex == 5)) { - this->eyeTexIndex = 0; - } else if (this->eyeTexIndex == 6) { - this->eyeTexIndex = 1; + if (!var_a1) { + if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_5)) { + this->eyeTexIndex = ENAN_EYES_0; + } else if (this->eyeTexIndex == ENAN_EYES_6) { + this->eyeTexIndex = ENAN_EYES_1; } } - if (var_a1 == 0) { + if (!var_a1) { this->eyeTexIndex++; - if (this->eyeTexIndex >= 4) { - if ((this->unk_38C == 0) || (this->unk_38C == 1) || (this->unk_38C == 3)) { + if (this->eyeTexIndex >= ENAN_EYES_4) { + if ((this->faceIndex == ENAN_FACE_0) || (this->faceIndex == ENAN_FACE_1) || (this->faceIndex == ENAN_FACE_3)) { this->unk_38E = Rand_S16Offset(0x1E, 0x1E); } else { this->unk_38E = 8; } - this->eyeTexIndex = 0; + this->eyeTexIndex = ENAN_EYES_0; } } } } - this->mouthTexIndex = D_80B58E40[this->unk_38C]; + this->mouthTexIndex = D_80B58E40[this->faceIndex]; } Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; @@ -1091,7 +1171,7 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { case 0x1: case 0x3: case 0x5: - if ((gSaveContext.save.saveInfo.weekEventReg[0x56] & 8) && (this->unk_394 == 3)) { + if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08)) && (this->unk_394 == 3)) { CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); @@ -1133,7 +1213,7 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { case 0x1: case 0x3: - if (!(gSaveContext.save.saveInfo.weekEventReg[0x4B] & 0x10) && (this->unk_394 == 3)) { + if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY)) && (this->unk_394 == 3)) { CutsceneManager_Stop(csId); this->unk_394 = 5; } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { @@ -1244,7 +1324,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { switch (this->unk_394) { case 0x0: - if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { this->unk_394++; goto label; } else { @@ -1267,33 +1347,6 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { return ret; } -extern s32 D_80B58718[]; -extern s32 D_80B58784[]; -extern s32 D_80B58808[]; -extern s32 D_80B5885C[]; -extern s32 D_80B58938[]; -extern s32 D_80B58944[]; -extern s32 D_80B5894C[]; -extern s32 D_80B58954[]; -extern s32 D_80B58980[]; -extern s32 D_80B58988[]; -extern s32 D_80B58994[]; -extern s32 D_80B5899C[]; -extern s32 D_80B589AC[]; -extern s32 D_80B589FC[]; -extern s32 D_80B58A04[]; -extern s32 D_80B58A24[]; -extern s32 D_80B58A3C[]; -extern s32 D_80B58A44[]; -extern s32 D_80B58ABC[]; -extern s32 D_80B58AC4[]; -extern s32 D_80B58AE8[]; -extern s32 D_80B58AF4[]; -extern s32 D_80B58B3C[]; -extern s32 D_80B58B7C[]; -extern s32 D_80B58B88[]; -extern s32 D_80B58B90[]; - // TODO: figure out what to do with this #define SCHEDULE_CALC_TIME_ALT(hour, minute) SCHEDULE_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f)) @@ -1374,7 +1427,7 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { return D_80B58AC4; } - if ((player->transformation == PLAYER_FORM_HUMAN) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if (this->unk_200 == 0x17) { this->msgEventFunc = func_80B54BC4; return D_80B589AC; @@ -1459,7 +1512,7 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->unk_360 |= 0x20; } - if ((this->unk_200 == 3) && (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20)) { + if ((this->unk_200 == 3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { this->unk_360 &= ~0x20; } @@ -1476,8 +1529,8 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { if (this->unk_3B0 == 0) { - this->unk_38A = 0; - this->unk_38C = 0; + this->unk_38A = ENAN_FACE_0; + this->faceIndex = ENAN_FACE_0; this->unk_360 |= 0x300; this->unk_38E = 8; this->unk_364 = -1; @@ -1790,12 +1843,12 @@ s32 func_80B55914(EnAn* this, PlayState* play) { switch (sp22) { /* switch 4; irregular */ case 0x28F5: /* switch 4 */ - this->unk_38A = 0; + this->unk_38A = ENAN_FACE_0; /* fallthrough */ case 0x28A5: /* switch 4 */ case 0x28AA: /* switch 4 */ case 0x28F8: /* switch 4 */ - this->unk_38C = 0; + this->faceIndex = ENAN_FACE_0; this->unk_38E = 8; break; case 0x1885: /* switch 4 */ @@ -1803,7 +1856,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28A6: /* switch 4 */ case 0x28AF: /* switch 4 */ case 0x28C1: /* switch 4 */ - this->unk_38C = 3; + this->faceIndex = ENAN_FACE_3; this->unk_38E = 8; break; case 0x28A2: /* switch 4 */ @@ -1817,22 +1870,22 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28E5: /* switch 4 */ case 0x28E7: /* switch 4 */ case 0x28ED: /* switch 4 */ - this->unk_38C = 1; + this->faceIndex = ENAN_FACE_1; this->unk_38E = 8; break; case 0x28AD: /* switch 4 */ - this->unk_38C = 8; + this->faceIndex = ENAN_FACE_8; this->unk_38E = 8; break; case 0x28C0: /* switch 4 */ case 0x28D7: /* switch 4 */ case 0x28DE: /* switch 4 */ - this->unk_38C = 2; + this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; case 0x28E6: /* switch 4 */ case 0x28F7: /* switch 4 */ - this->unk_38C = 6; + this->faceIndex = ENAN_FACE_6; this->unk_38E = 8; break; case 0x28A3: /* switch 4 */ @@ -1845,26 +1898,26 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28E2: /* switch 4 */ case 0x28E3: /* switch 4 */ case 0x28E4: /* switch 4 */ - this->unk_38C = 4; + this->faceIndex = ENAN_FACE_4; this->unk_38E = 8; break; case 0x28EC: /* switch 4 */ - this->unk_38A = 5; + this->unk_38A = ENAN_FACE_5; /* fallthrough */ case 0x28DC: /* switch 4 */ case 0x28EB: /* switch 4 */ case 0x28F2: /* switch 4 */ case 0x28F9: /* switch 4 */ - this->unk_38C = 5; + this->faceIndex = ENAN_FACE_5; this->unk_38E = 8; break; case 0x28F6: /* switch 4 */ - this->unk_38C = 9; + this->faceIndex = ENAN_FACE_9; this->unk_38E = 8; break; case 0x28A4: /* switch 4 */ case 0x28A9: /* switch 4 */ - this->unk_38C = 7; + this->faceIndex = ENAN_FACE_7; this->unk_38E = 8; break; } @@ -1875,7 +1928,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { this->unk_18C = NULL; this->unk_362 = 0; this->unk_360 &= ~0x400; - this->unk_38C = this->unk_38A; + this->faceIndex = this->unk_38A; this->unk_38E = 4; func_80B555C8(this, play); } @@ -1911,8 +1964,6 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { return actor; } -extern s32 D_80B58618[]; - s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u8 actorCategory, s16 actorId) { u8 sp4F = this->actor.params & 0xFF; Vec3s* temp_v0_3; @@ -1963,9 +2014,9 @@ s32 func_80B55F8C(PlayState* play) { Player* player = GET_PLAYER(play); s32 var_v1 = false; - if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { var_v1 = true; - } else if ((player->transformation == PLAYER_FORM_HUMAN) && (gSaveContext.save.saveInfo.weekEventReg[0x32] & 8)) { + } else if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { var_v1 = true; } @@ -2017,8 +2068,6 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -extern s32 D_80B58618[]; - s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 sp56 = SCHEDULE_TIME_NOW; u8 pathIndex = this->actor.params & 0xFF; @@ -2065,8 +2114,8 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x23: /* switch 1 */ case 0x25: /* switch 1 */ case 0x26: /* switch 1 */ - this->unk_38A = 2; - this->unk_38C = 2; + this->unk_38A = ENAN_FACE_2; + this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; } @@ -2154,8 +2203,8 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x3D: /* switch 1 */ case 0x3E: /* switch 1 */ case 0x3F: /* switch 1 */ - this->unk_38A = 2; - this->unk_38C = 2; + this->unk_38A = ENAN_FACE_2; + this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; } @@ -2303,7 +2352,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 |= 0x300; this->unk_360 |= 0x1000; - if (gSaveContext.save.saveInfo.weekEventReg[0x37] & 0x20) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_20); this->unk_360 |= 0x40; this->actor.world.rot.y += 0x7FF8; @@ -2314,8 +2363,8 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_37A = 0; } - this->unk_38A = 2; - this->unk_38C = 2; + this->unk_38A = ENAN_FACE_2; + this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; case 0xE: @@ -2350,8 +2399,8 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 |= 0x300; this->unk_360 |= 0x40; - this->unk_38A = 5; - this->unk_38C = 5; + this->unk_38A = ENAN_FACE_5; + this->faceIndex = ENAN_FACE_5; this->unk_38E = 8; } @@ -2376,8 +2425,8 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case 0x18: EnAn_ChangeAnim(this, play, ENAN_ANIM_11); - this->unk_38A = 5; - this->unk_38C = 5; + this->unk_38A = ENAN_FACE_5; + this->faceIndex = ENAN_FACE_5; this->unk_38E = 8; break; } @@ -2409,8 +2458,8 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->actor.flags |= ACTOR_FLAG_TARGETABLE; this->actor.targetMode = TARGET_MODE_6; this->unk_360 = 0; - this->unk_38A = 0; - this->unk_38C = 0; + this->unk_38A = ENAN_FACE_0; + this->faceIndex = ENAN_FACE_0; this->unk_38E = 8; this->unk_374 = 40.0f; @@ -2542,7 +2591,7 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { this->unk_37A += this->unk_384; if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { - Actor_PlaySfx(&this->actor, 0x2971); + Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } } return 0; @@ -2593,7 +2642,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { this->unk_1F8 = sp50; this->unk_1E0 = sp58; } else if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { - Actor_PlaySfx(&this->actor, 0x2971); + Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } return 0; @@ -2628,7 +2677,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { case 0x16: if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_23)) { - Actor_PlaySfx(&this->actor, 0x2899); + Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } break; } @@ -2795,7 +2844,7 @@ void func_80B57718(EnAn* this, PlayState* play) { void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->unk_264, this->unk_2E2, 0x15); + SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, OBJECT_AN1_LIMB_MAX); this->animIndex = ENAN_ANIM_NONE; EnAn_ChangeAnim(this, play, ENAN_ANIM_1); @@ -2815,14 +2864,12 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->actionFunc(this, play); } -extern u8 sScheduleScript[]; - void func_80B578F8(EnAn* this, PlayState* play) { ScheduleOutput sp20; this->unk_384 = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); - if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && (gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40)) { + if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { Actor_Kill(&this->actor); return; } @@ -2885,7 +2932,7 @@ void func_80B57B48(EnAn* this, PlayState* play) { if ((temp_v1 & 0xFF) != this->unk_364) { this->unk_364 = (u8) temp_v1; if (var_v0 == 3) { - gSaveContext.save.saveInfo.weekEventReg[0x57] |= 2; + SET_WEEKEVENTREG(WEEKEVENTREG_87_02); var_v0 = this->unk_364; this->unk_3B4 = 1; } @@ -2920,7 +2967,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { } temp_v1 = ENAN_GET_8000(&this->actor); - temp_v0 = gSaveContext.save.saveInfo.weekEventReg[0x33] & 0x40; + temp_v0 = CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40); if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { Actor_Kill(&this->actor); @@ -2950,16 +2997,16 @@ void EnAn_Destroy(Actor* thisx, PlayState* play) { } void EnAn_Update(Actor* thisx, PlayState* play) { - EnAn* this = (EnAn* ) thisx; + EnAn* this = THIS; - if (func_80B53840(this, play) != 0) { + if (func_80B53840(this, play)) { return; } if ((this->actionFunc != func_80B577F0) && !func_80B55180(this, play) && (func_80B552E4(this, play) != 0)) { func_80B57B48(this, play); func_80B53BA8(this, play); - func_80B53F84(this); + EnAn_UpdateFace(this); return; } @@ -2967,7 +3014,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { if (this->unk_200 != 0) { func_80B55914(this, play); func_80B53BA8(this, play); - func_80B53F84(this); + EnAn_UpdateFace(this); func_80B554E8(this); SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & 7); @@ -2982,24 +3029,24 @@ void EnAn_Update(Actor* thisx, PlayState* play) { Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; -void func_80B57EE8(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { +void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnAn* this = THIS; - if (limbIndex == 9) { + if (limbIndex == OBJECT_AN1_LIMB_09) { Matrix_MultVec3f(&D_80B58ED4, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); func_80B54124(this, play, 1U); - } else if (limbIndex == 8) { + } else if (limbIndex == OBJECT_AN1_LIMB_08) { func_80B54124(this, play, 0U); func_80B54124(this, play, 4U); func_80B54124(this, play, 2U); func_80B54124(this, play, 3U); - } else if (limbIndex == 5) { + } else if (limbIndex == OBJECT_AN1_LIMB_05) { func_80B54124(this, play, 5U); } } -void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { +void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { EnAn* this = THIS; s32 stepRot; s32 overrideRot; @@ -3016,7 +3063,7 @@ void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { stepRot = false; } - if (limbIndex == 9) { + if (limbIndex == OBJECT_AN1_LIMB_09) { SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, &this->unk_258, stepRot, overrideRot); Matrix_Pop(); Matrix_Translate(this->unk_240.x, this->unk_240.y, this->unk_240.z, MTXMODE_NEW); @@ -3029,21 +3076,21 @@ void func_80B57FC4(PlayState* play, s32 limbIndex, Actor* thisx) { } // mouth textures -TexturePtr D_80B58EE0[] = { - object_an1_Tex_00E6E0, - object_an1_Tex_00F7A0, - object_an1_Tex_0101A0, +TexturePtr D_80B58EE0[ENAN_MOUTH_MAX] = { + object_an1_Tex_00E6E0, // ENAN_MOUTH_0 + object_an1_Tex_00F7A0, // ENAN_MOUTH_1 + object_an1_Tex_0101A0, // ENAN_MOUTH_2 }; // eye textures -TexturePtr D_80B58EEC[] = { - object_an1_Tex_00E1E0, - object_an1_Tex_00EFA0, - object_an1_Tex_00F3A0, - object_an1_Tex_00EFA0, - object_an1_Tex_00FDA0, - object_an1_Tex_00F9A0, - object_an1_Tex_0103A0, +TexturePtr D_80B58EEC[ENAN_EYES_MAX] = { + object_an1_Tex_00E1E0, // ENAN_EYES_0 + object_an1_Tex_00EFA0, // ENAN_EYES_1 + object_an1_Tex_00F3A0, // ENAN_EYES_2 + object_an1_Tex_00EFA0, // ENAN_EYES_3 + object_an1_Tex_00FDA0, // ENAN_EYES_4 + object_an1_Tex_00F9A0, // ENAN_EYES_5 + object_an1_Tex_0103A0, // ENAN_EYES_6 }; void EnAn_Draw(Actor* thisx, PlayState* play) { @@ -3057,7 +3104,7 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->eyeTexIndex])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->mouthTexIndex])); - SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, func_80B57EE8, func_80B57FC4, &this->actor); + SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, EnAn_PostLimbDraw, EnAn_TransformLimbDraw, &this->actor); CLOSE_DISPS(play->state.gfxCtx); } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 0057d8052..021eed75a 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -14,50 +14,6 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) -typedef enum EnAnAnimation { - /* -1 */ ENAN_ANIM_NONE = -1, - /* 0 */ ENAN_ANIM_0, - /* 1 */ ENAN_ANIM_1, - /* 2 */ ENAN_ANIM_2, - /* 3 */ ENAN_ANIM_3, - /* 4 */ ENAN_ANIM_4, - /* 5 */ ENAN_ANIM_5, - /* 6 */ ENAN_ANIM_6, - /* 7 */ ENAN_ANIM_7, - /* 8 */ ENAN_ANIM_8, - /* 9 */ ENAN_ANIM_9, - /* 10 */ ENAN_ANIM_10, - /* 11 */ ENAN_ANIM_11, - /* 12 */ ENAN_ANIM_12, - /* 13 */ ENAN_ANIM_13, - /* 14 */ ENAN_ANIM_14, - /* 15 */ ENAN_ANIM_15, - /* 16 */ ENAN_ANIM_16, - - /* 17 */ ENAN_ANIM_17, - /* 18 */ ENAN_ANIM_18, - /* 19 */ ENAN_ANIM_19, - /* 20 */ ENAN_ANIM_20, - - /* 21 */ ENAN_ANIM_21, - /* 22 */ ENAN_ANIM_22, - /* 23 */ ENAN_ANIM_23, - /* 24 */ ENAN_ANIM_24, - - /* 25 */ ENAN_ANIM_25, - /* 26 */ ENAN_ANIM_26, - /* 27 */ ENAN_ANIM_27, - /* 28 */ ENAN_ANIM_28, - /* 29 */ ENAN_ANIM_29, - /* 30 */ ENAN_ANIM_30, - /* 31 */ ENAN_ANIM_31, - /* 32 */ ENAN_ANIM_32, - /* 33 */ ENAN_ANIM_33, - /* 34 */ ENAN_ANIM_34, - /* 35 */ ENAN_ANIM_35, - /* 36 */ ENAN_ANIM_MAX -} EnAnAnimation; - typedef struct EnAn { /* 0x000 */ Actor actor; /* 0x144 */ SkelAnime skelAnime; @@ -65,68 +21,63 @@ typedef struct EnAn { /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; /* 0x1DC */ Path* unk_1DC; - /* 0x1E0 */ Vec3f unk_1E0; /* maybe part of unk_1DC[5]? */ + /* 0x1E0 */ Vec3f unk_1E0; /* 0x1EC */ f32 unk_1EC; - /* 0x1F0 */ s32 unk_1F0; /* inferred */ - /* 0x1F4 */ s32 unk_1F4; /* inferred */ - /* 0x1F8 */ s32 unk_1F8; /* inferred */ - /* 0x1FC */ s32 unk_1FC; /* inferred */ + /* 0x1F0 */ s32 unk_1F0; + /* 0x1F4 */ s32 unk_1F4; + /* 0x1F8 */ s32 unk_1F8; + /* 0x1FC */ s32 unk_1FC; /* 0x200 */ u8 unk_200; // enum? // schedule result - /* 0x201 */ char unk_201[3]; /* maybe part of unk_200[4]? */ /* 0x204 */ s32* msgEventScript; /* 0x208 */ s8 an2ObjIndex; /* 0x209 */ s8 an3ObjIndex; /* 0x20A */ s8 maskKerfayObjIndex; /* 0x20B */ s8 an4ObjIndex; /* 0x20C */ s8 msmoObjIndex; - /* 0x20D */ char unk_20D[3]; /* maybe part of unk_20C[4]? */ /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 unk_214; // curRoom.num /* 0x215 */ s8 unk_215; - /* 0x216 */ UNK_TYPE1 unk_216[0x2]; - /* 0x218 */ Actor* unk_218; /* inferred */ - /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; /* maybe part of unk_218[0x13]? */ + /* 0x218 */ Actor* unk_218; + /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; /* 0x228 */ Vec3f unk_228; /* 0x234 */ Vec3f unk_234; /* 0x240 */ Vec3f unk_240; /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; /* 0x258 */ Vec3s unk_258; - /* 0x25E */ UNK_TYPE1 unk_25E[0x2]; - /* 0x260 */ UNK_TYPE1 unk_260[0x4]; - /* 0x264 */ Vec3s unk_264[0x15]; - /* 0x2E2 */ Vec3s unk_2E2[0x15]; + /* 0x25E */ UNK_TYPE1 unk_25E[0x6]; + /* 0x264 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; + /* 0x2E2 */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; /* 0x360 */ u16 unk_360; // flags? - /* 0x362 */ u16 unk_362; /* inferred */ + /* 0x362 */ u16 unk_362; /* 0x364 */ u8 unk_364; - /* 0x365 */ char unk_365[3]; /* maybe part of unk_364[4]? */ - /* 0x368 */ f32 unk_368; /* inferred */ - /* 0x36C */ char unk_36C[8]; /* maybe part of unk_368[3]? */ - /* 0x374 */ f32 unk_374; /* inferred */ + /* 0x368 */ f32 unk_368; + /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; + /* 0x374 */ f32 unk_374; /* 0x378 */ s16 unk_378; // schedule time diff /* 0x37A */ s16 unk_37A; - /* 0x37C */ s16 unk_37C; /* inferred */ - /* 0x37E */ s16 unk_37E; /* inferred */ - /* 0x380 */ char unk_380[4]; /* maybe part of unk_37E[3]? */ - /* 0x384 */ s16 unk_384; /* inferred */ + /* 0x37C */ s16 unk_37C; + /* 0x37E */ s16 unk_37E; + /* 0x380 */ UNK_TYPE1 unk_380[0x4]; + /* 0x384 */ s16 unk_384; /* 0x386 */ s16 unk_386; - /* 0x388 */ s16 unk_388; /* inferred */ - /* 0x38A */ s16 unk_38A; /* inferred */ - /* 0x38C */ s16 unk_38C; /* inferred */ - /* 0x38E */ s16 unk_38E; /* inferred */ + /* 0x388 */ s16 unk_388; + /* 0x38A */ s16 unk_38A; // face enum + /* 0x38C */ s16 faceIndex; // face enum + /* 0x38E */ s16 unk_38E; /* 0x390 */ s16 eyeTexIndex; - /* 0x392 */ s16 mouthTexIndex; /* inferred */ + /* 0x392 */ s16 mouthTexIndex; /* 0x394 */ s16 unk_394; /* 0x396 */ s16 unk_396; /* 0x398 */ MsgEventFunc msgEventFunc; - /* 0x39C */ EnAnAnimation animIndex; - /* 0x3A0 */ UNK_TYPE1 unk_3A0[8]; - /* 0x3A8 */ u32 unk_3A8; /* inferred */ - /* 0x3AC */ u32 unk_3AC; /* inferred */ - /* 0x3B0 */ s32 unk_3B0; /* inferred */ - /* 0x3B4 */ s32 unk_3B4; /* inferred */ + /* 0x39C */ s32 animIndex; + /* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8]; + /* 0x3A8 */ u32 unk_3A8; + /* 0x3AC */ u32 unk_3AC; + /* 0x3B0 */ s32 unk_3B0; + /* 0x3B4 */ s32 unk_3B4; /* 0x3B8 */ s32 unk_3B8; /* 0x3BC */ s32 unk_3BC; - /* 0x3C0 */ s32 unk_3C0; /* inferred */ + /* 0x3C0 */ s32 unk_3C0; /* 0x3C4 */ s32 unk_3C4; } EnAn; // size = 0x3C8 diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index f779040fd..0037daae5 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14014,7 +14014,7 @@ 0x80B53BA8:("func_80B53BA8",), 0x80B53CE8:("EnAn_ChangeAnim",), 0x80B53ED4:("func_80B53ED4",), - 0x80B53F84:("func_80B53F84",), + 0x80B53F84:("EnAn_UpdateFace",), 0x80B54124:("func_80B54124",), 0x80B54678:("func_80B54678",), 0x80B546F4:("func_80B546F4",), @@ -14065,8 +14065,8 @@ 0x80B57C9C:("EnAn_Init",), 0x80B57D70:("EnAn_Destroy",), 0x80B57D9C:("EnAn_Update",), - 0x80B57EE8:("func_80B57EE8",), - 0x80B57FC4:("func_80B57FC4",), + 0x80B57EE8:("EnAn_PostLimbDraw",), + 0x80B57FC4:("EnAn_TransformLimbDraw",), 0x80B580C0:("EnAn_Draw",), 0x80B5A720:("EnBee_Init",), 0x80B5A828:("EnBee_Destroy",), From 02e8168cd164cd5ada047cf3c1c2e7a9ee7b2bc3 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 9 Oct 2023 11:02:06 -0300 Subject: [PATCH 19/78] fix merge --- src/overlays/actors/ovl_En_An/z_en_an.c | 40 ++++++++++++------------- 1 file changed, 20 insertions(+), 20 deletions(-) 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 07e1ce440..7d7cd92e0 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -605,11 +605,11 @@ s32 func_80B53840(EnAn* this, PlayState* play) { s32 ret = false; if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { - this->msmoObjIndex = SubS_GetObjectIndex(OBJECT_MSMO, play); - this->an4ObjIndex = SubS_GetObjectIndex(OBJECT_AN4, play); - this->maskKerfayObjIndex = SubS_GetObjectIndex(OBJECT_MASK_KERFAY, play); - this->an3ObjIndex = SubS_GetObjectIndex(OBJECT_AN3, play); - this->an2ObjIndex = SubS_GetObjectIndex(OBJECT_AN2, play); + this->msmoObjIndex = SubS_GetObjectSlot(OBJECT_MSMO, play); + this->an4ObjIndex = SubS_GetObjectSlot(OBJECT_AN4, play); + this->maskKerfayObjIndex = SubS_GetObjectSlot(OBJECT_MASK_KERFAY, play); + this->an3ObjIndex = SubS_GetObjectSlot(OBJECT_AN3, play); + this->an2ObjIndex = SubS_GetObjectSlot(OBJECT_AN2, play); this->actor.draw = NULL; this->unk_214 = play->roomCtx.curRoom.num; this->unk_3B8 = 1; @@ -720,7 +720,7 @@ EnDoor* func_80B53B3C(PlayState* play, s32 scheduleOutputResult) { } s32 func_80B53BA8(EnAn* this, PlayState* play) { - s8 temp_a3 = this->actor.objBankIndex; + s8 temp_a3 = this->actor.objectSlot; s8 var_v1 = -1; s32 ret = 0; @@ -739,10 +739,10 @@ s32 func_80B53BA8(EnAn* this, PlayState* play) { } if (var_v1 >= 0) { - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[var_v1].segment); this->skelAnime.playSpeed = this->unk_368; ret = SkelAnime_Update(&this->skelAnime); - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_a3].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[temp_a3].segment); } return ret; @@ -837,7 +837,7 @@ AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { }; s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { - s8 temp_t1 = this->actor.objBankIndex; + s8 temp_t1 = this->actor.objectSlot; s8 var_v1 = -1; s32 var_t0 = 0; s32 var_t2 = 0; @@ -886,11 +886,11 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { } if ((var_t0 != 0) && (var_v1 >= 0)) { - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[var_v1].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[var_v1].segment); this->animIndex = animIndex; var_t2 = SubS_ChangeAnimationByInfoS(&this->skelAnime, D_80B58BF4, animIndex); this->unk_368 = this->skelAnime.playSpeed; - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.status[temp_t1].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[temp_t1].segment); } return var_t2; @@ -1026,7 +1026,7 @@ Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { s32 pad; - s8 sp53 = this->actor.objBankIndex; + s8 sp53 = this->actor.objectSlot; s8 temp_a2; OPEN_DISPS(play->state.gfxCtx); @@ -1051,31 +1051,31 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x1: temp_a2 = this->maskKerfayObjIndex; if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.status[temp_a2].segment); + gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[temp_a2].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, object_mask_kerfay_DL_000D40); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); } break; case 0x2: temp_a2 = this->an2ObjIndex; if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); } break; case 0x3: temp_a2 = this->an3ObjIndex; if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); } break; @@ -1091,9 +1091,9 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[temp_a2].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.status[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); } break; } From 3082afacf86a6e1de80bf0b71c93ded24e2a8985 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 9 Oct 2023 11:19:42 -0300 Subject: [PATCH 20/78] slots --- src/overlays/actors/ovl_En_An/z_en_an.c | 124 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 16 +-- 2 files changed, 70 insertions(+), 70 deletions(-) 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 7d7cd92e0..56f36972c 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -605,11 +605,11 @@ s32 func_80B53840(EnAn* this, PlayState* play) { s32 ret = false; if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { - this->msmoObjIndex = SubS_GetObjectSlot(OBJECT_MSMO, play); - this->an4ObjIndex = SubS_GetObjectSlot(OBJECT_AN4, play); - this->maskKerfayObjIndex = SubS_GetObjectSlot(OBJECT_MASK_KERFAY, play); - this->an3ObjIndex = SubS_GetObjectSlot(OBJECT_AN3, play); - this->an2ObjIndex = SubS_GetObjectSlot(OBJECT_AN2, play); + this->msmoObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); + this->an4ObjectSlot = SubS_GetObjectSlot(OBJECT_AN4, play); + this->maskKerfayObjectSlot = SubS_GetObjectSlot(OBJECT_MASK_KERFAY, play); + this->an3ObjectSlot = SubS_GetObjectSlot(OBJECT_AN3, play); + this->an2ObjectSlot = SubS_GetObjectSlot(OBJECT_AN2, play); this->actor.draw = NULL; this->unk_214 = play->roomCtx.curRoom.num; this->unk_3B8 = 1; @@ -619,7 +619,7 @@ s32 func_80B53840(EnAn* this, PlayState* play) { return false; } - if (((this->an2ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an2ObjIndex, play) == 0)) || ((this->an3ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an3ObjIndex, play) == 0)) || ((this->maskKerfayObjIndex >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjIndex, play) == 0)) || ((this->an4ObjIndex >= 0) && (SubS_IsObjectLoaded(this->an4ObjIndex, play) == 0)) || ((this->msmoObjIndex >= 0) && (SubS_IsObjectLoaded(this->msmoObjIndex, play) == 0))) { + if (((this->an2ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || ((this->an3ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || ((this->maskKerfayObjectSlot >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || ((this->an4ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || ((this->msmoObjectSlot >= 0) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { ret = true; } else { this->actor.draw = EnAn_Draw; @@ -666,7 +666,7 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) } if ((this != (EnAn*)foundActor) && (foundActor->update != NULL)) { - if (!(foundActor->params & 0x8000)) { + if (!(foundActor->params & ENAN_8000)) { break; } } @@ -720,29 +720,29 @@ EnDoor* func_80B53B3C(PlayState* play, s32 scheduleOutputResult) { } s32 func_80B53BA8(EnAn* this, PlayState* play) { - s8 temp_a3 = this->actor.objectSlot; - s8 var_v1 = -1; + s8 originalObjectSlot = this->actor.objectSlot; + s8 otherObjectSlot = -1; s32 ret = 0; - if ((this->animIndex >= 0x19) && (this->an4ObjIndex >= 0)) { - var_v1 = this->an4ObjIndex; - } else if ((this->animIndex >= 0x15) && (this->an3ObjIndex >= 0)) { - var_v1 = this->an3ObjIndex; - } else if ((this->animIndex >= 0x11) && (this->an2ObjIndex >= 0)) { - var_v1 = this->an2ObjIndex; + if ((this->animIndex >= 0x19) && (this->an4ObjectSlot >= 0)) { + otherObjectSlot = this->an4ObjectSlot; + } else if ((this->animIndex >= 0x15) && (this->an3ObjectSlot >= 0)) { + otherObjectSlot = this->an3ObjectSlot; + } else if ((this->animIndex >= 0x11) && (this->an2ObjectSlot >= 0)) { + otherObjectSlot = this->an2ObjectSlot; } else if (this->animIndex < 0x11) { - var_v1 = temp_a3; + otherObjectSlot = originalObjectSlot; } - if (var_v1 < 0) { + if (otherObjectSlot < 0) { return 0; } - if (var_v1 >= 0) { - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[var_v1].segment); + if (otherObjectSlot >= 0) { + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); this->skelAnime.playSpeed = this->unk_368; ret = SkelAnime_Update(&this->skelAnime); - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[temp_a3].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); } return ret; @@ -837,22 +837,22 @@ AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { }; s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { - s8 temp_t1 = this->actor.objectSlot; - s8 var_v1 = -1; + s8 originalObjectSlot = this->actor.objectSlot; + s8 otherObjectSlot = -1; s32 var_t0 = 0; s32 var_t2 = 0; - if ((animIndex >= 25) && (this->an4ObjIndex >= 0)) { - var_v1 = this->an4ObjIndex; - } else if ((animIndex >= 21) && (this->an3ObjIndex >= 0)) { - var_v1 = this->an3ObjIndex; - } else if ((animIndex >= 17) && (this->an2ObjIndex >= 0)) { - var_v1 = this->an2ObjIndex; + if ((animIndex >= 25) && (this->an4ObjectSlot >= 0)) { + otherObjectSlot = this->an4ObjectSlot; + } else if ((animIndex >= 21) && (this->an3ObjectSlot >= 0)) { + otherObjectSlot = this->an3ObjectSlot; + } else if ((animIndex >= 17) && (this->an2ObjectSlot >= 0)) { + otherObjectSlot = this->an2ObjectSlot; } else if (animIndex < 17) { - var_v1 = temp_t1; + otherObjectSlot = originalObjectSlot; } - if (var_v1 < 0) { + if (otherObjectSlot < 0) { return 0; } @@ -885,12 +885,12 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { break; } - if ((var_t0 != 0) && (var_v1 >= 0)) { - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[var_v1].segment); + if ((var_t0 != 0) && (otherObjectSlot >= 0)) { + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); this->animIndex = animIndex; var_t2 = SubS_ChangeAnimationByInfoS(&this->skelAnime, D_80B58BF4, animIndex); this->unk_368 = this->skelAnime.playSpeed; - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[temp_t1].segment); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); } return var_t2; @@ -1026,8 +1026,8 @@ Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { s32 pad; - s8 sp53 = this->actor.objectSlot; - s8 temp_a2; + s8 originalObjectSlot = this->actor.objectSlot; + s8 otherObjectSlot; OPEN_DISPS(play->state.gfxCtx); @@ -1049,33 +1049,33 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { break; case 0x1: - temp_a2 = this->maskKerfayObjIndex; - if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[temp_a2].segment); + otherObjectSlot = this->maskKerfayObjectSlot; + if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[otherObjectSlot].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, object_mask_kerfay_DL_000D40); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; case 0x2: - temp_a2 = this->an2ObjIndex; - if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); + otherObjectSlot = this->an2ObjectSlot; + if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; case 0x3: - temp_a2 = this->an3ObjIndex; - if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (temp_a2 >= 0)) { - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); + otherObjectSlot = this->an3ObjectSlot; + if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; @@ -1086,14 +1086,14 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { break; case 0x5: - temp_a2 = this->msmoObjIndex; - if ((this->unk_3B4 != 0) && (temp_a2 >= 0)) { + otherObjectSlot = this->msmoObjectSlot; + if ((this->unk_3B4 != 0) && (otherObjectSlot >= 0)) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[temp_a2].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); - gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[sp53].segment); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; } @@ -1965,7 +1965,7 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { } s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u8 actorCategory, s16 actorId) { - u8 sp4F = this->actor.params & 0xFF; + u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3s* temp_v0_3; Vec3f sp3C; Vec3f sp30; @@ -1977,7 +1977,7 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u this->unk_1DC = NULL; if (D_80B58618[scheduleOutput->result] >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, sp4F, D_80B58618[scheduleOutput->result]); + this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, D_80B58618[scheduleOutput->result]); } if ((var_v1 != NULL) && (var_v1->update != NULL)) { @@ -2070,7 +2070,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 sp56 = SCHEDULE_TIME_NOW; - u8 pathIndex = this->actor.params & 0xFF; + u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); EnDoor* sp50; Vec3s* temp_v0_2; Vec3f sp40; @@ -2151,7 +2151,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 temp_t0 = (gSaveContext.save.time - 0x3FFC); u16 var_v1_2; - u8 sp2B = this->actor.params & 0xFF; + u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); s32 pad; s32 var_v1 = 0; s32 temp_a3; @@ -2160,7 +2160,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { temp_a3 = D_80B58618[scheduleOutput->result]; if (temp_a3 >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, sp2B, temp_a3); + this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, temp_a3); } if ((this->unk_1DC != NULL) && (this->unk_1DC->count < 3)) { @@ -2271,7 +2271,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { - u8 pathIndex = this->actor.params & 0xFF; + u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3f sp40; Vec3f sp34; Vec3s* temp_v0_2; @@ -2308,7 +2308,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { - u8 pathIndex = this->actor.params & 0xFF; + u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3f sp40; Vec3f sp34; Vec3s* temp_v0_2; // sp30 @@ -2851,7 +2851,7 @@ void func_80B577F0(EnAn* this, PlayState* play) { Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); - if (this->actor.params & 0x8000) { + if (this->actor.params & ENAN_8000) { this->unk_3C0 = 1; } @@ -2869,7 +2869,7 @@ void func_80B578F8(EnAn* this, PlayState* play) { this->unk_384 = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); - if (!(this->actor.params & 0x8000) && (this->unk_3C0 == 0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { + if (!(this->actor.params & ENAN_8000) && (this->unk_3C0 == 0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { Actor_Kill(&this->actor); return; } @@ -2963,10 +2963,10 @@ void EnAn_Init(Actor* thisx, PlayState* play) { s32 temp_v0; if (play->sceneId != SCENE_YADOYA) { - this->actor.params &= (s16)~0x8000; + this->actor.params &= (s16)~ENAN_8000; } - temp_v1 = ENAN_GET_8000(&this->actor); + temp_v1 = (this->actor.params & ENAN_8000) >> 0xF; temp_v0 = CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40); if (((temp_v0 == 0) && (temp_v1 == 1)) || ((temp_v0 != 0) && (temp_v1 == 0))) { diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 021eed75a..99a25cf37 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -10,9 +10,9 @@ typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); typedef void (*EnAnUnkFunc)(struct EnAn*, PlayState*); typedef s32 (*MsgEventFunc)(Actor*, PlayState*); -// path index : 0xFF - -#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) +#define ENAN_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF) +#define ENAN_8000 0x8000 +//#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) typedef struct EnAn { /* 0x000 */ Actor actor; @@ -29,11 +29,11 @@ typedef struct EnAn { /* 0x1FC */ s32 unk_1FC; /* 0x200 */ u8 unk_200; // enum? // schedule result /* 0x204 */ s32* msgEventScript; - /* 0x208 */ s8 an2ObjIndex; - /* 0x209 */ s8 an3ObjIndex; - /* 0x20A */ s8 maskKerfayObjIndex; - /* 0x20B */ s8 an4ObjIndex; - /* 0x20C */ s8 msmoObjIndex; + /* 0x208 */ s8 an2ObjectSlot; + /* 0x209 */ s8 an3ObjectSlot; + /* 0x20A */ s8 maskKerfayObjectSlot; + /* 0x20B */ s8 an4ObjectSlot; + /* 0x20C */ s8 msmoObjectSlot; /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 unk_214; // curRoom.num /* 0x215 */ s8 unk_215; From c3f13861aa95c11ecdbefed0d775e4352a7a16f4 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 9 Oct 2023 13:37:30 -0300 Subject: [PATCH 21/78] schedule result enum --- src/overlays/actors/ovl_En_An/z_en_an.c | 855 +++++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.h | 4 +- tools/disasm/functions.txt | 2 +- 3 files changed, 466 insertions(+), 395 deletions(-) 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 56f36972c..eba7eaef2 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -27,6 +27,74 @@ void func_80B577F0(EnAn* this, PlayState* play); void func_80B578F8(EnAn* this, PlayState* play); void func_80B57A44(EnAn* this, PlayState* play); +typedef enum AnjuScheduleResult { + /* 0 */ ANJU_SCH_NONE, + /* 1 */ ANJU_SCH_1, + /* 2 */ ANJU_SCH_2, + /* 3 */ ANJU_SCH_3, + /* 4 */ ANJU_SCH_4, + /* 5 */ ANJU_SCH_5, + /* 6 */ ANJU_SCH_6, + /* 7 */ ANJU_SCH_7, + /* 8 */ ANJU_SCH_8, + /* 9 */ ANJU_SCH_9, + /* 10 */ ANJU_SCH_A, + /* 11 */ ANJU_SCH_B, + /* 12 */ ANJU_SCH_C, + /* 13 */ ANJU_SCH_D, + /* 14 */ ANJU_SCH_E, + /* 15 */ ANJU_SCH_F, + /* 16 */ ANJU_SCH_10, + /* 17 */ ANJU_SCH_11, + /* 18 */ ANJU_SCH_12, + /* 19 */ ANJU_SCH_13, + /* 20 */ ANJU_SCH_14, + /* 21 */ ANJU_SCH_15, + /* 22 */ ANJU_SCH_16, + /* 23 */ ANJU_SCH_17, + /* 24 */ ANJU_SCH_18, + /* 25 */ ANJU_SCH_19, + /* 26 */ ANJU_SCH_1A, + /* 27 */ ANJU_SCH_1B, + /* 28 */ ANJU_SCH_1C, + /* 29 */ ANJU_SCH_1D, + /* 30 */ ANJU_SCH_1E, + /* 31 */ ANJU_SCH_1F, + /* 32 */ ANJU_SCH_20, + /* 33 */ ANJU_SCH_21, + /* 34 */ ANJU_SCH_22, + /* 35 */ ANJU_SCH_23, + /* 36 */ ANJU_SCH_24, + /* 37 */ ANJU_SCH_25, + /* 38 */ ANJU_SCH_26, + /* 39 */ ANJU_SCH_27, + /* 40 */ ANJU_SCH_28, + /* 41 */ ANJU_SCH_29, + /* 42 */ ANJU_SCH_2A, + /* 43 */ ANJU_SCH_2B, + /* 44 */ ANJU_SCH_2C, + /* 45 */ ANJU_SCH_2D, + /* 46 */ ANJU_SCH_2E, + /* 47 */ ANJU_SCH_2F, + /* 48 */ ANJU_SCH_30, + /* 49 */ ANJU_SCH_31, + /* 50 */ ANJU_SCH_32, + /* 51 */ ANJU_SCH_33, + /* 52 */ ANJU_SCH_34, + /* 53 */ ANJU_SCH_35, + /* 54 */ ANJU_SCH_36, + /* 55 */ ANJU_SCH_37, + /* 56 */ ANJU_SCH_38, + /* 57 */ ANJU_SCH_39, + /* 58 */ ANJU_SCH_3A, + /* 59 */ ANJU_SCH_3B, + /* 60 */ ANJU_SCH_3C, + /* 61 */ ANJU_SCH_3D, + /* 62 */ ANJU_SCH_3E, + /* 63 */ ANJU_SCH_3F, + /* 64 */ ANJU_SCH_MAX // ? +} AnjuScheduleResult; + static u8 sScheduleScript[] = { /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005), /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A), @@ -61,30 +129,30 @@ static u8 sScheduleScript[] = { /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), /* 0x0B9 */ SCHEDULE_CMD_RET_TIME( 0, 0, 6, 0, 23), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, 49), - /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, 31), - /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, 30), - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, 48), - /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), - /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), - /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, 18), - /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, 17), - /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, 18), - /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, 16), - /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, 18), - /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, 46), - /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, 29), - /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, 28), - /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, 45), - /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, 27), - /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 44), - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, 21), - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, 43), - /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, 26), - /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 42), - /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, 14), - /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, 40), - /* 0x14A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, 18), + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), + /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F), + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12), + /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11), + /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12), + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10), + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12), + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), + /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), + /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), + /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), + /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), + /* 0x14A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, ANJU_SCH_12), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B), @@ -102,18 +170,18 @@ static u8 sScheduleScript[] = { /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(), - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, 24), - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, 30), - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, 48), - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, 18), - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, 35), - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, 51), - /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, 34), - /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, 33), - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, 50), - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, 32), + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E), + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30), + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12), + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23), + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33), + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22), + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21), + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32), + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20), /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6), /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC), /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202), @@ -122,30 +190,30 @@ static u8 sScheduleScript[] = { /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214), /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A), /* 0x21A */ SCHEDULE_CMD_RET_NONE(), - /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, 38), - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, 59), - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, 58), - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, 55), - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, 54), - /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, 37), + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26), + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B), + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A), + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37), + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36), + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25), /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243), /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249), /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F), /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255), /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B), /* 0x25B */ SCHEDULE_CMD_RET_NONE(), - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, 63), - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, 62), - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, 61), - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, 60), + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F), + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E), + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D), + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C), /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278), /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E), /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284), /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A), /* 0x28A */ SCHEDULE_CMD_RET_NONE(), - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, 57), - /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, 3), - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, 56), + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39), + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3), + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38), /* 0x29D */ SCHEDULE_CMD_RET_NONE(), /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3), /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L( 6, 0, 10, 55, 0x38A - 0x2AA), @@ -168,25 +236,25 @@ static u8 sScheduleScript[] = { /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), /* 0x31D */ SCHEDULE_CMD_RET_NONE(), - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, 24), - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, 30), - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, 48), - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, 19), - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, 47), - /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, 18), - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, 46), - /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, 29), - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, 28), - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, 45), - /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, 27), - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, 44), - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, 21), - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, 43), - /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, 26), - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 42), - /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, 14), - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, 40), - /* 0x38A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, 18), + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12), + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), + /* 0x38A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, ANJU_SCH_12), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A), @@ -197,15 +265,15 @@ static u8 sScheduleScript[] = { /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6), /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), /* 0x3BC */ SCHEDULE_CMD_RET_NONE(), - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, 39), - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 53), - /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, 36), - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, 52), - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, 22), + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, ANJU_SCH_16), /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(), - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, 12), + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C), /* 0x3EC */ SCHEDULE_CMD_RET_NONE(), /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1), /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 6, 0, 11, 0, 0x440 - 0x3F7), @@ -216,83 +284,84 @@ static u8 sScheduleScript[] = { /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415), /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 5, 0, 6, 0, 0x41C - 0x41B), /* 0x41B */ SCHEDULE_CMD_RET_NONE(), - /* 0x41C */ SCHEDULE_CMD_RET_TIME( 5, 0, 6, 0, 1), - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, 1), - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, 39), - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, 53), - /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, 36), - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, 52), - /* 0x440 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, 22), + /* 0x41C */ SCHEDULE_CMD_RET_TIME( 5, 0, 6, 0, ANJU_SCH_1), + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1), + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x440 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, ANJU_SCH_16), /* 0x446 */ SCHEDULE_CMD_RET_NONE(), /* 0x447 */ SCHEDULE_CMD_RET_NONE(), }; -s32 D_80B58618[0x40] = { - -1, - 0xA, - -1, - 0, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - -1, - 0, - -1, - 0xA, - 0xA, - 0xA, - 0xB, - -1, - 4, - 0x16, - 0xF, - -1, - -1, - 3, - 6, - 8, - 9, - 0xD, - 0xE, - 0x10, - 0x12, - 0x13, - 0x15, - 0x17, - 0, - 5, - 0x19, - 0, - 1, - 2, - 4, - 5, - 7, - 0xA, - 0xB, - 0xC, - 0xF, - 0x11, - 0x14, - 0x16, - 0x18, - 1, - 2, - 0, - 1, - 3, - 4, - 0, - 1, - 2, - 3, +s32 D_80B58618[ANJU_SCH_MAX] = { + -1, // ANJU_SCH_NONE + 10, // ANJU_SCH_1 + -1, // ANJU_SCH_2 + 0, // ANJU_SCH_3 + -1, // ANJU_SCH_4 + -1, // ANJU_SCH_5 + -1, // ANJU_SCH_6 + -1, // ANJU_SCH_7 + -1, // ANJU_SCH_8 + -1, // ANJU_SCH_9 + -1, // ANJU_SCH_A + -1, // ANJU_SCH_B + -1, // ANJU_SCH_C + -1, // ANJU_SCH_D + 0, // ANJU_SCH_E + -1, // ANJU_SCH_F + 10, // ANJU_SCH_10 + 10, // ANJU_SCH_11 + 10, // ANJU_SCH_12 + 11, // ANJU_SCH_13 + -1, // ANJU_SCH_14 + 4, // ANJU_SCH_15 + 22, // ANJU_SCH_16 + 15, // ANJU_SCH_17 + -1, // ANJU_SCH_18 + -1, // ANJU_SCH_19 + 3, // ANJU_SCH_1A + 6, // ANJU_SCH_1B + 8, // ANJU_SCH_1C + 9, // ANJU_SCH_1D + 13, // ANJU_SCH_1E + 14, // ANJU_SCH_1F + 16, // ANJU_SCH_20 + 18, // ANJU_SCH_21 + 19, // ANJU_SCH_22 + 21, // ANJU_SCH_23 + 23, // ANJU_SCH_24 + 0, // ANJU_SCH_25 + 5, // ANJU_SCH_26 + 25, // ANJU_SCH_27 + 0, // ANJU_SCH_28 + 1, // ANJU_SCH_29 + 2, // ANJU_SCH_2A + 4, // ANJU_SCH_2B + 5, // ANJU_SCH_2C + 7, // ANJU_SCH_2D + 10, // ANJU_SCH_2E + 11, // ANJU_SCH_2F + 12, // ANJU_SCH_30 + 15, // ANJU_SCH_31 + 17, // ANJU_SCH_32 + 20, // ANJU_SCH_33 + 22, // ANJU_SCH_34 + 24, // ANJU_SCH_35 + 1, // ANJU_SCH_36 + 2, // ANJU_SCH_37 + 0, // ANJU_SCH_38 + 1, // ANJU_SCH_39 + 3, // ANJU_SCH_3A + 4, // ANJU_SCH_3B + 0, // ANJU_SCH_3C + 1, // ANJU_SCH_3D + 2, // ANJU_SCH_3E + 3, // ANJU_SCH_3F }; + s32 D_80B58718[0x1B] = { 0x560800, 0x44090000, @@ -903,7 +972,7 @@ void func_80B53ED4(EnAn* this, PlayState* play) { s32 pad; Vec3f sp24; - if (this->unk_200 == 0x19) { + if (this->scheduleResult == ANJU_SCH_19) { Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); this->unk_190.dim.radius = 20; Math_Vec3f_ToVec3s(&this->unk_190.dim.pos, &sp24); @@ -1353,47 +1422,47 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { s32* func_80B54DF4(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); - switch (this->unk_200) { - case 0x15: + switch (this->scheduleResult) { + case ANJU_SCH_15: this->msgEventFunc = func_80B54A94; return D_80B58808; - case 0x10: + case ANJU_SCH_10: this->msgEventFunc = func_80B547C8; return D_80B58718; - case 0x11: + case ANJU_SCH_11: this->msgEventFunc = func_80B5492C; return D_80B58784; - case 0xE: + case ANJU_SCH_E: this->msgEventFunc = func_80B54C5C; return D_80B58954; - case 0xC: + case ANJU_SCH_C: return D_80B5899C; - case 0x19: + case ANJU_SCH_19: return D_80B58B90; default: if (player->transformation == PLAYER_FORM_DEKU) { - switch (this->unk_200) { - case 0x1: + switch (this->scheduleResult) { + case ANJU_SCH_1: return D_80B58AE8; - case 0x28: - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2F: + case ANJU_SCH_28: + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: + case ANJU_SCH_2F: return D_80B58B7C; - case 0x3: + case ANJU_SCH_3: return D_80B58A24; - case 0x31: + case ANJU_SCH_31: return D_80B589FC; default: @@ -1401,16 +1470,16 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { } } else { if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { - if (this->unk_200 == 0x31) { + if (this->scheduleResult == ANJU_SCH_31) { return D_80B58B88; } - if (this->unk_200 == 0x17) { + if (this->scheduleResult == ANJU_SCH_17) { this->msgEventFunc = func_80B54BC4; return D_80B589AC; } - if (this->unk_200 == 3) { + if (this->scheduleResult == ANJU_SCH_3) { this->msgEventFunc = func_80B54D18; return D_80B58B3C; } @@ -1428,11 +1497,11 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { } if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - if (this->unk_200 == 0x17) { + if (this->scheduleResult == ANJU_SCH_17) { this->msgEventFunc = func_80B54BC4; return D_80B589AC; } - if (this->unk_200 == 3) { + if (this->scheduleResult == ANJU_SCH_3) { this->msgEventFunc = func_80B54D18; return D_80B58AF4; } @@ -1441,50 +1510,50 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { } } - switch (this->unk_200) { - case 0x1: + switch (this->scheduleResult) { + case ANJU_SCH_1: return D_80B58AE8; - case 0x28: + case ANJU_SCH_28: return D_80B5894C; - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: return D_80B58980; - case 0x3: + case ANJU_SCH_3: this->msgEventFunc = func_80B54D18; return D_80B58AF4; - case 0x12: + case ANJU_SCH_12: if (gSaveContext.save.day >= 2) { return D_80B58A3C; } return D_80B5885C; - case 0x13: - case 0x2F: + case ANJU_SCH_13: + case ANJU_SCH_2F: return D_80B58938; - case 0x16: + case ANJU_SCH_16: return D_80B58988; - case 0x17: + case ANJU_SCH_17: return D_80B589FC; - case 0x30: + case ANJU_SCH_30: return D_80B58944; - case 0x31: + case ANJU_SCH_31: if (player->transformation == PLAYER_FORM_HUMAN) { return D_80B58B88; } return D_80B589FC; - case 0x34: - case 0x35: + case ANJU_SCH_34: + case ANJU_SCH_35: return D_80B58994; default: @@ -1508,11 +1577,11 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->actor.child = this->unk_218; this->msgEventScript = func_80B54DF4(this, play); - if ((this->unk_200 == 1) || (this->unk_200 == 3) || (this->unk_200 == 0x12) || (this->unk_200 == 0x13) || (this->unk_200 == 0x17) || (this->unk_200 == 0x16) || (this->unk_200 == 0x28) || (this->unk_200 == 0x2A) || (this->unk_200 == 0x2B) || (this->unk_200 == 0x2C) || (this->unk_200 == 0x2D) || (this->unk_200 == 0x2F) || (this->unk_200 == 0x30) || (this->unk_200 == 0x31) || (this->unk_200 == 0x34) || (this->unk_200 == 0x35)) { + if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || (this->scheduleResult == ANJU_SCH_2B) || (this->scheduleResult == ANJU_SCH_2C) || (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || (this->scheduleResult == ANJU_SCH_30) || (this->scheduleResult == ANJU_SCH_31) || (this->scheduleResult == ANJU_SCH_34) || (this->scheduleResult == ANJU_SCH_35)) { this->unk_360 |= 0x20; } - if ((this->unk_200 == 3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { + if ((this->scheduleResult == ANJU_SCH_3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { this->unk_360 &= ~0x20; } @@ -1602,35 +1671,35 @@ void func_80B554E8(EnAn* this) { } s32 func_80B555C8(EnAn* this, PlayState* play) { - switch (this->unk_200) { - case 0x10: - case 0x11: - case 0x12: - case 0x13: - case 0x17: + switch (this->scheduleResult) { + case ANJU_SCH_10: + case ANJU_SCH_11: + case ANJU_SCH_12: + case ANJU_SCH_13: + case ANJU_SCH_17: EnAn_ChangeAnim(this, play, ENAN_ANIM_1); break; - case 0x16: + case ANJU_SCH_16: EnAn_ChangeAnim(this, play, ENAN_ANIM_23); this->unk_360 |= 0x2000; break; - case 0xE: + case ANJU_SCH_E: EnAn_ChangeAnim(this, play, ENAN_ANIM_12); break; - case 0x15: + case ANJU_SCH_15: EnAn_ChangeAnim(this, play, ENAN_ANIM_15); break; - case 0x2F: - case 0x31: + case ANJU_SCH_2F: + case ANJU_SCH_31: EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; - case 0x34: - case 0x35: + case ANJU_SCH_34: + case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); this->unk_360 |= 0x2000; break; @@ -1943,20 +2012,20 @@ s32 func_80B55914(EnAn* this, PlayState* play) { Actor* func_80B55D20(EnAn* this, PlayState* play) { Actor* actor; - switch (this->unk_200) { + switch (this->scheduleResult) { default: actor = &GET_PLAYER(play)->actor; break; - case 0x15: + case ANJU_SCH_15: actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_NB); break; - case 0x10: + case ANJU_SCH_10: actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_PM); break; - case 0x11: + case ANJU_SCH_11: actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_IG); break; } @@ -2105,34 +2174,36 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; this->unk_37A = sp56 - scheduleOutput->time0; - switch (scheduleOutput->result) { /* switch 1 */ - case 0x1B: /* switch 1 */ - case 0x1C: /* switch 1 */ - case 0x20: /* switch 1 */ - case 0x21: /* switch 1 */ - case 0x22: /* switch 1 */ - case 0x23: /* switch 1 */ - case 0x25: /* switch 1 */ - case 0x26: /* switch 1 */ + switch (scheduleOutput->result) { + case ANJU_SCH_1B: + case ANJU_SCH_1C: + case ANJU_SCH_20: + case ANJU_SCH_21: + case ANJU_SCH_22: + case ANJU_SCH_23: + case ANJU_SCH_25: + case ANJU_SCH_26: this->unk_38A = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; } - switch (scheduleOutput->result) { /* switch 2 */ - case 0x1A: /* switch 2 */ - case 0x1B: /* switch 2 */ - case 0x1C: /* switch 2 */ + switch (scheduleOutput->result) { + case ANJU_SCH_1A: + case ANJU_SCH_1B: + case ANJU_SCH_1C: this->unk_360 |= 0x900; EnAn_ChangeAnim(this, play, ENAN_ANIM_16); break; - case 0x24: /* switch 2 */ - case 0x27: /* switch 2 */ + + case ANJU_SCH_24: + case ANJU_SCH_27: this->unk_360 |= 0x2100; EnAn_ChangeAnim(this, play, ENAN_ANIM_22); break; - default: /* switch 2 */ + + default: this->unk_360 |= 0x100; EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; @@ -2168,7 +2239,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if (this->unk_1DC != NULL) { - if ((this->unk_200 < 0x28) && (this->unk_200 != 0) && (this->unk_384 >= 0)) { + if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && (this->unk_384 >= 0)) { var_v1_2 = temp_t0; } else { var_v1_2 = scheduleOutput->time0; @@ -2188,41 +2259,41 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 &= ~8; this->unk_360 &= ~0x10; - switch (scheduleOutput->result) { /* switch 1 */ - case 0x2C: /* switch 1 */ - case 0x2D: /* switch 1 */ - case 0x32: /* switch 1 */ - case 0x33: /* switch 1 */ - case 0x36: /* switch 1 */ - case 0x37: /* switch 1 */ - case 0x38: /* switch 1 */ - case 0x39: /* switch 1 */ - case 0x3A: /* switch 1 */ - case 0x3B: /* switch 1 */ - case 0x3C: /* switch 1 */ - case 0x3D: /* switch 1 */ - case 0x3E: /* switch 1 */ - case 0x3F: /* switch 1 */ + switch (scheduleOutput->result) { + case ANJU_SCH_2C: + case ANJU_SCH_2D: + case ANJU_SCH_32: + case ANJU_SCH_33: + case ANJU_SCH_36: + case ANJU_SCH_37: + case ANJU_SCH_38: + case ANJU_SCH_39: + case ANJU_SCH_3A: + case ANJU_SCH_3B: + case ANJU_SCH_3C: + case ANJU_SCH_3D: + case ANJU_SCH_3E: + case ANJU_SCH_3F: this->unk_38A = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; } - switch (scheduleOutput->result) { /* switch 2 */ - case 0x2A: /* switch 2 */ - case 0x2B: /* switch 2 */ + switch (scheduleOutput->result) { + case ANJU_SCH_2A: + case ANJU_SCH_2B: SubS_SetOfferMode(&this->unk_360, 3U, 7U); /* fallthrough */ - case 0x2C: /* switch 2 */ - case 0x2D: /* switch 2 */ + case ANJU_SCH_2C: + case ANJU_SCH_2D: EnAn_ChangeAnim(this, play, ENAN_ANIM_16); this->unk_360 |= 0x300; this->unk_360 |= 0x800; break; - case 0x34: /* switch 2 */ - case 0x35: /* switch 2 */ + case ANJU_SCH_34: + case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); SubS_SetOfferMode(&this->unk_360, 3U, 7U); @@ -2230,35 +2301,35 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_360 |= 0x2000; break; - case 0x32: /* switch 2 */ - case 0x33: /* switch 2 */ + case ANJU_SCH_32: + case ANJU_SCH_33: EnAn_ChangeAnim(this, play, ENAN_ANIM_7); this->unk_360 |= 0x300; break; - case 0x36: /* switch 2 */ - case 0x37: /* switch 2 */ - case 0x38: /* switch 2 */ - case 0x39: /* switch 2 */ - case 0x3A: /* switch 2 */ - case 0x3B: /* switch 2 */ - case 0x3C: /* switch 2 */ - case 0x3D: /* switch 2 */ - case 0x3E: /* switch 2 */ - case 0x3F: /* switch 2 */ + case ANJU_SCH_36: + case ANJU_SCH_37: + case ANJU_SCH_38: + case ANJU_SCH_39: + case ANJU_SCH_3A: + case ANJU_SCH_3B: + case ANJU_SCH_3C: + case ANJU_SCH_3D: + case ANJU_SCH_3E: + case ANJU_SCH_3F: EnAn_ChangeAnim(this, play, ENAN_ANIM_18); this->unk_360 |= 0x300; this->unk_360 |= 0x1000; break; - case 0x28: /* switch 2 */ - case 0x2F: /* switch 2 */ - case 0x30: /* switch 2 */ - case 0x31: /* switch 2 */ + case ANJU_SCH_28: + case ANJU_SCH_2F: + case ANJU_SCH_30: + case ANJU_SCH_31: SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_360 |= 0x300; /* fallthrough */ - default: /* switch 2 */ + default: EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; } @@ -2294,7 +2365,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); Math_Vec3f_Copy(&this->actor.world.pos, &sp40); Math_Vec3f_Copy(&this->actor.prevPos, &sp40); - if (scheduleOutput->result == 0x16) { + if (scheduleOutput->result == ANJU_SCH_16) { EnAn_ChangeAnim(this, play, ENAN_ANIM_23); SubS_SetOfferMode(&this->unk_360, 3U, 7U); @@ -2334,21 +2405,21 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.prevPos, &sp40); switch (scheduleOutput->result) { - case 0x13: + case ANJU_SCH_13: this->actor.world.rot.y += 0x7FF8; /* fallthrough */ - case 0x12: - case 0x17: + case ANJU_SCH_12: + case ANJU_SCH_17: EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->unk_360, 3U, 7U); this->unk_37A = 0; this->unk_360 |= 0x300; - if (scheduleOutput->result == 0x12) { + if (scheduleOutput->result == ANJU_SCH_12) { this->unk_374 = 70.0f; } break; - case 0x3: + case ANJU_SCH_3: this->unk_360 |= 0x300; this->unk_360 |= 0x1000; @@ -2367,7 +2438,8 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; - case 0xE: + + case ANJU_SCH_E: EnAn_ChangeAnim(this, play, ENAN_ANIM_12); SubS_SetOfferMode(&this->unk_360, 3U, 7U); @@ -2384,7 +2456,6 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; Vec3s D_80B58E88 = { 0, 0, 0 }; - s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 pad; @@ -2392,7 +2463,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58E88); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); - if (scheduleOutput->result == 0xC) { + if (scheduleOutput->result == ANJU_SCH_C) { EnAn_ChangeAnim(this, play, ENAN_ANIM_11); SubS_SetOfferMode(&this->unk_360, 3U, 7U); @@ -2418,12 +2489,12 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); switch (scheduleOutput->result) { - case 0x1: + case ANJU_SCH_1: SubS_SetOfferMode(&this->unk_360, 3U, 7U); EnAn_ChangeAnim(this, play, ENAN_ANIM_9); break; - case 0x18: + case ANJU_SCH_18: EnAn_ChangeAnim(this, play, ENAN_ANIM_11); this->unk_38A = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; @@ -2452,7 +2523,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return 1; } -s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret; this->actor.flags |= ACTOR_FLAG_TARGETABLE; @@ -2464,83 +2535,83 @@ s32 func_80B56D28(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_374 = 40.0f; switch (scheduleOutput->result) { - case 0x10: + case ANJU_SCH_10: ret = func_80B5600C(this, play, scheduleOutput); break; - case 0x11: + case ANJU_SCH_11: ret = func_80B56094(this, play, scheduleOutput); break; - case 0x15: + case ANJU_SCH_15: ret = func_80B5611C(this, play, scheduleOutput); break; - case 0xC: + case ANJU_SCH_C: ret = func_80B56B00(this, play, scheduleOutput); break; - case 0x1: - case 0x18: + case ANJU_SCH_1: + case ANJU_SCH_18: ret = func_80B56BC0(this, play, scheduleOutput); break; - case 0x3: - case 0xE: - case 0x12: - case 0x13: - case 0x17: + case ANJU_SCH_3: + case ANJU_SCH_E: + case ANJU_SCH_12: + case ANJU_SCH_13: + case ANJU_SCH_17: ret = func_80B56880(this, play, scheduleOutput); break; - case 0x16: + case ANJU_SCH_16: ret = func_80B56744(this, play, scheduleOutput); break; - case 0x19: + case ANJU_SCH_19: ret = func_80B56CAC(this, play, scheduleOutput); break; - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x21: - case 0x22: - case 0x23: - case 0x24: - case 0x25: - case 0x26: - case 0x27: + case ANJU_SCH_1A: + case ANJU_SCH_1B: + case ANJU_SCH_1C: + case ANJU_SCH_1D: + case ANJU_SCH_1E: + case ANJU_SCH_1F: + case ANJU_SCH_20: + case ANJU_SCH_21: + case ANJU_SCH_22: + case ANJU_SCH_23: + case ANJU_SCH_24: + case ANJU_SCH_25: + case ANJU_SCH_26: + case ANJU_SCH_27: ret = func_80B561A4(this, play, scheduleOutput); break; - case 0x28: - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2E: - case 0x2F: - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: + case ANJU_SCH_28: + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: + case ANJU_SCH_2E: + case ANJU_SCH_2F: + case ANJU_SCH_30: + case ANJU_SCH_31: + case ANJU_SCH_32: + case ANJU_SCH_33: + case ANJU_SCH_34: + case ANJU_SCH_35: + case ANJU_SCH_36: + case ANJU_SCH_37: + case ANJU_SCH_38: + case ANJU_SCH_39: + case ANJU_SCH_3A: + case ANJU_SCH_3B: + case ANJU_SCH_3C: + case ANJU_SCH_3D: + case ANJU_SCH_3E: + case ANJU_SCH_3F: ret = func_80B56418(this, play, scheduleOutput); break; @@ -2566,7 +2637,7 @@ s32 func_80B56E44(EnAn* this, PlayState* play) { } s32 func_80B56EB4(EnAn* this, PlayState* play) { - EnDoor* sp44 = func_80B53B3C(play, this->unk_200); + EnDoor* sp44 = func_80B53B3C(play, this->scheduleResult); Vec3f sp38; f32 temp_fv0; s32 pad; @@ -2649,8 +2720,8 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { } s32 func_80B572D4(EnAn* this, PlayState* play) { - switch (this->unk_200) { - case 0x17: + switch (this->scheduleResult) { + case ANJU_SCH_17: if ((func_80B55F8C(play) != 0) && (func_80B55ECC(this) != 0)) { this->unk_360 |= 0x20; } else { @@ -2658,7 +2729,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { } break; - case 0x1: + case ANJU_SCH_1: if (func_80B55ECC(this) != 0) { this->unk_360 |= 0x20; } else { @@ -2666,8 +2737,8 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { } break; - case 0x12: - case 0x13: + case ANJU_SCH_12: + case ANJU_SCH_13: if (func_80B55ECC(this) != 0) { this->unk_360 |= 0x20; } else { @@ -2675,7 +2746,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { } break; - case 0x16: + case ANJU_SCH_16: if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_23)) { Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } @@ -2763,78 +2834,78 @@ s32 func_80B57674(EnAn* this, PlayState* play) { } void func_80B57718(EnAn* this, PlayState* play) { - switch (this->unk_200) { - case 0x10: - case 0x11: - case 0x15: + switch (this->scheduleResult) { + case ANJU_SCH_10: + case ANJU_SCH_11: + case ANJU_SCH_15: func_80B56E44(this, play); break; - case 0x3: + case ANJU_SCH_3: func_80B573F4(this, play); break; - case 0x1: + case ANJU_SCH_1: func_80B575BC(this, play); break; - case 0x19: + case ANJU_SCH_19: func_80B57674(this, play); break; - case 0xC: - case 0xE: - case 0x12: - case 0x13: - case 0x16: - case 0x18: + case ANJU_SCH_C: + case ANJU_SCH_E: + case ANJU_SCH_12: + case ANJU_SCH_13: + case ANJU_SCH_16: + case ANJU_SCH_18: func_80B572D4(this, play); break; - case 0x17: + case ANJU_SCH_17: func_80B572D4(this, play); break; - case 0x1A: - case 0x1B: - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x21: - case 0x22: - case 0x23: - case 0x24: - case 0x25: - case 0x26: - case 0x27: + case ANJU_SCH_1A: + case ANJU_SCH_1B: + case ANJU_SCH_1C: + case ANJU_SCH_1D: + case ANJU_SCH_1E: + case ANJU_SCH_1F: + case ANJU_SCH_20: + case ANJU_SCH_21: + case ANJU_SCH_22: + case ANJU_SCH_23: + case ANJU_SCH_24: + case ANJU_SCH_25: + case ANJU_SCH_26: + case ANJU_SCH_27: func_80B56EB4(this, play); break; - case 0x28: - case 0x2A: - case 0x2B: - case 0x2C: - case 0x2D: - case 0x2E: - case 0x2F: - case 0x30: - case 0x31: - case 0x32: - case 0x33: - case 0x34: - case 0x35: - case 0x36: - case 0x37: - case 0x38: - case 0x39: - case 0x3A: - case 0x3B: - case 0x3C: - case 0x3D: - case 0x3E: - case 0x3F: + case ANJU_SCH_28: + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: + case ANJU_SCH_2E: + case ANJU_SCH_2F: + case ANJU_SCH_30: + case ANJU_SCH_31: + case ANJU_SCH_32: + case ANJU_SCH_33: + case ANJU_SCH_34: + case ANJU_SCH_35: + case ANJU_SCH_36: + case ANJU_SCH_37: + case ANJU_SCH_38: + case ANJU_SCH_39: + case ANJU_SCH_3A: + case ANJU_SCH_3B: + case ANJU_SCH_3C: + case ANJU_SCH_3D: + case ANJU_SCH_3E: + case ANJU_SCH_3F: func_80B5702C(this, play); break; } @@ -2858,14 +2929,14 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->actor.draw = EnAn_Draw; Actor_SetScale(&this->actor, 0.01f); this->unk_360 = 0; - this->unk_200 = 0; + this->scheduleResult = ANJU_SCH_NONE; this->actionFunc = func_80B578F8; this->actionFunc(this, play); } void func_80B578F8(EnAn* this, PlayState* play) { - ScheduleOutput sp20; + ScheduleOutput scheduleOutput; this->unk_384 = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); @@ -2875,20 +2946,20 @@ void func_80B578F8(EnAn* this, PlayState* play) { } if (this->unk_3C0 != 0) { - sp20.result = 0x19; - if (this->unk_200 != 0x19) { - func_80B56D28(this, play, &sp20); + scheduleOutput.result = ANJU_SCH_19; + if (this->scheduleResult != ANJU_SCH_19) { + EnAn_ProcessScheduleOutput(this, play, &scheduleOutput); } - } else if ((Schedule_RunScript(play, sScheduleScript, &sp20) == 0) || ((this->unk_200 != sp20.result) && (func_80B56D28(this, play, &sp20) == 0))) { + } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || ((this->scheduleResult != scheduleOutput.result) && (EnAn_ProcessScheduleOutput(this, play, &scheduleOutput) == 0))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; - sp20.result = 0; + scheduleOutput.result = ANJU_SCH_NONE; } else { this->actor.shape.shadowDraw = ActorShadow_DrawCircle; this->actor.flags |= ACTOR_FLAG_TARGETABLE; } - this->unk_200 = sp20.result; + this->scheduleResult = scheduleOutput.result; this->unk_218 = func_80B55D20(this, play); func_80B57718(this, play); } @@ -2903,7 +2974,7 @@ void func_80B57A44(EnAn* this, PlayState* play) { this->unk_388 = 0x14; this->msgScriptResumePos = 0; this->actionFunc = func_80B578F8; - } else if ((this->unk_200 != 1) && (this->unk_200 != 3) && (this->unk_200 != 0xC) && (this->unk_200 != 0xE) && (this->unk_200 != 0x19)) { + } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != 3) && (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && (this->scheduleResult != ANJU_SCH_19)) { if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { s32 temp; Vec3f sp38; @@ -3011,7 +3082,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } this->actionFunc(this, play); - if (this->unk_200 != 0) { + if (this->scheduleResult != ANJU_SCH_NONE) { func_80B55914(this, play); func_80B53BA8(this, play); EnAn_UpdateFace(this); @@ -3096,7 +3167,7 @@ TexturePtr D_80B58EEC[ENAN_EYES_MAX] = { void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; - if ((this->unk_200 != 0) || (this->unk_3B0 != 0)) { + if ((this->scheduleResult != ANJU_SCH_NONE) || (this->unk_3B0 != 0)) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 99a25cf37..851302e6e 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -20,14 +20,14 @@ typedef struct EnAn { /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ EnAnUnkFunc unk_18C; /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ Path* unk_1DC; + /* 0x1DC */ Path* unk_1DC; // timePath /* 0x1E0 */ Vec3f unk_1E0; /* 0x1EC */ f32 unk_1EC; /* 0x1F0 */ s32 unk_1F0; /* 0x1F4 */ s32 unk_1F4; /* 0x1F8 */ s32 unk_1F8; /* 0x1FC */ s32 unk_1FC; - /* 0x200 */ u8 unk_200; // enum? // schedule result + /* 0x200 */ u8 scheduleResult; /* 0x204 */ s32* msgEventScript; /* 0x208 */ s8 an2ObjectSlot; /* 0x209 */ s8 an3ObjectSlot; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 3ba975791..c684d00e6 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14049,7 +14049,7 @@ 0x80B56B00:("func_80B56B00",), 0x80B56BC0:("func_80B56BC0",), 0x80B56CAC:("func_80B56CAC",), - 0x80B56D28:("func_80B56D28",), + 0x80B56D28:("EnAn_ProcessScheduleOutput",), 0x80B56E44:("func_80B56E44",), 0x80B56EB4:("func_80B56EB4",), 0x80B5702C:("func_80B5702C",), From 2c04fb92e9ff34b4108ba49fdeda1f969da3fba7 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 9 Oct 2023 13:42:04 -0300 Subject: [PATCH 22/78] func_80B57B48 --- spec | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 29 +++++++++++-------------- 2 files changed, 14 insertions(+), 17 deletions(-) diff --git a/spec b/spec index 62cc64d0e..792162949 100644 --- a/spec +++ b/spec @@ -3773,7 +3773,7 @@ beginseg name "ovl_En_An" compress include "build/src/overlays/actors/ovl_En_An/z_en_an.o" - include "build/data/ovl_En_An/ovl_En_An.reloc.o" + include "build/src/overlays/actors/ovl_En_An/ovl_En_An_reloc.o" endseg beginseg 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 eba7eaef2..215c971b5 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -2989,31 +2989,33 @@ void func_80B57A44(EnAn* this, PlayState* play) { } } -#ifdef NON_EQUIVALENT void func_80B57B48(EnAn* this, PlayState* play) { s32 sp30[] = { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0 }; - s32 temp_v0; // sp28 u16 temp_v1; - u8 var_v0; + s32 temp_v0; // sp28 - if (Cutscene_IsCueInChannel(play, 0x22DU) != 0) { + if(0) {} + + if (Cutscene_IsCueInChannel(play, 0x22DU)) { temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); temp_v1 = play->csCtx.actorCues[temp_v0]->id; - var_v0 = temp_v1 & 0xFF; - if ((temp_v1 & 0xFF) != this->unk_364) { - this->unk_364 = (u8) temp_v1; - if (var_v0 == 3) { + + if (this->unk_364 != (temp_v1 & 0xFF)) { + this->unk_364 = temp_v1; + if (this->unk_364 == 3) { SET_WEEKEVENTREG(WEEKEVENTREG_87_02); - var_v0 = this->unk_364; this->unk_3B4 = 1; } - if (var_v0 == 9) { + if (this->unk_364 == 9) { this->unk_3B4 = 0; } EnAn_ChangeAnim(this, play, sp30[temp_v1]); } - if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_34)) { + if ((this->animIndex == ENAN_ANIM_26) || + (this->animIndex == ENAN_ANIM_28) || + (this->animIndex == ENAN_ANIM_30) || + (this->animIndex == ENAN_ANIM_34)) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, this->animIndex + 1); } @@ -3021,11 +3023,6 @@ void func_80B57B48(EnAn* this, PlayState* play) { Cutscene_ActorTranslateAndYaw(&this->actor, play, temp_v0); } } -#else -s32 D_80B58EAC[] = { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0 }; -void func_80B57B48(EnAn* this, PlayState* play); -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_An/func_80B57B48.s") -#endif void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; From 1ac648f32bb761692516fb6b6f12b6a9e039be25 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 9 Oct 2023 13:56:00 -0300 Subject: [PATCH 23/78] format --- src/overlays/actors/ovl_En_An/z_en_an.c | 927 ++++++++++-------------- 1 file changed, 389 insertions(+), 538 deletions(-) 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 215c971b5..69f7ea01b 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -20,7 +20,7 @@ void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); void EnAn_Update(Actor* thisx, PlayState* play); -void EnAn_Draw(Actor* this, PlayState* play); +void EnAn_Draw(Actor* thisx, PlayState* play); // Action funcs void func_80B577F0(EnAn* this, PlayState* play); @@ -98,90 +98,90 @@ typedef enum AnjuScheduleResult { static u8 sScheduleScript[] = { /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005), /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A), - /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L( 6, 0, 10, 55, 0x14A - 0x011), + /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011), /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018), /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F), /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026), /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D), - /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034), - /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B), + /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034), + /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B), /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042), /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049), /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050), - /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057), + /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057), /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E), /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065), - /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C), - /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073), + /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C), + /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073), /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079), /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F), /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085), /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B), /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091), - /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097), - /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D), + /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097), + /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D), /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1), /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(), /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8), - /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE), - /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 0, 0, 6, 0, 0x0B5 - 0x0B4), + /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE), + /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4), /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(), /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME( 0, 0, 6, 0, 23), + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, 23), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F), - /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12), /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11), /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12), - /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10), - /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12), + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10), + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12), /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), - /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), - /* 0x14A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, ANJU_SCH_12), + /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B), /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160), - /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167), - /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D), + /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167), + /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D), /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173), /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179), /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F), - /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185), - /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B), + /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185), + /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B), /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191), /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197), - /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D), - /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), - /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), + /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D), + /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), + /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(), - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E), - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30), + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E), + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30), /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12), - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23), + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12), + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23), /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33), /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22), /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21), - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32), - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20), + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32), + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20), /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6), /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC), /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202), @@ -216,81 +216,81 @@ static u8 sScheduleScript[] = { /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38), /* 0x29D */ SCHEDULE_CMD_RET_NONE(), /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3), - /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L( 6, 0, 10, 55, 0x38A - 0x2AA), + /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA), /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1), /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8), /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF), /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6), - /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD), - /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4), + /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD), + /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4), /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB), /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1), /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7), - /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED), + /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED), /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3), /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9), /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF), /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305), /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B), - /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311), - /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), - /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), + /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311), + /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), + /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), /* 0x31D */ SCHEDULE_CMD_RET_NONE(), - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12), /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), - /* 0x38A */ SCHEDULE_CMD_RET_TIME( 6, 0, 10, 55, ANJU_SCH_12), + /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A), /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E), - /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 6, 0, 11, 0, 0x3D5 - 0x3A4), - /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA), + /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4), + /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA), /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0), /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6), - /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), + /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), /* 0x3BC */ SCHEDULE_CMD_RET_NONE(), - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, ANJU_SCH_16), + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16), /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), - /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), + /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(), - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C), + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C), /* 0x3EC */ SCHEDULE_CMD_RET_NONE(), /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1), - /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 6, 0, 11, 0, 0x440 - 0x3F7), - /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD), + /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7), + /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD), /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403), /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409), - /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F), - /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415), - /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S( 5, 0, 6, 0, 0x41C - 0x41B), + /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F), + /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415), + /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B), /* 0x41B */ SCHEDULE_CMD_RET_NONE(), - /* 0x41C */ SCHEDULE_CMD_RET_TIME( 5, 0, 6, 0, ANJU_SCH_1), - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1), - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), + /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1), + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1), + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), - /* 0x440 */ SCHEDULE_CMD_RET_TIME( 6, 0, 11, 0, ANJU_SCH_16), + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16), /* 0x446 */ SCHEDULE_CMD_RET_NONE(), /* 0x447 */ SCHEDULE_CMD_RET_NONE(), }; @@ -299,7 +299,7 @@ s32 D_80B58618[ANJU_SCH_MAX] = { -1, // ANJU_SCH_NONE 10, // ANJU_SCH_1 -1, // ANJU_SCH_2 - 0, // ANJU_SCH_3 + 0, // ANJU_SCH_3 -1, // ANJU_SCH_4 -1, // ANJU_SCH_5 -1, // ANJU_SCH_6 @@ -310,22 +310,22 @@ s32 D_80B58618[ANJU_SCH_MAX] = { -1, // ANJU_SCH_B -1, // ANJU_SCH_C -1, // ANJU_SCH_D - 0, // ANJU_SCH_E + 0, // ANJU_SCH_E -1, // ANJU_SCH_F 10, // ANJU_SCH_10 10, // ANJU_SCH_11 10, // ANJU_SCH_12 11, // ANJU_SCH_13 -1, // ANJU_SCH_14 - 4, // ANJU_SCH_15 + 4, // ANJU_SCH_15 22, // ANJU_SCH_16 15, // ANJU_SCH_17 -1, // ANJU_SCH_18 -1, // ANJU_SCH_19 - 3, // ANJU_SCH_1A - 6, // ANJU_SCH_1B - 8, // ANJU_SCH_1C - 9, // ANJU_SCH_1D + 3, // ANJU_SCH_1A + 6, // ANJU_SCH_1B + 8, // ANJU_SCH_1C + 9, // ANJU_SCH_1D 13, // ANJU_SCH_1E 14, // ANJU_SCH_1F 16, // ANJU_SCH_20 @@ -333,15 +333,15 @@ s32 D_80B58618[ANJU_SCH_MAX] = { 19, // ANJU_SCH_22 21, // ANJU_SCH_23 23, // ANJU_SCH_24 - 0, // ANJU_SCH_25 - 5, // ANJU_SCH_26 + 0, // ANJU_SCH_25 + 5, // ANJU_SCH_26 25, // ANJU_SCH_27 - 0, // ANJU_SCH_28 - 1, // ANJU_SCH_29 - 2, // ANJU_SCH_2A - 4, // ANJU_SCH_2B - 5, // ANJU_SCH_2C - 7, // ANJU_SCH_2D + 0, // ANJU_SCH_28 + 1, // ANJU_SCH_29 + 2, // ANJU_SCH_2A + 4, // ANJU_SCH_2B + 5, // ANJU_SCH_2C + 7, // ANJU_SCH_2D 10, // ANJU_SCH_2E 11, // ANJU_SCH_2F 12, // ANJU_SCH_30 @@ -350,299 +350,83 @@ s32 D_80B58618[ANJU_SCH_MAX] = { 20, // ANJU_SCH_33 22, // ANJU_SCH_34 24, // ANJU_SCH_35 - 1, // ANJU_SCH_36 - 2, // ANJU_SCH_37 - 0, // ANJU_SCH_38 - 1, // ANJU_SCH_39 - 3, // ANJU_SCH_3A - 4, // ANJU_SCH_3B - 0, // ANJU_SCH_3C - 1, // ANJU_SCH_3D - 2, // ANJU_SCH_3E - 3, // ANJU_SCH_3F + 1, // ANJU_SCH_36 + 2, // ANJU_SCH_37 + 0, // ANJU_SCH_38 + 1, // ANJU_SCH_39 + 3, // ANJU_SCH_3A + 4, // ANJU_SCH_3B + 0, // ANJU_SCH_3C + 1, // ANJU_SCH_3D + 2, // ANJU_SCH_3E + 3, // ANJU_SCH_3F }; s32 D_80B58718[0x1B] = { - 0x560800, - 0x44090000, - 0x0E28BA0C, - 0x09000017, - 0x0E28BB0C, - 0x09000018, - 0x0E28BC0C, - 0x09000017, - 0x0E28BD0C, - 0x09000018, - 0x0E28BE0C, - 0x09000017, - 0x0E28BF0C, - 0x09000018, - 0x0E28C02D, - 0x12D00, - 0x0B0C0900, - 0x115608, - 0x10090000, - 0x0E295C0C, - 0x09000017, - 0x0E295D0C, - 0x09000018, - 0x0E295E2D, - 0x12D00, - 0x0B0C0900, - 0x100000, + 0x00560800, 0x44090000, 0x0E28BA0C, 0x09000017, 0x0E28BB0C, 0x09000018, 0x0E28BC0C, 0x09000017, 0x0E28BD0C, + 0x09000018, 0x0E28BE0C, 0x09000017, 0x0E28BF0C, 0x09000018, 0x0E28C02D, 0x00012D00, 0x0B0C0900, 0x00115608, + 0x10090000, 0x0E295C0C, 0x09000017, 0x0E295D0C, 0x09000018, 0x0E295E2D, 0x00012D00, 0x0B0C0900, 0x00100000, }; s32 D_80B58784[0x21] = { - 0x09000000, - 0x4B10001E, - 0x0E28B10C, - 0x09000017, - 0x0E28B20C, - 0x09000018, - 0x0E28B32D, - 0x11137, - 0x020C0900, - 0x100056, - 0x10002E0E, - 0x28B10C09, - 0x170E, - 0x28B50C09, - 0x180E, - 0x28B60C09, - 0x170E, - 0x28B70C09, - 0x180E, - 0x28B82D00, - 0x010C0900, - 0x115610, - 0x10090000, - 0x170E2956, - 0x0C090000, - 0x180E2957, - 0x0C090000, - 0x170E2958, - 0x0C090000, - 0x180E2959, - 0x2D00010C, - 0x09000012, - 0x10000000, + 0x09000000, 0x4B10001E, 0x0E28B10C, 0x09000017, 0x0E28B20C, 0x09000018, 0x0E28B32D, 0x00011137, 0x020C0900, + 0x00100056, 0x10002E0E, 0x28B10C09, 0x0000170E, 0x28B50C09, 0x0000180E, 0x28B60C09, 0x0000170E, 0x28B70C09, + 0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000, + 0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000, }; s32 D_80B58808[0x15] = { - 0x09000017, - 0x0E28C70C, - 0x09000018, - 0x0E28C80C, - 0x09000017, - 0x0E28C90C, - 0x09000018, - 0x0E28CA0C, - 0x09000017, - 0x0E28CB0C, - 0x09000018, - 0x0E28CC0C, - 0x09000017, - 0x0E28CD0C, - 0x09000018, - 0x0E28CE0C, - 0x09000017, - 0x0E28CF2D, - 0x12D00, - 0x0E0C0900, - 0x100000, + 0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018, + 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, + 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, }; s32 D_80B5885C[0x37] = { - 0x220B0000, - 0x69002020, - 0x64004B, - 0x1000B700, - 0x370100AA, - 0x370200, - 0x550E28A0, - 0x0C090000, - 0x0F28A80C, - 0x05000000, - 0x30000030, - 0x0E28A90C, - 0x0F28AA0C, - 0x0F28AB0C, - 0x120600A0, - 0x1300, - 0xA02F0000, - 0x2E2D0014, - 0x0C114B10, - 0x0700000E, - 0x28AD2D00, - 0x010C2400, - 0x41161031, - 0x0E28A30C, - 0x0900000F, - 0x28A52D00, - 0x010C1137, - 0x01100020, - 0x2000340E, - 0x28A00C09, - 0xF28, - 0xA10C0500, - 0xF00, - 0x300E28, - 0xA20C0900, - 0xF28A3, - 0x0C190008, - 0x310E28A4, - 0x0C090000, - 0x0F28A52D, - 0x10C11, - 0x20201023, - 0x400012, - 0x0E28A00C, - 0x0900000F, - 0x28A62D00, - 0x010C2400, - 0x40100E28, - 0xA72D0001, - 0x0C102300, - 0x41000B0E, - 0x28AC2D00, - 0x010C2400, - 0x41100E28, - 0xAD0C1000, + 0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000, + 0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300, + 0xA02F0000, 0x2E2D0014, 0x0C114B10, 0x0700000E, 0x28AD2D00, 0x010C2400, 0x41161031, 0x0E28A30C, + 0x0900000F, 0x28A52D00, 0x010C1137, 0x01100020, 0x2000340E, 0x28A00C09, 0xF28, 0xA10C0500, + 0xF00, 0x300E28, 0xA20C0900, 0xF28A3, 0x0C190008, 0x310E28A4, 0x0C090000, 0x0F28A52D, + 0x10C11, 0x20201023, 0x400012, 0x0E28A00C, 0x0900000F, 0x28A62D00, 0x010C2400, 0x40100E28, + 0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000, }; s32 D_80B58938[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; s32 D_80B58944[2] = { 0x0E28AF2D, 0x10C10 }; s32 D_80B5894C[2] = { 0x0E28C12D, 0x10C10 }; s32 D_80B58954[0xB] = { - 0x350100, - 0x1C0E28C3, - 0x0C0F28C4, - 0x0C150900, - 0xE28C5, - 0x2D00010C, - 0x15090000, - 0x11350112, - 0x100E28C2, - 0x2D00010C, - 0x10000000, + 0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C, + 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; s32 D_80B58980[2] = { 0x0E28C62D, 0x10C10 }; s32 D_80B58988[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; s32 D_80B58994[2] = { 0x0E28F82D, 0x10C10 }; s32 D_80B5899C[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; s32 D_80B589AC[0x14] = { - 0x0E28D70C, - 0x0F28D80C, - 0x0F28D90C, - 0x0F28DA0C, - 0x0F28DB0C, - 0x05000700, - 0x731, - 0x0E28D919, - -0x16CFF2, - 0x28DC0C11, - 0x32201132, - 0x10120600, - 0xAA000013, - 0xAA2F00, - 0x2E2D00, - 0x012D0017, - 0x2D00160C, - 0x0700000E, - 0x28DE0C15, - 0x09000010, + 0x0E28D70C, 0x0F28D80C, 0x0F28D90C, 0x0F28DA0C, 0x0F28DB0C, 0x05000700, 0x731, + 0x0E28D919, -0x16CFF2, 0x28DC0C11, 0x32201132, 0x10120600, 0xAA000013, 0xAA2F00, + 0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010, }; s32 D_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; s32 D_80B58A04[8] = { - 0x522000, - 0x100E294F, - 0x0C0F2950, - 0x2D00010C, - 0x12115220, - 0x100E2951, - 0x2D00010C, - 0x12100000, + 0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000, }; s32 D_80B58A24[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; s32 D_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; s32 D_80B58A44[0x1E] = { - 0x320800, - 0x080E28D5, - 0x2D00010C, - 0x10003220, - 0x80E28, - -0x2BD2FFFF, - 0x0C100033, - 0x01001A25, - 0x30001D, - 0x27000300, - 0x080E28E3, - 0x2D00010C, - 0x100E28E2, - 0x2D00010C, - 0x100E28E1, - 0x2D00010C, - 0x100E28E4, - 0x0C0E00FF, - 0x1E003600, - 0x0E000000, - 0x0C2C28E7, - 0x0C2F0000, - 0x2D00010C, - 0x1012102C, - 0x28E50C2F, - 0xC2A, - 0x300F28, - -0x19D2FFFF, - 0x2D001A0C, - 0x11330110, + 0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25, + 0x30001D, 0x27000300, 0x080E28E3, 0x2D00010C, 0x100E28E2, 0x2D00010C, 0x100E28E1, 0x2D00010C, + 0x100E28E4, 0x0C0E00FF, 0x1E003600, 0x0E000000, 0x0C2C28E7, 0x0C2F0000, 0x2D00010C, 0x1012102C, + 0x28E50C2F, 0xC2A, 0x300F28, -0x19D2FFFF, 0x2D001A0C, 0x11330110, }; s32 D_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; s32 D_80B58AC4[9] = { - 0x320800, - 0x160E28D1, - 0x0C0F28D2, - 0x0C0F28D3, - 0x2D00152D, - 0x10C11, - 0x3208100E, - 0x28D32D00, - 0x010C1000, + 0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000, }; s32 D_80B58AE8[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; s32 D_80B58AF4[0x12] = { - 0x372000, - 0x29003208, - 0x2A0E28, - -0x17F3EAF7, - 0xE28, - -0x16F3F0D8, - -0x15F3EAF7, - 0xE28, - -0x14F3F0D8, - -0x13D2FFFF, - 0x0C121137, - 0x20100E28, - -0x13F3EDF0, - 0x0E28EE0C, - 0x0F28EB0C, - 0x0F28EC2D, - 0x10C12, - 0x11372010, + 0x372000, 0x29003208, 0x2A0E28, -0x17F3EAF7, 0xE28, -0x16F3F0D8, -0x15F3EAF7, 0xE28, -0x14F3F0D8, + -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; s32 D_80B58B3C[0x10] = { - 0x372000, - 0x21003208, - 0x220E28, - -0x17F3F0D8, - -0x12F3EAF7, - 0xE28, - -0x14F3F0D8, - -0x13D2FFFF, - 0x0C121137, - 0x20100E28, - -0x13F3EDF0, - 0x0E28EE0C, - 0x0F28EB0C, - 0x0F28EC2D, - 0x10C12, - 0x11372010, + 0x372000, 0x21003208, 0x220E28, -0x17F3F0D8, -0x12F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, + 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; s32 D_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; s32 D_80B58B88[2] = { 0x0E29612D, 0x10C10 }; @@ -662,8 +446,22 @@ ActorInit En_An_InitVars = { // static ColliderCylinderInit sCylinderInit = { static ColliderCylinderInit D_80B58BBC = { - { COLTYPE_HIT1, AT_NONE, AC_NONE, OC1_ON | OC1_TYPE_ALL, OC2_TYPE_1, COLSHAPE_CYLINDER, }, - { ELEMTYPE_UNK1, { 0x00000000, 0x00, 0x00 }, { 0x00000000, 0x00, 0x00 }, TOUCH_NONE | TOUCH_SFX_NORMAL, BUMP_NONE, OCELEM_ON, }, + { + COLTYPE_HIT1, + AT_NONE, + AC_NONE, + OC1_ON | OC1_TYPE_ALL, + OC2_TYPE_1, + COLSHAPE_CYLINDER, + }, + { + ELEMTYPE_UNK1, + { 0x00000000, 0x00, 0x00 }, + { 0x00000000, 0x00, 0x00 }, + TOUCH_NONE | TOUCH_SFX_NORMAL, + BUMP_NONE, + OCELEM_ON, + }, { 14, 62, 0, { 0, 0, 0 } }, }; @@ -688,7 +486,11 @@ s32 func_80B53840(EnAn* this, PlayState* play) { return false; } - if (((this->an2ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || ((this->an3ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || ((this->maskKerfayObjectSlot >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || ((this->an4ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || ((this->msmoObjectSlot >= 0) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { + if (((this->an2ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || + ((this->an3ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || + ((this->maskKerfayObjectSlot >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || + ((this->an4ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || + ((this->msmoObjectSlot >= 0) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { ret = true; } else { this->actor.draw = EnAn_Draw; @@ -698,7 +500,6 @@ s32 func_80B53840(EnAn* this, PlayState* play) { return ret; } - Actor* func_80B539CC(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { Actor* foundActor = NULL; @@ -863,23 +664,23 @@ typedef enum EnAnAnimation { // sAnimationInfo AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { - { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 - { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_1 + { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 + { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_1 { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 - { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 + { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_4 - { &object_an1_Anim_0026B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_5 - { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 - { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 - { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 - { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_9 + { &object_an1_Anim_0026B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_5 + { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 + { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 + { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 + { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_9 { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_10 - { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 - { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 - { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 - { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 - { &object_an1_Anim_00341C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_15 - { &object_an1_Anim_003EA8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_16 + { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 + { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 + { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 + { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 + { &object_an1_Anim_00341C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_15 + { &object_an1_Anim_003EA8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_16 { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 @@ -1074,7 +875,8 @@ void EnAn_UpdateFace(EnAn* this) { this->eyeTexIndex++; if (this->eyeTexIndex >= ENAN_EYES_4) { - if ((this->faceIndex == ENAN_FACE_0) || (this->faceIndex == ENAN_FACE_1) || (this->faceIndex == ENAN_FACE_3)) { + if ((this->faceIndex == ENAN_FACE_0) || (this->faceIndex == ENAN_FACE_1) || + (this->faceIndex == ENAN_FACE_3)) { this->unk_38E = Rand_S16Offset(0x1E, 0x1E); } else { this->unk_38E = 8; @@ -1109,8 +911,11 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { this->unk_3AC -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); - gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_XLU_DISP++, 0x08, Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, 0x10, 0x10)); + gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(POLY_XLU_DISP++, 0x08, + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, + 0x10, 0x10)); gSPDisplayList(POLY_XLU_DISP++, object_an1_DL_0111E8); Gfx_SetupDL25_Opa(play->state.gfxCtx); @@ -1124,7 +929,8 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPDisplayList(POLY_OPA_DISP++, object_mask_kerfay_DL_000D40); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } @@ -1159,7 +965,8 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { if ((this->unk_3B4 != 0) && (otherObjectSlot >= 0)) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); - gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), + G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -1216,7 +1023,7 @@ s16 func_80B54750(EnAn* this, s32 arg1) { } s32 func_80B547C8(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; s16 csId = func_80B546F4(this, 0); s32 ret = 0; @@ -1243,7 +1050,8 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08)) && (this->unk_394 == 3)) { CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), + this->actor.child); } this->unk_394++; ret = 1; @@ -1259,14 +1067,14 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { return ret; } s32 func_80B5492C(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; s16 csId = func_80B546F4(this, 0); s32 var_a2 = 0; switch (this->unk_394) { case 0x0: var_a2 = 0; - if (func_80B54678(this, csId)) { + if (func_80B54678(this, csId)) { goto label; } break; @@ -1279,14 +1087,14 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { this->unk_394++; break; - case 0x1: case 0x3: if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY)) && (this->unk_394 == 3)) { CutsceneManager_Stop(csId); this->unk_394 = 5; } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), + this->actor.child); } this->unk_394++; var_a2 = 1; @@ -1302,7 +1110,7 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { } s32 func_80B54A94(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; s16 csId = func_80B54750(this, 0); s32 ret = 0; @@ -1320,7 +1128,8 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { case 0x8: label: if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { - Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); + Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), + this->actor.child); } ret = 1; this->unk_394 += 1; @@ -1346,7 +1155,7 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { } s32 func_80B54BC4(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; if (this->unk_394 == 0) { func_800B7298(play, &this->actor, PLAYER_CSMODE_WAIT); @@ -1361,7 +1170,7 @@ s32 func_80B54BC4(Actor* thisx, PlayState* play) { } s32 func_80B54C5C(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; s32 sp20 = false; switch (this->unk_394) { @@ -1388,7 +1197,7 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) { } s32 func_80B54D18(Actor* thisx, PlayState* play) { - EnAn *this = THIS; + EnAn* this = THIS; s32 ret = false; switch (this->unk_394) { @@ -1405,7 +1214,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { case 0x1: label: - this->unk_360 &= ~(0x20|0x4000); + this->unk_360 &= ~(0x20 | 0x4000); this->unk_360 |= 0x200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); ret = true; @@ -1488,15 +1297,17 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { return D_80B58A44; } - //if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { - //if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, 18))) { + // if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { + // if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, + // 18))) { if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { return D_80B58ABC; } return D_80B58AC4; } - if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + if ((player->transformation == PLAYER_FORM_HUMAN) && + CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if (this->scheduleResult == ANJU_SCH_17) { this->msgEventFunc = func_80B54BC4; return D_80B589AC; @@ -1577,7 +1388,14 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->actor.child = this->unk_218; this->msgEventScript = func_80B54DF4(this, play); - if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || (this->scheduleResult == ANJU_SCH_2B) || (this->scheduleResult == ANJU_SCH_2C) || (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || (this->scheduleResult == ANJU_SCH_30) || (this->scheduleResult == ANJU_SCH_31) || (this->scheduleResult == ANJU_SCH_34) || (this->scheduleResult == ANJU_SCH_35)) { + if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || + (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || + (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || + (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || + (this->scheduleResult == ANJU_SCH_2B) || (this->scheduleResult == ANJU_SCH_2C) || + (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || + (this->scheduleResult == ANJU_SCH_30) || (this->scheduleResult == ANJU_SCH_31) || + (this->scheduleResult == ANJU_SCH_34) || (this->scheduleResult == ANJU_SCH_35)) { this->unk_360 |= 0x20; } @@ -1596,7 +1414,8 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { u16 temp_v0 = play->csCtx.scriptIndex; s32 ret = false; - if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { + if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && + ((temp_v0 == 0) || (temp_v0 == 1))) { if (this->unk_3B0 == 0) { this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; @@ -1771,129 +1590,140 @@ s32 func_80B55914(EnAn* this, PlayState* play) { if (player->stateFlags1 & PLAYER_STATE1_40) { this->unk_360 |= 0x400; if (this->unk_362 != sp22) { - switch (sp22) { /* switch 3; irregular */ - case 0x28E5: /* switch 3 */ + switch (sp22) { + case 0x28E5: EnAn_ChangeAnim(this, play, ENAN_ANIM_5); this->unk_360 &= 0xDFFF; break; - case 0x28BA: /* switch 3 */ - case 0x28D1: /* switch 3 */ + + case 0x28BA: + case 0x28D1: EnAn_ChangeAnim(this, play, ENAN_ANIM_5); break; - case 0x28AF: /* switch 3 */ - case 0x28C1: /* switch 3 */ + + case 0x28AF: + case 0x28C1: EnAn_ChangeAnim(this, play, ENAN_ANIM_1); break; - case 0x28BC: /* switch 3 */ + + case 0x28BC: EnAn_ChangeAnim(this, play, ENAN_ANIM_2); break; - case 0x28C6: /* switch 3 */ + + case 0x28C6: EnAn_ChangeAnim(this, play, ENAN_ANIM_15); break; - case 0x28F5: /* switch 3 */ + + case 0x28F5: EnAn_ChangeAnim(this, play, ENAN_ANIM_10); break; - case 0x28F7: /* switch 3 */ - case 0x28F8: /* switch 3 */ + + case 0x28F7: + case 0x28F8: EnAn_ChangeAnim(this, play, ENAN_ANIM_21); break; - case 0x28EB: /* switch 3 */ + + case 0x28EB: if (this->animIndex != ENAN_ANIM_20) { this->unk_360 &= 0xBFDF; this->unk_360 |= 0x200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); } break; - case 0x28A4: /* switch 3 */ - case 0x28A9: /* switch 3 */ - case 0x28BE: /* switch 3 */ - case 0x28C0: /* switch 3 */ + + case 0x28A4: + case 0x28A9: + case 0x28BE: + case 0x28C0: case 0x295E: this->unk_18C = func_80B556F8; this->unk_396 = 0; break; - case 0x28E6: /* switch 3 */ + + case 0x28E6: this->unk_360 &= 0xDFFF; this->unk_18C = func_80B55860; this->unk_396 = 0; break; - case 0x1885: /* switch 3 */ - case 0x28A0: /* switch 3 */ - case 0x28A3: /* switch 3 */ - case 0x28A5: /* switch 3 */ - case 0x28B1: /* switch 3 */ - case 0x28D2: /* switch 3 */ - case 0x28D9: /* switch 3 */ - case 0x28DC: /* switch 3 */ - case 0x28DE: /* switch 3 */ + + case 0x1885: + case 0x28A0: + case 0x28A3: + case 0x28A5: + case 0x28B1: + case 0x28D2: + case 0x28D9: + case 0x28DC: + case 0x28DE: this->unk_18C = func_80B557AC; this->unk_396 = 0; break; - case 0x28A1: /* switch 3 */ - case 0x28A2: /* switch 3 */ - case 0x28A6: /* switch 3 */ - case 0x28A7: /* switch 3 */ - case 0x28A8: /* switch 3 */ - case 0x28AA: /* switch 3 */ - case 0x28AB: /* switch 3 */ - case 0x28AC: /* switch 3 */ - case 0x28AD: /* switch 3 */ - case 0x28AE: /* switch 3 */ - case 0x28B0: /* switch 3 */ - case 0x28B2: /* switch 3 */ - case 0x28B3: /* switch 3 */ - case 0x28B4: /* switch 3 */ - case 0x28B5: /* switch 3 */ - case 0x28B6: /* switch 3 */ - case 0x28B7: /* switch 3 */ - case 0x28B8: /* switch 3 */ - case 0x28B9: /* switch 3 */ - case 0x28BB: /* switch 3 */ - case 0x28BD: /* switch 3 */ - case 0x28BF: /* switch 3 */ - case 0x28C2: /* switch 3 */ - case 0x28C3: /* switch 3 */ - case 0x28C4: /* switch 3 */ - case 0x28C5: /* switch 3 */ - case 0x28C7: /* switch 3 */ - case 0x28C8: /* switch 3 */ - case 0x28C9: /* switch 3 */ - case 0x28CA: /* switch 3 */ - case 0x28CB: /* switch 3 */ - case 0x28CC: /* switch 3 */ - case 0x28CD: /* switch 3 */ - case 0x28CE: /* switch 3 */ - case 0x28CF: /* switch 3 */ - case 0x28D0: /* switch 3 */ - case 0x28D3: /* switch 3 */ - case 0x28D4: /* switch 3 */ - case 0x28D5: /* switch 3 */ - case 0x28D6: /* switch 3 */ - case 0x28D7: /* switch 3 */ - case 0x28D8: /* switch 3 */ - case 0x28DA: /* switch 3 */ - case 0x28DB: /* switch 3 */ - case 0x28DD: /* switch 3 */ - case 0x28DF: /* switch 3 */ - case 0x28E0: /* switch 3 */ - case 0x28E1: /* switch 3 */ - case 0x28E2: /* switch 3 */ - case 0x28E3: /* switch 3 */ - case 0x28E4: /* switch 3 */ - case 0x28E7: /* switch 3 */ - case 0x28E8: /* switch 3 */ - case 0x28E9: /* switch 3 */ - case 0x28EA: /* switch 3 */ - case 0x28EC: /* switch 3 */ - case 0x28ED: /* switch 3 */ - case 0x28EE: /* switch 3 */ - case 0x28EF: /* switch 3 */ - case 0x28F0: /* switch 3 */ - case 0x28F1: /* switch 3 */ - case 0x28F2: /* switch 3 */ - case 0x28F3: /* switch 3 */ - case 0x28F4: /* switch 3 */ - case 0x28F6: /* switch 3 */ + + case 0x28A1: + case 0x28A2: + case 0x28A6: + case 0x28A7: + case 0x28A8: + case 0x28AA: + case 0x28AB: + case 0x28AC: + case 0x28AD: + case 0x28AE: + case 0x28B0: + case 0x28B2: + case 0x28B3: + case 0x28B4: + case 0x28B5: + case 0x28B6: + case 0x28B7: + case 0x28B8: + case 0x28B9: + case 0x28BB: + case 0x28BD: + case 0x28BF: + case 0x28C2: + case 0x28C3: + case 0x28C4: + case 0x28C5: + case 0x28C7: + case 0x28C8: + case 0x28C9: + case 0x28CA: + case 0x28CB: + case 0x28CC: + case 0x28CD: + case 0x28CE: + case 0x28CF: + case 0x28D0: + case 0x28D3: + case 0x28D4: + case 0x28D5: + case 0x28D6: + case 0x28D7: + case 0x28D8: + case 0x28DA: + case 0x28DB: + case 0x28DD: + case 0x28DF: + case 0x28E0: + case 0x28E1: + case 0x28E2: + case 0x28E3: + case 0x28E4: + case 0x28E7: + case 0x28E8: + case 0x28E9: + case 0x28EA: + case 0x28EC: + case 0x28ED: + case 0x28EE: + case 0x28EF: + case 0x28F0: + case 0x28F1: + case 0x28F2: + case 0x28F3: + case 0x28F4: + case 0x28F6: default: if (this->animIndex == ENAN_ANIM_16) { EnAn_ChangeAnim(this, play, ENAN_ANIM_15); @@ -1910,82 +1740,91 @@ s32 func_80B55914(EnAn* this, PlayState* play) { break; } - switch (sp22) { /* switch 4; irregular */ - case 0x28F5: /* switch 4 */ + switch (sp22) { + case 0x28F5: this->unk_38A = ENAN_FACE_0; /* fallthrough */ - case 0x28A5: /* switch 4 */ - case 0x28AA: /* switch 4 */ - case 0x28F8: /* switch 4 */ + case 0x28A5: + case 0x28AA: + case 0x28F8: this->faceIndex = ENAN_FACE_0; this->unk_38E = 8; break; - case 0x1885: /* switch 4 */ - case 0x28A0: /* switch 4 */ - case 0x28A6: /* switch 4 */ - case 0x28AF: /* switch 4 */ - case 0x28C1: /* switch 4 */ + + case 0x1885: + case 0x28A0: + case 0x28A6: + case 0x28AF: + case 0x28C1: this->faceIndex = ENAN_FACE_3; this->unk_38E = 8; break; - case 0x28A2: /* switch 4 */ - case 0x28B3: /* switch 4 */ - case 0x28B6: /* switch 4 */ - case 0x28BA: /* switch 4 */ - case 0x28BE: /* switch 4 */ - case 0x28CE: /* switch 4 */ - case 0x28D0: /* switch 4 */ - case 0x28D6: /* switch 4 */ - case 0x28E5: /* switch 4 */ - case 0x28E7: /* switch 4 */ - case 0x28ED: /* switch 4 */ + + case 0x28A2: + case 0x28B3: + case 0x28B6: + case 0x28BA: + case 0x28BE: + case 0x28CE: + case 0x28D0: + case 0x28D6: + case 0x28E5: + case 0x28E7: + case 0x28ED: this->faceIndex = ENAN_FACE_1; this->unk_38E = 8; break; - case 0x28AD: /* switch 4 */ + + case 0x28AD: this->faceIndex = ENAN_FACE_8; this->unk_38E = 8; break; - case 0x28C0: /* switch 4 */ - case 0x28D7: /* switch 4 */ - case 0x28DE: /* switch 4 */ + + case 0x28C0: + case 0x28D7: + case 0x28DE: this->faceIndex = ENAN_FACE_2; this->unk_38E = 8; break; - case 0x28E6: /* switch 4 */ - case 0x28F7: /* switch 4 */ + + case 0x28E6: + case 0x28F7: this->faceIndex = ENAN_FACE_6; this->unk_38E = 8; break; - case 0x28A3: /* switch 4 */ - case 0x28B1: /* switch 4 */ - case 0x28B8: /* switch 4 */ - case 0x28C6: /* switch 4 */ - case 0x28CA: /* switch 4 */ - case 0x28CC: /* switch 4 */ - case 0x28D5: /* switch 4 */ - case 0x28E2: /* switch 4 */ - case 0x28E3: /* switch 4 */ - case 0x28E4: /* switch 4 */ + + case 0x28A3: + case 0x28B1: + case 0x28B8: + case 0x28C6: + case 0x28CA: + case 0x28CC: + case 0x28D5: + case 0x28E2: + case 0x28E3: + case 0x28E4: this->faceIndex = ENAN_FACE_4; this->unk_38E = 8; break; - case 0x28EC: /* switch 4 */ + + case 0x28EC: this->unk_38A = ENAN_FACE_5; /* fallthrough */ - case 0x28DC: /* switch 4 */ - case 0x28EB: /* switch 4 */ - case 0x28F2: /* switch 4 */ - case 0x28F9: /* switch 4 */ + case 0x28DC: + case 0x28EB: + case 0x28F2: + case 0x28F9: this->faceIndex = ENAN_FACE_5; this->unk_38E = 8; break; - case 0x28F6: /* switch 4 */ + + case 0x28F6: this->faceIndex = ENAN_FACE_9; this->unk_38E = 8; break; - case 0x28A4: /* switch 4 */ - case 0x28A9: /* switch 4 */ + + case 0x28A4: + case 0x28A9: this->faceIndex = ENAN_FACE_7; this->unk_38E = 8; break; @@ -2052,8 +1891,8 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u if ((var_v1 != NULL) && (var_v1->update != NULL)) { if (this->unk_1DC != NULL) { temp_v0_3 = Lib_SegmentedToVirtual(this->unk_1DC->points); - Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->unk_1DC->count-2]); - Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->unk_1DC->count-1]); + Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->unk_1DC->count - 2]); + Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->unk_1DC->count - 1]); this->actor.shape.shadowDraw = NULL; this->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); Math_Vec3f_Copy(&this->actor.world.pos, &sp30); @@ -2083,9 +1922,11 @@ s32 func_80B55F8C(PlayState* play) { Player* player = GET_PLAYER(play); s32 var_v1 = false; - if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && + CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { var_v1 = true; - } else if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + } else if ((player->transformation == PLAYER_FORM_HUMAN) && + CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { var_v1 = true; } @@ -2245,7 +2086,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { var_v1_2 = scheduleOutput->time0; } - if (scheduleOutput->time1 < var_v1_2) { + if (scheduleOutput->time1 < var_v1_2) { this->unk_1F0 = (var_v1_2 - scheduleOutput->time1) + 0xFFFF; } else { this->unk_1F0 = scheduleOutput->time1 - var_v1_2; @@ -2394,8 +2235,8 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if ((this->unk_1DC != NULL) && (this->unk_1DC->count >= 2)) { temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); - Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->unk_1DC->count-1]); - Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->unk_1DC->count-2]); + Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->unk_1DC->count - 1]); + Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->unk_1DC->count - 2]); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); @@ -2644,7 +2485,7 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->unk_384 != 0)) { if ((sp44 != NULL) && (sp44->knobDoor.dyna.actor.update != NULL)) { - if ((this->unk_37A / (f32) this->unk_378) <= 0.9f) { + if ((this->unk_37A / (f32)this->unk_378) <= 0.9f) { sp44->unk_1A7 = this->unk_215; } else { sp44->unk_1A7 = 0; @@ -2682,7 +2523,8 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { if (!(this->unk_360 & 8)) { sp58 = gZeroVec3f; - SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, &this->unk_1F8, sp7C, &sp58, this->unk_384); + SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, + &this->unk_1F8, sp7C, &sp58, this->unk_384); SubS_TimePathing_ComputeInitialY(play, this->unk_1DC, this->unk_1F8, &sp58); this->actor.world.pos.y = sp58.y; this->unk_360 |= 8; @@ -2700,7 +2542,8 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { } this->unk_1E0 = gZeroVec3f; - if (SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, &this->unk_1F8, sp7C, &this->unk_1E0, this->unk_384)) { + if (SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, + &this->unk_1F8, sp7C, &this->unk_1E0, this->unk_384)) { this->unk_360 |= 0x10; } else { sp70 = this->actor.world.pos; @@ -2915,7 +2758,8 @@ void func_80B57718(EnAn* this, PlayState* play) { void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, OBJECT_AN1_LIMB_MAX); + SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, + OBJECT_AN1_LIMB_MAX); this->animIndex = ENAN_ANIM_NONE; EnAn_ChangeAnim(this, play, ENAN_ANIM_1); @@ -2950,7 +2794,9 @@ void func_80B578F8(EnAn* this, PlayState* play) { if (this->scheduleResult != ANJU_SCH_19) { EnAn_ProcessScheduleOutput(this, play, &scheduleOutput); } - } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || ((this->scheduleResult != scheduleOutput.result) && (EnAn_ProcessScheduleOutput(this, play, &scheduleOutput) == 0))) { + } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || + ((this->scheduleResult != scheduleOutput.result) && + (EnAn_ProcessScheduleOutput(this, play, &scheduleOutput) == 0))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; scheduleOutput.result = ANJU_SCH_NONE; @@ -2964,7 +2810,6 @@ void func_80B578F8(EnAn* this, PlayState* play) { func_80B57718(this, play); } - void func_80B57A44(EnAn* this, PlayState* play) { if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos) != 0) { SubS_SetOfferMode(&this->unk_360, 3U, 7U); @@ -2974,7 +2819,9 @@ void func_80B57A44(EnAn* this, PlayState* play) { this->unk_388 = 0x14; this->msgScriptResumePos = 0; this->actionFunc = func_80B578F8; - } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != 3) && (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && (this->scheduleResult != ANJU_SCH_19)) { + } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != 3) && + (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && + (this->scheduleResult != ANJU_SCH_19)) { if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { s32 temp; Vec3f sp38; @@ -2990,11 +2837,14 @@ void func_80B57A44(EnAn* this, PlayState* play) { } void func_80B57B48(EnAn* this, PlayState* play) { - s32 sp30[] = { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0 }; + s32 sp30[] = { + ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, + ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0, + }; u16 temp_v1; s32 temp_v0; // sp28 - if(0) {} + if (0) {} if (Cutscene_IsCueInChannel(play, 0x22DU)) { temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); @@ -3012,10 +2862,8 @@ void func_80B57B48(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, sp30[temp_v1]); } - if ((this->animIndex == ENAN_ANIM_26) || - (this->animIndex == ENAN_ANIM_28) || - (this->animIndex == ENAN_ANIM_30) || - (this->animIndex == ENAN_ANIM_34)) { + if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || + (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_34)) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, this->animIndex + 1); } @@ -3132,7 +2980,8 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } if (limbIndex == OBJECT_AN1_LIMB_09) { - SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, &this->unk_258, stepRot, overrideRot); + SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, + &this->unk_258, stepRot, overrideRot); Matrix_Pop(); Matrix_Translate(this->unk_240.x, this->unk_240.y, this->unk_240.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); @@ -3172,7 +3021,9 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->eyeTexIndex])); gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->mouthTexIndex])); - SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, EnAn_PostLimbDraw, EnAn_TransformLimbDraw, &this->actor); + SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, + this->skelAnime.dListCount, NULL, EnAn_PostLimbDraw, EnAn_TransformLimbDraw, + &this->actor); CLOSE_DISPS(play->state.gfxCtx); } From 4fb34597666e89bffbd63a571abc59133b32de20 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 9 Oct 2023 15:21:52 -0300 Subject: [PATCH 24/78] name some easy to name struct members --- src/overlays/actors/ovl_En_An/z_en_an.c | 341 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 40 +-- tools/disasm/functions.txt | 2 +- tools/disasm/variables.txt | 2 +- 4 files changed, 192 insertions(+), 193 deletions(-) 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 69f7ea01b..53edf7f82 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -295,7 +295,7 @@ static u8 sScheduleScript[] = { /* 0x447 */ SCHEDULE_CMD_RET_NONE(), }; -s32 D_80B58618[ANJU_SCH_MAX] = { +static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_NONE 10, // ANJU_SCH_1 -1, // ANJU_SCH_2 @@ -471,7 +471,7 @@ static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; s32 func_80B53840(EnAn* this, PlayState* play) { s32 ret = false; - if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && (this->unk_3B8 == 0)) { + if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && !this->unk_3B8) { this->msmoObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); this->an4ObjectSlot = SubS_GetObjectSlot(OBJECT_AN4, play); this->maskKerfayObjectSlot = SubS_GetObjectSlot(OBJECT_MASK_KERFAY, play); @@ -479,10 +479,10 @@ s32 func_80B53840(EnAn* this, PlayState* play) { this->an2ObjectSlot = SubS_GetObjectSlot(OBJECT_AN2, play); this->actor.draw = NULL; this->unk_214 = play->roomCtx.curRoom.num; - this->unk_3B8 = 1; + this->unk_3B8 = true; } - if (this->unk_3B8 == 0) { + if (!this->unk_3B8) { return false; } @@ -494,7 +494,7 @@ s32 func_80B53840(EnAn* this, PlayState* play) { ret = true; } else { this->actor.draw = EnAn_Draw; - this->unk_3B8 = 0; + this->unk_3B8 = false; } return ret; @@ -552,33 +552,33 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) return foundActor; } -EnDoor* func_80B53B3C(PlayState* play, s32 scheduleOutputResult) { +EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) { s32 switchFlag; switch (scheduleOutputResult) { - case 0x1A: - case 0x1B: + case ANJU_SCH_1A: + case ANJU_SCH_1B: switchFlag = 0xD; break; - case 0x21: - case 0x22: - case 0x25: - case 0x26: + case ANJU_SCH_21: + case ANJU_SCH_22: + case ANJU_SCH_25: + case ANJU_SCH_26: switchFlag = 0xB; break; - case 0x24: + case ANJU_SCH_24: switchFlag = 0x10; break; - case 0x1C: - case 0x1D: - case 0x1E: - case 0x1F: - case 0x20: - case 0x23: - case 0x27: + case ANJU_SCH_1C: + case ANJU_SCH_1D: + case ANJU_SCH_1E: + case ANJU_SCH_1F: + case ANJU_SCH_20: + case ANJU_SCH_23: + case ANJU_SCH_27: switchFlag = 0xE; break; @@ -775,15 +775,15 @@ void func_80B53ED4(EnAn* this, PlayState* play) { if (this->scheduleResult == ANJU_SCH_19) { Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); - this->unk_190.dim.radius = 20; - Math_Vec3f_ToVec3s(&this->unk_190.dim.pos, &sp24); + this->collider.dim.radius = 20; + Math_Vec3f_ToVec3s(&this->collider.dim.pos, &sp24); } else { - Collider_UpdateCylinder(&this->actor, &this->unk_190); + Collider_UpdateCylinder(&this->actor, &this->collider); } temp = this->actor.focus.pos.y - this->actor.world.pos.y; - this->unk_190.dim.height = TRUNCF_BINANG(temp); - CollisionCheck_SetOC(play, &play->colChkCtx, &this->unk_190.base); + this->collider.dim.height = TRUNCF_BINANG(temp); + CollisionCheck_SetOC(play, &play->colChkCtx, &this->collider.base); } typedef enum EnAnEyes { @@ -906,8 +906,8 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { switch (arg2) { case 0x0: - if ((this->unk_360 & 0x800) && (this->unk_3B0 == 0)) { - this->unk_3A8 += 1; + if ((this->unk_360 & 0x800) && !this->unk_3B0) { + this->unk_3A8++; this->unk_3AC -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); @@ -924,7 +924,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x1: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->unk_360 & 0x4000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + if ((this->unk_360 & 0x4000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[otherObjectSlot].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); @@ -938,7 +938,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x2: otherObjectSlot = this->an2ObjectSlot; - if ((this->unk_360 & 0x1000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + if ((this->unk_360 & 0x1000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -947,7 +947,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x3: otherObjectSlot = this->an3ObjectSlot; - if ((this->unk_360 & 0x2000) && (this->unk_3B0 == 0) && (otherObjectSlot >= 0)) { + if ((this->unk_360 & 0x2000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -955,14 +955,14 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { break; case 0x4: - if ((this->unk_360 & 0x8000) && (this->unk_3B0 == 0)) { + if ((this->unk_360 & 0x8000) && !this->unk_3B0) { gSPDisplayList(POLY_OPA_DISP++, object_an1_DL_012478); } break; case 0x5: otherObjectSlot = this->msmoObjectSlot; - if ((this->unk_3B4 != 0) && (otherObjectSlot >= 0)) { + if (this->unk_3B4 && (otherObjectSlot >= 0)) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), @@ -1132,7 +1132,7 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { this->actor.child); } ret = 1; - this->unk_394 += 1; + this->unk_394++; break; case 0x1: @@ -1141,13 +1141,13 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { case 0x7: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = 1; - this->unk_394 += 1; + this->unk_394++; break; case 0x9: CutsceneManager_Stop(csId); ret = 1; - this->unk_394 += 1; + this->unk_394++; break; } @@ -1381,7 +1381,7 @@ s32 func_80B55180(EnAn* this, PlayState* play) { s32 ret = false; if ((this->unk_360 & 7) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { - SubS_SetOfferMode(&this->unk_360, 0U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); this->unk_3C4 = 0; this->unk_394 = 0; this->msgEventFunc = NULL; @@ -1416,21 +1416,21 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && ((temp_v0 == 0) || (temp_v0 == 1))) { - if (this->unk_3B0 == 0) { + if (!this->unk_3B0) { this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->unk_360 |= 0x300; this->unk_38E = 8; - this->unk_364 = -1; - this->unk_3B0 = 1; - this->unk_3B4 = 0; + this->cueId = -1; + this->unk_3B0 = true; + this->unk_3B4 = false; } ret = true; - } else if (this->unk_3B0 != 0) { - this->unk_3B0 = 0; - this->unk_3B4 = 0; - this->unk_3C0 = 1; + } else if (this->unk_3B0) { + this->unk_3B0 = false; + this->unk_3B4 = false; + this->unk_3C0 = true; this->actor.room = play->roomCtx.curRoom.num; this->actionFunc = func_80B578F8; } @@ -1480,7 +1480,7 @@ void func_80B554E8(EnAn* this) { this->unk_360 &= ~0x80; this->unk_37C = 0; this->unk_37E = 0; - this->unk_388 = 0x14; + this->unk_388 = 20; return; } @@ -1542,12 +1542,12 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { void func_80B556F8(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_6); - this->unk_360 &= 0xFFDF; + this->unk_360 &= ~0x20; this->unk_360 |= 0x200; this->unk_396++; } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); - this->unk_360 &= 0xFDFF; + this->unk_360 &= ~0x200; this->unk_360 |= 0x20; this->unk_396++; } @@ -1582,15 +1582,14 @@ void func_80B55860(EnAn* this, PlayState* play) { } s32 func_80B55914(EnAn* this, PlayState* play) { - Player* player; - u16 sp22; + Player* player = GET_PLAYER(play); + u16 textId = play->msgCtx.currentTextId; - player = GET_PLAYER(play); - sp22 = play->msgCtx.currentTextId; if (player->stateFlags1 & PLAYER_STATE1_40) { this->unk_360 |= 0x400; - if (this->unk_362 != sp22) { - switch (sp22) { + if (this->prevTextId != textId) { + + switch (textId) { case 0x28E5: EnAn_ChangeAnim(this, play, ENAN_ANIM_5); this->unk_360 &= 0xDFFF; @@ -1740,7 +1739,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { break; } - switch (sp22) { + switch (textId) { case 0x28F5: this->unk_38A = ENAN_FACE_0; /* fallthrough */ @@ -1831,10 +1830,10 @@ s32 func_80B55914(EnAn* this, PlayState* play) { } } - this->unk_362 = sp22; + this->prevTextId = textId; } else if (this->unk_360 & 0x400) { this->unk_18C = NULL; - this->unk_362 = 0; + this->prevTextId = 0; this->unk_360 &= ~0x400; this->faceIndex = this->unk_38A; this->unk_38E = 4; @@ -1877,22 +1876,22 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u Vec3s* temp_v0_3; Vec3f sp3C; Vec3f sp30; - Actor* var_v1; + Actor* actor; s32 pad; s32 ret = false; - var_v1 = func_80B539CC(this, play, actorCategory, actorId); - this->unk_1DC = NULL; + actor = func_80B539CC(this, play, actorCategory, actorId); + this->timePath = NULL; - if (D_80B58618[scheduleOutput->result] >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, D_80B58618[scheduleOutput->result]); + if (sSearchTimePathLimit[scheduleOutput->result] >= 0) { + this->timePath = SubS_GetAdditionalPath(play, pathIndex, sSearchTimePathLimit[scheduleOutput->result]); } - if ((var_v1 != NULL) && (var_v1->update != NULL)) { - if (this->unk_1DC != NULL) { - temp_v0_3 = Lib_SegmentedToVirtual(this->unk_1DC->points); - Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->unk_1DC->count - 2]); - Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->unk_1DC->count - 1]); + if ((actor != NULL) && (actor->update != NULL)) { + if (this->timePath != NULL) { + temp_v0_3 = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->timePath->count - 2]); + Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->timePath->count - 1]); this->actor.shape.shadowDraw = NULL; this->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); Math_Vec3f_Copy(&this->actor.world.pos, &sp30); @@ -1938,7 +1937,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; this->unk_360 |= 0x120; @@ -1953,7 +1952,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; this->unk_360 |= 0x120; @@ -1968,7 +1967,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, 4, 0x243) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_15); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; this->unk_360 |= 0x120; @@ -1981,24 +1980,24 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 sp56 = SCHEDULE_TIME_NOW; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); - EnDoor* sp50; + EnDoor* door; Vec3s* temp_v0_2; Vec3f sp40; Vec3f sp34; s32 limit; s32 ret = false; - this->unk_1DC = NULL; - sp50 = func_80B53B3C(play, scheduleOutput->result); + this->timePath = NULL; + door = EnAn_FindDoor(play, scheduleOutput->result); - limit = D_80B58618[scheduleOutput->result]; + limit = sSearchTimePathLimit[scheduleOutput->result]; if (limit >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + this->timePath = SubS_GetAdditionalPath(play, pathIndex, limit); } - if ((sp50 != NULL) && (sp50->knobDoor.dyna.actor.update != NULL)) { - if (this->unk_1DC != NULL) { - temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); + if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { + if (this->timePath != NULL) { + temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); Math_Vec3f_Copy(&this->unk_228, &sp40); @@ -2006,7 +2005,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); Math_Vec3f_Copy(&this->actor.world.pos, &sp40); - if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, sp50->knobDoor.dyna.actor.shape.rot.y)) <= 0x4000) { + if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, door->knobDoor.dyna.actor.shape.rot.y)) <= 0x4000) { this->unk_215 = -0x4B; } else { this->unk_215 = 0x4B; @@ -2068,35 +2067,35 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 var_v1 = 0; s32 temp_a3; - this->unk_1DC = NULL; - temp_a3 = D_80B58618[scheduleOutput->result]; + this->timePath = NULL; + temp_a3 = sSearchTimePathLimit[scheduleOutput->result]; if (temp_a3 >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, temp_a3); + this->timePath = SubS_GetAdditionalPath(play, pathIndex, temp_a3); } - if ((this->unk_1DC != NULL) && (this->unk_1DC->count < 3)) { - this->unk_1DC = NULL; + if ((this->timePath != NULL) && (this->timePath->count < 3)) { + this->timePath = NULL; } - if (this->unk_1DC != NULL) { - if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && (this->unk_384 >= 0)) { + if (this->timePath != NULL) { + if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && (this->timePathTimeSpeed >= 0)) { var_v1_2 = temp_t0; } else { var_v1_2 = scheduleOutput->time0; } if (scheduleOutput->time1 < var_v1_2) { - this->unk_1F0 = (var_v1_2 - scheduleOutput->time1) + 0xFFFF; + this->timePathTotalTime = (var_v1_2 - scheduleOutput->time1) + 0xFFFF; } else { - this->unk_1F0 = scheduleOutput->time1 - var_v1_2; + this->timePathTotalTime = scheduleOutput->time1 - var_v1_2; } - this->unk_1FC = temp_t0 - var_v1_2; - var_v1_2 = (this->unk_1DC->count - 2); - this->unk_1F4 = this->unk_1F0 / var_v1_2; + this->timePathElapsedTime = temp_t0 - var_v1_2; + var_v1_2 = (this->timePath->count - 2); + this->timePathWaypointTime = this->timePathTotalTime / var_v1_2; - this->unk_1F8 = (this->unk_1FC / this->unk_1F4) + 2; + this->timePathWaypoint = (this->timePathElapsedTime / this->timePathWaypointTime) + 2; this->unk_360 &= ~8; this->unk_360 &= ~0x10; @@ -2124,7 +2123,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case ANJU_SCH_2A: case ANJU_SCH_2B: - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); /* fallthrough */ case ANJU_SCH_2C: case ANJU_SCH_2D: @@ -2136,7 +2135,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_34: case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; this->unk_360 |= 0x2000; @@ -2167,7 +2166,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_2F: case ANJU_SCH_30: case ANJU_SCH_31: - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; /* fallthrough */ default: @@ -2190,15 +2189,15 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 limit; s32 ret = false; - this->unk_1DC = NULL; + this->timePath = NULL; - limit = D_80B58618[scheduleOutput->result]; + limit = sSearchTimePathLimit[scheduleOutput->result]; if (limit >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + this->timePath = SubS_GetAdditionalPath(play, pathIndex, limit); } - if ((this->unk_1DC != NULL) && (this->unk_1DC->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); + if ((this->timePath != NULL) && (this->timePath->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); @@ -2208,7 +2207,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.prevPos, &sp40); if (scheduleOutput->result == ANJU_SCH_16) { EnAn_ChangeAnim(this, play, ENAN_ANIM_23); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; this->unk_360 |= 0x2000; @@ -2227,16 +2226,16 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 limit; s32 ret = false; - this->unk_1DC = NULL; - limit = D_80B58618[scheduleOutput->result]; + this->timePath = NULL; + limit = sSearchTimePathLimit[scheduleOutput->result]; if (limit >= 0) { - this->unk_1DC = SubS_GetAdditionalPath(play, pathIndex, limit); + this->timePath = SubS_GetAdditionalPath(play, pathIndex, limit); } - if ((this->unk_1DC != NULL) && (this->unk_1DC->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(this->unk_1DC->points); - Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->unk_1DC->count - 1]); - Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->unk_1DC->count - 2]); + if ((this->timePath != NULL) && (this->timePath->count >= 2)) { + temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->timePath->count - 1]); + Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->timePath->count - 2]); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); @@ -2252,7 +2251,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_12: case ANJU_SCH_17: EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A = 0; this->unk_360 |= 0x300; if (scheduleOutput->result == ANJU_SCH_12) { @@ -2282,7 +2281,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_E: EnAn_ChangeAnim(this, play, ENAN_ANIM_12); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; this->unk_360 |= 0x8000; @@ -2306,7 +2305,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (scheduleOutput->result == ANJU_SCH_C) { EnAn_ChangeAnim(this, play, ENAN_ANIM_11); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; this->unk_360 |= 0x40; @@ -2331,7 +2330,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case ANJU_SCH_1: - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); EnAn_ChangeAnim(this, play, ENAN_ANIM_9); break; @@ -2358,7 +2357,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_0); - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 |= 0x300; return 1; @@ -2478,17 +2477,17 @@ s32 func_80B56E44(EnAn* this, PlayState* play) { } s32 func_80B56EB4(EnAn* this, PlayState* play) { - EnDoor* sp44 = func_80B53B3C(play, this->scheduleResult); + EnDoor* door = EnAn_FindDoor(play, this->scheduleResult); Vec3f sp38; f32 temp_fv0; s32 pad; - if (!SubS_InCsMode(play) && (this->unk_384 != 0)) { - if ((sp44 != NULL) && (sp44->knobDoor.dyna.actor.update != NULL)) { + if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { + if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if ((this->unk_37A / (f32)this->unk_378) <= 0.9f) { - sp44->unk_1A7 = this->unk_215; + door->unk_1A7 = this->unk_215; } else { - sp44->unk_1A7 = 0; + door->unk_1A7 = 0; } } @@ -2501,60 +2500,61 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { Lib_Vec3f_TranslateAndRotateY(&this->unk_228, this->actor.world.rot.y, &sp38, &this->actor.world.pos); - this->unk_37A += this->unk_384; + this->unk_37A += this->timePathTimeSpeed; if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } } + return 0; } s32 func_80B5702C(EnAn* this, PlayState* play) { - f32 sp7C[265]; + f32 knots[265]; Vec3f sp70; Vec3f sp64; - Vec3f sp58; + Vec3f timePathTargetPos; s32 sp54; s32 sp50 = 0; s32 pad; sp54 = 0; - SubS_TimePathing_FillKnots(sp7C, 3, this->unk_1DC->count + 3); + SubS_TimePathing_FillKnots(knots, 3, this->timePath->count + 3); if (!(this->unk_360 & 8)) { - sp58 = gZeroVec3f; - SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, - &this->unk_1F8, sp7C, &sp58, this->unk_384); - SubS_TimePathing_ComputeInitialY(play, this->unk_1DC, this->unk_1F8, &sp58); - this->actor.world.pos.y = sp58.y; + timePathTargetPos = gZeroVec3f; + SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, + &this->timePathWaypoint, knots, &timePathTargetPos, this->timePathTimeSpeed); + SubS_TimePathing_ComputeInitialY(play, this->timePath, this->timePathWaypoint, &timePathTargetPos); + this->actor.world.pos.y = timePathTargetPos.y; this->unk_360 |= 8; } else { - sp58 = this->unk_1E0; + timePathTargetPos = this->timePathTargetPos; } - this->actor.world.pos.x = sp58.x; - this->actor.world.pos.z = sp58.z; + this->actor.world.pos.x = timePathTargetPos.x; + this->actor.world.pos.z = timePathTargetPos.z; if (SubS_InCsMode(play) != 0) { - sp54 = this->unk_1FC; - sp50 = this->unk_1F8; - sp58 = this->actor.world.pos; + sp54 = this->timePathElapsedTime; + sp50 = this->timePathWaypoint; + timePathTargetPos = this->actor.world.pos; } - this->unk_1E0 = gZeroVec3f; + this->timePathTargetPos = gZeroVec3f; - if (SubS_TimePathing_Update(this->unk_1DC, &this->unk_1EC, &this->unk_1FC, this->unk_1F4, this->unk_1F0, - &this->unk_1F8, sp7C, &this->unk_1E0, this->unk_384)) { + if (SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, + &this->timePathWaypoint, knots, &this->timePathTargetPos, this->timePathTimeSpeed)) { this->unk_360 |= 0x10; } else { sp70 = this->actor.world.pos; - sp64 = this->unk_1E0; + sp64 = this->timePathTargetPos; this->actor.world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); } if (SubS_InCsMode(play) != 0) { - this->unk_1FC = sp54; - this->unk_1F8 = sp50; - this->unk_1E0 = sp58; + this->timePathElapsedTime = sp54; + this->timePathWaypoint = sp50; + this->timePathTargetPos = timePathTargetPos; } else if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } @@ -2628,14 +2628,14 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { case 0x3: if (ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, this->actor.shape.rot.y)) < 0x3000) { - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, 0U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } break; case 0x4: - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A++; break; } @@ -2648,9 +2648,9 @@ s32 func_80B575BC(EnAn* this, PlayState* play) { s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); if (temp_v1 < 0x4000) { - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, 0U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } if (func_80B55ECC(this) != 0) { @@ -2667,9 +2667,9 @@ s32 func_80B57674(EnAn* this, PlayState* play) { s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); if (temp_v1 < 0x3000) { - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, 0U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } this->unk_360 &= ~0x20; @@ -2763,11 +2763,11 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->animIndex = ENAN_ANIM_NONE; EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - Collider_InitAndSetCylinder(play, &this->unk_190, &this->actor, &D_80B58BBC); + Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &D_80B58BBC); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); if (this->actor.params & ENAN_8000) { - this->unk_3C0 = 1; + this->unk_3C0 = true; } this->actor.draw = EnAn_Draw; @@ -2782,14 +2782,14 @@ void func_80B577F0(EnAn* this, PlayState* play) { void func_80B578F8(EnAn* this, PlayState* play) { ScheduleOutput scheduleOutput; - this->unk_384 = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); + this->timePathTimeSpeed = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); - if (!(this->actor.params & ENAN_8000) && (this->unk_3C0 == 0) && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { + if (!(this->actor.params & ENAN_8000) && !this->unk_3C0 && CHECK_WEEKEVENTREG(WEEKEVENTREG_51_40)) { Actor_Kill(&this->actor); return; } - if (this->unk_3C0 != 0) { + if (this->unk_3C0) { scheduleOutput.result = ANJU_SCH_19; if (this->scheduleResult != ANJU_SCH_19) { EnAn_ProcessScheduleOutput(this, play, &scheduleOutput); @@ -2812,14 +2812,14 @@ void func_80B578F8(EnAn* this, PlayState* play) { void func_80B57A44(EnAn* this, PlayState* play) { if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos) != 0) { - SubS_SetOfferMode(&this->unk_360, 3U, 7U); + SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_360 &= ~0x20; this->unk_360 |= 0x200; - this->unk_388 = 0x14; + this->unk_388 = 20; this->msgScriptResumePos = 0; this->actionFunc = func_80B578F8; - } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != 3) && + } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != ANJU_SCH_3) && (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && (this->scheduleResult != ANJU_SCH_19)) { if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { @@ -2841,25 +2841,24 @@ void func_80B57B48(EnAn* this, PlayState* play) { ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0, }; - u16 temp_v1; - s32 temp_v0; // sp28 + s32 pad; if (0) {} - if (Cutscene_IsCueInChannel(play, 0x22DU)) { - temp_v0 = Cutscene_GetCueChannel(play, 0x22DU); - temp_v1 = play->csCtx.actorCues[temp_v0]->id; + if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_557)) { + s32 cueChannel = Cutscene_GetCueChannel(play, CS_CMD_ACTOR_CUE_557); + u16 cueId = play->csCtx.actorCues[cueChannel]->id; - if (this->unk_364 != (temp_v1 & 0xFF)) { - this->unk_364 = temp_v1; - if (this->unk_364 == 3) { + if (this->cueId != (cueId & 0xFF)) { + this->cueId = cueId; + if (this->cueId == 3) { SET_WEEKEVENTREG(WEEKEVENTREG_87_02); - this->unk_3B4 = 1; + this->unk_3B4 = true; } - if (this->unk_364 == 9) { - this->unk_3B4 = 0; + if (this->cueId == 9) { + this->unk_3B4 = false; } - EnAn_ChangeAnim(this, play, sp30[temp_v1]); + EnAn_ChangeAnim(this, play, sp30[cueId]); } if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || @@ -2868,7 +2867,7 @@ void func_80B57B48(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, this->animIndex + 1); } } - Cutscene_ActorTranslateAndYaw(&this->actor, play, temp_v0); + Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel); } } @@ -2898,7 +2897,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { } this->unk_214 = -0x80; - this->unk_3B8 = 0; + this->unk_3B8 = false; if (temp_v1 == 0) { this->actor.room = -1; } @@ -2909,7 +2908,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { void EnAn_Destroy(Actor* thisx, PlayState* play) { EnAn* this = THIS; - Collider_DestroyCylinder(play, &this->unk_190); + Collider_DestroyCylinder(play, &this->collider); } void EnAn_Update(Actor* thisx, PlayState* play) { @@ -2932,7 +2931,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { func_80B53BA8(this, play); EnAn_UpdateFace(this); func_80B554E8(this); - SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & 7); + SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & SUBS_OFFER_MODE_MASK); if (!(this->unk_360 & 0x40)) { Actor_MoveWithGravity(&this->actor); @@ -3013,7 +3012,7 @@ TexturePtr D_80B58EEC[ENAN_EYES_MAX] = { void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; - if ((this->scheduleResult != ANJU_SCH_NONE) || (this->unk_3B0 != 0)) { + if ((this->scheduleResult != ANJU_SCH_NONE) || this->unk_3B0) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 851302e6e..d521d49fa 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -19,14 +19,14 @@ typedef struct EnAn { /* 0x144 */ SkelAnime skelAnime; /* 0x188 */ EnAnActionFunc actionFunc; /* 0x18C */ EnAnUnkFunc unk_18C; - /* 0x190 */ ColliderCylinder unk_190; - /* 0x1DC */ Path* unk_1DC; // timePath - /* 0x1E0 */ Vec3f unk_1E0; - /* 0x1EC */ f32 unk_1EC; - /* 0x1F0 */ s32 unk_1F0; - /* 0x1F4 */ s32 unk_1F4; - /* 0x1F8 */ s32 unk_1F8; - /* 0x1FC */ s32 unk_1FC; + /* 0x190 */ ColliderCylinder collider; + /* 0x1DC */ Path* timePath; + /* 0x1E0 */ Vec3f timePathTargetPos; + /* 0x1EC */ f32 timePathProgress; + /* 0x1F0 */ s32 timePathTotalTime; + /* 0x1F4 */ s32 timePathWaypointTime; + /* 0x1F8 */ s32 timePathWaypoint; + /* 0x1FC */ s32 timePathElapsedTime; /* 0x200 */ u8 scheduleResult; /* 0x204 */ s32* msgEventScript; /* 0x208 */ s8 an2ObjectSlot; @@ -43,27 +43,27 @@ typedef struct EnAn { /* 0x234 */ Vec3f unk_234; /* 0x240 */ Vec3f unk_240; /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; - /* 0x258 */ Vec3s unk_258; + /* 0x258 */ Vec3s unk_258; // some limb rot /* 0x25E */ UNK_TYPE1 unk_25E[0x6]; /* 0x264 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; /* 0x2E2 */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; - /* 0x360 */ u16 unk_360; // flags? - /* 0x362 */ u16 unk_362; - /* 0x364 */ u8 unk_364; + /* 0x360 */ u16 unk_360; // stateFlags? + /* 0x362 */ u16 prevTextId; + /* 0x364 */ u8 cueId; /* 0x368 */ f32 unk_368; /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; /* 0x374 */ f32 unk_374; /* 0x378 */ s16 unk_378; // schedule time diff - /* 0x37A */ s16 unk_37A; - /* 0x37C */ s16 unk_37C; - /* 0x37E */ s16 unk_37E; + /* 0x37A */ s16 unk_37A; // schedule time diff + /* 0x37C */ s16 unk_37C; // some limb z rot + /* 0x37E */ s16 unk_37E; // some limb y rot /* 0x380 */ UNK_TYPE1 unk_380[0x4]; - /* 0x384 */ s16 unk_384; - /* 0x386 */ s16 unk_386; - /* 0x388 */ s16 unk_388; + /* 0x384 */ s16 timePathTimeSpeed; + /* 0x386 */ s16 unk_386; // timer + /* 0x388 */ s16 unk_388; // timer /* 0x38A */ s16 unk_38A; // face enum /* 0x38C */ s16 faceIndex; // face enum - /* 0x38E */ s16 unk_38E; + /* 0x38E */ s16 unk_38E; // timer /* 0x390 */ s16 eyeTexIndex; /* 0x392 */ s16 mouthTexIndex; /* 0x394 */ s16 unk_394; @@ -78,7 +78,7 @@ typedef struct EnAn { /* 0x3B8 */ s32 unk_3B8; /* 0x3BC */ s32 unk_3BC; /* 0x3C0 */ s32 unk_3C0; - /* 0x3C4 */ s32 unk_3C4; + /* 0x3C4 */ s32 unk_3C4; // set but not read } EnAn; // size = 0x3C8 #endif // Z_EN_AN_H diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index c684d00e6..83356ad85 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14010,7 +14010,7 @@ 0x80B53840:("func_80B53840",), 0x80B539CC:("func_80B539CC",), 0x80B53A7C:("func_80B53A7C",), - 0x80B53B3C:("func_80B53B3C",), + 0x80B53B3C:("EnAn_FindDoor",), 0x80B53BA8:("func_80B53BA8",), 0x80B53CE8:("EnAn_ChangeAnim",), 0x80B53ED4:("func_80B53ED4",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index d5a869f12..f8cc38d96 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14444,7 +14444,7 @@ 0x80B534A8:("D_80B534A8","f32","",0x4), 0x80B534AC:("D_80B534AC","f32","",0x4), 0x80B581D0:("sScheduleScript","UNK_TYPE1","",0x1), - 0x80B58618:("D_80B58618","UNK_TYPE1","",0x1), + 0x80B58618:("sSearchTimePathLimit","UNK_TYPE1","",0x1), 0x80B58718:("D_80B58718","UNK_TYPE1","",0x1), 0x80B58784:("D_80B58784","UNK_TYPE1","",0x1), 0x80B58808:("D_80B58808","UNK_TYPE1","",0x1), From 1e1c1db514880520dc15dbdc91c5bb671a83f7f5 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 9 Oct 2023 15:52:56 -0300 Subject: [PATCH 25/78] stateFlags --- src/overlays/actors/ovl_En_An/z_en_an.c | 232 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 16 +- 2 files changed, 131 insertions(+), 117 deletions(-) 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 53edf7f82..b88cdd044 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -834,7 +834,7 @@ s16 D_80B58E40[ENAN_FACE_MAX] = { void EnAn_UpdateFace(EnAn* this) { s32 var_a1 = false; - if (this->unk_360 & 0x100) { + if (this->stateFlags & ENAN_STATE_100) { if (DECR(this->unk_38E) == 0) { // default case doesn't match switch (this->faceIndex) { @@ -906,7 +906,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { switch (arg2) { case 0x0: - if ((this->unk_360 & 0x800) && !this->unk_3B0) { + if ((this->stateFlags & ENAN_STATE_800) && !this->unk_3B0) { this->unk_3A8++; this->unk_3AC -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); @@ -924,7 +924,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x1: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->unk_360 & 0x4000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_4000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[otherObjectSlot].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); @@ -938,7 +938,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x2: otherObjectSlot = this->an2ObjectSlot; - if ((this->unk_360 & 0x1000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_1000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -947,7 +947,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x3: otherObjectSlot = this->an3ObjectSlot; - if ((this->unk_360 & 0x2000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_2000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -955,7 +955,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { break; case 0x4: - if ((this->unk_360 & 0x8000) && !this->unk_3B0) { + if ((this->stateFlags & ENAN_STATE_8000) && !this->unk_3B0) { gSPDisplayList(POLY_OPA_DISP++, object_an1_DL_012478); } break; @@ -1207,15 +1207,15 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { goto label; } else { ret = true; - this->unk_360 |= 0x4000; + this->stateFlags |= ENAN_STATE_4000; this->unk_394++; } break; case 0x1: label: - this->unk_360 &= ~(0x20 | 0x4000); - this->unk_360 |= 0x200; + this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_4000); + this->stateFlags |= ENAN_STATE_200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); ret = true; this->unk_394++; @@ -1380,8 +1380,8 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { s32 func_80B55180(EnAn* this, PlayState* play) { s32 ret = false; - if ((this->unk_360 & 7) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); + if ((this->stateFlags & SUBS_OFFER_MODE_MASK) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); this->unk_3C4 = 0; this->unk_394 = 0; this->msgEventFunc = NULL; @@ -1396,11 +1396,11 @@ s32 func_80B55180(EnAn* this, PlayState* play) { (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || (this->scheduleResult == ANJU_SCH_30) || (this->scheduleResult == ANJU_SCH_31) || (this->scheduleResult == ANJU_SCH_34) || (this->scheduleResult == ANJU_SCH_35)) { - this->unk_360 |= 0x20; + this->stateFlags |= ENAN_STATE_20; } if ((this->scheduleResult == ANJU_SCH_3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; } this->actionFunc = func_80B57A44; @@ -1419,7 +1419,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if (!this->unk_3B0) { this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; - this->unk_360 |= 0x300; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->unk_38E = 8; this->cueId = -1; this->unk_3B0 = true; @@ -1465,19 +1465,19 @@ void func_80B553AC(EnAn* this) { } void func_80B554E8(EnAn* this) { - if (this->unk_360 & 0x20) { + if (this->stateFlags & ENAN_STATE_20) { if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { if (DECR(this->unk_388) == 0) { func_80B553AC(this); - this->unk_360 &= ~0x200; - this->unk_360 |= 0x80; + this->stateFlags &= ~ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_80; return; } } } - if (this->unk_360 & 0x80) { - this->unk_360 &= ~0x80; + if (this->stateFlags & ENAN_STATE_80) { + this->stateFlags &= ~ENAN_STATE_80; this->unk_37C = 0; this->unk_37E = 0; this->unk_388 = 20; @@ -1485,7 +1485,7 @@ void func_80B554E8(EnAn* this) { } if (DECR(this->unk_388) == 0) { - this->unk_360 |= 0x200; + this->stateFlags |= ENAN_STATE_200; } } @@ -1501,7 +1501,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_16: EnAn_ChangeAnim(this, play, ENAN_ANIM_23); - this->unk_360 |= 0x2000; + this->stateFlags |= ENAN_STATE_2000; break; case ANJU_SCH_E: @@ -1520,7 +1520,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_34: case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); - this->unk_360 |= 0x2000; + this->stateFlags |= ENAN_STATE_2000; break; default: @@ -1542,13 +1542,13 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { void func_80B556F8(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_6); - this->unk_360 &= ~0x20; - this->unk_360 |= 0x200; + this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_200; this->unk_396++; } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); - this->unk_360 &= ~0x200; - this->unk_360 |= 0x20; + this->stateFlags &= ~ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_20; this->unk_396++; } } @@ -1556,13 +1556,13 @@ void func_80B556F8(EnAn* this, PlayState* play) { void func_80B557AC(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_3); - this->unk_360 &= 0xFFDF; - this->unk_360 |= 0x200; + this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_200; this->unk_396++; } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); - this->unk_360 &= 0xFDFF; - this->unk_360 |= 0x20; + this->stateFlags &= ~ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_20; this->unk_396++; } } @@ -1570,13 +1570,13 @@ void func_80B557AC(EnAn* this, PlayState* play) { void func_80B55860(EnAn* this, PlayState* play) { if (this->unk_396 == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_4); - this->unk_360 |= 0x200; - this->unk_360 &= 0xFFDF; + this->stateFlags |= ENAN_STATE_200; + this->stateFlags &= ~ENAN_STATE_20; this->unk_396++; } else if ((this->unk_396 == 1) && (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) != 0)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); - this->unk_360 &= 0xFDFF; - this->unk_360 |= 0x20; + this->stateFlags &= ~ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_20; this->unk_396++; } } @@ -1586,13 +1586,13 @@ s32 func_80B55914(EnAn* this, PlayState* play) { u16 textId = play->msgCtx.currentTextId; if (player->stateFlags1 & PLAYER_STATE1_40) { - this->unk_360 |= 0x400; - if (this->prevTextId != textId) { + this->stateFlags |= ENAN_STATE_400; + if (this->prevTextId != textId) { switch (textId) { case 0x28E5: EnAn_ChangeAnim(this, play, ENAN_ANIM_5); - this->unk_360 &= 0xDFFF; + this->stateFlags &= ~ENAN_STATE_2000; break; case 0x28BA: @@ -1624,8 +1624,8 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28EB: if (this->animIndex != ENAN_ANIM_20) { - this->unk_360 &= 0xBFDF; - this->unk_360 |= 0x200; + this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_4000); + this->stateFlags |= ENAN_STATE_200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); } break; @@ -1640,7 +1640,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { break; case 0x28E6: - this->unk_360 &= 0xDFFF; + this->stateFlags &= ~ENAN_STATE_2000; this->unk_18C = func_80B55860; this->unk_396 = 0; break; @@ -1831,10 +1831,10 @@ s32 func_80B55914(EnAn* this, PlayState* play) { } this->prevTextId = textId; - } else if (this->unk_360 & 0x400) { + } else if (this->stateFlags & ENAN_STATE_400) { this->unk_18C = NULL; this->prevTextId = 0; - this->unk_360 &= ~0x400; + this->stateFlags &= ~ENAN_STATE_400; this->faceIndex = this->unk_38A; this->unk_38E = 4; func_80B555C8(this, play); @@ -1937,11 +1937,11 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->unk_360 |= 0x120; - this->unk_360 |= 0x200; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_200; } return ret; @@ -1952,11 +1952,11 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->unk_360 |= 0x120; - this->unk_360 |= 0x200; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_200; } return ret; @@ -1967,11 +1967,11 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (func_80B55D98(this, play, scheduleOutput, 4, 0x243) != 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_15); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->unk_360 |= 0x120; - this->unk_360 |= 0xA00; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_800; } return ret; @@ -2033,24 +2033,24 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_1A: case ANJU_SCH_1B: case ANJU_SCH_1C: - this->unk_360 |= 0x900; + this->stateFlags |= ENAN_STATE_800 | ENAN_STATE_100; EnAn_ChangeAnim(this, play, ENAN_ANIM_16); break; case ANJU_SCH_24: case ANJU_SCH_27: - this->unk_360 |= 0x2100; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_2000; EnAn_ChangeAnim(this, play, ENAN_ANIM_22); break; default: - this->unk_360 |= 0x100; + this->stateFlags |= ENAN_STATE_100; EnAn_ChangeAnim(this, play, ENAN_ANIM_7); break; } this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; - this->unk_360 |= 0x200; + this->stateFlags |= ENAN_STATE_200; this->actor.gravity = 0.0f; ret = true; } @@ -2096,8 +2096,8 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->timePathWaypointTime = this->timePathTotalTime / var_v1_2; this->timePathWaypoint = (this->timePathElapsedTime / this->timePathWaypointTime) + 2; - this->unk_360 &= ~8; - this->unk_360 &= ~0x10; + this->stateFlags &= ~ENAN_STATE_8; + this->stateFlags &= ~ENAN_STATE_10; switch (scheduleOutput->result) { case ANJU_SCH_2C: @@ -2123,28 +2123,28 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case ANJU_SCH_2A: case ANJU_SCH_2B: - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); /* fallthrough */ case ANJU_SCH_2C: case ANJU_SCH_2D: EnAn_ChangeAnim(this, play, ENAN_ANIM_16); - this->unk_360 |= 0x300; - this->unk_360 |= 0x800; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_800; break; case ANJU_SCH_34: case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; - this->unk_360 |= 0x2000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_2000; break; case ANJU_SCH_32: case ANJU_SCH_33: EnAn_ChangeAnim(this, play, ENAN_ANIM_7); - this->unk_360 |= 0x300; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; break; case ANJU_SCH_36: @@ -2158,16 +2158,16 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3E: case ANJU_SCH_3F: EnAn_ChangeAnim(this, play, ENAN_ANIM_18); - this->unk_360 |= 0x300; - this->unk_360 |= 0x1000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_1000; break; case ANJU_SCH_28: case ANJU_SCH_2F: case ANJU_SCH_30: case ANJU_SCH_31: - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; /* fallthrough */ default: EnAn_ChangeAnim(this, play, ENAN_ANIM_7); @@ -2207,10 +2207,10 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.prevPos, &sp40); if (scheduleOutput->result == ANJU_SCH_16) { EnAn_ChangeAnim(this, play, ENAN_ANIM_23); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; - this->unk_360 |= 0x2000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_2000; } ret = true; } @@ -2251,21 +2251,21 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_12: case ANJU_SCH_17: EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A = 0; - this->unk_360 |= 0x300; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; if (scheduleOutput->result == ANJU_SCH_12) { this->unk_374 = 70.0f; } break; case ANJU_SCH_3: - this->unk_360 |= 0x300; - this->unk_360 |= 0x1000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_1000; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_20); - this->unk_360 |= 0x40; + this->stateFlags |= ENAN_STATE_40; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; this->unk_37A = 4; @@ -2281,10 +2281,10 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_E: EnAn_ChangeAnim(this, play, ENAN_ANIM_12); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; - this->unk_360 |= 0x8000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_8000; break; } ret = true; @@ -2305,10 +2305,10 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (scheduleOutput->result == ANJU_SCH_C) { EnAn_ChangeAnim(this, play, ENAN_ANIM_11); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; - this->unk_360 |= 0x40; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_40; this->unk_38A = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; @@ -2330,7 +2330,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case ANJU_SCH_1: - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); EnAn_ChangeAnim(this, play, ENAN_ANIM_9); break; @@ -2342,8 +2342,8 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { break; } - this->unk_360 |= 0x300; - this->unk_360 |= 0x40; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_40; this->actor.gravity = 0.0f; return true; @@ -2357,8 +2357,8 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_0); - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 |= 0x300; + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; return 1; } @@ -2368,7 +2368,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche this->actor.flags |= ACTOR_FLAG_TARGETABLE; this->actor.targetMode = TARGET_MODE_6; - this->unk_360 = 0; + this->stateFlags = 0; this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->unk_38E = 8; @@ -2521,13 +2521,13 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { sp54 = 0; SubS_TimePathing_FillKnots(knots, 3, this->timePath->count + 3); - if (!(this->unk_360 & 8)) { + if (!(this->stateFlags & ENAN_STATE_8)) { timePathTargetPos = gZeroVec3f; SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, &timePathTargetPos, this->timePathTimeSpeed); SubS_TimePathing_ComputeInitialY(play, this->timePath, this->timePathWaypoint, &timePathTargetPos); this->actor.world.pos.y = timePathTargetPos.y; - this->unk_360 |= 8; + this->stateFlags |= ENAN_STATE_8; } else { timePathTargetPos = this->timePathTargetPos; } @@ -2544,7 +2544,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { if (SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, &this->timePathTargetPos, this->timePathTimeSpeed)) { - this->unk_360 |= 0x10; + this->stateFlags |= ENAN_STATE_10; } else { sp70 = this->actor.world.pos; sp64 = this->timePathTargetPos; @@ -2566,26 +2566,26 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_17: if ((func_80B55F8C(play) != 0) && (func_80B55ECC(this) != 0)) { - this->unk_360 |= 0x20; + this->stateFlags |= ENAN_STATE_20; } else { - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; } break; case ANJU_SCH_1: if (func_80B55ECC(this) != 0) { - this->unk_360 |= 0x20; + this->stateFlags |= ENAN_STATE_20; } else { - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; } break; case ANJU_SCH_12: case ANJU_SCH_13: if (func_80B55ECC(this) != 0) { - this->unk_360 |= 0x20; + this->stateFlags |= ENAN_STATE_20; } else { - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; } break; @@ -2615,7 +2615,7 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { if (temp1 == temp2) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_19); - this->unk_360 |= 0x40; + this->stateFlags |= ENAN_STATE_40; this->unk_37A++; } break; @@ -2628,14 +2628,14 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { case 0x3: if (ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, this->actor.shape.rot.y)) < 0x3000) { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } break; case 0x4: - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A++; break; } @@ -2648,15 +2648,15 @@ s32 func_80B575BC(EnAn* this, PlayState* play) { s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); if (temp_v1 < 0x4000) { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } if (func_80B55ECC(this) != 0) { - this->unk_360 |= 0x20; + this->stateFlags |= ENAN_STATE_20; } else { - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; } return 1; @@ -2667,12 +2667,12 @@ s32 func_80B57674(EnAn* this, PlayState* play) { s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); if (temp_v1 < 0x3000) { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } - this->unk_360 &= ~0x20; + this->stateFlags &= ~ENAN_STATE_20; return 1; } @@ -2772,7 +2772,7 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->actor.draw = EnAn_Draw; Actor_SetScale(&this->actor, 0.01f); - this->unk_360 = 0; + this->stateFlags = 0; this->scheduleResult = ANJU_SCH_NONE; this->actionFunc = func_80B578F8; @@ -2812,10 +2812,10 @@ void func_80B578F8(EnAn* this, PlayState* play) { void func_80B57A44(EnAn* this, PlayState* play) { if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos) != 0) { - SubS_SetOfferMode(&this->unk_360, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_360 &= ~0x20; - this->unk_360 |= 0x200; + this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_200; this->unk_388 = 20; this->msgScriptResumePos = 0; this->actionFunc = func_80B578F8; @@ -2931,9 +2931,9 @@ void EnAn_Update(Actor* thisx, PlayState* play) { func_80B53BA8(this, play); EnAn_UpdateFace(this); func_80B554E8(this); - SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->unk_360 & SUBS_OFFER_MODE_MASK); + SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); - if (!(this->unk_360 & 0x40)) { + if (!(this->stateFlags & ENAN_STATE_40)) { Actor_MoveWithGravity(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4U); } @@ -2966,8 +2966,8 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { s32 stepRot; s32 overrideRot; - if (!(this->unk_360 & 0x200)) { - if (this->unk_360 & 0x80) { + if (!(this->stateFlags & ENAN_STATE_200)) { + if (this->stateFlags & ENAN_STATE_80) { overrideRot = true; } else { overrideRot = false; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index d521d49fa..81dcd27bd 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -14,6 +14,20 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_8000 0x8000 //#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) +#define ENAN_STATE_8 (1 << 3) +#define ENAN_STATE_10 (1 << 4) +#define ENAN_STATE_20 (1 << 5) +#define ENAN_STATE_40 (1 << 6) +#define ENAN_STATE_80 (1 << 7) +#define ENAN_STATE_100 (1 << 8) +#define ENAN_STATE_200 (1 << 9) +#define ENAN_STATE_400 (1 << 10) +#define ENAN_STATE_800 (1 << 11) +#define ENAN_STATE_1000 (1 << 12) +#define ENAN_STATE_2000 (1 << 13) +#define ENAN_STATE_4000 (1 << 14) +#define ENAN_STATE_8000 (1 << 15) + typedef struct EnAn { /* 0x000 */ Actor actor; /* 0x144 */ SkelAnime skelAnime; @@ -47,7 +61,7 @@ typedef struct EnAn { /* 0x25E */ UNK_TYPE1 unk_25E[0x6]; /* 0x264 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; /* 0x2E2 */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; - /* 0x360 */ u16 unk_360; // stateFlags? + /* 0x360 */ u16 stateFlags; /* 0x362 */ u16 prevTextId; /* 0x364 */ u8 cueId; /* 0x368 */ f32 unk_368; From db0111e781cc8ef96ce2bd4d11946e188052393d Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 9 Oct 2023 18:59:35 -0300 Subject: [PATCH 26/78] object stuff --- assets/xml/objects/object_an1.xml | 113 +++---- assets/xml/objects/object_an2.xml | 3 + assets/xml/objects/object_an3.xml | 4 +- assets/xml/objects/object_mask_kerfay.xml | 3 +- assets/xml/objects/object_msmo.xml | 1 + src/code/z_player_lib.c | 2 +- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 22 +- src/overlays/actors/ovl_Dm_An/z_dm_an.h | 4 +- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 22 +- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h | 4 +- src/overlays/actors/ovl_En_An/z_en_an.c | 347 +++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.h | 6 +- tools/disasm/variables.txt | 8 +- 13 files changed, 282 insertions(+), 257 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index d0f5f73c5..b99f2769b 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -11,77 +11,86 @@ - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + - + - + - + - - - - - - - - + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/xml/objects/object_an2.xml b/assets/xml/objects/object_an2.xml index a1785e5dd..c288af6f6 100644 --- a/assets/xml/objects/object_an2.xml +++ b/assets/xml/objects/object_an2.xml @@ -2,8 +2,11 @@ + + + diff --git a/assets/xml/objects/object_an3.xml b/assets/xml/objects/object_an3.xml index 2fa21dadc..e3814aae4 100644 --- a/assets/xml/objects/object_an3.xml +++ b/assets/xml/objects/object_an3.xml @@ -2,10 +2,12 @@ + - + + diff --git a/assets/xml/objects/object_mask_kerfay.xml b/assets/xml/objects/object_mask_kerfay.xml index 282aa8029..a57bf48b9 100644 --- a/assets/xml/objects/object_mask_kerfay.xml +++ b/assets/xml/objects/object_mask_kerfay.xml @@ -1,6 +1,7 @@  - + + diff --git a/assets/xml/objects/object_msmo.xml b/assets/xml/objects/object_msmo.xml index 6bfd0e46d..a440cfce7 100644 --- a/assets/xml/objects/object_msmo.xml +++ b/assets/xml/objects/object_msmo.xml @@ -2,6 +2,7 @@ + diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 3a5d69a34..9f7a72a28 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -2515,7 +2515,7 @@ u8 D_801C0B1C[] = { Gfx* D_801C0B20[] = { object_mask_truth_DL_0001A0, // PLAYER_MASK_TRUTH - object_mask_kerfay_DL_000D40, // PLAYER_MASK_KAFEIS_MASK + gKafeiMaskDL, // PLAYER_MASK_KAFEIS_MASK object_mask_yofukasi_DL_000490, // PLAYER_MASK_ALL_NIGHT object_mask_rabit_DL_000610, // PLAYER_MASK_BUNNY object_mask_ki_tan_DL_0004A0, // PLAYER_MASK_KEATON diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index 3b05c6e56..55da3d7ea 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -194,8 +194,8 @@ void func_80C1C958(DmAn* this, PlayState* play) { if ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->an4ObjectSlot, play) && (this->msmoObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->msmoObjectSlot, play)) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 14.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, - OBJECT_AN1_LIMB_MAX); + SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, + ANJU1_LIMB_MAX); this->animIndex = DMAN_ANIM_NONE; DmAn_ChangeAnim(this, play, DMAN_ANIM_0); @@ -305,7 +305,7 @@ void func_80C1CD80(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Acto s8 objectSlot = this->actor.objectSlot; s8 msmoObjectSlot = this->msmoObjectSlot; - if ((limbIndex == OBJECT_AN1_LIMB_05) && this->didAnimChangeInCs) { + if ((limbIndex == ANJU1_LIMB_LEFT_HAND) && this->didAnimChangeInCs) { OPEN_DISPS(play->state.gfxCtx); Matrix_Push(); @@ -321,7 +321,7 @@ void func_80C1CD80(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Acto CLOSE_DISPS(play->state.gfxCtx); } - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { Matrix_MultVec3f(&D_80C1D2DC, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); } @@ -344,7 +344,7 @@ void func_80C1CEFC(PlayState* play, s32 limbIndex, Actor* thisx) { overrideRot = false; } - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { SubS_UpdateLimb(this->unk_2BE + this->unk_2C2 + 0x4000, this->unk_2C0 + this->unk_2C4 + this->actor.shape.rot.y + 0x4000, &this->unk_18C, &this->unk_1A4, stepRot, overrideRot); @@ -355,7 +355,7 @@ void func_80C1CEFC(PlayState* play, s32 limbIndex, Actor* thisx) { Matrix_RotateXS(this->unk_1A4.x, MTXMODE_APPLY); Matrix_RotateZS(this->unk_1A4.z, MTXMODE_APPLY); Matrix_Push(); - } else if (limbIndex == OBJECT_AN1_LIMB_02) { + } else if (limbIndex == ANJU1_LIMB_TORSO) { SubS_UpdateLimb(this->unk_2C2 + 0x4000, this->unk_2C4 + this->actor.shape.rot.y + 0x4000, &this->unk_194, &this->unk_1AA, stepRot, overrideRot); Matrix_Pop(); @@ -369,14 +369,14 @@ void func_80C1CEFC(PlayState* play, s32 limbIndex, Actor* thisx) { } TexturePtr D_80C1D2E8[] = { - object_an1_Tex_00E6E0, - object_an1_Tex_00F7A0, - object_an1_Tex_0101A0, + gAnju1Mouth00E6E0Tex, + gAnju1MouthHappyTex, + gAnju1Mouth0101A0Tex, }; TexturePtr D_80C1D2F4[] = { - object_an1_Tex_00E1E0, object_an1_Tex_00EFA0, object_an1_Tex_00F3A0, object_an1_Tex_00EFA0, - object_an1_Tex_00FDA0, object_an1_Tex_00F9A0, object_an1_Tex_0103A0, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, }; void func_80C1D0B0(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.h b/src/overlays/actors/ovl_Dm_An/z_dm_an.h index 00931d731..175206ec8 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.h +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.h @@ -16,8 +16,8 @@ typedef struct DmAn { /* 0x18C */ Vec3f unk_194; /* 0x1A4 */ Vec3s unk_1A4; /* 0x1A4 */ Vec3s unk_1AA; - /* 0x1B0 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; - /* 0x22E */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; + /* 0x1B0 */ Vec3s jointTable[ANJU1_LIMB_MAX]; + /* 0x22E */ Vec3s morphTable[ANJU1_LIMB_MAX]; /* 0x2AC */ s8 an4ObjectSlot; /* 0x2AD */ s8 msmoObjectSlot; /* 0x2AE */ u16 unk_2AE; diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index 3994c8fce..65e275607 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -194,8 +194,8 @@ void func_80C248A8(DmGm* this, PlayState* play) { if ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->an4ObjectSlot, play) && (this->msmoObjectSlot > OBJECT_SLOT_NONE) && SubS_IsObjectLoaded(this->msmoObjectSlot, play)) { ActorShape_Init(&this->actor.shape, 0.0f, ActorShadow_DrawCircle, 14.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, - OBJECT_AN1_LIMB_MAX); + SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, + ANJU1_LIMB_MAX); this->animIndex = DMGM_ANIM_NONE; DmGm_ChangeAnim(this, play, DMGM_ANIM_0); @@ -305,7 +305,7 @@ void DmGm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, s8 sp2B = this->actor.objectSlot; s8 sp2A = this->msmoObjectSlot; - if ((limbIndex == OBJECT_AN1_LIMB_05) && this->didAnimChangeInCs) { + if ((limbIndex == ANJU1_LIMB_LEFT_HAND) && this->didAnimChangeInCs) { OPEN_DISPS(play->state.gfxCtx); Matrix_Push(); @@ -321,7 +321,7 @@ void DmGm_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, CLOSE_DISPS(play->state.gfxCtx); } - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { Matrix_MultVec3f(&D_80C2522C, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); } @@ -344,7 +344,7 @@ void DmGm_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { overrideRot = false; } - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { SubS_UpdateLimb(this->unk_2BE + this->unk_2C2 + 0x4000, this->unk_2C0 + this->unk_2C4 + this->actor.shape.rot.y + 0x4000, &this->unk_18C, &this->unk_1A4, stepRot, overrideRot); @@ -355,7 +355,7 @@ void DmGm_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { Matrix_RotateXS(this->unk_1A4.x, MTXMODE_APPLY); Matrix_RotateZS(this->unk_1A4.z, MTXMODE_APPLY); Matrix_Push(); - } else if (limbIndex == OBJECT_AN1_LIMB_02) { + } else if (limbIndex == ANJU1_LIMB_TORSO) { SubS_UpdateLimb(this->unk_2C2 + 0x4000, this->unk_2C4 + this->actor.shape.rot.y + 0x4000, &this->unk_194, &this->unk_1AA, stepRot, overrideRot); Matrix_Pop(); @@ -369,14 +369,14 @@ void DmGm_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } TexturePtr D_80C25238[] = { - object_an1_Tex_00E6E0, - object_an1_Tex_00F7A0, - object_an1_Tex_0101A0, + gAnju1Mouth00E6E0Tex, + gAnju1MouthHappyTex, + gAnju1Mouth0101A0Tex, }; TexturePtr D_80C25244[] = { - object_an1_Tex_00E1E0, object_an1_Tex_00EFA0, object_an1_Tex_00F3A0, object_an1_Tex_00EFA0, - object_an1_Tex_00FDA0, object_an1_Tex_00F9A0, object_an1_Tex_0103A0, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, }; void func_80C25000(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h index 8abcba712..f28e251f5 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.h @@ -16,8 +16,8 @@ typedef struct DmGm { /* 0x18C */ Vec3f unk_194; /* 0x1A4 */ Vec3s unk_1A4; /* 0x1A4 */ Vec3s unk_1AA; - /* 0x1B0 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; - /* 0x22E */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; + /* 0x1B0 */ Vec3s jointTable[ANJU1_LIMB_MAX]; + /* 0x22E */ Vec3s morphTable[ANJU1_LIMB_MAX]; /* 0x2AC */ s8 an4ObjectSlot; /* 0x2AD */ s8 msmoObjectSlot; /* 0x2AE */ u16 unk_2AE; 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 b88cdd044..15333c616 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -486,11 +486,12 @@ s32 func_80B53840(EnAn* this, PlayState* play) { return false; } - if (((this->an2ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || - ((this->an3ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || - ((this->maskKerfayObjectSlot >= 0) && (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || - ((this->an4ObjectSlot >= 0) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || - ((this->msmoObjectSlot >= 0) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { + if (((this->an2ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || + ((this->an3ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || + ((this->maskKerfayObjectSlot > OBJECT_SLOT_NONE) && + (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || + ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || + ((this->msmoObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { ret = true; } else { this->actor.draw = EnAn_Draw; @@ -589,35 +590,12 @@ EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) { return SubS_FindDoor(play, switchFlag); } -s32 func_80B53BA8(EnAn* this, PlayState* play) { - s8 originalObjectSlot = this->actor.objectSlot; - s8 otherObjectSlot = -1; - s32 ret = 0; - - if ((this->animIndex >= 0x19) && (this->an4ObjectSlot >= 0)) { - otherObjectSlot = this->an4ObjectSlot; - } else if ((this->animIndex >= 0x15) && (this->an3ObjectSlot >= 0)) { - otherObjectSlot = this->an3ObjectSlot; - } else if ((this->animIndex >= 0x11) && (this->an2ObjectSlot >= 0)) { - otherObjectSlot = this->an2ObjectSlot; - } else if (this->animIndex < 0x11) { - otherObjectSlot = originalObjectSlot; - } - - if (otherObjectSlot < 0) { - return 0; - } - - if (otherObjectSlot >= 0) { - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); - this->skelAnime.playSpeed = this->unk_368; - ret = SkelAnime_Update(&this->skelAnime); - gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); - } - - return ret; -} - +/** + * Anju stores her animations across 4 objects and all of them are put together right next to each other in the + * sAnimationInfo array. Due to this, animation functions check which object to load by comparing index ranges. To make + * this a bit easier to read, this enum includes `ENAN_ANIMOBJ_*` values that mark when a range of animations of a + * certain object start + */ typedef enum EnAnAnimation { /* -1 */ ENAN_ANIM_NONE = -1, /* 0 */ ENAN_ANIM_0, @@ -638,17 +616,20 @@ typedef enum EnAnAnimation { /* 15 */ ENAN_ANIM_15, /* 16 */ ENAN_ANIM_16, - /* 17 */ ENAN_ANIM_17, + /* 17 */ ENAN_ANIMOBJ_AN2, + /* 17 */ ENAN_ANIM_17 = ENAN_ANIMOBJ_AN2, /* 18 */ ENAN_ANIM_18, /* 19 */ ENAN_ANIM_19, /* 20 */ ENAN_ANIM_20, - /* 21 */ ENAN_ANIM_21, + /* 21 */ ENAN_ANIMOBJ_AN3, + /* 21 */ ENAN_ANIM_21 = ENAN_ANIMOBJ_AN3, /* 22 */ ENAN_ANIM_22, - /* 23 */ ENAN_ANIM_23, + /* 23 */ ENAN_ANIM_SWEEP, /* 24 */ ENAN_ANIM_24, - /* 25 */ ENAN_ANIM_25, + /* 25 */ ENAN_ANIMOBJ_AN4, + /* 25 */ ENAN_ANIM_25 = ENAN_ANIMOBJ_AN4, /* 26 */ ENAN_ANIM_26, /* 27 */ ENAN_ANIM_27, /* 28 */ ENAN_ANIM_28, @@ -662,8 +643,7 @@ typedef enum EnAnAnimation { /* 36 */ ENAN_ANIM_MAX } EnAnAnimation; -// sAnimationInfo -AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { +static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_1 { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 @@ -689,7 +669,7 @@ AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { { &object_an3_Anim_00201C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_21 { &object_an3_Anim_002A4C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_22 - { &object_an3_Anim_0012C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_23 + { &gAnju3SweepAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SWEEP //! @bug Uses symbol from OBJECT_AN2 instead of OBJECT_AN3 { &object_an2_Anim_0038A0, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 @@ -706,23 +686,52 @@ AnimationInfoS D_80B58BF4[ENAN_ANIM_MAX] = { { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35 }; -s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { +s32 func_80B53BA8(EnAn* this, PlayState* play) { s8 originalObjectSlot = this->actor.objectSlot; - s8 otherObjectSlot = -1; - s32 var_t0 = 0; - s32 var_t2 = 0; + s8 otherObjectSlot = OBJECT_SLOT_NONE; + s32 ret = 0; - if ((animIndex >= 25) && (this->an4ObjectSlot >= 0)) { + if ((this->animIndex >= ENAN_ANIMOBJ_AN4) && (this->an4ObjectSlot > OBJECT_SLOT_NONE)) { otherObjectSlot = this->an4ObjectSlot; - } else if ((animIndex >= 21) && (this->an3ObjectSlot >= 0)) { + } else if ((this->animIndex >= ENAN_ANIMOBJ_AN3) && (this->an3ObjectSlot > OBJECT_SLOT_NONE)) { otherObjectSlot = this->an3ObjectSlot; - } else if ((animIndex >= 17) && (this->an2ObjectSlot >= 0)) { + } else if ((this->animIndex >= ENAN_ANIMOBJ_AN2) && (this->an2ObjectSlot > OBJECT_SLOT_NONE)) { otherObjectSlot = this->an2ObjectSlot; - } else if (animIndex < 17) { + } else if (this->animIndex < ENAN_ANIMOBJ_AN2) { otherObjectSlot = originalObjectSlot; } - if (otherObjectSlot < 0) { + if (otherObjectSlot <= OBJECT_SLOT_NONE) { + return 0; + } + + if (otherObjectSlot > OBJECT_SLOT_NONE) { + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); + this->skelAnime.playSpeed = this->unk_368; + ret = SkelAnime_Update(&this->skelAnime); + gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); + } + + return ret; +} + +s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { + s8 originalObjectSlot = this->actor.objectSlot; + s8 otherObjectSlot = OBJECT_SLOT_NONE; + s32 changeAnim = false; + s32 ret = false; + + if ((animIndex >= ENAN_ANIMOBJ_AN4) && (this->an4ObjectSlot > OBJECT_SLOT_NONE)) { + otherObjectSlot = this->an4ObjectSlot; + } else if ((animIndex >= ENAN_ANIMOBJ_AN3) && (this->an3ObjectSlot > OBJECT_SLOT_NONE)) { + otherObjectSlot = this->an3ObjectSlot; + } else if ((animIndex >= ENAN_ANIMOBJ_AN2) && (this->an2ObjectSlot > OBJECT_SLOT_NONE)) { + otherObjectSlot = this->an2ObjectSlot; + } else if (animIndex < ENAN_ANIMOBJ_AN2) { + otherObjectSlot = originalObjectSlot; + } + + if (otherObjectSlot <= OBJECT_SLOT_NONE) { return 0; } @@ -730,40 +739,40 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { case ENAN_ANIM_1: case ENAN_ANIM_2: if ((this->animIndex != ENAN_ANIM_1) && (this->animIndex != ENAN_ANIM_2)) { - var_t0 = 1; + changeAnim = true; } break; case ENAN_ANIM_7: case ENAN_ANIM_8: if ((this->animIndex != ENAN_ANIM_7) && (this->animIndex != ENAN_ANIM_8)) { - var_t0 = 1; + changeAnim = true; } break; case ENAN_ANIM_9: case ENAN_ANIM_10: if ((this->animIndex != ENAN_ANIM_9) && (this->animIndex != ENAN_ANIM_10)) { - var_t0 = 1; + changeAnim = true; } break; default: if (animIndex != this->animIndex) { - var_t0 = 1; + changeAnim = true; } break; } - if ((var_t0 != 0) && (otherObjectSlot >= 0)) { + if (changeAnim && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); this->animIndex = animIndex; - var_t2 = SubS_ChangeAnimationByInfoS(&this->skelAnime, D_80B58BF4, animIndex); + ret = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); this->unk_368 = this->skelAnime.playSpeed; gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); } - return var_t2; + return ret; } Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; @@ -787,19 +796,19 @@ void func_80B53ED4(EnAn* this, PlayState* play) { } typedef enum EnAnEyes { - /* 0 */ ENAN_EYES_0, - /* 1 */ ENAN_EYES_1, - /* 2 */ ENAN_EYES_2, - /* 3 */ ENAN_EYES_3, + /* 0 */ ENAN_EYES_OPEN, + /* 1 */ ENAN_EYES_HALF1, + /* 2 */ ENAN_EYES_CLOSED, + /* 3 */ ENAN_EYES_HALF2, /* 4 */ ENAN_EYES_4, - /* 5 */ ENAN_EYES_5, - /* 6 */ ENAN_EYES_6, + /* 5 */ ENAN_EYES_SAD, + /* 6 */ ENAN_EYES_ANGRY, /* 7 */ ENAN_EYES_MAX } EnAnEyes; typedef enum EnAnMouth { /* 0 */ ENAN_MOUTH_0, - /* 1 */ ENAN_MOUTH_1, + /* 1 */ ENAN_MOUTH_HAPPY, /* 2 */ ENAN_MOUTH_2, /* 3 */ ENAN_MOUTH_MAX } EnAnMouth; @@ -818,76 +827,76 @@ typedef enum EnAnFace { /* 10 */ ENAN_FACE_MAX } EnAnFace; -s16 D_80B58E40[ENAN_FACE_MAX] = { - ENAN_MOUTH_0, // ENAN_FACE_0 - ENAN_MOUTH_2, // ENAN_FACE_1 - ENAN_MOUTH_0, // ENAN_FACE_2 - ENAN_MOUTH_1, // ENAN_FACE_3 - ENAN_MOUTH_2, // ENAN_FACE_4 - ENAN_MOUTH_0, // ENAN_FACE_5 - ENAN_MOUTH_1, // ENAN_FACE_6 - ENAN_MOUTH_2, // ENAN_FACE_7 - ENAN_MOUTH_1, // ENAN_FACE_8 - ENAN_MOUTH_1, // ENAN_FACE_9 +static s16 sMouthIndices[ENAN_FACE_MAX] = { + ENAN_MOUTH_0, // ENAN_FACE_0 + ENAN_MOUTH_2, // ENAN_FACE_1 + ENAN_MOUTH_0, // ENAN_FACE_2 + ENAN_MOUTH_HAPPY, // ENAN_FACE_3 + ENAN_MOUTH_2, // ENAN_FACE_4 + ENAN_MOUTH_0, // ENAN_FACE_5 + ENAN_MOUTH_HAPPY, // ENAN_FACE_6 + ENAN_MOUTH_2, // ENAN_FACE_7 + ENAN_MOUTH_HAPPY, // ENAN_FACE_8 + ENAN_MOUTH_HAPPY, // ENAN_FACE_9 }; void EnAn_UpdateFace(EnAn* this) { - s32 var_a1 = false; + s32 skipBlink = false; if (this->stateFlags & ENAN_STATE_100) { - if (DECR(this->unk_38E) == 0) { + if (DECR(this->eyeTimer) == 0) { // default case doesn't match switch (this->faceIndex) { case ENAN_FACE_2: case ENAN_FACE_4: case ENAN_FACE_6: - if ((this->eyeTexIndex == ENAN_EYES_5) || (this->eyeTexIndex == ENAN_EYES_2)) { - var_a1 = true; - this->eyeTexIndex = ENAN_EYES_5; + if ((this->eyeTexIndex == ENAN_EYES_SAD) || (this->eyeTexIndex == ENAN_EYES_CLOSED)) { + skipBlink = true; + this->eyeTexIndex = ENAN_EYES_SAD; } break; case ENAN_FACE_5: case ENAN_FACE_7: - if ((this->eyeTexIndex == ENAN_EYES_6) || (this->eyeTexIndex == ENAN_EYES_1)) { - var_a1 = true; - this->eyeTexIndex = ENAN_EYES_6; + if ((this->eyeTexIndex == ENAN_EYES_ANGRY) || (this->eyeTexIndex == ENAN_EYES_HALF1)) { + skipBlink = true; + this->eyeTexIndex = ENAN_EYES_ANGRY; } break; case ENAN_FACE_8: - if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_2)) { - var_a1 = true; + if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_CLOSED)) { + skipBlink = true; this->eyeTexIndex = ENAN_EYES_4; } break; } - if (!var_a1) { - if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_5)) { - this->eyeTexIndex = ENAN_EYES_0; - } else if (this->eyeTexIndex == ENAN_EYES_6) { - this->eyeTexIndex = ENAN_EYES_1; + if (!skipBlink) { + if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_SAD)) { + this->eyeTexIndex = ENAN_EYES_OPEN; + } else if (this->eyeTexIndex == ENAN_EYES_ANGRY) { + this->eyeTexIndex = ENAN_EYES_HALF1; } } - if (!var_a1) { + if (!skipBlink) { this->eyeTexIndex++; - if (this->eyeTexIndex >= ENAN_EYES_4) { + if (this->eyeTexIndex > ENAN_EYES_HALF2) { if ((this->faceIndex == ENAN_FACE_0) || (this->faceIndex == ENAN_FACE_1) || (this->faceIndex == ENAN_FACE_3)) { - this->unk_38E = Rand_S16Offset(0x1E, 0x1E); + this->eyeTimer = Rand_S16Offset(0x1E, 0x1E); } else { - this->unk_38E = 8; + this->eyeTimer = 8; } - this->eyeTexIndex = ENAN_EYES_0; + this->eyeTexIndex = ENAN_EYES_OPEN; } } } } - this->mouthTexIndex = D_80B58E40[this->faceIndex]; + this->mouthTexIndex = sMouthIndices[this->faceIndex]; } Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; @@ -924,21 +933,21 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x1: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->stateFlags & ENAN_STATE_4000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_4000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[otherObjectSlot].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPDisplayList(POLY_OPA_DISP++, object_mask_kerfay_DL_000D40); + gSPDisplayList(POLY_OPA_DISP++, gKafeiMaskDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; case 0x2: otherObjectSlot = this->an2ObjectSlot; - if ((this->stateFlags & ENAN_STATE_1000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_1000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -947,7 +956,7 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x3: otherObjectSlot = this->an3ObjectSlot; - if ((this->stateFlags & ENAN_STATE_2000) && !this->unk_3B0 && (otherObjectSlot >= 0)) { + if ((this->stateFlags & ENAN_STATE_2000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -956,13 +965,13 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { case 0x4: if ((this->stateFlags & ENAN_STATE_8000) && !this->unk_3B0) { - gSPDisplayList(POLY_OPA_DISP++, object_an1_DL_012478); + gSPDisplayList(POLY_OPA_DISP++, gAnju1ChopsticksDL); } break; case 0x5: otherObjectSlot = this->msmoObjectSlot; - if (this->unk_3B4 && (otherObjectSlot >= 0)) { + if (this->unk_3B4 && (otherObjectSlot > OBJECT_SLOT_NONE)) { Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), @@ -1411,16 +1420,16 @@ s32 func_80B55180(EnAn* this, PlayState* play) { } s32 func_80B552E4(EnAn* this, PlayState* play) { - u16 temp_v0 = play->csCtx.scriptIndex; + u16 scriptIndex = play->csCtx.scriptIndex; s32 ret = false; - if ((play->csCtx.state != 0) && (play->sceneId == 0x61) && (gSaveContext.sceneLayer == 0) && - ((temp_v0 == 0) || (temp_v0 == 1))) { + if ((play->csCtx.state != 0) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) && + ((scriptIndex == 0) || (scriptIndex == 1))) { if (!this->unk_3B0) { this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->unk_38E = 8; + this->eyeTimer = 8; this->cueId = -1; this->unk_3B0 = true; this->unk_3B4 = false; @@ -1500,7 +1509,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { break; case ANJU_SCH_16: - EnAn_ChangeAnim(this, play, ENAN_ANIM_23); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SWEEP); this->stateFlags |= ENAN_STATE_2000; break; @@ -1573,7 +1582,7 @@ void func_80B55860(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_200; this->stateFlags &= ~ENAN_STATE_20; this->unk_396++; - } else if ((this->unk_396 == 1) && (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame) != 0)) { + } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; @@ -1730,7 +1739,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { if (this->animIndex == ENAN_ANIM_18) { EnAn_ChangeAnim(this, play, ENAN_ANIM_17); } - if ((this->animIndex == ENAN_ANIM_22) || (this->animIndex == ENAN_ANIM_23)) { + if ((this->animIndex == ENAN_ANIM_22) || (this->animIndex == ENAN_ANIM_SWEEP)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_21); } if ((this->animIndex == ENAN_ANIM_7) || (this->animIndex == ENAN_ANIM_8)) { @@ -1747,7 +1756,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28AA: case 0x28F8: this->faceIndex = ENAN_FACE_0; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x1885: @@ -1756,7 +1765,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28AF: case 0x28C1: this->faceIndex = ENAN_FACE_3; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28A2: @@ -1771,25 +1780,25 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28E7: case 0x28ED: this->faceIndex = ENAN_FACE_1; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28AD: this->faceIndex = ENAN_FACE_8; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28C0: case 0x28D7: case 0x28DE: this->faceIndex = ENAN_FACE_2; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28E6: case 0x28F7: this->faceIndex = ENAN_FACE_6; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28A3: @@ -1803,7 +1812,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28E3: case 0x28E4: this->faceIndex = ENAN_FACE_4; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28EC: @@ -1814,18 +1823,18 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28F2: case 0x28F9: this->faceIndex = ENAN_FACE_5; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28F6: this->faceIndex = ENAN_FACE_9; - this->unk_38E = 8; + this->eyeTimer = 8; break; case 0x28A4: case 0x28A9: this->faceIndex = ENAN_FACE_7; - this->unk_38E = 8; + this->eyeTimer = 8; break; } } @@ -1836,7 +1845,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { this->prevTextId = 0; this->stateFlags &= ~ENAN_STATE_400; this->faceIndex = this->unk_38A; - this->unk_38E = 4; + this->eyeTimer = 4; func_80B555C8(this, play); } @@ -1873,7 +1882,7 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u8 actorCategory, s16 actorId) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); - Vec3s* temp_v0_3; + Vec3s* points; Vec3f sp3C; Vec3f sp30; Actor* actor; @@ -1889,9 +1898,9 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u if ((actor != NULL) && (actor->update != NULL)) { if (this->timePath != NULL) { - temp_v0_3 = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp3C, &temp_v0_3[this->timePath->count - 2]); - Math_Vec3s_ToVec3f(&sp30, &temp_v0_3[this->timePath->count - 1]); + points = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp3C, &points[this->timePath->count - 2]); + Math_Vec3s_ToVec3f(&sp30, &points[this->timePath->count - 1]); this->actor.shape.shadowDraw = NULL; this->actor.world.rot.y = Math_Vec3f_Yaw(&sp3C, &sp30); Math_Vec3f_Copy(&this->actor.world.pos, &sp30); @@ -1935,7 +1944,7 @@ s32 func_80B55F8C(PlayState* play) { s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; - if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM) != 0) { + if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -1950,7 +1959,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; - if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG) != 0) { + if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_1); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -1965,7 +1974,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; - if (func_80B55D98(this, play, scheduleOutput, 4, 0x243) != 0) { + if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_NB)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_15); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -1981,7 +1990,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 sp56 = SCHEDULE_TIME_NOW; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); EnDoor* door; - Vec3s* temp_v0_2; + Vec3s* points; Vec3f sp40; Vec3f sp34; s32 limit; @@ -1997,9 +2006,9 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if (this->timePath != NULL) { - temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); - Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); + points = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp40, &points[0]); + Math_Vec3s_ToVec3f(&sp34, &points[1]); Math_Vec3f_Copy(&this->unk_228, &sp40); Math_Vec3f_Copy(&this->unk_234, &sp34); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); @@ -2025,7 +2034,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_26: this->unk_38A = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; - this->unk_38E = 8; + this->eyeTimer = 8; break; } @@ -2060,7 +2069,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { - u16 temp_t0 = (gSaveContext.save.time - 0x3FFC); + u16 now = SCHEDULE_TIME_NOW; u16 var_v1_2; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); s32 pad; @@ -2079,8 +2088,9 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if (this->timePath != NULL) { - if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && (this->timePathTimeSpeed >= 0)) { - var_v1_2 = temp_t0; + if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && + (this->timePathTimeSpeed >= 0)) { + var_v1_2 = now; } else { var_v1_2 = scheduleOutput->time0; } @@ -2091,7 +2101,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->timePathTotalTime = scheduleOutput->time1 - var_v1_2; } - this->timePathElapsedTime = temp_t0 - var_v1_2; + this->timePathElapsedTime = now - var_v1_2; var_v1_2 = (this->timePath->count - 2); this->timePathWaypointTime = this->timePathTotalTime / var_v1_2; @@ -2116,7 +2126,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3F: this->unk_38A = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; - this->unk_38E = 8; + this->eyeTimer = 8; break; } @@ -2206,7 +2216,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.world.pos, &sp40); Math_Vec3f_Copy(&this->actor.prevPos, &sp40); if (scheduleOutput->result == ANJU_SCH_16) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_23); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SWEEP); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2276,7 +2286,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_38A = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; - this->unk_38E = 8; + this->eyeTimer = 8; break; case ANJU_SCH_E: @@ -2312,7 +2322,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_38A = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; - this->unk_38E = 8; + this->eyeTimer = 8; } return true; @@ -2338,7 +2348,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_11); this->unk_38A = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; - this->unk_38E = 8; + this->eyeTimer = 8; break; } @@ -2371,7 +2381,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche this->stateFlags = 0; this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; - this->unk_38E = 8; + this->eyeTimer = 8; this->unk_374 = 40.0f; switch (scheduleOutput->result) { @@ -2523,8 +2533,9 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { if (!(this->stateFlags & ENAN_STATE_8)) { timePathTargetPos = gZeroVec3f; - SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, - &this->timePathWaypoint, knots, &timePathTargetPos, this->timePathTimeSpeed); + SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, + this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, + &timePathTargetPos, this->timePathTimeSpeed); SubS_TimePathing_ComputeInitialY(play, this->timePath, this->timePathWaypoint, &timePathTargetPos); this->actor.world.pos.y = timePathTargetPos.y; this->stateFlags |= ENAN_STATE_8; @@ -2542,8 +2553,9 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { } this->timePathTargetPos = gZeroVec3f; - if (SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, - &this->timePathWaypoint, knots, &this->timePathTargetPos, this->timePathTimeSpeed)) { + if (SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, + this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, + &this->timePathTargetPos, this->timePathTimeSpeed)) { this->stateFlags |= ENAN_STATE_10; } else { sp70 = this->actor.world.pos; @@ -2590,7 +2602,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { break; case ANJU_SCH_16: - if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_23)) { + if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_SWEEP)) { Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } break; @@ -2758,8 +2770,7 @@ void func_80B57718(EnAn* this, PlayState* play) { void func_80B577F0(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); - SkelAnime_InitFlex(play, &this->skelAnime, &object_an1_Skel_012618, NULL, this->jointTable, this->morphTable, - OBJECT_AN1_LIMB_MAX); + SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, ANJU1_LIMB_MAX); this->animIndex = ENAN_ANIM_NONE; EnAn_ChangeAnim(this, play, ENAN_ANIM_1); @@ -2947,16 +2958,16 @@ Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnAn* this = THIS; - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { Matrix_MultVec3f(&D_80B58ED4, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); func_80B54124(this, play, 1U); - } else if (limbIndex == OBJECT_AN1_LIMB_08) { + } else if (limbIndex == ANJU1_LIMB_RIGHT_HAND) { func_80B54124(this, play, 0U); func_80B54124(this, play, 4U); func_80B54124(this, play, 2U); func_80B54124(this, play, 3U); - } else if (limbIndex == OBJECT_AN1_LIMB_05) { + } else if (limbIndex == ANJU1_LIMB_LEFT_HAND) { func_80B54124(this, play, 5U); } } @@ -2978,7 +2989,7 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { stepRot = false; } - if (limbIndex == OBJECT_AN1_LIMB_09) { + if (limbIndex == ANJU1_LIMB_HEAD) { SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, &this->unk_258, stepRot, overrideRot); Matrix_Pop(); @@ -2991,22 +3002,20 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } } -// mouth textures -TexturePtr D_80B58EE0[ENAN_MOUTH_MAX] = { - object_an1_Tex_00E6E0, // ENAN_MOUTH_0 - object_an1_Tex_00F7A0, // ENAN_MOUTH_1 - object_an1_Tex_0101A0, // ENAN_MOUTH_2 +static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { + gAnju1Mouth00E6E0Tex, // ENAN_MOUTH_0 + gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY + gAnju1Mouth0101A0Tex, // ENAN_MOUTH_2 }; -// eye textures -TexturePtr D_80B58EEC[ENAN_EYES_MAX] = { - object_an1_Tex_00E1E0, // ENAN_EYES_0 - object_an1_Tex_00EFA0, // ENAN_EYES_1 - object_an1_Tex_00F3A0, // ENAN_EYES_2 - object_an1_Tex_00EFA0, // ENAN_EYES_3 - object_an1_Tex_00FDA0, // ENAN_EYES_4 - object_an1_Tex_00F9A0, // ENAN_EYES_5 - object_an1_Tex_0103A0, // ENAN_EYES_6 +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) { @@ -3017,8 +3026,8 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { Gfx_SetupDL25_Opa(play->state.gfxCtx); - gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(D_80B58EEC[this->eyeTexIndex])); - gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(D_80B58EE0[this->mouthTexIndex])); + gSPSegment(POLY_OPA_DISP++, 0x08, Lib_SegmentedToVirtual(sEyeTextures[this->eyeTexIndex])); + gSPSegment(POLY_OPA_DISP++, 0x09, Lib_SegmentedToVirtual(sMouthTextures[this->mouthTexIndex])); SkelAnime_DrawTransformFlexOpa(play, this->skelAnime.skeleton, this->skelAnime.jointTable, this->skelAnime.dListCount, NULL, EnAn_PostLimbDraw, EnAn_TransformLimbDraw, diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 81dcd27bd..cea2363c1 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -59,8 +59,8 @@ typedef struct EnAn { /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; /* 0x258 */ Vec3s unk_258; // some limb rot /* 0x25E */ UNK_TYPE1 unk_25E[0x6]; - /* 0x264 */ Vec3s jointTable[OBJECT_AN1_LIMB_MAX]; - /* 0x2E2 */ Vec3s morphTable[OBJECT_AN1_LIMB_MAX]; + /* 0x264 */ Vec3s jointTable[ANJU1_LIMB_MAX]; + /* 0x2E2 */ Vec3s morphTable[ANJU1_LIMB_MAX]; /* 0x360 */ u16 stateFlags; /* 0x362 */ u16 prevTextId; /* 0x364 */ u8 cueId; @@ -77,7 +77,7 @@ typedef struct EnAn { /* 0x388 */ s16 unk_388; // timer /* 0x38A */ s16 unk_38A; // face enum /* 0x38C */ s16 faceIndex; // face enum - /* 0x38E */ s16 unk_38E; // timer + /* 0x38E */ s16 eyeTimer; /* 0x390 */ s16 eyeTexIndex; /* 0x392 */ s16 mouthTexIndex; /* 0x394 */ s16 unk_394; diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index f8cc38d96..6c2b63be4 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14474,9 +14474,9 @@ 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), 0x80B58BBC:("D_80B58BBC","UNK_TYPE1","",0x1), 0x80B58BE8:("D_80B58BE8","UNK_TYPE1","",0x1), - 0x80B58BF4:("D_80B58BF4","UNK_TYPE1","",0x1), + 0x80B58BF4:("sAnimationInfo","UNK_TYPE1","",0x1), 0x80B58E34:("D_80B58E34","UNK_TYPE1","",0x1), - 0x80B58E40:("D_80B58E40","UNK_TYPE1","",0x1), + 0x80B58E40:("sMouthIndices","UNK_TYPE1","",0x1), 0x80B58E54:("D_80B58E54","UNK_TYPE1","",0x1), 0x80B58E60:("D_80B58E60","UNK_TYPE1","",0x1), 0x80B58E68:("D_80B58E68","UNK_TYPE1","",0x1), @@ -14488,8 +14488,8 @@ 0x80B58EA4:("D_80B58EA4","UNK_TYPE1","",0x1), 0x80B58EAC:("D_80B58EAC","UNK_TYPE4","",0x4), 0x80B58ED4:("D_80B58ED4","UNK_TYPE1","",0x1), - 0x80B58EE0:("D_80B58EE0","UNK_TYPE1","",0x1), - 0x80B58EEC:("D_80B58EEC","UNK_TYPE1","",0x1), + 0x80B58EE0:("sMouthTextures","UNK_TYPE1","",0x1), + 0x80B58EEC:("sEyeTextures","UNK_TYPE1","",0x1), 0x80B58F10:("jtbl_80B58F10","UNK_PTR","",0x4), 0x80B58F48:("jtbl_80B58F48","UNK_PTR","",0x4), 0x80B58F70:("jtbl_80B58F70","UNK_PTR","",0x4), From 0f780635e7d69034687f857339a099b48948ddbd Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 9 Oct 2023 21:00:22 -0300 Subject: [PATCH 27/78] accessories --- assets/xml/objects/object_an1.xml | 3 +- assets/xml/objects/object_an2.xml | 2 +- assets/xml/objects/object_an3.xml | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 173 +++++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.h | 40 +++--- tools/disasm/functions.txt | 4 +- 6 files changed, 118 insertions(+), 106 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index b99f2769b..e06383797 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -54,8 +54,7 @@ - - + diff --git a/assets/xml/objects/object_an2.xml b/assets/xml/objects/object_an2.xml index c288af6f6..cd234d665 100644 --- a/assets/xml/objects/object_an2.xml +++ b/assets/xml/objects/object_an2.xml @@ -1,7 +1,7 @@  - + diff --git a/assets/xml/objects/object_an3.xml b/assets/xml/objects/object_an3.xml index e3814aae4..4ab217196 100644 --- a/assets/xml/objects/object_an3.xml +++ b/assets/xml/objects/object_an3.xml @@ -1,7 +1,7 @@  - + 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 15333c616..0bb3f2fd4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -899,12 +899,16 @@ void EnAn_UpdateFace(EnAn* this) { this->mouthTexIndex = sMouthIndices[this->faceIndex]; } -Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; -Vec3s D_80B58E60 = { 0, 0, 0x4168 }; -Vec3f D_80B58E68 = { 450.0f, 700.0f, -760.0f }; -Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; +typedef enum EnAnAccessory { + /* 0 */ ENAN_ACCESSORY_FOOD_TRAY, + /* 1 */ ENAN_ACCESSORY_KAFEI_MASK, + /* 2 */ ENAN_ACCESSORY_UMBRELLA, + /* 3 */ ENAN_ACCESSORY_BROOM, + /* 4 */ ENAN_ACCESSORY_CHOPSTICKS, + /* 5 */ ENAN_ACCESSORY_MOON_MASK +} EnAnAccessory; -void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { +void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) { s32 pad; s8 originalObjectSlot = this->actor.objectSlot; s8 otherObjectSlot; @@ -913,9 +917,9 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { Matrix_Push(); - switch (arg2) { - case 0x0: - if ((this->stateFlags & ENAN_STATE_800) && !this->unk_3B0) { + switch (accessoryId) { + case ENAN_ACCESSORY_FOOD_TRAY: + if ((this->stateFlags & ENAN_STATE_DRAW_FOOD_TRAY) && !this->forceDraw) { this->unk_3A8++; this->unk_3AC -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); @@ -923,17 +927,20 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment(POLY_XLU_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0U, 0x10, 0x10, 1, 0U, this->unk_3AC, - 0x10, 0x10)); - gSPDisplayList(POLY_XLU_DISP++, object_an1_DL_0111E8); + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0, 16, 16, 1, 0, this->unk_3AC, + 16, 16)); + gSPDisplayList(POLY_XLU_DISP++, gAnju1FoodTrayDL); Gfx_SetupDL25_Opa(play->state.gfxCtx); } break; - case 0x1: + case ENAN_ACCESSORY_KAFEI_MASK: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->stateFlags & ENAN_STATE_4000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_KAFEI_MASK) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { + static Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; + static Vec3s D_80B58E60 = { 0, 0, 0x4168 }; + gSPSegment(POLY_OPA_DISP++, 0x0A, play->objectCtx.slots[otherObjectSlot].segment); Matrix_TranslateRotateZYX(&D_80B58E54, &D_80B58E60); @@ -945,37 +952,41 @@ void func_80B54124(EnAn* this, PlayState* play, u32 arg2) { } break; - case 0x2: + case ENAN_ACCESSORY_UMBRELLA: otherObjectSlot = this->an2ObjectSlot; - if ((this->stateFlags & ENAN_STATE_1000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_UMBRELLA) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); - gSPDisplayList(POLY_OPA_DISP++, object_an2_DL_000378); + gSPDisplayList(POLY_OPA_DISP++, gAnju2UmbrellaDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; - case 0x3: + case ENAN_ACCESSORY_BROOM: otherObjectSlot = this->an3ObjectSlot; - if ((this->stateFlags & ENAN_STATE_2000) && !this->unk_3B0 && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_BROOM) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); - gSPDisplayList(POLY_OPA_DISP++, object_an3_DL_000308); + gSPDisplayList(POLY_OPA_DISP++, gAnju3BroomDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; - case 0x4: - if ((this->stateFlags & ENAN_STATE_8000) && !this->unk_3B0) { + case ENAN_ACCESSORY_CHOPSTICKS: + if ((this->stateFlags & ENAN_STATE_DRAW_CHOPSTICKS) && !this->forceDraw) { gSPDisplayList(POLY_OPA_DISP++, gAnju1ChopsticksDL); } break; - case 0x5: + case ENAN_ACCESSORY_MOON_MASK: otherObjectSlot = this->msmoObjectSlot; - if (this->unk_3B4 && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if (this->drawMoonMask && (otherObjectSlot > OBJECT_SLOT_NONE)) { + static Vec3f D_80B58E68 = { 450.0f, 700.0f, -760.0f }; + static Vec3s D_80B58E74 = { 0x238C, 0, -0x3FFC }; + Matrix_TranslateRotateZYX(&D_80B58E68, &D_80B58E74); gSPMatrix(POLY_OPA_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); + gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gMoonMaskDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -1216,14 +1227,14 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { goto label; } else { ret = true; - this->stateFlags |= ENAN_STATE_4000; + this->stateFlags |= ENAN_STATE_DRAW_KAFEI_MASK; this->unk_394++; } break; case 0x1: label: - this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_4000); + this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); ret = true; @@ -1394,7 +1405,7 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->unk_3C4 = 0; this->unk_394 = 0; this->msgEventFunc = NULL; - this->actor.child = this->unk_218; + this->actor.child = this->lookAtActor; this->msgEventScript = func_80B54DF4(this, play); if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || @@ -1425,20 +1436,20 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if ((play->csCtx.state != 0) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) && ((scriptIndex == 0) || (scriptIndex == 1))) { - if (!this->unk_3B0) { + if (!this->forceDraw) { this->unk_38A = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->eyeTimer = 8; this->cueId = -1; - this->unk_3B0 = true; - this->unk_3B4 = false; + this->forceDraw = true; + this->drawMoonMask = false; } ret = true; - } else if (this->unk_3B0) { - this->unk_3B0 = false; - this->unk_3B4 = false; + } else if (this->forceDraw) { + this->forceDraw = false; + this->drawMoonMask = false; this->unk_3C0 = true; this->actor.room = play->roomCtx.curRoom.num; this->actionFunc = func_80B578F8; @@ -1447,37 +1458,39 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { return ret; } -void func_80B553AC(EnAn* this) { +void EnAn_UpdateHeadRot(EnAn* this) { Actor* temp_v0_2; Vec3f sp40; Vec3f sp34; - s32 pad; + Player* player; - Math_Vec3f_Copy(&sp40, &this->unk_218->world.pos); + Math_Vec3f_Copy(&sp40, &this->lookAtActor->world.pos); Math_Vec3f_Copy(&sp34, &this->actor.world.pos); - Math_ApproachS(&this->unk_37E, Math_Vec3f_Yaw(&sp34, &sp40) - this->actor.shape.rot.y, 4, 0x2AA8); + Math_ApproachS(&this->headRotY, Math_Vec3f_Yaw(&sp34, &sp40) - this->actor.shape.rot.y, 4, 0x2AA8); - this->unk_37E = CLAMP(this->unk_37E, -0x1FFE, 0x1FFE); + this->headRotY = CLAMP(this->headRotY, -0x1FFE, 0x1FFE); Math_Vec3f_Copy(&sp34, &this->actor.focus.pos); - temp_v0_2 = this->unk_218; + temp_v0_2 = this->lookAtActor; if (temp_v0_2->id == ACTOR_PLAYER) { - sp40.y = ((Player*)temp_v0_2)->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; + player = (Player*)temp_v0_2; + + sp40.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; } else { Math_Vec3f_Copy(&sp40, &temp_v0_2->focus.pos); } - Math_ApproachS(&this->unk_37C, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); + Math_ApproachS(&this->headRotZ, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); - this->unk_37C = CLAMP(this->unk_37C, -0x1554, 0x1554); + this->headRotZ = CLAMP(this->headRotZ, -0x1554, 0x1554); } void func_80B554E8(EnAn* this) { if (this->stateFlags & ENAN_STATE_20) { - if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { + if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { if (DECR(this->unk_388) == 0) { - func_80B553AC(this); + EnAn_UpdateHeadRot(this); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_80; return; @@ -1487,8 +1500,8 @@ void func_80B554E8(EnAn* this) { if (this->stateFlags & ENAN_STATE_80) { this->stateFlags &= ~ENAN_STATE_80; - this->unk_37C = 0; - this->unk_37E = 0; + this->headRotZ = 0; + this->headRotY = 0; this->unk_388 = 20; return; } @@ -1510,7 +1523,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_16: EnAn_ChangeAnim(this, play, ENAN_ANIM_SWEEP); - this->stateFlags |= ENAN_STATE_2000; + this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; case ANJU_SCH_E: @@ -1529,7 +1542,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_34: case ANJU_SCH_35: EnAn_ChangeAnim(this, play, ENAN_ANIM_22); - this->stateFlags |= ENAN_STATE_2000; + this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; default: @@ -1601,7 +1614,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { switch (textId) { case 0x28E5: EnAn_ChangeAnim(this, play, ENAN_ANIM_5); - this->stateFlags &= ~ENAN_STATE_2000; + this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; break; case 0x28BA: @@ -1633,7 +1646,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28EB: if (this->animIndex != ENAN_ANIM_20) { - this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_4000); + this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; EnAn_ChangeAnim(this, play, ENAN_ANIM_20); } @@ -1649,7 +1662,7 @@ s32 func_80B55914(EnAn* this, PlayState* play) { break; case 0x28E6: - this->stateFlags &= ~ENAN_STATE_2000; + this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; this->unk_18C = func_80B55860; this->unk_396 = 0; break; @@ -1980,7 +1993,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { ret = true; this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; - this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_800; + this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_DRAW_FOOD_TRAY; } return ret; @@ -2042,13 +2055,13 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_1A: case ANJU_SCH_1B: case ANJU_SCH_1C: - this->stateFlags |= ENAN_STATE_800 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY | ENAN_STATE_100; EnAn_ChangeAnim(this, play, ENAN_ANIM_16); break; case ANJU_SCH_24: case ANJU_SCH_27: - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_2000; + this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_DRAW_BROOM; EnAn_ChangeAnim(this, play, ENAN_ANIM_22); break; @@ -2139,7 +2152,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_2D: EnAn_ChangeAnim(this, play, ENAN_ANIM_16); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_800; + this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY; break; case ANJU_SCH_34: @@ -2148,7 +2161,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_2000; + this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; case ANJU_SCH_32: @@ -2169,7 +2182,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3F: EnAn_ChangeAnim(this, play, ENAN_ANIM_18); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_1000; + this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; case ANJU_SCH_28: @@ -2220,7 +2233,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_2000; + this->stateFlags |= ENAN_STATE_DRAW_BROOM; } ret = true; } @@ -2271,7 +2284,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3: this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_1000; + this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_20); @@ -2294,7 +2307,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_8000; + this->stateFlags |= ENAN_STATE_DRAW_CHOPSTICKS; break; } ret = true; @@ -2477,8 +2490,8 @@ s32 func_80B56E44(EnAn* this, PlayState* play) { Vec3f sp2C; Vec3f sp20; - if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { - Math_Vec3f_Copy(&sp2C, &this->unk_218->world.pos); + if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { + Math_Vec3f_Copy(&sp2C, &this->lookAtActor->world.pos); Math_Vec3f_Copy(&sp20, &this->actor.world.pos); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); } @@ -2577,7 +2590,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { s32 func_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_17: - if ((func_80B55F8C(play) != 0) && (func_80B55ECC(this) != 0)) { + if ((func_80B55F8C(play) != 0) && func_80B55ECC(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2817,7 +2830,7 @@ void func_80B578F8(EnAn* this, PlayState* play) { } this->scheduleResult = scheduleOutput.result; - this->unk_218 = func_80B55D20(this, play); + this->lookAtActor = func_80B55D20(this, play); func_80B57718(this, play); } @@ -2833,12 +2846,12 @@ void func_80B57A44(EnAn* this, PlayState* play) { } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != ANJU_SCH_3) && (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && (this->scheduleResult != ANJU_SCH_19)) { - if ((this->unk_218 != NULL) && (this->unk_218->update != NULL)) { + if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { s32 temp; Vec3f sp38; Vec3f sp2C; - Math_Vec3f_Copy(&sp38, &this->unk_218->world.pos); + Math_Vec3f_Copy(&sp38, &this->lookAtActor->world.pos); Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); temp = Math_Vec3f_Yaw(&sp2C, &sp38); @@ -2864,10 +2877,10 @@ void func_80B57B48(EnAn* this, PlayState* play) { this->cueId = cueId; if (this->cueId == 3) { SET_WEEKEVENTREG(WEEKEVENTREG_87_02); - this->unk_3B4 = true; + this->drawMoonMask = true; } if (this->cueId == 9) { - this->unk_3B4 = false; + this->drawMoonMask = false; } EnAn_ChangeAnim(this, play, sp30[cueId]); } @@ -2961,14 +2974,14 @@ void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, if (limbIndex == ANJU1_LIMB_HEAD) { Matrix_MultVec3f(&D_80B58ED4, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); - func_80B54124(this, play, 1U); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_KAFEI_MASK); } else if (limbIndex == ANJU1_LIMB_RIGHT_HAND) { - func_80B54124(this, play, 0U); - func_80B54124(this, play, 4U); - func_80B54124(this, play, 2U); - func_80B54124(this, play, 3U); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_FOOD_TRAY); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_CHOPSTICKS); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_UMBRELLA); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_BROOM); } else if (limbIndex == ANJU1_LIMB_LEFT_HAND) { - func_80B54124(this, play, 5U); + EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_MOON_MASK); } } @@ -2990,14 +3003,14 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } if (limbIndex == ANJU1_LIMB_HEAD) { - SubS_UpdateLimb(this->unk_37C + 0x4000, this->unk_37E + this->actor.shape.rot.y + 0x4000, &this->unk_240, - &this->unk_258, stepRot, overrideRot); + SubS_UpdateLimb(this->headRotZ + 0x4000, this->headRotY + this->actor.shape.rot.y + 0x4000, &this->headComputedPos, + &this->headComputedRot, stepRot, overrideRot); Matrix_Pop(); - Matrix_Translate(this->unk_240.x, this->unk_240.y, this->unk_240.z, MTXMODE_NEW); + Matrix_Translate(this->headComputedPos.x, this->headComputedPos.y, this->headComputedPos.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); - Matrix_RotateYS(this->unk_258.y, MTXMODE_APPLY); - Matrix_RotateXS(this->unk_258.x, MTXMODE_APPLY); - Matrix_RotateZS(this->unk_258.z, MTXMODE_APPLY); + Matrix_RotateYS(this->headComputedRot.y, MTXMODE_APPLY); + Matrix_RotateXS(this->headComputedRot.x, MTXMODE_APPLY); + Matrix_RotateZS(this->headComputedRot.z, MTXMODE_APPLY); Matrix_Push(); } } @@ -3021,7 +3034,7 @@ static TexturePtr sEyeTextures[ENAN_EYES_MAX] = { void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; - if ((this->scheduleResult != ANJU_SCH_NONE) || this->unk_3B0) { + if ((this->scheduleResult != ANJU_SCH_NONE) || this->forceDraw) { OPEN_DISPS(play->state.gfxCtx); Gfx_SetupDL25_Opa(play->state.gfxCtx); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index cea2363c1..efd4dc607 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -14,19 +14,19 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_8000 0x8000 //#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) -#define ENAN_STATE_8 (1 << 3) -#define ENAN_STATE_10 (1 << 4) -#define ENAN_STATE_20 (1 << 5) -#define ENAN_STATE_40 (1 << 6) -#define ENAN_STATE_80 (1 << 7) -#define ENAN_STATE_100 (1 << 8) -#define ENAN_STATE_200 (1 << 9) -#define ENAN_STATE_400 (1 << 10) -#define ENAN_STATE_800 (1 << 11) -#define ENAN_STATE_1000 (1 << 12) -#define ENAN_STATE_2000 (1 << 13) -#define ENAN_STATE_4000 (1 << 14) -#define ENAN_STATE_8000 (1 << 15) +#define ENAN_STATE_8 (1 << 3) +#define ENAN_STATE_10 (1 << 4) +#define ENAN_STATE_20 (1 << 5) +#define ENAN_STATE_40 (1 << 6) +#define ENAN_STATE_80 (1 << 7) +#define ENAN_STATE_100 (1 << 8) +#define ENAN_STATE_200 (1 << 9) +#define ENAN_STATE_400 (1 << 10) +#define ENAN_STATE_DRAW_FOOD_TRAY (1 << 11) +#define ENAN_STATE_DRAW_UMBRELLA (1 << 12) +#define ENAN_STATE_DRAW_BROOM (1 << 13) +#define ENAN_STATE_DRAW_KAFEI_MASK (1 << 14) +#define ENAN_STATE_DRAW_CHOPSTICKS (1 << 15) typedef struct EnAn { /* 0x000 */ Actor actor; @@ -51,13 +51,13 @@ typedef struct EnAn { /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 unk_214; // curRoom.num /* 0x215 */ s8 unk_215; - /* 0x218 */ Actor* unk_218; + /* 0x218 */ Actor* lookAtActor; /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; /* 0x228 */ Vec3f unk_228; /* 0x234 */ Vec3f unk_234; - /* 0x240 */ Vec3f unk_240; + /* 0x240 */ Vec3f headComputedPos; /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; - /* 0x258 */ Vec3s unk_258; // some limb rot + /* 0x258 */ Vec3s headComputedRot; /* 0x25E */ UNK_TYPE1 unk_25E[0x6]; /* 0x264 */ Vec3s jointTable[ANJU1_LIMB_MAX]; /* 0x2E2 */ Vec3s morphTable[ANJU1_LIMB_MAX]; @@ -69,8 +69,8 @@ typedef struct EnAn { /* 0x374 */ f32 unk_374; /* 0x378 */ s16 unk_378; // schedule time diff /* 0x37A */ s16 unk_37A; // schedule time diff - /* 0x37C */ s16 unk_37C; // some limb z rot - /* 0x37E */ s16 unk_37E; // some limb y rot + /* 0x37C */ s16 headRotZ; + /* 0x37E */ s16 headRotY; /* 0x380 */ UNK_TYPE1 unk_380[0x4]; /* 0x384 */ s16 timePathTimeSpeed; /* 0x386 */ s16 unk_386; // timer @@ -87,8 +87,8 @@ typedef struct EnAn { /* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8]; /* 0x3A8 */ u32 unk_3A8; /* 0x3AC */ u32 unk_3AC; - /* 0x3B0 */ s32 unk_3B0; - /* 0x3B4 */ s32 unk_3B4; + /* 0x3B0 */ s32 forceDraw; + /* 0x3B4 */ s32 drawMoonMask; /* 0x3B8 */ s32 unk_3B8; /* 0x3BC */ s32 unk_3BC; /* 0x3C0 */ s32 unk_3C0; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 83356ad85..d174fd4d9 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14015,7 +14015,7 @@ 0x80B53CE8:("EnAn_ChangeAnim",), 0x80B53ED4:("func_80B53ED4",), 0x80B53F84:("EnAn_UpdateFace",), - 0x80B54124:("func_80B54124",), + 0x80B54124:("EnAn_DrawAccessory",), 0x80B54678:("func_80B54678",), 0x80B546F4:("func_80B546F4",), 0x80B54750:("func_80B54750",), @@ -14028,7 +14028,7 @@ 0x80B54DF4:("func_80B54DF4",), 0x80B55180:("func_80B55180",), 0x80B552E4:("func_80B552E4",), - 0x80B553AC:("func_80B553AC",), + 0x80B553AC:("EnAn_UpdateHeadRot",), 0x80B554E8:("func_80B554E8",), 0x80B555C8:("func_80B555C8",), 0x80B556F8:("func_80B556F8",), From 5121691e7dfc0bcc498773f7a08e0569857fa217 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 9 Oct 2023 23:48:16 -0300 Subject: [PATCH 28/78] text ids --- assets/xml/objects/object_an1.xml | 8 +- assets/xml/objects/object_an2.xml | 3 +- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 2 +- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 331 ++++++++++++------------ 5 files changed, 173 insertions(+), 173 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index e06383797..2f3bdfa25 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -3,12 +3,12 @@ - - - + + + - + diff --git a/assets/xml/objects/object_an2.xml b/assets/xml/objects/object_an2.xml index cd234d665..3fb3d85cd 100644 --- a/assets/xml/objects/object_an2.xml +++ b/assets/xml/objects/object_an2.xml @@ -6,8 +6,7 @@ - - + diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index 55da3d7ea..7388460cd 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -54,7 +54,7 @@ typedef enum { static AnimationInfoS sAnimationInfo[DMAN_ANIM_MAX] = { { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0 - { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2 { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3 { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4 diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index 65e275607..5635397ad 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -54,7 +54,7 @@ typedef enum { static AnimationInfoS sAnimationInfo[DMGM_ANIM_MAX] = { { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0 - { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2 { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3 { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4 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 0bb3f2fd4..763b91034 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -603,24 +603,24 @@ typedef enum EnAnAnimation { /* 2 */ ENAN_ANIM_2, /* 3 */ ENAN_ANIM_3, /* 4 */ ENAN_ANIM_4, - /* 5 */ ENAN_ANIM_5, + /* 5 */ ENAN_ANIM_SURPRISED, /* 6 */ ENAN_ANIM_6, /* 7 */ ENAN_ANIM_7, /* 8 */ ENAN_ANIM_8, - /* 9 */ ENAN_ANIM_9, - /* 10 */ ENAN_ANIM_10, + /* 9 */ ENAN_ANIM_SIT, + /* 10 */ ENAN_ANIM_SIT_MORPH, /* 11 */ ENAN_ANIM_11, /* 12 */ ENAN_ANIM_12, /* 13 */ ENAN_ANIM_13, /* 14 */ ENAN_ANIM_14, - /* 15 */ ENAN_ANIM_15, - /* 16 */ ENAN_ANIM_16, + /* 15 */ ENAN_ANIM_WAITING_WITH_TRAY, + /* 16 */ ENAN_ANIM_WALKING_WITH_TRAY, /* 17 */ ENAN_ANIMOBJ_AN2, /* 17 */ ENAN_ANIM_17 = ENAN_ANIMOBJ_AN2, /* 18 */ ENAN_ANIM_18, /* 19 */ ENAN_ANIM_19, - /* 20 */ ENAN_ANIM_20, + /* 20 */ ENAN_ANIM_SITTING_AND_CRYING, /* 21 */ ENAN_ANIMOBJ_AN3, /* 21 */ ENAN_ANIM_21 = ENAN_ANIMOBJ_AN3, @@ -649,23 +649,23 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_4 - { &object_an1_Anim_0026B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_5 + { &gAn1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 - { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_9 - { &object_an1_Anim_0071E8, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_10 + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 - { &object_an1_Anim_00341C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_15 - { &object_an1_Anim_003EA8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_16 + { &gAn1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY + { &gAn1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 { &object_an2_Anim_0038A0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_19 - { &object_an2_Anim_001B80, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_20 + { &gAnju2SittingAndCryingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_AND_CRYING { &object_an3_Anim_00201C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_21 { &object_an3_Anim_002A4C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_22 @@ -750,9 +750,9 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { } break; - case ENAN_ANIM_9: - case ENAN_ANIM_10: - if ((this->animIndex != ENAN_ANIM_9) && (this->animIndex != ENAN_ANIM_10)) { + case ENAN_ANIM_SIT: + case ENAN_ANIM_SIT_MORPH: + if ((this->animIndex != ENAN_ANIM_SIT) && (this->animIndex != ENAN_ANIM_SIT_MORPH)) { changeAnim = true; } break; @@ -1236,7 +1236,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { label: this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; - EnAn_ChangeAnim(this, play, ENAN_ANIM_20); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); ret = true; this->unk_394++; break; @@ -1531,7 +1531,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { break; case ANJU_SCH_15: - EnAn_ChangeAnim(this, play, ENAN_ANIM_15); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); break; case ANJU_SCH_2F: @@ -1546,8 +1546,8 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { break; default: - if (this->animIndex == ENAN_ANIM_15) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_16); + if (this->animIndex == ENAN_ANIM_WAITING_WITH_TRAY) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); } if (this->animIndex == ENAN_ANIM_17) { EnAn_ChangeAnim(this, play, ENAN_ANIM_18); @@ -1603,6 +1603,7 @@ void func_80B55860(EnAn* this, PlayState* play) { } } +// EnAn_ReactDialogue? s32 func_80B55914(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); u16 textId = play->msgCtx.currentTextId; @@ -1612,142 +1613,142 @@ s32 func_80B55914(EnAn* this, PlayState* play) { if (this->prevTextId != textId) { switch (textId) { - case 0x28E5: - EnAn_ChangeAnim(this, play, ENAN_ANIM_5); + case 0x28E5: // "Ah!" + EnAn_ChangeAnim(this, play, ENAN_ANIM_SURPRISED); this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; break; - case 0x28BA: - case 0x28D1: - EnAn_ChangeAnim(this, play, ENAN_ANIM_5); + case 0x28BA: // "What's this?" + case 0x28D1: // "You are looking for Kafei?" + EnAn_ChangeAnim(this, play, ENAN_ANIM_SURPRISED); break; - case 0x28AF: - case 0x28C1: + case 0x28AF: // "Good night" + case 0x28C1: // "I need to hurry and cook for grandmother" EnAn_ChangeAnim(this, play, ENAN_ANIM_1); break; - case 0x28BC: + case 0x28BC: // "Where did you got that letter?" EnAn_ChangeAnim(this, play, ENAN_ANIM_2); break; - case 0x28C6: - EnAn_ChangeAnim(this, play, ENAN_ANIM_15); + case 0x28C6: // "Don't talk to me or I'll drop this plate" + EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); break; - case 0x28F5: - EnAn_ChangeAnim(this, play, ENAN_ANIM_10); + case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" + EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT_MORPH); break; - case 0x28F7: - case 0x28F8: + case 0x28F7: // "Everyone will be taking refuge by tomorrow" + case 0x28F8: // "We'll go to Romani Ranch to take refuge" EnAn_ChangeAnim(this, play, ENAN_ANIM_21); break; - case 0x28EB: - if (this->animIndex != ENAN_ANIM_20) { + case 0x28EB: // "I'm afraid to meet him..." + if (this->animIndex != ENAN_ANIM_SITTING_AND_CRYING) { this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; - EnAn_ChangeAnim(this, play, ENAN_ANIM_20); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); } break; - case 0x28A4: - case 0x28A9: - case 0x28BE: - case 0x28C0: - case 0x295E: + case 0x28A4: // "That's good. We're totally booked right before the carnival" + case 0x28A9: // "You do have a reservation?" + case 0x28BE: // "From what postbox did you got that letter?!" + case 0x28C0: // "Not what I mean!" + case 0x295E: // "I need to know!" this->unk_18C = func_80B556F8; this->unk_396 = 0; break; - case 0x28E6: + case 0x28E6: // "It's from Kafei" this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; this->unk_18C = func_80B55860; this->unk_396 = 0; break; - case 0x1885: - case 0x28A0: - case 0x28A3: - case 0x28A5: - case 0x28B1: - case 0x28D2: - case 0x28D9: - case 0x28DC: - case 0x28DE: + case 0x1885: // "It's 8:30 pm and the Inn is locking the door" + case 0x28A0: // "Welcome to the Inn." + case 0x28A3: // "I'm sorry, there are no vacancies. We are always booked at the carnival" + case 0x28A5: // "Visit us again in the future" + case 0x28B1: // "I'm sorry, there are no vacancies" + case 0x28D2: // "I have a clue that will help find Kafei" + case 0x28D9: // "Please" + case 0x28DC: // "Thank you" + case 0x28DE: // "Mail it in the morning" this->unk_18C = func_80B557AC; this->unk_396 = 0; break; - case 0x28A1: - case 0x28A2: - case 0x28A6: - case 0x28A7: - case 0x28A8: - case 0x28AA: - case 0x28AB: - case 0x28AC: - case 0x28AD: - case 0x28AE: - case 0x28B0: - case 0x28B2: - case 0x28B3: - case 0x28B4: - case 0x28B5: - case 0x28B6: - case 0x28B7: - case 0x28B8: - case 0x28B9: - case 0x28BB: - case 0x28BD: - case 0x28BF: - case 0x28C2: - case 0x28C3: + case 0x28A1: // "Are you staying the night?" + case 0x28A2: // "You are staying the night!?" + case 0x28A6: // "Are you staying the night? Did I ask you the same earlier?" + case 0x28A7: // "Enjoy the carnival" + case 0x28A8: // "Did you have a reservation?" + case 0x28AA: // "One moment please" + case 0x28AB: // "I expected your arrival for afternon. Your room is on the second floor" + case 0x28AC: // "Have you been to the plaza yet? They are putting the carnival stuff" + case 0x28AD: // "Relax..." + case 0x28AE: // doesn't exist + case 0x28B0: // "It's hard to find one's way on the city goro" + case 0x28B2: // "I should have a reservation-goro" + case 0x28B3: // "I do have your reservation. Your room is on the second floor" + case 0x28B4: // "The place is falling apart-goro" + case 0x28B5: // "I made a reservation. I'm [Player]-goro" + case 0x28B6: // "[Player]-goro? There's a reservation under a similar name, but it's taken" + case 0x28B7: // "Really-goro? I'll just sleep outside then-goro" + case 0x28B8: // "I'm sorry" + case 0x28B9: // "It's a hard world-goro" + case 0x28BB: // "I delivered this to you!" + case 0x28BD: // "From the postbox" + case 0x28BF: // "From somewhere" + case 0x28C2: // "I need to hurry! The afternoon guest will arrive soon" + case 0x28C3: // "Used to be a cafeteria" case 0x28C4: - case 0x28C5: - case 0x28C7: - case 0x28C8: - case 0x28C9: - case 0x28CA: - case 0x28CB: - case 0x28CC: - case 0x28CD: - case 0x28CE: - case 0x28CF: - case 0x28D0: - case 0x28D3: - case 0x28D4: - case 0x28D5: - case 0x28D6: - case 0x28D7: - case 0x28D8: - case 0x28DA: - case 0x28DB: - case 0x28DD: - case 0x28DF: - case 0x28E0: - case 0x28E1: - case 0x28E2: - case 0x28E3: - case 0x28E4: - case 0x28E7: - case 0x28E8: - case 0x28E9: - case 0x28EA: - case 0x28EC: - case 0x28ED: - case 0x28EE: - case 0x28EF: - case 0x28F0: - case 0x28F1: - case 0x28F2: + case 0x28C5: // "Mmm?" + case 0x28C7: // "Tortus, I've already had lunch" + case 0x28C8: // "I'm Anju! Tortus was my dad..." + case 0x28C9: // "I've already had lunch" + case 0x28CA: // "Please eat..." + case 0x28CB: // "I already ate lunch" + case 0x28CC: // "Don't eat my food then" + case 0x28CD: // "Phew" + case 0x28CE: // "Phew?" + case 0x28CF: // "Want me to read a story?" + case 0x28D0: // "That mask... You are looking for Kafei" + case 0x28D3: // "Come to our kitchen at 11:30" + case 0x28D4: // "I'll find him myself" + case 0x28D5: // "I wonder where Kafei could have gone" + case 0x28D6: // "Nevermind!" + case 0x28D7: // "I'm sorry to bother you late at night" + case 0x28D8: // "I received a letter from Kafei" + case 0x28DA: // "Put my letter in a postbox" + case 0x28DB: // "Can I ask this to you?" + case 0x28DD: // doesn't exist + case 0x28DF: // "You won't take refuge?" + case 0x28E0: // "Today's weather" + case 0x28E1: // "I'll wait for him" + case 0x28E2: // "Did you see him? It's too late" + case 0x28E3: // "Did you see him? It's too early" + case 0x28E4: // "Did you meet him?" + case 0x28E7: // "What's that?" + case 0x28E8: // "Have you seen a man around here?" + case 0x28E9: // "He looks like this" + case 0x28EA: // "He disappeared a month ago" + case 0x28EC: // "Should I wait?" + case 0x28ED: // "You are looking for him too" + case 0x28EE: // "I came here to look for him myself" + case 0x28EF: // "What a ramshackle inn" + case 0x28F0: // "Everything is falling apart" + case 0x28F1: // "We are leaving in the evening for the ranch" + case 0x28F2: // "I wonder if Kafei is really at Cremia's" case 0x28F3: - case 0x28F4: - case 0x28F6: + case 0x28F4: // "But he said in the letter he'll come back" + case 0x28F6: // "Mother thank you" default: - if (this->animIndex == ENAN_ANIM_16) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_15); + if (this->animIndex == ENAN_ANIM_WALKING_WITH_TRAY) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); } if (this->animIndex == ENAN_ANIM_18) { EnAn_ChangeAnim(this, play, ENAN_ANIM_17); @@ -1762,90 +1763,90 @@ s32 func_80B55914(EnAn* this, PlayState* play) { } switch (textId) { - case 0x28F5: + case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" this->unk_38A = ENAN_FACE_0; /* fallthrough */ - case 0x28A5: - case 0x28AA: - case 0x28F8: + case 0x28A5: // "Visit us again in the future" + case 0x28AA: // "One moment please" + case 0x28F8: // "We'll go to Romani Ranch to take refuge" this->faceIndex = ENAN_FACE_0; this->eyeTimer = 8; break; - case 0x1885: - case 0x28A0: - case 0x28A6: - case 0x28AF: - case 0x28C1: + case 0x1885: // "It's 8:30 pm and the Inn is locking the door" + case 0x28A0: // "Welcome to the Inn." + case 0x28A6: // "Are you staying the night? Did I ask you the same earlier?" + case 0x28AF: // "Good night" + case 0x28C1: // "I need to hurry and cook for grandmother" this->faceIndex = ENAN_FACE_3; this->eyeTimer = 8; break; - case 0x28A2: - case 0x28B3: - case 0x28B6: - case 0x28BA: - case 0x28BE: - case 0x28CE: - case 0x28D0: - case 0x28D6: - case 0x28E5: - case 0x28E7: - case 0x28ED: + case 0x28A2: // "You are staying the night!?" + case 0x28B3: // "I do have your reservation. Your room is on the second floor" + case 0x28B6: // "[Player]-goro? There's a reservation under a similar name, but it's taken" + case 0x28BA: // "What's this?" + case 0x28BE: // "From what postbox did you got that letter?!" + case 0x28CE: // "Phew?" + case 0x28D0: // "That mask... You are looking for Kafei" + case 0x28D6: // "Nevermind!" + case 0x28E5: // "Ah!" + case 0x28E7: // "What's that?" + case 0x28ED: // "You are looking for him too" this->faceIndex = ENAN_FACE_1; this->eyeTimer = 8; break; - case 0x28AD: + case 0x28AD: // "Relax..." this->faceIndex = ENAN_FACE_8; this->eyeTimer = 8; break; - case 0x28C0: - case 0x28D7: - case 0x28DE: + case 0x28C0: // "Not what I mean!" + case 0x28D7: // "I'm sorry to bother you late at night" + case 0x28DE: // "Mail it in the morning" this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; - case 0x28E6: - case 0x28F7: + case 0x28E6: // "It's from Kafei" + case 0x28F7: // "Everyone will be taking refuge by tomorrow" this->faceIndex = ENAN_FACE_6; this->eyeTimer = 8; break; - case 0x28A3: - case 0x28B1: - case 0x28B8: - case 0x28C6: - case 0x28CA: - case 0x28CC: - case 0x28D5: - case 0x28E2: - case 0x28E3: - case 0x28E4: + case 0x28A3: // "I'm sorry, there are no vacancies. We are always booked at the carnival" + case 0x28B1: // "I'm sorry, there are no vacancies" + case 0x28B8: // "I'm sorry" + case 0x28C6: // "Don't talk to me or I'll drop this plate" + case 0x28CA: // "Please eat..." + case 0x28CC: // "Don't eat my food then" + case 0x28D5: // "I wonder where Kafei could have gone" + case 0x28E2: // "Did you see him? It's too late" + case 0x28E3: // "Did you see him? It's too early" + case 0x28E4: // "Did you meet him?" this->faceIndex = ENAN_FACE_4; this->eyeTimer = 8; break; - case 0x28EC: + case 0x28EC: // "Should I wait?" this->unk_38A = ENAN_FACE_5; /* fallthrough */ - case 0x28DC: - case 0x28EB: - case 0x28F2: - case 0x28F9: + case 0x28DC: // "Thank you" + case 0x28EB: // "I'm afraid to meet him..." + case 0x28F2: // "I wonder if Kafei is really at Cremia's" + case 0x28F9: // "Perhaps I was wrong..." this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; break; - case 0x28F6: + case 0x28F6: // "Mother thank you" this->faceIndex = ENAN_FACE_9; this->eyeTimer = 8; break; - case 0x28A4: - case 0x28A9: + case 0x28A4: // "That's good. We're totally booked right before the carnival" + case 0x28A9: // "You do have a reservation?" this->faceIndex = ENAN_FACE_7; this->eyeTimer = 8; break; @@ -1988,7 +1989,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_NB)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_15); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -2056,7 +2057,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_1B: case ANJU_SCH_1C: this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY | ENAN_STATE_100; - EnAn_ChangeAnim(this, play, ENAN_ANIM_16); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); break; case ANJU_SCH_24: @@ -2150,7 +2151,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { /* fallthrough */ case ANJU_SCH_2C: case ANJU_SCH_2D: - EnAn_ChangeAnim(this, play, ENAN_ANIM_16); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY; break; @@ -2287,7 +2288,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_20); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); this->stateFlags |= ENAN_STATE_40; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; @@ -2354,7 +2355,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { switch (scheduleOutput->result) { case ANJU_SCH_1: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - EnAn_ChangeAnim(this, play, ENAN_ANIM_9); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT); break; case ANJU_SCH_18: From 6e6b5c9d5b9c182e4467d9bfd0e75cb2cfa248c0 Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 10 Oct 2023 11:39:26 -0300 Subject: [PATCH 29/78] more function naming --- src/overlays/actors/ovl_En_An/z_en_an.c | 220 +++++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.h | 14 +- src/overlays/actors/ovl_En_Go/z_en_go.c | 1 + tools/disasm/functions.txt | 18 +- tools/disasm/variables.txt | 4 +- 5 files changed, 135 insertions(+), 122 deletions(-) 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 763b91034..ab3034d67 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -23,9 +23,9 @@ void EnAn_Update(Actor* thisx, PlayState* play); void EnAn_Draw(Actor* thisx, PlayState* play); // Action funcs -void func_80B577F0(EnAn* this, PlayState* play); -void func_80B578F8(EnAn* this, PlayState* play); -void func_80B57A44(EnAn* this, PlayState* play); +void EnAn_Initialize(EnAn* this, PlayState* play); +void EnAn_FollowSchedule(EnAn* this, PlayState* play); +void EnAn_Talk(EnAn* this, PlayState* play); typedef enum AnjuScheduleResult { /* 0 */ ANJU_SCH_NONE, @@ -444,8 +444,7 @@ ActorInit En_An_InitVars = { (ActorFunc)NULL, }; -// static ColliderCylinderInit sCylinderInit = { -static ColliderCylinderInit D_80B58BBC = { +static ColliderCylinderInit sCylinderInit = { { COLTYPE_HIT1, AT_NONE, @@ -465,43 +464,41 @@ static ColliderCylinderInit D_80B58BBC = { { 14, 62, 0, { 0, 0, 0 } }, }; -// sColChkInfoInit -static CollisionCheckInfoInit2 D_80B58BE8 = { 0, 0, 0, 0, MASS_IMMOVABLE }; +static CollisionCheckInfoInit2 sColChkInfoInit = { 0, 0, 0, 0, MASS_IMMOVABLE }; -s32 func_80B53840(EnAn* this, PlayState* play) { +s32 EnAn_InitializeObjectSlots(EnAn* this, PlayState* play) { s32 ret = false; - if ((this->unk_214 != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && !this->unk_3B8) { + if ((this->roomNum != play->roomCtx.curRoom.num) && (play->roomCtx.status == 0) && !this->slotsInitialized) { this->msmoObjectSlot = SubS_GetObjectSlot(OBJECT_MSMO, play); this->an4ObjectSlot = SubS_GetObjectSlot(OBJECT_AN4, play); this->maskKerfayObjectSlot = SubS_GetObjectSlot(OBJECT_MASK_KERFAY, play); this->an3ObjectSlot = SubS_GetObjectSlot(OBJECT_AN3, play); this->an2ObjectSlot = SubS_GetObjectSlot(OBJECT_AN2, play); this->actor.draw = NULL; - this->unk_214 = play->roomCtx.curRoom.num; - this->unk_3B8 = true; + this->roomNum = play->roomCtx.curRoom.num; + this->slotsInitialized = true; } - if (!this->unk_3B8) { + if (!this->slotsInitialized) { return false; } - if (((this->an2ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an2ObjectSlot, play) == 0)) || - ((this->an3ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an3ObjectSlot, play) == 0)) || - ((this->maskKerfayObjectSlot > OBJECT_SLOT_NONE) && - (SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play) == 0)) || - ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->an4ObjectSlot, play) == 0)) || - ((this->msmoObjectSlot > OBJECT_SLOT_NONE) && (SubS_IsObjectLoaded(this->msmoObjectSlot, play) == 0))) { + if (((this->an2ObjectSlot > OBJECT_SLOT_NONE) && !SubS_IsObjectLoaded(this->an2ObjectSlot, play)) || + ((this->an3ObjectSlot > OBJECT_SLOT_NONE) && !SubS_IsObjectLoaded(this->an3ObjectSlot, play)) || + ((this->maskKerfayObjectSlot > OBJECT_SLOT_NONE) && !SubS_IsObjectLoaded(this->maskKerfayObjectSlot, play)) || + ((this->an4ObjectSlot > OBJECT_SLOT_NONE) && !SubS_IsObjectLoaded(this->an4ObjectSlot, play)) || + ((this->msmoObjectSlot > OBJECT_SLOT_NONE) && !SubS_IsObjectLoaded(this->msmoObjectSlot, play))) { ret = true; } else { this->actor.draw = EnAn_Draw; - this->unk_3B8 = false; + this->slotsInitialized = false; } return ret; } -Actor* func_80B539CC(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { +Actor* EnAn_FindActor(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { Actor* foundActor = NULL; while (true) { @@ -649,22 +646,22 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_4 - { &gAn1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED + { &gAn1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT + { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 - { &gAn1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY - { &gAn1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY + { &gAn1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY + { &gAn1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY - { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 - { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 - { &object_an2_Anim_0038A0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_19 + { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 + { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 + { &object_an2_Anim_0038A0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_19 { &gAnju2SittingAndCryingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_AND_CRYING { &object_an3_Anim_00201C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_21 @@ -919,16 +916,16 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) switch (accessoryId) { case ENAN_ACCESSORY_FOOD_TRAY: - if ((this->stateFlags & ENAN_STATE_DRAW_FOOD_TRAY) && !this->forceDraw) { + if ((this->stateFlags & ENAN_STATE_DRAW_TRAY) && !this->forceDraw) { this->unk_3A8++; this->unk_3AC -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment(POLY_XLU_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0, 16, 16, 1, 0, this->unk_3AC, - 16, 16)); + gSPSegment( + POLY_XLU_DISP++, 0x08, + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0, 16, 16, 1, 0, this->unk_3AC, 16, 16)); gSPDisplayList(POLY_XLU_DISP++, gAnju1FoodTrayDL); Gfx_SetupDL25_Opa(play->state.gfxCtx); @@ -937,7 +934,8 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) case ENAN_ACCESSORY_KAFEI_MASK: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->stateFlags & ENAN_STATE_DRAW_KAFEI_MASK) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_KAFEI_MASK) && !this->forceDraw && + (otherObjectSlot > OBJECT_SLOT_NONE)) { static Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; static Vec3s D_80B58E60 = { 0, 0, 0x4168 }; @@ -954,7 +952,8 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) case ENAN_ACCESSORY_UMBRELLA: otherObjectSlot = this->an2ObjectSlot; - if ((this->stateFlags & ENAN_STATE_DRAW_UMBRELLA) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_UMBRELLA) && !this->forceDraw && + (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gAnju2UmbrellaDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -963,7 +962,8 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) case ENAN_ACCESSORY_BROOM: otherObjectSlot = this->an3ObjectSlot; - if ((this->stateFlags & ENAN_STATE_DRAW_BROOM) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { + if ((this->stateFlags & ENAN_STATE_DRAW_BROOM) && !this->forceDraw && + (otherObjectSlot > OBJECT_SLOT_NONE)) { gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[otherObjectSlot].segment); gSPDisplayList(POLY_OPA_DISP++, gAnju3BroomDL); gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); @@ -1248,7 +1248,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { // TODO: figure out what to do with this #define SCHEDULE_CALC_TIME_ALT(hour, minute) SCHEDULE_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f)) -s32* func_80B54DF4(EnAn* this, PlayState* play) { +s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); switch (this->scheduleResult) { @@ -1397,7 +1397,7 @@ s32* func_80B54DF4(EnAn* this, PlayState* play) { return NULL; } -s32 func_80B55180(EnAn* this, PlayState* play) { +s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { s32 ret = false; if ((this->stateFlags & SUBS_OFFER_MODE_MASK) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { @@ -1406,7 +1406,7 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->unk_394 = 0; this->msgEventFunc = NULL; this->actor.child = this->lookAtActor; - this->msgEventScript = func_80B54DF4(this, play); + this->msgEventScript = EnAn_GetMsgEventScript(this, play); if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || @@ -1423,7 +1423,7 @@ s32 func_80B55180(EnAn* this, PlayState* play) { this->stateFlags &= ~ENAN_STATE_20; } - this->actionFunc = func_80B57A44; + this->actionFunc = EnAn_Talk; ret = true; } @@ -1452,7 +1452,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { this->drawMoonMask = false; this->unk_3C0 = true; this->actor.room = play->roomCtx.curRoom.num; - this->actionFunc = func_80B578F8; + this->actionFunc = EnAn_FollowSchedule; } return ret; @@ -1562,54 +1562,53 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { } void func_80B556F8(EnAn* this, PlayState* play) { - if (this->unk_396 == 0) { + if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_6); this->stateFlags &= ~ENAN_STATE_20; this->stateFlags |= ENAN_STATE_200; - this->unk_396++; - } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + this->dialogueFuncState++; + } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; - this->unk_396++; + this->dialogueFuncState++; } } void func_80B557AC(EnAn* this, PlayState* play) { - if (this->unk_396 == 0) { + if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_3); this->stateFlags &= ~ENAN_STATE_20; this->stateFlags |= ENAN_STATE_200; - this->unk_396++; - } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + this->dialogueFuncState++; + } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; - this->unk_396++; + this->dialogueFuncState++; } } void func_80B55860(EnAn* this, PlayState* play) { - if (this->unk_396 == 0) { + if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_4); this->stateFlags |= ENAN_STATE_200; this->stateFlags &= ~ENAN_STATE_20; - this->unk_396++; - } else if ((this->unk_396 == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { + this->dialogueFuncState++; + } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_2); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; - this->unk_396++; + this->dialogueFuncState++; } } -// EnAn_ReactDialogue? -s32 func_80B55914(EnAn* this, PlayState* play) { +s32 EnAn_HandleDialog(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); u16 textId = play->msgCtx.currentTextId; if (player->stateFlags1 & PLAYER_STATE1_40) { - this->stateFlags |= ENAN_STATE_400; + this->stateFlags |= ENAN_STATE_TALKING; if (this->prevTextId != textId) { switch (textId) { @@ -1658,14 +1657,14 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28BE: // "From what postbox did you got that letter?!" case 0x28C0: // "Not what I mean!" case 0x295E: // "I need to know!" - this->unk_18C = func_80B556F8; - this->unk_396 = 0; + this->dialogueFunc = func_80B556F8; + this->dialogueFuncState = 0; break; case 0x28E6: // "It's from Kafei" this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; - this->unk_18C = func_80B55860; - this->unk_396 = 0; + this->dialogueFunc = func_80B55860; + this->dialogueFuncState = 0; break; case 0x1885: // "It's 8:30 pm and the Inn is locking the door" @@ -1677,8 +1676,8 @@ s32 func_80B55914(EnAn* this, PlayState* play) { case 0x28D9: // "Please" case 0x28DC: // "Thank you" case 0x28DE: // "Mail it in the morning" - this->unk_18C = func_80B557AC; - this->unk_396 = 0; + this->dialogueFunc = func_80B557AC; + this->dialogueFuncState = 0; break; case 0x28A1: // "Are you staying the night?" @@ -1854,23 +1853,25 @@ s32 func_80B55914(EnAn* this, PlayState* play) { } this->prevTextId = textId; - } else if (this->stateFlags & ENAN_STATE_400) { - this->unk_18C = NULL; + } else if (this->stateFlags & ENAN_STATE_TALKING) { + // Player stopped talking with Anju + + this->dialogueFunc = NULL; this->prevTextId = 0; - this->stateFlags &= ~ENAN_STATE_400; + this->stateFlags &= ~ENAN_STATE_TALKING; this->faceIndex = this->unk_38A; this->eyeTimer = 4; func_80B555C8(this, play); } - if (this->unk_18C != NULL) { - this->unk_18C(this, play); + if (this->dialogueFunc != NULL) { + this->dialogueFunc(this, play); } return 0; } -Actor* func_80B55D20(EnAn* this, PlayState* play) { +Actor* EnAn_FindLookAtActor(EnAn* this, PlayState* play) { Actor* actor; switch (this->scheduleResult) { @@ -1879,15 +1880,15 @@ Actor* func_80B55D20(EnAn* this, PlayState* play) { break; case ANJU_SCH_15: - actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_NB); + actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_NB); break; case ANJU_SCH_10: - actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_PM); + actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_PM); break; case ANJU_SCH_11: - actor = func_80B539CC(this, play, ACTORCAT_NPC, ACTOR_EN_IG); + actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_IG); break; } @@ -1903,7 +1904,7 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u s32 pad; s32 ret = false; - actor = func_80B539CC(this, play, actorCategory, actorId); + actor = EnAn_FindActor(this, play, actorCategory, actorId); this->timePath = NULL; if (sSearchTimePathLimit[scheduleOutput->result] >= 0) { @@ -1994,7 +1995,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { ret = true; this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; - this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_DRAW_FOOD_TRAY; + this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_DRAW_TRAY; } return ret; @@ -2056,7 +2057,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_1A: case ANJU_SCH_1B: case ANJU_SCH_1C: - this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_DRAW_TRAY | ENAN_STATE_100; EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); break; @@ -2153,7 +2154,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_2D: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_DRAW_FOOD_TRAY; + this->stateFlags |= ENAN_STATE_DRAW_TRAY; break; case ANJU_SCH_34: @@ -2782,14 +2783,15 @@ void func_80B57718(EnAn* this, PlayState* play) { Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 3, 0x2AA8); } -void func_80B577F0(EnAn* this, PlayState* play) { +// Tentative name +void EnAn_Initialize(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, ANJU1_LIMB_MAX); this->animIndex = ENAN_ANIM_NONE; EnAn_ChangeAnim(this, play, ENAN_ANIM_1); - Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &D_80B58BBC); - CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &D_80B58BE8); + Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); + CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &sColChkInfoInit); if (this->actor.params & ENAN_8000) { this->unk_3C0 = true; @@ -2800,11 +2802,11 @@ void func_80B577F0(EnAn* this, PlayState* play) { this->stateFlags = 0; this->scheduleResult = ANJU_SCH_NONE; - this->actionFunc = func_80B578F8; + this->actionFunc = EnAn_FollowSchedule; this->actionFunc(this, play); } -void func_80B578F8(EnAn* this, PlayState* play) { +void EnAn_FollowSchedule(EnAn* this, PlayState* play) { ScheduleOutput scheduleOutput; this->timePathTimeSpeed = R_TIME_SPEED + ((void)0, gSaveContext.save.timeSpeedOffset); @@ -2821,7 +2823,7 @@ void func_80B578F8(EnAn* this, PlayState* play) { } } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || ((this->scheduleResult != scheduleOutput.result) && - (EnAn_ProcessScheduleOutput(this, play, &scheduleOutput) == 0))) { + !EnAn_ProcessScheduleOutput(this, play, &scheduleOutput))) { this->actor.shape.shadowDraw = NULL; this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; scheduleOutput.result = ANJU_SCH_NONE; @@ -2831,33 +2833,42 @@ void func_80B578F8(EnAn* this, PlayState* play) { } this->scheduleResult = scheduleOutput.result; - this->lookAtActor = func_80B55D20(this, play); + this->lookAtActor = EnAn_FindLookAtActor(this, play); func_80B57718(this, play); } -void func_80B57A44(EnAn* this, PlayState* play) { - if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos) != 0) { +void EnAn_Talk(EnAn* this, PlayState* play) { + if (func_8010BF58(&this->actor, play, this->msgEventScript, this->msgEventFunc, &this->msgScriptResumePos)) { + // Message event script is done + SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags &= ~ENAN_STATE_20; this->stateFlags |= ENAN_STATE_200; this->unk_388 = 20; this->msgScriptResumePos = 0; - this->actionFunc = func_80B578F8; - } else if ((this->scheduleResult != ANJU_SCH_1) && (this->scheduleResult != ANJU_SCH_3) && - (this->scheduleResult != ANJU_SCH_C) && (this->scheduleResult != ANJU_SCH_E) && - (this->scheduleResult != ANJU_SCH_19)) { - if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { - s32 temp; - Vec3f sp38; - Vec3f sp2C; + this->actionFunc = EnAn_FollowSchedule; - Math_Vec3f_Copy(&sp38, &this->lookAtActor->world.pos); - Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); - temp = Math_Vec3f_Yaw(&sp2C, &sp38); + return; + } - Math_ApproachS(&this->actor.shape.rot.y, temp, 4, 0x2AA8); - } + if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || + (this->scheduleResult == ANJU_SCH_C) || (this->scheduleResult == ANJU_SCH_E) || + (this->scheduleResult == ANJU_SCH_19)) { + return; + } + + if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { + // Rotate towards actor + s32 temp; + Vec3f sp38; + Vec3f sp2C; + + Math_Vec3f_Copy(&sp38, &this->lookAtActor->world.pos); + Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); + temp = Math_Vec3f_Yaw(&sp2C, &sp38); + + Math_ApproachS(&this->actor.shape.rot.y, temp, 4, 0x2AA8); } } @@ -2868,6 +2879,7 @@ void func_80B57B48(EnAn* this, PlayState* play) { }; s32 pad; + //! FAKE if (0) {} if (Cutscene_IsCueInChannel(play, CS_CMD_ACTOR_CUE_557)) { @@ -2921,13 +2933,13 @@ void EnAn_Init(Actor* thisx, PlayState* play) { } } - this->unk_214 = -0x80; - this->unk_3B8 = false; + this->roomNum = -0x80; + this->slotsInitialized = false; if (temp_v1 == 0) { this->actor.room = -1; } - this->actionFunc = func_80B577F0; + this->actionFunc = EnAn_Initialize; } void EnAn_Destroy(Actor* thisx, PlayState* play) { @@ -2939,11 +2951,11 @@ void EnAn_Destroy(Actor* thisx, PlayState* play) { void EnAn_Update(Actor* thisx, PlayState* play) { EnAn* this = THIS; - if (func_80B53840(this, play)) { + if (EnAn_InitializeObjectSlots(this, play)) { return; } - if ((this->actionFunc != func_80B577F0) && !func_80B55180(this, play) && (func_80B552E4(this, play) != 0)) { + if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && func_80B552E4(this, play)) { func_80B57B48(this, play); func_80B53BA8(this, play); EnAn_UpdateFace(this); @@ -2952,7 +2964,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); if (this->scheduleResult != ANJU_SCH_NONE) { - func_80B55914(this, play); + EnAn_HandleDialog(this, play); func_80B53BA8(this, play); EnAn_UpdateFace(this); func_80B554E8(this); @@ -3004,8 +3016,8 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } if (limbIndex == ANJU1_LIMB_HEAD) { - SubS_UpdateLimb(this->headRotZ + 0x4000, this->headRotY + this->actor.shape.rot.y + 0x4000, &this->headComputedPos, - &this->headComputedRot, stepRot, overrideRot); + SubS_UpdateLimb(this->headRotZ + 0x4000, this->headRotY + this->actor.shape.rot.y + 0x4000, + &this->headComputedPos, &this->headComputedRot, stepRot, overrideRot); Matrix_Pop(); Matrix_Translate(this->headComputedPos.x, this->headComputedPos.y, this->headComputedPos.z, MTXMODE_NEW); Matrix_Scale(this->actor.scale.x, this->actor.scale.y, this->actor.scale.z, MTXMODE_APPLY); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index efd4dc607..7bdb61b0c 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -7,7 +7,7 @@ struct EnAn; typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); -typedef void (*EnAnUnkFunc)(struct EnAn*, PlayState*); +typedef void (*EnAnDialogueFunc)(struct EnAn*, PlayState*); typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF) @@ -21,8 +21,8 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_STATE_80 (1 << 7) #define ENAN_STATE_100 (1 << 8) #define ENAN_STATE_200 (1 << 9) -#define ENAN_STATE_400 (1 << 10) -#define ENAN_STATE_DRAW_FOOD_TRAY (1 << 11) +#define ENAN_STATE_TALKING (1 << 10) +#define ENAN_STATE_DRAW_TRAY (1 << 11) #define ENAN_STATE_DRAW_UMBRELLA (1 << 12) #define ENAN_STATE_DRAW_BROOM (1 << 13) #define ENAN_STATE_DRAW_KAFEI_MASK (1 << 14) @@ -32,7 +32,7 @@ typedef struct EnAn { /* 0x000 */ Actor actor; /* 0x144 */ SkelAnime skelAnime; /* 0x188 */ EnAnActionFunc actionFunc; - /* 0x18C */ EnAnUnkFunc unk_18C; + /* 0x18C */ EnAnDialogueFunc dialogueFunc; /* 0x190 */ ColliderCylinder collider; /* 0x1DC */ Path* timePath; /* 0x1E0 */ Vec3f timePathTargetPos; @@ -49,7 +49,7 @@ typedef struct EnAn { /* 0x20B */ s8 an4ObjectSlot; /* 0x20C */ s8 msmoObjectSlot; /* 0x210 */ s32 msgScriptResumePos; - /* 0x214 */ s8 unk_214; // curRoom.num + /* 0x214 */ s8 roomNum; /* 0x215 */ s8 unk_215; /* 0x218 */ Actor* lookAtActor; /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; @@ -81,7 +81,7 @@ typedef struct EnAn { /* 0x390 */ s16 eyeTexIndex; /* 0x392 */ s16 mouthTexIndex; /* 0x394 */ s16 unk_394; - /* 0x396 */ s16 unk_396; + /* 0x396 */ s16 dialogueFuncState; /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 animIndex; /* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8]; @@ -89,7 +89,7 @@ typedef struct EnAn { /* 0x3AC */ u32 unk_3AC; /* 0x3B0 */ s32 forceDraw; /* 0x3B4 */ s32 drawMoonMask; - /* 0x3B8 */ s32 unk_3B8; + /* 0x3B8 */ s32 slotsInitialized; /* 0x3BC */ s32 unk_3BC; /* 0x3C0 */ s32 unk_3C0; /* 0x3C4 */ s32 unk_3C4; // set but not read diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index 691703307..47cddc9dd 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -12,6 +12,7 @@ * one outside the shop, not all Gorons in the Goron Shrine are covered by this actor). * - Medigoron: The Powder Keg making Medigoron in Goron Village. */ + #include "z_en_go.h" #include "z64quake.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index d174fd4d9..bec8f8400 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14007,8 +14007,8 @@ 0x80B52AF0:("EnGk_PostLimbDraw",), 0x80B52D8C:("EnGk_TransformLimbDraw",), 0x80B52F74:("EnGk_Draw",), - 0x80B53840:("func_80B53840",), - 0x80B539CC:("func_80B539CC",), + 0x80B53840:("EnAn_InitializeObjectSlots",), + 0x80B539CC:("EnAn_FindActor",), 0x80B53A7C:("func_80B53A7C",), 0x80B53B3C:("EnAn_FindDoor",), 0x80B53BA8:("func_80B53BA8",), @@ -14025,8 +14025,8 @@ 0x80B54BC4:("func_80B54BC4",), 0x80B54C5C:("func_80B54C5C",), 0x80B54D18:("func_80B54D18",), - 0x80B54DF4:("func_80B54DF4",), - 0x80B55180:("func_80B55180",), + 0x80B54DF4:("EnAn_GetMsgEventScript",), + 0x80B55180:("EnAn_CheckTalk",), 0x80B552E4:("func_80B552E4",), 0x80B553AC:("EnAn_UpdateHeadRot",), 0x80B554E8:("func_80B554E8",), @@ -14034,8 +14034,8 @@ 0x80B556F8:("func_80B556F8",), 0x80B557AC:("func_80B557AC",), 0x80B55860:("func_80B55860",), - 0x80B55914:("func_80B55914",), - 0x80B55D20:("func_80B55D20",), + 0x80B55914:("EnAn_HandleDialog",), + 0x80B55D20:("EnAn_FindLookAtActor",), 0x80B55D98:("func_80B55D98",), 0x80B55ECC:("func_80B55ECC",), 0x80B55F8C:("func_80B55F8C",), @@ -14058,9 +14058,9 @@ 0x80B575BC:("func_80B575BC",), 0x80B57674:("func_80B57674",), 0x80B57718:("func_80B57718",), - 0x80B577F0:("func_80B577F0",), - 0x80B578F8:("func_80B578F8",), - 0x80B57A44:("func_80B57A44",), + 0x80B577F0:("EnAn_Initialize",), + 0x80B578F8:("EnAn_FollowSchedule",), + 0x80B57A44:("EnAn_Talk",), 0x80B57B48:("func_80B57B48",), 0x80B57C9C:("EnAn_Init",), 0x80B57D70:("EnAn_Destroy",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 6c2b63be4..c15a3d541 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14472,8 +14472,8 @@ 0x80B58B88:("D_80B58B88","UNK_TYPE1","",0x1), 0x80B58B90:("D_80B58B90","UNK_TYPE1","",0x1), 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), - 0x80B58BBC:("D_80B58BBC","UNK_TYPE1","",0x1), - 0x80B58BE8:("D_80B58BE8","UNK_TYPE1","",0x1), + 0x80B58BBC:("sCylinderInit","UNK_TYPE1","",0x1), + 0x80B58BE8:("sColChkInfoInit","UNK_TYPE1","",0x1), 0x80B58BF4:("sAnimationInfo","UNK_TYPE1","",0x1), 0x80B58E34:("D_80B58E34","UNK_TYPE1","",0x1), 0x80B58E40:("sMouthIndices","UNK_TYPE1","",0x1), From 23ef0b61f5194cf58dcf8d67fd3779c4f7b8ce17 Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 10 Oct 2023 14:45:50 -0300 Subject: [PATCH 30/78] more naming --- assets/xml/objects/object_an1.xml | 14 +- assets/xml/objects/object_an2.xml | 6 +- assets/xml/objects/object_an3.xml | 6 +- src/code/z_player_lib.c | 2 +- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 6 +- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 6 +- src/overlays/actors/ovl_En_An/z_en_an.c | 199 +++++++++++++----------- tools/disasm/functions.txt | 6 +- 8 files changed, 128 insertions(+), 117 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index 2f3bdfa25..b35e505ce 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -3,14 +3,14 @@ - - - - + + + + - + - + @@ -90,7 +90,7 @@ - + diff --git a/assets/xml/objects/object_an2.xml b/assets/xml/objects/object_an2.xml index 3fb3d85cd..8a169b92e 100644 --- a/assets/xml/objects/object_an2.xml +++ b/assets/xml/objects/object_an2.xml @@ -6,9 +6,9 @@ - + - - + + diff --git a/assets/xml/objects/object_an3.xml b/assets/xml/objects/object_an3.xml index 4ab217196..e0f114035 100644 --- a/assets/xml/objects/object_an3.xml +++ b/assets/xml/objects/object_an3.xml @@ -7,8 +7,8 @@ - - - + + + diff --git a/src/code/z_player_lib.c b/src/code/z_player_lib.c index 9f7a72a28..dc38c2562 100644 --- a/src/code/z_player_lib.c +++ b/src/code/z_player_lib.c @@ -2515,7 +2515,7 @@ u8 D_801C0B1C[] = { Gfx* D_801C0B20[] = { object_mask_truth_DL_0001A0, // PLAYER_MASK_TRUTH - gKafeiMaskDL, // PLAYER_MASK_KAFEIS_MASK + gKafeiMaskDL, // PLAYER_MASK_KAFEIS_MASK object_mask_yofukasi_DL_000490, // PLAYER_MASK_ALL_NIGHT object_mask_rabit_DL_000610, // PLAYER_MASK_BUNNY object_mask_ki_tan_DL_0004A0, // PLAYER_MASK_KEATON diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index 7388460cd..79e83e4fb 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -54,7 +54,7 @@ typedef enum { static AnimationInfoS sAnimationInfo[DMAN_ANIM_MAX] = { { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0 - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2 { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3 { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4 @@ -375,8 +375,8 @@ TexturePtr D_80C1D2E8[] = { }; TexturePtr D_80C1D2F4[] = { - gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, - gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, }; void func_80C1D0B0(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index 5635397ad..d2081ece9 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -54,7 +54,7 @@ typedef enum { static AnimationInfoS sAnimationInfo[DMGM_ANIM_MAX] = { { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0 - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2 { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3 { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4 @@ -375,8 +375,8 @@ TexturePtr D_80C25238[] = { }; TexturePtr D_80C25244[] = { - gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, - gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, }; void func_80C25000(Actor* thisx, PlayState* play) { 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 ab3034d67..1c4b7c013 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -596,14 +596,14 @@ EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) { typedef enum EnAnAnimation { /* -1 */ ENAN_ANIM_NONE = -1, /* 0 */ ENAN_ANIM_0, - /* 1 */ ENAN_ANIM_1, - /* 2 */ ENAN_ANIM_2, - /* 3 */ ENAN_ANIM_3, - /* 4 */ ENAN_ANIM_4, + /* 1 */ ENAN_ANIM_IDLE, + /* 2 */ ENAN_ANIM_IDLE_MORPH, + /* 3 */ ENAN_ANIM_BOWING, + /* 4 */ ENAN_ANIM_BOWING_MORPH, /* 5 */ ENAN_ANIM_SURPRISED, /* 6 */ ENAN_ANIM_6, - /* 7 */ ENAN_ANIM_7, - /* 8 */ ENAN_ANIM_8, + /* 7 */ ENAN_ANIM_WALK, + /* 8 */ ENAN_ANIM_WALK2, // Duplicate of ENAN_ANIM_WALK /* 9 */ ENAN_ANIM_SIT, /* 10 */ ENAN_ANIM_SIT_MORPH, /* 11 */ ENAN_ANIM_11, @@ -615,15 +615,15 @@ typedef enum EnAnAnimation { /* 17 */ ENAN_ANIMOBJ_AN2, /* 17 */ ENAN_ANIM_17 = ENAN_ANIMOBJ_AN2, - /* 18 */ ENAN_ANIM_18, - /* 19 */ ENAN_ANIM_19, - /* 20 */ ENAN_ANIM_SITTING_AND_CRYING, + /* 18 */ ENAN_ANIM_UMBRELLA_WALK, + /* 19 */ ENAN_ANIM_UMBRELLA_SIT, + /* 20 */ ENAN_ANIM_UMBRELLA_CRYING, /* 21 */ ENAN_ANIMOBJ_AN3, - /* 21 */ ENAN_ANIM_21 = ENAN_ANIMOBJ_AN3, - /* 22 */ ENAN_ANIM_22, - /* 23 */ ENAN_ANIM_SWEEP, - /* 24 */ ENAN_ANIM_24, + /* 21 */ ENAN_ANIM_BROOM_IDLE = ENAN_ANIMOBJ_AN3, + /* 22 */ ENAN_ANIM_BROOM_WALK, + /* 23 */ ENAN_ANIM_BROOM_SWEEP, + /* 24 */ ENAN_ANIM_24, //! @bug See note at `sAnimationInfo` /* 25 */ ENAN_ANIMOBJ_AN4, /* 25 */ ENAN_ANIM_25 = ENAN_ANIMOBJ_AN4, @@ -641,35 +641,38 @@ typedef enum EnAnAnimation { } EnAnAnimation; static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { - { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 - { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_1 - { &object_an1_Anim_008B6C, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_2 - { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_3 - { &object_an1_Anim_00544C, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_4 - { &gAn1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED - { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 - { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_7 - { &object_an1_Anim_013048, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_8 - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT - { &gAn1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH - { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 - { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 - { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 - { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 - { &gAn1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY - { &gAn1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY + { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH + { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING + { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH + { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED + { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH + { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 + { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 + { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 + { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 + { &gAnju1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY + { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY - { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 - { &object_an2_Anim_0042CC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_18 - { &object_an2_Anim_0038A0, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_19 - { &gAnju2SittingAndCryingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_AND_CRYING + // ENAN_ANIMOBJ_AN2 + { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 + { &gAnju2UmbrellaWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_WALK + { &gAnju2UmbrellaSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_UMBRELLA_SIT + { &gAnju2UmbrellaCryingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_CRYING - { &object_an3_Anim_00201C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_21 - { &object_an3_Anim_002A4C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_22 - { &gAnju3SweepAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SWEEP + // ENAN_ANIMOBJ_AN3 + { &gAnju3BroomIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_BROOM_IDLE + { &gAnju3BroomWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_BROOM_WALK + { &gAnju3BroomSweepAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_BROOM_SWEEP //! @bug Uses symbol from OBJECT_AN2 instead of OBJECT_AN3 - { &object_an2_Anim_0038A0, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 + { &gAnju2UmbrellaSitAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 + // ENAN_ANIMOBJ_AN4 { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25 { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26 { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27 @@ -683,7 +686,7 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35 }; -s32 func_80B53BA8(EnAn* this, PlayState* play) { +s32 EnAn_UpdateSkel(EnAn* this, PlayState* play) { s8 originalObjectSlot = this->actor.objectSlot; s8 otherObjectSlot = OBJECT_SLOT_NONE; s32 ret = 0; @@ -733,16 +736,16 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { } switch (animIndex) { - case ENAN_ANIM_1: - case ENAN_ANIM_2: - if ((this->animIndex != ENAN_ANIM_1) && (this->animIndex != ENAN_ANIM_2)) { + case ENAN_ANIM_IDLE: + case ENAN_ANIM_IDLE_MORPH: + if ((this->animIndex != ENAN_ANIM_IDLE) && (this->animIndex != ENAN_ANIM_IDLE_MORPH)) { changeAnim = true; } break; - case ENAN_ANIM_7: - case ENAN_ANIM_8: - if ((this->animIndex != ENAN_ANIM_7) && (this->animIndex != ENAN_ANIM_8)) { + case ENAN_ANIM_WALK: + case ENAN_ANIM_WALK2: + if ((this->animIndex != ENAN_ANIM_WALK) && (this->animIndex != ENAN_ANIM_WALK2)) { changeAnim = true; } break; @@ -774,7 +777,7 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; -void func_80B53ED4(EnAn* this, PlayState* play) { +void EnAn_UpdateCollider(EnAn* this, PlayState* play) { f32 temp; s32 pad; Vec3f sp24; @@ -1236,7 +1239,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { label: this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; - EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); ret = true; this->unk_394++; break; @@ -1518,11 +1521,11 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_12: case ANJU_SCH_13: case ANJU_SCH_17: - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; case ANJU_SCH_16: - EnAn_ChangeAnim(this, play, ENAN_ANIM_SWEEP); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; @@ -1536,12 +1539,12 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { case ANJU_SCH_2F: case ANJU_SCH_31: - EnAn_ChangeAnim(this, play, ENAN_ANIM_7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; case ANJU_SCH_34: case ANJU_SCH_35: - EnAn_ChangeAnim(this, play, ENAN_ANIM_22); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; @@ -1550,10 +1553,10 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); } if (this->animIndex == ENAN_ANIM_17) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_18); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); } - if ((this->animIndex == ENAN_ANIM_1) || (this->animIndex == ENAN_ANIM_2)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_8); + if ((this->animIndex == ENAN_ANIM_IDLE) || (this->animIndex == ENAN_ANIM_IDLE_MORPH)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK2); } break; } @@ -1568,7 +1571,7 @@ void func_80B556F8(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_200; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_2); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; this->dialogueFuncState++; @@ -1577,12 +1580,12 @@ void func_80B556F8(EnAn* this, PlayState* play) { void func_80B557AC(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_3); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING); this->stateFlags &= ~ENAN_STATE_20; this->stateFlags |= ENAN_STATE_200; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_2); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; this->dialogueFuncState++; @@ -1591,19 +1594,19 @@ void func_80B557AC(EnAn* this, PlayState* play) { void func_80B55860(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_4); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING_MORPH); this->stateFlags |= ENAN_STATE_200; this->stateFlags &= ~ENAN_STATE_20; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_2); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); this->stateFlags &= ~ENAN_STATE_200; this->stateFlags |= ENAN_STATE_20; this->dialogueFuncState++; } } -s32 EnAn_HandleDialog(EnAn* this, PlayState* play) { +s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); u16 textId = play->msgCtx.currentTextId; @@ -1624,11 +1627,11 @@ s32 EnAn_HandleDialog(EnAn* this, PlayState* play) { case 0x28AF: // "Good night" case 0x28C1: // "I need to hurry and cook for grandmother" - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; case 0x28BC: // "Where did you got that letter?" - EnAn_ChangeAnim(this, play, ENAN_ANIM_2); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); break; case 0x28C6: // "Don't talk to me or I'll drop this plate" @@ -1641,14 +1644,14 @@ s32 EnAn_HandleDialog(EnAn* this, PlayState* play) { case 0x28F7: // "Everyone will be taking refuge by tomorrow" case 0x28F8: // "We'll go to Romani Ranch to take refuge" - EnAn_ChangeAnim(this, play, ENAN_ANIM_21); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_IDLE); break; case 0x28EB: // "I'm afraid to meet him..." - if (this->animIndex != ENAN_ANIM_SITTING_AND_CRYING) { + if (this->animIndex != ENAN_ANIM_UMBRELLA_CRYING) { this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); this->stateFlags |= ENAN_STATE_200; - EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); } break; @@ -1749,14 +1752,14 @@ s32 EnAn_HandleDialog(EnAn* this, PlayState* play) { if (this->animIndex == ENAN_ANIM_WALKING_WITH_TRAY) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); } - if (this->animIndex == ENAN_ANIM_18) { + if (this->animIndex == ENAN_ANIM_UMBRELLA_WALK) { EnAn_ChangeAnim(this, play, ENAN_ANIM_17); } - if ((this->animIndex == ENAN_ANIM_22) || (this->animIndex == ENAN_ANIM_SWEEP)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_21); + if ((this->animIndex == ENAN_ANIM_BROOM_WALK) || (this->animIndex == ENAN_ANIM_BROOM_SWEEP)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_IDLE); } - if ((this->animIndex == ENAN_ANIM_7) || (this->animIndex == ENAN_ANIM_8)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_2); + if ((this->animIndex == ENAN_ANIM_WALK) || (this->animIndex == ENAN_ANIM_WALK2)) { + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); } break; } @@ -1960,7 +1963,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -1975,7 +1978,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; @@ -2064,12 +2067,12 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_24: case ANJU_SCH_27: this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_DRAW_BROOM; - EnAn_ChangeAnim(this, play, ENAN_ANIM_22); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); break; default: this->stateFlags |= ENAN_STATE_100; - EnAn_ChangeAnim(this, play, ENAN_ANIM_7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; } @@ -2159,7 +2162,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_34: case ANJU_SCH_35: - EnAn_ChangeAnim(this, play, ENAN_ANIM_22); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2168,7 +2171,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_32: case ANJU_SCH_33: - EnAn_ChangeAnim(this, play, ENAN_ANIM_7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; break; @@ -2182,7 +2185,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3D: case ANJU_SCH_3E: case ANJU_SCH_3F: - EnAn_ChangeAnim(this, play, ENAN_ANIM_18); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; @@ -2195,7 +2198,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; /* fallthrough */ default: - EnAn_ChangeAnim(this, play, ENAN_ANIM_7); + EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; } @@ -2231,7 +2234,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.world.pos, &sp40); Math_Vec3f_Copy(&this->actor.prevPos, &sp40); if (scheduleOutput->result == ANJU_SCH_16) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_SWEEP); + EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2275,7 +2278,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { /* fallthrough */ case ANJU_SCH_12: case ANJU_SCH_17: - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A = 0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2289,13 +2292,13 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_AND_CRYING); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); this->stateFlags |= ENAN_STATE_40; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; this->unk_37A = 4; } else { - EnAn_ChangeAnim(this, play, ENAN_ANIM_18); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); this->unk_37A = 0; } @@ -2617,7 +2620,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { break; case ANJU_SCH_16: - if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_SWEEP)) { + if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_BROOM_SWEEP)) { Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } break; @@ -2641,7 +2644,7 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { temp2 = (this->actor.shape.rot.y / 0xB6) * 0xB6; if (temp1 == temp2) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); - EnAn_ChangeAnim(this, play, ENAN_ANIM_19); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_SIT); this->stateFlags |= ENAN_STATE_40; this->unk_37A++; } @@ -2789,7 +2792,7 @@ void EnAn_Initialize(EnAn* this, PlayState* play) { SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, ANJU1_LIMB_MAX); this->animIndex = ENAN_ANIM_NONE; - EnAn_ChangeAnim(this, play, ENAN_ANIM_1); + EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); Collider_InitAndSetCylinder(play, &this->collider, &this->actor, &sCylinderInit); CollisionCheck_SetInfo2(&this->actor.colChkInfo, DamageTable_Get(0x16), &sColChkInfoInit); @@ -2873,9 +2876,17 @@ void EnAn_Talk(EnAn* this, PlayState* play) { } void func_80B57B48(EnAn* this, PlayState* play) { - s32 sp30[] = { - ENAN_ANIM_0, ENAN_ANIM_11, ENAN_ANIM_34, ENAN_ANIM_25, ENAN_ANIM_26, - ENAN_ANIM_28, ENAN_ANIM_30, ENAN_ANIM_32, ENAN_ANIM_33, ENAN_ANIM_0, + s32 animIds[] = { + /* 0 */ ENAN_ANIM_0, + /* 1 */ ENAN_ANIM_11, + /* 2 */ ENAN_ANIM_34, + /* 3 */ ENAN_ANIM_25, + /* 4 */ ENAN_ANIM_26, + /* 5 */ ENAN_ANIM_28, + /* 6 */ ENAN_ANIM_30, + /* 7 */ ENAN_ANIM_32, + /* 8 */ ENAN_ANIM_33, + /* 9 */ ENAN_ANIM_0, }; s32 pad; @@ -2895,7 +2906,7 @@ void func_80B57B48(EnAn* this, PlayState* play) { if (this->cueId == 9) { this->drawMoonMask = false; } - EnAn_ChangeAnim(this, play, sp30[cueId]); + EnAn_ChangeAnim(this, play, animIds[cueId]); } if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || @@ -2957,25 +2968,25 @@ void EnAn_Update(Actor* thisx, PlayState* play) { if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && func_80B552E4(this, play)) { func_80B57B48(this, play); - func_80B53BA8(this, play); + EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); return; } this->actionFunc(this, play); if (this->scheduleResult != ANJU_SCH_NONE) { - EnAn_HandleDialog(this, play); - func_80B53BA8(this, play); + EnAn_HandleDialogue(this, play); + EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); func_80B554E8(this); SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); if (!(this->stateFlags & ENAN_STATE_40)) { Actor_MoveWithGravity(&this->actor); - Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, 4U); + Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_4); } - func_80B53ED4(this, play); + EnAn_UpdateCollider(this, play); } } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index bec8f8400..4fab9d98d 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14011,9 +14011,9 @@ 0x80B539CC:("EnAn_FindActor",), 0x80B53A7C:("func_80B53A7C",), 0x80B53B3C:("EnAn_FindDoor",), - 0x80B53BA8:("func_80B53BA8",), + 0x80B53BA8:("EnAn_UpdateSkel",), 0x80B53CE8:("EnAn_ChangeAnim",), - 0x80B53ED4:("func_80B53ED4",), + 0x80B53ED4:("EnAn_UpdateCollider",), 0x80B53F84:("EnAn_UpdateFace",), 0x80B54124:("EnAn_DrawAccessory",), 0x80B54678:("func_80B54678",), @@ -14034,7 +14034,7 @@ 0x80B556F8:("func_80B556F8",), 0x80B557AC:("func_80B557AC",), 0x80B55860:("func_80B55860",), - 0x80B55914:("EnAn_HandleDialog",), + 0x80B55914:("EnAn_HandleDialogue",), 0x80B55D20:("EnAn_FindLookAtActor",), 0x80B55D98:("func_80B55D98",), 0x80B55ECC:("func_80B55ECC",), From 5641153b62c292fc7a458341cfc26aa5cab03442 Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 10 Oct 2023 18:03:21 -0300 Subject: [PATCH 31/78] name some anims --- assets/xml/objects/object_an1.xml | 13 +-- assets/xml/objects/object_an4.xml | 21 ++--- include/z64cutscene.h | 2 +- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 28 +++---- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 28 +++---- src/overlays/actors/ovl_En_An/z_en_an.c | 103 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 12 +-- tools/disasm/functions.txt | 2 +- 8 files changed, 108 insertions(+), 101 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index b35e505ce..2f12d6683 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -1,15 +1,16 @@  - - + + + - + - + @@ -41,7 +42,7 @@ - + @@ -91,6 +92,6 @@ - + diff --git a/assets/xml/objects/object_an4.xml b/assets/xml/objects/object_an4.xml index a6bb94e37..a3116b65c 100644 --- a/assets/xml/objects/object_an4.xml +++ b/assets/xml/objects/object_an4.xml @@ -1,15 +1,18 @@  + - - - - + + + + + - + + - - - - + + + + diff --git a/include/z64cutscene.h b/include/z64cutscene.h index af427d1a7..93389b2b8 100644 --- a/include/z64cutscene.h +++ b/include/z64cutscene.h @@ -482,7 +482,7 @@ typedef enum { /* 0x22A */ CS_CMD_ACTOR_CUE_554, /* 0x22B */ CS_CMD_ACTOR_CUE_555, /* 0x22C */ CS_CMD_ACTOR_CUE_556, - /* 0x22D */ CS_CMD_ACTOR_CUE_557, + /* 0x22D */ CS_CMD_ACTOR_CUE_557, // Moon mask cs, Anju /* 0x22E */ CS_CMD_ACTOR_CUE_558, /* 0x22F */ CS_CMD_ACTOR_CUE_559, /* 0x230 */ CS_CMD_ACTOR_CUE_560, diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index 79e83e4fb..583ee1507 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -53,20 +53,20 @@ typedef enum { } DmAnAnimation; static AnimationInfoS sAnimationInfo[DMAN_ANIM_MAX] = { - { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0 - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 - { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2 - { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3 - { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4 - { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_5 - { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_6 - { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_7 - { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_8 - { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_9 - { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_10 - { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_11 - { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_12 - { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_13 + { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_0 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_1 + { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_2 + { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_3 + { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_4 + { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_5 + { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_6 + { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_7 + { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_8 + { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_9 + { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_10 + { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_11 + { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMAN_ANIM_12 + { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMAN_ANIM_13 }; s32 DmAn_UpdateSkelAnime(DmAn* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index d2081ece9..960088a22 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -53,20 +53,20 @@ typedef enum { } DmGmAnimation; static AnimationInfoS sAnimationInfo[DMGM_ANIM_MAX] = { - { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0 - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 - { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2 - { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3 - { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4 - { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_5 - { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_6 - { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_7 - { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_8 - { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_9 - { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_10 - { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_11 - { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_12 - { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_13 + { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_0 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_1 + { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_2 + { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -4 }, // DMGM_ANIM_3 + { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_4 + { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_5 + { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_6 + { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_7 + { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_8 + { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_9 + { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_10 + { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_11 + { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // DMGM_ANIM_12 + { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // DMGM_ANIM_13 }; s32 DmGm_UpdateSkelAnime(DmGm* this, PlayState* play) { 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 1c4b7c013..2290276eb 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -92,7 +92,7 @@ typedef enum AnjuScheduleResult { /* 61 */ ANJU_SCH_3D, /* 62 */ ANJU_SCH_3E, /* 63 */ ANJU_SCH_3F, - /* 64 */ ANJU_SCH_MAX // ? + /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; static u8 sScheduleScript[] = { @@ -595,7 +595,7 @@ EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) { */ typedef enum EnAnAnimation { /* -1 */ ENAN_ANIM_NONE = -1, - /* 0 */ ENAN_ANIM_0, + /* 0 */ ENAN_ANIM_HOLDING_HANDS, /* 1 */ ENAN_ANIM_IDLE, /* 2 */ ENAN_ANIM_IDLE_MORPH, /* 3 */ ENAN_ANIM_BOWING, @@ -606,10 +606,10 @@ typedef enum EnAnAnimation { /* 8 */ ENAN_ANIM_WALK2, // Duplicate of ENAN_ANIM_WALK /* 9 */ ENAN_ANIM_SIT, /* 10 */ ENAN_ANIM_SIT_MORPH, - /* 11 */ ENAN_ANIM_11, - /* 12 */ ENAN_ANIM_12, - /* 13 */ ENAN_ANIM_13, - /* 14 */ ENAN_ANIM_14, + /* 11 */ ENAN_ANIM_SITTING_IN_DISBELIEVE, + /* 12 */ ENAN_ANIM_COOKING, + /* 13 */ ENAN_ANIM_TASTING, + /* 14 */ ENAN_ANIM_TASTING_END, /* 15 */ ENAN_ANIM_WAITING_WITH_TRAY, /* 16 */ ENAN_ANIM_WALKING_WITH_TRAY, @@ -635,29 +635,29 @@ typedef enum EnAnAnimation { /* 31 */ ENAN_ANIM_31, /* 32 */ ENAN_ANIM_32, /* 33 */ ENAN_ANIM_33, - /* 34 */ ENAN_ANIM_34, + /* 34 */ ENAN_ANIM_SITTING_RAISE_FACE, /* 35 */ ENAN_ANIM_35, /* 36 */ ENAN_ANIM_MAX } EnAnAnimation; static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { - { &object_an1_Anim_013E1C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_0 - { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE - { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH - { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING - { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH - { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED - { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 - { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK - { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH - { &object_an1_Anim_007E08, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_11 - { &object_an1_Anim_0065C8, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_12 - { &object_an1_Anim_001090, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_13 - { &object_an1_Anim_00144C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_14 - { &gAnju1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY - { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY + { &gAnju1HoldingHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HOLDING_HANDS + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH + { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING + { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH + { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED + { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH + { &gAnju1SittingInDisbelieveAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_IN_DISBELIEVE + { &gAnju1CookingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_COOKING + { &gAnju1TastingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTING + { &gAnju1TastingEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTING_END + { &gAnju1WaitingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAITING_WITH_TRAY + { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY // ENAN_ANIMOBJ_AN2 { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 @@ -673,17 +673,17 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &gAnju2UmbrellaSitAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 // ENAN_ANIMOBJ_AN4 - { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25 - { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26 - { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27 - { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_28 - { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_29 - { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_30 - { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_31 - { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_32 - { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_33 - { &object_an4_Anim_004A78, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_34 - { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35 + { &object_an4_Anim_006CC0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_25 + { &object_an4_Anim_007E3C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_26 + { &object_an4_Anim_0088C0, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_27 + { &object_an4_Anim_0013C8, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_28 + { &object_an4_Anim_002550, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_29 + { &object_an4_Anim_00353C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_30 + { &object_an4_Anim_004498, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_31 + { &object_an4_Anim_0060B4, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_32 + { &object_an4_Anim_00041C, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_33 + { &gAnju4SittingRaiseFaceAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SITTING_RAISE_FACE + { &object_an4_Anim_00506C, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_35 }; s32 EnAn_UpdateSkel(EnAn* this, PlayState* play) { @@ -1198,7 +1198,7 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) { switch (this->unk_394) { case 0x0: - EnAn_ChangeAnim(this, play, ENAN_ANIM_13); + EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING); this->unk_394++; break; @@ -1211,7 +1211,7 @@ s32 func_80B54C5C(Actor* thisx, PlayState* play) { break; case 0x2: - EnAn_ChangeAnim(this, play, ENAN_ANIM_14); + EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING_END); this->unk_394++; break; } @@ -1437,7 +1437,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { u16 scriptIndex = play->csCtx.scriptIndex; s32 ret = false; - if ((play->csCtx.state != 0) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) && + if ((play->csCtx.state != CS_STATE_IDLE) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) && ((scriptIndex == 0) || (scriptIndex == 1))) { if (!this->forceDraw) { this->unk_38A = ENAN_FACE_0; @@ -1530,7 +1530,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { break; case ANJU_SCH_E: - EnAn_ChangeAnim(this, play, ENAN_ANIM_12); + EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); break; case ANJU_SCH_15: @@ -2308,7 +2308,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { break; case ANJU_SCH_E: - EnAn_ChangeAnim(this, play, ENAN_ANIM_12); + EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2332,7 +2332,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); if (scheduleOutput->result == ANJU_SCH_C) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_11); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2363,7 +2363,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { break; case ANJU_SCH_18: - EnAn_ChangeAnim(this, play, ENAN_ANIM_11); + EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); this->unk_38A = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; @@ -2384,7 +2384,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); - EnAn_ChangeAnim(this, play, ENAN_ANIM_0); + EnAn_ChangeAnim(this, play, ENAN_ANIM_HOLDING_HANDS); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; @@ -2875,18 +2875,18 @@ void EnAn_Talk(EnAn* this, PlayState* play) { } } -void func_80B57B48(EnAn* this, PlayState* play) { +void EnAn_HandleCutscene(EnAn* this, PlayState* play) { s32 animIds[] = { - /* 0 */ ENAN_ANIM_0, - /* 1 */ ENAN_ANIM_11, - /* 2 */ ENAN_ANIM_34, + /* 0 */ ENAN_ANIM_HOLDING_HANDS, + /* 1 */ ENAN_ANIM_SITTING_IN_DISBELIEVE, + /* 2 */ ENAN_ANIM_SITTING_RAISE_FACE, /* 3 */ ENAN_ANIM_25, /* 4 */ ENAN_ANIM_26, /* 5 */ ENAN_ANIM_28, /* 6 */ ENAN_ANIM_30, /* 7 */ ENAN_ANIM_32, /* 8 */ ENAN_ANIM_33, - /* 9 */ ENAN_ANIM_0, + /* 9 */ ENAN_ANIM_HOLDING_HANDS, }; s32 pad; @@ -2899,6 +2899,7 @@ void func_80B57B48(EnAn* this, PlayState* play) { if (this->cueId != (cueId & 0xFF)) { this->cueId = cueId; + if (this->cueId == 3) { SET_WEEKEVENTREG(WEEKEVENTREG_87_02); this->drawMoonMask = true; @@ -2906,15 +2907,17 @@ void func_80B57B48(EnAn* this, PlayState* play) { if (this->cueId == 9) { this->drawMoonMask = false; } + EnAn_ChangeAnim(this, play, animIds[cueId]); } if ((this->animIndex == ENAN_ANIM_26) || (this->animIndex == ENAN_ANIM_28) || - (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_34)) { + (this->animIndex == ENAN_ANIM_30) || (this->animIndex == ENAN_ANIM_SITTING_RAISE_FACE)) { if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, this->animIndex + 1); } } + Cutscene_ActorTranslateAndYaw(&this->actor, play, cueChannel); } } @@ -2967,7 +2970,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && func_80B552E4(this, play)) { - func_80B57B48(this, play); + EnAn_HandleCutscene(this, play); EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); return; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 7bdb61b0c..80f51ca5f 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -75,23 +75,23 @@ typedef struct EnAn { /* 0x384 */ s16 timePathTimeSpeed; /* 0x386 */ s16 unk_386; // timer /* 0x388 */ s16 unk_388; // timer - /* 0x38A */ s16 unk_38A; // face enum - /* 0x38C */ s16 faceIndex; // face enum + /* 0x38A */ s16 unk_38A; // EnAnFace enum + /* 0x38C */ s16 faceIndex; // EnAnFace enum /* 0x38E */ s16 eyeTimer; /* 0x390 */ s16 eyeTexIndex; /* 0x392 */ s16 mouthTexIndex; /* 0x394 */ s16 unk_394; /* 0x396 */ s16 dialogueFuncState; /* 0x398 */ MsgEventFunc msgEventFunc; - /* 0x39C */ s32 animIndex; + /* 0x39C */ s32 animIndex; // EnAnAnimation enum /* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8]; - /* 0x3A8 */ u32 unk_3A8; - /* 0x3AC */ u32 unk_3AC; + /* 0x3A8 */ u32 unk_3A8; // TwoTexScroll + /* 0x3AC */ u32 unk_3AC; // TwoTexScroll /* 0x3B0 */ s32 forceDraw; /* 0x3B4 */ s32 drawMoonMask; /* 0x3B8 */ s32 slotsInitialized; /* 0x3BC */ s32 unk_3BC; - /* 0x3C0 */ s32 unk_3C0; + /* 0x3C0 */ s32 unk_3C0; // true if ENAN_8000 /* 0x3C4 */ s32 unk_3C4; // set but not read } EnAn; // size = 0x3C8 diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 4fab9d98d..5dabe2207 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14061,7 +14061,7 @@ 0x80B577F0:("EnAn_Initialize",), 0x80B578F8:("EnAn_FollowSchedule",), 0x80B57A44:("EnAn_Talk",), - 0x80B57B48:("func_80B57B48",), + 0x80B57B48:("EnAn_HandleCutscene",), 0x80B57C9C:("EnAn_Init",), 0x80B57D70:("EnAn_Destroy",), 0x80B57D9C:("EnAn_Update",), From 4d905604e000b7c8b917095ae45070ca0909585c Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 10 Oct 2023 20:13:51 -0300 Subject: [PATCH 32/78] trying to make sense out of the schedule --- anju_schedule_goto.c | 1322 +++++++++++++++++++++++ anju_schedule_ifs.c | 1226 +++++++++++++++++++++ src/code/z_schedule.c | 24 +- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 4 files changed, 2568 insertions(+), 6 deletions(-) create mode 100644 anju_schedule_goto.c create mode 100644 anju_schedule_ifs.c diff --git a/anju_schedule_goto.c b/anju_schedule_goto.c new file mode 100644 index 000000000..fff3d0c7b --- /dev/null +++ b/anju_schedule_goto.c @@ -0,0 +1,1322 @@ +#include "global.h" + +#define NOW 0 + +typedef enum AnjuScheduleResult { + /* 0 */ ANJU_SCH_NONE, + /* 1 */ ANJU_SCH_1, + /* 2 */ ANJU_SCH_2, + /* 3 */ ANJU_SCH_3, + /* 4 */ ANJU_SCH_4, + /* 5 */ ANJU_SCH_5, + /* 6 */ ANJU_SCH_6, + /* 7 */ ANJU_SCH_7, + /* 8 */ ANJU_SCH_8, + /* 9 */ ANJU_SCH_9, + /* 10 */ ANJU_SCH_A, + /* 11 */ ANJU_SCH_B, + /* 12 */ ANJU_SCH_C, + /* 13 */ ANJU_SCH_D, + /* 14 */ ANJU_SCH_E, + /* 15 */ ANJU_SCH_F, + /* 16 */ ANJU_SCH_10, + /* 17 */ ANJU_SCH_11, + /* 18 */ ANJU_SCH_12, + /* 19 */ ANJU_SCH_13, + /* 20 */ ANJU_SCH_14, + /* 21 */ ANJU_SCH_15, + /* 22 */ ANJU_SCH_16, + /* 23 */ ANJU_SCH_17, + /* 24 */ ANJU_SCH_18, + /* 25 */ ANJU_SCH_19, + /* 26 */ ANJU_SCH_1A, + /* 27 */ ANJU_SCH_1B, + /* 28 */ ANJU_SCH_1C, + /* 29 */ ANJU_SCH_1D, + /* 30 */ ANJU_SCH_1E, + /* 31 */ ANJU_SCH_1F, + /* 32 */ ANJU_SCH_20, + /* 33 */ ANJU_SCH_21, + /* 34 */ ANJU_SCH_22, + /* 35 */ ANJU_SCH_23, + /* 36 */ ANJU_SCH_24, + /* 37 */ ANJU_SCH_25, + /* 38 */ ANJU_SCH_26, + /* 39 */ ANJU_SCH_27, + /* 40 */ ANJU_SCH_28, + /* 41 */ ANJU_SCH_29, + /* 42 */ ANJU_SCH_2A, + /* 43 */ ANJU_SCH_2B, + /* 44 */ ANJU_SCH_2C, + /* 45 */ ANJU_SCH_2D, + /* 46 */ ANJU_SCH_2E, + /* 47 */ ANJU_SCH_2F, + /* 48 */ ANJU_SCH_30, + /* 49 */ ANJU_SCH_31, + /* 50 */ ANJU_SCH_32, + /* 51 */ ANJU_SCH_33, + /* 52 */ ANJU_SCH_34, + /* 53 */ ANJU_SCH_35, + /* 54 */ ANJU_SCH_36, + /* 55 */ ANJU_SCH_37, + /* 56 */ ANJU_SCH_38, + /* 57 */ ANJU_SCH_39, + /* 58 */ ANJU_SCH_3A, + /* 59 */ ANJU_SCH_3B, + /* 60 */ ANJU_SCH_3C, + /* 61 */ ANJU_SCH_3D, + /* 62 */ ANJU_SCH_3E, + /* 63 */ ANJU_SCH_3F, + /* 64 */ ANJU_SCH_MAX +} AnjuScheduleResult; + +void scheduleScript(PlayState* play, ScheduleOutput* output) { + /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005); + if (gSaveContext.save.day != 1) { + goto label_151; + } + + /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A); + if (play->sceneId != SCENE_YADOYA) { + goto label_150; + } + + /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011); + if ((6, 0) <= NOW <= (10, 55)) { + goto label_14A; + } + + /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018); + if ((10, 55) <= NOW <= (11, 10)) { + goto label_144; + } + /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F); + if ((11, 10) <= NOW <= (11, 30)) { + goto label_13E; + } + /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_138; + } + /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D); + if ((11, 50) <= NOW <= (11, 55)) { + goto label_132; + } + /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034); + if ((11, 55) <= NOW <= (12, 0)) { + goto label_12C; + } + /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B); + if ((12, 0) <= NOW <= (12, 15)) { + goto label_126; + } + /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042); + if ((12, 15) <= NOW <= (12, 20)) { + goto label_120; + } + /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049); + if ((12, 20) <= NOW <= (12, 25)) { + goto label_11A; + } + /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050); + if ((12, 25) <= NOW <= (12, 55)) { + goto label_114; + } + /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057); + if ((12, 55) <= NOW <= (13, 0)) { + goto label_10E; + } + /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E); + if ((13, 15) <= NOW <= (13, 20)) { + goto label_108; + } + /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065); + if ((13, 20) <= NOW <= (13, 50)) { + goto label_102; + } + /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C); + if ((13, 50) <= NOW <= (14, 8)) { + goto label_0FC; + } + /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073); + if ((14, 8) <= NOW <= (14, 18)) { + goto label_0F6; + } + /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079); + if ((14, 18) <= NOW <= (16, 10)) { + goto label_0F0; + } + /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F); + if ((16, 10) <= NOW <= (16, 30)) { + goto label_0EA; + } + /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085); + if ((16, 30) <= NOW <= (19, 50)) { + goto label_0E4; + } + /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B); + if ((19, 50) <= NOW <= (20, 20)) { + goto label_0DE; + } + /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091); + if ((20, 20) <= NOW <= (20, 30)) { + goto label_0D8; + } + /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097); + if ((20, 30) <= NOW <= (21, 5)) { + goto label_0D2; + } + /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D); + if ((21, 5) <= NOW <= (21, 10)) { + goto label_0CC; + } + + /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + goto label_0A2; + } + + /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_0A2: + /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8); + if ((23, 10) <= NOW <= (23, 15)) { + goto label_0C6; + } + + /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE); + if ((23, 15) <= NOW <= (0, 0)) { + goto label_0C0; + } + + /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4); + if ((0, 0) <= NOW <= (6, 0)) { + goto label_0B5; + } + + /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_0B5: + /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + goto label_0BF; + } + +label_0B9: + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); + output->result = ANJU_SCH_17; + output->time0 = (0, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + + +label_0BF: + /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + +label_0C0: + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31); + output->result = ANJU_SCH_31; + output->time0 = (23, 15); + output->time1 = (0, 0); + output->hasResult = true; + return; + + +label_0C6: + /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F); + output->result = ANJU_SCH_1F; + output->time0 = (23, 10); + output->time1 = (23, 15); + output->hasResult = true; + return; + + +label_0CC: + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 5); + output->time1 = (21, 10); + output->hasResult = true; + return; + + +label_0D2: + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 5); + output->hasResult = true; + return; + + +label_0D8: + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + + +label_0DE: + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + + +label_0E4: + /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (16, 30); + output->time1 = (19, 50); + output->hasResult = true; + return; + + +label_0EA: + /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11); + output->result = ANJU_SCH_11; + output->time0 = (16, 10); + output->time1 = (16, 30); + output->hasResult = true; + return; + + +label_0F0: + /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (14, 18); + output->time1 = (16, 10); + output->hasResult = true; + return; + + +label_0F6: + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10); + output->result = ANJU_SCH_10; + output->time0 = (14, 8); + output->time1 = (14, 18); + output->hasResult = true; + return; + + +label_0FC: + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (13, 50); + output->time1 = (14, 8); + output->hasResult = true; + return; + + +label_102: + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); + output->result = ANJU_SCH_2E; + output->time0 = (13, 20); + output->time1 = (13, 50); + output->hasResult = true; + return; + + +label_108: + /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); + output->result = ANJU_SCH_1D; + output->time0 = (13, 15); + output->time1 = (13, 20); + output->hasResult = true; + return; + + +label_10E: + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); + output->result = ANJU_SCH_1C; + output->time0 = (12, 55); + output->time1 = (13, 0); + output->hasResult = true; + return; + + +label_114: + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); + output->result = ANJU_SCH_2D; + output->time0 = (12, 25); + output->time1 = (12, 55); + output->hasResult = true; + return; + + +label_11A: + /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); + output->result = ANJU_SCH_1B; + output->time0 = (12, 20); + output->time1 = (12, 25); + output->hasResult = true; + return; + + +label_120: + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); + output->result = ANJU_SCH_2C; + output->time0 = (12, 15); + output->time1 = (12, 20); + output->hasResult = true; + return; + + +label_126: + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); + output->result = ANJU_SCH_15; + output->time0 = (12, 0); + output->time1 = (12, 15); + output->hasResult = true; + return; + + +label_12C: + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); + output->result = ANJU_SCH_2B; + output->time0 = (11, 55); + output->time1 = (12, 0); + output->hasResult = true; + return; + + +label_132: + /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); + output->result = ANJU_SCH_1A; + output->time0 = (11, 50); + output->time1 = (11, 55); + output->hasResult = true; + return; + + +label_138: + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); + output->result = ANJU_SCH_2A; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + + +label_13E: + /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); + output->result = ANJU_SCH_E; + output->time0 = (11, 10); + output->time1 = (11, 30); + output->hasResult = true; + return; + + +label_144: + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); + output->result = ANJU_SCH_28; + output->time0 = (10, 55); + output->time1 = (11, 10); + output->hasResult = true; + return; + + +label_14A: + /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (6, 0); + output->time1 = (10, 55); + output->hasResult = true; + return; + + + +label_150: + /* 0x150 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + +label_151: + /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156); + if (gSaveContext.save.day != 2) { + goto label_391; + } + + /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + goto label_29E; + } + + /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); + if (play->sceneId != SCENE_YADOYA) { + goto label_1F2; + } + + /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); + if ((11, 3) <= NOW <= (11, 9)) { + goto label_1EC; + } + + /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); + if ((11, 9) <= NOW <= (11, 29)) { + goto label_1E6; + } + + /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); + if ((11, 29) <= NOW <= (11, 39)) { + goto label_1E0; + } + + /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); + if ((17, 24) <= NOW <= (17, 30)) { + goto label_1DA; + } + + /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); + if ((17, 30) <= NOW <= (17, 55)) { + goto label_1D4; + } + + /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); + if ((17, 55) <= NOW <= (18, 0)) { + goto label_1CE; + } + + /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); + if ((18, 0) <= NOW <= (19, 50)) { + goto label_1C8; + } + + /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); + if ((19, 50) <= NOW <= (20, 20)) { + goto label_1C2; + } + + /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); + if ((20, 20) <= NOW <= (20, 30)) { + goto label_1BC; + } + + /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); + if ((20, 30) <= NOW <= (21, 0)) { + goto label_1B6; + } + + /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); + if ((21, 0) <= NOW <= (21, 5)) { + goto label_1B0; + } + + /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); + if ((21, 30) <= NOW <= (23, 0)) { + goto label_1AA; + } + +label_1A9: + /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_1AA: + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output->result = ANJU_SCH_18; + output->time0 = (21, 30); + output->time1 = (23, 0); + output->hasResult = true; + return; + +label_1B0: + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 0); + output->time1 = (21, 5); + output->hasResult = true; + return; + +label_1B6: + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 0); + output->hasResult = true; + return; + +label_1BC: + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + +label_1C2: + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + +label_1C8: + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (18, 0); + output->time1 = (19, 50); + output->hasResult = true; + return; + +label_1CE: + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); + output->result = ANJU_SCH_23; + output->time0 = (17, 55); + output->time1 = (18, 0); + output->hasResult = true; + return; + +label_1D4: + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); + output->result = ANJU_SCH_33; + output->time0 = (17, 30); + output->time1 = (17, 55); + output->hasResult = true; + return; + +label_1DA: + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); + output->result = ANJU_SCH_22; + output->time0 = (17, 24); + output->time1 = (17, 30); + output->hasResult = true; + return; + +label_1E0: + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); + output->result = ANJU_SCH_21; + output->time0 = (11, 29); + output->time1 = (11, 39); + output->hasResult = true; + return; + +label_1E6: + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); + output->result = ANJU_SCH_32; + output->time0 = (11, 9); + output->time1 = (11, 29); + output->hasResult = true; + return; + +label_1EC: + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); + output->result = ANJU_SCH_20; + output->time0 = (11, 3); + output->time1 = (11, 9); + output->hasResult = true; + return; + +label_1F2: + /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); + if (play->sceneId != SCENE_TOWN) { + goto label_23F; + } + + /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); + if ((11, 29) <= NOW <= (11, 39)) { + goto label_239; + } + + /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); + if ((11, 39) <= NOW <= (12, 25)) { + goto label_233; + } + + /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); + if ((12, 25) <= NOW <= (13, 15)) { + goto label_22D; + } + + /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); + if ((15, 55) <= NOW <= (16, 45)) { + goto label_227; + } + + /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); + if ((16, 45) <= NOW <= (17, 24)) { + goto label_221; + } + + /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); + if ((17, 24) <= NOW <= (17, 30)) { + goto label_21B; + } + +label_21A: + /* 0x21A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_21B: + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); + output->result = ANJU_SCH_26; + output->time0 = (17, 24); + output->time1 = (17, 30); + output->hasResult = true; + return; + +label_221: + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); + output->result = ANJU_SCH_3B; + output->time0 = (16, 45); + output->time1 = (17, 24); + output->hasResult = true; + return; + +label_227: + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); + output->result = ANJU_SCH_3A; + output->time0 = (15, 55); + output->time1 = (16, 45); + output->hasResult = true; + return; + +label_22D: + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); + output->result = ANJU_SCH_37; + output->time0 = (12, 25); + output->time1 = (13, 15); + output->hasResult = true; + return; + +label_233: + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); + output->result = ANJU_SCH_36; + output->time0 = (11, 39); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_239: + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); + output->result = ANJU_SCH_25; + output->time0 = (11, 29); + output->time1 = (11, 39); + output->hasResult = true; + return; + +label_23F: + /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); + if (play->sceneId != SCENE_CLOCKTOWER) { + goto label_274; + } + + /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); + if ((11, 39) <= NOW <= (12, 25)) { + goto label_26E; + } + + /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); + if ((12, 25) <= NOW <= (13, 15)) { + goto label_268; + } + + /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); + if ((15, 55) <= NOW <= (16, 45)) { + goto label_262; + } + + /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); + if ((16, 45) <= NOW <= (17, 24)) { + goto label_25C; + } + +label_25B: + /* 0x25B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_25C: + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); + output->result = ANJU_SCH_3F; + output->time0 = (16, 45); + output->time1 = (17, 24); + output->hasResult = true; + return; + +label_262: + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); + output->result = ANJU_SCH_3E; + output->time0 = (15, 55); + output->time1 = (16, 45); + output->hasResult = true; + return; + +label_268: + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); + output->result = ANJU_SCH_3D; + output->time0 = (12, 25); + output->time1 = (13, 15); + output->hasResult = true; + return; + +label_26E: + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); + output->result = ANJU_SCH_3C; + output->time0 = (11, 39); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_274: + /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); + if (play->sceneId != SCENE_ALLEY) { + goto label_29D; + } + + /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); + if ((13, 15) <= NOW <= (13, 45)) { + goto label_297; + } + + /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); + if ((13, 45) <= NOW <= (15, 25)) { + goto label_291; + } + + /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); + if ((15, 25) <= NOW <= (15, 55)) { + goto label_28B; + } + +label_28A: + /* 0x28A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_28B: + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); + output->result = ANJU_SCH_39; + output->time0 = (15, 25); + output->time1 = (15, 55); + output->hasResult = true; + return; + +label_291: + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); + output->result = ANJU_SCH_3; + output->time0 = (13, 45); + output->time1 = (15, 25); + output->hasResult = true; + return; + +label_297: + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); + output->result = ANJU_SCH_38; + output->time0 = (13, 15); + output->time1 = (13, 45); + output->hasResult = true; + return; + +label_29D: + /* 0x29D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_29E: + /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); + if (play->sceneId != SCENE_YADOYA) { + goto label_390; + } + + /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); + if ((6, 0) <= NOW <= (10, 55)) { + goto label_38A; + } + + /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); + if ((10, 55) <= NOW <= (11, 10)) { + goto label_384; + } + + /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); + if ((11, 10) <= NOW <= (11, 30)) { + goto label_37E; + } + + /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_378; + } + + /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); + if ((11, 50) <= NOW <= (11, 55)) { + goto label_372; + } + + /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); + if ((11, 55) <= NOW <= (12, 0)) { + goto label_36C; + } + + /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); + if ((12, 0) <= NOW <= (12, 15)) { + goto label_366; + } + + /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); + if ((12, 15) <= NOW <= (12, 20)) { + goto label_360; + } + + /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); + if ((12, 20) <= NOW <= (12, 25)) { + goto label_35A; + } + + /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); + if ((12, 25) <= NOW <= (12, 55)) { + goto label_354; + } + + /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); + if ((12, 55) <= NOW <= (13, 0)) { + goto label_34E; + } + + /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); + if ((13, 15) <= NOW <= (13, 20)) { + goto label_348; + } + + /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); + if ((13, 20) <= NOW <= (13, 50)) { + goto label_342; + } + + /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); + if ((13, 50) <= NOW <= (19, 50)) { + goto label_33C; + } + + /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); + if ((19, 50) <= NOW <= (20, 20)) { + goto label_336; + } + + /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); + if ((20, 20) <= NOW <= (20, 30)) { + goto label_330; + } + + /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); + if ((20, 30) <= NOW <= (21, 5)) { + goto label_32A; + } + + /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); + if ((21, 5) <= NOW <= (21, 10)) { + goto label_324; + } + + /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); + if ((21, 30) <= NOW <= (23, 0)) { + goto label_31E; + } + +label_31D: + /* 0x31D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_31E: + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output->result = ANJU_SCH_18; + output->time0 = (21, 30); + output->time1 = (23, 0); + output->hasResult = true; + return; + +label_324: + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 5); + output->time1 = (21, 10); + output->hasResult = true; + return; + +label_32A: + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 5); + output->hasResult = true; + return; + +label_330: + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + +label_336: + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + +label_33C: + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (13, 50); + output->time1 = (19, 50); + output->hasResult = true; + return; + +label_342: + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); + output->result = ANJU_SCH_2E; + output->time0 = (13, 20); + output->time1 = (13, 50); + output->hasResult = true; + return; + +label_348: + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); + output->result = ANJU_SCH_1D; + output->time0 = (13, 15); + output->time1 = (13, 20); + output->hasResult = true; + return; + +label_34E: + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); + output->result = ANJU_SCH_1C; + output->time0 = (12, 55); + output->time1 = (13, 0); + output->hasResult = true; + return; + +label_354: + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); + output->result = ANJU_SCH_2D; + output->time0 = (12, 25); + output->time1 = (12, 55); + output->hasResult = true; + return; + +label_35A: + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); + output->result = ANJU_SCH_1B; + output->time0 = (12, 20); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_360: + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); + output->result = ANJU_SCH_2C; + output->time0 = (12, 15); + output->time1 = (12, 20); + output->hasResult = true; + return; + +label_366: + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); + output->result = ANJU_SCH_15; + output->time0 = (12, 0); + output->time1 = (12, 15); + output->hasResult = true; + return; + +label_36C: + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); + output->result = ANJU_SCH_2B; + output->time0 = (11, 55); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_372: + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); + output->result = ANJU_SCH_1A; + output->time0 = (11, 50); + output->time1 = (11, 55); + output->hasResult = true; + return; + +label_378: + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); + output->result = ANJU_SCH_2A; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_37E: + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); + output->result = ANJU_SCH_E; + output->time0 = (11, 10); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_384: + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); + output->result = ANJU_SCH_28; + output->time0 = (10, 55); + output->time1 = (11, 10); + output->hasResult = true; + return; + +label_38A: + /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (6, 0); + output->time1 = (10, 55); + output->hasResult = true; + return; + +label_390: + /* 0x390 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_391: + /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396); + if (gSaveContext.save.day != 3) { + goto label_447; + } + + /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { + goto label_3ED; + } + + /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); + if (play->sceneId != SCENE_YADOYA) { + goto label_3DB; + } + + /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); + if ((6, 0) <= NOW <= (11, 0)) { + goto label_3D5; + } + + /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); + if ((11, 0) <= NOW <= (11, 25)) { + goto label_3CF; + } + + /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); + if ((11, 25) <= NOW <= (11, 30)) { + goto label_3C9; + } + + /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_3C3; + } + + /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); + if ((11, 50) <= NOW <= (12, 0)) { + goto label_3BD; + } + +label_3BC: + /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3BD: + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output->result = ANJU_SCH_27; + output->time0 = (11, 50); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_3C3: + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output->result = ANJU_SCH_35; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_3C9: + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output->result = ANJU_SCH_24; + output->time0 = (11, 25); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_3CF: + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output->result = ANJU_SCH_34; + output->time0 = (11, 0); + output->time1 = (11, 25); + output->hasResult = true; + return; + +label_3D5: + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output->result = ANJU_SCH_16; + output->time0 = (6, 0); + output->time1 = (11, 0); + output->hasResult = true; + return; + +label_3DB: + /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); + if (play->sceneId != SCENE_OMOYA) { + goto label_3EC; + } + + /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); + if ((18, 0) <= NOW <= (6, 0)) { + goto label_3E6; + } + +label_3E5: + /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3E6: + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); + output->result = ANJU_SCH_C; + output->time0 = (18, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + +label_3EC: + /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3ED: + /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); + if (play->sceneId != SCENE_YADOYA) { + goto label_446; + } + + /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); + if ((6, 0) <= NOW <= (11, 0)) { + goto label_440; + } + + /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); + if ((11, 0) <= NOW <= (11, 25)) { + goto label_43A; + } + + /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); + if ((11, 25) <= NOW <= (11, 30)) { + goto label_434; + } + + /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_42E; + } + + /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); + if ((11, 50) <= NOW <= (12, 0)) { + goto label_428; + } + + /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); + if ((18, 0) <= NOW <= (5, 0)) { + goto label_422; + } + + /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); + if ((5, 0) <= NOW <= (6, 0)) { + goto label_41C; + } + +label_41B: + /* 0x41B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_41C: + /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); + output->result = ANJU_SCH_1; + output->time0 = (5, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + +label_422: + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); + output->result = ANJU_SCH_1; + output->time0 = (18, 0); + output->time1 = (5, 0); + output->hasResult = true; + return; + +label_428: + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output->result = ANJU_SCH_27; + output->time0 = (11, 50); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_42E: + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output->result = ANJU_SCH_35; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_434: + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output->result = ANJU_SCH_24; + output->time0 = (11, 25); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_43A: + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output->result = ANJU_SCH_34; + output->time0 = (11, 0); + output->time1 = (11, 25); + output->hasResult = true; + return; + +label_440: + /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output->result = ANJU_SCH_16; + output->time0 = (6, 0); + output->time1 = (11, 0); + output->hasResult = true; + return; + +label_446: + /* 0x446 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_447: + /* 0x447 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + +} diff --git a/anju_schedule_ifs.c b/anju_schedule_ifs.c new file mode 100644 index 000000000..fae907d1b --- /dev/null +++ b/anju_schedule_ifs.c @@ -0,0 +1,1226 @@ +#include "global.h" + +#define NOW 0 + +typedef enum AnjuScheduleResult { + /* 0 */ ANJU_SCH_NONE, + /* 1 */ ANJU_SCH_1, + /* 2 */ ANJU_SCH_2, + /* 3 */ ANJU_SCH_3, + /* 4 */ ANJU_SCH_4, + /* 5 */ ANJU_SCH_5, + /* 6 */ ANJU_SCH_6, + /* 7 */ ANJU_SCH_7, + /* 8 */ ANJU_SCH_8, + /* 9 */ ANJU_SCH_9, + /* 10 */ ANJU_SCH_A, + /* 11 */ ANJU_SCH_B, + /* 12 */ ANJU_SCH_C, + /* 13 */ ANJU_SCH_D, + /* 14 */ ANJU_SCH_E, + /* 15 */ ANJU_SCH_F, + /* 16 */ ANJU_SCH_10, + /* 17 */ ANJU_SCH_11, + /* 18 */ ANJU_SCH_12, + /* 19 */ ANJU_SCH_13, + /* 20 */ ANJU_SCH_14, + /* 21 */ ANJU_SCH_15, + /* 22 */ ANJU_SCH_16, + /* 23 */ ANJU_SCH_17, + /* 24 */ ANJU_SCH_18, + /* 25 */ ANJU_SCH_19, + /* 26 */ ANJU_SCH_1A, + /* 27 */ ANJU_SCH_1B, + /* 28 */ ANJU_SCH_1C, + /* 29 */ ANJU_SCH_1D, + /* 30 */ ANJU_SCH_1E, + /* 31 */ ANJU_SCH_1F, + /* 32 */ ANJU_SCH_20, + /* 33 */ ANJU_SCH_21, + /* 34 */ ANJU_SCH_22, + /* 35 */ ANJU_SCH_23, + /* 36 */ ANJU_SCH_24, + /* 37 */ ANJU_SCH_25, + /* 38 */ ANJU_SCH_26, + /* 39 */ ANJU_SCH_27, + /* 40 */ ANJU_SCH_28, + /* 41 */ ANJU_SCH_29, + /* 42 */ ANJU_SCH_2A, + /* 43 */ ANJU_SCH_2B, + /* 44 */ ANJU_SCH_2C, + /* 45 */ ANJU_SCH_2D, + /* 46 */ ANJU_SCH_2E, + /* 47 */ ANJU_SCH_2F, + /* 48 */ ANJU_SCH_30, + /* 49 */ ANJU_SCH_31, + /* 50 */ ANJU_SCH_32, + /* 51 */ ANJU_SCH_33, + /* 52 */ ANJU_SCH_34, + /* 53 */ ANJU_SCH_35, + /* 54 */ ANJU_SCH_36, + /* 55 */ ANJU_SCH_37, + /* 56 */ ANJU_SCH_38, + /* 57 */ ANJU_SCH_39, + /* 58 */ ANJU_SCH_3A, + /* 59 */ ANJU_SCH_3B, + /* 60 */ ANJU_SCH_3C, + /* 61 */ ANJU_SCH_3D, + /* 62 */ ANJU_SCH_3E, + /* 63 */ ANJU_SCH_3F, + /* 64 */ ANJU_SCH_MAX +} AnjuScheduleResult; + +void scheduleScript(PlayState* play, ScheduleOutput* output) { + /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005); + if (gSaveContext.save.day == 1) { + + /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A); + if (play->sceneId == SCENE_YADOYA) { + + /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011); + if ((6, 0) <= NOW <= (10, 55)) { + /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (6, 0); + output->time1 = (10, 55); + output->hasResult = true; + return; + } + + /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018); + if ((10, 55) <= NOW <= (11, 10)) { + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); + output->result = ANJU_SCH_28; + output->time0 = (10, 55); + output->time1 = (11, 10); + output->hasResult = true; + return; + } + /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F); + if ((11, 10) <= NOW <= (11, 30)) { + /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); + output->result = ANJU_SCH_E; + output->time0 = (11, 10); + output->time1 = (11, 30); + output->hasResult = true; + return; + } + /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026); + if ((11, 30) <= NOW <= (11, 50)) { + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); + output->result = ANJU_SCH_2A; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + } + /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D); + if ((11, 50) <= NOW <= (11, 55)) { + /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); + output->result = ANJU_SCH_1A; + output->time0 = (11, 50); + output->time1 = (11, 55); + output->hasResult = true; + return; + } + /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034); + if ((11, 55) <= NOW <= (12, 0)) { + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); + output->result = ANJU_SCH_2B; + output->time0 = (11, 55); + output->time1 = (12, 0); + output->hasResult = true; + return; + } + /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B); + if ((12, 0) <= NOW <= (12, 15)) { + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); + output->result = ANJU_SCH_15; + output->time0 = (12, 0); + output->time1 = (12, 15); + output->hasResult = true; + return; + } + /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042); + if ((12, 15) <= NOW <= (12, 20)) { + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); + output->result = ANJU_SCH_2C; + output->time0 = (12, 15); + output->time1 = (12, 20); + output->hasResult = true; + return; + } + /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049); + if ((12, 20) <= NOW <= (12, 25)) { + /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); + output->result = ANJU_SCH_1B; + output->time0 = (12, 20); + output->time1 = (12, 25); + output->hasResult = true; + return; + } + /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050); + if ((12, 25) <= NOW <= (12, 55)) { + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); + output->result = ANJU_SCH_2D; + output->time0 = (12, 25); + output->time1 = (12, 55); + output->hasResult = true; + return; + } + /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057); + if ((12, 55) <= NOW <= (13, 0)) { + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); + output->result = ANJU_SCH_1C; + output->time0 = (12, 55); + output->time1 = (13, 0); + output->hasResult = true; + return; + } + /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E); + if ((13, 15) <= NOW <= (13, 20)) { + /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); + output->result = ANJU_SCH_1D; + output->time0 = (13, 15); + output->time1 = (13, 20); + output->hasResult = true; + return; + } + /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065); + if ((13, 20) <= NOW <= (13, 50)) { + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); + output->result = ANJU_SCH_2E; + output->time0 = (13, 20); + output->time1 = (13, 50); + output->hasResult = true; + return; + } + /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C); + if ((13, 50) <= NOW <= (14, 8)) { + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (13, 50); + output->time1 = (14, 8); + output->hasResult = true; + return; + } + /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073); + if ((14, 8) <= NOW <= (14, 18)) { + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10); + output->result = ANJU_SCH_10; + output->time0 = (14, 8); + output->time1 = (14, 18); + output->hasResult = true; + return; + } + /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079); + if ((14, 18) <= NOW <= (16, 10)) { + /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (14, 18); + output->time1 = (16, 10); + output->hasResult = true; + return; + } + /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F); + if ((16, 10) <= NOW <= (16, 30)) { + /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11); + output->result = ANJU_SCH_11; + output->time0 = (16, 10); + output->time1 = (16, 30); + output->hasResult = true; + return; + } + /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085); + if ((16, 30) <= NOW <= (19, 50)) { + /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (16, 30); + output->time1 = (19, 50); + output->hasResult = true; + return; + } + /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B); + if ((19, 50) <= NOW <= (20, 20)) { + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + } + + /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091); + if ((20, 20) <= NOW <= (20, 30)) { + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + + } + + /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097); + if ((20, 30) <= NOW <= (21, 5)) { + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 5); + output->hasResult = true; + return; + } + + /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D); + if ((21, 5) <= NOW <= (21, 10)) { + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 5); + output->time1 = (21, 10); + output->hasResult = true; + return; + + } + + /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8); + if ((23, 10) <= NOW <= (23, 15)) { + + /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F); + output->result = ANJU_SCH_1F; + output->time0 = (23, 10); + output->time1 = (23, 15); + output->hasResult = true; + return; + + } + + /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE); + if ((23, 15) <= NOW <= (0, 0)) { + + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31); + output->result = ANJU_SCH_31; + output->time0 = (23, 15); + output->time1 = (0, 0); + output->hasResult = true; + return; + + } + + /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4); + if (!((0, 0) <= NOW <= (6, 0))) { + /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); + output->result = ANJU_SCH_17; + output->time0 = (0, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + + } + + /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + } else { + goto label_150; + } + + label_150: + /* 0x150 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + } else { + + goto label_151; + } + +label_151: + /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156); + if (gSaveContext.save.day != 2) { + goto label_391; + } + + /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + goto label_29E; + } + + /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); + if (play->sceneId != SCENE_YADOYA) { + goto label_1F2; + } + + /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); + if ((11, 3) <= NOW <= (11, 9)) { + goto label_1EC; + } + + /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); + if ((11, 9) <= NOW <= (11, 29)) { + goto label_1E6; + } + + /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); + if ((11, 29) <= NOW <= (11, 39)) { + goto label_1E0; + } + + /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); + if ((17, 24) <= NOW <= (17, 30)) { + goto label_1DA; + } + + /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); + if ((17, 30) <= NOW <= (17, 55)) { + goto label_1D4; + } + + /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); + if ((17, 55) <= NOW <= (18, 0)) { + goto label_1CE; + } + + /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); + if ((18, 0) <= NOW <= (19, 50)) { + goto label_1C8; + } + + /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); + if ((19, 50) <= NOW <= (20, 20)) { + goto label_1C2; + } + + /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); + if ((20, 20) <= NOW <= (20, 30)) { + goto label_1BC; + } + + /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); + if ((20, 30) <= NOW <= (21, 0)) { + goto label_1B6; + } + + /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); + if ((21, 0) <= NOW <= (21, 5)) { + goto label_1B0; + } + + /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); + if ((21, 30) <= NOW <= (23, 0)) { + goto label_1AA; + } + +label_1A9: + /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_1AA: + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output->result = ANJU_SCH_18; + output->time0 = (21, 30); + output->time1 = (23, 0); + output->hasResult = true; + return; + +label_1B0: + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 0); + output->time1 = (21, 5); + output->hasResult = true; + return; + +label_1B6: + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 0); + output->hasResult = true; + return; + +label_1BC: + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + +label_1C2: + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + +label_1C8: + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (18, 0); + output->time1 = (19, 50); + output->hasResult = true; + return; + +label_1CE: + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); + output->result = ANJU_SCH_23; + output->time0 = (17, 55); + output->time1 = (18, 0); + output->hasResult = true; + return; + +label_1D4: + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); + output->result = ANJU_SCH_33; + output->time0 = (17, 30); + output->time1 = (17, 55); + output->hasResult = true; + return; + +label_1DA: + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); + output->result = ANJU_SCH_22; + output->time0 = (17, 24); + output->time1 = (17, 30); + output->hasResult = true; + return; + +label_1E0: + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); + output->result = ANJU_SCH_21; + output->time0 = (11, 29); + output->time1 = (11, 39); + output->hasResult = true; + return; + +label_1E6: + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); + output->result = ANJU_SCH_32; + output->time0 = (11, 9); + output->time1 = (11, 29); + output->hasResult = true; + return; + +label_1EC: + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); + output->result = ANJU_SCH_20; + output->time0 = (11, 3); + output->time1 = (11, 9); + output->hasResult = true; + return; + +label_1F2: + /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); + if (play->sceneId != SCENE_TOWN) { + goto label_23F; + } + + /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); + if ((11, 29) <= NOW <= (11, 39)) { + goto label_239; + } + + /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); + if ((11, 39) <= NOW <= (12, 25)) { + goto label_233; + } + + /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); + if ((12, 25) <= NOW <= (13, 15)) { + goto label_22D; + } + + /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); + if ((15, 55) <= NOW <= (16, 45)) { + goto label_227; + } + + /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); + if ((16, 45) <= NOW <= (17, 24)) { + goto label_221; + } + + /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); + if ((17, 24) <= NOW <= (17, 30)) { + goto label_21B; + } + +label_21A: + /* 0x21A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_21B: + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); + output->result = ANJU_SCH_26; + output->time0 = (17, 24); + output->time1 = (17, 30); + output->hasResult = true; + return; + +label_221: + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); + output->result = ANJU_SCH_3B; + output->time0 = (16, 45); + output->time1 = (17, 24); + output->hasResult = true; + return; + +label_227: + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); + output->result = ANJU_SCH_3A; + output->time0 = (15, 55); + output->time1 = (16, 45); + output->hasResult = true; + return; + +label_22D: + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); + output->result = ANJU_SCH_37; + output->time0 = (12, 25); + output->time1 = (13, 15); + output->hasResult = true; + return; + +label_233: + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); + output->result = ANJU_SCH_36; + output->time0 = (11, 39); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_239: + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); + output->result = ANJU_SCH_25; + output->time0 = (11, 29); + output->time1 = (11, 39); + output->hasResult = true; + return; + +label_23F: + /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); + if (play->sceneId != SCENE_CLOCKTOWER) { + goto label_274; + } + + /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); + if ((11, 39) <= NOW <= (12, 25)) { + goto label_26E; + } + + /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); + if ((12, 25) <= NOW <= (13, 15)) { + goto label_268; + } + + /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); + if ((15, 55) <= NOW <= (16, 45)) { + goto label_262; + } + + /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); + if ((16, 45) <= NOW <= (17, 24)) { + goto label_25C; + } + +label_25B: + /* 0x25B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_25C: + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); + output->result = ANJU_SCH_3F; + output->time0 = (16, 45); + output->time1 = (17, 24); + output->hasResult = true; + return; + +label_262: + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); + output->result = ANJU_SCH_3E; + output->time0 = (15, 55); + output->time1 = (16, 45); + output->hasResult = true; + return; + +label_268: + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); + output->result = ANJU_SCH_3D; + output->time0 = (12, 25); + output->time1 = (13, 15); + output->hasResult = true; + return; + +label_26E: + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); + output->result = ANJU_SCH_3C; + output->time0 = (11, 39); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_274: + /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); + if (play->sceneId != SCENE_ALLEY) { + goto label_29D; + } + + /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); + if ((13, 15) <= NOW <= (13, 45)) { + goto label_297; + } + + /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); + if ((13, 45) <= NOW <= (15, 25)) { + goto label_291; + } + + /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); + if ((15, 25) <= NOW <= (15, 55)) { + goto label_28B; + } + +label_28A: + /* 0x28A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_28B: + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); + output->result = ANJU_SCH_39; + output->time0 = (15, 25); + output->time1 = (15, 55); + output->hasResult = true; + return; + +label_291: + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); + output->result = ANJU_SCH_3; + output->time0 = (13, 45); + output->time1 = (15, 25); + output->hasResult = true; + return; + +label_297: + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); + output->result = ANJU_SCH_38; + output->time0 = (13, 15); + output->time1 = (13, 45); + output->hasResult = true; + return; + +label_29D: + /* 0x29D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_29E: + /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); + if (play->sceneId != SCENE_YADOYA) { + goto label_390; + } + + /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); + if ((6, 0) <= NOW <= (10, 55)) { + goto label_38A; + } + + /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); + if ((10, 55) <= NOW <= (11, 10)) { + goto label_384; + } + + /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); + if ((11, 10) <= NOW <= (11, 30)) { + goto label_37E; + } + + /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_378; + } + + /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); + if ((11, 50) <= NOW <= (11, 55)) { + goto label_372; + } + + /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); + if ((11, 55) <= NOW <= (12, 0)) { + goto label_36C; + } + + /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); + if ((12, 0) <= NOW <= (12, 15)) { + goto label_366; + } + + /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); + if ((12, 15) <= NOW <= (12, 20)) { + goto label_360; + } + + /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); + if ((12, 20) <= NOW <= (12, 25)) { + goto label_35A; + } + + /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); + if ((12, 25) <= NOW <= (12, 55)) { + goto label_354; + } + + /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); + if ((12, 55) <= NOW <= (13, 0)) { + goto label_34E; + } + + /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); + if ((13, 15) <= NOW <= (13, 20)) { + goto label_348; + } + + /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); + if ((13, 20) <= NOW <= (13, 50)) { + goto label_342; + } + + /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); + if ((13, 50) <= NOW <= (19, 50)) { + goto label_33C; + } + + /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); + if ((19, 50) <= NOW <= (20, 20)) { + goto label_336; + } + + /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); + if ((20, 20) <= NOW <= (20, 30)) { + goto label_330; + } + + /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); + if ((20, 30) <= NOW <= (21, 5)) { + goto label_32A; + } + + /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); + if ((21, 5) <= NOW <= (21, 10)) { + goto label_324; + } + + /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); + if ((21, 30) <= NOW <= (23, 0)) { + goto label_31E; + } + +label_31D: + /* 0x31D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_31E: + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output->result = ANJU_SCH_18; + output->time0 = (21, 30); + output->time1 = (23, 0); + output->hasResult = true; + return; + +label_324: + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); + output->result = ANJU_SCH_1E; + output->time0 = (21, 5); + output->time1 = (21, 10); + output->hasResult = true; + return; + +label_32A: + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); + output->result = ANJU_SCH_30; + output->time0 = (20, 30); + output->time1 = (21, 5); + output->hasResult = true; + return; + +label_330: + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output->result = ANJU_SCH_13; + output->time0 = (20, 20); + output->time1 = (20, 30); + output->hasResult = true; + return; + +label_336: + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output->result = ANJU_SCH_2F; + output->time0 = (19, 50); + output->time1 = (20, 20); + output->hasResult = true; + return; + +label_33C: + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (13, 50); + output->time1 = (19, 50); + output->hasResult = true; + return; + +label_342: + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); + output->result = ANJU_SCH_2E; + output->time0 = (13, 20); + output->time1 = (13, 50); + output->hasResult = true; + return; + +label_348: + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); + output->result = ANJU_SCH_1D; + output->time0 = (13, 15); + output->time1 = (13, 20); + output->hasResult = true; + return; + +label_34E: + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); + output->result = ANJU_SCH_1C; + output->time0 = (12, 55); + output->time1 = (13, 0); + output->hasResult = true; + return; + +label_354: + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); + output->result = ANJU_SCH_2D; + output->time0 = (12, 25); + output->time1 = (12, 55); + output->hasResult = true; + return; + +label_35A: + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); + output->result = ANJU_SCH_1B; + output->time0 = (12, 20); + output->time1 = (12, 25); + output->hasResult = true; + return; + +label_360: + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); + output->result = ANJU_SCH_2C; + output->time0 = (12, 15); + output->time1 = (12, 20); + output->hasResult = true; + return; + +label_366: + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); + output->result = ANJU_SCH_15; + output->time0 = (12, 0); + output->time1 = (12, 15); + output->hasResult = true; + return; + +label_36C: + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); + output->result = ANJU_SCH_2B; + output->time0 = (11, 55); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_372: + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); + output->result = ANJU_SCH_1A; + output->time0 = (11, 50); + output->time1 = (11, 55); + output->hasResult = true; + return; + +label_378: + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); + output->result = ANJU_SCH_2A; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_37E: + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); + output->result = ANJU_SCH_E; + output->time0 = (11, 10); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_384: + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); + output->result = ANJU_SCH_28; + output->time0 = (10, 55); + output->time1 = (11, 10); + output->hasResult = true; + return; + +label_38A: + /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); + output->result = ANJU_SCH_12; + output->time0 = (6, 0); + output->time1 = (10, 55); + output->hasResult = true; + return; + +label_390: + /* 0x390 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_391: + /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396); + if (gSaveContext.save.day != 3) { + goto label_447; + } + + /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { + goto label_3ED; + } + + /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); + if (play->sceneId != SCENE_YADOYA) { + goto label_3DB; + } + + /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); + if ((6, 0) <= NOW <= (11, 0)) { + goto label_3D5; + } + + /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); + if ((11, 0) <= NOW <= (11, 25)) { + goto label_3CF; + } + + /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); + if ((11, 25) <= NOW <= (11, 30)) { + goto label_3C9; + } + + /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_3C3; + } + + /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); + if ((11, 50) <= NOW <= (12, 0)) { + goto label_3BD; + } + +label_3BC: + /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3BD: + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output->result = ANJU_SCH_27; + output->time0 = (11, 50); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_3C3: + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output->result = ANJU_SCH_35; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_3C9: + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output->result = ANJU_SCH_24; + output->time0 = (11, 25); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_3CF: + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output->result = ANJU_SCH_34; + output->time0 = (11, 0); + output->time1 = (11, 25); + output->hasResult = true; + return; + +label_3D5: + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output->result = ANJU_SCH_16; + output->time0 = (6, 0); + output->time1 = (11, 0); + output->hasResult = true; + return; + +label_3DB: + /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); + if (play->sceneId != SCENE_OMOYA) { + goto label_3EC; + } + + /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); + if ((18, 0) <= NOW <= (6, 0)) { + goto label_3E6; + } + +label_3E5: + /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3E6: + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); + output->result = ANJU_SCH_C; + output->time0 = (18, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + +label_3EC: + /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_3ED: + /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); + if (play->sceneId != SCENE_YADOYA) { + goto label_446; + } + + /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); + if ((6, 0) <= NOW <= (11, 0)) { + goto label_440; + } + + /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); + if ((11, 0) <= NOW <= (11, 25)) { + goto label_43A; + } + + /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); + if ((11, 25) <= NOW <= (11, 30)) { + goto label_434; + } + + /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); + if ((11, 30) <= NOW <= (11, 50)) { + goto label_42E; + } + + /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); + if ((11, 50) <= NOW <= (12, 0)) { + goto label_428; + } + + /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); + if ((18, 0) <= NOW <= (5, 0)) { + goto label_422; + } + + /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); + if ((5, 0) <= NOW <= (6, 0)) { + goto label_41C; + } + +label_41B: + /* 0x41B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_41C: + /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); + output->result = ANJU_SCH_1; + output->time0 = (5, 0); + output->time1 = (6, 0); + output->hasResult = true; + return; + +label_422: + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); + output->result = ANJU_SCH_1; + output->time0 = (18, 0); + output->time1 = (5, 0); + output->hasResult = true; + return; + +label_428: + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output->result = ANJU_SCH_27; + output->time0 = (11, 50); + output->time1 = (12, 0); + output->hasResult = true; + return; + +label_42E: + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output->result = ANJU_SCH_35; + output->time0 = (11, 30); + output->time1 = (11, 50); + output->hasResult = true; + return; + +label_434: + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output->result = ANJU_SCH_24; + output->time0 = (11, 25); + output->time1 = (11, 30); + output->hasResult = true; + return; + +label_43A: + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output->result = ANJU_SCH_34; + output->time0 = (11, 0); + output->time1 = (11, 25); + output->hasResult = true; + return; + +label_440: + /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output->result = ANJU_SCH_16; + output->time0 = (6, 0); + output->time1 = (11, 0); + output->hasResult = true; + return; + +label_446: + /* 0x446 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + +label_447: + /* 0x447 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + +} diff --git a/src/code/z_schedule.c b/src/code/z_schedule.c index fdefb0f42..b05e6ba95 100644 --- a/src/code/z_schedule.c +++ b/src/code/z_schedule.c @@ -240,11 +240,25 @@ s32 Schedule_BranchL(PlayState* play, u8** script, ScheduleOutput* output) { } static s32 (*sScheduleCmdFuncs[])(PlayState*, u8**, ScheduleOutput*) = { - Schedule_CheckFlagS, Schedule_CheckFlagL, Schedule_CheckTimeRangeS, Schedule_CheckTimeRangeL, - Schedule_ReturnValueL, Schedule_ReturnNone, Schedule_ReturnEmpty, Schedule_Nop, - Schedule_CheckMiscS, Schedule_ReturnValueS, Schedule_CheckNotInSceneS, Schedule_CheckNotInSceneL, - Schedule_CheckNotInDayS, Schedule_CheckNotInDayL, Schedule_ReturnTime, Schedule_CheckBeforeTimeS, - Schedule_CheckBeforeTimeL, Schedule_BranchS, Schedule_BranchL, + Schedule_CheckFlagS, // SCHEDULE_CMD_ID_CHECK_FLAG_S + Schedule_CheckFlagL, // SCHEDULE_CMD_ID_CHECK_FLAG_L + Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S + Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L + Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L + Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE + Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY + Schedule_Nop, // SCHEDULE_CMD_ID_NOP + Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S + Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S + Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S + Schedule_CheckNotInSceneL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L + Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S + Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L + Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME + Schedule_CheckBeforeTimeS, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S + Schedule_CheckBeforeTimeL, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L + Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S + Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L }; static u8 sScheduleCmdSizes[] = { 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 2290276eb..eb40c2823 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -127,7 +127,7 @@ static u8 sScheduleScript[] = { /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4), /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(), /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, 23), + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F), From c7aea562fd46b666da0402770c2b355df12fb844 Mon Sep 17 00:00:00 2001 From: Angie Date: Tue, 10 Oct 2023 21:59:26 -0300 Subject: [PATCH 33/78] convert schedule to ifs --- anju_schedule_ifs.c | 1505 +++++++++++++++---------------------------- 1 file changed, 513 insertions(+), 992 deletions(-) diff --git a/anju_schedule_ifs.c b/anju_schedule_ifs.c index fae907d1b..ed96da232 100644 --- a/anju_schedule_ifs.c +++ b/anju_schedule_ifs.c @@ -73,190 +73,128 @@ typedef enum AnjuScheduleResult { void scheduleScript(PlayState* play, ScheduleOutput* output) { /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005); if (gSaveContext.save.day == 1) { - /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A); if (play->sceneId == SCENE_YADOYA) { - /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011); if ((6, 0) <= NOW <= (10, 55)) { /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (6, 0); - output->time1 = (10, 55); - output->hasResult = true; + output = ANJU_SCH_12, (6, 0), (10, 55); return; } /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018); if ((10, 55) <= NOW <= (11, 10)) { /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output->result = ANJU_SCH_28; - output->time0 = (10, 55); - output->time1 = (11, 10); - output->hasResult = true; + output = ANJU_SCH_28, (10, 55), (11, 10); return; } /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F); if ((11, 10) <= NOW <= (11, 30)) { /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output->result = ANJU_SCH_E; - output->time0 = (11, 10); - output->time1 = (11, 30); - output->hasResult = true; + output = ANJU_SCH_E, (11, 10), (11, 30); return; } /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026); if ((11, 30) <= NOW <= (11, 50)) { /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output->result = ANJU_SCH_2A; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; + output = ANJU_SCH_2A, (11, 30), (11, 50); return; } /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D); if ((11, 50) <= NOW <= (11, 55)) { /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output->result = ANJU_SCH_1A; - output->time0 = (11, 50); - output->time1 = (11, 55); - output->hasResult = true; + output = ANJU_SCH_1A, (11, 50), (11, 55); return; } /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034); if ((11, 55) <= NOW <= (12, 0)) { /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output->result = ANJU_SCH_2B; - output->time0 = (11, 55); - output->time1 = (12, 0); - output->hasResult = true; + output = ANJU_SCH_2B, (11, 55), (12, 0); return; } /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B); if ((12, 0) <= NOW <= (12, 15)) { /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output->result = ANJU_SCH_15; - output->time0 = (12, 0); - output->time1 = (12, 15); - output->hasResult = true; + output = ANJU_SCH_15, (12, 0), (12, 15); return; } /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042); if ((12, 15) <= NOW <= (12, 20)) { /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output->result = ANJU_SCH_2C; - output->time0 = (12, 15); - output->time1 = (12, 20); - output->hasResult = true; + output = ANJU_SCH_2C, (12, 15), (12, 20); return; } /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049); if ((12, 20) <= NOW <= (12, 25)) { /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output->result = ANJU_SCH_1B; - output->time0 = (12, 20); - output->time1 = (12, 25); - output->hasResult = true; + output = ANJU_SCH_1B, (12, 20), (12, 25); return; } /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050); if ((12, 25) <= NOW <= (12, 55)) { /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output->result = ANJU_SCH_2D; - output->time0 = (12, 25); - output->time1 = (12, 55); - output->hasResult = true; + output = ANJU_SCH_2D, (12, 25), (12, 55); return; } /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057); if ((12, 55) <= NOW <= (13, 0)) { /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output->result = ANJU_SCH_1C; - output->time0 = (12, 55); - output->time1 = (13, 0); - output->hasResult = true; + output = ANJU_SCH_1C, (12, 55), (13, 0); return; } /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E); if ((13, 15) <= NOW <= (13, 20)) { /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output->result = ANJU_SCH_1D; - output->time0 = (13, 15); - output->time1 = (13, 20); - output->hasResult = true; + output = ANJU_SCH_1D, (13, 15), (13, 20); return; } /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065); if ((13, 20) <= NOW <= (13, 50)) { /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output->result = ANJU_SCH_2E; - output->time0 = (13, 20); - output->time1 = (13, 50); - output->hasResult = true; + output = ANJU_SCH_2E, (13, 20), (13, 50); return; } /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C); if ((13, 50) <= NOW <= (14, 8)) { /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (13, 50); - output->time1 = (14, 8); - output->hasResult = true; + output = ANJU_SCH_12, (13, 50), (14, 8); return; } /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073); if ((14, 8) <= NOW <= (14, 18)) { /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10); - output->result = ANJU_SCH_10; - output->time0 = (14, 8); - output->time1 = (14, 18); - output->hasResult = true; + output = ANJU_SCH_10, (14, 8), (14, 18); return; } /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079); if ((14, 18) <= NOW <= (16, 10)) { /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (14, 18); - output->time1 = (16, 10); - output->hasResult = true; + output = ANJU_SCH_12, (14, 18), (16, 10); return; } /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F); if ((16, 10) <= NOW <= (16, 30)) { /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11); - output->result = ANJU_SCH_11; - output->time0 = (16, 10); - output->time1 = (16, 30); - output->hasResult = true; + output = ANJU_SCH_11, (16, 10), (16, 30); return; } /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085); if ((16, 30) <= NOW <= (19, 50)) { /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (16, 30); - output->time1 = (19, 50); - output->hasResult = true; + output = ANJU_SCH_12, (16, 30), (19, 50); return; } /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B); if ((19, 50) <= NOW <= (20, 20)) { /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; + output = ANJU_SCH_2F, (19, 50), (20, 20); return; } /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091); if ((20, 20) <= NOW <= (20, 30)) { /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; + output = ANJU_SCH_13, (20, 20), (20, 30); return; } @@ -264,963 +202,546 @@ void scheduleScript(PlayState* play, ScheduleOutput* output) { /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097); if ((20, 30) <= NOW <= (21, 5)) { /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 5); - output->hasResult = true; + output = ANJU_SCH_30, (20, 30), (21, 5); return; } /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D); if ((21, 5) <= NOW <= (21, 10)) { /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 5); - output->time1 = (21, 10); - output->hasResult = true; + output = ANJU_SCH_1E, (21, 5), (21, 10); return; - } /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1); if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8); if ((23, 10) <= NOW <= (23, 15)) { - /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F); - output->result = ANJU_SCH_1F; - output->time0 = (23, 10); - output->time1 = (23, 15); - output->hasResult = true; + output = ANJU_SCH_1F, (23, 10), (23, 15); return; - } /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE); if ((23, 15) <= NOW <= (0, 0)) { - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31); - output->result = ANJU_SCH_31; - output->time0 = (23, 15); - output->time1 = (0, 0); - output->hasResult = true; + output = ANJU_SCH_31, (23, 15), (0, 0); return; - } /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4); - if (!((0, 0) <= NOW <= (6, 0))) { - /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; + if ((0, 0) <= NOW <= (6, 0)) { + /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); + output = ANJU_SCH_17, (0, 0), (6, 0); return; } - /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); - output->result = ANJU_SCH_17; - output->time0 = (0, 0); - output->time1 = (6, 0); - output->hasResult = true; + /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; return; - } /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(); output->hasResult = false; return; - - } else { - goto label_150; } - label_150: /* 0x150 */ SCHEDULE_CMD_RET_NONE(); output->hasResult = false; return; - - } else { - - goto label_151; } -label_151: /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156); - if (gSaveContext.save.day != 2) { - goto label_391; + if (gSaveContext.save.day == 2) { + /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); + if (play->sceneId == SCENE_YADOYA) { + /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); + if ((11, 3) <= NOW <= (11, 9)) { + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); + output = ANJU_SCH_20, (11, 3), (11, 9); + return; + } + + /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); + if ((11, 9) <= NOW <= (11, 29)) { + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); + output = ANJU_SCH_32, (11, 9), (11, 29); + return; + } + + /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); + if ((11, 29) <= NOW <= (11, 39)) { + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); + output = ANJU_SCH_21, (11, 29), (11, 39); + return; + } + + /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); + if ((17, 24) <= NOW <= (17, 30)) { + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); + output = ANJU_SCH_22, (17, 24), (17, 30); + return; + } + + /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); + if ((17, 30) <= NOW <= (17, 55)) { + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); + output = ANJU_SCH_33, (17, 30), (17, 55); + return; + } + + /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); + if ((17, 55) <= NOW <= (18, 0)) { + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); + output = ANJU_SCH_23, (17, 55), (18, 0); + return; + } + + /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); + if ((18, 0) <= NOW <= (19, 50)) { + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); + output = ANJU_SCH_12, (18, 0), (19, 50); + return; + } + + /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); + if ((19, 50) <= NOW <= (20, 20)) { + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output = ANJU_SCH_2F, (19, 50), (20, 20); + return; + } + + /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); + if ((20, 20) <= NOW <= (20, 30)) { + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output = ANJU_SCH_13, (20, 20), (20, 30); + return; + } + + /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); + if ((20, 30) <= NOW <= (21, 0)) { + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); + output = ANJU_SCH_30, (20, 30), (21, 0); + return; + } + + /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); + if ((21, 0) <= NOW <= (21, 5)) { + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); + output = ANJU_SCH_1E, (21, 0), (21, 5); + return; + } + + /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); + if ((21, 30) <= NOW <= (23, 0)) { + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output = ANJU_SCH_18, (21, 30), (23, 0); + return; + } + + /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); + if (play->sceneId == SCENE_TOWN) { + /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); + if ((11, 29) <= NOW <= (11, 39)) { + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); + output = ANJU_SCH_25, (11, 29), (11, 39); + return; + } + + /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); + if ((11, 39) <= NOW <= (12, 25)) { + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); + output = ANJU_SCH_36, (11, 39), (12, 25); + return; + } + + /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); + if ((12, 25) <= NOW <= (13, 15)) { + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); + output = ANJU_SCH_37, (12, 25), (13, 15); + return; + } + + /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); + if ((15, 55) <= NOW <= (16, 45)) { + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); + output = ANJU_SCH_3A, (15, 55), (16, 45); + return; + } + + /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); + if ((16, 45) <= NOW <= (17, 24)) { + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); + output = ANJU_SCH_3B, (16, 45), (17, 24); + return; + } + + /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); + if ((17, 24) <= NOW <= (17, 30)) { + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); + output = ANJU_SCH_26, (17, 24), (17, 30); + return; + } + + /* 0x21A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); + if (play->sceneId == SCENE_CLOCKTOWER) { + /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); + if ((11, 39) <= NOW <= (12, 25)) { + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); + output = ANJU_SCH_3C, (11, 39), (12, 25); + return; + } + + /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); + if ((12, 25) <= NOW <= (13, 15)) { + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); + output = ANJU_SCH_3D, (12, 25), (13, 15); + return; + } + + /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); + if ((15, 55) <= NOW <= (16, 45)) { + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); + output = ANJU_SCH_3E, (15, 55), (16, 45); + return; + } + + /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); + if ((16, 45) <= NOW <= (17, 24)) { + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); + output = ANJU_SCH_3F, (16, 45), (17, 24); + return; + } + + /* 0x25B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); + if (play->sceneId != SCENE_ALLEY) { + /* 0x29D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); + if ((13, 15) <= NOW <= (13, 45)) { + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); + output = ANJU_SCH_38, (13, 15), (13, 45); + return; + } + + /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); + if ((13, 45) <= NOW <= (15, 25)) { + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); + output = ANJU_SCH_3, (13, 45), (15, 25); + return; + } + + /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); + if ((15, 25) <= NOW <= (15, 55)) { + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); + output = ANJU_SCH_39, (15, 25), (15, 55); + return; + } + + /* 0x28A */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); + if (play->sceneId != SCENE_YADOYA) { + /* 0x390 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); + if ((6, 0) <= NOW <= (10, 55)) { + /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); + output = ANJU_SCH_12, (6, 0), (10, 55); + return; + } + + /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); + if ((10, 55) <= NOW <= (11, 10)) { + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); + output = ANJU_SCH_28, (10, 55), (11, 10); + return; + } + + /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); + if ((11, 10) <= NOW <= (11, 30)) { + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); + output = ANJU_SCH_E, (11, 10), (11, 30); + return; + } + + /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); + if ((11, 30) <= NOW <= (11, 50)) { + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); + output = ANJU_SCH_2A, (11, 30), (11, 50); + return; + } + + /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); + if ((11, 50) <= NOW <= (11, 55)) { + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); + output = ANJU_SCH_1A, (11, 50), (11, 55); + return; + } + + /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); + if ((11, 55) <= NOW <= (12, 0)) { + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); + output = ANJU_SCH_2B, (11, 55), (12, 0); + return; + } + + /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); + if ((12, 0) <= NOW <= (12, 15)) { + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); + output = ANJU_SCH_15, (12, 0), (12, 15); + return; + } + + /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); + if ((12, 15) <= NOW <= (12, 20)) { + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); + output = ANJU_SCH_2C, (12, 15), (12, 20); + return; + } + + /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); + if ((12, 20) <= NOW <= (12, 25)) { + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); + output = ANJU_SCH_1B, (12, 20), (12, 25); + return; + } + + /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); + if ((12, 25) <= NOW <= (12, 55)) { + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); + output = ANJU_SCH_2D, (12, 25), (12, 55); + return; + } + + /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); + if ((12, 55) <= NOW <= (13, 0)) { + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); + output = ANJU_SCH_1C, (12, 55), (13, 0); + return; + } + + /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); + if ((13, 15) <= NOW <= (13, 20)) { + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); + output = ANJU_SCH_1D, (13, 15), (13, 20); + return; + } + + /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); + if ((13, 20) <= NOW <= (13, 50)) { + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); + output = ANJU_SCH_2E, (13, 20), (13, 50); + return; + } + + /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); + if ((13, 50) <= NOW <= (19, 50)) { + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); + output = ANJU_SCH_12, (13, 50), (19, 50); + return; + } + + /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); + if ((19, 50) <= NOW <= (20, 20)) { + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); + output = ANJU_SCH_2F, (19, 50), (20, 20); + return; + } + + /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); + if ((20, 20) <= NOW <= (20, 30)) { + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); + output = ANJU_SCH_13, (20, 20), (20, 30); + return; + } + + /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); + if ((20, 30) <= NOW <= (21, 5)) { + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); + output = ANJU_SCH_30, (20, 30), (21, 5); + return; + } + + /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); + if ((21, 5) <= NOW <= (21, 10)) { + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); + output = ANJU_SCH_1E, (21, 5), (21, 10); + return; + } + + /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); + if ((21, 30) <= NOW <= (23, 0)) { + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); + output = ANJU_SCH_18, (21, 30), (23, 0); + return; + } + + /* 0x31D */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; } - /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - goto label_29E; - } - - /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); - if (play->sceneId != SCENE_YADOYA) { - goto label_1F2; - } - - /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); - if ((11, 3) <= NOW <= (11, 9)) { - goto label_1EC; - } - - /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); - if ((11, 9) <= NOW <= (11, 29)) { - goto label_1E6; - } - - /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); - if ((11, 29) <= NOW <= (11, 39)) { - goto label_1E0; - } - - /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); - if ((17, 24) <= NOW <= (17, 30)) { - goto label_1DA; - } - - /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); - if ((17, 30) <= NOW <= (17, 55)) { - goto label_1D4; - } - - /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); - if ((17, 55) <= NOW <= (18, 0)) { - goto label_1CE; - } - - /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); - if ((18, 0) <= NOW <= (19, 50)) { - goto label_1C8; - } - - /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); - if ((19, 50) <= NOW <= (20, 20)) { - goto label_1C2; - } - - /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); - if ((20, 20) <= NOW <= (20, 30)) { - goto label_1BC; - } - - /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); - if ((20, 30) <= NOW <= (21, 0)) { - goto label_1B6; - } - - /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); - if ((21, 0) <= NOW <= (21, 5)) { - goto label_1B0; - } - - /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); - if ((21, 30) <= NOW <= (23, 0)) { - goto label_1AA; - } - -label_1A9: - /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_1AA: - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output->result = ANJU_SCH_18; - output->time0 = (21, 30); - output->time1 = (23, 0); - output->hasResult = true; - return; - -label_1B0: - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 0); - output->time1 = (21, 5); - output->hasResult = true; - return; - -label_1B6: - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 0); - output->hasResult = true; - return; - -label_1BC: - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; - return; - -label_1C2: - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; - return; - -label_1C8: - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (18, 0); - output->time1 = (19, 50); - output->hasResult = true; - return; - -label_1CE: - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); - output->result = ANJU_SCH_23; - output->time0 = (17, 55); - output->time1 = (18, 0); - output->hasResult = true; - return; - -label_1D4: - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); - output->result = ANJU_SCH_33; - output->time0 = (17, 30); - output->time1 = (17, 55); - output->hasResult = true; - return; - -label_1DA: - /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); - output->result = ANJU_SCH_22; - output->time0 = (17, 24); - output->time1 = (17, 30); - output->hasResult = true; - return; - -label_1E0: - /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); - output->result = ANJU_SCH_21; - output->time0 = (11, 29); - output->time1 = (11, 39); - output->hasResult = true; - return; - -label_1E6: - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); - output->result = ANJU_SCH_32; - output->time0 = (11, 9); - output->time1 = (11, 29); - output->hasResult = true; - return; - -label_1EC: - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); - output->result = ANJU_SCH_20; - output->time0 = (11, 3); - output->time1 = (11, 9); - output->hasResult = true; - return; - -label_1F2: - /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); - if (play->sceneId != SCENE_TOWN) { - goto label_23F; - } - - /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); - if ((11, 29) <= NOW <= (11, 39)) { - goto label_239; - } - - /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); - if ((11, 39) <= NOW <= (12, 25)) { - goto label_233; - } - - /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); - if ((12, 25) <= NOW <= (13, 15)) { - goto label_22D; - } - - /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); - if ((15, 55) <= NOW <= (16, 45)) { - goto label_227; - } - - /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); - if ((16, 45) <= NOW <= (17, 24)) { - goto label_221; - } - - /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); - if ((17, 24) <= NOW <= (17, 30)) { - goto label_21B; - } - -label_21A: - /* 0x21A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_21B: - /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); - output->result = ANJU_SCH_26; - output->time0 = (17, 24); - output->time1 = (17, 30); - output->hasResult = true; - return; - -label_221: - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); - output->result = ANJU_SCH_3B; - output->time0 = (16, 45); - output->time1 = (17, 24); - output->hasResult = true; - return; - -label_227: - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); - output->result = ANJU_SCH_3A; - output->time0 = (15, 55); - output->time1 = (16, 45); - output->hasResult = true; - return; - -label_22D: - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); - output->result = ANJU_SCH_37; - output->time0 = (12, 25); - output->time1 = (13, 15); - output->hasResult = true; - return; - -label_233: - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); - output->result = ANJU_SCH_36; - output->time0 = (11, 39); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_239: - /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); - output->result = ANJU_SCH_25; - output->time0 = (11, 29); - output->time1 = (11, 39); - output->hasResult = true; - return; - -label_23F: - /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); - if (play->sceneId != SCENE_CLOCKTOWER) { - goto label_274; - } - - /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); - if ((11, 39) <= NOW <= (12, 25)) { - goto label_26E; - } - - /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); - if ((12, 25) <= NOW <= (13, 15)) { - goto label_268; - } - - /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); - if ((15, 55) <= NOW <= (16, 45)) { - goto label_262; - } - - /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); - if ((16, 45) <= NOW <= (17, 24)) { - goto label_25C; - } - -label_25B: - /* 0x25B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_25C: - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); - output->result = ANJU_SCH_3F; - output->time0 = (16, 45); - output->time1 = (17, 24); - output->hasResult = true; - return; - -label_262: - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); - output->result = ANJU_SCH_3E; - output->time0 = (15, 55); - output->time1 = (16, 45); - output->hasResult = true; - return; - -label_268: - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); - output->result = ANJU_SCH_3D; - output->time0 = (12, 25); - output->time1 = (13, 15); - output->hasResult = true; - return; - -label_26E: - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); - output->result = ANJU_SCH_3C; - output->time0 = (11, 39); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_274: - /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); - if (play->sceneId != SCENE_ALLEY) { - goto label_29D; - } - - /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); - if ((13, 15) <= NOW <= (13, 45)) { - goto label_297; - } - - /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); - if ((13, 45) <= NOW <= (15, 25)) { - goto label_291; - } - - /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); - if ((15, 25) <= NOW <= (15, 55)) { - goto label_28B; - } - -label_28A: - /* 0x28A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_28B: - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); - output->result = ANJU_SCH_39; - output->time0 = (15, 25); - output->time1 = (15, 55); - output->hasResult = true; - return; - -label_291: - /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); - output->result = ANJU_SCH_3; - output->time0 = (13, 45); - output->time1 = (15, 25); - output->hasResult = true; - return; - -label_297: - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); - output->result = ANJU_SCH_38; - output->time0 = (13, 15); - output->time1 = (13, 45); - output->hasResult = true; - return; - -label_29D: - /* 0x29D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_29E: - /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); - if (play->sceneId != SCENE_YADOYA) { - goto label_390; - } - - /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); - if ((6, 0) <= NOW <= (10, 55)) { - goto label_38A; - } - - /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); - if ((10, 55) <= NOW <= (11, 10)) { - goto label_384; - } - - /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); - if ((11, 10) <= NOW <= (11, 30)) { - goto label_37E; - } - - /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_378; - } - - /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); - if ((11, 50) <= NOW <= (11, 55)) { - goto label_372; - } - - /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); - if ((11, 55) <= NOW <= (12, 0)) { - goto label_36C; - } - - /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); - if ((12, 0) <= NOW <= (12, 15)) { - goto label_366; - } - - /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); - if ((12, 15) <= NOW <= (12, 20)) { - goto label_360; - } - - /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); - if ((12, 20) <= NOW <= (12, 25)) { - goto label_35A; - } - - /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); - if ((12, 25) <= NOW <= (12, 55)) { - goto label_354; - } - - /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); - if ((12, 55) <= NOW <= (13, 0)) { - goto label_34E; - } - - /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); - if ((13, 15) <= NOW <= (13, 20)) { - goto label_348; - } - - /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); - if ((13, 20) <= NOW <= (13, 50)) { - goto label_342; - } - - /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); - if ((13, 50) <= NOW <= (19, 50)) { - goto label_33C; - } - - /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); - if ((19, 50) <= NOW <= (20, 20)) { - goto label_336; - } - - /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); - if ((20, 20) <= NOW <= (20, 30)) { - goto label_330; - } - - /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); - if ((20, 30) <= NOW <= (21, 5)) { - goto label_32A; - } - - /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); - if ((21, 5) <= NOW <= (21, 10)) { - goto label_324; - } - - /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); - if ((21, 30) <= NOW <= (23, 0)) { - goto label_31E; - } - -label_31D: - /* 0x31D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_31E: - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output->result = ANJU_SCH_18; - output->time0 = (21, 30); - output->time1 = (23, 0); - output->hasResult = true; - return; - -label_324: - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 5); - output->time1 = (21, 10); - output->hasResult = true; - return; - -label_32A: - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 5); - output->hasResult = true; - return; - -label_330: - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; - return; - -label_336: - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; - return; - -label_33C: - /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (13, 50); - output->time1 = (19, 50); - output->hasResult = true; - return; - -label_342: - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output->result = ANJU_SCH_2E; - output->time0 = (13, 20); - output->time1 = (13, 50); - output->hasResult = true; - return; - -label_348: - /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output->result = ANJU_SCH_1D; - output->time0 = (13, 15); - output->time1 = (13, 20); - output->hasResult = true; - return; - -label_34E: - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output->result = ANJU_SCH_1C; - output->time0 = (12, 55); - output->time1 = (13, 0); - output->hasResult = true; - return; - -label_354: - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output->result = ANJU_SCH_2D; - output->time0 = (12, 25); - output->time1 = (12, 55); - output->hasResult = true; - return; - -label_35A: - /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output->result = ANJU_SCH_1B; - output->time0 = (12, 20); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_360: - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output->result = ANJU_SCH_2C; - output->time0 = (12, 15); - output->time1 = (12, 20); - output->hasResult = true; - return; - -label_366: - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output->result = ANJU_SCH_15; - output->time0 = (12, 0); - output->time1 = (12, 15); - output->hasResult = true; - return; - -label_36C: - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output->result = ANJU_SCH_2B; - output->time0 = (11, 55); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_372: - /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output->result = ANJU_SCH_1A; - output->time0 = (11, 50); - output->time1 = (11, 55); - output->hasResult = true; - return; - -label_378: - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output->result = ANJU_SCH_2A; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_37E: - /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output->result = ANJU_SCH_E; - output->time0 = (11, 10); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_384: - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output->result = ANJU_SCH_28; - output->time0 = (10, 55); - output->time1 = (11, 10); - output->hasResult = true; - return; - -label_38A: - /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (6, 0); - output->time1 = (10, 55); - output->hasResult = true; - return; - -label_390: - /* 0x390 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_391: /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396); - if (gSaveContext.save.day != 3) { - goto label_447; + if (gSaveContext.save.day == 3) { + /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { + /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); + if (play->sceneId == SCENE_YADOYA) { + /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); + if ((6, 0) <= NOW <= (11, 0)) { + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output = ANJU_SCH_16, (6, 0), (11, 0); + return; + } + + /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); + if ((11, 0) <= NOW <= (11, 25)) { + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output = ANJU_SCH_34, (11, 0), (11, 25); + return; + } + + /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); + if ((11, 25) <= NOW <= (11, 30)) { + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output = ANJU_SCH_24, (11, 25), (11, 30); + return; + } + + /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); + if ((11, 30) <= NOW <= (11, 50)) { + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output = ANJU_SCH_35, (11, 30), (11, 50); + return; + } + + /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); + if ((11, 50) <= NOW <= (12, 0)) { + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output = ANJU_SCH_27, (11, 50), (12, 0); + return; + } + + /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + + } + + /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); + if (play->sceneId != SCENE_OMOYA) { + /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); + if ((18, 0) <= NOW <= (6, 0)) { + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); + output = ANJU_SCH_C, (18, 0), (6, 0); + return; + } + + /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); + if (play->sceneId != SCENE_YADOYA) { + /* 0x446 */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; + } + + /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); + if ((6, 0) <= NOW <= (11, 0)) { + /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); + output = ANJU_SCH_16, (6, 0), (11, 0); + return; + } + + /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); + if ((11, 0) <= NOW <= (11, 25)) { + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); + output = ANJU_SCH_34, (11, 0), (11, 25); + return; + } + + /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); + if ((11, 25) <= NOW <= (11, 30)) { + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); + output = ANJU_SCH_24, (11, 25), (11, 30); + return; + } + + /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); + if ((11, 30) <= NOW <= (11, 50)) { + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); + output = ANJU_SCH_35, (11, 30), (11, 50); + return; + } + + /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); + if ((11, 50) <= NOW <= (12, 0)) { + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); + output = ANJU_SCH_27, (11, 50), (12, 0); + return; + } + + /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); + if ((18, 0) <= NOW <= (5, 0)) { + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); + output = ANJU_SCH_1, (18, 0), (5, 0); + return; + } + + /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); + if ((5, 0) <= NOW <= (6, 0)) { + /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); + output = ANJU_SCH_1, (5, 0), (6, 0); + return; + } + + /* 0x41B */ SCHEDULE_CMD_RET_NONE(); + output->hasResult = false; + return; } - /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { - goto label_3ED; - } - - /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); - if (play->sceneId != SCENE_YADOYA) { - goto label_3DB; - } - - /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); - if ((6, 0) <= NOW <= (11, 0)) { - goto label_3D5; - } - - /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); - if ((11, 0) <= NOW <= (11, 25)) { - goto label_3CF; - } - - /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); - if ((11, 25) <= NOW <= (11, 30)) { - goto label_3C9; - } - - /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_3C3; - } - - /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); - if ((11, 50) <= NOW <= (12, 0)) { - goto label_3BD; - } - -label_3BC: - /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3BD: - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output->result = ANJU_SCH_27; - output->time0 = (11, 50); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_3C3: - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output->result = ANJU_SCH_35; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_3C9: - /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output->result = ANJU_SCH_24; - output->time0 = (11, 25); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_3CF: - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output->result = ANJU_SCH_34; - output->time0 = (11, 0); - output->time1 = (11, 25); - output->hasResult = true; - return; - -label_3D5: - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output->result = ANJU_SCH_16; - output->time0 = (6, 0); - output->time1 = (11, 0); - output->hasResult = true; - return; - -label_3DB: - /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); - if (play->sceneId != SCENE_OMOYA) { - goto label_3EC; - } - - /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); - if ((18, 0) <= NOW <= (6, 0)) { - goto label_3E6; - } - -label_3E5: - /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3E6: - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); - output->result = ANJU_SCH_C; - output->time0 = (18, 0); - output->time1 = (6, 0); - output->hasResult = true; - return; - -label_3EC: - /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3ED: - /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); - if (play->sceneId != SCENE_YADOYA) { - goto label_446; - } - - /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); - if ((6, 0) <= NOW <= (11, 0)) { - goto label_440; - } - - /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); - if ((11, 0) <= NOW <= (11, 25)) { - goto label_43A; - } - - /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); - if ((11, 25) <= NOW <= (11, 30)) { - goto label_434; - } - - /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_42E; - } - - /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); - if ((11, 50) <= NOW <= (12, 0)) { - goto label_428; - } - - /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); - if ((18, 0) <= NOW <= (5, 0)) { - goto label_422; - } - - /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); - if ((5, 0) <= NOW <= (6, 0)) { - goto label_41C; - } - -label_41B: - /* 0x41B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_41C: - /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); - output->result = ANJU_SCH_1; - output->time0 = (5, 0); - output->time1 = (6, 0); - output->hasResult = true; - return; - -label_422: - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); - output->result = ANJU_SCH_1; - output->time0 = (18, 0); - output->time1 = (5, 0); - output->hasResult = true; - return; - -label_428: - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output->result = ANJU_SCH_27; - output->time0 = (11, 50); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_42E: - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output->result = ANJU_SCH_35; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_434: - /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output->result = ANJU_SCH_24; - output->time0 = (11, 25); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_43A: - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output->result = ANJU_SCH_34; - output->time0 = (11, 0); - output->time1 = (11, 25); - output->hasResult = true; - return; - -label_440: - /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output->result = ANJU_SCH_16; - output->time0 = (6, 0); - output->time1 = (11, 0); - output->hasResult = true; - return; - -label_446: - /* 0x446 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_447: /* 0x447 */ SCHEDULE_CMD_RET_NONE(); output->hasResult = false; return; - - } From 708b0135d212a5db39c366e2decd30b79f6eea53 Mon Sep 17 00:00:00 2001 From: Angie Date: Tue, 10 Oct 2023 22:25:01 -0300 Subject: [PATCH 34/78] clean it up --- anju_schedule_ifs.c | 846 +++++++++++--------------------------------- 1 file changed, 202 insertions(+), 644 deletions(-) diff --git a/anju_schedule_ifs.c b/anju_schedule_ifs.c index ed96da232..4b24cddd0 100644 --- a/anju_schedule_ifs.c +++ b/anju_schedule_ifs.c @@ -1,6 +1,7 @@ #include "global.h" #define NOW 0 +#define None 0 typedef enum AnjuScheduleResult { /* 0 */ ANJU_SCH_NONE, @@ -70,678 +71,235 @@ typedef enum AnjuScheduleResult { /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; -void scheduleScript(PlayState* play, ScheduleOutput* output) { - /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005); +s32 scheduleScript(PlayState* play, ScheduleOutput* output) { if (gSaveContext.save.day == 1) { - /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A); if (play->sceneId == SCENE_YADOYA) { - /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011); if ((6, 0) <= NOW <= (10, 55)) { - /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output = ANJU_SCH_12, (6, 0), (10, 55); - return; - } - - /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018); - if ((10, 55) <= NOW <= (11, 10)) { - /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output = ANJU_SCH_28, (10, 55), (11, 10); - return; - } - /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F); - if ((11, 10) <= NOW <= (11, 30)) { - /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output = ANJU_SCH_E, (11, 10), (11, 30); - return; - } - /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026); - if ((11, 30) <= NOW <= (11, 50)) { - /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output = ANJU_SCH_2A, (11, 30), (11, 50); - return; - } - /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D); - if ((11, 50) <= NOW <= (11, 55)) { - /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output = ANJU_SCH_1A, (11, 50), (11, 55); - return; - } - /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034); - if ((11, 55) <= NOW <= (12, 0)) { - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output = ANJU_SCH_2B, (11, 55), (12, 0); - return; - } - /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B); - if ((12, 0) <= NOW <= (12, 15)) { - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output = ANJU_SCH_15, (12, 0), (12, 15); - return; - } - /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042); - if ((12, 15) <= NOW <= (12, 20)) { - /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output = ANJU_SCH_2C, (12, 15), (12, 20); - return; - } - /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049); - if ((12, 20) <= NOW <= (12, 25)) { - /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output = ANJU_SCH_1B, (12, 20), (12, 25); - return; - } - /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050); - if ((12, 25) <= NOW <= (12, 55)) { - /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output = ANJU_SCH_2D, (12, 25), (12, 55); - return; - } - /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057); - if ((12, 55) <= NOW <= (13, 0)) { - /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output = ANJU_SCH_1C, (12, 55), (13, 0); - return; - } - /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E); - if ((13, 15) <= NOW <= (13, 20)) { - /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output = ANJU_SCH_1D, (13, 15), (13, 20); - return; - } - /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065); - if ((13, 20) <= NOW <= (13, 50)) { - /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output = ANJU_SCH_2E, (13, 20), (13, 50); - return; - } - /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C); - if ((13, 50) <= NOW <= (14, 8)) { - /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12); - output = ANJU_SCH_12, (13, 50), (14, 8); - return; - } - /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073); - if ((14, 8) <= NOW <= (14, 18)) { - /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10); - output = ANJU_SCH_10, (14, 8), (14, 18); - return; - } - /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079); - if ((14, 18) <= NOW <= (16, 10)) { - /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12); - output = ANJU_SCH_12, (14, 18), (16, 10); - return; - } - /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F); - if ((16, 10) <= NOW <= (16, 30)) { - /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11); - output = ANJU_SCH_11, (16, 10), (16, 30); - return; - } - /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085); - if ((16, 30) <= NOW <= (19, 50)) { - /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12); - output = ANJU_SCH_12, (16, 30), (19, 50); - return; - } - /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B); - if ((19, 50) <= NOW <= (20, 20)) { - /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output = ANJU_SCH_2F, (19, 50), (20, 20); - return; - } - - /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091); - if ((20, 20) <= NOW <= (20, 30)) { - /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output = ANJU_SCH_13, (20, 20), (20, 30); - return; - - } - - /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097); - if ((20, 30) <= NOW <= (21, 5)) { - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output = ANJU_SCH_30, (20, 30), (21, 5); - return; - } - - /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D); - if ((21, 5) <= NOW <= (21, 10)) { - /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output = ANJU_SCH_1E, (21, 5), (21, 10); - return; - } - - /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8); + return ANJU_SCH_12, (6, 0), (10, 55); + } else if ((10, 55) <= NOW <= (11, 10)) { + return ANJU_SCH_28, (10, 55), (11, 10); + } else if ((11, 10) <= NOW <= (11, 30)) { + return ANJU_SCH_E, (11, 10), (11, 30); + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_2A, (11, 30), (11, 50); + } else if ((11, 50) <= NOW <= (11, 55)) { + return ANJU_SCH_1A, (11, 50), (11, 55); + } else if ((11, 55) <= NOW <= (12, 0)) { + return ANJU_SCH_2B, (11, 55), (12, 0); + } else if ((12, 0) <= NOW <= (12, 15)) { + return ANJU_SCH_15, (12, 0), (12, 15); + } else if ((12, 15) <= NOW <= (12, 20)) { + return ANJU_SCH_2C, (12, 15), (12, 20); + } else if ((12, 20) <= NOW <= (12, 25)) { + return ANJU_SCH_1B, (12, 20), (12, 25); + } else if ((12, 25) <= NOW <= (12, 55)) { + return ANJU_SCH_2D, (12, 25), (12, 55); + } else if ((12, 55) <= NOW <= (13, 0)) { + return ANJU_SCH_1C, (12, 55), (13, 0); + } else if ((13, 15) <= NOW <= (13, 20)) { + return ANJU_SCH_1D, (13, 15), (13, 20); + } else if ((13, 20) <= NOW <= (13, 50)) { + return ANJU_SCH_2E, (13, 20), (13, 50); + } else if ((13, 50) <= NOW <= (14, 8)) { + return ANJU_SCH_12, (13, 50), (14, 8); + } else if ((14, 8) <= NOW <= (14, 18)) { + return ANJU_SCH_10, (14, 8), (14, 18); + } else if ((14, 18) <= NOW <= (16, 10)) { + return ANJU_SCH_12, (14, 18), (16, 10); + } else if ((16, 10) <= NOW <= (16, 30)) { + return ANJU_SCH_11, (16, 10), (16, 30); + } else if ((16, 30) <= NOW <= (19, 50)) { + return ANJU_SCH_12, (16, 30), (19, 50); + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F, (19, 50), (20, 20); + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13, (20, 20), (20, 30); + } else if ((20, 30) <= NOW <= (21, 5)) { + return ANJU_SCH_30, (20, 30), (21, 5); + } else if ((21, 5) <= NOW <= (21, 10)) { + return ANJU_SCH_1E, (21, 5), (21, 10); + } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if ((23, 10) <= NOW <= (23, 15)) { - /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F); - output = ANJU_SCH_1F, (23, 10), (23, 15); - return; - } - - /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE); - if ((23, 15) <= NOW <= (0, 0)) { - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31); - output = ANJU_SCH_31, (23, 15), (0, 0); - return; - } - - /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4); - if ((0, 0) <= NOW <= (6, 0)) { - /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); + return ANJU_SCH_1F, (23, 10), (23, 15); + } else if ((23, 15) <= NOW <= (0, 0)) { + return ANJU_SCH_31, (23, 15), (0, 0); + } else if ((0, 0) <= NOW <= (6, 0)) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + return None; } - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); - output = ANJU_SCH_17, (0, 0), (6, 0); - return; + return ANJU_SCH_17, (0, 0), (6, 0); + } else { + return None; } - - /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x150 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156); - if (gSaveContext.save.day == 2) { - /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); + } else if (gSaveContext.save.day == 2) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); if (play->sceneId == SCENE_YADOYA) { - /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); if ((11, 3) <= NOW <= (11, 9)) { - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); - output = ANJU_SCH_20, (11, 3), (11, 9); - return; + return ANJU_SCH_20, (11, 3), (11, 9); + } else if ((11, 9) <= NOW <= (11, 29)) { + return ANJU_SCH_32, (11, 9), (11, 29); + } else if ((11, 29) <= NOW <= (11, 39)) { + return ANJU_SCH_21, (11, 29), (11, 39); + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_22, (17, 24), (17, 30); + } else if ((17, 30) <= NOW <= (17, 55)) { + return ANJU_SCH_33, (17, 30), (17, 55); + } else if ((17, 55) <= NOW <= (18, 0)) { + return ANJU_SCH_23, (17, 55), (18, 0); + } else if ((18, 0) <= NOW <= (19, 50)) { + return ANJU_SCH_12, (18, 0), (19, 50); + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F, (19, 50), (20, 20); + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13, (20, 20), (20, 30); + } else if ((20, 30) <= NOW <= (21, 0)) { + return ANJU_SCH_30, (20, 30), (21, 0); + } else if ((21, 0) <= NOW <= (21, 5)) { + return ANJU_SCH_1E, (21, 0), (21, 5); + } else if ((21, 30) <= NOW <= (23, 0)) { + return ANJU_SCH_18, (21, 30), (23, 0); + } else { + return None; } - - /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); - if ((11, 9) <= NOW <= (11, 29)) { - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); - output = ANJU_SCH_32, (11, 9), (11, 29); - return; - } - - /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); + } else if (play->sceneId == SCENE_TOWN) { if ((11, 29) <= NOW <= (11, 39)) { - /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); - output = ANJU_SCH_21, (11, 29), (11, 39); - return; + return ANJU_SCH_25, (11, 29), (11, 39); + } else if ((11, 39) <= NOW <= (12, 25)) { + return ANJU_SCH_36, (11, 39), (12, 25); + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_37, (12, 25), (13, 15); + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3A, (15, 55), (16, 45); + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3B, (16, 45), (17, 24); + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_26, (17, 24), (17, 30); + } else { + return None; } - - /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); - if ((17, 24) <= NOW <= (17, 30)) { - /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); - output = ANJU_SCH_22, (17, 24), (17, 30); - return; - } - - /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); - if ((17, 30) <= NOW <= (17, 55)) { - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); - output = ANJU_SCH_33, (17, 30), (17, 55); - return; - } - - /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); - if ((17, 55) <= NOW <= (18, 0)) { - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); - output = ANJU_SCH_23, (17, 55), (18, 0); - return; - } - - /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); - if ((18, 0) <= NOW <= (19, 50)) { - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); - output = ANJU_SCH_12, (18, 0), (19, 50); - return; - } - - /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); - if ((19, 50) <= NOW <= (20, 20)) { - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output = ANJU_SCH_2F, (19, 50), (20, 20); - return; - } - - /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); - if ((20, 20) <= NOW <= (20, 30)) { - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output = ANJU_SCH_13, (20, 20), (20, 30); - return; - } - - /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); - if ((20, 30) <= NOW <= (21, 0)) { - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); - output = ANJU_SCH_30, (20, 30), (21, 0); - return; - } - - /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); - if ((21, 0) <= NOW <= (21, 5)) { - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); - output = ANJU_SCH_1E, (21, 0), (21, 5); - return; - } - - /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); - if ((21, 30) <= NOW <= (23, 0)) { - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output = ANJU_SCH_18, (21, 30), (23, 0); - return; - } - - /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); - if (play->sceneId == SCENE_TOWN) { - /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); - if ((11, 29) <= NOW <= (11, 39)) { - /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); - output = ANJU_SCH_25, (11, 29), (11, 39); - return; - } - - /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); + } else if (play->sceneId == SCENE_CLOCKTOWER) { if ((11, 39) <= NOW <= (12, 25)) { - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); - output = ANJU_SCH_36, (11, 39), (12, 25); - return; + return ANJU_SCH_3C, (11, 39), (12, 25); + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_3D, (12, 25), (13, 15); + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3E, (15, 55), (16, 45); + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3F, (16, 45), (17, 24); + } else { + return None; } - - /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); - if ((12, 25) <= NOW <= (13, 15)) { - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); - output = ANJU_SCH_37, (12, 25), (13, 15); - return; + } else if (play->sceneId == SCENE_ALLEY) { + if ((13, 15) <= NOW <= (13, 45)) { + return ANJU_SCH_38, (13, 15), (13, 45); + } else if ((13, 45) <= NOW <= (15, 25)) { + return ANJU_SCH_3, (13, 45), (15, 25); + } else if ((15, 25) <= NOW <= (15, 55)) { + return ANJU_SCH_39, (15, 25), (15, 55); + } else { + return None; } - - /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); - if ((15, 55) <= NOW <= (16, 45)) { - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); - output = ANJU_SCH_3A, (15, 55), (16, 45); - return; - } - - /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); - if ((16, 45) <= NOW <= (17, 24)) { - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); - output = ANJU_SCH_3B, (16, 45), (17, 24); - return; - } - - /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); - if ((17, 24) <= NOW <= (17, 30)) { - /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); - output = ANJU_SCH_26, (17, 24), (17, 30); - return; - } - - /* 0x21A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); - if (play->sceneId == SCENE_CLOCKTOWER) { - /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); - if ((11, 39) <= NOW <= (12, 25)) { - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); - output = ANJU_SCH_3C, (11, 39), (12, 25); - return; - } - - /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); - if ((12, 25) <= NOW <= (13, 15)) { - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); - output = ANJU_SCH_3D, (12, 25), (13, 15); - return; - } - - /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); - if ((15, 55) <= NOW <= (16, 45)) { - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); - output = ANJU_SCH_3E, (15, 55), (16, 45); - return; - } - - /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); - if ((16, 45) <= NOW <= (17, 24)) { - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); - output = ANJU_SCH_3F, (16, 45), (17, 24); - return; - } - - /* 0x25B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (10, 55)) { + return ANJU_SCH_12, (6, 0), (10, 55); + } else if ((10, 55) <= NOW <= (11, 10)) { + return ANJU_SCH_28, (10, 55), (11, 10); + } else if ((11, 10) <= NOW <= (11, 30)) { + return ANJU_SCH_E, (11, 10), (11, 30); + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_2A, (11, 30), (11, 50); + } else if ((11, 50) <= NOW <= (11, 55)) { + return ANJU_SCH_1A, (11, 50), (11, 55); + } else if ((11, 55) <= NOW <= (12, 0)) { + return ANJU_SCH_2B, (11, 55), (12, 0); + } else if ((12, 0) <= NOW <= (12, 15)) { + return ANJU_SCH_15, (12, 0), (12, 15); + } else if ((12, 15) <= NOW <= (12, 20)) { + return ANJU_SCH_2C, (12, 15), (12, 20); + } else if ((12, 20) <= NOW <= (12, 25)) { + return ANJU_SCH_1B, (12, 20), (12, 25); + } else if ((12, 25) <= NOW <= (12, 55)) { + return ANJU_SCH_2D, (12, 25), (12, 55); + } else if ((12, 55) <= NOW <= (13, 0)) { + return ANJU_SCH_1C, (12, 55), (13, 0); + } else if ((13, 15) <= NOW <= (13, 20)) { + return ANJU_SCH_1D, (13, 15), (13, 20); + } else if ((13, 20) <= NOW <= (13, 50)) { + return ANJU_SCH_2E, (13, 20), (13, 50); + } else if ((13, 50) <= NOW <= (19, 50)) { + return ANJU_SCH_12, (13, 50), (19, 50); + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F, (19, 50), (20, 20); + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13, (20, 20), (20, 30); + } else if ((20, 30) <= NOW <= (21, 5)) { + return ANJU_SCH_30, (20, 30), (21, 5); + } else if ((21, 5) <= NOW <= (21, 10)) { + return ANJU_SCH_1E, (21, 5), (21, 10); + } else if ((21, 30) <= NOW <= (23, 0)) { + return ANJU_SCH_18, (21, 30), (23, 0); + } else { + return None; } - - /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); - if (play->sceneId != SCENE_ALLEY) { - /* 0x29D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); - if ((13, 15) <= NOW <= (13, 45)) { - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); - output = ANJU_SCH_38, (13, 15), (13, 45); - return; - } - - /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); - if ((13, 45) <= NOW <= (15, 25)) { - /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); - output = ANJU_SCH_3, (13, 45), (15, 25); - return; - } - - /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); - if ((15, 25) <= NOW <= (15, 55)) { - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); - output = ANJU_SCH_39, (15, 25), (15, 55); - return; - } - - /* 0x28A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); - if (play->sceneId != SCENE_YADOYA) { - /* 0x390 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); - if ((6, 0) <= NOW <= (10, 55)) { - /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output = ANJU_SCH_12, (6, 0), (10, 55); - return; - } - - /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); - if ((10, 55) <= NOW <= (11, 10)) { - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output = ANJU_SCH_28, (10, 55), (11, 10); - return; - } - - /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); - if ((11, 10) <= NOW <= (11, 30)) { - /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output = ANJU_SCH_E, (11, 10), (11, 30); - return; - } - - /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); - if ((11, 30) <= NOW <= (11, 50)) { - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output = ANJU_SCH_2A, (11, 30), (11, 50); - return; - } - - /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); - if ((11, 50) <= NOW <= (11, 55)) { - /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output = ANJU_SCH_1A, (11, 50), (11, 55); - return; - } - - /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); - if ((11, 55) <= NOW <= (12, 0)) { - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output = ANJU_SCH_2B, (11, 55), (12, 0); - return; - } - - /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); - if ((12, 0) <= NOW <= (12, 15)) { - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output = ANJU_SCH_15, (12, 0), (12, 15); - return; - } - - /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); - if ((12, 15) <= NOW <= (12, 20)) { - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output = ANJU_SCH_2C, (12, 15), (12, 20); - return; - } - - /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); - if ((12, 20) <= NOW <= (12, 25)) { - /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output = ANJU_SCH_1B, (12, 20), (12, 25); - return; - } - - /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); - if ((12, 25) <= NOW <= (12, 55)) { - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output = ANJU_SCH_2D, (12, 25), (12, 55); - return; - } - - /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); - if ((12, 55) <= NOW <= (13, 0)) { - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output = ANJU_SCH_1C, (12, 55), (13, 0); - return; - } - - /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); - if ((13, 15) <= NOW <= (13, 20)) { - /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output = ANJU_SCH_1D, (13, 15), (13, 20); - return; - } - - /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); - if ((13, 20) <= NOW <= (13, 50)) { - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output = ANJU_SCH_2E, (13, 20), (13, 50); - return; - } - - /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); - if ((13, 50) <= NOW <= (19, 50)) { - /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); - output = ANJU_SCH_12, (13, 50), (19, 50); - return; - } - - /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); - if ((19, 50) <= NOW <= (20, 20)) { - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output = ANJU_SCH_2F, (19, 50), (20, 20); - return; - } - - /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); - if ((20, 20) <= NOW <= (20, 30)) { - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output = ANJU_SCH_13, (20, 20), (20, 30); - return; - } - - /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); - if ((20, 30) <= NOW <= (21, 5)) { - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output = ANJU_SCH_30, (20, 30), (21, 5); - return; - } - - /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); - if ((21, 5) <= NOW <= (21, 10)) { - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output = ANJU_SCH_1E, (21, 5), (21, 10); - return; - } - - /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); - if ((21, 30) <= NOW <= (23, 0)) { - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output = ANJU_SCH_18, (21, 30), (23, 0); - return; - } - - /* 0x31D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396); - if (gSaveContext.save.day == 3) { - /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); - if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { - /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); + } else if (gSaveContext.save.day == 3) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { if (play->sceneId == SCENE_YADOYA) { - /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); if ((6, 0) <= NOW <= (11, 0)) { - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output = ANJU_SCH_16, (6, 0), (11, 0); - return; + return ANJU_SCH_16, (6, 0), (11, 0); + } else if ((11, 0) <= NOW <= (11, 25)) { + return ANJU_SCH_34, (11, 0), (11, 25); + } else if ((11, 25) <= NOW <= (11, 30)) { + return ANJU_SCH_24, (11, 25), (11, 30); + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_35, (11, 30), (11, 50); + } else if ((11, 50) <= NOW <= (12, 0)) { + return ANJU_SCH_27, (11, 50), (12, 0); + } else if ((18, 0) <= NOW <= (5, 0)) { + return ANJU_SCH_1, (18, 0), (5, 0); + } else if ((5, 0) <= NOW <= (6, 0)) { + return ANJU_SCH_1, (5, 0), (6, 0); + } else { + return None; } - - /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); - if ((11, 0) <= NOW <= (11, 25)) { - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output = ANJU_SCH_34, (11, 0), (11, 25); - return; - } - - /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); - if ((11, 25) <= NOW <= (11, 30)) { - /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output = ANJU_SCH_24, (11, 25), (11, 30); - return; - } - - /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); - if ((11, 30) <= NOW <= (11, 50)) { - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output = ANJU_SCH_35, (11, 30), (11, 50); - return; - } - - /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); - if ((11, 50) <= NOW <= (12, 0)) { - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output = ANJU_SCH_27, (11, 50), (12, 0); - return; - } - - /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - + } else { + return None; } - - /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); - if (play->sceneId != SCENE_OMOYA) { - /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (11, 0)) { + return ANJU_SCH_16, (6, 0), (11, 0); + } else if ((11, 0) <= NOW <= (11, 25)) { + return ANJU_SCH_34, (11, 0), (11, 25); + } else if ((11, 25) <= NOW <= (11, 30)) { + return ANJU_SCH_24, (11, 25), (11, 30); + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_35, (11, 30), (11, 50); + } else if ((11, 50) <= NOW <= (12, 0)) { + return ANJU_SCH_27, (11, 50), (12, 0); + } else { + return None; } - - /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); + } else if (play->sceneId == SCENE_OMOYA) { if ((18, 0) <= NOW <= (6, 0)) { - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); - output = ANJU_SCH_C, (18, 0), (6, 0); - return; + return ANJU_SCH_C, (18, 0), (6, 0); + } else { + return None; } - - /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); - if (play->sceneId != SCENE_YADOYA) { - /* 0x446 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - } - - /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); - if ((6, 0) <= NOW <= (11, 0)) { - /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output = ANJU_SCH_16, (6, 0), (11, 0); - return; - } - - /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); - if ((11, 0) <= NOW <= (11, 25)) { - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output = ANJU_SCH_34, (11, 0), (11, 25); - return; - } - - /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); - if ((11, 25) <= NOW <= (11, 30)) { - /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output = ANJU_SCH_24, (11, 25), (11, 30); - return; - } - - /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); - if ((11, 30) <= NOW <= (11, 50)) { - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output = ANJU_SCH_35, (11, 30), (11, 50); - return; - } - - /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); - if ((11, 50) <= NOW <= (12, 0)) { - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output = ANJU_SCH_27, (11, 50), (12, 0); - return; - } - - /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); - if ((18, 0) <= NOW <= (5, 0)) { - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); - output = ANJU_SCH_1, (18, 0), (5, 0); - return; - } - - /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); - if ((5, 0) <= NOW <= (6, 0)) { - /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); - output = ANJU_SCH_1, (5, 0), (6, 0); - return; - } - - /* 0x41B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; + } else { + return None; } - - /* 0x447 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; } From 4c2b72e577a2272d641a2cf8c5624b7022ceb63b Mon Sep 17 00:00:00 2001 From: Angie Date: Tue, 10 Oct 2023 23:14:52 -0300 Subject: [PATCH 35/78] schedule algorithm --- anju_schedule_ifs.c | 266 ++++++++++---------- src/overlays/actors/ovl_En_An/z_en_an.c | 307 +++++++++++++++++++++--- 2 files changed, 405 insertions(+), 168 deletions(-) diff --git a/anju_schedule_ifs.c b/anju_schedule_ifs.c index 4b24cddd0..f272169e9 100644 --- a/anju_schedule_ifs.c +++ b/anju_schedule_ifs.c @@ -71,63 +71,63 @@ typedef enum AnjuScheduleResult { /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; -s32 scheduleScript(PlayState* play, ScheduleOutput* output) { +s32 scheduleScript(PlayState* play) { if (gSaveContext.save.day == 1) { if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12, (6, 0), (10, 55); + return ANJU_SCH_12; } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28, (10, 55), (11, 10); + return ANJU_SCH_28; } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E, (11, 10), (11, 30); + return ANJU_SCH_E; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A, (11, 30), (11, 50); + return ANJU_SCH_2A; } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A, (11, 50), (11, 55); + return ANJU_SCH_1A; } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B, (11, 55), (12, 0); + return ANJU_SCH_2B; } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15, (12, 0), (12, 15); + return ANJU_SCH_15; } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C, (12, 15), (12, 20); + return ANJU_SCH_2C; } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B, (12, 20), (12, 25); + return ANJU_SCH_1B; } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D, (12, 25), (12, 55); + return ANJU_SCH_2D; } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C, (12, 55), (13, 0); + return ANJU_SCH_1C; } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D, (13, 15), (13, 20); + return ANJU_SCH_1D; } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E, (13, 20), (13, 50); + return ANJU_SCH_2E; } else if ((13, 50) <= NOW <= (14, 8)) { - return ANJU_SCH_12, (13, 50), (14, 8); + return ANJU_SCH_12; } else if ((14, 8) <= NOW <= (14, 18)) { - return ANJU_SCH_10, (14, 8), (14, 18); + return ANJU_SCH_10; } else if ((14, 18) <= NOW <= (16, 10)) { - return ANJU_SCH_12, (14, 18), (16, 10); + return ANJU_SCH_12; } else if ((16, 10) <= NOW <= (16, 30)) { - return ANJU_SCH_11, (16, 10), (16, 30); + return ANJU_SCH_11; } else if ((16, 30) <= NOW <= (19, 50)) { - return ANJU_SCH_12, (16, 30), (19, 50); + return ANJU_SCH_12; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F, (19, 50), (20, 20); + return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13, (20, 20), (20, 30); + return ANJU_SCH_13; } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30, (20, 30), (21, 5); + return ANJU_SCH_30; } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E, (21, 5), (21, 10); + return ANJU_SCH_1E; } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if ((23, 10) <= NOW <= (23, 15)) { - return ANJU_SCH_1F, (23, 10), (23, 15); + return ANJU_SCH_1F; } else if ((23, 15) <= NOW <= (0, 0)) { - return ANJU_SCH_31, (23, 15), (0, 0); + return ANJU_SCH_31; } else if ((0, 0) <= NOW <= (6, 0)) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { return None; } - return ANJU_SCH_17, (0, 0), (6, 0); + return ANJU_SCH_17; } else { return None; } @@ -140,68 +140,44 @@ s32 scheduleScript(PlayState* play, ScheduleOutput* output) { } else if (gSaveContext.save.day == 2) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { if (play->sceneId == SCENE_YADOYA) { - if ((11, 3) <= NOW <= (11, 9)) { - return ANJU_SCH_20, (11, 3), (11, 9); - } else if ((11, 9) <= NOW <= (11, 29)) { - return ANJU_SCH_32, (11, 9), (11, 29); - } else if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_21, (11, 29), (11, 39); - } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_22, (17, 24), (17, 30); - } else if ((17, 30) <= NOW <= (17, 55)) { - return ANJU_SCH_33, (17, 30), (17, 55); - } else if ((17, 55) <= NOW <= (18, 0)) { - return ANJU_SCH_23, (17, 55), (18, 0); - } else if ((18, 0) <= NOW <= (19, 50)) { - return ANJU_SCH_12, (18, 0), (19, 50); + if ((6, 0) <= NOW <= (10, 55)) { + return ANJU_SCH_12; + } else if ((10, 55) <= NOW <= (11, 10)) { + return ANJU_SCH_28; + } else if ((11, 10) <= NOW <= (11, 30)) { + return ANJU_SCH_E; + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_2A; + } else if ((11, 50) <= NOW <= (11, 55)) { + return ANJU_SCH_1A; + } else if ((11, 55) <= NOW <= (12, 0)) { + return ANJU_SCH_2B; + } else if ((12, 0) <= NOW <= (12, 15)) { + return ANJU_SCH_15; + } else if ((12, 15) <= NOW <= (12, 20)) { + return ANJU_SCH_2C; + } else if ((12, 20) <= NOW <= (12, 25)) { + return ANJU_SCH_1B; + } else if ((12, 25) <= NOW <= (12, 55)) { + return ANJU_SCH_2D; + } else if ((12, 55) <= NOW <= (13, 0)) { + return ANJU_SCH_1C; + } else if ((13, 15) <= NOW <= (13, 20)) { + return ANJU_SCH_1D; + } else if ((13, 20) <= NOW <= (13, 50)) { + return ANJU_SCH_2E; + } else if ((13, 50) <= NOW <= (19, 50)) { + return ANJU_SCH_12; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F, (19, 50), (20, 20); + return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13, (20, 20), (20, 30); - } else if ((20, 30) <= NOW <= (21, 0)) { - return ANJU_SCH_30, (20, 30), (21, 0); - } else if ((21, 0) <= NOW <= (21, 5)) { - return ANJU_SCH_1E, (21, 0), (21, 5); + return ANJU_SCH_13; + } else if ((20, 30) <= NOW <= (21, 5)) { + return ANJU_SCH_30; + } else if ((21, 5) <= NOW <= (21, 10)) { + return ANJU_SCH_1E; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18, (21, 30), (23, 0); - } else { - return None; - } - } else if (play->sceneId == SCENE_TOWN) { - if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_25, (11, 29), (11, 39); - } else if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_36, (11, 39), (12, 25); - } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_37, (12, 25), (13, 15); - } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3A, (15, 55), (16, 45); - } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3B, (16, 45), (17, 24); - } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_26, (17, 24), (17, 30); - } else { - return None; - } - } else if (play->sceneId == SCENE_CLOCKTOWER) { - if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_3C, (11, 39), (12, 25); - } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_3D, (12, 25), (13, 15); - } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3E, (15, 55), (16, 45); - } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3F, (16, 45), (17, 24); - } else { - return None; - } - } else if (play->sceneId == SCENE_ALLEY) { - if ((13, 15) <= NOW <= (13, 45)) { - return ANJU_SCH_38, (13, 15), (13, 45); - } else if ((13, 45) <= NOW <= (15, 25)) { - return ANJU_SCH_3, (13, 45), (15, 25); - } else if ((15, 25) <= NOW <= (15, 55)) { - return ANJU_SCH_39, (15, 25), (15, 55); + return ANJU_SCH_18; } else { return None; } @@ -209,44 +185,68 @@ s32 scheduleScript(PlayState* play, ScheduleOutput* output) { return None; } } else if (play->sceneId == SCENE_YADOYA) { - if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12, (6, 0), (10, 55); - } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28, (10, 55), (11, 10); - } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E, (11, 10), (11, 30); - } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A, (11, 30), (11, 50); - } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A, (11, 50), (11, 55); - } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B, (11, 55), (12, 0); - } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15, (12, 0), (12, 15); - } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C, (12, 15), (12, 20); - } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B, (12, 20), (12, 25); - } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D, (12, 25), (12, 55); - } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C, (12, 55), (13, 0); - } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D, (13, 15), (13, 20); - } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E, (13, 20), (13, 50); - } else if ((13, 50) <= NOW <= (19, 50)) { - return ANJU_SCH_12, (13, 50), (19, 50); + if ((11, 3) <= NOW <= (11, 9)) { + return ANJU_SCH_20; + } else if ((11, 9) <= NOW <= (11, 29)) { + return ANJU_SCH_32; + } else if ((11, 29) <= NOW <= (11, 39)) { + return ANJU_SCH_21; + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_22; + } else if ((17, 30) <= NOW <= (17, 55)) { + return ANJU_SCH_33; + } else if ((17, 55) <= NOW <= (18, 0)) { + return ANJU_SCH_23; + } else if ((18, 0) <= NOW <= (19, 50)) { + return ANJU_SCH_12; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F, (19, 50), (20, 20); + return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13, (20, 20), (20, 30); - } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30, (20, 30), (21, 5); - } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E, (21, 5), (21, 10); + return ANJU_SCH_13; + } else if ((20, 30) <= NOW <= (21, 0)) { + return ANJU_SCH_30; + } else if ((21, 0) <= NOW <= (21, 5)) { + return ANJU_SCH_1E; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18, (21, 30), (23, 0); + return ANJU_SCH_18; + } else { + return None; + } + } else if (play->sceneId == SCENE_TOWN) { + if ((11, 29) <= NOW <= (11, 39)) { + return ANJU_SCH_25; + } else if ((11, 39) <= NOW <= (12, 25)) { + return ANJU_SCH_36; + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_37; + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3A; + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3B; + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_26; + } else { + return None; + } + } else if (play->sceneId == SCENE_CLOCKTOWER) { + if ((11, 39) <= NOW <= (12, 25)) { + return ANJU_SCH_3C; + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_3D; + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3E; + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3F; + } else { + return None; + } + } else if (play->sceneId == SCENE_ALLEY) { + if ((13, 15) <= NOW <= (13, 45)) { + return ANJU_SCH_38; + } else if ((13, 45) <= NOW <= (15, 25)) { + return ANJU_SCH_3; + } else if ((15, 25) <= NOW <= (15, 55)) { + return ANJU_SCH_39; } else { return None; } @@ -257,19 +257,19 @@ s32 scheduleScript(PlayState* play, ScheduleOutput* output) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16, (6, 0), (11, 0); + return ANJU_SCH_16; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34, (11, 0), (11, 25); + return ANJU_SCH_34; } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24, (11, 25), (11, 30); + return ANJU_SCH_24; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35, (11, 30), (11, 50); + return ANJU_SCH_35; } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27, (11, 50), (12, 0); + return ANJU_SCH_27; } else if ((18, 0) <= NOW <= (5, 0)) { - return ANJU_SCH_1, (18, 0), (5, 0); + return ANJU_SCH_1; } else if ((5, 0) <= NOW <= (6, 0)) { - return ANJU_SCH_1, (5, 0), (6, 0); + return ANJU_SCH_1; } else { return None; } @@ -278,21 +278,21 @@ s32 scheduleScript(PlayState* play, ScheduleOutput* output) { } } else if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16, (6, 0), (11, 0); + return ANJU_SCH_16; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34, (11, 0), (11, 25); + return ANJU_SCH_34; } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24, (11, 25), (11, 30); + return ANJU_SCH_24; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35, (11, 30), (11, 50); + return ANJU_SCH_35; } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27, (11, 50), (12, 0); + return ANJU_SCH_27; } else { return None; } } else if (play->sceneId == SCENE_OMOYA) { if ((18, 0) <= NOW <= (6, 0)) { - return ANJU_SCH_C, (18, 0), (6, 0); + return ANJU_SCH_C; } else { return None; } 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 eb40c2823..fa6d9afe4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -31,7 +31,7 @@ typedef enum AnjuScheduleResult { /* 0 */ ANJU_SCH_NONE, /* 1 */ ANJU_SCH_1, /* 2 */ ANJU_SCH_2, - /* 3 */ ANJU_SCH_3, + /* 3 */ ANJU_SCH_LAUNDRY_POOL_SIT, /* 4 */ ANJU_SCH_4, /* 5 */ ANJU_SCH_5, /* 6 */ ANJU_SCH_6, @@ -40,7 +40,7 @@ typedef enum AnjuScheduleResult { /* 9 */ ANJU_SCH_9, /* 10 */ ANJU_SCH_A, /* 11 */ ANJU_SCH_B, - /* 12 */ ANJU_SCH_C, + /* 12 */ ANJU_SCH_RANCH, /* 13 */ ANJU_SCH_D, /* 14 */ ANJU_SCH_E, /* 15 */ ANJU_SCH_F, @@ -84,8 +84,8 @@ typedef enum AnjuScheduleResult { /* 53 */ ANJU_SCH_35, /* 54 */ ANJU_SCH_36, /* 55 */ ANJU_SCH_37, - /* 56 */ ANJU_SCH_38, - /* 57 */ ANJU_SCH_39, + /* 56 */ ANJU_SCH_LAUNDRY_POOL_WALKING_IN, + /* 57 */ ANJU_SCH_LAUNDRY_POOL_LEAVING, /* 58 */ ANJU_SCH_3A, /* 59 */ ANJU_SCH_3B, /* 60 */ ANJU_SCH_3C, @@ -211,9 +211,9 @@ static u8 sScheduleScript[] = { /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284), /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A), /* 0x28A */ SCHEDULE_CMD_RET_NONE(), - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39), - /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3), - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38), + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_LAUNDRY_POOL_LEAVING), + /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_LAUNDRY_POOL_SIT), + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_LAUNDRY_POOL_WALKING_IN), /* 0x29D */ SCHEDULE_CMD_RET_NONE(), /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3), /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA), @@ -273,7 +273,7 @@ static u8 sScheduleScript[] = { /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(), - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C), + /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_RANCH), /* 0x3EC */ SCHEDULE_CMD_RET_NONE(), /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1), /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7), @@ -295,11 +295,248 @@ static u8 sScheduleScript[] = { /* 0x447 */ SCHEDULE_CMD_RET_NONE(), }; +/** + * The schedule script is roughly equivalent to the following pseudo-code: + +s32 scheduleScript(PlayState* play) { + if (gSaveContext.save.day == 1) { + if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (10, 55)) { + return ANJU_SCH_12; + } else if ((10, 55) <= NOW <= (11, 10)) { + return ANJU_SCH_28; + } else if ((11, 10) <= NOW <= (11, 30)) { + return ANJU_SCH_E; + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_2A; + } else if ((11, 50) <= NOW <= (11, 55)) { + return ANJU_SCH_1A; + } else if ((11, 55) <= NOW <= (12, 0)) { + return ANJU_SCH_2B; + } else if ((12, 0) <= NOW <= (12, 15)) { + return ANJU_SCH_15; + } else if ((12, 15) <= NOW <= (12, 20)) { + return ANJU_SCH_2C; + } else if ((12, 20) <= NOW <= (12, 25)) { + return ANJU_SCH_1B; + } else if ((12, 25) <= NOW <= (12, 55)) { + return ANJU_SCH_2D; + } else if ((12, 55) <= NOW <= (13, 0)) { + return ANJU_SCH_1C; + } else if ((13, 15) <= NOW <= (13, 20)) { + return ANJU_SCH_1D; + } else if ((13, 20) <= NOW <= (13, 50)) { + return ANJU_SCH_2E; + } else if ((13, 50) <= NOW <= (14, 8)) { + return ANJU_SCH_12; + } else if ((14, 8) <= NOW <= (14, 18)) { + return ANJU_SCH_10; + } else if ((14, 18) <= NOW <= (16, 10)) { + return ANJU_SCH_12; + } else if ((16, 10) <= NOW <= (16, 30)) { + return ANJU_SCH_11; + } else if ((16, 30) <= NOW <= (19, 50)) { + return ANJU_SCH_12; + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F; + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13; + } else if ((20, 30) <= NOW <= (21, 5)) { + return ANJU_SCH_30; + } else if ((21, 5) <= NOW <= (21, 10)) { + return ANJU_SCH_1E; + } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + if ((23, 10) <= NOW <= (23, 15)) { + return ANJU_SCH_1F; + } else if ((23, 15) <= NOW <= (0, 0)) { + return ANJU_SCH_31; + } else if ((0, 0) <= NOW <= (6, 0)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + return None; + } + return ANJU_SCH_17; + } else { + return None; + } + } else { + return None; + } + } else { + return None; + } + } else if (gSaveContext.save.day == 2) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { + if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (10, 55)) { + return ANJU_SCH_12; + } else if ((10, 55) <= NOW <= (11, 10)) { + return ANJU_SCH_28; + } else if ((11, 10) <= NOW <= (11, 30)) { + return ANJU_SCH_E; + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_2A; + } else if ((11, 50) <= NOW <= (11, 55)) { + return ANJU_SCH_1A; + } else if ((11, 55) <= NOW <= (12, 0)) { + return ANJU_SCH_2B; + } else if ((12, 0) <= NOW <= (12, 15)) { + return ANJU_SCH_15; + } else if ((12, 15) <= NOW <= (12, 20)) { + return ANJU_SCH_2C; + } else if ((12, 20) <= NOW <= (12, 25)) { + return ANJU_SCH_1B; + } else if ((12, 25) <= NOW <= (12, 55)) { + return ANJU_SCH_2D; + } else if ((12, 55) <= NOW <= (13, 0)) { + return ANJU_SCH_1C; + } else if ((13, 15) <= NOW <= (13, 20)) { + return ANJU_SCH_1D; + } else if ((13, 20) <= NOW <= (13, 50)) { + return ANJU_SCH_2E; + } else if ((13, 50) <= NOW <= (19, 50)) { + return ANJU_SCH_12; + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F; + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13; + } else if ((20, 30) <= NOW <= (21, 5)) { + return ANJU_SCH_30; + } else if ((21, 5) <= NOW <= (21, 10)) { + return ANJU_SCH_1E; + } else if ((21, 30) <= NOW <= (23, 0)) { + return ANJU_SCH_18; + } else { + return None; + } + } else { + return None; + } + } else if (play->sceneId == SCENE_YADOYA) { + if ((11, 3) <= NOW <= (11, 9)) { + return ANJU_SCH_20; + } else if ((11, 9) <= NOW <= (11, 29)) { + return ANJU_SCH_32; + } else if ((11, 29) <= NOW <= (11, 39)) { + return ANJU_SCH_21; + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_22; + } else if ((17, 30) <= NOW <= (17, 55)) { + return ANJU_SCH_33; + } else if ((17, 55) <= NOW <= (18, 0)) { + return ANJU_SCH_23; + } else if ((18, 0) <= NOW <= (19, 50)) { + return ANJU_SCH_12; + } else if ((19, 50) <= NOW <= (20, 20)) { + return ANJU_SCH_2F; + } else if ((20, 20) <= NOW <= (20, 30)) { + return ANJU_SCH_13; + } else if ((20, 30) <= NOW <= (21, 0)) { + return ANJU_SCH_30; + } else if ((21, 0) <= NOW <= (21, 5)) { + return ANJU_SCH_1E; + } else if ((21, 30) <= NOW <= (23, 0)) { + return ANJU_SCH_18; + } else { + return None; + } + } else if (play->sceneId == SCENE_TOWN) { + if ((11, 29) <= NOW <= (11, 39)) { + return ANJU_SCH_25; + } else if ((11, 39) <= NOW <= (12, 25)) { + return ANJU_SCH_36; + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_37; + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3A; + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3B; + } else if ((17, 24) <= NOW <= (17, 30)) { + return ANJU_SCH_26; + } else { + return None; + } + } else if (play->sceneId == SCENE_CLOCKTOWER) { + if ((11, 39) <= NOW <= (12, 25)) { + return ANJU_SCH_3C; + } else if ((12, 25) <= NOW <= (13, 15)) { + return ANJU_SCH_3D; + } else if ((15, 55) <= NOW <= (16, 45)) { + return ANJU_SCH_3E; + } else if ((16, 45) <= NOW <= (17, 24)) { + return ANJU_SCH_3F; + } else { + return None; + } + } else if (play->sceneId == SCENE_ALLEY) { + if ((13, 15) <= NOW <= (13, 45)) { + return ANJU_SCH_LAUNDRY_POOL_WALKING_IN; + } else if ((13, 45) <= NOW <= (15, 25)) { + return ANJU_SCH_LAUNDRY_POOL_SIT; + } else if ((15, 25) <= NOW <= (15, 55)) { + return ANJU_SCH_LAUNDRY_POOL_LEAVING; + } else { + return None; + } + } else { + return None; + } + } else if (gSaveContext.save.day == 3) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { + if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (11, 0)) { + return ANJU_SCH_16; + } else if ((11, 0) <= NOW <= (11, 25)) { + return ANJU_SCH_34; + } else if ((11, 25) <= NOW <= (11, 30)) { + return ANJU_SCH_24; + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_35; + } else if ((11, 50) <= NOW <= (12, 0)) { + return ANJU_SCH_27; + } else if ((18, 0) <= NOW <= (5, 0)) { + return ANJU_SCH_1; + } else if ((5, 0) <= NOW <= (6, 0)) { + return ANJU_SCH_1; + } else { + return None; + } + } else { + return None; + } + } else if (play->sceneId == SCENE_YADOYA) { + if ((6, 0) <= NOW <= (11, 0)) { + return ANJU_SCH_16; + } else if ((11, 0) <= NOW <= (11, 25)) { + return ANJU_SCH_34; + } else if ((11, 25) <= NOW <= (11, 30)) { + return ANJU_SCH_24; + } else if ((11, 30) <= NOW <= (11, 50)) { + return ANJU_SCH_35; + } else if ((11, 50) <= NOW <= (12, 0)) { + return ANJU_SCH_27; + } else { + return None; + } + } else if (play->sceneId == SCENE_OMOYA) { + if ((18, 0) <= NOW <= (6, 0)) { + return ANJU_SCH_RANCH; + } else { + return None; + } + } else { + return None; + } + } else { + return None; + } +} + */ + static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_NONE 10, // ANJU_SCH_1 -1, // ANJU_SCH_2 - 0, // ANJU_SCH_3 + 0, // ANJU_SCH_LAUNDRY_POOL_SIT -1, // ANJU_SCH_4 -1, // ANJU_SCH_5 -1, // ANJU_SCH_6 @@ -308,7 +545,7 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_9 -1, // ANJU_SCH_A -1, // ANJU_SCH_B - -1, // ANJU_SCH_C + -1, // ANJU_SCH_RANCH -1, // ANJU_SCH_D 0, // ANJU_SCH_E -1, // ANJU_SCH_F @@ -352,8 +589,8 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 24, // ANJU_SCH_35 1, // ANJU_SCH_36 2, // ANJU_SCH_37 - 0, // ANJU_SCH_38 - 1, // ANJU_SCH_39 + 0, // ANJU_SCH_LAUNDRY_POOL_WALKING_IN + 1, // ANJU_SCH_LAUNDRY_POOL_LEAVING 3, // ANJU_SCH_3A 4, // ANJU_SCH_3B 0, // ANJU_SCH_3C @@ -1271,7 +1508,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { this->msgEventFunc = func_80B54C5C; return D_80B58954; - case ANJU_SCH_C: + case ANJU_SCH_RANCH: return D_80B5899C; case ANJU_SCH_19: @@ -1291,7 +1528,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_2F: return D_80B58B7C; - case ANJU_SCH_3: + case ANJU_SCH_LAUNDRY_POOL_SIT: return D_80B58A24; case ANJU_SCH_31: @@ -1311,7 +1548,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return D_80B589AC; } - if (this->scheduleResult == ANJU_SCH_3) { + if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { this->msgEventFunc = func_80B54D18; return D_80B58B3C; } @@ -1335,7 +1572,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { this->msgEventFunc = func_80B54BC4; return D_80B589AC; } - if (this->scheduleResult == ANJU_SCH_3) { + if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { this->msgEventFunc = func_80B54D18; return D_80B58AF4; } @@ -1357,7 +1594,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_2D: return D_80B58980; - case ANJU_SCH_3: + case ANJU_SCH_LAUNDRY_POOL_SIT: this->msgEventFunc = func_80B54D18; return D_80B58AF4; @@ -1411,7 +1648,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->actor.child = this->lookAtActor; this->msgEventScript = EnAn_GetMsgEventScript(this, play); - if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || + if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || @@ -1422,7 +1659,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_20; } - if ((this->scheduleResult == ANJU_SCH_3) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { + if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { this->stateFlags &= ~ENAN_STATE_20; } @@ -2134,8 +2371,8 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_33: case ANJU_SCH_36: case ANJU_SCH_37: - case ANJU_SCH_38: - case ANJU_SCH_39: + case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: + case ANJU_SCH_LAUNDRY_POOL_LEAVING: case ANJU_SCH_3A: case ANJU_SCH_3B: case ANJU_SCH_3C: @@ -2177,8 +2414,8 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_36: case ANJU_SCH_37: - case ANJU_SCH_38: - case ANJU_SCH_39: + case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: + case ANJU_SCH_LAUNDRY_POOL_LEAVING: case ANJU_SCH_3A: case ANJU_SCH_3B: case ANJU_SCH_3C: @@ -2287,7 +2524,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } break; - case ANJU_SCH_3: + case ANJU_SCH_LAUNDRY_POOL_SIT: this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; @@ -2331,7 +2568,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58E88); Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); - if (scheduleOutput->result == ANJU_SCH_C) { + if (scheduleOutput->result == ANJU_SCH_RANCH) { EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); @@ -2415,7 +2652,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B5611C(this, play, scheduleOutput); break; - case ANJU_SCH_C: + case ANJU_SCH_RANCH: ret = func_80B56B00(this, play, scheduleOutput); break; @@ -2424,7 +2661,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B56BC0(this, play, scheduleOutput); break; - case ANJU_SCH_3: + case ANJU_SCH_LAUNDRY_POOL_SIT: case ANJU_SCH_E: case ANJU_SCH_12: case ANJU_SCH_13: @@ -2472,8 +2709,8 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_35: case ANJU_SCH_36: case ANJU_SCH_37: - case ANJU_SCH_38: - case ANJU_SCH_39: + case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: + case ANJU_SCH_LAUNDRY_POOL_LEAVING: case ANJU_SCH_3A: case ANJU_SCH_3B: case ANJU_SCH_3C: @@ -2714,7 +2951,7 @@ void func_80B57718(EnAn* this, PlayState* play) { func_80B56E44(this, play); break; - case ANJU_SCH_3: + case ANJU_SCH_LAUNDRY_POOL_SIT: func_80B573F4(this, play); break; @@ -2726,7 +2963,7 @@ void func_80B57718(EnAn* this, PlayState* play) { func_80B57674(this, play); break; - case ANJU_SCH_C: + case ANJU_SCH_RANCH: case ANJU_SCH_E: case ANJU_SCH_12: case ANJU_SCH_13: @@ -2771,8 +3008,8 @@ void func_80B57718(EnAn* this, PlayState* play) { case ANJU_SCH_35: case ANJU_SCH_36: case ANJU_SCH_37: - case ANJU_SCH_38: - case ANJU_SCH_39: + case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: + case ANJU_SCH_LAUNDRY_POOL_LEAVING: case ANJU_SCH_3A: case ANJU_SCH_3B: case ANJU_SCH_3C: @@ -2855,8 +3092,8 @@ void EnAn_Talk(EnAn* this, PlayState* play) { return; } - if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_3) || - (this->scheduleResult == ANJU_SCH_C) || (this->scheduleResult == ANJU_SCH_E) || + if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || + (this->scheduleResult == ANJU_SCH_RANCH) || (this->scheduleResult == ANJU_SCH_E) || (this->scheduleResult == ANJU_SCH_19)) { return; } From 327c3040cdfd70bc297d9bd7de7bc20b947b9efa Mon Sep 17 00:00:00 2001 From: angie Date: Wed, 11 Oct 2023 13:22:30 -0300 Subject: [PATCH 36/78] many placeholder names --- src/overlays/actors/ovl_En_An/z_en_an.c | 357 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 2 +- tools/disasm/functions.txt | 18 +- tools/disasm/variables.txt | 42 +-- 4 files changed, 213 insertions(+), 206 deletions(-) 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 fa6d9afe4..881513c4e 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -599,23 +599,23 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 3, // ANJU_SCH_3F }; -s32 D_80B58718[0x1B] = { +s32 sAnjuMsgScript_Sch10[0x1B] = { 0x00560800, 0x44090000, 0x0E28BA0C, 0x09000017, 0x0E28BB0C, 0x09000018, 0x0E28BC0C, 0x09000017, 0x0E28BD0C, 0x09000018, 0x0E28BE0C, 0x09000017, 0x0E28BF0C, 0x09000018, 0x0E28C02D, 0x00012D00, 0x0B0C0900, 0x00115608, 0x10090000, 0x0E295C0C, 0x09000017, 0x0E295D0C, 0x09000018, 0x0E295E2D, 0x00012D00, 0x0B0C0900, 0x00100000, }; -s32 D_80B58784[0x21] = { +s32 sAnjuMsgScript_Sch11[0x21] = { 0x09000000, 0x4B10001E, 0x0E28B10C, 0x09000017, 0x0E28B20C, 0x09000018, 0x0E28B32D, 0x00011137, 0x020C0900, 0x00100056, 0x10002E0E, 0x28B10C09, 0x0000170E, 0x28B50C09, 0x0000180E, 0x28B60C09, 0x0000170E, 0x28B70C09, 0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000, 0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000, }; -s32 D_80B58808[0x15] = { +s32 sAnjuMsgScript_Sch15[0x15] = { 0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018, 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, }; -s32 D_80B5885C[0x37] = { +s32 sAnjuMsgScript_Sch12_B[0x37] = { 0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000, 0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300, 0xA02F0000, 0x2E2D0014, 0x0C114B10, 0x0700000E, 0x28AD2D00, 0x010C2400, 0x41161031, 0x0E28A30C, @@ -624,28 +624,28 @@ s32 D_80B5885C[0x37] = { 0x10C11, 0x20201023, 0x400012, 0x0E28A00C, 0x0900000F, 0x28A62D00, 0x010C2400, 0x40100E28, 0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000, }; -s32 D_80B58938[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; -s32 D_80B58944[2] = { 0x0E28AF2D, 0x10C10 }; -s32 D_80B5894C[2] = { 0x0E28C12D, 0x10C10 }; -s32 D_80B58954[0xB] = { +s32 sAnjuMsgScript_Sch13_Sch2F[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_Sch30[2] = { 0x0E28AF2D, 0x10C10 }; +s32 sAnjuMsgScript_Sch28[2] = { 0x0E28C12D, 0x10C10 }; +s32 sAnjuMsgScript_SchE[0xB] = { 0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C, 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; s32 D_80B58980[2] = { 0x0E28C62D, 0x10C10 }; -s32 D_80B58988[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; -s32 D_80B58994[2] = { 0x0E28F82D, 0x10C10 }; -s32 D_80B5899C[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; -s32 D_80B589AC[0x14] = { +s32 sAnjuMsgScript_Sch16[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; +s32 sAnjuMsgScript_Sch34_Sch35[2] = { 0x0E28F82D, 0x10C10 }; +s32 sAnjuMsgScript_SchRanch[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; +s32 sAnjuMsgScript_Sch17_A[0x14] = { 0x0E28D70C, 0x0F28D80C, 0x0F28D90C, 0x0F28DA0C, 0x0F28DB0C, 0x05000700, 0x731, 0x0E28D919, -0x16CFF2, 0x28DC0C11, 0x32201132, 0x10120600, 0xAA000013, 0xAA2F00, 0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010, }; -s32 D_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; -s32 D_80B58A04[8] = { +s32 sAnjuMsgScript_Sch17_B[2] = { 0x0E28D62D, 0x10C10 }; +s32 sAnjuMsgScript_DekuDefault[8] = { 0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000, }; -s32 D_80B58A24[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; -s32 D_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; +s32 sAnjuMsgScript_SchLaundryPoolDeku[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; +s32 sAnjuMsgScript_Sch12_A[2] = { 0x0E28E02D, 0x10C10 }; s32 D_80B58A44[0x1E] = { 0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25, 0x30001D, 0x27000300, 0x080E28E3, 0x2D00010C, 0x100E28E2, 0x2D00010C, 0x100E28E1, 0x2D00010C, @@ -656,18 +656,18 @@ s32 D_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; s32 D_80B58AC4[9] = { 0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000, }; -s32 D_80B58AE8[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; -s32 D_80B58AF4[0x12] = { +s32 sAnjuMsgScript_Sch1[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_SchLaundryPoolDefault[0x12] = { 0x372000, 0x29003208, 0x2A0E28, -0x17F3EAF7, 0xE28, -0x16F3F0D8, -0x15F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; -s32 D_80B58B3C[0x10] = { +s32 sAnjuMsgScript_SchLaundryPoolKafeiMask[0x10] = { 0x372000, 0x21003208, 0x220E28, -0x17F3F0D8, -0x12F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; s32 D_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; -s32 D_80B58B88[2] = { 0x0E29612D, 0x10C10 }; -s32 D_80B58B90[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_Sch31[2] = { 0x0E29612D, 0x10C10 }; +s32 sAnjuMsgScript_Sch19[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; ActorInit En_An_InitVars = { ACTOR_EN_AN, @@ -1239,7 +1239,7 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) CLOSE_DISPS(play->state.gfxCtx); } -s32 func_80B54678(EnAn* this, s16 csId) { +s32 EnAn_ChangeCutscene(EnAn* this, s16 csId) { s32 ret = false; if (CutsceneManager_GetCurrentCsId() == CS_ID_GLOBAL_TALK) { @@ -1255,26 +1255,26 @@ s32 func_80B54678(EnAn* this, s16 csId) { return ret; } -s16 func_80B546F4(EnAn* this, s32 arg1) { +s16 EnAn_GetCsId(EnAn* this, s32 numCutscenes) { s16 csId = this->actor.csId; s32 i; - for (i = 0; i < arg1; i++) { + for (i = 0; i < numCutscenes; i++) { csId = CutsceneManager_GetAdditionalCsId(csId); } return csId; } -s16 func_80B54750(EnAn* this, s32 arg1) { - Actor* temp_v0 = this->actor.child; +s16 EnAn_GetChildCsId(EnAn* this, s32 numCutscenes) { + Actor* child = this->actor.child; s16 csId = -1; s32 i; - if ((temp_v0 != NULL) && (temp_v0->update != NULL)) { - csId = temp_v0->csId; + if ((child != NULL) && (child->update != NULL)) { + csId = child->csId; - for (i = 0; i < arg1; i++) { + for (i = 0; i < numCutscenes; i++) { csId = CutsceneManager_GetAdditionalCsId(csId); } } @@ -1282,15 +1282,15 @@ s16 func_80B54750(EnAn* this, s32 arg1) { return csId; } -s32 func_80B547C8(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_10(Actor* thisx, PlayState* play) { EnAn* this = THIS; - s16 csId = func_80B546F4(this, 0); + s16 csId = EnAn_GetCsId(this, 0); s32 ret = 0; - switch (this->unk_394) { + switch (this->msgEventState) { case 0x0: ret = 0; - if (func_80B54678(this, csId)) { + if (EnAn_ChangeCutscene(this, csId)) { goto label; } break; @@ -1301,40 +1301,41 @@ s32 func_80B547C8(Actor* thisx, PlayState* play) { label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = 1; - this->unk_394++; + this->msgEventState++; break; case 0x1: case 0x3: case 0x5: - if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08)) && (this->unk_394 == 3)) { + if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08)) && (this->msgEventState == 3)) { CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); } - this->unk_394++; + this->msgEventState++; ret = 1; break; case 0x7: CutsceneManager_Stop(csId); ret = 1; - this->unk_394++; + this->msgEventState++; break; } return ret; } -s32 func_80B5492C(Actor* thisx, PlayState* play) { + +s32 EnAn_MsgEvent_11(Actor* thisx, PlayState* play) { EnAn* this = THIS; - s16 csId = func_80B546F4(this, 0); + s16 csId = EnAn_GetCsId(this, 0); s32 var_a2 = 0; - switch (this->unk_394) { + switch (this->msgEventState) { case 0x0: var_a2 = 0; - if (func_80B54678(this, csId)) { + if (EnAn_ChangeCutscene(this, csId)) { goto label; } break; @@ -1344,40 +1345,40 @@ s32 func_80B5492C(Actor* thisx, PlayState* play) { label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); var_a2 = 1; - this->unk_394++; + this->msgEventState++; break; case 0x1: case 0x3: - if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY)) && (this->unk_394 == 3)) { + if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY)) && (this->msgEventState == 3)) { CutsceneManager_Stop(csId); - this->unk_394 = 5; + this->msgEventState = 5; } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); } - this->unk_394++; + this->msgEventState++; var_a2 = 1; break; case 0x5: CutsceneManager_Stop(csId); var_a2 = 1; - this->unk_394++; + this->msgEventState++; break; } return var_a2; } -s32 func_80B54A94(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_15(Actor* thisx, PlayState* play) { EnAn* this = THIS; - s16 csId = func_80B54750(this, 0); + s16 csId = EnAn_GetChildCsId(this, 0); s32 ret = 0; - switch (this->unk_394) { + switch (this->msgEventState) { case 0x0: ret = 0; - if (func_80B54678(this, csId)) { + if (EnAn_ChangeCutscene(this, csId)) { goto label; } break; @@ -1392,7 +1393,7 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { this->actor.child); } ret = 1; - this->unk_394++; + this->msgEventState++; break; case 0x1: @@ -1401,74 +1402,75 @@ s32 func_80B54A94(Actor* thisx, PlayState* play) { case 0x7: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = 1; - this->unk_394++; + this->msgEventState++; break; case 0x9: CutsceneManager_Stop(csId); ret = 1; - this->unk_394++; + this->msgEventState++; break; } return ret; } -s32 func_80B54BC4(Actor* thisx, PlayState* play) { +// Only used if Player is using Kafei's Mask or if Human and Promised midnight meeting +s32 EnAn_MsgEvent_17(Actor* thisx, PlayState* play) { EnAn* this = THIS; - if (this->unk_394 == 0) { + if (this->msgEventState == 0) { func_800B7298(play, &this->actor, PLAYER_CSMODE_WAIT); play->nextEntrance = ENTRANCE(STOCK_POT_INN, 3); gSaveContext.nextCutsceneIndex = 0; play->transitionTrigger = TRANS_TRIGGER_START; play->transitionType = TRANS_TYPE_FADE_BLACK; gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK_SLOW; - this->unk_394++; + this->msgEventState++; } return 0; } -s32 func_80B54C5C(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_E(Actor* thisx, PlayState* play) { EnAn* this = THIS; s32 sp20 = false; - switch (this->unk_394) { + switch (this->msgEventState) { case 0x0: EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING); - this->unk_394++; + this->msgEventState++; break; case 0x1: case 0x3: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - this->unk_394++; + this->msgEventState++; sp20 = true; } break; case 0x2: EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTING_END); - this->unk_394++; + this->msgEventState++; break; } return sp20; } -s32 func_80B54D18(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { EnAn* this = THIS; s32 ret = false; - switch (this->unk_394) { + switch (this->msgEventState) { case 0x0: if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { - this->unk_394++; + this->msgEventState++; goto label; } else { ret = true; this->stateFlags |= ENAN_STATE_DRAW_KAFEI_MASK; - this->unk_394++; + this->msgEventState++; } break; @@ -1478,7 +1480,7 @@ s32 func_80B54D18(Actor* thisx, PlayState* play) { this->stateFlags |= ENAN_STATE_200; EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); ret = true; - this->unk_394++; + this->msgEventState++; break; } @@ -1493,144 +1495,149 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_15: - this->msgEventFunc = func_80B54A94; - return D_80B58808; + this->msgEventFunc = EnAn_MsgEvent_15; + return sAnjuMsgScript_Sch15; case ANJU_SCH_10: - this->msgEventFunc = func_80B547C8; - return D_80B58718; + this->msgEventFunc = EnAn_MsgEvent_10; + return sAnjuMsgScript_Sch10; case ANJU_SCH_11: - this->msgEventFunc = func_80B5492C; - return D_80B58784; + this->msgEventFunc = EnAn_MsgEvent_11; + return sAnjuMsgScript_Sch11; case ANJU_SCH_E: - this->msgEventFunc = func_80B54C5C; - return D_80B58954; + this->msgEventFunc = EnAn_MsgEvent_E; + return sAnjuMsgScript_SchE; case ANJU_SCH_RANCH: - return D_80B5899C; + return sAnjuMsgScript_SchRanch; case ANJU_SCH_19: - return D_80B58B90; + return sAnjuMsgScript_Sch19; default: - if (player->transformation == PLAYER_FORM_DEKU) { - switch (this->scheduleResult) { - case ANJU_SCH_1: - return D_80B58AE8; + break; + } - case ANJU_SCH_28: - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: - case ANJU_SCH_2F: - return D_80B58B7C; + if (player->transformation == PLAYER_FORM_DEKU) { + switch (this->scheduleResult) { + case ANJU_SCH_1: + return sAnjuMsgScript_Sch1; - case ANJU_SCH_LAUNDRY_POOL_SIT: - return D_80B58A24; + case ANJU_SCH_28: + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: + case ANJU_SCH_2F: + return D_80B58B7C; - case ANJU_SCH_31: - return D_80B589FC; + case ANJU_SCH_LAUNDRY_POOL_SIT: + return sAnjuMsgScript_SchLaundryPoolDeku; - default: - return D_80B58A04; - } - } else { - if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { - if (this->scheduleResult == ANJU_SCH_31) { - return D_80B58B88; - } + case ANJU_SCH_31: + return sAnjuMsgScript_Sch17_B; - if (this->scheduleResult == ANJU_SCH_17) { - this->msgEventFunc = func_80B54BC4; - return D_80B589AC; - } + default: + break; + } - if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { - this->msgEventFunc = func_80B54D18; - return D_80B58B3C; - } + return sAnjuMsgScript_DekuDefault; + } - if (gSaveContext.save.day >= 2) { - return D_80B58A44; - } + if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { + if (this->scheduleResult == ANJU_SCH_31) { + return sAnjuMsgScript_Sch31; + } - // if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { - // if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, - // 18))) { - if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { - return D_80B58ABC; - } - return D_80B58AC4; - } + if (this->scheduleResult == ANJU_SCH_17) { + this->msgEventFunc = EnAn_MsgEvent_17; + return sAnjuMsgScript_Sch17_A; + } - if ((player->transformation == PLAYER_FORM_HUMAN) && - CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - if (this->scheduleResult == ANJU_SCH_17) { - this->msgEventFunc = func_80B54BC4; - return D_80B589AC; - } - if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { - this->msgEventFunc = func_80B54D18; - return D_80B58AF4; - } - if (gSaveContext.save.day >= 2) { - return D_80B58A44; - } - } + if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { + this->msgEventFunc = EnAn_MsgEvent_LaundryPool; + return sAnjuMsgScript_SchLaundryPoolKafeiMask; + } - switch (this->scheduleResult) { - case ANJU_SCH_1: - return D_80B58AE8; + if (gSaveContext.save.day >= 2) { + return D_80B58A44; + } - case ANJU_SCH_28: - return D_80B5894C; + // if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { + // if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, + // 18))) { + if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { + return D_80B58ABC; + } - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: - return D_80B58980; + return D_80B58AC4; + } - case ANJU_SCH_LAUNDRY_POOL_SIT: - this->msgEventFunc = func_80B54D18; - return D_80B58AF4; + if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { + if (this->scheduleResult == ANJU_SCH_17) { + this->msgEventFunc = EnAn_MsgEvent_17; + return sAnjuMsgScript_Sch17_A; + } - case ANJU_SCH_12: - if (gSaveContext.save.day >= 2) { - return D_80B58A3C; - } - return D_80B5885C; + if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { + this->msgEventFunc = EnAn_MsgEvent_LaundryPool; + return sAnjuMsgScript_SchLaundryPoolDefault; + } - case ANJU_SCH_13: - case ANJU_SCH_2F: - return D_80B58938; + if (gSaveContext.save.day >= 2) { + return D_80B58A44; + } + } - case ANJU_SCH_16: - return D_80B58988; + switch (this->scheduleResult) { + case ANJU_SCH_1: + return sAnjuMsgScript_Sch1; - case ANJU_SCH_17: - return D_80B589FC; + case ANJU_SCH_28: + return sAnjuMsgScript_Sch28; - case ANJU_SCH_30: - return D_80B58944; + case ANJU_SCH_2A: + case ANJU_SCH_2B: + case ANJU_SCH_2C: + case ANJU_SCH_2D: + return D_80B58980; - case ANJU_SCH_31: - if (player->transformation == PLAYER_FORM_HUMAN) { - return D_80B58B88; - } - return D_80B589FC; + case ANJU_SCH_LAUNDRY_POOL_SIT: + this->msgEventFunc = EnAn_MsgEvent_LaundryPool; + return sAnjuMsgScript_SchLaundryPoolDefault; - case ANJU_SCH_34: - case ANJU_SCH_35: - return D_80B58994; - - default: - break; - } + case ANJU_SCH_12: + if (gSaveContext.save.day >= 2) { + return sAnjuMsgScript_Sch12_A; } + return sAnjuMsgScript_Sch12_B; + + case ANJU_SCH_13: + case ANJU_SCH_2F: + return sAnjuMsgScript_Sch13_Sch2F; + + case ANJU_SCH_16: + return sAnjuMsgScript_Sch16; + + case ANJU_SCH_17: + return sAnjuMsgScript_Sch17_B; + + case ANJU_SCH_30: + return sAnjuMsgScript_Sch30; + + case ANJU_SCH_31: + if (player->transformation == PLAYER_FORM_HUMAN) { + return sAnjuMsgScript_Sch31; + } + return sAnjuMsgScript_Sch17_B; + + case ANJU_SCH_34: + case ANJU_SCH_35: + return sAnjuMsgScript_Sch34_Sch35; + + default: break; } @@ -1643,7 +1650,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { if ((this->stateFlags & SUBS_OFFER_MODE_MASK) && Actor_ProcessTalkRequest(&this->actor, &play->state)) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); this->unk_3C4 = 0; - this->unk_394 = 0; + this->msgEventState = 0; this->msgEventFunc = NULL; this->actor.child = this->lookAtActor; this->msgEventScript = EnAn_GetMsgEventScript(this, play); @@ -2840,7 +2847,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { break; case ANJU_SCH_1: - if (func_80B55ECC(this) != 0) { + if (func_80B55ECC(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2849,7 +2856,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { case ANJU_SCH_12: case ANJU_SCH_13: - if (func_80B55ECC(this) != 0) { + if (func_80B55ECC(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2920,7 +2927,7 @@ s32 func_80B575BC(EnAn* this, PlayState* play) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } - if (func_80B55ECC(this) != 0) { + if (func_80B55ECC(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 80f51ca5f..ab47ca189 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -80,7 +80,7 @@ typedef struct EnAn { /* 0x38E */ s16 eyeTimer; /* 0x390 */ s16 eyeTexIndex; /* 0x392 */ s16 mouthTexIndex; - /* 0x394 */ s16 unk_394; + /* 0x394 */ s16 msgEventState; /* 0x396 */ s16 dialogueFuncState; /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 animIndex; // EnAnAnimation enum diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 5dabe2207..ed752debc 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14016,15 +14016,15 @@ 0x80B53ED4:("EnAn_UpdateCollider",), 0x80B53F84:("EnAn_UpdateFace",), 0x80B54124:("EnAn_DrawAccessory",), - 0x80B54678:("func_80B54678",), - 0x80B546F4:("func_80B546F4",), - 0x80B54750:("func_80B54750",), - 0x80B547C8:("func_80B547C8",), - 0x80B5492C:("func_80B5492C",), - 0x80B54A94:("func_80B54A94",), - 0x80B54BC4:("func_80B54BC4",), - 0x80B54C5C:("func_80B54C5C",), - 0x80B54D18:("func_80B54D18",), + 0x80B54678:("EnAn_ChangeCutscene",), + 0x80B546F4:("EnAn_GetCsId",), + 0x80B54750:("EnAn_GetChildCsId",), + 0x80B547C8:("EnAn_MsgEvent_10",), + 0x80B5492C:("EnAn_MsgEvent_11",), + 0x80B54A94:("EnAn_MsgEvent_15",), + 0x80B54BC4:("EnAn_MsgEvent_17",), + 0x80B54C5C:("EnAn_MsgEvent_E",), + 0x80B54D18:("EnAn_MsgEvent_LaundryPool",), 0x80B54DF4:("EnAn_GetMsgEventScript",), 0x80B55180:("EnAn_CheckTalk",), 0x80B552E4:("func_80B552E4",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index c15a3d541..c14ae37cc 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14445,32 +14445,32 @@ 0x80B534AC:("D_80B534AC","f32","",0x4), 0x80B581D0:("sScheduleScript","UNK_TYPE1","",0x1), 0x80B58618:("sSearchTimePathLimit","UNK_TYPE1","",0x1), - 0x80B58718:("D_80B58718","UNK_TYPE1","",0x1), - 0x80B58784:("D_80B58784","UNK_TYPE1","",0x1), - 0x80B58808:("D_80B58808","UNK_TYPE1","",0x1), - 0x80B5885C:("D_80B5885C","UNK_TYPE1","",0x1), - 0x80B58938:("D_80B58938","UNK_TYPE1","",0x1), - 0x80B58944:("D_80B58944","UNK_TYPE1","",0x1), - 0x80B5894C:("D_80B5894C","UNK_TYPE1","",0x1), - 0x80B58954:("D_80B58954","UNK_TYPE1","",0x1), + 0x80B58718:("sAnjuMsgScript_Sch10","UNK_TYPE1","",0x1), + 0x80B58784:("sAnjuMsgScript_Sch11","UNK_TYPE1","",0x1), + 0x80B58808:("sAnjuMsgScript_Sch15","UNK_TYPE1","",0x1), + 0x80B5885C:("sAnjuMsgScript_Sch12_B","UNK_TYPE1","",0x1), + 0x80B58938:("sAnjuMsgScript_Sch13_Sch2F","UNK_TYPE1","",0x1), + 0x80B58944:("sAnjuMsgScript_Sch30","UNK_TYPE1","",0x1), + 0x80B5894C:("sAnjuMsgScript_Sch28","UNK_TYPE1","",0x1), + 0x80B58954:("sAnjuMsgScript_SchE","UNK_TYPE1","",0x1), 0x80B58980:("D_80B58980","UNK_TYPE1","",0x1), - 0x80B58988:("D_80B58988","UNK_TYPE1","",0x1), - 0x80B58994:("D_80B58994","UNK_TYPE1","",0x1), - 0x80B5899C:("D_80B5899C","UNK_TYPE1","",0x1), - 0x80B589AC:("D_80B589AC","UNK_TYPE1","",0x1), - 0x80B589FC:("D_80B589FC","UNK_TYPE1","",0x1), - 0x80B58A04:("D_80B58A04","UNK_TYPE1","",0x1), - 0x80B58A24:("D_80B58A24","UNK_TYPE1","",0x1), - 0x80B58A3C:("D_80B58A3C","UNK_TYPE1","",0x1), + 0x80B58988:("sAnjuMsgScript_Sch16","UNK_TYPE1","",0x1), + 0x80B58994:("sAnjuMsgScript_Sch34_Sch35","UNK_TYPE1","",0x1), + 0x80B5899C:("sAnjuMsgScript_SchRanch","UNK_TYPE1","",0x1), + 0x80B589AC:("sAnjuMsgScript_Sch17_A","UNK_TYPE1","",0x1), + 0x80B589FC:("sAnjuMsgScript_Sch17_B","UNK_TYPE1","",0x1), + 0x80B58A04:("sAnjuMsgScript_DekuDefault","UNK_TYPE1","",0x1), + 0x80B58A24:("sAnjuMsgScript_SchLaundryPoolDeku","UNK_TYPE1","",0x1), + 0x80B58A3C:("sAnjuMsgScript_Sch12_A","UNK_TYPE1","",0x1), 0x80B58A44:("D_80B58A44","UNK_TYPE1","",0x1), 0x80B58ABC:("D_80B58ABC","UNK_TYPE1","",0x1), 0x80B58AC4:("D_80B58AC4","UNK_TYPE1","",0x1), - 0x80B58AE8:("D_80B58AE8","UNK_TYPE1","",0x1), - 0x80B58AF4:("D_80B58AF4","UNK_TYPE1","",0x1), - 0x80B58B3C:("D_80B58B3C","UNK_TYPE1","",0x1), + 0x80B58AE8:("sAnjuMsgScript_Sch1","UNK_TYPE1","",0x1), + 0x80B58AF4:("sAnjuMsgScript_SchLaundryPoolDefault","UNK_TYPE1","",0x1), + 0x80B58B3C:("sAnjuMsgScript_SchLaundryPoolKafeiMask","UNK_TYPE1","",0x1), 0x80B58B7C:("D_80B58B7C","UNK_TYPE1","",0x1), - 0x80B58B88:("D_80B58B88","UNK_TYPE1","",0x1), - 0x80B58B90:("D_80B58B90","UNK_TYPE1","",0x1), + 0x80B58B88:("sAnjuMsgScript_Sch31","UNK_TYPE1","",0x1), + 0x80B58B90:("sAnjuMsgScript_Sch19","UNK_TYPE1","",0x1), 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), 0x80B58BBC:("sCylinderInit","UNK_TYPE1","",0x1), 0x80B58BE8:("sColChkInfoInit","UNK_TYPE1","",0x1), From 87bf041c7821a5bd8cdd5123eefc41504284fb23 Mon Sep 17 00:00:00 2001 From: Angie Date: Wed, 11 Oct 2023 23:45:59 -0300 Subject: [PATCH 37/78] name most of the important schedule values --- src/overlays/actors/ovl_En_An/z_en_an.c | 233 ++++++++++++------------ tools/disasm/functions.txt | 10 +- tools/disasm/variables.txt | 10 +- 3 files changed, 128 insertions(+), 125 deletions(-) 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 881513c4e..98356ce86 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -29,8 +29,8 @@ void EnAn_Talk(EnAn* this, PlayState* play); typedef enum AnjuScheduleResult { /* 0 */ ANJU_SCH_NONE, - /* 1 */ ANJU_SCH_1, - /* 2 */ ANJU_SCH_2, + /* 1 */ ANJU_SCH_WAITING_FOR_KAFEI, + /* 2 */ ANJU_SCH_2, // unused /* 3 */ ANJU_SCH_LAUNDRY_POOL_SIT, /* 4 */ ANJU_SCH_4, /* 5 */ ANJU_SCH_5, @@ -42,18 +42,18 @@ typedef enum AnjuScheduleResult { /* 11 */ ANJU_SCH_B, /* 12 */ ANJU_SCH_RANCH, /* 13 */ ANJU_SCH_D, - /* 14 */ ANJU_SCH_E, + /* 14 */ ANJU_SCH_COOKING, /* 15 */ ANJU_SCH_F, - /* 16 */ ANJU_SCH_10, - /* 17 */ ANJU_SCH_11, + /* 16 */ ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN, + /* 17 */ ANJU_SCH_ATTEND_GORON, // ANJU_SCH_ATTEND_LINK_THE_GORON? ANJU_SCH_ATTEND_PLAYER_THE_GORON? /* 18 */ ANJU_SCH_12, /* 19 */ ANJU_SCH_13, /* 20 */ ANJU_SCH_14, - /* 21 */ ANJU_SCH_15, + /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANDMA, /* 22 */ ANJU_SCH_16, /* 23 */ ANJU_SCH_17, /* 24 */ ANJU_SCH_18, - /* 25 */ ANJU_SCH_19, + /* 25 */ ANJU_SCH_19, // Set manually in code instead of via script /* 26 */ ANJU_SCH_1A, /* 27 */ ANJU_SCH_1B, /* 28 */ ANJU_SCH_1C, @@ -136,9 +136,9 @@ static u8 sScheduleScript[] = { /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12), - /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11), + /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON), /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12), - /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10), + /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN), /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12), /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), @@ -146,11 +146,11 @@ static u8 sScheduleScript[] = { /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), - /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), + /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), @@ -248,11 +248,11 @@ static u8 sScheduleScript[] = { /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15), + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), - /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E), + /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), @@ -284,8 +284,8 @@ static u8 sScheduleScript[] = { /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415), /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B), /* 0x41B */ SCHEDULE_CMD_RET_NONE(), - /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1), - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1), + /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_WAITING_FOR_KAFEI), + /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_WAITING_FOR_KAFEI), /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), @@ -306,7 +306,7 @@ s32 scheduleScript(PlayState* play) { } else if ((10, 55) <= NOW <= (11, 10)) { return ANJU_SCH_28; } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E; + return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { return ANJU_SCH_2A; } else if ((11, 50) <= NOW <= (11, 55)) { @@ -314,7 +314,7 @@ s32 scheduleScript(PlayState* play) { } else if ((11, 55) <= NOW <= (12, 0)) { return ANJU_SCH_2B; } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15; + return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; } else if ((12, 15) <= NOW <= (12, 20)) { return ANJU_SCH_2C; } else if ((12, 20) <= NOW <= (12, 25)) { @@ -330,11 +330,11 @@ s32 scheduleScript(PlayState* play) { } else if ((13, 50) <= NOW <= (14, 8)) { return ANJU_SCH_12; } else if ((14, 8) <= NOW <= (14, 18)) { - return ANJU_SCH_10; + return ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN; } else if ((14, 18) <= NOW <= (16, 10)) { return ANJU_SCH_12; } else if ((16, 10) <= NOW <= (16, 30)) { - return ANJU_SCH_11; + return ANJU_SCH_ATTEND_GORON; } else if ((16, 30) <= NOW <= (19, 50)) { return ANJU_SCH_12; } else if ((19, 50) <= NOW <= (20, 20)) { @@ -372,7 +372,7 @@ s32 scheduleScript(PlayState* play) { } else if ((10, 55) <= NOW <= (11, 10)) { return ANJU_SCH_28; } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E; + return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { return ANJU_SCH_2A; } else if ((11, 50) <= NOW <= (11, 55)) { @@ -380,7 +380,7 @@ s32 scheduleScript(PlayState* play) { } else if ((11, 55) <= NOW <= (12, 0)) { return ANJU_SCH_2B; } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15; + return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; } else if ((12, 15) <= NOW <= (12, 20)) { return ANJU_SCH_2C; } else if ((12, 20) <= NOW <= (12, 25)) { @@ -494,9 +494,9 @@ s32 scheduleScript(PlayState* play) { } else if ((11, 50) <= NOW <= (12, 0)) { return ANJU_SCH_27; } else if ((18, 0) <= NOW <= (5, 0)) { - return ANJU_SCH_1; + return ANJU_SCH_WAITING_FOR_KAFEI; } else if ((5, 0) <= NOW <= (6, 0)) { - return ANJU_SCH_1; + return ANJU_SCH_WAITING_FOR_KAFEI; } else { return None; } @@ -534,7 +534,7 @@ s32 scheduleScript(PlayState* play) { static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_NONE - 10, // ANJU_SCH_1 + 10, // ANJU_SCH_WAITING_FOR_KAFEI -1, // ANJU_SCH_2 0, // ANJU_SCH_LAUNDRY_POOL_SIT -1, // ANJU_SCH_4 @@ -547,14 +547,14 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_B -1, // ANJU_SCH_RANCH -1, // ANJU_SCH_D - 0, // ANJU_SCH_E + 0, // ANJU_SCH_COOKING -1, // ANJU_SCH_F - 10, // ANJU_SCH_10 - 10, // ANJU_SCH_11 + 10, // ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN + 10, // ANJU_SCH_ATTEND_GORON 10, // ANJU_SCH_12 11, // ANJU_SCH_13 -1, // ANJU_SCH_14 - 4, // ANJU_SCH_15 + 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANDMA 22, // ANJU_SCH_16 15, // ANJU_SCH_17 -1, // ANJU_SCH_18 @@ -599,18 +599,18 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 3, // ANJU_SCH_3F }; -s32 sAnjuMsgScript_Sch10[0x1B] = { +s32 sAnjuMsgScript_SchReceiveLetterFromPostman[0x1B] = { 0x00560800, 0x44090000, 0x0E28BA0C, 0x09000017, 0x0E28BB0C, 0x09000018, 0x0E28BC0C, 0x09000017, 0x0E28BD0C, 0x09000018, 0x0E28BE0C, 0x09000017, 0x0E28BF0C, 0x09000018, 0x0E28C02D, 0x00012D00, 0x0B0C0900, 0x00115608, 0x10090000, 0x0E295C0C, 0x09000017, 0x0E295D0C, 0x09000018, 0x0E295E2D, 0x00012D00, 0x0B0C0900, 0x00100000, }; -s32 sAnjuMsgScript_Sch11[0x21] = { +s32 sAnjuMsgScript_SchAttendGoron[0x21] = { 0x09000000, 0x4B10001E, 0x0E28B10C, 0x09000017, 0x0E28B20C, 0x09000018, 0x0E28B32D, 0x00011137, 0x020C0900, 0x00100056, 0x10002E0E, 0x28B10C09, 0x0000170E, 0x28B50C09, 0x0000180E, 0x28B60C09, 0x0000170E, 0x28B70C09, 0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000, 0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000, }; -s32 sAnjuMsgScript_Sch15[0x15] = { +s32 sAnjuMsgScript_SchGiveLunchToGrandma[0x15] = { 0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018, 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, @@ -627,7 +627,7 @@ s32 sAnjuMsgScript_Sch12_B[0x37] = { s32 sAnjuMsgScript_Sch13_Sch2F[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; s32 sAnjuMsgScript_Sch30[2] = { 0x0E28AF2D, 0x10C10 }; s32 sAnjuMsgScript_Sch28[2] = { 0x0E28C12D, 0x10C10 }; -s32 sAnjuMsgScript_SchE[0xB] = { +s32 sAnjuMsgScript_SchCooking[0xB] = { 0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C, 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; @@ -656,7 +656,7 @@ s32 D_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; s32 D_80B58AC4[9] = { 0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000, }; -s32 sAnjuMsgScript_Sch1[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_SchWaitingForKafei[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; s32 sAnjuMsgScript_SchLaundryPoolDefault[0x12] = { 0x372000, 0x29003208, 0x2A0E28, -0x17F3EAF7, 0xE28, -0x16F3F0D8, -0x15F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, @@ -787,7 +787,7 @@ Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) return foundActor; } -EnDoor* EnAn_FindDoor(PlayState* play, s32 scheduleOutputResult) { +EnDoor* EnAn_FindDoor(PlayState* play, AnjuScheduleResult scheduleOutputResult) { s32 switchFlag; switch (scheduleOutputResult) { @@ -1282,7 +1282,7 @@ s16 EnAn_GetChildCsId(EnAn* this, s32 numCutscenes) { return csId; } -s32 EnAn_MsgEvent_10(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetCsId(this, 0); s32 ret = 0; @@ -1327,7 +1327,7 @@ s32 EnAn_MsgEvent_10(Actor* thisx, PlayState* play) { return ret; } -s32 EnAn_MsgEvent_11(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetCsId(this, 0); s32 var_a2 = 0; @@ -1370,7 +1370,7 @@ s32 EnAn_MsgEvent_11(Actor* thisx, PlayState* play) { return var_a2; } -s32 EnAn_MsgEvent_15(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_GiveLunchToGrandma(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetChildCsId(this, 0); s32 ret = 0; @@ -1431,7 +1431,7 @@ s32 EnAn_MsgEvent_17(Actor* thisx, PlayState* play) { return 0; } -s32 EnAn_MsgEvent_E(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_Cooking(Actor* thisx, PlayState* play) { EnAn* this = THIS; s32 sp20 = false; @@ -1494,21 +1494,21 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); switch (this->scheduleResult) { - case ANJU_SCH_15: - this->msgEventFunc = EnAn_MsgEvent_15; - return sAnjuMsgScript_Sch15; + case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: + this->msgEventFunc = EnAn_MsgEvent_GiveLunchToGrandma; + return sAnjuMsgScript_SchGiveLunchToGrandma; - case ANJU_SCH_10: - this->msgEventFunc = EnAn_MsgEvent_10; - return sAnjuMsgScript_Sch10; + case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: + this->msgEventFunc = EnAn_MsgEvent_ReceiveLetterFromPostman; + return sAnjuMsgScript_SchReceiveLetterFromPostman; - case ANJU_SCH_11: - this->msgEventFunc = EnAn_MsgEvent_11; - return sAnjuMsgScript_Sch11; + case ANJU_SCH_ATTEND_GORON: + this->msgEventFunc = EnAn_MsgEvent_AttendGoron; + return sAnjuMsgScript_SchAttendGoron; - case ANJU_SCH_E: - this->msgEventFunc = EnAn_MsgEvent_E; - return sAnjuMsgScript_SchE; + case ANJU_SCH_COOKING: + this->msgEventFunc = EnAn_MsgEvent_Cooking; + return sAnjuMsgScript_SchCooking; case ANJU_SCH_RANCH: return sAnjuMsgScript_SchRanch; @@ -1522,8 +1522,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { if (player->transformation == PLAYER_FORM_DEKU) { switch (this->scheduleResult) { - case ANJU_SCH_1: - return sAnjuMsgScript_Sch1; + case ANJU_SCH_WAITING_FOR_KAFEI: + return sAnjuMsgScript_SchWaitingForKafei; case ANJU_SCH_28: case ANJU_SCH_2A: @@ -1592,8 +1592,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } switch (this->scheduleResult) { - case ANJU_SCH_1: - return sAnjuMsgScript_Sch1; + case ANJU_SCH_WAITING_FOR_KAFEI: + return sAnjuMsgScript_SchWaitingForKafei; case ANJU_SCH_28: return sAnjuMsgScript_Sch28; @@ -1655,7 +1655,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->actor.child = this->lookAtActor; this->msgEventScript = EnAn_GetMsgEventScript(this, play); - if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || + if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || @@ -1758,10 +1758,11 @@ void func_80B554E8(EnAn* this) { } } +// EnAn_ChooseAnimForSchedule? s32 func_80B555C8(EnAn* this, PlayState* play) { switch (this->scheduleResult) { - case ANJU_SCH_10: - case ANJU_SCH_11: + case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: + case ANJU_SCH_ATTEND_GORON: case ANJU_SCH_12: case ANJU_SCH_13: case ANJU_SCH_17: @@ -1773,11 +1774,11 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; - case ANJU_SCH_E: + case ANJU_SCH_COOKING: EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); break; - case ANJU_SCH_15: + case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); break; @@ -2126,15 +2127,15 @@ Actor* EnAn_FindLookAtActor(EnAn* this, PlayState* play) { actor = &GET_PLAYER(play)->actor; break; - case ANJU_SCH_15: + case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_NB); break; - case ANJU_SCH_10: + case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_PM); break; - case ANJU_SCH_11: + case ANJU_SCH_ATTEND_GORON: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_IG); break; } @@ -2148,14 +2149,15 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u Vec3f sp3C; Vec3f sp30; Actor* actor; - s32 pad; + s32 limit; s32 ret = false; actor = EnAn_FindActor(this, play, actorCategory, actorId); this->timePath = NULL; - if (sSearchTimePathLimit[scheduleOutput->result] >= 0) { - this->timePath = SubS_GetAdditionalPath(play, pathIndex, sSearchTimePathLimit[scheduleOutput->result]); + limit = sSearchTimePathLimit[scheduleOutput->result]; + if (limit >= 0) { + this->timePath = SubS_GetAdditionalPath(play, pathIndex, limit); } if ((actor != NULL) && (actor->update != NULL)) { @@ -2173,16 +2175,17 @@ s32 func_80B55D98(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput, u return ret; } -s32 func_80B55ECC(EnAn* this) { +s32 EnAn_IsFacingAndNearPlayer(EnAn* this) { s32 ret = false; - if (Actor_IsFacingAndNearPlayer(&this->actor, (this->unk_3BC != 0) ? 150.0f : 100.0f, 0x2800)) { + // TODO: why is the range variable? + if (Actor_IsFacingAndNearPlayer(&this->actor, this->unk_3BC ? 150.0f : 100.0f, 0x2800)) { ret = true; } if (DECR(this->unk_386) == 0) { this->unk_3BC ^= 1; - this->unk_386 = Rand_S16Offset(0x3C, 0x3C); + this->unk_386 = Rand_S16Offset(60, 60); // 3~6 seconds } return ret; @@ -2190,17 +2193,17 @@ s32 func_80B55ECC(EnAn* this) { s32 func_80B55F8C(PlayState* play) { Player* player = GET_PLAYER(play); - s32 var_v1 = false; + s32 ret = false; if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - var_v1 = true; + ret = true; } else if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - var_v1 = true; + ret = true; } - return var_v1; + return ret; } s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { @@ -2332,17 +2335,17 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 now = SCHEDULE_TIME_NOW; - u16 var_v1_2; + u16 startTime; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); s32 pad; - s32 var_v1 = 0; - s32 temp_a3; + s32 ret = false; + s32 limit; this->timePath = NULL; - temp_a3 = sSearchTimePathLimit[scheduleOutput->result]; - if (temp_a3 >= 0) { - this->timePath = SubS_GetAdditionalPath(play, pathIndex, temp_a3); + limit = sSearchTimePathLimit[scheduleOutput->result]; + if (limit >= 0) { + this->timePath = SubS_GetAdditionalPath(play, pathIndex, limit); } if ((this->timePath != NULL) && (this->timePath->count < 3)) { @@ -2352,20 +2355,20 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if (this->timePath != NULL) { if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && (this->timePathTimeSpeed >= 0)) { - var_v1_2 = now; + startTime = now; } else { - var_v1_2 = scheduleOutput->time0; + startTime = scheduleOutput->time0; } - if (scheduleOutput->time1 < var_v1_2) { - this->timePathTotalTime = (var_v1_2 - scheduleOutput->time1) + 0xFFFF; + if (scheduleOutput->time1 < startTime) { + this->timePathTotalTime = (startTime - scheduleOutput->time1) + 0xFFFF; } else { - this->timePathTotalTime = scheduleOutput->time1 - var_v1_2; + this->timePathTotalTime = scheduleOutput->time1 - startTime; } - this->timePathElapsedTime = now - var_v1_2; - var_v1_2 = (this->timePath->count - 2); - this->timePathWaypointTime = this->timePathTotalTime / var_v1_2; + this->timePathElapsedTime = now - startTime; + startTime = (this->timePath->count - 2); + this->timePathWaypointTime = this->timePathTotalTime / startTime; this->timePathWaypoint = (this->timePathElapsedTime / this->timePathWaypointTime) + 2; this->stateFlags &= ~ENAN_STATE_8; @@ -2446,18 +2449,18 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { break; } - var_v1 = 1; + ret = true; this->actor.gravity = -1.0f; } - return var_v1; + return ret; } s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3f sp40; Vec3f sp34; - Vec3s* temp_v0_2; + Vec3s* points; s32 limit; s32 ret = false; @@ -2469,9 +2472,9 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if ((this->timePath != NULL) && (this->timePath->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[0]); - Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[1]); + points = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp40, &points[0]); + Math_Vec3s_ToVec3f(&sp34, &points[1]); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); @@ -2494,7 +2497,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3f sp40; Vec3f sp34; - Vec3s* temp_v0_2; // sp30 + Vec3s* points; s32 limit; s32 ret = false; @@ -2505,9 +2508,9 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if ((this->timePath != NULL) && (this->timePath->count >= 2)) { - temp_v0_2 = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &temp_v0_2[this->timePath->count - 1]); - Math_Vec3s_ToVec3f(&sp34, &temp_v0_2[this->timePath->count - 2]); + points = Lib_SegmentedToVirtual(this->timePath->points); + Math_Vec3s_ToVec3f(&sp40, &points[this->timePath->count - 1]); + Math_Vec3s_ToVec3f(&sp34, &points[this->timePath->count - 2]); this->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); @@ -2551,7 +2554,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->eyeTimer = 8; break; - case ANJU_SCH_E: + case ANJU_SCH_COOKING: EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); @@ -2601,7 +2604,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); switch (scheduleOutput->result) { - case ANJU_SCH_1: + case ANJU_SCH_WAITING_FOR_KAFEI: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT); break; @@ -2647,15 +2650,15 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche this->unk_374 = 40.0f; switch (scheduleOutput->result) { - case ANJU_SCH_10: + case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: ret = func_80B5600C(this, play, scheduleOutput); break; - case ANJU_SCH_11: + case ANJU_SCH_ATTEND_GORON: ret = func_80B56094(this, play, scheduleOutput); break; - case ANJU_SCH_15: + case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: ret = func_80B5611C(this, play, scheduleOutput); break; @@ -2663,13 +2666,13 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B56B00(this, play, scheduleOutput); break; - case ANJU_SCH_1: + case ANJU_SCH_WAITING_FOR_KAFEI: case ANJU_SCH_18: ret = func_80B56BC0(this, play, scheduleOutput); break; case ANJU_SCH_LAUNDRY_POOL_SIT: - case ANJU_SCH_E: + case ANJU_SCH_COOKING: case ANJU_SCH_12: case ANJU_SCH_13: case ANJU_SCH_17: @@ -2839,15 +2842,15 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { s32 func_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_17: - if ((func_80B55F8C(play) != 0) && func_80B55ECC(this)) { + if (func_80B55F8C(play) && EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; } break; - case ANJU_SCH_1: - if (func_80B55ECC(this)) { + case ANJU_SCH_WAITING_FOR_KAFEI: + if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2856,7 +2859,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { case ANJU_SCH_12: case ANJU_SCH_13: - if (func_80B55ECC(this)) { + if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2927,7 +2930,7 @@ s32 func_80B575BC(EnAn* this, PlayState* play) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } - if (func_80B55ECC(this)) { + if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { this->stateFlags &= ~ENAN_STATE_20; @@ -2952,9 +2955,9 @@ s32 func_80B57674(EnAn* this, PlayState* play) { void func_80B57718(EnAn* this, PlayState* play) { switch (this->scheduleResult) { - case ANJU_SCH_10: - case ANJU_SCH_11: - case ANJU_SCH_15: + case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: + case ANJU_SCH_ATTEND_GORON: + case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: func_80B56E44(this, play); break; @@ -2962,7 +2965,7 @@ void func_80B57718(EnAn* this, PlayState* play) { func_80B573F4(this, play); break; - case ANJU_SCH_1: + case ANJU_SCH_WAITING_FOR_KAFEI: func_80B575BC(this, play); break; @@ -2971,7 +2974,7 @@ void func_80B57718(EnAn* this, PlayState* play) { break; case ANJU_SCH_RANCH: - case ANJU_SCH_E: + case ANJU_SCH_COOKING: case ANJU_SCH_12: case ANJU_SCH_13: case ANJU_SCH_16: @@ -3099,8 +3102,8 @@ void EnAn_Talk(EnAn* this, PlayState* play) { return; } - if ((this->scheduleResult == ANJU_SCH_1) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || - (this->scheduleResult == ANJU_SCH_RANCH) || (this->scheduleResult == ANJU_SCH_E) || + if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || + (this->scheduleResult == ANJU_SCH_RANCH) || (this->scheduleResult == ANJU_SCH_COOKING) || (this->scheduleResult == ANJU_SCH_19)) { return; } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index ed752debc..1254c3a11 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14019,11 +14019,11 @@ 0x80B54678:("EnAn_ChangeCutscene",), 0x80B546F4:("EnAn_GetCsId",), 0x80B54750:("EnAn_GetChildCsId",), - 0x80B547C8:("EnAn_MsgEvent_10",), - 0x80B5492C:("EnAn_MsgEvent_11",), - 0x80B54A94:("EnAn_MsgEvent_15",), + 0x80B547C8:("EnAn_MsgEvent_ReceiveLetterFromPostman",), + 0x80B5492C:("EnAn_MsgEvent_AttendGoron",), + 0x80B54A94:("EnAn_MsgEvent_GiveLunchToGrandma",), 0x80B54BC4:("EnAn_MsgEvent_17",), - 0x80B54C5C:("EnAn_MsgEvent_E",), + 0x80B54C5C:("EnAn_MsgEvent_Cooking",), 0x80B54D18:("EnAn_MsgEvent_LaundryPool",), 0x80B54DF4:("EnAn_GetMsgEventScript",), 0x80B55180:("EnAn_CheckTalk",), @@ -14037,7 +14037,7 @@ 0x80B55914:("EnAn_HandleDialogue",), 0x80B55D20:("EnAn_FindLookAtActor",), 0x80B55D98:("func_80B55D98",), - 0x80B55ECC:("func_80B55ECC",), + 0x80B55ECC:("EnAn_IsFacingAndNearPlayer",), 0x80B55F8C:("func_80B55F8C",), 0x80B5600C:("func_80B5600C",), 0x80B56094:("func_80B56094",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index c14ae37cc..54ca0dfbd 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14445,14 +14445,14 @@ 0x80B534AC:("D_80B534AC","f32","",0x4), 0x80B581D0:("sScheduleScript","UNK_TYPE1","",0x1), 0x80B58618:("sSearchTimePathLimit","UNK_TYPE1","",0x1), - 0x80B58718:("sAnjuMsgScript_Sch10","UNK_TYPE1","",0x1), - 0x80B58784:("sAnjuMsgScript_Sch11","UNK_TYPE1","",0x1), - 0x80B58808:("sAnjuMsgScript_Sch15","UNK_TYPE1","",0x1), + 0x80B58718:("sAnjuMsgScript_SchReceiveLetterFromPostman","UNK_TYPE1","",0x1), + 0x80B58784:("sAnjuMsgScript_SchAttendGoron","UNK_TYPE1","",0x1), + 0x80B58808:("sAnjuMsgScript_SchGiveLunchToGrandma","UNK_TYPE1","",0x1), 0x80B5885C:("sAnjuMsgScript_Sch12_B","UNK_TYPE1","",0x1), 0x80B58938:("sAnjuMsgScript_Sch13_Sch2F","UNK_TYPE1","",0x1), 0x80B58944:("sAnjuMsgScript_Sch30","UNK_TYPE1","",0x1), 0x80B5894C:("sAnjuMsgScript_Sch28","UNK_TYPE1","",0x1), - 0x80B58954:("sAnjuMsgScript_SchE","UNK_TYPE1","",0x1), + 0x80B58954:("sAnjuMsgScript_SchCooking","UNK_TYPE1","",0x1), 0x80B58980:("D_80B58980","UNK_TYPE1","",0x1), 0x80B58988:("sAnjuMsgScript_Sch16","UNK_TYPE1","",0x1), 0x80B58994:("sAnjuMsgScript_Sch34_Sch35","UNK_TYPE1","",0x1), @@ -14465,7 +14465,7 @@ 0x80B58A44:("D_80B58A44","UNK_TYPE1","",0x1), 0x80B58ABC:("D_80B58ABC","UNK_TYPE1","",0x1), 0x80B58AC4:("D_80B58AC4","UNK_TYPE1","",0x1), - 0x80B58AE8:("sAnjuMsgScript_Sch1","UNK_TYPE1","",0x1), + 0x80B58AE8:("sAnjuMsgScript_SchWaitingForKafei","UNK_TYPE1","",0x1), 0x80B58AF4:("sAnjuMsgScript_SchLaundryPoolDefault","UNK_TYPE1","",0x1), 0x80B58B3C:("sAnjuMsgScript_SchLaundryPoolKafeiMask","UNK_TYPE1","",0x1), 0x80B58B7C:("D_80B58B7C","UNK_TYPE1","",0x1), From 6b0ffd76f18e685450e00125a85f7be69d783ee6 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 12 Oct 2023 15:55:07 -0300 Subject: [PATCH 38/78] Add notes to every reamining schedule enum value --- assets/xml/objects/object_an1.xml | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 314 +++++++++--------- src/overlays/actors/ovl_En_An/z_en_an.h | 2 +- src/overlays/actors/ovl_En_Door/z_en_door.c | 8 +- src/overlays/actors/ovl_En_Door/z_en_door.h | 4 +- src/overlays/actors/ovl_En_Gm/z_en_gm.c | 4 +- src/overlays/actors/ovl_En_Ig/z_en_ig.c | 4 +- .../actors/ovl_En_Pamera/z_en_pamera.c | 2 +- src/overlays/actors/ovl_En_Pm/z_en_pm.c | 4 +- .../actors/ovl_En_Suttari/z_en_suttari.c | 2 +- src/overlays/actors/ovl_En_Tk/z_en_tk.c | 4 +- tools/disasm/functions.txt | 8 +- tools/disasm/variables.txt | 10 +- 13 files changed, 190 insertions(+), 178 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index 2f12d6683..e59de7810 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -57,7 +57,7 @@ - + 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 98356ce86..bede5e73e 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -32,66 +32,66 @@ typedef enum AnjuScheduleResult { /* 1 */ ANJU_SCH_WAITING_FOR_KAFEI, /* 2 */ ANJU_SCH_2, // unused /* 3 */ ANJU_SCH_LAUNDRY_POOL_SIT, - /* 4 */ ANJU_SCH_4, - /* 5 */ ANJU_SCH_5, - /* 6 */ ANJU_SCH_6, - /* 7 */ ANJU_SCH_7, - /* 8 */ ANJU_SCH_8, - /* 9 */ ANJU_SCH_9, - /* 10 */ ANJU_SCH_A, - /* 11 */ ANJU_SCH_B, + /* 4 */ ANJU_SCH_4, // unused + /* 5 */ ANJU_SCH_5, // unused + /* 6 */ ANJU_SCH_6, // unused + /* 7 */ ANJU_SCH_7, // unused + /* 8 */ ANJU_SCH_8, // unused + /* 9 */ ANJU_SCH_9, // unused + /* 10 */ ANJU_SCH_A, // unused + /* 11 */ ANJU_SCH_B, // unused /* 12 */ ANJU_SCH_RANCH, - /* 13 */ ANJU_SCH_D, + /* 13 */ ANJU_SCH_D, // unused /* 14 */ ANJU_SCH_COOKING, - /* 15 */ ANJU_SCH_F, + /* 15 */ ANJU_SCH_F, // unused /* 16 */ ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN, /* 17 */ ANJU_SCH_ATTEND_GORON, // ANJU_SCH_ATTEND_LINK_THE_GORON? ANJU_SCH_ATTEND_PLAYER_THE_GORON? - /* 18 */ ANJU_SCH_12, - /* 19 */ ANJU_SCH_13, - /* 20 */ ANJU_SCH_14, + /* 18 */ ANJU_SCH_RECEPTIONIST_IDLE, + /* 19 */ ANJU_SCH_13, // Standing next to the Inn's front door at closing time + /* 20 */ ANJU_SCH_14, // unused /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANDMA, - /* 22 */ ANJU_SCH_16, - /* 23 */ ANJU_SCH_17, - /* 24 */ ANJU_SCH_18, + /* 22 */ ANJU_SCH_SWEEPING, + /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, + /* 24 */ ANJU_SCH_18, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom /* 25 */ ANJU_SCH_19, // Set manually in code instead of via script - /* 26 */ ANJU_SCH_1A, - /* 27 */ ANJU_SCH_1B, - /* 28 */ ANJU_SCH_1C, - /* 29 */ ANJU_SCH_1D, - /* 30 */ ANJU_SCH_1E, - /* 31 */ ANJU_SCH_1F, - /* 32 */ ANJU_SCH_20, - /* 33 */ ANJU_SCH_21, - /* 34 */ ANJU_SCH_22, - /* 35 */ ANJU_SCH_23, - /* 36 */ ANJU_SCH_24, - /* 37 */ ANJU_SCH_25, - /* 38 */ ANJU_SCH_26, - /* 39 */ ANJU_SCH_27, - /* 40 */ ANJU_SCH_28, - /* 41 */ ANJU_SCH_29, - /* 42 */ ANJU_SCH_2A, - /* 43 */ ANJU_SCH_2B, - /* 44 */ ANJU_SCH_2C, - /* 45 */ ANJU_SCH_2D, - /* 46 */ ANJU_SCH_2E, - /* 47 */ ANJU_SCH_2F, - /* 48 */ ANJU_SCH_30, - /* 49 */ ANJU_SCH_31, - /* 50 */ ANJU_SCH_32, - /* 51 */ ANJU_SCH_33, - /* 52 */ ANJU_SCH_34, - /* 53 */ ANJU_SCH_35, - /* 54 */ ANJU_SCH_36, - /* 55 */ ANJU_SCH_37, + /* 26 */ ANJU_SCH_1A, // Passing through to Grandma's door (entering) + /* 27 */ ANJU_SCH_1B, // Passing through to Grandma's door (leaving) + /* 28 */ ANJU_SCH_1C, // Passing through the door of the employees-only room (entering), after giving Grandma's lunch + /* 29 */ ANJU_SCH_1D, // Passing through the door of the employees-only room (leaving), after giving Grandma's lunch + /* 30 */ ANJU_SCH_1E, // Passing through the door of the employees-only room (entering), after closing the Inn + /* 31 */ ANJU_SCH_1F, // Passing through the door of the employees-only room (leaving), to have the midnight meeting + /* 32 */ ANJU_SCH_20, // Passing through the door of the employees-only room (leaving), going to the Laundry Pool + /* 33 */ ANJU_SCH_21, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool + /* 34 */ ANJU_SCH_22, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool + /* 35 */ ANJU_SCH_23, // Passing through the door of the employees-only room (entering), after going to the Laundry Pool + /* 36 */ ANJU_SCH_24, // Day 3, 11:25 ~ 11:30, passing through the door after sweeping + /* 37 */ ANJU_SCH_25, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool + /* 38 */ ANJU_SCH_26, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool + /* 39 */ ANJU_SCH_27, // Day 3, 11:50 ~ 12:00, passing through the door of the employees-only room + /* 40 */ ANJU_SCH_28, // Going from the front desk to the kitchen + /* 41 */ ANJU_SCH_29, // unused + /* 42 */ ANJU_SCH_2A, // Walking from the kitchen to Grandma's room + /* 43 */ ANJU_SCH_2B, // Inside Grandma's room, walking to give her her food + /* 44 */ ANJU_SCH_2C, // Inside Grandma's room, walking out + /* 45 */ ANJU_SCH_2D, // Left Grandma's room, walking towards employees-only room + /* 46 */ ANJU_SCH_2E, // Left employees-only room, walking to front desk + /* 47 */ ANJU_SCH_2F, // Walking from the front desk to right next to the Inn's front door + /* 48 */ ANJU_SCH_30, // Walking from the Inn's front door after closing, to the employees-only room + /* 49 */ ANJU_SCH_31, // Walking from the employees-only room to the kitchen, to have the midnight meeting + /* 50 */ ANJU_SCH_32, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool + /* 51 */ ANJU_SCH_33, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool + /* 52 */ ANJU_SCH_34, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room + /* 53 */ ANJU_SCH_35, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping + /* 54 */ ANJU_SCH_36, // Walking through East Clock Town, going to the Laundry Pool + /* 55 */ ANJU_SCH_37, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool /* 56 */ ANJU_SCH_LAUNDRY_POOL_WALKING_IN, /* 57 */ ANJU_SCH_LAUNDRY_POOL_LEAVING, - /* 58 */ ANJU_SCH_3A, - /* 59 */ ANJU_SCH_3B, - /* 60 */ ANJU_SCH_3C, - /* 61 */ ANJU_SCH_3D, - /* 62 */ ANJU_SCH_3E, - /* 63 */ ANJU_SCH_3F, + /* 58 */ ANJU_SCH_3A, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool + /* 59 */ ANJU_SCH_3B, // Walking through East Clock Town, going to the Inn from the Laundry Pool + /* 60 */ ANJU_SCH_3C, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool + /* 61 */ ANJU_SCH_3D, // Walking through South Clock Town, going to the Laundry Pool + /* 62 */ ANJU_SCH_3E, // Walking through South Clock Town, going to the Inn from the Laundry Pool + /* 63 */ ANJU_SCH_3F, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; @@ -127,7 +127,7 @@ static u8 sScheduleScript[] = { /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4), /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(), /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17), + /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_MIDNIGHT_MEETING), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F), @@ -135,11 +135,11 @@ static u8 sScheduleScript[] = { /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), - /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12), + /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON), - /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12), + /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN), - /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12), + /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), @@ -152,7 +152,7 @@ static u8 sScheduleScript[] = { /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), - /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), + /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B), @@ -175,7 +175,7 @@ static u8 sScheduleScript[] = { /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30), /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12), + /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23), /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33), /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22), @@ -241,7 +241,7 @@ static u8 sScheduleScript[] = { /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), - /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12), + /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), @@ -254,7 +254,7 @@ static u8 sScheduleScript[] = { /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), - /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12), + /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A), @@ -269,7 +269,7 @@ static u8 sScheduleScript[] = { /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16), + /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(), @@ -290,7 +290,7 @@ static u8 sScheduleScript[] = { /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), - /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16), + /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x446 */ SCHEDULE_CMD_RET_NONE(), /* 0x447 */ SCHEDULE_CMD_RET_NONE(), }; @@ -302,7 +302,7 @@ s32 scheduleScript(PlayState* play) { if (gSaveContext.save.day == 1) { if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { return ANJU_SCH_28; } else if ((11, 10) <= NOW <= (11, 30)) { @@ -328,15 +328,15 @@ s32 scheduleScript(PlayState* play) { } else if ((13, 20) <= NOW <= (13, 50)) { return ANJU_SCH_2E; } else if ((13, 50) <= NOW <= (14, 8)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((14, 8) <= NOW <= (14, 18)) { return ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN; } else if ((14, 18) <= NOW <= (16, 10)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((16, 10) <= NOW <= (16, 30)) { return ANJU_SCH_ATTEND_GORON; } else if ((16, 30) <= NOW <= (19, 50)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { @@ -354,7 +354,7 @@ s32 scheduleScript(PlayState* play) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { return None; } - return ANJU_SCH_17; + return ANJU_SCH_MIDNIGHT_MEETING; } else { return None; } @@ -368,7 +368,7 @@ s32 scheduleScript(PlayState* play) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { return ANJU_SCH_28; } else if ((11, 10) <= NOW <= (11, 30)) { @@ -394,7 +394,7 @@ s32 scheduleScript(PlayState* play) { } else if ((13, 20) <= NOW <= (13, 50)) { return ANJU_SCH_2E; } else if ((13, 50) <= NOW <= (19, 50)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { @@ -425,7 +425,7 @@ s32 scheduleScript(PlayState* play) { } else if ((17, 55) <= NOW <= (18, 0)) { return ANJU_SCH_23; } else if ((18, 0) <= NOW <= (19, 50)) { - return ANJU_SCH_12; + return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_2F; } else if ((20, 20) <= NOW <= (20, 30)) { @@ -484,7 +484,7 @@ s32 scheduleScript(PlayState* play) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16; + return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { return ANJU_SCH_34; } else if ((11, 25) <= NOW <= (11, 30)) { @@ -505,7 +505,7 @@ s32 scheduleScript(PlayState* play) { } } else if (play->sceneId == SCENE_YADOYA) { if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16; + return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { return ANJU_SCH_34; } else if ((11, 25) <= NOW <= (11, 30)) { @@ -551,12 +551,12 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_F 10, // ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN 10, // ANJU_SCH_ATTEND_GORON - 10, // ANJU_SCH_12 + 10, // ANJU_SCH_RECEPTIONIST_IDLE 11, // ANJU_SCH_13 -1, // ANJU_SCH_14 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANDMA - 22, // ANJU_SCH_16 - 15, // ANJU_SCH_17 + 22, // ANJU_SCH_SWEEPING + 15, // ANJU_SCH_MIDNIGHT_MEETING -1, // ANJU_SCH_18 -1, // ANJU_SCH_19 3, // ANJU_SCH_1A @@ -624,7 +624,7 @@ s32 sAnjuMsgScript_Sch12_B[0x37] = { 0x10C11, 0x20201023, 0x400012, 0x0E28A00C, 0x0900000F, 0x28A62D00, 0x010C2400, 0x40100E28, 0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000, }; -s32 sAnjuMsgScript_Sch13_Sch2F[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_InnCloseTime[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; s32 sAnjuMsgScript_Sch30[2] = { 0x0E28AF2D, 0x10C10 }; s32 sAnjuMsgScript_Sch28[2] = { 0x0E28C12D, 0x10C10 }; s32 sAnjuMsgScript_SchCooking[0xB] = { @@ -632,7 +632,7 @@ s32 sAnjuMsgScript_SchCooking[0xB] = { 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; s32 D_80B58980[2] = { 0x0E28C62D, 0x10C10 }; -s32 sAnjuMsgScript_Sch16[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; +s32 sAnjuMsgScript_SchSweeping[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; s32 sAnjuMsgScript_Sch34_Sch35[2] = { 0x0E28F82D, 0x10C10 }; s32 sAnjuMsgScript_SchRanch[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; s32 sAnjuMsgScript_Sch17_A[0x14] = { @@ -640,7 +640,10 @@ s32 sAnjuMsgScript_Sch17_A[0x14] = { 0x0E28D919, -0x16CFF2, 0x28DC0C11, 0x32201132, 0x10120600, 0xAA000013, 0xAA2F00, 0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010, }; -s32 sAnjuMsgScript_Sch17_B[2] = { 0x0E28D62D, 0x10C10 }; + +// Surprised: "nevermind" +s32 sAnjuMsgScript_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; + s32 sAnjuMsgScript_DekuDefault[8] = { 0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000, }; @@ -665,8 +668,13 @@ s32 sAnjuMsgScript_SchLaundryPoolKafeiMask[0x10] = { 0x372000, 0x21003208, 0x220E28, -0x17F3F0D8, -0x12F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; -s32 D_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; -s32 sAnjuMsgScript_Sch31[2] = { 0x0E29612D, 0x10C10 }; + +// Anju says the Inn is full and tell the player to tell that to his mother +s32 sAnjuMsgScript_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; + +// Tells player that they should talk in the kitchen instead +s32 sAnjuMsgScript_80B58B88[2] = { 0x0E29612D, 0x10C10 }; + s32 sAnjuMsgScript_Sch19[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; ActorInit En_An_InitVars = { @@ -1531,13 +1539,13 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_2C: case ANJU_SCH_2D: case ANJU_SCH_2F: - return D_80B58B7C; + return sAnjuMsgScript_80B58B7C; case ANJU_SCH_LAUNDRY_POOL_SIT: return sAnjuMsgScript_SchLaundryPoolDeku; case ANJU_SCH_31: - return sAnjuMsgScript_Sch17_B; + return sAnjuMsgScript_80B589FC; default: break; @@ -1548,10 +1556,10 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { if (this->scheduleResult == ANJU_SCH_31) { - return sAnjuMsgScript_Sch31; + return sAnjuMsgScript_80B58B88; } - if (this->scheduleResult == ANJU_SCH_17) { + if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) { this->msgEventFunc = EnAn_MsgEvent_17; return sAnjuMsgScript_Sch17_A; } @@ -1576,7 +1584,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - if (this->scheduleResult == ANJU_SCH_17) { + if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) { this->msgEventFunc = EnAn_MsgEvent_17; return sAnjuMsgScript_Sch17_A; } @@ -1608,7 +1616,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { this->msgEventFunc = EnAn_MsgEvent_LaundryPool; return sAnjuMsgScript_SchLaundryPoolDefault; - case ANJU_SCH_12: + case ANJU_SCH_RECEPTIONIST_IDLE: if (gSaveContext.save.day >= 2) { return sAnjuMsgScript_Sch12_A; } @@ -1616,22 +1624,22 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_13: case ANJU_SCH_2F: - return sAnjuMsgScript_Sch13_Sch2F; + return sAnjuMsgScript_InnCloseTime; - case ANJU_SCH_16: - return sAnjuMsgScript_Sch16; + case ANJU_SCH_SWEEPING: + return sAnjuMsgScript_SchSweeping; - case ANJU_SCH_17: - return sAnjuMsgScript_Sch17_B; + case ANJU_SCH_MIDNIGHT_MEETING: + return sAnjuMsgScript_80B589FC; case ANJU_SCH_30: return sAnjuMsgScript_Sch30; case ANJU_SCH_31: if (player->transformation == PLAYER_FORM_HUMAN) { - return sAnjuMsgScript_Sch31; + return sAnjuMsgScript_80B58B88; } - return sAnjuMsgScript_Sch17_B; + return sAnjuMsgScript_80B589FC; case ANJU_SCH_34: case ANJU_SCH_35: @@ -1656,8 +1664,8 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->msgEventScript = EnAn_GetMsgEventScript(this, play); if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || - (this->scheduleResult == ANJU_SCH_12) || (this->scheduleResult == ANJU_SCH_13) || - (this->scheduleResult == ANJU_SCH_17) || (this->scheduleResult == ANJU_SCH_16) || + (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || (this->scheduleResult == ANJU_SCH_13) || + (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) || (this->scheduleResult == ANJU_SCH_SWEEPING) || (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || (this->scheduleResult == ANJU_SCH_2B) || (this->scheduleResult == ANJU_SCH_2C) || (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || @@ -1684,7 +1692,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if ((play->csCtx.state != CS_STATE_IDLE) && (play->sceneId == SCENE_YADOYA) && (gSaveContext.sceneLayer == 0) && ((scriptIndex == 0) || (scriptIndex == 1))) { if (!this->forceDraw) { - this->unk_38A = ENAN_FACE_0; + this->savedFaceIndex = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->eyeTimer = 8; @@ -1758,18 +1766,17 @@ void func_80B554E8(EnAn* this) { } } -// EnAn_ChooseAnimForSchedule? -s32 func_80B555C8(EnAn* this, PlayState* play) { +s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: case ANJU_SCH_ATTEND_GORON: - case ANJU_SCH_12: + case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_13: - case ANJU_SCH_17: + case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; - case ANJU_SCH_16: + case ANJU_SCH_SWEEPING: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; @@ -1809,7 +1816,7 @@ s32 func_80B555C8(EnAn* this, PlayState* play) { return 0; } -void func_80B556F8(EnAn* this, PlayState* play) { +void EnAn_DialogueFunc_80B556F8(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_6); this->stateFlags &= ~ENAN_STATE_20; @@ -1823,7 +1830,7 @@ void func_80B556F8(EnAn* this, PlayState* play) { } } -void func_80B557AC(EnAn* this, PlayState* play) { +void EnAn_DialogueFunc_80B557AC(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING); this->stateFlags &= ~ENAN_STATE_20; @@ -1837,7 +1844,7 @@ void func_80B557AC(EnAn* this, PlayState* play) { } } -void func_80B55860(EnAn* this, PlayState* play) { +void EnAn_DialogueFunc_80B55860(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING_MORPH); this->stateFlags |= ENAN_STATE_200; @@ -1905,13 +1912,13 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28BE: // "From what postbox did you got that letter?!" case 0x28C0: // "Not what I mean!" case 0x295E: // "I need to know!" - this->dialogueFunc = func_80B556F8; + this->dialogueFunc = EnAn_DialogueFunc_80B556F8; this->dialogueFuncState = 0; break; case 0x28E6: // "It's from Kafei" this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; - this->dialogueFunc = func_80B55860; + this->dialogueFunc = EnAn_DialogueFunc_80B55860; this->dialogueFuncState = 0; break; @@ -1924,7 +1931,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28D9: // "Please" case 0x28DC: // "Thank you" case 0x28DE: // "Mail it in the morning" - this->dialogueFunc = func_80B557AC; + this->dialogueFunc = EnAn_DialogueFunc_80B557AC; this->dialogueFuncState = 0; break; @@ -2011,7 +2018,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { switch (textId) { case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" - this->unk_38A = ENAN_FACE_0; + this->savedFaceIndex = ENAN_FACE_0; /* fallthrough */ case 0x28A5: // "Visit us again in the future" case 0x28AA: // "One moment please" @@ -2077,7 +2084,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { break; case 0x28EC: // "Should I wait?" - this->unk_38A = ENAN_FACE_5; + this->savedFaceIndex = ENAN_FACE_5; /* fallthrough */ case 0x28DC: // "Thank you" case 0x28EB: // "I'm afraid to meet him..." @@ -2107,9 +2114,9 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { this->dialogueFunc = NULL; this->prevTextId = 0; this->stateFlags &= ~ENAN_STATE_TALKING; - this->faceIndex = this->unk_38A; + this->faceIndex = this->savedFaceIndex; this->eyeTimer = 4; - func_80B555C8(this, play); + EnAn_ChooseAnimAfterTalking(this, play); } if (this->dialogueFunc != NULL) { @@ -2252,12 +2259,12 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { - u16 sp56 = SCHEDULE_TIME_NOW; + u16 now = SCHEDULE_TIME_NOW; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); EnDoor* door; Vec3s* points; - Vec3f sp40; - Vec3f sp34; + Vec3f firstPos; + Vec3f secondPos; s32 limit; s32 ret = false; @@ -2272,12 +2279,13 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if (this->timePath != NULL) { points = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &points[0]); - Math_Vec3s_ToVec3f(&sp34, &points[1]); - Math_Vec3f_Copy(&this->unk_228, &sp40); - Math_Vec3f_Copy(&this->unk_234, &sp34); - this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); - Math_Vec3f_Copy(&this->actor.world.pos, &sp40); + Math_Vec3s_ToVec3f(&firstPos, &points[0]); + Math_Vec3s_ToVec3f(&secondPos, &points[1]); + + Math_Vec3f_Copy(&this->unk_228, &firstPos); + Math_Vec3f_Copy(&this->unk_234, &secondPos); + this->actor.world.rot.y = Math_Vec3f_Yaw(&firstPos, &secondPos); + Math_Vec3f_Copy(&this->actor.world.pos, &firstPos); if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, door->knobDoor.dyna.actor.shape.rot.y)) <= 0x4000) { this->unk_215 = -0x4B; @@ -2286,7 +2294,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; - this->unk_37A = sp56 - scheduleOutput->time0; + this->unk_37A = now - scheduleOutput->time0; switch (scheduleOutput->result) { case ANJU_SCH_1B: @@ -2297,7 +2305,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_23: case ANJU_SCH_25: case ANJU_SCH_26: - this->unk_38A = ENAN_FACE_2; + this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; @@ -2389,7 +2397,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_3D: case ANJU_SCH_3E: case ANJU_SCH_3F: - this->unk_38A = ENAN_FACE_2; + this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; @@ -2458,8 +2466,8 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); - Vec3f sp40; - Vec3f sp34; + Vec3f firstPos; + Vec3f secondPos; Vec3s* points; s32 limit; s32 ret = false; @@ -2473,20 +2481,22 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if ((this->timePath != NULL) && (this->timePath->count >= 2)) { points = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &points[0]); - Math_Vec3s_ToVec3f(&sp34, &points[1]); + Math_Vec3s_ToVec3f(&firstPos, &points[0]); + Math_Vec3s_ToVec3f(&secondPos, &points[1]); - this->actor.world.rot.y = Math_Vec3f_Yaw(&sp40, &sp34); + this->actor.world.rot.y = Math_Vec3f_Yaw(&firstPos, &secondPos); Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); - Math_Vec3f_Copy(&this->actor.world.pos, &sp40); - Math_Vec3f_Copy(&this->actor.prevPos, &sp40); - if (scheduleOutput->result == ANJU_SCH_16) { + Math_Vec3f_Copy(&this->actor.world.pos, &firstPos); + Math_Vec3f_Copy(&this->actor.prevPos, &firstPos); + + if (scheduleOutput->result == ANJU_SCH_SWEEPING) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_BROOM; } + ret = true; } @@ -2523,13 +2533,13 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_13: this->actor.world.rot.y += 0x7FF8; /* fallthrough */ - case ANJU_SCH_12: - case ANJU_SCH_17: + case ANJU_SCH_RECEPTIONIST_IDLE: + case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->unk_37A = 0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - if (scheduleOutput->result == ANJU_SCH_12) { + if (scheduleOutput->result == ANJU_SCH_RECEPTIONIST_IDLE) { this->unk_374 = 70.0f; } break; @@ -2549,7 +2559,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_37A = 0; } - this->unk_38A = ENAN_FACE_2; + this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; @@ -2585,7 +2595,7 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_40; - this->unk_38A = ENAN_FACE_5; + this->savedFaceIndex = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; } @@ -2611,7 +2621,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_18: EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); - this->unk_38A = ENAN_FACE_5; + this->savedFaceIndex = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; break; @@ -2644,7 +2654,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche this->actor.flags |= ACTOR_FLAG_TARGETABLE; this->actor.targetMode = TARGET_MODE_6; this->stateFlags = 0; - this->unk_38A = ENAN_FACE_0; + this->savedFaceIndex = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->eyeTimer = 8; this->unk_374 = 40.0f; @@ -2673,13 +2683,13 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_LAUNDRY_POOL_SIT: case ANJU_SCH_COOKING: - case ANJU_SCH_12: + case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_13: - case ANJU_SCH_17: + case ANJU_SCH_MIDNIGHT_MEETING: ret = func_80B56880(this, play, scheduleOutput); break; - case ANJU_SCH_16: + case ANJU_SCH_SWEEPING: ret = func_80B56744(this, play, scheduleOutput); break; @@ -2738,6 +2748,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche return ret; } +// RotateTowardsLookAtActor? s32 func_80B56E44(EnAn* this, PlayState* play) { Vec3f sp2C; Vec3f sp20; @@ -2759,10 +2770,11 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { + // Tell the door to be open while passing through it and which orientation if ((this->unk_37A / (f32)this->unk_378) <= 0.9f) { - door->unk_1A7 = this->unk_215; + door->openTimer = this->unk_215; } else { - door->unk_1A7 = 0; + door->openTimer = 0; } } @@ -2811,7 +2823,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { this->actor.world.pos.x = timePathTargetPos.x; this->actor.world.pos.z = timePathTargetPos.z; - if (SubS_InCsMode(play) != 0) { + if (SubS_InCsMode(play)) { sp54 = this->timePathElapsedTime; sp50 = this->timePathWaypoint; timePathTargetPos = this->actor.world.pos; @@ -2828,7 +2840,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { this->actor.world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); } - if (SubS_InCsMode(play) != 0) { + if (SubS_InCsMode(play)) { this->timePathElapsedTime = sp54; this->timePathWaypoint = sp50; this->timePathTargetPos = timePathTargetPos; @@ -2841,7 +2853,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { s32 func_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { - case ANJU_SCH_17: + case ANJU_SCH_MIDNIGHT_MEETING: if (func_80B55F8C(play) && EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { @@ -2857,7 +2869,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { } break; - case ANJU_SCH_12: + case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_13: if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; @@ -2866,7 +2878,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { } break; - case ANJU_SCH_16: + case ANJU_SCH_SWEEPING: if (Animation_OnFrame(&this->skelAnime, 6.0f) && (this->animIndex == ENAN_ANIM_BROOM_SWEEP)) { Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } @@ -2975,14 +2987,14 @@ void func_80B57718(EnAn* this, PlayState* play) { case ANJU_SCH_RANCH: case ANJU_SCH_COOKING: - case ANJU_SCH_12: + case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_13: - case ANJU_SCH_16: + case ANJU_SCH_SWEEPING: case ANJU_SCH_18: func_80B572D4(this, play); break; - case ANJU_SCH_17: + case ANJU_SCH_MIDNIGHT_MEETING: func_80B572D4(this, play); break; diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index ab47ca189..c82929154 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -75,7 +75,7 @@ typedef struct EnAn { /* 0x384 */ s16 timePathTimeSpeed; /* 0x386 */ s16 unk_386; // timer /* 0x388 */ s16 unk_388; // timer - /* 0x38A */ s16 unk_38A; // EnAnFace enum + /* 0x38A */ s16 savedFaceIndex; // EnAnFace enum /* 0x38C */ s16 faceIndex; // EnAnFace enum /* 0x38E */ s16 eyeTimer; /* 0x390 */ s16 eyeTexIndex; diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.c b/src/overlays/actors/ovl_En_Door/z_en_door.c index 3451af722..151b340ac 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.c +++ b/src/overlays/actors/ovl_En_Door/z_en_door.c @@ -514,7 +514,7 @@ void func_80866B20(EnDoor* this, PlayState* play) { Flags_SetSwitch(play, this->switchFlag); Actor_PlaySfx(&this->knobDoor.dyna.actor, NA_SE_EV_CHAIN_KEY_UNLOCK); } - } else if (this->unk_1A7 != 0) { + } else if (this->openTimer != 0) { this->actionFunc = func_80866F94; Actor_PlaySfx(&this->knobDoor.dyna.actor, NA_SE_EV_DOOR_OPEN); } else if (!Player_InCsMode(play)) { @@ -585,14 +585,14 @@ void func_80866B20(EnDoor* this, PlayState* play) { void func_80866F94(EnDoor* this, PlayState* play) { s32 direction; - if (this->unk_1A7 != 0) { - if (this->unk_1A7 >= 0) { + if (this->openTimer != 0) { + if (this->openTimer >= 0) { direction = 1; } else { direction = -1; } if (Math_ScaledStepToS(&this->knobDoor.dyna.actor.world.rot.y, direction * 0x3E80, 0x7D0)) { - Math_StepToC(&this->unk_1A7, 0, 1); + Math_StepToC(&this->openTimer, 0, 1); } } else { if (Math_ScaledStepToS(&this->knobDoor.dyna.actor.world.rot.y, 0, 0x7D0)) { diff --git a/src/overlays/actors/ovl_En_Door/z_en_door.h b/src/overlays/actors/ovl_En_Door/z_en_door.h index 5ea0b7df3..8d13e3d76 100644 --- a/src/overlays/actors/ovl_En_Door/z_en_door.h +++ b/src/overlays/actors/ovl_En_Door/z_en_door.h @@ -25,10 +25,10 @@ typedef enum EnDoorType { typedef struct EnDoor { /* 0x000 */ KnobDoorActor knobDoor; - /* 0x1A4 */ u8 doorType; + /* 0x1A4 */ u8 doorType; // EnDoorType enum /* 0x1A5 */ u8 switchFlag; /* 0x1A6 */ u8 unk_1A6; - /* 0x1A7 */ s8 unk_1A7; + /* 0x1A7 */ s8 openTimer; // For how long the door will be open. positive/negative means the opening direction /* 0x1A8 */ Vec3s limbTable[DOOR_LIMB_MAX]; /* 0x1C8 */ EnDoorActionFunc actionFunc; } EnDoor; diff --git a/src/overlays/actors/ovl_En_Gm/z_en_gm.c b/src/overlays/actors/ovl_En_Gm/z_en_gm.c index ca38f91ef..2731a0d71 100644 --- a/src/overlays/actors/ovl_En_Gm/z_en_gm.c +++ b/src/overlays/actors/ovl_En_Gm/z_en_gm.c @@ -1480,9 +1480,9 @@ s32 func_80950804(EnGm* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if ((this->unk_3BA / (f32)this->unk_3B8) <= 0.9f) { - door->unk_1A7 = this->unk_261; + door->openTimer = this->unk_261; } else { - door->unk_1A7 = 0; + door->openTimer = 0; } } diff --git a/src/overlays/actors/ovl_En_Ig/z_en_ig.c b/src/overlays/actors/ovl_En_Ig/z_en_ig.c index 3006c7bfe..2186bd945 100644 --- a/src/overlays/actors/ovl_En_Ig/z_en_ig.c +++ b/src/overlays/actors/ovl_En_Ig/z_en_ig.c @@ -767,9 +767,9 @@ s32 func_80BF2470(EnIg* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if (((f32)this->unk_3E2 / this->unk_3E0) <= 0.9f) { - door->unk_1A7 = this->unk_2A4; + door->openTimer = this->unk_2A4; } else { - door->unk_1A7 = 0; + door->openTimer = 0; } } this->unk_3E2 = CLAMP(this->unk_3E2, 0, this->unk_3E0); diff --git a/src/overlays/actors/ovl_En_Pamera/z_en_pamera.c b/src/overlays/actors/ovl_En_Pamera/z_en_pamera.c index be1c95685..4aca4b9bc 100644 --- a/src/overlays/actors/ovl_En_Pamera/z_en_pamera.c +++ b/src/overlays/actors/ovl_En_Pamera/z_en_pamera.c @@ -473,7 +473,7 @@ void func_80BD9338(EnPamera* this, PlayState* play) { func_80BD84F0(this, play); actor = this->actor.child; if ((actor != NULL) && (actor->id == ACTOR_EN_DOOR)) { - ((EnDoor*)actor)->unk_1A7 = -0x32; + ((EnDoor*)actor)->openTimer = -50; } } diff --git a/src/overlays/actors/ovl_En_Pm/z_en_pm.c b/src/overlays/actors/ovl_En_Pm/z_en_pm.c index ab80d3d57..88942f2d0 100644 --- a/src/overlays/actors/ovl_En_Pm/z_en_pm.c +++ b/src/overlays/actors/ovl_En_Pm/z_en_pm.c @@ -1711,9 +1711,9 @@ s32 func_80AF9D04(EnPm* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { if (((f32)this->unk_36E / this->unk_36C) <= 0.9f) { - door->unk_1A7 = this->unk_260; + door->openTimer = this->unk_260; } else { - door->unk_1A7 = 0; + door->openTimer = 0; } } this->unk_36E = CLAMP(this->unk_36E, 0, this->unk_36C); diff --git a/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c b/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c index bc0099298..6e1e3bdb5 100644 --- a/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c +++ b/src/overlays/actors/ovl_En_Suttari/z_en_suttari.c @@ -768,7 +768,7 @@ s32 func_80BABDD8(EnSuttari* this, PlayState* play, ScheduleOutput* scheduleOutp this->unk434 = sp44 - scheduleOutput->time0; this->unk436 = scheduleOutput->time1 - scheduleOutput->time0; if ((scheduleOutput->result != 10) && (scheduleOutput->result != 11)) { - sp48->unk_1A7 = 0x4B; + sp48->openTimer = 75; } Math_Vec3f_Copy(&this->unk438, &sp38); Math_Vec3f_Copy(&this->unk444, &sp2C); diff --git a/src/overlays/actors/ovl_En_Tk/z_en_tk.c b/src/overlays/actors/ovl_En_Tk/z_en_tk.c index 7b88159f1..d57dfe9df 100644 --- a/src/overlays/actors/ovl_En_Tk/z_en_tk.c +++ b/src/overlays/actors/ovl_En_Tk/z_en_tk.c @@ -472,7 +472,7 @@ s32 func_80AECE60(EnTk* this, PlayState* play) { Vec3f sp5C; Actor_OffsetOfPointInActorCoords(&this->actor, &sp5C, &door->knobDoor.dyna.actor.world.pos); - door->unk_1A7 = 2; + door->openTimer = 2; if (sp5C.z < -20.0f) { this->unk_2CA &= ~0x400; this->unk_2CA |= 0x800; @@ -480,7 +480,7 @@ s32 func_80AECE60(EnTk* this, PlayState* play) { } if (door != NULL) { - if ((this->unk_2CA & 0x800) && (door->unk_1A7 == 0)) { + if ((this->unk_2CA & 0x800) && (door->openTimer == 0)) { this->unk_2CA &= ~0x800; } } diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 1254c3a11..c7d7e61a4 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14030,10 +14030,10 @@ 0x80B552E4:("func_80B552E4",), 0x80B553AC:("EnAn_UpdateHeadRot",), 0x80B554E8:("func_80B554E8",), - 0x80B555C8:("func_80B555C8",), - 0x80B556F8:("func_80B556F8",), - 0x80B557AC:("func_80B557AC",), - 0x80B55860:("func_80B55860",), + 0x80B555C8:("EnAn_ChooseAnimAfterTalking",), + 0x80B556F8:("EnAn_DialogueFunc_80B556F8",), + 0x80B557AC:("EnAn_DialogueFunc_80B557AC",), + 0x80B55860:("EnAn_DialogueFunc_80B55860",), 0x80B55914:("EnAn_HandleDialogue",), 0x80B55D20:("EnAn_FindLookAtActor",), 0x80B55D98:("func_80B55D98",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 54ca0dfbd..75498b08b 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14449,16 +14449,16 @@ 0x80B58784:("sAnjuMsgScript_SchAttendGoron","UNK_TYPE1","",0x1), 0x80B58808:("sAnjuMsgScript_SchGiveLunchToGrandma","UNK_TYPE1","",0x1), 0x80B5885C:("sAnjuMsgScript_Sch12_B","UNK_TYPE1","",0x1), - 0x80B58938:("sAnjuMsgScript_Sch13_Sch2F","UNK_TYPE1","",0x1), + 0x80B58938:("sAnjuMsgScript_InnCloseTime","UNK_TYPE1","",0x1), 0x80B58944:("sAnjuMsgScript_Sch30","UNK_TYPE1","",0x1), 0x80B5894C:("sAnjuMsgScript_Sch28","UNK_TYPE1","",0x1), 0x80B58954:("sAnjuMsgScript_SchCooking","UNK_TYPE1","",0x1), 0x80B58980:("D_80B58980","UNK_TYPE1","",0x1), - 0x80B58988:("sAnjuMsgScript_Sch16","UNK_TYPE1","",0x1), + 0x80B58988:("sAnjuMsgScript_SchSweeping","UNK_TYPE1","",0x1), 0x80B58994:("sAnjuMsgScript_Sch34_Sch35","UNK_TYPE1","",0x1), 0x80B5899C:("sAnjuMsgScript_SchRanch","UNK_TYPE1","",0x1), 0x80B589AC:("sAnjuMsgScript_Sch17_A","UNK_TYPE1","",0x1), - 0x80B589FC:("sAnjuMsgScript_Sch17_B","UNK_TYPE1","",0x1), + 0x80B589FC:("sAnjuMsgScript_80B589FC","UNK_TYPE1","",0x1), 0x80B58A04:("sAnjuMsgScript_DekuDefault","UNK_TYPE1","",0x1), 0x80B58A24:("sAnjuMsgScript_SchLaundryPoolDeku","UNK_TYPE1","",0x1), 0x80B58A3C:("sAnjuMsgScript_Sch12_A","UNK_TYPE1","",0x1), @@ -14468,8 +14468,8 @@ 0x80B58AE8:("sAnjuMsgScript_SchWaitingForKafei","UNK_TYPE1","",0x1), 0x80B58AF4:("sAnjuMsgScript_SchLaundryPoolDefault","UNK_TYPE1","",0x1), 0x80B58B3C:("sAnjuMsgScript_SchLaundryPoolKafeiMask","UNK_TYPE1","",0x1), - 0x80B58B7C:("D_80B58B7C","UNK_TYPE1","",0x1), - 0x80B58B88:("sAnjuMsgScript_Sch31","UNK_TYPE1","",0x1), + 0x80B58B7C:("sAnjuMsgScript_80B58B7C","UNK_TYPE1","",0x1), + 0x80B58B88:("sAnjuMsgScript_80B58B88","UNK_TYPE1","",0x1), 0x80B58B90:("sAnjuMsgScript_Sch19","UNK_TYPE1","",0x1), 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), 0x80B58BBC:("sCylinderInit","UNK_TYPE1","",0x1), From 1e7db6119de50af758c834a20f950e90c6a2106f Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 12 Oct 2023 17:33:28 -0300 Subject: [PATCH 39/78] dec --- src/overlays/actors/ovl_En_An/z_en_an.c | 764 ++++++++++++------------ 1 file changed, 382 insertions(+), 382 deletions(-) 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 bede5e73e..75399fe78 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -38,60 +38,60 @@ typedef enum AnjuScheduleResult { /* 7 */ ANJU_SCH_7, // unused /* 8 */ ANJU_SCH_8, // unused /* 9 */ ANJU_SCH_9, // unused - /* 10 */ ANJU_SCH_A, // unused - /* 11 */ ANJU_SCH_B, // unused + /* 10 */ ANJU_SCH_10, // unused + /* 11 */ ANJU_SCH_11, // unused /* 12 */ ANJU_SCH_RANCH, - /* 13 */ ANJU_SCH_D, // unused + /* 13 */ ANJU_SCH_13, // unused /* 14 */ ANJU_SCH_COOKING, - /* 15 */ ANJU_SCH_F, // unused + /* 15 */ ANJU_SCH_15, // unused /* 16 */ ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN, /* 17 */ ANJU_SCH_ATTEND_GORON, // ANJU_SCH_ATTEND_LINK_THE_GORON? ANJU_SCH_ATTEND_PLAYER_THE_GORON? /* 18 */ ANJU_SCH_RECEPTIONIST_IDLE, - /* 19 */ ANJU_SCH_13, // Standing next to the Inn's front door at closing time - /* 20 */ ANJU_SCH_14, // unused + /* 19 */ ANJU_SCH_19, // Standing next to the Inn's front door at closing time + /* 20 */ ANJU_SCH_20, // unused /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANDMA, /* 22 */ ANJU_SCH_SWEEPING, /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, - /* 24 */ ANJU_SCH_18, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom - /* 25 */ ANJU_SCH_19, // Set manually in code instead of via script - /* 26 */ ANJU_SCH_1A, // Passing through to Grandma's door (entering) - /* 27 */ ANJU_SCH_1B, // Passing through to Grandma's door (leaving) - /* 28 */ ANJU_SCH_1C, // Passing through the door of the employees-only room (entering), after giving Grandma's lunch - /* 29 */ ANJU_SCH_1D, // Passing through the door of the employees-only room (leaving), after giving Grandma's lunch - /* 30 */ ANJU_SCH_1E, // Passing through the door of the employees-only room (entering), after closing the Inn - /* 31 */ ANJU_SCH_1F, // Passing through the door of the employees-only room (leaving), to have the midnight meeting - /* 32 */ ANJU_SCH_20, // Passing through the door of the employees-only room (leaving), going to the Laundry Pool - /* 33 */ ANJU_SCH_21, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool - /* 34 */ ANJU_SCH_22, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool - /* 35 */ ANJU_SCH_23, // Passing through the door of the employees-only room (entering), after going to the Laundry Pool - /* 36 */ ANJU_SCH_24, // Day 3, 11:25 ~ 11:30, passing through the door after sweeping - /* 37 */ ANJU_SCH_25, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool - /* 38 */ ANJU_SCH_26, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool - /* 39 */ ANJU_SCH_27, // Day 3, 11:50 ~ 12:00, passing through the door of the employees-only room - /* 40 */ ANJU_SCH_28, // Going from the front desk to the kitchen - /* 41 */ ANJU_SCH_29, // unused - /* 42 */ ANJU_SCH_2A, // Walking from the kitchen to Grandma's room - /* 43 */ ANJU_SCH_2B, // Inside Grandma's room, walking to give her her food - /* 44 */ ANJU_SCH_2C, // Inside Grandma's room, walking out - /* 45 */ ANJU_SCH_2D, // Left Grandma's room, walking towards employees-only room - /* 46 */ ANJU_SCH_2E, // Left employees-only room, walking to front desk - /* 47 */ ANJU_SCH_2F, // Walking from the front desk to right next to the Inn's front door - /* 48 */ ANJU_SCH_30, // Walking from the Inn's front door after closing, to the employees-only room - /* 49 */ ANJU_SCH_31, // Walking from the employees-only room to the kitchen, to have the midnight meeting - /* 50 */ ANJU_SCH_32, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool - /* 51 */ ANJU_SCH_33, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool - /* 52 */ ANJU_SCH_34, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room - /* 53 */ ANJU_SCH_35, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping - /* 54 */ ANJU_SCH_36, // Walking through East Clock Town, going to the Laundry Pool - /* 55 */ ANJU_SCH_37, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool + /* 24 */ ANJU_SCH_24, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom + /* 25 */ ANJU_SCH_25, // Set manually in code instead of via script + /* 26 */ ANJU_SCH_DOOR_26, // Passing through to Grandma's door (entering) + /* 27 */ ANJU_SCH_DOOR_27, // Passing through to Grandma's door (leaving) + /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the employees-only room (entering), after giving Grandma's lunch + /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the employees-only room (leaving), after giving Grandma's lunch + /* 30 */ ANJU_SCH_DOOR_30, // Passing through the door of the employees-only room (entering), after closing the Inn + /* 31 */ ANJU_SCH_DOOR_31, // Passing through the door of the employees-only room (leaving), to have the midnight meeting + /* 32 */ ANJU_SCH_DOOR_32, // Passing through the door of the employees-only room (leaving), going to the Laundry Pool + /* 33 */ ANJU_SCH_DOOR_33, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool + /* 34 */ ANJU_SCH_DOOR_34, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool + /* 35 */ ANJU_SCH_DOOR_35, // Passing through the door of the employees-only room (entering), after going to the Laundry Pool + /* 36 */ ANJU_SCH_DOOR_36, // Passing through the door of the second guest room (leaving), after sweeping the floor + /* 37 */ ANJU_SCH_DOOR_37, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool + /* 38 */ ANJU_SCH_DOOR_38, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool + /* 39 */ ANJU_SCH_DOOR_39, // Passing through the door of the employees-only room (entering, after sweeping the floor + /* 40 */ ANJU_SCH_40, // Going from the front desk to the kitchen + /* 41 */ ANJU_SCH_41, // unused + /* 42 */ ANJU_SCH_42, // Walking from the kitchen to Grandma's room + /* 43 */ ANJU_SCH_43, // Inside Grandma's room, walking to give her her food + /* 44 */ ANJU_SCH_44, // Inside Grandma's room, walking out + /* 45 */ ANJU_SCH_45, // Left Grandma's room, walking towards employees-only room + /* 46 */ ANJU_SCH_46, // Left employees-only room, walking to front desk + /* 47 */ ANJU_SCH_47, // Walking from the front desk to right next to the Inn's front door + /* 48 */ ANJU_SCH_48, // Walking from the Inn's front door after closing, to the employees-only room + /* 49 */ ANJU_SCH_49, // Walking from the employees-only room to the kitchen, to have the midnight meeting + /* 50 */ ANJU_SCH_50, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool + /* 51 */ ANJU_SCH_51, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool + /* 52 */ ANJU_SCH_52, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room + /* 53 */ ANJU_SCH_53, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping + /* 54 */ ANJU_SCH_54, // Walking through East Clock Town, going to the Laundry Pool + /* 55 */ ANJU_SCH_55, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool /* 56 */ ANJU_SCH_LAUNDRY_POOL_WALKING_IN, /* 57 */ ANJU_SCH_LAUNDRY_POOL_LEAVING, - /* 58 */ ANJU_SCH_3A, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool - /* 59 */ ANJU_SCH_3B, // Walking through East Clock Town, going to the Inn from the Laundry Pool - /* 60 */ ANJU_SCH_3C, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool - /* 61 */ ANJU_SCH_3D, // Walking through South Clock Town, going to the Laundry Pool - /* 62 */ ANJU_SCH_3E, // Walking through South Clock Town, going to the Inn from the Laundry Pool - /* 63 */ ANJU_SCH_3F, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool + /* 58 */ ANJU_SCH_58, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool + /* 59 */ ANJU_SCH_59, // Walking through East Clock Town, going to the Inn from the Laundry Pool + /* 60 */ ANJU_SCH_60, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool + /* 61 */ ANJU_SCH_61, // Walking through South Clock Town, going to the Laundry Pool + /* 62 */ ANJU_SCH_62, // Walking through South Clock Town, going to the Inn from the Laundry Pool + /* 63 */ ANJU_SCH_63, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; @@ -129,29 +129,29 @@ static u8 sScheduleScript[] = { /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_MIDNIGHT_MEETING), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31), - /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F), - /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), - /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), - /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_49), + /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_DOOR_31), + /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_48), + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON), /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN), /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_RECEPTIONIST_IDLE), - /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), - /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), - /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), - /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), - /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), - /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_46), + /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29), + /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28), + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_45), + /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27), + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_44), /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), - /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), - /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_43), + /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26), + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_42), /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), - /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_40), /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), @@ -170,18 +170,18 @@ static u8 sScheduleScript[] = { /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(), - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E), - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30), - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_24), + /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_DOOR_30), + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_48), + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23), - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33), - /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22), - /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21), - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32), - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20), + /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_DOOR_35), + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_51), + /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_34), + /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_33), + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_50), + /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_DOOR_32), /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6), /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC), /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202), @@ -190,22 +190,22 @@ static u8 sScheduleScript[] = { /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214), /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A), /* 0x21A */ SCHEDULE_CMD_RET_NONE(), - /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26), - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B), - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A), - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37), - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36), - /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25), + /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_38), + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_59), + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_58), + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_55), + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_54), + /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_37), /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243), /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249), /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F), /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255), /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B), /* 0x25B */ SCHEDULE_CMD_RET_NONE(), - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F), - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E), - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D), - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C), + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_63), + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_62), + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_61), + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_60), /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278), /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E), /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284), @@ -236,24 +236,24 @@ static u8 sScheduleScript[] = { /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), /* 0x31D */ SCHEDULE_CMD_RET_NONE(), - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18), - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E), - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30), - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13), - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F), + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_24), + /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_48), + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E), - /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D), - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C), - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D), - /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B), - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C), + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_46), + /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29), + /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28), + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_45), + /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27), + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_44), /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B), - /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A), - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A), + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_43), + /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26), + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_42), /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28), + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_40), /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), @@ -265,10 +265,10 @@ static u8 sScheduleScript[] = { /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6), /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), /* 0x3BC */ SCHEDULE_CMD_RET_NONE(), - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), - /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39), + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_53), + /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36), + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_52), /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), @@ -286,10 +286,10 @@ static u8 sScheduleScript[] = { /* 0x41B */ SCHEDULE_CMD_RET_NONE(), /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_WAITING_FOR_KAFEI), /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_WAITING_FOR_KAFEI), - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27), - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35), - /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24), - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34), + /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39), + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_53), + /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36), + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_52), /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x446 */ SCHEDULE_CMD_RET_NONE(), /* 0x447 */ SCHEDULE_CMD_RET_NONE(), @@ -304,29 +304,29 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (10, 55)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28; + return ANJU_SCH_40; } else if ((11, 10) <= NOW <= (11, 30)) { return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A; + return ANJU_SCH_42; } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A; + return ANJU_SCH_DOOR_26; } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B; + return ANJU_SCH_43; } else if ((12, 0) <= NOW <= (12, 15)) { return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C; + return ANJU_SCH_44; } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B; + return ANJU_SCH_DOOR_27; } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D; + return ANJU_SCH_45; } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C; + return ANJU_SCH_DOOR_28; } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D; + return ANJU_SCH_DOOR_29; } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E; + return ANJU_SCH_46; } else if ((13, 50) <= NOW <= (14, 8)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((14, 8) <= NOW <= (14, 18)) { @@ -338,18 +338,18 @@ s32 scheduleScript(PlayState* play) { } else if ((16, 30) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; + return ANJU_SCH_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; + return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30; + return ANJU_SCH_48; } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E; + return ANJU_SCH_DOOR_30; } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if ((23, 10) <= NOW <= (23, 15)) { - return ANJU_SCH_1F; + return ANJU_SCH_DOOR_31; } else if ((23, 15) <= NOW <= (0, 0)) { - return ANJU_SCH_31; + return ANJU_SCH_49; } else if ((0, 0) <= NOW <= (6, 0)) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { return None; @@ -370,41 +370,41 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (10, 55)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28; + return ANJU_SCH_40; } else if ((11, 10) <= NOW <= (11, 30)) { return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A; + return ANJU_SCH_42; } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A; + return ANJU_SCH_DOOR_26; } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B; + return ANJU_SCH_43; } else if ((12, 0) <= NOW <= (12, 15)) { return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C; + return ANJU_SCH_44; } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B; + return ANJU_SCH_DOOR_27; } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D; + return ANJU_SCH_45; } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C; + return ANJU_SCH_DOOR_28; } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D; + return ANJU_SCH_DOOR_29; } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E; + return ANJU_SCH_46; } else if ((13, 50) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; + return ANJU_SCH_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; + return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30; + return ANJU_SCH_48; } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E; + return ANJU_SCH_DOOR_30; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18; + return ANJU_SCH_24; } else { return None; } @@ -413,57 +413,57 @@ s32 scheduleScript(PlayState* play) { } } else if (play->sceneId == SCENE_YADOYA) { if ((11, 3) <= NOW <= (11, 9)) { - return ANJU_SCH_20; + return ANJU_SCH_DOOR_32; } else if ((11, 9) <= NOW <= (11, 29)) { - return ANJU_SCH_32; + return ANJU_SCH_50; } else if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_21; + return ANJU_SCH_DOOR_33; } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_22; + return ANJU_SCH_DOOR_34; } else if ((17, 30) <= NOW <= (17, 55)) { - return ANJU_SCH_33; + return ANJU_SCH_51; } else if ((17, 55) <= NOW <= (18, 0)) { - return ANJU_SCH_23; + return ANJU_SCH_DOOR_35; } else if ((18, 0) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; + return ANJU_SCH_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; + return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 0)) { - return ANJU_SCH_30; + return ANJU_SCH_48; } else if ((21, 0) <= NOW <= (21, 5)) { - return ANJU_SCH_1E; + return ANJU_SCH_DOOR_30; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18; + return ANJU_SCH_24; } else { return None; } } else if (play->sceneId == SCENE_TOWN) { if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_25; + return ANJU_SCH_DOOR_37; } else if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_36; + return ANJU_SCH_54; } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_37; + return ANJU_SCH_55; } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3A; + return ANJU_SCH_58; } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3B; + return ANJU_SCH_59; } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_26; + return ANJU_SCH_DOOR_38; } else { return None; } } else if (play->sceneId == SCENE_CLOCKTOWER) { if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_3C; + return ANJU_SCH_60; } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_3D; + return ANJU_SCH_61; } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3E; + return ANJU_SCH_62; } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3F; + return ANJU_SCH_63; } else { return None; } @@ -486,13 +486,13 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (11, 0)) { return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34; + return ANJU_SCH_52; } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24; + return ANJU_SCH_DOOR_36; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35; + return ANJU_SCH_53; } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27; + return ANJU_SCH_DOOR_39; } else if ((18, 0) <= NOW <= (5, 0)) { return ANJU_SCH_WAITING_FOR_KAFEI; } else if ((5, 0) <= NOW <= (6, 0)) { @@ -507,13 +507,13 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (11, 0)) { return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34; + return ANJU_SCH_52; } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24; + return ANJU_SCH_DOOR_36; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35; + return ANJU_SCH_53; } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27; + return ANJU_SCH_DOOR_39; } else { return None; } @@ -543,60 +543,60 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { -1, // ANJU_SCH_7 -1, // ANJU_SCH_8 -1, // ANJU_SCH_9 - -1, // ANJU_SCH_A - -1, // ANJU_SCH_B + -1, // ANJU_SCH_10 + -1, // ANJU_SCH_11 -1, // ANJU_SCH_RANCH - -1, // ANJU_SCH_D + -1, // ANJU_SCH_13 0, // ANJU_SCH_COOKING - -1, // ANJU_SCH_F + -1, // ANJU_SCH_15 10, // ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN 10, // ANJU_SCH_ATTEND_GORON 10, // ANJU_SCH_RECEPTIONIST_IDLE - 11, // ANJU_SCH_13 - -1, // ANJU_SCH_14 + 11, // ANJU_SCH_19 + -1, // ANJU_SCH_20 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANDMA 22, // ANJU_SCH_SWEEPING 15, // ANJU_SCH_MIDNIGHT_MEETING - -1, // ANJU_SCH_18 - -1, // ANJU_SCH_19 - 3, // ANJU_SCH_1A - 6, // ANJU_SCH_1B - 8, // ANJU_SCH_1C - 9, // ANJU_SCH_1D - 13, // ANJU_SCH_1E - 14, // ANJU_SCH_1F - 16, // ANJU_SCH_20 - 18, // ANJU_SCH_21 - 19, // ANJU_SCH_22 - 21, // ANJU_SCH_23 - 23, // ANJU_SCH_24 - 0, // ANJU_SCH_25 - 5, // ANJU_SCH_26 - 25, // ANJU_SCH_27 - 0, // ANJU_SCH_28 - 1, // ANJU_SCH_29 - 2, // ANJU_SCH_2A - 4, // ANJU_SCH_2B - 5, // ANJU_SCH_2C - 7, // ANJU_SCH_2D - 10, // ANJU_SCH_2E - 11, // ANJU_SCH_2F - 12, // ANJU_SCH_30 - 15, // ANJU_SCH_31 - 17, // ANJU_SCH_32 - 20, // ANJU_SCH_33 - 22, // ANJU_SCH_34 - 24, // ANJU_SCH_35 - 1, // ANJU_SCH_36 - 2, // ANJU_SCH_37 + -1, // ANJU_SCH_24 + -1, // ANJU_SCH_25 + 3, // ANJU_SCH_DOOR_26 + 6, // ANJU_SCH_DOOR_27 + 8, // ANJU_SCH_DOOR_28 + 9, // ANJU_SCH_DOOR_29 + 13, // ANJU_SCH_DOOR_30 + 14, // ANJU_SCH_DOOR_31 + 16, // ANJU_SCH_DOOR_32 + 18, // ANJU_SCH_DOOR_33 + 19, // ANJU_SCH_DOOR_34 + 21, // ANJU_SCH_DOOR_35 + 23, // ANJU_SCH_DOOR_36 + 0, // ANJU_SCH_DOOR_37 + 5, // ANJU_SCH_DOOR_38 + 25, // ANJU_SCH_DOOR_39 + 0, // ANJU_SCH_40 + 1, // ANJU_SCH_41 + 2, // ANJU_SCH_42 + 4, // ANJU_SCH_43 + 5, // ANJU_SCH_44 + 7, // ANJU_SCH_45 + 10, // ANJU_SCH_46 + 11, // ANJU_SCH_47 + 12, // ANJU_SCH_48 + 15, // ANJU_SCH_49 + 17, // ANJU_SCH_50 + 20, // ANJU_SCH_51 + 22, // ANJU_SCH_52 + 24, // ANJU_SCH_53 + 1, // ANJU_SCH_54 + 2, // ANJU_SCH_55 0, // ANJU_SCH_LAUNDRY_POOL_WALKING_IN 1, // ANJU_SCH_LAUNDRY_POOL_LEAVING - 3, // ANJU_SCH_3A - 4, // ANJU_SCH_3B - 0, // ANJU_SCH_3C - 1, // ANJU_SCH_3D - 2, // ANJU_SCH_3E - 3, // ANJU_SCH_3F + 3, // ANJU_SCH_58 + 4, // ANJU_SCH_59 + 0, // ANJU_SCH_60 + 1, // ANJU_SCH_61 + 2, // ANJU_SCH_62 + 3, // ANJU_SCH_63 }; s32 sAnjuMsgScript_SchReceiveLetterFromPostman[0x1B] = { @@ -799,29 +799,29 @@ EnDoor* EnAn_FindDoor(PlayState* play, AnjuScheduleResult scheduleOutputResult) s32 switchFlag; switch (scheduleOutputResult) { - case ANJU_SCH_1A: - case ANJU_SCH_1B: + case ANJU_SCH_DOOR_26: + case ANJU_SCH_DOOR_27: switchFlag = 0xD; break; - case ANJU_SCH_21: - case ANJU_SCH_22: - case ANJU_SCH_25: - case ANJU_SCH_26: + case ANJU_SCH_DOOR_33: + case ANJU_SCH_DOOR_34: + case ANJU_SCH_DOOR_37: + case ANJU_SCH_DOOR_38: switchFlag = 0xB; break; - case ANJU_SCH_24: + case ANJU_SCH_DOOR_36: switchFlag = 0x10; break; - case ANJU_SCH_1C: - case ANJU_SCH_1D: - case ANJU_SCH_1E: - case ANJU_SCH_1F: - case ANJU_SCH_20: - case ANJU_SCH_23: - case ANJU_SCH_27: + case ANJU_SCH_DOOR_28: + case ANJU_SCH_DOOR_29: + case ANJU_SCH_DOOR_30: + case ANJU_SCH_DOOR_31: + case ANJU_SCH_DOOR_32: + case ANJU_SCH_DOOR_35: + case ANJU_SCH_DOOR_39: switchFlag = 0xE; break; @@ -1027,7 +1027,7 @@ void EnAn_UpdateCollider(EnAn* this, PlayState* play) { s32 pad; Vec3f sp24; - if (this->scheduleResult == ANJU_SCH_19) { + if (this->scheduleResult == ANJU_SCH_25) { Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); this->collider.dim.radius = 20; Math_Vec3f_ToVec3s(&this->collider.dim.pos, &sp24); @@ -1521,7 +1521,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_RANCH: return sAnjuMsgScript_SchRanch; - case ANJU_SCH_19: + case ANJU_SCH_25: return sAnjuMsgScript_Sch19; default: @@ -1533,18 +1533,18 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_WAITING_FOR_KAFEI: return sAnjuMsgScript_SchWaitingForKafei; - case ANJU_SCH_28: - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: - case ANJU_SCH_2F: + case ANJU_SCH_40: + case ANJU_SCH_42: + case ANJU_SCH_43: + case ANJU_SCH_44: + case ANJU_SCH_45: + case ANJU_SCH_47: return sAnjuMsgScript_80B58B7C; case ANJU_SCH_LAUNDRY_POOL_SIT: return sAnjuMsgScript_SchLaundryPoolDeku; - case ANJU_SCH_31: + case ANJU_SCH_49: return sAnjuMsgScript_80B589FC; default: @@ -1555,7 +1555,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { - if (this->scheduleResult == ANJU_SCH_31) { + if (this->scheduleResult == ANJU_SCH_49) { return sAnjuMsgScript_80B58B88; } @@ -1603,13 +1603,13 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_WAITING_FOR_KAFEI: return sAnjuMsgScript_SchWaitingForKafei; - case ANJU_SCH_28: + case ANJU_SCH_40: return sAnjuMsgScript_Sch28; - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: + case ANJU_SCH_42: + case ANJU_SCH_43: + case ANJU_SCH_44: + case ANJU_SCH_45: return D_80B58980; case ANJU_SCH_LAUNDRY_POOL_SIT: @@ -1622,8 +1622,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } return sAnjuMsgScript_Sch12_B; - case ANJU_SCH_13: - case ANJU_SCH_2F: + case ANJU_SCH_19: + case ANJU_SCH_47: return sAnjuMsgScript_InnCloseTime; case ANJU_SCH_SWEEPING: @@ -1632,17 +1632,17 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_MIDNIGHT_MEETING: return sAnjuMsgScript_80B589FC; - case ANJU_SCH_30: + case ANJU_SCH_48: return sAnjuMsgScript_Sch30; - case ANJU_SCH_31: + case ANJU_SCH_49: if (player->transformation == PLAYER_FORM_HUMAN) { return sAnjuMsgScript_80B58B88; } return sAnjuMsgScript_80B589FC; - case ANJU_SCH_34: - case ANJU_SCH_35: + case ANJU_SCH_52: + case ANJU_SCH_53: return sAnjuMsgScript_Sch34_Sch35; default: @@ -1664,13 +1664,13 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->msgEventScript = EnAn_GetMsgEventScript(this, play); if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || - (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || (this->scheduleResult == ANJU_SCH_13) || + (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || (this->scheduleResult == ANJU_SCH_19) || (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) || (this->scheduleResult == ANJU_SCH_SWEEPING) || - (this->scheduleResult == ANJU_SCH_28) || (this->scheduleResult == ANJU_SCH_2A) || - (this->scheduleResult == ANJU_SCH_2B) || (this->scheduleResult == ANJU_SCH_2C) || - (this->scheduleResult == ANJU_SCH_2D) || (this->scheduleResult == ANJU_SCH_2F) || - (this->scheduleResult == ANJU_SCH_30) || (this->scheduleResult == ANJU_SCH_31) || - (this->scheduleResult == ANJU_SCH_34) || (this->scheduleResult == ANJU_SCH_35)) { + (this->scheduleResult == ANJU_SCH_40) || (this->scheduleResult == ANJU_SCH_42) || + (this->scheduleResult == ANJU_SCH_43) || (this->scheduleResult == ANJU_SCH_44) || + (this->scheduleResult == ANJU_SCH_45) || (this->scheduleResult == ANJU_SCH_47) || + (this->scheduleResult == ANJU_SCH_48) || (this->scheduleResult == ANJU_SCH_49) || + (this->scheduleResult == ANJU_SCH_52) || (this->scheduleResult == ANJU_SCH_53)) { this->stateFlags |= ENAN_STATE_20; } @@ -1771,7 +1771,7 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: case ANJU_SCH_ATTEND_GORON: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_13: + case ANJU_SCH_19: case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; @@ -1789,13 +1789,13 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); break; - case ANJU_SCH_2F: - case ANJU_SCH_31: + case ANJU_SCH_47: + case ANJU_SCH_49: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; - case ANJU_SCH_34: - case ANJU_SCH_35: + case ANJU_SCH_52: + case ANJU_SCH_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; @@ -2297,14 +2297,14 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->unk_37A = now - scheduleOutput->time0; switch (scheduleOutput->result) { - case ANJU_SCH_1B: - case ANJU_SCH_1C: - case ANJU_SCH_20: - case ANJU_SCH_21: - case ANJU_SCH_22: - case ANJU_SCH_23: - case ANJU_SCH_25: - case ANJU_SCH_26: + case ANJU_SCH_DOOR_27: + case ANJU_SCH_DOOR_28: + case ANJU_SCH_DOOR_32: + case ANJU_SCH_DOOR_33: + case ANJU_SCH_DOOR_34: + case ANJU_SCH_DOOR_35: + case ANJU_SCH_DOOR_37: + case ANJU_SCH_DOOR_38: this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; @@ -2312,15 +2312,15 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } switch (scheduleOutput->result) { - case ANJU_SCH_1A: - case ANJU_SCH_1B: - case ANJU_SCH_1C: + case ANJU_SCH_DOOR_26: + case ANJU_SCH_DOOR_27: + case ANJU_SCH_DOOR_28: this->stateFlags |= ENAN_STATE_DRAW_TRAY | ENAN_STATE_100; EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); break; - case ANJU_SCH_24: - case ANJU_SCH_27: + case ANJU_SCH_DOOR_36: + case ANJU_SCH_DOOR_39: this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_DRAW_BROOM; EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); break; @@ -2361,7 +2361,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if (this->timePath != NULL) { - if ((this->scheduleResult < ANJU_SCH_28) && (this->scheduleResult != ANJU_SCH_NONE) && + if ((this->scheduleResult < ANJU_SCH_40) && (this->scheduleResult != ANJU_SCH_NONE) && (this->timePathTimeSpeed >= 0)) { startTime = now; } else { @@ -2383,20 +2383,20 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags &= ~ENAN_STATE_10; switch (scheduleOutput->result) { - case ANJU_SCH_2C: - case ANJU_SCH_2D: - case ANJU_SCH_32: - case ANJU_SCH_33: - case ANJU_SCH_36: - case ANJU_SCH_37: + case ANJU_SCH_44: + case ANJU_SCH_45: + case ANJU_SCH_50: + case ANJU_SCH_51: + case ANJU_SCH_54: + case ANJU_SCH_55: case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_3A: - case ANJU_SCH_3B: - case ANJU_SCH_3C: - case ANJU_SCH_3D: - case ANJU_SCH_3E: - case ANJU_SCH_3F: + case ANJU_SCH_58: + case ANJU_SCH_59: + case ANJU_SCH_60: + case ANJU_SCH_61: + case ANJU_SCH_62: + case ANJU_SCH_63: this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; @@ -2404,19 +2404,19 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } switch (scheduleOutput->result) { - case ANJU_SCH_2A: - case ANJU_SCH_2B: + case ANJU_SCH_42: + case ANJU_SCH_43: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); /* fallthrough */ - case ANJU_SCH_2C: - case ANJU_SCH_2D: + case ANJU_SCH_44: + case ANJU_SCH_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_TRAY; break; - case ANJU_SCH_34: - case ANJU_SCH_35: + case ANJU_SCH_52: + case ANJU_SCH_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); @@ -2424,31 +2424,31 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; - case ANJU_SCH_32: - case ANJU_SCH_33: + case ANJU_SCH_50: + case ANJU_SCH_51: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; break; - case ANJU_SCH_36: - case ANJU_SCH_37: + case ANJU_SCH_54: + case ANJU_SCH_55: case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_3A: - case ANJU_SCH_3B: - case ANJU_SCH_3C: - case ANJU_SCH_3D: - case ANJU_SCH_3E: - case ANJU_SCH_3F: + case ANJU_SCH_58: + case ANJU_SCH_59: + case ANJU_SCH_60: + case ANJU_SCH_61: + case ANJU_SCH_62: + case ANJU_SCH_63: EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; - case ANJU_SCH_28: - case ANJU_SCH_2F: - case ANJU_SCH_30: - case ANJU_SCH_31: + case ANJU_SCH_40: + case ANJU_SCH_47: + case ANJU_SCH_48: + case ANJU_SCH_49: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; /* fallthrough */ @@ -2530,7 +2530,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.prevPos, &sp40); switch (scheduleOutput->result) { - case ANJU_SCH_13: + case ANJU_SCH_19: this->actor.world.rot.y += 0x7FF8; /* fallthrough */ case ANJU_SCH_RECEPTIONIST_IDLE: @@ -2619,7 +2619,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT); break; - case ANJU_SCH_18: + case ANJU_SCH_24: EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); this->savedFaceIndex = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; @@ -2677,14 +2677,14 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche break; case ANJU_SCH_WAITING_FOR_KAFEI: - case ANJU_SCH_18: + case ANJU_SCH_24: ret = func_80B56BC0(this, play, scheduleOutput); break; case ANJU_SCH_LAUNDRY_POOL_SIT: case ANJU_SCH_COOKING: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_13: + case ANJU_SCH_19: case ANJU_SCH_MIDNIGHT_MEETING: ret = func_80B56880(this, play, scheduleOutput); break; @@ -2693,50 +2693,50 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B56744(this, play, scheduleOutput); break; - case ANJU_SCH_19: + case ANJU_SCH_25: ret = func_80B56CAC(this, play, scheduleOutput); break; - case ANJU_SCH_1A: - case ANJU_SCH_1B: - case ANJU_SCH_1C: - case ANJU_SCH_1D: - case ANJU_SCH_1E: - case ANJU_SCH_1F: - case ANJU_SCH_20: - case ANJU_SCH_21: - case ANJU_SCH_22: - case ANJU_SCH_23: - case ANJU_SCH_24: - case ANJU_SCH_25: - case ANJU_SCH_26: - case ANJU_SCH_27: + case ANJU_SCH_DOOR_26: + case ANJU_SCH_DOOR_27: + case ANJU_SCH_DOOR_28: + case ANJU_SCH_DOOR_29: + case ANJU_SCH_DOOR_30: + case ANJU_SCH_DOOR_31: + case ANJU_SCH_DOOR_32: + case ANJU_SCH_DOOR_33: + case ANJU_SCH_DOOR_34: + case ANJU_SCH_DOOR_35: + case ANJU_SCH_DOOR_36: + case ANJU_SCH_DOOR_37: + case ANJU_SCH_DOOR_38: + case ANJU_SCH_DOOR_39: ret = func_80B561A4(this, play, scheduleOutput); break; - case ANJU_SCH_28: - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: - case ANJU_SCH_2E: - case ANJU_SCH_2F: - case ANJU_SCH_30: - case ANJU_SCH_31: - case ANJU_SCH_32: - case ANJU_SCH_33: - case ANJU_SCH_34: - case ANJU_SCH_35: - case ANJU_SCH_36: - case ANJU_SCH_37: + case ANJU_SCH_40: + case ANJU_SCH_42: + case ANJU_SCH_43: + case ANJU_SCH_44: + case ANJU_SCH_45: + case ANJU_SCH_46: + case ANJU_SCH_47: + case ANJU_SCH_48: + case ANJU_SCH_49: + case ANJU_SCH_50: + case ANJU_SCH_51: + case ANJU_SCH_52: + case ANJU_SCH_53: + case ANJU_SCH_54: + case ANJU_SCH_55: case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_3A: - case ANJU_SCH_3B: - case ANJU_SCH_3C: - case ANJU_SCH_3D: - case ANJU_SCH_3E: - case ANJU_SCH_3F: + case ANJU_SCH_58: + case ANJU_SCH_59: + case ANJU_SCH_60: + case ANJU_SCH_61: + case ANJU_SCH_62: + case ANJU_SCH_63: ret = func_80B56418(this, play, scheduleOutput); break; @@ -2870,7 +2870,7 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { break; case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_13: + case ANJU_SCH_19: if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { @@ -2981,16 +2981,16 @@ void func_80B57718(EnAn* this, PlayState* play) { func_80B575BC(this, play); break; - case ANJU_SCH_19: + case ANJU_SCH_25: func_80B57674(this, play); break; case ANJU_SCH_RANCH: case ANJU_SCH_COOKING: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_13: + case ANJU_SCH_19: case ANJU_SCH_SWEEPING: - case ANJU_SCH_18: + case ANJU_SCH_24: func_80B572D4(this, play); break; @@ -2998,46 +2998,46 @@ void func_80B57718(EnAn* this, PlayState* play) { func_80B572D4(this, play); break; - case ANJU_SCH_1A: - case ANJU_SCH_1B: - case ANJU_SCH_1C: - case ANJU_SCH_1D: - case ANJU_SCH_1E: - case ANJU_SCH_1F: - case ANJU_SCH_20: - case ANJU_SCH_21: - case ANJU_SCH_22: - case ANJU_SCH_23: - case ANJU_SCH_24: - case ANJU_SCH_25: - case ANJU_SCH_26: - case ANJU_SCH_27: + case ANJU_SCH_DOOR_26: + case ANJU_SCH_DOOR_27: + case ANJU_SCH_DOOR_28: + case ANJU_SCH_DOOR_29: + case ANJU_SCH_DOOR_30: + case ANJU_SCH_DOOR_31: + case ANJU_SCH_DOOR_32: + case ANJU_SCH_DOOR_33: + case ANJU_SCH_DOOR_34: + case ANJU_SCH_DOOR_35: + case ANJU_SCH_DOOR_36: + case ANJU_SCH_DOOR_37: + case ANJU_SCH_DOOR_38: + case ANJU_SCH_DOOR_39: func_80B56EB4(this, play); break; - case ANJU_SCH_28: - case ANJU_SCH_2A: - case ANJU_SCH_2B: - case ANJU_SCH_2C: - case ANJU_SCH_2D: - case ANJU_SCH_2E: - case ANJU_SCH_2F: - case ANJU_SCH_30: - case ANJU_SCH_31: - case ANJU_SCH_32: - case ANJU_SCH_33: - case ANJU_SCH_34: - case ANJU_SCH_35: - case ANJU_SCH_36: - case ANJU_SCH_37: + case ANJU_SCH_40: + case ANJU_SCH_42: + case ANJU_SCH_43: + case ANJU_SCH_44: + case ANJU_SCH_45: + case ANJU_SCH_46: + case ANJU_SCH_47: + case ANJU_SCH_48: + case ANJU_SCH_49: + case ANJU_SCH_50: + case ANJU_SCH_51: + case ANJU_SCH_52: + case ANJU_SCH_53: + case ANJU_SCH_54: + case ANJU_SCH_55: case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_3A: - case ANJU_SCH_3B: - case ANJU_SCH_3C: - case ANJU_SCH_3D: - case ANJU_SCH_3E: - case ANJU_SCH_3F: + case ANJU_SCH_58: + case ANJU_SCH_59: + case ANJU_SCH_60: + case ANJU_SCH_61: + case ANJU_SCH_62: + case ANJU_SCH_63: func_80B5702C(this, play); break; } @@ -3079,8 +3079,8 @@ void EnAn_FollowSchedule(EnAn* this, PlayState* play) { } if (this->unk_3C0) { - scheduleOutput.result = ANJU_SCH_19; - if (this->scheduleResult != ANJU_SCH_19) { + scheduleOutput.result = ANJU_SCH_25; + if (this->scheduleResult != ANJU_SCH_25) { EnAn_ProcessScheduleOutput(this, play, &scheduleOutput); } } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || @@ -3116,7 +3116,7 @@ void EnAn_Talk(EnAn* this, PlayState* play) { if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || (this->scheduleResult == ANJU_SCH_RANCH) || (this->scheduleResult == ANJU_SCH_COOKING) || - (this->scheduleResult == ANJU_SCH_19)) { + (this->scheduleResult == ANJU_SCH_25)) { return; } From 81e6058268a193d852881b649eb0cb31419ae5bf Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 12 Oct 2023 17:47:28 -0300 Subject: [PATCH 40/78] HandleSchedule --- src/overlays/actors/ovl_En_An/z_en_an.c | 11 +++++------ src/overlays/actors/ovl_En_An/z_en_an.h | 2 +- tools/disasm/functions.txt | 2 +- 3 files changed, 7 insertions(+), 8 deletions(-) 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 75399fe78..21eda6286 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -2288,9 +2288,9 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3f_Copy(&this->actor.world.pos, &firstPos); if (ABS_ALT(BINANG_SUB(this->actor.world.rot.y, door->knobDoor.dyna.actor.shape.rot.y)) <= 0x4000) { - this->unk_215 = -0x4B; + this->doorOpenTimer = -75; } else { - this->unk_215 = 0x4B; + this->doorOpenTimer = 75; } this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; @@ -2772,7 +2772,7 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { // Tell the door to be open while passing through it and which orientation if ((this->unk_37A / (f32)this->unk_378) <= 0.9f) { - door->openTimer = this->unk_215; + door->openTimer = this->doorOpenTimer; } else { door->openTimer = 0; } @@ -2965,7 +2965,7 @@ s32 func_80B57674(EnAn* this, PlayState* play) { return 1; } -void func_80B57718(EnAn* this, PlayState* play) { +void EnAn_HandleSchedule(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: case ANJU_SCH_ATTEND_GORON: @@ -3045,7 +3045,6 @@ void func_80B57718(EnAn* this, PlayState* play) { Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 3, 0x2AA8); } -// Tentative name void EnAn_Initialize(EnAn* this, PlayState* play) { ActorShape_Init(&this->actor.shape, 0.0f, NULL, 14.0f); SkelAnime_InitFlex(play, &this->skelAnime, &gAnju1Skel, NULL, this->jointTable, this->morphTable, ANJU1_LIMB_MAX); @@ -3096,7 +3095,7 @@ void EnAn_FollowSchedule(EnAn* this, PlayState* play) { this->scheduleResult = scheduleOutput.result; this->lookAtActor = EnAn_FindLookAtActor(this, play); - func_80B57718(this, play); + EnAn_HandleSchedule(this, play); } void EnAn_Talk(EnAn* this, PlayState* play) { diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index c82929154..bc13a33a1 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -50,7 +50,7 @@ typedef struct EnAn { /* 0x20C */ s8 msmoObjectSlot; /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 roomNum; - /* 0x215 */ s8 unk_215; + /* 0x215 */ s8 doorOpenTimer; /* 0x218 */ Actor* lookAtActor; /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; /* 0x228 */ Vec3f unk_228; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index c7d7e61a4..ea12278da 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14057,7 +14057,7 @@ 0x80B573F4:("func_80B573F4",), 0x80B575BC:("func_80B575BC",), 0x80B57674:("func_80B57674",), - 0x80B57718:("func_80B57718",), + 0x80B57718:("EnAn_HandleSchedule",), 0x80B577F0:("EnAn_Initialize",), 0x80B578F8:("EnAn_FollowSchedule",), 0x80B57A44:("EnAn_Talk",), From 3ce8e6f6b32f8ce1e455fa24d028fcd0b2e23181 Mon Sep 17 00:00:00 2001 From: Angie Date: Thu, 12 Oct 2023 21:03:53 -0300 Subject: [PATCH 41/78] more naming --- src/overlays/actors/ovl_En_An/z_en_an.c | 641 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 12 +- tools/disasm/functions.txt | 14 +- 3 files changed, 338 insertions(+), 329 deletions(-) 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 21eda6286..0776861d4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -49,49 +49,49 @@ typedef enum AnjuScheduleResult { /* 18 */ ANJU_SCH_RECEPTIONIST_IDLE, /* 19 */ ANJU_SCH_19, // Standing next to the Inn's front door at closing time /* 20 */ ANJU_SCH_20, // unused - /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANDMA, + /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANNY, /* 22 */ ANJU_SCH_SWEEPING, /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, - /* 24 */ ANJU_SCH_24, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom + /* 24 */ ANJU_SCH_TALKING_WITH_MOM, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom /* 25 */ ANJU_SCH_25, // Set manually in code instead of via script - /* 26 */ ANJU_SCH_DOOR_26, // Passing through to Grandma's door (entering) - /* 27 */ ANJU_SCH_DOOR_27, // Passing through to Grandma's door (leaving) - /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the employees-only room (entering), after giving Grandma's lunch - /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the employees-only room (leaving), after giving Grandma's lunch + /* 26 */ ANJU_SCH_DOOR_26, // Passing through to Granny's door (entering) + /* 27 */ ANJU_SCH_DOOR_27, // Passing through to Granny's door (leaving) + /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the employees-only room (entering), after giving Granny's lunch + /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the employees-only room (leaving), after giving Granny's lunch /* 30 */ ANJU_SCH_DOOR_30, // Passing through the door of the employees-only room (entering), after closing the Inn /* 31 */ ANJU_SCH_DOOR_31, // Passing through the door of the employees-only room (leaving), to have the midnight meeting /* 32 */ ANJU_SCH_DOOR_32, // Passing through the door of the employees-only room (leaving), going to the Laundry Pool /* 33 */ ANJU_SCH_DOOR_33, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool /* 34 */ ANJU_SCH_DOOR_34, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool /* 35 */ ANJU_SCH_DOOR_35, // Passing through the door of the employees-only room (entering), after going to the Laundry Pool - /* 36 */ ANJU_SCH_DOOR_36, // Passing through the door of the second guest room (leaving), after sweeping the floor + /* 36 */ ANJU_SCH_DOOR_36, // Passing through the door of the Large Suite (leaving), after sweeping the floor /* 37 */ ANJU_SCH_DOOR_37, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool /* 38 */ ANJU_SCH_DOOR_38, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool /* 39 */ ANJU_SCH_DOOR_39, // Passing through the door of the employees-only room (entering, after sweeping the floor - /* 40 */ ANJU_SCH_40, // Going from the front desk to the kitchen + /* 40 */ ANJU_SCH_WALKING_40, // Going from the front desk to the kitchen /* 41 */ ANJU_SCH_41, // unused - /* 42 */ ANJU_SCH_42, // Walking from the kitchen to Grandma's room - /* 43 */ ANJU_SCH_43, // Inside Grandma's room, walking to give her her food - /* 44 */ ANJU_SCH_44, // Inside Grandma's room, walking out - /* 45 */ ANJU_SCH_45, // Left Grandma's room, walking towards employees-only room - /* 46 */ ANJU_SCH_46, // Left employees-only room, walking to front desk - /* 47 */ ANJU_SCH_47, // Walking from the front desk to right next to the Inn's front door - /* 48 */ ANJU_SCH_48, // Walking from the Inn's front door after closing, to the employees-only room - /* 49 */ ANJU_SCH_49, // Walking from the employees-only room to the kitchen, to have the midnight meeting - /* 50 */ ANJU_SCH_50, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool - /* 51 */ ANJU_SCH_51, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool - /* 52 */ ANJU_SCH_52, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room - /* 53 */ ANJU_SCH_53, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping - /* 54 */ ANJU_SCH_54, // Walking through East Clock Town, going to the Laundry Pool - /* 55 */ ANJU_SCH_55, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool - /* 56 */ ANJU_SCH_LAUNDRY_POOL_WALKING_IN, - /* 57 */ ANJU_SCH_LAUNDRY_POOL_LEAVING, - /* 58 */ ANJU_SCH_58, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool - /* 59 */ ANJU_SCH_59, // Walking through East Clock Town, going to the Inn from the Laundry Pool - /* 60 */ ANJU_SCH_60, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool - /* 61 */ ANJU_SCH_61, // Walking through South Clock Town, going to the Laundry Pool - /* 62 */ ANJU_SCH_62, // Walking through South Clock Town, going to the Inn from the Laundry Pool - /* 63 */ ANJU_SCH_63, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool + /* 42 */ ANJU_SCH_WALKING_42, // Walking from the kitchen to Granny's room + /* 43 */ ANJU_SCH_WALKING_43, // Inside Granny's room, walking to give her her food + /* 44 */ ANJU_SCH_WALKING_44, // Inside Granny's room, walking out + /* 45 */ ANJU_SCH_WALKING_45, // Left Granny's room, walking towards employees-only room + /* 46 */ ANJU_SCH_WALKING_46, // Left employees-only room, walking to front desk + /* 47 */ ANJU_SCH_WALKING_47, // Walking from the front desk to right next to the Inn's front door + /* 48 */ ANJU_SCH_WALKING_48, // Walking from the Inn's front door after closing, to the employees-only room + /* 49 */ ANJU_SCH_WALKING_49, // Walking from the employees-only room to the kitchen, to have the midnight meeting + /* 50 */ ANJU_SCH_WALKING_50, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool + /* 51 */ ANJU_SCH_WALKING_51, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool + /* 52 */ ANJU_SCH_WALKING_52, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room + /* 53 */ ANJU_SCH_WALKING_53, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping + /* 54 */ ANJU_SCH_WALKING_54, // Walking through East Clock Town, going to the Laundry Pool + /* 55 */ ANJU_SCH_WALKING_55, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool + /* 56 */ ANJU_SCH_WALKING_56, + /* 57 */ ANJU_SCH_WALKING_57, + /* 58 */ ANJU_SCH_WALKING_58, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool + /* 59 */ ANJU_SCH_WALKING_59, // Walking through East Clock Town, going to the Inn from the Laundry Pool + /* 60 */ ANJU_SCH_WALKING_60, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool + /* 61 */ ANJU_SCH_WALKING_61, // Walking through South Clock Town, going to the Laundry Pool + /* 62 */ ANJU_SCH_WALKING_62, // Walking through South Clock Town, going to the Inn from the Laundry Pool + /* 63 */ ANJU_SCH_WALKING_63, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; @@ -129,29 +129,29 @@ static u8 sScheduleScript[] = { /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9), /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_MIDNIGHT_MEETING), /* 0x0BF */ SCHEDULE_CMD_RET_NONE(), - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_49), + /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_WALKING_49), /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_DOOR_31), /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_48), + /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48), /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), - /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), + /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON), /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN), /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_RECEPTIONIST_IDLE), - /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_46), + /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_WALKING_46), /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29), /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28), - /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_45), + /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_WALKING_45), /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27), - /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_44), - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_43), + /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_WALKING_44), + /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY), + /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_WALKING_43), /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26), - /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_42), + /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_42), /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), - /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_40), + /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_WALKING_40), /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x150 */ SCHEDULE_CMD_RET_NONE(), /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156), @@ -170,17 +170,17 @@ static u8 sScheduleScript[] = { /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3), /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9), /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(), - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_24), + /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM), /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_DOOR_30), - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_48), + /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_WALKING_48), /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), + /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_DOOR_35), - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_51), + /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_WALKING_51), /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_34), /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_33), - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_50), + /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_WALKING_50), /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_DOOR_32), /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6), /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC), @@ -191,10 +191,10 @@ static u8 sScheduleScript[] = { /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A), /* 0x21A */ SCHEDULE_CMD_RET_NONE(), /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_DOOR_38), - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_59), - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_58), - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_55), - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_54), + /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_WALKING_59), + /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_WALKING_58), + /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_WALKING_55), + /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_WALKING_54), /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_DOOR_37), /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243), /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249), @@ -202,18 +202,18 @@ static u8 sScheduleScript[] = { /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255), /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B), /* 0x25B */ SCHEDULE_CMD_RET_NONE(), - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_63), - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_62), - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_61), - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_60), + /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_WALKING_63), + /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_WALKING_62), + /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_WALKING_61), + /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_WALKING_60), /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278), /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E), /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284), /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A), /* 0x28A */ SCHEDULE_CMD_RET_NONE(), - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_LAUNDRY_POOL_LEAVING), + /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_WALKING_57), /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_LAUNDRY_POOL_SIT), - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_LAUNDRY_POOL_WALKING_IN), + /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_WALKING_56), /* 0x29D */ SCHEDULE_CMD_RET_NONE(), /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3), /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA), @@ -236,24 +236,24 @@ static u8 sScheduleScript[] = { /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317), /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D), /* 0x31D */ SCHEDULE_CMD_RET_NONE(), - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_24), + /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM), /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_48), + /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48), /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_47), + /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_46), + /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_WALKING_46), /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_DOOR_29), /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_DOOR_28), - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_45), + /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_WALKING_45), /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_DOOR_27), - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_44), - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANDMA), - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_43), + /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_WALKING_44), + /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_GIVE_LUNCH_TO_GRANNY), + /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_WALKING_43), /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_DOOR_26), - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_42), + /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_42), /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_COOKING), - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_40), + /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_WALKING_40), /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x390 */ SCHEDULE_CMD_RET_NONE(), /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396), @@ -266,9 +266,9 @@ static u8 sScheduleScript[] = { /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC), /* 0x3BC */ SCHEDULE_CMD_RET_NONE(), /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39), - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_53), + /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_53), /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36), - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_52), + /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_WALKING_52), /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF), /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5), @@ -287,9 +287,9 @@ static u8 sScheduleScript[] = { /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_WAITING_FOR_KAFEI), /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_WAITING_FOR_KAFEI), /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_DOOR_39), - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_53), + /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_WALKING_53), /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_DOOR_36), - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_52), + /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_WALKING_52), /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_SWEEPING), /* 0x446 */ SCHEDULE_CMD_RET_NONE(), /* 0x447 */ SCHEDULE_CMD_RET_NONE(), @@ -304,29 +304,29 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (10, 55)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_40; + return ANJU_SCH_WALKING_40; } else if ((11, 10) <= NOW <= (11, 30)) { return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_42; + return ANJU_SCH_WALKING_42; } else if ((11, 50) <= NOW <= (11, 55)) { return ANJU_SCH_DOOR_26; } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_43; + return ANJU_SCH_WALKING_43; } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; + return ANJU_SCH_GIVE_LUNCH_TO_GRANNY; } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_44; + return ANJU_SCH_WALKING_44; } else if ((12, 20) <= NOW <= (12, 25)) { return ANJU_SCH_DOOR_27; } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_45; + return ANJU_SCH_WALKING_45; } else if ((12, 55) <= NOW <= (13, 0)) { return ANJU_SCH_DOOR_28; } else if ((13, 15) <= NOW <= (13, 20)) { return ANJU_SCH_DOOR_29; } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_46; + return ANJU_SCH_WALKING_46; } else if ((13, 50) <= NOW <= (14, 8)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((14, 8) <= NOW <= (14, 18)) { @@ -338,18 +338,18 @@ s32 scheduleScript(PlayState* play) { } else if ((16, 30) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_47; + return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_48; + return ANJU_SCH_WALKING_48; } else if ((21, 5) <= NOW <= (21, 10)) { return ANJU_SCH_DOOR_30; } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if ((23, 10) <= NOW <= (23, 15)) { return ANJU_SCH_DOOR_31; } else if ((23, 15) <= NOW <= (0, 0)) { - return ANJU_SCH_49; + return ANJU_SCH_WALKING_49; } else if ((0, 0) <= NOW <= (6, 0)) { if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { return None; @@ -370,41 +370,41 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (10, 55)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_40; + return ANJU_SCH_WALKING_40; } else if ((11, 10) <= NOW <= (11, 30)) { return ANJU_SCH_COOKING; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_42; + return ANJU_SCH_WALKING_42; } else if ((11, 50) <= NOW <= (11, 55)) { return ANJU_SCH_DOOR_26; } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_43; + return ANJU_SCH_WALKING_43; } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_GIVE_LUNCH_TO_GRANDMA; + return ANJU_SCH_GIVE_LUNCH_TO_GRANNY; } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_44; + return ANJU_SCH_WALKING_44; } else if ((12, 20) <= NOW <= (12, 25)) { return ANJU_SCH_DOOR_27; } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_45; + return ANJU_SCH_WALKING_45; } else if ((12, 55) <= NOW <= (13, 0)) { return ANJU_SCH_DOOR_28; } else if ((13, 15) <= NOW <= (13, 20)) { return ANJU_SCH_DOOR_29; } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_46; + return ANJU_SCH_WALKING_46; } else if ((13, 50) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_47; + return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_48; + return ANJU_SCH_WALKING_48; } else if ((21, 5) <= NOW <= (21, 10)) { return ANJU_SCH_DOOR_30; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_24; + return ANJU_SCH_TALKING_WITH_MOM; } else { return None; } @@ -415,27 +415,27 @@ s32 scheduleScript(PlayState* play) { if ((11, 3) <= NOW <= (11, 9)) { return ANJU_SCH_DOOR_32; } else if ((11, 9) <= NOW <= (11, 29)) { - return ANJU_SCH_50; + return ANJU_SCH_WALKING_50; } else if ((11, 29) <= NOW <= (11, 39)) { return ANJU_SCH_DOOR_33; } else if ((17, 24) <= NOW <= (17, 30)) { return ANJU_SCH_DOOR_34; } else if ((17, 30) <= NOW <= (17, 55)) { - return ANJU_SCH_51; + return ANJU_SCH_WALKING_51; } else if ((17, 55) <= NOW <= (18, 0)) { return ANJU_SCH_DOOR_35; } else if ((18, 0) <= NOW <= (19, 50)) { return ANJU_SCH_RECEPTIONIST_IDLE; } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_47; + return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { return ANJU_SCH_19; } else if ((20, 30) <= NOW <= (21, 0)) { - return ANJU_SCH_48; + return ANJU_SCH_WALKING_48; } else if ((21, 0) <= NOW <= (21, 5)) { return ANJU_SCH_DOOR_30; } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_24; + return ANJU_SCH_TALKING_WITH_MOM; } else { return None; } @@ -443,13 +443,13 @@ s32 scheduleScript(PlayState* play) { if ((11, 29) <= NOW <= (11, 39)) { return ANJU_SCH_DOOR_37; } else if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_54; + return ANJU_SCH_WALKING_54; } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_55; + return ANJU_SCH_WALKING_55; } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_58; + return ANJU_SCH_WALKING_58; } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_59; + return ANJU_SCH_WALKING_59; } else if ((17, 24) <= NOW <= (17, 30)) { return ANJU_SCH_DOOR_38; } else { @@ -457,23 +457,23 @@ s32 scheduleScript(PlayState* play) { } } else if (play->sceneId == SCENE_CLOCKTOWER) { if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_60; + return ANJU_SCH_WALKING_60; } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_61; + return ANJU_SCH_WALKING_61; } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_62; + return ANJU_SCH_WALKING_62; } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_63; + return ANJU_SCH_WALKING_63; } else { return None; } } else if (play->sceneId == SCENE_ALLEY) { if ((13, 15) <= NOW <= (13, 45)) { - return ANJU_SCH_LAUNDRY_POOL_WALKING_IN; + return ANJU_SCH_WALKING_56; } else if ((13, 45) <= NOW <= (15, 25)) { return ANJU_SCH_LAUNDRY_POOL_SIT; } else if ((15, 25) <= NOW <= (15, 55)) { - return ANJU_SCH_LAUNDRY_POOL_LEAVING; + return ANJU_SCH_WALKING_57; } else { return None; } @@ -486,11 +486,11 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (11, 0)) { return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_52; + return ANJU_SCH_WALKING_52; } else if ((11, 25) <= NOW <= (11, 30)) { return ANJU_SCH_DOOR_36; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_53; + return ANJU_SCH_WALKING_53; } else if ((11, 50) <= NOW <= (12, 0)) { return ANJU_SCH_DOOR_39; } else if ((18, 0) <= NOW <= (5, 0)) { @@ -507,11 +507,11 @@ s32 scheduleScript(PlayState* play) { if ((6, 0) <= NOW <= (11, 0)) { return ANJU_SCH_SWEEPING; } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_52; + return ANJU_SCH_WALKING_52; } else if ((11, 25) <= NOW <= (11, 30)) { return ANJU_SCH_DOOR_36; } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_53; + return ANJU_SCH_WALKING_53; } else if ((11, 50) <= NOW <= (12, 0)) { return ANJU_SCH_DOOR_39; } else { @@ -554,10 +554,10 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 10, // ANJU_SCH_RECEPTIONIST_IDLE 11, // ANJU_SCH_19 -1, // ANJU_SCH_20 - 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANDMA + 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANNY 22, // ANJU_SCH_SWEEPING 15, // ANJU_SCH_MIDNIGHT_MEETING - -1, // ANJU_SCH_24 + -1, // ANJU_SCH_TALKING_WITH_MOM -1, // ANJU_SCH_25 3, // ANJU_SCH_DOOR_26 6, // ANJU_SCH_DOOR_27 @@ -573,30 +573,30 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 0, // ANJU_SCH_DOOR_37 5, // ANJU_SCH_DOOR_38 25, // ANJU_SCH_DOOR_39 - 0, // ANJU_SCH_40 + 0, // ANJU_SCH_WALKING_40 1, // ANJU_SCH_41 - 2, // ANJU_SCH_42 - 4, // ANJU_SCH_43 - 5, // ANJU_SCH_44 - 7, // ANJU_SCH_45 - 10, // ANJU_SCH_46 - 11, // ANJU_SCH_47 - 12, // ANJU_SCH_48 - 15, // ANJU_SCH_49 - 17, // ANJU_SCH_50 - 20, // ANJU_SCH_51 - 22, // ANJU_SCH_52 - 24, // ANJU_SCH_53 - 1, // ANJU_SCH_54 - 2, // ANJU_SCH_55 - 0, // ANJU_SCH_LAUNDRY_POOL_WALKING_IN - 1, // ANJU_SCH_LAUNDRY_POOL_LEAVING - 3, // ANJU_SCH_58 - 4, // ANJU_SCH_59 - 0, // ANJU_SCH_60 - 1, // ANJU_SCH_61 - 2, // ANJU_SCH_62 - 3, // ANJU_SCH_63 + 2, // ANJU_SCH_WALKING_42 + 4, // ANJU_SCH_WALKING_43 + 5, // ANJU_SCH_WALKING_44 + 7, // ANJU_SCH_WALKING_45 + 10, // ANJU_SCH_WALKING_46 + 11, // ANJU_SCH_WALKING_47 + 12, // ANJU_SCH_WALKING_48 + 15, // ANJU_SCH_WALKING_49 + 17, // ANJU_SCH_WALKING_50 + 20, // ANJU_SCH_WALKING_51 + 22, // ANJU_SCH_WALKING_52 + 24, // ANJU_SCH_WALKING_53 + 1, // ANJU_SCH_WALKING_54 + 2, // ANJU_SCH_WALKING_55 + 0, // ANJU_SCH_WALKING_56 + 1, // ANJU_SCH_WALKING_57 + 3, // ANJU_SCH_WALKING_58 + 4, // ANJU_SCH_WALKING_59 + 0, // ANJU_SCH_WALKING_60 + 1, // ANJU_SCH_WALKING_61 + 2, // ANJU_SCH_WALKING_62 + 3, // ANJU_SCH_WALKING_63 }; s32 sAnjuMsgScript_SchReceiveLetterFromPostman[0x1B] = { @@ -610,7 +610,7 @@ s32 sAnjuMsgScript_SchAttendGoron[0x21] = { 0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000, 0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000, }; -s32 sAnjuMsgScript_SchGiveLunchToGrandma[0x15] = { +s32 sAnjuMsgScript_SchGiveLunchToGranny[0x15] = { 0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018, 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, @@ -1378,7 +1378,7 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { return var_a2; } -s32 EnAn_MsgEvent_GiveLunchToGrandma(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetChildCsId(this, 0); s32 ret = 0; @@ -1502,9 +1502,9 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); switch (this->scheduleResult) { - case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: - this->msgEventFunc = EnAn_MsgEvent_GiveLunchToGrandma; - return sAnjuMsgScript_SchGiveLunchToGrandma; + case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: + this->msgEventFunc = EnAn_MsgEvent_GiveLunchToGranny; + return sAnjuMsgScript_SchGiveLunchToGranny; case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: this->msgEventFunc = EnAn_MsgEvent_ReceiveLetterFromPostman; @@ -1533,18 +1533,18 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_WAITING_FOR_KAFEI: return sAnjuMsgScript_SchWaitingForKafei; - case ANJU_SCH_40: - case ANJU_SCH_42: - case ANJU_SCH_43: - case ANJU_SCH_44: - case ANJU_SCH_45: - case ANJU_SCH_47: + case ANJU_SCH_WALKING_40: + case ANJU_SCH_WALKING_42: + case ANJU_SCH_WALKING_43: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: + case ANJU_SCH_WALKING_47: return sAnjuMsgScript_80B58B7C; case ANJU_SCH_LAUNDRY_POOL_SIT: return sAnjuMsgScript_SchLaundryPoolDeku; - case ANJU_SCH_49: + case ANJU_SCH_WALKING_49: return sAnjuMsgScript_80B589FC; default: @@ -1555,7 +1555,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { - if (this->scheduleResult == ANJU_SCH_49) { + if (this->scheduleResult == ANJU_SCH_WALKING_49) { return sAnjuMsgScript_80B58B88; } @@ -1603,13 +1603,13 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_WAITING_FOR_KAFEI: return sAnjuMsgScript_SchWaitingForKafei; - case ANJU_SCH_40: + case ANJU_SCH_WALKING_40: return sAnjuMsgScript_Sch28; - case ANJU_SCH_42: - case ANJU_SCH_43: - case ANJU_SCH_44: - case ANJU_SCH_45: + case ANJU_SCH_WALKING_42: + case ANJU_SCH_WALKING_43: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: return D_80B58980; case ANJU_SCH_LAUNDRY_POOL_SIT: @@ -1623,7 +1623,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_Sch12_B; case ANJU_SCH_19: - case ANJU_SCH_47: + case ANJU_SCH_WALKING_47: return sAnjuMsgScript_InnCloseTime; case ANJU_SCH_SWEEPING: @@ -1632,17 +1632,17 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_MIDNIGHT_MEETING: return sAnjuMsgScript_80B589FC; - case ANJU_SCH_48: + case ANJU_SCH_WALKING_48: return sAnjuMsgScript_Sch30; - case ANJU_SCH_49: + case ANJU_SCH_WALKING_49: if (player->transformation == PLAYER_FORM_HUMAN) { return sAnjuMsgScript_80B58B88; } return sAnjuMsgScript_80B589FC; - case ANJU_SCH_52: - case ANJU_SCH_53: + case ANJU_SCH_WALKING_52: + case ANJU_SCH_WALKING_53: return sAnjuMsgScript_Sch34_Sch35; default: @@ -1666,11 +1666,11 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || (this->scheduleResult == ANJU_SCH_19) || (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) || (this->scheduleResult == ANJU_SCH_SWEEPING) || - (this->scheduleResult == ANJU_SCH_40) || (this->scheduleResult == ANJU_SCH_42) || - (this->scheduleResult == ANJU_SCH_43) || (this->scheduleResult == ANJU_SCH_44) || - (this->scheduleResult == ANJU_SCH_45) || (this->scheduleResult == ANJU_SCH_47) || - (this->scheduleResult == ANJU_SCH_48) || (this->scheduleResult == ANJU_SCH_49) || - (this->scheduleResult == ANJU_SCH_52) || (this->scheduleResult == ANJU_SCH_53)) { + (this->scheduleResult == ANJU_SCH_WALKING_40) || (this->scheduleResult == ANJU_SCH_WALKING_42) || + (this->scheduleResult == ANJU_SCH_WALKING_43) || (this->scheduleResult == ANJU_SCH_WALKING_44) || + (this->scheduleResult == ANJU_SCH_WALKING_45) || (this->scheduleResult == ANJU_SCH_WALKING_47) || + (this->scheduleResult == ANJU_SCH_WALKING_48) || (this->scheduleResult == ANJU_SCH_WALKING_49) || + (this->scheduleResult == ANJU_SCH_WALKING_52) || (this->scheduleResult == ANJU_SCH_WALKING_53)) { this->stateFlags |= ENAN_STATE_20; } @@ -1785,17 +1785,17 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); break; - case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: + case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); break; - case ANJU_SCH_47: - case ANJU_SCH_49: + case ANJU_SCH_WALKING_47: + case ANJU_SCH_WALKING_49: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; - case ANJU_SCH_52: - case ANJU_SCH_53: + case ANJU_SCH_WALKING_52: + case ANJU_SCH_WALKING_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; @@ -2134,7 +2134,7 @@ Actor* EnAn_FindLookAtActor(EnAn* this, PlayState* play) { actor = &GET_PLAYER(play)->actor; break; - case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: + case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_NB); break; @@ -2282,8 +2282,8 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_ToVec3f(&firstPos, &points[0]); Math_Vec3s_ToVec3f(&secondPos, &points[1]); - Math_Vec3f_Copy(&this->unk_228, &firstPos); - Math_Vec3f_Copy(&this->unk_234, &secondPos); + Math_Vec3f_Copy(&this->doorEntrancePos, &firstPos); + Math_Vec3f_Copy(&this->doorExitPos, &secondPos); this->actor.world.rot.y = Math_Vec3f_Yaw(&firstPos, &secondPos); Math_Vec3f_Copy(&this->actor.world.pos, &firstPos); @@ -2294,7 +2294,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; - this->unk_37A = now - scheduleOutput->time0; + this->var1.unk_37A = now - scheduleOutput->time0; switch (scheduleOutput->result) { case ANJU_SCH_DOOR_27: @@ -2361,7 +2361,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } if (this->timePath != NULL) { - if ((this->scheduleResult < ANJU_SCH_40) && (this->scheduleResult != ANJU_SCH_NONE) && + if ((this->scheduleResult < ANJU_SCH_WALKING_40) && (this->scheduleResult != ANJU_SCH_NONE) && (this->timePathTimeSpeed >= 0)) { startTime = now; } else { @@ -2383,20 +2383,20 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags &= ~ENAN_STATE_10; switch (scheduleOutput->result) { - case ANJU_SCH_44: - case ANJU_SCH_45: - case ANJU_SCH_50: - case ANJU_SCH_51: - case ANJU_SCH_54: - case ANJU_SCH_55: - case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: - case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_58: - case ANJU_SCH_59: - case ANJU_SCH_60: - case ANJU_SCH_61: - case ANJU_SCH_62: - case ANJU_SCH_63: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: + case ANJU_SCH_WALKING_50: + case ANJU_SCH_WALKING_51: + case ANJU_SCH_WALKING_54: + case ANJU_SCH_WALKING_55: + case ANJU_SCH_WALKING_56: + case ANJU_SCH_WALKING_57: + case ANJU_SCH_WALKING_58: + case ANJU_SCH_WALKING_59: + case ANJU_SCH_WALKING_60: + case ANJU_SCH_WALKING_61: + case ANJU_SCH_WALKING_62: + case ANJU_SCH_WALKING_63: this->savedFaceIndex = ENAN_FACE_2; this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; @@ -2404,19 +2404,19 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { } switch (scheduleOutput->result) { - case ANJU_SCH_42: - case ANJU_SCH_43: + case ANJU_SCH_WALKING_42: + case ANJU_SCH_WALKING_43: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); /* fallthrough */ - case ANJU_SCH_44: - case ANJU_SCH_45: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_TRAY; break; - case ANJU_SCH_52: - case ANJU_SCH_53: + case ANJU_SCH_WALKING_52: + case ANJU_SCH_WALKING_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); @@ -2424,31 +2424,31 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; - case ANJU_SCH_50: - case ANJU_SCH_51: + case ANJU_SCH_WALKING_50: + case ANJU_SCH_WALKING_51: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; break; - case ANJU_SCH_54: - case ANJU_SCH_55: - case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: - case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_58: - case ANJU_SCH_59: - case ANJU_SCH_60: - case ANJU_SCH_61: - case ANJU_SCH_62: - case ANJU_SCH_63: + case ANJU_SCH_WALKING_54: + case ANJU_SCH_WALKING_55: + case ANJU_SCH_WALKING_56: + case ANJU_SCH_WALKING_57: + case ANJU_SCH_WALKING_58: + case ANJU_SCH_WALKING_59: + case ANJU_SCH_WALKING_60: + case ANJU_SCH_WALKING_61: + case ANJU_SCH_WALKING_62: + case ANJU_SCH_WALKING_63: EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; - case ANJU_SCH_40: - case ANJU_SCH_47: - case ANJU_SCH_48: - case ANJU_SCH_49: + case ANJU_SCH_WALKING_40: + case ANJU_SCH_WALKING_47: + case ANJU_SCH_WALKING_48: + case ANJU_SCH_WALKING_49: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; /* fallthrough */ @@ -2537,7 +2537,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_37A = 0; + this->var1.followScheduleState = 0; this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; if (scheduleOutput->result == ANJU_SCH_RECEPTIONIST_IDLE) { this->unk_374 = 70.0f; @@ -2553,10 +2553,10 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->stateFlags |= ENAN_STATE_40; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; - this->unk_37A = 4; + this->var1.laundryPoolState = 4; } else { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); - this->unk_37A = 0; + this->var1.laundryPoolState = 0; } this->savedFaceIndex = ENAN_FACE_2; @@ -2619,7 +2619,7 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT); break; - case ANJU_SCH_24: + case ANJU_SCH_TALKING_WITH_MOM: EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); this->savedFaceIndex = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; @@ -2668,7 +2668,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B56094(this, play, scheduleOutput); break; - case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: + case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: ret = func_80B5611C(this, play, scheduleOutput); break; @@ -2677,7 +2677,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche break; case ANJU_SCH_WAITING_FOR_KAFEI: - case ANJU_SCH_24: + case ANJU_SCH_TALKING_WITH_MOM: ret = func_80B56BC0(this, play, scheduleOutput); break; @@ -2714,29 +2714,29 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = func_80B561A4(this, play, scheduleOutput); break; - case ANJU_SCH_40: - case ANJU_SCH_42: - case ANJU_SCH_43: - case ANJU_SCH_44: - case ANJU_SCH_45: - case ANJU_SCH_46: - case ANJU_SCH_47: - case ANJU_SCH_48: - case ANJU_SCH_49: - case ANJU_SCH_50: - case ANJU_SCH_51: - case ANJU_SCH_52: - case ANJU_SCH_53: - case ANJU_SCH_54: - case ANJU_SCH_55: - case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: - case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_58: - case ANJU_SCH_59: - case ANJU_SCH_60: - case ANJU_SCH_61: - case ANJU_SCH_62: - case ANJU_SCH_63: + case ANJU_SCH_WALKING_40: + case ANJU_SCH_WALKING_42: + case ANJU_SCH_WALKING_43: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: + case ANJU_SCH_WALKING_46: + case ANJU_SCH_WALKING_47: + case ANJU_SCH_WALKING_48: + case ANJU_SCH_WALKING_49: + case ANJU_SCH_WALKING_50: + case ANJU_SCH_WALKING_51: + case ANJU_SCH_WALKING_52: + case ANJU_SCH_WALKING_53: + case ANJU_SCH_WALKING_54: + case ANJU_SCH_WALKING_55: + case ANJU_SCH_WALKING_56: + case ANJU_SCH_WALKING_57: + case ANJU_SCH_WALKING_58: + case ANJU_SCH_WALKING_59: + case ANJU_SCH_WALKING_60: + case ANJU_SCH_WALKING_61: + case ANJU_SCH_WALKING_62: + case ANJU_SCH_WALKING_63: ret = func_80B56418(this, play, scheduleOutput); break; @@ -2748,46 +2748,48 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche return ret; } +/* Start of HandleShedule functions */ + // RotateTowardsLookAtActor? -s32 func_80B56E44(EnAn* this, PlayState* play) { - Vec3f sp2C; - Vec3f sp20; +s32 EnAn_HandleSch_InteractActor(EnAn* this, PlayState* play) { + Vec3f lookAtActorPos; + Vec3f pos; if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { - Math_Vec3f_Copy(&sp2C, &this->lookAtActor->world.pos); - Math_Vec3f_Copy(&sp20, &this->actor.world.pos); - this->actor.world.rot.y = Math_Vec3f_Yaw(&sp20, &sp2C); + Math_Vec3f_Copy(&lookAtActorPos, &this->lookAtActor->world.pos); + Math_Vec3f_Copy(&pos, &this->actor.world.pos); + this->actor.world.rot.y = Math_Vec3f_Yaw(&pos, &lookAtActorPos); } return true; } -s32 func_80B56EB4(EnAn* this, PlayState* play) { +s32 EnAn_HandleSch_Door(EnAn* this, PlayState* play) { EnDoor* door = EnAn_FindDoor(play, this->scheduleResult); Vec3f sp38; - f32 temp_fv0; + f32 distance; s32 pad; if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { - // Tell the door to be open while passing through it and which orientation - if ((this->unk_37A / (f32)this->unk_378) <= 0.9f) { + // Tell the door actor to be open while passing through it and which orientation + if ((this->var1.unk_37A / (f32)this->unk_378) <= 0.9f) { door->openTimer = this->doorOpenTimer; } else { door->openTimer = 0; } } - this->unk_37A = CLAMP(this->unk_37A, 0, this->unk_378); - temp_fv0 = Math_Vec3f_DistXZ(&this->unk_228, &this->unk_234) / this->unk_378; + this->var1.unk_37A = CLAMP(this->var1.unk_37A, 0, this->unk_378); + distance = Math_Vec3f_DistXZ(&this->doorEntrancePos, &this->doorExitPos) / this->unk_378; sp38.x = 0.0f; sp38.y = 0.0f; - sp38.z = this->unk_37A * temp_fv0; + sp38.z = this->var1.unk_37A * distance; - Lib_Vec3f_TranslateAndRotateY(&this->unk_228, this->actor.world.rot.y, &sp38, &this->actor.world.pos); + Lib_Vec3f_TranslateAndRotateY(&this->doorEntrancePos, this->actor.world.rot.y, &sp38, &this->actor.world.pos); - this->unk_37A += this->timePathTimeSpeed; + this->var1.unk_37A += this->timePathTimeSpeed; if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } @@ -2796,17 +2798,18 @@ s32 func_80B56EB4(EnAn* this, PlayState* play) { return 0; } -s32 func_80B5702C(EnAn* this, PlayState* play) { +s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { f32 knots[265]; - Vec3f sp70; - Vec3f sp64; + Vec3f worldPos; Vec3f timePathTargetPos; - s32 sp54; - s32 sp50 = 0; + Vec3f timePathTargetPos; + s32 timePathElapsedTime; + s32 timePathWaypoint; s32 pad; - sp54 = 0; - SubS_TimePathing_FillKnots(knots, 3, this->timePath->count + 3); + timePathElapsedTime = 0; + timePathWaypoint = 0; + SubS_TimePathing_FillKnots(knots, SUBS_TIME_PATHING_ORDER, this->timePath->count + SUBS_TIME_PATHING_ORDER); if (!(this->stateFlags & ENAN_STATE_8)) { timePathTargetPos = gZeroVec3f; @@ -2824,8 +2827,8 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { this->actor.world.pos.z = timePathTargetPos.z; if (SubS_InCsMode(play)) { - sp54 = this->timePathElapsedTime; - sp50 = this->timePathWaypoint; + timePathElapsedTime = this->timePathElapsedTime; + timePathWaypoint = this->timePathWaypoint; timePathTargetPos = this->actor.world.pos; } this->timePathTargetPos = gZeroVec3f; @@ -2835,14 +2838,14 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { &this->timePathTargetPos, this->timePathTimeSpeed)) { this->stateFlags |= ENAN_STATE_10; } else { - sp70 = this->actor.world.pos; - sp64 = this->timePathTargetPos; - this->actor.world.rot.y = Math_Vec3f_Yaw(&sp70, &sp64); + worldPos = this->actor.world.pos; + timePathTargetPos = this->timePathTargetPos; + this->actor.world.rot.y = Math_Vec3f_Yaw(&worldPos, &timePathTargetPos); } if (SubS_InCsMode(play)) { - this->timePathElapsedTime = sp54; - this->timePathWaypoint = sp50; + this->timePathElapsedTime = timePathElapsedTime; + this->timePathWaypoint = timePathWaypoint; this->timePathTargetPos = timePathTargetPos; } else if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); @@ -2851,7 +2854,7 @@ s32 func_80B5702C(EnAn* this, PlayState* play) { return 0; } -s32 func_80B572D4(EnAn* this, PlayState* play) { +s32 EnAn_HandleSch_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_MIDNIGHT_MEETING: if (func_80B55F8C(play) && EnAn_IsFacingAndNearPlayer(this)) { @@ -2888,30 +2891,30 @@ s32 func_80B572D4(EnAn* this, PlayState* play) { return 0; } -s32 func_80B573F4(EnAn* this, PlayState* play) { - s16 temp1; - s16 temp2; +s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { + s16 worldRot; + s16 shapeRot; - switch (this->unk_37A) { + switch (this->var1.laundryPoolState) { case 0x0: this->actor.world.rot.y += 0x7FF8; - this->unk_37A++; + this->var1.laundryPoolState++; break; case 0x1: - temp1 = (this->actor.world.rot.y / 0xB6) * 0xB6; - temp2 = (this->actor.shape.rot.y / 0xB6) * 0xB6; - if (temp1 == temp2) { + worldRot = (this->actor.world.rot.y / 0xB6) * 0xB6; + shapeRot = (this->actor.shape.rot.y / 0xB6) * 0xB6; + if (worldRot == shapeRot) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_SIT); this->stateFlags |= ENAN_STATE_40; - this->unk_37A++; + this->var1.laundryPoolState++; } break; case 0x2: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - this->unk_37A++; + this->var1.laundryPoolState++; } break; @@ -2925,18 +2928,18 @@ s32 func_80B573F4(EnAn* this, PlayState* play) { case 0x4: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->unk_37A++; + this->var1.laundryPoolState++; break; } return 0; } -s32 func_80B575BC(EnAn* this, PlayState* play) { - s32 temp = this->actor.shape.rot.y; - s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); +s32 EnAn_HandleSch_80B575BC(EnAn* this, PlayState* play) { + s32 yRot = this->actor.shape.rot.y; + s16 yaw = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, yRot)); - if (temp_v1 < 0x4000) { + if (yaw < 0x4000) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); @@ -2951,11 +2954,11 @@ s32 func_80B575BC(EnAn* this, PlayState* play) { return 1; } -s32 func_80B57674(EnAn* this, PlayState* play) { - s16 temp = BINANG_ADD(this->actor.shape.rot.y, 0x3000); - s16 temp_v1 = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, temp)); +s32 EnAn_HandleSch_80B57674(EnAn* this, PlayState* play) { + s16 yRot = BINANG_ADD(this->actor.shape.rot.y, 0x3000); + s16 yaw = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, yRot)); - if (temp_v1 < 0x3000) { + if (yaw < 0x3000) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); } else { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); @@ -2965,24 +2968,26 @@ s32 func_80B57674(EnAn* this, PlayState* play) { return 1; } +/* End of HandleShedule functions */ + void EnAn_HandleSchedule(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: case ANJU_SCH_ATTEND_GORON: - case ANJU_SCH_GIVE_LUNCH_TO_GRANDMA: - func_80B56E44(this, play); + case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: + EnAn_HandleSch_InteractActor(this, play); break; case ANJU_SCH_LAUNDRY_POOL_SIT: - func_80B573F4(this, play); + EnAn_HandleSch_LaundryPool(this, play); break; case ANJU_SCH_WAITING_FOR_KAFEI: - func_80B575BC(this, play); + EnAn_HandleSch_80B575BC(this, play); break; case ANJU_SCH_25: - func_80B57674(this, play); + EnAn_HandleSch_80B57674(this, play); break; case ANJU_SCH_RANCH: @@ -2990,12 +2995,12 @@ void EnAn_HandleSchedule(EnAn* this, PlayState* play) { case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_19: case ANJU_SCH_SWEEPING: - case ANJU_SCH_24: - func_80B572D4(this, play); + case ANJU_SCH_TALKING_WITH_MOM: + EnAn_HandleSch_80B572D4(this, play); break; case ANJU_SCH_MIDNIGHT_MEETING: - func_80B572D4(this, play); + EnAn_HandleSch_80B572D4(this, play); break; case ANJU_SCH_DOOR_26: @@ -3012,33 +3017,33 @@ void EnAn_HandleSchedule(EnAn* this, PlayState* play) { case ANJU_SCH_DOOR_37: case ANJU_SCH_DOOR_38: case ANJU_SCH_DOOR_39: - func_80B56EB4(this, play); + EnAn_HandleSch_Door(this, play); break; - case ANJU_SCH_40: - case ANJU_SCH_42: - case ANJU_SCH_43: - case ANJU_SCH_44: - case ANJU_SCH_45: - case ANJU_SCH_46: - case ANJU_SCH_47: - case ANJU_SCH_48: - case ANJU_SCH_49: - case ANJU_SCH_50: - case ANJU_SCH_51: - case ANJU_SCH_52: - case ANJU_SCH_53: - case ANJU_SCH_54: - case ANJU_SCH_55: - case ANJU_SCH_LAUNDRY_POOL_WALKING_IN: - case ANJU_SCH_LAUNDRY_POOL_LEAVING: - case ANJU_SCH_58: - case ANJU_SCH_59: - case ANJU_SCH_60: - case ANJU_SCH_61: - case ANJU_SCH_62: - case ANJU_SCH_63: - func_80B5702C(this, play); + case ANJU_SCH_WALKING_40: + case ANJU_SCH_WALKING_42: + case ANJU_SCH_WALKING_43: + case ANJU_SCH_WALKING_44: + case ANJU_SCH_WALKING_45: + case ANJU_SCH_WALKING_46: + case ANJU_SCH_WALKING_47: + case ANJU_SCH_WALKING_48: + case ANJU_SCH_WALKING_49: + case ANJU_SCH_WALKING_50: + case ANJU_SCH_WALKING_51: + case ANJU_SCH_WALKING_52: + case ANJU_SCH_WALKING_53: + case ANJU_SCH_WALKING_54: + case ANJU_SCH_WALKING_55: + case ANJU_SCH_WALKING_56: + case ANJU_SCH_WALKING_57: + case ANJU_SCH_WALKING_58: + case ANJU_SCH_WALKING_59: + case ANJU_SCH_WALKING_60: + case ANJU_SCH_WALKING_61: + case ANJU_SCH_WALKING_62: + case ANJU_SCH_WALKING_63: + EnAn_HandleSch_FollowTimePath(this, play); break; } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index bc13a33a1..9856d7a15 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -51,10 +51,10 @@ typedef struct EnAn { /* 0x210 */ s32 msgScriptResumePos; /* 0x214 */ s8 roomNum; /* 0x215 */ s8 doorOpenTimer; - /* 0x218 */ Actor* lookAtActor; + /* 0x218 */ Actor* lookAtActor; // interactActor /* 0x21C */ UNK_TYPE1 unk_21C[0xC]; - /* 0x228 */ Vec3f unk_228; - /* 0x234 */ Vec3f unk_234; + /* 0x228 */ Vec3f doorEntrancePos; // Position of the point just before entering the door + /* 0x234 */ Vec3f doorExitPos; // Position of the point just after passing through the door /* 0x240 */ Vec3f headComputedPos; /* 0x24C */ UNK_TYPE1 unk_24C[0xC]; /* 0x258 */ Vec3s headComputedRot; @@ -68,7 +68,11 @@ typedef struct EnAn { /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; /* 0x374 */ f32 unk_374; /* 0x378 */ s16 unk_378; // schedule time diff - /* 0x37A */ s16 unk_37A; // schedule time diff + /* 0x37A */ union { + s16 unk_37A; // schedule time diff + s16 laundryPoolState; + s16 followScheduleState; // unused + } var1; /* 0x37C */ s16 headRotZ; /* 0x37E */ s16 headRotY; /* 0x380 */ UNK_TYPE1 unk_380[0x4]; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index ea12278da..b40611e99 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14050,13 +14050,13 @@ 0x80B56BC0:("func_80B56BC0",), 0x80B56CAC:("func_80B56CAC",), 0x80B56D28:("EnAn_ProcessScheduleOutput",), - 0x80B56E44:("func_80B56E44",), - 0x80B56EB4:("func_80B56EB4",), - 0x80B5702C:("func_80B5702C",), - 0x80B572D4:("func_80B572D4",), - 0x80B573F4:("func_80B573F4",), - 0x80B575BC:("func_80B575BC",), - 0x80B57674:("func_80B57674",), + 0x80B56E44:("EnAn_HandleSch_InteractActor",), + 0x80B56EB4:("EnAn_HandleSch_Door",), + 0x80B5702C:("EnAn_HandleSch_FollowTimePath",), + 0x80B572D4:("EnAn_HandleSch_80B572D4",), + 0x80B573F4:("EnAn_HandleSch_LaundryPool",), + 0x80B575BC:("EnAn_HandleSch_80B575BC",), + 0x80B57674:("EnAn_HandleSch_80B57674",), 0x80B57718:("EnAn_HandleSchedule",), 0x80B577F0:("EnAn_Initialize",), 0x80B578F8:("EnAn_FollowSchedule",), From b52efe253cf36b00bf2ffbc2300e1bdb99304601 Mon Sep 17 00:00:00 2001 From: Angie Date: Thu, 12 Oct 2023 22:50:28 -0300 Subject: [PATCH 42/78] name flags --- src/overlays/actors/ovl_En_An/z_en_an.c | 135 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 6 +- tools/disasm/functions.txt | 2 +- tools/disasm/variables.txt | 22 ++-- 4 files changed, 83 insertions(+), 82 deletions(-) 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 0776861d4..b1c3b4e0d 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -604,6 +604,7 @@ s32 sAnjuMsgScript_SchReceiveLetterFromPostman[0x1B] = { 0x09000018, 0x0E28BE0C, 0x09000017, 0x0E28BF0C, 0x09000018, 0x0E28C02D, 0x00012D00, 0x0B0C0900, 0x00115608, 0x10090000, 0x0E295C0C, 0x09000017, 0x0E295D0C, 0x09000018, 0x0E295E2D, 0x00012D00, 0x0B0C0900, 0x00100000, }; + s32 sAnjuMsgScript_SchAttendGoron[0x21] = { 0x09000000, 0x4B10001E, 0x0E28B10C, 0x09000017, 0x0E28B20C, 0x09000018, 0x0E28B32D, 0x00011137, 0x020C0900, 0x00100056, 0x10002E0E, 0x28B10C09, 0x0000170E, 0x28B50C09, 0x0000180E, 0x28B60C09, 0x0000170E, 0x28B70C09, @@ -615,7 +616,7 @@ s32 sAnjuMsgScript_SchGiveLunchToGranny[0x15] = { 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, }; -s32 sAnjuMsgScript_Sch12_B[0x37] = { +s32 sAnjuMsgScript_80B5885C[0x37] = { 0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000, 0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300, 0xA02F0000, 0x2E2D0014, 0x0C114B10, 0x0700000E, 0x28AD2D00, 0x010C2400, 0x41161031, 0x0E28A30C, @@ -625,17 +626,18 @@ s32 sAnjuMsgScript_Sch12_B[0x37] = { 0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000, }; s32 sAnjuMsgScript_InnCloseTime[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; -s32 sAnjuMsgScript_Sch30[2] = { 0x0E28AF2D, 0x10C10 }; -s32 sAnjuMsgScript_Sch28[2] = { 0x0E28C12D, 0x10C10 }; +s32 sAnjuMsgScript_80B58944[2] = { 0x0E28AF2D, 0x10C10 }; +s32 sAnjuMsgScript_80B5894C[2] = { 0x0E28C12D, 0x10C10 }; s32 sAnjuMsgScript_SchCooking[0xB] = { 0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C, 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; -s32 D_80B58980[2] = { 0x0E28C62D, 0x10C10 }; +s32 sAnjuMsgScript_80B58980[2] = { 0x0E28C62D, 0x10C10 }; s32 sAnjuMsgScript_SchSweeping[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; -s32 sAnjuMsgScript_Sch34_Sch35[2] = { 0x0E28F82D, 0x10C10 }; +s32 sAnjuMsgScript_80B58994[2] = { 0x0E28F82D, 0x10C10 }; s32 sAnjuMsgScript_SchRanch[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; -s32 sAnjuMsgScript_Sch17_A[0x14] = { + +s32 sAnjuMsgScript_SchMidnightMeeting[0x14] = { 0x0E28D70C, 0x0F28D80C, 0x0F28D90C, 0x0F28DA0C, 0x0F28DB0C, 0x05000700, 0x731, 0x0E28D919, -0x16CFF2, 0x28DC0C11, 0x32201132, 0x10120600, 0xAA000013, 0xAA2F00, 0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010, @@ -648,15 +650,15 @@ s32 sAnjuMsgScript_DekuDefault[8] = { 0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000, }; s32 sAnjuMsgScript_SchLaundryPoolDeku[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; -s32 sAnjuMsgScript_Sch12_A[2] = { 0x0E28E02D, 0x10C10 }; -s32 D_80B58A44[0x1E] = { +s32 sAnjuMsgScript_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; +s32 sAnjuMsgScript_80B58A44[0x1E] = { 0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25, 0x30001D, 0x27000300, 0x080E28E3, 0x2D00010C, 0x100E28E2, 0x2D00010C, 0x100E28E1, 0x2D00010C, 0x100E28E4, 0x0C0E00FF, 0x1E003600, 0x0E000000, 0x0C2C28E7, 0x0C2F0000, 0x2D00010C, 0x1012102C, 0x28E50C2F, 0xC2A, 0x300F28, -0x19D2FFFF, 0x2D001A0C, 0x11330110, }; -s32 D_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; -s32 D_80B58AC4[9] = { +s32 sAnjuMsgScript_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; +s32 sAnjuMsgScript_80B58AC4[9] = { 0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000, }; s32 sAnjuMsgScript_SchWaitingForKafei[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; @@ -675,7 +677,7 @@ s32 sAnjuMsgScript_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; // Tells player that they should talk in the kitchen instead s32 sAnjuMsgScript_80B58B88[2] = { 0x0E29612D, 0x10C10 }; -s32 sAnjuMsgScript_Sch19[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_80B58B90[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; ActorInit En_An_InitVars = { ACTOR_EN_AN, @@ -1088,7 +1090,7 @@ static s16 sMouthIndices[ENAN_FACE_MAX] = { void EnAn_UpdateFace(EnAn* this) { s32 skipBlink = false; - if (this->stateFlags & ENAN_STATE_100) { + if (this->stateFlags & ENAN_STATE_UPDATE_EYES) { if (DECR(this->eyeTimer) == 0) { // default case doesn't match switch (this->faceIndex) { @@ -1293,11 +1295,11 @@ s16 EnAn_GetChildCsId(EnAn* this, s32 numCutscenes) { s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetCsId(this, 0); - s32 ret = 0; + s32 ret = false; switch (this->msgEventState) { case 0x0: - ret = 0; + ret = false; if (EnAn_ChangeCutscene(this, csId)) { goto label; } @@ -1308,7 +1310,7 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { case 0x6: label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); - ret = 1; + ret = true; this->msgEventState++; break; @@ -1322,12 +1324,12 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { this->actor.child); } this->msgEventState++; - ret = 1; + ret = true; break; case 0x7: CutsceneManager_Stop(csId); - ret = 1; + ret = true; this->msgEventState++; break; } @@ -1338,11 +1340,11 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetCsId(this, 0); - s32 var_a2 = 0; + s32 ret = false; switch (this->msgEventState) { case 0x0: - var_a2 = 0; + ret = false; if (EnAn_ChangeCutscene(this, csId)) { goto label; } @@ -1352,7 +1354,7 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { case 0x4: label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); - var_a2 = 1; + ret = true; this->msgEventState++; break; @@ -1366,16 +1368,17 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { this->actor.child); } this->msgEventState++; - var_a2 = 1; + ret = true; break; case 0x5: CutsceneManager_Stop(csId); - var_a2 = 1; + ret = true; this->msgEventState++; break; } - return var_a2; + + return ret; } s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { @@ -1424,7 +1427,7 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { } // Only used if Player is using Kafei's Mask or if Human and Promised midnight meeting -s32 EnAn_MsgEvent_17(Actor* thisx, PlayState* play) { +s32 EnAn_MsgEvent_MidnightMeeting(Actor* thisx, PlayState* play) { EnAn* this = THIS; if (this->msgEventState == 0) { @@ -1522,7 +1525,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_SchRanch; case ANJU_SCH_25: - return sAnjuMsgScript_Sch19; + return sAnjuMsgScript_80B58B90; default: break; @@ -1560,8 +1563,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) { - this->msgEventFunc = EnAn_MsgEvent_17; - return sAnjuMsgScript_Sch17_A; + this->msgEventFunc = EnAn_MsgEvent_MidnightMeeting; + return sAnjuMsgScript_SchMidnightMeeting; } if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { @@ -1570,23 +1573,23 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if (gSaveContext.save.day >= 2) { - return D_80B58A44; + return sAnjuMsgScript_80B58A44; } // if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { // if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, // 18))) { if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { - return D_80B58ABC; + return sAnjuMsgScript_80B58ABC; } - return D_80B58AC4; + return sAnjuMsgScript_80B58AC4; } if ((player->transformation == PLAYER_FORM_HUMAN) && CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { if (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) { - this->msgEventFunc = EnAn_MsgEvent_17; - return sAnjuMsgScript_Sch17_A; + this->msgEventFunc = EnAn_MsgEvent_MidnightMeeting; + return sAnjuMsgScript_SchMidnightMeeting; } if (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) { @@ -1595,7 +1598,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } if (gSaveContext.save.day >= 2) { - return D_80B58A44; + return sAnjuMsgScript_80B58A44; } } @@ -1604,13 +1607,13 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_SchWaitingForKafei; case ANJU_SCH_WALKING_40: - return sAnjuMsgScript_Sch28; + return sAnjuMsgScript_80B5894C; case ANJU_SCH_WALKING_42: case ANJU_SCH_WALKING_43: case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: - return D_80B58980; + return sAnjuMsgScript_80B58980; case ANJU_SCH_LAUNDRY_POOL_SIT: this->msgEventFunc = EnAn_MsgEvent_LaundryPool; @@ -1618,9 +1621,9 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_RECEPTIONIST_IDLE: if (gSaveContext.save.day >= 2) { - return sAnjuMsgScript_Sch12_A; + return sAnjuMsgScript_80B58A3C; } - return sAnjuMsgScript_Sch12_B; + return sAnjuMsgScript_80B5885C; case ANJU_SCH_19: case ANJU_SCH_WALKING_47: @@ -1633,7 +1636,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_80B589FC; case ANJU_SCH_WALKING_48: - return sAnjuMsgScript_Sch30; + return sAnjuMsgScript_80B58944; case ANJU_SCH_WALKING_49: if (player->transformation == PLAYER_FORM_HUMAN) { @@ -1643,7 +1646,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_WALKING_52: case ANJU_SCH_WALKING_53: - return sAnjuMsgScript_Sch34_Sch35; + return sAnjuMsgScript_80B58994; default: break; @@ -1694,7 +1697,7 @@ s32 func_80B552E4(EnAn* this, PlayState* play) { if (!this->forceDraw) { this->savedFaceIndex = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->eyeTimer = 8; this->cueId = -1; this->forceDraw = true; @@ -2221,7 +2224,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; this->stateFlags |= ENAN_STATE_200; } @@ -2236,7 +2239,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; this->stateFlags |= ENAN_STATE_200; } @@ -2251,7 +2254,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_DRAW_TRAY; } @@ -2315,18 +2318,18 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_DOOR_26: case ANJU_SCH_DOOR_27: case ANJU_SCH_DOOR_28: - this->stateFlags |= ENAN_STATE_DRAW_TRAY | ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_DRAW_TRAY | ENAN_STATE_UPDATE_EYES; EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); break; case ANJU_SCH_DOOR_36: case ANJU_SCH_DOOR_39: - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_DRAW_BROOM; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_DRAW_BROOM; EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); break; default: - this->stateFlags |= ENAN_STATE_100; + this->stateFlags |= ENAN_STATE_UPDATE_EYES; EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; } @@ -2380,7 +2383,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->timePathWaypoint = (this->timePathElapsedTime / this->timePathWaypointTime) + 2; this->stateFlags &= ~ENAN_STATE_8; - this->stateFlags &= ~ENAN_STATE_10; + this->stateFlags &= ~ENAN_STATE_REACHED_PATH_END; switch (scheduleOutput->result) { case ANJU_SCH_WALKING_44: @@ -2411,7 +2414,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_TRAY; break; @@ -2419,15 +2422,14 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_WALKING_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; case ANJU_SCH_WALKING_50: case ANJU_SCH_WALKING_51: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; break; case ANJU_SCH_WALKING_54: @@ -2441,7 +2443,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_WALKING_62: case ANJU_SCH_WALKING_63: EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; @@ -2450,7 +2452,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_WALKING_48: case ANJU_SCH_WALKING_49: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; /* fallthrough */ default: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); @@ -2493,7 +2495,7 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_BROOM; } @@ -2538,19 +2540,19 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->var1.followScheduleState = 0; - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; if (scheduleOutput->result == ANJU_SCH_RECEPTIONIST_IDLE) { this->unk_374 = 70.0f; } break; case ANJU_SCH_LAUNDRY_POOL_SIT: - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); - this->stateFlags |= ENAN_STATE_40; + this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; this->var1.laundryPoolState = 4; @@ -2567,8 +2569,7 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { case ANJU_SCH_COOKING: EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_CHOPSTICKS; break; } @@ -2592,8 +2593,8 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_40; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->savedFaceIndex = ENAN_FACE_5; this->faceIndex = ENAN_FACE_5; @@ -2627,8 +2628,8 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { break; } - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_40; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.gravity = 0.0f; return true; @@ -2643,7 +2644,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_HOLDING_HANDS); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_100 | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; return 1; } @@ -2836,7 +2837,7 @@ s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { if (SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, &this->timePathTargetPos, this->timePathTimeSpeed)) { - this->stateFlags |= ENAN_STATE_10; + this->stateFlags |= ENAN_STATE_REACHED_PATH_END; } else { worldPos = this->actor.world.pos; timePathTargetPos = this->timePathTargetPos; @@ -2907,7 +2908,7 @@ s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { if (worldRot == shapeRot) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_SIT); - this->stateFlags |= ENAN_STATE_40; + this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->var1.laundryPoolState++; } break; @@ -3247,7 +3248,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { func_80B554E8(this); SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); - if (!(this->stateFlags & ENAN_STATE_40)) { + if (!(this->stateFlags & ENAN_STATE_IGNORE_GRAVITY)) { Actor_MoveWithGravity(&this->actor); Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_4); } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 9856d7a15..afd5e91cb 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -15,11 +15,11 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); //#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) #define ENAN_STATE_8 (1 << 3) -#define ENAN_STATE_10 (1 << 4) +#define ENAN_STATE_REACHED_PATH_END (1 << 4) #define ENAN_STATE_20 (1 << 5) -#define ENAN_STATE_40 (1 << 6) +#define ENAN_STATE_IGNORE_GRAVITY (1 << 6) #define ENAN_STATE_80 (1 << 7) -#define ENAN_STATE_100 (1 << 8) +#define ENAN_STATE_UPDATE_EYES (1 << 8) #define ENAN_STATE_200 (1 << 9) #define ENAN_STATE_TALKING (1 << 10) #define ENAN_STATE_DRAW_TRAY (1 << 11) diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index b40611e99..428dffd8a 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14022,7 +14022,7 @@ 0x80B547C8:("EnAn_MsgEvent_ReceiveLetterFromPostman",), 0x80B5492C:("EnAn_MsgEvent_AttendGoron",), 0x80B54A94:("EnAn_MsgEvent_GiveLunchToGrandma",), - 0x80B54BC4:("EnAn_MsgEvent_17",), + 0x80B54BC4:("EnAn_MsgEvent_MidnightMeeting",), 0x80B54C5C:("EnAn_MsgEvent_Cooking",), 0x80B54D18:("EnAn_MsgEvent_LaundryPool",), 0x80B54DF4:("EnAn_GetMsgEventScript",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index 75498b08b..a650fc0ce 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14448,29 +14448,29 @@ 0x80B58718:("sAnjuMsgScript_SchReceiveLetterFromPostman","UNK_TYPE1","",0x1), 0x80B58784:("sAnjuMsgScript_SchAttendGoron","UNK_TYPE1","",0x1), 0x80B58808:("sAnjuMsgScript_SchGiveLunchToGrandma","UNK_TYPE1","",0x1), - 0x80B5885C:("sAnjuMsgScript_Sch12_B","UNK_TYPE1","",0x1), + 0x80B5885C:("sAnjuMsgScript_80B5885C","UNK_TYPE1","",0x1), 0x80B58938:("sAnjuMsgScript_InnCloseTime","UNK_TYPE1","",0x1), - 0x80B58944:("sAnjuMsgScript_Sch30","UNK_TYPE1","",0x1), - 0x80B5894C:("sAnjuMsgScript_Sch28","UNK_TYPE1","",0x1), + 0x80B58944:("sAnjuMsgScript_80B58944","UNK_TYPE1","",0x1), + 0x80B5894C:("sAnjuMsgScript_80B5894C","UNK_TYPE1","",0x1), 0x80B58954:("sAnjuMsgScript_SchCooking","UNK_TYPE1","",0x1), - 0x80B58980:("D_80B58980","UNK_TYPE1","",0x1), + 0x80B58980:("sAnjuMsgScript_80B58980","UNK_TYPE1","",0x1), 0x80B58988:("sAnjuMsgScript_SchSweeping","UNK_TYPE1","",0x1), - 0x80B58994:("sAnjuMsgScript_Sch34_Sch35","UNK_TYPE1","",0x1), + 0x80B58994:("sAnjuMsgScript_80B58994","UNK_TYPE1","",0x1), 0x80B5899C:("sAnjuMsgScript_SchRanch","UNK_TYPE1","",0x1), - 0x80B589AC:("sAnjuMsgScript_Sch17_A","UNK_TYPE1","",0x1), + 0x80B589AC:("sAnjuMsgScript_SchMidnightMeeting","UNK_TYPE1","",0x1), 0x80B589FC:("sAnjuMsgScript_80B589FC","UNK_TYPE1","",0x1), 0x80B58A04:("sAnjuMsgScript_DekuDefault","UNK_TYPE1","",0x1), 0x80B58A24:("sAnjuMsgScript_SchLaundryPoolDeku","UNK_TYPE1","",0x1), - 0x80B58A3C:("sAnjuMsgScript_Sch12_A","UNK_TYPE1","",0x1), - 0x80B58A44:("D_80B58A44","UNK_TYPE1","",0x1), - 0x80B58ABC:("D_80B58ABC","UNK_TYPE1","",0x1), - 0x80B58AC4:("D_80B58AC4","UNK_TYPE1","",0x1), + 0x80B58A3C:("sAnjuMsgScript_80B58A3C","UNK_TYPE1","",0x1), + 0x80B58A44:("sAnjuMsgScript_80B58A44","UNK_TYPE1","",0x1), + 0x80B58ABC:("sAnjuMsgScript_80B58ABC","UNK_TYPE1","",0x1), + 0x80B58AC4:("sAnjuMsgScript_80B58AC4","UNK_TYPE1","",0x1), 0x80B58AE8:("sAnjuMsgScript_SchWaitingForKafei","UNK_TYPE1","",0x1), 0x80B58AF4:("sAnjuMsgScript_SchLaundryPoolDefault","UNK_TYPE1","",0x1), 0x80B58B3C:("sAnjuMsgScript_SchLaundryPoolKafeiMask","UNK_TYPE1","",0x1), 0x80B58B7C:("sAnjuMsgScript_80B58B7C","UNK_TYPE1","",0x1), 0x80B58B88:("sAnjuMsgScript_80B58B88","UNK_TYPE1","",0x1), - 0x80B58B90:("sAnjuMsgScript_Sch19","UNK_TYPE1","",0x1), + 0x80B58B90:("sAnjuMsgScript_80B58B90","UNK_TYPE1","",0x1), 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), 0x80B58BBC:("sCylinderInit","UNK_TYPE1","",0x1), 0x80B58BE8:("sColChkInfoInit","UNK_TYPE1","",0x1), From 26f748680a869c039fc122b52bd4ff5059164fb0 Mon Sep 17 00:00:00 2001 From: angie Date: Fri, 13 Oct 2023 11:14:03 -0300 Subject: [PATCH 43/78] name some of the ProcessSchedule functions --- src/overlays/actors/ovl_En_An/z_en_an.c | 145 ++++++++++++------------ src/overlays/actors/ovl_En_An/z_en_an.h | 4 +- tools/disasm/functions.txt | 20 ++-- 3 files changed, 83 insertions(+), 86 deletions(-) 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 b1c3b4e0d..0d9586fc4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -52,34 +52,34 @@ typedef enum AnjuScheduleResult { /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANNY, /* 22 */ ANJU_SCH_SWEEPING, /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, - /* 24 */ ANJU_SCH_TALKING_WITH_MOM, // Day 2, 21:30 ~ 23:00, on the employees-only room, talking with her mom + /* 24 */ ANJU_SCH_TALKING_WITH_MOM, // Day 2, 21:30 ~ 23:00, on the staff room, talking with her mom /* 25 */ ANJU_SCH_25, // Set manually in code instead of via script /* 26 */ ANJU_SCH_DOOR_26, // Passing through to Granny's door (entering) /* 27 */ ANJU_SCH_DOOR_27, // Passing through to Granny's door (leaving) - /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the employees-only room (entering), after giving Granny's lunch - /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the employees-only room (leaving), after giving Granny's lunch - /* 30 */ ANJU_SCH_DOOR_30, // Passing through the door of the employees-only room (entering), after closing the Inn - /* 31 */ ANJU_SCH_DOOR_31, // Passing through the door of the employees-only room (leaving), to have the midnight meeting - /* 32 */ ANJU_SCH_DOOR_32, // Passing through the door of the employees-only room (leaving), going to the Laundry Pool + /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the staff room (entering), after giving Granny's lunch + /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the staff room (leaving), after giving Granny's lunch + /* 30 */ ANJU_SCH_DOOR_30, // Passing through the door of the staff room (entering), after closing the Inn + /* 31 */ ANJU_SCH_DOOR_31, // Passing through the door of the staff room (leaving), to have the midnight meeting + /* 32 */ ANJU_SCH_DOOR_32, // Passing through the door of the staff room (leaving), going to the Laundry Pool /* 33 */ ANJU_SCH_DOOR_33, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool /* 34 */ ANJU_SCH_DOOR_34, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool - /* 35 */ ANJU_SCH_DOOR_35, // Passing through the door of the employees-only room (entering), after going to the Laundry Pool + /* 35 */ ANJU_SCH_DOOR_35, // Passing through the door of the staff room (entering), after going to the Laundry Pool /* 36 */ ANJU_SCH_DOOR_36, // Passing through the door of the Large Suite (leaving), after sweeping the floor /* 37 */ ANJU_SCH_DOOR_37, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool /* 38 */ ANJU_SCH_DOOR_38, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool - /* 39 */ ANJU_SCH_DOOR_39, // Passing through the door of the employees-only room (entering, after sweeping the floor + /* 39 */ ANJU_SCH_DOOR_39, // Passing through the door of the staff room (entering, after sweeping the floor /* 40 */ ANJU_SCH_WALKING_40, // Going from the front desk to the kitchen /* 41 */ ANJU_SCH_41, // unused /* 42 */ ANJU_SCH_WALKING_42, // Walking from the kitchen to Granny's room /* 43 */ ANJU_SCH_WALKING_43, // Inside Granny's room, walking to give her her food /* 44 */ ANJU_SCH_WALKING_44, // Inside Granny's room, walking out - /* 45 */ ANJU_SCH_WALKING_45, // Left Granny's room, walking towards employees-only room - /* 46 */ ANJU_SCH_WALKING_46, // Left employees-only room, walking to front desk + /* 45 */ ANJU_SCH_WALKING_45, // Left Granny's room, walking towards staff room + /* 46 */ ANJU_SCH_WALKING_46, // Left staff room, walking to front desk /* 47 */ ANJU_SCH_WALKING_47, // Walking from the front desk to right next to the Inn's front door - /* 48 */ ANJU_SCH_WALKING_48, // Walking from the Inn's front door after closing, to the employees-only room - /* 49 */ ANJU_SCH_WALKING_49, // Walking from the employees-only room to the kitchen, to have the midnight meeting - /* 50 */ ANJU_SCH_WALKING_50, // Walking from the employees-only room to Inn's front door, to go to the Laundry Pool - /* 51 */ ANJU_SCH_WALKING_51, // Walking from the Inn's front door to the employees-only room, after going to the Laundry Pool + /* 48 */ ANJU_SCH_WALKING_48, // Walking from the Inn's front door after closing, to the staff room + /* 49 */ ANJU_SCH_WALKING_49, // Walking from the staff room to the kitchen, to have the midnight meeting + /* 50 */ ANJU_SCH_WALKING_50, // Walking from the staff room to Inn's front door, to go to the Laundry Pool + /* 51 */ ANJU_SCH_WALKING_51, // Walking from the Inn's front door to the staff room, after going to the Laundry Pool /* 52 */ ANJU_SCH_WALKING_52, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room /* 53 */ ANJU_SCH_WALKING_53, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping /* 54 */ ANJU_SCH_WALKING_54, // Walking through East Clock Town, going to the Laundry Pool @@ -1022,14 +1022,14 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { return ret; } -Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; - void EnAn_UpdateCollider(EnAn* this, PlayState* play) { f32 temp; s32 pad; Vec3f sp24; if (this->scheduleResult == ANJU_SCH_25) { + static Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; + Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); this->collider.dim.radius = 20; Math_Vec3f_ToVec3s(&this->collider.dim.pos, &sp24); @@ -2216,7 +2216,7 @@ s32 func_80B55F8C(PlayState* play) { return ret; } -s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_ReceiveLetterFromPostman(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_PM)) { @@ -2231,7 +2231,7 @@ s32 func_80B5600C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_AttendGoron(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_IG)) { @@ -2246,7 +2246,7 @@ s32 func_80B56094(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_GiveLunchToGranny(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { s32 ret = false; if (func_80B55D98(this, play, scheduleOutput, ACTORCAT_NPC, ACTOR_EN_NB)) { @@ -2261,7 +2261,7 @@ s32 func_80B5611C(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 now = SCHEDULE_TIME_NOW; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); EnDoor* door; @@ -2296,8 +2296,8 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { this->doorOpenTimer = 75; } - this->unk_378 = scheduleOutput->time1 - scheduleOutput->time0; - this->var1.unk_37A = now - scheduleOutput->time0; + this->doorTimeTotalDiff = scheduleOutput->time1 - scheduleOutput->time0; + this->var1.doorTimeProgress = now - scheduleOutput->time0; switch (scheduleOutput->result) { case ANJU_SCH_DOOR_27: @@ -2344,7 +2344,7 @@ s32 func_80B561A4(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u16 now = SCHEDULE_TIME_NOW; u16 startTime; u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); @@ -2466,7 +2466,7 @@ s32 func_80B56418(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_Sweeping(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); Vec3f firstPos; Vec3f secondPos; @@ -2505,10 +2505,10 @@ s32 func_80B56744(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { u8 pathIndex = ENAN_GET_PATH_INDEX(&this->actor); - Vec3f sp40; - Vec3f sp34; + Vec3f lastPos; + Vec3f penultimatePos; Vec3s* points; s32 limit; s32 ret = false; @@ -2521,15 +2521,15 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { if ((this->timePath != NULL) && (this->timePath->count >= 2)) { points = Lib_SegmentedToVirtual(this->timePath->points); - Math_Vec3s_ToVec3f(&sp40, &points[this->timePath->count - 1]); - Math_Vec3s_ToVec3f(&sp34, &points[this->timePath->count - 2]); + Math_Vec3s_ToVec3f(&lastPos, &points[this->timePath->count - 1]); + Math_Vec3s_ToVec3f(&penultimatePos, &points[this->timePath->count - 2]); - this->actor.world.rot.y = Math_Vec3f_Yaw(&sp34, &sp40); + this->actor.world.rot.y = Math_Vec3f_Yaw(&penultimatePos, &lastPos); Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); Math_Vec3s_Copy(&this->actor.home.rot, &this->actor.world.rot); - Math_Vec3f_Copy(&this->actor.world.pos, &sp40); - Math_Vec3f_Copy(&this->actor.prevPos, &sp40); + Math_Vec3f_Copy(&this->actor.world.pos, &lastPos); + Math_Vec3f_Copy(&this->actor.prevPos, &lastPos); switch (scheduleOutput->result) { case ANJU_SCH_19: @@ -2579,10 +2579,9 @@ s32 func_80B56880(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return ret; } -Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; -Vec3s D_80B58E88 = { 0, 0, 0 }; - -s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_Ranch(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + static Vec3f D_80B58E7C = { 905.0f, 260.0f, -64.0f }; + static Vec3s D_80B58E88 = { 0, 0, 0 }; s32 pad; Math_Vec3f_Copy(&this->actor.world.pos, &D_80B58E7C); @@ -2604,10 +2603,9 @@ s32 func_80B56B00(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return true; } -Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; -Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; - -s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_StaffRoom(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + static Vec3f D_80B58E90 = { -508.0f, 210.0f, -162.0f }; + static Vec3s D_80B58E9C = { 0, 0x3FFC, 0 }; s32 pad; Math_Vec3f_Copy(&this->actor.world.pos, &D_80B58E90); @@ -2635,9 +2633,8 @@ s32 func_80B56BC0(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { return true; } -Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; - -s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { + static Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; s32 pad; Math_Vec3s_Copy(&this->actor.shape.rot, &D_80B58EA4); @@ -2646,7 +2643,7 @@ s32 func_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; - return 1; + return true; } s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { @@ -2662,24 +2659,24 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche switch (scheduleOutput->result) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: - ret = func_80B5600C(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_ReceiveLetterFromPostman(this, play, scheduleOutput); break; case ANJU_SCH_ATTEND_GORON: - ret = func_80B56094(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_AttendGoron(this, play, scheduleOutput); break; case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: - ret = func_80B5611C(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_GiveLunchToGranny(this, play, scheduleOutput); break; case ANJU_SCH_RANCH: - ret = func_80B56B00(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_Ranch(this, play, scheduleOutput); break; case ANJU_SCH_WAITING_FOR_KAFEI: case ANJU_SCH_TALKING_WITH_MOM: - ret = func_80B56BC0(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_StaffRoom(this, play, scheduleOutput); break; case ANJU_SCH_LAUNDRY_POOL_SIT: @@ -2687,15 +2684,15 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_19: case ANJU_SCH_MIDNIGHT_MEETING: - ret = func_80B56880(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_80B56880(this, play, scheduleOutput); break; case ANJU_SCH_SWEEPING: - ret = func_80B56744(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_Sweeping(this, play, scheduleOutput); break; case ANJU_SCH_25: - ret = func_80B56CAC(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_80B56CAC(this, play, scheduleOutput); break; case ANJU_SCH_DOOR_26: @@ -2712,7 +2709,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_DOOR_37: case ANJU_SCH_DOOR_38: case ANJU_SCH_DOOR_39: - ret = func_80B561A4(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_Door(this, play, scheduleOutput); break; case ANJU_SCH_WALKING_40: @@ -2738,11 +2735,11 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_WALKING_61: case ANJU_SCH_WALKING_62: case ANJU_SCH_WALKING_63: - ret = func_80B56418(this, play, scheduleOutput); + ret = EnAn_ProcessSchedule_Walking(this, play, scheduleOutput); break; default: - ret = 0; + ret = false; break; } @@ -2774,23 +2771,23 @@ s32 EnAn_HandleSch_Door(EnAn* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { // Tell the door actor to be open while passing through it and which orientation - if ((this->var1.unk_37A / (f32)this->unk_378) <= 0.9f) { + if ((this->var1.doorTimeProgress / (f32)this->doorTimeTotalDiff) <= 0.9f) { door->openTimer = this->doorOpenTimer; } else { door->openTimer = 0; } } - this->var1.unk_37A = CLAMP(this->var1.unk_37A, 0, this->unk_378); - distance = Math_Vec3f_DistXZ(&this->doorEntrancePos, &this->doorExitPos) / this->unk_378; + this->var1.doorTimeProgress = CLAMP(this->var1.doorTimeProgress, 0, this->doorTimeTotalDiff); + distance = Math_Vec3f_DistXZ(&this->doorEntrancePos, &this->doorExitPos) / this->doorTimeTotalDiff; sp38.x = 0.0f; sp38.y = 0.0f; - sp38.z = this->var1.unk_37A * distance; + sp38.z = this->var1.doorTimeProgress * distance; Lib_Vec3f_TranslateAndRotateY(&this->doorEntrancePos, this->actor.world.rot.y, &sp38, &this->actor.world.pos); - this->var1.unk_37A += this->timePathTimeSpeed; + this->var1.doorTimeProgress += this->timePathTimeSpeed; if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } @@ -2802,35 +2799,35 @@ s32 EnAn_HandleSch_Door(EnAn* this, PlayState* play) { s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { f32 knots[265]; Vec3f worldPos; - Vec3f timePathTargetPos; - Vec3f timePathTargetPos; + Vec3f sp64; + Vec3f sp58; s32 timePathElapsedTime; s32 timePathWaypoint; s32 pad; - timePathElapsedTime = 0; timePathWaypoint = 0; + timePathElapsedTime = 0; SubS_TimePathing_FillKnots(knots, SUBS_TIME_PATHING_ORDER, this->timePath->count + SUBS_TIME_PATHING_ORDER); if (!(this->stateFlags & ENAN_STATE_8)) { - timePathTargetPos = gZeroVec3f; + sp58 = gZeroVec3f; SubS_TimePathing_Update(this->timePath, &this->timePathProgress, &this->timePathElapsedTime, this->timePathWaypointTime, this->timePathTotalTime, &this->timePathWaypoint, knots, - &timePathTargetPos, this->timePathTimeSpeed); - SubS_TimePathing_ComputeInitialY(play, this->timePath, this->timePathWaypoint, &timePathTargetPos); - this->actor.world.pos.y = timePathTargetPos.y; + &sp58, this->timePathTimeSpeed); + SubS_TimePathing_ComputeInitialY(play, this->timePath, this->timePathWaypoint, &sp58); + this->actor.world.pos.y = sp58.y; this->stateFlags |= ENAN_STATE_8; } else { - timePathTargetPos = this->timePathTargetPos; + sp58 = this->timePathTargetPos; } - this->actor.world.pos.x = timePathTargetPos.x; - this->actor.world.pos.z = timePathTargetPos.z; + this->actor.world.pos.x = sp58.x; + this->actor.world.pos.z = sp58.z; if (SubS_InCsMode(play)) { timePathElapsedTime = this->timePathElapsedTime; timePathWaypoint = this->timePathWaypoint; - timePathTargetPos = this->actor.world.pos; + sp58 = this->actor.world.pos; } this->timePathTargetPos = gZeroVec3f; @@ -2840,14 +2837,14 @@ s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_REACHED_PATH_END; } else { worldPos = this->actor.world.pos; - timePathTargetPos = this->timePathTargetPos; - this->actor.world.rot.y = Math_Vec3f_Yaw(&worldPos, &timePathTargetPos); + sp64 = this->timePathTargetPos; + this->actor.world.rot.y = Math_Vec3f_Yaw(&worldPos, &sp64); } if (SubS_InCsMode(play)) { this->timePathElapsedTime = timePathElapsedTime; this->timePathWaypoint = timePathWaypoint; - this->timePathTargetPos = timePathTargetPos; + this->timePathTargetPos = sp58; } else if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index afd5e91cb..1fbf60616 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -67,9 +67,9 @@ typedef struct EnAn { /* 0x368 */ f32 unk_368; /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; /* 0x374 */ f32 unk_374; - /* 0x378 */ s16 unk_378; // schedule time diff + /* 0x378 */ s16 doorTimeTotalDiff; // Time difference between the point before going through a door and after going through it /* 0x37A */ union { - s16 unk_37A; // schedule time diff + s16 doorTimeProgress; // schedule time diff s16 laundryPoolState; s16 followScheduleState; // unused } var1; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 428dffd8a..1290a882a 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14039,16 +14039,16 @@ 0x80B55D98:("func_80B55D98",), 0x80B55ECC:("EnAn_IsFacingAndNearPlayer",), 0x80B55F8C:("func_80B55F8C",), - 0x80B5600C:("func_80B5600C",), - 0x80B56094:("func_80B56094",), - 0x80B5611C:("func_80B5611C",), - 0x80B561A4:("func_80B561A4",), - 0x80B56418:("func_80B56418",), - 0x80B56744:("func_80B56744",), - 0x80B56880:("func_80B56880",), - 0x80B56B00:("func_80B56B00",), - 0x80B56BC0:("func_80B56BC0",), - 0x80B56CAC:("func_80B56CAC",), + 0x80B5600C:("EnAn_ProcessSchedule_ReceiveLetterFromPostman",), + 0x80B56094:("EnAn_ProcessSchedule_AttendGoron",), + 0x80B5611C:("EnAn_ProcessSchedule_GiveLunchToGranny",), + 0x80B561A4:("EnAn_ProcessSchedule_Door",), + 0x80B56418:("EnAn_ProcessSchedule_Walking",), + 0x80B56744:("EnAn_ProcessSchedule_Sweeping",), + 0x80B56880:("EnAn_ProcessSchedule_80B56880",), + 0x80B56B00:("EnAn_ProcessSchedule_Ranch",), + 0x80B56BC0:("EnAn_ProcessSchedule_StaffRoom",), + 0x80B56CAC:("EnAn_ProcessSchedule_80B56CAC",), 0x80B56D28:("EnAn_ProcessScheduleOutput",), 0x80B56E44:("EnAn_HandleSch_InteractActor",), 0x80B56EB4:("EnAn_HandleSch_Door",), From 2e7a22cceda8f3e3b889708dbb2e6c9878db7bc4 Mon Sep 17 00:00:00 2001 From: Angie Date: Fri, 13 Oct 2023 17:51:28 -0300 Subject: [PATCH 44/78] and more naming --- src/code/z_schedule.c | 32 +-- src/overlays/actors/ovl_En_An/z_en_an.c | 247 ++++++++++++++++-------- src/overlays/actors/ovl_En_An/z_en_an.h | 2 +- tools/disasm/functions.txt | 6 +- 4 files changed, 185 insertions(+), 102 deletions(-) diff --git a/src/code/z_schedule.c b/src/code/z_schedule.c index b05e6ba95..31089939a 100644 --- a/src/code/z_schedule.c +++ b/src/code/z_schedule.c @@ -240,25 +240,25 @@ s32 Schedule_BranchL(PlayState* play, u8** script, ScheduleOutput* output) { } static s32 (*sScheduleCmdFuncs[])(PlayState*, u8**, ScheduleOutput*) = { - Schedule_CheckFlagS, // SCHEDULE_CMD_ID_CHECK_FLAG_S - Schedule_CheckFlagL, // SCHEDULE_CMD_ID_CHECK_FLAG_L - Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S - Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L - Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L - Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE - Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY - Schedule_Nop, // SCHEDULE_CMD_ID_NOP - Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S - Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S - Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S + Schedule_CheckFlagS, // SCHEDULE_CMD_ID_CHECK_FLAG_S + Schedule_CheckFlagL, // SCHEDULE_CMD_ID_CHECK_FLAG_L + Schedule_CheckTimeRangeS, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_S + Schedule_CheckTimeRangeL, // SCHEDULE_CMD_ID_CHECK_TIME_RANGE_L + Schedule_ReturnValueL, // SCHEDULE_CMD_ID_RET_VAL_L + Schedule_ReturnNone, // SCHEDULE_CMD_ID_RET_NONE + Schedule_ReturnEmpty, // SCHEDULE_CMD_ID_RET_EMPTY + Schedule_Nop, // SCHEDULE_CMD_ID_NOP + Schedule_CheckMiscS, // SCHEDULE_CMD_ID_CHECK_MISC_S + Schedule_ReturnValueS, // SCHEDULE_CMD_ID_RET_VAL_S + Schedule_CheckNotInSceneS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_S Schedule_CheckNotInSceneL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_SCENE_L - Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S - Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L - Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME + Schedule_CheckNotInDayS, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_S + Schedule_CheckNotInDayL, // SCHEDULE_CMD_ID_CHECK_NOT_IN_DAY_L + Schedule_ReturnTime, // SCHEDULE_CMD_ID_RET_TIME Schedule_CheckBeforeTimeS, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_S Schedule_CheckBeforeTimeL, // SCHEDULE_CMD_ID_CHECK_BEFORE_TIME_L - Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S - Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L + Schedule_BranchS, // SCHEDULE_CMD_ID_BRANCH_S + Schedule_BranchL, // SCHEDULE_CMD_ID_BRANCH_L }; static u8 sScheduleCmdSizes[] = { 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 0d9586fc4..dda3d0d2c 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -29,69 +29,132 @@ void EnAn_Talk(EnAn* this, PlayState* play); typedef enum AnjuScheduleResult { /* 0 */ ANJU_SCH_NONE, + // Waiting for Kafei on the night of Day 3 /* 1 */ ANJU_SCH_WAITING_FOR_KAFEI, - /* 2 */ ANJU_SCH_2, // unused + // unused + /* 2 */ ANJU_SCH_2, + // Day 2, 13:45 ~ 15:25, No midnight meeting. Sit on the Laundry Pool under the rain /* 3 */ ANJU_SCH_LAUNDRY_POOL_SIT, - /* 4 */ ANJU_SCH_4, // unused - /* 5 */ ANJU_SCH_5, // unused - /* 6 */ ANJU_SCH_6, // unused - /* 7 */ ANJU_SCH_7, // unused - /* 8 */ ANJU_SCH_8, // unused - /* 9 */ ANJU_SCH_9, // unused - /* 10 */ ANJU_SCH_10, // unused - /* 11 */ ANJU_SCH_11, // unused + // unused + /* 4 */ ANJU_SCH_4, + // unused + /* 5 */ ANJU_SCH_5, + // unused + /* 6 */ ANJU_SCH_6, + // unused + /* 7 */ ANJU_SCH_7, + // unused + /* 8 */ ANJU_SCH_8, + // unused + /* 9 */ ANJU_SCH_9, + // unused + /* 10 */ ANJU_SCH_10, + // unused + /* 11 */ ANJU_SCH_11, + // Day 3, Night, if not delivered the Pendant of Memories /* 12 */ ANJU_SCH_RANCH, - /* 13 */ ANJU_SCH_13, // unused + // unused + /* 13 */ ANJU_SCH_13, + // Cooking lunch for Granny at 11:10 ~ 11:30 on Day 1 and Day 2 (if did had the Midnight meeting) /* 14 */ ANJU_SCH_COOKING, - /* 15 */ ANJU_SCH_15, // unused + // unused + /* 15 */ ANJU_SCH_15, + // Day 1, 14:08 ~ 14:18. Receive Kafei's letter from Postman /* 16 */ ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN, + // Day 1, 16:10 ~ 16:30. Attends the goron named after the player /* 17 */ ANJU_SCH_ATTEND_GORON, // ANJU_SCH_ATTEND_LINK_THE_GORON? ANJU_SCH_ATTEND_PLAYER_THE_GORON? + // Just standing on the front desk of the Inn /* 18 */ ANJU_SCH_RECEPTIONIST_IDLE, - /* 19 */ ANJU_SCH_19, // Standing next to the Inn's front door at closing time - /* 20 */ ANJU_SCH_20, // unused + // Standing next to the Inn's front door at closing time + /* 19 */ ANJU_SCH_WAITING_CLOSING_TIME, + // unused + /* 20 */ ANJU_SCH_20, + // 12:00 ~ 12:15, Day 1 and Day 2 (if did had the Midnight meeting). Give lunch to Granny /* 21 */ ANJU_SCH_GIVE_LUNCH_TO_GRANNY, + // Day 3, 06:00 ~ 11:00. Sweeping the Suite room. TODO: maybe rename to "cleaning Suite room"? /* 22 */ ANJU_SCH_SWEEPING, + // Day 1, 00:00 ~ 06:00. Waiting for player at the kitchen to have the Midnight meeting. /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, - /* 24 */ ANJU_SCH_TALKING_WITH_MOM, // Day 2, 21:30 ~ 23:00, on the staff room, talking with her mom - /* 25 */ ANJU_SCH_25, // Set manually in code instead of via script - /* 26 */ ANJU_SCH_DOOR_26, // Passing through to Granny's door (entering) - /* 27 */ ANJU_SCH_DOOR_27, // Passing through to Granny's door (leaving) - /* 28 */ ANJU_SCH_DOOR_28, // Passing through the door of the staff room (entering), after giving Granny's lunch - /* 29 */ ANJU_SCH_DOOR_29, // Passing through the door of the staff room (leaving), after giving Granny's lunch - /* 30 */ ANJU_SCH_DOOR_30, // Passing through the door of the staff room (entering), after closing the Inn - /* 31 */ ANJU_SCH_DOOR_31, // Passing through the door of the staff room (leaving), to have the midnight meeting - /* 32 */ ANJU_SCH_DOOR_32, // Passing through the door of the staff room (leaving), going to the Laundry Pool - /* 33 */ ANJU_SCH_DOOR_33, // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool - /* 34 */ ANJU_SCH_DOOR_34, // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool - /* 35 */ ANJU_SCH_DOOR_35, // Passing through the door of the staff room (entering), after going to the Laundry Pool - /* 36 */ ANJU_SCH_DOOR_36, // Passing through the door of the Large Suite (leaving), after sweeping the floor - /* 37 */ ANJU_SCH_DOOR_37, // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool - /* 38 */ ANJU_SCH_DOOR_38, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool - /* 39 */ ANJU_SCH_DOOR_39, // Passing through the door of the staff room (entering, after sweeping the floor - /* 40 */ ANJU_SCH_WALKING_40, // Going from the front desk to the kitchen - /* 41 */ ANJU_SCH_41, // unused - /* 42 */ ANJU_SCH_WALKING_42, // Walking from the kitchen to Granny's room - /* 43 */ ANJU_SCH_WALKING_43, // Inside Granny's room, walking to give her her food - /* 44 */ ANJU_SCH_WALKING_44, // Inside Granny's room, walking out - /* 45 */ ANJU_SCH_WALKING_45, // Left Granny's room, walking towards staff room - /* 46 */ ANJU_SCH_WALKING_46, // Left staff room, walking to front desk - /* 47 */ ANJU_SCH_WALKING_47, // Walking from the front desk to right next to the Inn's front door - /* 48 */ ANJU_SCH_WALKING_48, // Walking from the Inn's front door after closing, to the staff room - /* 49 */ ANJU_SCH_WALKING_49, // Walking from the staff room to the kitchen, to have the midnight meeting - /* 50 */ ANJU_SCH_WALKING_50, // Walking from the staff room to Inn's front door, to go to the Laundry Pool - /* 51 */ ANJU_SCH_WALKING_51, // Walking from the Inn's front door to the staff room, after going to the Laundry Pool - /* 52 */ ANJU_SCH_WALKING_52, // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room - /* 53 */ ANJU_SCH_WALKING_53, // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping - /* 54 */ ANJU_SCH_WALKING_54, // Walking through East Clock Town, going to the Laundry Pool - /* 55 */ ANJU_SCH_WALKING_55, // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool + // Day 2, 21:30 ~ 23:00, on the staff room, talking with her mom + /* 24 */ ANJU_SCH_TALKING_WITH_MOM, + // Reunited with Kafei on the Staff room. Set manually in code instead of via script + /* 25 */ ANJU_SCH_WITH_KAFEI, + // Passing through to Granny's door (entering) + /* 26 */ ANJU_SCH_DOOR_26, + // Passing through to Granny's door (leaving) + /* 27 */ ANJU_SCH_DOOR_27, + // Passing through the door of the staff room (entering), after giving Granny's lunch + /* 28 */ ANJU_SCH_DOOR_28, + // Passing through the door of the staff room (leaving), after giving Granny's lunch + /* 29 */ ANJU_SCH_DOOR_29, + // Passing through the door of the staff room (entering), after closing the Inn + /* 30 */ ANJU_SCH_DOOR_30, + // Passing through the door of the staff room (leaving), to have the midnight meeting + /* 31 */ ANJU_SCH_DOOR_31, + // Passing through the door of the staff room (leaving), going to the Laundry Pool + /* 32 */ ANJU_SCH_DOOR_32, + // Passing through the Inn's front door (leaving) (inside the Inn), going to the Laundry Pool + /* 33 */ ANJU_SCH_DOOR_33, + // Passing through the Inn's front door (entering) (inside the Inn), going from the Laundry Pool + /* 34 */ ANJU_SCH_DOOR_34, + // Passing through the door of the staff room (entering), after going to the Laundry Pool + /* 35 */ ANJU_SCH_DOOR_35, + // Passing through the door of the Large Suite (leaving), after sweeping the floor + /* 36 */ ANJU_SCH_DOOR_36, + // Passing through the Inn's front door (leaving) (East Clock Town), going to the Laundry Pool + /* 37 */ ANJU_SCH_DOOR_37, + // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool + /* 38 */ ANJU_SCH_DOOR_38, + // Passing through the door of the staff room (entering, after sweeping the floor + /* 39 */ ANJU_SCH_DOOR_39, + // Going from the front desk to the kitchen + /* 40 */ ANJU_SCH_WALKING_40, + // unused + /* 41 */ ANJU_SCH_41, + // Walking from the kitchen to Granny's room + /* 42 */ ANJU_SCH_WALKING_42, + // Inside Granny's room, walking to give her her food + /* 43 */ ANJU_SCH_WALKING_43, + // Inside Granny's room, walking out + /* 44 */ ANJU_SCH_WALKING_44, + // Left Granny's room, walking towards staff room + /* 45 */ ANJU_SCH_WALKING_45, + // Left staff room, walking to front desk + /* 46 */ ANJU_SCH_WALKING_46, + // Walking from the front desk to right next to the Inn's front door + /* 47 */ ANJU_SCH_WALKING_47, + // Walking from the Inn's front door after closing, to the staff room + /* 48 */ ANJU_SCH_WALKING_48, + // Walking from the staff room to the kitchen, to have the midnight meeting + /* 49 */ ANJU_SCH_WALKING_49, + // Walking from the staff room to Inn's front door, to go to the Laundry Pool + /* 50 */ ANJU_SCH_WALKING_50, + // Walking from the Inn's front door to the staff room, after going to the Laundry Pool + /* 51 */ ANJU_SCH_WALKING_51, + // Day 3, 11:00 ~ 11:25, Stopped sweeping, walking out of the room + /* 52 */ ANJU_SCH_WALKING_52, + // Day 3, 11:00 ~ 11:25, Walking through the hallway after sweeping + /* 53 */ ANJU_SCH_WALKING_53, + // Walking through East Clock Town, going to the Laundry Pool + /* 54 */ ANJU_SCH_WALKING_54, + // Walking through South Clock Town, East Clock Town perspective, going to the Laundry Pool + /* 55 */ ANJU_SCH_WALKING_55, + // Walking through Laundry Pool, entering /* 56 */ ANJU_SCH_WALKING_56, + // Walking through Laundry Pool, leaving /* 57 */ ANJU_SCH_WALKING_57, - /* 58 */ ANJU_SCH_WALKING_58, // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool - /* 59 */ ANJU_SCH_WALKING_59, // Walking through East Clock Town, going to the Inn from the Laundry Pool - /* 60 */ ANJU_SCH_WALKING_60, // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool - /* 61 */ ANJU_SCH_WALKING_61, // Walking through South Clock Town, going to the Laundry Pool - /* 62 */ ANJU_SCH_WALKING_62, // Walking through South Clock Town, going to the Inn from the Laundry Pool - /* 63 */ ANJU_SCH_WALKING_63, // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool + // Walking through South Clock Town, East Clock Town perspective, going to the Inn from the Laundry Pool + /* 58 */ ANJU_SCH_WALKING_58, + // Walking through East Clock Town, going to the Inn from the Laundry Pool + /* 59 */ ANJU_SCH_WALKING_59, + // Walking through East Clock Town, South Clock Town perspective, going to the Laundry Pool + /* 60 */ ANJU_SCH_WALKING_60, + // Walking through South Clock Town, going to the Laundry Pool + /* 61 */ ANJU_SCH_WALKING_61, + // Walking through South Clock Town, going to the Inn from the Laundry Pool + /* 62 */ ANJU_SCH_WALKING_62, + // Walking through East Clock Town, South Clock Town perspective, going to the Inn from the Laundry Pool + /* 63 */ ANJU_SCH_WALKING_63, /* 64 */ ANJU_SCH_MAX } AnjuScheduleResult; @@ -133,7 +196,7 @@ static u8 sScheduleScript[] = { /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_DOOR_31), /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48), - /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME), /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_ATTEND_GORON), @@ -173,7 +236,7 @@ static u8 sScheduleScript[] = { /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM), /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_DOOR_30), /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_WALKING_48), - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME), /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_DOOR_35), @@ -239,7 +302,7 @@ static u8 sScheduleScript[] = { /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_TALKING_WITH_MOM), /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_DOOR_30), /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_WALKING_48), - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_19), + /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_WAITING_CLOSING_TIME), /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_WALKING_47), /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_RECEPTIONIST_IDLE), /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_WALKING_46), @@ -340,7 +403,7 @@ s32 scheduleScript(PlayState* play) { } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_19; + return ANJU_SCH_WAITING_CLOSING_TIME; } else if ((20, 30) <= NOW <= (21, 5)) { return ANJU_SCH_WALKING_48; } else if ((21, 5) <= NOW <= (21, 10)) { @@ -398,7 +461,7 @@ s32 scheduleScript(PlayState* play) { } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_19; + return ANJU_SCH_WAITING_CLOSING_TIME; } else if ((20, 30) <= NOW <= (21, 5)) { return ANJU_SCH_WALKING_48; } else if ((21, 5) <= NOW <= (21, 10)) { @@ -429,7 +492,7 @@ s32 scheduleScript(PlayState* play) { } else if ((19, 50) <= NOW <= (20, 20)) { return ANJU_SCH_WALKING_47; } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_19; + return ANJU_SCH_WAITING_CLOSING_TIME; } else if ((20, 30) <= NOW <= (21, 0)) { return ANJU_SCH_WALKING_48; } else if ((21, 0) <= NOW <= (21, 5)) { @@ -552,13 +615,13 @@ static s32 sSearchTimePathLimit[ANJU_SCH_MAX] = { 10, // ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN 10, // ANJU_SCH_ATTEND_GORON 10, // ANJU_SCH_RECEPTIONIST_IDLE - 11, // ANJU_SCH_19 + 11, // ANJU_SCH_WAITING_CLOSING_TIME -1, // ANJU_SCH_20 4, // ANJU_SCH_GIVE_LUNCH_TO_GRANNY 22, // ANJU_SCH_SWEEPING 15, // ANJU_SCH_MIDNIGHT_MEETING -1, // ANJU_SCH_TALKING_WITH_MOM - -1, // ANJU_SCH_25 + -1, // ANJU_SCH_WITH_KAFEI 3, // ANJU_SCH_DOOR_26 6, // ANJU_SCH_DOOR_27 8, // ANJU_SCH_DOOR_28 @@ -611,11 +674,13 @@ s32 sAnjuMsgScript_SchAttendGoron[0x21] = { 0x0000180E, 0x28B82D00, 0x010C0900, 0x00115610, 0x10090000, 0x170E2956, 0x0C090000, 0x180E2957, 0x0C090000, 0x170E2958, 0x0C090000, 0x180E2959, 0x2D00010C, 0x09000012, 0x10000000, }; + s32 sAnjuMsgScript_SchGiveLunchToGranny[0x15] = { 0x09000017, 0x0E28C70C, 0x09000018, 0x0E28C80C, 0x09000017, 0x0E28C90C, 0x09000018, 0x0E28CA0C, 0x09000017, 0x0E28CB0C, 0x09000018, 0x0E28CC0C, 0x09000017, 0x0E28CD0C, 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, }; + s32 sAnjuMsgScript_80B5885C[0x37] = { 0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000, 0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300, @@ -625,16 +690,24 @@ s32 sAnjuMsgScript_80B5885C[0x37] = { 0x10C11, 0x20201023, 0x400012, 0x0E28A00C, 0x0900000F, 0x28A62D00, 0x010C2400, 0x40100E28, 0xA72D0001, 0x0C102300, 0x41000B0E, 0x28AC2D00, 0x010C2400, 0x41100E28, 0xAD0C1000, }; + s32 sAnjuMsgScript_InnCloseTime[3] = { 0x0E18852D, 0x10C12, 0x10000000 }; + s32 sAnjuMsgScript_80B58944[2] = { 0x0E28AF2D, 0x10C10 }; + s32 sAnjuMsgScript_80B5894C[2] = { 0x0E28C12D, 0x10C10 }; + s32 sAnjuMsgScript_SchCooking[0xB] = { 0x350100, 0x1C0E28C3, 0x0C0F28C4, 0x0C150900, 0xE28C5, 0x2D00010C, 0x15090000, 0x11350112, 0x100E28C2, 0x2D00010C, 0x10000000, }; + s32 sAnjuMsgScript_80B58980[2] = { 0x0E28C62D, 0x10C10 }; + s32 sAnjuMsgScript_SchSweeping[3] = { 0x0E28F70C, 0x0F28F82D, 0x10C10 }; + s32 sAnjuMsgScript_80B58994[2] = { 0x0E28F82D, 0x10C10 }; + s32 sAnjuMsgScript_SchRanch[4] = { 0x0E28F90C, 0x0F28FA0C, 0x0F28FB2D, 0x10C10 }; s32 sAnjuMsgScript_SchMidnightMeeting[0x14] = { @@ -649,23 +722,31 @@ s32 sAnjuMsgScript_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; s32 sAnjuMsgScript_DekuDefault[8] = { 0x522000, 0x100E294F, 0x0C0F2950, 0x2D00010C, 0x12115220, 0x100E2951, 0x2D00010C, 0x12100000, }; + s32 sAnjuMsgScript_SchLaundryPoolDeku[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; + s32 sAnjuMsgScript_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; + s32 sAnjuMsgScript_80B58A44[0x1E] = { 0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25, 0x30001D, 0x27000300, 0x080E28E3, 0x2D00010C, 0x100E28E2, 0x2D00010C, 0x100E28E1, 0x2D00010C, 0x100E28E4, 0x0C0E00FF, 0x1E003600, 0x0E000000, 0x0C2C28E7, 0x0C2F0000, 0x2D00010C, 0x1012102C, 0x28E50C2F, 0xC2A, 0x300F28, -0x19D2FFFF, 0x2D001A0C, 0x11330110, }; + s32 sAnjuMsgScript_80B58ABC[2] = { 0x0E28D02D, 0x10C10 }; + s32 sAnjuMsgScript_80B58AC4[9] = { 0x320800, 0x160E28D1, 0x0C0F28D2, 0x0C0F28D3, 0x2D00152D, 0x10C11, 0x3208100E, 0x28D32D00, 0x010C1000, }; + s32 sAnjuMsgScript_SchWaitingForKafei[3] = { 0x0E28DF2D, 0x10C12, 0x10000000 }; + s32 sAnjuMsgScript_SchLaundryPoolDefault[0x12] = { 0x372000, 0x29003208, 0x2A0E28, -0x17F3EAF7, 0xE28, -0x16F3F0D8, -0x15F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, }; + s32 sAnjuMsgScript_SchLaundryPoolKafeiMask[0x10] = { 0x372000, 0x21003208, 0x220E28, -0x17F3F0D8, -0x12F3EAF7, 0xE28, -0x14F3F0D8, -0x13D2FFFF, 0x0C121137, 0x20100E28, -0x13F3EDF0, 0x0E28EE0C, 0x0F28EB0C, 0x0F28EC2D, 0x10C12, 0x11372010, @@ -677,7 +758,7 @@ s32 sAnjuMsgScript_80B58B7C[3] = { 0x0E29512D, 0x10C12, 0x10000000 }; // Tells player that they should talk in the kitchen instead s32 sAnjuMsgScript_80B58B88[2] = { 0x0E29612D, 0x10C10 }; -s32 sAnjuMsgScript_80B58B90[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; +s32 sAnjuMsgScript_SchWithKafei[3] = { 0x0E291B2D, 0x10C12, 0x10000000 }; ActorInit En_An_InitVars = { ACTOR_EN_AN, @@ -1027,7 +1108,7 @@ void EnAn_UpdateCollider(EnAn* this, PlayState* play) { s32 pad; Vec3f sp24; - if (this->scheduleResult == ANJU_SCH_25) { + if (this->scheduleResult == ANJU_SCH_WITH_KAFEI) { static Vec3f D_80B58E34 = { 0.0f, 0.0f, 8.0f }; Lib_Vec3f_TranslateAndRotateY(&this->actor.world.pos, this->actor.shape.rot.y, &D_80B58E34, &sp24); @@ -1524,8 +1605,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_RANCH: return sAnjuMsgScript_SchRanch; - case ANJU_SCH_25: - return sAnjuMsgScript_80B58B90; + case ANJU_SCH_WITH_KAFEI: + return sAnjuMsgScript_SchWithKafei; default: break; @@ -1625,7 +1706,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { } return sAnjuMsgScript_80B5885C; - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: case ANJU_SCH_WALKING_47: return sAnjuMsgScript_InnCloseTime; @@ -1666,8 +1747,10 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->actor.child = this->lookAtActor; this->msgEventScript = EnAn_GetMsgEventScript(this, play); - if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || - (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || (this->scheduleResult == ANJU_SCH_19) || + if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || + (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || + (this->scheduleResult == ANJU_SCH_RECEPTIONIST_IDLE) || + (this->scheduleResult == ANJU_SCH_WAITING_CLOSING_TIME) || (this->scheduleResult == ANJU_SCH_MIDNIGHT_MEETING) || (this->scheduleResult == ANJU_SCH_SWEEPING) || (this->scheduleResult == ANJU_SCH_WALKING_40) || (this->scheduleResult == ANJU_SCH_WALKING_42) || (this->scheduleResult == ANJU_SCH_WALKING_43) || (this->scheduleResult == ANJU_SCH_WALKING_44) || @@ -1774,7 +1857,7 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: case ANJU_SCH_ATTEND_GORON: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; @@ -2532,7 +2615,7 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s Math_Vec3f_Copy(&this->actor.prevPos, &lastPos); switch (scheduleOutput->result) { - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: this->actor.world.rot.y += 0x7FF8; /* fallthrough */ case ANJU_SCH_RECEPTIONIST_IDLE: @@ -2633,7 +2716,7 @@ s32 EnAn_ProcessSchedule_StaffRoom(EnAn* this, PlayState* play, ScheduleOutput* return true; } -s32 EnAn_ProcessSchedule_80B56CAC(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { +s32 EnAn_ProcessSchedule_WithKafei(EnAn* this, PlayState* play, ScheduleOutput* scheduleOutput) { static Vec3s D_80B58EA4 = { 0, -0x2AAD, 0 }; s32 pad; @@ -2682,7 +2765,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche case ANJU_SCH_LAUNDRY_POOL_SIT: case ANJU_SCH_COOKING: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: case ANJU_SCH_MIDNIGHT_MEETING: ret = EnAn_ProcessSchedule_80B56880(this, play, scheduleOutput); break; @@ -2691,8 +2774,8 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche ret = EnAn_ProcessSchedule_Sweeping(this, play, scheduleOutput); break; - case ANJU_SCH_25: - ret = EnAn_ProcessSchedule_80B56CAC(this, play, scheduleOutput); + case ANJU_SCH_WITH_KAFEI: + ret = EnAn_ProcessSchedule_WithKafei(this, play, scheduleOutput); break; case ANJU_SCH_DOOR_26: @@ -2871,7 +2954,7 @@ s32 EnAn_HandleSch_80B572D4(EnAn* this, PlayState* play) { break; case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: if (EnAn_IsFacingAndNearPlayer(this)) { this->stateFlags |= ENAN_STATE_20; } else { @@ -2933,7 +3016,7 @@ s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { return 0; } -s32 EnAn_HandleSch_80B575BC(EnAn* this, PlayState* play) { +s32 EnAn_HandleSch_WaitingForKafei(EnAn* this, PlayState* play) { s32 yRot = this->actor.shape.rot.y; s16 yaw = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, yRot)); @@ -2952,7 +3035,7 @@ s32 EnAn_HandleSch_80B575BC(EnAn* this, PlayState* play) { return 1; } -s32 EnAn_HandleSch_80B57674(EnAn* this, PlayState* play) { +s32 EnAn_HandleSch_WithKafei(EnAn* this, PlayState* play) { s16 yRot = BINANG_ADD(this->actor.shape.rot.y, 0x3000); s16 yaw = ABS_ALT(BINANG_SUB(this->actor.yawTowardsPlayer, yRot)); @@ -2981,17 +3064,17 @@ void EnAn_HandleSchedule(EnAn* this, PlayState* play) { break; case ANJU_SCH_WAITING_FOR_KAFEI: - EnAn_HandleSch_80B575BC(this, play); + EnAn_HandleSch_WaitingForKafei(this, play); break; - case ANJU_SCH_25: - EnAn_HandleSch_80B57674(this, play); + case ANJU_SCH_WITH_KAFEI: + EnAn_HandleSch_WithKafei(this, play); break; case ANJU_SCH_RANCH: case ANJU_SCH_COOKING: case ANJU_SCH_RECEPTIONIST_IDLE: - case ANJU_SCH_19: + case ANJU_SCH_WAITING_CLOSING_TIME: case ANJU_SCH_SWEEPING: case ANJU_SCH_TALKING_WITH_MOM: EnAn_HandleSch_80B572D4(this, play); @@ -3081,8 +3164,8 @@ void EnAn_FollowSchedule(EnAn* this, PlayState* play) { } if (this->unk_3C0) { - scheduleOutput.result = ANJU_SCH_25; - if (this->scheduleResult != ANJU_SCH_25) { + scheduleOutput.result = ANJU_SCH_WITH_KAFEI; + if (this->scheduleResult != ANJU_SCH_WITH_KAFEI) { EnAn_ProcessScheduleOutput(this, play, &scheduleOutput); } } else if (!Schedule_RunScript(play, sScheduleScript, &scheduleOutput) || @@ -3118,7 +3201,7 @@ void EnAn_Talk(EnAn* this, PlayState* play) { if ((this->scheduleResult == ANJU_SCH_WAITING_FOR_KAFEI) || (this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) || (this->scheduleResult == ANJU_SCH_RANCH) || (this->scheduleResult == ANJU_SCH_COOKING) || - (this->scheduleResult == ANJU_SCH_25)) { + (this->scheduleResult == ANJU_SCH_WITH_KAFEI)) { return; } diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 1fbf60616..399d9535e 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -16,7 +16,7 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_STATE_8 (1 << 3) #define ENAN_STATE_REACHED_PATH_END (1 << 4) -#define ENAN_STATE_20 (1 << 5) +#define ENAN_STATE_20 (1 << 5) // rotate head? #define ENAN_STATE_IGNORE_GRAVITY (1 << 6) #define ENAN_STATE_80 (1 << 7) #define ENAN_STATE_UPDATE_EYES (1 << 8) diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 1290a882a..67cd920ed 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14048,15 +14048,15 @@ 0x80B56880:("EnAn_ProcessSchedule_80B56880",), 0x80B56B00:("EnAn_ProcessSchedule_Ranch",), 0x80B56BC0:("EnAn_ProcessSchedule_StaffRoom",), - 0x80B56CAC:("EnAn_ProcessSchedule_80B56CAC",), + 0x80B56CAC:("EnAn_ProcessSchedule_WithKafei",), 0x80B56D28:("EnAn_ProcessScheduleOutput",), 0x80B56E44:("EnAn_HandleSch_InteractActor",), 0x80B56EB4:("EnAn_HandleSch_Door",), 0x80B5702C:("EnAn_HandleSch_FollowTimePath",), 0x80B572D4:("EnAn_HandleSch_80B572D4",), 0x80B573F4:("EnAn_HandleSch_LaundryPool",), - 0x80B575BC:("EnAn_HandleSch_80B575BC",), - 0x80B57674:("EnAn_HandleSch_80B57674",), + 0x80B575BC:("EnAn_HandleSch_WaitingForKafei",), + 0x80B57674:("EnAn_HandleSch_WithKafei",), 0x80B57718:("EnAn_HandleSchedule",), 0x80B577F0:("EnAn_Initialize",), 0x80B578F8:("EnAn_FollowSchedule",), From e16092df5eeaffa9e3118862408058b6dce82567 Mon Sep 17 00:00:00 2001 From: angie Date: Sat, 14 Oct 2023 12:10:08 -0300 Subject: [PATCH 45/78] a bit of asset naming --- assets/xml/objects/object_an2.xml | 12 ++++++++---- assets/xml/objects/object_an3.xml | 12 ++++++++---- src/overlays/actors/ovl_En_An/z_en_an.c | 8 ++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/assets/xml/objects/object_an2.xml b/assets/xml/objects/object_an2.xml index 8a169b92e..9bc6796f4 100644 --- a/assets/xml/objects/object_an2.xml +++ b/assets/xml/objects/object_an2.xml @@ -1,13 +1,17 @@  + + + + + + - - - + - + diff --git a/assets/xml/objects/object_an3.xml b/assets/xml/objects/object_an3.xml index e0f114035..f7510d0e0 100644 --- a/assets/xml/objects/object_an3.xml +++ b/assets/xml/objects/object_an3.xml @@ -1,12 +1,16 @@  + + + + + + + - - - - + 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 dda3d0d2c..b4238e5b1 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -942,7 +942,7 @@ typedef enum EnAnAnimation { /* 16 */ ENAN_ANIM_WALKING_WITH_TRAY, /* 17 */ ENAN_ANIMOBJ_AN2, - /* 17 */ ENAN_ANIM_17 = ENAN_ANIMOBJ_AN2, + /* 17 */ ENAN_ANIM_UMBRELLA_IDLE = ENAN_ANIMOBJ_AN2, /* 18 */ ENAN_ANIM_UMBRELLA_WALK, /* 19 */ ENAN_ANIM_UMBRELLA_SIT, /* 20 */ ENAN_ANIM_UMBRELLA_CRYING, @@ -988,7 +988,7 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &gAnju1WalkingWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALKING_WITH_TRAY // ENAN_ANIMOBJ_AN2 - { &object_an2_Anim_0028DC, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_17 + { &gAnju2UmbrellaIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_IDLE { &gAnju2UmbrellaWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_WALK { &gAnju2UmbrellaSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_UMBRELLA_SIT { &gAnju2UmbrellaCryingAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_CRYING @@ -1890,7 +1890,7 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { if (this->animIndex == ENAN_ANIM_WAITING_WITH_TRAY) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); } - if (this->animIndex == ENAN_ANIM_17) { + if (this->animIndex == ENAN_ANIM_UMBRELLA_IDLE) { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); } if ((this->animIndex == ENAN_ANIM_IDLE) || (this->animIndex == ENAN_ANIM_IDLE_MORPH)) { @@ -2091,7 +2091,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WAITING_WITH_TRAY); } if (this->animIndex == ENAN_ANIM_UMBRELLA_WALK) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_17); + EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_IDLE); } if ((this->animIndex == ENAN_ANIM_BROOM_WALK) || (this->animIndex == ENAN_ANIM_BROOM_SWEEP)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_IDLE); From 1adc01370fb17e9b2b06170ae2e013b4b928f567 Mon Sep 17 00:00:00 2001 From: Angie Date: Sat, 14 Oct 2023 12:44:28 -0300 Subject: [PATCH 46/78] some typos --- src/overlays/actors/ovl_En_An/z_en_an.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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 b4238e5b1..c78296e31 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -62,8 +62,8 @@ typedef enum AnjuScheduleResult { // Day 1, 14:08 ~ 14:18. Receive Kafei's letter from Postman /* 16 */ ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN, // Day 1, 16:10 ~ 16:30. Attends the goron named after the player - /* 17 */ ANJU_SCH_ATTEND_GORON, // ANJU_SCH_ATTEND_LINK_THE_GORON? ANJU_SCH_ATTEND_PLAYER_THE_GORON? - // Just standing on the front desk of the Inn + /* 17 */ ANJU_SCH_ATTEND_GORON, + // Just standing on the front desk of the Inn /* 18 */ ANJU_SCH_RECEPTIONIST_IDLE, // Standing next to the Inn's front door at closing time /* 19 */ ANJU_SCH_WAITING_CLOSING_TIME, @@ -75,7 +75,7 @@ typedef enum AnjuScheduleResult { /* 22 */ ANJU_SCH_SWEEPING, // Day 1, 00:00 ~ 06:00. Waiting for player at the kitchen to have the Midnight meeting. /* 23 */ ANJU_SCH_MIDNIGHT_MEETING, - // Day 2, 21:30 ~ 23:00, on the staff room, talking with her mom + // Day 2, 21:30 ~ 23:00. On the staff room talking with her mom. This can be seen from the Knife Chamber /* 24 */ ANJU_SCH_TALKING_WITH_MOM, // Reunited with Kafei on the Staff room. Set manually in code instead of via script /* 25 */ ANJU_SCH_WITH_KAFEI, @@ -105,7 +105,7 @@ typedef enum AnjuScheduleResult { /* 37 */ ANJU_SCH_DOOR_37, // Passing through the Inn's front door (entering) (East Clock Town), going from the Laundry Pool /* 38 */ ANJU_SCH_DOOR_38, - // Passing through the door of the staff room (entering, after sweeping the floor + // Passing through the door of the staff room (entering), after sweeping the floor /* 39 */ ANJU_SCH_DOOR_39, // Going from the front desk to the kitchen /* 40 */ ANJU_SCH_WALKING_40, From bd6cf31d18a18b571a24105d260d1320b4c67e69 Mon Sep 17 00:00:00 2001 From: Angie Date: Sat, 14 Oct 2023 18:52:26 -0300 Subject: [PATCH 47/78] asset naming --- assets/xml/objects/object_an1.xml | 34 ++++++++++++++++--------------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index e59de7810..3a7c2d640 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -33,19 +33,20 @@ - - - + + + + - + - + - + - - - + + + @@ -54,15 +55,16 @@ + - - - - - - - + + + + + + + From 825c40049137d32d57aab6ce104167cdbff1e20d Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 15 Oct 2023 11:56:26 -0300 Subject: [PATCH 48/78] more asset naming --- assets/xml/objects/object_an1.xml | 14 +++++++++++--- src/overlays/actors/ovl_En_An/z_en_an.c | 6 +++--- 2 files changed, 14 insertions(+), 6 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index 3a7c2d640..45a9db4f2 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -1,9 +1,10 @@  + - + @@ -13,6 +14,7 @@ + @@ -33,11 +35,13 @@ + - + + @@ -45,7 +49,7 @@ - + @@ -58,6 +62,7 @@ + @@ -68,8 +73,10 @@ + + @@ -91,6 +98,7 @@ + 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 c78296e31..dd1bd7e23 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -929,7 +929,7 @@ typedef enum EnAnAnimation { /* 3 */ ENAN_ANIM_BOWING, /* 4 */ ENAN_ANIM_BOWING_MORPH, /* 5 */ ENAN_ANIM_SURPRISED, - /* 6 */ ENAN_ANIM_6, + /* 6 */ ENAN_ANIM_LOOKING_UP_RELIEVED, /* 7 */ ENAN_ANIM_WALK, /* 8 */ ENAN_ANIM_WALK2, // Duplicate of ENAN_ANIM_WALK /* 9 */ ENAN_ANIM_SIT, @@ -975,7 +975,7 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOWING { &gAnju1BowingAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOWING_MORPH { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED - { &object_an1_Anim_001E74, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_6 + { &gAnju1LookingUpRelievedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_LOOKING_UP_RELIEVED { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT @@ -1904,7 +1904,7 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { void EnAn_DialogueFunc_80B556F8(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { - EnAn_ChangeAnim(this, play, ENAN_ANIM_6); + EnAn_ChangeAnim(this, play, ENAN_ANIM_LOOKING_UP_RELIEVED); this->stateFlags &= ~ENAN_STATE_20; this->stateFlags |= ENAN_STATE_200; this->dialogueFuncState++; From ced25d09aa32a4a10b306d0de7a85aed9a4f1709 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 15 Oct 2023 15:37:05 -0300 Subject: [PATCH 49/78] printing code --- src/overlays/actors/ovl_En_An/z_en_an.c | 186 ++++++++++++++++++++++++ 1 file changed, 186 insertions(+) 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 dd1bd7e23..365cf83c8 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -17,6 +17,9 @@ #define THIS ((EnAn*)thisx) +// Change this to non-zero to enable debug printing +#define DEBUG_PRINT 0 + void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); void EnAn_Update(Actor* thisx, PlayState* play); @@ -3266,6 +3269,10 @@ void EnAn_HandleCutscene(EnAn* this, PlayState* play) { } } +#if DEBUG_PRINT +u8 weekEventRegCopy[100]; +#endif + void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; @@ -3298,6 +3305,19 @@ void EnAn_Init(Actor* thisx, PlayState* play) { } this->actionFunc = EnAn_Initialize; + +#if DEBUG_PRINT + Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, sizeof(gSaveContext.save.saveInfo.weekEventReg)); + + gSaveContext.save.day = 3; + + if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { + gSaveContext.save.time = CLOCK_TIME(4, 30); + } + + SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); + SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); +#endif } void EnAn_Destroy(Actor* thisx, PlayState* play) { @@ -3386,6 +3406,168 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } } +#if DEBUG_PRINT +#define BOOLSTR(x) ((x) ? "true" : "false") + +#define DEC_TIME_AUX(t) ((t) * (24 * 60) / 0x10000) +#define DEC_TIME(t) ((DEC_TIME_AUX(t) / 60) * 100 + (DEC_TIME_AUX(t) % 60)) + +void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { + s32 x = 31; + s32 y = 3 + 22; + s32 i; + uintptr_t actionFuncReloc; + + GfxPrint_SetColor(printer, 255, 255, 255, 255); + + GfxPrint_SetPos(printer, 28, 1); + GfxPrint_Printf(printer, "gTime:%X", gSaveContext.save.time); + + GfxPrint_SetPos(printer, 28, 2); + GfxPrint_Printf(printer, "gTime:%i:%i", DEC_TIME_AUX(gSaveContext.save.time) / 60, DEC_TIME_AUX(gSaveContext.save.time) % 60); + + //GfxPrint_SetPos(printer, x - 7, ++y); + //actionFuncReloc = (uintptr_t)this->actionFunc - (uintptr_t)EnAn_InitializeObjectSlots + SEGMENT_START(ovl_En_An); + //GfxPrint_Printf(printer, "actionFunc:%X", actionFuncReloc & 0x0000FFFF); + + GfxPrint_SetPos(printer, x-5, ++y); + GfxPrint_Printf(printer, "schedule:%d", this->scheduleResult); + + //GfxPrint_SetPos(printer, x-3, ++y); + //GfxPrint_Printf(printer, "textId:%X", this->prevTextId); + + GfxPrint_SetPos(printer, x-0, ++y); + GfxPrint_Printf(printer, "cue:%d", this->cueId); + + //GfxPrint_SetPos(printer, x-2, ++y); + //GfxPrint_Printf(printer, "! 374:%f", this->unk_374); + + //GfxPrint_SetPos(printer, x-6, ++y); + //GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); + + //GfxPrint_SetPos(printer, x-1, ++y); + //GfxPrint_Printf(printer, "face:%d", this->faceIndex); + + //GfxPrint_SetPos(printer, x-5, ++y); + //GfxPrint_Printf(printer, "eyeTimer:%d", this->eyeTimer); + + //GfxPrint_SetPos(printer, x-0, ++y); + //GfxPrint_Printf(printer, "eye:%d", this->eyeTexIndex); + + //GfxPrint_SetPos(printer, x-2, ++y); + //GfxPrint_Printf(printer, "mouth:%d", this->mouthTexIndex); + + GfxPrint_SetPos(printer, x-1, ++y); + GfxPrint_Printf(printer, "anim:%d", this->animIndex); + + //GfxPrint_SetPos(printer, x-2, ++y); + //GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); + + y = 0; + { + static const char* const subsFlags[8] = { + "SUBS_OFFER_MODE_NONE", + "SUBS_OFFER_MODE_GET_ITEM", + "SUBS_OFFER_MODE_NEARBY", + "SUBS_OFFER_MODE_ONSCREEN", + "SUBS_OFFER_MODE_AUTO", + "SUBS_OFFER_MODE_AUTO_TARGETED", + "SUBS_OFFER_MODE_AUTO_NEARBY_ONSCREEN", + "SUBS_OFFER_MODE_INVALID", + }; + s32 index = this->stateFlags & SUBS_OFFER_MODE_MASK; + + GfxPrint_SetPos(printer, 1, ++y); + GfxPrint_Printf(printer, "SUBS_%s", &subsFlags[index][16]); + } + + for (i = 3; i < 16; i++) { + static const char* const flagsMap[16] = { + "ENAN_STATE_PLACEHOLDER_1", + "ENAN_STATE_PLACEHOLDER_2", + "ENAN_STATE_PLACEHOLDER_4", + "ENAN_STATE_8", + "ENAN_STATE_REACHED_PATH_END", + "ENAN_STATE_20", + "ENAN_STATE_IGNORE_GRAVITY", + "ENAN_STATE_80", + "ENAN_STATE_UPDATE_EYES", + "ENAN_STATE_200", + "ENAN_STATE_TALKING", + "ENAN_STATE_DRAW_TRAY", + "ENAN_STATE_DRAW_UMBRELLA", + "ENAN_STATE_DRAW_BROOM", + "ENAN_STATE_DRAW_KAFEI_MASK", + "ENAN_STATE_DRAW_CHOPSTICKS", + }; + + if (this->stateFlags & (1 << i)) { + GfxPrint_SetPos(printer, 1, ++y); + GfxPrint_Printf(printer, "%s", &flagsMap[i][11]); + } + } + + y = 20; + x = 3; + + GfxPrint_SetPos(printer, x - 2, ++y); + GfxPrint_Printf(printer, "weekEvent"); + + for (i = 0; i < ARRAY_COUNT(weekEventRegCopy); i++){ + if (weekEventRegCopy[i] != gSaveContext.save.saveInfo.weekEventReg[i]) { + u8 copy = weekEventRegCopy[i]; + u8 real = gSaveContext.save.saveInfo.weekEventReg[i]; + u8 diff = copy ^ real; + s32 j; + + for (j = 0; j < 8; j++) { + u8 mask = (1 << j); + + if (diff & mask) { + if (real & mask) { + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, "SET [%i] & %X", i, mask); + } else { + + } + } + } + } + } +} + +void EnAn_DrawStruct(EnAn* this, PlayState* play) { + GraphicsContext* gfxCtx = play->state.gfxCtx; + GfxPrint printer; + Gfx* gfxRef; + Gfx* gfx; + + OPEN_DISPS(gfxCtx); + + Gfx_SetupDL28_Opa(gfxCtx); + + GfxPrint_Init(&printer); + + gfxRef = POLY_OPA_DISP; + gfx = Graph_GfxPlusOne(gfxRef); + gSPDisplayList(OVERLAY_DISP++, gfx); + + GfxPrint_Open(&printer, gfx); + + EnAn_PrintStruct(this, play, &printer); + + gfx = GfxPrint_Close(&printer); + + gSPEndDisplayList(gfx++); + Graph_BranchDlist(gfxRef, gfx); + POLY_OPA_DISP = gfx; + + GfxPrint_Destroy(&printer); + + CLOSE_DISPS(gfxCtx); +} +#endif + static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { gAnju1Mouth00E6E0Tex, // ENAN_MOUTH_0 gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY @@ -3419,4 +3601,8 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx); } + +#if DEBUG_PRINT + EnAn_DrawStruct(this, play); +#endif } From 7db0614e8fb3224be96af7810accd40c62f9629d Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 15 Oct 2023 16:50:58 -0300 Subject: [PATCH 50/78] WEEKEVENTREG_COUPLES_MASK_CUTSCENE_* --- include/z64save.h | 10 +++- src/overlays/actors/ovl_En_An/z_en_an.c | 46 +++++++++---------- src/overlays/actors/ovl_En_Drs/z_en_drs.c | 2 +- src/overlays/actors/ovl_En_Test3/z_en_test3.c | 4 +- tools/weekeventregconvert.py | 4 +- 5 files changed, 36 insertions(+), 30 deletions(-) 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", From 246519f7b434a69eac13b9831aa4076dd40e33fc Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 16 Oct 2023 11:32:22 -0300 Subject: [PATCH 51/78] name the mouths --- assets/xml/objects/object_an1.xml | 8 ++--- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 6 ++-- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 6 ++-- src/overlays/actors/ovl_En_An/z_en_an.c | 46 ++++++++++++------------- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/assets/xml/objects/object_an1.xml b/assets/xml/objects/object_an1.xml index 45a9db4f2..15ca36792 100644 --- a/assets/xml/objects/object_an1.xml +++ b/assets/xml/objects/object_an1.xml @@ -45,7 +45,7 @@ - + @@ -55,9 +55,9 @@ - - - + + + diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index 583ee1507..fd81ca8ee 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -369,14 +369,14 @@ void func_80C1CEFC(PlayState* play, s32 limbIndex, Actor* thisx) { } TexturePtr D_80C1D2E8[] = { - gAnju1Mouth00E6E0Tex, + gAnju1MouthClosedTex, gAnju1MouthHappyTex, - gAnju1Mouth0101A0Tex, + gAnju1MouthOpenTex, }; TexturePtr D_80C1D2F4[] = { gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, - gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, + gAnju1EyeComfortingTex, gAnju1EyeSadTex, gAnju1EyeRelievedClosedTex, }; void func_80C1D0B0(Actor* thisx, PlayState* play) { diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index 960088a22..69a544428 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -369,14 +369,14 @@ void DmGm_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } TexturePtr D_80C25238[] = { - gAnju1Mouth00E6E0Tex, + gAnju1MouthClosedTex, gAnju1MouthHappyTex, - gAnju1Mouth0101A0Tex, + gAnju1MouthOpenTex, }; TexturePtr D_80C25244[] = { gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, - gAnju1Eye00FDA0Tex, gAnju1EyeSadTex, gAnju1EyeAngryTex, + gAnju1EyeComfortingTex, gAnju1EyeSadTex, gAnju1EyeRelievedClosedTex, }; void func_80C25000(Actor* thisx, PlayState* play) { 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 d26f97fe5..c8d5648e2 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1131,16 +1131,16 @@ typedef enum EnAnEyes { /* 1 */ ENAN_EYES_HALF1, /* 2 */ ENAN_EYES_CLOSED, /* 3 */ ENAN_EYES_HALF2, - /* 4 */ ENAN_EYES_4, + /* 4 */ ENAN_EYES_COMFORTING, /* 5 */ ENAN_EYES_SAD, - /* 6 */ ENAN_EYES_ANGRY, + /* 6 */ ENAN_EYES_RELIEVED_CLOSED, /* 7 */ ENAN_EYES_MAX } EnAnEyes; typedef enum EnAnMouth { - /* 0 */ ENAN_MOUTH_0, + /* 0 */ ENAN_MOUTH_CLOSED, /* 1 */ ENAN_MOUTH_HAPPY, - /* 2 */ ENAN_MOUTH_2, + /* 2 */ ENAN_MOUTH_OPEN, /* 3 */ ENAN_MOUTH_MAX } EnAnMouth; @@ -1152,21 +1152,21 @@ typedef enum EnAnFace { /* 4 */ ENAN_FACE_4, /* 5 */ ENAN_FACE_5, /* 6 */ ENAN_FACE_6, - /* 7 */ ENAN_FACE_7, - /* 8 */ ENAN_FACE_8, - /* 9 */ ENAN_FACE_9, + /* 7 */ ENAN_FACE_7, // RELIEVED? + /* 8 */ ENAN_FACE_8, // COMFORTING + /* 9 */ ENAN_FACE_9, // HAPPY_BLINK? /* 10 */ ENAN_FACE_MAX } EnAnFace; static s16 sMouthIndices[ENAN_FACE_MAX] = { - ENAN_MOUTH_0, // ENAN_FACE_0 - ENAN_MOUTH_2, // ENAN_FACE_1 - ENAN_MOUTH_0, // ENAN_FACE_2 + ENAN_MOUTH_CLOSED, // ENAN_FACE_0 + ENAN_MOUTH_OPEN, // ENAN_FACE_1 + ENAN_MOUTH_CLOSED, // ENAN_FACE_2 ENAN_MOUTH_HAPPY, // ENAN_FACE_3 - ENAN_MOUTH_2, // ENAN_FACE_4 - ENAN_MOUTH_0, // ENAN_FACE_5 + ENAN_MOUTH_OPEN, // ENAN_FACE_4 + ENAN_MOUTH_CLOSED, // ENAN_FACE_5 ENAN_MOUTH_HAPPY, // ENAN_FACE_6 - ENAN_MOUTH_2, // ENAN_FACE_7 + ENAN_MOUTH_OPEN, // ENAN_FACE_7 ENAN_MOUTH_HAPPY, // ENAN_FACE_8 ENAN_MOUTH_HAPPY, // ENAN_FACE_9 }; @@ -1189,24 +1189,24 @@ void EnAn_UpdateFace(EnAn* this) { case ENAN_FACE_5: case ENAN_FACE_7: - if ((this->eyeTexIndex == ENAN_EYES_ANGRY) || (this->eyeTexIndex == ENAN_EYES_HALF1)) { + if ((this->eyeTexIndex == ENAN_EYES_RELIEVED_CLOSED) || (this->eyeTexIndex == ENAN_EYES_HALF1)) { skipBlink = true; - this->eyeTexIndex = ENAN_EYES_ANGRY; + this->eyeTexIndex = ENAN_EYES_RELIEVED_CLOSED; } break; case ENAN_FACE_8: - if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_CLOSED)) { + if ((this->eyeTexIndex == ENAN_EYES_COMFORTING) || (this->eyeTexIndex == ENAN_EYES_CLOSED)) { skipBlink = true; - this->eyeTexIndex = ENAN_EYES_4; + this->eyeTexIndex = ENAN_EYES_COMFORTING; } break; } if (!skipBlink) { - if ((this->eyeTexIndex == ENAN_EYES_4) || (this->eyeTexIndex == ENAN_EYES_SAD)) { + if ((this->eyeTexIndex == ENAN_EYES_COMFORTING) || (this->eyeTexIndex == ENAN_EYES_SAD)) { this->eyeTexIndex = ENAN_EYES_OPEN; - } else if (this->eyeTexIndex == ENAN_EYES_ANGRY) { + } else if (this->eyeTexIndex == ENAN_EYES_RELIEVED_CLOSED) { this->eyeTexIndex = ENAN_EYES_HALF1; } } @@ -3573,9 +3573,9 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { if ((this->scheduleResult != ANJU_SCH_NONE) || this->forceDraw) { static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { - gAnju1Mouth00E6E0Tex, // ENAN_MOUTH_0 + gAnju1MouthClosedTex, // ENAN_MOUTH_CLOSED gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY - gAnju1Mouth0101A0Tex, // ENAN_MOUTH_2 + gAnju1MouthOpenTex, // ENAN_MOUTH_OPEN }; static TexturePtr sEyeTextures[ENAN_EYES_MAX] = { @@ -3583,9 +3583,9 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { gAnju1EyeHalfTex, // ENAN_EYES_HALF1 gAnju1EyeClosedTex, // ENAN_EYES_CLOSED gAnju1EyeHalfTex, // ENAN_EYES_HALF2 - gAnju1Eye00FDA0Tex, // ENAN_EYES_4 + gAnju1EyeComfortingTex, // ENAN_EYES_COMFORTING gAnju1EyeSadTex, // ENAN_EYES_SAD - gAnju1EyeAngryTex, // ENAN_EYES_ANGRY + gAnju1EyeRelievedClosedTex, // ENAN_EYES_RELIEVED_CLOSED }; OPEN_DISPS(play->state.gfxCtx); From 006002a33d0e9fbef11f475317313062bb19e2d7 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 16 Oct 2023 21:06:14 -0300 Subject: [PATCH 52/78] idk --- src/overlays/actors/ovl_En_An/z_en_an.c | 236 ++++++++++++++++++++---- src/overlays/actors/ovl_En_An/z_en_an.h | 4 +- tools/disasm/functions.txt | 6 +- tools/disasm/variables.txt | 8 +- 4 files changed, 205 insertions(+), 49 deletions(-) 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 c8d5648e2..3170d932a 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -684,7 +684,7 @@ s32 sAnjuMsgScript_SchGiveLunchToGranny[0x15] = { 0x09000018, 0x0E28CE0C, 0x09000017, 0x0E28CF2D, 0x12D00, 0x0E0C0900, 0x100000, }; -s32 sAnjuMsgScript_80B5885C[0x37] = { +s32 sAnjuMsgScript_ReceptionistDay1[0x37] = { 0x220B0000, 0x69002020, 0x64004B, 0x1000B700, 0x370100AA, 0x370200, 0x550E28A0, 0x0C090000, 0x0F28A80C, 0x05000000, 0x30000030, 0x0E28A90C, 0x0F28AA0C, 0x0F28AB0C, 0x120600A0, 0x1300, 0xA02F0000, 0x2E2D0014, 0x0C114B10, 0x0700000E, 0x28AD2D00, 0x010C2400, 0x41161031, 0x0E28A30C, @@ -728,7 +728,7 @@ s32 sAnjuMsgScript_DekuDefault[8] = { s32 sAnjuMsgScript_SchLaundryPoolDeku[6] = { 0x524000, 0x0B0E2952, 0x2D00010C, 0x11524010, 0x0E29532D, 0x10C10 }; -s32 sAnjuMsgScript_80B58A3C[2] = { 0x0E28E02D, 0x10C10 }; +s32 sAnjuMsgScript_Receptionist[2] = { 0x0E28E02D, 0x10C10 }; s32 sAnjuMsgScript_80B58A44[0x1E] = { 0x320800, 0x080E28D5, 0x2D00010C, 0x10003220, 0x80E28, -0x2BD2FFFF, 0x0C100033, 0x01001A25, @@ -1158,20 +1158,19 @@ typedef enum EnAnFace { /* 10 */ ENAN_FACE_MAX } EnAnFace; -static s16 sMouthIndices[ENAN_FACE_MAX] = { - ENAN_MOUTH_CLOSED, // ENAN_FACE_0 - ENAN_MOUTH_OPEN, // ENAN_FACE_1 - ENAN_MOUTH_CLOSED, // ENAN_FACE_2 - ENAN_MOUTH_HAPPY, // ENAN_FACE_3 - ENAN_MOUTH_OPEN, // ENAN_FACE_4 - ENAN_MOUTH_CLOSED, // ENAN_FACE_5 - ENAN_MOUTH_HAPPY, // ENAN_FACE_6 - ENAN_MOUTH_OPEN, // ENAN_FACE_7 - ENAN_MOUTH_HAPPY, // ENAN_FACE_8 - ENAN_MOUTH_HAPPY, // ENAN_FACE_9 -}; - void EnAn_UpdateFace(EnAn* this) { + static s16 sMouthIndices[ENAN_FACE_MAX] = { + ENAN_MOUTH_CLOSED, // ENAN_FACE_0 + ENAN_MOUTH_OPEN, // ENAN_FACE_1 + ENAN_MOUTH_CLOSED, // ENAN_FACE_2 + ENAN_MOUTH_HAPPY, // ENAN_FACE_3 + ENAN_MOUTH_OPEN, // ENAN_FACE_4 + ENAN_MOUTH_CLOSED, // ENAN_FACE_5 + ENAN_MOUTH_HAPPY, // ENAN_FACE_6 + ENAN_MOUTH_OPEN, // ENAN_FACE_7 + ENAN_MOUTH_HAPPY, // ENAN_FACE_8 + ENAN_MOUTH_HAPPY, // ENAN_FACE_9 + }; s32 skipBlink = false; if (this->stateFlags & ENAN_STATE_UPDATE_EYES) { @@ -1251,15 +1250,15 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) switch (accessoryId) { case ENAN_ACCESSORY_FOOD_TRAY: if ((this->stateFlags & ENAN_STATE_DRAW_TRAY) && !this->forceDraw) { - this->unk_3A8++; - this->unk_3AC -= 2; + this->trayTexScrollTimer1++; + this->trayTexScrollTimer2 -= 2; Gfx_SetupDL25_Xlu(play->state.gfxCtx); gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment( POLY_XLU_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->unk_3A8, 0, 16, 16, 1, 0, this->unk_3AC, 16, 16)); + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->trayTexScrollTimer1, 1, 16, 16, 1, 0, this->trayTexScrollTimer2, 16, 16)); gSPDisplayList(POLY_XLU_DISP++, gAnju1FoodTrayDL); Gfx_SetupDL25_Opa(play->state.gfxCtx); @@ -1705,9 +1704,9 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { case ANJU_SCH_RECEPTIONIST_IDLE: if (gSaveContext.save.day >= 2) { - return sAnjuMsgScript_80B58A3C; + return sAnjuMsgScript_Receptionist; } - return sAnjuMsgScript_80B5885C; + return sAnjuMsgScript_ReceptionistDay1; case ANJU_SCH_WAITING_CLOSING_TIME: case ANJU_SCH_WALKING_47: @@ -1774,7 +1773,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { return ret; } -s32 func_80B552E4(EnAn* this, PlayState* play) { +s32 EnAn_IsCouplesMaskCsPlaying(EnAn* this, PlayState* play) { u16 scriptIndex = play->csCtx.scriptIndex; s32 ret = false; @@ -3222,9 +3221,9 @@ void EnAn_Talk(EnAn* this, PlayState* play) { } } -void EnAn_HandleCutscene(EnAn* this, PlayState* play) { +void EnAn_HandleCouplesMaskCutscene(EnAn* this, PlayState* play) { s32 animIds[] = { - /* 0 */ 0, + /* 0 */ 0, // no cue /* 1 */ ENAN_ANIM_SITTING_IN_DISBELIEVE, /* 2 */ ENAN_ANIM_SITTING_RAISE_FACE, /* 3 */ ENAN_ANIM_25, @@ -3333,8 +3332,8 @@ void EnAn_Update(Actor* thisx, PlayState* play) { return; } - if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && func_80B552E4(this, play)) { - EnAn_HandleCutscene(this, play); + if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && EnAn_IsCouplesMaskCsPlaying(this, play)) { + EnAn_HandleCouplesMaskCutscene(this, play); EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); return; @@ -3357,12 +3356,13 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } -Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnAn* this = THIS; if (limbIndex == ANJU1_LIMB_HEAD) { + static Vec3f D_80B58ED4 = { 1000.0f, 0.0f, 0.0f }; + Matrix_MultVec3f(&D_80B58ED4, &this->actor.focus.pos); Math_Vec3s_Copy(&this->actor.focus.rot, &this->actor.world.rot); EnAn_DrawAccessory(this, play, ENAN_ACCESSORY_KAFEI_MASK); @@ -3412,11 +3412,153 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { #define DEC_TIME_AUX(t) ((t) * (24 * 60) / 0x10000) #define DEC_TIME(t) ((DEC_TIME_AUX(t) / 60) * 100 + (DEC_TIME_AUX(t) % 60)) +typedef struct SymbolDebug { + void* address; + const char* const name; +} SymbolDebug; + +#define SYMBOL_DEBUG(sym) { &sym, #sym } + +const SymbolDebug sAnjuFunctions[] = { + SYMBOL_DEBUG(EnAn_InitializeObjectSlots), + SYMBOL_DEBUG(EnAn_FindActor), + SYMBOL_DEBUG(func_80B53A7C), + SYMBOL_DEBUG(EnAn_FindDoor), + SYMBOL_DEBUG(EnAn_UpdateSkel), + SYMBOL_DEBUG(EnAn_ChangeAnim), + SYMBOL_DEBUG(EnAn_UpdateCollider), + SYMBOL_DEBUG(EnAn_UpdateFace), + SYMBOL_DEBUG(EnAn_DrawAccessory), + SYMBOL_DEBUG(EnAn_ChangeCutscene), + SYMBOL_DEBUG(EnAn_GetCsId), + SYMBOL_DEBUG(EnAn_GetChildCsId), + SYMBOL_DEBUG(EnAn_MsgEvent_ReceiveLetterFromPostman), + SYMBOL_DEBUG(EnAn_MsgEvent_AttendGoron), + SYMBOL_DEBUG(EnAn_MsgEvent_GiveLunchToGranny), + SYMBOL_DEBUG(EnAn_MsgEvent_MidnightMeeting), + SYMBOL_DEBUG(EnAn_MsgEvent_Cooking), + SYMBOL_DEBUG(EnAn_MsgEvent_LaundryPool), + SYMBOL_DEBUG(EnAn_GetMsgEventScript), + SYMBOL_DEBUG(EnAn_CheckTalk), + SYMBOL_DEBUG(EnAn_IsCouplesMaskCsPlaying), + SYMBOL_DEBUG(EnAn_UpdateHeadRot), + SYMBOL_DEBUG(func_80B554E8), + SYMBOL_DEBUG(EnAn_ChooseAnimAfterTalking), + SYMBOL_DEBUG(EnAn_DialogueFunc_80B556F8), + SYMBOL_DEBUG(EnAn_DialogueFunc_80B557AC), + SYMBOL_DEBUG(EnAn_DialogueFunc_80B55860), + SYMBOL_DEBUG(EnAn_HandleDialogue), + SYMBOL_DEBUG(EnAn_FindLookAtActor), + SYMBOL_DEBUG(func_80B55D98), + SYMBOL_DEBUG(EnAn_IsFacingAndNearPlayer), + SYMBOL_DEBUG(func_80B55F8C), + SYMBOL_DEBUG(EnAn_ProcessSchedule_ReceiveLetterFromPostman), + SYMBOL_DEBUG(EnAn_ProcessSchedule_AttendGoron), + SYMBOL_DEBUG(EnAn_ProcessSchedule_GiveLunchToGranny), + SYMBOL_DEBUG(EnAn_ProcessSchedule_Door), + SYMBOL_DEBUG(EnAn_ProcessSchedule_Walking), + SYMBOL_DEBUG(EnAn_ProcessSchedule_Sweeping), + SYMBOL_DEBUG(EnAn_ProcessSchedule_80B56880), + SYMBOL_DEBUG(EnAn_ProcessSchedule_Ranch), + SYMBOL_DEBUG(EnAn_ProcessSchedule_StaffRoom), + SYMBOL_DEBUG(EnAn_ProcessSchedule_WithKafei), + SYMBOL_DEBUG(EnAn_ProcessScheduleOutput), + SYMBOL_DEBUG(EnAn_HandleSch_InteractActor), + SYMBOL_DEBUG(EnAn_HandleSch_Door), + SYMBOL_DEBUG(EnAn_HandleSch_FollowTimePath), + SYMBOL_DEBUG(EnAn_HandleSch_80B572D4), + SYMBOL_DEBUG(EnAn_HandleSch_LaundryPool), + SYMBOL_DEBUG(EnAn_HandleSch_WaitingForKafei), + SYMBOL_DEBUG(EnAn_HandleSch_WithKafei), + SYMBOL_DEBUG(EnAn_HandleSchedule), + SYMBOL_DEBUG(EnAn_Initialize), + SYMBOL_DEBUG(EnAn_FollowSchedule), + SYMBOL_DEBUG(EnAn_Talk), + SYMBOL_DEBUG(EnAn_HandleCouplesMaskCutscene), + SYMBOL_DEBUG(EnAn_Init), + SYMBOL_DEBUG(EnAn_Destroy), + SYMBOL_DEBUG(EnAn_Update), + SYMBOL_DEBUG(EnAn_PostLimbDraw), + SYMBOL_DEBUG(EnAn_TransformLimbDraw), + SYMBOL_DEBUG(EnAn_Draw), +}; + +const SymbolDebug sAnjuData[] = { + SYMBOL_DEBUG(sScheduleScript), + SYMBOL_DEBUG(sSearchTimePathLimit), + SYMBOL_DEBUG(sAnjuMsgScript_SchReceiveLetterFromPostman), + SYMBOL_DEBUG(sAnjuMsgScript_SchAttendGoron), + SYMBOL_DEBUG(sAnjuMsgScript_SchGiveLunchToGranny), + SYMBOL_DEBUG(sAnjuMsgScript_ReceptionistDay1), + SYMBOL_DEBUG(sAnjuMsgScript_InnCloseTime), + SYMBOL_DEBUG(sAnjuMsgScript_80B58944), + SYMBOL_DEBUG(sAnjuMsgScript_80B5894C), + SYMBOL_DEBUG(sAnjuMsgScript_SchCooking), + SYMBOL_DEBUG(sAnjuMsgScript_80B58980), + SYMBOL_DEBUG(sAnjuMsgScript_SchSweeping), + SYMBOL_DEBUG(sAnjuMsgScript_80B58994), + SYMBOL_DEBUG(sAnjuMsgScript_SchRanch), + SYMBOL_DEBUG(sAnjuMsgScript_SchMidnightMeeting), + SYMBOL_DEBUG(sAnjuMsgScript_80B589FC), + SYMBOL_DEBUG(sAnjuMsgScript_DekuDefault), + SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolDeku), + SYMBOL_DEBUG(sAnjuMsgScript_Receptionist), + SYMBOL_DEBUG(sAnjuMsgScript_80B58A44), + SYMBOL_DEBUG(sAnjuMsgScript_80B58ABC), + SYMBOL_DEBUG(sAnjuMsgScript_80B58AC4), + SYMBOL_DEBUG(sAnjuMsgScript_SchWaitingForKafei), + SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolDefault), + SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolKafeiMask), + SYMBOL_DEBUG(sAnjuMsgScript_80B58B7C), + SYMBOL_DEBUG(sAnjuMsgScript_80B58B88), + SYMBOL_DEBUG(sAnjuMsgScript_SchWithKafei), + SYMBOL_DEBUG(En_An_InitVars), + SYMBOL_DEBUG(sCylinderInit), + SYMBOL_DEBUG(sColChkInfoInit), + SYMBOL_DEBUG(sAnimationInfo), + // SYMBOL_DEBUG(D_80B58E34), + // SYMBOL_DEBUG(sMouthIndices), + // SYMBOL_DEBUG(D_80B58E54), + // SYMBOL_DEBUG(D_80B58E60), + // SYMBOL_DEBUG(D_80B58E68), + // SYMBOL_DEBUG(D_80B58E74), + // SYMBOL_DEBUG(D_80B58E7C), + // SYMBOL_DEBUG(D_80B58E88), + // SYMBOL_DEBUG(D_80B58E90), + // SYMBOL_DEBUG(D_80B58E9C), + // SYMBOL_DEBUG(D_80B58EA4), + // SYMBOL_DEBUG(D_80B58EAC), + // SYMBOL_DEBUG(D_80B58ED4), + // SYMBOL_DEBUG(sMouthTextures), + // SYMBOL_DEBUG(sEyeTextures), +}; + +const char* const EnAn_GetSymbolName(void* address) { + s32 i; + + if (address == NULL) { + return "(null)"; + } + + for (i = 0; i < ARRAY_COUNT(sAnjuFunctions); i++) { + if (address == sAnjuFunctions[i].address) { + return &sAnjuFunctions[i].name[5]; + } + } + + for (i = 0; i < ARRAY_COUNT(sAnjuData); i++) { + if (address == sAnjuData[i].address) { + return sAnjuData[i].name; + } + } + + return "(not_found)"; +} + void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { - s32 x = 31; - s32 y = 3 + 22; + s32 x; + s32 y; s32 i; - uintptr_t actionFuncReloc; GfxPrint_SetColor(printer, 255, 255, 255, 255); @@ -3426,9 +3568,23 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetPos(printer, 28, 2); GfxPrint_Printf(printer, "gTime:%i:%i", DEC_TIME_AUX(gSaveContext.save.time) / 60, DEC_TIME_AUX(gSaveContext.save.time) % 60); - //GfxPrint_SetPos(printer, x - 7, ++y); - //actionFuncReloc = (uintptr_t)this->actionFunc - (uintptr_t)EnAn_InitializeObjectSlots + SEGMENT_START(ovl_En_An); - //GfxPrint_Printf(printer, "actionFunc:%X", actionFuncReloc & 0x0000FFFF); + x = 2; + y = 26; + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, " actionFunc:%s", EnAn_GetSymbolName(this->actionFunc)); + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, " dialogueFunc:%s", EnAn_GetSymbolName(this->dialogueFunc)); + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, " msgEventFunc:%s", EnAn_GetSymbolName(this->msgEventFunc)); + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, "msgEventScript:%s", EnAn_GetSymbolName(this->msgEventScript)); + + x = 31; + y = 3 + 20; GfxPrint_SetPos(printer, x-5, ++y); GfxPrint_Printf(printer, "schedule:%d", this->scheduleResult); @@ -3445,23 +3601,23 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { //GfxPrint_SetPos(printer, x-6, ++y); //GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); - //GfxPrint_SetPos(printer, x-1, ++y); - //GfxPrint_Printf(printer, "face:%d", this->faceIndex); + GfxPrint_SetPos(printer, x-1, ++y); + GfxPrint_Printf(printer, "face:%d", this->faceIndex); //GfxPrint_SetPos(printer, x-5, ++y); //GfxPrint_Printf(printer, "eyeTimer:%d", this->eyeTimer); - //GfxPrint_SetPos(printer, x-0, ++y); - //GfxPrint_Printf(printer, "eye:%d", this->eyeTexIndex); + GfxPrint_SetPos(printer, x-0, ++y); + GfxPrint_Printf(printer, "eye:%d", this->eyeTexIndex); - //GfxPrint_SetPos(printer, x-2, ++y); - //GfxPrint_Printf(printer, "mouth:%d", this->mouthTexIndex); + GfxPrint_SetPos(printer, x-2, ++y); + GfxPrint_Printf(printer, "mouth:%d", this->mouthTexIndex); GfxPrint_SetPos(printer, x-1, ++y); GfxPrint_Printf(printer, "anim:%d", this->animIndex); - //GfxPrint_SetPos(printer, x-2, ++y); - //GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); + GfxPrint_SetPos(printer, x-2, ++y); + GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); y = 0; { diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 399d9535e..91ad40838 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -89,8 +89,8 @@ typedef struct EnAn { /* 0x398 */ MsgEventFunc msgEventFunc; /* 0x39C */ s32 animIndex; // EnAnAnimation enum /* 0x3A0 */ UNK_TYPE1 unk_3A0[0x8]; - /* 0x3A8 */ u32 unk_3A8; // TwoTexScroll - /* 0x3AC */ u32 unk_3AC; // TwoTexScroll + /* 0x3A8 */ u32 trayTexScrollTimer1; // TwoTexScroll + /* 0x3AC */ u32 trayTexScrollTimer2; // TwoTexScroll /* 0x3B0 */ s32 forceDraw; /* 0x3B4 */ s32 drawMoonMask; /* 0x3B8 */ s32 slotsInitialized; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 67cd920ed..365653370 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14021,13 +14021,13 @@ 0x80B54750:("EnAn_GetChildCsId",), 0x80B547C8:("EnAn_MsgEvent_ReceiveLetterFromPostman",), 0x80B5492C:("EnAn_MsgEvent_AttendGoron",), - 0x80B54A94:("EnAn_MsgEvent_GiveLunchToGrandma",), + 0x80B54A94:("EnAn_MsgEvent_GiveLunchToGranny",), 0x80B54BC4:("EnAn_MsgEvent_MidnightMeeting",), 0x80B54C5C:("EnAn_MsgEvent_Cooking",), 0x80B54D18:("EnAn_MsgEvent_LaundryPool",), 0x80B54DF4:("EnAn_GetMsgEventScript",), 0x80B55180:("EnAn_CheckTalk",), - 0x80B552E4:("func_80B552E4",), + 0x80B552E4:("EnAn_IsCouplesMaskCsPlaying",), 0x80B553AC:("EnAn_UpdateHeadRot",), 0x80B554E8:("func_80B554E8",), 0x80B555C8:("EnAn_ChooseAnimAfterTalking",), @@ -14061,7 +14061,7 @@ 0x80B577F0:("EnAn_Initialize",), 0x80B578F8:("EnAn_FollowSchedule",), 0x80B57A44:("EnAn_Talk",), - 0x80B57B48:("EnAn_HandleCutscene",), + 0x80B57B48:("EnAn_HandleCouplesMaskCutscene",), 0x80B57C9C:("EnAn_Init",), 0x80B57D70:("EnAn_Destroy",), 0x80B57D9C:("EnAn_Update",), diff --git a/tools/disasm/variables.txt b/tools/disasm/variables.txt index a650fc0ce..a3d433fd4 100644 --- a/tools/disasm/variables.txt +++ b/tools/disasm/variables.txt @@ -14447,8 +14447,8 @@ 0x80B58618:("sSearchTimePathLimit","UNK_TYPE1","",0x1), 0x80B58718:("sAnjuMsgScript_SchReceiveLetterFromPostman","UNK_TYPE1","",0x1), 0x80B58784:("sAnjuMsgScript_SchAttendGoron","UNK_TYPE1","",0x1), - 0x80B58808:("sAnjuMsgScript_SchGiveLunchToGrandma","UNK_TYPE1","",0x1), - 0x80B5885C:("sAnjuMsgScript_80B5885C","UNK_TYPE1","",0x1), + 0x80B58808:("sAnjuMsgScript_SchGiveLunchToGranny","UNK_TYPE1","",0x1), + 0x80B5885C:("sAnjuMsgScript_ReceptionistDay1","UNK_TYPE1","",0x1), 0x80B58938:("sAnjuMsgScript_InnCloseTime","UNK_TYPE1","",0x1), 0x80B58944:("sAnjuMsgScript_80B58944","UNK_TYPE1","",0x1), 0x80B5894C:("sAnjuMsgScript_80B5894C","UNK_TYPE1","",0x1), @@ -14461,7 +14461,7 @@ 0x80B589FC:("sAnjuMsgScript_80B589FC","UNK_TYPE1","",0x1), 0x80B58A04:("sAnjuMsgScript_DekuDefault","UNK_TYPE1","",0x1), 0x80B58A24:("sAnjuMsgScript_SchLaundryPoolDeku","UNK_TYPE1","",0x1), - 0x80B58A3C:("sAnjuMsgScript_80B58A3C","UNK_TYPE1","",0x1), + 0x80B58A3C:("sAnjuMsgScript_Receptionist","UNK_TYPE1","",0x1), 0x80B58A44:("sAnjuMsgScript_80B58A44","UNK_TYPE1","",0x1), 0x80B58ABC:("sAnjuMsgScript_80B58ABC","UNK_TYPE1","",0x1), 0x80B58AC4:("sAnjuMsgScript_80B58AC4","UNK_TYPE1","",0x1), @@ -14470,7 +14470,7 @@ 0x80B58B3C:("sAnjuMsgScript_SchLaundryPoolKafeiMask","UNK_TYPE1","",0x1), 0x80B58B7C:("sAnjuMsgScript_80B58B7C","UNK_TYPE1","",0x1), 0x80B58B88:("sAnjuMsgScript_80B58B88","UNK_TYPE1","",0x1), - 0x80B58B90:("sAnjuMsgScript_80B58B90","UNK_TYPE1","",0x1), + 0x80B58B90:("sAnjuMsgScript_SchWithKafei","UNK_TYPE1","",0x1), 0x80B58B9C:("En_An_InitVars","UNK_TYPE1","",0x1), 0x80B58BBC:("sCylinderInit","UNK_TYPE1","",0x1), 0x80B58BE8:("sColChkInfoInit","UNK_TYPE1","",0x1), From 846acf57f40cc076501fd515ad47c6f53700e164 Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 16 Oct 2023 23:05:20 -0300 Subject: [PATCH 53/78] whoops --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3170d932a..5036040ed 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1258,7 +1258,7 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); gSPSegment( POLY_XLU_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->trayTexScrollTimer1, 1, 16, 16, 1, 0, this->trayTexScrollTimer2, 16, 16)); + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->trayTexScrollTimer1, 0, 16, 16, 1, 0, this->trayTexScrollTimer2, 16, 16)); gSPDisplayList(POLY_XLU_DISP++, gAnju1FoodTrayDL); Gfx_SetupDL25_Opa(play->state.gfxCtx); From 2e05d770c8f2aec1fd15e32b4a96a72058920f6d Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 16 Oct 2023 23:16:49 -0300 Subject: [PATCH 54/78] format --- src/overlays/actors/ovl_Dm_An/z_dm_an.c | 2 +- src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 115 +++++++++++----------- src/overlays/actors/ovl_En_Drs/z_en_drs.c | 3 +- 4 files changed, 59 insertions(+), 63 deletions(-) diff --git a/src/overlays/actors/ovl_Dm_An/z_dm_an.c b/src/overlays/actors/ovl_Dm_An/z_dm_an.c index fd81ca8ee..7d4aec2e8 100644 --- a/src/overlays/actors/ovl_Dm_An/z_dm_an.c +++ b/src/overlays/actors/ovl_Dm_An/z_dm_an.c @@ -375,7 +375,7 @@ TexturePtr D_80C1D2E8[] = { }; TexturePtr D_80C1D2F4[] = { - gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, gAnju1EyeComfortingTex, gAnju1EyeSadTex, gAnju1EyeRelievedClosedTex, }; diff --git a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c index 69a544428..c29a22885 100644 --- a/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c +++ b/src/overlays/actors/ovl_Dm_Gm/z_dm_gm.c @@ -375,7 +375,7 @@ TexturePtr D_80C25238[] = { }; TexturePtr D_80C25244[] = { - gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, + gAnju1EyeOpenTex, gAnju1EyeHalfTex, gAnju1EyeClosedTex, gAnju1EyeHalfTex, gAnju1EyeComfortingTex, gAnju1EyeSadTex, gAnju1EyeRelievedClosedTex, }; 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 5036040ed..687bc92e6 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1160,16 +1160,16 @@ typedef enum EnAnFace { void EnAn_UpdateFace(EnAn* this) { static s16 sMouthIndices[ENAN_FACE_MAX] = { - ENAN_MOUTH_CLOSED, // ENAN_FACE_0 - ENAN_MOUTH_OPEN, // ENAN_FACE_1 - ENAN_MOUTH_CLOSED, // ENAN_FACE_2 - ENAN_MOUTH_HAPPY, // ENAN_FACE_3 - ENAN_MOUTH_OPEN, // ENAN_FACE_4 - ENAN_MOUTH_CLOSED, // ENAN_FACE_5 - ENAN_MOUTH_HAPPY, // ENAN_FACE_6 - ENAN_MOUTH_OPEN, // ENAN_FACE_7 - ENAN_MOUTH_HAPPY, // ENAN_FACE_8 - ENAN_MOUTH_HAPPY, // ENAN_FACE_9 + ENAN_MOUTH_CLOSED, // ENAN_FACE_0 + ENAN_MOUTH_OPEN, // ENAN_FACE_1 + ENAN_MOUTH_CLOSED, // ENAN_FACE_2 + ENAN_MOUTH_HAPPY, // ENAN_FACE_3 + ENAN_MOUTH_OPEN, // ENAN_FACE_4 + ENAN_MOUTH_CLOSED, // ENAN_FACE_5 + ENAN_MOUTH_HAPPY, // ENAN_FACE_6 + ENAN_MOUTH_OPEN, // ENAN_FACE_7 + ENAN_MOUTH_HAPPY, // ENAN_FACE_8 + ENAN_MOUTH_HAPPY, // ENAN_FACE_9 }; s32 skipBlink = false; @@ -1256,9 +1256,9 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) gSPMatrix(POLY_XLU_DISP++, Matrix_NewMtx(play->state.gfxCtx), G_MTX_NOPUSH | G_MTX_LOAD | G_MTX_MODELVIEW); - gSPSegment( - POLY_XLU_DISP++, 0x08, - Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->trayTexScrollTimer1, 0, 16, 16, 1, 0, this->trayTexScrollTimer2, 16, 16)); + gSPSegment(POLY_XLU_DISP++, 0x08, + Gfx_TwoTexScroll(play->state.gfxCtx, 0, this->trayTexScrollTimer1, 0, 16, 16, 1, 0, + this->trayTexScrollTimer2, 16, 16)); gSPDisplayList(POLY_XLU_DISP++, gAnju1FoodTrayDL); Gfx_SetupDL25_Opa(play->state.gfxCtx); @@ -3160,7 +3160,8 @@ 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_COUPLES_MASK_CUTSCENE_FINISHED)) { + if (!(this->actor.params & ENAN_8000) && !this->unk_3C0 && + CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED)) { Actor_Kill(&this->actor); return; } @@ -3306,7 +3307,8 @@ void EnAn_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnAn_Initialize; #if DEBUG_PRINT - Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, sizeof(gSaveContext.save.saveInfo.weekEventReg)); + Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, + sizeof(gSaveContext.save.saveInfo.weekEventReg)); gSaveContext.save.day = 3; @@ -3332,7 +3334,8 @@ void EnAn_Update(Actor* thisx, PlayState* play) { return; } - if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && EnAn_IsCouplesMaskCsPlaying(this, play)) { + if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && + EnAn_IsCouplesMaskCsPlaying(this, play)) { EnAn_HandleCouplesMaskCutscene(this, play); EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); @@ -3356,7 +3359,6 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } } - void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { EnAn* this = THIS; @@ -3417,7 +3419,8 @@ typedef struct SymbolDebug { const char* const name; } SymbolDebug; -#define SYMBOL_DEBUG(sym) { &sym, #sym } +#define SYMBOL_DEBUG(sym) \ + { &sym, #sym } const SymbolDebug sAnjuFunctions[] = { SYMBOL_DEBUG(EnAn_InitializeObjectSlots), @@ -3566,7 +3569,8 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_Printf(printer, "gTime:%X", gSaveContext.save.time); GfxPrint_SetPos(printer, 28, 2); - GfxPrint_Printf(printer, "gTime:%i:%i", DEC_TIME_AUX(gSaveContext.save.time) / 60, DEC_TIME_AUX(gSaveContext.save.time) % 60); + GfxPrint_Printf(printer, "gTime:%i:%i", DEC_TIME_AUX(gSaveContext.save.time) / 60, + DEC_TIME_AUX(gSaveContext.save.time) % 60); x = 2; y = 26; @@ -3586,37 +3590,37 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { x = 31; y = 3 + 20; - GfxPrint_SetPos(printer, x-5, ++y); + GfxPrint_SetPos(printer, x - 5, ++y); GfxPrint_Printf(printer, "schedule:%d", this->scheduleResult); - //GfxPrint_SetPos(printer, x-3, ++y); - //GfxPrint_Printf(printer, "textId:%X", this->prevTextId); + // GfxPrint_SetPos(printer, x-3, ++y); + // GfxPrint_Printf(printer, "textId:%X", this->prevTextId); - GfxPrint_SetPos(printer, x-0, ++y); + GfxPrint_SetPos(printer, x - 0, ++y); GfxPrint_Printf(printer, "cue:%d", this->cueId); - //GfxPrint_SetPos(printer, x-2, ++y); - //GfxPrint_Printf(printer, "! 374:%f", this->unk_374); + // GfxPrint_SetPos(printer, x-2, ++y); + // GfxPrint_Printf(printer, "! 374:%f", this->unk_374); - //GfxPrint_SetPos(printer, x-6, ++y); - //GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); + // GfxPrint_SetPos(printer, x-6, ++y); + // GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); - GfxPrint_SetPos(printer, x-1, ++y); + GfxPrint_SetPos(printer, x - 1, ++y); GfxPrint_Printf(printer, "face:%d", this->faceIndex); - //GfxPrint_SetPos(printer, x-5, ++y); - //GfxPrint_Printf(printer, "eyeTimer:%d", this->eyeTimer); + // GfxPrint_SetPos(printer, x-5, ++y); + // GfxPrint_Printf(printer, "eyeTimer:%d", this->eyeTimer); - GfxPrint_SetPos(printer, x-0, ++y); + GfxPrint_SetPos(printer, x - 0, ++y); GfxPrint_Printf(printer, "eye:%d", this->eyeTexIndex); - GfxPrint_SetPos(printer, x-2, ++y); + GfxPrint_SetPos(printer, x - 2, ++y); GfxPrint_Printf(printer, "mouth:%d", this->mouthTexIndex); - GfxPrint_SetPos(printer, x-1, ++y); + GfxPrint_SetPos(printer, x - 1, ++y); GfxPrint_Printf(printer, "anim:%d", this->animIndex); - GfxPrint_SetPos(printer, x-2, ++y); + GfxPrint_SetPos(printer, x - 2, ++y); GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); y = 0; @@ -3639,22 +3643,14 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { for (i = 3; i < 16; i++) { static const char* const flagsMap[16] = { - "ENAN_STATE_PLACEHOLDER_1", - "ENAN_STATE_PLACEHOLDER_2", - "ENAN_STATE_PLACEHOLDER_4", - "ENAN_STATE_8", - "ENAN_STATE_REACHED_PATH_END", - "ENAN_STATE_20", - "ENAN_STATE_IGNORE_GRAVITY", - "ENAN_STATE_80", - "ENAN_STATE_UPDATE_EYES", - "ENAN_STATE_200", - "ENAN_STATE_TALKING", - "ENAN_STATE_DRAW_TRAY", - "ENAN_STATE_DRAW_UMBRELLA", - "ENAN_STATE_DRAW_BROOM", - "ENAN_STATE_DRAW_KAFEI_MASK", - "ENAN_STATE_DRAW_CHOPSTICKS", + "ENAN_STATE_PLACEHOLDER_1", "ENAN_STATE_PLACEHOLDER_2", + "ENAN_STATE_PLACEHOLDER_4", "ENAN_STATE_8", + "ENAN_STATE_REACHED_PATH_END", "ENAN_STATE_20", + "ENAN_STATE_IGNORE_GRAVITY", "ENAN_STATE_80", + "ENAN_STATE_UPDATE_EYES", "ENAN_STATE_200", + "ENAN_STATE_TALKING", "ENAN_STATE_DRAW_TRAY", + "ENAN_STATE_DRAW_UMBRELLA", "ENAN_STATE_DRAW_BROOM", + "ENAN_STATE_DRAW_KAFEI_MASK", "ENAN_STATE_DRAW_CHOPSTICKS", }; if (this->stateFlags & (1 << i)) { @@ -3669,7 +3665,7 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetPos(printer, x - 2, ++y); GfxPrint_Printf(printer, "weekEvent"); - for (i = 0; i < ARRAY_COUNT(weekEventRegCopy); i++){ + for (i = 0; i < ARRAY_COUNT(weekEventRegCopy); i++) { if (weekEventRegCopy[i] != gSaveContext.save.saveInfo.weekEventReg[i]) { u8 copy = weekEventRegCopy[i]; u8 real = gSaveContext.save.saveInfo.weekEventReg[i]; @@ -3684,7 +3680,6 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetPos(printer, x, ++y); GfxPrint_Printf(printer, "SET [%i] & %X", i, mask); } else { - } } } @@ -3731,17 +3726,17 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { static TexturePtr sMouthTextures[ENAN_MOUTH_MAX] = { gAnju1MouthClosedTex, // ENAN_MOUTH_CLOSED gAnju1MouthHappyTex, // ENAN_MOUTH_HAPPY - gAnju1MouthOpenTex, // ENAN_MOUTH_OPEN + gAnju1MouthOpenTex, // ENAN_MOUTH_OPEN }; static TexturePtr sEyeTextures[ENAN_EYES_MAX] = { - gAnju1EyeOpenTex, // ENAN_EYES_OPEN - gAnju1EyeHalfTex, // ENAN_EYES_HALF1 - gAnju1EyeClosedTex, // ENAN_EYES_CLOSED - gAnju1EyeHalfTex, // ENAN_EYES_HALF2 - gAnju1EyeComfortingTex, // ENAN_EYES_COMFORTING - gAnju1EyeSadTex, // ENAN_EYES_SAD - gAnju1EyeRelievedClosedTex, // ENAN_EYES_RELIEVED_CLOSED + gAnju1EyeOpenTex, // ENAN_EYES_OPEN + gAnju1EyeHalfTex, // ENAN_EYES_HALF1 + gAnju1EyeClosedTex, // ENAN_EYES_CLOSED + gAnju1EyeHalfTex, // ENAN_EYES_HALF2 + gAnju1EyeComfortingTex, // ENAN_EYES_COMFORTING + gAnju1EyeSadTex, // ENAN_EYES_SAD + gAnju1EyeRelievedClosedTex, // ENAN_EYES_RELIEVED_CLOSED }; OPEN_DISPS(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 cc2c42893..8f5111582 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,8 @@ 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_COUPLES_MASK_CUTSCENE_STARTED) && (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); From 79fdae13c84568d4964f87cc3bd76cbe5f16f97b Mon Sep 17 00:00:00 2001 From: Angie Date: Mon, 16 Oct 2023 23:41:47 -0300 Subject: [PATCH 55/78] Name the remaining weekeventregs from anju --- include/z64save.h | 4 ++-- src/overlays/actors/ovl_En_An/z_en_an.c | 8 ++++---- src/overlays/actors/ovl_En_Pm/z_en_pm.c | 2 +- tools/weekeventregconvert.py | 4 ++-- 4 files changed, 9 insertions(+), 9 deletions(-) diff --git a/include/z64save.h b/include/z64save.h index eaff390f8..98c558415 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -1058,7 +1058,7 @@ typedef enum { #define WEEKEVENTREG_TALKED_PART_TIMER_AS_GORON PACK_WEEKEVENTREG_FLAG(55, 0x04) #define WEEKEVENTREG_TALKED_PART_TIMER_AS_ZORA PACK_WEEKEVENTREG_FLAG(55, 0x08) #define WEEKEVENTREG_TALKED_PART_TIMER_AS_DEKU PACK_WEEKEVENTREG_FLAG(55, 0x10) -#define WEEKEVENTREG_55_20 PACK_WEEKEVENTREG_FLAG(55, 0x20) +#define WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL PACK_WEEKEVENTREG_FLAG(55, 0x20) #define WEEKEVENTREG_55_40 PACK_WEEKEVENTREG_FLAG(55, 0x40) // Gyorg has been defeated @@ -1356,7 +1356,7 @@ typedef enum { #define WEEKEVENTREG_86_01 PACK_WEEKEVENTREG_FLAG(86, 0x01) #define WEEKEVENTREG_86_02 PACK_WEEKEVENTREG_FLAG(86, 0x02) #define WEEKEVENTREG_86_04 PACK_WEEKEVENTREG_FLAG(86, 0x04) -#define WEEKEVENTREG_86_08 PACK_WEEKEVENTREG_FLAG(86, 0x08) +#define WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION PACK_WEEKEVENTREG_FLAG(86, 0x08) #define WEEKEVENTREG_86_10 PACK_WEEKEVENTREG_FLAG(86, 0x10) #define WEEKEVENTREG_86_20 PACK_WEEKEVENTREG_FLAG(86, 0x20) #define WEEKEVENTREG_86_40 PACK_WEEKEVENTREG_FLAG(86, 0x40) 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 687bc92e6..a446bdeba 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1400,7 +1400,7 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { case 0x1: case 0x3: case 0x5: - if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08)) && (this->msgEventState == 3)) { + if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION)) && (this->msgEventState == 3)) { CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), @@ -1558,7 +1558,7 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: - if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { this->msgEventState++; goto label; } else { @@ -1762,7 +1762,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_20; } - if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { + if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { this->stateFlags &= ~ENAN_STATE_20; } @@ -2635,7 +2635,7 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_55_20)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.world.rot.y += 0x7FF8; diff --git a/src/overlays/actors/ovl_En_Pm/z_en_pm.c b/src/overlays/actors/ovl_En_Pm/z_en_pm.c index 88942f2d0..8f2da4cd8 100644 --- a/src/overlays/actors/ovl_En_Pm/z_en_pm.c +++ b/src/overlays/actors/ovl_En_Pm/z_en_pm.c @@ -843,7 +843,7 @@ s32 func_80AF81E8(EnPm* this, PlayState* play) { case 1: case 3: case 5: - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_86_08) && (this->unk_378 == 3)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION) && (this->unk_378 == 3)) { CutsceneManager_Stop(csId); } else { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); diff --git a/tools/weekeventregconvert.py b/tools/weekeventregconvert.py index f0a19d0af..4b020fb4d 100755 --- a/tools/weekeventregconvert.py +++ b/tools/weekeventregconvert.py @@ -449,7 +449,7 @@ weekEventReg = { (55 << 8) | 0x04: "WEEKEVENTREG_TALKED_PART_TIMER_AS_GORON", (55 << 8) | 0x08: "WEEKEVENTREG_TALKED_PART_TIMER_AS_ZORA", (55 << 8) | 0x10: "WEEKEVENTREG_TALKED_PART_TIMER_AS_DEKU", - (55 << 8) | 0x20: "WEEKEVENTREG_55_20", + (55 << 8) | 0x20: "WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL", (55 << 8) | 0x40: "WEEKEVENTREG_55_40", (55 << 8) | 0x80: "WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE", (56 << 8) | 0x01: "WEEKEVENTREG_56_01", @@ -695,7 +695,7 @@ weekEventReg = { (86 << 8) | 0x01: "WEEKEVENTREG_86_01", (86 << 8) | 0x02: "WEEKEVENTREG_86_02", (86 << 8) | 0x04: "WEEKEVENTREG_86_04", - (86 << 8) | 0x08: "WEEKEVENTREG_86_08", + (86 << 8) | 0x08: "WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION", (86 << 8) | 0x10: "WEEKEVENTREG_86_10", (86 << 8) | 0x20: "WEEKEVENTREG_86_20", (86 << 8) | 0x40: "WEEKEVENTREG_86_40", From 49c2c608eab348ab1575a51e2afe8ac54ccf6eae Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 17 Oct 2023 14:26:55 -0300 Subject: [PATCH 56/78] name more flags --- src/overlays/actors/ovl_En_An/z_en_an.c | 331 +++++++++++++++++------- src/overlays/actors/ovl_En_An/z_en_an.h | 10 +- tools/disasm/functions.txt | 2 +- 3 files changed, 242 insertions(+), 101 deletions(-) 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 a446bdeba..207d07ff3 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -18,7 +18,7 @@ #define THIS ((EnAn*)thisx) // Change this to non-zero to enable debug printing -#define DEBUG_PRINT 0 +#define DEBUG_PRINT 1 void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); @@ -1570,8 +1570,8 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { case 0x1: label: - this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); - this->stateFlags |= ENAN_STATE_200; + this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEI_MASK); + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); ret = true; this->msgEventState++; @@ -1759,11 +1759,11 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { (this->scheduleResult == ANJU_SCH_WALKING_45) || (this->scheduleResult == ANJU_SCH_WALKING_47) || (this->scheduleResult == ANJU_SCH_WALKING_48) || (this->scheduleResult == ANJU_SCH_WALKING_49) || (this->scheduleResult == ANJU_SCH_WALKING_52) || (this->scheduleResult == ANJU_SCH_WALKING_53)) { - this->stateFlags |= ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_ENGAGED; } if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; } this->actionFunc = EnAn_Talk; @@ -1782,7 +1782,7 @@ s32 EnAn_IsCouplesMaskCsPlaying(EnAn* this, PlayState* play) { if (!this->forceDraw) { this->savedFaceIndex = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->eyeTimer = 8; this->cueId = -1; this->forceDraw = true; @@ -1829,28 +1829,28 @@ void EnAn_UpdateHeadRot(EnAn* this) { this->headRotZ = CLAMP(this->headRotZ, -0x1554, 0x1554); } -void func_80B554E8(EnAn* this) { - if (this->stateFlags & ENAN_STATE_20) { +void EnAn_UpdateAttention(EnAn* this) { + if (this->stateFlags & ENAN_STATE_ENGAGED) { if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { - if (DECR(this->unk_388) == 0) { + if (DECR(this->loseAttentionTimer) == 0) { EnAn_UpdateHeadRot(this); - this->stateFlags &= ~ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_80; + this->stateFlags &= ~ENAN_STATE_LOST_ATTENTION; + this->stateFlags |= ENAN_STATE_FACE_TARGET; return; } } } - if (this->stateFlags & ENAN_STATE_80) { - this->stateFlags &= ~ENAN_STATE_80; + if (this->stateFlags & ENAN_STATE_FACE_TARGET) { + this->stateFlags &= ~ENAN_STATE_FACE_TARGET; this->headRotZ = 0; this->headRotY = 0; - this->unk_388 = 20; + this->loseAttentionTimer = 20; return; } - if (DECR(this->unk_388) == 0) { - this->stateFlags |= ENAN_STATE_200; + if (DECR(this->loseAttentionTimer) == 0) { + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; } } @@ -1907,13 +1907,13 @@ s32 EnAn_ChooseAnimAfterTalking(EnAn* this, PlayState* play) { void EnAn_DialogueFunc_80B556F8(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_LOOKING_UP_RELIEVED); - this->stateFlags &= ~ENAN_STATE_20; - this->stateFlags |= ENAN_STATE_200; + this->stateFlags &= ~ENAN_STATE_ENGAGED; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); - this->stateFlags &= ~ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_LOST_ATTENTION; + this->stateFlags |= ENAN_STATE_ENGAGED; this->dialogueFuncState++; } } @@ -1921,13 +1921,13 @@ void EnAn_DialogueFunc_80B556F8(EnAn* this, PlayState* play) { void EnAn_DialogueFunc_80B557AC(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING); - this->stateFlags &= ~ENAN_STATE_20; - this->stateFlags |= ENAN_STATE_200; + this->stateFlags &= ~ENAN_STATE_ENGAGED; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); - this->stateFlags &= ~ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_LOST_ATTENTION; + this->stateFlags |= ENAN_STATE_ENGAGED; this->dialogueFuncState++; } } @@ -1935,13 +1935,13 @@ void EnAn_DialogueFunc_80B557AC(EnAn* this, PlayState* play) { void EnAn_DialogueFunc_80B55860(EnAn* this, PlayState* play) { if (this->dialogueFuncState == 0) { EnAn_ChangeAnim(this, play, ENAN_ANIM_BOWING_MORPH); - this->stateFlags |= ENAN_STATE_200; - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; + this->stateFlags &= ~ENAN_STATE_ENGAGED; this->dialogueFuncState++; } else if ((this->dialogueFuncState == 1) && Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); - this->stateFlags &= ~ENAN_STATE_200; - this->stateFlags |= ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_LOST_ATTENTION; + this->stateFlags |= ENAN_STATE_ENGAGED; this->dialogueFuncState++; } } @@ -1989,8 +1989,8 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28EB: // "I'm afraid to meet him..." if (this->animIndex != ENAN_ANIM_UMBRELLA_CRYING) { - this->stateFlags &= ~(ENAN_STATE_20 | ENAN_STATE_DRAW_KAFEI_MASK); - this->stateFlags |= ENAN_STATE_200; + this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEI_MASK); + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRYING); } break; @@ -2309,8 +2309,8 @@ s32 EnAn_ProcessSchedule_ReceiveLetterFromPostman(EnAn* this, PlayState* play, S SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; - this->stateFlags |= ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_ENGAGED | ENAN_STATE_UPDATE_EYES; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; } return ret; @@ -2324,8 +2324,8 @@ s32 EnAn_ProcessSchedule_AttendGoron(EnAn* this, PlayState* play, ScheduleOutput SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; - this->stateFlags |= ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_ENGAGED | ENAN_STATE_UPDATE_EYES; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; } return ret; @@ -2339,8 +2339,8 @@ s32 EnAn_ProcessSchedule_GiveLunchToGranny(EnAn* this, PlayState* play, Schedule SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); ret = true; - this->stateFlags |= ENAN_STATE_20 | ENAN_STATE_UPDATE_EYES; - this->stateFlags |= ENAN_STATE_200 | ENAN_STATE_DRAW_TRAY; + this->stateFlags |= ENAN_STATE_ENGAGED | ENAN_STATE_UPDATE_EYES; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION | ENAN_STATE_DRAW_TRAY; } return ret; @@ -2420,7 +2420,7 @@ s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* sched } this->actor.flags &= ~ACTOR_FLAG_TARGETABLE; - this->stateFlags |= ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; this->actor.gravity = 0.0f; ret = true; } @@ -2499,7 +2499,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALKING_WITH_TRAY); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_TRAY; break; @@ -2507,14 +2507,14 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_53: EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_WALK); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_BROOM; break; case ANJU_SCH_WALKING_50: case ANJU_SCH_WALKING_51: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; break; case ANJU_SCH_WALKING_54: @@ -2528,7 +2528,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_62: case ANJU_SCH_WALKING_63: EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; break; @@ -2537,7 +2537,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_48: case ANJU_SCH_WALKING_49: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; /* fallthrough */ default: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); @@ -2580,7 +2580,7 @@ s32 EnAn_ProcessSchedule_Sweeping(EnAn* this, PlayState* play, ScheduleOutput* s EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_SWEEP); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_BROOM; } @@ -2625,14 +2625,14 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->var1.followScheduleState = 0; - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; if (scheduleOutput->result == ANJU_SCH_RECEPTIONIST_IDLE) { this->unk_374 = 70.0f; } break; case ANJU_SCH_LAUNDRY_POOL_SIT: - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; if (CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { @@ -2654,7 +2654,7 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s case ANJU_SCH_COOKING: EnAn_ChangeAnim(this, play, ENAN_ANIM_COOKING); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_CHOPSTICKS; break; } @@ -2677,7 +2677,7 @@ s32 EnAn_ProcessSchedule_Ranch(EnAn* this, PlayState* play, ScheduleOutput* sche EnAn_ChangeAnim(this, play, ENAN_ANIM_SITTING_IN_DISBELIEVE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->savedFaceIndex = ENAN_FACE_5; @@ -2711,7 +2711,7 @@ s32 EnAn_ProcessSchedule_StaffRoom(EnAn* this, PlayState* play, ScheduleOutput* break; } - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.gravity = 0.0f; @@ -2726,7 +2726,7 @@ s32 EnAn_ProcessSchedule_WithKafei(EnAn* this, PlayState* play, ScheduleOutput* Math_Vec3s_Copy(&this->actor.world.rot, &this->actor.shape.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_HOLDING_HANDS); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_200; + this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; return true; } @@ -2941,26 +2941,26 @@ s32 EnAn_HandleSch_80B572D4(EnAn* this, PlayState* play) { switch (this->scheduleResult) { case ANJU_SCH_MIDNIGHT_MEETING: if (func_80B55F8C(play) && EnAn_IsFacingAndNearPlayer(this)) { - this->stateFlags |= ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_ENGAGED; } else { - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; } break; case ANJU_SCH_WAITING_FOR_KAFEI: if (EnAn_IsFacingAndNearPlayer(this)) { - this->stateFlags |= ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_ENGAGED; } else { - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; } break; case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_WAITING_CLOSING_TIME: if (EnAn_IsFacingAndNearPlayer(this)) { - this->stateFlags |= ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_ENGAGED; } else { - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; } break; @@ -3029,9 +3029,9 @@ s32 EnAn_HandleSch_WaitingForKafei(EnAn* this, PlayState* play) { } if (EnAn_IsFacingAndNearPlayer(this)) { - this->stateFlags |= ENAN_STATE_20; + this->stateFlags |= ENAN_STATE_ENGAGED; } else { - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; } return 1; @@ -3047,7 +3047,7 @@ s32 EnAn_HandleSch_WithKafei(EnAn* this, PlayState* play) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_NONE, SUBS_OFFER_MODE_MASK); } - this->stateFlags &= ~ENAN_STATE_20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; return 1; } @@ -3193,9 +3193,9 @@ void EnAn_Talk(EnAn* this, PlayState* play) { SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->stateFlags &= ~ENAN_STATE_20; - this->stateFlags |= ENAN_STATE_200; - this->unk_388 = 20; + this->stateFlags &= ~ENAN_STATE_ENGAGED; + this->stateFlags |= ENAN_STATE_LOST_ATTENTION; + this->loseAttentionTimer = 20; this->msgScriptResumePos = 0; this->actionFunc = EnAn_FollowSchedule; @@ -3270,7 +3270,9 @@ void EnAn_HandleCouplesMaskCutscene(EnAn* this, PlayState* play) { } #if DEBUG_PRINT +s32 clockTimePaused = false; u8 weekEventRegCopy[100]; +s32 downPressed = false; #endif void EnAn_Init(Actor* thisx, PlayState* play) { @@ -3307,17 +3309,16 @@ void EnAn_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnAn_Initialize; #if DEBUG_PRINT + //SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); + //SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); + Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, sizeof(gSaveContext.save.saveInfo.weekEventReg)); - gSaveContext.save.day = 3; - - if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { - gSaveContext.save.time = CLOCK_TIME(3, 0); - } - - SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); - SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); + //gSaveContext.save.day = 3; + //if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { + // gSaveContext.save.time = CLOCK_TIME(3, 0); + //} #endif } @@ -3330,6 +3331,35 @@ void EnAn_Destroy(Actor* thisx, PlayState* play) { void EnAn_Update(Actor* thisx, PlayState* play) { EnAn* this = THIS; + #if DEBUG_PRINT + { + Input* input = CONTROLLER1(&play->state); + + if (CHECK_BTN_ALL(input->press.button, BTN_DUP)) { + clockTimePaused = !clockTimePaused; + } + + if (clockTimePaused) { + gSaveContext.save.time -= R_TIME_SPEED; + if (R_TIME_SPEED != 0) { + gSaveContext.save.time -= gSaveContext.save.timeSpeedOffset; + } + } + + if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT)) { + gSaveContext.save.time += CLOCK_TIME(0, 10); + } + if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT)) { + if (gSaveContext.save.time >= CLOCK_TIME(6, 0)) { + if (gSaveContext.save.time - CLOCK_TIME(0, 10) < CLOCK_TIME(6, 0)) { + gSaveContext.save.day -= 2; + } + } + gSaveContext.save.time -= CLOCK_TIME(0, 10); + } + } + #endif + if (EnAn_InitializeObjectSlots(this, play)) { return; } @@ -3347,7 +3377,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { EnAn_HandleDialogue(this, play); EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); - func_80B554E8(this); + EnAn_UpdateAttention(this); SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); if (!(this->stateFlags & ENAN_STATE_IGNORE_GRAVITY)) { @@ -3357,6 +3387,20 @@ void EnAn_Update(Actor* thisx, PlayState* play) { EnAn_UpdateCollider(this, play); } + + #if DEBUG_PRINT + { + Input* input = CONTROLLER1(&play->state); + + if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) { + downPressed = !downPressed; + } + + if (downPressed) { + this->stateFlags &= ~ENAN_STATE_8; + } + } + #endif } void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { @@ -3383,8 +3427,8 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { s32 stepRot; s32 overrideRot; - if (!(this->stateFlags & ENAN_STATE_200)) { - if (this->stateFlags & ENAN_STATE_80) { + if (!(this->stateFlags & ENAN_STATE_LOST_ATTENTION)) { + if (this->stateFlags & ENAN_STATE_FACE_TARGET) { overrideRot = true; } else { overrideRot = false; @@ -3445,7 +3489,7 @@ const SymbolDebug sAnjuFunctions[] = { SYMBOL_DEBUG(EnAn_CheckTalk), SYMBOL_DEBUG(EnAn_IsCouplesMaskCsPlaying), SYMBOL_DEBUG(EnAn_UpdateHeadRot), - SYMBOL_DEBUG(func_80B554E8), + SYMBOL_DEBUG(EnAn_UpdateAttention), SYMBOL_DEBUG(EnAn_ChooseAnimAfterTalking), SYMBOL_DEBUG(EnAn_DialogueFunc_80B556F8), SYMBOL_DEBUG(EnAn_DialogueFunc_80B557AC), @@ -3536,7 +3580,7 @@ const SymbolDebug sAnjuData[] = { // SYMBOL_DEBUG(sEyeTextures), }; -const char* const EnAn_GetSymbolName(void* address) { +const char* EnAn_GetSymbolName(void* address) { s32 i; if (address == NULL) { @@ -3565,39 +3609,123 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetColor(printer, 255, 255, 255, 255); - GfxPrint_SetPos(printer, 28, 1); - GfxPrint_Printf(printer, "gTime:%X", gSaveContext.save.time); + y = 0; - GfxPrint_SetPos(printer, 28, 2); - GfxPrint_Printf(printer, "gTime:%i:%i", DEC_TIME_AUX(gSaveContext.save.time) / 60, + GfxPrint_SetPos(printer, 29, ++y); + GfxPrint_Printf(printer, "gTime:x%X", gSaveContext.save.time); + + GfxPrint_SetPos(printer, 29, ++y); + GfxPrint_Printf(printer, "gTime:%02i:%02i", DEC_TIME_AUX(gSaveContext.save.time) / 60, DEC_TIME_AUX(gSaveContext.save.time) % 60); - x = 2; - y = 26; + if (clockTimePaused) { + GfxPrint_SetPos(printer, 28, ++y); + GfxPrint_Printf(printer, "clock paused"); + + GfxPrint_SetPos(printer, 28, ++y); + GfxPrint_Printf(printer, "offset:%X", gSaveContext.save.timeSpeedOffset); + + GfxPrint_SetPos(printer, 29, ++y); + GfxPrint_Printf(printer, "speed:%X", R_TIME_SPEED); + } + + x = 0; + y = 7; GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " actionFunc:%s", EnAn_GetSymbolName(this->actionFunc)); + GfxPrint_Printf(printer, " action:%s", EnAn_GetSymbolName(this->actionFunc)); GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " dialogueFunc:%s", EnAn_GetSymbolName(this->dialogueFunc)); + GfxPrint_Printf(printer, " dialogue:%s", EnAn_GetSymbolName(this->dialogueFunc)); GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " msgEventFunc:%s", EnAn_GetSymbolName(this->msgEventFunc)); + GfxPrint_Printf(printer, " msgEvent:%s", EnAn_GetSymbolName(this->msgEventFunc)); GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, "msgEventScript:%s", EnAn_GetSymbolName(this->msgEventScript)); + GfxPrint_Printf(printer, "msgScript:%s", EnAn_GetSymbolName(this->msgEventScript)); + + ++y; + + { + static const char* const scheduleNames[ANJU_SCH_MAX] = { + "ANJU_SCH_NONE", + "ANJU_SCH_WAITING_FOR_KAFEI", + "ANJU_SCH_2", + "ANJU_SCH_LAUNDRY_POOL_SIT", + "ANJU_SCH_4", + "ANJU_SCH_5", + "ANJU_SCH_6", + "ANJU_SCH_7", + "ANJU_SCH_8", + "ANJU_SCH_9", + "ANJU_SCH_10", + "ANJU_SCH_11", + "ANJU_SCH_RANCH", + "ANJU_SCH_13", + "ANJU_SCH_COOKING", + "ANJU_SCH_15", + "ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN", + "ANJU_SCH_ATTEND_GORON", + "ANJU_SCH_RECEPTIONIST_IDLE", + "ANJU_SCH_WAITING_CLOSING_TIME", + "ANJU_SCH_20", + "ANJU_SCH_GIVE_LUNCH_TO_GRANNY", + "ANJU_SCH_SWEEPING", + "ANJU_SCH_MIDNIGHT_MEETING", + "ANJU_SCH_TALKING_WITH_MOM", + "ANJU_SCH_WITH_KAFEI", + "ANJU_SCH_DOOR_26", + "ANJU_SCH_DOOR_27", + "ANJU_SCH_DOOR_28", + "ANJU_SCH_DOOR_29", + "ANJU_SCH_DOOR_30", + "ANJU_SCH_DOOR_31", + "ANJU_SCH_DOOR_32", + "ANJU_SCH_DOOR_33", + "ANJU_SCH_DOOR_34", + "ANJU_SCH_DOOR_35", + "ANJU_SCH_DOOR_36", + "ANJU_SCH_DOOR_37", + "ANJU_SCH_DOOR_38", + "ANJU_SCH_DOOR_39", + "ANJU_SCH_WALKING_40", + "ANJU_SCH_41", + "ANJU_SCH_WALKING_42", + "ANJU_SCH_WALKING_43", + "ANJU_SCH_WALKING_44", + "ANJU_SCH_WALKING_45", + "ANJU_SCH_WALKING_46", + "ANJU_SCH_WALKING_47", + "ANJU_SCH_WALKING_48", + "ANJU_SCH_WALKING_49", + "ANJU_SCH_WALKING_50", + "ANJU_SCH_WALKING_51", + "ANJU_SCH_WALKING_52", + "ANJU_SCH_WALKING_53", + "ANJU_SCH_WALKING_54", + "ANJU_SCH_WALKING_55", + "ANJU_SCH_WALKING_56", + "ANJU_SCH_WALKING_57", + "ANJU_SCH_WALKING_58", + "ANJU_SCH_WALKING_59", + "ANJU_SCH_WALKING_60", + "ANJU_SCH_WALKING_61", + "ANJU_SCH_WALKING_62", + "ANJU_SCH_WALKING_63", + }; + + GfxPrint_SetPos(printer, x - 0, ++y); + GfxPrint_Printf(printer, " schedule:%s", &scheduleNames[this->scheduleResult][9]); + } x = 31; - y = 3 + 20; + y = 3 + 17; - GfxPrint_SetPos(printer, x - 5, ++y); - GfxPrint_Printf(printer, "schedule:%d", this->scheduleResult); - - // GfxPrint_SetPos(printer, x-3, ++y); - // GfxPrint_Printf(printer, "textId:%X", this->prevTextId); + GfxPrint_SetPos(printer, x - 3, ++y); + GfxPrint_Printf(printer, "textId:%X", this->prevTextId); GfxPrint_SetPos(printer, x - 0, ++y); - GfxPrint_Printf(printer, "cue:%d", this->cueId); + GfxPrint_Printf(printer, "cue:%i", this->cueId); // GfxPrint_SetPos(printer, x-2, ++y); // GfxPrint_Printf(printer, "! 374:%f", this->unk_374); @@ -3623,6 +3751,8 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetPos(printer, x - 2, ++y); GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); + GfxPrint_SetColor(printer, 120, 120, 180, 255); + y = 0; { static const char* const subsFlags[8] = { @@ -3645,9 +3775,9 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { static const char* const flagsMap[16] = { "ENAN_STATE_PLACEHOLDER_1", "ENAN_STATE_PLACEHOLDER_2", "ENAN_STATE_PLACEHOLDER_4", "ENAN_STATE_8", - "ENAN_STATE_REACHED_PATH_END", "ENAN_STATE_20", - "ENAN_STATE_IGNORE_GRAVITY", "ENAN_STATE_80", - "ENAN_STATE_UPDATE_EYES", "ENAN_STATE_200", + "ENAN_STATE_REACHED_PATH_END", "ENAN_STATE_ENGAGED", + "ENAN_STATE_IGNORE_GRAVITY", "ENAN_STATE_FACE_TARGET", + "ENAN_STATE_UPDATE_EYES", "ENAN_STATE_LOST_ATTENTION", "ENAN_STATE_TALKING", "ENAN_STATE_DRAW_TRAY", "ENAN_STATE_DRAW_UMBRELLA", "ENAN_STATE_DRAW_BROOM", "ENAN_STATE_DRAW_KAFEI_MASK", "ENAN_STATE_DRAW_CHOPSTICKS", @@ -3659,6 +3789,8 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { } } + GfxPrint_SetColor(printer, 255, 255, 255, 255); + y = 20; x = 3; @@ -3685,6 +3817,15 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { } } } + + x = 0; + y = 27; + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, "builtAddr:%X", SEGMENT_START(ovl_En_An)); + + GfxPrint_SetPos(printer, x, ++y); + GfxPrint_Printf(printer, " ovlAddr:%X", EnAn_InitializeObjectSlots); } void EnAn_DrawStruct(EnAn* this, PlayState* play) { @@ -3701,7 +3842,7 @@ void EnAn_DrawStruct(EnAn* this, PlayState* play) { gfxRef = POLY_OPA_DISP; gfx = Graph_GfxPlusOne(gfxRef); - gSPDisplayList(OVERLAY_DISP++, gfx); + gSPDisplayList(DEBUG_DISP++, gfx); GfxPrint_Open(&printer, gfx); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 91ad40838..707670c07 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -14,13 +14,13 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_8000 0x8000 //#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) -#define ENAN_STATE_8 (1 << 3) +#define ENAN_STATE_8 (1 << 3) // path related #define ENAN_STATE_REACHED_PATH_END (1 << 4) -#define ENAN_STATE_20 (1 << 5) // rotate head? +#define ENAN_STATE_ENGAGED (1 << 5) #define ENAN_STATE_IGNORE_GRAVITY (1 << 6) -#define ENAN_STATE_80 (1 << 7) +#define ENAN_STATE_FACE_TARGET (1 << 7) #define ENAN_STATE_UPDATE_EYES (1 << 8) -#define ENAN_STATE_200 (1 << 9) +#define ENAN_STATE_LOST_ATTENTION (1 << 9) #define ENAN_STATE_TALKING (1 << 10) #define ENAN_STATE_DRAW_TRAY (1 << 11) #define ENAN_STATE_DRAW_UMBRELLA (1 << 12) @@ -78,7 +78,7 @@ typedef struct EnAn { /* 0x380 */ UNK_TYPE1 unk_380[0x4]; /* 0x384 */ s16 timePathTimeSpeed; /* 0x386 */ s16 unk_386; // timer - /* 0x388 */ s16 unk_388; // timer + /* 0x388 */ s16 loseAttentionTimer; /* 0x38A */ s16 savedFaceIndex; // EnAnFace enum /* 0x38C */ s16 faceIndex; // EnAnFace enum /* 0x38E */ s16 eyeTimer; diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index 365653370..6576fc761 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14029,7 +14029,7 @@ 0x80B55180:("EnAn_CheckTalk",), 0x80B552E4:("EnAn_IsCouplesMaskCsPlaying",), 0x80B553AC:("EnAn_UpdateHeadRot",), - 0x80B554E8:("func_80B554E8",), + 0x80B554E8:("EnAn_UpdateAttention",), 0x80B555C8:("EnAn_ChooseAnimAfterTalking",), 0x80B556F8:("EnAn_DialogueFunc_80B556F8",), 0x80B557AC:("EnAn_DialogueFunc_80B557AC",), From 9c09615203ba7f3624e200aa137c9afdfccc2878 Mon Sep 17 00:00:00 2001 From: angie Date: Wed, 18 Oct 2023 09:35:40 -0300 Subject: [PATCH 57/78] whoops --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 207d07ff3..802d7d151 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -18,7 +18,7 @@ #define THIS ((EnAn*)thisx) // Change this to non-zero to enable debug printing -#define DEBUG_PRINT 1 +#define DEBUG_PRINT 0 void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); From 784532df05503b4ace82dc5d28ec17fffa6a1b05 Mon Sep 17 00:00:00 2001 From: Angie Date: Thu, 19 Oct 2023 09:52:43 -0300 Subject: [PATCH 58/78] a --- src/overlays/actors/ovl_En_An/z_en_an.c | 56 ++++++++++++------------- 1 file changed, 28 insertions(+), 28 deletions(-) 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 802d7d151..332cf7c70 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -3331,6 +3331,34 @@ void EnAn_Destroy(Actor* thisx, PlayState* play) { void EnAn_Update(Actor* thisx, PlayState* play) { EnAn* this = THIS; + if (EnAn_InitializeObjectSlots(this, play)) { + return; + } + + if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && + EnAn_IsCouplesMaskCsPlaying(this, play)) { + EnAn_HandleCouplesMaskCutscene(this, play); + EnAn_UpdateSkel(this, play); + EnAn_UpdateFace(this); + return; + } + + this->actionFunc(this, play); + if (this->scheduleResult != ANJU_SCH_NONE) { + EnAn_HandleDialogue(this, play); + EnAn_UpdateSkel(this, play); + EnAn_UpdateFace(this); + EnAn_UpdateAttention(this); + SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); + + if (!(this->stateFlags & ENAN_STATE_IGNORE_GRAVITY)) { + Actor_MoveWithGravity(&this->actor); + Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_4); + } + + EnAn_UpdateCollider(this, play); + } + #if DEBUG_PRINT { Input* input = CONTROLLER1(&play->state); @@ -3360,34 +3388,6 @@ void EnAn_Update(Actor* thisx, PlayState* play) { } #endif - if (EnAn_InitializeObjectSlots(this, play)) { - return; - } - - if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && - EnAn_IsCouplesMaskCsPlaying(this, play)) { - EnAn_HandleCouplesMaskCutscene(this, play); - EnAn_UpdateSkel(this, play); - EnAn_UpdateFace(this); - return; - } - - this->actionFunc(this, play); - if (this->scheduleResult != ANJU_SCH_NONE) { - EnAn_HandleDialogue(this, play); - EnAn_UpdateSkel(this, play); - EnAn_UpdateFace(this); - EnAn_UpdateAttention(this); - SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); - - if (!(this->stateFlags & ENAN_STATE_IGNORE_GRAVITY)) { - Actor_MoveWithGravity(&this->actor); - Actor_UpdateBgCheckInfo(play, &this->actor, 30.0f, 12.0f, 0.0f, UPDBGCHECKINFO_FLAG_4); - } - - EnAn_UpdateCollider(this, play); - } - #if DEBUG_PRINT { Input* input = CONTROLLER1(&play->state); From 1aba20892b48780684de5260fadfec62d0bd112a Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 22 Oct 2023 08:55:40 -0300 Subject: [PATCH 59/78] Incorporate SCHEDULE_TIME --- src/overlays/actors/ovl_En_An/z_en_an.c | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) 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 332cf7c70..e1ce024dc 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1581,9 +1581,6 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { return ret; } -// TODO: figure out what to do with this -#define SCHEDULE_CALC_TIME_ALT(hour, minute) SCHEDULE_CONVERT_TIME((((hour)*60.0f) + (minute)) * (0x10000 / 60 / 24.0f)) - s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { Player* player = GET_PLAYER(play); @@ -1659,10 +1656,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_80B58A44; } - // if ((gSaveContext.save.time - 0x3FFC) < 0x5883) { - // if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CONVERT_TIME_ALT(CLOCK_TIME(14, - // 18))) { - if (SCHEDULE_CONVERT_TIME_ALT(gSaveContext.save.time) < SCHEDULE_CALC_TIME_ALT(14, 18)) { + if (SCHEDULE_CONVERT_TIME(gSaveContext.save.time) < SCHEDULE_TIME(14, 18)) { return sAnjuMsgScript_80B58ABC; } From 13ae145ce79684db4851ef8f46736b608364960b Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 23 Oct 2023 10:04:19 -0300 Subject: [PATCH 60/78] format --- src/overlays/actors/ovl_En_An/z_en_an.c | 86 +++++++++++++------------ 1 file changed, 44 insertions(+), 42 deletions(-) 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 f12f90d0c..5c9bc0b96 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -972,29 +972,29 @@ typedef enum EnAnAnimation { } EnAnAnimation; static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { - { &gAnju1HoldHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HOLD_HANDS - { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE - { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH - { &gAnju1BowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOW - { &gAnju1BowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOW_MORPH - { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED - { &gAnju1LookUpRelievedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_LOOK_UP_RELIEVED - { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK - { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT - { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH + { &gAnju1HoldHandsAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HOLD_HANDS + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_IDLE + { &gAnju1IdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_IDLE_MORPH + { &gAnju1BowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_BOW + { &gAnju1BowAnim, 1.0f, 0, -1, ANIMMODE_ONCE, -6 }, // ENAN_ANIM_BOW_MORPH + { &gAnju1SurprisedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_SURPRISED + { &gAnju1LookUpRelievedAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_LOOK_UP_RELIEVED + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK + { &gAnju1WalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK2 + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SIT + { &gAnju1SitAnim, 1.0f, 0, -1, ANIMMODE_LOOP, -6 }, // ENAN_ANIM_SIT_MORPH { &gAnju1SittingInDisbeliefAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_SITTING_IN_DISBELIEF - { &gAnju1CookAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_COOK - { &gAnju1TasteAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTE - { &gAnju1TasteEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTE_END - { &gAnju1WaitWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAIT_WITH_TRAY - { &gAnju1WalkWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK_WITH_TRAY + { &gAnju1CookAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_COOK + { &gAnju1TasteAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTE + { &gAnju1TasteEndAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_TASTE_END + { &gAnju1WaitWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WAIT_WITH_TRAY + { &gAnju1WalkWithTrayAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_WALK_WITH_TRAY // ENAN_ANIMOBJ_AN2 - { &gAnju2UmbrellaIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_IDLE - { &gAnju2UmbrellaWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_WALK - { &gAnju2UmbrellaSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_UMBRELLA_SIT - { &gAnju2UmbrellaCryAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_CRY + { &gAnju2UmbrellaIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_IDLE + { &gAnju2UmbrellaWalkAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_WALK + { &gAnju2UmbrellaSitAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_UMBRELLA_SIT + { &gAnju2UmbrellaCryAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_UMBRELLA_CRY // ENAN_ANIMOBJ_AN3 { &gAnju3BroomIdleAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_BROOM_IDLE @@ -1004,16 +1004,16 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &gAnju2UmbrellaSitAnim, -1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_24 // ENAN_ANIMOBJ_AN4 - { &gAnju4MaskStandLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_MASK_STAND_LOOP - { &gAnju4MaskKneelAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_MASK_KNEEL - { &gAnju4MaskKneelLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_MASK_KNEEL_LOOP - { &gAnju4HugAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_HUG - { &gAnju4HugLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HUG_LOOP + { &gAnju4MaskStandLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_MASK_STAND_LOOP + { &gAnju4MaskKneelAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_MASK_KNEEL + { &gAnju4MaskKneelLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_MASK_KNEEL_LOOP + { &gAnju4HugAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_HUG + { &gAnju4HugLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HUG_LOOP { &gAnju4HugReleaseAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_HUG_RELEASE - { &gAnju4HugReleaseLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HUG_RELEASE_LOOP - { &gAnju4CombineMasks1Anim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_COMBINE_MASKS_1 - { &gAnju4CombineMasks2Anim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_COMBINE_MASKS_2 - { &gAnju4LookUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_LOOK_UP + { &gAnju4HugReleaseLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_HUG_RELEASE_LOOP + { &gAnju4CombineMasks1Anim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_COMBINE_MASKS_1 + { &gAnju4CombineMasks2Anim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_COMBINE_MASKS_2 + { &gAnju4LookUpAnim, 1.0f, 0, -1, ANIMMODE_ONCE, 0 }, // ENAN_ANIM_LOOK_UP { &gAnju4LookUpLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_LOOK_UP_LOOP }; @@ -1558,7 +1558,8 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: - if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { + if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || + CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { this->msgEventState++; goto label; } else { @@ -1756,7 +1757,8 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { this->stateFlags |= ENAN_STATE_ENGAGED; } - if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { + if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && + CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { this->stateFlags &= ~ENAN_STATE_ENGAGED; } @@ -3303,16 +3305,16 @@ void EnAn_Init(Actor* thisx, PlayState* play) { this->actionFunc = EnAn_Initialize; #if DEBUG_PRINT - //SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); - //SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); + // SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); + // SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, sizeof(gSaveContext.save.saveInfo.weekEventReg)); - //gSaveContext.save.day = 3; - //if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { - // gSaveContext.save.time = CLOCK_TIME(3, 0); - //} + // gSaveContext.save.day = 3; + // if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { + // gSaveContext.save.time = CLOCK_TIME(3, 0); + // } #endif } @@ -3353,7 +3355,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { EnAn_UpdateCollider(this, play); } - #if DEBUG_PRINT +#if DEBUG_PRINT { Input* input = CONTROLLER1(&play->state); @@ -3380,9 +3382,9 @@ void EnAn_Update(Actor* thisx, PlayState* play) { gSaveContext.save.time -= CLOCK_TIME(0, 10); } } - #endif +#endif - #if DEBUG_PRINT +#if DEBUG_PRINT { Input* input = CONTROLLER1(&play->state); @@ -3394,7 +3396,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { this->stateFlags &= ~ENAN_STATE_8; } } - #endif +#endif } void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { @@ -3869,7 +3871,7 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { gAnju1EyeHalfTex, // ENAN_EYES_HALF1 gAnju1EyeClosedTex, // ENAN_EYES_CLOSED gAnju1EyeHalfTex, // ENAN_EYES_HALF2 - gAnju1EyeComfortTex, // ENAN_EYES_COMFORT + gAnju1EyeComfortTex, // ENAN_EYES_COMFORT gAnju1EyeSadTex, // ENAN_EYES_SAD gAnju1EyeRelievedClosedTex, // ENAN_EYES_RELIEVED_CLOSED }; From 72f5d638d779e0a012238038405b354aeffbba50 Mon Sep 17 00:00:00 2001 From: angie Date: Thu, 26 Oct 2023 13:19:37 -0300 Subject: [PATCH 61/78] fix merge --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5c9bc0b96..7dc4620df 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1514,7 +1514,7 @@ s32 EnAn_MsgEvent_MidnightMeeting(Actor* thisx, PlayState* play) { EnAn* this = THIS; if (this->msgEventState == 0) { - func_800B7298(play, &this->actor, PLAYER_CSMODE_WAIT); + func_800B7298(play, &this->actor, PLAYER_CSACTION_WAIT); play->nextEntrance = ENTRANCE(STOCK_POT_INN, 3); gSaveContext.nextCutsceneIndex = 0; play->transitionTrigger = TRANS_TRIGGER_START; From df1b5e66a6eea7fee78b4d061693d7c6a54735b8 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 29 Oct 2023 09:01:21 -0300 Subject: [PATCH 62/78] cleanup --- src/overlays/actors/ovl_En_An/z_en_an.c | 138 ++++++++++++++++-------- src/overlays/actors/ovl_En_An/z_en_an.h | 5 +- 2 files changed, 93 insertions(+), 50 deletions(-) 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 c896148eb..5862b3e29 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -854,6 +854,7 @@ Actor* EnAn_FindActor(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId return foundActor; } +// Name after ENAN_8000 Actor* func_80B53A7C(EnAn* this, PlayState* play, u8 actorCategory, s16 actorId) { Actor* foundActor = NULL; @@ -1175,7 +1176,6 @@ void EnAn_UpdateFace(EnAn* this) { if (this->stateFlags & ENAN_STATE_UPDATE_EYES) { if (DECR(this->eyeTimer) == 0) { - // default case doesn't match switch (this->faceIndex) { case ENAN_FACE_2: case ENAN_FACE_4: @@ -1325,6 +1325,9 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) gSPSegment(POLY_OPA_DISP++, 0x06, play->objectCtx.slots[originalObjectSlot].segment); } break; + + default: + break; } Matrix_Pop(); @@ -1415,6 +1418,9 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { ret = true; this->msgEventState++; break; + + default: + break; } return ret; @@ -1459,6 +1465,9 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { ret = true; this->msgEventState++; break; + + default: + break; } return ret; @@ -1504,6 +1513,9 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { ret = 1; this->msgEventState++; break; + + default: + break; } return ret; @@ -1522,12 +1534,13 @@ s32 EnAn_MsgEvent_MidnightMeeting(Actor* thisx, PlayState* play) { gSaveContext.nextTransitionType = TRANS_TYPE_FADE_BLACK_SLOW; this->msgEventState++; } + return 0; } s32 EnAn_MsgEvent_Cooking(Actor* thisx, PlayState* play) { EnAn* this = THIS; - s32 sp20 = false; + s32 ret = false; switch (this->msgEventState) { case 0x0: @@ -1539,7 +1552,7 @@ s32 EnAn_MsgEvent_Cooking(Actor* thisx, PlayState* play) { case 0x3: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { this->msgEventState++; - sp20 = true; + ret = true; } break; @@ -1547,9 +1560,12 @@ s32 EnAn_MsgEvent_Cooking(Actor* thisx, PlayState* play) { EnAn_ChangeAnim(this, play, ENAN_ANIM_TASTE_END); this->msgEventState++; break; + + default: + break; } - return sp20; + return ret; } s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { @@ -1577,6 +1593,9 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { ret = true; this->msgEventState++; break; + + default: + break; } return ret; @@ -1798,29 +1817,29 @@ s32 EnAn_IsCouplesMaskCsPlaying(EnAn* this, PlayState* play) { } void EnAn_UpdateHeadRot(EnAn* this) { - Actor* temp_v0_2; - Vec3f sp40; - Vec3f sp34; + Actor* lookAtActor; + Vec3f lookAtPos; + Vec3f pos; Player* player; - Math_Vec3f_Copy(&sp40, &this->lookAtActor->world.pos); - Math_Vec3f_Copy(&sp34, &this->actor.world.pos); - Math_ApproachS(&this->headRotY, Math_Vec3f_Yaw(&sp34, &sp40) - this->actor.shape.rot.y, 4, 0x2AA8); + Math_Vec3f_Copy(&lookAtPos, &this->lookAtActor->world.pos); + Math_Vec3f_Copy(&pos, &this->actor.world.pos); + Math_ApproachS(&this->headRotY, Math_Vec3f_Yaw(&pos, &lookAtPos) - this->actor.shape.rot.y, 4, 0x2AA8); this->headRotY = CLAMP(this->headRotY, -0x1FFE, 0x1FFE); - Math_Vec3f_Copy(&sp34, &this->actor.focus.pos); + Math_Vec3f_Copy(&pos, &this->actor.focus.pos); - temp_v0_2 = this->lookAtActor; - if (temp_v0_2->id == ACTOR_PLAYER) { - player = (Player*)temp_v0_2; + lookAtActor = this->lookAtActor; + if (lookAtActor->id == ACTOR_PLAYER) { + player = (Player*)lookAtActor; - sp40.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; + lookAtPos.y = player->bodyPartsPos[PLAYER_BODYPART_HEAD].y + 3.0f; } else { - Math_Vec3f_Copy(&sp40, &temp_v0_2->focus.pos); + Math_Vec3f_Copy(&lookAtPos, &lookAtActor->focus.pos); } - Math_ApproachS(&this->headRotZ, Math_Vec3f_Pitch(&sp34, &sp40), 4, 0x2AA8); + Math_ApproachS(&this->headRotZ, Math_Vec3f_Pitch(&pos, &lookAtPos), 4, 0x2AA8); this->headRotZ = CLAMP(this->headRotZ, -0x1554, 0x1554); } @@ -2103,7 +2122,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { switch (textId) { case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" this->savedFaceIndex = ENAN_FACE_0; - /* fallthrough */ + FALLTHROUGH; case 0x28A5: // "Visit us again in the future" case 0x28AA: // "One moment please" case 0x28F8: // "We'll go to Romani Ranch to take refuge" @@ -2169,7 +2188,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28EC: // "Should I wait?" this->savedFaceIndex = ENAN_FACE_5; - /* fallthrough */ + FALLTHROUGH; case 0x28DC: // "Thank you" case 0x28EB: // "I'm afraid to meet him..." case 0x28F2: // "I wonder if Kafei is really at Cremia's" @@ -2188,6 +2207,9 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { this->faceIndex = ENAN_FACE_7; this->eyeTimer = 8; break; + + default: + break; } } @@ -2378,7 +2400,7 @@ s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* sched } this->doorTimeTotalDiff = scheduleOutput->time1 - scheduleOutput->time0; - this->var1.doorTimeProgress = now - scheduleOutput->time0; + this->schState.doorTimeProgress = now - scheduleOutput->time0; switch (scheduleOutput->result) { case ANJU_SCH_DOOR_27: @@ -2393,6 +2415,9 @@ s32 EnAn_ProcessSchedule_Door(EnAn* this, PlayState* play, ScheduleOutput* sched this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; + + default: + break; } switch (scheduleOutput->result) { @@ -2485,13 +2510,16 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; + + default: + break; } switch (scheduleOutput->result) { case ANJU_SCH_WALKING_42: case ANJU_SCH_WALKING_43: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - /* fallthrough */ + FALLTHROUGH; case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK_WITH_TRAY); @@ -2534,7 +2562,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_49: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; - /* fallthrough */ + FALLTHROUGH; default: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; @@ -2615,15 +2643,15 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s switch (scheduleOutput->result) { case ANJU_SCH_WAITING_CLOSING_TIME: this->actor.world.rot.y += 0x7FF8; - /* fallthrough */ + FALLTHROUGH; case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->var1.followScheduleState = 0; + this->schState.followScheduleState = 0; this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; if (scheduleOutput->result == ANJU_SCH_RECEPTIONIST_IDLE) { - this->unk_374 = 70.0f; + this->offerRange = 70.0f; } break; @@ -2636,10 +2664,10 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.world.rot.y += 0x7FF8; this->actor.shape.rot.y = this->actor.world.rot.y; - this->var1.laundryPoolState = 4; + this->schState.laundryPoolState = 4; } else { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_WALK); - this->var1.laundryPoolState = 0; + this->schState.laundryPoolState = 0; } this->savedFaceIndex = ENAN_FACE_2; @@ -2653,7 +2681,11 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_CHOPSTICKS; break; + + default: + break; } + ret = true; } @@ -2705,6 +2737,9 @@ s32 EnAn_ProcessSchedule_StaffRoom(EnAn* this, PlayState* play, ScheduleOutput* this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; break; + + default: + break; } this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; @@ -2736,7 +2771,7 @@ s32 EnAn_ProcessScheduleOutput(EnAn* this, PlayState* play, ScheduleOutput* sche this->savedFaceIndex = ENAN_FACE_0; this->faceIndex = ENAN_FACE_0; this->eyeTimer = 8; - this->unk_374 = 40.0f; + this->offerRange = 40.0f; switch (scheduleOutput->result) { case ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN: @@ -2852,23 +2887,23 @@ s32 EnAn_HandleSch_Door(EnAn* this, PlayState* play) { if (!SubS_InCsMode(play) && (this->timePathTimeSpeed != 0)) { if ((door != NULL) && (door->knobDoor.dyna.actor.update != NULL)) { // Tell the door actor to be open while passing through it and which orientation - if ((this->var1.doorTimeProgress / (f32)this->doorTimeTotalDiff) <= 0.9f) { + if ((this->schState.doorTimeProgress / (f32)this->doorTimeTotalDiff) <= 0.9f) { door->openTimer = this->doorOpenTimer; } else { door->openTimer = 0; } } - this->var1.doorTimeProgress = CLAMP(this->var1.doorTimeProgress, 0, this->doorTimeTotalDiff); + this->schState.doorTimeProgress = CLAMP(this->schState.doorTimeProgress, 0, this->doorTimeTotalDiff); distance = Math_Vec3f_DistXZ(&this->doorEntrancePos, &this->doorExitPos) / this->doorTimeTotalDiff; sp38.x = 0.0f; sp38.y = 0.0f; - sp38.z = this->var1.doorTimeProgress * distance; + sp38.z = this->schState.doorTimeProgress * distance; Lib_Vec3f_TranslateAndRotateY(&this->doorEntrancePos, this->actor.world.rot.y, &sp38, &this->actor.world.pos); - this->var1.doorTimeProgress += this->timePathTimeSpeed; + this->schState.doorTimeProgress += this->timePathTimeSpeed; if (Animation_OnFrame(&this->skelAnime, 3.0f) || Animation_OnFrame(&this->skelAnime, 15.0f)) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } @@ -2965,6 +3000,9 @@ s32 EnAn_HandleSch_80B572D4(EnAn* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_SWEEP); } break; + + default: + break; } return 0; @@ -2974,10 +3012,10 @@ s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { s16 worldRot; s16 shapeRot; - switch (this->var1.laundryPoolState) { + switch (this->schState.laundryPoolState) { case 0x0: this->actor.world.rot.y += 0x7FF8; - this->var1.laundryPoolState++; + this->schState.laundryPoolState++; break; case 0x1: @@ -2987,13 +3025,13 @@ s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { Math_Vec3s_Copy(&this->actor.shape.rot, &this->actor.world.rot); EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_SIT); this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; - this->var1.laundryPoolState++; + this->schState.laundryPoolState++; } break; case 0x2: if (Animation_OnFrame(&this->skelAnime, this->skelAnime.endFrame)) { - this->var1.laundryPoolState++; + this->schState.laundryPoolState++; } break; @@ -3007,7 +3045,10 @@ s32 EnAn_HandleSch_LaundryPool(EnAn* this, PlayState* play) { case 0x4: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); - this->var1.laundryPoolState++; + this->schState.laundryPoolState++; + break; + + default: break; } @@ -3124,6 +3165,9 @@ void EnAn_HandleSchedule(EnAn* this, PlayState* play) { case ANJU_SCH_WALKING_63: EnAn_HandleSch_FollowTimePath(this, play); break; + + default: + break; } Math_ApproachS(&this->actor.shape.rot.y, this->actor.world.rot.y, 3, 0x2AA8); @@ -3206,15 +3250,15 @@ void EnAn_Talk(EnAn* this, PlayState* play) { if ((this->lookAtActor != NULL) && (this->lookAtActor->update != NULL)) { // Rotate towards actor - s32 temp; - Vec3f sp38; - Vec3f sp2C; + s16 yaw; + Vec3f lookAtPos; + Vec3f pos; - Math_Vec3f_Copy(&sp38, &this->lookAtActor->world.pos); - Math_Vec3f_Copy(&sp2C, &this->actor.world.pos); - temp = Math_Vec3f_Yaw(&sp2C, &sp38); + Math_Vec3f_Copy(&lookAtPos, &this->lookAtActor->world.pos); + Math_Vec3f_Copy(&pos, &this->actor.world.pos); + yaw = Math_Vec3f_Yaw(&pos, &lookAtPos); - Math_ApproachS(&this->actor.shape.rot.y, temp, 4, 0x2AA8); + Math_ApproachS(&this->actor.shape.rot.y, yaw, 4, 0x2AA8); } } @@ -3345,7 +3389,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { EnAn_UpdateSkel(this, play); EnAn_UpdateFace(this); EnAn_UpdateAttention(this); - SubS_Offer(&this->actor, play, this->unk_374, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); + SubS_Offer(&this->actor, play, this->offerRange, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); if (!(this->stateFlags & ENAN_STATE_IGNORE_GRAVITY)) { Actor_MoveWithGravity(&this->actor); @@ -3723,8 +3767,8 @@ void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { GfxPrint_SetPos(printer, x - 0, ++y); GfxPrint_Printf(printer, "cue:%i", this->cueId); - // GfxPrint_SetPos(printer, x-2, ++y); - // GfxPrint_Printf(printer, "! 374:%f", this->unk_374); + // GfxPrint_SetPos(printer, x-7, ++y); + // GfxPrint_Printf(printer, "offerRange:%f", this->offerRange); // GfxPrint_SetPos(printer, x-6, ++y); // GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 707670c07..3114ab3dc 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -12,7 +12,6 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF) #define ENAN_8000 0x8000 -//#define ENAN_GET_8000(thisx) (((thisx)->params & 0x8000) >> 0xF) #define ENAN_STATE_8 (1 << 3) // path related #define ENAN_STATE_REACHED_PATH_END (1 << 4) @@ -66,13 +65,13 @@ typedef struct EnAn { /* 0x364 */ u8 cueId; /* 0x368 */ f32 unk_368; /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; - /* 0x374 */ f32 unk_374; + /* 0x374 */ f32 offerRange; /* 0x378 */ s16 doorTimeTotalDiff; // Time difference between the point before going through a door and after going through it /* 0x37A */ union { s16 doorTimeProgress; // schedule time diff s16 laundryPoolState; s16 followScheduleState; // unused - } var1; + } schState; /* 0x37C */ s16 headRotZ; /* 0x37E */ s16 headRotY; /* 0x380 */ UNK_TYPE1 unk_380[0x4]; From 6f2a31579526037b9167ed7e00dfefe26d93e1d1 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 29 Oct 2023 09:37:33 -0300 Subject: [PATCH 63/78] remove debug stuff --- src/overlays/actors/ovl_En_An/z_en_an.c | 477 ------------------------ 1 file changed, 477 deletions(-) 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 5862b3e29..50acb5663 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -17,9 +17,6 @@ #define THIS ((EnAn*)thisx) -// Change this to non-zero to enable debug printing -#define DEBUG_PRINT 0 - void EnAn_Init(Actor* thisx, PlayState* play); void EnAn_Destroy(Actor* thisx, PlayState* play); void EnAn_Update(Actor* thisx, PlayState* play); @@ -3309,12 +3306,6 @@ void EnAn_HandleCouplesMaskCutscene(EnAn* this, PlayState* play) { } } -#if DEBUG_PRINT -s32 clockTimePaused = false; -u8 weekEventRegCopy[100]; -s32 downPressed = false; -#endif - void EnAn_Init(Actor* thisx, PlayState* play) { s32 pad; EnAn* this = THIS; @@ -3347,19 +3338,6 @@ void EnAn_Init(Actor* thisx, PlayState* play) { } this->actionFunc = EnAn_Initialize; - -#if DEBUG_PRINT - // SET_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES); - // SET_WEEKEVENTREG(WEEKEVENTREG_ESCAPED_SAKONS_HIDEOUT); - - Lib_MemCpy(weekEventRegCopy, gSaveContext.save.saveInfo.weekEventReg, - sizeof(gSaveContext.save.saveInfo.weekEventReg)); - - // gSaveContext.save.day = 3; - // if (gSaveContext.save.time > CLOCK_TIME(5, 0)) { - // gSaveContext.save.time = CLOCK_TIME(3, 0); - // } -#endif } void EnAn_Destroy(Actor* thisx, PlayState* play) { @@ -3398,49 +3376,6 @@ void EnAn_Update(Actor* thisx, PlayState* play) { EnAn_UpdateCollider(this, play); } - -#if DEBUG_PRINT - { - Input* input = CONTROLLER1(&play->state); - - if (CHECK_BTN_ALL(input->press.button, BTN_DUP)) { - clockTimePaused = !clockTimePaused; - } - - if (clockTimePaused) { - gSaveContext.save.time -= R_TIME_SPEED; - if (R_TIME_SPEED != 0) { - gSaveContext.save.time -= gSaveContext.save.timeSpeedOffset; - } - } - - if (CHECK_BTN_ALL(input->press.button, BTN_DRIGHT)) { - gSaveContext.save.time += CLOCK_TIME(0, 10); - } - if (CHECK_BTN_ALL(input->press.button, BTN_DLEFT)) { - if (gSaveContext.save.time >= CLOCK_TIME(6, 0)) { - if (gSaveContext.save.time - CLOCK_TIME(0, 10) < CLOCK_TIME(6, 0)) { - gSaveContext.save.day -= 2; - } - } - gSaveContext.save.time -= CLOCK_TIME(0, 10); - } - } -#endif - -#if DEBUG_PRINT - { - Input* input = CONTROLLER1(&play->state); - - if (CHECK_BTN_ALL(input->press.button, BTN_DDOWN)) { - downPressed = !downPressed; - } - - if (downPressed) { - this->stateFlags &= ~ENAN_STATE_8; - } - } -#endif } void EnAn_PostLimbDraw(PlayState* play, s32 limbIndex, Gfx** dList, Vec3s* rot, Actor* thisx) { @@ -3492,414 +3427,6 @@ void EnAn_TransformLimbDraw(PlayState* play, s32 limbIndex, Actor* thisx) { } } -#if DEBUG_PRINT -#define BOOLSTR(x) ((x) ? "true" : "false") - -#define DEC_TIME_AUX(t) ((t) * (24 * 60) / 0x10000) -#define DEC_TIME(t) ((DEC_TIME_AUX(t) / 60) * 100 + (DEC_TIME_AUX(t) % 60)) - -typedef struct SymbolDebug { - void* address; - const char* const name; -} SymbolDebug; - -#define SYMBOL_DEBUG(sym) \ - { &sym, #sym } - -const SymbolDebug sAnjuFunctions[] = { - SYMBOL_DEBUG(EnAn_InitializeObjectSlots), - SYMBOL_DEBUG(EnAn_FindActor), - SYMBOL_DEBUG(func_80B53A7C), - SYMBOL_DEBUG(EnAn_FindDoor), - SYMBOL_DEBUG(EnAn_UpdateSkel), - SYMBOL_DEBUG(EnAn_ChangeAnim), - SYMBOL_DEBUG(EnAn_UpdateCollider), - SYMBOL_DEBUG(EnAn_UpdateFace), - SYMBOL_DEBUG(EnAn_DrawAccessory), - SYMBOL_DEBUG(EnAn_ChangeCutscene), - SYMBOL_DEBUG(EnAn_GetCsId), - SYMBOL_DEBUG(EnAn_GetChildCsId), - SYMBOL_DEBUG(EnAn_MsgEvent_ReceiveLetterFromPostman), - SYMBOL_DEBUG(EnAn_MsgEvent_AttendGoron), - SYMBOL_DEBUG(EnAn_MsgEvent_GiveLunchToGranny), - SYMBOL_DEBUG(EnAn_MsgEvent_MidnightMeeting), - SYMBOL_DEBUG(EnAn_MsgEvent_Cooking), - SYMBOL_DEBUG(EnAn_MsgEvent_LaundryPool), - SYMBOL_DEBUG(EnAn_GetMsgEventScript), - SYMBOL_DEBUG(EnAn_CheckTalk), - SYMBOL_DEBUG(EnAn_IsCouplesMaskCsPlaying), - SYMBOL_DEBUG(EnAn_UpdateHeadRot), - SYMBOL_DEBUG(EnAn_UpdateAttention), - SYMBOL_DEBUG(EnAn_ChooseAnimAfterTalking), - SYMBOL_DEBUG(EnAn_DialogueFunc_80B556F8), - SYMBOL_DEBUG(EnAn_DialogueFunc_80B557AC), - SYMBOL_DEBUG(EnAn_DialogueFunc_80B55860), - SYMBOL_DEBUG(EnAn_HandleDialogue), - SYMBOL_DEBUG(EnAn_FindLookAtActor), - SYMBOL_DEBUG(func_80B55D98), - SYMBOL_DEBUG(EnAn_IsFacingAndNearPlayer), - SYMBOL_DEBUG(func_80B55F8C), - SYMBOL_DEBUG(EnAn_ProcessSchedule_ReceiveLetterFromPostman), - SYMBOL_DEBUG(EnAn_ProcessSchedule_AttendGoron), - SYMBOL_DEBUG(EnAn_ProcessSchedule_GiveLunchToGranny), - SYMBOL_DEBUG(EnAn_ProcessSchedule_Door), - SYMBOL_DEBUG(EnAn_ProcessSchedule_Walking), - SYMBOL_DEBUG(EnAn_ProcessSchedule_Sweeping), - SYMBOL_DEBUG(EnAn_ProcessSchedule_80B56880), - SYMBOL_DEBUG(EnAn_ProcessSchedule_Ranch), - SYMBOL_DEBUG(EnAn_ProcessSchedule_StaffRoom), - SYMBOL_DEBUG(EnAn_ProcessSchedule_WithKafei), - SYMBOL_DEBUG(EnAn_ProcessScheduleOutput), - SYMBOL_DEBUG(EnAn_HandleSch_InteractActor), - SYMBOL_DEBUG(EnAn_HandleSch_Door), - SYMBOL_DEBUG(EnAn_HandleSch_FollowTimePath), - SYMBOL_DEBUG(EnAn_HandleSch_80B572D4), - SYMBOL_DEBUG(EnAn_HandleSch_LaundryPool), - SYMBOL_DEBUG(EnAn_HandleSch_WaitingForKafei), - SYMBOL_DEBUG(EnAn_HandleSch_WithKafei), - SYMBOL_DEBUG(EnAn_HandleSchedule), - SYMBOL_DEBUG(EnAn_Initialize), - SYMBOL_DEBUG(EnAn_FollowSchedule), - SYMBOL_DEBUG(EnAn_Talk), - SYMBOL_DEBUG(EnAn_HandleCouplesMaskCutscene), - SYMBOL_DEBUG(EnAn_Init), - SYMBOL_DEBUG(EnAn_Destroy), - SYMBOL_DEBUG(EnAn_Update), - SYMBOL_DEBUG(EnAn_PostLimbDraw), - SYMBOL_DEBUG(EnAn_TransformLimbDraw), - SYMBOL_DEBUG(EnAn_Draw), -}; - -const SymbolDebug sAnjuData[] = { - SYMBOL_DEBUG(sScheduleScript), - SYMBOL_DEBUG(sSearchTimePathLimit), - SYMBOL_DEBUG(sAnjuMsgScript_SchReceiveLetterFromPostman), - SYMBOL_DEBUG(sAnjuMsgScript_SchAttendGoron), - SYMBOL_DEBUG(sAnjuMsgScript_SchGiveLunchToGranny), - SYMBOL_DEBUG(sAnjuMsgScript_ReceptionistDay1), - SYMBOL_DEBUG(sAnjuMsgScript_InnCloseTime), - SYMBOL_DEBUG(sAnjuMsgScript_80B58944), - SYMBOL_DEBUG(sAnjuMsgScript_80B5894C), - SYMBOL_DEBUG(sAnjuMsgScript_SchCooking), - SYMBOL_DEBUG(sAnjuMsgScript_80B58980), - SYMBOL_DEBUG(sAnjuMsgScript_SchSweeping), - SYMBOL_DEBUG(sAnjuMsgScript_80B58994), - SYMBOL_DEBUG(sAnjuMsgScript_SchRanch), - SYMBOL_DEBUG(sAnjuMsgScript_SchMidnightMeeting), - SYMBOL_DEBUG(sAnjuMsgScript_80B589FC), - SYMBOL_DEBUG(sAnjuMsgScript_DekuDefault), - SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolDeku), - SYMBOL_DEBUG(sAnjuMsgScript_Receptionist), - SYMBOL_DEBUG(sAnjuMsgScript_80B58A44), - SYMBOL_DEBUG(sAnjuMsgScript_80B58ABC), - SYMBOL_DEBUG(sAnjuMsgScript_80B58AC4), - SYMBOL_DEBUG(sAnjuMsgScript_SchWaitingForKafei), - SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolDefault), - SYMBOL_DEBUG(sAnjuMsgScript_SchLaundryPoolKafeiMask), - SYMBOL_DEBUG(sAnjuMsgScript_80B58B7C), - SYMBOL_DEBUG(sAnjuMsgScript_80B58B88), - SYMBOL_DEBUG(sAnjuMsgScript_SchWithKafei), - SYMBOL_DEBUG(En_An_InitVars), - SYMBOL_DEBUG(sCylinderInit), - SYMBOL_DEBUG(sColChkInfoInit), - SYMBOL_DEBUG(sAnimationInfo), - // SYMBOL_DEBUG(D_80B58E34), - // SYMBOL_DEBUG(sMouthIndices), - // SYMBOL_DEBUG(D_80B58E54), - // SYMBOL_DEBUG(D_80B58E60), - // SYMBOL_DEBUG(D_80B58E68), - // SYMBOL_DEBUG(D_80B58E74), - // SYMBOL_DEBUG(D_80B58E7C), - // SYMBOL_DEBUG(D_80B58E88), - // SYMBOL_DEBUG(D_80B58E90), - // SYMBOL_DEBUG(D_80B58E9C), - // SYMBOL_DEBUG(D_80B58EA4), - // SYMBOL_DEBUG(D_80B58EAC), - // SYMBOL_DEBUG(D_80B58ED4), - // SYMBOL_DEBUG(sMouthTextures), - // SYMBOL_DEBUG(sEyeTextures), -}; - -const char* EnAn_GetSymbolName(void* address) { - s32 i; - - if (address == NULL) { - return "(null)"; - } - - for (i = 0; i < ARRAY_COUNT(sAnjuFunctions); i++) { - if (address == sAnjuFunctions[i].address) { - return &sAnjuFunctions[i].name[5]; - } - } - - for (i = 0; i < ARRAY_COUNT(sAnjuData); i++) { - if (address == sAnjuData[i].address) { - return sAnjuData[i].name; - } - } - - return "(not_found)"; -} - -void EnAn_PrintStruct(EnAn* this, PlayState* play, GfxPrint* printer) { - s32 x; - s32 y; - s32 i; - - GfxPrint_SetColor(printer, 255, 255, 255, 255); - - y = 0; - - GfxPrint_SetPos(printer, 29, ++y); - GfxPrint_Printf(printer, "gTime:x%X", gSaveContext.save.time); - - GfxPrint_SetPos(printer, 29, ++y); - GfxPrint_Printf(printer, "gTime:%02i:%02i", DEC_TIME_AUX(gSaveContext.save.time) / 60, - DEC_TIME_AUX(gSaveContext.save.time) % 60); - - if (clockTimePaused) { - GfxPrint_SetPos(printer, 28, ++y); - GfxPrint_Printf(printer, "clock paused"); - - GfxPrint_SetPos(printer, 28, ++y); - GfxPrint_Printf(printer, "offset:%X", gSaveContext.save.timeSpeedOffset); - - GfxPrint_SetPos(printer, 29, ++y); - GfxPrint_Printf(printer, "speed:%X", R_TIME_SPEED); - } - - x = 0; - y = 7; - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " action:%s", EnAn_GetSymbolName(this->actionFunc)); - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " dialogue:%s", EnAn_GetSymbolName(this->dialogueFunc)); - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " msgEvent:%s", EnAn_GetSymbolName(this->msgEventFunc)); - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, "msgScript:%s", EnAn_GetSymbolName(this->msgEventScript)); - - ++y; - - { - static const char* const scheduleNames[ANJU_SCH_MAX] = { - "ANJU_SCH_NONE", - "ANJU_SCH_WAITING_FOR_KAFEI", - "ANJU_SCH_2", - "ANJU_SCH_LAUNDRY_POOL_SIT", - "ANJU_SCH_4", - "ANJU_SCH_5", - "ANJU_SCH_6", - "ANJU_SCH_7", - "ANJU_SCH_8", - "ANJU_SCH_9", - "ANJU_SCH_10", - "ANJU_SCH_11", - "ANJU_SCH_RANCH", - "ANJU_SCH_13", - "ANJU_SCH_COOKING", - "ANJU_SCH_15", - "ANJU_SCH_RECEIVE_LETTER_FROM_POSTMAN", - "ANJU_SCH_ATTEND_GORON", - "ANJU_SCH_RECEPTIONIST_IDLE", - "ANJU_SCH_WAITING_CLOSING_TIME", - "ANJU_SCH_20", - "ANJU_SCH_GIVE_LUNCH_TO_GRANNY", - "ANJU_SCH_SWEEPING", - "ANJU_SCH_MIDNIGHT_MEETING", - "ANJU_SCH_TALKING_WITH_MOM", - "ANJU_SCH_WITH_KAFEI", - "ANJU_SCH_DOOR_26", - "ANJU_SCH_DOOR_27", - "ANJU_SCH_DOOR_28", - "ANJU_SCH_DOOR_29", - "ANJU_SCH_DOOR_30", - "ANJU_SCH_DOOR_31", - "ANJU_SCH_DOOR_32", - "ANJU_SCH_DOOR_33", - "ANJU_SCH_DOOR_34", - "ANJU_SCH_DOOR_35", - "ANJU_SCH_DOOR_36", - "ANJU_SCH_DOOR_37", - "ANJU_SCH_DOOR_38", - "ANJU_SCH_DOOR_39", - "ANJU_SCH_WALKING_40", - "ANJU_SCH_41", - "ANJU_SCH_WALKING_42", - "ANJU_SCH_WALKING_43", - "ANJU_SCH_WALKING_44", - "ANJU_SCH_WALKING_45", - "ANJU_SCH_WALKING_46", - "ANJU_SCH_WALKING_47", - "ANJU_SCH_WALKING_48", - "ANJU_SCH_WALKING_49", - "ANJU_SCH_WALKING_50", - "ANJU_SCH_WALKING_51", - "ANJU_SCH_WALKING_52", - "ANJU_SCH_WALKING_53", - "ANJU_SCH_WALKING_54", - "ANJU_SCH_WALKING_55", - "ANJU_SCH_WALKING_56", - "ANJU_SCH_WALKING_57", - "ANJU_SCH_WALKING_58", - "ANJU_SCH_WALKING_59", - "ANJU_SCH_WALKING_60", - "ANJU_SCH_WALKING_61", - "ANJU_SCH_WALKING_62", - "ANJU_SCH_WALKING_63", - }; - - GfxPrint_SetPos(printer, x - 0, ++y); - GfxPrint_Printf(printer, " schedule:%s", &scheduleNames[this->scheduleResult][9]); - } - - x = 31; - y = 3 + 17; - - GfxPrint_SetPos(printer, x - 3, ++y); - GfxPrint_Printf(printer, "textId:%X", this->prevTextId); - - GfxPrint_SetPos(printer, x - 0, ++y); - GfxPrint_Printf(printer, "cue:%i", this->cueId); - - // GfxPrint_SetPos(printer, x-7, ++y); - // GfxPrint_Printf(printer, "offerRange:%f", this->offerRange); - - // GfxPrint_SetPos(printer, x-6, ++y); - // GfxPrint_Printf(printer, "savedFace:%d", this->savedFaceIndex); - - GfxPrint_SetPos(printer, x - 1, ++y); - GfxPrint_Printf(printer, "face:%d", this->faceIndex); - - // GfxPrint_SetPos(printer, x-5, ++y); - // GfxPrint_Printf(printer, "eyeTimer:%d", this->eyeTimer); - - GfxPrint_SetPos(printer, x - 0, ++y); - GfxPrint_Printf(printer, "eye:%d", this->eyeTexIndex); - - GfxPrint_SetPos(printer, x - 2, ++y); - GfxPrint_Printf(printer, "mouth:%d", this->mouthTexIndex); - - GfxPrint_SetPos(printer, x - 1, ++y); - GfxPrint_Printf(printer, "anim:%d", this->animIndex); - - GfxPrint_SetPos(printer, x - 2, ++y); - GfxPrint_Printf(printer, "! 3C0:%s", BOOLSTR(this->unk_3C0)); - - GfxPrint_SetColor(printer, 120, 120, 180, 255); - - y = 0; - { - static const char* const subsFlags[8] = { - "SUBS_OFFER_MODE_NONE", - "SUBS_OFFER_MODE_GET_ITEM", - "SUBS_OFFER_MODE_NEARBY", - "SUBS_OFFER_MODE_ONSCREEN", - "SUBS_OFFER_MODE_AUTO", - "SUBS_OFFER_MODE_AUTO_TARGETED", - "SUBS_OFFER_MODE_AUTO_NEARBY_ONSCREEN", - "SUBS_OFFER_MODE_INVALID", - }; - s32 index = this->stateFlags & SUBS_OFFER_MODE_MASK; - - GfxPrint_SetPos(printer, 1, ++y); - GfxPrint_Printf(printer, "SUBS_%s", &subsFlags[index][16]); - } - - for (i = 3; i < 16; i++) { - static const char* const flagsMap[16] = { - "ENAN_STATE_PLACEHOLDER_1", "ENAN_STATE_PLACEHOLDER_2", - "ENAN_STATE_PLACEHOLDER_4", "ENAN_STATE_8", - "ENAN_STATE_REACHED_PATH_END", "ENAN_STATE_ENGAGED", - "ENAN_STATE_IGNORE_GRAVITY", "ENAN_STATE_FACE_TARGET", - "ENAN_STATE_UPDATE_EYES", "ENAN_STATE_LOST_ATTENTION", - "ENAN_STATE_TALKING", "ENAN_STATE_DRAW_TRAY", - "ENAN_STATE_DRAW_UMBRELLA", "ENAN_STATE_DRAW_BROOM", - "ENAN_STATE_DRAW_KAFEI_MASK", "ENAN_STATE_DRAW_CHOPSTICKS", - }; - - if (this->stateFlags & (1 << i)) { - GfxPrint_SetPos(printer, 1, ++y); - GfxPrint_Printf(printer, "%s", &flagsMap[i][11]); - } - } - - GfxPrint_SetColor(printer, 255, 255, 255, 255); - - y = 20; - x = 3; - - GfxPrint_SetPos(printer, x - 2, ++y); - GfxPrint_Printf(printer, "weekEvent"); - - for (i = 0; i < ARRAY_COUNT(weekEventRegCopy); i++) { - if (weekEventRegCopy[i] != gSaveContext.save.saveInfo.weekEventReg[i]) { - u8 copy = weekEventRegCopy[i]; - u8 real = gSaveContext.save.saveInfo.weekEventReg[i]; - u8 diff = copy ^ real; - s32 j; - - for (j = 0; j < 8; j++) { - u8 mask = (1 << j); - - if (diff & mask) { - if (real & mask) { - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, "SET [%i] & %X", i, mask); - } else { - } - } - } - } - } - - x = 0; - y = 27; - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, "builtAddr:%X", SEGMENT_START(ovl_En_An)); - - GfxPrint_SetPos(printer, x, ++y); - GfxPrint_Printf(printer, " ovlAddr:%X", EnAn_InitializeObjectSlots); -} - -void EnAn_DrawStruct(EnAn* this, PlayState* play) { - GraphicsContext* gfxCtx = play->state.gfxCtx; - GfxPrint printer; - Gfx* gfxRef; - Gfx* gfx; - - OPEN_DISPS(gfxCtx); - - Gfx_SetupDL28_Opa(gfxCtx); - - GfxPrint_Init(&printer); - - gfxRef = POLY_OPA_DISP; - gfx = Graph_GfxPlusOne(gfxRef); - gSPDisplayList(DEBUG_DISP++, gfx); - - GfxPrint_Open(&printer, gfx); - - EnAn_PrintStruct(this, play, &printer); - - gfx = GfxPrint_Close(&printer); - - gSPEndDisplayList(gfx++); - Graph_BranchDlist(gfxRef, gfx); - POLY_OPA_DISP = gfx; - - GfxPrint_Destroy(&printer); - - CLOSE_DISPS(gfxCtx); -} -#endif - void EnAn_Draw(Actor* thisx, PlayState* play) { EnAn* this = THIS; @@ -3933,8 +3460,4 @@ void EnAn_Draw(Actor* thisx, PlayState* play) { CLOSE_DISPS(play->state.gfxCtx); } - -#if DEBUG_PRINT - EnAn_DrawStruct(this, play); -#endif } From d99166705dd1a036f99eb51284af0674e5c2e5c3 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 29 Oct 2023 09:42:28 -0300 Subject: [PATCH 64/78] clean --- anju_schedule_goto.c | 1322 ----------------------- anju_schedule_ifs.c | 305 ------ assets/xml/objects/object_msmo.xml | 1 - src/overlays/actors/ovl_En_Go/z_en_go.c | 1 - 4 files changed, 1629 deletions(-) delete mode 100644 anju_schedule_goto.c delete mode 100644 anju_schedule_ifs.c diff --git a/anju_schedule_goto.c b/anju_schedule_goto.c deleted file mode 100644 index fff3d0c7b..000000000 --- a/anju_schedule_goto.c +++ /dev/null @@ -1,1322 +0,0 @@ -#include "global.h" - -#define NOW 0 - -typedef enum AnjuScheduleResult { - /* 0 */ ANJU_SCH_NONE, - /* 1 */ ANJU_SCH_1, - /* 2 */ ANJU_SCH_2, - /* 3 */ ANJU_SCH_3, - /* 4 */ ANJU_SCH_4, - /* 5 */ ANJU_SCH_5, - /* 6 */ ANJU_SCH_6, - /* 7 */ ANJU_SCH_7, - /* 8 */ ANJU_SCH_8, - /* 9 */ ANJU_SCH_9, - /* 10 */ ANJU_SCH_A, - /* 11 */ ANJU_SCH_B, - /* 12 */ ANJU_SCH_C, - /* 13 */ ANJU_SCH_D, - /* 14 */ ANJU_SCH_E, - /* 15 */ ANJU_SCH_F, - /* 16 */ ANJU_SCH_10, - /* 17 */ ANJU_SCH_11, - /* 18 */ ANJU_SCH_12, - /* 19 */ ANJU_SCH_13, - /* 20 */ ANJU_SCH_14, - /* 21 */ ANJU_SCH_15, - /* 22 */ ANJU_SCH_16, - /* 23 */ ANJU_SCH_17, - /* 24 */ ANJU_SCH_18, - /* 25 */ ANJU_SCH_19, - /* 26 */ ANJU_SCH_1A, - /* 27 */ ANJU_SCH_1B, - /* 28 */ ANJU_SCH_1C, - /* 29 */ ANJU_SCH_1D, - /* 30 */ ANJU_SCH_1E, - /* 31 */ ANJU_SCH_1F, - /* 32 */ ANJU_SCH_20, - /* 33 */ ANJU_SCH_21, - /* 34 */ ANJU_SCH_22, - /* 35 */ ANJU_SCH_23, - /* 36 */ ANJU_SCH_24, - /* 37 */ ANJU_SCH_25, - /* 38 */ ANJU_SCH_26, - /* 39 */ ANJU_SCH_27, - /* 40 */ ANJU_SCH_28, - /* 41 */ ANJU_SCH_29, - /* 42 */ ANJU_SCH_2A, - /* 43 */ ANJU_SCH_2B, - /* 44 */ ANJU_SCH_2C, - /* 45 */ ANJU_SCH_2D, - /* 46 */ ANJU_SCH_2E, - /* 47 */ ANJU_SCH_2F, - /* 48 */ ANJU_SCH_30, - /* 49 */ ANJU_SCH_31, - /* 50 */ ANJU_SCH_32, - /* 51 */ ANJU_SCH_33, - /* 52 */ ANJU_SCH_34, - /* 53 */ ANJU_SCH_35, - /* 54 */ ANJU_SCH_36, - /* 55 */ ANJU_SCH_37, - /* 56 */ ANJU_SCH_38, - /* 57 */ ANJU_SCH_39, - /* 58 */ ANJU_SCH_3A, - /* 59 */ ANJU_SCH_3B, - /* 60 */ ANJU_SCH_3C, - /* 61 */ ANJU_SCH_3D, - /* 62 */ ANJU_SCH_3E, - /* 63 */ ANJU_SCH_3F, - /* 64 */ ANJU_SCH_MAX -} AnjuScheduleResult; - -void scheduleScript(PlayState* play, ScheduleOutput* output) { - /* 0x000 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(1, 0x151 - 0x005); - if (gSaveContext.save.day != 1) { - goto label_151; - } - - /* 0x005 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x150 - 0x00A); - if (play->sceneId != SCENE_YADOYA) { - goto label_150; - } - - /* 0x00A */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x14A - 0x011); - if ((6, 0) <= NOW <= (10, 55)) { - goto label_14A; - } - - /* 0x011 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x144 - 0x018); - if ((10, 55) <= NOW <= (11, 10)) { - goto label_144; - } - /* 0x018 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x13E - 0x01F); - if ((11, 10) <= NOW <= (11, 30)) { - goto label_13E; - } - /* 0x01F */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x138 - 0x026); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_138; - } - /* 0x026 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x132 - 0x02D); - if ((11, 50) <= NOW <= (11, 55)) { - goto label_132; - } - /* 0x02D */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x12C - 0x034); - if ((11, 55) <= NOW <= (12, 0)) { - goto label_12C; - } - /* 0x034 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x126 - 0x03B); - if ((12, 0) <= NOW <= (12, 15)) { - goto label_126; - } - /* 0x03B */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x120 - 0x042); - if ((12, 15) <= NOW <= (12, 20)) { - goto label_120; - } - /* 0x042 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 20, 12, 25, 0x11A - 0x049); - if ((12, 20) <= NOW <= (12, 25)) { - goto label_11A; - } - /* 0x049 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 25, 12, 55, 0x114 - 0x050); - if ((12, 25) <= NOW <= (12, 55)) { - goto label_114; - } - /* 0x050 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 55, 13, 0, 0x10E - 0x057); - if ((12, 55) <= NOW <= (13, 0)) { - goto label_10E; - } - /* 0x057 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 15, 13, 20, 0x108 - 0x05E); - if ((13, 15) <= NOW <= (13, 20)) { - goto label_108; - } - /* 0x05E */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 20, 13, 50, 0x102 - 0x065); - if ((13, 20) <= NOW <= (13, 50)) { - goto label_102; - } - /* 0x065 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(13, 50, 14, 8, 0x0FC - 0x06C); - if ((13, 50) <= NOW <= (14, 8)) { - goto label_0FC; - } - /* 0x06C */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(14, 8, 14, 18, 0x0F6 - 0x073); - if ((14, 8) <= NOW <= (14, 18)) { - goto label_0F6; - } - /* 0x073 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(14, 18, 16, 10, 0x0F0 - 0x079); - if ((14, 18) <= NOW <= (16, 10)) { - goto label_0F0; - } - /* 0x079 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 10, 16, 30, 0x0EA - 0x07F); - if ((16, 10) <= NOW <= (16, 30)) { - goto label_0EA; - } - /* 0x07F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 30, 19, 50, 0x0E4 - 0x085); - if ((16, 30) <= NOW <= (19, 50)) { - goto label_0E4; - } - /* 0x085 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x0DE - 0x08B); - if ((19, 50) <= NOW <= (20, 20)) { - goto label_0DE; - } - /* 0x08B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x0D8 - 0x091); - if ((20, 20) <= NOW <= (20, 30)) { - goto label_0D8; - } - /* 0x091 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x0D2 - 0x097); - if ((20, 30) <= NOW <= (21, 5)) { - goto label_0D2; - } - /* 0x097 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x0CC - 0x09D); - if ((21, 5) <= NOW <= (21, 10)) { - goto label_0CC; - } - - /* 0x09D */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING, 0x0A2 - 0x0A1); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - goto label_0A2; - } - - /* 0x0A1 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_0A2: - /* 0x0A2 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 10, 23, 15, 0x0C6 - 0x0A8); - if ((23, 10) <= NOW <= (23, 15)) { - goto label_0C6; - } - - /* 0x0A8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(23, 15, 0, 0, 0x0C0 - 0x0AE); - if ((23, 15) <= NOW <= (0, 0)) { - goto label_0C0; - } - - /* 0x0AE */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(0, 0, 6, 0, 0x0B5 - 0x0B4); - if ((0, 0) <= NOW <= (6, 0)) { - goto label_0B5; - } - - /* 0x0B4 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_0B5: - /* 0x0B5 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x0BF - 0x0B9); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - goto label_0BF; - } - -label_0B9: - /* 0x0B9 */ SCHEDULE_CMD_RET_TIME(0, 0, 6, 0, ANJU_SCH_17); - output->result = ANJU_SCH_17; - output->time0 = (0, 0); - output->time1 = (6, 0); - output->hasResult = true; - return; - - -label_0BF: - /* 0x0BF */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - - -label_0C0: - /* 0x0C0 */ SCHEDULE_CMD_RET_TIME(23, 15, 0, 0, ANJU_SCH_31); - output->result = ANJU_SCH_31; - output->time0 = (23, 15); - output->time1 = (0, 0); - output->hasResult = true; - return; - - -label_0C6: - /* 0x0C6 */ SCHEDULE_CMD_RET_TIME(23, 10, 23, 15, ANJU_SCH_1F); - output->result = ANJU_SCH_1F; - output->time0 = (23, 10); - output->time1 = (23, 15); - output->hasResult = true; - return; - - -label_0CC: - /* 0x0CC */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 5); - output->time1 = (21, 10); - output->hasResult = true; - return; - - -label_0D2: - /* 0x0D2 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 5); - output->hasResult = true; - return; - - -label_0D8: - /* 0x0D8 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; - return; - - -label_0DE: - /* 0x0DE */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; - return; - - -label_0E4: - /* 0x0E4 */ SCHEDULE_CMD_RET_TIME(16, 30, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (16, 30); - output->time1 = (19, 50); - output->hasResult = true; - return; - - -label_0EA: - /* 0x0EA */ SCHEDULE_CMD_RET_TIME(16, 10, 16, 30, ANJU_SCH_11); - output->result = ANJU_SCH_11; - output->time0 = (16, 10); - output->time1 = (16, 30); - output->hasResult = true; - return; - - -label_0F0: - /* 0x0F0 */ SCHEDULE_CMD_RET_TIME(14, 18, 16, 10, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (14, 18); - output->time1 = (16, 10); - output->hasResult = true; - return; - - -label_0F6: - /* 0x0F6 */ SCHEDULE_CMD_RET_TIME(14, 8, 14, 18, ANJU_SCH_10); - output->result = ANJU_SCH_10; - output->time0 = (14, 8); - output->time1 = (14, 18); - output->hasResult = true; - return; - - -label_0FC: - /* 0x0FC */ SCHEDULE_CMD_RET_TIME(13, 50, 14, 8, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (13, 50); - output->time1 = (14, 8); - output->hasResult = true; - return; - - -label_102: - /* 0x102 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output->result = ANJU_SCH_2E; - output->time0 = (13, 20); - output->time1 = (13, 50); - output->hasResult = true; - return; - - -label_108: - /* 0x108 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output->result = ANJU_SCH_1D; - output->time0 = (13, 15); - output->time1 = (13, 20); - output->hasResult = true; - return; - - -label_10E: - /* 0x10E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output->result = ANJU_SCH_1C; - output->time0 = (12, 55); - output->time1 = (13, 0); - output->hasResult = true; - return; - - -label_114: - /* 0x114 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output->result = ANJU_SCH_2D; - output->time0 = (12, 25); - output->time1 = (12, 55); - output->hasResult = true; - return; - - -label_11A: - /* 0x11A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output->result = ANJU_SCH_1B; - output->time0 = (12, 20); - output->time1 = (12, 25); - output->hasResult = true; - return; - - -label_120: - /* 0x120 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output->result = ANJU_SCH_2C; - output->time0 = (12, 15); - output->time1 = (12, 20); - output->hasResult = true; - return; - - -label_126: - /* 0x126 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output->result = ANJU_SCH_15; - output->time0 = (12, 0); - output->time1 = (12, 15); - output->hasResult = true; - return; - - -label_12C: - /* 0x12C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output->result = ANJU_SCH_2B; - output->time0 = (11, 55); - output->time1 = (12, 0); - output->hasResult = true; - return; - - -label_132: - /* 0x132 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output->result = ANJU_SCH_1A; - output->time0 = (11, 50); - output->time1 = (11, 55); - output->hasResult = true; - return; - - -label_138: - /* 0x138 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output->result = ANJU_SCH_2A; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - - -label_13E: - /* 0x13E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output->result = ANJU_SCH_E; - output->time0 = (11, 10); - output->time1 = (11, 30); - output->hasResult = true; - return; - - -label_144: - /* 0x144 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output->result = ANJU_SCH_28; - output->time0 = (10, 55); - output->time1 = (11, 10); - output->hasResult = true; - return; - - -label_14A: - /* 0x14A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (6, 0); - output->time1 = (10, 55); - output->hasResult = true; - return; - - - -label_150: - /* 0x150 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - - -label_151: - /* 0x151 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(2, 0x391 - 0x156); - if (gSaveContext.save.day != 2) { - goto label_391; - } - - /* 0x156 */ SCHEDULE_CMD_CHECK_FLAG_L(WEEKEVENTREG_HAD_MIDNIGHT_MEETING, 0x29E - 0x15B); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - goto label_29E; - } - - /* 0x15B */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x1F2 - 0x160); - if (play->sceneId != SCENE_YADOYA) { - goto label_1F2; - } - - /* 0x160 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 3, 11, 9, 0x1EC - 0x167); - if ((11, 3) <= NOW <= (11, 9)) { - goto label_1EC; - } - - /* 0x167 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 9, 11, 29, 0x1E6 - 0x16D); - if ((11, 9) <= NOW <= (11, 29)) { - goto label_1E6; - } - - /* 0x16D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x1E0 - 0x173); - if ((11, 29) <= NOW <= (11, 39)) { - goto label_1E0; - } - - /* 0x173 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x1DA - 0x179); - if ((17, 24) <= NOW <= (17, 30)) { - goto label_1DA; - } - - /* 0x179 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 30, 17, 55, 0x1D4 - 0x17F); - if ((17, 30) <= NOW <= (17, 55)) { - goto label_1D4; - } - - /* 0x17F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 55, 18, 0, 0x1CE - 0x185); - if ((17, 55) <= NOW <= (18, 0)) { - goto label_1CE; - } - - /* 0x185 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 19, 50, 0x1C8 - 0x18B); - if ((18, 0) <= NOW <= (19, 50)) { - goto label_1C8; - } - - /* 0x18B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x1C2 - 0x191); - if ((19, 50) <= NOW <= (20, 20)) { - goto label_1C2; - } - - /* 0x191 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x1BC - 0x197); - if ((20, 20) <= NOW <= (20, 30)) { - goto label_1BC; - } - - /* 0x197 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 0, 0x1B6 - 0x19D); - if ((20, 30) <= NOW <= (21, 0)) { - goto label_1B6; - } - - /* 0x19D */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 0, 21, 5, 0x1B0 - 0x1A3); - if ((21, 0) <= NOW <= (21, 5)) { - goto label_1B0; - } - - /* 0x1A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x1AA - 0x1A9); - if ((21, 30) <= NOW <= (23, 0)) { - goto label_1AA; - } - -label_1A9: - /* 0x1A9 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_1AA: - /* 0x1AA */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output->result = ANJU_SCH_18; - output->time0 = (21, 30); - output->time1 = (23, 0); - output->hasResult = true; - return; - -label_1B0: - /* 0x1B0 */ SCHEDULE_CMD_RET_TIME(21, 0, 21, 5, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 0); - output->time1 = (21, 5); - output->hasResult = true; - return; - -label_1B6: - /* 0x1B6 */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 0, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 0); - output->hasResult = true; - return; - -label_1BC: - /* 0x1BC */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; - return; - -label_1C2: - /* 0x1C2 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; - return; - -label_1C8: - /* 0x1C8 */ SCHEDULE_CMD_RET_TIME(18, 0, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (18, 0); - output->time1 = (19, 50); - output->hasResult = true; - return; - -label_1CE: - /* 0x1CE */ SCHEDULE_CMD_RET_TIME(17, 55, 18, 0, ANJU_SCH_23); - output->result = ANJU_SCH_23; - output->time0 = (17, 55); - output->time1 = (18, 0); - output->hasResult = true; - return; - -label_1D4: - /* 0x1D4 */ SCHEDULE_CMD_RET_TIME(17, 30, 17, 55, ANJU_SCH_33); - output->result = ANJU_SCH_33; - output->time0 = (17, 30); - output->time1 = (17, 55); - output->hasResult = true; - return; - -label_1DA: - /* 0x1DA */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_22); - output->result = ANJU_SCH_22; - output->time0 = (17, 24); - output->time1 = (17, 30); - output->hasResult = true; - return; - -label_1E0: - /* 0x1E0 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_21); - output->result = ANJU_SCH_21; - output->time0 = (11, 29); - output->time1 = (11, 39); - output->hasResult = true; - return; - -label_1E6: - /* 0x1E6 */ SCHEDULE_CMD_RET_TIME(11, 9, 11, 29, ANJU_SCH_32); - output->result = ANJU_SCH_32; - output->time0 = (11, 9); - output->time1 = (11, 29); - output->hasResult = true; - return; - -label_1EC: - /* 0x1EC */ SCHEDULE_CMD_RET_TIME(11, 3, 11, 9, ANJU_SCH_20); - output->result = ANJU_SCH_20; - output->time0 = (11, 3); - output->time1 = (11, 9); - output->hasResult = true; - return; - -label_1F2: - /* 0x1F2 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_TOWN, 0x23F - 0x1F6); - if (play->sceneId != SCENE_TOWN) { - goto label_23F; - } - - /* 0x1F6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 29, 11, 39, 0x239 - 0x1FC); - if ((11, 29) <= NOW <= (11, 39)) { - goto label_239; - } - - /* 0x1FC */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x233 - 0x202); - if ((11, 39) <= NOW <= (12, 25)) { - goto label_233; - } - - /* 0x202 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x22D - 0x208); - if ((12, 25) <= NOW <= (13, 15)) { - goto label_22D; - } - - /* 0x208 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x227 - 0x20E); - if ((15, 55) <= NOW <= (16, 45)) { - goto label_227; - } - - /* 0x20E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x221 - 0x214); - if ((16, 45) <= NOW <= (17, 24)) { - goto label_221; - } - - /* 0x214 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(17, 24, 17, 30, 0x21B - 0x21A); - if ((17, 24) <= NOW <= (17, 30)) { - goto label_21B; - } - -label_21A: - /* 0x21A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_21B: - /* 0x21B */ SCHEDULE_CMD_RET_TIME(17, 24, 17, 30, ANJU_SCH_26); - output->result = ANJU_SCH_26; - output->time0 = (17, 24); - output->time1 = (17, 30); - output->hasResult = true; - return; - -label_221: - /* 0x221 */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3B); - output->result = ANJU_SCH_3B; - output->time0 = (16, 45); - output->time1 = (17, 24); - output->hasResult = true; - return; - -label_227: - /* 0x227 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3A); - output->result = ANJU_SCH_3A; - output->time0 = (15, 55); - output->time1 = (16, 45); - output->hasResult = true; - return; - -label_22D: - /* 0x22D */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_37); - output->result = ANJU_SCH_37; - output->time0 = (12, 25); - output->time1 = (13, 15); - output->hasResult = true; - return; - -label_233: - /* 0x233 */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_36); - output->result = ANJU_SCH_36; - output->time0 = (11, 39); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_239: - /* 0x239 */ SCHEDULE_CMD_RET_TIME(11, 29, 11, 39, ANJU_SCH_25); - output->result = ANJU_SCH_25; - output->time0 = (11, 29); - output->time1 = (11, 39); - output->hasResult = true; - return; - -label_23F: - /* 0x23F */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_CLOCKTOWER, 0x274 - 0x243); - if (play->sceneId != SCENE_CLOCKTOWER) { - goto label_274; - } - - /* 0x243 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 39, 12, 25, 0x26E - 0x249); - if ((11, 39) <= NOW <= (12, 25)) { - goto label_26E; - } - - /* 0x249 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 13, 15, 0x268 - 0x24F); - if ((12, 25) <= NOW <= (13, 15)) { - goto label_268; - } - - /* 0x24F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 55, 16, 45, 0x262 - 0x255); - if ((15, 55) <= NOW <= (16, 45)) { - goto label_262; - } - - /* 0x255 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(16, 45, 17, 24, 0x25C - 0x25B); - if ((16, 45) <= NOW <= (17, 24)) { - goto label_25C; - } - -label_25B: - /* 0x25B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_25C: - /* 0x25C */ SCHEDULE_CMD_RET_TIME(16, 45, 17, 24, ANJU_SCH_3F); - output->result = ANJU_SCH_3F; - output->time0 = (16, 45); - output->time1 = (17, 24); - output->hasResult = true; - return; - -label_262: - /* 0x262 */ SCHEDULE_CMD_RET_TIME(15, 55, 16, 45, ANJU_SCH_3E); - output->result = ANJU_SCH_3E; - output->time0 = (15, 55); - output->time1 = (16, 45); - output->hasResult = true; - return; - -label_268: - /* 0x268 */ SCHEDULE_CMD_RET_TIME(12, 25, 13, 15, ANJU_SCH_3D); - output->result = ANJU_SCH_3D; - output->time0 = (12, 25); - output->time1 = (13, 15); - output->hasResult = true; - return; - -label_26E: - /* 0x26E */ SCHEDULE_CMD_RET_TIME(11, 39, 12, 25, ANJU_SCH_3C); - output->result = ANJU_SCH_3C; - output->time0 = (11, 39); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_274: - /* 0x274 */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_ALLEY, 0x29D - 0x278); - if (play->sceneId != SCENE_ALLEY) { - goto label_29D; - } - - /* 0x278 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 45, 0x297 - 0x27E); - if ((13, 15) <= NOW <= (13, 45)) { - goto label_297; - } - - /* 0x27E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 45, 15, 25, 0x291 - 0x284); - if ((13, 45) <= NOW <= (15, 25)) { - goto label_291; - } - - /* 0x284 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(15, 25, 15, 55, 0x28B - 0x28A); - if ((15, 25) <= NOW <= (15, 55)) { - goto label_28B; - } - -label_28A: - /* 0x28A */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_28B: - /* 0x28B */ SCHEDULE_CMD_RET_TIME(15, 25, 15, 55, ANJU_SCH_39); - output->result = ANJU_SCH_39; - output->time0 = (15, 25); - output->time1 = (15, 55); - output->hasResult = true; - return; - -label_291: - /* 0x291 */ SCHEDULE_CMD_RET_TIME(13, 45, 15, 25, ANJU_SCH_3); - output->result = ANJU_SCH_3; - output->time0 = (13, 45); - output->time1 = (15, 25); - output->hasResult = true; - return; - -label_297: - /* 0x297 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 45, ANJU_SCH_38); - output->result = ANJU_SCH_38; - output->time0 = (13, 15); - output->time1 = (13, 45); - output->hasResult = true; - return; - -label_29D: - /* 0x29D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_29E: - /* 0x29E */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_L(SCENE_YADOYA, 0x390 - 0x2A3); - if (play->sceneId != SCENE_YADOYA) { - goto label_390; - } - - /* 0x2A3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(6, 0, 10, 55, 0x38A - 0x2AA); - if ((6, 0) <= NOW <= (10, 55)) { - goto label_38A; - } - - /* 0x2AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(10, 55, 11, 10, 0x384 - 0x2B1); - if ((10, 55) <= NOW <= (11, 10)) { - goto label_384; - } - - /* 0x2B1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 10, 11, 30, 0x37E - 0x2B8); - if ((11, 10) <= NOW <= (11, 30)) { - goto label_37E; - } - - /* 0x2B8 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 30, 11, 50, 0x378 - 0x2BF); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_378; - } - - /* 0x2BF */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 50, 11, 55, 0x372 - 0x2C6); - if ((11, 50) <= NOW <= (11, 55)) { - goto label_372; - } - - /* 0x2C6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(11, 55, 12, 0, 0x36C - 0x2CD); - if ((11, 55) <= NOW <= (12, 0)) { - goto label_36C; - } - - /* 0x2CD */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 0, 12, 15, 0x366 - 0x2D4); - if ((12, 0) <= NOW <= (12, 15)) { - goto label_366; - } - - /* 0x2D4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_L(12, 15, 12, 20, 0x360 - 0x2DB); - if ((12, 15) <= NOW <= (12, 20)) { - goto label_360; - } - - /* 0x2DB */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 20, 12, 25, 0x35A - 0x2E1); - if ((12, 20) <= NOW <= (12, 25)) { - goto label_35A; - } - - /* 0x2E1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 25, 12, 55, 0x354 - 0x2E7); - if ((12, 25) <= NOW <= (12, 55)) { - goto label_354; - } - - /* 0x2E7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(12, 55, 13, 0, 0x34E - 0x2ED); - if ((12, 55) <= NOW <= (13, 0)) { - goto label_34E; - } - - /* 0x2ED */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 15, 13, 20, 0x348 - 0x2F3); - if ((13, 15) <= NOW <= (13, 20)) { - goto label_348; - } - - /* 0x2F3 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 20, 13, 50, 0x342 - 0x2F9); - if ((13, 20) <= NOW <= (13, 50)) { - goto label_342; - } - - /* 0x2F9 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(13, 50, 19, 50, 0x33C - 0x2FF); - if ((13, 50) <= NOW <= (19, 50)) { - goto label_33C; - } - - /* 0x2FF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(19, 50, 20, 20, 0x336 - 0x305); - if ((19, 50) <= NOW <= (20, 20)) { - goto label_336; - } - - /* 0x305 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 20, 20, 30, 0x330 - 0x30B); - if ((20, 20) <= NOW <= (20, 30)) { - goto label_330; - } - - /* 0x30B */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(20, 30, 21, 5, 0x32A - 0x311); - if ((20, 30) <= NOW <= (21, 5)) { - goto label_32A; - } - - /* 0x311 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 5, 21, 10, 0x324 - 0x317); - if ((21, 5) <= NOW <= (21, 10)) { - goto label_324; - } - - /* 0x317 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(21, 30, 23, 0, 0x31E - 0x31D); - if ((21, 30) <= NOW <= (23, 0)) { - goto label_31E; - } - -label_31D: - /* 0x31D */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_31E: - /* 0x31E */ SCHEDULE_CMD_RET_TIME(21, 30, 23, 0, ANJU_SCH_18); - output->result = ANJU_SCH_18; - output->time0 = (21, 30); - output->time1 = (23, 0); - output->hasResult = true; - return; - -label_324: - /* 0x324 */ SCHEDULE_CMD_RET_TIME(21, 5, 21, 10, ANJU_SCH_1E); - output->result = ANJU_SCH_1E; - output->time0 = (21, 5); - output->time1 = (21, 10); - output->hasResult = true; - return; - -label_32A: - /* 0x32A */ SCHEDULE_CMD_RET_TIME(20, 30, 21, 5, ANJU_SCH_30); - output->result = ANJU_SCH_30; - output->time0 = (20, 30); - output->time1 = (21, 5); - output->hasResult = true; - return; - -label_330: - /* 0x330 */ SCHEDULE_CMD_RET_TIME(20, 20, 20, 30, ANJU_SCH_13); - output->result = ANJU_SCH_13; - output->time0 = (20, 20); - output->time1 = (20, 30); - output->hasResult = true; - return; - -label_336: - /* 0x336 */ SCHEDULE_CMD_RET_TIME(19, 50, 20, 20, ANJU_SCH_2F); - output->result = ANJU_SCH_2F; - output->time0 = (19, 50); - output->time1 = (20, 20); - output->hasResult = true; - return; - -label_33C: - /* 0x33C */ SCHEDULE_CMD_RET_TIME(13, 50, 19, 50, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (13, 50); - output->time1 = (19, 50); - output->hasResult = true; - return; - -label_342: - /* 0x342 */ SCHEDULE_CMD_RET_TIME(13, 20, 13, 50, ANJU_SCH_2E); - output->result = ANJU_SCH_2E; - output->time0 = (13, 20); - output->time1 = (13, 50); - output->hasResult = true; - return; - -label_348: - /* 0x348 */ SCHEDULE_CMD_RET_TIME(13, 15, 13, 20, ANJU_SCH_1D); - output->result = ANJU_SCH_1D; - output->time0 = (13, 15); - output->time1 = (13, 20); - output->hasResult = true; - return; - -label_34E: - /* 0x34E */ SCHEDULE_CMD_RET_TIME(12, 55, 13, 0, ANJU_SCH_1C); - output->result = ANJU_SCH_1C; - output->time0 = (12, 55); - output->time1 = (13, 0); - output->hasResult = true; - return; - -label_354: - /* 0x354 */ SCHEDULE_CMD_RET_TIME(12, 25, 12, 55, ANJU_SCH_2D); - output->result = ANJU_SCH_2D; - output->time0 = (12, 25); - output->time1 = (12, 55); - output->hasResult = true; - return; - -label_35A: - /* 0x35A */ SCHEDULE_CMD_RET_TIME(12, 20, 12, 25, ANJU_SCH_1B); - output->result = ANJU_SCH_1B; - output->time0 = (12, 20); - output->time1 = (12, 25); - output->hasResult = true; - return; - -label_360: - /* 0x360 */ SCHEDULE_CMD_RET_TIME(12, 15, 12, 20, ANJU_SCH_2C); - output->result = ANJU_SCH_2C; - output->time0 = (12, 15); - output->time1 = (12, 20); - output->hasResult = true; - return; - -label_366: - /* 0x366 */ SCHEDULE_CMD_RET_TIME(12, 0, 12, 15, ANJU_SCH_15); - output->result = ANJU_SCH_15; - output->time0 = (12, 0); - output->time1 = (12, 15); - output->hasResult = true; - return; - -label_36C: - /* 0x36C */ SCHEDULE_CMD_RET_TIME(11, 55, 12, 0, ANJU_SCH_2B); - output->result = ANJU_SCH_2B; - output->time0 = (11, 55); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_372: - /* 0x372 */ SCHEDULE_CMD_RET_TIME(11, 50, 11, 55, ANJU_SCH_1A); - output->result = ANJU_SCH_1A; - output->time0 = (11, 50); - output->time1 = (11, 55); - output->hasResult = true; - return; - -label_378: - /* 0x378 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_2A); - output->result = ANJU_SCH_2A; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_37E: - /* 0x37E */ SCHEDULE_CMD_RET_TIME(11, 10, 11, 30, ANJU_SCH_E); - output->result = ANJU_SCH_E; - output->time0 = (11, 10); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_384: - /* 0x384 */ SCHEDULE_CMD_RET_TIME(10, 55, 11, 10, ANJU_SCH_28); - output->result = ANJU_SCH_28; - output->time0 = (10, 55); - output->time1 = (11, 10); - output->hasResult = true; - return; - -label_38A: - /* 0x38A */ SCHEDULE_CMD_RET_TIME(6, 0, 10, 55, ANJU_SCH_12); - output->result = ANJU_SCH_12; - output->time0 = (6, 0); - output->time1 = (10, 55); - output->hasResult = true; - return; - -label_390: - /* 0x390 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_391: - /* 0x391 */ SCHEDULE_CMD_CHECK_NOT_IN_DAY_L(3, 0x447 - 0x396); - if (gSaveContext.save.day != 3) { - goto label_447; - } - - /* 0x396 */ SCHEDULE_CMD_CHECK_FLAG_S(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES, 0x3ED - 0x39A); - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { - goto label_3ED; - } - - /* 0x39A */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x3DB - 0x39E); - if (play->sceneId != SCENE_YADOYA) { - goto label_3DB; - } - - /* 0x39E */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x3D5 - 0x3A4); - if ((6, 0) <= NOW <= (11, 0)) { - goto label_3D5; - } - - /* 0x3A4 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x3CF - 0x3AA); - if ((11, 0) <= NOW <= (11, 25)) { - goto label_3CF; - } - - /* 0x3AA */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x3C9 - 0x3B0); - if ((11, 25) <= NOW <= (11, 30)) { - goto label_3C9; - } - - /* 0x3B0 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x3C3 - 0x3B6); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_3C3; - } - - /* 0x3B6 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x3BD - 0x3BC); - if ((11, 50) <= NOW <= (12, 0)) { - goto label_3BD; - } - -label_3BC: - /* 0x3BC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3BD: - /* 0x3BD */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output->result = ANJU_SCH_27; - output->time0 = (11, 50); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_3C3: - /* 0x3C3 */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output->result = ANJU_SCH_35; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_3C9: - /* 0x3C9 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output->result = ANJU_SCH_24; - output->time0 = (11, 25); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_3CF: - /* 0x3CF */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output->result = ANJU_SCH_34; - output->time0 = (11, 0); - output->time1 = (11, 25); - output->hasResult = true; - return; - -label_3D5: - /* 0x3D5 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output->result = ANJU_SCH_16; - output->time0 = (6, 0); - output->time1 = (11, 0); - output->hasResult = true; - return; - -label_3DB: - /* 0x3DB */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_OMOYA, 0x3EC - 0x3DF); - if (play->sceneId != SCENE_OMOYA) { - goto label_3EC; - } - - /* 0x3DF */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 6, 0, 0x3E6 - 0x3E5); - if ((18, 0) <= NOW <= (6, 0)) { - goto label_3E6; - } - -label_3E5: - /* 0x3E5 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3E6: - /* 0x3E6 */ SCHEDULE_CMD_RET_TIME(18, 0, 6, 0, ANJU_SCH_C); - output->result = ANJU_SCH_C; - output->time0 = (18, 0); - output->time1 = (6, 0); - output->hasResult = true; - return; - -label_3EC: - /* 0x3EC */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_3ED: - /* 0x3ED */ SCHEDULE_CMD_CHECK_NOT_IN_SCENE_S(SCENE_YADOYA, 0x446 - 0x3F1); - if (play->sceneId != SCENE_YADOYA) { - goto label_446; - } - - /* 0x3F1 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(6, 0, 11, 0, 0x440 - 0x3F7); - if ((6, 0) <= NOW <= (11, 0)) { - goto label_440; - } - - /* 0x3F7 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 0, 11, 25, 0x43A - 0x3FD); - if ((11, 0) <= NOW <= (11, 25)) { - goto label_43A; - } - - /* 0x3FD */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 25, 11, 30, 0x434 - 0x403); - if ((11, 25) <= NOW <= (11, 30)) { - goto label_434; - } - - /* 0x403 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 30, 11, 50, 0x42E - 0x409); - if ((11, 30) <= NOW <= (11, 50)) { - goto label_42E; - } - - /* 0x409 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(11, 50, 12, 0, 0x428 - 0x40F); - if ((11, 50) <= NOW <= (12, 0)) { - goto label_428; - } - - /* 0x40F */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(18, 0, 5, 0, 0x422 - 0x415); - if ((18, 0) <= NOW <= (5, 0)) { - goto label_422; - } - - /* 0x415 */ SCHEDULE_CMD_CHECK_TIME_RANGE_S(5, 0, 6, 0, 0x41C - 0x41B); - if ((5, 0) <= NOW <= (6, 0)) { - goto label_41C; - } - -label_41B: - /* 0x41B */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_41C: - /* 0x41C */ SCHEDULE_CMD_RET_TIME(5, 0, 6, 0, ANJU_SCH_1); - output->result = ANJU_SCH_1; - output->time0 = (5, 0); - output->time1 = (6, 0); - output->hasResult = true; - return; - -label_422: - /* 0x422 */ SCHEDULE_CMD_RET_TIME(18, 0, 5, 0, ANJU_SCH_1); - output->result = ANJU_SCH_1; - output->time0 = (18, 0); - output->time1 = (5, 0); - output->hasResult = true; - return; - -label_428: - /* 0x428 */ SCHEDULE_CMD_RET_TIME(11, 50, 12, 0, ANJU_SCH_27); - output->result = ANJU_SCH_27; - output->time0 = (11, 50); - output->time1 = (12, 0); - output->hasResult = true; - return; - -label_42E: - /* 0x42E */ SCHEDULE_CMD_RET_TIME(11, 30, 11, 50, ANJU_SCH_35); - output->result = ANJU_SCH_35; - output->time0 = (11, 30); - output->time1 = (11, 50); - output->hasResult = true; - return; - -label_434: - /* 0x434 */ SCHEDULE_CMD_RET_TIME(11, 25, 11, 30, ANJU_SCH_24); - output->result = ANJU_SCH_24; - output->time0 = (11, 25); - output->time1 = (11, 30); - output->hasResult = true; - return; - -label_43A: - /* 0x43A */ SCHEDULE_CMD_RET_TIME(11, 0, 11, 25, ANJU_SCH_34); - output->result = ANJU_SCH_34; - output->time0 = (11, 0); - output->time1 = (11, 25); - output->hasResult = true; - return; - -label_440: - /* 0x440 */ SCHEDULE_CMD_RET_TIME(6, 0, 11, 0, ANJU_SCH_16); - output->result = ANJU_SCH_16; - output->time0 = (6, 0); - output->time1 = (11, 0); - output->hasResult = true; - return; - -label_446: - /* 0x446 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - -label_447: - /* 0x447 */ SCHEDULE_CMD_RET_NONE(); - output->hasResult = false; - return; - - -} diff --git a/anju_schedule_ifs.c b/anju_schedule_ifs.c deleted file mode 100644 index f272169e9..000000000 --- a/anju_schedule_ifs.c +++ /dev/null @@ -1,305 +0,0 @@ -#include "global.h" - -#define NOW 0 -#define None 0 - -typedef enum AnjuScheduleResult { - /* 0 */ ANJU_SCH_NONE, - /* 1 */ ANJU_SCH_1, - /* 2 */ ANJU_SCH_2, - /* 3 */ ANJU_SCH_3, - /* 4 */ ANJU_SCH_4, - /* 5 */ ANJU_SCH_5, - /* 6 */ ANJU_SCH_6, - /* 7 */ ANJU_SCH_7, - /* 8 */ ANJU_SCH_8, - /* 9 */ ANJU_SCH_9, - /* 10 */ ANJU_SCH_A, - /* 11 */ ANJU_SCH_B, - /* 12 */ ANJU_SCH_C, - /* 13 */ ANJU_SCH_D, - /* 14 */ ANJU_SCH_E, - /* 15 */ ANJU_SCH_F, - /* 16 */ ANJU_SCH_10, - /* 17 */ ANJU_SCH_11, - /* 18 */ ANJU_SCH_12, - /* 19 */ ANJU_SCH_13, - /* 20 */ ANJU_SCH_14, - /* 21 */ ANJU_SCH_15, - /* 22 */ ANJU_SCH_16, - /* 23 */ ANJU_SCH_17, - /* 24 */ ANJU_SCH_18, - /* 25 */ ANJU_SCH_19, - /* 26 */ ANJU_SCH_1A, - /* 27 */ ANJU_SCH_1B, - /* 28 */ ANJU_SCH_1C, - /* 29 */ ANJU_SCH_1D, - /* 30 */ ANJU_SCH_1E, - /* 31 */ ANJU_SCH_1F, - /* 32 */ ANJU_SCH_20, - /* 33 */ ANJU_SCH_21, - /* 34 */ ANJU_SCH_22, - /* 35 */ ANJU_SCH_23, - /* 36 */ ANJU_SCH_24, - /* 37 */ ANJU_SCH_25, - /* 38 */ ANJU_SCH_26, - /* 39 */ ANJU_SCH_27, - /* 40 */ ANJU_SCH_28, - /* 41 */ ANJU_SCH_29, - /* 42 */ ANJU_SCH_2A, - /* 43 */ ANJU_SCH_2B, - /* 44 */ ANJU_SCH_2C, - /* 45 */ ANJU_SCH_2D, - /* 46 */ ANJU_SCH_2E, - /* 47 */ ANJU_SCH_2F, - /* 48 */ ANJU_SCH_30, - /* 49 */ ANJU_SCH_31, - /* 50 */ ANJU_SCH_32, - /* 51 */ ANJU_SCH_33, - /* 52 */ ANJU_SCH_34, - /* 53 */ ANJU_SCH_35, - /* 54 */ ANJU_SCH_36, - /* 55 */ ANJU_SCH_37, - /* 56 */ ANJU_SCH_38, - /* 57 */ ANJU_SCH_39, - /* 58 */ ANJU_SCH_3A, - /* 59 */ ANJU_SCH_3B, - /* 60 */ ANJU_SCH_3C, - /* 61 */ ANJU_SCH_3D, - /* 62 */ ANJU_SCH_3E, - /* 63 */ ANJU_SCH_3F, - /* 64 */ ANJU_SCH_MAX -} AnjuScheduleResult; - -s32 scheduleScript(PlayState* play) { - if (gSaveContext.save.day == 1) { - if (play->sceneId == SCENE_YADOYA) { - if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12; - } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28; - } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E; - } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A; - } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A; - } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B; - } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15; - } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C; - } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B; - } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D; - } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C; - } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D; - } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E; - } else if ((13, 50) <= NOW <= (14, 8)) { - return ANJU_SCH_12; - } else if ((14, 8) <= NOW <= (14, 18)) { - return ANJU_SCH_10; - } else if ((14, 18) <= NOW <= (16, 10)) { - return ANJU_SCH_12; - } else if ((16, 10) <= NOW <= (16, 30)) { - return ANJU_SCH_11; - } else if ((16, 30) <= NOW <= (19, 50)) { - return ANJU_SCH_12; - } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; - } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; - } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30; - } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E; - } else if (CHECK_WEEKEVENTREG(WEEKEVENTREG_PROMISED_MIDNIGHT_MEETING)) { - if ((23, 10) <= NOW <= (23, 15)) { - return ANJU_SCH_1F; - } else if ((23, 15) <= NOW <= (0, 0)) { - return ANJU_SCH_31; - } else if ((0, 0) <= NOW <= (6, 0)) { - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - return None; - } - return ANJU_SCH_17; - } else { - return None; - } - } else { - return None; - } - } else { - return None; - } - } else if (gSaveContext.save.day == 2) { - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_HAD_MIDNIGHT_MEETING)) { - if (play->sceneId == SCENE_YADOYA) { - if ((6, 0) <= NOW <= (10, 55)) { - return ANJU_SCH_12; - } else if ((10, 55) <= NOW <= (11, 10)) { - return ANJU_SCH_28; - } else if ((11, 10) <= NOW <= (11, 30)) { - return ANJU_SCH_E; - } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_2A; - } else if ((11, 50) <= NOW <= (11, 55)) { - return ANJU_SCH_1A; - } else if ((11, 55) <= NOW <= (12, 0)) { - return ANJU_SCH_2B; - } else if ((12, 0) <= NOW <= (12, 15)) { - return ANJU_SCH_15; - } else if ((12, 15) <= NOW <= (12, 20)) { - return ANJU_SCH_2C; - } else if ((12, 20) <= NOW <= (12, 25)) { - return ANJU_SCH_1B; - } else if ((12, 25) <= NOW <= (12, 55)) { - return ANJU_SCH_2D; - } else if ((12, 55) <= NOW <= (13, 0)) { - return ANJU_SCH_1C; - } else if ((13, 15) <= NOW <= (13, 20)) { - return ANJU_SCH_1D; - } else if ((13, 20) <= NOW <= (13, 50)) { - return ANJU_SCH_2E; - } else if ((13, 50) <= NOW <= (19, 50)) { - return ANJU_SCH_12; - } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; - } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; - } else if ((20, 30) <= NOW <= (21, 5)) { - return ANJU_SCH_30; - } else if ((21, 5) <= NOW <= (21, 10)) { - return ANJU_SCH_1E; - } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18; - } else { - return None; - } - } else { - return None; - } - } else if (play->sceneId == SCENE_YADOYA) { - if ((11, 3) <= NOW <= (11, 9)) { - return ANJU_SCH_20; - } else if ((11, 9) <= NOW <= (11, 29)) { - return ANJU_SCH_32; - } else if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_21; - } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_22; - } else if ((17, 30) <= NOW <= (17, 55)) { - return ANJU_SCH_33; - } else if ((17, 55) <= NOW <= (18, 0)) { - return ANJU_SCH_23; - } else if ((18, 0) <= NOW <= (19, 50)) { - return ANJU_SCH_12; - } else if ((19, 50) <= NOW <= (20, 20)) { - return ANJU_SCH_2F; - } else if ((20, 20) <= NOW <= (20, 30)) { - return ANJU_SCH_13; - } else if ((20, 30) <= NOW <= (21, 0)) { - return ANJU_SCH_30; - } else if ((21, 0) <= NOW <= (21, 5)) { - return ANJU_SCH_1E; - } else if ((21, 30) <= NOW <= (23, 0)) { - return ANJU_SCH_18; - } else { - return None; - } - } else if (play->sceneId == SCENE_TOWN) { - if ((11, 29) <= NOW <= (11, 39)) { - return ANJU_SCH_25; - } else if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_36; - } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_37; - } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3A; - } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3B; - } else if ((17, 24) <= NOW <= (17, 30)) { - return ANJU_SCH_26; - } else { - return None; - } - } else if (play->sceneId == SCENE_CLOCKTOWER) { - if ((11, 39) <= NOW <= (12, 25)) { - return ANJU_SCH_3C; - } else if ((12, 25) <= NOW <= (13, 15)) { - return ANJU_SCH_3D; - } else if ((15, 55) <= NOW <= (16, 45)) { - return ANJU_SCH_3E; - } else if ((16, 45) <= NOW <= (17, 24)) { - return ANJU_SCH_3F; - } else { - return None; - } - } else if (play->sceneId == SCENE_ALLEY) { - if ((13, 15) <= NOW <= (13, 45)) { - return ANJU_SCH_38; - } else if ((13, 45) <= NOW <= (15, 25)) { - return ANJU_SCH_3; - } else if ((15, 25) <= NOW <= (15, 55)) { - return ANJU_SCH_39; - } else { - return None; - } - } else { - return None; - } - } else if (gSaveContext.save.day == 3) { - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_DELIVERED_PENDANT_OF_MEMORIES)) { - if (play->sceneId == SCENE_YADOYA) { - if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16; - } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34; - } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24; - } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35; - } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27; - } else if ((18, 0) <= NOW <= (5, 0)) { - return ANJU_SCH_1; - } else if ((5, 0) <= NOW <= (6, 0)) { - return ANJU_SCH_1; - } else { - return None; - } - } else { - return None; - } - } else if (play->sceneId == SCENE_YADOYA) { - if ((6, 0) <= NOW <= (11, 0)) { - return ANJU_SCH_16; - } else if ((11, 0) <= NOW <= (11, 25)) { - return ANJU_SCH_34; - } else if ((11, 25) <= NOW <= (11, 30)) { - return ANJU_SCH_24; - } else if ((11, 30) <= NOW <= (11, 50)) { - return ANJU_SCH_35; - } else if ((11, 50) <= NOW <= (12, 0)) { - return ANJU_SCH_27; - } else { - return None; - } - } else if (play->sceneId == SCENE_OMOYA) { - if ((18, 0) <= NOW <= (6, 0)) { - return ANJU_SCH_C; - } else { - return None; - } - } else { - return None; - } - } else { - return None; - } -} diff --git a/assets/xml/objects/object_msmo.xml b/assets/xml/objects/object_msmo.xml index a440cfce7..6bfd0e46d 100644 --- a/assets/xml/objects/object_msmo.xml +++ b/assets/xml/objects/object_msmo.xml @@ -2,7 +2,6 @@ - diff --git a/src/overlays/actors/ovl_En_Go/z_en_go.c b/src/overlays/actors/ovl_En_Go/z_en_go.c index e2ee6d95a..ea2476902 100644 --- a/src/overlays/actors/ovl_En_Go/z_en_go.c +++ b/src/overlays/actors/ovl_En_Go/z_en_go.c @@ -12,7 +12,6 @@ * one outside the shop, not all Gorons in the Goron Shrine are covered by this actor). * - Medigoron: The Powder Keg making Medigoron in Goron Village. */ - #include "z_en_go.h" #include "z64quake.h" #include "overlays/actors/ovl_En_Bom/z_en_bom.h" From 729aa256d1239e05254a3d038fa4a5f6bd3e0f26 Mon Sep 17 00:00:00 2001 From: angie Date: Sun, 29 Oct 2023 12:58:31 -0300 Subject: [PATCH 65/78] WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL --- include/z64save.h | 2 +- src/overlays/actors/ovl_En_An/z_en_an.c | 9 ++++++--- tools/weekeventregconvert.py | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/include/z64save.h b/include/z64save.h index d56347ec9..ca61f48eb 100644 --- a/include/z64save.h +++ b/include/z64save.h @@ -1059,7 +1059,7 @@ typedef enum { #define WEEKEVENTREG_TALKED_PART_TIMER_AS_GORON PACK_WEEKEVENTREG_FLAG(55, 0x04) #define WEEKEVENTREG_TALKED_PART_TIMER_AS_ZORA PACK_WEEKEVENTREG_FLAG(55, 0x08) #define WEEKEVENTREG_TALKED_PART_TIMER_AS_DEKU PACK_WEEKEVENTREG_FLAG(55, 0x10) -#define WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL PACK_WEEKEVENTREG_FLAG(55, 0x20) +#define WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL PACK_WEEKEVENTREG_FLAG(55, 0x20) #define WEEKEVENTREG_55_40 PACK_WEEKEVENTREG_FLAG(55, 0x40) // Gyorg has been defeated 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 50acb5663..e8e0349b4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1197,6 +1197,9 @@ void EnAn_UpdateFace(EnAn* this) { this->eyeTexIndex = ENAN_EYES_COMFORT; } break; + + default: + break; } if (!skipBlink) { @@ -1572,7 +1575,7 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || - CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { + CHECK_WEEKEVENTREG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL)) { this->msgEventState++; goto label; } else { @@ -1774,7 +1777,7 @@ s32 EnAn_CheckTalk(EnAn* this, PlayState* play) { } if ((this->scheduleResult == ANJU_SCH_LAUNDRY_POOL_SIT) && - CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { + CHECK_WEEKEVENTREG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL)) { this->stateFlags &= ~ENAN_STATE_ENGAGED; } @@ -2656,7 +2659,7 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; this->stateFlags |= ENAN_STATE_DRAW_UMBRELLA; - if (CHECK_WEEKEVENTREG(WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL)) { EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRY); this->stateFlags |= ENAN_STATE_IGNORE_GRAVITY; this->actor.world.rot.y += 0x7FF8; diff --git a/tools/weekeventregconvert.py b/tools/weekeventregconvert.py index 4b020fb4d..0d721654e 100755 --- a/tools/weekeventregconvert.py +++ b/tools/weekeventregconvert.py @@ -449,7 +449,7 @@ weekEventReg = { (55 << 8) | 0x04: "WEEKEVENTREG_TALKED_PART_TIMER_AS_GORON", (55 << 8) | 0x08: "WEEKEVENTREG_TALKED_PART_TIMER_AS_ZORA", (55 << 8) | 0x10: "WEEKEVENTREG_TALKED_PART_TIMER_AS_DEKU", - (55 << 8) | 0x20: "WEEKEVENTREG_SPOKE_TO_ANJU_IN_LAUNDRY_POOL", + (55 << 8) | 0x20: "WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL", (55 << 8) | 0x40: "WEEKEVENTREG_55_40", (55 << 8) | 0x80: "WEEKEVENTREG_CLEARED_GREAT_BAY_TEMPLE", (56 << 8) | 0x01: "WEEKEVENTREG_56_01", From 3162b3e2157c636f17498783f0904d594fff9b1c Mon Sep 17 00:00:00 2001 From: Angie Date: Sun, 29 Oct 2023 13:12:00 -0300 Subject: [PATCH 66/78] whoops --- src/overlays/actors/ovl_En_An/z_en_an.c | 3 --- 1 file changed, 3 deletions(-) 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 e8e0349b4..63865b846 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1197,9 +1197,6 @@ void EnAn_UpdateFace(EnAn* this) { this->eyeTexIndex = ENAN_EYES_COMFORT; } break; - - default: - break; } if (!skipBlink) { From 9046bd6a8558ad8b795ef34bfef35ed04a44a3ee Mon Sep 17 00:00:00 2001 From: Angie Date: Sun, 29 Oct 2023 13:13:48 -0300 Subject: [PATCH 67/78] remove some gotos --- src/overlays/actors/ovl_En_An/z_en_an.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) 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 63865b846..e75fe13d9 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1383,15 +1383,14 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: ret = false; - if (EnAn_ChangeCutscene(this, csId)) { - goto label; + if (!EnAn_ChangeCutscene(this, csId)) { + break; } - break; + FALLTHROUGH; case 0x2: case 0x4: case 0x6: - label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = true; this->msgEventState++; @@ -1431,14 +1430,13 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: ret = false; - if (EnAn_ChangeCutscene(this, csId)) { - goto label; + if (!EnAn_ChangeCutscene(this, csId)) { + break; } - break; + FALLTHROUGH; case 0x2: case 0x4: - label: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); ret = true; this->msgEventState++; @@ -1479,15 +1477,14 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { case 0x0: ret = 0; if (EnAn_ChangeCutscene(this, csId)) { - goto label; + break; } - break; + FALLTHROUGH; case 0x2: case 0x4: case 0x6: case 0x8: - label: if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); From 34363aa6291f152de9ef3b57193d8704c065678b Mon Sep 17 00:00:00 2001 From: Angie Date: Sun, 29 Oct 2023 13:30:01 -0300 Subject: [PATCH 68/78] whoops --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e75fe13d9..c629de4b4 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1476,7 +1476,7 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { switch (this->msgEventState) { case 0x0: ret = 0; - if (EnAn_ChangeCutscene(this, csId)) { + if (!EnAn_ChangeCutscene(this, csId)) { break; } FALLTHROUGH; From d9aa4e7ce101168d9968bf45a3ba0ccb77f65a33 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:22:35 -0300 Subject: [PATCH 69/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c629de4b4..e8d538dba 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1213,7 +1213,7 @@ void EnAn_UpdateFace(EnAn* this) { if (this->eyeTexIndex > ENAN_EYES_HALF2) { if ((this->faceIndex == ENAN_FACE_0) || (this->faceIndex == ENAN_FACE_1) || (this->faceIndex == ENAN_FACE_3)) { - this->eyeTimer = Rand_S16Offset(0x1E, 0x1E); + this->eyeTimer = Rand_S16Offset(30, 30); } else { this->eyeTimer = 8; } From fa3261877dc89f5e4f299ee51a8a64098f6e5308 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:22:48 -0300 Subject: [PATCH 70/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e8d538dba..d6a523f8a 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1361,7 +1361,7 @@ s16 EnAn_GetCsId(EnAn* this, s32 numCutscenes) { s16 EnAn_GetChildCsId(EnAn* this, s32 numCutscenes) { Actor* child = this->actor.child; - s16 csId = -1; + s16 csId = CS_ID_NONE; s32 i; if ((child != NULL) && (child->update != NULL)) { From 79ee453641055d099dabfb950eefd82d115d649c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:23:06 -0300 Subject: [PATCH 71/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 d6a523f8a..485242093 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1399,7 +1399,7 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { case 0x1: case 0x3: case 0x5: - if ((CHECK_WEEKEVENTREG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION)) && (this->msgEventState == 3)) { + if (CHECK_WEEKEVENTREG(WEEKEVENTREG_LISTENED_ANJU_POSTMAN_CONVERSATION) && (this->msgEventState == 3)) { CutsceneManager_Stop(csId); } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), From 07eb70c71ff923f73a3784fdf0e8ed3da9d95e61 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:23:28 -0300 Subject: [PATCH 72/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 485242093..5345d7987 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1670,7 +1670,7 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_80B58A44; } - if (SCHEDULE_CONVERT_TIME(gSaveContext.save.time) < SCHEDULE_TIME(14, 18)) { + if (SCHEDULE_TIME_NOW < SCHEDULE_TIME(14, 18)) { return sAnjuMsgScript_80B58ABC; } From 4375e46d6c8c23f8836e6ece33852a2fc1dc4f0c Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:23:54 -0300 Subject: [PATCH 73/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5345d7987..bbff4a250 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1444,7 +1444,7 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { case 0x1: case 0x3: - if (!(CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY)) && (this->msgEventState == 3)) { + if (!CHECK_WEEKEVENTREG(WEEKEVENTREG_RECEIVED_ROOM_KEY) && (this->msgEventState == 3)) { CutsceneManager_Stop(csId); this->msgEventState = 5; } else if ((this->actor.child != NULL) && (this->actor.child->update != NULL)) { From 064a0337569e1268a99b79bac251555078cc2614 Mon Sep 17 00:00:00 2001 From: Anghelo Carvajal Date: Mon, 30 Oct 2023 09:24:44 -0300 Subject: [PATCH 74/78] Update src/overlays/actors/ovl_En_An/z_en_an.c Co-authored-by: engineer124 <47598039+engineer124@users.noreply.github.com> --- src/overlays/actors/ovl_En_An/z_en_an.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) 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 bbff4a250..ed8081481 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1645,10 +1645,8 @@ s32* EnAn_GetMsgEventScript(EnAn* this, PlayState* play) { return sAnjuMsgScript_80B589FC; default: - break; + return sAnjuMsgScript_DekuDefault; } - - return sAnjuMsgScript_DekuDefault; } if (Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) { From 4ca2688282aa2af2eb0416fa0cb4d8e5db3fc975 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 30 Oct 2023 09:27:48 -0300 Subject: [PATCH 75/78] review --- src/overlays/actors/ovl_En_An/z_en_an.c | 57 ++++++++++++++----------- src/overlays/actors/ovl_En_An/z_en_an.h | 4 +- tools/disasm/functions.txt | 2 +- 3 files changed, 34 insertions(+), 29 deletions(-) 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 ed8081481..ce10f156c 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1015,7 +1015,7 @@ static AnimationInfoS sAnimationInfo[ENAN_ANIM_MAX] = { { &gAnju4LookUpLoopAnim, 1.0f, 0, -1, ANIMMODE_LOOP, 0 }, // ENAN_ANIM_LOOK_UP_LOOP }; -s32 EnAn_UpdateSkel(EnAn* this, PlayState* play) { +s32 EnAn_UpdateSkelAnime(EnAn* this, PlayState* play) { s8 originalObjectSlot = this->actor.objectSlot; s8 otherObjectSlot = OBJECT_SLOT_NONE; s32 ret = 0; @@ -1036,7 +1036,7 @@ s32 EnAn_UpdateSkel(EnAn* this, PlayState* play) { if (otherObjectSlot > OBJECT_SLOT_NONE) { gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); - this->skelAnime.playSpeed = this->unk_368; + this->skelAnime.playSpeed = this->animPlaySpeed; ret = SkelAnime_Update(&this->skelAnime); gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); } @@ -1048,7 +1048,7 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { s8 originalObjectSlot = this->actor.objectSlot; s8 otherObjectSlot = OBJECT_SLOT_NONE; s32 changeAnim = false; - s32 ret = false; + s32 didAnimChange = false; if ((animIndex >= ENAN_ANIMOBJ_AN4) && (this->an4ObjectSlot > OBJECT_SLOT_NONE)) { otherObjectSlot = this->an4ObjectSlot; @@ -1061,7 +1061,7 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { } if (otherObjectSlot <= OBJECT_SLOT_NONE) { - return 0; + return false; } switch (animIndex) { @@ -1096,12 +1096,12 @@ s32 EnAn_ChangeAnim(EnAn* this, PlayState* play, EnAnAnimation animIndex) { if (changeAnim && (otherObjectSlot > OBJECT_SLOT_NONE)) { gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[otherObjectSlot].segment); this->animIndex = animIndex; - ret = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); - this->unk_368 = this->skelAnime.playSpeed; + didAnimChange = SubS_ChangeAnimationByInfoS(&this->skelAnime, sAnimationInfo, animIndex); + this->animPlaySpeed = this->skelAnime.playSpeed; gSegments[0x6] = OS_K0_TO_PHYSICAL(play->objectCtx.slots[originalObjectSlot].segment); } - return ret; + return didAnimChange; } void EnAn_UpdateCollider(EnAn* this, PlayState* play) { @@ -1264,7 +1264,7 @@ void EnAn_DrawAccessory(EnAn* this, PlayState* play, EnAnAccessory accessoryId) case ENAN_ACCESSORY_KAFEI_MASK: otherObjectSlot = this->maskKerfayObjectSlot; - if ((this->stateFlags & ENAN_STATE_DRAW_KAFEI_MASK) && !this->forceDraw && + if ((this->stateFlags & ENAN_STATE_DRAW_KAFEIS_MASK) && !this->forceDraw && (otherObjectSlot > OBJECT_SLOT_NONE)) { static Vec3f D_80B58E54 = { 190.0f, -130.0f, 0.0f }; static Vec3s D_80B58E60 = { 0, 0, 0x4168 }; @@ -1471,11 +1471,11 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { EnAn* this = THIS; s16 csId = EnAn_GetChildCsId(this, 0); - s32 ret = 0; + s32 ret = false; switch (this->msgEventState) { case 0x0: - ret = 0; + ret = false; if (!EnAn_ChangeCutscene(this, csId)) { break; } @@ -1489,7 +1489,7 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), this->actor.child); } - ret = 1; + ret = true; this->msgEventState++; break; @@ -1498,13 +1498,13 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { case 0x5: case 0x7: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); - ret = 1; + ret = true; this->msgEventState++; break; case 0x9: CutsceneManager_Stop(csId); - ret = 1; + ret = true; this->msgEventState++; break; @@ -1571,17 +1571,17 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { if ((Player_GetMask(play) == PLAYER_MASK_KAFEIS_MASK) || CHECK_WEEKEVENTREG(WEEKEVENTREG_TALKED_ANJU_IN_LAUNDRY_POOL)) { this->msgEventState++; - goto label; + // fallthrough } else { ret = true; - this->stateFlags |= ENAN_STATE_DRAW_KAFEI_MASK; + this->stateFlags |= ENAN_STATE_DRAW_KAFEIS_MASK; this->msgEventState++; } - break; + FALLTHROUGH; case 0x1: label: - this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEI_MASK); + this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEIS_MASK); this->stateFlags |= ENAN_STATE_LOST_ATTENTION; EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRY); ret = true; @@ -1996,7 +1996,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28EB: // "I'm afraid to meet him..." if (this->animIndex != ENAN_ANIM_UMBRELLA_CRY) { - this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEI_MASK); + this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEIS_MASK); this->stateFlags |= ENAN_STATE_LOST_ATTENTION; EnAn_ChangeAnim(this, play, ENAN_ANIM_UMBRELLA_CRY); } @@ -2115,6 +2115,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" this->savedFaceIndex = ENAN_FACE_0; FALLTHROUGH; + case 0x28A5: // "Visit us again in the future" case 0x28AA: // "One moment please" case 0x28F8: // "We'll go to Romani Ranch to take refuge" @@ -2181,6 +2182,7 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { case 0x28EC: // "Should I wait?" this->savedFaceIndex = ENAN_FACE_5; FALLTHROUGH; + case 0x28DC: // "Thank you" case 0x28EB: // "I'm afraid to meet him..." case 0x28F2: // "I wonder if Kafei is really at Cremia's" @@ -2228,10 +2230,6 @@ Actor* EnAn_FindLookAtActor(EnAn* this, PlayState* play) { Actor* actor; switch (this->scheduleResult) { - default: - actor = &GET_PLAYER(play)->actor; - break; - case ANJU_SCH_GIVE_LUNCH_TO_GRANNY: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_NB); break; @@ -2243,6 +2241,10 @@ Actor* EnAn_FindLookAtActor(EnAn* this, PlayState* play) { case ANJU_SCH_ATTEND_GORON: actor = EnAn_FindActor(this, play, ACTORCAT_NPC, ACTOR_EN_IG); break; + + default: + actor = &GET_PLAYER(play)->actor; + break; } return actor; @@ -2512,6 +2514,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_43: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); FALLTHROUGH; + case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK_WITH_TRAY); @@ -2555,6 +2558,7 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; FALLTHROUGH; + default: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; @@ -2636,6 +2640,7 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s case ANJU_SCH_WAITING_CLOSING_TIME: this->actor.world.rot.y += 0x7FF8; FALLTHROUGH; + case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); @@ -3255,7 +3260,7 @@ void EnAn_Talk(EnAn* this, PlayState* play) { } void EnAn_HandleCouplesMaskCutscene(EnAn* this, PlayState* play) { - s32 animIds[] = { + s32 csAnimIndex[] = { /* 0 */ 0, // no cue /* 1 */ ENAN_ANIM_SITTING_IN_DISBELIEF, /* 2 */ ENAN_ANIM_LOOK_UP, @@ -3287,7 +3292,7 @@ void EnAn_HandleCouplesMaskCutscene(EnAn* this, PlayState* play) { this->drawMoonMask = false; } - EnAn_ChangeAnim(this, play, animIds[cueId]); + EnAn_ChangeAnim(this, play, csAnimIndex[cueId]); } if ((this->animIndex == ENAN_ANIM_MASK_KNEEL) || (this->animIndex == ENAN_ANIM_HUG) || @@ -3351,7 +3356,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { if ((this->actionFunc != EnAn_Initialize) && !EnAn_CheckTalk(this, play) && EnAn_IsCouplesMaskCsPlaying(this, play)) { EnAn_HandleCouplesMaskCutscene(this, play); - EnAn_UpdateSkel(this, play); + EnAn_UpdateSkelAnime(this, play); EnAn_UpdateFace(this); return; } @@ -3359,7 +3364,7 @@ void EnAn_Update(Actor* thisx, PlayState* play) { this->actionFunc(this, play); if (this->scheduleResult != ANJU_SCH_NONE) { EnAn_HandleDialogue(this, play); - EnAn_UpdateSkel(this, play); + EnAn_UpdateSkelAnime(this, play); EnAn_UpdateFace(this); EnAn_UpdateAttention(this); SubS_Offer(&this->actor, play, this->offerRange, 30.0f, 0, this->stateFlags & SUBS_OFFER_MODE_MASK); diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 3114ab3dc..5d523c8c3 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -24,7 +24,7 @@ typedef s32 (*MsgEventFunc)(Actor*, PlayState*); #define ENAN_STATE_DRAW_TRAY (1 << 11) #define ENAN_STATE_DRAW_UMBRELLA (1 << 12) #define ENAN_STATE_DRAW_BROOM (1 << 13) -#define ENAN_STATE_DRAW_KAFEI_MASK (1 << 14) +#define ENAN_STATE_DRAW_KAFEIS_MASK (1 << 14) #define ENAN_STATE_DRAW_CHOPSTICKS (1 << 15) typedef struct EnAn { @@ -63,7 +63,7 @@ typedef struct EnAn { /* 0x360 */ u16 stateFlags; /* 0x362 */ u16 prevTextId; /* 0x364 */ u8 cueId; - /* 0x368 */ f32 unk_368; + /* 0x368 */ f32 animPlaySpeed; /* 0x36C */ UNK_TYPE1 unk_36C[0x8]; /* 0x374 */ f32 offerRange; /* 0x378 */ s16 doorTimeTotalDiff; // Time difference between the point before going through a door and after going through it diff --git a/tools/disasm/functions.txt b/tools/disasm/functions.txt index fdf90dd4a..783e899ac 100644 --- a/tools/disasm/functions.txt +++ b/tools/disasm/functions.txt @@ -14011,7 +14011,7 @@ 0x80B539CC:("EnAn_FindActor",), 0x80B53A7C:("func_80B53A7C",), 0x80B53B3C:("EnAn_FindDoor",), - 0x80B53BA8:("EnAn_UpdateSkel",), + 0x80B53BA8:("EnAn_UpdateSkelAnime",), 0x80B53CE8:("EnAn_ChangeAnim",), 0x80B53ED4:("EnAn_UpdateCollider",), 0x80B53F84:("EnAn_UpdateFace",), From aaea59e5a768a605b806e065291bad4df682d8b8 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 30 Oct 2023 10:00:17 -0300 Subject: [PATCH 76/78] whoops --- src/overlays/actors/ovl_En_An/z_en_an.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 ce10f156c..212a53adb 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -1576,6 +1576,7 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { ret = true; this->stateFlags |= ENAN_STATE_DRAW_KAFEIS_MASK; this->msgEventState++; + break; } FALLTHROUGH; @@ -2906,7 +2907,7 @@ s32 EnAn_HandleSch_Door(EnAn* this, PlayState* play) { } } - return 0; + return false; } s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { @@ -2962,7 +2963,7 @@ s32 EnAn_HandleSch_FollowTimePath(EnAn* this, PlayState* play) { Actor_PlaySfx(&this->actor, NA_SE_EV_PIRATE_WALK); } - return 0; + return false; } s32 EnAn_HandleSch_80B572D4(EnAn* this, PlayState* play) { From 954beb6a842988cfb329f67e5aeb2090219a7aa7 Mon Sep 17 00:00:00 2001 From: angie Date: Mon, 30 Oct 2023 10:47:07 -0300 Subject: [PATCH 77/78] review --- src/overlays/actors/ovl_En_An/z_en_an.c | 277 ++++++++++++------------ 1 file changed, 134 insertions(+), 143 deletions(-) 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 212a53adb..bedf65216 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -716,7 +716,7 @@ s32 sAnjuMsgScript_SchMidnightMeeting[0x14] = { 0x2E2D00, 0x012D0017, 0x2D00160C, 0x0700000E, 0x28DE0C15, 0x09000010, }; -// Surprised: "nevermind" +// Surprised: nevermind s32 sAnjuMsgScript_80B589FC[2] = { 0x0E28D62D, 0x10C10 }; s32 sAnjuMsgScript_DekuDefault[8] = { @@ -1387,7 +1387,6 @@ s32 EnAn_MsgEvent_ReceiveLetterFromPostman(Actor* thisx, PlayState* play) { break; } FALLTHROUGH; - case 0x2: case 0x4: case 0x6: @@ -1434,7 +1433,6 @@ s32 EnAn_MsgEvent_AttendGoron(Actor* thisx, PlayState* play) { break; } FALLTHROUGH; - case 0x2: case 0x4: Camera_SetTargetActor(Play_GetCamera(play, CutsceneManager_GetCurrentSubCamId(csId)), &this->actor); @@ -1480,7 +1478,6 @@ s32 EnAn_MsgEvent_GiveLunchToGranny(Actor* thisx, PlayState* play) { break; } FALLTHROUGH; - case 0x2: case 0x4: case 0x6: @@ -1579,7 +1576,6 @@ s32 EnAn_MsgEvent_LaundryPool(Actor* thisx, PlayState* play) { break; } FALLTHROUGH; - case 0x1: label: this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEIS_MASK); @@ -1963,39 +1959,39 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { if (this->prevTextId != textId) { switch (textId) { - case 0x28E5: // "Ah!" + case 0x28E5: // Ah! EnAn_ChangeAnim(this, play, ENAN_ANIM_SURPRISED); this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; break; - case 0x28BA: // "What's this?" - case 0x28D1: // "You are looking for Kafei?" + case 0x28BA: // What's this? + case 0x28D1: // You are looking for Kafei? EnAn_ChangeAnim(this, play, ENAN_ANIM_SURPRISED); break; - case 0x28AF: // "Good night" - case 0x28C1: // "I need to hurry and cook for grandmother" + case 0x28AF: // Good night + case 0x28C1: // I need to hurry and cook for grandmother EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); break; - case 0x28BC: // "Where did you got that letter?" + case 0x28BC: // Where did you got that letter? EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE_MORPH); break; - case 0x28C6: // "Don't talk to me or I'll drop this plate" + case 0x28C6: // Don't talk to me or I'll drop this plate EnAn_ChangeAnim(this, play, ENAN_ANIM_WAIT_WITH_TRAY); break; - case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" + case 0x28F5: // The town will be crushed by the moon. Forget about the letter EnAn_ChangeAnim(this, play, ENAN_ANIM_SIT_MORPH); break; - case 0x28F7: // "Everyone will be taking refuge by tomorrow" - case 0x28F8: // "We'll go to Romani Ranch to take refuge" + case 0x28F7: // Everyone will be taking refuge by tomorrow + case 0x28F8: // We'll go to Romani Ranch to take refuge EnAn_ChangeAnim(this, play, ENAN_ANIM_BROOM_IDLE); break; - case 0x28EB: // "I'm afraid to meet him..." + case 0x28EB: // I'm afraid to meet him... if (this->animIndex != ENAN_ANIM_UMBRELLA_CRY) { this->stateFlags &= ~(ENAN_STATE_ENGAGED | ENAN_STATE_DRAW_KAFEIS_MASK); this->stateFlags |= ENAN_STATE_LOST_ATTENTION; @@ -2003,99 +1999,99 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { } break; - case 0x28A4: // "That's good. We're totally booked right before the carnival" - case 0x28A9: // "You do have a reservation?" - case 0x28BE: // "From what postbox did you got that letter?!" - case 0x28C0: // "Not what I mean!" - case 0x295E: // "I need to know!" + case 0x28A4: // That's good. We're totally booked right before the carnival + case 0x28A9: // You do have a reservation? + case 0x28BE: // From what postbox did you got that letter?! + case 0x28C0: // Not what I mean! + case 0x295E: // I need to know! this->dialogueFunc = EnAn_DialogueFunc_80B556F8; this->dialogueFuncState = 0; break; - case 0x28E6: // "It's from Kafei" + case 0x28E6: // It's from Kafei this->stateFlags &= ~ENAN_STATE_DRAW_BROOM; this->dialogueFunc = EnAn_DialogueFunc_80B55860; this->dialogueFuncState = 0; break; - case 0x1885: // "It's 8:30 pm and the Inn is locking the door" - case 0x28A0: // "Welcome to the Inn." - case 0x28A3: // "I'm sorry, there are no vacancies. We are always booked at the carnival" - case 0x28A5: // "Visit us again in the future" - case 0x28B1: // "I'm sorry, there are no vacancies" - case 0x28D2: // "I have a clue that will help find Kafei" - case 0x28D9: // "Please" - case 0x28DC: // "Thank you" - case 0x28DE: // "Mail it in the morning" + case 0x1885: // It's 8:30 pm and the Inn is locking the door + case 0x28A0: // Welcome to the Inn. + case 0x28A3: // I'm sorry, there are no vacancies. We are always booked at the carnival + case 0x28A5: // Visit us again in the future + case 0x28B1: // I'm sorry, there are no vacancies + case 0x28D2: // I have a clue that will help find Kafei + case 0x28D9: // Please + case 0x28DC: // Thank you + case 0x28DE: // Mail it in the morning this->dialogueFunc = EnAn_DialogueFunc_80B557AC; this->dialogueFuncState = 0; break; - case 0x28A1: // "Are you staying the night?" - case 0x28A2: // "You are staying the night!?" - case 0x28A6: // "Are you staying the night? Did I ask you the same earlier?" - case 0x28A7: // "Enjoy the carnival" - case 0x28A8: // "Did you have a reservation?" - case 0x28AA: // "One moment please" - case 0x28AB: // "I expected your arrival for afternon. Your room is on the second floor" - case 0x28AC: // "Have you been to the plaza yet? They are putting the carnival stuff" - case 0x28AD: // "Relax..." - case 0x28AE: // doesn't exist - case 0x28B0: // "It's hard to find one's way on the city goro" - case 0x28B2: // "I should have a reservation-goro" - case 0x28B3: // "I do have your reservation. Your room is on the second floor" - case 0x28B4: // "The place is falling apart-goro" - case 0x28B5: // "I made a reservation. I'm [Player]-goro" - case 0x28B6: // "[Player]-goro? There's a reservation under a similar name, but it's taken" - case 0x28B7: // "Really-goro? I'll just sleep outside then-goro" - case 0x28B8: // "I'm sorry" - case 0x28B9: // "It's a hard world-goro" - case 0x28BB: // "I delivered this to you!" - case 0x28BD: // "From the postbox" - case 0x28BF: // "From somewhere" - case 0x28C2: // "I need to hurry! The afternoon guest will arrive soon" - case 0x28C3: // "Used to be a cafeteria" + case 0x28A1: // Are you staying the night? + case 0x28A2: // You are staying the night!? + case 0x28A6: // Are you staying the night? Did I ask you the same earlier? + case 0x28A7: // Enjoy the carnival + case 0x28A8: // Did you have a reservation? + case 0x28AA: // One moment please + case 0x28AB: // I expected your arrival for afternon. Your room is on the second floor + case 0x28AC: // Have you been to the plaza yet? They are putting the carnival stuff + case 0x28AD: // Relax... + case 0x28AE: // oesn't exis + case 0x28B0: // It's hard to find one's way on the city goro + case 0x28B2: // I should have a reservation-goro + case 0x28B3: // I do have your reservation. Your room is on the second floor + case 0x28B4: // The place is falling apart-goro + case 0x28B5: // I made a reservation. I'm [Player]-goro + case 0x28B6: // [Player]-goro? There's a reservation under a similar name, but it's taken + case 0x28B7: // Really-goro? I'll just sleep outside then-goro + case 0x28B8: // I'm sorry + case 0x28B9: // It's a hard world-goro + case 0x28BB: // I delivered this to you! + case 0x28BD: // From the postbox + case 0x28BF: // From somewhere + case 0x28C2: // I need to hurry! The afternoon guest will arrive soon + case 0x28C3: // Used to be a cafeteria case 0x28C4: - case 0x28C5: // "Mmm?" - case 0x28C7: // "Tortus, I've already had lunch" - case 0x28C8: // "I'm Anju! Tortus was my dad..." - case 0x28C9: // "I've already had lunch" - case 0x28CA: // "Please eat..." - case 0x28CB: // "I already ate lunch" - case 0x28CC: // "Don't eat my food then" - case 0x28CD: // "Phew" - case 0x28CE: // "Phew?" - case 0x28CF: // "Want me to read a story?" - case 0x28D0: // "That mask... You are looking for Kafei" - case 0x28D3: // "Come to our kitchen at 11:30" - case 0x28D4: // "I'll find him myself" - case 0x28D5: // "I wonder where Kafei could have gone" - case 0x28D6: // "Nevermind!" - case 0x28D7: // "I'm sorry to bother you late at night" - case 0x28D8: // "I received a letter from Kafei" - case 0x28DA: // "Put my letter in a postbox" - case 0x28DB: // "Can I ask this to you?" - case 0x28DD: // doesn't exist - case 0x28DF: // "You won't take refuge?" - case 0x28E0: // "Today's weather" - case 0x28E1: // "I'll wait for him" - case 0x28E2: // "Did you see him? It's too late" - case 0x28E3: // "Did you see him? It's too early" - case 0x28E4: // "Did you meet him?" - case 0x28E7: // "What's that?" - case 0x28E8: // "Have you seen a man around here?" - case 0x28E9: // "He looks like this" - case 0x28EA: // "He disappeared a month ago" - case 0x28EC: // "Should I wait?" - case 0x28ED: // "You are looking for him too" - case 0x28EE: // "I came here to look for him myself" - case 0x28EF: // "What a ramshackle inn" - case 0x28F0: // "Everything is falling apart" - case 0x28F1: // "We are leaving in the evening for the ranch" - case 0x28F2: // "I wonder if Kafei is really at Cremia's" + case 0x28C5: // Mmm? + case 0x28C7: // Tortus, I've already had lunch + case 0x28C8: // I'm Anju! Tortus was my dad... + case 0x28C9: // I've already had lunch + case 0x28CA: // Please eat... + case 0x28CB: // I already ate lunch + case 0x28CC: // Don't eat my food then + case 0x28CD: // Phew + case 0x28CE: // Phew? + case 0x28CF: // Want me to read a story? + case 0x28D0: // That mask... You are looking for Kafei + case 0x28D3: // Come to our kitchen at 11:30 + case 0x28D4: // I'll find him myself + case 0x28D5: // I wonder where Kafei could have gone + case 0x28D6: // Nevermind! + case 0x28D7: // I'm sorry to bother you late at night + case 0x28D8: // I received a letter from Kafei + case 0x28DA: // Put my letter in a postbox + case 0x28DB: // Can I ask this to you? + case 0x28DD: // oesn't exis + case 0x28DF: // You won't take refuge? + case 0x28E0: // Today's weather + case 0x28E1: // I'll wait for him + case 0x28E2: // Did you see him? It's too late + case 0x28E3: // Did you see him? It's too early + case 0x28E4: // Did you meet him? + case 0x28E7: // What's that? + case 0x28E8: // Have you seen a man around here? + case 0x28E9: // He looks like this + case 0x28EA: // He disappeared a month ago + case 0x28EC: // Should I wait? + case 0x28ED: // You are looking for him too + case 0x28EE: // I came here to look for him myself + case 0x28EF: // What a ramshackle inn + case 0x28F0: // Everything is falling apart + case 0x28F1: // We are leaving in the evening for the ranch + case 0x28F2: // I wonder if Kafei is really at Cremia's case 0x28F3: - case 0x28F4: // "But he said in the letter he'll come back" - case 0x28F6: // "Mother thank you" + case 0x28F4: // But he said in the letter he'll come back + case 0x28F6: // Mother thank you default: if (this->animIndex == ENAN_ANIM_WALK_WITH_TRAY) { EnAn_ChangeAnim(this, play, ENAN_ANIM_WAIT_WITH_TRAY); @@ -2113,92 +2109,90 @@ s32 EnAn_HandleDialogue(EnAn* this, PlayState* play) { } switch (textId) { - case 0x28F5: // "The town will be crushed by the moon. Forget about the letter" + case 0x28F5: // The town will be crushed by the moon. Forget about the letter this->savedFaceIndex = ENAN_FACE_0; FALLTHROUGH; - - case 0x28A5: // "Visit us again in the future" - case 0x28AA: // "One moment please" - case 0x28F8: // "We'll go to Romani Ranch to take refuge" + case 0x28A5: // Visit us again in the future + case 0x28AA: // One moment please + case 0x28F8: // We'll go to Romani Ranch to take refuge this->faceIndex = ENAN_FACE_0; this->eyeTimer = 8; break; - case 0x1885: // "It's 8:30 pm and the Inn is locking the door" - case 0x28A0: // "Welcome to the Inn." - case 0x28A6: // "Are you staying the night? Did I ask you the same earlier?" - case 0x28AF: // "Good night" - case 0x28C1: // "I need to hurry and cook for grandmother" + case 0x1885: // It's 8:30 pm and the Inn is locking the door + case 0x28A0: // Welcome to the Inn. + case 0x28A6: // Are you staying the night? Did I ask you the same earlier? + case 0x28AF: // Good night + case 0x28C1: // I need to hurry and cook for grandmother this->faceIndex = ENAN_FACE_3; this->eyeTimer = 8; break; - case 0x28A2: // "You are staying the night!?" - case 0x28B3: // "I do have your reservation. Your room is on the second floor" - case 0x28B6: // "[Player]-goro? There's a reservation under a similar name, but it's taken" - case 0x28BA: // "What's this?" - case 0x28BE: // "From what postbox did you got that letter?!" - case 0x28CE: // "Phew?" - case 0x28D0: // "That mask... You are looking for Kafei" - case 0x28D6: // "Nevermind!" - case 0x28E5: // "Ah!" - case 0x28E7: // "What's that?" - case 0x28ED: // "You are looking for him too" + case 0x28A2: // You are staying the night!? + case 0x28B3: // I do have your reservation. Your room is on the second floor + case 0x28B6: // [Player]-goro? There's a reservation under a similar name, but it's taken + case 0x28BA: // What's this? + case 0x28BE: // From what postbox did you got that letter?! + case 0x28CE: // Phew? + case 0x28D0: // That mask... You are looking for Kafei + case 0x28D6: // Nevermind! + case 0x28E5: // Ah! + case 0x28E7: // What's that? + case 0x28ED: // You are looking for him too this->faceIndex = ENAN_FACE_1; this->eyeTimer = 8; break; - case 0x28AD: // "Relax..." + case 0x28AD: // Relax... this->faceIndex = ENAN_FACE_8; this->eyeTimer = 8; break; - case 0x28C0: // "Not what I mean!" - case 0x28D7: // "I'm sorry to bother you late at night" - case 0x28DE: // "Mail it in the morning" + case 0x28C0: // Not what I mean! + case 0x28D7: // I'm sorry to bother you late at night + case 0x28DE: // Mail it in the morning this->faceIndex = ENAN_FACE_2; this->eyeTimer = 8; break; - case 0x28E6: // "It's from Kafei" - case 0x28F7: // "Everyone will be taking refuge by tomorrow" + case 0x28E6: // It's from Kafei + case 0x28F7: // Everyone will be taking refuge by tomorrow this->faceIndex = ENAN_FACE_6; this->eyeTimer = 8; break; - case 0x28A3: // "I'm sorry, there are no vacancies. We are always booked at the carnival" - case 0x28B1: // "I'm sorry, there are no vacancies" - case 0x28B8: // "I'm sorry" - case 0x28C6: // "Don't talk to me or I'll drop this plate" - case 0x28CA: // "Please eat..." - case 0x28CC: // "Don't eat my food then" - case 0x28D5: // "I wonder where Kafei could have gone" - case 0x28E2: // "Did you see him? It's too late" - case 0x28E3: // "Did you see him? It's too early" - case 0x28E4: // "Did you meet him?" + case 0x28A3: // I'm sorry, there are no vacancies. We are always booked at the carnival + case 0x28B1: // I'm sorry, there are no vacancies + case 0x28B8: // I'm sorry + case 0x28C6: // Don't talk to me or I'll drop this plate + case 0x28CA: // Please eat... + case 0x28CC: // Don't eat my food then + case 0x28D5: // I wonder where Kafei could have gone + case 0x28E2: // Did you see him? It's too late + case 0x28E3: // Did you see him? It's too early + case 0x28E4: // Did you meet him? this->faceIndex = ENAN_FACE_4; this->eyeTimer = 8; break; - case 0x28EC: // "Should I wait?" + case 0x28EC: // Should I wait? this->savedFaceIndex = ENAN_FACE_5; FALLTHROUGH; - - case 0x28DC: // "Thank you" - case 0x28EB: // "I'm afraid to meet him..." - case 0x28F2: // "I wonder if Kafei is really at Cremia's" - case 0x28F9: // "Perhaps I was wrong..." + case 0x28DC: // Thank you + case 0x28EB: // I'm afraid to meet him... + case 0x28F2: // I wonder if Kafei is really at Cremia's + case 0x28F9: // Perhaps I was wrong... this->faceIndex = ENAN_FACE_5; this->eyeTimer = 8; break; - case 0x28F6: // "Mother thank you" + case 0x28F6: // Mother thank you this->faceIndex = ENAN_FACE_9; this->eyeTimer = 8; break; - case 0x28A4: // "That's good. We're totally booked right before the carnival" - case 0x28A9: // "You do have a reservation?" + case 0x28A4: // That's good. We're totally booked right before the carnival + case 0x28A9: // You do have a reservation? this->faceIndex = ENAN_FACE_7; this->eyeTimer = 8; break; @@ -2515,7 +2509,6 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc case ANJU_SCH_WALKING_43: SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); FALLTHROUGH; - case ANJU_SCH_WALKING_44: case ANJU_SCH_WALKING_45: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK_WITH_TRAY); @@ -2559,7 +2552,6 @@ s32 EnAn_ProcessSchedule_Walking(EnAn* this, PlayState* play, ScheduleOutput* sc SubS_SetOfferMode(&this->stateFlags, SUBS_OFFER_MODE_ONSCREEN, SUBS_OFFER_MODE_MASK); this->stateFlags |= ENAN_STATE_UPDATE_EYES | ENAN_STATE_LOST_ATTENTION; FALLTHROUGH; - default: EnAn_ChangeAnim(this, play, ENAN_ANIM_WALK); break; @@ -2641,7 +2633,6 @@ s32 EnAn_ProcessSchedule_80B56880(EnAn* this, PlayState* play, ScheduleOutput* s case ANJU_SCH_WAITING_CLOSING_TIME: this->actor.world.rot.y += 0x7FF8; FALLTHROUGH; - case ANJU_SCH_RECEPTIONIST_IDLE: case ANJU_SCH_MIDNIGHT_MEETING: EnAn_ChangeAnim(this, play, ENAN_ANIM_IDLE); From 0914861a424a73ab188b183a65648c2dbd44b334 Mon Sep 17 00:00:00 2001 From: angie Date: Tue, 31 Oct 2023 08:42:46 -0300 Subject: [PATCH 78/78] ENAN_GET_8000 --- src/overlays/actors/ovl_En_An/z_en_an.c | 2 +- src/overlays/actors/ovl_En_An/z_en_an.h | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) 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 bedf65216..75f26c28a 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.c +++ b/src/overlays/actors/ovl_En_An/z_en_an.c @@ -3308,7 +3308,7 @@ void EnAn_Init(Actor* thisx, PlayState* play) { this->actor.params &= (s16)~ENAN_8000; } - temp_v1 = (this->actor.params & ENAN_8000) >> 0xF; + temp_v1 = ENAN_GET_8000(&this->actor) >> 0xF; watchedCouplesMaskCs = CHECK_WEEKEVENTREG(WEEKEVENTREG_COUPLES_MASK_CUTSCENE_FINISHED); if ((!watchedCouplesMaskCs && (temp_v1 == 1)) || (watchedCouplesMaskCs && (temp_v1 == 0))) { diff --git a/src/overlays/actors/ovl_En_An/z_en_an.h b/src/overlays/actors/ovl_En_An/z_en_an.h index 5d523c8c3..86a357d66 100644 --- a/src/overlays/actors/ovl_En_An/z_en_an.h +++ b/src/overlays/actors/ovl_En_An/z_en_an.h @@ -10,9 +10,11 @@ typedef void (*EnAnActionFunc)(struct EnAn*, PlayState*); typedef void (*EnAnDialogueFunc)(struct EnAn*, PlayState*); typedef s32 (*MsgEventFunc)(Actor*, PlayState*); -#define ENAN_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF) #define ENAN_8000 0x8000 +#define ENAN_GET_PATH_INDEX(thisx) ((thisx)->params & 0xFF) +#define ENAN_GET_8000(thisx) ((thisx)->params & ENAN_8000) + #define ENAN_STATE_8 (1 << 3) // path related #define ENAN_STATE_REACHED_PATH_END (1 << 4) #define ENAN_STATE_ENGAGED (1 << 5)