mirror of https://github.com/zeldaret/tmc.git
Match sub_08043B08
This commit is contained in:
parent
487277e786
commit
2d5ceeacd4
|
|
@ -1,67 +0,0 @@
|
|||
.syntax unified
|
||||
push {r4, r5, r6, lr}
|
||||
ldrb r3, [r0, #0xa]
|
||||
lsls r1, r3, #4
|
||||
adds r4, r1, #0
|
||||
adds r4, #8
|
||||
ldr r2, [r0, #0x64]
|
||||
adds r6, r2, r4
|
||||
adds r1, #0x18
|
||||
adds r4, r2, r1
|
||||
ldr r0, _08043B40 @ =gUnk_080D13B2
|
||||
adds r3, r3, r0
|
||||
ldrb r5, [r3]
|
||||
ldr r0, [r2]
|
||||
ldrb r0, [r0, #0xb]
|
||||
cmp r0, #0
|
||||
bne _08043B44
|
||||
ldrb r1, [r6, #1]
|
||||
ldrb r0, [r4, #1]
|
||||
subs r0, r1, r0
|
||||
lsls r0, r0, #0x18
|
||||
asrs r3, r0, #0x18
|
||||
cmp r5, r3
|
||||
bhs _08043B5E
|
||||
cmp r3, #0
|
||||
ble _08043B56
|
||||
subs r0, r1, r5
|
||||
b _08043B5C
|
||||
.align 2, 0
|
||||
_08043B40: .4byte gUnk_080D13B2
|
||||
_08043B44:
|
||||
ldrb r0, [r4, #1]
|
||||
ldrb r1, [r6, #1]
|
||||
subs r0, r0, r1
|
||||
lsls r0, r0, #0x18
|
||||
asrs r3, r0, #0x18
|
||||
cmp r5, r3
|
||||
bhs _08043B5E
|
||||
cmp r3, #0
|
||||
bge _08043B5A
|
||||
_08043B56:
|
||||
strb r1, [r4, #1]
|
||||
b _08043B5E
|
||||
_08043B5A:
|
||||
adds r0, r1, r5
|
||||
_08043B5C:
|
||||
strb r0, [r4, #1]
|
||||
_08043B5E:
|
||||
ldrb r2, [r6, #5]
|
||||
ldrb r0, [r4, #5]
|
||||
subs r3, r2, r0
|
||||
lsls r1, r5, #1
|
||||
adds r0, r3, r5
|
||||
cmp r1, r0
|
||||
bhs _08043B78
|
||||
cmp r3, #0
|
||||
ble _08043B74
|
||||
subs r0, r2, r5
|
||||
b _08043B76
|
||||
_08043B74:
|
||||
adds r0, r2, r5
|
||||
_08043B76:
|
||||
strb r0, [r4, #5]
|
||||
_08043B78:
|
||||
pop {r4, r5, r6, pc}
|
||||
.align 2, 0
|
||||
.syntax divided
|
||||
|
|
@ -1201,9 +1201,46 @@ static void sub_08043ABC(Entity* this) {
|
|||
((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->spriteOffsetY--;
|
||||
}
|
||||
|
||||
static ASM_FUNC("asm/non_matching/vaati/sub_08043B08.inc", void sub_08043B08(Entity* this))
|
||||
void sub_08043B08(Entity* this) {
|
||||
VaatiArm_HeapStruct1* hs1;
|
||||
VaatiArm_HeapStruct1* hs2;
|
||||
u32 bVar1;
|
||||
s32 uVar6;
|
||||
|
||||
static void sub_08043B7C(Entity* this) {
|
||||
hs1 = &((VaatiArm_HeapStruct*)this->myHeap)->s1[this->type - 1];
|
||||
hs2 = &((VaatiArm_HeapStruct*)this->myHeap)->s1[this->type];
|
||||
bVar1 = gUnk_080D13B2[this->type];
|
||||
if (((VaatiArm_HeapStruct*)this->myHeap)->entities[0]->type2 == 0) {
|
||||
uVar6 = (s8)((hs1->unk00.HALF.HI - hs2->unk00.HALF.HI));
|
||||
if (bVar1 < uVar6) {
|
||||
if (uVar6 <= 0) {
|
||||
hs2->unk00.HALF.HI = hs1->unk00.HALF.HI;
|
||||
} else {
|
||||
hs2->unk00.HALF.HI = hs1->unk00.HALF.HI - bVar1;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
uVar6 = (s8)(hs2->unk00.HALF.HI - hs1->unk00.HALF.HI);
|
||||
if (bVar1 < uVar6) {
|
||||
if (uVar6 < 0) {
|
||||
hs2->unk00.HALF.HI = hs1->unk00.HALF.HI;
|
||||
} else {
|
||||
hs2->unk00.HALF.HI = hs1->unk00.HALF.HI + bVar1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
uVar6 = hs1->unk04.HALF.HI - hs2->unk04.HALF.HI;
|
||||
if ((bVar1 << 1) < uVar6 + bVar1) {
|
||||
if (uVar6 > 0) {
|
||||
hs2->unk04.HALF.HI = hs1->unk04.HALF.HI - bVar1;
|
||||
} else {
|
||||
hs2->unk04.HALF.HI = hs1->unk04.HALF.HI + bVar1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
static void sub_08043B7C(Entity* this) {
|
||||
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[1]);
|
||||
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[2]);
|
||||
sub_08043B08(((VaatiArm_HeapStruct*)this->myHeap)->entities[3]);
|
||||
|
|
|
|||
Loading…
Reference in New Issue