mirror of https://github.com/zeldaret/tmc.git
Match sub_08027AA4
This commit is contained in:
parent
bb05f2da36
commit
6a63649f86
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue