diff --git a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c index 34f706f159..8a25e8258f 100644 --- a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c +++ b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.c @@ -322,7 +322,31 @@ void func_80AB3240(ObjTokeidai* this, GlobalContext* globalCtx) { #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/func_80AB38B0.s") -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_Obj_Tokeidai/func_80AB39BC.s") +void func_80AB39BC(ObjTokeidai* this, GlobalContext* globalCtx) { + s32 type; + + if (this->unk_154 > 0) { + if ((this->unk_154 & 1) != 0) { + this->unk_15E = this->unk_156 + 0xD48; + } else { + this->unk_15E = 0xD48 - this->unk_156; + if (this->unk_156 > 0) { + this->unk_156 -= 4; + } + } + this->unk_154 += -1; + } else { + type = OBJ_TOKEIDAI_TYPE(&this->actor); + if ((type == 2) || (type == 5)) { + Audio_PlayActorSound2(&this->actor, NA_SE_EV_CLOCK_TOWER_FALL); + } + this->unk_15E = 0xD48; + this->actionFunc = func_80AB38B0; + this->unk_154 = 0; + this->unk_156 = 0xA; + this->unk_164 = 0; + } +} void func_80AB3A7C(ObjTokeidai* this, GlobalContext* globalCtx) { s32 type; diff --git a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.h b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.h index 2f957fd06c..b83fc6b4ef 100644 --- a/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.h +++ b/src/overlays/actors/ovl_Obj_Tokeidai/z_obj_tokeidai.h @@ -24,7 +24,8 @@ typedef struct ObjTokeidai { /* 0x015E */ s16 unk_15E; /* 0x0160 */ s16 unk_160; /* 0x0162 */ s16 unk_162; - /* 0x0164 */ char unk_164[0x4]; + /* 0x0164 */ s16 unk_164; + /* 0x0166 */ char unk_166[0x2]; /* 0x0168 */ s32 unk_168; /* 0x016C */ s32 unk_16C; /* 0x0170 */ u16 unk_170;