Match sub_0802720C

This commit is contained in:
Tal Hayon 2022-07-18 01:46:11 +03:00
parent 0123ca26bd
commit 2489c346e5
2 changed files with 46 additions and 94 deletions

View File

@ -7,100 +7,6 @@
.text
thumb_func_start sub_0802720C
sub_0802720C: @ 0x0802720C
push {r4, lr}
adds r4, r0, #0
ldr r0, [r4, #0x50]
ldrb r0, [r0, #0xd]
strb r0, [r4, #0xd]
ldrb r0, [r4, #0xd]
cmp r0, #0xc
bhi _080272CA
lsls r0, r0, #2
ldr r1, _08027228 @ =_0802722C
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_08027228: .4byte _0802722C
_0802722C: @ jump table
.4byte _080272C4 @ case 0
.4byte _08027260 @ case 1
.4byte _08027260 @ case 2
.4byte _0802726E @ case 3
.4byte _080272AA @ case 4
.4byte _0802726E @ case 5
.4byte _080272CA @ case 6
.4byte _080272CA @ case 7
.4byte _08027282 @ case 8
.4byte _080272CA @ case 9
.4byte _080272A0 @ case 10
.4byte _080272CA @ case 11
.4byte _08027260 @ case 12
_08027260:
adds r1, r4, #0
adds r1, #0x7a
movs r0, #0xa0
strh r0, [r1]
subs r1, #4
strh r0, [r1]
b _080272AA
_0802726E:
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
beq _080272CA
adds r1, r4, #0
adds r1, #0x7d
movs r0, #0
strb r0, [r1]
b _080272AA
_08027282:
ldrb r0, [r4, #0xf]
cmp r0, #3
bhi _080272CA
adds r0, r4, #0
bl sub_0802757C
adds r0, r4, #0
adds r0, #0x83
ldrb r0, [r0]
cmp r0, #0
bne _080272CA
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
b _080272CA
_080272A0:
adds r2, r4, #0
adds r2, #0x7d
ldrb r0, [r2]
cmp r0, #0
bne _080272B2
_080272AA:
adds r0, r4, #0
bl sub_0802757C
b _080272CA
_080272B2:
adds r1, r4, #0
adds r1, #0x84
ldrb r0, [r1]
cmp r0, #0
beq _080272CA
movs r0, #0
strb r0, [r2]
strb r0, [r1]
b _080272CA
_080272C4:
adds r0, r4, #0
bl sub_0802757C
_080272CA:
ldr r0, [r4, #0x50]
ldr r0, [r0, #0x34]
str r0, [r4, #0x34]
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080272D4
sub_080272D4: @ 0x080272D4

View File

@ -1260,3 +1260,49 @@ void sub_08027064(ChuchuBossEntity* this) {
}
sub_08027870(super);
}
void sub_0802720C(ChuchuBossEntity* this) {
super->subAction = super->parent->subAction;
switch (super->subAction) {
case 1:
case 2:
case 12:
this->unk_78.HALF.HI = 0xa0;
this->unk_74.HALF.HI = 0xa0;
sub_0802757C(this);
break;
case 3:
case 5:
if (this->unk_82.HALF.HI == 0)
break;
this->unk_7d = 0;
sub_0802757C(this);
break;
default:
break;
case 8:
if (super->subtimer < 4) {
sub_0802757C(this);
if (this->unk_82.HALF.HI == 0) {
super->subtimer++;
}
}
break;
case 10:
if (this->unk_7d == 0) {
case 4:
sub_0802757C(this);
break;
} else {
if (*(char*)&this->unk_84 != 0) {
this->unk_7d = 0;
*(char*)&this->unk_84 = 0;
}
break;
}
case 0:
sub_0802757C(this);
break;
}
super->z.WORD = super->parent->z.WORD;
}