From 896d39bdbbf34b02770cae3bbcdfcf7db960070d Mon Sep 17 00:00:00 2001 From: Tal Hayon Date: Sun, 17 Jul 2022 10:05:18 +0300 Subject: [PATCH] Match ChuchuBoss_OnDeath --- .../chuchuBoss/ChuchuBoss_OnDeath.inc | 120 ------------------ src/enemy/chuchuBoss.c | 21 ++- 2 files changed, 14 insertions(+), 127 deletions(-) delete mode 100644 asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc diff --git a/asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc b/asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc deleted file mode 100644 index 236841ec..00000000 --- a/asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc +++ /dev/null @@ -1,120 +0,0 @@ - .syntax unified - push {r4, r5, lr} - adds r4, r0, #0 - bl sub_08078B48 - ldrb r3, [r4, #0xa] - cmp r3, #0 - bne _08025DA4 - ldrb r0, [r4, #0xd] - cmp r0, #0xc - beq _08025CFE - movs r0, #0xc - strb r0, [r4, #0xd] - adds r0, r4, #0 - adds r0, #0x84 - ldr r0, [r0] - strb r3, [r0, #3] - ldr r0, [r4, #0x54] - movs r1, #9 - bl InitAnimationForceUpdate - b _08025D9C -_08025CFE: - adds r5, r4, #0 - adds r5, #0x84 - ldr r0, [r5] - ldrb r0, [r0, #3] - cmp r0, #0 - beq _08025D10 - cmp r0, #1 - beq _08025D28 - b _08025D9C -_08025D10: - adds r0, r4, #0 - movs r1, #0x3f - bl sub_08027C7C - ldr r0, [r5] - movs r1, #1 - strb r1, [r0, #3] - adds r1, r4, #0 - adds r1, #0x7d - movs r0, #0x78 - strb r0, [r1] - b _08025D9C -_08025D28: - adds r2, r4, #0 - adds r2, #0x7d - ldrb r0, [r2] - subs r1, r0, #1 - strb r1, [r2] - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - cmp r0, #0xff - bne _08025D84 - ldr r1, [r4, #0x54] - adds r1, #0x6d - ldrb r0, [r1] - movs r2, #2 - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x68] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r1, [r4, #0x50] - adds r1, #0x6d - ldrb r0, [r1] - orrs r0, r2 - strb r0, [r1] - ldr r2, [r4, #0x54] - ldr r1, [r4, #0x50] - ldr r0, [r4, #0x68] - adds r0, #0x45 - strb r3, [r0] - adds r1, #0x45 - strb r3, [r1] - adds r2, #0x45 - strb r3, [r2] - ldr r0, _08025D80 @ =gPauseMenuOptions - strb r3, [r0] - movs r0, #0x94 - lsls r0, r0, #1 - bl SoundReq - adds r0, r4, #0 - bl GenericDeath - b _08025D9C - .align 2, 0 -_08025D80: .4byte gPauseMenuOptions -_08025D84: - lsls r0, r1, #0x18 - lsrs r0, r0, #0x18 - movs r1, #0x3f - cmp r0, #0x50 - bhi _08025D96 - movs r1, #0xf - cmp r0, #0x1e - bls _08025D96 - movs r1, #0x1f -_08025D96: - adds r0, r4, #0 - bl sub_08027C7C -_08025D9C: - adds r0, r4, #0 - bl sub_08027870 - b _08025DBC -_08025DA4: - adds r2, r4, #0 - adds r2, #0x6d - ldrb r1, [r2] - movs r0, #2 - ands r0, r1 - cmp r0, #0 - beq _08025DBC - movs r0, #2 - orrs r0, r1 - strb r0, [r2] - bl DeleteThisEntity -_08025DBC: - pop {r4, r5, pc} - .align 2, 0 - .syntax divided diff --git a/src/enemy/chuchuBoss.c b/src/enemy/chuchuBoss.c index 4350ae9c..fe228005 100644 --- a/src/enemy/chuchuBoss.c +++ b/src/enemy/chuchuBoss.c @@ -260,11 +260,14 @@ void ChuchuBoss_OnKnockback(ChuchuBossEntity* this) { } } -NONMATCH("asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc", void ChuchuBoss_OnDeath(ChuchuBossEntity* this)) { +void ChuchuBoss_OnDeath(ChuchuBossEntity* this) { + Entity* child; + Entity* parent; + sub_08078B48(); if (super->type == 0) { - if (super->subAction != 0xC) { - super->subAction = 0xC; + if (super->subAction != 12) { + super->subAction = 12; this->unk_84->unk_03 = 0; InitAnimationForceUpdate(super->child, 9); } else { @@ -279,19 +282,24 @@ NONMATCH("asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc", void ChuchuBoss_O ((GenericEntity*)super->child)->field_0x6c.HALF.HI |= 2; this->unk_68->unk_6d.unk1 = 1; ((GenericEntity*)super->parent)->field_0x6c.HALF.HI |= 2; - super->child->health = 0; + parent = super->child; + child = super->parent; this->unk_68->base.health = 0; - super->parent->health = 0; + child->health = 0; + parent->health = 0; gPauseMenuOptions.disabled = 0; SoundReq(SFX_BOSS_DIE); GenericDeath(super); } else { + bool32 b = this->unk_7d <= 0x50; u32 tmp = 0x3F; if (this->unk_7d <= 0x50) { - tmp = 0xF; if (this->unk_7d > 0x1E) { tmp = 0x1F; + } else { + tmp = 0xF; } + } else { } sub_08027C7C(this, tmp); } @@ -308,7 +316,6 @@ NONMATCH("asm/non_matching/chuchuBoss/ChuchuBoss_OnDeath.inc", void ChuchuBoss_O } } } -END_NONMATCH void ChuchuBoss_OnTick(ChuchuBossEntity* this) { gUnk_080CC1B0[super->action](this);