tmc/asm/manager23.s

349 lines
5.7 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0805BC74
sub_0805BC74: @ 0x0805BC74
push {lr}
ldr r2, _0805BC88 @ =gUnk_08108CCC
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0805BC88: .4byte gUnk_08108CCC
thumb_func_start sub_0805BC8C
sub_0805BC8C: @ 0x0805BC8C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805BCAE
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805BCAE
adds r0, r4, #0
bl sub_0805BE94
_0805BCAE:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805BCD0
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BCD0
adds r0, r4, #0
bl sub_0805BEC4
adds r0, r4, #0
bl sub_0805BE94
_0805BCD0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BCD4
sub_0805BCD4: @ 0x0805BCD4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _0805BD0E
cmp r0, #1
bgt _0805BCE8
cmp r0, #0
beq _0805BCEE
b _0805BD5A
_0805BCE8:
cmp r0, #2
beq _0805BD38
b _0805BD5A
_0805BCEE:
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x1e
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805BD5A
adds r0, r4, #0
movs r1, #0x75
bl sub_0805BE70
movs r0, #2
strb r0, [r4, #0xc]
b _0805BD5A
_0805BD0E:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805BD5A
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BD5A
movs r0, #0x1e
strb r0, [r4, #0xf]
adds r0, r4, #0
bl sub_0805BEC4
adds r0, r4, #0
movs r1, #0x76
bl sub_0805BE70
b _0805BD5A
_0805BD38:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
bne _0805BD5A
ldrb r0, [r4, #0xf]
subs r0, #1
strb r0, [r4, #0xf]
lsls r0, r0, #0x18
cmp r0, #0
bne _0805BD5A
movs r0, #0x1e
strb r0, [r4, #0xf]
adds r0, r4, #0
movs r1, #0x75
bl sub_0805BE70
_0805BD5A:
pop {r4, pc}
thumb_func_start sub_0805BD5C
sub_0805BD5C: @ 0x0805BD5C
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0805BD94
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _0805BD76
adds r0, r4, #0
bl sub_0805BE94
_0805BD76:
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x20]
movs r0, #1
strb r0, [r4, #0xc]
b _0805BDB0
_0805BD94:
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl GetTileType
cmp r0, #0x76
bne _0805BDB0
ldrh r0, [r4, #0x3e]
bl SetFlag
ldrb r0, [r4, #0xe]
bl sub_0805308C
bl DeleteThisEntity
_0805BDB0:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BDB4
sub_0805BDB4: @ 0x0805BDB4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _0805BDF4
cmp r0, #1
beq _0805BE2C
ldrh r0, [r4, #0x22]
subs r0, #1
strh r0, [r4, #0x22]
lsls r0, r0, #0x10
cmp r0, #0
bne _0805BE58
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
ldrh r0, [r4, #0x3e]
bl ClearFlag
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl sub_0807BA8C
ldrb r0, [r4, #0xe]
rsbs r0, r0, #0
bl sub_0805308C
b _0805BE26
_0805BDF4:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
bne _0805BE08
ldrh r0, [r4, #0x3c]
bl CheckFlags
cmp r0, #0
beq _0805BE0E
_0805BE08:
adds r0, r4, #0
bl sub_0805BE94
_0805BE0E:
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
strh r1, [r4, #0x20]
_0805BE26:
movs r0, #1
strb r0, [r4, #0xc]
b _0805BE6C
_0805BE2C:
ldrh r0, [r4, #0x20]
ldrb r1, [r4, #0xb]
bl GetTileType
cmp r0, #0x76
bne _0805BE6C
ldrh r0, [r4, #0x3e]
bl SetFlag
ldrb r0, [r4, #0xe]
bl sub_0805308C
movs r0, #2
strb r0, [r4, #0xc]
adds r0, r4, #0
adds r0, #0x36
ldrb r1, [r0]
lsls r0, r1, #4
subs r0, r0, r1
lsls r0, r0, #2
strh r0, [r4, #0x22]
b _0805BE6C
_0805BE58:
ldrh r0, [r4, #0x3c]
bl CheckFlags
cmp r0, #0
beq _0805BE6C
adds r0, r4, #0
bl sub_0805BEC4
bl DeleteThisEntity
_0805BE6C:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BE70
sub_0805BE70: @ 0x0805BE70
push {r4, lr}
adds r4, r1, #0
ldrh r1, [r0, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r2, [r0, #0x3a]
lsls r2, r2, #0x10
asrs r2, r2, #0x14
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r0, #0xb]
adds r0, r4, #0
bl SetTileType
pop {r4, pc}
thumb_func_start sub_0805BE94
sub_0805BE94: @ 0x0805BE94
push {r4, lr}
adds r4, r0, #0
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r2, #0x3f
ands r1, r2
ldrh r0, [r4, #0x3a]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
ldrb r2, [r4, #0xb]
movs r0, #0x76
bl SetTileType
ldrb r0, [r4, #0xe]
bl sub_0805308C
bl DeleteThisEntity
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0805BEC4
sub_0805BEC4: @ 0x0805BEC4
push {r4, lr}
adds r4, r0, #0
movs r0, #0x2a
movs r1, #1
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805BF10
ldrb r1, [r2, #0x11]
movs r0, #0x10
rsbs r0, r0, #0
ands r0, r1
movs r1, #3
orrs r0, r1
strb r0, [r2, #0x11]
ldr r1, _0805BF14 @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r1, [r4, #0x3a]
adds r0, r0, r1
strh r0, [r2, #0x32]
ldrb r1, [r4, #0xb]
adds r0, r2, #0
adds r0, #0x38
strb r1, [r0]
adds r2, #0x29
ldrb r1, [r2]
movs r0, #8
rsbs r0, r0, #0
ands r0, r1
movs r1, #2
orrs r0, r1
strb r0, [r2]
_0805BF10:
pop {r4, pc}
.align 2, 0
_0805BF14: .4byte gRoomControls