Match sub_0802E768

This commit is contained in:
anonymous 2022-11-06 10:18:36 +00:00
parent a37cfe64cf
commit ae84570668
2 changed files with 9 additions and 73 deletions

View File

@ -1,61 +0,0 @@
.syntax unified
.text
push {r4, r5, r6, lr}
adds r4, r0, #0
movs r2, #0
movs r6, #0x1f
_0802E770:
lsls r3, r2, #2
adds r0, r4, r3
ldrb r1, [r0, #1]
adds r2, #1
lsls r0, r2, #2
adds r0, r4, r0
ldrb r0, [r0, #1]
subs r0, r1, r0
ands r0, r6
adds r5, r2, #0
cmp r0, #0x10
ble _0802E790
cmp r0, #0x1e
bgt _0802E798
adds r1, #1
b _0802E796
_0802E790:
cmp r0, #1
ble _0802E798
subs r1, #1
_0802E796:
ands r1, r6
_0802E798:
adds r0, r4, r3
strb r1, [r0, #1]
ldrb r1, [r0, #0x19]
lsls r0, r5, #2
adds r0, r4, r0
ldrb r0, [r0, #0x19]
subs r0, r1, r0
movs r2, #0x1f
ands r0, r2
cmp r0, #0x10
ble _0802E7B6
cmp r0, #0x1d
bgt _0802E7BE
adds r1, #1
b _0802E7BC
_0802E7B6:
cmp r0, #2
ble _0802E7BE
subs r1, #1
_0802E7BC:
ands r1, r2
_0802E7BE:
adds r0, r4, r3
strb r1, [r0, #0x19]
adds r2, r5, #0
cmp r2, #4
bls _0802E770
pop {r4, r5, r6, pc}
.align 2, 0
.syntax divided

View File

@ -1316,20 +1316,18 @@ NONMATCH("asm/non_matching/gleerok/sub_0802E518.inc", void sub_0802E518(GleerokE
}
END_NONMATCH
NONMATCH("asm/non_matching/gleerok/sub_0802E768.inc", bool32 sub_0802E768(Gleerok_HeapStruct* param_1)) {
void sub_0802E768(Gleerok_HeapStruct* param_1) {
u32 cVar1;
s32 bVar2;
s32 bVar2a;
u32 bVar3;
// solves regalloc
// register u32 bVar3 asm("r1");
FORCE_REGISTER(u32 bVar3, r1);
u32 bVar3a;
u32 uVar4;
s32 iVar5;
for (uVar4 = 0; uVar4 <= 4; uVar4++) {
bVar3 = param_1->filler[uVar4].unk0.HALF.HI;
bVar2 = (bVar3 - param_1->filler[uVar4 + 1].unk0.HALF.HI) & 0x1f;
bVar3 = param_1->filler[uVar4].unk1;
bVar2 = (bVar3 - param_1->filler[uVar4 + 1].unk1) & 0x1f;
if (bVar2 > 0x10) {
if (bVar2 <= 0x1e) {
@ -1339,9 +1337,9 @@ NONMATCH("asm/non_matching/gleerok/sub_0802E768.inc", bool32 sub_0802E768(Gleero
bVar3 = (bVar3 - 1) & 0x1f;
}
param_1->filler[uVar4].unk0.HALF.HI = bVar3;
bVar3 = param_1->filler2[uVar4].unk0.HALF.HI;
bVar2 = (bVar3 - param_1->filler2[uVar4 + 1].unk0.HALF.HI) & 0x1f;
param_1->filler[uVar4].unk1 = bVar3;
bVar3 = param_1->filler2[(uVar4)].unk1;
bVar2 = (bVar3 - param_1->filler2[(uVar4 + 1)].unk1) & 0x1f;
if (bVar2 > 0x10) {
if (bVar2 <= 0x1d) {
@ -1351,10 +1349,9 @@ NONMATCH("asm/non_matching/gleerok/sub_0802E768.inc", bool32 sub_0802E768(Gleero
bVar3 = (bVar3 - 1) & 0x1f;
}
param_1->filler2[uVar4].unk0.HALF.HI = bVar3;
param_1->filler2[(uVar4)].unk1 = bVar3;
}
}
END_NONMATCH
u32 sub_0802E7CC(Gleerok_HeapStruct* param_1, u32 param_2, u32 param_3, u32 param_4) {
param_1->entities[(u8)param_2]->animationState = param_1->filler[(u8)param_2].unk0.HALF.HI;