From 06dcc8a30eadb3ffe1a606b817c4fac3f59e9c9b Mon Sep 17 00:00:00 2001 From: Alejandro Javier Asenjo Nitti Date: Fri, 3 Nov 2023 02:39:51 -0300 Subject: [PATCH] func_80C0BFE8 --- src/overlays/actors/ovl_En_Bsb/z_en_bsb.c | 22 +++++++++++++++++++++- src/overlays/actors/ovl_En_Bsb/z_en_bsb.h | 4 +++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/src/overlays/actors/ovl_En_Bsb/z_en_bsb.c b/src/overlays/actors/ovl_En_Bsb/z_en_bsb.c index 7fd07973b..24ae0180d 100644 --- a/src/overlays/actors/ovl_En_Bsb/z_en_bsb.c +++ b/src/overlays/actors/ovl_En_Bsb/z_en_bsb.c @@ -22,6 +22,7 @@ s32 func_80C0BC30(EnBsb* this); void func_80C0BE1C(EnBsb* this, PlayState* play); void func_80C0BF2C(EnBsb* this); void func_80C0BFE8(EnBsb* this, PlayState* play); +void func_80C0C0F4(EnBsb* this, PlayState* play); void func_80C0C238(EnBsb* this, PlayState* play); void func_80C0C364(EnBsb* this, PlayState* play); void func_80C0C484(EnBsb* this, PlayState* play); @@ -316,7 +317,26 @@ void func_80C0BF2C(EnBsb* this) { this->actionFunc = func_80C0BFE8; } -#pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Bsb/func_80C0BFE8.s") +void func_80C0BFE8(EnBsb* this, PlayState* play) { + Player* player = GET_PLAYER(play); + s16 temp_v0 = ABS_ALT((s16)(this->actor.yawTowardsPlayer - this->actor.shape.rot.y)); + + if ((temp_v0 < 0x4300) && !(this->actor.xzDistToPlayer > 300.0f)) { + if (player->stateFlags2 & 0x08000000) { + if (this->unk_0290 == 0) { + Audio_PlaySfx(0x4807U); + this->unk_0290 = 1; + } + } else { + this->unk_0290 = 0; + } + if ((play->msgCtx.ocarinaMode == 3) && (play->msgCtx.lastPlayedSong == 0)) { + play->msgCtx.ocarinaMode = 4; + func_800BC154(play, &play->actorCtx, &this->actor, 9U); + func_80C0C0F4(this, play); + } + } +} #pragma GLOBAL_ASM("asm/non_matchings/overlays/ovl_En_Bsb/func_80C0C0F4.s") diff --git a/src/overlays/actors/ovl_En_Bsb/z_en_bsb.h b/src/overlays/actors/ovl_En_Bsb/z_en_bsb.h index dbfaa9da8..bcd5b4b4e 100644 --- a/src/overlays/actors/ovl_En_Bsb/z_en_bsb.h +++ b/src/overlays/actors/ovl_En_Bsb/z_en_bsb.h @@ -13,7 +13,9 @@ typedef struct EnBsb { /* 0x0188 */ Vec3s unk_188[21]; /* 0x0188 */ Vec3s unk_206[21]; /* 0x0284 */ EnBsbActionFunc actionFunc; - /* 0x0288 */ char unk_288[0xC]; + /* 0x0288 */ char unk_288[0x8]; + /* 0x0290 */ u8 unk_0290; + /* 0x0291 */ char pad_0291[0x3]; /* 0x0294 */ s16 unk294; /* 0x0296 */ char unk_296[0xE]; /* 0x02A4 */ s32 unk2A4;