Match sub_08026E1C

This commit is contained in:
Tal Hayon 2022-07-17 06:12:14 +03:00
parent 1f0a99b011
commit 204bc4e9a4
2 changed files with 47 additions and 143 deletions

View File

@ -9,148 +9,6 @@
thumb_func_start sub_08026E1C
sub_08026E1C: @ 0x08026E1C
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
sub sp, #4
adds r4, r0, #0
adds r1, r4, #0
adds r1, #0x7c
ldrb r0, [r1]
adds r6, r0, #0
cmp r6, #0
bne _08026EE0
ldr r0, [r4, #0x54]
ldrb r0, [r0, #0xf]
ldr r1, [r4, #0x50]
ldrb r1, [r1, #0xf]
ldr r2, [r4, #0x68]
adds r0, r0, r1
ldrb r2, [r2, #0xf]
adds r0, r0, r2
cmp r0, #0xa
ble _08026EF2
ldrb r0, [r4, #0x10]
movs r1, #0x80
mov r8, r1
movs r7, #0
mov r1, r8
orrs r0, r1
strb r0, [r4, #0x10]
adds r0, r4, #0
bl sub_08027C54
adds r5, r4, #0
adds r5, #0x84
cmp r0, #0
beq _08026E72
ldr r1, [r5]
ldrb r0, [r1, #4]
adds r0, #1
strb r0, [r1, #4]
ldr r0, [r4, #0x54]
adds r0, #0x45
movs r1, #0xff
strb r1, [r0]
_08026E72:
ldr r1, [r5]
ldrb r0, [r1, #4]
cmp r0, #3
bne _08026EA0
adds r0, r4, #0
adds r0, #0x45
strb r6, [r0]
ldrb r0, [r4, #0x10]
movs r1, #0x7f
ands r1, r0
strb r1, [r4, #0x10]
ldr r3, [r4, #0x54]
ldr r2, [r4, #0x50]
ldr r0, [r4, #0x68]
strb r1, [r0, #0x10]
ldrb r0, [r4, #0x10]
strb r0, [r2, #0x10]
strb r0, [r3, #0x10]
adds r1, r4, #0
adds r1, #0x3d
movs r0, #0xc4
strb r0, [r1]
b _08026F14
_08026EA0:
movs r0, #4
strb r0, [r1]
ldr r1, [r5]
movs r0, #0x81
strb r0, [r1, #1]
ldrb r0, [r4, #0x10]
mov r1, r8
orrs r0, r1
strb r0, [r4, #0x10]
adds r1, r4, #0
adds r1, #0x3f
movs r0, #0x7d
strb r0, [r1]
movs r0, #0xb
strb r0, [r4, #0xd]
ldr r0, [r5]
strb r6, [r0, #3]
ldr r0, [r4, #0x54]
movs r1, #0
bl InitAnimationForceUpdate
str r6, [sp]
adds r0, r4, #0
movs r1, #0x80
movs r2, #0x80
movs r3, #0x80
bl sub_08027B98
ldr r1, [r5]
movs r0, #0x21
strb r0, [r1, #1]
b _08026EF2
_08026EE0:
subs r0, #1
movs r2, #0
strb r0, [r1]
adds r1, r4, #0
adds r1, #0x84
ldr r0, [r1]
str r2, [r0, #8]
ldr r0, [r1]
strb r2, [r0, #6]
_08026EF2:
adds r0, r4, #0
bl sub_08027C54
cmp r0, #0
beq _08026F14
adds r0, r4, #0
adds r0, #0x84
ldr r0, [r0]
ldrb r0, [r0, #4]
cmp r0, #2
bne _08026F14
adds r0, r4, #0
movs r1, #0x3f
bl sub_08027C7C
bl sub_08078B48
_08026F14:
add sp, #4
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
thumb_func_start sub_08026F1C
sub_08026F1C: @ 0x08026F1C
push {r4, r5, lr}

View File

@ -123,7 +123,7 @@ void sub_08027A60();
bool32 sub_08027AA4(ChuchuBossEntity*);
void sub_08027B98();
void sub_08027BBC();
void sub_08027C54();
bool32 sub_08027C54();
void sub_08027C7C(ChuchuBossEntity*, u32);
void sub_08027C9C();
void sub_08027D20();
@ -1070,3 +1070,49 @@ void sub_08026C40(ChuchuBossEntity* this) {
}
sub_08027870(super);
}
void sub_08026E1C(ChuchuBossEntity* this) {
u32 uVar2;
Entity* pEVar5;
Entity* pEVar6;
if (this->unk_7c == 0) {
if (10 < super->child->subtimer + super->parent->subtimer + this->unk_68->base.subtimer) {
COLLISION_ON(super);
if (sub_08027C54(this)) {
this->unk_84->unk_04++;
;
super->child->health = 0xff;
}
if (this->unk_84->unk_04 == 3) {
super->health = 0;
COLLISION_OFF(super);
pEVar6 = super->child;
pEVar5 = super->parent;
this->unk_68->base.flags = super->flags;
uVar2 = super->flags;
pEVar5->flags = uVar2;
pEVar6->flags = uVar2;
super->iframes = -0x3c;
return;
}
this->unk_84->unk_00 = 4;
this->unk_84->unk_01 = 0x81;
COLLISION_ON(super);
super->hitType = 0x7d;
super->subAction = 11;
this->unk_84->unk_03 = 0;
InitAnimationForceUpdate(super->child, 0);
sub_08027B98(this, 0x80, 0x80, 0x80, 0);
this->unk_84->unk_01 = 0x21;
}
} else {
this->unk_7c--;
this->unk_84->unk_08 = 0;
this->unk_84->unk_06 = 0;
}
if ((sub_08027C54(this)) && this->unk_84->unk_04 == 2) {
sub_08027C7C(this, 0x3f);
sub_08078B48();
}
}