tmc/asm/manager13.s

98 lines
1.6 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08059DAC
sub_08059DAC: @ 0x08059DAC
push {r4, r5, r6, r7, lr}
mov r7, r8
push {r7}
adds r5, r0, #0
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08059DBE
movs r0, #1
strb r0, [r5, #0xc]
_08059DBE:
ldr r1, _08059E4C @ =gRoomControls
ldrb r0, [r1, #4]
ldr r4, _08059E50 @ =gUnk_081084C8
cmp r0, #0x15
bne _08059DCA
ldr r4, _08059E54 @ =gUnk_08108530
_08059DCA:
movs r7, #0
ldrh r0, [r4]
cmp r0, #0
beq _08059E46
mov r8, r1
_08059DD4:
movs r6, #1
lsls r6, r7
ldr r0, [r5, #0x20]
ands r0, r6
cmp r0, #0
bne _08059E38
ldrh r0, [r4]
ldrh r1, [r4, #2]
movs r2, #0x10
movs r3, #0x10
bl CheckRectOnScreen
cmp r0, #0
beq _08059E38
ldrb r1, [r4, #4]
movs r0, #0x1c
adds r2, r7, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059E38
ldrb r0, [r4, #5]
strb r0, [r2, #0x1e]
ldrh r0, [r4]
mov r1, r8
ldrh r1, [r1, #6]
adds r0, r0, r1
strh r0, [r2, #0x2e]
ldrh r0, [r4, #2]
mov r3, r8
ldrh r3, [r3, #8]
adds r0, r0, r3
strh r0, [r2, #0x32]
str r5, [r2, #0x50]
ldrh r1, [r4]
adds r0, r2, #0
adds r0, #0x80
strh r1, [r0]
ldrh r0, [r4, #2]
adds r1, r2, #0
adds r1, #0x82
strh r0, [r1]
ldrb r1, [r4, #6]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
ldr r0, [r5, #0x20]
orrs r0, r6
str r0, [r5, #0x20]
_08059E38:
adds r4, #8
adds r7, #1
ldrh r0, [r4]
cmp r0, #0
beq _08059E46
cmp r7, #0x1f
bls _08059DD4
_08059E46:
pop {r3}
mov r8, r3
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08059E4C: .4byte gRoomControls
_08059E50: .4byte gUnk_081084C8
_08059E54: .4byte gUnk_08108530