tmc/asm/cloud.s

460 lines
7.8 KiB
ArmAsm

.include "asm/macros.inc"
.include "constants/constants.inc"
.syntax unified
.text
thumb_func_start sub_0809F4C4
sub_0809F4C4: @ 0x0809F4C4
push {lr}
ldr r2, _0809F4D8 @ =gUnk_08124798
ldrb r1, [r0, #0xa]
lsls r1, r1, #2
adds r1, r1, r2
ldr r1, [r1]
bl _call_via_r1
pop {pc}
.align 2, 0
_0809F4D8: .4byte gUnk_08124798
thumb_func_start sub_0809F4DC
sub_0809F4DC: @ 0x0809F4DC
push {lr}
adds r2, r0, #0
ldrb r0, [r2, #0xb]
cmp r0, #0
bne _0809F4FC
ldr r0, _0809F4F8 @ =gUnk_081247A0
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
b _0809F50C
.align 2, 0
_0809F4F8: .4byte gUnk_081247A0
_0809F4FC:
ldr r0, _0809F510 @ =gUnk_081247AC
ldrb r1, [r2, #0xc]
lsls r1, r1, #2
adds r1, r1, r0
ldr r1, [r1]
adds r0, r2, #0
bl _call_via_r1
_0809F50C:
pop {pc}
.align 2, 0
_0809F510: .4byte gUnk_081247AC
thumb_func_start sub_0809F514
sub_0809F514: @ 0x0809F514
push {lr}
movs r1, #1
strb r1, [r0, #0xc]
movs r1, #0x78
strb r1, [r0, #0xe]
ldrb r2, [r0, #0x18]
subs r1, #0x7c
ands r1, r2
strb r1, [r0, #0x18]
adds r2, r0, #0
adds r2, #0x68
movs r1, #0xc
strb r1, [r2]
ldr r1, _0809F540 @ =gRoomControls
str r0, [r1, #0x30]
ldr r2, _0809F544 @ =gUnk_02034490
movs r1, #0xff
strb r1, [r2]
bl sub_0809F7BC
pop {pc}
.align 2, 0
_0809F540: .4byte gRoomControls
_0809F544: .4byte gUnk_02034490
thumb_func_start sub_0809F548
sub_0809F548: @ 0x0809F548
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F590
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x5a
strb r0, [r4, #0xe]
adds r0, #0xc3
bl PlaySFX
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldr r2, _0809F58C @ =gRoomControls
ldrh r1, [r2, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r5, #0x32
ldrsh r1, [r4, r5]
ldrh r2, [r2, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
bl sub_0809F814
b _0809F5A8
.align 2, 0
_0809F58C: .4byte gRoomControls
_0809F590:
ldr r0, _0809F5AC @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0809F5A2
adds r0, r4, #0
bl sub_0809F7BC
_0809F5A2:
adds r0, r4, #0
bl sub_0809F7F4
_0809F5A8:
pop {r4, r5, pc}
.align 2, 0
_0809F5AC: .4byte gUnk_030010A0
thumb_func_start sub_0809F5B0
sub_0809F5B0: @ 0x0809F5B0
push {lr}
ldrb r1, [r0, #0xe]
subs r1, #1
strb r1, [r0, #0xe]
lsls r1, r1, #0x18
cmp r1, #0
bne _0809F5D4
movs r0, #0x73
bl PlaySFX
movs r0, #0x24
bl SetGlobalFlag
ldr r0, _0809F5D8 @ =gUnk_080DD750
bl LoadRoomEntityList
bl sub_0805E780
_0809F5D4:
pop {pc}
.align 2, 0
_0809F5D8: .4byte gUnk_080DD750
thumb_func_start sub_0809F5DC
sub_0809F5DC: @ 0x0809F5DC
movs r1, #1
strb r1, [r0, #0xc]
ldrb r2, [r0, #0x18]
subs r1, #5
ands r1, r2
strb r1, [r0, #0x18]
adds r0, #0x68
movs r1, #0xc
strb r1, [r0]
bx lr
thumb_func_start sub_0809F5F0
sub_0809F5F0: @ 0x0809F5F0
push {r4, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xe]
bl CheckRoomFlag
cmp r0, #0
beq _0809F614
movs r0, #2
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
movs r0, #3
bl sub_08078A90
bl sub_08078B48
ldr r0, _0809F618 @ =gRoomControls
str r4, [r0, #0x30]
_0809F614:
pop {r4, pc}
.align 2, 0
_0809F618: .4byte gRoomControls
thumb_func_start sub_0809F61C
sub_0809F61C: @ 0x0809F61C
push {r4, r5, lr}
adds r4, r0, #0
ldr r5, _0809F678 @ =gRoomControls
ldrb r1, [r5, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0809F694
ldrb r0, [r4, #0xe]
cmp r0, #0x1e
bne _0809F638
ldrb r0, [r4, #0xb]
bl SetLocalFlag
_0809F638:
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F67C
movs r0, #3
strb r0, [r4, #0xc]
movs r0, #0x78
strb r0, [r4, #0xe]
adds r0, #0xa5
bl PlaySFX
movs r1, #0x2e
ldrsh r0, [r4, r1]
ldrh r1, [r5, #6]
subs r0, r0, r1
asrs r0, r0, #4
movs r3, #0x3f
ands r0, r3
movs r2, #0x32
ldrsh r1, [r4, r2]
ldrh r2, [r5, #8]
subs r1, r1, r2
asrs r1, r1, #4
ands r1, r3
lsls r1, r1, #6
orrs r0, r1
bl sub_0809F814
b _0809F694
.align 2, 0
_0809F678: .4byte gRoomControls
_0809F67C:
ldr r0, _0809F698 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #7
ands r0, r1
cmp r0, #0
bne _0809F68E
adds r0, r4, #0
bl sub_0809F7BC
_0809F68E:
adds r0, r4, #0
bl sub_0809F7F4
_0809F694:
pop {r4, r5, pc}
.align 2, 0
_0809F698: .4byte gUnk_030010A0
thumb_func_start sub_0809F69C
sub_0809F69C: @ 0x0809F69C
push {lr}
adds r1, r0, #0
ldrb r0, [r1, #0xe]
subs r0, #1
strb r0, [r1, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F6C0
movs r0, #0x1e
strb r0, [r1, #0xe]
movs r0, #4
strb r0, [r1, #0xc]
ldr r1, _0809F6C4 @ =gRoomControls
ldr r0, _0809F6C8 @ =gLinkEntity
str r0, [r1, #0x30]
movs r0, #0x73
bl PlaySFX
_0809F6C0:
pop {pc}
.align 2, 0
_0809F6C4: .4byte gRoomControls
_0809F6C8: .4byte gLinkEntity
thumb_func_start sub_0809F6CC
sub_0809F6CC: @ 0x0809F6CC
push {lr}
adds r2, r0, #0
ldr r0, _0809F6F8 @ =gRoomControls
ldrb r1, [r0, #0xf]
movs r0, #4
ands r0, r1
cmp r0, #0
bne _0809F6F4
ldrb r0, [r2, #0xe]
subs r0, #1
strb r0, [r2, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F6F4
ldr r0, _0809F6FC @ =gLinkState
adds r0, #0x8b
movs r1, #1
strb r1, [r0]
bl sub_0805E780
_0809F6F4:
pop {pc}
.align 2, 0
_0809F6F8: .4byte gRoomControls
_0809F6FC: .4byte gLinkState
thumb_func_start sub_0809F700
sub_0809F700: @ 0x0809F700
push {r4, r5, lr}
adds r4, r0, #0
ldrb r0, [r4, #0xc]
cmp r0, #0
bne _0809F722
movs r0, #1
strb r0, [r4, #0xc]
bl Random
movs r1, #0x1e
ands r0, r1
adds r0, #8
strb r0, [r4, #0xe]
ldrb r1, [r4, #0x10]
movs r0, #0xc
orrs r0, r1
strb r0, [r4, #0x10]
_0809F722:
ldr r0, _0809F768 @ =gUnk_030010A0
ldr r0, [r0]
movs r1, #3
ands r0, r1
cmp r0, #0
bne _0809F750
bl Random
ldr r3, _0809F76C @ =gUnk_081247C0
movs r2, #7
adds r1, r0, #0
ands r1, r2
adds r1, r1, r3
ldrb r1, [r1]
movs r5, #0x62
strb r1, [r5, r4]
lsrs r0, r0, #4
ands r0, r2
adds r0, r0, r3
ldrb r0, [r0]
adds r1, r4, #0
adds r1, #0x63
strb r0, [r1]
_0809F750:
adds r0, r4, #0
bl sub_0806F69C
ldrb r0, [r4, #0xe]
subs r0, #1
strb r0, [r4, #0xe]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F766
bl sub_0805E780
_0809F766:
pop {r4, r5, pc}
.align 2, 0
_0809F768: .4byte gUnk_030010A0
_0809F76C: .4byte gUnk_081247C0
thumb_func_start sub_0809F770
sub_0809F770: @ 0x0809F770
push {r4, r5, lr}
adds r5, r0, #0
movs r0, #0xa3
movs r1, #1
movs r2, #0
bl CreateObject
adds r4, r0, #0
cmp r4, #0
beq _0809F7B6
adds r0, r5, #0
adds r1, r4, #0
bl sub_0806FA30
bl Random
ldrh r2, [r4, #0x2e]
subs r2, #0x10
movs r3, #0x1f
adds r1, r0, #0
ands r1, r3
adds r2, r2, r1
strh r2, [r4, #0x2e]
ldrh r2, [r4, #0x32]
subs r2, #0x10
asrs r1, r0, #8
ands r1, r3
adds r2, r2, r1
strh r2, [r4, #0x32]
asrs r0, r0, #0x10
movs r1, #3
ands r0, r1
strb r0, [r4, #0x1e]
movs r0, #0xff
strb r0, [r4, #0x15]
_0809F7B6:
adds r0, r4, #0
pop {r4, r5, pc}
.align 2, 0
thumb_func_start sub_0809F7BC
sub_0809F7BC: @ 0x0809F7BC
push {r4, r5, r6, r7, lr}
adds r6, r0, #0
movs r5, #0
ldr r7, _0809F7F0 @ =gUnk_081247C8
_0809F7C4:
adds r0, r6, #0
bl sub_0809F770
adds r4, r0, #0
cmp r4, #0
beq _0809F7E8
bl Random
movs r1, #3
ands r1, r0
lsls r1, r1, #1
adds r1, r1, r7
ldrh r1, [r1]
strh r1, [r4, #0x24]
lsrs r0, r0, #8
movs r1, #0x1f
ands r0, r1
strb r0, [r4, #0x15]
_0809F7E8:
adds r5, #1
cmp r5, #7
bls _0809F7C4
pop {r4, r5, r6, r7, pc}
.align 2, 0
_0809F7F0: .4byte gUnk_081247C8
thumb_func_start sub_0809F7F4
sub_0809F7F4: @ 0x0809F7F4
push {lr}
adds r1, r0, #0
adds r1, #0x68
ldrb r0, [r1]
subs r0, #1
strb r0, [r1]
lsls r0, r0, #0x18
cmp r0, #0
bne _0809F812
movs r0, #0xc
strb r0, [r1]
movs r0, #0xc2
lsls r0, r0, #1
bl PlaySFX
_0809F812:
pop {pc}
thumb_func_start sub_0809F814
sub_0809F814: @ 0x0809F814
push {lr}
adds r1, r0, #0
ldr r0, _0809F824 @ =gUnk_081247D0
movs r2, #1
bl sub_0807BB68
pop {pc}
.align 2, 0
_0809F824: .4byte gUnk_081247D0