mirror of https://github.com/zeldaret/tmc.git
12204 lines
205 KiB
ArmAsm
12204 lines
205 KiB
ArmAsm
.include "asm/macros.inc"
|
|
|
|
.include "constants/constants.inc"
|
|
|
|
.syntax unified
|
|
|
|
.text
|
|
|
|
thumb_func_start sub_08080974
|
|
sub_08080974: @ 0x08080974
|
|
push {r4, lr}
|
|
adds r3, r0, #0
|
|
adds r4, r1, #0
|
|
ldr r1, _0808098C @ =gRoomControls
|
|
ldrh r2, [r1, #6]
|
|
adds r0, r2, #0
|
|
adds r0, #0x78
|
|
cmp r3, r0
|
|
bhi _08080990
|
|
strh r2, [r1, #0xa]
|
|
b _080809A2
|
|
.align 2, 0
|
|
_0808098C: .4byte gRoomControls
|
|
_08080990:
|
|
ldrh r0, [r1, #0x1e]
|
|
adds r2, r2, r0
|
|
adds r0, r2, #0
|
|
subs r0, #0x78
|
|
cmp r3, r0
|
|
bhs _0808099E
|
|
adds r0, r3, #0
|
|
_0808099E:
|
|
subs r0, #0x78
|
|
strh r0, [r1, #0xa]
|
|
_080809A2:
|
|
ldrh r2, [r1, #8]
|
|
adds r0, r2, #0
|
|
adds r0, #0x50
|
|
cmp r4, r0
|
|
bhi _080809B0
|
|
strh r2, [r1, #0xc]
|
|
b _080809C2
|
|
_080809B0:
|
|
ldrh r0, [r1, #0x20]
|
|
adds r2, r2, r0
|
|
adds r0, r2, #0
|
|
subs r0, #0x50
|
|
cmp r4, r0
|
|
bhs _080809BE
|
|
adds r0, r4, #0
|
|
_080809BE:
|
|
subs r0, #0x50
|
|
strh r0, [r1, #0xc]
|
|
_080809C2:
|
|
bl sub_080809D4
|
|
ldr r1, _080809D0 @ =gUnk_02000070
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080809D0: .4byte gUnk_02000070
|
|
|
|
thumb_func_start sub_080809D4
|
|
sub_080809D4: @ 0x080809D4
|
|
push {r4, lr}
|
|
ldr r2, _080809F4 @ =gRoomControls
|
|
ldrb r0, [r2, #0xf]
|
|
movs r1, #0xfb
|
|
ands r1, r0
|
|
strb r1, [r2, #0xf]
|
|
ldr r4, [r2, #0x30]
|
|
movs r0, #0x2e
|
|
ldrsh r3, [r4, r0]
|
|
ldrh r1, [r2, #6]
|
|
adds r0, r1, #0
|
|
adds r0, #0x78
|
|
cmp r3, r0
|
|
bgt _080809F8
|
|
strh r1, [r2, #0xa]
|
|
b _08080A0A
|
|
.align 2, 0
|
|
_080809F4: .4byte gRoomControls
|
|
_080809F8:
|
|
ldrh r0, [r2, #0x1e]
|
|
adds r1, r1, r0
|
|
adds r0, r1, #0
|
|
subs r0, #0x78
|
|
cmp r3, r0
|
|
bge _08080A06
|
|
ldrh r0, [r4, #0x2e]
|
|
_08080A06:
|
|
subs r0, #0x78
|
|
strh r0, [r2, #0xa]
|
|
_08080A0A:
|
|
ldr r4, [r2, #0x30]
|
|
movs r0, #0x32
|
|
ldrsh r3, [r4, r0]
|
|
ldrh r1, [r2, #8]
|
|
adds r0, r1, #0
|
|
adds r0, #0x50
|
|
cmp r3, r0
|
|
bgt _08080A1E
|
|
strh r1, [r2, #0xc]
|
|
b _08080A30
|
|
_08080A1E:
|
|
ldrh r0, [r2, #0x20]
|
|
adds r1, r1, r0
|
|
adds r0, r1, #0
|
|
subs r0, #0x50
|
|
cmp r3, r0
|
|
bge _08080A2C
|
|
ldrh r0, [r4, #0x32]
|
|
_08080A2C:
|
|
subs r0, #0x50
|
|
strh r0, [r2, #0xc]
|
|
_08080A30:
|
|
bl sub_08080BC4
|
|
ldr r1, _08080A3C @ =gUnk_02000070
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08080A3C: .4byte gUnk_02000070
|
|
|
|
thumb_func_start sub_08080A40
|
|
sub_08080A40: @ 0x08080A40
|
|
push {r4, r5, r6, r7, lr}
|
|
ldr r7, _08080A70 @ =gRoomControls
|
|
ldr r1, [r7, #0x30]
|
|
ldr r0, _08080A74 @ =gLinkEntity
|
|
adds r2, r7, #0
|
|
cmp r1, r0
|
|
beq _08080A50
|
|
b _08080B5C
|
|
_08080A50:
|
|
ldr r0, _08080A78 @ =gLinkState
|
|
ldrb r0, [r0, #2]
|
|
cmp r0, #0
|
|
beq _08080A5A
|
|
b _08080B5C
|
|
_08080A5A:
|
|
ldrb r0, [r1, #0xc]
|
|
subs r0, #1
|
|
cmp r0, #0x1c
|
|
bls _08080A64
|
|
b _08080B5C
|
|
_08080A64:
|
|
lsls r0, r0, #2
|
|
ldr r1, _08080A7C @ =_08080A80
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080A70: .4byte gRoomControls
|
|
_08080A74: .4byte gLinkEntity
|
|
_08080A78: .4byte gLinkState
|
|
_08080A7C: .4byte _08080A80
|
|
_08080A80: @ jump table
|
|
.4byte _08080AFA @ case 0
|
|
.4byte _08080B5C @ case 1
|
|
.4byte _08080B5C @ case 2
|
|
.4byte _08080B5C @ case 3
|
|
.4byte _08080B5C @ case 4
|
|
.4byte _08080B5C @ case 5
|
|
.4byte _08080B5C @ case 6
|
|
.4byte _08080B5C @ case 7
|
|
.4byte _08080AFA @ case 8
|
|
.4byte _08080B5C @ case 9
|
|
.4byte _08080B5C @ case 10
|
|
.4byte _08080B5C @ case 11
|
|
.4byte _08080B5C @ case 12
|
|
.4byte _08080B5C @ case 13
|
|
.4byte _08080AF4 @ case 14
|
|
.4byte _08080B5C @ case 15
|
|
.4byte _08080B5C @ case 16
|
|
.4byte _08080B5C @ case 17
|
|
.4byte _08080B5C @ case 18
|
|
.4byte _08080B5C @ case 19
|
|
.4byte _08080B5C @ case 20
|
|
.4byte _08080B5C @ case 21
|
|
.4byte _08080B5C @ case 22
|
|
.4byte _08080AFA @ case 23
|
|
.4byte _08080B5C @ case 24
|
|
.4byte _08080B5C @ case 25
|
|
.4byte _08080B5C @ case 26
|
|
.4byte _08080B5C @ case 27
|
|
.4byte _08080AFA @ case 28
|
|
_08080AF4:
|
|
ldrb r0, [r2, #4]
|
|
cmp r0, #0x48
|
|
beq _08080B5C
|
|
_08080AFA:
|
|
ldr r3, [r7, #0x30]
|
|
movs r0, #0x32
|
|
ldrsh r1, [r3, r0]
|
|
ldrh r0, [r7, #8]
|
|
subs r6, r1, r0
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r3, r0]
|
|
ldrh r0, [r7, #6]
|
|
subs r5, r1, r0
|
|
asrs r0, r5, #4
|
|
movs r2, #0x3f
|
|
ands r0, r2
|
|
asrs r1, r6, #4
|
|
ands r1, r2
|
|
lsls r1, r1, #6
|
|
orrs r0, r1
|
|
adds r3, #0x38
|
|
ldrb r1, [r3]
|
|
bl sub_080002C8
|
|
adds r4, r0, #0
|
|
ldr r0, [r7, #0x30]
|
|
adds r0, #0x38
|
|
ldrb r2, [r0]
|
|
adds r0, r5, #0
|
|
adds r1, r6, #0
|
|
bl sub_080002A8
|
|
ldr r1, _08080B48 @ =gUnk_030010A0
|
|
strh r0, [r1, #0xa]
|
|
cmp r4, #0x3f
|
|
beq _08080B50
|
|
cmp r4, #0x3f
|
|
bhi _08080B4C
|
|
cmp r4, #0x29
|
|
bhi _08080B5C
|
|
cmp r4, #0x28
|
|
blo _08080B5C
|
|
b _08080B50
|
|
.align 2, 0
|
|
_08080B48: .4byte gUnk_030010A0
|
|
_08080B4C:
|
|
cmp r4, #0xf1
|
|
bne _08080B5C
|
|
_08080B50:
|
|
adds r0, r5, #0
|
|
adds r1, r6, #0
|
|
movs r2, #0xff
|
|
movs r3, #0xa
|
|
bl sub_080806BC
|
|
_08080B5C:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08080B60
|
|
sub_08080B60: @ 0x08080B60
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
ldr r1, _08080B90 @ =0x00005004
|
|
adds r4, r0, r1
|
|
ldr r2, _08080B94 @ =gUnk_080B37A0
|
|
mov r8, r2
|
|
movs r3, #0
|
|
ldr r1, _08080B98 @ =0x00003FFF
|
|
mov ip, r1
|
|
ldr r7, _08080B9C @ =gUnk_080B7910
|
|
ldr r2, _08080BA0 @ =0x0000B004
|
|
adds r1, r0, r2
|
|
adds r2, r0, #4
|
|
ldr r6, _08080BA4 @ =0xFFFFC000
|
|
ldr r5, _08080BA8 @ =0x00000FFF
|
|
_08080B80:
|
|
ldrh r0, [r2]
|
|
cmp r0, ip
|
|
bhi _08080BAC
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r4
|
|
ldrh r0, [r0]
|
|
add r0, r8
|
|
b _08080BB0
|
|
.align 2, 0
|
|
_08080B90: .4byte 0x00005004
|
|
_08080B94: .4byte gUnk_080B37A0
|
|
_08080B98: .4byte 0x00003FFF
|
|
_08080B9C: .4byte gUnk_080B7910
|
|
_08080BA0: .4byte 0x0000B004
|
|
_08080BA4: .4byte 0xFFFFC000
|
|
_08080BA8: .4byte 0x00000FFF
|
|
_08080BAC:
|
|
adds r0, r0, r6
|
|
adds r0, r0, r7
|
|
_08080BB0:
|
|
ldrb r0, [r0]
|
|
strb r0, [r1]
|
|
adds r1, #1
|
|
adds r2, #2
|
|
adds r3, #1
|
|
cmp r3, r5
|
|
bls _08080B80
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_08080BC4
|
|
sub_08080BC4: @ 0x08080BC4
|
|
push {r4, r5, r6, lr}
|
|
ldr r3, _08080C40 @ =gRoomControls
|
|
movs r0, #0xa
|
|
ldrsh r1, [r3, r0]
|
|
ldrh r0, [r3, #6]
|
|
subs r5, r1, r0
|
|
movs r2, #0xf
|
|
ands r5, r2
|
|
movs r1, #0xc
|
|
ldrsh r0, [r3, r1]
|
|
ldrh r1, [r3, #8]
|
|
subs r0, r0, r1
|
|
ands r0, r2
|
|
adds r6, r0, #0
|
|
adds r6, #8
|
|
ldrh r2, [r3, #0x16]
|
|
adds r4, r2, #0
|
|
cmp r4, #0
|
|
beq _08080C50
|
|
subs r2, #1
|
|
strh r2, [r3, #0x16]
|
|
ldrb r0, [r3, #0x14]
|
|
lsls r0, r0, #4
|
|
movs r1, #0xe
|
|
ands r2, r1
|
|
adds r0, r0, r2
|
|
ldr r1, _08080C44 @ =gUnk_080169A4
|
|
adds r2, r0, r1
|
|
ldr r4, _08080C48 @ =gUnk_02025EB0
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _08080C16
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r0, r5
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r4]
|
|
movs r0, #1
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r0, r6
|
|
strh r0, [r1, #4]
|
|
_08080C16:
|
|
ldr r4, _08080C4C @ =gUnk_0200B650
|
|
ldr r1, [r4]
|
|
cmp r1, #0
|
|
beq _08080C30
|
|
movs r0, #0
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r0, r5
|
|
strh r0, [r1, #2]
|
|
ldr r1, [r4]
|
|
movs r0, #1
|
|
ldrsb r0, [r2, r0]
|
|
adds r0, r0, r6
|
|
strh r0, [r1, #4]
|
|
_08080C30:
|
|
ldrb r1, [r2]
|
|
adds r0, r3, #0
|
|
adds r0, #0x24
|
|
strb r1, [r0]
|
|
ldrb r1, [r2, #1]
|
|
adds r0, #1
|
|
strb r1, [r0]
|
|
b _08080C76
|
|
.align 2, 0
|
|
_08080C40: .4byte gRoomControls
|
|
_08080C44: .4byte gUnk_080169A4
|
|
_08080C48: .4byte gUnk_02025EB0
|
|
_08080C4C: .4byte gUnk_0200B650
|
|
_08080C50:
|
|
ldr r0, _08080C78 @ =gUnk_02025EB0
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _08080C5E
|
|
strh r5, [r1, #2]
|
|
ldr r0, [r0]
|
|
strh r6, [r0, #4]
|
|
_08080C5E:
|
|
ldr r0, _08080C7C @ =gUnk_0200B650
|
|
ldr r1, [r0]
|
|
cmp r1, #0
|
|
beq _08080C6C
|
|
strh r5, [r1, #2]
|
|
ldr r0, [r0]
|
|
strh r6, [r0, #4]
|
|
_08080C6C:
|
|
adds r0, r3, #0
|
|
adds r0, #0x24
|
|
strb r4, [r0]
|
|
adds r0, #1
|
|
strb r4, [r0]
|
|
_08080C76:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08080C78: .4byte gUnk_02025EB0
|
|
_08080C7C: .4byte gUnk_0200B650
|
|
|
|
thumb_func_start sub_08080C80
|
|
sub_08080C80: @ 0x08080C80
|
|
push {r4, lr}
|
|
bl sub_080197D4
|
|
ldr r0, _08080CA8 @ =gUnk_02025EB4
|
|
ldr r4, _08080CAC @ =gRoomControls
|
|
ldrh r1, [r4, #0x1e]
|
|
lsrs r1, r1, #4
|
|
ldrh r2, [r4, #0x20]
|
|
lsrs r2, r2, #4
|
|
bl sub_0807C8B0
|
|
ldr r0, _08080CB0 @ =gUnk_0200B654
|
|
ldrh r1, [r4, #0x1e]
|
|
lsrs r1, r1, #4
|
|
ldrh r2, [r4, #0x20]
|
|
lsrs r2, r2, #4
|
|
bl sub_0807C8B0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08080CA8: .4byte gUnk_02025EB4
|
|
_08080CAC: .4byte gRoomControls
|
|
_08080CB0: .4byte gUnk_0200B654
|
|
|
|
thumb_func_start sub_08080CB4
|
|
sub_08080CB4: @ 0x08080CB4
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x58
|
|
ldrb r0, [r4, #0xa]
|
|
ldrb r1, [r1]
|
|
cmp r0, r1
|
|
beq _08080CF0
|
|
adds r1, r0, #0
|
|
adds r0, r4, #0
|
|
bl LoadAnimation
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x5c
|
|
beq _08080CD4
|
|
b _08080E00
|
|
_08080CD4:
|
|
ldrb r0, [r4, #0xb]
|
|
lsls r0, r0, #3
|
|
ldr r1, _08080CEC @ =gUnk_080C9CBC
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
movs r1, #0xf
|
|
ands r1, r0
|
|
lsls r0, r0, #4
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1a]
|
|
b _08080E00
|
|
.align 2, 0
|
|
_08080CEC: .4byte gUnk_080C9CBC
|
|
_08080CF0:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
ldrb r0, [r4, #0x18]
|
|
lsls r0, r0, #0x1e
|
|
cmp r0, #0
|
|
bne _08080D00
|
|
b _08080E00
|
|
_08080D00:
|
|
ldrb r0, [r4, #0xa]
|
|
subs r0, #0x40
|
|
cmp r0, #0x22
|
|
bhi _08080E00
|
|
lsls r0, r0, #2
|
|
ldr r1, _08080D14 @ =_08080D18
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080D14: .4byte _08080D18
|
|
_08080D18: @ jump table
|
|
.4byte _08080DEE @ case 0
|
|
.4byte _08080DEE @ case 1
|
|
.4byte _08080DEE @ case 2
|
|
.4byte _08080DEE @ case 3
|
|
.4byte _08080E00 @ case 4
|
|
.4byte _08080E00 @ case 5
|
|
.4byte _08080E00 @ case 6
|
|
.4byte _08080E00 @ case 7
|
|
.4byte _08080E00 @ case 8
|
|
.4byte _08080E00 @ case 9
|
|
.4byte _08080E00 @ case 10
|
|
.4byte _08080E00 @ case 11
|
|
.4byte _08080E00 @ case 12
|
|
.4byte _08080E00 @ case 13
|
|
.4byte _08080E00 @ case 14
|
|
.4byte _08080E00 @ case 15
|
|
.4byte _08080E00 @ case 16
|
|
.4byte _08080E00 @ case 17
|
|
.4byte _08080E00 @ case 18
|
|
.4byte _08080E00 @ case 19
|
|
.4byte _08080E00 @ case 20
|
|
.4byte _08080E00 @ case 21
|
|
.4byte _08080E00 @ case 22
|
|
.4byte _08080E00 @ case 23
|
|
.4byte _08080E00 @ case 24
|
|
.4byte _08080E00 @ case 25
|
|
.4byte _08080E00 @ case 26
|
|
.4byte _08080E00 @ case 27
|
|
.4byte _08080DEE @ case 28
|
|
.4byte _08080E00 @ case 29
|
|
.4byte _08080E00 @ case 30
|
|
.4byte _08080E00 @ case 31
|
|
.4byte _08080DA4 @ case 32
|
|
.4byte _08080E00 @ case 33
|
|
.4byte _08080DEE @ case 34
|
|
_08080DA4:
|
|
adds r5, r4, #0
|
|
adds r5, #0x6a
|
|
ldrb r0, [r5]
|
|
cmp r0, #0
|
|
beq _08080DB4
|
|
subs r0, #1
|
|
strb r0, [r5]
|
|
b _08080E00
|
|
_08080DB4:
|
|
bl Random
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r0, #0xa
|
|
strb r0, [r5]
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
movs r2, #0
|
|
bl CreateFx
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _08080E00
|
|
adds r0, r4, #0
|
|
adds r0, #0x62
|
|
ldrb r0, [r0]
|
|
adds r2, r1, #0
|
|
adds r2, #0x62
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
adds r0, #0x63
|
|
ldrb r0, [r0]
|
|
adds r2, #1
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
bl sub_0806FAB0
|
|
b _08080E00
|
|
_08080DEE:
|
|
ldr r0, _08080E04 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08080E00
|
|
adds r0, r4, #0
|
|
bl sub_080A2B80
|
|
_08080E00:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08080E04: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_08080E08
|
|
sub_08080E08: @ 0x08080E08
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08080EDE
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x1e
|
|
bhi _08080EDE
|
|
lsls r0, r0, #2
|
|
ldr r1, _08080E2C @ =_08080E30
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080E2C: .4byte _08080E30
|
|
_08080E30: @ jump table
|
|
.4byte _08080ED8 @ case 0
|
|
.4byte _08080ED8 @ case 1
|
|
.4byte _08080EDE @ case 2
|
|
.4byte _08080EDE @ case 3
|
|
.4byte _08080ED8 @ case 4
|
|
.4byte _08080ED8 @ case 5
|
|
.4byte _08080ED8 @ case 6
|
|
.4byte _08080EDE @ case 7
|
|
.4byte _08080ED8 @ case 8
|
|
.4byte _08080ED8 @ case 9
|
|
.4byte _08080ED8 @ case 10
|
|
.4byte _08080ED8 @ case 11
|
|
.4byte _08080ED8 @ case 12
|
|
.4byte _08080EDE @ case 13
|
|
.4byte _08080EDE @ case 14
|
|
.4byte _08080EDE @ case 15
|
|
.4byte _08080EDE @ case 16
|
|
.4byte _08080EDE @ case 17
|
|
.4byte _08080EDE @ case 18
|
|
.4byte _08080EDE @ case 19
|
|
.4byte _08080EAC @ case 20
|
|
.4byte _08080EDE @ case 21
|
|
.4byte _08080EDE @ case 22
|
|
.4byte _08080EDE @ case 23
|
|
.4byte _08080EDE @ case 24
|
|
.4byte _08080EDE @ case 25
|
|
.4byte _08080EDE @ case 26
|
|
.4byte _08080EDE @ case 27
|
|
.4byte _08080EDE @ case 28
|
|
.4byte _08080EDE @ case 29
|
|
.4byte _08080ED8 @ case 30
|
|
_08080EAC:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x10]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r2, r4, #0
|
|
adds r2, #0x3c
|
|
ldrb r1, [r2]
|
|
movs r0, #0x10
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, [r4, #0x4c]
|
|
str r0, [r4, #0x54]
|
|
b _08080EDE
|
|
_08080ED8:
|
|
adds r0, r4, #0
|
|
bl sub_08081598
|
|
_08080EDE:
|
|
adds r0, r4, #0
|
|
bl sub_0806F520
|
|
cmp r0, #0
|
|
beq _08080EF0
|
|
adds r0, r4, #0
|
|
bl sub_080813BC
|
|
b _08080F00
|
|
_08080EF0:
|
|
ldr r0, _08080F18 @ =gUnk_0811E7D4
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
_08080F00:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x5c
|
|
bne _08080F0E
|
|
ldr r1, _08080F1C @ =gRoomVars
|
|
ldrb r0, [r1, #4]
|
|
adds r0, #1
|
|
strb r0, [r1, #4]
|
|
_08080F0E:
|
|
adds r0, r4, #0
|
|
bl sub_08080CB4
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08080F18: .4byte gUnk_0811E7D4
|
|
_08080F1C: .4byte gRoomVars
|
|
|
|
thumb_func_start sub_08080F20
|
|
sub_08080F20: @ 0x08080F20
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r1, r4, #0
|
|
adds r1, #0x86
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _08080F3A
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08080F3A
|
|
bl sub_0805E780
|
|
_08080F3A:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x60
|
|
bne _08080F42
|
|
b _0808107C
|
|
_08080F42:
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x18
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #0x31
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3f
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
subs r1, #3
|
|
movs r0, #0x47
|
|
strb r0, [r1]
|
|
adds r1, #4
|
|
movs r0, #0x44
|
|
strb r0, [r1]
|
|
adds r1, #5
|
|
movs r0, #0xff
|
|
strb r0, [r1]
|
|
ldr r0, _08080F9C @ =gUnk_080FD1A8
|
|
str r0, [r4, #0x48]
|
|
ldrb r0, [r4, #0xa]
|
|
subs r0, #0x3f
|
|
cmp r0, #0x20
|
|
bhi _08081030
|
|
lsls r0, r0, #2
|
|
ldr r1, _08080FA0 @ =_08080FA4
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08080F9C: .4byte gUnk_080FD1A8
|
|
_08080FA0: .4byte _08080FA4
|
|
_08080FA4: @ jump table
|
|
.4byte _08081028 @ case 0
|
|
.4byte _08081030 @ case 1
|
|
.4byte _08081030 @ case 2
|
|
.4byte _08081030 @ case 3
|
|
.4byte _08081030 @ case 4
|
|
.4byte _08081030 @ case 5
|
|
.4byte _08081030 @ case 6
|
|
.4byte _08081030 @ case 7
|
|
.4byte _08081030 @ case 8
|
|
.4byte _08081030 @ case 9
|
|
.4byte _08081030 @ case 10
|
|
.4byte _08081030 @ case 11
|
|
.4byte _08081030 @ case 12
|
|
.4byte _08081030 @ case 13
|
|
.4byte _08081030 @ case 14
|
|
.4byte _08081030 @ case 15
|
|
.4byte _08081030 @ case 16
|
|
.4byte _08081030 @ case 17
|
|
.4byte _08081030 @ case 18
|
|
.4byte _08081030 @ case 19
|
|
.4byte _08081030 @ case 20
|
|
.4byte _08081028 @ case 21
|
|
.4byte _08081028 @ case 22
|
|
.4byte _08081028 @ case 23
|
|
.4byte _08081028 @ case 24
|
|
.4byte _08081028 @ case 25
|
|
.4byte _08081030 @ case 26
|
|
.4byte _08081030 @ case 27
|
|
.4byte _08081030 @ case 28
|
|
.4byte _08081028 @ case 29
|
|
.4byte _08081028 @ case 30
|
|
.4byte _08081028 @ case 31
|
|
.4byte _08081028 @ case 32
|
|
_08081028:
|
|
adds r1, r4, #0
|
|
adds r1, #0x3b
|
|
movs r0, #0x17
|
|
b _08081036
|
|
_08081030:
|
|
adds r1, r4, #0
|
|
adds r1, #0x3b
|
|
movs r0, #0x11
|
|
_08081036:
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, #0xe]
|
|
adds r5, r4, #0
|
|
adds r5, #0x69
|
|
movs r2, #0
|
|
strb r0, [r5]
|
|
adds r0, r4, #0
|
|
adds r0, #0x6a
|
|
strb r2, [r0]
|
|
adds r0, #2
|
|
movs r1, #0
|
|
strh r2, [r0]
|
|
subs r0, #4
|
|
strb r1, [r0]
|
|
strb r1, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl sub_0805E3A0
|
|
ldrb r0, [r4, #0xa]
|
|
bl sub_0808147C
|
|
strb r0, [r4, #0x1c]
|
|
ldr r1, _08081078 @ =gUnk_0811E7E8
|
|
ldrb r0, [r5]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
b _080810A4
|
|
.align 2, 0
|
|
_08081078: .4byte gUnk_0811E7E8
|
|
_0808107C:
|
|
movs r0, #0x40
|
|
movs r1, #0x60
|
|
movs r2, #0
|
|
bl CreateObject
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _080810A4
|
|
movs r0, #0
|
|
strb r0, [r1, #0xe]
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #1
|
|
bne _0808109A
|
|
movs r0, #2
|
|
strb r0, [r1, #0xb]
|
|
_0808109A:
|
|
adds r0, r4, #0
|
|
bl CopyPosition
|
|
bl sub_0805E780
|
|
_080810A4:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080810A8
|
|
sub_080810A8: @ 0x080810A8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_080814A4
|
|
ldrb r1, [r4, #0x15]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080810D6
|
|
movs r0, #0x1f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x15]
|
|
movs r1, #0x24
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _080810DC
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
b _080810DC
|
|
_080810D6:
|
|
movs r0, #0xff
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x15]
|
|
_080810DC:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bne _080810E8
|
|
movs r0, #0xf0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
_080810E8:
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _080810F8
|
|
adds r0, r4, #0
|
|
bl sub_08016A30
|
|
_080810F8:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080810FC
|
|
sub_080810FC: @ 0x080810FC
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xa]
|
|
cmp r0, #0x5f
|
|
beq _0808110E
|
|
adds r0, r2, #0
|
|
bl sub_08081598
|
|
b _0808112E
|
|
_0808110E:
|
|
movs r1, #0
|
|
movs r0, #2
|
|
strb r0, [r2, #0xc]
|
|
strb r1, [r2, #0xd]
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x10]
|
|
adds r1, r2, #0
|
|
adds r1, #0x3b
|
|
movs r0, #0x11
|
|
strb r0, [r1]
|
|
ldr r0, _08081130 @ =gLinkEntity
|
|
adds r1, r2, #0
|
|
bl CopyPosition
|
|
_0808112E:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081130: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08081134
|
|
sub_08081134: @ 0x08081134
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080814A4
|
|
adds r1, r4, #0
|
|
adds r1, #0x6c
|
|
ldrh r0, [r1]
|
|
adds r0, #0x50
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08081150
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081150
|
|
sub_08081150: @ 0x08081150
|
|
push {lr}
|
|
movs r1, #2
|
|
strb r1, [r0, #0xc]
|
|
ldrb r2, [r0, #0x10]
|
|
movs r1, #0x80
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x10]
|
|
ldr r1, _08081180 @ =0x0000FF80
|
|
strh r1, [r0, #0x36]
|
|
ldrb r3, [r0, #0x1b]
|
|
movs r2, #0x3f
|
|
adds r1, r2, #0
|
|
ands r1, r3
|
|
movs r3, #0x40
|
|
orrs r1, r3
|
|
strb r1, [r0, #0x1b]
|
|
ldrb r1, [r0, #0x19]
|
|
ands r2, r1
|
|
orrs r2, r3
|
|
strb r2, [r0, #0x19]
|
|
ldr r0, _08081184 @ =0x0000012D
|
|
bl PlaySFX
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081180: .4byte 0x0000FF80
|
|
_08081184: .4byte 0x0000012D
|
|
|
|
thumb_func_start sub_08081188
|
|
sub_08081188: @ 0x08081188
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
movs r0, #2
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x10]
|
|
adds r0, r2, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bne _080811A8
|
|
adds r0, r2, #0
|
|
bl sub_08016A30
|
|
_080811A8:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080811AC
|
|
sub_080811AC: @ 0x080811AC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #6
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
bl sub_080002A0
|
|
adds r4, #0x6e
|
|
strh r0, [r4]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080811C8
|
|
sub_080811C8: @ 0x080811C8
|
|
movs r1, #2
|
|
strb r1, [r0, #0xc]
|
|
ldrb r2, [r0, #0x18]
|
|
subs r1, #6
|
|
ands r1, r2
|
|
strb r1, [r0, #0x18]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080811D8
|
|
sub_080811D8: @ 0x080811D8
|
|
push {lr}
|
|
bl sub_08081188
|
|
ldr r0, _080811E8 @ =0x00000215
|
|
bl PlaySFX
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080811E8: .4byte 0x00000215
|
|
|
|
thumb_func_start sub_080811EC
|
|
sub_080811EC: @ 0x080811EC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x69
|
|
ldrb r0, [r0]
|
|
cmp r0, #6
|
|
beq _08081200
|
|
adds r0, r4, #0
|
|
bl sub_080AEFE0
|
|
b _08081206
|
|
_08081200:
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
_08081206:
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bgt _08081228
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r0, r4, #0
|
|
bl sub_080814A4
|
|
_08081228:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808122C
|
|
sub_0808122C: @ 0x0808122C
|
|
push {lr}
|
|
ldr r2, _08081244 @ =gUnk_0811E814
|
|
adds r1, r0, #0
|
|
adds r1, #0x69
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081244: .4byte gUnk_0811E814
|
|
|
|
thumb_func_start sub_08081248
|
|
sub_08081248: @ 0x08081248
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081500
|
|
adds r0, r4, #0
|
|
bl sub_080814C0
|
|
cmp r0, #0
|
|
beq _08081264
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08081404
|
|
b _0808126A
|
|
_08081264:
|
|
adds r0, r4, #0
|
|
bl sub_0800442E
|
|
_0808126A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0808126C
|
|
sub_0808126C: @ 0x0808126C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
bl sub_0808153C
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_0808127C
|
|
sub_0808127C: @ 0x0808127C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080814C0
|
|
cmp r0, #0
|
|
beq _08081292
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08081404
|
|
b _08081298
|
|
_08081292:
|
|
adds r0, r4, #0
|
|
bl sub_0808153C
|
|
_08081298:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_113
|
|
nullsub_113: @ 0x0808129C
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080812A0
|
|
sub_080812A0: @ 0x080812A0
|
|
push {lr}
|
|
bl sub_08081500
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080812A8
|
|
sub_080812A8: @ 0x080812A8
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
bl sub_080002D0
|
|
cmp r0, #0xf
|
|
beq _080812E4
|
|
adds r0, r5, #0
|
|
adds r0, #0x6e
|
|
ldrh r4, [r0]
|
|
adds r0, r5, #0
|
|
bl sub_080002A0
|
|
cmp r4, r0
|
|
beq _080812E4
|
|
movs r0, #0
|
|
strb r0, [r5, #0x15]
|
|
movs r2, #0
|
|
strh r0, [r5, #0x24]
|
|
ldrb r1, [r5, #0x18]
|
|
subs r0, #4
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x18]
|
|
adds r0, r5, #0
|
|
adds r0, #0x69
|
|
strb r2, [r0]
|
|
adds r0, r5, #0
|
|
bl sub_080810A8
|
|
_080812E4:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080812E8
|
|
sub_080812E8: @ 0x080812E8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r3, _0808131C @ =gLinkState
|
|
adds r0, r3, #0
|
|
adds r0, #0x26
|
|
ldrb r1, [r0]
|
|
movs r2, #0x80
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08081318
|
|
ldr r0, [r3, #0x30]
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
bne _08081318
|
|
ldr r1, _08081320 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_080177A0
|
|
cmp r0, #0
|
|
beq _08081318
|
|
adds r0, r4, #0
|
|
bl sub_080810FC
|
|
_08081318:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_0808131C: .4byte gLinkState
|
|
_08081320: .4byte gLinkEntity
|
|
|
|
thumb_func_start nullsub_510
|
|
nullsub_510: @ 0x08081324
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081328
|
|
sub_08081328: @ 0x08081328
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r2, [r4, #0x54]
|
|
ldrh r1, [r2, #8]
|
|
movs r0, #0xc2
|
|
lsls r0, r0, #2
|
|
cmp r1, r0
|
|
beq _08081342
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08081404
|
|
b _08081364
|
|
_08081342:
|
|
adds r0, r2, #0
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
ldrh r0, [r4, #0x36]
|
|
subs r0, #1
|
|
strh r0, [r4, #0x36]
|
|
ldr r2, _08081368 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl sub_080177A0
|
|
cmp r0, #0
|
|
beq _08081364
|
|
adds r0, r4, #0
|
|
bl sub_080810FC
|
|
_08081364:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081368: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_0808136C
|
|
sub_0808136C: @ 0x0808136C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _080813B2
|
|
ldr r3, [r5, #0x54]
|
|
ldr r0, [r3, #0x2c]
|
|
str r0, [r5, #0x2c]
|
|
ldr r0, [r3, #0x30]
|
|
str r0, [r5, #0x30]
|
|
ldrb r2, [r3, #0x1b]
|
|
lsrs r2, r2, #6
|
|
lsls r2, r2, #6
|
|
ldrb r4, [r5, #0x1b]
|
|
movs r1, #0x3f
|
|
adds r0, r1, #0
|
|
ands r0, r4
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x1b]
|
|
ldrb r0, [r3, #0x19]
|
|
lsrs r0, r0, #6
|
|
lsls r0, r0, #6
|
|
ldrb r2, [r5, #0x19]
|
|
ands r1, r2
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x19]
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #6
|
|
adds r0, r5, #0
|
|
bl sub_08003FC4
|
|
b _080813BA
|
|
_080813B2:
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl sub_08081404
|
|
_080813BA:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_080813BC
|
|
sub_080813BC: @ 0x080813BC
|
|
push {lr}
|
|
ldr r2, _080813D0 @ =gUnk_0811E840
|
|
ldrb r1, [r0, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080813D0: .4byte gUnk_0811E840
|
|
|
|
thumb_func_start sub_080813D4
|
|
sub_080813D4: @ 0x080813D4
|
|
movs r3, #1
|
|
movs r1, #1
|
|
strb r1, [r0, #0xd]
|
|
strb r1, [r0, #0x1d]
|
|
ldrb r2, [r0, #0x18]
|
|
subs r1, #5
|
|
ands r1, r2
|
|
orrs r1, r3
|
|
strb r1, [r0, #0x18]
|
|
bx lr
|
|
|
|
thumb_func_start sub_080813E8
|
|
sub_080813E8: @ 0x080813E8
|
|
push {lr}
|
|
bl sub_0806F4E8
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080813F0
|
|
sub_080813F0: @ 0x080813F0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F3E4
|
|
cmp r0, #0
|
|
beq _08081402
|
|
adds r0, r4, #0
|
|
bl sub_080810FC
|
|
_08081402:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08081404
|
|
sub_08081404: @ 0x08081404
|
|
push {lr}
|
|
cmp r1, #0
|
|
beq _08081418
|
|
adds r1, r0, #0
|
|
adds r1, #0x86
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _08081418
|
|
bl sub_0807CCC8
|
|
_08081418:
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081420
|
|
sub_08081420: @ 0x08081420
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081450
|
|
cmp r0, #0
|
|
bne _08081438
|
|
ldrb r0, [r4, #0xa]
|
|
ldrb r1, [r4, #0xb]
|
|
bl sub_08053FF0
|
|
movs r0, #0
|
|
b _0808144C
|
|
_08081438:
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl sub_0805E3A0
|
|
ldrb r0, [r4, #0xa]
|
|
ldrb r1, [r4, #0xb]
|
|
movs r2, #0
|
|
bl sub_080A7C00
|
|
movs r0, #1
|
|
_0808144C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081450
|
|
sub_08081450: @ 0x08081450
|
|
push {r4, lr}
|
|
movs r4, #0
|
|
ldr r1, _08081478 @ =gUnk_080FD5B4
|
|
ldrb r2, [r0, #0xa]
|
|
lsls r0, r2, #3
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0, #3]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08081470
|
|
adds r0, r2, #0
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
bne _08081472
|
|
_08081470:
|
|
movs r4, #1
|
|
_08081472:
|
|
adds r0, r4, #0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081478: .4byte gUnk_080FD5B4
|
|
|
|
thumb_func_start sub_0808147C
|
|
sub_0808147C: @ 0x0808147C
|
|
lsls r0, r0, #3
|
|
ldr r1, _08081488 @ =gUnk_0811E84C
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0, #4]
|
|
bx lr
|
|
.align 2, 0
|
|
_08081488: .4byte gUnk_0811E84C
|
|
|
|
thumb_func_start sub_0808148C
|
|
sub_0808148C: @ 0x0808148C
|
|
push {lr}
|
|
lsls r0, r0, #3
|
|
ldr r1, _080814A0 @ =gUnk_0811E84C
|
|
adds r1, r0, r1
|
|
ldrh r0, [r1, #2]
|
|
cmp r0, #0
|
|
beq _0808149E
|
|
bl PlaySFX
|
|
_0808149E:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080814A0: .4byte gUnk_0811E84C
|
|
|
|
thumb_func_start sub_080814A4
|
|
sub_080814A4: @ 0x080814A4
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
adds r0, #0x69
|
|
ldrb r0, [r0]
|
|
cmp r0, #0xa
|
|
bne _080814B6
|
|
adds r1, #0x6c
|
|
movs r0, #0x78
|
|
b _080814BC
|
|
_080814B6:
|
|
adds r1, #0x6c
|
|
movs r0, #0x96
|
|
lsls r0, r0, #2
|
|
_080814BC:
|
|
strh r0, [r1]
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080814C0
|
|
sub_080814C0: @ 0x080814C0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0805E40C
|
|
cmp r0, #0
|
|
bne _080814FA
|
|
adds r0, r4, #0
|
|
adds r0, #0x6c
|
|
ldrh r1, [r0]
|
|
subs r1, #1
|
|
strh r1, [r0]
|
|
lsls r0, r1, #0x10
|
|
cmp r0, #0
|
|
bne _080814E0
|
|
movs r0, #1
|
|
b _080814FC
|
|
_080814E0:
|
|
lsls r0, r1, #0x10
|
|
lsrs r0, r0, #0x10
|
|
cmp r0, #0x59
|
|
bhi _080814FA
|
|
ldrb r2, [r4, #0x18]
|
|
lsls r1, r2, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
movs r0, #1
|
|
eors r1, r0
|
|
subs r0, #5
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_080814FA:
|
|
movs r0, #0
|
|
_080814FC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081500
|
|
sub_08081500: @ 0x08081500
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r4, #0
|
|
adds r5, #0x68
|
|
ldrb r0, [r5]
|
|
cmp r0, #0
|
|
bne _08081538
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_080044EC
|
|
cmp r0, #0
|
|
bne _08081522
|
|
movs r0, #1
|
|
strb r0, [r5]
|
|
b _08081538
|
|
_08081522:
|
|
cmp r0, #1
|
|
bne _08081532
|
|
ldrb r0, [r4, #0xa]
|
|
bl sub_0808148C
|
|
adds r0, r4, #0
|
|
bl UpdateSpriteOrderAndFlip
|
|
_08081532:
|
|
adds r0, r4, #0
|
|
bl sub_080AEFE0
|
|
_08081538:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808153C
|
|
sub_0808153C: @ 0x0808153C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r4, #0
|
|
adds r5, #0x68
|
|
ldrb r0, [r5]
|
|
cmp r0, #1
|
|
bhi _08081596
|
|
cmp r0, #0
|
|
bne _0808157E
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08081596
|
|
adds r0, r4, #0
|
|
bl sub_0800442E
|
|
cmp r0, #0
|
|
bne _08081596
|
|
movs r0, #1
|
|
strb r0, [r5]
|
|
movs r0, #0xf0
|
|
lsls r0, r0, #9
|
|
str r0, [r4, #0x20]
|
|
ldrb r0, [r4, #0xa]
|
|
bl sub_0808148C
|
|
adds r0, r4, #0
|
|
bl UpdateSpriteOrderAndFlip
|
|
b _08081596
|
|
_0808157E:
|
|
movs r1, #0xa0
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08081596
|
|
movs r0, #2
|
|
strb r0, [r5]
|
|
ldrb r0, [r4, #0xa]
|
|
bl sub_0808148C
|
|
_08081596:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08081598
|
|
sub_08081598: @ 0x08081598
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x45
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _080815AC
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08081404
|
|
_080815AC:
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x10]
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xe
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xa
|
|
str r0, [r4, #0x20]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x10
|
|
orrs r0, r1
|
|
movs r1, #8
|
|
rsbs r1, r1, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r0, _08081618 @ =gLinkEntity
|
|
str r0, [r4, #0x54]
|
|
adds r1, r4, #0
|
|
bl CopyPosition
|
|
ldrh r0, [r4, #0x36]
|
|
subs r0, #4
|
|
strh r0, [r4, #0x36]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x5f
|
|
beq _08081614
|
|
adds r0, r4, #0
|
|
bl sub_08081420
|
|
cmp r0, #0
|
|
beq _08081614
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_08081404
|
|
_08081614:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081618: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_0808161C
|
|
sub_0808161C: @ 0x0808161C
|
|
push {lr}
|
|
ldr r2, _08081630 @ =gUnk_0811EBFC
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081630: .4byte gUnk_0811EBFC
|
|
|
|
thumb_func_start sub_08081634
|
|
sub_08081634: @ 0x08081634
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x6c
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808169C
|
|
movs r5, #0
|
|
movs r0, #0x65
|
|
strh r0, [r4, #0x12]
|
|
movs r1, #2
|
|
strb r1, [r4, #0xc]
|
|
strb r5, [r4, #0x15]
|
|
movs r0, #0x40
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
strb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl UpdateSpriteOrderAndFlip
|
|
ldrb r0, [r4, #0x19]
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
ldrb r0, [r4, #0xe]
|
|
movs r2, #0x80
|
|
cmp r0, #0
|
|
beq _08081674
|
|
adds r2, r0, #0
|
|
strb r5, [r4, #0xe]
|
|
_08081674:
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
movs r3, #0
|
|
bl sub_0805EC9C
|
|
adds r0, r4, #0
|
|
movs r1, #4
|
|
movs r2, #0
|
|
bl sub_080AE008
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl LoadAnimation
|
|
ldr r0, _08081698 @ =0x00000129
|
|
bl PlaySFX
|
|
b _0808170C
|
|
.align 2, 0
|
|
_08081698: .4byte 0x00000129
|
|
_0808169C:
|
|
movs r0, #0xc
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080816B2
|
|
adds r0, r4, #0
|
|
bl sub_08081790
|
|
adds r0, r4, #0
|
|
bl sub_0808180C
|
|
b _08081702
|
|
_080816B2:
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080816C4
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
bl UpdateSprite
|
|
b _08081702
|
|
_080816C4:
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldr r1, _08081718 @ =gUnk_0811EC08
|
|
ldrb r0, [r4, #0xa]
|
|
lsrs r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
ldrb r0, [r4, #0xa]
|
|
movs r1, #3
|
|
ands r0, r1
|
|
lsls r0, r0, #1
|
|
asrs r2, r0
|
|
ands r2, r1
|
|
ldr r1, [r4, #0x50]
|
|
cmp r1, #0
|
|
beq _080816FA
|
|
ldr r0, _0808171C @ =gUnk_0811EC20
|
|
adds r0, r2, r0
|
|
ldrb r0, [r0]
|
|
strb r0, [r1, #0xe]
|
|
_080816FA:
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl UpdateSprite
|
|
_08081702:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xff
|
|
bl sub_08004488
|
|
_0808170C:
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
bl sub_0805E3A0
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08081718: .4byte gUnk_0811EC08
|
|
_0808171C: .4byte gUnk_0811EC20
|
|
|
|
thumb_func_start sub_08081720
|
|
sub_08081720: @ 0x08081720
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08081744
|
|
adds r0, r4, #0
|
|
bl sub_08081790
|
|
adds r0, r4, #0
|
|
bl sub_0808180C
|
|
b _0808175E
|
|
_08081744:
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808175E
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
_0808175E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08081760
|
|
sub_08081760: @ 0x08081760
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808177E
|
|
adds r0, r4, #0
|
|
bl sub_0808180C
|
|
b _0808178C
|
|
_0808177E:
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808178C
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
_0808178C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081790
|
|
sub_08081790: @ 0x08081790
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r1, r2, #0
|
|
adds r1, #0x6d
|
|
ldrb r0, [r1]
|
|
cmp r0, #0xef
|
|
bhi _080817B4
|
|
ldr r0, _080817B0 @ =gUnk_0811EC64
|
|
ldrb r1, [r1]
|
|
adds r1, r1, r0
|
|
ldrb r1, [r1]
|
|
adds r0, r2, #0
|
|
bl sub_0805457C
|
|
b _080817C6
|
|
.align 2, 0
|
|
_080817B0: .4byte gUnk_0811EC64
|
|
_080817B4:
|
|
ldr r0, _080817C8 @ =gUnk_0811EC24
|
|
ldrb r1, [r1]
|
|
subs r1, #0xf0
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, #0
|
|
bl _call_via_r1
|
|
_080817C6:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080817C8: .4byte gUnk_0811EC24
|
|
|
|
thumb_func_start sub_080817CC
|
|
sub_080817CC: @ 0x080817CC
|
|
push {lr}
|
|
movs r1, #9
|
|
bl sub_0805457C
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080817D8
|
|
sub_080817D8: @ 0x080817D8
|
|
push {lr}
|
|
movs r1, #0xd
|
|
bl sub_0805457C
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080817E4
|
|
sub_080817E4: @ 0x080817E4
|
|
push {lr}
|
|
movs r1, #0xe
|
|
bl sub_0805457C
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080817F0
|
|
sub_080817F0: @ 0x080817F0
|
|
push {lr}
|
|
movs r1, #1
|
|
bl sub_0805457C
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080817FC
|
|
sub_080817FC: @ 0x080817FC
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
adds r1, #0x6e
|
|
ldrb r1, [r1]
|
|
movs r2, #0
|
|
bl sub_08054754
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_0808180C
|
|
sub_0808180C: @ 0x0808180C
|
|
push {lr}
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08081814
|
|
sub_08081814: @ 0x08081814
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08081850 @ =gUnk_0811EE28
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r0, r4, #0
|
|
bl sub_080040A8
|
|
cmp r0, #0
|
|
beq _08081838
|
|
adds r0, r4, #0
|
|
bl sub_08080CB4
|
|
_08081838:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #2
|
|
bgt _0808184E
|
|
cmp r0, #1
|
|
blt _0808184E
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #1
|
|
bne _0808184E
|
|
adds r0, r4, #0
|
|
bl sub_0800445C
|
|
_0808184E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081850: .4byte gUnk_0811EE28
|
|
|
|
thumb_func_start sub_08081854
|
|
sub_08081854: @ 0x08081854
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r3, #0
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
strb r3, [r4, #0x16]
|
|
str r4, [r4, #0x54]
|
|
adds r0, r4, #0
|
|
bl sub_08081A5C
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _0808188E
|
|
cmp r0, #1
|
|
beq _08081898
|
|
b _0808189C
|
|
_0808188E:
|
|
ldr r0, _08081894 @ =gUnk_080FD328
|
|
b _0808189A
|
|
.align 2, 0
|
|
_08081894: .4byte gUnk_080FD328
|
|
_08081898:
|
|
ldr r0, _080818A0 @ =gUnk_080FD198
|
|
_0808189A:
|
|
str r0, [r4, #0x48]
|
|
_0808189C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080818A0: .4byte gUnk_080FD198
|
|
|
|
thumb_func_start sub_080818A4
|
|
sub_080818A4: @ 0x080818A4
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r2, [r4, #0xd]
|
|
cmp r2, #0
|
|
beq _080818C0
|
|
movs r1, #2
|
|
strb r1, [r4, #0xc]
|
|
ldr r0, _080818BC @ =gUnk_0200AF00
|
|
adds r0, #0x2f
|
|
strb r1, [r0]
|
|
b _08081920
|
|
.align 2, 0
|
|
_080818BC: .4byte gUnk_0200AF00
|
|
_080818C0:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x36
|
|
bne _080818F0
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08081920
|
|
strb r2, [r1]
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldr r1, _080818E8 @ =gRoomVars
|
|
movs r0, #1
|
|
str r0, [r1, #0x68]
|
|
ldr r1, _080818EC @ =gLinkState
|
|
movs r0, #7
|
|
strb r0, [r1, #0xc]
|
|
b _08081920
|
|
.align 2, 0
|
|
_080818E8: .4byte gRoomVars
|
|
_080818EC: .4byte gLinkState
|
|
_080818F0:
|
|
adds r1, r4, #0
|
|
adds r1, #0x39
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
cmp r0, #0
|
|
beq _08081920
|
|
strb r2, [r1]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
bl sub_08078B48
|
|
bl sub_08077B2C
|
|
ldr r1, _08081924 @ =gLinkState
|
|
movs r0, #4
|
|
strb r0, [r1, #5]
|
|
ldr r0, _08081928 @ =gLinkEntity
|
|
str r4, [r0, #0x74]
|
|
ldr r0, _0808192C @ =gUnk_0200AF00
|
|
adds r0, #0x2f
|
|
movs r1, #2
|
|
strb r1, [r0]
|
|
bl sub_08056360
|
|
_08081920:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081924: .4byte gLinkState
|
|
_08081928: .4byte gLinkEntity
|
|
_0808192C: .4byte gUnk_0200AF00
|
|
|
|
thumb_func_start sub_08081930
|
|
sub_08081930: @ 0x08081930
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08081968 @ =gUnk_0200AF00
|
|
adds r6, r0, #0
|
|
adds r6, #0x2f
|
|
movs r0, #2
|
|
strb r0, [r6]
|
|
ldr r3, _0808196C @ =gLinkEntity
|
|
ldrb r1, [r3, #0x18]
|
|
lsls r1, r1, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
ldrb r2, [r4, #0x18]
|
|
subs r0, #6
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldr r5, _08081970 @ =gLinkState
|
|
ldrb r0, [r5, #5]
|
|
cmp r0, #0
|
|
beq _0808195E
|
|
ldr r0, [r3, #0x74]
|
|
cmp r4, r0
|
|
beq _08081974
|
|
_0808195E:
|
|
adds r0, r4, #0
|
|
bl sub_080819B4
|
|
b _080819AC
|
|
.align 2, 0
|
|
_08081968: .4byte gUnk_0200AF00
|
|
_0808196C: .4byte gLinkEntity
|
|
_08081970: .4byte gLinkState
|
|
_08081974:
|
|
bl sub_080784E4
|
|
adds r1, r0, #0
|
|
ldr r0, [r1, #8]
|
|
cmp r0, #0
|
|
beq _08081998
|
|
ldrb r0, [r1, #1]
|
|
cmp r0, #1
|
|
bne _08081998
|
|
movs r0, #7
|
|
strb r0, [r6]
|
|
adds r0, r5, #0
|
|
adds r0, #0x92
|
|
ldrh r1, [r0]
|
|
movs r0, #0x88
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080819AC
|
|
_08081998:
|
|
ldr r0, _080819B0 @ =gLinkState
|
|
adds r0, #0x92
|
|
ldrh r1, [r0]
|
|
movs r0, #0x98
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080819AC
|
|
adds r0, r4, #0
|
|
bl sub_080819B4
|
|
_080819AC:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_080819B0: .4byte gLinkState
|
|
|
|
thumb_func_start sub_080819B4
|
|
sub_080819B4: @ 0x080819B4
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _08081A48 @ =gRoomVars
|
|
ldrb r0, [r0, #6]
|
|
cmp r0, #0
|
|
bne _080819D4
|
|
ldr r0, [r5, #0x50]
|
|
cmp r0, #0
|
|
beq _080819D0
|
|
adds r0, #0x20
|
|
ldrb r1, [r5, #0xf]
|
|
adds r0, r0, r1
|
|
movs r1, #0xff
|
|
strb r1, [r0]
|
|
_080819D0:
|
|
bl sub_0805E780
|
|
_080819D4:
|
|
ldr r0, _08081A4C @ =gLinkState
|
|
movs r2, #0
|
|
strb r2, [r0, #5]
|
|
ldr r4, _08081A50 @ =gLinkEntity
|
|
str r2, [r4, #0x74]
|
|
ldr r1, _08081A54 @ =gUnk_0200AF00
|
|
ldr r3, _08081A48 @ =gRoomVars
|
|
strb r2, [r3, #6]
|
|
adds r0, r1, #0
|
|
adds r0, #0x2c
|
|
strb r2, [r0]
|
|
adds r1, #0x2f
|
|
strb r2, [r1]
|
|
strb r2, [r3, #7]
|
|
adds r1, r5, #0
|
|
adds r1, #0x80
|
|
ldr r3, _08081A58 @ =gRoomControls
|
|
ldrh r0, [r3, #6]
|
|
ldrh r1, [r1]
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
strh r0, [r5, #0x2e]
|
|
movs r6, #0x82
|
|
ldrh r0, [r3, #8]
|
|
ldrh r3, [r6, r5]
|
|
adds r0, r0, r3
|
|
strh r0, [r5, #0x32]
|
|
str r2, [r5, #0x34]
|
|
movs r3, #1
|
|
strb r3, [r5, #0xc]
|
|
strb r1, [r5, #0xd]
|
|
ldrb r1, [r4, #0x1b]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r5, #0x1b]
|
|
movs r0, #0x3f
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x1b]
|
|
adds r0, r5, #0
|
|
adds r0, #0x38
|
|
strb r3, [r0]
|
|
adds r2, r5, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r5, #0
|
|
bl UpdateSpriteOrderAndFlip
|
|
adds r0, r5, #0
|
|
bl sub_08081A5C
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08081A48: .4byte gRoomVars
|
|
_08081A4C: .4byte gLinkState
|
|
_08081A50: .4byte gLinkEntity
|
|
_08081A54: .4byte gUnk_0200AF00
|
|
_08081A58: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08081A5C
|
|
sub_08081A5C: @ 0x08081A5C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080787D8
|
|
adds r2, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #1
|
|
bne _08081A7A
|
|
ldr r0, _08081A7C @ =gUnk_03003DF0
|
|
lsls r1, r2, #1
|
|
adds r1, r1, r2
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
movs r0, #0
|
|
strb r0, [r1, #0xa]
|
|
_08081A7A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08081A7C: .4byte gUnk_03003DF0
|
|
|
|
thumb_func_start sub_08081A80
|
|
sub_08081A80: @ 0x08081A80
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldr r0, _08081A98 @ =gRoomVars
|
|
ldr r0, [r0, #0x68]
|
|
cmp r0, #0
|
|
bne _08081A9C
|
|
bl sub_08081AB0
|
|
bl sub_0805E780
|
|
b _08081AAC
|
|
.align 2, 0
|
|
_08081A98: .4byte gRoomVars
|
|
_08081A9C:
|
|
cmp r0, #2
|
|
bne _08081AAC
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r0, [r2, #0xc]
|
|
strb r1, [r2, #0xd]
|
|
bl sub_08081AB0
|
|
_08081AAC:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081AB0
|
|
sub_08081AB0: @ 0x08081AB0
|
|
push {lr}
|
|
ldr r1, _08081AC4 @ =gRoomVars
|
|
movs r0, #0
|
|
str r0, [r1, #0x68]
|
|
strb r0, [r1, #6]
|
|
strb r0, [r1, #7]
|
|
bl sub_08078A90
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081AC4: .4byte gRoomVars
|
|
|
|
thumb_func_start sub_08081AC8
|
|
sub_08081AC8: @ 0x08081AC8
|
|
push {lr}
|
|
ldr r2, _08081ADC @ =gUnk_0811EE38
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08081ADC: .4byte gUnk_0811EE38
|
|
|
|
thumb_func_start sub_08081AE0
|
|
sub_08081AE0: @ 0x08081AE0
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x10]
|
|
ldrb r1, [r4, #0x11]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #1
|
|
strh r0, [r4, #0x32]
|
|
adds r0, r4, #0
|
|
adds r0, #0x84
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _08081B0E
|
|
subs r0, #0x4c
|
|
strb r1, [r0]
|
|
_08081B0E:
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _08081B6C @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x74
|
|
strh r1, [r5]
|
|
ldrh r0, [r5]
|
|
adds r6, r4, #0
|
|
adds r6, #0x38
|
|
ldrb r1, [r6]
|
|
bl sub_080002B0
|
|
adds r1, r4, #0
|
|
adds r1, #0x72
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _08081B70
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08081B70
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r6]
|
|
movs r0, #0x7a
|
|
bl sub_0807B314
|
|
b _08081B82
|
|
.align 2, 0
|
|
_08081B6C: .4byte gRoomControls
|
|
_08081B70:
|
|
adds r0, r4, #0
|
|
bl sub_08081E3C
|
|
cmp r0, #0
|
|
beq _08081B7E
|
|
movs r0, #2
|
|
b _08081B80
|
|
_08081B7E:
|
|
movs r0, #1
|
|
_08081B80:
|
|
strb r0, [r4, #0xc]
|
|
_08081B82:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_08081B84
|
|
sub_08081B84: @ 0x08081B84
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081E3C
|
|
cmp r0, #0
|
|
beq _08081BAA
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x74
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_080002B0
|
|
adds r1, r4, #0
|
|
adds r1, #0x72
|
|
strh r0, [r1]
|
|
_08081BAA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08081BAC
|
|
sub_08081BAC: @ 0x08081BAC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081CB0
|
|
cmp r0, #0
|
|
beq _08081BDC
|
|
movs r0, #0
|
|
strb r0, [r4, #0xd]
|
|
movs r0, #0xa
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
movs r1, #0xa
|
|
bl sub_0805E4E0
|
|
adds r0, r4, #0
|
|
bl sub_08081FF8
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
bne _08081BD8
|
|
movs r0, #3
|
|
b _08081BDA
|
|
_08081BD8:
|
|
movs r0, #5
|
|
_08081BDA:
|
|
strb r0, [r4, #0xc]
|
|
_08081BDC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081BE0
|
|
sub_08081BE0: @ 0x08081BE0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x78
|
|
bl sub_08081F7C
|
|
cmp r0, #0
|
|
beq _08081C2C
|
|
adds r0, r4, #0
|
|
bl sub_08081D28
|
|
cmp r0, #0
|
|
bne _08081C26
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ldr r1, _08081C1C @ =gLinkState
|
|
ldrb r0, [r1, #5]
|
|
cmp r0, #2
|
|
beq _08081C16
|
|
adds r0, r1, #0
|
|
adds r0, #0x35
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08081C20
|
|
_08081C16:
|
|
movs r0, #0x18
|
|
strb r0, [r4, #0xe]
|
|
b _08081C2C
|
|
.align 2, 0
|
|
_08081C1C: .4byte gLinkState
|
|
_08081C20:
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
b _08081C2C
|
|
_08081C26:
|
|
adds r0, r4, #0
|
|
bl sub_08081E6C
|
|
_08081C2C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081C30
|
|
sub_08081C30: @ 0x08081C30
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _08081C70
|
|
subs r0, #1
|
|
movs r5, #0
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
beq _08081C5A
|
|
strb r5, [r4, #0xf]
|
|
ldr r0, _08081C6C @ =0x00004035
|
|
adds r1, r4, #0
|
|
adds r1, #0x74
|
|
ldrh r1, [r1]
|
|
adds r2, r4, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
_08081C5A:
|
|
adds r0, r4, #0
|
|
bl sub_08081CB0
|
|
cmp r0, #0
|
|
beq _08081C96
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
strb r5, [r4, #0xe]
|
|
b _08081C96
|
|
.align 2, 0
|
|
_08081C6C: .4byte 0x00004035
|
|
_08081C70:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CD48
|
|
adds r0, r4, #0
|
|
adds r0, #0x74
|
|
ldrh r1, [r0]
|
|
subs r0, #0x3c
|
|
ldrb r2, [r0]
|
|
movs r0, #0x77
|
|
bl sub_0807B314
|
|
movs r0, #0x86
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
_08081C96:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08081C98
|
|
sub_08081C98: @ 0x08081C98
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x7a
|
|
bl sub_08081F7C
|
|
cmp r0, #0
|
|
beq _08081CAC
|
|
adds r0, r4, #0
|
|
bl sub_08081E6C
|
|
_08081CAC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081CB0
|
|
sub_08081CB0: @ 0x08081CB0
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081D74
|
|
cmp r0, #0
|
|
beq _08081CEC
|
|
adds r1, r4, #0
|
|
adds r1, #0x70
|
|
ldr r0, _08081CE4 @ =0x0000FFFF
|
|
strh r0, [r1]
|
|
adds r5, r4, #0
|
|
adds r5, #0x74
|
|
ldrh r0, [r5]
|
|
adds r4, #0x38
|
|
ldrb r1, [r4]
|
|
bl sub_080002B0
|
|
ldr r1, _08081CE8 @ =0x00004035
|
|
cmp r0, r1
|
|
bne _08081D1C
|
|
ldrh r1, [r5]
|
|
ldrb r2, [r4]
|
|
movs r0, #0x78
|
|
bl sub_0807B7D8
|
|
b _08081D1C
|
|
.align 2, 0
|
|
_08081CE4: .4byte 0x0000FFFF
|
|
_08081CE8: .4byte 0x00004035
|
|
_08081CEC:
|
|
adds r6, r4, #0
|
|
adds r6, #0x74
|
|
ldrh r0, [r6]
|
|
adds r5, r4, #0
|
|
adds r5, #0x38
|
|
ldrb r1, [r5]
|
|
bl sub_080002B0
|
|
lsls r0, r0, #0x10
|
|
lsrs r1, r0, #0x10
|
|
cmp r1, #0x77
|
|
beq _08081D24
|
|
cmp r1, #0x79
|
|
beq _08081D24
|
|
ldr r0, _08081D20 @ =0x00004035
|
|
cmp r1, r0
|
|
beq _08081D24
|
|
ldrh r0, [r6]
|
|
ldrb r1, [r5]
|
|
bl sub_080001DA
|
|
adds r1, r4, #0
|
|
adds r1, #0x70
|
|
strh r0, [r1]
|
|
_08081D1C:
|
|
movs r0, #1
|
|
b _08081D26
|
|
.align 2, 0
|
|
_08081D20: .4byte 0x00004035
|
|
_08081D24:
|
|
movs r0, #0
|
|
_08081D26:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_08081D28
|
|
sub_08081D28: @ 0x08081D28
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08081D74
|
|
cmp r0, #0
|
|
beq _08081D44
|
|
adds r1, r4, #0
|
|
adds r1, #0x70
|
|
ldr r0, _08081D40 @ =0x0000FFFF
|
|
strh r0, [r1]
|
|
movs r0, #1
|
|
b _08081D72
|
|
.align 2, 0
|
|
_08081D40: .4byte 0x0000FFFF
|
|
_08081D44:
|
|
adds r5, r4, #0
|
|
adds r5, #0x70
|
|
ldrh r1, [r5]
|
|
ldr r0, _08081D6C @ =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _08081D70
|
|
adds r0, r4, #0
|
|
adds r0, #0x74
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_080001DA
|
|
ldrh r5, [r5]
|
|
cmp r0, r5
|
|
bne _08081D70
|
|
movs r0, #1
|
|
b _08081D72
|
|
.align 2, 0
|
|
_08081D6C: .4byte 0x0000FFFF
|
|
_08081D70:
|
|
movs r0, #0
|
|
_08081D72:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08081D74
|
|
sub_08081D74: @ 0x08081D74
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x74
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_080002E0
|
|
cmp r0, #0xf
|
|
bne _08081D8E
|
|
movs r0, #0
|
|
b _08081E0A
|
|
_08081D8E:
|
|
movs r6, #0
|
|
adds r0, r4, #0
|
|
bl sub_08081E0C
|
|
cmp r0, #0
|
|
beq _08081DB4
|
|
ldr r0, _08081DAC @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x90
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08081E06
|
|
ldr r6, _08081DB0 @ =gLinkEntity
|
|
b _08081E06
|
|
.align 2, 0
|
|
_08081DAC: .4byte gLinkState
|
|
_08081DB0: .4byte gLinkEntity
|
|
_08081DB4:
|
|
ldr r0, _08081DD8 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08081E06
|
|
ldr r5, _08081DDC @ =gUnk_03004040
|
|
ldr r1, [r5]
|
|
adds r0, r4, #0
|
|
movs r2, #5
|
|
movs r3, #6
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _08081DE0
|
|
ldr r6, [r5]
|
|
b _08081E06
|
|
.align 2, 0
|
|
_08081DD8: .4byte gLinkState
|
|
_08081DDC: .4byte gUnk_03004040
|
|
_08081DE0:
|
|
ldr r1, [r5, #4]
|
|
adds r0, r4, #0
|
|
movs r2, #5
|
|
movs r3, #6
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _08081DF4
|
|
ldr r6, [r5, #4]
|
|
b _08081E06
|
|
_08081DF4:
|
|
ldr r1, [r5, #8]
|
|
adds r0, r4, #0
|
|
movs r2, #5
|
|
movs r3, #6
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _08081E06
|
|
ldr r6, [r5, #8]
|
|
_08081E06:
|
|
str r6, [r4, #0x54]
|
|
adds r0, r6, #0
|
|
_08081E0A:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_08081E0C
|
|
sub_08081E0C: @ 0x08081E0C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r5, _08081E28 @ =gLinkEntity
|
|
movs r1, #0x36
|
|
ldrsh r0, [r5, r1]
|
|
cmp r0, #0
|
|
bne _08081E22
|
|
bl sub_08079F8C
|
|
cmp r0, #0
|
|
bne _08081E2C
|
|
_08081E22:
|
|
movs r0, #0
|
|
b _08081E38
|
|
.align 2, 0
|
|
_08081E28: .4byte gLinkEntity
|
|
_08081E2C:
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #5
|
|
movs r3, #6
|
|
bl sub_080041A0
|
|
_08081E38:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08081E3C
|
|
sub_08081E3C: @ 0x08081E3C
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
adds r1, #0x74
|
|
ldrh r2, [r1]
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r2, #0
|
|
bl sub_080002B0
|
|
adds r2, r0, #0
|
|
ldr r1, _08081E64 @ =gUnk_0811EE50
|
|
_08081E52:
|
|
ldrh r0, [r1]
|
|
cmp r0, r2
|
|
beq _08081E68
|
|
adds r1, #2
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _08081E52
|
|
movs r0, #0
|
|
b _08081E6A
|
|
.align 2, 0
|
|
_08081E64: .4byte gUnk_0811EE50
|
|
_08081E68:
|
|
movs r0, #1
|
|
_08081E6A:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08081E6C
|
|
sub_08081E6C: @ 0x08081E6C
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x74
|
|
ldrh r6, [r0]
|
|
subs r0, #0x3c
|
|
ldrb r5, [r0]
|
|
adds r0, r6, #0
|
|
adds r1, r5, #0
|
|
bl sub_080002B0
|
|
adds r7, r0, #0
|
|
ldr r0, _08081EEC @ =0x00003FFF
|
|
cmp r7, r0
|
|
bls _08081EE8
|
|
adds r0, r5, #0
|
|
bl sub_0808094C
|
|
adds r1, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
movs r4, #0x78
|
|
cmp r0, #0
|
|
bne _08081E9A
|
|
movs r4, #0x7a
|
|
_08081E9A:
|
|
ldr r0, _08081EF0 @ =0x00007004
|
|
adds r3, r1, r0
|
|
lsls r0, r4, #1
|
|
ldr r2, _08081EF4 @ =0x00006004
|
|
adds r1, r1, r2
|
|
adds r1, r1, r0
|
|
ldrh r0, [r1]
|
|
lsls r0, r0, #3
|
|
adds r3, r3, r0
|
|
ldr r2, _08081EF8 @ =gUnk_02019EE0
|
|
cmp r5, #2
|
|
bne _08081EB4
|
|
ldr r2, _08081EFC @ =gUnk_02002F00
|
|
_08081EB4:
|
|
movs r0, #0x3f
|
|
ands r0, r6
|
|
lsls r0, r0, #1
|
|
movs r1, #0xfc
|
|
lsls r1, r1, #4
|
|
ands r1, r6
|
|
lsls r1, r1, #2
|
|
adds r0, r0, r1
|
|
lsls r0, r0, #1
|
|
adds r2, r2, r0
|
|
adds r0, r2, #0
|
|
adds r1, r3, #0
|
|
bl sub_08081F00
|
|
cmp r0, #0
|
|
bne _08081EE8
|
|
adds r0, r4, #0
|
|
adds r1, r6, #0
|
|
adds r2, r5, #0
|
|
bl sub_0807B314
|
|
adds r0, r7, #0
|
|
adds r1, r6, #0
|
|
adds r2, r5, #0
|
|
bl UpdateCollisionLayer
|
|
_08081EE8:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08081EEC: .4byte 0x00003FFF
|
|
_08081EF0: .4byte 0x00007004
|
|
_08081EF4: .4byte 0x00006004
|
|
_08081EF8: .4byte gUnk_02019EE0
|
|
_08081EFC: .4byte gUnk_02002F00
|
|
|
|
thumb_func_start sub_08081F00
|
|
sub_08081F00: @ 0x08081F00
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r3, r1, #0
|
|
ldr r1, [r2]
|
|
ldr r0, [r3]
|
|
cmp r1, r0
|
|
bne _08081F20
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
adds r0, r2, r1
|
|
ldr r1, [r0]
|
|
ldr r0, [r3, #4]
|
|
cmp r1, r0
|
|
bne _08081F20
|
|
movs r0, #1
|
|
b _08081F22
|
|
_08081F20:
|
|
movs r0, #0
|
|
_08081F22:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08081F24
|
|
sub_08081F24: @ 0x08081F24
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #0x11
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _08081F50
|
|
ldrb r1, [r2, #0x11]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x11]
|
|
ldrh r0, [r2, #0x2e]
|
|
adds r0, #7
|
|
strh r0, [r2, #0x2e]
|
|
ldrh r0, [r2, #0x32]
|
|
adds r0, #5
|
|
strh r0, [r2, #0x32]
|
|
_08081F50:
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _08081F7A
|
|
ldrb r1, [r2, #0x11]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #3
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x11]
|
|
ldrh r0, [r2, #0x2e]
|
|
subs r0, #7
|
|
strh r0, [r2, #0x2e]
|
|
ldrh r0, [r2, #0x32]
|
|
adds r0, #5
|
|
strh r0, [r2, #0x32]
|
|
_08081F7A:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08081F7C
|
|
sub_08081F7C: @ 0x08081F7C
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r7, r1, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _08081FF4
|
|
subs r1, r0, #1
|
|
strb r1, [r4, #0xe]
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #6
|
|
bls _08081FA4
|
|
ldr r0, [r4, #0x54]
|
|
cmp r0, #0
|
|
beq _08081FF4
|
|
adds r1, r0, #0
|
|
adds r1, #0x63
|
|
movs r0, #0xfc
|
|
strb r0, [r1]
|
|
b _08081FF4
|
|
_08081FA4:
|
|
lsls r0, r1, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #6
|
|
bne _08081FF4
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
adds r6, r4, #0
|
|
adds r6, #0x74
|
|
ldrh r1, [r6]
|
|
adds r5, r4, #0
|
|
adds r5, #0x38
|
|
ldrb r2, [r5]
|
|
adds r0, r7, #0
|
|
bl sub_0807B314
|
|
adds r0, r4, #0
|
|
bl sub_08081F24
|
|
movs r0, #0x86
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
adds r2, r4, #0
|
|
adds r2, #0x70
|
|
ldrh r1, [r2]
|
|
ldr r0, _08081FF0 @ =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _08081FEC
|
|
adds r0, r1, #0
|
|
ldrh r1, [r6]
|
|
ldrb r2, [r5]
|
|
bl UpdateCollisionLayer
|
|
_08081FEC:
|
|
movs r0, #0
|
|
b _08081FF6
|
|
.align 2, 0
|
|
_08081FF0: .4byte 0x0000FFFF
|
|
_08081FF4:
|
|
movs r0, #1
|
|
_08081FF6:
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_08081FF8
|
|
sub_08081FF8: @ 0x08081FF8
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, _08082038 @ =gLinkEntity
|
|
cmp r1, r0
|
|
bne _08082036
|
|
adds r0, r1, #0
|
|
adds r1, r4, #0
|
|
bl sub_080045C4
|
|
adds r6, r0, #0
|
|
ldr r0, [r4, #0x54]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
adds r2, r6, #0
|
|
bl sub_080044AE
|
|
movs r5, #0
|
|
ldr r4, _0808203C @ =gUnk_03004040
|
|
_0808201E:
|
|
ldr r0, [r4]
|
|
cmp r0, #0
|
|
beq _0808202E
|
|
movs r1, #0x80
|
|
lsls r1, r1, #2
|
|
adds r2, r6, #0
|
|
bl sub_080044AE
|
|
_0808202E:
|
|
adds r4, #4
|
|
adds r5, #1
|
|
cmp r5, #2
|
|
bls _0808201E
|
|
_08082036:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08082038: .4byte gLinkEntity
|
|
_0808203C: .4byte gUnk_03004040
|
|
|
|
thumb_func_start sub_08082040
|
|
sub_08082040: @ 0x08082040
|
|
push {lr}
|
|
ldr r2, _08082054 @ =gUnk_0811EE5C
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08082054: .4byte gUnk_0811EE5C
|
|
|
|
thumb_func_start sub_08082058
|
|
sub_08082058: @ 0x08082058
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x11]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #3
|
|
bl sub_080AE008
|
|
adds r0, r4, #0
|
|
bl sub_08082098
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082098
|
|
sub_08082098: @ 0x08082098
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08082100 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080820AC
|
|
bl sub_0805E780
|
|
_080820AC:
|
|
ldr r5, _08082104 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_08079BD8
|
|
ldrb r1, [r4, #0x1b]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
ldrb r1, [r5, #0x1a]
|
|
lsls r1, r1, #0x1c
|
|
lsrs r1, r1, #0x1c
|
|
ldrb r2, [r4, #0x1a]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1a]
|
|
ldrb r1, [r5, #0x14]
|
|
movs r0, #0xe
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r5, #0x14]
|
|
lsrs r3, r0, #1
|
|
adds r7, r3, #0
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #0x14
|
|
beq _08082122
|
|
cmp r0, #0x14
|
|
bgt _08082108
|
|
cmp r0, #0xa
|
|
beq _0808212A
|
|
b _0808212E
|
|
.align 2, 0
|
|
_08082100: .4byte gLinkState
|
|
_08082104: .4byte gLinkEntity
|
|
_08082108:
|
|
cmp r0, #0x16
|
|
beq _08082112
|
|
cmp r0, #0x18
|
|
beq _08082126
|
|
b _0808212E
|
|
_08082112:
|
|
ldrb r0, [r4, #0x14]
|
|
movs r3, #0xd
|
|
adds r5, r4, #0
|
|
adds r5, #0x58
|
|
cmp r0, #2
|
|
bne _080821F2
|
|
movs r3, #0xe
|
|
b _080821F2
|
|
_08082122:
|
|
movs r3, #0xc
|
|
b _080821EE
|
|
_08082126:
|
|
adds r3, #0xf
|
|
b _080821EE
|
|
_0808212A:
|
|
movs r3, #0x13
|
|
b _080821EE
|
|
_0808212E:
|
|
adds r0, r5, #0
|
|
adds r0, #0x42
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _0808213E
|
|
adds r3, r7, #0
|
|
adds r3, #8
|
|
b _080821EE
|
|
_0808213E:
|
|
ldr r2, _0808215C @ =gLinkState
|
|
ldrb r1, [r2, #2]
|
|
adds r6, r1, #0
|
|
cmp r6, #0
|
|
beq _08082160
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
adds r5, r4, #0
|
|
adds r5, #0x58
|
|
cmp r0, #0
|
|
bne _080821F2
|
|
adds r3, r7, #0
|
|
adds r3, #0x19
|
|
b _080821F2
|
|
.align 2, 0
|
|
_0808215C: .4byte gLinkState
|
|
_08082160:
|
|
adds r0, r2, #0
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _0808216E
|
|
cmp r0, #0x19
|
|
bne _080821C8
|
|
_0808216E:
|
|
adds r3, r7, #4
|
|
adds r0, r4, #0
|
|
adds r0, #0x58
|
|
ldrb r1, [r0]
|
|
adds r5, r0, #0
|
|
cmp r1, r3
|
|
beq _08082180
|
|
str r6, [r4, #0x34]
|
|
b _080821BA
|
|
_08082180:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r7, #0xff
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _080821F2
|
|
adds r2, r4, #0
|
|
adds r2, #0x63
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
beq _080821C0
|
|
cmp r1, r0
|
|
bgt _080821AC
|
|
subs r0, #1
|
|
cmp r1, r0
|
|
beq _080821B4
|
|
b _080821F2
|
|
_080821AC:
|
|
cmp r1, #0
|
|
bne _080821F2
|
|
movs r0, #0xfe
|
|
b _080821B8
|
|
_080821B4:
|
|
ldrb r0, [r2]
|
|
orrs r0, r7
|
|
_080821B8:
|
|
strb r0, [r2]
|
|
_080821BA:
|
|
movs r0, #6
|
|
strb r0, [r4, #0xe]
|
|
b _080821F2
|
|
_080821C0:
|
|
strb r6, [r2]
|
|
movs r0, #3
|
|
strb r0, [r4, #0xe]
|
|
b _080821F2
|
|
_080821C8:
|
|
adds r0, r2, #0
|
|
adds r0, #0x26
|
|
ldrb r2, [r0]
|
|
adds r1, r2, #0
|
|
cmp r1, #0
|
|
beq _080821E8
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
adds r3, r7, #0
|
|
adds r3, #0x14
|
|
adds r5, r4, #0
|
|
adds r5, #0x58
|
|
cmp r0, #0
|
|
beq _080821F2
|
|
movs r3, #0x18
|
|
b _080821F2
|
|
_080821E8:
|
|
adds r0, r4, #0
|
|
adds r0, #0x63
|
|
strb r1, [r0]
|
|
_080821EE:
|
|
adds r5, r4, #0
|
|
adds r5, #0x58
|
|
_080821F2:
|
|
ldrb r0, [r5]
|
|
cmp r0, r3
|
|
beq _08082202
|
|
adds r0, r4, #0
|
|
adds r1, r3, #0
|
|
bl LoadAnimation
|
|
b _08082208
|
|
_08082202:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
_08082208:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808220C
|
|
sub_0808220C: @ 0x0808220C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08082228 @ =gUnk_0811F090
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r4, #0x41
|
|
movs r0, #0
|
|
strb r0, [r4]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08082228: .4byte gUnk_0811F090
|
|
|
|
thumb_func_start sub_0808222C
|
|
sub_0808222C: @ 0x0808222C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #1
|
|
bne _0808224C
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _0808224C
|
|
bl sub_0805E780
|
|
_0808224C:
|
|
movs r2, #1
|
|
strb r2, [r4, #0xc]
|
|
ldr r0, _08082308 @ =gUnk_080FD338
|
|
str r0, [r4, #0x48]
|
|
movs r1, #0
|
|
movs r0, #0x80
|
|
strh r0, [r4, #0x24]
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #3
|
|
strh r0, [r4, #0x32]
|
|
strb r1, [r4, #0x16]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r0, r4, #0
|
|
adds r0, #0x45
|
|
strb r2, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3c
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r1, #3
|
|
movs r0, #0x6e
|
|
strb r0, [r1]
|
|
subs r1, #4
|
|
movs r0, #0x84
|
|
strb r0, [r1]
|
|
movs r0, #0x12
|
|
strb r0, [r4, #0x1c]
|
|
adds r5, r4, #0
|
|
adds r5, #0x38
|
|
ldrb r0, [r5]
|
|
cmp r0, #0
|
|
bne _08082298
|
|
adds r0, r4, #0
|
|
bl sub_08016A30
|
|
_08082298:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
ldr r7, _0808230C @ =gRoomControls
|
|
ldrh r1, [r7, #6]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
movs r6, #0x3f
|
|
ands r0, r6
|
|
movs r2, #0x32
|
|
ldrsh r1, [r4, r2]
|
|
ldrh r2, [r7, #8]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r6
|
|
lsls r1, r1, #6
|
|
orrs r0, r1
|
|
ldrb r1, [r5]
|
|
bl sub_080001DA
|
|
adds r1, r4, #0
|
|
adds r1, #0x70
|
|
strh r0, [r1]
|
|
lsls r0, r0, #0x10
|
|
lsrs r0, r0, #0x10
|
|
movs r1, #0x80
|
|
lsls r1, r1, #7
|
|
mov r8, r1
|
|
cmp r0, r8
|
|
bne _080822D6
|
|
bl sub_0805E780
|
|
_080822D6:
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r4, r2]
|
|
ldrh r0, [r7, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
ands r1, r6
|
|
movs r2, #0x32
|
|
ldrsh r0, [r4, r2]
|
|
ldrh r2, [r7, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r6
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
ldrb r2, [r5]
|
|
mov r0, r8
|
|
bl UpdateCollisionLayer
|
|
adds r0, r4, #0
|
|
movs r1, #5
|
|
bl UpdateSprite
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08082308: .4byte gUnk_080FD338
|
|
_0808230C: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08082310
|
|
sub_08082310: @ 0x08082310
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r5, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r0, [r0]
|
|
movs r6, #0x7f
|
|
adds r1, r6, #0
|
|
ands r1, r0
|
|
cmp r1, #0x13
|
|
beq _08082342
|
|
cmp r1, #0x1d
|
|
beq _0808234C
|
|
adds r0, r5, #0
|
|
bl sub_080002A0
|
|
adds r4, r0, #0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
cmp r4, r0
|
|
bne _08082338
|
|
b _080824F0
|
|
_08082338:
|
|
adds r0, #1
|
|
cmp r4, r0
|
|
bhs _08082340
|
|
b _08082484
|
|
_08082340:
|
|
b _080823C4
|
|
_08082342:
|
|
movs r1, #0
|
|
movs r0, #3
|
|
strb r0, [r5, #0xc]
|
|
strb r1, [r5, #0xd]
|
|
b _080824F6
|
|
_0808234C:
|
|
adds r0, r5, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _080823C0 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r7, #0x32
|
|
ldrsh r2, [r5, r7]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
movs r1, #0
|
|
movs r0, #5
|
|
strb r0, [r5, #0xc]
|
|
movs r0, #0xa8
|
|
lsls r0, r0, #0xa
|
|
str r0, [r5, #0x20]
|
|
adds r0, r5, #0
|
|
adds r0, #0x63
|
|
strb r1, [r0]
|
|
ldrb r1, [r5, #0x18]
|
|
movs r0, #0x31
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x10
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x18]
|
|
adds r2, r5, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x18
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, #0x10]
|
|
adds r0, r6, #0
|
|
ands r0, r1
|
|
strb r0, [r5, #0x10]
|
|
adds r0, r5, #0
|
|
bl sub_08082824
|
|
b _080824F6
|
|
.align 2, 0
|
|
_080823C0: .4byte gRoomControls
|
|
_080823C4:
|
|
ldr r0, _080823D4 @ =0x00004004
|
|
cmp r4, r0
|
|
bls _080823D8
|
|
adds r0, #0x63
|
|
cmp r4, r0
|
|
beq _08082448
|
|
b _08082484
|
|
.align 2, 0
|
|
_080823D4: .4byte 0x00004004
|
|
_080823D8:
|
|
ldr r1, _08082438 @ =0xFFFFBFFF
|
|
adds r0, r4, r1
|
|
lsls r0, r0, #3
|
|
strb r0, [r5, #0x15]
|
|
movs r0, #0x20
|
|
strb r0, [r5, #0xe]
|
|
movs r0, #4
|
|
strb r0, [r5, #0xc]
|
|
ldr r0, _0808243C @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082400
|
|
ldrh r0, [r5, #0x24]
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x11
|
|
strh r0, [r5, #0x24]
|
|
movs r0, #0x40
|
|
strb r0, [r5, #0xe]
|
|
_08082400:
|
|
adds r0, r5, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _08082440 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
ldr r0, _08082444 @ =0x0000010F
|
|
bl sub_08004488
|
|
b _080824F6
|
|
.align 2, 0
|
|
_08082438: .4byte 0xFFFFBFFF
|
|
_0808243C: .4byte gLinkState
|
|
_08082440: .4byte gRoomControls
|
|
_08082444: .4byte 0x0000010F
|
|
_08082448:
|
|
adds r0, r5, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r7, #0x2e
|
|
ldrsh r1, [r5, r7]
|
|
ldr r3, _08082480 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
bl sub_0805E780
|
|
b _080824F6
|
|
.align 2, 0
|
|
_08082480: .4byte gRoomControls
|
|
_08082484:
|
|
adds r0, r5, #0
|
|
bl sub_080002B8
|
|
cmp r0, #0xd
|
|
bne _0808249A
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl CreateFx
|
|
b _080824D8
|
|
_0808249A:
|
|
ldr r0, _080824E4 @ =0x00004005
|
|
cmp r4, r0
|
|
bne _080824D8
|
|
ldr r0, _080824E8 @ =gLinkState
|
|
adds r0, #0xab
|
|
movs r1, #4
|
|
strb r1, [r0]
|
|
adds r0, r5, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r7, #0x2e
|
|
ldrsh r1, [r5, r7]
|
|
ldr r3, _080824EC @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
_080824D8:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
b _080824F6
|
|
.align 2, 0
|
|
_080824E4: .4byte 0x00004005
|
|
_080824E8: .4byte gLinkState
|
|
_080824EC: .4byte gRoomControls
|
|
_080824F0:
|
|
adds r0, r5, #0
|
|
bl sub_08078930
|
|
_080824F6:
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_080824F8
|
|
sub_080824F8: @ 0x080824F8
|
|
push {lr}
|
|
ldr r2, _0808250C @ =gUnk_0811F0A8
|
|
ldrb r1, [r0, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_0808250C: .4byte gUnk_0811F0A8
|
|
|
|
thumb_func_start sub_08082510
|
|
sub_08082510: @ 0x08082510
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldrb r1, [r5, #0x10]
|
|
movs r0, #0x80
|
|
movs r2, #0
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x10]
|
|
ldr r0, _08082578 @ =gUnk_080FD340
|
|
str r0, [r5, #0x48]
|
|
adds r1, r5, #0
|
|
adds r1, #0x3c
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r1, #3
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
ldr r0, _0808257C @ =gLinkEntity
|
|
adds r0, #0x3b
|
|
ldrb r0, [r0]
|
|
subs r1, #4
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x63
|
|
strb r2, [r0]
|
|
adds r0, #0xd
|
|
ldrh r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _08082580 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
ldrb r0, [r5, #0xd]
|
|
adds r0, #1
|
|
strb r0, [r5, #0xd]
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08082578: .4byte gUnk_080FD340
|
|
_0808257C: .4byte gLinkEntity
|
|
_08082580: .4byte gRoomControls
|
|
|
|
thumb_func_start nullsub_511
|
|
nullsub_511: @ 0x08082584
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082588
|
|
sub_08082588: @ 0x08082588
|
|
adds r0, #0x29
|
|
ldrb r2, [r0]
|
|
movs r1, #0x39
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
movs r2, #0x18
|
|
orrs r1, r2
|
|
strb r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808259C
|
|
sub_0808259C: @ 0x0808259C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080043E8
|
|
cmp r0, #2
|
|
beq _080825B8
|
|
cmp r0, #2
|
|
bhi _080825B2
|
|
cmp r0, #1
|
|
beq _080825BE
|
|
b _080825D0
|
|
_080825B2:
|
|
cmp r0, #3
|
|
beq _080825C4
|
|
b _080825D0
|
|
_080825B8:
|
|
adds r0, r4, #0
|
|
movs r1, #0xb
|
|
b _080825C8
|
|
_080825BE:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
b _080825C8
|
|
_080825C4:
|
|
adds r0, r4, #0
|
|
movs r1, #0xc
|
|
_080825C8:
|
|
movs r2, #0
|
|
bl CreateFx
|
|
b _080825E0
|
|
_080825D0:
|
|
ldr r1, _080825DC @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_08082850
|
|
b _080825E4
|
|
.align 2, 0
|
|
_080825DC: .4byte gLinkEntity
|
|
_080825E0:
|
|
bl sub_0805E780
|
|
_080825E4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080825E8
|
|
sub_080825E8: @ 0x080825E8
|
|
push {lr}
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080825F0
|
|
sub_080825F0: @ 0x080825F0
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r0, _08082604 @ =gLinkState
|
|
ldrb r0, [r0, #5]
|
|
cmp r0, #0
|
|
bne _08082602
|
|
adds r0, r1, #0
|
|
bl sub_08082608
|
|
_08082602:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08082604: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08082608
|
|
sub_08082608: @ 0x08082608
|
|
movs r2, #0
|
|
movs r1, #1
|
|
strb r1, [r0, #0xc]
|
|
strb r2, [r0, #0xd]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082614
|
|
sub_08082614: @ 0x08082614
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r5, r0, #0
|
|
bl sub_0800445C
|
|
ldrb r0, [r5, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
beq _08082638
|
|
adds r0, r5, #0
|
|
bl sub_0806F69C
|
|
adds r0, r5, #0
|
|
bl sub_08016A6C
|
|
b _080826DC
|
|
_08082638:
|
|
adds r0, r5, #0
|
|
bl sub_0800442E
|
|
cmp r0, #0
|
|
bne _080826DC
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
ldr r0, _080826A4 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082658
|
|
ldrh r0, [r5, #0x24]
|
|
lsls r0, r0, #1
|
|
strh r0, [r5, #0x24]
|
|
_08082658:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
ldr r2, _080826A8 @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
movs r3, #0x3f
|
|
ands r0, r3
|
|
movs r4, #0x32
|
|
ldrsh r1, [r5, r4]
|
|
ldrh r2, [r2, #8]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r3
|
|
lsls r1, r1, #6
|
|
orrs r0, r1
|
|
adds r4, r5, #0
|
|
adds r4, #0x38
|
|
ldrb r1, [r4]
|
|
bl sub_080001DA
|
|
adds r1, r5, #0
|
|
adds r1, #0x70
|
|
strh r0, [r1]
|
|
adds r0, r5, #0
|
|
bl sub_080002A0
|
|
adds r6, r4, #0
|
|
cmp r0, #0x72
|
|
bhi _080826AC
|
|
cmp r0, #0x71
|
|
blo _080826AC
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
b _080826DC
|
|
.align 2, 0
|
|
_080826A4: .4byte gLinkState
|
|
_080826A8: .4byte gRoomControls
|
|
_080826AC:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
movs r7, #0x2e
|
|
ldrsh r1, [r5, r7]
|
|
ldr r3, _080826E0 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r7, #0x32
|
|
ldrsh r2, [r5, r7]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
ldrb r2, [r6]
|
|
bl UpdateCollisionLayer
|
|
adds r0, r5, #0
|
|
bl sub_08078930
|
|
_080826DC:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_080826E0: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_080826E4
|
|
sub_080826E4: @ 0x080826E4
|
|
push {lr}
|
|
ldr r2, _080826F8 @ =gUnk_0811F0C4
|
|
ldrb r1, [r0, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080826F8: .4byte gUnk_0811F0C4
|
|
|
|
thumb_func_start sub_080826FC
|
|
sub_080826FC: @ 0x080826FC
|
|
movs r2, #0
|
|
movs r1, #1
|
|
strb r1, [r0, #0xd]
|
|
movs r1, #0x30
|
|
strb r1, [r0, #0x1d]
|
|
strb r2, [r0, #0xe]
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808270C
|
|
sub_0808270C: @ 0x0808270C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _08082768 @ =gLinkState
|
|
ldrb r1, [r0, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _0808272A
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
beq _08082770
|
|
_0808272A:
|
|
adds r1, r5, #0
|
|
adds r1, #0x62
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #7
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _0808276C @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
b _08082776
|
|
.align 2, 0
|
|
_08082768: .4byte gLinkState
|
|
_0808276C: .4byte gRoomControls
|
|
_08082770:
|
|
adds r0, r5, #0
|
|
bl sub_0806F4E8
|
|
_08082776:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_08082778
|
|
sub_08082778: @ 0x08082778
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldrb r1, [r5, #0xe]
|
|
cmp r1, #0
|
|
bne _080827C4
|
|
movs r0, #1
|
|
strb r0, [r5, #0xe]
|
|
adds r0, r5, #0
|
|
adds r0, #0x62
|
|
strb r1, [r0]
|
|
adds r1, r5, #0
|
|
adds r1, #0x63
|
|
movs r0, #0xfe
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _080827E8 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
_080827C4:
|
|
ldr r0, _080827EC @ =gLinkState
|
|
ldrb r1, [r0, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _080827DE
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
beq _080827F0
|
|
_080827DE:
|
|
adds r0, r5, #0
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
b _080827F6
|
|
.align 2, 0
|
|
_080827E8: .4byte gRoomControls
|
|
_080827EC: .4byte gLinkState
|
|
_080827F0:
|
|
adds r0, r5, #0
|
|
bl sub_0806F3E4
|
|
_080827F6:
|
|
pop {r4, r5, r6, pc}
|
|
|
|
thumb_func_start sub_080827F8
|
|
sub_080827F8: @ 0x080827F8
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldr r0, _08082810 @ =gLinkState
|
|
ldrb r0, [r0, #0x1c]
|
|
cmp r0, #0
|
|
bne _0808280C
|
|
adds r0, r1, #0
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
_0808280C:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08082810: .4byte gLinkState
|
|
|
|
thumb_func_start nullsub_512
|
|
nullsub_512: @ 0x08082814
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082818
|
|
sub_08082818: @ 0x08082818
|
|
push {lr}
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082824
|
|
sub_08082824: @ 0x08082824
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bge _08082836
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_08082836:
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _0808284C
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_08082850
|
|
_0808284C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082850
|
|
sub_08082850: @ 0x08082850
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r1, #0
|
|
ldrb r1, [r4, #0xa]
|
|
adds r0, #0x7d
|
|
ldrb r2, [r0]
|
|
ldrb r3, [r4, #0xb]
|
|
adds r0, r4, #0
|
|
bl sub_0808288C
|
|
adds r2, r0, #0
|
|
adds r0, r4, #0
|
|
movs r1, #5
|
|
bl CreateFx
|
|
cmp r0, #0
|
|
beq _08082874
|
|
str r5, [r0, #0x50]
|
|
_08082874:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #1
|
|
bne _08082884
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
_08082884:
|
|
bl sub_0805E780
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808288C
|
|
sub_0808288C: @ 0x0808288C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, #0
|
|
adds r4, r1, #0
|
|
adds r5, r2, #0
|
|
mov r8, r3
|
|
movs r6, #0
|
|
cmp r4, #0
|
|
beq _080828A6
|
|
cmp r4, #0xff
|
|
bne _080828AA
|
|
b _080828D6
|
|
_080828A6:
|
|
movs r6, #0x80
|
|
b _080828D6
|
|
_080828AA:
|
|
adds r0, r7, #0
|
|
movs r1, #0
|
|
adds r2, r4, #0
|
|
adds r3, r5, #0
|
|
bl CreateObjectWithParent
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _080828D6
|
|
mov r0, r8
|
|
cmp r0, #2
|
|
bne _080828D4
|
|
movs r0, #5
|
|
strb r0, [r2, #0xe]
|
|
adds r0, r7, #0
|
|
adds r0, #0x86
|
|
ldrh r1, [r0]
|
|
adds r0, r2, #0
|
|
adds r0, #0x86
|
|
strh r1, [r0]
|
|
b _080828D6
|
|
_080828D4:
|
|
strb r6, [r2, #0xe]
|
|
_080828D6:
|
|
adds r0, r6, #0
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080828E0
|
|
sub_080828E0: @ 0x080828E0
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080828F8
|
|
ldr r0, _080828F4 @ =gUnk_0811F15C
|
|
b _08082900
|
|
.align 2, 0
|
|
_080828F4: .4byte gUnk_0811F15C
|
|
_080828F8:
|
|
ldrb r0, [r2, #0xa]
|
|
cmp r0, #0
|
|
bne _08082914
|
|
ldr r0, _08082910 @ =gUnk_0811F14C
|
|
_08082900:
|
|
ldrb r1, [r2, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, #0
|
|
bl _call_via_r1
|
|
b _08082924
|
|
.align 2, 0
|
|
_08082910: .4byte gUnk_0811F14C
|
|
_08082914:
|
|
ldr r0, _08082928 @ =gUnk_0811F154
|
|
ldrb r1, [r2, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r2, #0
|
|
bl _call_via_r1
|
|
_08082924:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08082928: .4byte gUnk_0811F154
|
|
|
|
thumb_func_start sub_0808292C
|
|
sub_0808292C: @ 0x0808292C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x11]
|
|
movs r3, #0x10
|
|
rsbs r3, r3, #0
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
ldr r5, _080829C8 @ =gLinkEntity
|
|
ldrb r1, [r5, #0x19]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r4, #0x19]
|
|
movs r0, #0x3f
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r0, r5, #0
|
|
adds r0, #0x29
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x1d
|
|
lsrs r1, r1, #0x1d
|
|
subs r1, #1
|
|
movs r0, #0x29
|
|
adds r0, r0, r4
|
|
mov ip, r0
|
|
movs r0, #7
|
|
ands r1, r0
|
|
mov r0, ip
|
|
ldrb r2, [r0]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, ip
|
|
strb r0, [r1]
|
|
ldrb r0, [r5, #0x1a]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x1c
|
|
ldrb r1, [r4, #0x1a]
|
|
ands r3, r1
|
|
orrs r3, r0
|
|
strb r3, [r4, #0x1a]
|
|
adds r0, r5, #0
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
strb r1, [r0]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r5, #0x14]
|
|
cmp r0, #2
|
|
bne _080829A4
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_080829A4:
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #3
|
|
bl sub_080AE008
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _080829CC
|
|
movs r0, #7
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
movs r1, #7
|
|
bl LoadAnimation
|
|
movs r0, #0xf3
|
|
bl PlaySFX
|
|
b _080829E2
|
|
.align 2, 0
|
|
_080829C8: .4byte gLinkEntity
|
|
_080829CC:
|
|
movs r0, #0
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xa
|
|
strb r0, [r4, #0xf]
|
|
ldrh r0, [r4, #0x32]
|
|
subs r0, #0xe
|
|
strh r0, [r4, #0x32]
|
|
adds r0, r4, #0
|
|
movs r1, #0x14
|
|
bl LoadAnimation
|
|
_080829E2:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_080829E4
|
|
sub_080829E4: @ 0x080829E4
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _08082A10 @ =gLinkEntity
|
|
ldrb r1, [r0, #0x1a]
|
|
lsls r1, r1, #0x1c
|
|
lsrs r1, r1, #0x1c
|
|
ldrb r2, [r5, #0x1a]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x1a]
|
|
ldr r3, _08082A14 @ =gTextBox
|
|
ldrb r0, [r3]
|
|
movs r1, #0x7f
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
bne _08082A18
|
|
adds r0, r5, #0
|
|
bl sub_0805E7BC
|
|
b _08082AB4
|
|
.align 2, 0
|
|
_08082A10: .4byte gLinkEntity
|
|
_08082A14: .4byte gTextBox
|
|
_08082A18:
|
|
cmp r1, #5
|
|
beq _08082A9C
|
|
ldrb r1, [r3, #1]
|
|
adds r0, r1, #0
|
|
cmp r0, #0xa
|
|
beq _08082A30
|
|
cmp r0, #0
|
|
beq _08082A30
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #9
|
|
bls _08082A4A
|
|
_08082A30:
|
|
adds r1, r5, #0
|
|
adds r1, #0x58
|
|
ldrb r2, [r5, #0xf]
|
|
movs r0, #3
|
|
ldrb r1, [r1]
|
|
orrs r2, r0
|
|
cmp r1, r2
|
|
beq _08082A9C
|
|
adds r0, r5, #0
|
|
adds r1, r2, #0
|
|
bl LoadAnimation
|
|
b _08082AB4
|
|
_08082A4A:
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082A78
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x90
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082A9C
|
|
bl Random
|
|
ldr r4, _08082A74 @ =gUnk_0811F16C
|
|
movs r1, #9
|
|
bl __modsi3
|
|
adds r0, r0, r4
|
|
ldrb r0, [r0]
|
|
strb r0, [r5, #0xf]
|
|
b _08082A8C
|
|
.align 2, 0
|
|
_08082A74: .4byte gUnk_0811F16C
|
|
_08082A78:
|
|
adds r2, r5, #0
|
|
adds r2, #0x58
|
|
ldr r1, _08082A98 @ =gUnk_0811F16C
|
|
ldrb r0, [r3, #1]
|
|
adds r0, r0, r1
|
|
ldrb r1, [r0]
|
|
ldrb r0, [r2]
|
|
cmp r0, r1
|
|
beq _08082A9C
|
|
strb r1, [r5, #0xf]
|
|
_08082A8C:
|
|
ldrb r1, [r5, #0xf]
|
|
adds r0, r5, #0
|
|
bl LoadAnimation
|
|
b _08082AB4
|
|
.align 2, 0
|
|
_08082A98: .4byte gUnk_0811F16C
|
|
_08082A9C:
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #7
|
|
bls _08082AAA
|
|
movs r0, #1
|
|
b _08082AAC
|
|
_08082AAA:
|
|
movs r0, #0
|
|
_08082AAC:
|
|
strb r0, [r5, #0xe]
|
|
adds r0, r5, #0
|
|
bl sub_080042B8
|
|
_08082AB4:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082AB8
|
|
sub_08082AB8: @ 0x08082AB8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08082B10 @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r5, #0x80
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08082ACC
|
|
bl sub_0805E780
|
|
_08082ACC:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
bne _08082B5C
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _08082B98
|
|
ldrb r0, [r4, #0xe]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0xa
|
|
strb r0, [r4, #0xf]
|
|
ldrb r0, [r4, #0xe]
|
|
subs r5, r0, #1
|
|
adds r0, r4, #0
|
|
movs r1, #0x79
|
|
adds r2, r5, #0
|
|
movs r3, #0
|
|
bl CreateObjectWithParent
|
|
adds r1, r0, #0
|
|
str r1, [r4, #0x54]
|
|
cmp r1, #0
|
|
beq _08082B18
|
|
cmp r5, #0
|
|
bne _08082B14
|
|
str r1, [r4, #0x50]
|
|
b _08082B18
|
|
.align 2, 0
|
|
_08082B10: .4byte gLinkState
|
|
_08082B14:
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [r1, #0x50]
|
|
_08082B18:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #6
|
|
bne _08082B36
|
|
movs r0, #3
|
|
strb r0, [r4, #0xd]
|
|
movs r0, #0x3c
|
|
strb r0, [r4, #0xe]
|
|
ldr r1, [r4, #0x50]
|
|
movs r0, #1
|
|
strb r0, [r1, #0xb]
|
|
adds r0, r4, #0
|
|
movs r1, #0x1c
|
|
bl LoadAnimation
|
|
b _08082B98
|
|
_08082B36:
|
|
ldr r1, _08082B58 @ =gUnk_0811F178
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl LoadAnimation
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #2
|
|
bls _08082B98
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
b _08082B98
|
|
.align 2, 0
|
|
_08082B58: .4byte gUnk_0811F178
|
|
_08082B5C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082B98
|
|
bl Random
|
|
movs r1, #3
|
|
ands r0, r1
|
|
strb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _08082B98
|
|
bl Random
|
|
movs r1, #1
|
|
ands r1, r0
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r4, #0x18]
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldrb r1, [r4, #0xe]
|
|
adds r1, #0x1b
|
|
adds r0, r4, #0
|
|
bl LoadAnimation
|
|
_08082B98:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082B9C
|
|
sub_08082B9C: @ 0x08082B9C
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
ldrb r1, [r6, #0x11]
|
|
movs r2, #0x10
|
|
rsbs r2, r2, #0
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x11]
|
|
ldr r5, _08082C34 @ =gLinkEntity
|
|
ldrb r0, [r5, #0x1a]
|
|
lsls r0, r0, #0x1c
|
|
lsrs r0, r0, #0x1c
|
|
ldrb r1, [r6, #0x1a]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
strb r2, [r6, #0x1a]
|
|
adds r0, r5, #0
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r6, #0
|
|
adds r0, #0x38
|
|
movs r4, #0
|
|
strb r1, [r0]
|
|
adds r2, r6, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x18
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r6, #0x18]
|
|
movs r0, #0x31
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #0x10
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x18]
|
|
movs r0, #1
|
|
strb r0, [r6, #0xc]
|
|
adds r0, r6, #0
|
|
movs r1, #1
|
|
movs r2, #3
|
|
bl sub_080AE008
|
|
adds r0, r6, #0
|
|
movs r1, #0xc
|
|
bl LoadAnimation
|
|
adds r0, r6, #0
|
|
adds r0, #0x82
|
|
strh r4, [r0]
|
|
adds r4, r6, #0
|
|
adds r4, #0x84
|
|
ldr r1, [r4]
|
|
adds r0, r6, #0
|
|
bl sub_0807DF74
|
|
ldr r1, [r4]
|
|
adds r0, r6, #0
|
|
bl sub_08082D20
|
|
ldrb r0, [r5, #0x14]
|
|
cmp r0, #2
|
|
bne _08082C2C
|
|
ldrb r0, [r6, #0x18]
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r6, #0x18]
|
|
_08082C2C:
|
|
adds r0, r6, #0
|
|
bl sub_08082C5C
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08082C34: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08082C38
|
|
sub_08082C38: @ 0x08082C38
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r5, #0
|
|
adds r4, #0x84
|
|
ldr r1, [r4]
|
|
bl sub_0807DF74
|
|
ldr r1, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_08082D20
|
|
ldrb r0, [r5, #0xc]
|
|
cmp r0, #1
|
|
bhi _08082C5A
|
|
adds r0, r5, #0
|
|
bl sub_08082C5C
|
|
_08082C5A:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08082C5C
|
|
sub_08082C5C: @ 0x08082C5C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xd]
|
|
cmp r0, #4
|
|
bhi _08082D0C
|
|
lsls r0, r0, #2
|
|
ldr r1, _08082C70 @ =_08082C74
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08082C70: .4byte _08082C74
|
|
_08082C74: @ jump table
|
|
.4byte _08082C88 @ case 0
|
|
.4byte _08082C9C @ case 1
|
|
.4byte _08082CB0 @ case 2
|
|
.4byte _08082CE4 @ case 3
|
|
.4byte _08082CF8 @ case 4
|
|
_08082C88:
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x17
|
|
beq _08082D0C
|
|
adds r0, r5, #0
|
|
movs r1, #0x17
|
|
bl LoadAnimation
|
|
b _08082D1C
|
|
_08082C9C:
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x18
|
|
beq _08082D0C
|
|
adds r0, r5, #0
|
|
movs r1, #0x18
|
|
bl LoadAnimation
|
|
b _08082D1C
|
|
_08082CB0:
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082D0C
|
|
bl Random
|
|
adds r4, r0, #0
|
|
bl Random
|
|
adds r1, r0, #0
|
|
ldr r2, _08082CE0 @ =gUnk_0811F18C
|
|
movs r0, #3
|
|
ands r4, r0
|
|
adds r4, r4, r2
|
|
ands r1, r0
|
|
ldrb r4, [r4]
|
|
adds r1, r1, r4
|
|
adds r0, r5, #0
|
|
bl LoadAnimation
|
|
b _08082D1C
|
|
.align 2, 0
|
|
_08082CE0: .4byte gUnk_0811F18C
|
|
_08082CE4:
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x13
|
|
beq _08082D0C
|
|
adds r0, r5, #0
|
|
movs r1, #0x13
|
|
bl LoadAnimation
|
|
b _08082D1C
|
|
_08082CF8:
|
|
adds r0, r5, #0
|
|
adds r0, #0x58
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x1a
|
|
beq _08082D0C
|
|
adds r0, r5, #0
|
|
movs r1, #0x1a
|
|
bl LoadAnimation
|
|
b _08082D1C
|
|
_08082D0C:
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
adds r0, r5, #0
|
|
bl sub_08003FC4
|
|
adds r0, r5, #0
|
|
bl sub_080042B8
|
|
_08082D1C:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082D20
|
|
sub_08082D20: @ 0x08082D20
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r3, r1, #0
|
|
ldr r0, [r3, #8]
|
|
cmp r0, #0
|
|
beq _08082E10
|
|
movs r6, #0
|
|
movs r5, #1
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
mov ip, r0
|
|
_08082D36:
|
|
ldr r1, [r3, #8]
|
|
mvns r0, r1
|
|
adds r2, r0, #1
|
|
ands r2, r1
|
|
eors r1, r2
|
|
str r1, [r3, #8]
|
|
cmp r2, #0x80
|
|
beq _08082DB4
|
|
cmp r2, #0x80
|
|
bhi _08082D66
|
|
cmp r2, #4
|
|
beq _08082D9E
|
|
cmp r2, #4
|
|
bhi _08082D5C
|
|
cmp r2, #1
|
|
beq _08082D96
|
|
cmp r2, #2
|
|
beq _08082D9A
|
|
b _08082E0A
|
|
_08082D5C:
|
|
cmp r2, #8
|
|
beq _08082DA4
|
|
cmp r2, #0x40
|
|
beq _08082DDA
|
|
b _08082E0A
|
|
_08082D66:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xd
|
|
cmp r2, r0
|
|
beq _08082DDE
|
|
cmp r2, r0
|
|
bhi _08082D84
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
cmp r2, r0
|
|
beq _08082DAA
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xa
|
|
cmp r2, r0
|
|
beq _08082DC0
|
|
b _08082E0A
|
|
_08082D84:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xe
|
|
cmp r2, r0
|
|
beq _08082DE6
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0xf
|
|
cmp r2, r0
|
|
beq _08082DF2
|
|
b _08082E0A
|
|
_08082D96:
|
|
strb r6, [r4, #0xd]
|
|
b _08082E0A
|
|
_08082D9A:
|
|
strb r5, [r4, #0xd]
|
|
b _08082E0A
|
|
_08082D9E:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
b _08082E0A
|
|
_08082DA4:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xd]
|
|
b _08082E0A
|
|
_08082DAA:
|
|
ldrb r0, [r4, #0x18]
|
|
mov r1, ip
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
b _08082E0A
|
|
_08082DB4:
|
|
ldrb r0, [r4, #0x18]
|
|
mov r7, ip
|
|
ands r0, r7
|
|
orrs r0, r5
|
|
strb r0, [r4, #0x18]
|
|
b _08082E0A
|
|
_08082DC0:
|
|
ldrb r0, [r4, #0x18]
|
|
lsls r1, r0, #0x19
|
|
lsrs r1, r1, #0x1f
|
|
eors r1, r5
|
|
ands r1, r5
|
|
lsls r1, r1, #6
|
|
movs r7, #0x41
|
|
rsbs r7, r7, #0
|
|
adds r2, r7, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
b _08082E0A
|
|
_08082DDA:
|
|
bl sub_0805E780
|
|
_08082DDE:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
strb r6, [r4, #0xd]
|
|
b _08082E10
|
|
_08082DE6:
|
|
movs r0, #4
|
|
strb r0, [r4, #0xd]
|
|
adds r1, r4, #0
|
|
adds r1, #0x62
|
|
strb r0, [r1]
|
|
b _08082E0A
|
|
_08082DF2:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
strb r6, [r4, #0xd]
|
|
adds r1, r4, #0
|
|
adds r1, #0x62
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
movs r1, #0x1b
|
|
bl LoadAnimation
|
|
b _08082E10
|
|
_08082E0A:
|
|
ldr r0, [r3, #8]
|
|
cmp r0, #0
|
|
bne _08082D36
|
|
_08082E10:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082E14
|
|
sub_08082E14: @ 0x08082E14
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x84
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_0807DF74
|
|
movs r1, #0xc0
|
|
lsls r1, r1, #5
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
beq _08082E38
|
|
cmp r0, #1
|
|
beq _08082E44
|
|
b _08082E5E
|
|
_08082E38:
|
|
ldr r0, [r4, #0x20]
|
|
cmp r0, #0
|
|
bge _08082E5E
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
b _08082E5E
|
|
_08082E44:
|
|
movs r0, #0x36
|
|
ldrsh r1, [r4, r0]
|
|
movs r0, #0xa
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
ble _08082E5E
|
|
ldr r0, _08082E68 @ =gUnk_02033280
|
|
ldr r1, [r0]
|
|
movs r2, #2
|
|
orrs r1, r2
|
|
str r1, [r0]
|
|
bl sub_0805E780
|
|
_08082E5E:
|
|
adds r0, r4, #0
|
|
bl sub_080042B8
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08082E68: .4byte gUnk_02033280
|
|
|
|
thumb_func_start sub_08082E6C
|
|
sub_08082E6C: @ 0x08082E6C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080042B8
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08082E98
|
|
movs r1, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
strb r1, [r4, #0xd]
|
|
adds r0, r4, #0
|
|
adds r0, #0x62
|
|
strb r1, [r0]
|
|
adds r0, r4, #0
|
|
movs r1, #0x17
|
|
bl LoadAnimation
|
|
_08082E98:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08082E9C
|
|
sub_08082E9C: @ 0x08082E9C
|
|
push {lr}
|
|
ldr r2, _08082EB0 @ =gUnk_0811F624
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08082EB0: .4byte gUnk_0811F624
|
|
|
|
thumb_func_start sub_08082EB4
|
|
sub_08082EB4: @ 0x08082EB4
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08082EE0 @ =gRoomControls
|
|
ldrb r1, [r0, #4]
|
|
adds r6, r0, #0
|
|
cmp r1, #0x11
|
|
bne _08082EF6
|
|
adds r0, r4, #0
|
|
bl sub_080AE068
|
|
ldr r1, _08082EE4 @ =0x000001C1
|
|
adds r0, r4, #0
|
|
bl sub_080ADF80
|
|
cmp r0, #0
|
|
bne _08082EE8
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x18]
|
|
b _0808308E
|
|
.align 2, 0
|
|
_08082EE0: .4byte gRoomControls
|
|
_08082EE4: .4byte 0x000001C1
|
|
_08082EE8:
|
|
ldrb r0, [r4, #0x18]
|
|
movs r1, #4
|
|
rsbs r1, r1, #0
|
|
ands r1, r0
|
|
movs r0, #1
|
|
orrs r1, r0
|
|
strb r1, [r4, #0x18]
|
|
_08082EF6:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x20
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x80
|
|
strh r0, [r4, #0x24]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
subs r0, #0x88
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r6, #6]
|
|
subs r0, r0, r1
|
|
asrs r5, r0, #4
|
|
movs r2, #0x3f
|
|
ands r5, r2
|
|
movs r1, #0x32
|
|
ldrsh r0, [r4, r1]
|
|
ldrh r1, [r6, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r2
|
|
lsls r0, r0, #6
|
|
orrs r5, r0
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #3
|
|
ldrh r0, [r4, #0x2e]
|
|
adds r0, r1, r0
|
|
strh r0, [r4, #0x2e]
|
|
ldrh r0, [r4, #0x32]
|
|
adds r1, r1, r0
|
|
strh r1, [r4, #0x32]
|
|
ldr r1, _08082F6C @ =gUnk_0811F64C
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r4, #0x48]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r5, #0
|
|
bl sub_080002B0
|
|
str r0, [r4, #0x68]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
beq _08082F7A
|
|
cmp r0, #1
|
|
bgt _08082F70
|
|
cmp r0, #0
|
|
beq _08082F76
|
|
b _08082FF0
|
|
.align 2, 0
|
|
_08082F6C: .4byte gUnk_0811F64C
|
|
_08082F70:
|
|
cmp r0, #2
|
|
beq _08082F9A
|
|
b _08082FF0
|
|
_08082F76:
|
|
adds r0, r5, #0
|
|
b _08082FE8
|
|
_08082F7A:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #1
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x40
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
b _08082FE8
|
|
_08082F9A:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #1
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #2
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x40
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x42
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x80
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x81
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x82
|
|
_08082FE8:
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
b _08083088
|
|
_08082FF0:
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #1
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #2
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #3
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x40
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x42
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x43
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x80
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x81
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x82
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0x83
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0xc0
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0xc1
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0xc2
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
adds r0, r5, #0
|
|
adds r0, #0xc3
|
|
adds r1, r4, #0
|
|
bl sub_080832D8
|
|
_08083088:
|
|
ldr r0, _08083090 @ =0x0000010F
|
|
bl sub_08004488
|
|
_0808308E:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08083090: .4byte 0x0000010F
|
|
|
|
thumb_func_start sub_08083094
|
|
sub_08083094: @ 0x08083094
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F69C
|
|
adds r0, r4, #0
|
|
bl sub_0800445C
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080830B4
|
|
adds r0, r4, #0
|
|
bl sub_080830B8
|
|
_080830B4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080830B8
|
|
sub_080830B8: @ 0x080830B8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sb
|
|
mov r6, r8
|
|
push {r6, r7}
|
|
mov sb, r0
|
|
ldrb r5, [r0, #0xa]
|
|
lsls r4, r5, #3
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r0, r1]
|
|
subs r0, r0, r4
|
|
ldr r3, _080830FC @ =gRoomControls
|
|
ldrh r1, [r3, #6]
|
|
subs r0, r0, r1
|
|
asrs r7, r0, #4
|
|
movs r2, #0x3f
|
|
ands r7, r2
|
|
mov r6, sb
|
|
movs r1, #0x32
|
|
ldrsh r0, [r6, r1]
|
|
subs r0, r0, r4
|
|
ldrh r1, [r3, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r2
|
|
lsls r0, r0, #6
|
|
orrs r7, r0
|
|
cmp r5, #1
|
|
beq _08083128
|
|
cmp r5, #1
|
|
bgt _08083100
|
|
cmp r5, #0
|
|
beq _08083106
|
|
b _080831EC
|
|
.align 2, 0
|
|
_080830FC: .4byte gRoomControls
|
|
_08083100:
|
|
cmp r5, #2
|
|
beq _08083160
|
|
b _080831EC
|
|
_08083106:
|
|
mov r0, sb
|
|
bl sub_0800442E
|
|
cmp r0, #0
|
|
beq _08083112
|
|
b _080832C0
|
|
_08083112:
|
|
ldr r0, _08083124 @ =0x00000365
|
|
mov r1, sb
|
|
adds r1, #0x38
|
|
ldrb r2, [r1]
|
|
adds r1, r7, #0
|
|
bl sub_0807B7D8
|
|
b _080832BA
|
|
.align 2, 0
|
|
_08083124: .4byte 0x00000365
|
|
_08083128:
|
|
mov r2, sb
|
|
ldr r0, [r2, #0x68]
|
|
mov r4, sb
|
|
adds r4, #0x38
|
|
ldrb r2, [r4]
|
|
adds r1, r7, #0
|
|
bl sub_0807B7D8
|
|
ldr r0, _08083158 @ =0x0000036F
|
|
adds r1, r7, #1
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
movs r0, #0xdc
|
|
lsls r0, r0, #2
|
|
adds r1, r7, #0
|
|
adds r1, #0x40
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _0808315C @ =0x00000371
|
|
adds r1, r7, #0
|
|
adds r1, #0x41
|
|
b _080831CA
|
|
.align 2, 0
|
|
_08083158: .4byte 0x0000036F
|
|
_0808315C: .4byte 0x00000371
|
|
_08083160:
|
|
mov r6, sb
|
|
ldr r0, [r6, #0x68]
|
|
mov r4, sb
|
|
adds r4, #0x38
|
|
ldrb r2, [r4]
|
|
adds r1, r7, #0
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831D4 @ =0x00000372
|
|
adds r1, r7, #1
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831D8 @ =0x0000036F
|
|
adds r1, r7, #2
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
movs r0, #0xdd
|
|
lsls r0, r0, #2
|
|
adds r1, r7, #0
|
|
adds r1, #0x40
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831DC @ =0x00000376
|
|
adds r1, r7, #0
|
|
adds r1, #0x41
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831E0 @ =0x00000375
|
|
adds r1, r7, #0
|
|
adds r1, #0x42
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
movs r0, #0xdc
|
|
lsls r0, r0, #2
|
|
adds r1, r7, #0
|
|
adds r1, #0x80
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831E4 @ =0x00000373
|
|
adds r1, r7, #0
|
|
adds r1, #0x81
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
ldr r0, _080831E8 @ =0x00000371
|
|
adds r1, r7, #0
|
|
adds r1, #0x82
|
|
_080831CA:
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
b _080832BA
|
|
.align 2, 0
|
|
_080831D4: .4byte 0x00000372
|
|
_080831D8: .4byte 0x0000036F
|
|
_080831DC: .4byte 0x00000376
|
|
_080831E0: .4byte 0x00000375
|
|
_080831E4: .4byte 0x00000373
|
|
_080831E8: .4byte 0x00000371
|
|
_080831EC:
|
|
mov r1, sb
|
|
ldr r0, [r1, #0x68]
|
|
mov r4, sb
|
|
adds r4, #0x38
|
|
ldrb r2, [r4]
|
|
adds r1, r7, #0
|
|
bl sub_0807B7D8
|
|
ldr r5, _080832C8 @ =0x00000372
|
|
adds r1, r7, #1
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #2
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
ldr r0, _080832CC @ =0x0000036F
|
|
adds r1, r7, #3
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
movs r2, #0xdd
|
|
lsls r2, r2, #2
|
|
mov r8, r2
|
|
adds r1, r7, #0
|
|
adds r1, #0x40
|
|
ldrb r2, [r4]
|
|
mov r0, r8
|
|
bl sub_0807B7D8
|
|
adds r5, #4
|
|
adds r1, r7, #0
|
|
adds r1, #0x41
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0x42
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
ldr r6, _080832D0 @ =0x00000375
|
|
adds r1, r7, #0
|
|
adds r1, #0x43
|
|
ldrb r2, [r4]
|
|
adds r0, r6, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0x80
|
|
ldrb r2, [r4]
|
|
mov r0, r8
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0x81
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0x82
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0x83
|
|
ldrb r2, [r4]
|
|
adds r0, r6, #0
|
|
bl sub_0807B7D8
|
|
movs r0, #0xdc
|
|
lsls r0, r0, #2
|
|
adds r1, r7, #0
|
|
adds r1, #0xc0
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
subs r5, #3
|
|
adds r1, r7, #0
|
|
adds r1, #0xc1
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
adds r1, r7, #0
|
|
adds r1, #0xc2
|
|
ldrb r2, [r4]
|
|
adds r0, r5, #0
|
|
bl sub_0807B7D8
|
|
ldr r0, _080832D4 @ =0x00000371
|
|
adds r1, r7, #0
|
|
adds r1, #0xc3
|
|
ldrb r2, [r4]
|
|
bl sub_0807B7D8
|
|
_080832BA:
|
|
mov r0, sb
|
|
bl sub_0805E7BC
|
|
_080832C0:
|
|
pop {r3, r4}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_080832C8: .4byte 0x00000372
|
|
_080832CC: .4byte 0x0000036F
|
|
_080832D0: .4byte 0x00000375
|
|
_080832D4: .4byte 0x00000371
|
|
|
|
thumb_func_start sub_080832D8
|
|
sub_080832D8: @ 0x080832D8
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
adds r2, r1, #0
|
|
adds r2, #0x38
|
|
ldrb r0, [r2]
|
|
cmp r0, #2
|
|
beq _080832FC
|
|
ldrb r1, [r1, #0x15]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080832F6
|
|
ldrb r2, [r2]
|
|
movs r0, #0x21
|
|
b _0808330A
|
|
_080832F6:
|
|
ldrb r2, [r2]
|
|
movs r0, #0x20
|
|
b _0808330A
|
|
_080832FC:
|
|
ldrb r1, [r1, #0x15]
|
|
movs r0, #8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08083312
|
|
ldrb r2, [r2]
|
|
movs r0, #0x2f
|
|
_0808330A:
|
|
adds r1, r3, #0
|
|
bl sub_0807B7D8
|
|
b _0808331C
|
|
_08083312:
|
|
ldrb r2, [r2]
|
|
movs r0, #0x2e
|
|
adds r1, r3, #0
|
|
bl sub_0807B7D8
|
|
_0808331C:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083320
|
|
sub_08083320: @ 0x08083320
|
|
push {lr}
|
|
ldr r2, _08083334 @ =gUnk_0811F65C
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083334: .4byte gUnk_0811F65C
|
|
|
|
thumb_func_start sub_08083338
|
|
sub_08083338: @ 0x08083338
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r4, r0, #0
|
|
adds r2, r4, #0
|
|
adds r2, #0x84
|
|
ldrh r1, [r2]
|
|
ldr r0, _08083400 @ =0x0000FFFF
|
|
cmp r1, r0
|
|
beq _08083356
|
|
adds r0, r1, #0
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08083356
|
|
bl sub_0805E780
|
|
_08083356:
|
|
adds r0, r4, #0
|
|
bl sub_080837B0
|
|
cmp r0, #0
|
|
bne _08083362
|
|
b _080834B2
|
|
_08083362:
|
|
ldrb r2, [r4, #0xa]
|
|
lsrs r0, r2, #2
|
|
movs r1, #3
|
|
ands r0, r1
|
|
strb r0, [r4, #0xb]
|
|
movs r7, #3
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
strb r0, [r4, #0x1e]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #2
|
|
strh r0, [r4, #0x24]
|
|
ldrh r1, [r4, #0x2e]
|
|
adds r0, r4, #0
|
|
adds r0, #0x70
|
|
strh r1, [r0]
|
|
ldrh r0, [r4, #0x32]
|
|
adds r1, r4, #0
|
|
adds r1, #0x72
|
|
strh r0, [r1]
|
|
ldrb r1, [r4, #0xa]
|
|
adds r0, r7, #0
|
|
ands r0, r1
|
|
adds r6, r4, #0
|
|
adds r6, #0x7e
|
|
strb r0, [r6]
|
|
ldr r0, _08083404 @ =gUnk_080FD170
|
|
str r0, [r4, #0x48]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #5
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
adds r1, r4, #0
|
|
adds r1, #0x5a
|
|
strb r0, [r1]
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _08083408 @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x76
|
|
strh r1, [r5]
|
|
ldrh r0, [r5]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_080001DA
|
|
adds r1, r4, #0
|
|
adds r1, #0x74
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #1
|
|
beq _08083438
|
|
cmp r0, #1
|
|
bgt _0808340C
|
|
cmp r0, #0
|
|
beq _08083412
|
|
b _080834AE
|
|
.align 2, 0
|
|
_08083400: .4byte 0x0000FFFF
|
|
_08083404: .4byte gUnk_080FD170
|
|
_08083408: .4byte gRoomControls
|
|
_0808340C:
|
|
cmp r0, #2
|
|
beq _08083456
|
|
b _080834AE
|
|
_08083412:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _0808342E
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808344E
|
|
strb r7, [r4, #0xc]
|
|
b _080834B2
|
|
_0808342E:
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #0xef
|
|
ands r0, r1
|
|
strb r0, [r4, #0xa]
|
|
b _08083446
|
|
_08083438:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _0808344E
|
|
_08083446:
|
|
adds r0, r4, #0
|
|
bl sub_08083638
|
|
b _080834B2
|
|
_0808344E:
|
|
adds r0, r4, #0
|
|
bl sub_080836A0
|
|
b _080834B2
|
|
_08083456:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _080834A8
|
|
ldrb r0, [r4, #0x1e]
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1e]
|
|
ldrb r1, [r6]
|
|
ldrh r2, [r5]
|
|
adds r0, r4, #0
|
|
bl sub_080836DC
|
|
bl sub_08052660
|
|
cmp r0, #0
|
|
bne _08083484
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
b _080834B2
|
|
_08083484:
|
|
movs r0, #8
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_080787CC
|
|
ldr r1, _080834A4 @ =gUnk_0811F740
|
|
ldrb r0, [r6]
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0]
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r3, #0
|
|
bl sub_08078850
|
|
b _080834B2
|
|
.align 2, 0
|
|
_080834A4: .4byte gUnk_0811F740
|
|
_080834A8:
|
|
bl sub_0805E780
|
|
b _080834B2
|
|
_080834AE:
|
|
bl sub_0805E780
|
|
_080834B2:
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_080834B4
|
|
sub_080834B4: @ 0x080834B4
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r2, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080834E6
|
|
movs r0, #2
|
|
strb r0, [r2, #0xc]
|
|
movs r0, #7
|
|
strb r0, [r2, #0xe]
|
|
adds r0, r2, #0
|
|
adds r0, #0x74
|
|
ldrh r0, [r0]
|
|
adds r1, r2, #0
|
|
adds r1, #0x76
|
|
ldrh r1, [r1]
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
ldr r0, _080834E8 @ =0x0000010B
|
|
bl sub_08004488
|
|
_080834E6:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080834E8: .4byte 0x0000010B
|
|
|
|
thumb_func_start sub_080834EC
|
|
sub_080834EC: @ 0x080834EC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F69C
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08083516
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08083512
|
|
adds r0, r4, #0
|
|
bl sub_08083638
|
|
b _08083516
|
|
_08083512:
|
|
bl sub_0805E780
|
|
_08083516:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08083518
|
|
sub_08083518: @ 0x08083518
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r4, #0
|
|
adds r5, #0x7e
|
|
ldrb r1, [r5]
|
|
bl sub_08083734
|
|
cmp r0, #0
|
|
beq _0808353C
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r5]
|
|
adds r0, r4, #0
|
|
adds r0, #0x76
|
|
ldrh r2, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_080836DC
|
|
_0808353C:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083540
|
|
sub_08083540: @ 0x08083540
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F69C
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0808358C
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08083566
|
|
movs r0, #0xef
|
|
ands r0, r1
|
|
strb r0, [r4, #0xa]
|
|
b _0808356E
|
|
_08083566:
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08083576
|
|
_0808356E:
|
|
adds r0, r4, #0
|
|
bl sub_080836A0
|
|
b _0808357A
|
|
_08083576:
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
_0808357A:
|
|
adds r0, r4, #0
|
|
adds r0, #0x7e
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
bl sub_08083814
|
|
ldr r0, _08083590 @ =0x0000010B
|
|
bl sub_08004488
|
|
_0808358C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083590: .4byte 0x0000010B
|
|
|
|
thumb_func_start nullsub_513
|
|
nullsub_513: @ 0x08083594
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083598
|
|
sub_08083598: @ 0x08083598
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0
|
|
bne _080835B2
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _080835C6
|
|
b _080835C0
|
|
_080835B2:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _080835C6
|
|
_080835C0:
|
|
adds r0, r4, #0
|
|
bl sub_08083658
|
|
_080835C6:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080835C8
|
|
sub_080835C8: @ 0x080835C8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0
|
|
bne _080835E2
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _080835F4
|
|
b _080835F0
|
|
_080835E2:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _080835F4
|
|
_080835F0:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
_080835F4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080835F8
|
|
sub_080835F8: @ 0x080835F8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x39
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08083616
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08083636
|
|
_08083616:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x14
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
bl sub_08083658
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
bl sub_080526F8
|
|
_08083636:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08083638
|
|
sub_08083638: @ 0x08083638
|
|
adds r2, r0, #0
|
|
movs r0, #7
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
subs r0, #0xb
|
|
ands r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, #0x2e]
|
|
adds r0, r2, #0
|
|
adds r0, #0x72
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, #0x32]
|
|
bx lr
|
|
|
|
thumb_func_start sub_08083658
|
|
sub_08083658: @ 0x08083658
|
|
push {lr}
|
|
movs r1, #1
|
|
strb r1, [r0, #0xc]
|
|
movs r1, #0x14
|
|
strb r1, [r0, #0xe]
|
|
adds r2, r0, #0
|
|
adds r2, #0x7e
|
|
ldrb r1, [r2]
|
|
lsls r1, r1, #3
|
|
strb r1, [r0, #0x15]
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #1
|
|
ldr r1, _08083698 @ =gUnk_0811F680
|
|
adds r2, r2, r1
|
|
movs r1, #0
|
|
ldrsb r1, [r2, r1]
|
|
ldrh r3, [r0, #0x2e]
|
|
adds r1, r1, r3
|
|
strh r1, [r0, #0x2e]
|
|
movs r1, #1
|
|
ldrsb r1, [r2, r1]
|
|
ldrh r2, [r0, #0x32]
|
|
adds r1, r1, r2
|
|
strh r1, [r0, #0x32]
|
|
movs r1, #0x3c
|
|
bl sub_0805E4E0
|
|
ldr r0, _0808369C @ =0x0000010B
|
|
bl PlaySFX
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083698: .4byte gUnk_0811F680
|
|
_0808369C: .4byte 0x0000010B
|
|
|
|
thumb_func_start sub_080836A0
|
|
sub_080836A0: @ 0x080836A0
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
movs r0, #6
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x18]
|
|
subs r0, #0xa
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x18]
|
|
adds r0, r2, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, #0x2e]
|
|
adds r0, r2, #0
|
|
adds r0, #0x72
|
|
ldrh r0, [r0]
|
|
strh r0, [r2, #0x32]
|
|
ldr r0, _080836D8 @ =0x00004022
|
|
adds r1, r2, #0
|
|
adds r1, #0x76
|
|
ldrh r1, [r1]
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080836D8: .4byte 0x00004022
|
|
|
|
thumb_func_start sub_080836DC
|
|
sub_080836DC: @ 0x080836DC
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
adds r4, r1, #0
|
|
adds r1, r2, #0
|
|
ldr r0, _0808372C @ =0x00004022
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
movs r0, #7
|
|
strb r0, [r5, #0xe]
|
|
ldrb r1, [r5, #0x18]
|
|
subs r0, #0xb
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x18]
|
|
lsls r0, r4, #3
|
|
movs r1, #0x10
|
|
eors r0, r1
|
|
strb r0, [r5, #0x15]
|
|
lsls r4, r4, #1
|
|
ldr r0, _08083730 @ =gUnk_0811F688
|
|
adds r4, r4, r0
|
|
ldrb r0, [r5, #0xb]
|
|
cmp r0, #2
|
|
beq _08083728
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r5, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r5, #0x2e]
|
|
movs r0, #1
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r5, #0x32]
|
|
adds r0, r0, r1
|
|
strh r0, [r5, #0x32]
|
|
_08083728:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0808372C: .4byte 0x00004022
|
|
_08083730: .4byte gUnk_0811F688
|
|
|
|
thumb_func_start sub_08083734
|
|
sub_08083734: @ 0x08083734
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
cmp r1, #1
|
|
beq _08083760
|
|
cmp r1, #1
|
|
blo _0808374A
|
|
cmp r1, #2
|
|
beq _08083774
|
|
cmp r1, #3
|
|
beq _08083790
|
|
b _080837AC
|
|
_0808374A:
|
|
adds r0, r2, #0
|
|
adds r0, #0x72
|
|
ldrh r1, [r0]
|
|
ldr r0, _0808375C @ =gLinkEntity
|
|
movs r2, #0x32
|
|
ldrsh r0, [r0, r2]
|
|
subs r0, #0xd
|
|
b _0808379E
|
|
.align 2, 0
|
|
_0808375C: .4byte gLinkEntity
|
|
_08083760:
|
|
ldr r0, _08083770 @ =gLinkEntity
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, #0xb
|
|
adds r1, r2, #0
|
|
adds r1, #0x70
|
|
b _08083780
|
|
.align 2, 0
|
|
_08083770: .4byte gLinkEntity
|
|
_08083774:
|
|
ldr r0, _0808378C @ =gLinkEntity
|
|
movs r1, #0x32
|
|
ldrsh r0, [r0, r1]
|
|
adds r0, #8
|
|
adds r1, r2, #0
|
|
adds r1, #0x72
|
|
_08083780:
|
|
ldrh r1, [r1]
|
|
subs r0, r0, r1
|
|
cmp r0, #0
|
|
bge _080837AC
|
|
movs r0, #1
|
|
b _080837AE
|
|
.align 2, 0
|
|
_0808378C: .4byte gLinkEntity
|
|
_08083790:
|
|
adds r0, r2, #0
|
|
adds r0, #0x70
|
|
ldrh r1, [r0]
|
|
ldr r0, _080837A8 @ =gLinkEntity
|
|
movs r2, #0x2e
|
|
ldrsh r0, [r0, r2]
|
|
subs r0, #0xa
|
|
_0808379E:
|
|
subs r1, r1, r0
|
|
cmp r1, #0
|
|
bge _080837AC
|
|
movs r0, #1
|
|
b _080837AE
|
|
.align 2, 0
|
|
_080837A8: .4byte gLinkEntity
|
|
_080837AC:
|
|
movs r0, #0
|
|
_080837AE:
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_080837B0
|
|
sub_080837B0: @ 0x080837B0
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _080837C8 @ =gRoomControls
|
|
ldrb r2, [r0, #4]
|
|
cmp r2, #0x3f
|
|
bhi _080837DC
|
|
cmp r2, #0x25
|
|
beq _080837CC
|
|
cmp r2, #0x35
|
|
beq _080837D4
|
|
movs r5, #0xa
|
|
b _080837E8
|
|
.align 2, 0
|
|
_080837C8: .4byte gRoomControls
|
|
_080837CC:
|
|
ldr r5, _080837D0 @ =0x000001E7
|
|
b _080837E8
|
|
.align 2, 0
|
|
_080837D0: .4byte 0x000001E7
|
|
_080837D4:
|
|
ldr r5, _080837D8 @ =0x000001C3
|
|
b _080837E8
|
|
.align 2, 0
|
|
_080837D8: .4byte 0x000001C3
|
|
_080837DC:
|
|
ldr r1, _080837F8 @ =gUnk_0811F690
|
|
adds r0, r2, #0
|
|
subs r0, #0x40
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r5, [r0]
|
|
_080837E8:
|
|
cmp r2, #0x68
|
|
bne _080837FC
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_0801D2B4
|
|
b _08083808
|
|
.align 2, 0
|
|
_080837F8: .4byte gUnk_0811F690
|
|
_080837FC:
|
|
cmp r2, #0x88
|
|
bne _08083808
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl sub_0801D2B4
|
|
_08083808:
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_080ADF80
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083814
|
|
sub_08083814: @ 0x08083814
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
lsls r1, r1, #2
|
|
ldr r0, _08083868 @ =gUnk_0811F730
|
|
adds r4, r1, r0
|
|
adds r0, r5, #0
|
|
movs r1, #0x11
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _08083842
|
|
movs r0, #0
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r2, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x2e]
|
|
movs r0, #1
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r2, #0x32]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x32]
|
|
_08083842:
|
|
adds r0, r5, #0
|
|
movs r1, #0x11
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _08083866
|
|
movs r0, #2
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r2, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x2e]
|
|
movs r0, #3
|
|
ldrsb r0, [r4, r0]
|
|
ldrh r1, [r2, #0x32]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x32]
|
|
_08083866:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08083868: .4byte gUnk_0811F730
|
|
|
|
thumb_func_start sub_0808386C
|
|
sub_0808386C: @ 0x0808386C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _080838C8 @ =gLinkState
|
|
adds r0, #0x27
|
|
ldrb r1, [r0]
|
|
rsbs r0, r1, #0
|
|
orrs r0, r1
|
|
lsrs r2, r0, #0x1f
|
|
ldr r0, _080838CC @ =gUnk_02022740
|
|
ldrb r0, [r0]
|
|
cmp r0, #2
|
|
bgt _08083894
|
|
cmp r0, #0
|
|
blt _08083894
|
|
ldr r0, _080838D0 @ =gTextBox
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080838AC
|
|
_08083894:
|
|
ldr r0, _080838D4 @ =gUnk_03003DF0
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #3]
|
|
cmp r0, #0x32
|
|
bne _080838AA
|
|
movs r0, #0x32
|
|
bl sub_0801E7F4
|
|
movs r2, #0
|
|
cmp r0, #0
|
|
beq _080838AC
|
|
_080838AA:
|
|
movs r2, #1
|
|
_080838AC:
|
|
cmp r2, #0
|
|
beq _080838B6
|
|
adds r0, r4, #0
|
|
bl sub_080838DC
|
|
_080838B6:
|
|
ldr r0, _080838D8 @ =gUnk_0811F754
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080838C8: .4byte gLinkState
|
|
_080838CC: .4byte gUnk_02022740
|
|
_080838D0: .4byte gTextBox
|
|
_080838D4: .4byte gUnk_03003DF0
|
|
_080838D8: .4byte gUnk_0811F754
|
|
|
|
thumb_func_start sub_080838DC
|
|
sub_080838DC: @ 0x080838DC
|
|
ldrb r2, [r0, #0x18]
|
|
movs r1, #4
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
strb r1, [r0, #0x18]
|
|
ldrb r2, [r0, #0x1b]
|
|
movs r3, #0x3f
|
|
adds r1, r3, #0
|
|
ands r1, r2
|
|
movs r2, #0x40
|
|
orrs r1, r2
|
|
strb r1, [r0, #0x1b]
|
|
ldrb r1, [r0, #0x19]
|
|
ands r3, r1
|
|
strb r3, [r0, #0x19]
|
|
adds r3, r0, #0
|
|
adds r3, #0x29
|
|
ldrb r2, [r3]
|
|
movs r1, #8
|
|
rsbs r1, r1, #0
|
|
ands r1, r2
|
|
strb r1, [r3]
|
|
movs r2, #0
|
|
movs r1, #4
|
|
strb r1, [r0, #0xe]
|
|
str r2, [r0, #0x54]
|
|
strb r2, [r0, #0xc]
|
|
bx lr
|
|
|
|
thumb_func_start sub_08083914
|
|
sub_08083914: @ 0x08083914
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x26
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
beq _08083942
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #1
|
|
bl sub_080AE008
|
|
adds r0, r4, #0
|
|
adds r0, #0x60
|
|
ldrh r1, [r0]
|
|
subs r1, #0x10
|
|
strh r1, [r0]
|
|
ldr r1, _08083958 @ =0x01027820
|
|
movs r0, #1
|
|
bl sub_080ADDD8
|
|
adds r0, r4, #0
|
|
bl sub_080838DC
|
|
_08083942:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r0, r4, #0
|
|
movs r1, #6
|
|
bl sub_0805E3A0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083958: .4byte 0x01027820
|
|
|
|
thumb_func_start sub_0808395C
|
|
sub_0808395C: @ 0x0808395C
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r0, [r2, #0xe]
|
|
cmp r0, #0
|
|
beq _0808396C
|
|
subs r0, #1
|
|
strb r0, [r2, #0xe]
|
|
b _08083992
|
|
_0808396C:
|
|
ldr r3, _08083994 @ =gUnk_03003DF0
|
|
ldr r0, [r3, #4]
|
|
ldr r1, [r0, #8]
|
|
cmp r1, #0
|
|
beq _08083992
|
|
ldrb r0, [r0, #3]
|
|
subs r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x63
|
|
bhi _08083992
|
|
str r1, [r2, #0x54]
|
|
ldrb r0, [r3, #3]
|
|
adds r1, r2, #0
|
|
adds r1, #0x39
|
|
strb r0, [r1]
|
|
adds r0, r2, #0
|
|
bl sub_08083A40
|
|
_08083992:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083994: .4byte gUnk_03003DF0
|
|
|
|
thumb_func_start sub_08083998
|
|
sub_08083998: @ 0x08083998
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
beq _080839C8
|
|
ldr r0, _080839C4 @ =gUnk_03003DF0
|
|
ldr r2, [r0, #4]
|
|
ldrb r0, [r2, #3]
|
|
subs r0, #1
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x63
|
|
bhi _080839BA
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, [r2, #8]
|
|
cmp r1, r0
|
|
beq _080839C8
|
|
_080839BA:
|
|
adds r0, r4, #0
|
|
bl sub_080838DC
|
|
b _08083A32
|
|
.align 2, 0
|
|
_080839C4: .4byte gUnk_03003DF0
|
|
_080839C8:
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, [r1, #0x2c]
|
|
str r0, [r4, #0x2c]
|
|
ldr r0, [r1, #0x30]
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r1, #0x34]
|
|
str r0, [r4, #0x34]
|
|
adds r1, r4, #0
|
|
adds r1, #0x5a
|
|
ldrb r0, [r1]
|
|
cmp r0, #1
|
|
bne _08083A2C
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _080839F8
|
|
ldr r0, _080839F4 @ =gUnk_03003DF0
|
|
ldr r0, [r0, #4]
|
|
ldrb r0, [r0, #3]
|
|
b _080839FA
|
|
.align 2, 0
|
|
_080839F4: .4byte gUnk_03003DF0
|
|
_080839F8:
|
|
ldrb r0, [r4, #0xb]
|
|
_080839FA:
|
|
lsls r0, r0, #3
|
|
ldr r1, _08083A34 @ =gUnk_080C9CBC
|
|
adds r0, r0, r1
|
|
ldrb r2, [r0, #6]
|
|
movs r1, #1
|
|
ands r1, r2
|
|
ldrb r3, [r4, #0x1a]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1a]
|
|
ldr r0, _08083A38 @ =gUnk_0811F744
|
|
lsls r2, r2, #2
|
|
adds r2, r2, r0
|
|
ldr r1, [r2]
|
|
lsrs r2, r1, #0x1f
|
|
ldr r0, _08083A3C @ =0x00FFFFFF
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
adds r0, #1
|
|
orrs r1, r0
|
|
movs r0, #0
|
|
bl sub_080ADDD8
|
|
_08083A2C:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_08083A32:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083A34: .4byte gUnk_080C9CBC
|
|
_08083A38: .4byte gUnk_0811F744
|
|
_08083A3C: .4byte 0x00FFFFFF
|
|
|
|
thumb_func_start sub_08083A40
|
|
sub_08083A40: @ 0x08083A40
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
ldr r0, [r4, #0x54]
|
|
ldr r1, _08083A70 @ =gLinkEntity
|
|
movs r3, #0x2e
|
|
ldrsh r2, [r0, r3]
|
|
movs r3, #0x2e
|
|
ldrsh r0, [r1, r3]
|
|
cmp r2, r0
|
|
ble _08083A74
|
|
movs r1, #0
|
|
adds r2, r4, #0
|
|
adds r2, #0x62
|
|
movs r0, #8
|
|
b _08083A7C
|
|
.align 2, 0
|
|
_08083A70: .4byte gLinkEntity
|
|
_08083A74:
|
|
movs r1, #1
|
|
adds r2, r4, #0
|
|
adds r2, #0x62
|
|
movs r0, #0xf8
|
|
_08083A7C:
|
|
strb r0, [r2]
|
|
adds r2, r4, #0
|
|
adds r2, #0x63
|
|
movs r0, #0xee
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
bl UpdateSprite
|
|
adds r0, r4, #0
|
|
bl sub_08083998
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08083A94
|
|
sub_08083A94: @ 0x08083A94
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r6, r0, #0
|
|
ldrb r0, [r6, #0xc]
|
|
cmp r0, #0
|
|
bne _08083B24
|
|
movs r0, #1
|
|
mov r8, r0
|
|
mov r2, r8
|
|
strb r2, [r6, #0xc]
|
|
ldr r0, _08083B10 @ =gUnk_080FD170
|
|
str r0, [r6, #0x48]
|
|
adds r7, r6, #0
|
|
adds r7, #0x38
|
|
ldrb r0, [r7]
|
|
movs r1, #0x34
|
|
cmp r0, #1
|
|
bne _08083ABC
|
|
movs r1, #0x26
|
|
_08083ABC:
|
|
adds r4, r6, #0
|
|
adds r4, #0x70
|
|
strh r1, [r4]
|
|
adds r0, r6, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08083B1C
|
|
ldrh r0, [r4]
|
|
movs r3, #0x2e
|
|
ldrsh r1, [r6, r3]
|
|
ldr r5, _08083B14 @ =gRoomControls
|
|
ldrh r2, [r5, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r3, #0x32
|
|
ldrsh r2, [r6, r3]
|
|
ldrh r3, [r5, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
ldrb r2, [r7]
|
|
bl sub_0807B314
|
|
ldrh r1, [r5]
|
|
mov r0, r8
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08083B08
|
|
ldr r1, _08083B18 @ =gUnk_02000070
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
_08083B08:
|
|
bl sub_0805E780
|
|
b _08083B7E
|
|
.align 2, 0
|
|
_08083B10: .4byte gUnk_080FD170
|
|
_08083B14: .4byte gRoomControls
|
|
_08083B18: .4byte gUnk_02000070
|
|
_08083B1C:
|
|
adds r0, r6, #0
|
|
bl sub_080787CC
|
|
b _08083B7E
|
|
_08083B24:
|
|
adds r0, r6, #0
|
|
adds r0, #0x39
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08083B7E
|
|
adds r0, r6, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
movs r5, #0x2e
|
|
ldrsh r1, [r6, r5]
|
|
ldr r3, _08083B84 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r5, #0x32
|
|
ldrsh r2, [r6, r5]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r6, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_0807B314
|
|
adds r0, r6, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
adds r0, r6, #0
|
|
bl sub_080A29BC
|
|
movs r0, #1
|
|
rsbs r0, r0, #0
|
|
bl sub_080526F8
|
|
bl sub_0805E780
|
|
_08083B7E:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08083B84: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08083B88
|
|
sub_08083B88: @ 0x08083B88
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08083BDC @ =gUnk_0811F7D8
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
ldr r0, [r4, #0x50]
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
lsrs r1, r1, #6
|
|
movs r0, #1
|
|
ands r1, r0
|
|
ldrb r2, [r4, #0x18]
|
|
subs r0, #5
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
bl sub_08080CB4
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #0x39
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r4, #0x1b]
|
|
movs r2, #0x3f
|
|
adds r0, r2, #0
|
|
ands r0, r1
|
|
movs r1, #0x40
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
ldrb r0, [r4, #0x19]
|
|
ands r2, r0
|
|
strb r2, [r4, #0x19]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083BDC: .4byte gUnk_0811F7D8
|
|
|
|
thumb_func_start sub_08083BE0
|
|
sub_08083BE0: @ 0x08083BE0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r1, #6
|
|
bl sub_0805E3A0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08083BF0
|
|
sub_08083BF0: @ 0x08083BF0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x50]
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x41
|
|
bne _08083C98
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #5
|
|
bhi _08083C98
|
|
lsls r0, r0, #2
|
|
ldr r1, _08083C14 @ =_08083C18
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08083C14: .4byte _08083C18
|
|
_08083C18: @ jump table
|
|
.4byte _08083C30 @ case 0
|
|
.4byte _08083C30 @ case 1
|
|
.4byte _08083C4A @ case 2
|
|
.4byte _08083C98 @ case 3
|
|
.4byte _08083C98 @ case 4
|
|
.4byte _08083C74 @ case 5
|
|
_08083C30:
|
|
ldrb r0, [r4, #0xa]
|
|
ldrb r1, [r4, #0xb]
|
|
bl sub_08053FF0
|
|
adds r1, r4, #0
|
|
adds r1, #0x68
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x43
|
|
bgt _08083C62
|
|
cmp r0, #0x40
|
|
bge _08083C98
|
|
b _08083C62
|
|
_08083C4A:
|
|
ldrb r0, [r4, #0xa]
|
|
ldrb r1, [r4, #0xb]
|
|
bl sub_08053FF0
|
|
ldr r1, _08083C6C @ =gUnk_080FD964
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r0, r0, #3
|
|
adds r0, r0, r1
|
|
ldrh r1, [r0, #6]
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strh r1, [r0]
|
|
_08083C62:
|
|
ldr r0, _08083C70 @ =0x00000109
|
|
bl PlaySFX
|
|
b _08083C98
|
|
.align 2, 0
|
|
_08083C6C: .4byte gUnk_080FD964
|
|
_08083C70: .4byte 0x00000109
|
|
_08083C74:
|
|
ldrb r0, [r4, #0xa]
|
|
bl GetInventoryValue
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #3
|
|
ldr r2, _08083C8C @ =gUnk_080FD5B4
|
|
adds r1, r1, r2
|
|
cmp r0, #0
|
|
bne _08083C90
|
|
ldrh r1, [r1, #4]
|
|
b _08083C92
|
|
.align 2, 0
|
|
_08083C8C: .4byte gUnk_080FD5B4
|
|
_08083C90:
|
|
ldrh r1, [r1, #6]
|
|
_08083C92:
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
strh r1, [r0]
|
|
_08083C98:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083C9C
|
|
sub_08083C9C: @ 0x08083C9C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x50]
|
|
adds r0, #0x5a
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x42
|
|
bne _08083D22
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #5
|
|
bhi _08083D22
|
|
lsls r0, r0, #2
|
|
ldr r1, _08083CC0 @ =_08083CC4
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08083CC0: .4byte _08083CC4
|
|
_08083CC4: @ jump table
|
|
.4byte _08083CDC @ case 0
|
|
.4byte _08083D22 @ case 1
|
|
.4byte _08083CDC @ case 2
|
|
.4byte _08083D22 @ case 3
|
|
.4byte _08083D22 @ case 4
|
|
.4byte _08083CDC @ case 5
|
|
_08083CDC:
|
|
adds r0, r4, #0
|
|
adds r0, #0x68
|
|
ldrh r1, [r0]
|
|
cmp r1, #0
|
|
beq _08083D22
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x3f
|
|
beq _08083D00
|
|
cmp r0, #0x63
|
|
bne _08083D16
|
|
ldr r0, _08083CFC @ =gUnk_02002A40
|
|
adds r0, #0xa9
|
|
ldrb r0, [r0]
|
|
adds r1, r1, r0
|
|
b _08083D16
|
|
.align 2, 0
|
|
_08083CFC: .4byte gUnk_02002A40
|
|
_08083D00:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #1
|
|
bls _08083D16
|
|
ldr r0, _08083D10 @ =0x00000577
|
|
cmp r1, r0
|
|
bne _08083D14
|
|
subs r1, #1
|
|
b _08083D16
|
|
.align 2, 0
|
|
_08083D10: .4byte 0x00000577
|
|
_08083D14:
|
|
adds r1, #1
|
|
_08083D16:
|
|
adds r0, r1, #0
|
|
bl TextboxTryNoOverlap
|
|
ldr r1, _08083D24 @ =gTextBox
|
|
ldrb r0, [r4, #0xb]
|
|
str r0, [r1, #0x10]
|
|
_08083D22:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083D24: .4byte gTextBox
|
|
|
|
thumb_func_start sub_08083D28
|
|
sub_08083D28: @ 0x08083D28
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x50]
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #8
|
|
beq _08083DD4
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #5
|
|
bhi _08083DD0
|
|
lsls r0, r0, #2
|
|
ldr r1, _08083D44 @ =_08083D48
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
mov pc, r0
|
|
.align 2, 0
|
|
_08083D44: .4byte _08083D48
|
|
_08083D48: @ jump table
|
|
.4byte _08083D60 @ case 0
|
|
.4byte _08083D60 @ case 1
|
|
.4byte _08083D60 @ case 2
|
|
.4byte _08083DAC @ case 3
|
|
.4byte _08083DD0 @ case 4
|
|
.4byte _08083DD0 @ case 5
|
|
_08083D60:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0x62
|
|
beq _08083D88
|
|
cmp r0, #0x63
|
|
bne _08083DD0
|
|
movs r0, #0xa0
|
|
bl ModHealth
|
|
ldr r0, _08083DA8 @ =gUnk_02002A40
|
|
adds r1, r0, #0
|
|
adds r1, #0xa9
|
|
ldrb r0, [r1]
|
|
adds r0, #1
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #3
|
|
bls _08083DD0
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
_08083D88:
|
|
ldr r0, _08083DA8 @ =gUnk_02002A40
|
|
adds r1, r0, #0
|
|
adds r1, #0xab
|
|
ldrb r0, [r1]
|
|
adds r0, #8
|
|
strb r0, [r1]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xa0
|
|
bls _08083DA0
|
|
movs r0, #0xa0
|
|
strb r0, [r1]
|
|
_08083DA0:
|
|
movs r0, #0xa0
|
|
bl ModHealth
|
|
b _08083DD0
|
|
.align 2, 0
|
|
_08083DA8: .4byte gUnk_02002A40
|
|
_08083DAC:
|
|
ldrb r0, [r4, #0xa]
|
|
bl sub_080544DC
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _08083DC8
|
|
ldr r0, _08083DC4 @ =gUnk_02002A40
|
|
adds r0, r0, r1
|
|
adds r0, #0xb5
|
|
movs r1, #0x20
|
|
strb r1, [r0]
|
|
b _08083DD0
|
|
.align 2, 0
|
|
_08083DC4: .4byte gUnk_02002A40
|
|
_08083DC8:
|
|
ldrb r0, [r4, #0xa]
|
|
movs r1, #2
|
|
bl sub_0807CAA0
|
|
_08083DD0:
|
|
bl sub_0805E780
|
|
_08083DD4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083DD8
|
|
sub_08083DD8: @ 0x08083DD8
|
|
push {lr}
|
|
ldr r2, _08083DEC @ =gUnk_0811F7E8
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083DEC: .4byte gUnk_0811F7E8
|
|
|
|
thumb_func_start sub_08083DF0
|
|
sub_08083DF0: @ 0x08083DF0
|
|
push {lr}
|
|
ldr r2, _08083E04 @ =gUnk_0811F808
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083E04: .4byte gUnk_0811F808
|
|
|
|
thumb_func_start sub_08083E08
|
|
sub_08083E08: @ 0x08083E08
|
|
push {lr}
|
|
ldr r2, _08083E1C @ =gUnk_0811F818
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08083E1C: .4byte gUnk_0811F818
|
|
|
|
thumb_func_start sub_08083E20
|
|
sub_08083E20: @ 0x08083E20
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #7
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldrb r1, [r4, #0x19]
|
|
movs r0, #0xd
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r0, r4, #0
|
|
bl sub_080842D8
|
|
adds r0, r4, #0
|
|
bl sub_08078828
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08083E4C
|
|
sub_08083E4C: @ 0x08083E4C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08083E80 @ =gUnk_0811F8B0
|
|
str r0, [r4, #0x48]
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _08083E84
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
bl sub_080842D8
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
bl UpdateSprite
|
|
b _08083EAC
|
|
.align 2, 0
|
|
_08083E80: .4byte gUnk_0811F8B0
|
|
_08083E84:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _08083E98
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #4
|
|
bne _08083EA0
|
|
_08083E98:
|
|
adds r0, r4, #0
|
|
bl sub_08083E20
|
|
b _08083EA4
|
|
_08083EA0:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
_08083EA4:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl UpdateSprite
|
|
_08083EAC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08083EB0
|
|
sub_08083EB0: @ 0x08083EB0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08083F0A
|
|
ldr r1, _08083F0C @ =gScreen
|
|
adds r2, r1, #0
|
|
adds r2, #0x66
|
|
movs r3, #0
|
|
movs r0, #0xf4
|
|
lsls r0, r0, #4
|
|
strh r0, [r2]
|
|
adds r1, #0x68
|
|
adds r0, #0xc0
|
|
strh r0, [r1]
|
|
ldr r1, _08083F10 @ =gUnk_02034490
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
strb r3, [r4, #0xd]
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xf]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #0x22
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r1, [r4, #0x19]
|
|
movs r0, #0xd
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r0, r4, #0
|
|
movs r1, #0x1e
|
|
bl sub_0805E4E0
|
|
bl sub_0805BC4C
|
|
_08083F0A:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08083F0C: .4byte gScreen
|
|
_08083F10: .4byte gUnk_02034490
|
|
|
|
thumb_func_start sub_08083F14
|
|
sub_08083F14: @ 0x08083F14
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x1e
|
|
bl sub_0805E510
|
|
ldrb r0, [r4, #0xd]
|
|
cmp r0, #0
|
|
beq _08083F78
|
|
cmp r0, #1
|
|
beq _08083FA4
|
|
adds r0, r4, #0
|
|
bl sub_0800445C
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
movs r2, #0x32
|
|
ldrsh r1, [r4, r2]
|
|
movs r2, #2
|
|
bl sub_080577AC
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
movs r2, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08083FE6
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
ldrb r0, [r4, #0xf]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xf]
|
|
ands r2, r0
|
|
ldr r3, _08083F74 @ =gScreen
|
|
movs r0, #0x10
|
|
subs r0, r0, r2
|
|
lsls r0, r0, #8
|
|
movs r5, #0xff
|
|
lsls r5, r5, #8
|
|
adds r1, r5, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
adds r1, r3, #0
|
|
adds r1, #0x68
|
|
strh r0, [r1]
|
|
cmp r0, #0x10
|
|
bne _08083FE6
|
|
b _08083FCC
|
|
.align 2, 0
|
|
_08083F74: .4byte gScreen
|
|
_08083F78:
|
|
ldr r5, _08083FA0 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0x10
|
|
movs r3, #8
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _08083F98
|
|
movs r0, #0x10
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_08078AC0
|
|
movs r0, #0x10
|
|
strb r0, [r5, #0x15]
|
|
_08083F98:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
b _08083FE6
|
|
.align 2, 0
|
|
_08083FA0: .4byte gLinkEntity
|
|
_08083FA4:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #5
|
|
beq _08083FB2
|
|
ldr r0, _08083FC8 @ =gLinkEntity
|
|
ldrb r0, [r0, #0xc]
|
|
cmp r0, #1
|
|
bne _08083FE6
|
|
_08083FB2:
|
|
movs r1, #0
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
strb r1, [r4, #0xf]
|
|
movs r0, #0xa5
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
b _08083FE6
|
|
.align 2, 0
|
|
_08083FC8: .4byte gLinkEntity
|
|
_08083FCC:
|
|
ldr r1, _08083FE8 @ =gUnk_02034490
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r1, r3, #0
|
|
adds r1, #0x66
|
|
movs r0, #0
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
bl sub_08083E20
|
|
movs r0, #0x73
|
|
bl PlaySFX
|
|
_08083FE6:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08083FE8: .4byte gUnk_02034490
|
|
|
|
thumb_func_start sub_08083FEC
|
|
sub_08083FEC: @ 0x08083FEC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0800445C
|
|
adds r0, r4, #0
|
|
adds r0, #0x39
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _0808401E
|
|
movs r0, #4
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
bl sub_080788E0
|
|
adds r0, r4, #0
|
|
movs r1, #0x3c
|
|
bl sub_0805E4E0
|
|
ldr r0, _08084020 @ =0x0000011B
|
|
bl PlaySFX
|
|
_0808401E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08084020: .4byte 0x0000011B
|
|
|
|
thumb_func_start sub_08084024
|
|
sub_08084024: @ 0x08084024
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0800445C
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08084070
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0808406A
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0x18
|
|
bne _08084060
|
|
movs r0, #6
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x10
|
|
strb r0, [r4, #0xf]
|
|
b _0808406A
|
|
_08084060:
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_08084074
|
|
_0808406A:
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0807CCB4
|
|
_08084070:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084074
|
|
sub_08084074: @ 0x08084074
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #3
|
|
bl sub_0804B128
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _080840A4
|
|
b _0808409E
|
|
_08084086:
|
|
cmp r0, #3
|
|
bne _0808409C
|
|
ldrb r0, [r1, #1]
|
|
cmp r4, r0
|
|
bne _0808409C
|
|
ldrb r0, [r1, #2]
|
|
ldrb r1, [r1, #3]
|
|
movs r2, #0
|
|
bl sub_080A7C00
|
|
b _080840A4
|
|
_0808409C:
|
|
adds r1, #8
|
|
_0808409E:
|
|
ldrb r0, [r1]
|
|
cmp r0, #0
|
|
bne _08084086
|
|
_080840A4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080840A8
|
|
sub_080840A8: @ 0x080840A8
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r6, r0, #0
|
|
adds r7, r1, #0
|
|
ldr r4, _0808413C @ =gUnk_0811F838
|
|
bl Random
|
|
movs r1, #7
|
|
ands r1, r0
|
|
adds r1, r1, r4
|
|
ldrb r1, [r1]
|
|
movs r0, #0
|
|
movs r2, #0
|
|
bl CreateObject
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
beq _08084138
|
|
movs r0, #6
|
|
strb r0, [r5, #0xe]
|
|
bl Random
|
|
movs r1, #7
|
|
ands r0, r1
|
|
adds r0, #0xc
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x15]
|
|
bl Random
|
|
movs r1, #0xf
|
|
ands r1, r0
|
|
lsls r1, r1, #1
|
|
adds r1, #0x20
|
|
strh r1, [r5, #0x24]
|
|
bl Random
|
|
ldr r1, _08084140 @ =gUnk_0811F840
|
|
movs r4, #3
|
|
ands r0, r4
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
str r0, [r5, #0x20]
|
|
bl Random
|
|
ldr r1, _08084144 @ =gUnk_0811F850
|
|
ands r0, r4
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
adds r0, r0, r6
|
|
strh r0, [r5, #0x2e]
|
|
adds r0, r7, #1
|
|
strh r0, [r5, #0x32]
|
|
ldr r0, _08084148 @ =0x0000FFF8
|
|
strh r0, [r5, #0x36]
|
|
adds r0, r5, #0
|
|
bl sub_08016A30
|
|
adds r0, r5, #0
|
|
movs r1, #0x11
|
|
movs r2, #0
|
|
bl CreateFx
|
|
adds r5, r0, #0
|
|
cmp r5, #0
|
|
beq _08084138
|
|
movs r0, #0x92
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
_08084138:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_0808413C: .4byte gUnk_0811F838
|
|
_08084140: .4byte gUnk_0811F840
|
|
_08084144: .4byte gUnk_0811F850
|
|
_08084148: .4byte 0x0000FFF8
|
|
|
|
thumb_func_start sub_0808414C
|
|
sub_0808414C: @ 0x0808414C
|
|
push {lr}
|
|
adds r1, r0, #0
|
|
ldrb r0, [r1, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r1, #0xe]
|
|
movs r2, #0xff
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08084180
|
|
movs r0, #8
|
|
strb r0, [r1, #0xe]
|
|
ldrb r0, [r1, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r1, #0xf]
|
|
ands r0, r2
|
|
cmp r0, #0
|
|
beq _0808417C
|
|
movs r2, #0x2e
|
|
ldrsh r0, [r1, r2]
|
|
movs r2, #0x32
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_080840A8
|
|
b _08084180
|
|
_0808417C:
|
|
movs r0, #5
|
|
strb r0, [r1, #0xc]
|
|
_08084180:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084184
|
|
sub_08084184: @ 0x08084184
|
|
push {lr}
|
|
bl sub_0800445C
|
|
pop {pc}
|
|
|
|
thumb_func_start nullsub_114
|
|
nullsub_114: @ 0x0808418C
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084190
|
|
sub_08084190: @ 0x08084190
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
adds r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _08084204 @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x70
|
|
strh r1, [r5]
|
|
ldr r0, _08084208 @ =gUnk_0811F8A8
|
|
str r0, [r4, #0x48]
|
|
adds r0, r4, #0
|
|
bl sub_080002A0
|
|
cmp r0, #0x74
|
|
bne _080841D2
|
|
bl sub_0805E780
|
|
_080841D2:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08084200
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrh r1, [r5]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
ldrb r2, [r0]
|
|
movs r0, #0x73
|
|
bl sub_0807B7D8
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08084200
|
|
bl sub_0805E780
|
|
_08084200:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08084204: .4byte gRoomControls
|
|
_08084208: .4byte gUnk_0811F8A8
|
|
|
|
thumb_func_start sub_0808420C
|
|
sub_0808420C: @ 0x0808420C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08084220
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
_08084220:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084224
|
|
sub_08084224: @ 0x08084224
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x70
|
|
ldrh r1, [r0]
|
|
subs r0, #0x38
|
|
ldrb r2, [r0]
|
|
movs r0, #0x73
|
|
bl sub_0807B7D8
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #7
|
|
bgt _0808424C
|
|
cmp r0, #6
|
|
blt _0808424C
|
|
ldr r0, _08084248 @ =0x00000215
|
|
bl PlaySFX
|
|
b _08084258
|
|
.align 2, 0
|
|
_08084248: .4byte 0x00000215
|
|
_0808424C:
|
|
movs r0, #0x72
|
|
bl PlaySFX
|
|
adds r0, r4, #0
|
|
bl sub_080A29BC
|
|
_08084258:
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0xe]
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
lsls r0, r0, #2
|
|
adds r1, r4, #0
|
|
adds r1, #0x72
|
|
strh r0, [r1]
|
|
ldrb r1, [r4, #0xa]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08084278
|
|
bl sub_0805E780
|
|
_08084278:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808427C
|
|
sub_0808427C: @ 0x0808427C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
beq _0808428A
|
|
cmp r0, #7
|
|
bne _080842D4
|
|
_0808428A:
|
|
adds r0, r4, #0
|
|
bl sub_080002A0
|
|
cmp r0, #0x74
|
|
bne _0808429C
|
|
adds r0, r4, #0
|
|
bl sub_0805E7BC
|
|
b _080842D4
|
|
_0808429C:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _080842D4
|
|
adds r1, r4, #0
|
|
adds r1, #0x72
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
beq _080842BA
|
|
subs r0, #1
|
|
strh r0, [r1]
|
|
b _080842D4
|
|
_080842BA:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x70
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_0807BA8C
|
|
adds r0, r4, #0
|
|
bl sub_080A29BC
|
|
_080842D4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080842D8
|
|
sub_080842D8: @ 0x080842D8
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
ldrh r2, [r5, #0x2e]
|
|
movs r1, #8
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
rsbs r0, r0, #0
|
|
lsrs r2, r0, #0x1f
|
|
ldrh r0, [r5, #0x32]
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _080842F6
|
|
adds r2, #2
|
|
_080842F6:
|
|
ldr r1, _0808432C @ =gUnk_0811F898
|
|
lsls r0, r2, #2
|
|
adds r0, r0, r1
|
|
ldr r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _08084330 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_0801AF18
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0808432C: .4byte gUnk_0811F898
|
|
_08084330: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08084334
|
|
sub_08084334: @ 0x08084334
|
|
push {lr}
|
|
ldr r2, _08084348 @ =gUnk_0811F908
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084348: .4byte gUnk_0811F908
|
|
|
|
thumb_func_start sub_0808434C
|
|
sub_0808434C: @ 0x0808434C
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
movs r2, #1
|
|
movs r3, #1
|
|
strb r3, [r5, #0xc]
|
|
ldrb r1, [r5, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x10]
|
|
ldrb r1, [r5, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x18]
|
|
adds r1, r5, #0
|
|
adds r1, #0x3c
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x3f
|
|
strb r3, [r0]
|
|
adds r1, #4
|
|
movs r0, #0x47
|
|
strb r0, [r1]
|
|
subs r1, #5
|
|
movs r0, #2
|
|
strb r0, [r1]
|
|
ldr r0, _080843E0 @ =gUnk_080FD188
|
|
str r0, [r5, #0x48]
|
|
ldr r0, _080843E4 @ =0x00004050
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _080843E8 @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl UpdateCollisionLayer
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #1
|
|
beq _080843C8
|
|
adds r0, r5, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _080843EC
|
|
_080843C8:
|
|
movs r0, #3
|
|
strb r0, [r5, #0xc]
|
|
adds r0, r5, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
adds r0, r5, #0
|
|
movs r1, #1
|
|
bl UpdateSprite
|
|
b _080843F4
|
|
.align 2, 0
|
|
_080843E0: .4byte gUnk_080FD188
|
|
_080843E4: .4byte 0x00004050
|
|
_080843E8: .4byte gRoomControls
|
|
_080843EC:
|
|
ldrb r1, [r5, #0xa]
|
|
adds r0, r5, #0
|
|
bl UpdateSprite
|
|
_080843F4:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080843F8
|
|
sub_080843F8: @ 0x080843F8
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x9c
|
|
bne _08084420
|
|
movs r0, #2
|
|
strb r0, [r2, #0xc]
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r2, #0x10]
|
|
adds r0, r2, #0
|
|
movs r1, #0xd
|
|
movs r2, #0
|
|
bl CreateFx
|
|
ldr r0, _08084424 @ =0x0000010D
|
|
bl sub_08004488
|
|
_08084420:
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084424: .4byte 0x0000010D
|
|
|
|
thumb_func_start sub_08084428
|
|
sub_08084428: @ 0x08084428
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08084454
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CCC8
|
|
movs r0, #0x86
|
|
lsls r0, r0, #1
|
|
bl sub_08004488
|
|
_08084454:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084458
|
|
sub_08084458: @ 0x08084458
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xc]
|
|
cmp r0, #0
|
|
bne _08084472
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x14
|
|
strb r0, [r4, #0xe]
|
|
adds r0, r4, #0
|
|
bl sub_08004168
|
|
b _080844C2
|
|
_08084472:
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0xff
|
|
bne _080844C2
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _080844C4 @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
ldrb r2, [r0]
|
|
movs r0, #0x35
|
|
bl sub_0807B7D8
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0x40
|
|
bl CreateFx
|
|
movs r0, #0x93
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
bl sub_0805E780
|
|
_080844C2:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_080844C4: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_080844C8
|
|
sub_080844C8: @ 0x080844C8
|
|
push {lr}
|
|
ldr r2, _080844DC @ =gUnk_0811FAC0
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080844DC: .4byte gUnk_0811FAC0
|
|
|
|
thumb_func_start sub_080844E0
|
|
sub_080844E0: @ 0x080844E0
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
ldrb r1, [r5, #0x10]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
strb r0, [r5, #0x10]
|
|
ldrb r1, [r5, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x18]
|
|
adds r0, r5, #0
|
|
movs r1, #6
|
|
bl sub_0805E3A0
|
|
adds r0, r5, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _08084516
|
|
adds r0, r5, #0
|
|
bl sub_08016A30
|
|
_08084516:
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0x20
|
|
bne _08084524
|
|
ldrb r0, [r5, #0x10]
|
|
movs r1, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r5, #0x10]
|
|
_08084524:
|
|
ldrb r4, [r5, #0xa]
|
|
cmp r4, #3
|
|
bne _08084538
|
|
bl Random
|
|
ldr r1, _080845AC @ =gUnk_0811FAC8
|
|
ands r4, r0
|
|
adds r1, r4, r1
|
|
ldrb r0, [r1]
|
|
strb r0, [r5, #0xa]
|
|
_08084538:
|
|
ldrb r0, [r5, #0xa]
|
|
cmp r0, #0x17
|
|
bne _0808454E
|
|
bl Random
|
|
ldr r2, _080845B0 @ =gUnk_0811FACC
|
|
movs r1, #3
|
|
ands r1, r0
|
|
adds r1, r1, r2
|
|
ldrb r0, [r1]
|
|
strb r0, [r5, #0xa]
|
|
_0808454E:
|
|
ldrb r1, [r5, #0xa]
|
|
adds r0, r5, #0
|
|
bl UpdateSprite
|
|
ldrb r0, [r5, #0xa]
|
|
lsls r0, r0, #2
|
|
ldr r1, _080845B4 @ =gUnk_0811F960
|
|
adds r4, r0, r1
|
|
ldrb r1, [r4]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #6
|
|
bne _0808456C
|
|
movs r0, #0x40
|
|
strh r0, [r5, #0x24]
|
|
_0808456C:
|
|
ldrh r0, [r4, #2]
|
|
cmp r0, #0
|
|
beq _08084582
|
|
ldrb r1, [r5, #0xb]
|
|
movs r0, #0x40
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08084582
|
|
ldrh r0, [r4, #2]
|
|
bl sub_08004488
|
|
_08084582:
|
|
ldrb r1, [r5, #0xb]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08084594
|
|
ldrb r1, [r4, #1]
|
|
adds r0, r5, #0
|
|
bl sub_0805457C
|
|
_08084594:
|
|
ldrb r1, [r5, #0xb]
|
|
movs r0, #0x20
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080845AA
|
|
ldrb r0, [r5, #0x19]
|
|
movs r1, #0x3f
|
|
ands r1, r0
|
|
movs r0, #0x40
|
|
orrs r1, r0
|
|
strb r1, [r5, #0x19]
|
|
_080845AA:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_080845AC: .4byte gUnk_0811FAC8
|
|
_080845B0: .4byte gUnk_0811FACC
|
|
_080845B4: .4byte gUnk_0811F960
|
|
|
|
thumb_func_start sub_080845B8
|
|
sub_080845B8: @ 0x080845B8
|
|
push {lr}
|
|
ldr r3, _080845D4 @ =gUnk_0811FAD0
|
|
ldr r2, _080845D8 @ =gUnk_0811F960
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldrb r1, [r1]
|
|
lsls r1, r1, #0x1c
|
|
lsrs r1, r1, #0x1a
|
|
adds r1, r1, r3
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080845D4: .4byte gUnk_0811FAD0
|
|
_080845D8: .4byte gUnk_0811F960
|
|
|
|
thumb_func_start sub_080845DC
|
|
sub_080845DC: @ 0x080845DC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r4, #0x5a
|
|
ldrb r1, [r4]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080845F4
|
|
bl sub_0805E780
|
|
_080845F4:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080845F8
|
|
sub_080845F8: @ 0x080845F8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrh r2, [r4, #0x2e]
|
|
movs r1, #0xf
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
movs r2, #8
|
|
subs r3, r2, r0
|
|
ldrh r0, [r4, #0x32]
|
|
ands r1, r0
|
|
subs r1, r2, r1
|
|
adds r0, r3, #0
|
|
orrs r0, r1
|
|
cmp r0, #0
|
|
beq _08084626
|
|
adds r0, r3, #0
|
|
bl sub_080045DA
|
|
lsrs r0, r0, #3
|
|
strb r0, [r4, #0x15]
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
_08084626:
|
|
adds r0, r4, #0
|
|
bl sub_08084630
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084630
|
|
sub_08084630: @ 0x08084630
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808467E
|
|
ldrb r1, [r4, #0xb]
|
|
movs r3, #1
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _0808467A
|
|
ldr r1, [r4, #0x54]
|
|
cmp r1, #0
|
|
beq _0808467A
|
|
adds r1, #0x6a
|
|
ldrh r0, [r1]
|
|
subs r0, #1
|
|
strh r0, [r1]
|
|
ldr r0, [r4, #0x68]
|
|
cmp r0, #0
|
|
beq _0808467A
|
|
ldr r2, [r4, #0x54]
|
|
adds r2, #0x6c
|
|
subs r0, #1
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
adds r1, r3, #0
|
|
lsls r1, r0
|
|
ldrh r0, [r2]
|
|
bics r0, r1
|
|
strh r0, [r2]
|
|
_0808467A:
|
|
bl sub_0805E780
|
|
_0808467E:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08084680
|
|
sub_08084680: @ 0x08084680
|
|
push {lr}
|
|
ldr r1, [r0, #0x34]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #7
|
|
adds r1, r1, r2
|
|
str r1, [r0, #0x34]
|
|
bl sub_080845DC
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084694
|
|
sub_08084694: @ 0x08084694
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x50]
|
|
cmp r0, #0
|
|
beq _080846A4
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _080846A8
|
|
_080846A4:
|
|
bl sub_0805E780
|
|
_080846A8:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080846B0
|
|
sub_080846B0: @ 0x080846B0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _080846D8
|
|
ldrh r1, [r4, #0x24]
|
|
movs r2, #0x24
|
|
ldrsh r0, [r4, r2]
|
|
cmp r0, #0
|
|
beq _080846CA
|
|
adds r0, r1, #0
|
|
subs r0, #0x10
|
|
strh r0, [r4, #0x24]
|
|
_080846CA:
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
adds r0, r4, #0
|
|
bl sub_080845DC
|
|
b _08084718
|
|
_080846D8:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
ldrb r1, [r4, #0x14]
|
|
movs r0, #2
|
|
orrs r0, r1
|
|
cmp r0, #2
|
|
bne _080846EA
|
|
movs r0, #0x1e
|
|
b _080846EC
|
|
_080846EA:
|
|
movs r0, #2
|
|
_080846EC:
|
|
strb r0, [r4, #0x15]
|
|
ldrb r0, [r4, #0xf]
|
|
cmp r0, #0
|
|
beq _08084712
|
|
adds r1, r4, #0
|
|
adds r1, #0x60
|
|
ldrh r0, [r1]
|
|
adds r0, #1
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, #0x15]
|
|
movs r1, #1
|
|
cmp r0, #0x17
|
|
bls _08084708
|
|
subs r1, #2
|
|
_08084708:
|
|
adds r0, r0, r1
|
|
strb r0, [r4, #0x15]
|
|
movs r0, #0xa0
|
|
lsls r0, r0, #2
|
|
b _08084716
|
|
_08084712:
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #2
|
|
_08084716:
|
|
strh r0, [r4, #0x24]
|
|
_08084718:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808471C
|
|
sub_0808471C: @ 0x0808471C
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r5, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08084768
|
|
movs r4, #0
|
|
_08084734:
|
|
adds r0, r5, #0
|
|
movs r1, #0x24
|
|
movs r2, #0
|
|
bl CreateFx
|
|
adds r2, r0, #0
|
|
cmp r2, #0
|
|
beq _0808475E
|
|
lsls r1, r4, #1
|
|
ldr r0, _0808476C @ =gUnk_0811FB08
|
|
adds r1, r1, r0
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r3, [r2, #0x2e]
|
|
adds r0, r0, r3
|
|
strh r0, [r2, #0x2e]
|
|
movs r0, #1
|
|
ldrsb r0, [r1, r0]
|
|
ldrh r1, [r2, #0x32]
|
|
adds r0, r0, r1
|
|
strh r0, [r2, #0x32]
|
|
_0808475E:
|
|
adds r4, #1
|
|
cmp r4, #3
|
|
bls _08084734
|
|
bl sub_0805E780
|
|
_08084768:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_0808476C: .4byte gUnk_0811FB08
|
|
|
|
thumb_func_start sub_08084770
|
|
sub_08084770: @ 0x08084770
|
|
push {lr}
|
|
ldr r1, [r0, #0x34]
|
|
ldr r2, _08084780 @ =0xFFFFC000
|
|
adds r1, r1, r2
|
|
str r1, [r0, #0x34]
|
|
bl sub_080845DC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084780: .4byte 0xFFFFC000
|
|
|
|
thumb_func_start sub_08084784
|
|
sub_08084784: @ 0x08084784
|
|
push {lr}
|
|
ldr r1, [r0, #0x34]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #7
|
|
adds r1, r1, r2
|
|
str r1, [r0, #0x34]
|
|
bl sub_080845DC
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084798
|
|
sub_08084798: @ 0x08084798
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08004274
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080847B6
|
|
ldr r0, [r4, #0x54]
|
|
ldr r0, [r0, #4]
|
|
cmp r0, #0
|
|
bne _080847BA
|
|
_080847B6:
|
|
bl sub_0805E780
|
|
_080847BA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080847BC
|
|
sub_080847BC: @ 0x080847BC
|
|
push {lr}
|
|
ldr r1, [r0, #0x34]
|
|
ldr r2, _080847CC @ =0xFFFFE000
|
|
adds r1, r1, r2
|
|
str r1, [r0, #0x34]
|
|
bl sub_080845DC
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080847CC: .4byte 0xFFFFE000
|
|
|
|
thumb_func_start sub_080847D0
|
|
sub_080847D0: @ 0x080847D0
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F69C
|
|
adds r0, r4, #0
|
|
bl sub_080845DC
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080847E0
|
|
sub_080847E0: @ 0x080847E0
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, _08084814 @ =gRoomControls
|
|
ldrh r0, [r0]
|
|
cmp r0, #1
|
|
bne _080847F0
|
|
bl sub_0805E780
|
|
_080847F0:
|
|
ldr r4, _08084818 @ =gLinkEntity
|
|
ldr r3, _0808481C @ =0xFFFD0000
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
movs r2, #0
|
|
bl PositionRelative
|
|
ldr r0, _08084820 @ =0x0000FFFD
|
|
strh r0, [r5, #0x36]
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_0806FAB0
|
|
adds r0, r5, #0
|
|
bl sub_080845DC
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08084814: .4byte gRoomControls
|
|
_08084818: .4byte gLinkEntity
|
|
_0808481C: .4byte 0xFFFD0000
|
|
_08084820: .4byte 0x0000FFFD
|
|
|
|
thumb_func_start sub_08084824
|
|
sub_08084824: @ 0x08084824
|
|
push {lr}
|
|
ldr r2, _08084838 @ =gUnk_08120560
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084838: .4byte gUnk_08120560
|
|
|
|
thumb_func_start sub_0808483C
|
|
sub_0808483C: @ 0x0808483C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x19]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r1, [r2]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #4
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrh r2, [r4, #0x2e]
|
|
movs r1, #0x10
|
|
rsbs r1, r1, #0
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
movs r2, #8
|
|
orrs r0, r2
|
|
strh r0, [r4, #0x2e]
|
|
ldrh r0, [r4, #0x32]
|
|
ands r1, r0
|
|
orrs r1, r2
|
|
strh r1, [r4, #0x32]
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r4, r0]
|
|
ldr r2, _080848C0 @ =gRoomControls
|
|
ldrh r0, [r2, #6]
|
|
subs r1, r1, r0
|
|
asrs r1, r1, #4
|
|
movs r3, #0x3f
|
|
ands r1, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r4, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r0, r0, r2
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r1, r0
|
|
adds r5, r4, #0
|
|
adds r5, #0x74
|
|
strh r1, [r5]
|
|
adds r0, r4, #0
|
|
movs r1, #8
|
|
bl UpdateSprite
|
|
ldr r0, _080848C4 @ =0x00004016
|
|
ldrh r1, [r5]
|
|
adds r4, #0x38
|
|
ldrb r2, [r4]
|
|
bl UpdateCollisionLayer
|
|
movs r0, #0x89
|
|
lsls r0, r0, #1
|
|
bl PlaySFX
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_080848C0: .4byte gRoomControls
|
|
_080848C4: .4byte 0x00004016
|
|
|
|
thumb_func_start sub_080848C8
|
|
sub_080848C8: @ 0x080848C8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08084980 @ =gLinkState
|
|
adds r0, #0xa0
|
|
ldrb r0, [r0]
|
|
cmp r0, #5
|
|
bne _08084994
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #1
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
adds r0, r4, #0
|
|
adds r0, #0x45
|
|
movs r5, #1
|
|
strb r5, [r0]
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x11]
|
|
subs r0, #0x12
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x11]
|
|
ldr r0, _08084984 @ =gUnk_08120574
|
|
str r0, [r4, #0x48]
|
|
ldrb r1, [r4, #0xa]
|
|
adds r1, #1
|
|
lsls r0, r1, #4
|
|
subs r0, r0, r1
|
|
strb r0, [r4, #0xf]
|
|
ldr r2, _08084988 @ =gLinkEntity
|
|
ldrh r0, [r4, #0x2e]
|
|
ldrh r1, [r2, #0x2e]
|
|
subs r0, r0, r1
|
|
adds r3, r4, #0
|
|
adds r3, #0x78
|
|
strh r0, [r3]
|
|
ldrh r1, [r4, #0x32]
|
|
ldrh r0, [r2, #0x32]
|
|
subs r1, r1, r0
|
|
adds r0, r4, #0
|
|
adds r0, #0x7a
|
|
strh r1, [r0]
|
|
ldrh r0, [r3]
|
|
cmp r0, #0
|
|
beq _0808493C
|
|
lsls r0, r1, #0x10
|
|
cmp r0, #0
|
|
beq _0808493C
|
|
ldr r0, _0808498C @ =gUnk_03004040
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
str r5, [r0, #0x70]
|
|
_0808493C:
|
|
ldr r0, _08084990 @ =0x00000315
|
|
adds r1, r4, #0
|
|
adds r1, #0x74
|
|
ldrh r1, [r1]
|
|
adds r2, r4, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_08000152
|
|
ldrb r1, [r4, #0xa]
|
|
adds r1, #1
|
|
ldr r0, _08084980 @ =gLinkState
|
|
ldr r0, [r0, #0x2c]
|
|
adds r0, #0x68
|
|
ldrb r3, [r0]
|
|
movs r0, #1
|
|
movs r2, #0
|
|
bl sub_08077CF8
|
|
str r0, [r4, #0x54]
|
|
cmp r0, #0
|
|
beq _0808496A
|
|
str r4, [r0, #0x50]
|
|
_0808496A:
|
|
adds r0, r4, #0
|
|
bl sub_0801766C
|
|
adds r0, r4, #0
|
|
bl sub_0806FDA0
|
|
adds r0, r4, #0
|
|
bl sub_080849D8
|
|
b _080849D6
|
|
.align 2, 0
|
|
_08084980: .4byte gLinkState
|
|
_08084984: .4byte gUnk_08120574
|
|
_08084988: .4byte gLinkEntity
|
|
_0808498C: .4byte gUnk_03004040
|
|
_08084990: .4byte 0x00000315
|
|
_08084994:
|
|
cmp r0, #4
|
|
beq _080849C4
|
|
ldr r0, _080849BC @ =0x00000315
|
|
adds r1, r4, #0
|
|
adds r1, #0x74
|
|
ldrh r1, [r1]
|
|
adds r2, r4, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_08000152
|
|
ldr r1, _080849C0 @ =gUnk_03004040
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
movs r1, #0
|
|
str r1, [r0]
|
|
bl sub_0805E780
|
|
b _080849D6
|
|
.align 2, 0
|
|
_080849BC: .4byte 0x00000315
|
|
_080849C0: .4byte gUnk_03004040
|
|
_080849C4:
|
|
ldrb r2, [r4, #0x18]
|
|
lsls r1, r2, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
movs r0, #1
|
|
eors r1, r0
|
|
subs r0, #5
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_080849D6:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_080849D8
|
|
sub_080849D8: @ 0x080849D8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xf]
|
|
adds r1, r0, #0
|
|
cmp r1, #1
|
|
bne _080849EE
|
|
movs r0, #0x76
|
|
bl PlaySFX
|
|
ldrb r0, [r4, #0xf]
|
|
b _080849F2
|
|
_080849EE:
|
|
cmp r1, #0
|
|
beq _080849F6
|
|
_080849F2:
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
_080849F6:
|
|
ldr r2, _08084A3C @ =gLinkState
|
|
adds r3, r2, #0
|
|
adds r3, #0xa0
|
|
ldrb r0, [r3]
|
|
cmp r0, #5
|
|
beq _08084A04
|
|
b _08084AF8
|
|
_08084A04:
|
|
ldr r0, _08084A40 @ =gUnk_03004040
|
|
ldrb r1, [r4, #0xa]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r0, [r1]
|
|
cmp r0, #0
|
|
beq _08084AF8
|
|
adds r0, r2, #0
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x13
|
|
beq _08084AF8
|
|
adds r0, r4, #0
|
|
adds r0, #0x45
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
beq _08084AF8
|
|
ldr r5, _08084A44 @ =gLinkEntity
|
|
adds r0, r5, #0
|
|
adds r0, #0x3d
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
cmp r0, #0
|
|
ble _08084A48
|
|
movs r0, #1
|
|
strb r0, [r3]
|
|
b _08084AF8
|
|
.align 2, 0
|
|
_08084A3C: .4byte gLinkState
|
|
_08084A40: .4byte gUnk_03004040
|
|
_08084A44: .4byte gLinkEntity
|
|
_08084A48:
|
|
adds r0, r4, #0
|
|
bl sub_080002B8
|
|
adds r0, r4, #0
|
|
bl sub_08084B1C
|
|
adds r0, r4, #0
|
|
adds r0, #0x78
|
|
ldrh r0, [r0]
|
|
ldrh r1, [r5, #0x2e]
|
|
adds r0, r0, r1
|
|
strh r0, [r4, #0x2e]
|
|
adds r0, r4, #0
|
|
adds r0, #0x7a
|
|
ldrh r0, [r0]
|
|
ldrh r5, [r5, #0x32]
|
|
adds r0, r0, r5
|
|
strh r0, [r4, #0x32]
|
|
adds r0, r4, #0
|
|
bl sub_08084CAC
|
|
adds r0, r4, #0
|
|
bl sub_080085B0
|
|
ldrh r2, [r4, #0x2a]
|
|
ldr r1, _08084AB8 @ =0x00006666
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
cmp r0, r1
|
|
beq _08084AEA
|
|
movs r3, #0
|
|
ldr r5, _08084ABC @ =gUnk_0812056C
|
|
ldrh r1, [r5]
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
cmp r1, r0
|
|
beq _08084AA6
|
|
adds r2, r5, #0
|
|
_08084A94:
|
|
adds r2, #2
|
|
adds r3, #1
|
|
cmp r3, #3
|
|
bhi _08084AA6
|
|
ldrh r1, [r2]
|
|
ldrh r0, [r4, #0x2a]
|
|
ands r0, r1
|
|
cmp r1, r0
|
|
bne _08084A94
|
|
_08084AA6:
|
|
cmp r3, #4
|
|
bne _08084AC0
|
|
movs r0, #0
|
|
strb r0, [r4, #0xe]
|
|
ldrb r1, [r4, #0x18]
|
|
subs r0, #4
|
|
ands r0, r1
|
|
movs r1, #1
|
|
b _08084ADE
|
|
.align 2, 0
|
|
_08084AB8: .4byte 0x00006666
|
|
_08084ABC: .4byte gUnk_0812056C
|
|
_08084AC0:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _08084AE4
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
beq _08084AEA
|
|
ldrb r2, [r4, #0x18]
|
|
lsls r1, r2, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
movs r0, #1
|
|
eors r1, r0
|
|
subs r0, #5
|
|
ands r0, r2
|
|
_08084ADE:
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
b _08084B16
|
|
_08084AE4:
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
b _08084B16
|
|
_08084AEA:
|
|
ldr r0, _08084AF4 @ =gLinkState
|
|
adds r0, #0xa0
|
|
movs r1, #1
|
|
strb r1, [r0]
|
|
b _08084B16
|
|
.align 2, 0
|
|
_08084AF4: .4byte gLinkState
|
|
_08084AF8:
|
|
bl sub_0807A108
|
|
adds r0, r4, #0
|
|
movs r1, #0x30
|
|
movs r2, #0
|
|
bl CreateFx
|
|
ldr r0, [r4, #0x54]
|
|
bl sub_0805E7BC
|
|
ldr r0, _08084B18 @ =0x0000018F
|
|
bl PlaySFX
|
|
bl sub_0805E780
|
|
_08084B16:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08084B18: .4byte 0x0000018F
|
|
|
|
thumb_func_start sub_08084B1C
|
|
sub_08084B1C: @ 0x08084B1C
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r4, r0, #0
|
|
ldr r3, _08084CA4 @ =gLinkEntity
|
|
ldrb r0, [r3, #0x10]
|
|
strb r0, [r4, #0x10]
|
|
adds r0, r3, #0
|
|
adds r0, #0x60
|
|
ldrh r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x60
|
|
strh r1, [r0]
|
|
ldrb r0, [r3, #0x1e]
|
|
strb r0, [r4, #0x1e]
|
|
adds r0, r3, #0
|
|
adds r0, #0x5b
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x5b
|
|
strb r0, [r1]
|
|
ldrh r0, [r3, #0x12]
|
|
strh r0, [r4, #0x12]
|
|
ldrb r0, [r3, #0x15]
|
|
strb r0, [r4, #0x15]
|
|
ldrb r0, [r3, #0x14]
|
|
strb r0, [r4, #0x14]
|
|
ldrb r0, [r3, #0x18]
|
|
movs r1, #1
|
|
mov r8, r1
|
|
movs r1, #0x40
|
|
ands r1, r0
|
|
ldrb r2, [r4, #0x18]
|
|
movs r0, #0x41
|
|
rsbs r0, r0, #0
|
|
mov sb, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
ldrb r1, [r3, #0x19]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r4, #0x19]
|
|
movs r7, #0x3f
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
adds r0, r3, #0
|
|
adds r0, #0x29
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x1d
|
|
movs r0, #0x29
|
|
adds r0, r0, r4
|
|
mov ip, r0
|
|
movs r6, #7
|
|
lsrs r1, r1, #0x1d
|
|
ldrb r2, [r0]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
mov sl, r0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
mov r1, ip
|
|
strb r0, [r1]
|
|
ldrb r1, [r3, #0x1b]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r4, #0x1b]
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x1b]
|
|
adds r0, r3, #0
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
strb r1, [r0]
|
|
adds r0, r3, #0
|
|
adds r0, #0x3b
|
|
ldrb r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3b
|
|
strb r0, [r1]
|
|
adds r0, r3, #0
|
|
adds r0, #0x3f
|
|
ldrb r0, [r0]
|
|
adds r1, #4
|
|
strb r0, [r1]
|
|
adds r0, r3, #0
|
|
adds r0, #0x3c
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x3c
|
|
strb r1, [r0]
|
|
adds r0, r3, #0
|
|
adds r0, #0x40
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x40
|
|
strb r1, [r0]
|
|
ldr r1, [r4, #0x54]
|
|
adds r0, r4, #0
|
|
bl CopyPosition
|
|
ldr r5, _08084CA8 @ =gLinkState
|
|
ldrb r0, [r5, #4]
|
|
cmp r0, #0
|
|
beq _08084C6A
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, [r5, #0x2c]
|
|
adds r0, #0x44
|
|
ldrb r0, [r0]
|
|
adds r1, #0x44
|
|
strb r0, [r1]
|
|
ldr r1, [r4, #0x54]
|
|
ldr r0, [r5, #0x2c]
|
|
ldrb r0, [r0, #0x1e]
|
|
strb r0, [r1, #0x1e]
|
|
ldr r3, [r4, #0x54]
|
|
ldr r0, [r5, #0x2c]
|
|
ldrb r1, [r0, #0x18]
|
|
lsls r1, r1, #0x19
|
|
lsrs r1, r1, #0x1f
|
|
mov r0, r8
|
|
ands r1, r0
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r3, #0x18]
|
|
mov r0, sb
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, #0x18]
|
|
ldr r3, [r4, #0x54]
|
|
ldr r0, [r5, #0x2c]
|
|
ldrb r1, [r0, #0x19]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r2, [r3, #0x19]
|
|
adds r0, r7, #0
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r3, #0x19]
|
|
ldr r2, [r4, #0x54]
|
|
ldr r0, [r5, #0x2c]
|
|
adds r0, #0x29
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x1d
|
|
lsrs r0, r0, #0x1d
|
|
adds r2, #0x29
|
|
ands r6, r0
|
|
ldrb r1, [r2]
|
|
mov r0, sl
|
|
ands r0, r1
|
|
orrs r0, r6
|
|
strb r0, [r2]
|
|
ldr r1, [r4, #0x54]
|
|
ldrb r0, [r1, #0x18]
|
|
lsls r0, r0, #0x19
|
|
cmp r0, #0
|
|
bge _08084C6A
|
|
ldr r1, [r1, #0x48]
|
|
ldrb r0, [r1]
|
|
rsbs r0, r0, #0
|
|
strb r0, [r1]
|
|
_08084C6A:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0
|
|
bl sub_0806FEBC
|
|
adds r0, r4, #0
|
|
movs r1, #1
|
|
movs r2, #0
|
|
bl sub_0806FEBC
|
|
adds r0, r4, #0
|
|
movs r1, #2
|
|
adds r2, r4, #0
|
|
bl sub_0806FEBC
|
|
adds r0, r4, #0
|
|
movs r1, #3
|
|
movs r2, #0
|
|
bl sub_0806FEBC
|
|
ldr r0, [r4, #0x54]
|
|
adds r1, r4, #0
|
|
bl sub_08078E84
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08084CA4: .4byte gLinkEntity
|
|
_08084CA8: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08084CAC
|
|
sub_08084CAC: @ 0x08084CAC
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r5, r0, #0
|
|
ldr r6, _08084D18 @ =gUnk_03004040
|
|
ldrb r0, [r5, #0xa]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r6
|
|
ldr r0, [r0]
|
|
ldr r0, [r0, #0x70]
|
|
cmp r0, #0
|
|
bne _08084D32
|
|
ldrb r0, [r5, #0x14]
|
|
movs r2, #6
|
|
ands r2, r0
|
|
lsls r2, r2, #1
|
|
ldr r0, _08084D1C @ =gUnk_080B4468
|
|
adds r2, r2, r0
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
movs r3, #0
|
|
ldrsh r1, [r2, r3]
|
|
adds r0, r0, r1
|
|
ldr r4, _08084D20 @ =gRoomControls
|
|
ldrh r1, [r4, #6]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
movs r3, #0x3f
|
|
ands r0, r3
|
|
movs r7, #0x32
|
|
ldrsh r1, [r5, r7]
|
|
movs r7, #2
|
|
ldrsh r2, [r2, r7]
|
|
adds r1, r1, r2
|
|
ldrh r2, [r4, #8]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r3
|
|
lsls r1, r1, #6
|
|
orrs r0, r1
|
|
adds r1, r5, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_080002B0
|
|
bl sub_080002E4
|
|
cmp r0, #0x72
|
|
bne _08084D24
|
|
ldr r2, [r6]
|
|
movs r1, #1
|
|
ldrb r5, [r5, #0xa]
|
|
lsls r1, r5
|
|
ldr r0, [r2, #0x6c]
|
|
orrs r0, r1
|
|
b _08084D30
|
|
.align 2, 0
|
|
_08084D18: .4byte gUnk_03004040
|
|
_08084D1C: .4byte gUnk_080B4468
|
|
_08084D20: .4byte gRoomControls
|
|
_08084D24:
|
|
ldr r2, [r6]
|
|
movs r1, #1
|
|
ldrb r5, [r5, #0xa]
|
|
lsls r1, r5
|
|
ldr r0, [r2, #0x6c]
|
|
bics r0, r1
|
|
_08084D30:
|
|
str r0, [r2, #0x6c]
|
|
_08084D32:
|
|
pop {r4, r5, r6, r7, pc}
|
|
|
|
thumb_func_start sub_08084D34
|
|
sub_08084D34: @ 0x08084D34
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0805E3B0
|
|
cmp r0, #0
|
|
bne _08084D50
|
|
ldr r0, _08084D54 @ =gUnk_0812057C
|
|
ldrb r1, [r4, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r0
|
|
ldr r1, [r1]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
_08084D50:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08084D54: .4byte gUnk_0812057C
|
|
|
|
thumb_func_start sub_08084D58
|
|
sub_08084D58: @ 0x08084D58
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, #0
|
|
ldrb r0, [r7, #0xa]
|
|
cmp r0, #3
|
|
bne _08084D6C
|
|
adds r0, r7, #0
|
|
bl sub_08084F8C
|
|
_08084D6C:
|
|
adds r0, r7, #0
|
|
bl sub_08004168
|
|
ldrb r0, [r7, #0xa]
|
|
cmp r0, #4
|
|
bne _08084D7E
|
|
adds r0, r7, #0
|
|
bl sub_08084F8C
|
|
_08084D7E:
|
|
movs r0, #2
|
|
strb r0, [r7, #0xc]
|
|
ldrb r0, [r7, #0x10]
|
|
movs r2, #0x80
|
|
orrs r0, r2
|
|
strb r0, [r7, #0x10]
|
|
ldrb r1, [r7, #0x19]
|
|
movs r5, #0x3f
|
|
adds r0, r5, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r7, #0x19]
|
|
ldr r0, _08084E48 @ =gUnk_08120588
|
|
mov r8, r0
|
|
ldrb r0, [r7, #0xa]
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #1]
|
|
strb r0, [r7, #0x1d]
|
|
ldrb r0, [r7, #0xa]
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r0, [r0, #2]
|
|
strb r0, [r7, #0x1c]
|
|
movs r2, #0
|
|
movs r0, #0x80
|
|
strh r0, [r7, #0x24]
|
|
ldr r0, _08084E4C @ =gLinkEntity
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
adds r6, r7, #0
|
|
adds r6, #0x38
|
|
strb r0, [r6]
|
|
adds r1, r7, #0
|
|
adds r1, #0x45
|
|
movs r0, #1
|
|
strb r0, [r1]
|
|
subs r1, #9
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r1, #3
|
|
movs r0, #0x6e
|
|
strb r0, [r1]
|
|
subs r1, #4
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
ldr r0, _08084E50 @ =gUnk_081205B4
|
|
str r0, [r7, #0x48]
|
|
adds r0, r7, #0
|
|
adds r0, #0x72
|
|
strb r2, [r0]
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r7, r1]
|
|
ldr r4, _08084E54 @ =gRoomControls
|
|
ldrh r1, [r4, #6]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r5
|
|
movs r2, #0x32
|
|
ldrsh r1, [r7, r2]
|
|
ldrh r2, [r4, #8]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r5
|
|
lsls r1, r1, #6
|
|
orrs r0, r1
|
|
ldrb r1, [r6]
|
|
bl sub_080001DA
|
|
adds r1, r7, #0
|
|
adds r1, #0x70
|
|
strh r0, [r1]
|
|
ldr r0, _08084E58 @ =0x00004022
|
|
movs r3, #0x2e
|
|
ldrsh r1, [r7, r3]
|
|
ldrh r2, [r4, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r5
|
|
movs r3, #0x32
|
|
ldrsh r2, [r7, r3]
|
|
ldrh r3, [r4, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r5
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
ldrb r2, [r6]
|
|
bl UpdateCollisionLayer
|
|
ldrb r0, [r7, #0xa]
|
|
lsls r0, r0, #2
|
|
add r0, r8
|
|
ldrb r1, [r0]
|
|
adds r0, r7, #0
|
|
bl UpdateSprite
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08084E48: .4byte gUnk_08120588
|
|
_08084E4C: .4byte gLinkEntity
|
|
_08084E50: .4byte gUnk_081205B4
|
|
_08084E54: .4byte gRoomControls
|
|
_08084E58: .4byte 0x00004022
|
|
|
|
thumb_func_start sub_08084E5C
|
|
sub_08084E5C: @ 0x08084E5C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, _08084EAC @ =gLinkState
|
|
ldrb r1, [r0, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _08084E7A
|
|
adds r0, r4, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
beq _08084EA8
|
|
_08084E7A:
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r4, r1]
|
|
ldr r2, _08084EB0 @ =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
|
|
adds r1, r4, #0
|
|
adds r1, #0x38
|
|
ldrb r1, [r1]
|
|
bl sub_0807BA8C
|
|
bl sub_0805E780
|
|
_08084EA8:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08084EAC: .4byte gLinkState
|
|
_08084EB0: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08084EB4
|
|
sub_08084EB4: @ 0x08084EB4
|
|
push {lr}
|
|
ldr r2, _08084EC8 @ =gUnk_0812059C
|
|
ldrb r1, [r0, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084EC8: .4byte gUnk_0812059C
|
|
|
|
thumb_func_start sub_08084ECC
|
|
sub_08084ECC: @ 0x08084ECC
|
|
push {lr}
|
|
movs r1, #1
|
|
strb r1, [r0, #0xd]
|
|
bl sub_08084ED8
|
|
pop {pc}
|
|
|
|
thumb_func_start sub_08084ED8
|
|
sub_08084ED8: @ 0x08084ED8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08084E5C
|
|
adds r0, r4, #0
|
|
bl sub_0806F4E8
|
|
ldrb r0, [r4, #0x1d]
|
|
cmp r0, #0
|
|
beq _08084EFA
|
|
subs r0, #1
|
|
strb r0, [r4, #0x1d]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08084EFA
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
_08084EFA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08084EFC
|
|
sub_08084EFC: @ 0x08084EFC
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
adds r2, r5, #0
|
|
adds r2, #0x72
|
|
ldrb r1, [r2]
|
|
cmp r1, #0
|
|
bne _08084F42
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
adds r0, r5, #0
|
|
adds r0, #0x62
|
|
strb r1, [r0]
|
|
adds r0, #0xe
|
|
ldrh r0, [r0]
|
|
movs r2, #0x2e
|
|
ldrsh r1, [r5, r2]
|
|
ldr r3, _08084F7C @ =gRoomControls
|
|
ldrh r2, [r3, #6]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
movs r4, #0x3f
|
|
ands r1, r4
|
|
movs r6, #0x32
|
|
ldrsh r2, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r2, r2, r3
|
|
asrs r2, r2, #4
|
|
ands r2, r4
|
|
lsls r2, r2, #6
|
|
orrs r1, r2
|
|
adds r2, r5, #0
|
|
adds r2, #0x38
|
|
ldrb r2, [r2]
|
|
bl sub_0807B9B8
|
|
_08084F42:
|
|
ldr r0, _08084F80 @ =gLinkState
|
|
ldrb r1, [r0, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _08084F5C
|
|
adds r0, r5, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
beq _08084F62
|
|
_08084F5C:
|
|
adds r0, r5, #0
|
|
bl sub_08084F8C
|
|
_08084F62:
|
|
adds r0, r5, #0
|
|
bl sub_0806F3E4
|
|
cmp r0, #0
|
|
beq _08084F7A
|
|
ldrb r1, [r5, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
bne _08084F7A
|
|
bl sub_0805E780
|
|
_08084F7A:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08084F7C: .4byte gRoomControls
|
|
_08084F80: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08084F84
|
|
sub_08084F84: @ 0x08084F84
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084F88
|
|
sub_08084F88: @ 0x08084F88
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084F8C
|
|
sub_08084F8C: @ 0x08084F8C
|
|
push {lr}
|
|
ldrb r1, [r0, #0xb]
|
|
cmp r1, #0xf
|
|
beq _08084FA4
|
|
cmp r1, #0xf
|
|
bgt _08084F9E
|
|
cmp r1, #0
|
|
beq _08084FB8
|
|
b _08084FAE
|
|
_08084F9E:
|
|
cmp r1, #0xff
|
|
bne _08084FAE
|
|
b _08084FB8
|
|
_08084FA4:
|
|
ldrb r1, [r0, #0xe]
|
|
movs r2, #0x80
|
|
bl CreateFx
|
|
b _08084FB8
|
|
_08084FAE:
|
|
ldrb r1, [r0, #0xb]
|
|
ldrb r2, [r0, #0xe]
|
|
movs r3, #0
|
|
bl CreateObjectWithParent
|
|
_08084FB8:
|
|
bl sub_0805E780
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08084FC0
|
|
sub_08084FC0: @ 0x08084FC0
|
|
push {lr}
|
|
ldr r2, _08084FD4 @ =gUnk_081205BC
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08084FD4: .4byte gUnk_081205BC
|
|
|
|
thumb_func_start sub_08084FD8
|
|
sub_08084FD8: @ 0x08084FD8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _0808500C
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _08084FF4
|
|
bl sub_0805E780
|
|
_08084FF4:
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #7
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
adds r0, r4, #0
|
|
bl sub_080850FC
|
|
b _0808501C
|
|
_0808500C:
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0xf0
|
|
strb r0, [r4, #0xe]
|
|
movs r0, #0x80
|
|
strh r0, [r4, #0x24]
|
|
movs r0, #0x18
|
|
strb r0, [r4, #0x15]
|
|
_0808501C:
|
|
movs r0, #0
|
|
strb r0, [r4, #0x1e]
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start nullsub_115
|
|
nullsub_115: @ 0x08085024
|
|
bx lr
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08085028
|
|
sub_08085028: @ 0x08085028
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080850A6
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x1e
|
|
strb r0, [r4, #0xe]
|
|
adds r1, r4, #0
|
|
adds r1, #0x63
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
ldr r0, _080850A8 @ =gScreen
|
|
mov ip, r0
|
|
ldrh r1, [r0]
|
|
movs r2, #0x80
|
|
lsls r2, r2, #6
|
|
adds r0, r2, #0
|
|
orrs r0, r1
|
|
mov r1, ip
|
|
strh r0, [r1]
|
|
adds r1, #0x60
|
|
movs r0, #0x1f
|
|
strh r0, [r1]
|
|
adds r1, #2
|
|
movs r0, #0xf
|
|
strh r0, [r1]
|
|
movs r2, #0x2e
|
|
ldrsh r0, [r4, r2]
|
|
ldr r3, _080850AC @ =gRoomControls
|
|
movs r2, #0xa
|
|
ldrsh r1, [r3, r2]
|
|
subs r0, r0, r1
|
|
adds r1, r0, #0
|
|
subs r1, #0x18
|
|
movs r2, #0xff
|
|
ands r1, r2
|
|
lsls r1, r1, #8
|
|
adds r0, #0x18
|
|
ands r0, r2
|
|
orrs r1, r0
|
|
mov r0, ip
|
|
adds r0, #0x58
|
|
strh r1, [r0]
|
|
movs r1, #0x32
|
|
ldrsh r0, [r4, r1]
|
|
movs r4, #0xc
|
|
ldrsh r1, [r3, r4]
|
|
subs r0, r0, r1
|
|
adds r1, r0, #0
|
|
subs r1, #0x18
|
|
ands r1, r2
|
|
lsls r1, r1, #8
|
|
adds r0, #0x18
|
|
ands r0, r2
|
|
orrs r1, r0
|
|
mov r0, ip
|
|
adds r0, #0x5c
|
|
strh r1, [r0]
|
|
_080850A6:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080850A8: .4byte gScreen
|
|
_080850AC: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_080850B0
|
|
sub_080850B0: @ 0x080850B0
|
|
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 _080850C8
|
|
movs r0, #4
|
|
strb r0, [r1, #0xc]
|
|
movs r0, #0x60
|
|
strb r0, [r1, #0xe]
|
|
_080850C8:
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080850CC
|
|
sub_080850CC: @ 0x080850CC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0806F69C
|
|
ldrb r0, [r4, #0xe]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080850F0
|
|
ldr r2, _080850F4 @ =gScreen
|
|
ldrh r1, [r2]
|
|
ldr r0, _080850F8 @ =0x0000DFFF
|
|
ands r0, r1
|
|
strh r0, [r2]
|
|
adds r0, r4, #0
|
|
bl sub_0805E7BC
|
|
_080850F0:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080850F4: .4byte gScreen
|
|
_080850F8: .4byte 0x0000DFFF
|
|
|
|
thumb_func_start sub_080850FC
|
|
sub_080850FC: @ 0x080850FC
|
|
push {r4, r5, r6, lr}
|
|
movs r1, #0x2e
|
|
ldrsh r4, [r0, r1]
|
|
ldr r2, _0808518C @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r4, r4, r1
|
|
asrs r4, r4, #4
|
|
movs r3, #0x3f
|
|
ands r4, r3
|
|
movs r5, #0x32
|
|
ldrsh r1, [r0, r5]
|
|
ldrh r2, [r2, #8]
|
|
subs r1, r1, r2
|
|
asrs r1, r1, #4
|
|
ands r1, r3
|
|
lsls r1, r1, #6
|
|
orrs r4, r1
|
|
adds r0, #0x38
|
|
ldrb r6, [r0]
|
|
ldr r5, _08085190 @ =0x0000403D
|
|
adds r1, r4, #0
|
|
subs r1, #0x41
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r1, r4, #0
|
|
subs r1, #0x40
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r1, r4, #0
|
|
subs r1, #0x3f
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
subs r1, r4, #1
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r1, r4, #1
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r1, r4, #0
|
|
adds r1, #0x3f
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r1, r4, #0
|
|
adds r1, #0x40
|
|
adds r0, r5, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
adds r4, #0x41
|
|
adds r0, r5, #0
|
|
adds r1, r4, #0
|
|
adds r2, r6, #0
|
|
bl UpdateCollisionLayer
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0808518C: .4byte gRoomControls
|
|
_08085190: .4byte 0x0000403D
|
|
|
|
thumb_func_start sub_08085194
|
|
sub_08085194: @ 0x08085194
|
|
push {lr}
|
|
ldr r2, _080851A8 @ =gUnk_081205D0
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080851A8: .4byte gUnk_081205D0
|
|
|
|
thumb_func_start sub_080851AC
|
|
sub_080851AC: @ 0x080851AC
|
|
push {r4, r5, r6, lr}
|
|
adds r5, r0, #0
|
|
movs r2, #1
|
|
movs r3, #1
|
|
strb r3, [r5, #0xc]
|
|
ldrb r1, [r5, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r5, #0x18]
|
|
adds r2, r5, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #7
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r1, [r5, #0xb]
|
|
adds r0, r3, #0
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080851E8
|
|
adds r1, r5, #0
|
|
adds r1, #0x7c
|
|
ldr r0, _080851E4 @ =0x0000FFFF
|
|
strh r0, [r1]
|
|
b _080851EE
|
|
.align 2, 0
|
|
_080851E4: .4byte 0x0000FFFF
|
|
_080851E8:
|
|
adds r0, r5, #0
|
|
adds r0, #0x7c
|
|
strh r3, [r0]
|
|
_080851EE:
|
|
ldrb r1, [r5, #0xb]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
strb r0, [r5, #0x14]
|
|
ldrb r4, [r5, #0xa]
|
|
cmp r4, #3
|
|
bne _0808521E
|
|
adds r0, r5, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
adds r1, r5, #0
|
|
adds r1, #0x7a
|
|
strh r0, [r1]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
beq _0808521E
|
|
ldrb r0, [r5, #0x14]
|
|
adds r0, #2
|
|
movs r1, #3
|
|
ands r0, r1
|
|
strb r0, [r5, #0x14]
|
|
strb r4, [r5, #0xc]
|
|
_0808521E:
|
|
ldrb r1, [r5, #0x14]
|
|
adds r0, r5, #0
|
|
bl UpdateSprite
|
|
adds r0, r5, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
bl sub_0808094C
|
|
movs r1, #0x2e
|
|
ldrsh r2, [r5, r1]
|
|
ldr r3, _08085260 @ =gRoomControls
|
|
ldrh r1, [r3, #6]
|
|
subs r2, r2, r1
|
|
asrs r2, r2, #4
|
|
movs r4, #0x3f
|
|
ands r2, r4
|
|
movs r6, #0x32
|
|
ldrsh r1, [r5, r6]
|
|
ldrh r3, [r3, #8]
|
|
subs r1, r1, r3
|
|
asrs r1, r1, #4
|
|
ands r1, r4
|
|
lsls r1, r1, #6
|
|
orrs r2, r1
|
|
lsls r2, r2, #1
|
|
adds r2, #4
|
|
adds r0, r0, r2
|
|
str r0, [r5, #0x70]
|
|
adds r0, r5, #0
|
|
bl sub_08085394
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08085260: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08085264
|
|
sub_08085264: @ 0x08085264
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r5, r4, #0
|
|
adds r5, #0x86
|
|
ldrh r0, [r5]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
beq _080852AE
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #1
|
|
bne _0808528A
|
|
ldrh r0, [r5]
|
|
bl sub_0807CD48
|
|
_0808528A:
|
|
adds r0, r4, #0
|
|
adds r0, #0x7c
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r0, r1
|
|
movs r1, #3
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl UpdateSprite
|
|
adds r0, r4, #0
|
|
bl sub_0808543C
|
|
ldr r0, _080852B0 @ =0x00000151
|
|
bl sub_08004488
|
|
_080852AE:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_080852B0: .4byte 0x00000151
|
|
|
|
thumb_func_start sub_080852B4
|
|
sub_080852B4: @ 0x080852B4
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldrb r0, [r5, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _08085300
|
|
movs r4, #3
|
|
movs r0, #3
|
|
strb r0, [r5, #0xc]
|
|
ldrb r0, [r5, #0xe]
|
|
strb r0, [r5, #0xf]
|
|
adds r0, r5, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
adds r1, r5, #0
|
|
adds r1, #0x7a
|
|
strh r0, [r1]
|
|
adds r0, r5, #0
|
|
adds r0, #0x7c
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r5, #0x14]
|
|
adds r0, r0, r1
|
|
ands r0, r4
|
|
strb r0, [r5, #0x14]
|
|
ldrb r1, [r5, #0x14]
|
|
adds r0, r5, #0
|
|
bl UpdateSprite
|
|
adds r0, r5, #0
|
|
bl sub_08085394
|
|
ldr r0, _08085304 @ =0x00000151
|
|
bl sub_08004488
|
|
_08085300:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08085304: .4byte 0x00000151
|
|
|
|
thumb_func_start sub_08085308
|
|
sub_08085308: @ 0x08085308
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_080854A8
|
|
cmp r0, #0
|
|
bne _0808538C
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #2
|
|
beq _08085324
|
|
cmp r0, #2
|
|
ble _08085354
|
|
cmp r0, #3
|
|
beq _08085338
|
|
b _08085354
|
|
_08085324:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
cmp r0, #0
|
|
bne _08085354
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
b _0808538C
|
|
_08085338:
|
|
adds r0, r4, #0
|
|
adds r0, #0x86
|
|
ldrh r0, [r0]
|
|
bl sub_0807CBE4
|
|
adds r1, r4, #0
|
|
adds r1, #0x7a
|
|
ldrh r1, [r1]
|
|
cmp r0, r1
|
|
bne _08085350
|
|
movs r0, #0xff
|
|
b _08085352
|
|
_08085350:
|
|
movs r0, #1
|
|
_08085352:
|
|
strb r0, [r4, #0xf]
|
|
_08085354:
|
|
ldrb r0, [r4, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r4, #0xf]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _0808538C
|
|
movs r0, #2
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #8
|
|
strb r0, [r4, #0xf]
|
|
adds r0, r4, #0
|
|
adds r0, #0x7c
|
|
ldrb r0, [r0]
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r0, r1
|
|
movs r1, #3
|
|
ands r0, r1
|
|
strb r0, [r4, #0x14]
|
|
ldrb r1, [r4, #0x14]
|
|
adds r0, r4, #0
|
|
bl UpdateSprite
|
|
adds r0, r4, #0
|
|
bl sub_0808543C
|
|
ldr r0, _08085390 @ =0x00000151
|
|
bl sub_08004488
|
|
_0808538C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08085390: .4byte 0x00000151
|
|
|
|
thumb_func_start sub_08085394
|
|
sub_08085394: @ 0x08085394
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, sl
|
|
mov r6, sb
|
|
mov r5, r8
|
|
push {r5, r6, r7}
|
|
adds r7, r0, #0
|
|
ldr r0, _08085430 @ =gUnk_081205E0
|
|
ldrb r2, [r7, #0x14]
|
|
lsrs r2, r2, #1
|
|
lsls r2, r2, #1
|
|
adds r0, r2, r0
|
|
ldrh r0, [r0]
|
|
mov sl, r0
|
|
ldr r0, _08085434 @ =gUnk_080B4488
|
|
adds r2, r2, r0
|
|
ldr r0, [r7, #0x70]
|
|
mov sb, r0
|
|
movs r1, #0x2e
|
|
ldrsh r4, [r7, r1]
|
|
ldr r1, _08085438 @ =gRoomControls
|
|
ldrh r0, [r1, #6]
|
|
subs r4, r4, r0
|
|
asrs r4, r4, #4
|
|
movs r3, #0x3f
|
|
ands r4, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r7, r5]
|
|
ldrh r1, [r1, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
ldrb r2, [r2]
|
|
lsls r2, r2, #0x18
|
|
asrs r2, r2, #0x18
|
|
mov r8, r2
|
|
lsls r5, r2, #1
|
|
mov r1, sb
|
|
subs r0, r1, r5
|
|
ldrh r1, [r0]
|
|
adds r0, r7, #0
|
|
adds r0, #0x74
|
|
strh r1, [r0]
|
|
subs r1, r4, r2
|
|
adds r6, r7, #0
|
|
adds r6, #0x38
|
|
ldrb r2, [r6]
|
|
mov r0, sl
|
|
bl UpdateCollisionLayer
|
|
mov r1, sb
|
|
ldrh r0, [r1]
|
|
adds r1, r7, #0
|
|
adds r1, #0x76
|
|
strh r0, [r1]
|
|
ldrb r2, [r6]
|
|
mov r0, sl
|
|
adds r1, r4, #0
|
|
bl UpdateCollisionLayer
|
|
add r5, sb
|
|
ldrh r1, [r5]
|
|
adds r0, r7, #0
|
|
adds r0, #0x78
|
|
strh r1, [r0]
|
|
add r4, r8
|
|
ldrb r2, [r6]
|
|
mov r0, sl
|
|
adds r1, r4, #0
|
|
bl UpdateCollisionLayer
|
|
pop {r3, r4, r5}
|
|
mov r8, r3
|
|
mov sb, r4
|
|
mov sl, r5
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08085430: .4byte gUnk_081205E0
|
|
_08085434: .4byte gUnk_080B4488
|
|
_08085438: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_0808543C
|
|
sub_0808543C: @ 0x0808543C
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
ldr r0, _080854A0 @ =gUnk_080B4488
|
|
ldrb r2, [r7, #0x14]
|
|
lsrs r2, r2, #1
|
|
lsls r2, r2, #1
|
|
adds r2, r2, r0
|
|
movs r0, #0x2e
|
|
ldrsh r4, [r7, r0]
|
|
ldr r1, _080854A4 @ =gRoomControls
|
|
ldrh r0, [r1, #6]
|
|
subs r4, r4, r0
|
|
asrs r4, r4, #4
|
|
movs r3, #0x3f
|
|
ands r4, r3
|
|
movs r5, #0x32
|
|
ldrsh r0, [r7, r5]
|
|
ldrh r1, [r1, #8]
|
|
subs r0, r0, r1
|
|
asrs r0, r0, #4
|
|
ands r0, r3
|
|
lsls r0, r0, #6
|
|
orrs r4, r0
|
|
adds r0, r7, #0
|
|
adds r0, #0x74
|
|
ldrh r0, [r0]
|
|
movs r6, #0
|
|
ldrsb r6, [r2, r6]
|
|
subs r1, r4, r6
|
|
adds r5, r7, #0
|
|
adds r5, #0x38
|
|
ldrb r2, [r5]
|
|
bl UpdateCollisionLayer
|
|
adds r0, r7, #0
|
|
adds r0, #0x76
|
|
ldrh r0, [r0]
|
|
ldrb r2, [r5]
|
|
adds r1, r4, #0
|
|
bl UpdateCollisionLayer
|
|
adds r0, r7, #0
|
|
adds r0, #0x78
|
|
ldrh r0, [r0]
|
|
adds r4, r4, r6
|
|
ldrb r2, [r5]
|
|
adds r1, r4, #0
|
|
bl UpdateCollisionLayer
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_080854A0: .4byte gUnk_080B4488
|
|
_080854A4: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_080854A8
|
|
sub_080854A8: @ 0x080854A8
|
|
push {r4, lr}
|
|
ldr r2, _080854E0 @ =gUnk_081205E0
|
|
ldrb r1, [r0, #0x14]
|
|
lsrs r1, r1, #1
|
|
lsls r1, r1, #1
|
|
adds r2, r1, r2
|
|
ldrh r3, [r2]
|
|
adds r4, r3, #0
|
|
ldr r2, _080854E4 @ =gUnk_080B4488
|
|
adds r1, r1, r2
|
|
ldr r2, [r0, #0x70]
|
|
movs r0, #0
|
|
ldrsb r0, [r1, r0]
|
|
lsls r1, r0, #1
|
|
subs r0, r2, r1
|
|
ldrh r0, [r0]
|
|
cmp r3, r0
|
|
bne _080854E8
|
|
ldrh r0, [r2]
|
|
cmp r3, r0
|
|
bne _080854E8
|
|
adds r0, r1, r2
|
|
ldrh r0, [r0]
|
|
cmp r4, r0
|
|
bne _080854E8
|
|
movs r0, #0
|
|
b _080854EA
|
|
.align 2, 0
|
|
_080854E0: .4byte gUnk_081205E0
|
|
_080854E4: .4byte gUnk_080B4488
|
|
_080854E8:
|
|
movs r0, #1
|
|
_080854EA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080854EC
|
|
sub_080854EC: @ 0x080854EC
|
|
push {lr}
|
|
ldr r2, _08085500 @ =gUnk_08120608
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08085500: .4byte gUnk_08120608
|
|
|
|
thumb_func_start sub_08085504
|
|
sub_08085504: @ 0x08085504
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0xff
|
|
bne _08085520
|
|
movs r0, #0x46
|
|
bl GetInventoryValue
|
|
cmp r0, #0
|
|
beq _0808551C
|
|
bl sub_0805E780
|
|
_0808551C:
|
|
movs r0, #0
|
|
strb r0, [r4, #0xa]
|
|
_08085520:
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
beq _08085552
|
|
ldr r0, _08085540 @ =gUnk_02033A90
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0x1b
|
|
beq _08085544
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _08085552
|
|
movs r0, #5
|
|
strb r0, [r4, #0xc]
|
|
b _080855E2
|
|
.align 2, 0
|
|
_08085540: .4byte gUnk_02033A90
|
|
_08085544:
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
bne _08085552
|
|
bl sub_0805E780
|
|
_08085552:
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _0808556C
|
|
adds r0, r4, #0
|
|
bl sub_080040A2
|
|
cmp r0, #0
|
|
bne _08085566
|
|
bl sub_0805E780
|
|
_08085566:
|
|
movs r0, #0
|
|
strb r0, [r4, #0xe]
|
|
b _0808557A
|
|
_0808556C:
|
|
adds r0, r4, #0
|
|
bl sub_0805EABC
|
|
cmp r0, #0
|
|
beq _0808557A
|
|
bl sub_0805E780
|
|
_0808557A:
|
|
movs r2, #1
|
|
strb r2, [r4, #0xc]
|
|
movs r3, #0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r4, #0x24]
|
|
movs r0, #0x29
|
|
adds r0, r0, r4
|
|
mov ip, r0
|
|
ldrb r1, [r0]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
mov r1, ip
|
|
strb r0, [r1]
|
|
ldr r0, _080855E4 @ =gUnk_08120640
|
|
str r0, [r4, #0x48]
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3c
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x3f
|
|
strb r2, [r0]
|
|
subs r1, #1
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
movs r0, #0x80
|
|
lsls r0, r0, #0x11
|
|
str r0, [r4, #0x78]
|
|
adds r1, #0x43
|
|
movs r0, #0x80
|
|
lsls r0, r0, #5
|
|
strh r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x85
|
|
strb r3, [r0]
|
|
subs r0, #1
|
|
strb r3, [r0]
|
|
adds r0, r4, #0
|
|
movs r1, #9
|
|
bl UpdateSprite
|
|
adds r0, r4, #0
|
|
bl sub_080855E8
|
|
_080855E2:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080855E4: .4byte gUnk_08120640
|
|
|
|
thumb_func_start sub_080855E8
|
|
sub_080855E8: @ 0x080855E8
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r7, r0, #0
|
|
ldrb r1, [r7, #0x10]
|
|
movs r0, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r7, #0x10]
|
|
ldr r6, _0808564C @ =gLinkEntity
|
|
adds r0, r7, #0
|
|
adds r1, r6, #0
|
|
movs r2, #0x18
|
|
bl sub_0806FC80
|
|
adds r1, r0, #0
|
|
cmp r1, #0
|
|
beq _080856EE
|
|
ldr r3, _08085650 @ =gLinkState
|
|
ldr r0, [r3, #0x30]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r3, #0x30]
|
|
ldr r4, [r6, #0x34]
|
|
cmp r4, #0
|
|
beq _0808561C
|
|
b _080857CE
|
|
_0808561C:
|
|
adds r5, r3, #0
|
|
adds r5, #0x26
|
|
ldrb r0, [r5]
|
|
cmp r0, #0
|
|
beq _08085634
|
|
adds r2, r6, #0
|
|
adds r2, #0x3c
|
|
ldrb r1, [r2]
|
|
movs r0, #0xfb
|
|
ands r0, r1
|
|
strb r0, [r2]
|
|
strb r4, [r5]
|
|
_08085634:
|
|
adds r0, r3, #0
|
|
adds r0, #0x84
|
|
str r7, [r0]
|
|
adds r0, r7, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08085654
|
|
adds r0, r6, #0
|
|
bl sub_0800455E
|
|
b _0808565A
|
|
.align 2, 0
|
|
_0808564C: .4byte gLinkEntity
|
|
_08085650: .4byte gLinkState
|
|
_08085654:
|
|
adds r0, r6, #0
|
|
bl sub_08004542
|
|
_0808565A:
|
|
ldrb r0, [r7, #0xf]
|
|
cmp r0, #0
|
|
bne _0808568C
|
|
movs r0, #4
|
|
strb r0, [r7, #0xf]
|
|
_08085664:
|
|
adds r0, r7, #0
|
|
movs r1, #8
|
|
movs r2, #0xa
|
|
bl sub_080A2AF4
|
|
ldrb r0, [r7, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r7, #0xf]
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0
|
|
bne _08085664
|
|
movs r0, #1
|
|
strb r0, [r7, #0xf]
|
|
ldrb r1, [r7, #0xe]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r7, #0xe]
|
|
str r2, [r7, #0x70]
|
|
str r2, [r7, #0x6c]
|
|
_0808568C:
|
|
ldr r2, _080856B8 @ =gLinkState
|
|
ldrb r0, [r2, #0x1c]
|
|
cmp r0, #3
|
|
beq _08085696
|
|
b _080857CE
|
|
_08085696:
|
|
ldr r1, _080856BC @ =gUnk_08120620
|
|
ldrb r0, [r2, #0x1d]
|
|
subs r0, #1
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r4, [r0]
|
|
ldr r0, _080856C0 @ =gLinkEntity
|
|
ldrb r0, [r0, #0x14]
|
|
movs r1, #6
|
|
ands r1, r0
|
|
cmp r1, #2
|
|
beq _080856DE
|
|
cmp r1, #2
|
|
bgt _080856C4
|
|
cmp r1, #0
|
|
beq _080856D6
|
|
b _080857CE
|
|
.align 2, 0
|
|
_080856B8: .4byte gLinkState
|
|
_080856BC: .4byte gUnk_08120620
|
|
_080856C0: .4byte gLinkEntity
|
|
_080856C4:
|
|
cmp r1, #4
|
|
beq _080856CE
|
|
cmp r1, #6
|
|
beq _080856E6
|
|
b _080857CE
|
|
_080856CE:
|
|
ldr r0, [r7, #0x70]
|
|
subs r0, r0, r4
|
|
str r0, [r7, #0x70]
|
|
b _080857CE
|
|
_080856D6:
|
|
ldr r0, [r7, #0x70]
|
|
adds r0, r0, r4
|
|
str r0, [r7, #0x70]
|
|
b _080857CE
|
|
_080856DE:
|
|
ldr r0, [r7, #0x6c]
|
|
subs r0, r0, r4
|
|
str r0, [r7, #0x6c]
|
|
b _080857CE
|
|
_080856E6:
|
|
ldr r0, [r7, #0x6c]
|
|
adds r0, r0, r4
|
|
str r0, [r7, #0x6c]
|
|
b _080857CE
|
|
_080856EE:
|
|
ldrb r0, [r7, #0xf]
|
|
cmp r0, #0
|
|
beq _080856FC
|
|
strb r1, [r7, #0xf]
|
|
movs r0, #0x83
|
|
bl PlaySFX
|
|
_080856FC:
|
|
adds r2, r7, #0
|
|
adds r2, #0x41
|
|
ldrb r1, [r2]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
mov r8, r2
|
|
cmp r0, #0x13
|
|
bne _080857C8
|
|
movs r0, #0x2e
|
|
ldrsh r1, [r6, r0]
|
|
ldr r3, _08085758 @ =gUnk_08126EE4
|
|
ldrb r2, [r6, #0x14]
|
|
movs r0, #0xe
|
|
ands r0, r2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
adds r5, r1, r0
|
|
movs r0, #0x32
|
|
ldrsh r1, [r6, r0]
|
|
movs r0, #1
|
|
orrs r0, r2
|
|
adds r0, r0, r3
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
adds r3, r1, r0
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r7, r1]
|
|
movs r2, #0x32
|
|
ldrsh r1, [r7, r2]
|
|
adds r2, r5, #0
|
|
bl sub_080045D4
|
|
strb r0, [r7, #0x15]
|
|
ldr r0, _0808575C @ =gLinkState
|
|
ldrb r0, [r0, #0x1d]
|
|
cmp r0, #2
|
|
beq _0808576A
|
|
cmp r0, #2
|
|
bgt _08085760
|
|
cmp r0, #1
|
|
beq _08085770
|
|
b _08085774
|
|
.align 2, 0
|
|
_08085758: .4byte gUnk_08126EE4
|
|
_0808575C: .4byte gLinkState
|
|
_08085760:
|
|
cmp r0, #3
|
|
bne _08085774
|
|
movs r4, #0x80
|
|
lsls r4, r4, #3
|
|
b _08085774
|
|
_0808576A:
|
|
movs r4, #0xc0
|
|
lsls r4, r4, #2
|
|
b _08085774
|
|
_08085770:
|
|
movs r4, #0x80
|
|
lsls r4, r4, #2
|
|
_08085774:
|
|
ldr r6, _080858A8 @ =gUnk_080C9160
|
|
ldrb r0, [r7, #0x15]
|
|
lsls r0, r0, #4
|
|
adds r0, r0, r6
|
|
movs r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
lsls r4, r4, #0x10
|
|
asrs r4, r4, #0x18
|
|
adds r1, r4, #0
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
movs r5, #0x80
|
|
lsls r5, r5, #1
|
|
adds r1, r5, #0
|
|
bl sub_0806FA04
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r1, [r7, #0x6c]
|
|
adds r1, r1, r0
|
|
str r1, [r7, #0x6c]
|
|
ldrb r0, [r7, #0x15]
|
|
lsls r0, r0, #4
|
|
adds r0, #0x80
|
|
adds r0, r0, r6
|
|
movs r2, #0
|
|
ldrsh r0, [r0, r2]
|
|
adds r1, r4, #0
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
adds r1, r5, #0
|
|
bl sub_0806FA04
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r1, [r7, #0x70]
|
|
subs r1, r1, r0
|
|
str r1, [r7, #0x70]
|
|
_080857C8:
|
|
movs r0, #0
|
|
mov r1, r8
|
|
strb r0, [r1]
|
|
_080857CE:
|
|
ldr r0, [r7, #0x2c]
|
|
str r0, [r7, #0x54]
|
|
ldr r0, [r7, #0x30]
|
|
str r0, [r7, #0x50]
|
|
ldr r0, [r7, #0x6c]
|
|
cmp r0, #0
|
|
bne _080857E4
|
|
ldr r0, [r7, #0x70]
|
|
cmp r0, #0
|
|
bne _080857E4
|
|
b _080859F4
|
|
_080857E4:
|
|
ldr r0, [r7, #0x70]
|
|
ldr r1, _080858AC @ =0xFFFF0000
|
|
cmp r0, r1
|
|
blt _080857F4
|
|
movs r1, #0x80
|
|
lsls r1, r1, #9
|
|
cmp r0, r1
|
|
ble _080857F6
|
|
_080857F4:
|
|
str r1, [r7, #0x70]
|
|
_080857F6:
|
|
ldr r0, [r7, #0x6c]
|
|
ldr r1, _080858AC @ =0xFFFF0000
|
|
cmp r0, r1
|
|
blt _08085806
|
|
movs r1, #0x80
|
|
lsls r1, r1, #9
|
|
cmp r0, r1
|
|
ble _08085808
|
|
_08085806:
|
|
str r1, [r7, #0x6c]
|
|
_08085808:
|
|
ldr r0, _080858B0 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #0xf
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0808581A
|
|
adds r0, r7, #0
|
|
bl sub_080A2AD4
|
|
_0808581A:
|
|
ldr r0, [r7, #0x2c]
|
|
ldr r1, [r7, #0x6c]
|
|
adds r5, r0, r1
|
|
ldr r1, [r7, #0x30]
|
|
ldr r2, [r7, #0x70]
|
|
adds r3, r1, r2
|
|
adds r2, r5, #0
|
|
bl sub_080045D4
|
|
strb r0, [r7, #0x15]
|
|
ldr r0, [r7, #0x6c]
|
|
lsls r0, r0, #8
|
|
asrs r0, r0, #0x10
|
|
movs r4, #0x80
|
|
lsls r4, r4, #1
|
|
adds r1, r4, #0
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
ldr r5, _080858A8 @ =gUnk_080C9160
|
|
ldrb r1, [r7, #0x15]
|
|
lsls r1, r1, #4
|
|
adds r1, r1, r5
|
|
movs r2, #0
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_0806FA04
|
|
strh r0, [r7, #0x24]
|
|
ldr r0, [r7, #0x70]
|
|
lsls r0, r0, #8
|
|
asrs r0, r0, #0x10
|
|
adds r1, r4, #0
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
ldrb r1, [r7, #0x15]
|
|
lsls r1, r1, #4
|
|
adds r1, #0x80
|
|
adds r1, r1, r5
|
|
movs r2, #0
|
|
ldrsh r1, [r1, r2]
|
|
bl sub_0806FA04
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
rsbs r4, r0, #0
|
|
movs r1, #0x24
|
|
ldrsh r0, [r7, r1]
|
|
cmp r4, r0
|
|
ble _08085884
|
|
strh r4, [r7, #0x24]
|
|
_08085884:
|
|
ldrb r0, [r7, #0xb]
|
|
cmp r0, #0
|
|
beq _080858BC
|
|
adds r0, r7, #0
|
|
adds r0, #0x7e
|
|
movs r2, #0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, _080858B4 @ =0x00000FFF
|
|
cmp r1, r0
|
|
bgt _080858B8
|
|
movs r0, #0x24
|
|
ldrsh r1, [r7, r0]
|
|
lsls r1, r1, #0xc
|
|
ldr r0, [r7, #0x7c]
|
|
adds r0, r0, r1
|
|
str r0, [r7, #0x7c]
|
|
b _080858E0
|
|
.align 2, 0
|
|
_080858A8: .4byte gUnk_080C9160
|
|
_080858AC: .4byte 0xFFFF0000
|
|
_080858B0: .4byte gUnk_030010A0
|
|
_080858B4: .4byte 0x00000FFF
|
|
_080858B8:
|
|
movs r0, #0
|
|
b _080858DE
|
|
_080858BC:
|
|
adds r0, r7, #0
|
|
adds r0, #0x7e
|
|
movs r2, #0
|
|
ldrsh r1, [r0, r2]
|
|
ldr r0, _080858D8 @ =0xFFFFF000
|
|
cmp r1, r0
|
|
ble _080858DC
|
|
movs r0, #0x24
|
|
ldrsh r1, [r7, r0]
|
|
lsls r1, r1, #0xc
|
|
ldr r0, [r7, #0x7c]
|
|
subs r0, r0, r1
|
|
str r0, [r7, #0x7c]
|
|
b _080858E0
|
|
.align 2, 0
|
|
_080858D8: .4byte 0xFFFFF000
|
|
_080858DC:
|
|
movs r0, #1
|
|
_080858DE:
|
|
strb r0, [r7, #0xb]
|
|
_080858E0:
|
|
adds r0, r7, #0
|
|
bl sub_08085EFC
|
|
adds r0, r7, #0
|
|
bl sub_080AF134
|
|
ldr r1, [r7, #0x54]
|
|
ldr r0, [r7, #0x2c]
|
|
cmp r1, r0
|
|
bne _0808590C
|
|
adds r0, r7, #0
|
|
adds r0, #0x85
|
|
ldrb r1, [r0]
|
|
adds r2, r0, #0
|
|
cmp r1, #2
|
|
bne _08085906
|
|
movs r0, #0
|
|
str r0, [r7, #0x6c]
|
|
b _08085916
|
|
_08085906:
|
|
adds r0, r1, #1
|
|
strb r0, [r2]
|
|
b _08085916
|
|
_0808590C:
|
|
adds r1, r7, #0
|
|
adds r1, #0x85
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r2, r1, #0
|
|
_08085916:
|
|
ldr r1, [r7, #0x50]
|
|
ldr r0, [r7, #0x30]
|
|
cmp r1, r0
|
|
bne _0808592E
|
|
ldrb r0, [r2]
|
|
cmp r0, #2
|
|
bne _0808592A
|
|
movs r0, #0
|
|
str r0, [r7, #0x70]
|
|
b _08085932
|
|
_0808592A:
|
|
adds r0, #1
|
|
b _08085930
|
|
_0808592E:
|
|
movs r0, #0
|
|
_08085930:
|
|
strb r0, [r2]
|
|
_08085932:
|
|
ldr r0, _0808595C @ =gLinkState
|
|
ldr r0, [r0, #0x30]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08085944
|
|
adds r0, r7, #0
|
|
bl sub_08085F1C
|
|
_08085944:
|
|
ldr r1, [r7, #0x6c]
|
|
cmp r1, #0
|
|
beq _08085998
|
|
cmp r1, #0
|
|
bge _0808596E
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
ble _08085960
|
|
movs r0, #0
|
|
b _08085964
|
|
.align 2, 0
|
|
_0808595C: .4byte gLinkState
|
|
_08085960:
|
|
adds r0, r1, #0
|
|
adds r0, #0x80
|
|
_08085964:
|
|
str r0, [r7, #0x6c]
|
|
ldrh r2, [r7, #0x2a]
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #4
|
|
b _08085982
|
|
_0808596E:
|
|
cmp r1, #0x7f
|
|
bhi _08085976
|
|
movs r0, #0
|
|
b _0808597A
|
|
_08085976:
|
|
adds r0, r1, #0
|
|
subs r0, #0x80
|
|
_0808597A:
|
|
str r0, [r7, #0x6c]
|
|
ldrh r2, [r7, #0x2a]
|
|
movs r1, #0xe0
|
|
lsls r1, r1, #8
|
|
_08085982:
|
|
adds r0, r1, #0
|
|
ands r0, r2
|
|
cmp r0, r1
|
|
bne _08085998
|
|
ldr r0, [r7, #0x6c]
|
|
cmp r0, #0
|
|
bge _08085992
|
|
adds r0, #3
|
|
_08085992:
|
|
asrs r0, r0, #2
|
|
rsbs r0, r0, #0
|
|
str r0, [r7, #0x6c]
|
|
_08085998:
|
|
ldr r1, [r7, #0x70]
|
|
cmp r1, #0
|
|
beq _080859E6
|
|
cmp r1, #0
|
|
bge _080859C0
|
|
movs r0, #0x80
|
|
rsbs r0, r0, #0
|
|
cmp r1, r0
|
|
ble _080859AE
|
|
movs r0, #0
|
|
b _080859B2
|
|
_080859AE:
|
|
adds r0, r1, #0
|
|
adds r0, #0x80
|
|
_080859B2:
|
|
str r0, [r7, #0x70]
|
|
ldrh r1, [r7, #0x2a]
|
|
movs r0, #0xe
|
|
ands r0, r1
|
|
cmp r0, #0xe
|
|
bne _080859E6
|
|
b _080859D8
|
|
_080859C0:
|
|
cmp r1, #0x7f
|
|
bhi _080859C8
|
|
movs r0, #0
|
|
b _080859CC
|
|
_080859C8:
|
|
adds r0, r1, #0
|
|
subs r0, #0x80
|
|
_080859CC:
|
|
str r0, [r7, #0x70]
|
|
ldrh r1, [r7, #0x2a]
|
|
movs r0, #0xe0
|
|
ands r0, r1
|
|
cmp r0, #0xe0
|
|
bne _080859E6
|
|
_080859D8:
|
|
ldr r0, [r7, #0x70]
|
|
cmp r0, #0
|
|
bge _080859E0
|
|
adds r0, #3
|
|
_080859E0:
|
|
asrs r0, r0, #2
|
|
rsbs r0, r0, #0
|
|
str r0, [r7, #0x70]
|
|
_080859E6:
|
|
adds r0, r7, #0
|
|
bl sub_08085D28
|
|
adds r0, r7, #0
|
|
bl sub_08085D60
|
|
b _08085A0A
|
|
_080859F4:
|
|
ldr r0, _08085A18 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #0x1f
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08085A0A
|
|
adds r0, r7, #0
|
|
movs r1, #8
|
|
movs r2, #0xa
|
|
bl sub_080A2AF4
|
|
_08085A0A:
|
|
adds r0, r7, #0
|
|
bl sub_08085F48
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_08085A18: .4byte gUnk_030010A0
|
|
|
|
thumb_func_start sub_08085A1C
|
|
sub_08085A1C: @ 0x08085A1C
|
|
push {lr}
|
|
ldr r2, _08085A3C @ =gUnk_0812062C
|
|
ldrb r1, [r0, #0xd]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
ldr r2, _08085A40 @ =gLinkState
|
|
ldr r0, [r2, #0x30]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r2, #0x30]
|
|
bl sub_08078B48
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08085A3C: .4byte gUnk_0812062C
|
|
_08085A40: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08085A44
|
|
sub_08085A44: @ 0x08085A44
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
strh r0, [r4, #0x24]
|
|
adds r0, r4, #0
|
|
movs r1, #0x10
|
|
movs r2, #0x18
|
|
bl sub_080002B4
|
|
cmp r0, #0x11
|
|
beq _08085A62
|
|
movs r0, #0x18
|
|
strb r0, [r4, #0x15]
|
|
b _08085A82
|
|
_08085A62:
|
|
movs r1, #0x10
|
|
rsbs r1, r1, #0
|
|
adds r0, r4, #0
|
|
movs r2, #0x18
|
|
bl sub_080002B4
|
|
cmp r0, #0x11
|
|
beq _08085A78
|
|
movs r0, #8
|
|
strb r0, [r4, #0x15]
|
|
b _08085A82
|
|
_08085A78:
|
|
movs r0, #0x10
|
|
strb r0, [r4, #0x15]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xd]
|
|
b _08085A94
|
|
_08085A82:
|
|
adds r0, r4, #0
|
|
bl sub_08085EFC
|
|
adds r0, r4, #0
|
|
bl sub_080AF134
|
|
adds r0, r4, #0
|
|
bl sub_08085F1C
|
|
_08085A94:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08085A98
|
|
sub_08085A98: @ 0x08085A98
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08085EFC
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
adds r0, r4, #0
|
|
bl sub_08085F1C
|
|
ldr r1, [r4, #0x78]
|
|
ldr r0, _08085B00 @ =0x007FFFFF
|
|
cmp r1, r0
|
|
bls _08085ACC
|
|
ldr r2, _08085B04 @ =0xFFFE0000
|
|
adds r0, r1, r2
|
|
str r0, [r4, #0x78]
|
|
adds r0, r4, #0
|
|
adds r0, #0x7a
|
|
ldrh r2, [r0]
|
|
adds r0, #4
|
|
ldrh r3, [r0]
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl sub_0805EC9C
|
|
_08085ACC:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0x18
|
|
bl sub_080002B4
|
|
cmp r0, #0x11
|
|
beq _08085B34
|
|
movs r0, #2
|
|
strb r0, [r4, #0xd]
|
|
ldr r0, _08085B08 @ =gUnk_02033A90
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0x1b
|
|
bne _08085B10
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #0xd0
|
|
strh r0, [r4, #0x32]
|
|
ldr r0, _08085B0C @ =0x0000FF30
|
|
strh r0, [r4, #0x36]
|
|
adds r1, r4, #0
|
|
adds r1, #0x82
|
|
movs r0, #0x46
|
|
strh r0, [r1]
|
|
movs r0, #0x73
|
|
bl sub_0807CCB4
|
|
b _08085B22
|
|
.align 2, 0
|
|
_08085B00: .4byte 0x007FFFFF
|
|
_08085B04: .4byte 0xFFFE0000
|
|
_08085B08: .4byte gUnk_02033A90
|
|
_08085B0C: .4byte 0x0000FF30
|
|
_08085B10:
|
|
ldrh r0, [r4, #0x32]
|
|
adds r0, #0x40
|
|
strh r0, [r4, #0x32]
|
|
ldr r0, _08085B38 @ =0x0000FFC0
|
|
strh r0, [r4, #0x36]
|
|
adds r1, r4, #0
|
|
adds r1, #0x82
|
|
movs r0, #0xf
|
|
strh r0, [r1]
|
|
_08085B22:
|
|
adds r0, r4, #0
|
|
movs r1, #0x2b
|
|
movs r2, #0
|
|
movs r3, #0
|
|
bl CreateObjectWithParent
|
|
ldr r0, _08085B3C @ =0x0000012D
|
|
bl PlaySFX
|
|
_08085B34:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08085B38: .4byte 0x0000FFC0
|
|
_08085B3C: .4byte 0x0000012D
|
|
|
|
thumb_func_start sub_08085B40
|
|
sub_08085B40: @ 0x08085B40
|
|
push {r4, r5, lr}
|
|
adds r5, r0, #0
|
|
ldr r0, [r5, #0x34]
|
|
cmp r0, #0
|
|
beq _08085BB4
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
adds r0, r5, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
beq _08085BE8
|
|
ldr r1, [r5, #0x78]
|
|
ldr r0, _08085B9C @ =0x011FFFFF
|
|
cmp r1, r0
|
|
bhi _08085B7A
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0xd
|
|
adds r0, r1, r2
|
|
str r0, [r5, #0x78]
|
|
adds r0, r5, #0
|
|
adds r0, #0x7a
|
|
ldrh r2, [r0]
|
|
adds r0, #4
|
|
ldrh r3, [r0]
|
|
adds r0, r5, #0
|
|
adds r1, r2, #0
|
|
bl sub_0805EC9C
|
|
_08085B7A:
|
|
ldr r4, _08085BA0 @ =gLinkEntity
|
|
ldrh r3, [r5, #0x32]
|
|
ldrh r0, [r5, #0x36]
|
|
adds r0, r3, r0
|
|
adds r1, r5, #0
|
|
adds r1, #0x74
|
|
ldrh r1, [r1]
|
|
subs r2, r0, r1
|
|
strh r2, [r4, #0x32]
|
|
ldr r0, _08085BA4 @ =gUnk_02033A90
|
|
ldrb r0, [r0, #1]
|
|
cmp r0, #0x1b
|
|
bne _08085BA8
|
|
subs r0, r3, r1
|
|
adds r1, r2, #0
|
|
adds r1, #0xd0
|
|
b _08085BAE
|
|
.align 2, 0
|
|
_08085B9C: .4byte 0x011FFFFF
|
|
_08085BA0: .4byte gLinkEntity
|
|
_08085BA4: .4byte gUnk_02033A90
|
|
_08085BA8:
|
|
subs r0, r3, r1
|
|
adds r1, r2, #0
|
|
adds r1, #0x40
|
|
_08085BAE:
|
|
subs r0, r0, r1
|
|
strh r0, [r4, #0x36]
|
|
b _08085BE8
|
|
_08085BB4:
|
|
adds r0, r5, #0
|
|
bl sub_0800455E
|
|
adds r0, r5, #0
|
|
bl sub_080002B8
|
|
cmp r0, #0xd
|
|
bne _08085BE8
|
|
ldr r4, _08085C50 @ =gLinkEntity
|
|
adds r0, r4, #0
|
|
bl sub_0800455E
|
|
adds r0, r5, #0
|
|
bl sub_08085CDC
|
|
adds r0, r4, #0
|
|
adds r1, r5, #0
|
|
bl sub_080045C4
|
|
strb r0, [r5, #0x15]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #1
|
|
ldrb r2, [r5, #0x15]
|
|
adds r0, r4, #0
|
|
bl sub_0806F5BC
|
|
_08085BE8:
|
|
adds r1, r5, #0
|
|
adds r1, #0x82
|
|
ldrh r0, [r1]
|
|
cmp r0, #0
|
|
bne _08085C54
|
|
ldr r4, _08085C50 @ =gLinkEntity
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
adds r0, r4, #0
|
|
bl sub_08003FC4
|
|
cmp r0, #0
|
|
bne _08085C58
|
|
adds r0, r4, #0
|
|
bl sub_0800455E
|
|
adds r0, r5, #0
|
|
bl sub_08085F1C
|
|
movs r0, #1
|
|
strb r0, [r5, #0xc]
|
|
movs r0, #4
|
|
strb r0, [r5, #0xf]
|
|
_08085C16:
|
|
adds r0, r5, #0
|
|
movs r1, #8
|
|
movs r2, #0xa
|
|
bl sub_080A2AF4
|
|
ldrb r0, [r5, #0xf]
|
|
subs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
lsls r0, r0, #0x18
|
|
lsrs r2, r0, #0x18
|
|
cmp r2, #0
|
|
bne _08085C16
|
|
movs r0, #1
|
|
strb r0, [r5, #0xf]
|
|
ldrb r1, [r5, #0xe]
|
|
movs r0, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r5, #0xe]
|
|
str r2, [r5, #0x70]
|
|
str r2, [r5, #0x6c]
|
|
adds r0, r5, #0
|
|
bl sub_080002B8
|
|
cmp r0, #0xd
|
|
bne _08085C58
|
|
movs r0, #4
|
|
strb r0, [r5, #0xc]
|
|
b _08085C58
|
|
.align 2, 0
|
|
_08085C50: .4byte gLinkEntity
|
|
_08085C54:
|
|
subs r0, #1
|
|
strh r0, [r1]
|
|
_08085C58:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08085C5C
|
|
sub_08085C5C: @ 0x08085C5C
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r5, _08085CA0 @ =gLinkEntity
|
|
adds r1, r5, #0
|
|
movs r2, #0x18
|
|
bl sub_0806FC80
|
|
cmp r0, #0
|
|
beq _08085CAE
|
|
adds r0, r4, #0
|
|
bl sub_0806F69C
|
|
ldrh r0, [r4, #0x24]
|
|
strh r0, [r5, #0x24]
|
|
ldrb r0, [r4, #0x15]
|
|
strb r0, [r5, #0x15]
|
|
adds r0, r5, #0
|
|
bl sub_0806F69C
|
|
ldr r2, _08085CA4 @ =gLinkState
|
|
ldr r0, [r2, #0x30]
|
|
movs r1, #2
|
|
orrs r0, r1
|
|
str r0, [r2, #0x30]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
ldrb r0, [r0]
|
|
cmp r0, #1
|
|
bne _08085CA8
|
|
adds r0, r5, #0
|
|
bl sub_0800455E
|
|
b _08085CAE
|
|
.align 2, 0
|
|
_08085CA0: .4byte gLinkEntity
|
|
_08085CA4: .4byte gLinkState
|
|
_08085CA8:
|
|
adds r0, r5, #0
|
|
bl sub_08004542
|
|
_08085CAE:
|
|
ldr r3, _08085CD4 @ =gRoomControls
|
|
ldrh r0, [r3]
|
|
cmp r0, #0
|
|
bne _08085CD2
|
|
ldrb r1, [r4, #0x10]
|
|
movs r0, #0xdf
|
|
ands r0, r1
|
|
strb r0, [r4, #0x10]
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
ldrb r1, [r4, #0x11]
|
|
lsrs r2, r1, #4
|
|
subs r0, #0x11
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x11]
|
|
ldr r0, _08085CD8 @ =gLinkEntity
|
|
str r0, [r3, #0x30]
|
|
_08085CD2:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08085CD4: .4byte gRoomControls
|
|
_08085CD8: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08085CDC
|
|
sub_08085CDC: @ 0x08085CDC
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r0, [r4, #0x78]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #0xd
|
|
adds r0, r0, r1
|
|
str r0, [r4, #0x78]
|
|
ldr r1, _08085D04 @ =0x03FFFFFF
|
|
cmp r0, r1
|
|
bhi _08085D08
|
|
adds r0, r4, #0
|
|
adds r0, #0x7a
|
|
ldrh r2, [r0]
|
|
adds r0, #4
|
|
ldrh r3, [r0]
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl sub_0805EC9C
|
|
b _08085D0C
|
|
.align 2, 0
|
|
_08085D04: .4byte 0x03FFFFFF
|
|
_08085D08:
|
|
bl sub_0805E780
|
|
_08085D0C:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08085D10
|
|
sub_08085D10: @ 0x08085D10
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_0805EABC
|
|
cmp r0, #0
|
|
beq _08085D26
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0807CCB4
|
|
bl sub_0805E780
|
|
_08085D26:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08085D28
|
|
sub_08085D28: @ 0x08085D28
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _08085D5C @ =gLinkState
|
|
adds r0, r1, #0
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x13
|
|
beq _08085D5A
|
|
ldr r0, [r1, #0x30]
|
|
movs r5, #2
|
|
ands r0, r5
|
|
cmp r0, #0
|
|
beq _08085D5A
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
movs r2, #0x18
|
|
bl sub_080002B4
|
|
cmp r0, #0x11
|
|
bne _08085D5A
|
|
movs r0, #0
|
|
strb r5, [r4, #0xc]
|
|
strb r0, [r4, #0xd]
|
|
bl sub_08078B48
|
|
_08085D5A:
|
|
pop {r4, r5, pc}
|
|
.align 2, 0
|
|
_08085D5C: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08085D60
|
|
sub_08085D60: @ 0x08085D60
|
|
push {r4, r5, r6, r7, lr}
|
|
mov r7, r8
|
|
push {r7}
|
|
adds r5, r0, #0
|
|
ldr r2, _08085D94 @ =gLinkState
|
|
ldr r0, [r2, #0x30]
|
|
movs r1, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _08085E64
|
|
adds r0, r2, #0
|
|
adds r0, #0xa8
|
|
ldrb r0, [r0]
|
|
cmp r0, #0x12
|
|
beq _08085E64
|
|
ldrb r0, [r2, #2]
|
|
cmp r0, #0
|
|
bne _08085E64
|
|
ldrb r1, [r5, #0x15]
|
|
movs r0, #7
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08085D98
|
|
ldrb r6, [r5, #0x15]
|
|
adds r4, r6, #0
|
|
b _08085DB0
|
|
.align 2, 0
|
|
_08085D94: .4byte gLinkState
|
|
_08085D98:
|
|
movs r0, #0x10
|
|
ands r0, r1
|
|
movs r4, #8
|
|
cmp r0, #0
|
|
beq _08085DA4
|
|
movs r4, #0x18
|
|
_08085DA4:
|
|
ldrb r0, [r5, #0x15]
|
|
subs r0, #8
|
|
movs r6, #0x10
|
|
cmp r0, #0x10
|
|
ble _08085DB0
|
|
movs r6, #0
|
|
_08085DB0:
|
|
cmp r4, #0x18
|
|
beq _08085DB8
|
|
cmp r4, #8
|
|
bne _08085E20
|
|
_08085DB8:
|
|
lsrs r3, r4, #2
|
|
ldr r1, _08085E10 @ =gUnk_08120638
|
|
adds r0, r3, r1
|
|
movs r7, #0
|
|
ldrsb r7, [r0, r7]
|
|
adds r0, r3, #1
|
|
adds r0, r0, r1
|
|
ldrb r0, [r0]
|
|
lsls r0, r0, #0x18
|
|
asrs r0, r0, #0x18
|
|
mov r8, r0
|
|
adds r0, r5, #0
|
|
adds r1, r7, #0
|
|
mov r2, r8
|
|
bl sub_080002CC
|
|
cmp r0, #0xff
|
|
bne _08085E20
|
|
movs r1, #0x2e
|
|
ldrsh r0, [r5, r1]
|
|
ldr r2, _08085E14 @ =gRoomControls
|
|
ldrh r1, [r2, #6]
|
|
subs r0, r0, r1
|
|
adds r0, r0, r7
|
|
movs r3, #0x32
|
|
ldrsh r1, [r5, r3]
|
|
ldrh r2, [r2, #8]
|
|
subs r1, r1, r2
|
|
add r1, r8
|
|
adds r2, r4, #0
|
|
movs r3, #5
|
|
bl sub_080806BC
|
|
cmp r0, #0
|
|
bne _08085E1C
|
|
ldr r0, _08085E18 @ =gLinkEntity
|
|
lsrs r1, r4, #3
|
|
bl sub_0807BD14
|
|
cmp r0, #0
|
|
beq _08085E20
|
|
strb r4, [r5, #0x15]
|
|
b _08085E52
|
|
.align 2, 0
|
|
_08085E10: .4byte gUnk_08120638
|
|
_08085E14: .4byte gRoomControls
|
|
_08085E18: .4byte gLinkEntity
|
|
_08085E1C:
|
|
strb r4, [r5, #0x15]
|
|
b _08085E6C
|
|
_08085E20:
|
|
cmp r6, #0
|
|
beq _08085E28
|
|
cmp r6, #0x10
|
|
bne _08085E6C
|
|
_08085E28:
|
|
lsrs r3, r6, #2
|
|
ldr r2, _08085E5C @ =gUnk_08120638
|
|
adds r0, r3, r2
|
|
movs r1, #0
|
|
ldrsb r1, [r0, r1]
|
|
adds r0, r3, #1
|
|
adds r0, r0, r2
|
|
movs r2, #0
|
|
ldrsb r2, [r0, r2]
|
|
adds r0, r5, #0
|
|
bl sub_080002CC
|
|
cmp r0, #0xff
|
|
bne _08085E6C
|
|
ldr r0, _08085E60 @ =gLinkEntity
|
|
lsrs r1, r6, #3
|
|
bl sub_0807BD14
|
|
cmp r0, #0
|
|
beq _08085E6C
|
|
strb r6, [r5, #0x15]
|
|
_08085E52:
|
|
adds r0, r5, #0
|
|
bl sub_08085E74
|
|
b _08085E6C
|
|
.align 2, 0
|
|
_08085E5C: .4byte gUnk_08120638
|
|
_08085E60: .4byte gLinkEntity
|
|
_08085E64:
|
|
ldrb r1, [r5, #0x10]
|
|
movs r0, #0xdf
|
|
ands r0, r1
|
|
strb r0, [r5, #0x10]
|
|
_08085E6C:
|
|
pop {r3}
|
|
mov r8, r3
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08085E74
|
|
sub_08085E74: @ 0x08085E74
|
|
push {lr}
|
|
adds r2, r0, #0
|
|
ldrb r1, [r2, #0x10]
|
|
movs r0, #0x20
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x10]
|
|
ldrb r1, [r2, #0x11]
|
|
movs r0, #0x10
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
movs r1, #6
|
|
orrs r0, r1
|
|
strb r0, [r2, #0x11]
|
|
movs r0, #3
|
|
strb r0, [r2, #0xc]
|
|
ldrb r0, [r2, #0x15]
|
|
cmp r0, #8
|
|
beq _08085EB8
|
|
cmp r0, #8
|
|
bgt _08085EA2
|
|
cmp r0, #0
|
|
beq _08085EAC
|
|
b _08085EBE
|
|
_08085EA2:
|
|
cmp r0, #0x10
|
|
beq _08085EB2
|
|
cmp r0, #0x18
|
|
beq _08085EB8
|
|
b _08085EBE
|
|
_08085EAC:
|
|
movs r0, #0x90
|
|
lsls r0, r0, #1
|
|
b _08085EBC
|
|
_08085EB2:
|
|
movs r0, #0x9c
|
|
lsls r0, r0, #1
|
|
b _08085EBC
|
|
_08085EB8:
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
_08085EBC:
|
|
strh r0, [r2, #0x24]
|
|
_08085EBE:
|
|
movs r0, #0
|
|
str r0, [r2, #0x70]
|
|
str r0, [r2, #0x6c]
|
|
strh r0, [r2, #0x2c]
|
|
strh r0, [r2, #0x30]
|
|
ldr r1, _08085EF0 @ =gLinkEntity
|
|
strh r0, [r1, #0x2c]
|
|
strh r0, [r1, #0x30]
|
|
ldrb r0, [r2, #0x15]
|
|
strb r0, [r1, #0x15]
|
|
ldr r1, _08085EF4 @ =gLinkState
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r1, #8]
|
|
ldr r0, _08085EF8 @ =gRoomControls
|
|
str r2, [r0, #0x30]
|
|
ldr r0, [r1, #0x2c]
|
|
cmp r0, #0
|
|
beq _08085EE8
|
|
bl sub_0805E7BC
|
|
_08085EE8:
|
|
bl sub_08077B2C
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08085EF0: .4byte gLinkEntity
|
|
_08085EF4: .4byte gLinkState
|
|
_08085EF8: .4byte gRoomControls
|
|
|
|
thumb_func_start sub_08085EFC
|
|
sub_08085EFC: @ 0x08085EFC
|
|
ldr r3, _08085F18 @ =gLinkEntity
|
|
ldrh r1, [r0, #0x2e]
|
|
ldrh r2, [r3, #0x2e]
|
|
subs r1, r1, r2
|
|
adds r2, r0, #0
|
|
adds r2, #0x76
|
|
strh r1, [r2]
|
|
ldrh r1, [r0, #0x32]
|
|
ldrh r2, [r3, #0x32]
|
|
subs r1, r1, r2
|
|
adds r0, #0x74
|
|
strh r1, [r0]
|
|
bx lr
|
|
.align 2, 0
|
|
_08085F18: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08085F1C
|
|
sub_08085F1C: @ 0x08085F1C
|
|
push {lr}
|
|
adds r3, r0, #0
|
|
ldr r2, _08085F44 @ =gLinkEntity
|
|
adds r1, r3, #0
|
|
adds r1, #0x76
|
|
ldrh r0, [r3, #0x2e]
|
|
ldrh r1, [r1]
|
|
subs r0, r0, r1
|
|
strh r0, [r2, #0x2e]
|
|
adds r1, r3, #0
|
|
adds r1, #0x74
|
|
ldrh r0, [r3, #0x32]
|
|
ldrh r1, [r1]
|
|
subs r0, r0, r1
|
|
strh r0, [r2, #0x32]
|
|
ldrb r0, [r3, #0x15]
|
|
bl sub_0807A5B8
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08085F44: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08085F48
|
|
sub_08085F48: @ 0x08085F48
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
ldrb r2, [r4, #0xe]
|
|
movs r0, #0x80
|
|
ands r0, r2
|
|
lsls r0, r0, #0x18
|
|
lsrs r3, r0, #0x18
|
|
cmp r3, #0
|
|
beq _08085F8C
|
|
ldr r5, _08085F80 @ =gLinkState
|
|
ldrb r0, [r5, #0x12]
|
|
cmp r0, #0x17
|
|
bne _08085F6A
|
|
bl sub_08078F60
|
|
movs r0, #0x19
|
|
strb r0, [r5, #0x12]
|
|
_08085F6A:
|
|
movs r0, #0x83
|
|
bl PlaySFX
|
|
ldr r1, [r4, #0x78]
|
|
ldr r0, _08085F84 @ =0x0127FFFF
|
|
cmp r1, r0
|
|
bhi _08085F88
|
|
movs r2, #0x80
|
|
lsls r2, r2, #0xc
|
|
b _08085FF8
|
|
.align 2, 0
|
|
_08085F80: .4byte gLinkState
|
|
_08085F84: .4byte 0x0127FFFF
|
|
_08085F88:
|
|
movs r0, #0
|
|
b _08086006
|
|
_08085F8C:
|
|
ldr r0, _08085FAC @ =gLinkState
|
|
ldr r1, [r0, #0x30]
|
|
movs r0, #2
|
|
ands r1, r0
|
|
cmp r1, #0
|
|
beq _08085FCC
|
|
lsls r0, r2, #0x18
|
|
cmp r0, #0
|
|
beq _08085FB8
|
|
ldr r1, [r4, #0x78]
|
|
ldr r0, _08085FB0 @ =0x011FFFFF
|
|
cmp r1, r0
|
|
bhi _08085FB4
|
|
movs r2, #0x80
|
|
lsls r2, r2, #8
|
|
b _08085FF8
|
|
.align 2, 0
|
|
_08085FAC: .4byte gLinkState
|
|
_08085FB0: .4byte 0x011FFFFF
|
|
_08085FB4:
|
|
strb r3, [r4, #0xe]
|
|
b _08086008
|
|
_08085FB8:
|
|
ldr r1, [r4, #0x78]
|
|
movs r0, #0x88
|
|
lsls r0, r0, #0x11
|
|
cmp r1, r0
|
|
bls _08086004
|
|
ldr r2, _08085FC8 @ =0xFFFF8000
|
|
b _08085FF8
|
|
.align 2, 0
|
|
_08085FC8: .4byte 0xFFFF8000
|
|
_08085FCC:
|
|
lsls r0, r2, #0x18
|
|
cmp r0, #0
|
|
beq _08085FEC
|
|
ldr r2, [r4, #0x78]
|
|
ldr r0, _08085FE4 @ =0x010FFFFF
|
|
cmp r2, r0
|
|
bhi _08085FE8
|
|
movs r1, #0x80
|
|
lsls r1, r1, #7
|
|
adds r0, r2, r1
|
|
str r0, [r4, #0x78]
|
|
b _08086008
|
|
.align 2, 0
|
|
_08085FE4: .4byte 0x010FFFFF
|
|
_08085FE8:
|
|
strb r1, [r4, #0xe]
|
|
b _08086008
|
|
_08085FEC:
|
|
ldr r1, [r4, #0x78]
|
|
movs r0, #0x83
|
|
lsls r0, r0, #0x11
|
|
cmp r1, r0
|
|
bls _08086004
|
|
ldr r2, _08086000 @ =0xFFFFC000
|
|
_08085FF8:
|
|
adds r0, r1, r2
|
|
str r0, [r4, #0x78]
|
|
b _08086008
|
|
.align 2, 0
|
|
_08086000: .4byte 0xFFFFC000
|
|
_08086004:
|
|
movs r0, #1
|
|
_08086006:
|
|
strb r0, [r4, #0xe]
|
|
_08086008:
|
|
adds r0, r4, #0
|
|
adds r0, #0x7a
|
|
ldrh r2, [r0]
|
|
adds r0, #4
|
|
ldrh r3, [r0]
|
|
adds r0, r4, #0
|
|
adds r1, r2, #0
|
|
bl sub_0805EC9C
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_0808601C
|
|
sub_0808601C: @ 0x0808601C
|
|
push {lr}
|
|
ldr r2, _08086030 @ =gUnk_08120648
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_08086030: .4byte gUnk_08120648
|
|
|
|
thumb_func_start sub_08086034
|
|
sub_08086034: @ 0x08086034
|
|
push {lr}
|
|
movs r3, #1
|
|
movs r1, #1
|
|
strb r1, [r0, #0xc]
|
|
ldrb r2, [r0, #0x18]
|
|
subs r1, #5
|
|
ands r1, r2
|
|
orrs r1, r3
|
|
strb r1, [r0, #0x18]
|
|
adds r1, r0, #0
|
|
adds r1, #0x58
|
|
ldrb r1, [r1]
|
|
bl UpdateSprite
|
|
pop {pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_08086054
|
|
sub_08086054: @ 0x08086054
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _08086064
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_08086064:
|
|
ldrb r0, [r4, #0xb]
|
|
cmp r0, #0
|
|
beq _0808607C
|
|
ldrb r2, [r4, #0x18]
|
|
lsls r1, r2, #0x1e
|
|
lsrs r1, r1, #0x1e
|
|
movs r0, #1
|
|
eors r1, r0
|
|
subs r0, #5
|
|
ands r0, r2
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x18]
|
|
_0808607C:
|
|
ldrb r0, [r4, #0xe]
|
|
lsls r1, r0, #0x18
|
|
cmp r1, #0
|
|
blt _080860AA
|
|
cmp r1, #0
|
|
beq _08086098
|
|
subs r0, #1
|
|
strb r0, [r4, #0xe]
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
bne _080860AA
|
|
bl sub_0805E780
|
|
b _080860AA
|
|
_08086098:
|
|
adds r0, r4, #0
|
|
adds r0, #0x5a
|
|
ldrb r1, [r0]
|
|
movs r0, #0x80
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
beq _080860AA
|
|
bl sub_0805E780
|
|
_080860AA:
|
|
ldr r1, [r4, #0x54]
|
|
cmp r1, #0
|
|
beq _080860BC
|
|
ldr r0, [r1, #0x2c]
|
|
str r0, [r4, #0x2c]
|
|
ldr r0, [r1, #0x30]
|
|
str r0, [r4, #0x30]
|
|
ldr r0, [r1, #0x34]
|
|
str r0, [r4, #0x34]
|
|
_080860BC:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_080860C0
|
|
sub_080860C0: @ 0x080860C0
|
|
push {lr}
|
|
ldr r2, _080860D4 @ =gUnk_08120650
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080860D4: .4byte gUnk_08120650
|
|
|
|
thumb_func_start sub_080860D8
|
|
sub_080860D8: @ 0x080860D8
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
movs r2, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
adds r0, #0xff
|
|
strh r0, [r4, #0x24]
|
|
ldrb r1, [r4, #0x18]
|
|
movs r0, #4
|
|
rsbs r0, r0, #0
|
|
ands r0, r1
|
|
orrs r0, r2
|
|
strb r0, [r4, #0x18]
|
|
ldrb r0, [r4, #0xa]
|
|
strb r0, [r4, #0x1e]
|
|
adds r2, r4, #0
|
|
adds r2, #0x29
|
|
ldrb r0, [r2]
|
|
movs r1, #7
|
|
orrs r0, r1
|
|
strb r0, [r2]
|
|
ldrb r0, [r4, #0xb]
|
|
bl sub_0804B128
|
|
str r0, [r4, #0x54]
|
|
adds r1, r4, #0
|
|
adds r1, #0x54
|
|
adds r2, r4, #0
|
|
adds r2, #0x70
|
|
adds r0, r4, #0
|
|
bl sub_080A2CC0
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
|
|
thumb_func_start sub_0808611C
|
|
sub_0808611C: @ 0x0808611C
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
bl sub_08086168
|
|
adds r1, r0, #0
|
|
ldrb r0, [r4, #0xe]
|
|
cmp r0, #0
|
|
beq _0808613C
|
|
ldr r2, [r4, #0x50]
|
|
ldrb r0, [r2, #0xe]
|
|
cmp r0, #0
|
|
bne _08086144
|
|
cmp r1, #0
|
|
beq _0808613C
|
|
adds r0, #1
|
|
strb r0, [r2, #0xe]
|
|
_0808613C:
|
|
adds r0, r4, #0
|
|
bl sub_080A2BE4
|
|
b _0808614C
|
|
_08086144:
|
|
adds r0, r4, #0
|
|
movs r1, #0
|
|
bl sub_080A2BE4
|
|
_0808614C:
|
|
adds r2, r4, #0
|
|
adds r2, #0x70
|
|
ldrh r0, [r2]
|
|
subs r0, #1
|
|
strh r0, [r2]
|
|
lsls r0, r0, #0x10
|
|
cmp r0, #0
|
|
bne _08086166
|
|
adds r1, r4, #0
|
|
adds r1, #0x54
|
|
adds r0, r4, #0
|
|
bl sub_080A2CC0
|
|
_08086166:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_08086168
|
|
sub_08086168: @ 0x08086168
|
|
push {r4, lr}
|
|
ldrb r1, [r0, #0xa]
|
|
lsls r1, r1, #1
|
|
ldr r2, _0808619C @ =gUnk_08120658
|
|
adds r1, r1, r2
|
|
ldr r4, _080861A0 @ =gLinkEntity
|
|
ldrb r2, [r1]
|
|
ldrb r3, [r1, #1]
|
|
adds r1, r4, #0
|
|
bl sub_080041A0
|
|
cmp r0, #0
|
|
beq _080861A8
|
|
bl sub_08079F8C
|
|
cmp r0, #0
|
|
beq _080861A8
|
|
ldr r0, _080861A4 @ =gLinkState
|
|
movs r1, #1
|
|
strb r1, [r0, #0x14]
|
|
movs r1, #0x36
|
|
ldrsh r0, [r4, r1]
|
|
cmp r0, #0
|
|
bne _080861A8
|
|
movs r0, #1
|
|
b _080861AA
|
|
.align 2, 0
|
|
_0808619C: .4byte gUnk_08120658
|
|
_080861A0: .4byte gLinkEntity
|
|
_080861A4: .4byte gLinkState
|
|
_080861A8:
|
|
movs r0, #0
|
|
_080861AA:
|
|
pop {r4, pc}
|
|
|
|
thumb_func_start sub_080861AC
|
|
sub_080861AC: @ 0x080861AC
|
|
push {lr}
|
|
ldr r2, _080861C0 @ =gUnk_08120660
|
|
ldrb r1, [r0, #0xc]
|
|
lsls r1, r1, #2
|
|
adds r1, r1, r2
|
|
ldr r1, [r1]
|
|
bl _call_via_r1
|
|
pop {pc}
|
|
.align 2, 0
|
|
_080861C0: .4byte gUnk_08120660
|
|
|
|
thumb_func_start sub_080861C4
|
|
sub_080861C4: @ 0x080861C4
|
|
push {r4, r5, r6, lr}
|
|
adds r4, r0, #0
|
|
movs r5, #1
|
|
movs r0, #1
|
|
strb r0, [r4, #0xc]
|
|
movs r0, #0x80
|
|
strh r0, [r4, #0x24]
|
|
ldr r0, _08086230 @ =gLinkEntity
|
|
mov ip, r0
|
|
ldrb r1, [r0, #0x19]
|
|
lsrs r1, r1, #6
|
|
lsls r1, r1, #6
|
|
ldrb r3, [r4, #0x19]
|
|
movs r2, #0x3f
|
|
adds r0, r2, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x19]
|
|
mov r0, ip
|
|
adds r0, #0x29
|
|
ldrb r1, [r0]
|
|
lsls r1, r1, #0x1d
|
|
adds r6, r4, #0
|
|
adds r6, #0x29
|
|
lsrs r1, r1, #0x1d
|
|
ldrb r3, [r6]
|
|
movs r0, #8
|
|
rsbs r0, r0, #0
|
|
ands r0, r3
|
|
orrs r0, r1
|
|
strb r0, [r6]
|
|
mov r0, ip
|
|
adds r0, #0x38
|
|
ldrb r1, [r0]
|
|
adds r0, r4, #0
|
|
adds r0, #0x38
|
|
strb r1, [r0]
|
|
mov r1, ip
|
|
ldrb r0, [r1, #0x1b]
|
|
lsrs r0, r0, #6
|
|
lsls r0, r0, #6
|
|
ldrb r1, [r4, #0x1b]
|
|
ands r2, r1
|
|
orrs r2, r0
|
|
strb r2, [r4, #0x1b]
|
|
bl Random
|
|
ands r0, r5
|
|
strb r0, [r4, #0xa]
|
|
adds r0, r4, #0
|
|
movs r1, #0x11
|
|
bl UpdateSprite
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_08086230: .4byte gLinkEntity
|
|
|
|
thumb_func_start sub_08086234
|
|
sub_08086234: @ 0x08086234
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
beq _08086258
|
|
ldr r0, _08086254 @ =gUnk_030010A0
|
|
ldr r0, [r0]
|
|
movs r1, #1
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _0808625E
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
b _0808625E
|
|
.align 2, 0
|
|
_08086254: .4byte gUnk_030010A0
|
|
_08086258:
|
|
adds r0, r4, #0
|
|
bl sub_08004274
|
|
_0808625E:
|
|
adds r0, r4, #0
|
|
bl sub_0806F3E4
|
|
cmp r0, #0
|
|
beq _0808626E
|
|
bl sub_0805E780
|
|
b _0808627E
|
|
_0808626E:
|
|
ldr r0, _08086280 @ =gLinkState
|
|
ldrb r1, [r0, #0x1c]
|
|
movs r0, #0xf
|
|
ands r0, r1
|
|
cmp r0, #1
|
|
beq _0808627E
|
|
bl sub_0805E780
|
|
_0808627E:
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_08086280: .4byte gLinkState
|
|
|
|
thumb_func_start sub_08086284
|
|
sub_08086284: @ 0x08086284
|
|
push {r4, lr}
|
|
adds r4, r0, #0
|
|
ldr r1, _080862B4 @ =gUnk_08120668
|
|
ldrb r0, [r4, #0xc]
|
|
lsls r0, r0, #2
|
|
adds r0, r0, r1
|
|
ldr r1, [r0]
|
|
adds r0, r4, #0
|
|
bl _call_via_r1
|
|
adds r1, r4, #0
|
|
adds r1, #0x41
|
|
movs r0, #0
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x76
|
|
ldrh r1, [r0]
|
|
adds r0, #4
|
|
ldrh r2, [r0]
|
|
adds r0, r4, #0
|
|
movs r3, #0
|
|
bl sub_0805EC9C
|
|
pop {r4, pc}
|
|
.align 2, 0
|
|
_080862B4: .4byte gUnk_08120668
|
|
|
|
thumb_func_start sub_080862B8
|
|
sub_080862B8: @ 0x080862B8
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
movs r0, #0x63
|
|
bl sub_0807CBD0
|
|
cmp r0, #0
|
|
beq _080862CA
|
|
bl sub_0805E780
|
|
_080862CA:
|
|
movs r3, #1
|
|
strb r3, [r4, #0xc]
|
|
ldr r1, _08086350 @ =gUnk_08120678
|
|
ldrb r0, [r4, #0xa]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r1
|
|
ldrh r0, [r0]
|
|
adds r1, r4, #0
|
|
adds r1, #0x7c
|
|
strh r0, [r1]
|
|
adds r2, r4, #0
|
|
adds r2, #0x76
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
subs r1, #2
|
|
strh r0, [r1]
|
|
ldrb r0, [r4, #0xa]
|
|
cmp r0, #0
|
|
bne _08086354
|
|
adds r1, #6
|
|
ldr r0, [r4, #0x2c]
|
|
str r0, [r1]
|
|
adds r1, #4
|
|
ldr r0, [r4, #0x30]
|
|
str r0, [r1]
|
|
ldrb r1, [r4, #0x19]
|
|
movs r0, #0x3f
|
|
ands r0, r1
|
|
strb r0, [r4, #0x19]
|
|
str r4, [r4, #0x50]
|
|
ldrb r0, [r4, #0x10]
|
|
movs r1, #0x80
|
|
orrs r0, r1
|
|
strb r0, [r4, #0x10]
|
|
adds r1, r4, #0
|
|
adds r1, #0x3c
|
|
movs r0, #7
|
|
strb r0, [r1]
|
|
adds r0, r4, #0
|
|
adds r0, #0x3f
|
|
strb r3, [r0]
|
|
subs r1, #1
|
|
movs r0, #4
|
|
strb r0, [r1]
|
|
movs r2, #0
|
|
_08086324:
|
|
adds r5, r2, #1
|
|
adds r0, r4, #0
|
|
movs r1, #0x18
|
|
adds r2, r5, #0
|
|
movs r3, #0
|
|
bl CreateObjectWithParent
|
|
adds r1, r0, #0
|
|
str r1, [r4, #0x54]
|
|
cmp r1, #0
|
|
beq _08086346
|
|
ldr r0, [r4, #0x50]
|
|
str r0, [r1, #0x50]
|
|
ldr r0, [r4, #0x54]
|
|
str r4, [r0, #0x54]
|
|
ldr r0, [r4, #0x54]
|
|
str r0, [r4, #0x50]
|
|
_08086346:
|
|
adds r2, r5, #0
|
|
cmp r2, #3
|
|
bls _08086324
|
|
b _08086360
|
|
.align 2, 0
|
|
_08086350: .4byte gUnk_08120678
|
|
_08086354:
|
|
ldrb r0, [r4, #0x19]
|
|
movs r1, #0x3f
|
|
ands r1, r0
|
|
movs r0, #0x40
|
|
orrs r1, r0
|
|
strb r1, [r4, #0x19]
|
|
_08086360:
|
|
ldrb r1, [r4, #0xa]
|
|
adds r0, r4, #0
|
|
bl UpdateSprite
|
|
adds r0, r4, #0
|
|
bl sub_08086370
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08086370
|
|
sub_08086370: @ 0x08086370
|
|
push {r4, r5, r6, lr}
|
|
adds r6, r0, #0
|
|
ldrb r2, [r6, #0xa]
|
|
cmp r2, #0
|
|
beq _08086440
|
|
ldr r0, [r6, #0x54]
|
|
adds r0, #0x7f
|
|
ldrb r0, [r0]
|
|
cmp r0, #0
|
|
bne _080863B6
|
|
adds r1, r6, #0
|
|
adds r1, #0x7c
|
|
ldrh r0, [r1]
|
|
adds r2, r6, #0
|
|
adds r2, #0x76
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
subs r1, #2
|
|
strh r0, [r1]
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #2
|
|
strh r0, [r6, #0x24]
|
|
ldr r2, [r6, #0x50]
|
|
ldr r0, [r2, #0x2c]
|
|
ldr r1, [r6, #0x2c]
|
|
subs r0, r0, r1
|
|
ldr r1, [r2, #0x30]
|
|
ldr r2, [r6, #0x30]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
movs r1, #0x80
|
|
eors r0, r1
|
|
strb r0, [r6, #0x15]
|
|
b _08086428
|
|
_080863B6:
|
|
movs r0, #0xc0
|
|
lsls r0, r0, #3
|
|
strh r0, [r6, #0x24]
|
|
ldr r2, _080863E8 @ =gLinkEntity
|
|
ldr r0, [r2, #0x2c]
|
|
ldr r1, [r6, #0x2c]
|
|
subs r0, r0, r1
|
|
ldr r1, [r2, #0x30]
|
|
ldr r2, [r6, #0x30]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
adds r1, r0, #0
|
|
movs r0, #0x80
|
|
eors r1, r0
|
|
ldrb r2, [r6, #0x15]
|
|
cmp r1, r2
|
|
beq _080863F0
|
|
subs r0, r1, r2
|
|
lsls r0, r0, #0x18
|
|
lsrs r0, r0, #0x18
|
|
cmp r0, #0x80
|
|
bls _080863EC
|
|
adds r0, r2, #3
|
|
b _080863EE
|
|
.align 2, 0
|
|
_080863E8: .4byte gLinkEntity
|
|
_080863EC:
|
|
subs r0, r2, #3
|
|
_080863EE:
|
|
strb r0, [r6, #0x15]
|
|
_080863F0:
|
|
ldr r0, _0808640C @ =gLinkEntity
|
|
ldrb r1, [r0, #0x14]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _08086410
|
|
adds r0, r6, #0
|
|
adds r0, #0x7c
|
|
ldrh r0, [r0]
|
|
adds r0, #0x40
|
|
adds r1, r6, #0
|
|
adds r1, #0x76
|
|
b _08086426
|
|
.align 2, 0
|
|
_0808640C: .4byte gLinkEntity
|
|
_08086410:
|
|
adds r0, r6, #0
|
|
adds r0, #0x7c
|
|
ldrh r1, [r0]
|
|
subs r1, #0x20
|
|
adds r2, r6, #0
|
|
adds r2, #0x76
|
|
strh r1, [r2]
|
|
ldrh r0, [r0]
|
|
adds r0, #0x50
|
|
adds r1, r6, #0
|
|
adds r1, #0x7a
|
|
_08086426:
|
|
strh r0, [r1]
|
|
_08086428:
|
|
ldr r1, [r6, #0x50]
|
|
ldr r0, [r1, #0x2c]
|
|
str r0, [r6, #0x2c]
|
|
ldr r0, [r1, #0x30]
|
|
str r0, [r6, #0x30]
|
|
movs r0, #0x24
|
|
ldrsh r1, [r6, r0]
|
|
ldrb r2, [r6, #0x15]
|
|
adds r0, r6, #0
|
|
bl sub_0806F62C
|
|
b _0808654A
|
|
_08086440:
|
|
adds r0, r6, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
bne _08086498
|
|
ldrb r0, [r6, #0x15]
|
|
adds r0, #1
|
|
strb r0, [r6, #0x15]
|
|
ldrb r0, [r6, #0x1d]
|
|
subs r0, #1
|
|
strb r0, [r6, #0x1d]
|
|
adds r2, r6, #0
|
|
adds r2, #0x7f
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
ldr r0, _08086480 @ =gLinkEntity
|
|
ldrb r1, [r0, #0x14]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
adds r3, r2, #0
|
|
cmp r0, #0
|
|
bne _08086484
|
|
adds r0, r6, #0
|
|
adds r0, #0x7c
|
|
ldrh r0, [r0]
|
|
adds r0, #0x10
|
|
adds r1, r6, #0
|
|
adds r1, #0x76
|
|
strh r0, [r1]
|
|
b _080864BC
|
|
.align 2, 0
|
|
_08086480: .4byte gLinkEntity
|
|
_08086484:
|
|
adds r1, r6, #0
|
|
adds r1, #0x7c
|
|
ldrh r0, [r1]
|
|
subs r0, #0x20
|
|
adds r2, r6, #0
|
|
adds r2, #0x76
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
adds r0, #0x30
|
|
b _080864B6
|
|
_08086498:
|
|
ldrb r0, [r6, #0x15]
|
|
adds r0, #2
|
|
strb r0, [r6, #0x15]
|
|
movs r0, #0xf0
|
|
strb r0, [r6, #0x1d]
|
|
adds r3, r6, #0
|
|
adds r3, #0x7f
|
|
strb r2, [r3]
|
|
adds r1, r6, #0
|
|
adds r1, #0x7c
|
|
ldrh r0, [r1]
|
|
adds r2, r6, #0
|
|
adds r2, #0x76
|
|
strh r0, [r2]
|
|
ldrh r0, [r1]
|
|
_080864B6:
|
|
subs r1, #2
|
|
strh r0, [r1]
|
|
adds r1, r2, #0
|
|
_080864BC:
|
|
ldrb r2, [r6, #0x1d]
|
|
cmp r2, #0
|
|
bne _080864CA
|
|
movs r0, #2
|
|
strb r0, [r6, #0xc]
|
|
strb r2, [r3]
|
|
b _0808654A
|
|
_080864CA:
|
|
ldrb r0, [r6, #0x15]
|
|
adds r0, #0x40
|
|
lsls r0, r0, #0x18
|
|
cmp r0, #0
|
|
blt _080864E0
|
|
ldrh r2, [r1]
|
|
movs r3, #0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0
|
|
ble _080864EE
|
|
b _080864EA
|
|
_080864E0:
|
|
ldrh r2, [r1]
|
|
movs r3, #0
|
|
ldrsh r0, [r1, r3]
|
|
cmp r0, #0
|
|
bge _080864EE
|
|
_080864EA:
|
|
rsbs r0, r2, #0
|
|
strh r0, [r1]
|
|
_080864EE:
|
|
ldr r5, _0808654C @ =gUnk_080C9160
|
|
ldrb r0, [r6, #0x15]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
movs r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
movs r4, #0x80
|
|
lsls r4, r4, #1
|
|
adds r1, r4, #0
|
|
bl sub_0806FA04
|
|
adds r1, r6, #0
|
|
adds r1, #0x80
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r1, [r1]
|
|
adds r1, r1, r0
|
|
str r1, [r6, #0x2c]
|
|
ldrb r0, [r6, #0x15]
|
|
adds r0, #0x40
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r5
|
|
movs r3, #0
|
|
ldrsh r0, [r0, r3]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
adds r1, r4, #0
|
|
bl sub_0806FA04
|
|
adds r1, r6, #0
|
|
adds r1, #0x84
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r1, [r1]
|
|
subs r1, r1, r0
|
|
str r1, [r6, #0x30]
|
|
_0808654A:
|
|
pop {r4, r5, r6, pc}
|
|
.align 2, 0
|
|
_0808654C: .4byte gUnk_080C9160
|
|
|
|
thumb_func_start sub_08086550
|
|
sub_08086550: @ 0x08086550
|
|
push {r4, r5, lr}
|
|
adds r4, r0, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
beq _08086566
|
|
movs r0, #3
|
|
strb r0, [r4, #0xc]
|
|
b _08086592
|
|
_08086566:
|
|
adds r0, r4, #0
|
|
bl sub_0806F3E4
|
|
cmp r0, #0
|
|
beq _08086592
|
|
movs r0, #0x63
|
|
bl sub_0807CCB4
|
|
movs r0, #0
|
|
bl sub_0807CD10
|
|
movs r5, #0
|
|
_0808657E:
|
|
ldr r0, [r4, #0x54]
|
|
ldr r1, [r0, #0x50]
|
|
str r1, [r4, #0x54]
|
|
bl sub_0805E7BC
|
|
adds r5, #1
|
|
cmp r5, #3
|
|
bls _0808657E
|
|
bl sub_0805E780
|
|
_08086592:
|
|
pop {r4, r5, pc}
|
|
|
|
thumb_func_start sub_08086594
|
|
sub_08086594: @ 0x08086594
|
|
push {r4, r5, r6, r7, lr}
|
|
adds r7, r0, #0
|
|
adds r0, #0x80
|
|
ldr r0, [r0]
|
|
ldr r1, [r7, #0x2c]
|
|
subs r0, r0, r1
|
|
adds r1, r7, #0
|
|
adds r1, #0x84
|
|
ldr r1, [r1]
|
|
ldr r2, [r7, #0x30]
|
|
subs r1, r1, r2
|
|
bl sub_080045DA
|
|
strb r0, [r7, #0x15]
|
|
adds r0, r7, #0
|
|
adds r0, #0x41
|
|
ldrb r1, [r0]
|
|
movs r0, #0x7f
|
|
ands r0, r1
|
|
cmp r0, #0x13
|
|
bne _08086608
|
|
movs r0, #0x80
|
|
lsls r0, r0, #1
|
|
strh r0, [r7, #0x24]
|
|
ldrb r0, [r7, #0x1d]
|
|
subs r0, #1
|
|
strb r0, [r7, #0x1d]
|
|
adds r2, r7, #0
|
|
adds r2, #0x7f
|
|
movs r0, #1
|
|
strb r0, [r2]
|
|
ldr r0, _080865EC @ =gLinkEntity
|
|
ldrb r1, [r0, #0x14]
|
|
movs r0, #2
|
|
ands r0, r1
|
|
cmp r0, #0
|
|
bne _080865F0
|
|
adds r0, r7, #0
|
|
adds r0, #0x7c
|
|
ldrh r0, [r0]
|
|
adds r0, #0x10
|
|
adds r1, r7, #0
|
|
adds r1, #0x76
|
|
b _0808662A
|
|
.align 2, 0
|
|
_080865EC: .4byte gLinkEntity
|
|
_080865F0:
|
|
adds r0, r7, #0
|
|
adds r0, #0x7c
|
|
ldrh r1, [r0]
|
|
subs r1, #0x20
|
|
adds r3, r7, #0
|
|
adds r3, #0x76
|
|
strh r1, [r3]
|
|
ldrh r0, [r0]
|
|
adds r0, #0x30
|
|
adds r1, r7, #0
|
|
adds r1, #0x7a
|
|
b _0808662A
|
|
_08086608:
|
|
movs r1, #0
|
|
movs r0, #0x80
|
|
lsls r0, r0, #2
|
|
strh r0, [r7, #0x24]
|
|
movs r0, #0xf0
|
|
strb r0, [r7, #0x1d]
|
|
adds r2, r7, #0
|
|
adds r2, #0x7f
|
|
strb r1, [r2]
|
|
adds r1, r7, #0
|
|
adds r1, #0x7c
|
|
ldrh r0, [r1]
|
|
adds r3, r7, #0
|
|
adds r3, #0x76
|
|
strh r0, [r3]
|
|
ldrh r0, [r1]
|
|
subs r1, #2
|
|
_0808662A:
|
|
strh r0, [r1]
|
|
ldrb r1, [r7, #0x1d]
|
|
cmp r1, #0
|
|
bne _0808663A
|
|
movs r0, #2
|
|
strb r0, [r7, #0xc]
|
|
strb r1, [r2]
|
|
b _080866B8
|
|
_0808663A:
|
|
movs r0, #0x24
|
|
ldrsh r1, [r7, r0]
|
|
ldrb r2, [r7, #0x15]
|
|
adds r0, r7, #0
|
|
bl sub_0806F62C
|
|
ldrb r0, [r7, #0x15]
|
|
movs r1, #0x80
|
|
eors r0, r1
|
|
strb r0, [r7, #0x15]
|
|
ldr r6, _080866BC @ =gUnk_080C9160
|
|
ldrb r0, [r7, #0x15]
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
movs r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #6
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
movs r5, #0x80
|
|
lsls r5, r5, #1
|
|
adds r1, r5, #0
|
|
bl sub_0806FA04
|
|
adds r1, r7, #0
|
|
adds r1, #0x80
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r4, [r1]
|
|
adds r4, r4, r0
|
|
ldrb r0, [r7, #0x15]
|
|
adds r0, #0x40
|
|
lsls r0, r0, #1
|
|
adds r0, r0, r6
|
|
movs r1, #0
|
|
ldrsh r0, [r0, r1]
|
|
movs r1, #0x80
|
|
lsls r1, r1, #5
|
|
bl sub_0806F9EC
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #0x10
|
|
adds r1, r5, #0
|
|
bl sub_0806FA04
|
|
adds r1, r7, #0
|
|
adds r1, #0x84
|
|
lsls r0, r0, #0x10
|
|
asrs r0, r0, #8
|
|
ldr r2, [r1]
|
|
subs r2, r2, r0
|
|
adds r0, r7, #0
|
|
adds r1, r4, #0
|
|
movs r3, #2
|
|
bl sub_0806FCB8
|
|
cmp r0, #0
|
|
beq _080866B8
|
|
movs r0, #1
|
|
strb r0, [r7, #0xc]
|
|
_080866B8:
|
|
pop {r4, r5, r6, r7, pc}
|
|
.align 2, 0
|
|
_080866BC: .4byte gUnk_080C9160
|