tmc/asm/managerF.s

874 lines
15 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_08058ECC
sub_08058ECC: @ 0x08058ECC
push {lr}
ldr r2, _08058EE0 @ =gUnk_08108314
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_08058EE0: .4byte gUnk_08108314
thumb_func_start sub_08058EE4
sub_08058EE4: @ 0x08058EE4
push {r4, r5, r6, lr}
adds r6, r0, #0
ldrb r0, [r6, #0xc]
cmp r0, #0
bne _08058EF2
movs r0, #1
strb r0, [r6, #0xc]
_08058EF2:
ldrb r0, [r6, #0xb]
bl CheckRoomFlag
cmp r0, #0
beq _08058F40
movs r5, #0x94
lsls r5, r5, #1
ldrb r2, [r6, #0xb]
adds r2, #1
adds r0, r5, #0
movs r1, #0x68
bl sub_08058F44
movs r4, #0xac
lsls r4, r4, #1
ldrb r2, [r6, #0xb]
adds r2, #2
adds r0, r4, #0
movs r1, #0x68
bl sub_08058F44
ldrb r2, [r6, #0xb]
adds r2, #3
adds r0, r5, #0
movs r1, #0x98
bl sub_08058F44
ldrb r2, [r6, #0xb]
adds r2, #4
adds r0, r4, #0
movs r1, #0x98
bl sub_08058F44
movs r0, #0x92
lsls r0, r0, #1
bl PlaySFX
bl DeleteThisEntity
_08058F40:
pop {r4, r5, r6, pc}
.align 2, 0
thumb_func_start sub_08058F44
sub_08058F44: @ 0x08058F44
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
adds r0, r2, #0
bl CheckRoomFlag
cmp r0, #0
bne _08058F80
adds r0, r4, #0
adds r1, r5, #0
movs r2, #1
bl sub_080002A8
cmp r0, #0x61
bne _08058F80
lsrs r1, r4, #4
movs r2, #0x3f
ands r1, r2
lsrs r0, r5, #4
ands r0, r2
lsls r0, r0, #6
orrs r1, r0
movs r0, #0x26
movs r2, #1
bl SetTileType
adds r0, r4, #0
adds r1, r5, #0
bl sub_08058F84
_08058F80:
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_08058F84
sub_08058F84: @ 0x08058F84
push {r4, r5, lr}
adds r4, r0, #0
adds r5, r1, #0
movs r0, #0x21
movs r1, #0
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08058FA8
ldr r0, _08058FAC @ =gRoomControls
ldrh r1, [r0, #6]
adds r1, r1, r4
strh r1, [r2, #0x2e]
ldrh r0, [r0, #8]
adds r0, r0, r5
strh r0, [r2, #0x32]
_08058FA8:
pop {r4, r5, pc}
.align 2, 0
_08058FAC: .4byte gRoomControls
thumb_func_start sub_08058FB0
sub_08058FB0: @ 0x08058FB0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _08058FF6
cmp r0, #1
bgt _08058FC4
cmp r0, #0
beq _08058FCA
b _08059050
_08058FC4:
cmp r0, #2
beq _08059018
b _08059050
_08058FCA:
movs r0, #1
strb r0, [r4, #0xc]
ldrb r0, [r4, #0xa]
cmp r0, #1
bne _08058FDC
movs r0, #7
strb r0, [r4, #0xd]
movs r0, #6
b _08058FE2
_08058FDC:
movs r0, #8
strb r0, [r4, #0xd]
movs r0, #2
_08058FE2:
strb r0, [r4, #0xf]
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _08059060
adds r0, r4, #0
bl sub_0805E900
b _08059060
_08058FF6:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _08059060
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r0, r4, #0
movs r1, #0xf0
bl sub_0805E4E0
adds r0, r4, #0
bl sub_08059064
b _08059060
_08059018:
ldrb r0, [r4, #0xe]
cmp r0, #0x5a
bne _08059028
movs r0, #2
bl sub_08078A90
bl sub_08077B20
_08059028:
ldrb r2, [r4, #0xe]
cmp r2, #0x3c
bne _08059034
ldr r1, _0805904C @ =gLinkEntity
ldrb r0, [r4, #0xf]
strb r0, [r1, #0x14]
_08059034:
subs r0, r2, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _08059060
movs r0, #3
strb r0, [r4, #0xc]
ldrb r1, [r4, #0xd]
movs r0, #5
bl sub_080A7138
b _08059060
.align 2, 0
_0805904C: .4byte gLinkEntity
_08059050:
ldrh r0, [r4, #0x3e]
bl SetFlag
movs r0, #1
bl sub_08078A90
bl DeleteThisEntity
_08059060:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08059064
sub_08059064: @ 0x08059064
push {r4, lr}
adds r4, r0, #0
movs r0, #0
movs r1, #0x53
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805908E
movs r0, #2
strb r0, [r2, #0xe]
ldr r1, _08059090 @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
_0805908E:
pop {r4, pc}
.align 2, 0
_08059090: .4byte gRoomControls
thumb_func_start sub_08059094
sub_08059094: @ 0x08059094
push {r4, r5, lr}
adds r4, r0, #0
movs r5, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080590B6
movs r0, #1
strb r0, [r4, #0xc]
movs r0, #0x60
bl CheckLocalFlag
cmp r0, #0
bne _080590CC
movs r0, #0x5f
bl SetLocalFlag
b _080590C8
_080590B6:
movs r0, #0x60
bl CheckLocalFlag
cmp r0, #0
beq _080590C8
movs r0, #0x5f
bl ClearLocalFlag
movs r5, #1
_080590C8:
cmp r5, #0
beq _080590D8
_080590CC:
ldr r0, _080590DC @ =gUnk_080F4B88
bl LoadRoomEntityList
adds r0, r4, #0
bl sub_0805E900
_080590D8:
pop {r4, r5, pc}
.align 2, 0
_080590DC: .4byte gUnk_080F4B88
thumb_func_start sub_080590E0
sub_080590E0: @ 0x080590E0
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xc]
cmp r0, #0
bne _080590F6
movs r0, #1
strb r0, [r1, #0xc]
adds r0, r1, #0
movs r1, #6
bl sub_0805E3A0
_080590F6:
movs r0, #0x6c
bl CheckLocalFlag
cmp r0, #0
beq _0805911A
movs r0, #0x4b
bl CheckLocalFlag
cmp r0, #0
beq _08059112
movs r0, #0x4a
bl SetLocalFlag
b _08059120
_08059112:
movs r0, #0x4a
bl ClearLocalFlag
b _08059120
_0805911A:
movs r0, #0x4a
bl ClearLocalFlag
_08059120:
pop {pc}
.align 2, 0
thumb_func_start sub_08059124
sub_08059124: @ 0x08059124
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
beq _08059174
cmp r0, #1
beq _080591AC
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _080591C8
movs r1, #0x38
ldrsh r0, [r4, r1]
movs r2, #0x3a
ldrsh r1, [r4, r2]
ldrb r2, [r4, #0xb]
bl sub_080A29C8
ldrh r0, [r4, #0x38]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
movs r2, #0x3f
ands r0, r2
ldrh r1, [r4, #0x3a]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
ldrb r1, [r4, #0xb]
bl sub_0807BA8C
movs r0, #0xcd
bl PlaySFX
bl DeleteThisEntity
b _080591C8
_08059174:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _08059182
bl DeleteThisEntity
_08059182:
movs r0, #1
strb r0, [r4, #0xc]
ldr r0, _080591A8 @ =0x00000365
ldrh r1, [r4, #0x38]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
movs r3, #0x3f
ands r1, r3
ldrh r2, [r4, #0x3a]
lsls r2, r2, #0x10
asrs r2, r2, #0x14
ands r2, r3
lsls r2, r2, #6
orrs r1, r2
ldrb r2, [r4, #0xb]
bl SetTileType
b _080591C8
.align 2, 0
_080591A8: .4byte 0x00000365
_080591AC:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _080591C8
adds r0, r4, #0
movs r1, #0x4b
bl sub_0805E4E0
movs r0, #0x2d
strb r0, [r4, #0xe]
ldrb r0, [r4, #0xc]
adds r0, #1
strb r0, [r4, #0xc]
_080591C8:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_080591CC
sub_080591CC: @ 0x080591CC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080591F4
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3e]
bl CheckFlags
strb r0, [r4, #0xb]
lsls r0, r0, #0x18
cmp r0, #0
beq _08059214
ldr r1, _080591F0 @ =gRoomVars
ldrh r0, [r4, #0x3a]
b _08059218
.align 2, 0
_080591F0: .4byte gRoomVars
_080591F4:
ldrh r0, [r4, #0x3e]
bl CheckFlags
adds r1, r0, #0
ldrb r0, [r4, #0xb]
cmp r0, r1
beq _0805921A
strb r1, [r4, #0xb]
cmp r1, #0
beq _08059214
ldr r1, _08059210 @ =gRoomVars
ldrh r0, [r4, #0x3a]
b _08059218
.align 2, 0
_08059210: .4byte gRoomVars
_08059214:
ldr r1, _0805921C @ =gRoomVars
ldrh r0, [r4, #0x38]
_08059218:
strh r0, [r1, #0xc]
_0805921A:
pop {r4, pc}
.align 2, 0
_0805921C: .4byte gRoomVars
thumb_func_start sub_08059220
sub_08059220: @ 0x08059220
push {r4, r5, r6, r7, lr}
adds r5, r0, #0
ldr r2, _08059268 @ =gRoomVars
movs r0, #0
strh r0, [r2, #0xc]
ldr r4, _0805926C @ =gUnk_08108354
ldrh r0, [r4]
ldr r1, _08059270 @ =0x0000FFFF
cmp r0, r1
beq _08059254
adds r7, r2, #0
adds r6, r1, #0
_08059238:
ldrh r0, [r4]
ldrh r1, [r4, #2]
ldrh r2, [r4, #4]
ldrh r3, [r4, #6]
bl CheckPlayerInRegion
cmp r0, #0
beq _0805924C
ldrh r0, [r4, #8]
strh r0, [r7, #0xc]
_0805924C:
adds r4, #0xa
ldrh r0, [r4]
cmp r0, r6
bne _08059238
_08059254:
ldrb r0, [r5, #0xc]
cmp r0, #0
bne _08059266
movs r0, #1
strb r0, [r5, #0xc]
ldr r1, _08059274 @ =gArea
ldr r0, _08059268 @ =gRoomVars
ldrh r0, [r0, #0xc]
strh r0, [r1, #0xa]
_08059266:
pop {r4, r5, r6, r7, pc}
.align 2, 0
_08059268: .4byte gRoomVars
_0805926C: .4byte gUnk_08108354
_08059270: .4byte 0x0000FFFF
_08059274: .4byte gArea
thumb_func_start sub_08059278
sub_08059278: @ 0x08059278
push {lr}
movs r0, #9
movs r1, #0xf
movs r2, #6
bl sub_0805EB00
cmp r0, #0
beq _0805928C
bl sub_08058ECC
_0805928C:
pop {pc}
.align 2, 0
thumb_func_start sub_08059290
sub_08059290: @ 0x08059290
movs r1, #1
strb r1, [r0, #0xc]
ldr r1, _0805929C @ =gRoomControls
ldr r0, _080592A0 @ =gLinkEntity
str r0, [r1, #0x30]
bx lr
.align 2, 0
_0805929C: .4byte gRoomControls
_080592A0: .4byte gLinkEntity
thumb_func_start sub_080592A4
sub_080592A4: @ 0x080592A4
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _080592C8
movs r0, #1
strb r0, [r4, #0xc]
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _080592EA
adds r0, r4, #0
bl sub_080592EC
bl DeleteThisEntity
b _080592EA
_080592C8:
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _080592EA
adds r0, r4, #0
bl sub_080592EC
adds r0, r4, #0
bl sub_0805930C
movs r0, #0xb7
lsls r0, r0, #1
bl PlaySFX
bl DeleteThisEntity
_080592EA:
pop {r4, pc}
thumb_func_start sub_080592EC
sub_080592EC: @ 0x080592EC
push {lr}
adds r1, r0, #0
ldrh r0, [r1, #0x38]
lsls r0, r0, #0x10
asrs r0, r0, #0x14
movs r2, #0x3f
ands r0, r2
ldrh r1, [r1, #0x3a]
lsls r1, r1, #0x10
asrs r1, r1, #0x14
ands r1, r2
lsls r1, r1, #6
orrs r0, r1
bl sub_08059340
pop {pc}
thumb_func_start sub_0805930C
sub_0805930C: @ 0x0805930C
push {r4, lr}
adds r4, r0, #0
movs r0, #0xf
movs r1, #0x43
movs r2, #0x40
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _0805933A
ldr r1, _0805933C @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
adds r1, r2, #0
adds r1, #0x38
movs r0, #1
strb r0, [r1]
_0805933A:
pop {r4, pc}
.align 2, 0
_0805933C: .4byte gRoomControls
thumb_func_start sub_08059340
sub_08059340: @ 0x08059340
push {r4, lr}
adds r4, r0, #0
movs r0, #0x1d
adds r1, r4, #0
movs r2, #1
bl SetTileType
movs r0, #0
adds r1, r4, #0
movs r2, #2
bl SetTileType
subs r4, #0x40
movs r0, #0
adds r1, r4, #0
movs r2, #2
bl SetTileType
pop {r4, pc}
.align 2, 0
thumb_func_start sub_08059368
sub_08059368: @ 0x08059368
push {lr}
adds r2, r0, #0
movs r0, #1
strb r0, [r2, #0xc]
ldr r1, _08059388 @ =gUnk_02022780
ldrh r0, [r2, #0x3c]
ldrh r1, [r1, #0x28]
cmp r0, r1
bne _08059384
ldrh r0, [r2, #0x3e]
bl SetFlag
bl DeleteThisEntity
_08059384:
pop {pc}
.align 2, 0
_08059388: .4byte gUnk_02022780
thumb_func_start sub_0805938C
sub_0805938C: @ 0x0805938C
push {r4, lr}
adds r4, r0, #0
bl sub_080593CC
cmp r0, #0
beq _080593C8
ldrb r0, [r4, #0xe]
adds r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
lsrs r0, r0, #0x18
cmp r0, #7
bls _080593CA
movs r1, #0x38
ldrsh r0, [r4, r1]
ldr r2, _080593C4 @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
movs r3, #0x3a
ldrsh r1, [r4, r3]
ldrh r2, [r2, #8]
subs r1, r1, r2
movs r2, #0xff
movs r3, #0xa
bl sub_080806BC
b _080593CA
.align 2, 0
_080593C4: .4byte gRoomControls
_080593C8:
strb r0, [r4, #0xe]
_080593CA:
pop {r4, pc}
thumb_func_start sub_080593CC
sub_080593CC: @ 0x080593CC
push {r4, lr}
adds r3, r0, #0
ldr r2, _08059418 @ =gLinkState
ldr r0, [r2, #0x30]
movs r1, #0x80
ands r0, r1
cmp r0, #0
bne _08059420
adds r0, r2, #0
adds r0, #0x26
ldrb r0, [r0]
cmp r0, #0
beq _08059420
ldr r4, _0805941C @ =gLinkEntity
ldrb r0, [r4, #0x14]
cmp r0, #0
bne _08059420
adds r0, r2, #0
adds r0, #0x90
ldrh r1, [r0]
movs r0, #0xf0
lsls r0, r0, #4
ands r0, r1
movs r1, #0x80
lsls r1, r1, #3
cmp r0, r1
bne _08059420
movs r0, #0x38
ldrsh r1, [r3, r0]
movs r0, #0x3a
ldrsh r2, [r3, r0]
adds r2, #0xc
adds r0, r4, #0
movs r3, #6
bl sub_0806FCB8
b _08059422
.align 2, 0
_08059418: .4byte gLinkState
_0805941C: .4byte gLinkEntity
_08059420:
movs r0, #0
_08059422:
pop {r4, pc}
thumb_func_start sub_08059424
sub_08059424: @ 0x08059424
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #0x3e]
bl CheckFlags
cmp r0, #0
beq _08059436
bl DeleteThisEntity
_08059436:
ldrh r0, [r4, #0x3c]
bl CheckFlags
cmp r0, #0
beq _08059476
movs r0, #0xf
movs r1, #0x35
movs r2, #0
bl CreateObject
adds r2, r0, #0
cmp r2, #0
beq _08059476
adds r1, r2, #0
adds r1, #0x38
movs r0, #2
strb r0, [r1]
ldr r1, _08059478 @ =gRoomControls
ldrh r0, [r1, #6]
ldrh r3, [r4, #0x38]
adds r0, r0, r3
strh r0, [r2, #0x2e]
ldrh r0, [r1, #8]
ldrh r4, [r4, #0x3a]
adds r0, r0, r4
strh r0, [r2, #0x32]
movs r0, #0xd8
lsls r0, r0, #1
bl sub_08004488
bl DeleteThisEntity
_08059476:
pop {r4, pc}
.align 2, 0
_08059478: .4byte gRoomControls
thumb_func_start sub_0805947C
sub_0805947C: @ 0x0805947C
push {lr}
ldrh r0, [r0, #0x3e]
bl CheckFlags
cmp r0, #0
bne _080594CE
movs r0, #3
bl sub_08078A90
ldr r1, _080594B0 @ =gRoomControls
ldrh r0, [r1]
cmp r0, #0
bne _080594D2
ldr r0, _080594B4 @ =gRoomVars
ldrb r0, [r0]
cmp r0, #0
beq _080594BC
ldr r0, _080594B8 @ =gUnk_08108380
ldrb r1, [r1, #0x10]
lsls r1, r1, #2
adds r1, r1, r0
ldr r0, [r1]
bl StartPlayerScript
b _080594CE
.align 2, 0
_080594B0: .4byte gRoomControls
_080594B4: .4byte gRoomVars
_080594B8: .4byte gUnk_08108380
_080594BC:
ldr r1, _080594D4 @ =gUnk_08108380
ldr r0, _080594D8 @ =gLinkEntity
ldrb r0, [r0, #0x14]
lsrs r0, r0, #1
lsls r0, r0, #2
adds r0, r0, r1
ldr r0, [r0]
bl StartPlayerScript
_080594CE:
bl DeleteThisEntity
_080594D2:
pop {pc}
.align 2, 0
_080594D4: .4byte gUnk_08108380
_080594D8: .4byte gLinkEntity
thumb_func_start sub_080594DC
sub_080594DC: @ 0x080594DC
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #1
beq _080594F2
cmp r0, #1
bgt _0805951C
cmp r0, #0
bne _0805951C
movs r0, #1
strb r0, [r4, #0xc]
_080594F2:
movs r0, #6
bl GetInventoryValue
cmp r0, #0
beq _08059540
movs r0, #0x8c
lsls r0, r0, #4
movs r1, #0x85
bl CheckLocalFlagByOffset
cmp r0, #0
bne _08059540
movs r0, #2
strb r0, [r4, #0xc]
ldr r0, _08059518 @ =0x00000B0F
bl sub_080186C0
b _08059540
.align 2, 0
_08059518: .4byte 0x00000B0F
_0805951C:
ldr r0, _08059544 @ =gArea
adds r0, #0x28
ldrb r0, [r0]
cmp r0, #0xff
beq _0805952A
bl DeleteThisEntity
_0805952A:
movs r0, #0x8c
lsls r0, r0, #4
movs r1, #0x85
bl CheckLocalFlagByOffset
cmp r0, #0
beq _08059540
bl sub_0801855C
bl DeleteThisEntity
_08059540:
pop {r4, pc}
.align 2, 0
_08059544: .4byte gArea
thumb_func_start sub_08059548
sub_08059548: @ 0x08059548
push {lr}
movs r1, #6
bl sub_0805E3A0
ldr r0, _08059568 @ =gLinkEntity
ldrb r0, [r0, #0xc]
cmp r0, #0x16
bne _0805955C
bl DeleteThisEntity
_0805955C:
ldr r2, _0805956C @ =gUnk_03000FF0
ldrh r1, [r2]
movs r0, #4
orrs r0, r1
strh r0, [r2]
pop {pc}
.align 2, 0
_08059568: .4byte gLinkEntity
_0805956C: .4byte gUnk_03000FF0