From 92287593acff2a4e01b68b0005b22aac44173157 Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Tue, 19 Jul 2022 04:13:33 +0300 Subject: [PATCH] Match sub_080279E8 --- asm/enemy/chuchuBoss.s | 68 ------------------------------------------ src/enemy/chuchuBoss.c | 28 +++++++++++++++++ 2 files changed, 28 insertions(+), 68 deletions(-) diff --git a/asm/enemy/chuchuBoss.s b/asm/enemy/chuchuBoss.s index 90985728..e295b612 100644 --- a/asm/enemy/chuchuBoss.s +++ b/asm/enemy/chuchuBoss.s @@ -13,74 +13,6 @@ - thumb_func_start sub_080279E8 -sub_080279E8: @ 0x080279E8 - push {r4, lr} - sub sp, #4 - adds r2, r0, #0 - ldr r4, [r2, #0x54] - adds r0, #0x81 - ldrb r0, [r0] - cmp r0, #0x80 - bne _08027A20 - adds r0, r2, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r0, #0xe - ldr r0, [r0] - ldrb r0, [r0, #5] - subs r1, r1, r0 - cmp r1, #0x80 - bne _08027A58 - adds r0, r2, #0 - adds r0, #0x82 - ldrb r1, [r0] - movs r0, #1 - str r0, [sp] - adds r0, r2, #0 - movs r2, #0xa0 - movs r3, #0x20 - bl sub_08027B98 - b _08027A58 -_08027A20: - adds r0, r4, #0 - adds r0, #0x76 - ldrh r1, [r0] - adds r3, r0, #0 - cmp r1, #0xa0 - bls _08027A30 - subs r0, r1, #4 - b _08027A32 -_08027A30: - movs r0, #0xa0 -_08027A32: - strh r0, [r3] - adds r0, r4, #0 - adds r0, #0x7a - ldrh r2, [r0] - adds r1, r0, #0 - cmp r2, #0xa0 - bls _08027A44 - subs r0, r2, #4 - b _08027A46 -_08027A44: - movs r0, #0xa0 -_08027A46: - strh r0, [r1] - ldrh r0, [r3] - cmp r0, #0xa0 - bne _08027A58 - ldrh r0, [r1] - cmp r0, #0xa0 - bne _08027A58 - movs r0, #1 - b _08027A5A -_08027A58: - movs r0, #0 -_08027A5A: - add sp, #4 - pop {r4, pc} - .align 2, 0 thumb_func_start sub_08027A60 sub_08027A60: @ 0x08027A60 diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index c7182d4f..9e586661 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -1646,3 +1646,31 @@ void sub_080279AC(ChuchuBossEntity* this, Entity* param_2, s32 param_3) { param_2->hitbox->offset_x = param_2->spriteOffsetX; param_2->hitbox->offset_y = param_2->spriteOffsetY; } + +bool32 sub_080279E8(ChuchuBossEntity* this) { + u32 sVar1; + u32 sVar2; + ChuchuBossEntity* pEVar4; + + pEVar4 = (ChuchuBossEntity*)super->child; + if (this->unk_81 == 0x80) { + if (this->unk_74.HALF_U.HI - (u8)this->unk_84->unk_05 == 0x80) { + sub_08027B98(this, this->unk_82.HALF.LO, 0xa0, 0x20, 1); + } + } else { + if (pEVar4->unk_74.HALF_U.HI >= 0xa1) { + pEVar4->unk_74.HALF_U.HI = pEVar4->unk_74.HALF_U.HI - 4; + } else { + pEVar4->unk_74.HALF_U.HI = 0xa0; + } + if (pEVar4->unk_78.HALF_U.HI >= 0xa1) { + pEVar4->unk_78.HALF_U.HI = pEVar4->unk_78.HALF_U.HI - 4; + } else { + pEVar4->unk_78.HALF_U.HI = 0xa0; + } + if ((pEVar4->unk_74.HALF_U.HI == 0xa0) && (pEVar4->unk_78.HALF_U.HI == 0xa0)) { + return TRUE; + } + } + return FALSE; +}