tmc/asm/code_0804B058.s

353 lines
6.0 KiB
ArmAsm

.include "asm/macros.inc"
.text
.syntax unified
thumb_func_start GetCurrentRoomProperty
GetCurrentRoomProperty: @ 0x0804B128
push {lr}
adds r2, r0, #0
ldr r0, _0804B138 @ =gUnk_02017654
ldr r1, [r0]
cmp r1, #0
bne _0804B13C
movs r0, #0
b _0804B166
.align 2, 0
_0804B138: .4byte gUnk_02017654
_0804B13C:
cmp r2, #0x7f
bls _0804B150
ldr r0, _0804B14C @ =gRoomVars
movs r1, #7
ands r1, r2
lsls r1, r1, #2
adds r0, #0x8c
b _0804B162
.align 2, 0
_0804B14C: .4byte gRoomVars
_0804B150:
cmp r2, #7
bls _0804B15C
lsls r0, r2, #2
adds r0, r0, r1
ldr r0, [r0]
b _0804B166
_0804B15C:
ldr r0, _0804B168 @ =gRoomVars
lsls r1, r2, #2
adds r0, #0x6c
_0804B162:
adds r1, r1, r0
ldr r0, [r1]
_0804B166:
pop {pc}
.align 2, 0
_0804B168: .4byte gRoomVars
thumb_func_start sub_0804B16C
sub_0804B16C: @ 0x0804B16C
push {r4, lr}
ldr r4, _0804B1A4 @ =gUnk_02017660
_0804B170:
ldrh r0, [r4, #4]
cmp r0, #0
beq _0804B198
ldrb r0, [r4, #1]
bl CheckLocalFlag
cmp r0, #0
beq _0804B198
ldrh r3, [r4, #4]
ldrb r1, [r4, #6]
movs r0, #1
ands r0, r1
movs r2, #1
cmp r0, #0
beq _0804B190
movs r2, #2
_0804B190:
movs r0, #0x74
adds r1, r3, #0
bl SetTileType
_0804B198:
adds r4, #8
ldr r0, _0804B1A8 @ =gPaletteBuffer
cmp r4, r0
blo _0804B170
pop {r4, pc}
.align 2, 0
_0804B1A4: .4byte gUnk_02017660
_0804B1A8: .4byte gPaletteBuffer
thumb_func_start LoadRoomTileEntities
LoadRoomTileEntities: @ 0x0804B1AC
push {r4, lr}
adds r4, r0, #0
cmp r4, #0
beq _0804B25A
b _0804B254
_0804B1B6:
ldrb r0, [r4]
subs r0, #1
cmp r0, #0xc
bhi _0804B252
lsls r0, r0, #2
ldr r1, _0804B1C8 @ =_0804B1CC
adds r0, r0, r1
ldr r0, [r0]
mov pc, r0
.align 2, 0
_0804B1C8: .4byte _0804B1CC
_0804B1CC: @ jump table
.4byte _0804B200 @ case 0
.4byte _0804B208 @ case 1
.4byte _0804B252 @ case 2
.4byte _0804B210 @ case 3
.4byte _0804B252 @ case 4
.4byte _0804B252 @ case 5
.4byte _0804B218 @ case 6
.4byte _0804B252 @ case 7
.4byte _0804B22C @ case 8
.4byte _0804B234 @ case 9
.4byte _0804B23C @ case 10
.4byte _0804B244 @ case 11
.4byte _0804B24C @ case 12
_0804B200:
adds r0, r4, #0
bl sub_0804B290
b _0804B252
_0804B208:
adds r0, r4, #0
bl sub_0804B29C
b _0804B252
_0804B210:
adds r0, r4, #0
bl sub_0804B300
b _0804B252
_0804B218:
ldr r0, _0804B224 @ =gArea
ldr r1, _0804B228 @ =0x00000864
adds r0, r0, r1
ldrb r1, [r4, #3]
str r1, [r0]
b _0804B252
.align 2, 0
_0804B224: .4byte gArea
_0804B228: .4byte 0x00000864
_0804B22C:
adds r0, r4, #0
bl sub_0804B334
b _0804B252
_0804B234:
adds r0, r4, #0
bl sub_0804B340
b _0804B252
_0804B23C:
adds r0, r4, #0
bl sub_0804B260
b _0804B252
_0804B244:
adds r0, r4, #0
bl sub_0804B27C
b _0804B252
_0804B24C:
ldr r1, _0804B25C @ =gRoomVars
ldrb r0, [r4, #3]
strb r0, [r1, #9]
_0804B252:
adds r4, #8
_0804B254:
ldrb r0, [r4]
cmp r0, #0
bne _0804B1B6
_0804B25A:
pop {r4, pc}
.align 2, 0
_0804B25C: .4byte gRoomVars
thumb_func_start sub_0804B260
sub_0804B260: @ 0x0804B260
push {lr}
ldrb r0, [r0, #1]
lsls r0, r0, #5
ldr r1, _0804B274 @ =gUnk_080015BC
adds r0, r0, r1
ldr r1, _0804B278 @ =gUnk_02034398
movs r2, #0x20
bl MemCopy
pop {pc}
.align 2, 0
_0804B274: .4byte gUnk_080015BC
_0804B278: .4byte gUnk_02034398
thumb_func_start sub_0804B27C
sub_0804B27C: @ 0x0804B27C
push {lr}
ldr r1, _0804B28C @ =gArea
ldrb r0, [r0, #1]
strb r0, [r1, #1]
bl sub_08054524
pop {pc}
.align 2, 0
_0804B28C: .4byte gArea
thumb_func_start sub_0804B290
sub_0804B290: @ 0x0804B290
push {lr}
ldrb r0, [r0, #1]
bl SetLocalFlag
pop {pc}
.align 2, 0
thumb_func_start sub_0804B29C
sub_0804B29C: @ 0x0804B29C
push {r4, lr}
adds r2, r0, #0
ldr r4, _0804B2EC @ =gUnk_02017660
movs r1, #0
_0804B2A4:
ldrh r0, [r4, #4]
cmp r0, #0
bne _0804B2F4
adds r0, r2, #0
adds r1, r4, #0
movs r2, #8
bl MemCopy
ldrb r1, [r4, #6]
movs r0, #1
ands r0, r1
cmp r0, #0
beq _0804B2FC
ldr r0, _0804B2F0 @ =gRoomControls
ldrb r1, [r0, #0xf]
movs r0, #2
ands r0, r1
cmp r0, #0
beq _0804B2FC
ldrb r0, [r4, #1]
bl CheckLocalFlag
cmp r0, #0
bne _0804B2FC
ldrb r1, [r4, #1]
movs r0, #0x52
movs r2, #0
bl CreateObject
cmp r0, #0
beq _0804B2FC
ldrh r1, [r4, #4]
bl sub_0806F704
b _0804B2FC
.align 2, 0
_0804B2EC: .4byte gUnk_02017660
_0804B2F0: .4byte gRoomControls
_0804B2F4:
adds r1, #1
adds r4, #8
cmp r1, #7
bls _0804B2A4
_0804B2FC:
pop {r4, pc}
.align 2, 0
thumb_func_start sub_0804B300
sub_0804B300: @ 0x0804B300
push {r4, lr}
adds r4, r0, #0
bl GetEmptyManager
adds r1, r0, #0
cmp r1, #0
beq _0804B332
movs r0, #9
strb r0, [r1, #8]
movs r0, #0x24
strb r0, [r1, #9]
ldrh r0, [r4, #4]
strh r0, [r1, #0x38]
ldrh r0, [r4, #6]
strh r0, [r1, #0x3a]
ldrb r0, [r4, #2]
adds r2, r1, #0
adds r2, #0x35
strb r0, [r2]
ldrb r0, [r4, #1]
strh r0, [r1, #0x3e]
adds r0, r1, #0
movs r1, #6
bl AppendEntityToList
_0804B332:
pop {r4, pc}
thumb_func_start sub_0804B334
sub_0804B334: @ 0x0804B334
push {lr}
ldrb r0, [r0, #3]
movs r1, #1
bl sub_0805BB00
pop {pc}
thumb_func_start sub_0804B340
sub_0804B340: @ 0x0804B340
push {r4, lr}
adds r4, r0, #0
ldrh r0, [r4, #2]
bl CheckLocalFlag
cmp r0, #0
beq _0804B35A
ldrh r0, [r4, #6]
ldrh r1, [r4, #4]
ldrb r2, [r4, #1]
bl SetTileType
b _0804B380
_0804B35A:
ldr r1, _0804B384 @ =gRoomVars
ldrb r0, [r1, #1]
cmp r0, #0
bne _0804B380
movs r0, #1
strb r0, [r1, #1]
bl GetEmptyManager
adds r1, r0, #0
cmp r1, #0
beq _0804B380
movs r0, #9
strb r0, [r1, #8]
movs r0, #0x2a
strb r0, [r1, #9]
adds r0, r1, #0
movs r1, #6
bl AppendEntityToList
_0804B380:
pop {r4, pc}
.align 2, 0
_0804B384: .4byte gRoomVars
thumb_func_start sub_0804B388
sub_0804B388: @ 0x0804B388
push {r4, r5, lr}
adds r5, r0, #0
adds r4, r1, #0
movs r0, #0x34
cmp r4, #1
bne _0804B396
movs r0, #0x26
_0804B396:
adds r1, r5, #0
adds r2, r4, #0
bl SetTileType
movs r0, #0xf
movs r1, #2
movs r2, #0
bl CreateObject
adds r1, r0, #0
cmp r1, #0
beq _0804B3BA
adds r0, #0x38
strb r4, [r0]
adds r0, r1, #0
adds r1, r5, #0
bl sub_0806F704
_0804B3BA:
movs r0, #1
rsbs r0, r0, #0
bl sub_080526F8
pop {r4, r5, pc}