Match sub_080611D4

This commit is contained in:
hatal175 2022-01-09 15:37:23 +01:00
parent 7b87141d9b
commit d421e24de3
2 changed files with 23 additions and 71 deletions

View File

@ -1,53 +0,0 @@
.syntax unified
.text
push {r4, lr}
adds r4, r0, #0
ldrb r1, [r4, #0x14]
movs r0, #6
ands r0, r1
ldr r1, _08061218 @ =gUnk_0810AC4C
adds r0, r0, r1
movs r1, #0
ldrsb r1, [r0, r1]
movs r2, #1
ldrsb r2, [r0, r2]
adds r0, r4, #0
bl sub_080002B4
adds r3, r0, #0
ldr r2, _0806121C @ =gUnk_0810AC54
_080611F4:
ldrb r0, [r2]
cmp r0, r3
bne _08061220
ldrb r0, [r2, #1]
ldrb r1, [r4, #0x14]
lsrs r0, r0, #2
cmp r1, r0
bne _08061220
ldrb r0, [r4, #0xf]
adds r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bls _0806122A
ldrb r0, [r2, #1]
b _0806122C
.align 2, 0
_08061218: .4byte gUnk_0810AC4C
_0806121C: .4byte gUnk_0810AC54
_08061220:
adds r2, #2
ldrb r0, [r2]
cmp r0, #0
bne _080611F4
strb r0, [r4, #0xf]
_0806122A:
movs r0, #0xff
_0806122C:
pop {r4, pc}
.align 2, 0
.syntax divided

View File

@ -418,34 +418,39 @@ NONMATCH("asm/non_matching/npc5/sub_08061170.inc", bool32 sub_08061170(Entity* t
}
END_NONMATCH
NONMATCH("asm/non_matching/npc5/sub_080611D4.inc", u32 sub_080611D4(Entity* this)) {
u32 sub_080611D4(Entity* this) {
u32 uVar2;
u32 x;
s32 a;
s32 b;
s8* ptr;
u8* ptr2;
x = this->animationState & 6;
// asm("a");
a = gUnk_0810AC4C[x].unk_0;
// asm("c");
b = gUnk_0810AC4C[x].unk_1;
// asm("d");
ptr = (s8*)gUnk_0810AC4C;
a = ptr[x];
b = ptr[x + 1];
uVar2 = sub_080002B4(this, a, b);
// asm("b");
if ((gUnk_0810AC54[0] != uVar2 || (this->animationState != gUnk_0810AC54[1] >> 2))) {
// asm ("e");
if (gUnk_0810AC54[2] == 0) {
this->field_0xf = 0;
ptr2 = gUnk_0810AC54;
do {
if (*ptr2 != uVar2 || this->animationState != (ptr2[1] >> 2)) {
continue;
}
++this->field_0xf;
if (this->field_0xf < 8) {
return 0xff;
}
}
this->field_0xf += 1;
if (this->field_0xf < 8) {
return 0xff;
}
return gUnk_0810AC54[3];
return ptr2[1];
} while (ptr2 += 2, *ptr2 != 0);
this->field_0xf = 0;
return 0xff;
}
END_NONMATCH
u32 sub_08061230(Entity* this) {
if ((((UnkHeap*)this->myHeap)->unk_0 & 1) == 0) {