Match sub_08027AA4

This commit is contained in:
Tal Hayon 2022-07-19 04:47:59 +03:00
parent bb05f2da36
commit 6a63649f86
2 changed files with 54 additions and 126 deletions

View File

@ -15,132 +15,6 @@
thumb_func_start sub_08027AA4
sub_08027AA4: @ 0x08027AA4
push {r4, r5, lr}
adds r5, r0, #0
adds r0, #0x41
ldrb r1, [r0]
movs r0, #0x80
ands r0, r1
cmp r0, #0
beq _08027B94
movs r0, #0x7f
ands r0, r1
cmp r0, #0x13
beq _08027AC2
cmp r0, #0x1b
beq _08027B44
b _08027B94
_08027AC2:
movs r0, #0x84
bl SoundReq
ldrb r3, [r5, #0xb]
adds r0, r5, #0
movs r1, #0x49
movs r2, #9
bl CreateObjectWithParent
ldr r0, _08027B3C @ =0x00000155
bl SoundReq
adds r0, r5, #0
adds r0, #0x84
ldr r4, [r0]
adds r1, r5, #0
adds r1, #0x3d
movs r0, #3
strb r0, [r1]
ldrb r0, [r4, #6]
adds r0, #1
strb r0, [r4, #6]
ldrb r0, [r4, #6]
movs r1, #3
bl __divsi3
adds r1, r0, #0
lsls r0, r1, #0x18
lsrs r0, r0, #0x15
ldrb r2, [r4, #5]
cmp r0, r2
beq _08027B06
lsls r0, r1, #3
strb r0, [r4, #5]
_08027B06:
movs r0, #0xb4
str r0, [r4, #8]
movs r0, #5
ldrsb r0, [r4, r0]
cmp r0, #0
bge _08027B94
movs r0, #0x40
strb r0, [r4, #1]
adds r1, r5, #0
adds r1, #0x3f
movs r0, #0
strb r0, [r1]
ldrb r0, [r5, #0xd]
cmp r0, #2
bne _08027B2A
adds r0, r5, #0
bl sub_08027BBC
_08027B2A:
adds r0, r5, #0
bl sub_08027D20
ldr r0, _08027B40 @ =0x00000127
bl SoundReq
_08027B36:
movs r0, #1
b _08027B96
.align 2, 0
_08027B3C: .4byte 0x00000155
_08027B40: .4byte 0x00000127
_08027B44:
adds r1, r5, #0
adds r1, #0x3d
movs r0, #0xe2
strb r0, [r1]
ldr r0, [r5, #0x4c]
ldrb r0, [r0, #0xa]
adds r0, #1
cmp r0, #2
beq _08027B74
cmp r0, #2
bgt _08027B60
cmp r0, #1
beq _08027B84
b _08027B36
_08027B60:
cmp r0, #3
bne _08027B36
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x1a
strb r0, [r1]
adds r1, #4
movs r0, #0xe0
lsls r0, r0, #1
b _08027B90
_08027B74:
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x14
strb r0, [r1]
adds r1, #4
movs r0, #0xc0
lsls r0, r0, #1
b _08027B90
_08027B84:
adds r1, r5, #0
adds r1, #0x42
movs r0, #0x10
strb r0, [r1]
adds r1, #4
adds r0, #0xf0
_08027B90:
strh r0, [r1]
b _08027B36
_08027B94:
movs r0, #0
_08027B96:
pop {r4, r5, pc}
thumb_func_start sub_08027B98
sub_08027B98: @ 0x08027B98

View File

@ -1690,3 +1690,57 @@ void sub_08027A60(ChuchuBossEntity* this) {
this->unk_7c = (this->unk_7c & 0x80) ^ 0x80;
}
}
bool32 sub_08027AA4(ChuchuBossEntity* this) {
u32 uVar3;
s32 iVar4;
Helper* pHelper;
if ((super->contactFlags & 0x80) == 0) {
return FALSE;
}
switch (super->contactFlags & 0x7f) {
case 19:
SoundReq(SFX_WATER_SPLASH);
CreateObjectWithParent(super, OBJECT_49, 9, super->type2);
SoundReq(SFX_155);
pHelper = this->unk_84;
super->iframes = 3;
pHelper->unk_06++;
iVar4 = pHelper->unk_06;
uVar3 = (iVar4 / 3);
if (((u8)uVar3 << 3) != (u8)pHelper->unk_05) {
pHelper->unk_05 = (uVar3 << 3);
}
pHelper->unk_08 = 0xb4;
if (-1 < pHelper->unk_05) {
break;
}
pHelper->unk_01 = 0x40;
super->hitType = 0;
if (super->subAction == 2) {
sub_08027BBC(this);
}
sub_08027D20(this);
SoundReq(SFX_BOSS_HIT);
return TRUE;
case 27:
super->iframes = -30;
switch (super->contactedEntity->type + 1) {
case 3:
super->knockbackDuration = 26;
super->knockbackSpeed = Q_8_8(1.75);
break;
case 2:
super->knockbackDuration = 20;
super->knockbackSpeed = Q_8_8(1.5);
break;
case 1:
super->knockbackDuration = 16;
super->knockbackSpeed = Q_8_8(1);
break;
}
return TRUE;
}
return FALSE;
}