mirror of
https://github.com/pret/pmd-red.git
synced 2026-08-26 02:34:33 -05:00
sub_8085B80
This commit is contained in:
@@ -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}
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user