sub_8085B80

This commit is contained in:
DizzyEggg
2025-03-09 15:58:06 +01:00
parent 91d397caea
commit a828da70a6
2 changed files with 36 additions and 110 deletions

View File

@@ -5,116 +5,6 @@
.text
@ https://decomp.me/scratch/lb4jF (kermalis 87.53%) `bool8 sub_8085B80(struct_8085B80 *)`
thumb_func_start sub_8085B80
sub_8085B80:
push {r4-r7,lr}
mov r7, r8
push {r7}
adds r1, r0, 0
movs r0, 0
mov r8, r0
movs r7, 0
ldr r0, _08085BE4
ldr r0, [r0]
cmp r8, r0
bge _08085C3E
adds r5, r1, 0
_08085B98:
ldr r6, [r5, 0x4]
ldr r2, [r6, 0x70]
adds r3, r2, 0
ldr r4, [r5, 0xC]
ldrb r0, [r5]
cmp r0, 0
beq _08085C32
movs r1, 0x1
mov r8, r1
ldr r0, [r5, 0x8]
cmp r0, 0
bne _08085C08
adds r4, 0x8
movs r1, 0x4
ldrsh r0, [r4, r1]
cmp r0, 0
bne _08085BE8
strb r0, [r5]
ldrb r1, [r4]
movs r0, 0x7
ands r0, r1
adds r1, r2, 0
adds r1, 0x46
strb r0, [r1]
movs r3, 0
ldrsh r2, [r4, r3]
adds r0, r6, 0
movs r1, 0x7
bl sub_806CDD4
movs r0, 0xA
ldrsh r1, [r4, r0]
movs r3, 0xC
ldrsh r2, [r4, r3]
adds r0, r6, 0
bl sub_80856C8
b _08085C32
.align 2, 0
_08085BE4: .4byte gUnknown_202F3D8
_08085BE8:
movs r1, 0x4
ldrsh r0, [r4, r1]
str r0, [r5, 0x8]
str r4, [r5, 0xC]
ldrb r1, [r4]
movs r0, 0x7
ands r0, r1
adds r1, r3, 0
adds r1, 0x46
strb r0, [r1]
movs r3, 0
ldrsh r2, [r4, r3]
adds r0, r6, 0
movs r1, 0
bl sub_806CDD4
_08085C08:
ldr r0, [r5, 0x8]
subs r0, 0x1
str r0, [r5, 0x8]
ldr r1, _08085C4C
movs r2, 0
ldrsh r0, [r4, r2]
lsls r0, 2
adds r0, r1
movs r3, 0
ldrsh r1, [r0, r3]
movs r3, 0x2
ldrsh r2, [r4, r3]
muls r1, r2
lsls r1, 8
movs r3, 0x2
ldrsh r0, [r0, r3]
muls r2, r0
lsls r2, 8
adds r0, r6, 0
bl IncreaseEntityPixelPos
_08085C32:
adds r5, 0x10
adds r7, 0x1
ldr r0, _08085C50
ldr r0, [r0]
cmp r7, r0
blt _08085B98
_08085C3E:
mov r0, r8
pop {r3}
mov r8, r3
pop {r4-r7}
pop {r1}
bx r1
.align 2, 0
_08085C4C: .4byte gAdjacentTileOffsets
_08085C50: .4byte gUnknown_202F3D8
thumb_func_end sub_8085B80
thumb_func_start SetDungeonBGColorRGB
SetDungeonBGColorRGB:
push {r4-r7,lr}

View File

@@ -418,3 +418,39 @@ void sub_8085B4C(struct_8085B80 a0[], s16 *a1[], Entity *a2[], s32 a3)
a0[i].unk8 = a1[i][2];
}
}
bool8 sub_8085B80(struct_8085B80 *a0)
{
s16 *unkCPtr;
int i;
bool8 ret = FALSE;
for (i = 0; i < gUnknown_202F3D8; i++) {
Entity *entity = a0[i].unk4;
EntityInfo *enInfo = GetEntInfo(entity);
unkCPtr = a0[i].unkC;
if (a0[i].unk0 != 0) {
ret = TRUE;
if (a0[i].unk8 == 0) {
unkCPtr = unkCPtr + 4;
if (unkCPtr[2] == 0) {
a0[i].unk0 = 0;
enInfo->action.direction = unkCPtr[0] & DIRECTION_MASK;
sub_806CDD4(entity, 7, unkCPtr[0]);
sub_80856C8(entity, unkCPtr[5], unkCPtr[6]);
continue;
}
a0[i].unk8 = unkCPtr[2];
a0[i].unkC = unkCPtr;
enInfo->action.direction = *(u8 *)unkCPtr & DIRECTION_MASK;
sub_806CDD4(entity, 0, (int)*unkCPtr);
}
a0[i].unk8--;
IncreaseEntityPixelPos(entity,
gAdjacentTileOffsets[*unkCPtr].x * unkCPtr[1] * 0x100,
gAdjacentTileOffsets[*unkCPtr].y * unkCPtr[1] * 0x100);
}
}
return ret;
}