tmc/asm/non_matching/GetEmptyEntity.inc

108 lines
1.8 KiB
PHP

.syntax unified
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
ldr r0, _0805E698 @ =gEntCount
ldrb r0, [r0]
cmp r0, #0x46
bhi _0805E6A6
ldr r4, _0805E69C @ =gUnk_030015A0
movs r0, #0x99
lsls r0, r0, #6
adds r1, r4, r0
_0805E68E:
ldr r0, [r4]
cmp r0, #0
bne _0805E6A0
adds r0, r4, #0
b _0805E730
.align 2, 0
_0805E698: .4byte gEntCount
_0805E69C: .4byte gUnk_030015A0
_0805E6A0:
adds r4, #0x88
cmp r4, r1
blo _0805E68E
_0805E6A6:
ldr r4, _0805E6CC @ =gPlayerEntity
_0805E6A8:
ldr r0, [r4]
cmp r0, #0
bge _0805E6D4
ldrb r1, [r4, #0x10]
movs r0, #0xc
ands r0, r1
cmp r0, #0
beq _0805E6D4
ldr r0, _0805E6D0 @ =gUpdateContext
ldr r0, [r0, #8]
cmp r4, r0
beq _0805E6D4
adds r0, r4, #0
bl ClearDeletedEntity
adds r0, r4, #0
b _0805E730
.align 2, 0
_0805E6CC: .4byte gPlayerEntity
_0805E6D0: .4byte gUpdateContext
_0805E6D4:
adds r4, #0x88
ldr r0, _0805E738 @ =gCarryEntities
cmp r4, r0
blo _0805E6A8
movs r0, #0
mov ip, r0
movs r5, #0
ldr r2, _0805E73C @ =gEntityLists
movs r0, #0x48
adds r0, r0, r2
mov r8, r0
_0805E6EA:
ldr r4, [r2, #4]
adds r3, r2, #0
adds r3, #8
cmp r4, r2
beq _0805E718
movs r7, #0x1c
ldr r6, _0805E740 @ =gUpdateContext
_0805E6F8:
ldrb r0, [r4, #8]
cmp r0, #9
beq _0805E712
ldrb r0, [r4, #0x10]
adds r1, r7, #0
ands r1, r0
cmp ip, r1
bhs _0805E712
ldr r0, [r6, #8]
cmp r0, r4
beq _0805E712
mov ip, r1
adds r5, r4, #0
_0805E712:
ldr r4, [r4, #4]
cmp r4, r2
bne _0805E6F8
_0805E718:
adds r2, r3, #0
cmp r2, r8
blo _0805E6EA
cmp r5, #0
beq _0805E72E
adds r0, r5, #0
bl DeleteEntity
adds r0, r5, #0
bl ClearDeletedEntity
_0805E72E:
adds r0, r5, #0
_0805E730:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0805E738: .4byte gCarryEntities
_0805E73C: .4byte gEntityLists
_0805E740: .4byte gUpdateContext
.syntax divided