tmc/asm/manager18.s

196 lines
3.7 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0805ADD8
sub_0805ADD8: @ 0x0805ADD8
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
bne _0805AE04
ldr r0, _0805ADF8 @ =gArea
ldr r1, _0805ADFC @ =0x0000088C
adds r0, r0, r1
ldr r0, [r0]
ldr r1, _0805AE00 @ =sub_0805AEDC
cmp r0, r1
beq _0805AEC4
movs r0, #0
bl _call_via_r1
b _0805AEC4
.align 2, 0
_0805ADF8: .4byte gArea
_0805ADFC: .4byte 0x0000088C
_0805AE00: .4byte sub_0805AEDC
_0805AE04:
ldrb r2, [r4, #0xc]
cmp r2, #0
bne _0805AE5E
movs r0, #1
strb r0, [r4, #0xc]
ldrb r1, [r4, #0x10]
movs r0, #0x20
orrs r0, r1
strb r0, [r4, #0x10]
strb r2, [r4, #0xe]
movs r0, #8
strb r0, [r4, #0xf]
ldr r0, _0805AE44 @ =gUnk_0810865C
ldrh r0, [r0]
strh r0, [r4, #0x20]
adds r0, r4, #0
movs r1, #6
bl sub_0805E3A0
ldr r0, _0805AE48 @ =gArea
ldr r2, _0805AE4C @ =0x0000088C
adds r0, r0, r2
ldr r0, [r0]
cmp r0, #0
bne _0805AE58
ldr r1, _0805AE50 @ =sub_0805AEDC
ldr r2, _0805AE54 @ =sub_0805AF3C
adds r0, r4, #0
bl sub_08052D74
b _0805AEC4
.align 2, 0
_0805AE44: .4byte gUnk_0810865C
_0805AE48: .4byte gArea
_0805AE4C: .4byte 0x0000088C
_0805AE50: .4byte sub_0805AEDC
_0805AE54: .4byte sub_0805AF3C
_0805AE58:
bl DeleteThisEntity
b _0805AEC4
_0805AE5E:
ldr r2, _0805AEC8 @ =gUnk_0810865C
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
ldr r3, _0805AECC @ =gScreen
cmp r0, #0
beq _0805AEA2
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
movs r1, #0xff
lsls r0, r0, #0x18
cmp r0, #0
bne _0805AEA2
movs r0, #4
strb r0, [r4, #0xf]
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
ands r0, r1
lsls r0, r0, #1
adds r0, r0, r2
ldrh r0, [r0]
cmp r0, #0
beq _0805AEA2
ldrb r0, [r4, #0xe]
lsls r0, r0, #1
adds r0, r0, r2
ldrh r1, [r0]
strh r1, [r4, #0x20]
adds r0, r3, #0
adds r0, #0x68
strh r1, [r0]
_0805AEA2:
ldr r1, _0805AED0 @ =gRoomControls
ldr r0, [r1, #0x28]
ldr r2, _0805AED4 @ =0xFFFFE000
adds r0, r0, r2
str r0, [r1, #0x28]
ldr r0, [r1, #0x2c]
ldr r2, _0805AED8 @ =0xFFFFF000
adds r0, r0, r2
str r0, [r1, #0x2c]
ldrh r0, [r1, #0x2a]
ldrh r2, [r1, #0xa]
adds r0, r0, r2
strh r0, [r3, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r3, #0x30]
_0805AEC4:
pop {r4, pc}
.align 2, 0
_0805AEC8: .4byte gUnk_0810865C
_0805AECC: .4byte gScreen
_0805AED0: .4byte gRoomControls
_0805AED4: .4byte 0xFFFFE000
_0805AED8: .4byte 0xFFFFF000
thumb_func_start sub_0805AEDC
sub_0805AEDC: @ 0x0805AEDC
push {r4, lr}
adds r3, r0, #0
ldr r2, _0805AF2C @ =gScreen
ldr r0, _0805AF30 @ =0x00001E05
strh r0, [r2, #0x2c]
ldrh r0, [r2]
movs r4, #0x80
lsls r4, r4, #4
adds r1, r4, #0
orrs r0, r1
strh r0, [r2]
adds r1, r2, #0
adds r1, #0x66
ldr r0, _0805AF34 @ =0x00003648
strh r0, [r1]
movs r0, #0x80
lsls r0, r0, #5
adds r1, r0, #0
cmp r3, #0
beq _0805AF06
ldrh r1, [r3, #0x20]
_0805AF06:
adds r0, r2, #0
adds r0, #0x68
strh r1, [r0]
ldr r1, _0805AF38 @ =gRoomControls
ldrh r0, [r1, #0x2a]
ldrh r4, [r1, #0xa]
adds r0, r0, r4
strh r0, [r2, #0x2e]
ldrh r0, [r1, #0x2e]
ldrh r1, [r1, #0xc]
adds r0, r0, r1
strh r0, [r2, #0x30]
cmp r3, #0
beq _0805AF28
adds r0, r3, #0
bl sub_0805ADD8
_0805AF28:
pop {r4, pc}
.align 2, 0
_0805AF2C: .4byte gScreen
_0805AF30: .4byte 0x00001E05
_0805AF34: .4byte 0x00003648
_0805AF38: .4byte gRoomControls
thumb_func_start sub_0805AF3C
sub_0805AF3C: @ 0x0805AF3C
ldrb r2, [r0, #0x10]
movs r1, #0xdf
ands r1, r2
movs r3, #0
strb r1, [r0, #0x10]
ldr r1, _0805AF58 @ =gScreen
ldrh r2, [r1]
ldr r0, _0805AF5C @ =0x0000F7FF
ands r0, r2
strh r0, [r1]
adds r1, #0x66
strh r3, [r1]
bx lr
.align 2, 0
_0805AF58: .4byte gScreen
_0805AF5C: .4byte 0x0000F7FF