summaryrefslogtreecommitdiff
path: root/asm
diff options
context:
space:
mode:
Diffstat (limited to 'asm')
-rw-r--r--asm/battle_frontier_2.s3782
-rw-r--r--asm/battle_tower.s30
-rw-r--r--asm/cable_club.s2842
-rw-r--r--asm/field_control_avatar.s2512
-rw-r--r--asm/field_effect_helpers.s4603
-rw-r--r--asm/field_player_avatar.s6
-rw-r--r--asm/party_menu.s2
-rw-r--r--asm/script_pokemon_util_80F87D8.s6
-rw-r--r--asm/shop.s1434
-rw-r--r--asm/trainer_card.s12
10 files changed, 51 insertions, 15178 deletions
diff --git a/asm/battle_frontier_2.s b/asm/battle_frontier_2.s
index 4df690e59..3f6591927 100644
--- a/asm/battle_frontier_2.s
+++ b/asm/battle_frontier_2.s
@@ -5,3778 +5,6 @@
.text
- thumb_func_start sub_819F99C
-sub_819F99C: @ 819F99C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r1, r0
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r6, 0
- adds r7, r2, 0
- ldr r0, =gStringVar1
- mov r8, r0
- cmp r1, 0
- beq _0819F9DC
-_0819F9C2:
- adds r0, r1, 0
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 24
- lsrs r1, r0, 24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r1, 0
- beq _0819F9DC
- cmp r6, 0x3
- bls _0819F9C2
-_0819F9DC:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- ldr r1, [r7]
- adds r1, r4, r1
- movs r0, 0x8A
- lsls r0, 1
- adds r1, r0
- mov r0, r8
- bl StringCopy7
- ldr r0, [r7]
- adds r0, r4
- ldr r1, =0x0000011b
- adds r0, r1
- ldrb r1, [r0]
- mov r0, r8
- bl ConvertInternationalString
- ldr r0, =gStringVar2
- ldr r1, [r7]
- adds r1, r4
- adds r1, 0xDE
- ldrb r1, [r1]
- movs r2, 0x1
- adds r3, r6, 0
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_08611330
- ldr r0, [r7]
- adds r0, r4
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 25
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819F99C
-
- thumb_func_start sub_819FA50
-sub_819FA50: @ 819FA50
- push {lr}
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_819FA50
-
- thumb_func_start sub_819FA5C
-sub_819FA5C: @ 819FA5C
- push {r4,r5,lr}
- adds r3, r0, 0
- movs r2, 0
- adds r4, r3, 0
- adds r4, 0x28
- ldr r0, =0x0000ffff
- adds r5, r0, 0
-_0819FA6A:
- lsls r0, r2, 1
- adds r0, r4, r0
- ldrh r1, [r0]
- orrs r1, r5
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FA6A
- adds r1, r3, 0
- adds r1, 0x38
- movs r0, 0xFF
- strb r0, [r1]
- ldrb r1, [r3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r3]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FA5C
-
- thumb_func_start sub_819FAA0
-sub_819FAA0: @ 819FAA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x19
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r0, 0
- mov r12, r0
- adds r5, r3, 0
- mov r8, r0
- ldr r1, =0x0000ffff
- mov r10, r1
-_0819FAC6:
- movs r2, 0
- mov r3, r12
- lsls r7, r3, 4
- movs r4, 0x1
- add r4, r12
- mov r9, r4
- adds r0, r7, r3
- lsls r3, r0, 2
-_0819FAD6:
- ldr r1, [r5]
- lsls r0, r2, 1
- adds r0, r3
- movs r4, 0x82
- lsls r4, 1
- adds r1, r4
- adds r1, r0
- ldrh r0, [r1]
- mov r4, r10
- orrs r0, r4
- strh r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _0819FAD6
- ldr r2, [r5]
- mov r0, r12
- adds r3, r7, r0
- lsls r3, 2
- adds r2, r3
- adds r2, 0xDC
- ldrb r1, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2]
- ldr r0, [r5]
- adds r0, r3
- movs r1, 0x8A
- lsls r1, 1
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xDC
- ldrb r2, [r1]
- movs r0, 0x61
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDE
- mov r4, r8
- strb r4, [r0]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xDD
- strb r4, [r0]
- movs r2, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0x88
- lsls r4, 1
-_0819FB48:
- ldr r0, [r6]
- adds r1, r2, r3
- adds r0, r4
- adds r0, r1
- mov r1, r8
- strb r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _0819FB48
- ldr r0, [r5]
- mov r3, r12
- adds r2, r7, r3
- lsls r2, 2
- adds r0, r2
- ldr r4, =gGameLanguage
- ldrb r1, [r4]
- ldr r3, =0x0000011b
- adds r0, r3
- strb r1, [r0]
- ldr r0, [r5]
- movs r4, 0x8E
- lsls r4, 1
- adds r0, r4
- adds r0, r2
- mov r1, r8
- str r1, [r0]
- mov r3, r9
- lsls r0, r3, 24
- lsrs r0, 24
- mov r12, r0
- cmp r0, 0x3
- bls _0819FAC6
- bl sub_81A087C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FAA0
-
- thumb_func_start sub_819FBB0
-sub_819FBB0: @ 819FBB0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- movs r1, 0x3
- ands r1, r0
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_819FBB0
-
- thumb_func_start sub_819FBC8
-sub_819FBC8: @ 819FBC8
- push {r4,r5,lr}
- ldr r2, =gSaveBlock2Ptr
- ldr r0, [r2]
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, 0
- bne _0819FC10
- adds r4, r2, 0
- ldr r5, =gUnknown_08611548
-_0819FBDA:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- movs r1, 0xE0
- lsls r1, 11
- ands r1, r0
- lsrs r1, 16
- adds r1, r5
- ldrb r0, [r1]
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FBDA
- b _0819FC38
- .pool
-_0819FC10:
- adds r4, r2, 0
-_0819FC12:
- bl Random
- ldr r2, [r4]
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xF
- ands r0, r1
- adds r2, 0xB0
- strb r0, [r2]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xB0
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- ldrb r1, [r1]
- lsrs r0, 27
- cmp r1, r0
- beq _0819FC12
-_0819FC38:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_819FBC8
-
- thumb_func_start sub_819FC40
-sub_819FC40: @ 819FC40
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r2, 0xB1
- movs r1, 0x3
- ands r0, r1
- ldrb r3, [r2]
- subs r1, 0x7
- ands r1, r3
- orrs r1, r0
- strb r1, [r2]
- bx lr
- .pool
- thumb_func_end sub_819FC40
-
- thumb_func_start sub_819FC60
-sub_819FC60: @ 819FC60
- push {r4-r7,lr}
- sub sp, 0xC
- movs r5, 0
-_0819FC66:
- mov r1, sp
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FC66
- movs r5, 0
-_0819FC78:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r7, sp
- adds r2, r7, r4
- ldrb r3, [r2]
- adds r1, r7, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FC78
- movs r5, 0
- ldr r6, =gSaveBlock2Ptr
- movs r4, 0xF
-_0819FCBC:
- ldr r3, [r6]
- adds r3, 0xB4
- adds r3, r5
- lsls r2, r5, 1
- mov r1, sp
- adds r0, r1, r2
- ldrb r0, [r0]
- adds r1, r4, 0
- ands r1, r0
- lsls r1, 4
- adds r2, 0x1
- mov r7, sp
- adds r0, r7, r2
- ldrb r2, [r0]
- adds r0, r4, 0
- ands r0, r2
- orrs r1, r0
- strb r1, [r3]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FCBC
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FC60
-
- thumb_func_start sub_819FCF8
-sub_819FCF8: @ 819FCF8
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- cmp r0, 0x2
- bne _0819FD4C
- ldr r6, =gUnknown_030062EC
-_0819FD06:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r5, r0, 24
- movs r3, 0
- movs r2, 0
- ldr r1, [r6]
- lsls r0, r5, 2
- adds r0, r5
- lsls r4, r0, 1
- adds r1, 0x2
-_0819FD26:
- lsls r0, r2, 1
- adds r0, r4
- adds r0, r1, r0
- ldrh r0, [r0]
- cmp r0, 0
- beq _0819FD38
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
-_0819FD38:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x4
- bls _0819FD26
- cmp r3, 0x3
- bhi _0819FD06
- b _0819FD5A
- .pool
-_0819FD4C:
- cmp r0, 0x1
- bne _0819FD5A
- ldrb r0, [r2]
- adds r1, r0
- ldrb r5, [r1]
- adds r0, 0x1
- strb r0, [r2]
-_0819FD5A:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_819FCF8
-
- thumb_func_start sub_819FD64
-sub_819FD64: @ 819FD64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- movs r5, 0
- mov r0, sp
- adds r0, 0xC
- str r0, [sp, 0x14]
- mov r1, sp
- adds r1, 0x10
- str r1, [sp, 0x18]
- adds r1, r0, 0
-_0819FD80:
- adds r0, r1, r5
- strb r5, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0819FD80
- movs r5, 0
- ldr r6, [sp, 0x14]
-_0819FD92:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FD92
- movs r5, 0
- ldr r2, =gUnknown_086114D3
-_0819FDD0:
- mov r4, sp
- adds r1, r4, r5
- adds r0, r5, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x9
- bls _0819FDD0
- movs r5, 0
-_0819FDE6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- mov r6, sp
- adds r2, r6, r4
- ldrb r3, [r2]
- adds r1, r6, r0
- ldrb r0, [r1]
- strb r0, [r2]
- strb r3, [r1]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x31
- bls _0819FDE6
- ldr r4, =gUnknown_030062EC
- movs r0, 0x30
- bl AllocZeroed
- str r0, [r4]
- movs r1, 0
- strb r1, [r0]
- movs r5, 0
- movs r2, 0x4
-_0819FE34:
- movs r3, 0
-_0819FE36:
- ldr r0, [r4]
- lsls r1, r3, 2
- adds r1, r3
- adds r1, r5, r1
- adds r0, 0x20
- adds r0, r1
- strb r2, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x2
- bls _0819FE36
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _0819FE34
- movs r0, 0
- ldr r7, [sp, 0x18]
- strb r0, [r7]
- movs r5, 0
-_0819FE60:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- lsls r4, r5, 2
- adds r3, r4
- mov r1, sp
- adds r6, r1, r5
- ldrb r0, [r6]
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- ldrb r0, [r3]
- movs r7, 0x4
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldrb r0, [r6]
- adds r5, 0x1
- str r5, [sp, 0x1C]
- mov r8, r4
- cmp r0, 0x3
- beq _0819FF62
- ldrb r0, [r6]
- ldr r1, [sp, 0x14]
- ldr r2, [sp, 0x18]
- bl sub_819FCF8
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- add r3, r8
- adds r3, 0xB8
- movs r2, 0x3
- ands r2, r0
- lsls r2, 2
- ldrb r0, [r3]
- movs r4, 0xD
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3]
- ldr r7, =gSaveBlock2Ptr
- ldr r0, [r7]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r7, r0, 30
- ldrb r0, [r6]
- cmp r0, 0x2
- bne _0819FF62
- lsls r0, r7, 2
- adds r0, r7
- mov r10, r0
- ldr r0, =gUnknown_030062EC
- mov r9, r0
-_0819FED2:
- bl Random
- lsls r0, 16
- lsrs r4, r0, 16
- movs r1, 0x3
- ands r4, r1
- movs r3, 0
- mov r6, r9
- ldr r2, [r6]
- ldrb r0, [r2]
- adds r1, r0, 0x1
- lsls r5, r7, 2
- cmp r3, r1
- bge _0819FF12
- adds r2, 0x20
- mov r6, r10
- adds r0, r2, r6
- ldrb r0, [r0]
- cmp r0, r4
- beq _0819FF12
- adds r6, r1, 0
- adds r1, r5, r7
-_0819FEFE:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r6
- bge _0819FF12
- adds r0, r3, r1
- adds r0, r2, r0
- ldrb r0, [r0]
- cmp r0, r4
- bne _0819FEFE
-_0819FF12:
- mov r1, r9
- ldr r0, [r1]
- ldrb r0, [r0]
- adds r0, 0x1
- ldr r1, =gUnknown_030062EC
- cmp r3, r0
- bne _0819FED2
- ldr r0, [r1]
- orrs r5, r7
- ldrb r2, [r0]
- adds r1, r5, r2
- adds r0, 0x20
- adds r0, r1
- strb r4, [r0]
- ldr r6, =gSaveBlock2Ptr
- ldr r2, [r6]
- add r2, r8
- adds r2, 0xB8
- movs r7, 0x3
- ands r4, r7
- lsls r3, r4, 4
- ldrb r0, [r2]
- movs r4, 0x31
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- ldr r0, [r6]
- add r0, r8
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r0, 30
- bl sub_819FF98
- ldr r1, [r6]
- add r1, r8
- adds r1, 0xBA
- strh r0, [r1]
-_0819FF62:
- ldr r6, [sp, 0x1C]
- lsls r0, r6, 24
- lsrs r5, r0, 24
- cmp r5, 0x8
- bhi _0819FF6E
- b _0819FE60
-_0819FF6E:
- ldr r4, =gUnknown_030062EC
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_819FD64
-
- thumb_func_start sub_819FF98
-sub_819FF98: @ 819FF98
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r7, 0
- ldr r1, [sp]
- cmp r1, 0x2
- bhi _0819FFE0
- ldr r2, =gSaveBlock2Ptr
- ldr r1, [r2]
- adds r0, r1, 0
- adds r0, 0xB4
- ldr r3, [sp]
- adds r0, r3
- ldrb r4, [r0]
- adds r1, 0xB2
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r3
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r4, r0
- movs r0, 0xF
- ands r4, r0
- b _0819FFE4
- .pool
-_0819FFE0:
- movs r4, 0
- ldr r2, =gSaveBlock2Ptr
-_0819FFE4:
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- ldr r4, [r2]
- adds r0, r4, 0
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- str r1, [sp, 0x8]
- ldr r1, =gLevelUpLearnsets
- ldr r2, [sp, 0x8]
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r3, 0
- adds r4, 0xB1
- ldrb r1, [r4]
- movs r0, 0x3
- ands r0, r1
- movs r5, 0x3C
- cmp r0, 0x1
- bne _081A001A
- movs r5, 0x32
-_081A001A:
- ldrh r1, [r6]
- ldr r4, =0x0000ffff
- cmp r1, r4
- beq _081A004C
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r5, 9
- cmp r0, r1
- bgt _081A004C
- adds r5, r2, 0
- adds r2, r1, 0
-_081A0034:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r4
- beq _081A004C
- adds r0, r5, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0034
-_081A004C:
- adds r5, r3, 0
- movs r3, 0
- str r3, [sp, 0x4]
-_081A0052:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081A0068
- ldr r0, [sp, 0xC]
- cmp r0, 0x1
- bne _081A00E0
-_081A0068:
- ldr r1, =0x000001ff
- mov r8, r1
-_081A006C:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3A
- bl __umodsi3
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, [sp, 0x8]
- adds r1, r4, 0
- bl CanSpeciesLearnTMHM
- adds r2, r0, 0
- cmp r2, 0
- beq _081A006C
- ldr r2, =0x00000121
- adds r0, r4, r2
- bl ItemIdToBattleMoveId
- lsls r0, 16
- lsrs r7, r0, 16
- movs r2, 0x1
- cmp r5, 0x4
- bhi _081A00BC
- movs r3, 0
- b _081A00C6
- .pool
-_081A00BC:
- subs r0, r5, 0x4
- b _081A00C2
-_081A00C0:
- adds r0, r3, 0x1
-_081A00C2:
- lsls r0, 24
- lsrs r3, r0, 24
-_081A00C6:
- cmp r3, r5
- bcs _081A00DA
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r8
- ands r0, r1
- cmp r0, r7
- bne _081A00C0
- movs r2, 0
-_081A00DA:
- cmp r2, 0x1
- bne _081A006C
- b _081A0146
-_081A00E0:
- cmp r5, 0x4
- bhi _081A00EA
- movs r2, 0x1
- str r2, [sp, 0xC]
- b _081A0168
-_081A00EA:
- subs r4, r5, 0x4
- ldr r3, =0x000001ff
- mov r10, r3
- mov r8, r3
- lsls r0, r4, 24
- mov r9, r0
-_081A00F6:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __modsi3
- lsls r0, 24
- lsrs r0, 23
- adds r0, r6
- ldrh r0, [r0]
- mov r7, r8
- ands r7, r0
- movs r2, 0x1
- mov r1, r9
- lsrs r3, r1, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r1, [r0]
- mov r0, r8
- b _081A013A
- .pool
-_081A0128:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r5
- bcs _081A0142
- lsls r0, r3, 1
- adds r0, r6
- ldrh r0, [r0]
- mov r1, r10
-_081A013A:
- ands r0, r1
- cmp r0, r7
- bne _081A0128
- movs r2, 0
-_081A0142:
- cmp r2, 0x1
- bne _081A00F6
-_081A0146:
- ldr r0, [sp]
- adds r1, r7, 0
- bl sub_81A0194
- lsls r0, 24
- cmp r0, 0
- beq _081A0168
- ldr r0, =gUnknown_08611370
- adds r0, r7, r0
- ldrb r0, [r0]
- cmp r0, 0
- bne _081A0170
- ldr r0, [sp, 0x4]
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x4]
-_081A0168:
- ldr r2, [sp, 0x4]
- cmp r2, 0x4
- bhi _081A0170
- b _081A0052
-_081A0170:
- ldr r0, =gUnknown_030062EC
- ldr r1, [r0]
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
- adds r0, r7, 0
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819FF98
-
- thumb_func_start sub_81A0194
-sub_81A0194: @ 81A0194
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 16
- lsrs r5, r1, 16
- movs r3, 0
- ldr r0, =gUnknown_030062EC
- mov r12, r0
- ldr r2, [r0]
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r6, r0, 1
- adds r2, 0x2
- adds r7, r1, 0
-_081A01B0:
- lsls r0, r3, 1
- adds r0, r6
- adds r0, r2, r0
- ldrh r0, [r0]
- cmp r0, r5
- bne _081A01C4
- movs r0, 0
- b _081A01E2
- .pool
-_081A01C4:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x4
- bls _081A01B0
- mov r2, r12
- ldr r1, [r2]
- adds r0, r7, r4
- ldrb r2, [r1]
- adds r0, r2
- lsls r0, 1
- adds r1, 0x2
- adds r1, r0
- strh r5, [r1]
- movs r0, 0x1
-_081A01E2:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0194
-
- thumb_func_start sub_81A01E8
-sub_81A01E8: @ 81A01E8
- push {r4-r7,lr}
- mov r12, r1
- lsls r0, 16
- lsrs r2, r0, 16
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- movs r4, 0x3C
- cmp r0, 0x1
- bne _081A0204
- movs r4, 0x32
-_081A0204:
- ldr r1, =gLevelUpLearnsets
- lsls r0, r2, 2
- adds r0, r1
- ldr r6, [r0]
- movs r5, 0
- ldrh r1, [r6]
- ldr r3, =0x0000ffff
- cmp r1, r3
- beq _081A0240
- movs r2, 0xFE
- lsls r2, 8
- adds r0, r2, 0
- ands r0, r1
- lsls r1, r4, 9
- cmp r0, r1
- bgt _081A0240
- adds r4, r2, 0
- adds r2, r1, 0
-_081A0228:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 1
- adds r0, r6
- ldrh r1, [r0]
- cmp r1, r3
- beq _081A0240
- adds r0, r4, 0
- ands r0, r1
- cmp r0, r2
- ble _081A0228
-_081A0240:
- adds r4, r5, 0
- cmp r4, 0x4
- bls _081A0248
- movs r4, 0x4
-_081A0248:
- movs r2, 0
- cmp r2, r4
- bcs _081A026C
- ldr r7, =0x000001ff
-_081A0250:
- lsls r3, r2, 1
- add r3, r12
- adds r2, 0x1
- subs r0, r5, r2
- lsls r0, 1
- adds r0, r6
- ldrh r1, [r0]
- adds r0, r7, 0
- ands r0, r1
- strh r0, [r3]
- lsls r2, 24
- lsrs r2, 24
- cmp r2, r4
- bcc _081A0250
-_081A026C:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A01E8
-
- thumb_func_start sub_81A0284
-sub_81A0284: @ 81A0284
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r1, =gSaveBlock2Ptr
- ldr r2, [r1]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A02B8
- movs r0, 0
- b _081A037C
- .pool
-_081A02B8:
- movs r4, 0
- movs r3, 0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gUnknown_08610970
- mov r12, r1
- lsls r6, 1
- lsls r5, 1
- mov r9, r5
- cmp r0, 0
- beq _081A02F4
- adds r2, r7, 0
-_081A02D4:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x8
- bhi _081A02F4
- ldr r0, [r2]
- lsls r1, r3, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A02D4
-_081A02F4:
- ldr r0, [r7]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r6, r0
- mov r1, r12
- adds r1, 0x34
- adds r0, r1
- ldrh r0, [r0]
- mov r1, sp
- bl sub_81A01E8
- movs r3, 0
- cmp r3, r4
- bcs _081A0376
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- bge _081A0376
- adds r6, r7, 0
- adds r5, r1, 0
-_081A032A:
- lsls r0, r3, 2
- adds r2, r5, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x2
- bne _081A035C
- lsls r0, r1, 28
- lsrs r0, 30
- cmp r0, r8
- bne _081A035C
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A035C
- lsls r0, r1, 26
- lsrs r0, 30
- lsls r0, 1
- mov r7, sp
- adds r1, r7, r0
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A035C:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, r4
- bcs _081A0376
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r3, r0
- blt _081A032A
-_081A0376:
- mov r0, sp
- add r0, r9
- ldrh r0, [r0]
-_081A037C:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81A0284
-
- thumb_func_start sub_81A0390
-sub_81A0390: @ 81A0390
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- adds r6, r7, 0
- movs r4, 0
-_081A03A6:
- ldr r0, [r6]
- lsls r2, r5, 1
- adds r2, r5
- lsls r2, 2
- adds r0, r2
- adds r1, r0, 0
- adds r1, 0xE0
- strh r4, [r1]
- adds r0, 0xEA
- strh r4, [r0]
- movs r3, 0
-_081A03BC:
- ldr r0, [r6]
- lsls r1, r3, 1
- adds r1, r2
- adds r0, 0xE2
- adds r0, r1
- strh r4, [r0]
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _081A03BC
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03A6
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsrs r3, r0, 6
- movs r5, 0
-_081A03E6:
- lsls r0, r3, 2
- mov r1, sp
- adds r2, r1, r0
- lsls r0, r5, 1
- adds r0, r5
- lsls r0, 2
- adds r0, 0xE0
- ldr r1, [r7]
- adds r1, r0
- str r1, [r2]
- adds r0, r3, 0x1
- movs r1, 0x3
- bl __modsi3
- lsls r0, 24
- lsrs r3, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A03E6
- movs r5, 0
- ldr r7, =gSaveBlock2Ptr
- ldr r6, =gUnknown_08610970+0x34
-_081A0416:
- ldr r0, [r7]
- mov r12, r0
- adds r0, 0xB4
- adds r0, r5
- ldrb r2, [r0]
- mov r0, r12
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r5
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r0, r5, 2
- mov r1, sp
- adds r3, r1, r0
- ldr r4, [r3]
- lsls r2, 1
- mov r0, r12
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- adds r2, r6
- ldrh r0, [r2]
- strh r0, [r4]
- ldr r1, [r3]
- ldrh r0, [r1]
- adds r1, 0x2
- bl sub_81A01E8
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _081A0416
- movs r5, 0
- cmp r5, r8
- bcs _081A04D6
- ldr r7, =gSaveBlock2Ptr
-_081A0470:
- ldr r1, [r7]
- lsls r0, r5, 2
- adds r4, r1, r0
- adds r0, r4, 0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r0, r2, 30
- lsrs r1, r0, 30
- lsls r0, r2, 28
- lsrs r3, r0, 30
- adds r6, r3, 0
- cmp r1, 0x1
- bne _081A04A8
- lsrs r0, r2, 6
- cmp r0, 0
- beq _081A04CC
- lsls r0, r3, 2
- add r0, sp
- ldr r1, [r0]
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1, 0xA]
- b _081A04CC
- .pool
-_081A04A8:
- cmp r1, 0x2
- bne _081A04CC
- lsls r0, r2, 24
- lsrs r0, 30
- cmp r0, 0
- beq _081A04CC
- lsls r2, 26
- lsrs r2, 30
- lsls r0, r6, 2
- add r0, sp
- ldr r1, [r0]
- lsls r2, 1
- adds r1, 0x2
- adds r1, r2
- adds r0, r4, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- strh r0, [r1]
-_081A04CC:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _081A0470
-_081A04D6:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0390
-
- thumb_func_start sub_81A04E4
-sub_81A04E4: @ 81A04E4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- lsls r0, 24
- lsrs r0, 24
- movs r7, 0x2
- cmp r0, 0x6
- bls _081A04FC
- b _081A064C
-_081A04FC:
- lsls r0, 2
- ldr r1, =_081A050C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A050C:
- .4byte _081A0528
- .4byte _081A0540
- .4byte _081A05B4
- .4byte _081A05F4
- .4byte _081A061C
- .4byte _081A064C
- .4byte _081A0634
-_081A0528:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gText_Lv50
- str r0, [sp, 0xC]
- ldr r0, =gText_OpenLevel
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0540:
- movs r7, 0x3
- movs r1, 0x12
- mov r10, r1
- movs r6, 0x6
- movs r4, 0
- ldr r0, =gSpeciesNames
- mov r9, r0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r1, 0xB2
- adds r1, r3
- mov r12, r1
- adds r5, r3, 0
- adds r5, 0xB0
- ldr r0, =gUnknown_08610970+0x34
- mov r8, r0
-_081A0560:
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r4
- ldrb r2, [r0]
- mov r1, r12
- ldrb r0, [r1]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r4
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- lsls r2, 1
- ldrb r1, [r5]
- movs r0, 0x58
- muls r0, r1
- adds r2, r0
- add r2, r8
- ldrh r1, [r2]
- lsls r0, r4, 2
- mov r2, sp
- adds r2, r0
- adds r2, 0xC
- movs r0, 0xB
- muls r0, r1
- add r0, r9
- str r0, [r2]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A0560
- b _081A0652
- .pool
-_081A05B4:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- cmp r0, 0x2
- bls _081A05CC
- b _081A06FA
-_081A05CC:
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x2]
- movs r2, 0xB
- muls r0, r2
- ldr r1, =gSpeciesNames
- adds r0, r1
- str r0, [sp, 0x10]
- ldrh r0, [r3]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0xC]
- b _081A0652
- .pool
-_081A05F4:
- movs r1, 0x11
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gUnknown_030062F0
- ldr r3, [r0]
- ldrh r0, [r3, 0x4]
- movs r2, 0xD
- muls r0, r2
- ldr r1, =gMoveNames
- adds r0, r1
- str r0, [sp, 0xC]
- ldrh r0, [r3, 0x6]
- muls r0, r2
- adds r0, r1
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A061C:
- movs r0, 0x12
- mov r10, r0
- movs r6, 0x8
- ldr r0, =gText_Give
- str r0, [sp, 0xC]
- ldr r0, =gText_NoNeed
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A0634:
- movs r1, 0x14
- mov r10, r1
- movs r6, 0x8
- ldr r0, =gText_Yes
- str r0, [sp, 0xC]
- ldr r0, =gText_No
- str r0, [sp, 0x10]
- b _081A0652
- .pool
-_081A064C:
- movs r0, 0
- mov r10, r0
- movs r6, 0
-_081A0652:
- movs r5, 0
- movs r4, 0
- lsls r1, r7, 25
- mov r8, r1
- cmp r4, r7
- bcs _081A067E
-_081A065E:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r1, [r0]
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- cmp r0, r5
- ble _081A0674
- adds r5, r0, 0
-_081A0674:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A065E
-_081A067E:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r0, r10
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- mov r0, r8
- lsrs r3, r0, 24
- mov r0, r10
- adds r1, r6, 0
- adds r2, r4, 0
- bl sub_81A0784
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r4, 0
- cmp r4, r7
- bcs _081A06E6
-_081A06B8:
- lsls r0, r4, 2
- add r0, sp
- adds r0, 0xC
- ldr r2, [r0]
- lsls r0, r4, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r7
- bcc _081A06B8
-_081A06E6:
- adds r0, r5, 0
- adds r1, r7, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0x1
- adds r1, r7, 0
- adds r2, r5, 0
- bl sub_81A0804
-_081A06FA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A04E4
-
- thumb_func_start sub_81A070C
-sub_81A070C: @ 81A070C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0730
- bl Menu_ProcessInputNoWrapAround
- b _081A0734
- .pool
-_081A0730:
- bl ProcessMenuInput
-_081A0734:
- lsls r0, 24
- lsrs r0, 24
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _081A0778
- adds r0, 0x1
- cmp r1, r0
- bne _081A0764
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _081A0778
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _081A0768
- .pool
-_081A0764:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_081A0768:
- ldrb r0, [r4, 0xC]
- bl sub_81A07E8
- adds r0, r5, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_081A0778:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A070C
-
- thumb_func_start sub_81A0784
-sub_81A0784: @ 81A0784
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl CreateWindowTemplate
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_81A0784
-
- thumb_func_start sub_81A07E8
-sub_81A07E8: @ 81A07E8
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A07E8
-
- thumb_func_start sub_81A0804
-sub_81A0804: @ 81A0804
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r0, =sub_81A070C
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r4, [r1, 0x10]
- cmp r5, 0x3
- bls _081A0840
- movs r0, 0x1
- b _081A0842
- .pool
-_081A0840:
- movs r0, 0
-_081A0842:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r6, [r0, 0x14]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0804
-
- thumb_func_start sub_81A085C
-sub_81A085C: @ 81A085C
- push {lr}
- ldr r1, =gUnknown_086114E0
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- lsls r0, 2
- adds r0, r1
- ldr r0, [r0]
- bl _call_via_r0
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A085C
-
- thumb_func_start sub_81A087C
-sub_81A087C: @ 81A087C
- push {r4-r7,lr}
- bl sub_819FBC8
- ldr r3, =gSaveBlock2Ptr
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3D
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB1
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r3]
- adds r1, 0xB2
- ldrb r2, [r1]
- movs r0, 0x8
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- movs r4, 0
- movs r1, 0
-_081A08BE:
- ldr r0, [r3]
- adds r0, 0xB4
- adds r0, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081A08BE
- movs r4, 0
- ldr r5, =gSaveBlock2Ptr
- movs r0, 0x4
- negs r0, r0
- mov r12, r0
- movs r7, 0xD
- negs r7, r7
- movs r6, 0x31
- negs r6, r6
-_081A08E2:
- ldr r1, [r5]
- lsls r3, r4, 2
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r7, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- ldr r1, [r5]
- adds r1, r3
- adds r1, 0xB8
- ldrb r2, [r1]
- movs r0, 0x3F
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, r3
- adds r0, 0xBA
- movs r1, 0
- strh r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bls _081A08E2
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A087C
-
- thumb_func_start sub_81A093C
-sub_81A093C: @ 81A093C
- push {lr}
- bl sub_819FBB0
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _081A0954
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
- b _081A095A
- .pool
-_081A0954:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- strh r0, [r1]
-_081A095A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A093C
-
- thumb_func_start sub_81A0964
-sub_81A0964: @ 81A0964
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_819FC40
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0964
-
- thumb_func_start sub_81A0978
-sub_81A0978: @ 81A0978
- push {lr}
- bl sub_819FBC8
- pop {r0}
- bx r0
- thumb_func_end sub_81A0978
-
- thumb_func_start sub_81A0984
-sub_81A0984: @ 81A0984
- push {lr}
- bl sub_819FD64
- pop {r0}
- bx r0
- thumb_func_end sub_81A0984
-
- thumb_func_start sub_81A0990
-sub_81A0990: @ 81A0990
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB1
- ldrb r3, [r2]
- lsls r1, r3, 26
- lsrs r1, 28
- adds r1, 0x1
- movs r0, 0xF
- ands r1, r0
- lsls r1, 2
- movs r0, 0x3D
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A0990
-
- thumb_func_start sub_81A09B4
-sub_81A09B4: @ 81A09B4
- ldr r1, =gSpecialVar_Result
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A09B4
-
- thumb_func_start sub_81A09D0
-sub_81A09D0: @ 81A09D0
- push {lr}
- ldr r3, =gSaveBlock2Ptr
- ldr r0, [r3]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r1, r0, 0x3
- cmp r1, 0
- bge _081A09F4
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- b _081A0A1C
- .pool
-_081A09F4:
- ldr r2, =gSpecialVar_Result
- cmp r1, 0x8
- ble _081A09FE
- movs r0, 0x1
- strh r0, [r2]
-_081A09FE:
- ldr r0, [r3]
- lsls r1, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0A18
- movs r0, 0x1
- b _081A0A1A
- .pool
-_081A0A18:
- movs r0, 0
-_081A0A1A:
- strh r0, [r2]
-_081A0A1C:
- pop {r0}
- bx r0
- thumb_func_end sub_81A09D0
-
- thumb_func_start sub_81A0A20
-sub_81A0A20: @ 81A0A20
- push {lr}
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_81A04E4
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A20
-
- thumb_func_start sub_81A0A34
-sub_81A0A34: @ 81A0A34
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl RunTextPrintersAndIsPrinter0Active
- lsls r0, 16
- cmp r0, 0
- bne _081A0A68
- adds r0, r4, 0
- bl DestroyTask
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0A64
- ldr r0, =EnableBothScriptContexts
- bl sub_81A172C
- b _081A0A68
- .pool
-_081A0A64:
- bl EnableBothScriptContexts
-_081A0A68:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_81A0A34
-
- thumb_func_start sub_81A0A70
-sub_81A0A70: @ 81A0A70
- push {lr}
- ldr r1, =gSpecialVar_0x8006
- ldrh r0, [r1]
- cmp r0, 0x6
- bne _081A0A94
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0A94:
- cmp r0, 0x7
- bne _081A0AB0
- ldr r1, =gUnknown_08610FF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AB0:
- cmp r0, 0x8
- bne _081A0ACC
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0ACC:
- cmp r0, 0x9
- bne _081A0AE8
- ldr r1, =gUnknown_086111B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0AE8:
- cmp r0, 0x4
- bne _081A0B04
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B04:
- cmp r0, 0x5
- bne _081A0B20
- ldr r1, =gUnknown_08611230
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0B20:
- cmp r0, 0xA
- bne _081A0B40
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- b _081A0BD6
- .pool
-_081A0B40:
- cmp r0, 0xB
- bne _081A0B5C
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- b _081A0C66
- .pool
-_081A0B5C:
- cmp r0, 0xC
- bne _081A0B7C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0xC
- b _081A0BD6
- .pool
-_081A0B7C:
- cmp r0, 0xD
- bne _081A0B9C
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x4
- b _081A0BD6
- .pool
-_081A0B9C:
- ldrh r0, [r1]
- cmp r0, 0x10
- bne _081A0BC0
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x10
- b _081A0BD6
- .pool
-_081A0BC0:
- cmp r0, 0xE
- bne _081A0BE4
- ldr r2, =gUnknown_08611070
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
-_081A0BD6:
- adds r0, r2
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0BE4:
- cmp r0, 0xF
- bne _081A0C00
- ldr r1, =gUnknown_086112B0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C00:
- cmp r0, 0
- bne _081A0C1C
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- b _081A0C66
- .pool
-_081A0C1C:
- cmp r0, 0x1
- bne _081A0C38
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x4
- b _081A0C66
- .pool
-_081A0C38:
- cmp r0, 0x2
- bne _081A0C54
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0x8
- b _081A0C66
- .pool
-_081A0C54:
- cmp r0, 0x3
- bne _081A0C74
- ldr r1, =gUnknown_08610EF0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- lsls r0, 4
- adds r1, 0xC
-_081A0C66:
- adds r0, r1
- ldr r1, [r0]
- b _081A0C7A
- .pool
-_081A0C74:
- bl EnableBothScriptContexts
- b _081A0C8E
-_081A0C7A:
- ldr r0, =gStringVar4
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl AddTextPrinterForMessage
- ldr r0, =sub_81A0A34
- movs r1, 0x1
- bl CreateTask
-_081A0C8E:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0A70
-
- thumb_func_start sub_81A0C9C
-sub_81A0C9C: @ 81A0C9C
- push {lr}
- bl ScriptContext2_Enable
- bl FreezeEventObjects
- bl sub_808B864
- bl sub_808BCF4
- movs r0, 0
- movs r1, 0x1
- bl NewMenuHelpers_DrawDialogueFrame
- bl sub_81A0A70
- pop {r0}
- bx r0
- thumb_func_end sub_81A0C9C
-
- thumb_func_start sub_81A0CC0
-sub_81A0CC0: @ 81A0CC0
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bhi _081A0CE4
- ldr r1, =gSpecialVar_Result
- movs r0, 0x2
- b _081A0D34
- .pool
-_081A0CE4:
- lsrs r0, r1, 28
- cmp r0, 0xB
- bhi _081A0D30
- lsrs r0, r1, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r2, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0D18
- cmp r0, 0x2
- bgt _081A0D08
- cmp r0, 0x1
- beq _081A0D0E
- b _081A0D30
-_081A0D08:
- cmp r0, 0x3
- beq _081A0D24
- b _081A0D30
-_081A0D0E:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x4
- b _081A0D34
- .pool
-_081A0D18:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x3
- b _081A0D34
- .pool
-_081A0D24:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
- b _081A0D34
- .pool
-_081A0D30:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
-_081A0D34:
- strh r0, [r1]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0CC0
-
- thumb_func_start sub_81A0D40
-sub_81A0D40: @ 81A0D40
- push {r4,lr}
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0D6E
- ldr r4, =gSpecialVar_0x8006
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- adds r2, 0xB2
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 29
- movs r1, 0x1
- ldrb r4, [r4]
- lsls r1, r4
- orrs r1, r0
- movs r0, 0x7
- ands r1, r0
- movs r0, 0x8
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
-_081A0D6E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0D40
-
- thumb_func_start sub_81A0D80
-sub_81A0D80: @ 81A0D80
- push {lr}
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0DCE
- subs r0, 0x3
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0
- beq _081A0DC0
- lsls r2, 2
- adds r2, r3, r2
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- b _081A0DCE
- .pool
-_081A0DC0:
- lsls r0, r2, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
-_081A0DCE:
- pop {r0}
- bx r0
- thumb_func_end sub_81A0D80
-
- thumb_func_start sub_81A0DD4
-sub_81A0DD4: @ 81A0DD4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- movs r6, 0
- movs r2, 0
- ldr r1, =gSaveBlock2Ptr
- ldr r0, [r1]
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r3, =gUnknown_030062F0
- mov r9, r3
- cmp r0, 0
- beq _081A0E14
- adds r3, r1, 0
-_081A0DF4:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A0E14
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A0DF4
-_081A0E14:
- mov r4, r9
- movs r0, 0x8
- bl AllocZeroed
- adds r7, r0, 0
- str r7, [r4]
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x2
- bne _081A0E88
- ldr r0, =gSaveBlock2Ptr
- ldr r5, [r0]
- adds r6, r5, 0
- adds r6, 0xB1
- ldrb r0, [r6]
- lsls r1, r0, 26
- lsrs r0, r1, 28
- cmp r0, 0x2
- bls _081A0E3C
- b _081A0FCE
-_081A0E3C:
- adds r2, r5, 0
- adds r2, 0xB4
- adds r0, r2, r0
- ldrb r0, [r0]
- lsrs r4, r0, 4
- ldr r3, =gUnknown_08610970
- lsls r1, r4, 1
- adds r5, 0xB0
- ldrb r0, [r5]
- movs r4, 0x58
- muls r0, r4
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r0, [r1]
- strh r0, [r7, 0x2]
- ldrb r0, [r6]
- lsls r0, 26
- lsrs r0, 28
- adds r2, r0
- ldrb r1, [r2]
- movs r0, 0xF
- ands r0, r1
- lsls r0, 1
- ldrb r1, [r5]
- muls r1, r4
- adds r0, r1
- adds r0, r3
- b _081A0FCA
- .pool
-_081A0E88:
- cmp r0, 0x3
- bne _081A0F54
- ldr r0, =gSaveBlock2Ptr
- mov r8, r0
- ldr r5, [r0]
- movs r1, 0xB1
- adds r1, r5
- mov r12, r1
- ldrb r0, [r1]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bhi _081A0EA4
- b _081A0FCE
-_081A0EA4:
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- blt _081A0EAE
- b _081A0FCE
-_081A0EAE:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x2
- beq _081A0EC4
- b _081A0FCE
-_081A0EC4:
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r5, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r5, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r4, [r0]
- lsls r1, 2
- asrs r4, r1
- movs r0, 0xF
- ands r4, r0
- ldr r2, =gUnknown_08610970
- lsls r1, r4, 1
- adds r0, r5, 0
- adds r0, 0xB0
- ldrb r3, [r0]
- movs r0, 0x58
- muls r0, r3
- adds r1, r0
- adds r2, 0x34
- adds r1, r2
- ldrh r0, [r1]
- strh r0, [r7]
- mov r3, r12
- ldrb r0, [r3]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r5, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- lsls r2, 26
- lsrs r2, 30
- adds r0, r6, 0
- adds r1, r4, 0
- bl sub_81A0284
- mov r1, r9
- ldr r2, [r1]
- strh r0, [r2, 0x4]
- mov r3, r8
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- strh r0, [r2, 0x6]
- b _081A0FCE
- .pool
-_081A0F54:
- cmp r0, 0x4
- bne _081A0FCE
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r2, r0, 26
- lsrs r0, r2, 28
- cmp r0, 0x2
- bls _081A0FCE
- adds r1, r0, 0
- adds r0, r6, 0x3
- cmp r1, r0
- bge _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A0FCE
- adds r0, r1, 0
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 28
- lsrs r6, r0, 30
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 29
- asrs r1, r6
- movs r0, 0x1
- ands r1, r0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r6
- ldrb r0, [r0]
- lsls r1, 2
- asrs r0, r1
- movs r1, 0xF
- ands r0, r1
- ldr r2, =gUnknown_08610970
- lsls r0, 1
- adds r1, r3, 0
- adds r1, 0xB0
- ldrb r3, [r1]
- movs r1, 0x58
- muls r1, r3
- adds r0, r1
- adds r2, 0x34
- adds r0, r2
-_081A0FCA:
- ldrh r0, [r0]
- strh r0, [r7]
-_081A0FCE:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0DD4
-
- thumb_func_start sub_81A0FE4
-sub_81A0FE4: @ 81A0FE4
- push {r4,lr}
- ldr r4, =gUnknown_030062F0
- ldr r0, [r4]
- bl Free
- movs r0, 0
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FE4
-
- thumb_func_start sub_81A0FFC
-sub_81A0FFC: @ 81A0FFC
- push {r4-r6,lr}
- sub sp, 0x10
- ldr r0, =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- beq _081A1028
- cmp r0, 0x1
- bgt _081A1018
- cmp r0, 0
- beq _081A101E
- b _081A11E6
- .pool
-_081A1018:
- cmp r0, 0x2
- beq _081A1030
- b _081A11E6
-_081A101E:
- ldr r5, =gStringVar1
- b _081A1032
- .pool
-_081A1028:
- ldr r5, =gStringVar2
- b _081A1032
- .pool
-_081A1030:
- ldr r5, =gStringVar3
-_081A1032:
- ldr r0, =gSpecialVar_0x8006
- ldrh r0, [r0]
- cmp r0, 0x9
- bls _081A103C
- b _081A11E6
-_081A103C:
- lsls r0, 2
- ldr r1, =_081A1054
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1054:
- .4byte _081A107C
- .4byte _081A1094
- .4byte _081A10AC
- .4byte _081A10C4
- .4byte _081A10DC
- .4byte _081A10F4
- .4byte _081A1118
- .4byte _081A1164
- .4byte _081A1140
- .4byte _081A1184
-_081A107C:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A1094:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10AC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10C4:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10DC:
- ldr r0, =gUnknown_030062F0
- ldr r0, [r0]
- ldrh r1, [r0, 0x6]
- movs r0, 0xD
- muls r1, r0
- ldr r0, =gMoveNames
- adds r1, r0
- b _081A1174
- .pool
-_081A10F4:
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- adds r1, 0xBA
- ldrh r0, [r1]
- bl ItemId_GetName
- adds r1, r0, 0
- b _081A1174
- .pool
-_081A1118:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r0, [r0]
- movs r1, 0x2
- bl sub_81A1650
- adds r1, r0, 0
- mov r0, sp
- movs r2, 0x2
- bl TVShowConvertInternationalString
- adds r0, r5, 0
- mov r1, sp
- bl StringCopy
- b _081A11E6
- .pool
-_081A1140:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _081A115C
- ldr r1, =gText_Lv50
- b _081A1174
- .pool
-_081A115C:
- ldr r1, =gText_OpenLevel
- b _081A1174
- .pool
-_081A1164:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0x82
- lsls r1, 1
- adds r0, r1
- bl ConvertBattleFrontierTrainerSpeechToString
- ldr r1, =gStringVar4
-_081A1174:
- adds r0, r5, 0
- bl StringCopy
- b _081A11E6
- .pool
-_081A1184:
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- adds r1, r3, 0
- adds r1, 0xB1
- ldrb r1, [r1]
- lsls r4, r1, 24
- lsrs r1, r4, 30
- adds r6, r0, 0
- cmp r1, 0x2
- bhi _081A11C0
- adds r0, r3, 0
- adds r0, 0xB4
- adds r0, r1
- ldrb r2, [r0]
- adds r0, r3, 0
- adds r0, 0xB2
- ldrb r0, [r0]
- lsls r0, 29
- lsrs r0, 29
- asrs r0, r1
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- asrs r2, r0
- movs r0, 0xF
- ands r2, r0
- b _081A11C2
- .pool
-_081A11C0:
- movs r2, 0
-_081A11C2:
- ldr r3, =gUnknown_08610970
- lsls r1, r2, 1
- ldr r0, [r6]
- adds r0, 0xB0
- ldrb r2, [r0]
- movs r0, 0x58
- muls r0, r2
- adds r1, r0
- adds r3, 0x34
- adds r1, r3
- ldrh r1, [r1]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_081A11E6:
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A0FFC
-
- thumb_func_start sub_81A11F8
-sub_81A11F8: @ 81A11F8
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- ldr r0, =gSpecialVar_0x8005
- ldrb r1, [r0]
- adds r2, 0xB1
- lsls r1, 6
- ldrb r3, [r2]
- movs r0, 0x3F
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- bx lr
- .pool
- thumb_func_end sub_81A11F8
-
- thumb_func_start sub_81A1218
-sub_81A1218: @ 81A1218
- push {lr}
- bl sub_81AAC28
- pop {r0}
- bx r0
- thumb_func_end sub_81A1218
-
- thumb_func_start sub_81A1224
-sub_81A1224: @ 81A1224
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- ldr r1, =gSaveBlock2Ptr
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- adds r7, r1, 0
- cmp r0, 0x2
- bhi _081A1242
- b _081A1362
-_081A1242:
- movs r5, 0
- movs r2, 0
- adds r0, r3, 0
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- ldr r1, =gSpecialVar_0x8005
- mov r12, r1
- ldr r1, =gSpecialVar_Result
- mov r8, r1
- cmp r0, 0
- beq _081A127C
- adds r3, r7, 0
-_081A125C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A127C
- ldr r0, [r3]
- lsls r1, r2, 2
- adds r0, r1
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A125C
-_081A127C:
- movs r4, 0
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r7]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- bge _081A1322
- adds r6, r7, 0
- mov r9, r4
-_081A1296:
- ldr r3, [r6]
- lsls r0, r4, 2
- adds r2, r3, r0
- adds r0, r2, 0
- adds r0, 0xB8
- ldrb r1, [r0]
- lsls r0, r1, 30
- lsrs r0, 30
- cmp r0, 0x1
- bne _081A1308
- lsrs r0, r1, 6
- cmp r0, 0
- beq _081A1308
- adds r0, r2, 0
- adds r0, 0xBA
- ldrh r0, [r0]
- mov r2, r12
- ldrh r2, [r2]
- cmp r0, r2
- bne _081A1308
- adds r0, r3, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r0, r3, r0
- adds r0, 0xB8
- ldrb r2, [r0]
- movs r1, 0x3F
- ands r1, r2
- strb r1, [r0]
- ldr r1, [r6]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- mov r1, r9
- mov r0, r8
- strh r1, [r0]
- b _081A1362
- .pool
-_081A1308:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r5
- bcs _081A1322
- ldr r0, [r6]
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- cmp r4, r0
- blt _081A1296
-_081A1322:
- ldr r2, [r7]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r2, r0
- adds r2, 0xB8
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldr r1, [r7]
- adds r0, r1, 0
- adds r0, 0xB1
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 28
- subs r0, 0x3
- lsls r0, 2
- adds r1, r0
- mov r2, r12
- ldrh r0, [r2]
- adds r1, 0xBA
- strh r0, [r1]
- movs r0, 0x1
- mov r1, r8
- strh r0, [r1]
-_081A1362:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81A1224
-
- thumb_func_start sub_81A1370
-sub_81A1370: @ 81A1370
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- movs r2, 0x8A
- lsls r2, 1
- adds r1, r2
- ldrb r1, [r1]
- adds r4, r0, 0
- cmp r1, 0xFF
- beq _081A1422
- movs r5, 0
-_081A138E:
- ldr r1, [r4]
- adds r2, r5, 0x1
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r3, r1, r0
- movs r5, 0x8A
- lsls r5, 1
- adds r0, r3, r5
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _081A13B8
- adds r0, r3, 0
- adds r0, 0xDC
- adds r1, 0xDC
- movs r2, 0x44
- bl memcpy
- b _081A1422
- .pool
-_081A13B8:
- adds r5, r2, 0
- cmp r5, 0x2
- ble _081A138E
- ldr r0, =0x0000ffff
- mov r10, r0
- movs r2, 0x1
- negs r2, r2
- mov r9, r2
- movs r5, 0x1
- ldr r7, =gSaveBlock2Ptr
- movs r0, 0x90
- lsls r0, 1
- mov r8, r0
- movs r6, 0x44
-_081A13D4:
- ldr r0, [r7]
- add r0, r8
- adds r0, 0x34
- bl ReadUnalignedWord
- adds r4, r0, 0
- ldr r0, [r7]
- adds r0, 0xA
- bl ReadUnalignedWord
- cmp r4, r0
- bne _081A13FC
- ldr r0, [r7]
- adds r0, r6
- adds r0, 0xDE
- ldrb r0, [r0]
- cmp r0, r10
- bge _081A13FC
- mov r10, r0
- mov r9, r5
-_081A13FC:
- movs r2, 0x44
- add r8, r2
- adds r6, 0x44
- adds r5, 0x1
- cmp r5, 0x3
- ble _081A13D4
- mov r5, r9
- cmp r5, 0
- ble _081A1422
- ldr r0, =gSaveBlock2Ptr
- ldr r1, [r0]
- lsls r0, r5, 4
- add r0, r9
- lsls r0, 2
- adds r0, r1, r0
- adds r0, 0xDC
- adds r1, 0xDC
- bl memcpy
-_081A1422:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1370
-
- thumb_func_start sub_81A1438
-sub_81A1438: @ 81A1438
- push {r4,r5,lr}
- ldr r4, =gSaveBlock2Ptr
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB0
- ldrb r0, [r0]
- adds r2, 0xDC
- movs r1, 0x1F
- ands r1, r0
- ldrb r3, [r2]
- movs r0, 0x20
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0xB1
- ldrb r1, [r0]
- lsls r1, 30
- adds r2, 0xDC
- lsrs r1, 25
- ldrb r3, [r2]
- movs r0, 0x61
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- movs r2, 0
- ldr r0, [r4]
- b _081A148C
- .pool
-_081A147C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x8
- bhi _081A1496
- ldr r0, [r4]
- lsls r1, r2, 2
- adds r0, r1
-_081A148C:
- adds r0, 0xB8
- ldrb r0, [r0]
- lsls r0, 30
- cmp r0, 0
- bne _081A147C
-_081A1496:
- ldr r4, =gSaveBlock2Ptr
- ldr r0, [r4]
- adds r0, 0xDD
- strb r2, [r0]
- ldr r0, [r4]
- adds r1, r0, 0
- adds r1, 0xDE
- ldrb r0, [r1]
- cmp r0, 0xFE
- bhi _081A14AE
- adds r0, 0x1
- strb r0, [r1]
-_081A14AE:
- ldr r0, [r4]
- adds r0, 0xDD
- ldrb r0, [r0]
- bl sub_81A0390
- movs r2, 0
- adds r3, r4, 0
- movs r4, 0x88
- lsls r4, 1
- adds r5, r3, 0
-_081A14C2:
- ldr r0, [r3]
- adds r1, r0, r4
- adds r1, r2
- adds r0, 0xA
- adds r0, r2
- ldrb r0, [r0]
- strb r0, [r1]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _081A14C2
- ldr r1, [r5]
- movs r2, 0x8A
- lsls r2, 1
- adds r0, r1, r2
- bl StringCopy
- ldr r1, [r5]
- ldr r0, =gGameLanguage
- ldrb r0, [r0]
- ldr r2, =0x0000011b
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0xDC
- bl sub_8165AE8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A1438
-
- thumb_func_start sub_81A150C
-sub_81A150C: @ 81A150C
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xDC
- ldrb r0, [r0]
- lsls r0, 27
- lsrs r0, 27
- movs r1, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1542
-_081A1530:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A1542
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1530
-_081A1542:
- cmp r1, 0x1E
- beq _081A1568
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1594
- .pool
-_081A1568:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1584
-_081A1572:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1584
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1572
-_081A1584:
- cmp r1, 0x14
- beq _081A1594
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1594:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A150C
-
- thumb_func_start sub_81A15A4
-sub_81A15A4: @ 81A15A4
- push {lr}
- ldr r2, =gUnknown_08610970
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xB0
- ldrb r1, [r0]
- movs r0, 0x58
- muls r0, r1
- adds r0, r2
- adds r0, 0x32
- ldrb r2, [r0]
- movs r1, 0
- ldr r3, =gUnknown_085DCEDC
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A15D6
-_081A15C4:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1D
- bhi _081A15D6
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A15C4
-_081A15D6:
- cmp r1, 0x1E
- beq _081A15FC
- ldr r0, =gUnknown_085DCF0E
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
- b _081A1628
- .pool
-_081A15FC:
- movs r1, 0
- ldr r3, =gUnknown_085DCEFA
- ldrb r0, [r3]
- cmp r0, r2
- beq _081A1618
-_081A1606:
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x13
- bhi _081A1618
- adds r0, r1, r3
- ldrb r0, [r0]
- cmp r0, r2
- bne _081A1606
-_081A1618:
- cmp r1, 0x14
- beq _081A1628
- ldr r0, =gUnknown_085DCF2C
- adds r0, r1, r0
- ldrb r1, [r0]
- ldr r0, =0x00004010
- bl VarSet
-_081A1628:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A15A4
-
- thumb_func_start sub_81A1638
-sub_81A1638: @ 81A1638
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1638
-
- thumb_func_start sub_81A1644
-sub_81A1644: @ 81A1644
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bx lr
- .pool
- thumb_func_end sub_81A1644
-
- thumb_func_start sub_81A1650
-sub_81A1650: @ 81A1650
- push {lr}
- movs r2, 0x58
- muls r2, r0
- ldr r0, =gUnknown_08610970
- adds r2, r0
- subs r0, r1, 0x1
- cmp r0, 0x6
- bhi _081A16AC
- lsls r0, 2
- ldr r1, =_081A1674
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081A1674:
- .4byte _081A1690
- .4byte _081A1694
- .4byte _081A169A
- .4byte _081A16A0
- .4byte _081A16A6
- .4byte _081A16AC
- .4byte _081A16AC
-_081A1690:
- adds r0, r2, 0
- b _081A16B0
-_081A1694:
- adds r0, r2, 0
- adds r0, 0x8
- b _081A16B0
-_081A169A:
- adds r0, r2, 0
- adds r0, 0x10
- b _081A16B0
-_081A16A0:
- adds r0, r2, 0
- adds r0, 0x18
- b _081A16B0
-_081A16A6:
- adds r0, r2, 0
- adds r0, 0x20
- b _081A16B0
-_081A16AC:
- adds r0, r2, 0
- adds r0, 0x28
-_081A16B0:
- pop {r1}
- bx r1
- thumb_func_end sub_81A1650
-
- thumb_func_start sub_81A16B4
-sub_81A16B4: @ 81A16B4
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16CE
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A16D4
-_081A16CE:
- adds r0, r2, 0
- bl SwitchTaskToFollowupFunc
-_081A16D4:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16B4
-
- thumb_func_start sub_81A16DC
-sub_81A16DC: @ 81A16DC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081A16F6
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _081A1718
-_081A16F6:
- ldr r2, =gUnknown_030062F4
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- movs r3, 0xA
- ldrsh r0, [r0, r3]
- lsls r0, 16
- orrs r1, r0
- str r1, [r2]
- bl _call_via_r1
- adds r0, r4, 0
- bl DestroyTask
-_081A1718:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A16DC
-
- thumb_func_start sub_81A172C
-sub_81A172C: @ 81A172C
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =sub_81A16DC
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r4, [r1, 0x8]
- lsrs r4, 16
- strh r4, [r1, 0xA]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A172C
-
- thumb_func_start sub_81A175C
-sub_81A175C: @ 81A175C
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =sub_81A16B4
- adds r0, r4, 0
- movs r1, 0x1
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81A175C
thumb_func_start sub_81A1780
sub_81A1780: @ 81A1780
@@ -4152,7 +380,7 @@ _081A1AEA:
cmp r3, r0
blt _081A1AEA
_081A1B00:
- bl sub_80F94E8
+ bl ReducePlayerPartyToThree
pop {r4-r7}
pop {r0}
bx r0
@@ -7392,7 +3620,7 @@ _081A3758:
adds r0, 0x70
lsls r0, 24
lsrs r0, 24
- bl sub_819F99C
+ bl CopyFriendsApprenticeChallengeText
b _081A38F8
_081A3766:
movs r0, 0xFA
@@ -7533,7 +3761,7 @@ _081A38A8:
lsrs r3, r0, 24
movs r0, 0x58
muls r0, r3
- ldr r1, =gUnknown_08610970+0x4A
+ ldr r1, =gApprentices+0x4A
_081A38C4:
adds r0, r1
bl ConvertBattleFrontierTrainerSpeechToString
@@ -7554,7 +3782,7 @@ _081A38D4:
lsrs r3, r0, 27
movs r0, 0x58
muls r0, r3
- ldr r1, =gUnknown_08610970+0x4A
+ ldr r1, =gApprentices+0x4A
adds r0, r1
bl ConvertBattleFrontierTrainerSpeechToString
_081A38F8:
@@ -17008,7 +13236,7 @@ _081A87EC:
ldrh r1, [r0]
movs r0, 0x64
muls r0, r1
- ldr r1, =gBattleScripting + 0x14
+ ldr r1, =gPlayerParty - 100
adds r0, r1
ldr r1, =0x00000e12
adds r3, r1
diff --git a/asm/battle_tower.s b/asm/battle_tower.s
index 2312b63bd..ae01e0b5e 100644
--- a/asm/battle_tower.s
+++ b/asm/battle_tower.s
@@ -576,7 +576,7 @@ _0816266C:
b _081626BA
.pool
_08162698:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -747,7 +747,7 @@ _081627E8:
b _08162836
.pool
_08162814:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1161,7 +1161,7 @@ _08162B64:
cmp r0, 0
bne _08162BB0
ldr r4, =gFacilityClassToPicIndex
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1184,7 +1184,7 @@ _08162B64:
.pool
_08162BB0:
ldr r5, =gFacilityClassToPicIndex
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1301,7 +1301,7 @@ _08162CBC:
cmp r0, 0
beq _08162CF4
ldr r5, =gFacilityClassToTrainerClass
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1316,7 +1316,7 @@ _08162CBC:
.pool
_08162CF4:
ldr r4, =gFacilityClassToTrainerClass
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1407,7 +1407,7 @@ _08162DC0:
ands r0, r1
cmp r0, 0
beq _08162DE8
- ldr r4, =gUnknown_08610970
+ ldr r4, =gApprentices
bl sub_81864A8
lsls r0, 24
lsrs r0, 24
@@ -1417,7 +1417,7 @@ _08162DC0:
b _08162E08
.pool
_08162DE8:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1578,7 +1578,7 @@ _08162F24:
_08162F3E:
adds r0, r5, 0
adds r1, r4, 0
- bl sub_81A1650
+ bl GetApprenticeNameInLanguage
adds r1, r0, 0
adds r0, r6, 0
adds r2, r4, 0
@@ -1648,7 +1648,7 @@ _08162FC0:
b _0816300E
.pool
_08162FEC:
- ldr r3, =gUnknown_08610970
+ ldr r3, =gApprentices
ldr r0, =gSaveBlock2Ptr
ldr r1, [r0]
ldr r0, =0xfffffe70
@@ -1927,7 +1927,7 @@ _08163230:
ldr r1, [r6]
adds r1, r5
lsrs r2, r4, 24
- bl sub_8068528
+ bl CreateApprenticeMon
movs r2, 0x80
lsls r2, 17
adds r4, r2
@@ -2831,7 +2831,7 @@ _0816399C:
adds r0, 0x70
lsls r0, 24
lsrs r0, 24
- bl sub_819F99C
+ bl CopyFriendsApprenticeChallengeText
_081639A8:
pop {r0}
bx r0
@@ -3475,7 +3475,7 @@ _08163FCC:
adds r1, r0, 0
movs r0, 0x64
muls r0, r1
- ldr r1, =gBattleScripting + 0x14
+ ldr r1, =gPlayerParty - 100
adds r0, r1
movs r1, 0x2C
muls r1, r4
@@ -6295,7 +6295,7 @@ _08165812:
adds r0, r5
ldrb r2, [r0]
adds r0, r4, 0
- bl sub_8068528
+ bl CreateApprenticeMon
movs r3, 0xC8
lsls r3, 1
adds r0, r7, r3
@@ -6690,7 +6690,7 @@ _08165B10:
adds r1, 0x1
cmp r1, 0x10
bls _08165B10
- bl sub_819FA5C
+ bl ResetApprenticeStruct
pop {r0}
bx r0
thumb_func_end sub_8165B08
diff --git a/asm/cable_club.s b/asm/cable_club.s
deleted file mode 100644
index 6f4917a19..000000000
--- a/asm/cable_club.s
+++ /dev/null
@@ -1,2842 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_80B236C
-sub_80B236C: @ 80B236C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- ldr r4, =sub_80B2634
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080B23A0
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- strh r6, [r1, 0xA]
- strh r5, [r1, 0xC]
-_080B23A0:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B236C
-
- thumb_func_start sub_80B23B0
-sub_80B23B0: @ 80B23B0
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldr r0, =gStringVar1
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r5, =gStringVar4
- ldr r1, =gText_XPLink
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x58
- bl GetStringCenterAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- adds r2, r5, 0
- bl AddTextPrinterParameterized
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B23B0
-
- thumb_func_start sub_80B241C
-sub_80B241C: @ 80B241C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl sub_819746C
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80B241C
-
- thumb_func_start sub_80B243C
-sub_80B243C: @ 80B243C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x6
- ldrsh r0, [r4, r1]
- cmp r5, r0
- beq _080B2472
- cmp r5, 0x1
- bhi _080B2468
- ldrh r0, [r4, 0xA]
- bl sub_80B241C
- b _080B2470
- .pool
-_080B2468:
- ldrh r0, [r4, 0xA]
- adds r1, r5, 0
- bl sub_80B23B0
-_080B2470:
- strh r5, [r4, 0x6]
-_080B2472:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B243C
-
- thumb_func_start sub_80B2478
-sub_80B2478: @ 80B2478
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- bl GetLinkPlayerDataExchangeStatusTimed
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x1
- cmp r0, 0x6
- bhi _080B24F0
- lsls r0, 2
- ldr r1, =_080B24A0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B24A0:
- .4byte _080B24BC
- .4byte _080B24F0
- .4byte _080B24C0
- .4byte _080B24C4
- .4byte _080B24C8
- .4byte _080B24CC
- .4byte _080B24EC
-_080B24BC:
- movs r0, 0x1
- b _080B24F2
-_080B24C0:
- movs r0, 0x3
- b _080B24F2
-_080B24C4:
- movs r0, 0x7
- b _080B24F2
-_080B24C8:
- movs r0, 0x9
- b _080B24F2
-_080B24CC:
- ldr r4, =gStringVar1
- bl GetLinkPlayerCount_2
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- b _080B24F2
- .pool
-_080B24EC:
- movs r0, 0xA
- b _080B24F2
-_080B24F0:
- movs r0, 0
-_080B24F2:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B2478
-
- thumb_func_start sub_80B24F8
-sub_80B24F8: @ 80B24F8
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl HasLinkErrorOccurred
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B250E
- movs r0, 0
- b _080B251E
-_080B250E:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2D2C
- str r0, [r1]
- movs r0, 0x1
-_080B251E:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B24F8
-
- thumb_func_start sub_80B252C
-sub_80B252C: @ 80B252C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2570
- bl IsLinkConnectionEstablished
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- bne _080B2570
- ldr r0, =gLinkType
- strh r1, [r0]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CEC
- str r1, [r0]
- movs r0, 0x1
- b _080B2572
- .pool
-_080B2570:
- movs r0, 0
-_080B2572:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B252C
-
- thumb_func_start sub_80B2578
-sub_80B2578: @ 80B2578
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl IsLinkConnectionEstablished
- lsls r0, 24
- cmp r0, 0
- beq _080B258E
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
-_080B258E:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- bne _080B25A4
- movs r0, 0
- b _080B25BA
- .pool
-_080B25A4:
- ldr r1, =gLinkType
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CEC
- str r1, [r0]
- movs r0, 0x1
-_080B25BA:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2578
-
- thumb_func_start sub_80B25CC
-sub_80B25CC: @ 80B25CC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetSioMultiSI
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B25E2
- movs r0, 0
- b _080B25F2
-_080B25E2:
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2D2C
- str r0, [r1]
- movs r0, 0x1
-_080B25F2:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B25CC
-
- thumb_func_start sub_80B2600
-sub_80B2600: @ 80B2600
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xA
- bne _080B262A
- movs r0, 0x2
- bl sub_800A4D8
- adds r0, r4, 0
- bl DestroyTask
-_080B262A:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2600
-
- thumb_func_start sub_80B2634
-sub_80B2634: @ 80B2634
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _080B266C
- bl OpenLinkTimed
- bl sub_800AB98
- bl ResetLinkPlayers
- ldr r0, =gUnknown_08550594
- bl AddWindow
- strh r0, [r4, 0xA]
- b _080B2678
- .pool
-_080B266C:
- cmp r2, 0x9
- ble _080B2678
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, =sub_80B2688
- str r1, [r0]
-_080B2678:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2634
-
- thumb_func_start sub_80B2688
-sub_80B2688: @ 80B2688
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B26FC
- adds r0, r4, 0
- bl sub_80B2578
- cmp r0, 0x1
- beq _080B26FC
- cmp r5, 0x1
- bls _080B26FC
- movs r0, 0x1
- bl SetSuppressLinkErrorMessage
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0
- strh r0, [r4, 0xE]
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B26EC
- movs r0, 0x15
- bl PlaySE
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3
- bl ShowFieldAutoScrollMessage
- ldr r0, =sub_80B270C
- b _080B26FA
- .pool
-_080B26EC:
- movs r0, 0x16
- bl PlaySE
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_278131
- bl ShowFieldAutoScrollMessage
- ldr r0, =sub_80B2918
-_080B26FA:
- str r0, [r4]
-_080B26FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2688
-
- thumb_func_start sub_80B270C
-sub_80B270C: @ 80B270C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B274C
- adds r0, r4, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B274C
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B274C
- bl textbox_any_visible
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _080B274C
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- strh r2, [r1, 0xE]
- ldr r0, =sub_80B275C
- str r0, [r1]
-_080B274C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B270C
-
- thumb_func_start sub_80B275C
-sub_80B275C: @ 80B275C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- mov r8, r0
- ldr r0, =gTasks + 0x8
- mov r9, r0
- mov r7, r8
- add r7, r9
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B27E4
- adds r0, r4, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B27E4
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B27E4
- adds r6, r5, 0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_80B243C
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B27E4
- movs r1, 0x2
- ldrsh r0, [r7, r1]
- cmp r5, r0
- blt _080B27E4
- adds r0, r6, 0
- bl sub_800AA04
- ldrh r0, [r7, 0xA]
- bl sub_80B241C
- ldr r0, =gStringVar1
- adds r1, r5, 0
- movs r2, 0
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780F2
- bl ShowFieldAutoScrollMessage
- mov r0, r9
- subs r0, 0x8
- add r0, r8
- ldr r1, =sub_80B2804
- str r1, [r0]
-_080B27E4:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B275C
-
- thumb_func_start sub_80B2804
-sub_80B2804: @ 80B2804
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- adds r0, r5, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B2898
- adds r0, r5, 0
- bl sub_80B25CC
- cmp r0, 0x1
- beq _080B2898
- adds r0, r5, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2898
- bl textbox_any_visible
- lsls r0, 24
- cmp r0, 0
- bne _080B2898
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B2852
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _080B2878
-_080B2852:
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_2780B3
- bl ShowFieldAutoScrollMessage
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B270C
- str r1, [r0]
- b _080B2898
- .pool
-_080B2878:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B2898
- movs r0, 0x5
- bl PlaySE
- bl sub_800A620
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B28A8
- str r0, [r1]
-_080B2898:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2804
-
- thumb_func_start sub_80B28A8
-sub_80B28A8: @ 80B28A8
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r5, r0, r1
- ldrb r7, [r5, 0xA]
- ldrb r6, [r5, 0xC]
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B290A
- adds r0, r4, 0
- bl sub_80B2D6C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080B290A
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800AA48
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- beq _080B28F4
- ldr r0, =sub_80B2D2C
- b _080B2908
- .pool
-_080B28F4:
- ldr r4, =gSpecialVar_Result
- adds r0, r7, 0
- adds r1, r6, 0
- bl sub_80B2478
- strh r0, [r4]
- lsls r0, 16
- cmp r0, 0
- beq _080B290A
- ldr r0, =sub_80B2A08
-_080B2908:
- str r0, [r5]
-_080B290A:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B28A8
-
- thumb_func_start sub_80B2918
-sub_80B2918: @ 80B2918
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r7, r0, r1
- ldrb r6, [r7, 0xA]
- ldrb r5, [r7, 0xC]
- adds r0, r4, 0
- bl sub_80B252C
- cmp r0, 0x1
- beq _080B29E6
- adds r0, r4, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B29E6
- ldr r4, =gSpecialVar_Result
- adds r0, r6, 0
- adds r1, r5, 0
- bl sub_80B2478
- adds r1, r0, 0
- strh r1, [r4]
- lsls r0, r1, 16
- lsrs r2, r0, 16
- cmp r2, 0
- beq _080B29E6
- subs r0, r1, 0x3
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B297C
- bl sub_800AC34
- bl HideFieldMessageBox
- ldr r0, =sub_80B2CB0
- b _080B29E4
- .pool
-_080B297C:
- cmp r2, 0x7
- beq _080B2984
- cmp r2, 0x9
- bne _080B2994
-_080B2984:
- bl CloseLink
- bl HideFieldMessageBox
- ldr r0, =sub_80B2CB0
- b _080B29E4
- .pool
-_080B2994:
- bl GetLinkPlayerCount_2
- ldr r4, =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, =gUnknown_03005DB4
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_800AA04
- ldr r4, =gBlockSendBuffer
- adds r0, r4, 0
- bl sub_80C30A4
- ldr r0, =gUnknown_0203CEF8
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gBattleScripting + 0x14
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x54
- strh r0, [r1]
- mov r1, r8
- ldrb r0, [r1, 0x1]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x56
- strh r0, [r4]
- ldr r0, =sub_80B2C30
-_080B29E4:
- str r0, [r7]
-_080B29E6:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2918
-
- thumb_func_start sub_80B2A08
-sub_80B2A08: @ 80B2A08
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2ACE
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x4
- bne _080B2A38
- bl Link_AnyPartnersPlayingRubyOrSapphire
- cmp r0, 0
- bne _080B2A4A
- bl sub_800AC34
- b _080B2A4E
- .pool
-_080B2A38:
- cmp r0, 0x3
- bne _080B2A42
- bl sub_800AC34
- b _080B2A4E
-_080B2A42:
- cmp r0, 0x7
- beq _080B2A4A
- cmp r0, 0x9
- bne _080B2A6C
-_080B2A4A:
- bl CloseLink
-_080B2A4E:
- bl HideFieldMessageBox
- ldr r0, =gTasks
- lsls r1, r7, 2
- adds r1, r7
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2CB0
- str r0, [r1]
- b _080B2ACE
- .pool
-_080B2A6C:
- bl GetLinkPlayerCount_2
- ldr r4, =gFieldLinkPlayerCount
- strb r0, [r4]
- bl GetMultiplayerId
- ldr r1, =gUnknown_03005DB4
- strb r0, [r1]
- ldrb r0, [r4]
- bl sub_800AA04
- ldr r4, =gBlockSendBuffer
- adds r0, r4, 0
- bl sub_80C30A4
- ldr r0, =gUnknown_0203CEF8
- mov r8, r0
- ldrb r0, [r0]
- movs r6, 0x64
- muls r0, r6
- ldr r5, =gBattleScripting + 0x14
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r1, r4, 0
- adds r1, 0x54
- strh r0, [r1]
- mov r1, r8
- ldrb r0, [r1, 0x1]
- muls r0, r6
- adds r0, r5
- movs r1, 0xB
- movs r2, 0
- bl GetMonData
- adds r4, 0x56
- strh r0, [r4]
- ldr r1, =gTasks
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2C30
- str r1, [r0]
- movs r0, 0x2
- bl sub_800A4D8
-_080B2ACE:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2A08
-
- thumb_func_start sub_80B2AF4
-sub_80B2AF4: @ 80B2AF4
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- str r0, [sp]
- str r1, [sp, 0x4]
- movs r2, 0
- movs r7, 0
- ldr r1, =gStringVar1
- movs r0, 0xFF
- strb r0, [r1]
- ldr r1, =gStringVar2
- movs r0, 0x1
- negs r0, r0
- strb r0, [r1]
- movs r1, 0
- movs r0, 0xB
- mov r10, r0
- ldr r0, =gSpeciesNames
- mov r9, r0
-_080B2B20:
- lsls r0, r1, 1
- adds r1, 0x1
- mov r8, r1
- ldr r1, [sp]
- adds r4, r0, r1
- ldr r5, [sp, 0x4]
- movs r6, 0x1
-_080B2B2E:
- ldrh r0, [r4]
- ldrh r1, [r5]
- cmp r0, r1
- bne _080B2B5E
- cmp r7, 0
- bne _080B2B48
- mov r1, r10
- muls r1, r0
- add r1, r9
- ldr r0, =gStringVar1
- bl StringCopy
- movs r2, 0x1
-_080B2B48:
- cmp r7, 0x1
- bne _080B2B5C
- ldrh r0, [r4]
- mov r1, r10
- muls r1, r0
- add r1, r9
- ldr r0, =gStringVar2
- bl StringCopy
- movs r2, 0x1
-_080B2B5C:
- adds r7, 0x1
-_080B2B5E:
- adds r5, 0x2
- subs r6, 0x1
- cmp r6, 0
- bge _080B2B2E
- mov r1, r8
- cmp r1, 0x1
- ble _080B2B20
- ldr r0, =gSpecialVar_0x8005
- strh r7, [r0]
- adds r0, r2, 0
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2AF4
-
- thumb_func_start task_map_chg_seq_0807EC34
-task_map_chg_seq_0807EC34: @ 80B2B94
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gTrainerCards
- ldrh r0, [r5]
- cmp r0, 0x1
- bne _080B2C10
- ldr r0, =gLinkType
- ldrh r2, [r0]
- ldr r0, =0x00002266
- cmp r2, r0
- beq _080B2BB2
- adds r0, 0x11
- cmp r2, r0
- bne _080B2BEC
-_080B2BB2:
- adds r0, r1, 0
- adds r0, 0x54
- adds r1, 0xB8
- bl sub_80B2AF4
- cmp r0, 0
- beq _080B2BEC
- movs r0, 0xB
- strh r0, [r5]
- bl sub_800AC34
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B2CB0
- str r1, [r0]
- b _080B2C22
- .pool
-_080B2BEC:
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x12]
- bl sub_80B241C
- bl EnableBothScriptContexts
- lsls r0, r4, 24
- lsrs r0, 24
- bl DestroyTask
- b _080B2C22
- .pool
-_080B2C10:
- bl sub_800AC34
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B2CB0
- str r0, [r1]
-_080B2C22:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_map_chg_seq_0807EC34
-
- thumb_func_start sub_80B2C30
-sub_80B2C30: @ 80B2C30
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_80B24F8
- cmp r0, 0x1
- beq _080B2C9C
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_800A9A8
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B2C9C
- movs r4, 0
- ldr r6, =gLinkPlayers
- b _080B2C7E
- .pool
-_080B2C5C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gTrainerCards
- adds r0, r1
- lsls r1, r4, 8
- ldr r2, =gBlockRecvBuffer
- adds r1, r2
- lsls r2, r4, 3
- subs r2, r4
- lsls r2, 2
- adds r2, r6
- ldrb r2, [r2]
- bl sub_80C3120
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
-_080B2C7E:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bcc _080B2C5C
- movs r0, 0
- bl SetSuppressLinkErrorMessage
- bl ResetBlockReceivedFlags
- ldr r0, =gSpecialVar_Result
- adds r1, r5, 0
- bl task_map_chg_seq_0807EC34
-_080B2C9C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2C30
-
- thumb_func_start sub_80B2CB0
-sub_80B2CB0: @ 80B2CB0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B2CDE
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- bl EnableBothScriptContexts
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- adds r0, r5, 0
- bl DestroyTask
-_080B2CDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2CB0
-
- thumb_func_start sub_80B2CEC
-sub_80B2CEC: @ 80B2CEC
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gSpecialVar_Result
- movs r0, 0x5
- strh r0, [r1]
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- bl sub_8098374
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2CEC
-
- thumb_func_start sub_80B2D2C
-sub_80B2D2C: @ 80B2D2C
- push {r4,r5,lr}
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, =gSpecialVar_Result
- movs r0, 0x6
- strh r0, [r1]
- ldr r0, =gTasks
- lsls r4, r5, 2
- adds r4, r5
- lsls r4, 3
- adds r4, r0
- ldrh r0, [r4, 0x12]
- bl sub_80B241C
- ldrb r0, [r4, 0x12]
- bl RemoveWindow
- bl HideFieldMessageBox
- bl EnableBothScriptContexts
- adds r0, r5, 0
- bl DestroyTask
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2D2C
-
- thumb_func_start sub_80B2D6C
-sub_80B2D6C: @ 80B2D6C
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r2, r1, r2
- ldrh r0, [r2, 0x10]
- adds r0, 0x1
- strh r0, [r2, 0x10]
- lsls r0, 16
- movs r1, 0x96
- lsls r1, 18
- cmp r0, r1
- bgt _080B2D94
- movs r0, 0
- b _080B2D9A
- .pool
-_080B2D94:
- ldr r0, =sub_80B2D2C
- str r0, [r2]
- movs r0, 0x1
-_080B2D9A:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B2D6C
-
- thumb_func_start sub_80B2DA4
-sub_80B2DA4: @ 80B2DA4
- push {r4,lr}
- movs r3, 0x2
- movs r2, 0x2
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x2
- beq _080B2DDC
- cmp r0, 0x2
- bgt _080B2DC0
- cmp r0, 0x1
- beq _080B2DCA
- b _080B2E34
- .pool
-_080B2DC0:
- cmp r0, 0x5
- beq _080B2DEC
- cmp r0, 0x9
- beq _080B2E00
- b _080B2E34
-_080B2DCA:
- movs r3, 0x2
- ldr r1, =gLinkType
- ldr r4, =0x00002233
- b _080B2E30
- .pool
-_080B2DDC:
- movs r3, 0x2
- ldr r1, =gLinkType
- ldr r4, =0x00002244
- b _080B2E30
- .pool
-_080B2DEC:
- movs r3, 0x4
- movs r2, 0x4
- ldr r1, =gLinkType
- ldr r4, =0x00002255
- b _080B2E30
- .pool
-_080B2E00:
- movs r3, 0x2
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B2E2C
- ldr r1, =gLinkType
- ldr r4, =0x00002266
- b _080B2E30
- .pool
-_080B2E2C:
- ldr r1, =gLinkType
- ldr r4, =0x00002277
-_080B2E30:
- adds r0, r4, 0
- strh r0, [r1]
-_080B2E34:
- adds r0, r3, 0
- adds r1, r2, 0
- bl sub_80B236C
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2DA4
-
- thumb_func_start sub_80B2E4C
-sub_80B2E4C: @ 80B2E4C
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00001133
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x2
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2E4C
-
- thumb_func_start sub_80B2E74
-sub_80B2E74: @ 80B2E74
- push {lr}
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- strh r0, [r1]
- ldr r1, =gLinkType
- ldr r2, =0x00003311
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2E74
-
- thumb_func_start sub_80B2EA8
-sub_80B2EA8: @ 80B2EA8
- push {r4,lr}
- ldr r4, =sub_80B2EE4
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- bne _080B2ED4
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0x8]
-_080B2ED4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2EA8
-
- thumb_func_start sub_80B2EE4
-sub_80B2EE4: @ 80B2EE4
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x8
- ldrsh r0, [r0, r1]
- cmp r0, 0
- beq _080B2F0C
- cmp r0, 0x1
- beq _080B2FB4
- b _080B2FC6
- .pool
-_080B2F0C:
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _080B2FA8
- movs r7, 0
- movs r0, 0
- mov r8, r0
- mov r9, r0
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- cmp r7, r5
- bge _080B2F74
- ldr r0, =gLinkPlayers
- ldrb r2, [r0]
- ldrh r3, [r0, 0x1A]
- subs r1, r2, 0x1
- mov r12, r0
- cmp r1, 0x1
- bhi _080B2F4A
- b _080B2F6E
- .pool
-_080B2F44:
- movs r1, 0x1
- mov r8, r1
- b _080B2F56
-_080B2F4A:
- cmp r2, 0x3
- bne _080B2F56
- cmp r3, 0x1
- bne _080B2F56
- movs r0, 0x1
- mov r9, r0
-_080B2F56:
- adds r4, 0x1
- cmp r4, r5
- bge _080B2F74
- lsls r0, r4, 3
- subs r0, r4
- lsls r0, 2
- add r0, r12
- ldrb r2, [r0]
- ldrh r3, [r0, 0x1A]
- subs r0, r2, 0x1
- cmp r0, 0x1
- bhi _080B2F4A
-_080B2F6E:
- cmp r3, 0x1
- bne _080B2F44
- movs r7, 0x1
-_080B2F74:
- mov r1, r8
- cmp r1, 0
- beq _080B2F82
- mov r0, r9
- cmp r0, 0
- beq _080B2F82
- movs r7, 0x1
-_080B2F82:
- cmp r7, 0
- beq _080B2FA8
- ldr r1, =gSpecialVar_Result
- movs r0, 0xC
- strh r0, [r1]
- bl sub_800AD10
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r1, 0x1
- strh r1, [r0, 0x8]
- b _080B2FC6
- .pool
-_080B2FA8:
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
- b _080B2FC6
-_080B2FB4:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B2FC6
- bl EnableBothScriptContexts
- adds r0, r6, 0
- bl DestroyTask
-_080B2FC6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2EE4
-
- thumb_func_start sub_80B2FD8
-sub_80B2FD8: @ 80B2FD8
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00004411
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B2FD8
-
- thumb_func_start sub_80B3000
-sub_80B3000: @ 80B3000
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00006601
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x4
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3000
-
- thumb_func_start sub_80B3028
-sub_80B3028: @ 80B3028
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00006602
- adds r0, r2, 0
- strh r0, [r1]
- ldr r1, =gBattleTypeFlags
- movs r0, 0
- str r0, [r1]
- movs r0, 0x2
- movs r1, 0x4
- bl sub_80B236C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3028
-
- thumb_func_start sub_80B3050
-sub_80B3050: @ 80B3050
- push {lr}
- ldr r0, =sub_80B3144
- bl FuncIsActiveTask
- lsls r0, 24
- cmp r0, 0
- beq _080B3068
- movs r0, 0xFF
- b _080B3134
- .pool
-_080B3068:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- cmp r0, 0x8
- bhi _080B3128
- lsls r0, 2
- ldr r1, =_080B3084
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B3084:
- .4byte _080B30A8
- .4byte _080B30B8
- .4byte _080B3110
- .4byte _080B3120
- .4byte _080B30C8
- .4byte _080B3128
- .4byte _080B3128
- .4byte _080B3128
- .4byte _080B30D8
-_080B30A8:
- ldr r1, =gLinkType
- ldr r2, =0x00002233
- b _080B3124
- .pool
-_080B30B8:
- ldr r1, =gLinkType
- ldr r2, =0x00002244
- b _080B3124
- .pool
-_080B30C8:
- ldr r1, =gLinkType
- ldr r2, =0x00002255
- b _080B3124
- .pool
-_080B30D8:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000ca9
- adds r0, r1
- ldrb r1, [r0]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _080B3100
- ldr r1, =gLinkType
- ldr r2, =0x00002266
- b _080B3124
- .pool
-_080B3100:
- ldr r1, =gLinkType
- ldr r2, =0x00002277
- b _080B3124
- .pool
-_080B3110:
- ldr r1, =gLinkType
- ldr r2, =0x00001111
- b _080B3124
- .pool
-_080B3120:
- ldr r1, =gLinkType
- ldr r2, =0x00003322
-_080B3124:
- adds r0, r2, 0
- strh r0, [r1]
-_080B3128:
- ldr r0, =sub_80B3144
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
-_080B3134:
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80B3050
-
- thumb_func_start sub_80B3144
-sub_80B3144: @ 80B3144
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r3, 0
- ldrsh r2, [r4, r3]
- cmp r2, 0
- bne _080B3178
- bl OpenLink
- bl ResetLinkPlayers
- ldr r0, =task00_08081A90
- movs r1, 0x50
- bl CreateTask
- b _080B3184
- .pool
-_080B3178:
- cmp r2, 0x9
- ble _080B3184
- subs r0, 0x8
- adds r0, r1, r0
- ldr r1, =sub_80B3194
- str r1, [r0]
-_080B3184:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3144
-
- thumb_func_start sub_80B3194
-sub_80B3194: @ 80B3194
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl GetLinkPlayerCount_2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bls _080B31DA
- bl IsLinkMaster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B31CC
- ldr r0, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B31E8
- b _080B31D8
- .pool
-_080B31CC:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B3220
-_080B31D8:
- str r0, [r1]
-_080B31DA:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3194
-
- thumb_func_start sub_80B31E8
-sub_80B31E8: @ 80B31E8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl sub_800AA48
- adds r4, r0, 0
- bl GetLinkPlayerCount_2
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B3212
- bl sub_800A620
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_80B3220
- str r0, [r1]
-_080B3212:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B31E8
-
- thumb_func_start sub_80B3220
-sub_80B3220: @ 80B3220
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B3248
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3248
- bl sub_800AB18
- bl sub_8009F18
- adds r0, r4, 0
- bl DestroyTask
-_080B3248:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3220
-
- thumb_func_start sub_80B3254
-sub_80B3254: @ 80B3254
- push {lr}
- bl SaveGame
- pop {r0}
- bx r0
- thumb_func_end sub_80B3254
-
- thumb_func_start sub_80B3260
-sub_80B3260: @ 80B3260
- push {lr}
- cmp r0, 0x2
- beq _080B3284
- cmp r0, 0x2
- bgt _080B3270
- cmp r0, 0x1
- beq _080B327A
- b _080B32A6
-_080B3270:
- cmp r0, 0x5
- beq _080B3290
- cmp r0, 0x9
- beq _080B32A0
- b _080B32A6
-_080B327A:
- ldr r1, =gBattleTypeFlags
- movs r0, 0xA
- b _080B32A4
- .pool
-_080B3284:
- ldr r1, =gBattleTypeFlags
- movs r0, 0xB
- b _080B32A4
- .pool
-_080B3290:
- bl sub_80F94E8
- ldr r1, =gBattleTypeFlags
- movs r0, 0x4B
- b _080B32A4
- .pool
-_080B32A0:
- ldr r1, =gBattleTypeFlags
- ldr r0, =0x0000014b
-_080B32A4:
- str r0, [r1]
-_080B32A6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3260
-
- thumb_func_start sub_80B32B4
-sub_80B32B4: @ 80B32B4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x5
- bhi _080B33A0
- lsls r0, 2
- ldr r1, =_080B32E0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B32E0:
- .4byte _080B32F8
- .4byte _080B3318
- .4byte _080B3328
- .4byte _080B3338
- .4byte _080B333E
- .4byte _080B3354
-_080B32F8:
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- ldr r1, =gLinkType
- ldr r2, =0x00002211
- adds r0, r2, 0
- strh r0, [r1]
- bl ClearLinkCallback_2
- b _080B3346
- .pool
-_080B3318:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- b _080B3342
- .pool
-_080B3328:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B33A0
- b _080B3346
-_080B3338:
- bl sub_800AC34
- b _080B3346
-_080B333E:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
-_080B3342:
- cmp r0, 0
- bne _080B33A0
-_080B3346:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B33A0
- .pool
-_080B3354:
- ldr r0, =gLinkPlayers
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B3370
- ldr r0, =0x000001dd
- bl PlayMapChosenOrBattleBGM
- b _080B3378
- .pool
-_080B3370:
- movs r0, 0xEE
- lsls r0, 1
- bl PlayMapChosenOrBattleBGM
-_080B3378:
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_80B3260
- bl overworld_free_bg_tilemaps
- ldr r1, =gTrainerBattleOpponent_A
- movs r2, 0x80
- lsls r2, 4
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- ldr r1, =gMain
- ldr r0, =sub_80B360C
- str r0, [r1, 0x8]
- adds r0, r5, 0
- bl DestroyTask
-_080B33A0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B32B4
-
- thumb_func_start sub_80B33BC
-sub_80B33BC: @ 80B33BC
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r1, 0
- ldrsh r0, [r6, r1]
- cmp r0, 0x7
- bls _080B33D6
- b _080B3532
-_080B33D6:
- lsls r0, 2
- ldr r1, =_080B33E8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080B33E8:
- .4byte _080B3408
- .4byte _080B342C
- .4byte _080B3444
- .4byte _080B3458
- .4byte _080B34B0
- .4byte _080B34C4
- .4byte _080B34CE
- .4byte _080B34DE
-_080B3408:
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- ldr r0, =gLinkType
- ldr r2, =0x00002211
- adds r1, r2, 0
- strh r1, [r0]
- bl ClearLinkCallback_2
- movs r0, 0x1
- strh r0, [r6]
- b _080B3532
- .pool
-_080B342C:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _080B343A
- b _080B3532
-_080B343A:
- movs r0, 0x2
- strh r0, [r6]
- b _080B3532
- .pool
-_080B3444:
- ldr r1, =gLocalLinkPlayer
- movs r0, 0
- movs r2, 0x1C
- bl SendBlock
- movs r0, 0x3
- strh r0, [r6]
- b _080B3532
- .pool
-_080B3458:
- bl GetBlockReceivedStatus
- adds r4, r0, 0
- bl sub_800A9D8
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bne _080B3532
- movs r4, 0
- ldr r5, =gLinkPlayers
- b _080B349A
- .pool
-_080B3474:
- lsls r1, r4, 8
- ldr r2, =gBlockRecvBuffer
- adds r0, r5, 0
- adds r1, r2
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldm r1!, {r2,r3,r7}
- stm r0!, {r2,r3,r7}
- ldr r1, [r1]
- str r1, [r0]
- adds r0, r5, 0
- bl sub_800B524
- lsls r0, r4, 24
- lsrs r0, 24
- bl ResetBlockReceivedFlag
- adds r5, 0x1C
- adds r4, 0x1
-_080B349A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- blt _080B3474
- movs r0, 0x4
- strh r0, [r6]
- b _080B3532
- .pool
-_080B34B0:
- ldrh r0, [r6, 0x2]
- adds r0, 0x1
- strh r0, [r6, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x14
- ble _080B3532
- movs r0, 0x5
- strh r0, [r6]
- b _080B3532
-_080B34C4:
- bl sub_800ADF8
- movs r0, 0x6
- strh r0, [r6]
- b _080B3532
-_080B34CE:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080B3532
- movs r0, 0x7
- strh r0, [r6]
- b _080B3532
-_080B34DE:
- ldr r0, =gLinkPlayers
- ldr r0, [r0, 0x4]
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080B34FC
- ldr r0, =0x000001dd
- bl PlayMapChosenOrBattleBGM
- b _080B3504
- .pool
-_080B34FC:
- movs r0, 0xEE
- lsls r0, 1
- bl PlayMapChosenOrBattleBGM
-_080B3504:
- ldr r1, =gLinkPlayers
- ldr r0, =0x00002211
- str r0, [r1, 0x14]
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- bl sub_80B3260
- bl overworld_free_bg_tilemaps
- ldr r1, =gTrainerBattleOpponent_A
- movs r3, 0x80
- lsls r3, 4
- adds r0, r3, 0
- strh r0, [r1]
- ldr r0, =CB2_InitBattle
- bl SetMainCallback2
- ldr r1, =gMain
- ldr r0, =sub_80B360C
- str r0, [r1, 0x8]
- adds r0, r4, 0
- bl DestroyTask
-_080B3532:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B33BC
-
- thumb_func_start sub_80B3554
-sub_80B3554: @ 80B3554
- push {r4,lr}
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B35E0
- cmp r0, 0x1
- bgt _080B3574
- cmp r0, 0
- beq _080B357A
- b _080B35FE
- .pool
-_080B3574:
- cmp r0, 0x2
- beq _080B35F8
- b _080B35FE
-_080B357A:
- bl GetLinkPlayerCount
- lsls r0, 24
- lsrs r3, r0, 24
- movs r4, 0
- movs r2, 0
- cmp r4, r3
- bge _080B35AC
- ldr r1, =gLinkPlayers
- ldrb r0, [r1]
- subs r0, 0x4
- cmp r0, 0x1
- bls _080B35B0
-_080B3594:
- adds r2, 0x1
- cmp r2, r3
- bge _080B35AC
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0]
- subs r0, 0x4
- cmp r0, 0x1
- bhi _080B3594
- movs r4, 0x1
-_080B35AC:
- cmp r4, 0
- beq _080B35C8
-_080B35B0:
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x2
- strb r1, [r0]
- b _080B35FE
- .pool
-_080B35C8:
- bl sub_800AC34
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- movs r1, 0x1
- strb r1, [r0]
- b _080B35FE
- .pool
-_080B35E0:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B35FE
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- b _080B35FE
- .pool
-_080B35F8:
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
-_080B35FE:
- bl RunTasks
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3554
-
- thumb_func_start sub_80B360C
-sub_80B360C: @ 80B360C
- push {r4,r5,lr}
- ldr r2, =gBattleTypeFlags
- ldr r0, [r2]
- movs r1, 0x21
- negs r1, r1
- ands r0, r1
- str r0, [r2]
- bl Overworld_ResetMapMusic
- bl LoadPlayerParty
- bl SavePlayerBag
- bl sub_813BF10
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- subs r0, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bhi _080B36B2
- ldr r0, =gUnknown_03005DB4
- ldrb r0, [r0]
- movs r5, 0x1
- eors r0, r5
- bl UpdatePlayerLinkBattleRecords
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B36B2
- ldr r0, =gBattleOutcome
- ldrb r0, [r0]
- cmp r0, 0x1
- beq _080B3670
- cmp r0, 0x2
- beq _080B3694
- b _080B36B2
- .pool
-_080B3670:
- ldr r4, =gLinkPlayers
- bl GetMultiplayerId
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x4
- adds r1, r4
- ldr r1, [r1]
- movs r0, 0
- bl sub_801B990
- b _080B36B2
- .pool
-_080B3694:
- ldr r4, =gLinkPlayers
- bl GetMultiplayerId
- eors r0, r5
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- subs r1, r0
- lsls r1, 2
- adds r4, 0x4
- adds r1, r4
- ldr r1, [r1]
- movs r0, 0x1
- bl sub_801B990
-_080B36B2:
- bl InUnionRoom
- cmp r0, 0x1
- bne _080B36CC
- ldr r1, =gMain
- ldr r0, =sub_80B3554
- b _080B36D0
- .pool
-_080B36CC:
- ldr r1, =gMain
- ldr r0, =c2_8056854
-_080B36D0:
- str r0, [r1, 0x8]
- ldr r0, =sub_80A0514
- bl SetMainCallback2
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B360C
-
- thumb_func_start sub_80B36EC
-sub_80B36EC: @ 80B36EC
- push {lr}
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- subs r0, r1, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _080B3706
- adds r0, r1, 0
- cmp r0, 0x5
- beq _080B3706
- cmp r0, 0x9
- bne _080B370E
-_080B3706:
- bl LoadPlayerParty
- bl SavePlayerBag
-_080B370E:
- movs r0, 0x7F
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B36EC
-
- thumb_func_start sub_80B371C
-sub_80B371C: @ 80B371C
- push {lr}
- bl sub_80872B0
- pop {r0}
- bx r0
- thumb_func_end sub_80B371C
-
- thumb_func_start sub_80B3728
-sub_80B3728: @ 80B3728
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r5, r0, r1
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B376C
- cmp r0, 0x1
- bgt _080B3750
- cmp r0, 0
- beq _080B375A
- b _080B37CC
- .pool
-_080B3750:
- cmp r0, 0x2
- beq _080B378C
- cmp r0, 0x3
- beq _080B37B8
- b _080B37CC
-_080B375A:
- ldr r0, =OldaleTown_PokemonCenter_2F_Text_278091
- bl ShowFieldMessage
- movs r0, 0x1
- strh r0, [r5, 0x8]
- b _080B37CC
- .pool
-_080B376C:
- bl IsFieldMessageBoxHidden
- lsls r0, 24
- cmp r0, 0
- beq _080B37CC
- bl sub_8087288
- ldr r0, =gSpecialVar_0x8005
- ldrb r0, [r0]
- bl sub_8009628
- movs r0, 0x2
- strh r0, [r5, 0x8]
- b _080B37CC
- .pool
-_080B378C:
- bl sub_8087214
- cmp r0, 0x1
- beq _080B379E
- cmp r0, 0x1
- bcc _080B37CC
- cmp r0, 0x2
- beq _080B37B2
- b _080B37CC
-_080B379E:
- bl HideFieldMessageBox
- movs r0, 0
- strh r0, [r5, 0x8]
- bl sub_80872C4
- adds r0, r4, 0
- bl SwitchTaskToFollowupFunc
- b _080B37CC
-_080B37B2:
- movs r0, 0x3
- strh r0, [r5, 0x8]
- b _080B37CC
-_080B37B8:
- bl sub_808729C
- movs r0, 0x1
- bl sub_8197AE8
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080B37CC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3728
-
- thumb_func_start sub_80B37D4
-sub_80B37D4: @ 80B37D4
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r4, =sub_80B3728
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- adds r2, r5, 0
- bl SetTaskFuncWithFollowupFunc
- bl ScriptContext1_Stop
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B37D4
-
- thumb_func_start sub_80B37FC
-sub_80B37FC: @ 80B37FC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B3840
- cmp r0, 0x1
- bgt _080B3824
- cmp r0, 0
- beq _080B382E
- b _080B3884
- .pool
-_080B3824:
- cmp r0, 0x2
- beq _080B3854
- cmp r0, 0x3
- beq _080B3870
- b _080B3884
-_080B382E:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- bl ClearLinkCallback_2
- b _080B3864
-_080B3840:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B3884
- b _080B3864
- .pool
-_080B3854:
- ldr r1, =gUnknown_02032298
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800AC34
-_080B3864:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080B3884
- .pool
-_080B3870:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3884
- ldr r0, =sub_80773AC
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_080B3884:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B37FC
-
- thumb_func_start sub_80B3894
-sub_80B3894: @ 80B3894
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080B38D8
- cmp r0, 0x1
- bgt _080B38BC
- cmp r0, 0
- beq _080B38C6
- b _080B391C
- .pool
-_080B38BC:
- cmp r0, 0x2
- beq _080B38EC
- cmp r0, 0x3
- beq _080B3908
- b _080B391C
-_080B38C6:
- bl ScriptContext2_Enable
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- bl Rfu_set_zero
- b _080B38FC
-_080B38D8:
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080B391C
- b _080B38FC
- .pool
-_080B38EC:
- ldr r1, =gUnknown_02032298
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- bl m4aMPlayAllStop
- bl sub_800ADF8
-_080B38FC:
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- b _080B391C
- .pool
-_080B3908:
- bl sub_800A520
- lsls r0, 24
- cmp r0, 0
- beq _080B391C
- bl sub_8013F78
- adds r0, r5, 0
- bl DestroyTask
-_080B391C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80B3894
-
- thumb_func_start sub_80B3924
-sub_80B3924: @ 80B3924
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3940
- ldr r0, =sub_80B3894
- bl sub_80B37D4
- b _080B3946
- .pool
-_080B3940:
- ldr r0, =sub_80B37FC
- bl sub_80B37D4
-_080B3946:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3924
-
- thumb_func_start sub_80B3950
-sub_80B3950: @ 80B3950
- push {lr}
- ldr r0, =sub_80B37FC
- movs r1, 0x50
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3950
-
- thumb_func_start nullsub_37
-nullsub_37: @ 80B3964
- bx lr
- thumb_func_end nullsub_37
-
- thumb_func_start sub_80B3968
-sub_80B3968: @ 80B3968
- push {lr}
- ldr r1, =gLinkType
- ldr r2, =0x00002211
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3994
- ldr r0, =sub_80B33BC
- bl sub_80B37D4
- b _080B399A
- .pool
-_080B3994:
- ldr r0, =sub_80B32B4
- bl sub_80B37D4
-_080B399A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3968
-
- thumb_func_start sub_80B39A4
-sub_80B39A4: @ 80B39A4
- push {lr}
- ldr r0, =sub_80B3728
- movs r1, 0x50
- bl CreateTask
- bl ScriptContext1_Stop
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B39A4
-
- thumb_func_start sp02A_crash_sound
-sp02A_crash_sound: @ 80B39BC
- push {lr}
- ldr r0, =gSpecialVar_0x8006
- ldrb r0, [r0]
- ldr r1, =CB2_ReturnToFieldContinueScriptPlayMapMusic
- bl sub_80C4E74
- pop {r0}
- bx r0
- .pool
- thumb_func_end sp02A_crash_sound
-
- thumb_func_start sub_80B39D4
-sub_80B39D4: @ 80B39D4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gSpecialVar_0x8006
- strh r4, [r0]
- ldr r0, =gStringVar1
- lsls r1, r4, 3
- subs r1, r4
- lsls r1, 2
- ldr r2, =gLinkPlayers + 8
- adds r1, r2
- bl StringCopy
- adds r0, r4, 0
- bl sub_80C4904
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080B3A28
- ldr r0, =gStringVar2
- ldr r2, =gUnknown_0855059C
- subs r1, 0x1
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- movs r0, 0x1
- b _080B3A2A
- .pool
-_080B3A28:
- movs r0, 0
-_080B3A2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80B39D4
-
- thumb_func_start task00_08081A90
-task00_08081A90: @ 80B3A30
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- lsls r1, 16
- movs r0, 0x96
- lsls r0, 17
- cmp r1, r0
- ble _080B3A62
- bl CloseLink
- ldr r0, =CB2_LinkError
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_080B3A62:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3AA6
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3AA0
- bl sub_800AA60
- lsls r0, 24
- cmp r0, 0
- bne _080B3A86
- bl CloseLink
- ldr r0, =CB2_LinkError
- bl SetMainCallback2
-_080B3A86:
- adds r0, r4, 0
- bl DestroyTask
- b _080B3AA6
- .pool
-_080B3AA0:
- adds r0, r5, 0
- bl DestroyTask
-_080B3AA6:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task00_08081A90
-
- thumb_func_start sub_80B3AAC
-sub_80B3AAC: @ 80B3AAC
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3AC4
- bl EnableBothScriptContexts
- adds r0, r4, 0
- bl DestroyTask
-_080B3AC4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AAC
-
- thumb_func_start sub_80B3AD0
-sub_80B3AD0: @ 80B3AD0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl sub_800AC34
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_80B3AAC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AD0
-
- thumb_func_start sub_80B3AF8
-sub_80B3AF8: @ 80B3AF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- movs r1, 0
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _080B3B54
- cmp r0, 0x1
- bgt _080B3B20
- cmp r0, 0
- beq _080B3B2A
- b _080B3BB8
- .pool
-_080B3B20:
- cmp r0, 0x2
- beq _080B3B68
- cmp r0, 0x3
- beq _080B3B9E
- b _080B3BB8
-_080B3B2A:
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- beq _080B3B40
- adds r0, r4, 0
- bl DestroyTask
- b _080B3BB8
- .pool
-_080B3B40:
- bl OpenLink
- ldr r0, =task00_08081A90
- movs r1, 0x1
- bl CreateTask
- b _080B3B96
- .pool
-_080B3B54:
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xB
- ble _080B3BB8
- movs r0, 0
- strh r0, [r5, 0x2]
- b _080B3B96
-_080B3B68:
- bl GetLinkPlayerCount_2
- adds r4, r0, 0
- bl sub_800AA48
- lsls r4, 24
- lsls r0, 24
- cmp r4, r0
- bcc _080B3BB8
- bl IsLinkMaster
- lsls r0, 24
- cmp r0, 0
- beq _080B3B96
- ldrh r0, [r5, 0x2]
- adds r0, 0x1
- strh r0, [r5, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1E
- ble _080B3BB8
- bl sub_800A620
-_080B3B96:
- ldrh r0, [r5]
- adds r0, 0x1
- strh r0, [r5]
- b _080B3BB8
-_080B3B9E:
- ldr r0, =gReceivedRemoteLinkPlayers
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _080B3BB8
- bl IsLinkPlayerDataExchangeComplete
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080B3BB8
- adds r0, r4, 0
- bl DestroyTask
-_080B3BB8:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3AF8
-
- thumb_func_start sub_80B3BC4
-sub_80B3BC4: @ 80B3BC4
- push {lr}
- ldr r0, =gWirelessCommType
- ldrb r0, [r0]
- cmp r0, 0
- bne _080B3BD6
- ldr r1, =gLinkType
- ldr r2, =0x00002288
- adds r0, r2, 0
- strh r0, [r1]
-_080B3BD6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80B3BC4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_control_avatar.s b/asm/field_control_avatar.s
deleted file mode 100644
index c299d6633..000000000
--- a/asm/field_control_avatar.s
+++ /dev/null
@@ -1,2512 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start FieldClearPlayerInput
-FieldClearPlayerInput: @ 809BEDC
- push {r4,r5,lr}
- movs r1, 0x2
- negs r1, r1
- movs r3, 0x3
- negs r3, r3
- movs r4, 0x5
- negs r4, r4
- movs r5, 0x9
- negs r5, r5
- movs r2, 0
- strb r2, [r0]
- ldrb r2, [r0, 0x1]
- ands r1, r2
- ands r1, r3
- ands r1, r4
- ands r1, r5
- strb r1, [r0, 0x1]
- movs r1, 0
- strb r1, [r0, 0x2]
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end FieldClearPlayerInput
-
- thumb_func_start FieldGetPlayerInput
-@ void FieldGetPlayerInput(overworld_input_data *input_data, char buttons_new, char buttons_held)
-FieldGetPlayerInput: @ 809BF08
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- lsls r2, 16
- lsrs r2, 16
- mov r8, r2
- ldr r0, =gPlayerAvatar
- ldrb r6, [r0, 0x3]
- ldrb r0, [r0, 0x2]
- mov r9, r0
- bl cur_mapdata_block_role_at_player_pos
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsForcedMovementTile
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r6, 0x2
- bne _0809BF3C
- cmp r7, 0
- beq _0809BF40
-_0809BF3C:
- cmp r6, 0
- bne _0809BFA2
-_0809BF40:
- bl GetPlayerSpeed
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x4
- beq _0809BF8C
- movs r0, 0x8
- ands r0, r5
- cmp r0, 0
- beq _0809BF5C
- ldrb r0, [r4]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r4]
-_0809BF5C:
- movs r0, 0x4
- ands r0, r5
- cmp r0, 0
- beq _0809BF6C
- ldrb r0, [r4]
- movs r1, 0x8
- orrs r0, r1
- strb r0, [r4]
-_0809BF6C:
- movs r0, 0x1
- ands r0, r5
- cmp r0, 0
- beq _0809BF7C
- ldrb r0, [r4]
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r4]
-_0809BF7C:
- movs r0, 0x2
- ands r0, r5
- cmp r0, 0
- beq _0809BF8C
- ldrb r0, [r4]
- movs r1, 0x80
- orrs r0, r1
- strb r0, [r4]
-_0809BF8C:
- movs r0, 0xF0
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFA2
- ldrb r0, [r4]
- movs r1, 0x10
- orrs r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r4]
-_0809BFA2:
- cmp r7, 0
- bne _0809BFC8
- cmp r6, 0x2
- bne _0809BFB8
- mov r0, r9
- cmp r0, 0x2
- bne _0809BFB8
- ldrb r0, [r4]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r4]
-_0809BFB8:
- cmp r7, 0
- bne _0809BFC8
- cmp r6, 0x2
- bne _0809BFC8
- ldrb r0, [r4]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r4]
-_0809BFC8:
- movs r0, 0x40
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFDC
- movs r0, 0x2
- b _0809C004
- .pool
-_0809BFDC:
- movs r0, 0x80
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFEA
- movs r0, 0x1
- b _0809C004
-_0809BFEA:
- movs r0, 0x20
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809BFF8
- movs r0, 0x3
- b _0809C004
-_0809BFF8:
- movs r0, 0x10
- mov r1, r8
- ands r0, r1
- cmp r0, 0
- beq _0809C006
- movs r0, 0x4
-_0809C004:
- strb r0, [r4, 0x2]
-_0809C006:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end FieldGetPlayerInput
-
- thumb_func_start sub_809C014
-@ int sub_809C014(overworld_input_data *input_data)
-sub_809C014: @ 809C014
- push {r4-r6,lr}
- sub sp, 0x8
- adds r5, r0, 0
- ldr r0, =gSpecialVar_LastTalked
- movs r1, 0
- strh r1, [r0]
- ldr r0, =gSelectedEventObject
- strb r1, [r0]
- bl GetPlayerFacingDirection
- lsls r0, 24
- lsrs r6, r0, 24
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- bl CheckForTrainersWantingBattle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
- bl mapheader_run_first_tag2_script_list_match
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
- ldrb r1, [r5]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _0809C070
- bl sub_809C89C
- cmp r0, 0x1
- beq _0809C14E
-_0809C070:
- ldrb r1, [r5]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _0809C096
- movs r0, 0x5
- bl IncrementGameStat
- bl increment_var_x4026_on_birth_island_modulo_100
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809C8DC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C096:
- ldrb r1, [r5]
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0809C0AE
- adds r0, r4, 0
- bl is_it_battle_time_3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C0AE:
- ldrb r1, [r5]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0809C0D0
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0809C0D0
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl mapheader_run_first_tag2_script_list_match_conditionally
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C0D0:
- mov r4, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r4, r0, 16
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C106
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809C1FC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C106:
- ldrb r1, [r5]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _0809C128
- ldrb r0, [r5, 0x2]
- cmp r0, r6
- bne _0809C128
- mov r0, sp
- adds r1, r4, 0
- adds r2, r6, 0
- bl map_warp_consider_2_to_inside
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C128:
- ldrb r1, [r5]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0809C13A
- bl sub_809C868
- cmp r0, 0x1
- beq _0809C14E
-_0809C13A:
- ldrb r1, [r5]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- beq _0809C15C
- movs r0, 0x6
- bl PlaySE
- bl ShowStartMenu
-_0809C14E:
- movs r0, 0x1
- b _0809C172
- .pool
-_0809C15C:
- movs r0, 0x8
- ands r0, r1
- cmp r0, 0
- beq _0809C170
- bl UseRegisteredKeyItemOnField
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C14E
-_0809C170:
- movs r0, 0
-_0809C172:
- add sp, 0x8
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C014
-
- thumb_func_start player_get_pos_to_and_height
-player_get_pos_to_and_height: @ 809C17C
- push {r4,lr}
- adds r4, r0, 0
- adds r1, r4, 0x2
- bl PlayerGetDestCoords
- bl PlayerGetZCoord
- strb r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end player_get_pos_to_and_height
-
- thumb_func_start player_get_next_pos_and_height
-player_get_next_pos_and_height: @ 809C194
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- adds r1, r5, 0x2
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _0809C1C6
- bl PlayerGetZCoord
-_0809C1C6:
- strb r0, [r5, 0x4]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end player_get_next_pos_and_height
-
- thumb_func_start cur_mapdata_block_role_at_player_pos
-cur_mapdata_block_role_at_player_pos: @ 809C1D0
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 16
- lsrs r0, 16
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end cur_mapdata_block_role_at_player_pos
-
- thumb_func_start sub_809C1FC
-sub_809C1FC: @ 809C1FC
- push {r4,lr}
- lsls r2, 24
- lsrs r2, 24
- lsls r1, 24
- lsrs r1, 24
- bl TryGetScriptOnPressingA
- adds r4, r0, 0
- cmp r4, 0
- bne _0809C214
- movs r0, 0
- b _0809C24C
-_0809C214:
- ldr r0, =gUnknown_081F860D
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_081F9553
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_0823B4BB
- cmp r4, r0
- beq _0809C244
- ldr r0, =gUnknown_0823B589
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_2766A2
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_2766A6
- cmp r4, r0
- beq _0809C244
- ldr r0, =EventScript_271D92
- cmp r4, r0
- beq _0809C244
- movs r0, 0x5
- bl PlaySE
-_0809C244:
- adds r0, r4, 0
- bl ScriptContext1_SetupScript
- movs r0, 0x1
-_0809C24C:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809C1FC
-
- thumb_func_start TryGetScriptOnPressingA
-TryGetScriptOnPressingA: @ 809C270
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- mov r8, r5
- lsls r2, 24
- lsrs r4, r2, 24
- adds r7, r4, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetEventObjectScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetInvisibleEventObjectScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- adds r1, r5, 0
- adds r2, r4, 0
- bl TryGetMetatileBehaviorScript
- cmp r0, 0
- bne _0809C2BC
- adds r0, r6, 0
- mov r1, r8
- adds r2, r7, 0
- bl TryGetFieldMoveScript
- cmp r0, 0
- bne _0809C2BC
- movs r0, 0
-_0809C2BC:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end TryGetScriptOnPressingA
-
- thumb_func_start sub_809C2C8
-sub_809C2C8: @ 809C2C8
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r2, 24
- lsrs r6, r2, 24
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- cmp r0, 0
- bne _0809C2F0
- ldrh r0, [r4]
- ldrh r1, [r4, 0x2]
- b _0809C30E
-_0809C2F0:
- ldr r1, =gDirectionToVectors
- lsls r2, r6, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r4]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r4, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
-_0809C30E:
- ldrb r2, [r4, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x10
- beq _0809C32E
- ldr r1, =gEventObjects
- lsls r2, r3, 3
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r5, r1, 0
- cmp r0, 0xFF
- bne _0809C33C
-_0809C32E:
- movs r0, 0
- b _0809C36E
- .pool
-_0809C33C:
- movs r4, 0
- ldr r1, =gLinkPlayerEventObjects
-_0809C340:
- ldrb r0, [r1]
- cmp r0, 0x1
- bne _0809C34C
- ldrb r0, [r1, 0x2]
- cmp r0, r3
- beq _0809C32E
-_0809C34C:
- adds r1, 0x4
- adds r4, 0x1
- cmp r4, 0x3
- ble _0809C340
- ldr r0, =gSelectedEventObject
- strb r3, [r0]
- ldr r1, =gSpecialVar_LastTalked
- adds r0, r2, r3
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, =gSpecialVar_Facing
- strh r6, [r0]
- adds r0, r3, 0
- bl GetEventObjectScriptPointerByEventObjectId
-_0809C36E:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809C2C8
-
- thumb_func_start TryGetEventObjectScript
-TryGetEventObjectScript: @ 809C384
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldrh r0, [r5]
- ldrh r1, [r5, 0x2]
- ldrb r2, [r5, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _0809C3B4
- ldr r1, =gEventObjects
- lsls r2, r4, 3
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0809C40C
-_0809C3B4:
- adds r0, r6, 0
- bl MetatileBehavior_IsCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C400
- ldr r1, =gDirectionToVectors
- lsls r2, r7, 3
- adds r0, r2, r1
- ldr r3, [r0]
- ldrh r0, [r5]
- adds r0, r3
- lsls r0, 16
- lsrs r0, 16
- adds r1, 0x4
- adds r2, r1
- ldr r2, [r2]
- ldrh r1, [r5, 0x2]
- adds r1, r2
- lsls r1, 16
- lsrs r1, 16
- ldrb r2, [r5, 0x4]
- bl GetEventObjectIdByXYZ
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x10
- beq _0809C400
- ldr r1, =gEventObjects
- lsls r2, r4, 3
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0x8]
- adds r3, r1, 0
- cmp r0, 0xFF
- bne _0809C40C
-_0809C400:
- movs r0, 0
- b _0809C44E
- .pool
-_0809C40C:
- ldr r0, =gSelectedEventObject
- strb r4, [r0]
- ldr r1, =gSpecialVar_LastTalked
- adds r0, r2, r4
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x8]
- strh r0, [r1]
- ldr r0, =gSpecialVar_Facing
- strh r7, [r0]
- bl InTrainerHill
- cmp r0, 0x1
- bne _0809C43C
- bl sub_81D62AC
- b _0809C442
- .pool
-_0809C43C:
- adds r0, r4, 0
- bl GetEventObjectScriptPointerByEventObjectId
-_0809C442:
- adds r1, r0, 0
- ldr r0, =gSpecialVar_LastTalked
- ldrb r0, [r0]
- bl GetRamScript
- adds r1, r0, 0
-_0809C44E:
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end TryGetEventObjectScript
-
- thumb_func_start TryGetInvisibleEventObjectScript
-@ signed int TryGetInvisibleEventObjectScript(int a1, int a2, u8 playerFacingDirection)
-TryGetInvisibleEventObjectScript: @ 809C458
- push {r4,r5,lr}
- lsls r2, 24
- lsrs r5, r2, 24
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl FindInvisibleEventObjectByPosition
- cmp r0, 0
- beq _0809C4CC
- ldr r2, [r0, 0x8]
- cmp r2, 0
- bne _0809C490
- ldr r0, =EventScript_TestSignpostMsg
- b _0809C532
- .pool
-_0809C490:
- ldrb r0, [r0, 0x5]
- cmp r0, 0x8
- bhi _0809C530
- lsls r0, 2
- ldr r1, =_0809C4A4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_0809C4A4:
- .4byte _0809C530
- .4byte _0809C4C8
- .4byte _0809C4D0
- .4byte _0809C4D6
- .4byte _0809C4DC
- .4byte _0809C4E2
- .4byte _0809C4E2
- .4byte _0809C4E2
- .4byte _0809C510
-_0809C4C8:
- cmp r5, 0x2
- beq _0809C530
-_0809C4CC:
- movs r0, 0
- b _0809C532
-_0809C4D0:
- cmp r5, 0x1
- beq _0809C530
- b _0809C4CC
-_0809C4D6:
- cmp r5, 0x4
- beq _0809C530
- b _0809C4CC
-_0809C4DC:
- cmp r5, 0x3
- beq _0809C530
- b _0809C4CC
-_0809C4E2:
- ldr r1, =gSpecialVar_0x8004
- lsrs r0, r2, 16
- movs r3, 0xFA
- lsls r3, 1
- adds r0, r3
- strh r0, [r1]
- ldr r0, =gSpecialVar_0x8005
- strh r2, [r0]
- ldrh r0, [r1]
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C4CC
- ldr r0, =EventScript_271CB7
- b _0809C532
- .pool
-_0809C510:
- cmp r5, 0x2
- bne _0809C4CC
- ldr r0, =gSpecialVar_0x8004
- strh r2, [r0]
- bl sub_80E9680
- lsls r0, 24
- cmp r0, 0
- beq _0809C4CC
- ldr r0, =EventScript_2759F1
- b _0809C532
- .pool
-_0809C530:
- adds r0, r2, 0
-_0809C532:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end TryGetInvisibleEventObjectScript
-
- thumb_func_start TryGetMetatileBehaviorScript
-TryGetMetatileBehaviorScript: @ 809C538
- push {r4-r6,lr}
- adds r6, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r4, r2, 24
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsPlayerFacingTVScreen
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C55C
- ldr r0, =EventScript_27EE0B
- b _0809C7E4
- .pool
-_0809C55C:
- adds r0, r5, 0
- bl MetatileBehavior_IsPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C574
- ldr r0, =EventScript_271D92
- b _0809C7E4
- .pool
-_0809C574:
- adds r0, r5, 0
- bl MetatileBehavior_IsClosedSootopolisGymDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C58C
- ldr r0, =SootopolisCity_EventScript_1E615D
- b _0809C7E4
- .pool
-_0809C58C:
- adds r0, r5, 0
- bl MetatileBehavior_IsUnknownClosedDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5A4
- ldr r0, =SkyPillar_Outside_EventScript_2393F9
- b _0809C7E4
- .pool
-_0809C5A4:
- adds r0, r5, 0
- bl MetatileBehavior_IsCableBoxResults1
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5B4
- b _0809C6E4
-_0809C5B4:
- adds r0, r5, 0
- bl MetatileBehavior_IsPokeblockFeeder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5CC
- ldr r0, =EventScript_2A4BAC
- b _0809C7E4
- .pool
-_0809C5CC:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrickHousePuzzleDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5E4
- ldr r0, =Route110_TrickHouseEntrance_EventScript_26A22A
- b _0809C7E4
- .pool
-_0809C5E4:
- adds r0, r5, 0
- bl MetatileBehavior_IsRegionMap
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C5FC
- ldr r0, =EventScript_27208F
- b _0809C7E4
- .pool
-_0809C5FC:
- adds r0, r5, 0
- bl MetatileBehavior_IsRunningShoesInstruction
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C614
- ldr r0, =EventScript_292DE5
- b _0809C7E4
- .pool
-_0809C614:
- adds r0, r5, 0
- bl MetatileBehavior_IsPictureBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C62C
- ldr r0, =EventScript_2725CE
- b _0809C7E4
- .pool
-_0809C62C:
- adds r0, r5, 0
- bl MetatileBehavior_IsBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C644
- ldr r0, =EventScript_2725D7
- b _0809C7E4
- .pool
-_0809C644:
- adds r0, r5, 0
- bl MetatileBehavior_IsPokeCenterBookShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C65C
- ldr r0, =EventScript_2725E0
- b _0809C7E4
- .pool
-_0809C65C:
- adds r0, r5, 0
- bl MetatileBehavior_IsVase
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C674
- ldr r0, =EventScript_2725E9
- b _0809C7E4
- .pool
-_0809C674:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrashCan
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C68C
- ldr r0, =EventScript_2725F2
- b _0809C7E4
- .pool
-_0809C68C:
- adds r0, r5, 0
- bl MetatileBehavior_IsShopShelf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6A4
- ldr r0, =EventScript_2725FB
- b _0809C7E4
- .pool
-_0809C6A4:
- adds r0, r5, 0
- bl MetatileBehavior_IsBlueprint
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6BC
- ldr r0, =EventScript_272604
- b _0809C7E4
- .pool
-_0809C6BC:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsPlayerFacingWirelessBoxResults
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6D4
- ldr r0, =OldaleTown_PokemonCenter_2F_EventScript_277B8A
- b _0809C7E4
- .pool
-_0809C6D4:
- adds r0, r5, 0
- adds r1, r4, 0
- bl MetatileBehavior_IsCableBoxResults2
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C6EC
-_0809C6E4:
- ldr r0, =gUnknown_08277365
- b _0809C7E4
- .pool
-_0809C6EC:
- adds r0, r5, 0
- bl MetatileBehavior_IsQuestionnaire
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C704
- ldr r0, =EventScript_27381B
- b _0809C7E4
- .pool
-_0809C704:
- adds r0, r5, 0
- bl MetatileBehavior_IsTrainerHillTimer
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C71C
- ldr r0, =TrainerHill_1F_EventScript_2C8393
- b _0809C7E4
- .pool
-_0809C71C:
- movs r4, 0x4
- ldrsb r4, [r6, r4]
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0x2
- ldrsh r1, [r6, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r4, r0
- bne _0809C7D0
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBasePC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C74C
- ldr r0, =gUnknown_0823B4BB
- b _0809C7E4
- .pool
-_0809C74C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseRegisterPC
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C764
- ldr r0, =gUnknown_0823B589
- b _0809C7E4
- .pool
-_0809C764:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseSandOrnament
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C77C
- ldr r0, =gUnknown_0823B684
- b _0809C7E4
- .pool
-_0809C77C:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseTvOrShield
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C794
- ldr r0, =gUnknown_0823B68C
- b _0809C7E4
- .pool
-_0809C794:
- adds r0, r5, 0
- bl MetatileBehavior_IsMB_C6
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7A8
- bl sub_80EB56C
- b _0809C7E2
-_0809C7A8:
- adds r0, r5, 0
- bl MetatileBehavior_IsLargeMatCenter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7BC
- bl sub_80EB9E0
- b _0809C7E2
-_0809C7BC:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBaseLargeMatEdge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7E2
- bl sub_80EBB28
- b _0809C7E2
-_0809C7D0:
- adds r0, r5, 0
- bl MetatileBehavior_IsSecretBasePoster
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C7E2
- bl sub_80EB498
-_0809C7E2:
- movs r0, 0
-_0809C7E4:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end TryGetMetatileBehaviorScript
-
- thumb_func_start TryGetFieldMoveScript
-TryGetFieldMoveScript: @ 809C7EC
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =0x0000086b
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- bl PartyHasMonWithSurf
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- bl IsPlayerFacingSurfableFishableWater
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C824
- ldr r0, =EventScript_271EA0
- b _0809C862
- .pool
-_0809C824:
- adds r0, r4, 0
- bl MetatileBehavior_IsWaterfall
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C860
- ldr r0, =0x0000086e
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C858
- bl IsPlayerSurfingNorth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C858
- ldr r0, =EventScript_290A49
- b _0809C862
- .pool
-_0809C858:
- ldr r0, =EventScript_290A83
- b _0809C862
- .pool
-_0809C860:
- movs r0, 0
-_0809C862:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end TryGetFieldMoveScript
-
- thumb_func_start sub_809C868
-sub_809C868: @ 809C868
- push {lr}
- ldr r0, =0x0000086d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809C894
- bl sub_809D1E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- bne _0809C894
- ldr r0, =EventScript_290B0F
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C896
- .pool
-_0809C894:
- movs r0, 0
-_0809C896:
- pop {r1}
- bx r1
- thumb_func_end sub_809C868
-
- thumb_func_start sub_809C89C
-sub_809C89C: @ 809C89C
- push {lr}
- ldr r0, =0x0000086d
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809C8D4
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809C8D4
- bl sub_809D1E8
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C8D4
- ldr r0, =EventScript_290B5A
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C8D6
- .pool
-_0809C8D4:
- movs r0, 0
-_0809C8D6:
- pop {r1}
- bx r1
- thumb_func_end sub_809C89C
-
- thumb_func_start sub_809C8DC
-sub_809C8DC: @ 809C8DC
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r4, r1, 16
- adds r6, r4, 0
- bl mapheader_trigger_activate_at__run_now
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r5, 0
- adds r1, r4, 0
- bl sub_809CC9C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r4, 0
- bl sub_809C96C
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- adds r0, r6, 0
- bl per_step_scripts
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- bl UpdateRepelCounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C92E
- movs r0, 0
- b _0809C930
-_0809C92E:
- movs r0, 0x1
-_0809C930:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_809C8DC
-
- thumb_func_start mapheader_trigger_activate_at__run_now
-mapheader_trigger_activate_at__run_now: @ 809C938
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- cmp r0, 0
- beq _0809C964
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C966
- .pool
-_0809C964:
- movs r0, 0
-_0809C966:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at__run_now
-
- thumb_func_start sub_809C96C
-sub_809C96C: @ 809C96C
- push {r4,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsCrackedFloorHole
- lsls r0, 24
- cmp r0, 0
- beq _0809C988
- ldr r0, =gUnknown_082A8337
- b _0809C996
- .pool
-_0809C988:
- adds r0, r4, 0
- bl MetatileBehavior_IsBattlePyramidWarp
- lsls r0, 24
- cmp r0, 0
- beq _0809C9A4
- ldr r0, =BattleFrontier_BattlePyramidEmptySquare_EventScript_252BE8
-_0809C996:
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809C9EA
- .pool
-_0809C9A4:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseGlitterMat
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C9B8
- bl sub_80FA9D0
- b _0809C9E8
-_0809C9B8:
- adds r0, r4, 0
- bl MetatileBehavior_IsSecretBaseSoundMat
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809C9E8
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- asrs r0, 16
- bl sub_80FA970
-_0809C9E8:
- movs r0, 0
-_0809C9EA:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_809C96C
-
- thumb_func_start per_step_scripts
-per_step_scripts: @ 809C9F4
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- bl InUnionRoom
- cmp r0, 0x1
- bne _0809CA04
- b _0809CB24
-_0809CA04:
- bl IncrementRematchStepCounter
- bl AdjustFriendship_step
- bl sub_81D4998
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _0809CAF8
- lsls r0, r4, 24
- lsrs r0, 24
- bl MetatileBehavior_IsForcedMovementTile
- lsls r0, 24
- cmp r0, 0
- bne _0809CAF8
- bl overworld_poison_step
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA48
- ldr r0, =EventScript_2736BC
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA48:
- bl DoEggActions_CheckHatch
- lsls r0, 24
- cmp r0, 0
- beq _0809CA64
- movs r0, 0xD
- bl IncrementGameStat
- ldr r0, =Route117_PokemonDayCare_EventScript_291FC0
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA64:
- bl sub_813B3B0
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA7C
- ldr r0, =gUnknown_08273D1F
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA7C:
- bl ShouldDoBrailleRegicePuzzle
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CA94
- ldr r0, =IslandCave_EventScript_238EAF
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CA94:
- bl is_tile_that_overrides_player_control
- cmp r0, 0x1
- bne _0809CAA8
- ldr r0, =MauvilleCity_EventScript_1DF7BA
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAA8:
- bl sub_8138120
- cmp r0, 0x1
- bne _0809CABC
- ldr r0, =Route119_EventScript_1F49EC
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CABC:
- bl sub_8138168
- cmp r0, 0x1
- bne _0809CAD0
- ldr r0, =LittlerootTown_ProfessorBirchsLab_EventScript_1FA4D6
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAD0:
- bl sub_81381B0
- cmp r0, 0x1
- bne _0809CAE4
- ldr r0, =RustboroCity_Gym_EventScript_21307B
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAE4:
- bl sub_81381F8
- cmp r0, 0x1
- bne _0809CAF8
- ldr r0, =MossdeepCity_SpaceCenter_2F_EventScript_224175
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CAF8:
- bl SafariZoneTakeStep
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CB28
- movs r0, 0x1
- bl CountSSTidalStep
- cmp r0, 0x1
- bne _0809CB1C
- ldr r0, =SSTidalCorridor_EventScript_23C050
- bl ScriptContext1_SetupScript
- b _0809CB28
- .pool
-_0809CB1C:
- bl sub_8196034
- cmp r0, 0
- bne _0809CB28
-_0809CB24:
- movs r0, 0
- b _0809CB2A
-_0809CB28:
- movs r0, 0x1
-_0809CB2A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end per_step_scripts
-
- thumb_func_start sub_809CB30
-sub_809CB30: @ 809CB30
- push {lr}
- ldr r0, =0x0000402a
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809CB30
-
- thumb_func_start AdjustFriendship_step
-AdjustFriendship_step: @ 809CB44
- push {r4,r5,lr}
- ldr r0, =0x0000402a
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x7F
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0809CB72
- ldr r5, =gPlayerParty
- movs r4, 0x5
-_0809CB62:
- adds r0, r5, 0
- movs r1, 0x5
- bl AdjustFriendship
- adds r5, 0x64
- subs r4, 0x1
- cmp r4, 0
- bge _0809CB62
-_0809CB72:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end AdjustFriendship_step
-
- thumb_func_start ResetPoisonStepCounter
-ResetPoisonStepCounter: @ 809CB80
- push {lr}
- ldr r0, =0x0000402b
- movs r1, 0
- bl VarSet
- pop {r0}
- bx r0
- .pool
- thumb_func_end ResetPoisonStepCounter
-
- thumb_func_start overworld_poison_step
-overworld_poison_step: @ 809CB94
- push {lr}
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x9
- beq _0809CBD4
- ldr r0, =0x0000402b
- bl GetVarPointer
- ldrh r1, [r0]
- adds r1, 0x1
- strh r1, [r0]
- ldrh r1, [r0]
- movs r2, 0x3
- ands r1, r2
- strh r1, [r0]
- cmp r1, 0
- bne _0809CBD4
- bl overworld_poison
- cmp r0, 0x1
- beq _0809CBD4
- cmp r0, 0x1
- ble _0809CBD4
- cmp r0, 0x2
- bne _0809CBD4
- movs r0, 0x1
- b _0809CBD6
- .pool
-_0809CBD4:
- movs r0, 0
-_0809CBD6:
- pop {r1}
- bx r1
- thumb_func_end overworld_poison_step
-
- thumb_func_start prev_quest_postbuffer_cursor_backup_reset
-prev_quest_postbuffer_cursor_backup_reset: @ 809CBDC
- ldr r1, =gUnknown_020375D4
- movs r0, 0
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end prev_quest_postbuffer_cursor_backup_reset
-
- thumb_func_start is_it_battle_time_3
-is_it_battle_time_3: @ 809CBE8
- push {r4-r7,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- adds r7, r4, 0
- ldr r6, =gUnknown_020375D4
- ldrb r0, [r6]
- cmp r0, 0x3
- bhi _0809CC0C
- adds r0, 0x1
- strb r0, [r6]
- ldr r0, =gUnknown_020375D6
- strh r4, [r0]
- movs r0, 0
- b _0809CC30
- .pool
-_0809CC0C:
- ldr r5, =gUnknown_020375D6
- ldrh r1, [r5]
- adds r0, r4, 0
- bl StandardWildEncounter
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CC28
- strh r4, [r5]
- movs r0, 0
- b _0809CC30
- .pool
-_0809CC28:
- movs r0, 0
- strb r0, [r6]
- strh r7, [r5]
- movs r0, 0x1
-_0809CC30:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end is_it_battle_time_3
-
- thumb_func_start mapheader_run_first_tag2_script_list_match_conditionally
-mapheader_run_first_tag2_script_list_match_conditionally: @ 809CC38
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r4, 16
- lsrs r4, 16
- lsls r5, 24
- lsrs r5, 24
- ldr r0, =gMapHeader
- mov r8, r0
- adds r1, r7, 0
- bl map_warp_check_packed
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r4, 0
- adds r1, r5, 0
- bl is_non_stair_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CC90
- lsls r0, r6, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CC90
- bl StoreInitialPlayerAvatarState
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- bl sub_809CEB0
- bl sub_80AF734
- movs r0, 0x1
- b _0809CC92
- .pool
-_0809CC90:
- movs r0, 0
-_0809CC92:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_run_first_tag2_script_list_match_conditionally
-
- thumb_func_start sub_809CC9C
-sub_809CC9C: @ 809CC9C
- push {r4-r7,lr}
- adds r6, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r7, =gMapHeader
- adds r0, r7, 0
- adds r1, r6, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CD8A
- adds r0, r5, 0
- bl is_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD8A
- bl StoreInitialPlayerAvatarState
- adds r0, r7, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_809CEB0
- lsls r0, r5, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CCF8
- adds r0, r4, 0
- bl sub_80AF80C
- movs r0, 0x1
- b _0809CD8C
- .pool
-_0809CCF8:
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridgeB1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD0E
- bl sub_80AF828
- movs r0, 0x1
- b _0809CD8C
-_0809CD0E:
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridge1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD24
- bl sub_80AF838
- movs r0, 0x1
- b _0809CD8C
-_0809CD24:
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD3A
- bl sub_80AF848
- movs r0, 0x1
- b _0809CD8C
-_0809CD3A:
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpOrBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD50
- bl sub_80B0268
- movs r0, 0x1
- b _0809CD8C
-_0809CD50:
- adds r0, r4, 0
- bl MetatileBehavior_IsMtPyreHole
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD6C
- ldr r0, =gUnknown_082A8350
- bl ScriptContext1_SetupScript
- movs r0, 0x1
- b _0809CD8C
- .pool
-_0809CD6C:
- adds r0, r4, 0
- bl MetatileBehavior_IsMossdeepGymWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CD82
- bl sub_80AF87C
- movs r0, 0x1
- b _0809CD8C
-_0809CD82:
- bl sub_80AF734
- movs r0, 0x1
- b _0809CD8C
-_0809CD8A:
- movs r0, 0
-_0809CD8C:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809CC9C
-
- thumb_func_start is_warp_tile
-is_warp_tile: @ 809CD94
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLadder
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsEscalator
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsNonAnimDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridgeB1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsLavaridge1FWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsAquaHideoutWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsMtPyreHole
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsMossdeepGymWarp
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpOrBridge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CE2A
- movs r0, 0
- b _0809CE2C
-_0809CE2A:
- movs r0, 0x1
-_0809CE2C:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end is_warp_tile
-
- thumb_func_start is_non_stair_warp_tile
-is_non_stair_warp_tile: @ 809CE34
- push {lr}
- lsls r0, 16
- lsrs r0, 16
- lsls r1, 24
- lsrs r1, 24
- adds r2, r1, 0
- cmp r1, 0x2
- beq _0809CE58
- cmp r1, 0x2
- bgt _0809CE4E
- cmp r1, 0x1
- beq _0809CE62
- b _0809CE84
-_0809CE4E:
- cmp r2, 0x3
- beq _0809CE6C
- cmp r2, 0x4
- beq _0809CE76
- b _0809CE84
-_0809CE58:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsNorthArrowWarp
- b _0809CE7E
-_0809CE62:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsSouthArrowWarp
- b _0809CE7E
-_0809CE6C:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsWestArrowWarp
- b _0809CE7E
-_0809CE76:
- lsls r0, 24
- lsrs r0, 24
- bl MetatileBehavior_IsEastArrowWarp
-_0809CE7E:
- lsls r0, 24
- lsrs r0, 24
- b _0809CE86
-_0809CE84:
- movs r0, 0
-_0809CE86:
- pop {r1}
- bx r1
- thumb_func_end is_non_stair_warp_tile
-
- thumb_func_start map_warp_check_packed
-map_warp_check_packed: @ 809CE8C
- push {lr}
- adds r3, r1, 0
- ldrh r1, [r3]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r3, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r3, 0x4]
- bl map_warp_check
- lsls r0, 24
- asrs r0, 24
- pop {r1}
- bx r1
- thumb_func_end map_warp_check_packed
-
- thumb_func_start sub_809CEB0
-sub_809CEB0: @ 809CEB0
- push {r4-r7,lr}
- adds r7, r2, 0
- lsls r1, 24
- lsrs r4, r1, 24
- bl GetCurrentTrainerHillMapId
- lsls r0, 24
- lsrs r5, r0, 24
- adds r6, r5, 0
- cmp r5, 0
- beq _0809CF00
- bl sub_81D6490
- lsls r0, 24
- lsrs r0, 24
- cmp r5, r0
- bne _0809CEF0
- lsls r0, r4, 24
- adds r4, r0, 0
- cmp r4, 0
- bne _0809CEE8
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- ldr r5, [r0, 0x8]
- b _0809CF0E
- .pool
-_0809CEE8:
- bl sub_81D6120
- adds r5, r0, 0
- b _0809CF0E
-_0809CEF0:
- cmp r6, 0x5
- bne _0809CF00
- lsls r4, 24
- lsrs r0, r4, 24
- bl sub_81D6134
- adds r5, r0, 0
- b _0809CF0E
-_0809CF00:
- ldr r0, =gMapHeader
- ldr r0, [r0, 0x4]
- lsls r2, r4, 24
- asrs r1, r2, 21
- ldr r0, [r0, 0x8]
- adds r5, r0, r1
- adds r4, r2, 0
-_0809CF0E:
- ldrb r0, [r5, 0x6]
- cmp r0, 0x7F
- bne _0809CF20
- ldrb r0, [r5, 0x5]
- bl copy_saved_warp2_bank_and_enter_x_to_warp1
- b _0809CF6E
- .pool
-_0809CF20:
- movs r0, 0x7
- ldrsb r0, [r5, r0]
- movs r1, 0x6
- ldrsb r1, [r5, r1]
- movs r2, 0x5
- ldrsb r2, [r5, r2]
- bl warp1_set_2
- movs r1, 0
- ldrsh r0, [r7, r1]
- movs r2, 0x2
- ldrsh r1, [r7, r2]
- bl sub_8084D5C
- ldrb r0, [r5, 0x7]
- ldrb r1, [r5, 0x6]
- bl Overworld_GetMapHeaderByGroupAndId
- ldr r1, [r0, 0x4]
- ldrb r0, [r5, 0x5]
- ldr r1, [r1, 0x8]
- lsls r0, 3
- adds r0, r1
- ldrb r0, [r0, 0x6]
- cmp r0, 0x7F
- bne _0809CF6E
- asrs r3, r4, 24
- lsls r0, r3, 3
- adds r0, r1
- ldrb r0, [r0, 0x5]
- ldr r1, =gSaveBlock1Ptr
- ldr r2, [r1]
- movs r1, 0x4
- ldrsb r1, [r2, r1]
- ldrb r2, [r2, 0x5]
- lsls r2, 24
- asrs r2, 24
- bl saved_warp2_set
-_0809CF6E:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_809CEB0
-
- thumb_func_start map_warp_consider_2_to_inside
-map_warp_consider_2_to_inside: @ 809CF78
- push {r4-r7,lr}
- adds r5, r0, 0
- lsls r1, 16
- lsrs r0, r1, 16
- adds r7, r0, 0
- lsls r2, 24
- lsrs r2, 24
- cmp r2, 0x2
- bne _0809CFFC
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r4, 0
- bl MetatileBehavior_IsOpenSecretBaseDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFB0
- ldr r0, =gMapHeader
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl sub_80E9668
- movs r0, 0x1
- b _0809CFFE
- .pool
-_0809CFB0:
- adds r0, r4, 0
- bl MetatileBehavior_IsWarpDoor
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFFC
- ldr r6, =gMapHeader
- adds r0, r6, 0
- adds r1, r5, 0
- bl map_warp_check_packed
- lsls r0, 24
- asrs r4, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r4, r0
- beq _0809CFFC
- adds r0, r7, 0
- bl is_warp_tile
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CFFC
- bl StoreInitialPlayerAvatarState
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r5, 0
- bl sub_809CEB0
- bl sub_80AF7D0
- movs r0, 0x1
- b _0809CFFE
- .pool
-_0809CFFC:
- movs r0, 0
-_0809CFFE:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end map_warp_consider_2_to_inside
-
- thumb_func_start map_warp_check
-map_warp_check: @ 809D004
- push {r4-r6,lr}
- lsls r1, 16
- lsrs r6, r1, 16
- lsls r2, 16
- lsrs r5, r2, 16
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0x8]
- ldrb r3, [r0, 0x1]
- movs r2, 0
- cmp r2, r3
- bge _0809D042
-_0809D01E:
- ldrh r0, [r1]
- cmp r0, r6
- bne _0809D03A
- ldrh r0, [r1, 0x2]
- cmp r0, r5
- bne _0809D03A
- ldrb r0, [r1, 0x4]
- cmp r0, r4
- beq _0809D034
- cmp r0, 0
- bne _0809D03A
-_0809D034:
- lsls r0, r2, 24
- asrs r0, 24
- b _0809D046
-_0809D03A:
- adds r2, 0x1
- adds r1, 0x8
- cmp r2, r3
- blt _0809D01E
-_0809D042:
- movs r0, 0x1
- negs r0, r0
-_0809D046:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end map_warp_check
-
- thumb_func_start trigger_activate
-trigger_activate: @ 809D04C
- push {r4,lr}
- adds r4, r0, 0
- cmp r4, 0
- beq _0809D082
- ldr r1, [r4, 0xC]
- cmp r1, 0
- bne _0809D062
- ldrb r0, [r4, 0x6]
- bl DoCoordEventWeather
- b _0809D082
-_0809D062:
- ldrh r0, [r4, 0x6]
- cmp r0, 0
- beq _0809D07C
- ldrh r0, [r4, 0x6]
- bl VarGet
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r4, 0x8]
- cmp r0, r1
- bne _0809D082
- ldr r0, [r4, 0xC]
- b _0809D084
-_0809D07C:
- adds r0, r1, 0
- bl ScriptContext2_RunNewScript
-_0809D082:
- movs r0, 0
-_0809D084:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end trigger_activate
-
- thumb_func_start mapheader_trigger_activate_at
-mapheader_trigger_activate_at: @ 809D08C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 16
- lsrs r1, 16
- mov r10, r1
- lsls r2, 16
- lsrs r2, 16
- mov r9, r2
- lsls r3, 24
- lsrs r3, 24
- mov r8, r3
- ldr r0, [r0, 0x4]
- ldr r1, [r0, 0xC]
- ldrb r7, [r0, 0x2]
- movs r6, 0
- cmp r6, r7
- bge _0809D0E2
- adds r5, r1, 0
- adds r4, r5, 0
-_0809D0B8:
- ldrh r0, [r4]
- cmp r0, r10
- bne _0809D0D8
- ldrh r0, [r4, 0x2]
- cmp r0, r9
- bne _0809D0D8
- ldrb r0, [r4, 0x4]
- cmp r0, r8
- beq _0809D0CE
- cmp r0, 0
- bne _0809D0D8
-_0809D0CE:
- adds r0, r5, 0
- bl trigger_activate
- cmp r0, 0
- bne _0809D0E4
-_0809D0D8:
- adds r4, 0x10
- adds r5, 0x10
- adds r6, 0x1
- cmp r6, r7
- blt _0809D0B8
-_0809D0E2:
- movs r0, 0
-_0809D0E4:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end mapheader_trigger_activate_at
-
- thumb_func_start sub_809D0F4
-sub_809D0F4: @ 809D0F4
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrh r1, [r0]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- ldrh r2, [r0, 0x2]
- subs r2, 0x7
- lsls r2, 16
- lsrs r2, 16
- ldrb r3, [r0, 0x4]
- adds r0, r4, 0
- bl mapheader_trigger_activate_at
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809D0F4
-
- thumb_func_start FindInvisibleEventObjectByPosition
-@ int FindInvisibleEventObjectByPosition(struct mapheader *mapHeader, u16 x, u16 y, u8 elevation)
-FindInvisibleEventObjectByPosition: @ 809D11C
- push {r4-r7,lr}
- lsls r1, 16
- lsrs r7, r1, 16
- lsls r2, 16
- lsrs r6, r2, 16
- lsls r3, 24
- lsrs r5, r3, 24
- ldr r0, [r0, 0x4]
- ldr r4, [r0, 0x10]
- ldrb r3, [r0, 0x3]
- movs r2, 0
- cmp r2, r3
- bcs _0809D162
-_0809D136:
- lsls r0, r2, 1
- adds r0, r2
- lsls r0, 2
- adds r1, r0, r4
- ldrh r0, [r1]
- cmp r0, r7
- bne _0809D158
- ldrh r0, [r1, 0x2]
- cmp r0, r6
- bne _0809D158
- ldrb r0, [r1, 0x4]
- cmp r0, r5
- beq _0809D154
- cmp r0, 0
- bne _0809D158
-_0809D154:
- adds r0, r1, 0
- b _0809D164
-_0809D158:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, r3
- bcc _0809D136
-_0809D162:
- movs r0, 0
-_0809D164:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end FindInvisibleEventObjectByPosition
-
- thumb_func_start dive_warp
-dive_warp: @ 809D16C
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r1, 16
- lsrs r5, r1, 16
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809D1A4
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsUnableToEmerge
- lsls r0, 24
- cmp r0, 0
- bne _0809D1A4
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpEmerge
- b _0809D1C8
- .pool
-_0809D1A4:
- lsls r0, r5, 24
- lsrs r0, 24
- bl MetatileBehavior_IsDiveable
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D1E0
- ldrh r0, [r4]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4, 0x2]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpDive
-_0809D1C8:
- lsls r0, 24
- cmp r0, 0
- beq _0809D1E0
- bl StoreInitialPlayerAvatarState
- bl sp13E_warp_to_last_warp
- movs r0, 0xE9
- bl PlaySE
- movs r0, 0x1
- b _0809D1E2
-_0809D1E0:
- movs r0, 0
-_0809D1E2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end dive_warp
-
- thumb_func_start sub_809D1E8
-sub_809D1E8: @ 809D1E8
- push {r4,r5,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl PlayerGetDestCoords
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x17]
- cmp r0, 0x5
- bne _0809D244
- adds r0, r5, 0
- bl MetatileBehavior_IsUnableToEmerge
- lsls r0, 24
- cmp r0, 0
- bne _0809D244
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpEmerge
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- movs r0, 0x1
- b _0809D276
- .pool
-_0809D244:
- adds r0, r5, 0
- bl MetatileBehavior_IsDiveable
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x7
- lsls r0, 16
- lsrs r0, 16
- ldrh r1, [r4]
- subs r1, 0x7
- lsls r1, 16
- lsrs r1, 16
- bl SetDiveWarpDive
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D274
- movs r0, 0x2
- b _0809D276
-_0809D274:
- movs r0, 0
-_0809D276:
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_809D1E8
-
- thumb_func_start GetEventObjectScriptPointerForComparison
-@ u8 *GetEventObjectScriptPointerForComparison()
-GetEventObjectScriptPointerForComparison: @ 809D280
- push {r4,r5,lr}
- sub sp, 0x8
- bl GetPlayerMovementDirection
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r5, sp
- mov r0, sp
- bl player_get_next_pos_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- adds r2, r4, 0
- bl TryGetEventObjectScript
- add sp, 0x8
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end GetEventObjectScriptPointerForComparison
-
- thumb_func_start sub_809D2BC
-sub_809D2BC: @ 809D2BC
- push {r4,lr}
- sub sp, 0x8
- bl GetPlayerMovementDirection
- mov r4, sp
- mov r0, sp
- bl player_get_pos_to_and_height
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- movs r2, 0x2
- ldrsh r1, [r4, r2]
- bl MapGridGetMetatileBehaviorAt
- ldr r4, =gMapHeader
- adds r0, r4, 0
- mov r1, sp
- bl map_warp_check_packed
- adds r1, r0, 0
- lsls r1, 24
- asrs r1, 24
- adds r0, r4, 0
- mov r2, sp
- bl sub_809CEB0
- movs r0, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_809D2BC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_effect_helpers.s b/asm/field_effect_helpers.s
deleted file mode 100644
index 9a019f60c..000000000
--- a/asm/field_effect_helpers.s
+++ /dev/null
@@ -1,4603 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start SetUpReflection
-SetUpReflection: @ 8153ED4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- adds r4, r1, 0
- lsls r5, r2, 24
- lsrs r5, 24
- movs r0, 0x20
- ldrsh r1, [r4, r0]
- movs r0, 0x22
- ldrsh r2, [r4, r0]
- adds r0, r4, 0
- movs r3, 0x98
- bl CreateCopySpriteAt
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r7, r1, r0
- ldr r0, =objc_reflection_maybe
- str r0, [r7, 0x1C]
- ldrb r1, [r7, 0x5]
- movs r0, 0xC
- orrs r1, r0
- strb r1, [r7, 0x5]
- ldr r2, =gReflectionEffectPaletteMap
- lsrs r0, r1, 4
- adds r0, r2
- ldrb r0, [r0]
- lsls r0, 4
- movs r2, 0xF
- ands r1, r2
- orrs r1, r0
- strb r1, [r7, 0x5]
- movs r1, 0x3F
- adds r1, r7
- mov r8, r1
- ldrb r0, [r1]
- movs r1, 0x40
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- ldr r0, =gDummySpriteAnimTable
- str r0, [r7, 0x8]
- adds r0, r7, 0
- movs r1, 0
- bl StartSpriteAnim
- ldr r0, =gDummySpriteAffineAnimTable
- str r0, [r7, 0x10]
- mov r1, r8
- ldrb r0, [r1]
- movs r1, 0x8
- orrs r0, r1
- mov r1, r8
- strb r0, [r1]
- adds r2, r7, 0
- adds r2, 0x42
- ldrb r1, [r2]
- movs r0, 0x3F
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x2E]
- strh r0, [r7, 0x2E]
- ldrb r0, [r6, 0x8]
- strh r0, [r7, 0x30]
- strh r5, [r7, 0x3C]
- adds r0, r6, 0
- adds r1, r7, 0
- bl npc_pal_op
- cmp r5, 0
- bne _08153F7A
- ldrb r0, [r7, 0x1]
- movs r1, 0x4
- negs r1, r1
- ands r1, r0
- movs r0, 0x1
- orrs r1, r0
- strb r1, [r7, 0x1]
-_08153F7A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetUpReflection
-
- thumb_func_start sub_8153F98
-sub_8153F98: @ 8153F98
- push {lr}
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrh r0, [r0, 0xA]
- subs r0, 0x2
- lsls r0, 16
- asrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_8153F98
-
- thumb_func_start npc_pal_op
-@ void npc_pal_op(struct npc_state *npcState, struct obj *obj)
-npc_pal_op: @ 8153FAC
- push {r4,r5,lr}
- sub sp, 0x8
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gUnknown_085CDC38
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- movs r0, 0
- strh r0, [r4, 0x32]
- ldrb r0, [r5, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrb r1, [r0, 0xC]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08154008
- ldrb r0, [r5, 0x1F]
- bl MetatileBehavior_GetBridgeSth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- bne _08153FEE
- ldrb r0, [r5, 0x1E]
- bl MetatileBehavior_GetBridgeSth
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0
- beq _08154008
-_08153FEE:
- subs r0, 0x1
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- strh r0, [r4, 0x32]
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_A
- b _08154012
- .pool
-_08154008:
- ldrb r1, [r4, 0x5]
- lsrs r1, 4
- adds r0, r5, 0
- bl npc_pal_op_B
-_08154012:
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op
-
- thumb_func_start npc_pal_op_B
-@ void npc_pal_op_B(void *a1, u8 slot)
-npc_pal_op_B: @ 815401C
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, =0x000011ff
- cmp r1, r0
- beq _08154070
- ldrb r0, [r2, 0xC]
- movs r1, 0xF
- ands r1, r0
- cmp r1, 0
- bne _0815404C
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadPlayerObjectReflectionPalette
- b _0815406A
- .pool
-_0815404C:
- cmp r1, 0xA
- bne _0815405A
- ldrh r0, [r2, 0x2]
- adds r1, r4, 0
- bl LoadSpecialObjectReflectionPalette
- b _0815406A
-_0815405A:
- adds r0, r4, 0
- bl GetObjectPaletteTag
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl PatchObjectPalette
-_0815406A:
- adds r0, r4, 0
- bl UpdateSpritePaletteWithWeather
-_08154070:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end npc_pal_op_B
-
- thumb_func_start npc_pal_op_A
-npc_pal_op_A: @ 8154078
- push {r4,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r2, r0, 0
- ldrh r1, [r2, 0x4]
- ldr r0, =0x000011ff
- cmp r1, r0
- beq _0815409C
- adds r0, r1, 0
- adds r1, r4, 0
- bl PatchObjectPalette
- adds r0, r4, 0
- bl UpdateSpritePaletteWithWeather
-_0815409C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end npc_pal_op_A
-
- thumb_func_start objc_reflection_maybe
-@ void objc_reflection_maybe(struct obj *object)
-objc_reflection_maybe: @ 81540A8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r4, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r4, r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r7, r0, r1
- ldrb r1, [r7, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- ldr r0, [r7]
- ldr r1, =0x00020001
- ands r0, r1
- cmp r0, r1
- bne _081540E0
- ldrb r1, [r7, 0x8]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r1, r0
- beq _081540FC
-_081540E0:
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- b _08154214
- .pool
-_081540FC:
- ldr r1, =gReflectionEffectPaletteMap
- ldrb r0, [r5, 0x5]
- lsrs r0, 4
- adds r0, r1
- ldrb r1, [r0]
- lsls r1, 4
- ldrb r2, [r4, 0x5]
- movs r0, 0xF
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldrb r1, [r5, 0x1]
- lsrs r1, 6
- lsls r1, 6
- ldrb r2, [r4, 0x1]
- movs r3, 0x3F
- adds r0, r3, 0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x1]
- ldrb r0, [r5, 0x3]
- lsrs r0, 6
- lsls r0, 6
- ldrb r2, [r4, 0x3]
- adds r1, r3, 0
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r2, 0x10
- orrs r0, r2
- lsls r0, 1
- subs r2, 0x4F
- mov r9, r2
- ands r1, r2
- orrs r1, r0
- strb r1, [r4, 0x3]
- ldrh r1, [r5, 0x4]
- lsls r1, 22
- lsrs r1, 22
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- ldr r0, [r5, 0x18]
- str r0, [r4, 0x18]
- adds r0, r5, 0
- adds r0, 0x42
- ldrb r0, [r0]
- lsls r0, 26
- lsrs r0, 26
- adds r2, r4, 0
- adds r2, 0x42
- ands r3, r0
- ldrb r1, [r2]
- movs r0, 0x40
- negs r0, r0
- ands r0, r1
- orrs r0, r3
- strb r0, [r2]
- movs r0, 0x3E
- adds r0, r5
- mov r8, r0
- ldrb r0, [r0]
- adds r6, r4, 0
- adds r6, 0x3E
- movs r1, 0x4
- ands r1, r0
- ldrb r2, [r6]
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- adds r0, r7, 0
- bl sub_8153F98
- ldrh r1, [r5, 0x22]
- adds r0, r1
- ldrh r1, [r4, 0x32]
- adds r1, r0
- strh r1, [r4, 0x22]
- adds r0, r5, 0
- adds r0, 0x28
- ldrb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x28
- strb r1, [r0]
- adds r0, r5, 0
- adds r0, 0x29
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x29
- strb r0, [r1]
- ldrh r0, [r5, 0x24]
- strh r0, [r4, 0x24]
- ldrh r0, [r5, 0x26]
- negs r0, r0
- strh r0, [r4, 0x26]
- mov r2, r8
- ldrb r1, [r2]
- movs r0, 0x2
- ands r0, r1
- ldrb r1, [r6]
- movs r2, 0x3
- negs r2, r2
- ands r2, r1
- orrs r2, r0
- strb r2, [r6]
- ldrb r0, [r7, 0x3]
- lsls r0, 28
- cmp r0, 0
- bge _081541EE
- movs r0, 0x4
- orrs r2, r0
- strb r2, [r6]
-_081541EE:
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08154214
- ldrb r0, [r4, 0x3]
- mov r2, r9
- ands r2, r0
- strb r2, [r4, 0x3]
- ldrb r0, [r5, 0x3]
- lsls r0, 26
- lsrs r0, 27
- movs r1, 0x8
- ands r0, r1
- cmp r0, 0
- beq _08154214
- movs r1, 0x2
- adds r0, r2, 0
- orrs r0, r1
- strb r0, [r4, 0x3]
-_08154214:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end objc_reflection_maybe
-
- thumb_func_start sub_8154228
-sub_8154228: @ 8154228
- push {r4,lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x20]
- movs r1, 0
- movs r2, 0
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r4, r0, 0
- cmp r0, 0x40
- beq _08154266
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r3, 0x4
- orrs r0, r3
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- orrs r0, r3
- strb r0, [r1]
-_08154266:
- adds r0, r4, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154228
-
- thumb_func_start objid_set_invisible
-objid_set_invisible: @ 8154278
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1]
- bx lr
- .pool
- thumb_func_end objid_set_invisible
-
- thumb_func_start sub_8154298
-sub_8154298: @ 8154298
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- lsls r2, 16
- lsrs r7, r2, 16
- lsls r3, 16
- lsrs r6, r3, 16
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _081542E2
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r7, 16
- asrs r0, 16
- cmp r1, r0
- bne _081542E2
- movs r0, 0x30
- ldrsh r1, [r2, r0]
- lsls r0, r6, 16
- asrs r0, 16
- cmp r1, r0
- beq _0815432E
-_081542E2:
- lsls r0, r7, 16
- asrs r0, 16
- lsls r1, r6, 16
- asrs r1, 16
- mov r4, sp
- adds r4, 0x2
- mov r2, sp
- adds r3, r4, 0
- bl sub_8093038
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r1, =gSprites
- adds r2, r0, r1
- mov r0, sp
- ldrh r0, [r0]
- adds r0, 0x8
- strh r0, [r2, 0x20]
- ldrh r0, [r4]
- adds r0, 0x8
- strh r0, [r2, 0x22]
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r3]
- strh r7, [r2, 0x2E]
- strh r6, [r2, 0x30]
- mov r1, r8
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl StartSpriteAnim
-_0815432E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154298
-
- thumb_func_start oei_shadow
-oei_shadow: @ 8154340
- push {r4,r5,lr}
- ldr r5, =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gEventObjects
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r4, r0, 0
- ldr r2, =gFieldEffectObjectTemplatePointers
- ldr r1, =gUnknown_085CDC3E
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 2
- adds r0, r2
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0x94
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081543C4
- ldr r0, =gSprites
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldr r0, [r5]
- strh r0, [r2, 0x2E]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x32]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- ldr r3, =gUnknown_085CDC42
- ldrb r0, [r4, 0xC]
- lsls r0, 26
- lsrs r0, 30
- lsls r0, 1
- adds r0, r3
- ldrh r0, [r0]
- subs r1, r0
- strh r1, [r2, 0x34]
-_081543C4:
- movs r0, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_shadow
-
- thumb_func_start oamc_shadow
-oamc_shadow: @ 81543E4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08154412
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
- b _08154498
-_08154412:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r0, [r4, 0x4]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- ldrb r0, [r1, 0x5]
- movs r2, 0xC
- ands r2, r0
- ldrb r3, [r5, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r5, 0x5]
- ldrh r0, [r1, 0x20]
- strh r0, [r5, 0x20]
- ldrh r0, [r5, 0x34]
- ldrh r1, [r1, 0x22]
- adds r0, r1
- strh r0, [r5, 0x22]
- ldr r0, [r4]
- ldr r1, =0x00400001
- ands r0, r1
- cmp r0, r1
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsPokeGrass
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsSurfableWaterOrUnderwater
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1E]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- bne _08154490
- ldrb r0, [r4, 0x1F]
- bl MetatileBehavior_IsReflective
- lsls r0, 24
- cmp r0, 0
- beq _08154498
-_08154490:
- adds r0, r5, 0
- movs r1, 0x3
- bl FieldEffectStop
-_08154498:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end oamc_shadow
-
- thumb_func_start oei_grass_normal
-oei_grass_normal: @ 81544AC
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x10]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08154538
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r3, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r3, 0x2E]
- ldr r0, [r5]
- strh r0, [r3, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r3, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r3, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r3, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r3, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _08154538
- adds r0, r3, 0
- movs r1, 0x4
- bl SeekSpriteAnim
-_08154538:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_grass_normal
-
- thumb_func_start unc_grass_normal
-unc_grass_normal: @ 8154550
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r4, r0, 8
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r3, =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815459C
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r4
- bne _08154582
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r7
- beq _0815459C
-_08154582:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_0815459C:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r4, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r7, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r6, r0, 24
- mov r0, r8
- adds r1, r4, 0
- adds r2, r7, 0
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081545F0
- adds r0, r6, 0
- bl MetatileBehavior_IsTallGrass
- lsls r0, 24
- cmp r0, 0
- beq _081545F0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _08154604
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08154604
-_081545F0:
- adds r0, r5, 0
- movs r1, 0x4
- bl FieldEffectStop
- b _08154648
- .pool
-_08154604:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _08154624
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _08154624
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08154624:
- movs r6, 0
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0
- bne _08154632
- movs r6, 0x4
-_08154632:
- adds r0, r5, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- adds r2, r6, 0
- bl sub_81561FC
-_08154648:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_grass_normal
-
- thumb_func_start sub_8154658
-sub_8154658: @ 8154658
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x28]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081546B4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xC
- strh r0, [r2, 0x30]
-_081546B4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154658
-
- thumb_func_start sub_81546C8
-sub_81546C8: @ 81546C8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r4, [sp, 0x18]
- lsls r0, 24
- lsrs r0, 24
- mov r12, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- movs r5, 0
- ldr r0, =gSprites
- mov r8, r0
- lsls r3, 16
- asrs r3, 16
- lsls r4, 16
- asrs r4, 16
-_081546EC:
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- mov r1, r8
- adds r2, r0, r1
- adds r0, r2, 0
- adds r0, 0x3E
- ldrb r0, [r0]
- lsls r0, 31
- cmp r0, 0
- beq _08154740
- ldr r1, [r2, 0x1C]
- ldr r0, =unc_grass_normal
- cmp r1, r0
- bne _08154740
- movs r1, 0x30
- ldrsh r0, [r2, r1]
- cmp r3, r0
- bne _08154740
- movs r1, 0x32
- ldrsh r0, [r2, r1]
- cmp r4, r0
- bne _08154740
- ldrh r1, [r2, 0x34]
- lsrs r0, r1, 8
- cmp r12, r0
- bne _08154740
- movs r0, 0xFF
- ands r0, r1
- cmp r7, r0
- bne _08154740
- movs r1, 0x36
- ldrsh r0, [r2, r1]
- cmp r6, r0
- bne _08154740
- adds r0, r5, 0
- b _0815474C
- .pool
-_08154740:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3F
- bls _081546EC
- movs r0, 0x40
-_0815474C:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81546C8
-
- thumb_func_start sub_8154758
-sub_8154758: @ 8154758
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x3C]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _081547E8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r4, r0, r1
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2]
- ldrb r0, [r5, 0x8]
- bl ZCoordToPriority
- movs r1, 0x3
- ands r1, r0
- lsls r1, 2
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- ldr r0, [r5, 0x8]
- strh r0, [r4, 0x2E]
- ldr r0, [r5]
- strh r0, [r4, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r4, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r4, 0x36]
- ldr r0, [r5, 0x18]
- strh r0, [r4, 0x38]
- ldr r0, [r5, 0x1C]
- cmp r0, 0
- beq _081547E8
- adds r0, r4, 0
- movs r1, 0x6
- bl SeekSpriteAnim
-_081547E8:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154758
-
- thumb_func_start unc_grass_tall
-unc_grass_tall: @ 8154800
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x38]
- lsrs r7, r0, 8
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r3, =gCamera
- ldrb r1, [r3]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0815484C
- ldr r0, =gSaveBlock1Ptr
- ldr r2, [r0]
- movs r0, 0x5
- ldrsb r0, [r2, r0]
- cmp r0, r7
- bne _08154832
- movs r0, 0x4
- ldrsb r0, [r2, r0]
- cmp r0, r6
- beq _0815484C
-_08154832:
- ldr r1, [r3, 0x4]
- ldrh r0, [r5, 0x30]
- subs r0, r1
- strh r0, [r5, 0x30]
- ldr r1, [r3, 0x8]
- ldrh r0, [r5, 0x32]
- subs r0, r1
- strh r0, [r5, 0x32]
- ldrb r1, [r2, 0x5]
- lsls r1, 8
- ldrb r0, [r2, 0x4]
- orrs r0, r1
- strh r0, [r5, 0x38]
-_0815484C:
- ldrh r0, [r5, 0x34]
- lsrs r1, r0, 8
- mov r8, r1
- lsls r0, 24
- lsrs r7, r0, 24
- ldrh r0, [r5, 0x36]
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0x30
- ldrsh r0, [r5, r2]
- movs r2, 0x32
- ldrsh r1, [r5, r2]
- bl MapGridGetMetatileBehaviorAt
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081548A0
- adds r0, r4, 0
- bl MetatileBehavior_IsLongGrass
- lsls r0, 24
- cmp r0, 0
- beq _081548A0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0
- beq _081548B4
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081548B4
-_081548A0:
- adds r0, r5, 0
- movs r1, 0x11
- bl FieldEffectStop
- b _081548EA
- .pool
-_081548B4:
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r2, r0, r1
- ldr r0, [r2, 0x10]
- ldr r1, [r5, 0x30]
- cmp r0, r1
- beq _081548D4
- ldr r0, [r2, 0x14]
- cmp r0, r1
- beq _081548D4
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_081548D4:
- adds r0, r5, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r5, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- movs r2, 0
- bl sub_81561FC
-_081548EA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end unc_grass_tall
-
- thumb_func_start sub_81548FC
-sub_81548FC: @ 81548FC
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x40]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154958
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x12
- strh r0, [r2, 0x30]
-_08154958:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81548FC
-
- thumb_func_start sub_815496C
-sub_815496C: @ 815496C
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x78]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081549F8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_081549F8:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_815496C
-
- thumb_func_start sub_8154A10
-sub_8154A10: @ 8154A10
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08154A4E
- ldr r5, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 29
- cmp r0, 0
- blt _08154A5C
-_08154A4E:
- adds r0, r4, 0
- movs r1, 0x29
- bl FieldEffectStop
- b _08154AF2
- .pool
-_08154A5C:
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r8, r0
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r6, r0, r1
- ldrh r5, [r6, 0x22]
- ldrh r7, [r6, 0x20]
- movs r0, 0x20
- ldrsh r1, [r6, r0]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08154A98
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _08154AB2
-_08154A98:
- strh r7, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08154AB2
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_08154AB2:
- strh r7, [r4, 0x20]
- strh r5, [r4, 0x22]
- mov r1, r8
- ldrh r0, [r1, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x8
- strh r0, [r4, 0x26]
- adds r0, r6, 0
- adds r0, 0x43
- ldrb r0, [r0]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrb r0, [r6, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r4, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r4, 0x5]
- adds r0, r6, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl UpdateEventObjectSpriteVisibility
-_08154AF2:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154A10
-
- thumb_func_start sub_8154B04
-sub_8154B04: @ 8154B04
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x2C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x40
- beq _08154B62
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0xD
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154B62:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154B04
-
- thumb_func_start sub_8154B78
-sub_8154B78: @ 8154B78
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x5C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08154BD8
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x18
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154BD8:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154B78
-
- thumb_func_start sub_8154BEC
-sub_8154BEC: @ 8154BEC
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x6C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r1, r0, 24
- adds r5, r1, 0
- cmp r1, 0x40
- beq _08154C4C
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- movs r1, 0x3
- ldrb r2, [r4, 0xC]
- ands r2, r1
- lsls r2, 2
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- movs r1, 0x23
- strh r1, [r0, 0x3C]
- ldrb r1, [r4, 0x10]
- bl StartSpriteAnim
-_08154C4C:
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154BEC
-
- thumb_func_start sub_8154C60
-sub_8154C60: @ 8154C60
- push {lr}
- ldr r2, =gUnknown_085CDC4C
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154C60
-
- thumb_func_start sub_8154C7C
-sub_8154C7C: @ 8154C7C
- push {lr}
- adds r1, r0, 0
- ldrh r0, [r1, 0x30]
- adds r0, 0x1
- strh r0, [r1, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x28
- ble _08154C92
- movs r0, 0x1
- strh r0, [r1, 0x2E]
-_08154C92:
- adds r0, r1, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- pop {r0}
- bx r0
- thumb_func_end sub_8154C7C
-
- thumb_func_start sub_8154CA0
-sub_8154CA0: @ 8154CA0
- push {r4,lr}
- adds r4, r0, 0
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r4, 0x30]
- adds r0, 0x1
- strh r0, [r4, 0x30]
- ldrb r1, [r3]
- lsls r1, 29
- lsrs r1, 31
- adds r0, r4, 0
- bl UpdateEventObjectSpriteVisibility
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- cmp r0, 0x38
- ble _08154CE4
- ldrh r1, [r4, 0x3C]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
-_08154CE4:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8154CA0
-
- thumb_func_start sub_8154CEC
-sub_8154CEC: @ 8154CEC
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _08154D76
- ldrb r0, [r5, 0x5]
- bl GetEventObjectGraphicsInfo
- lsls r3, r4, 4
- adds r3, r4
- lsls r3, 2
- ldr r4, =gSprites
- adds r3, r4
- movs r1, 0x3E
- adds r1, r3
- mov r12, r1
- ldrb r1, [r1]
- movs r2, 0x2
- orrs r1, r2
- mov r2, r12
- strb r1, [r2]
- ldrb r2, [r5, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r4, [r3, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r4
- orrs r1, r2
- strb r1, [r3, 0x5]
- ldr r1, [r6]
- strh r1, [r3, 0x2E]
- ldr r1, [r6, 0x4]
- strh r1, [r3, 0x30]
- ldr r1, [r6, 0x8]
- strh r1, [r3, 0x32]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- subs r0, 0x4
- strh r0, [r3, 0x26]
- movs r0, 0x46
- bl PlaySE
-_08154D76:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154CEC
-
- thumb_func_start sub_8154D90
-sub_8154D90: @ 8154D90
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- bne _08154DC0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08154DCA
-_08154DC0:
- adds r0, r4, 0
- movs r1, 0xF
- bl FieldEffectStop
- b _08154E0A
-_08154DCA:
- ldr r3, =gSprites
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x20]
- strh r0, [r4, 0x20]
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrh r0, [r0, 0x22]
- strh r0, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_08154E0A:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154D90
-
- thumb_func_start sub_8154E1C
-sub_8154E1C: @ 8154E1C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x38]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154E78
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0x10
- strh r0, [r2, 0x30]
-_08154E78:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154E1C
-
- thumb_func_start oei_water_drop_tall
-oei_water_drop_tall: @ 8154E8C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x30]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08154EE8
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xE
- strh r0, [r2, 0x30]
-_08154EE8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_water_drop_tall
-
- thumb_func_start sub_8154EFC
-sub_8154EFC: @ 8154EFC
- push {r4-r7,lr}
- ldr r7, =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r6, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x34]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x40
- beq _08154F92
- ldrb r0, [r6, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r4, r0, 0
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- ldr r3, =gSprites
- adds r0, r3
- ldr r1, =sub_8154FB4
- str r1, [r0, 0x1C]
- adds r5, r0, 0
- adds r5, 0x3E
- ldrb r1, [r5]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r5]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r3
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldr r1, =0x0000ffff
- strh r1, [r0, 0x34]
- movs r1, 0x1
- negs r1, r1
- strh r1, [r0, 0x36]
- ldrh r1, [r4, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x4
- strh r1, [r0, 0x26]
- movs r1, 0x1
- bl StartSpriteAnim
-_08154F92:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8154EFC
-
- thumb_func_start sub_8154FB4
-sub_8154FB4: @ 8154FB4
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08154FEE
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r5, r0, r2
- ldrb r0, [r5, 0x2]
- lsls r0, 28
- cmp r0, 0
- blt _08154FFC
-_08154FEE:
- adds r0, r4, 0
- movs r1, 0x22
- bl FieldEffectStop
- b _08155046
- .pool
-_08154FFC:
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrh r1, [r0, 0x20]
- strh r1, [r4, 0x20]
- ldrh r1, [r0, 0x22]
- strh r1, [r4, 0x22]
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldr r1, [r5, 0x10]
- ldr r0, [r4, 0x34]
- cmp r1, r0
- beq _08155046
- ldrh r0, [r5, 0x10]
- strh r0, [r4, 0x34]
- ldrh r0, [r5, 0x12]
- strh r0, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r0, 0x4
- ands r0, r1
- cmp r0, 0
- bne _08155046
- movs r0, 0x46
- bl PlaySE
-_08155046:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8154FB4
-
- thumb_func_start oei_ripples
-oei_ripples: @ 8155054
- push {r4,lr}
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x14]
- ldr r4, =gFieldEffectArguments
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081550A0
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x5
- strh r0, [r2, 0x2E]
-_081550A0:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_ripples
-
- thumb_func_start sub_81550B4
-sub_81550B4: @ 81550B4
- push {r4-r6,lr}
- ldr r6, =gFieldEffectArguments
- ldrb r0, [r6]
- ldrb r1, [r6, 0x4]
- ldrb r2, [r6, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r5, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x7C]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155140
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r4, =gSprites
- adds r2, r4
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r6]
- strh r0, [r2, 0x2E]
- ldr r0, [r6, 0x4]
- strh r0, [r2, 0x30]
- ldr r0, [r6, 0x8]
- strh r0, [r2, 0x32]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x20]
- strh r0, [r2, 0x34]
- ldrb r1, [r5, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrh r0, [r0, 0x22]
- strh r0, [r2, 0x36]
-_08155140:
- movs r0, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81550B4
-
- thumb_func_start sub_8155158
-sub_8155158: @ 8155158
- push {r4,r5,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _08155192
- ldr r5, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r5
- ldrb r0, [r1, 0x2]
- lsls r0, 26
- cmp r0, 0
- blt _081551A0
-_08155192:
- adds r0, r4, 0
- movs r1, 0x2A
- bl FieldEffectStop
- b _081551E4
- .pool
-_081551A0:
- ldrb r0, [r1, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r5
- ldrb r2, [r1, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, =gSprites
- adds r1, r2
- ldrh r2, [r1, 0x20]
- strh r2, [r4, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r2, [r1, 0x22]
- adds r0, r2
- subs r0, 0x8
- strh r0, [r4, 0x22]
- adds r1, 0x43
- ldrb r0, [r1]
- subs r0, 0x1
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_081551E4:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155158
-
- thumb_func_start sub_81551F0
-sub_81551F0: @ 81551F0
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x44]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155248
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x13
- strh r0, [r2, 0x2E]
-_08155248:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81551F0
-
- thumb_func_start sub_815525C
-sub_815525C: @ 815525C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x48]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081552B4
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x14
- strh r0, [r2, 0x2E]
-_081552B4:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_815525C
-
- thumb_func_start sub_81552C8
-sub_81552C8: @ 81552C8
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x4C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155320
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x15
- strh r0, [r2, 0x2E]
-_08155320:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81552C8
-
- thumb_func_start sub_8155334
-sub_8155334: @ 8155334
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x50]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0815538C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x16
- strh r0, [r2, 0x2E]
-_0815538C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155334
-
- thumb_func_start ash
-ash: @ 81553A0
- push {r4,lr}
- lsls r2, 16
- lsrs r2, 16
- ldr r4, =gFieldEffectArguments
- lsls r0, 16
- asrs r0, 16
- str r0, [r4]
- lsls r1, 16
- asrs r1, 16
- str r1, [r4, 0x4]
- movs r0, 0x52
- str r0, [r4, 0x8]
- movs r0, 0x1
- str r0, [r4, 0xC]
- str r2, [r4, 0x10]
- lsls r3, 16
- asrs r3, 16
- str r3, [r4, 0x14]
- movs r0, 0x7
- bl FieldEffectStart
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ash
-
- thumb_func_start oei_ash
-oei_ash: @ 81553D4
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, =gFieldEffectArguments
- ldrh r1, [r5]
- mov r0, sp
- strh r1, [r0]
- ldrh r0, [r5, 0x4]
- mov r4, sp
- adds r4, 0x2
- strh r0, [r4]
- mov r0, sp
- adds r1, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x18]
- mov r1, sp
- movs r2, 0
- ldrsh r1, [r1, r2]
- movs r3, 0
- ldrsh r2, [r4, r3]
- ldrb r3, [r5, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _0815544A
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r5, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r5]
- strh r0, [r2, 0x30]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x10]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x14]
- strh r0, [r2, 0x36]
-_0815544A:
- movs r0, 0
- add sp, 0x4
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end oei_ash
-
- thumb_func_start sub_8155460
-sub_8155460: @ 8155460
- push {lr}
- ldr r2, =gUnknown_085CDC54
- movs r3, 0x2E
- ldrsh r1, [r0, r3]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl _call_via_r1
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155460
-
- thumb_func_start sub_815547C
-sub_815547C: @ 815547C
- push {lr}
- adds r3, r0, 0
- adds r2, r3, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- ldrh r0, [r3, 0x36]
- subs r0, 0x1
- strh r0, [r3, 0x36]
- lsls r0, 16
- cmp r0, 0
- bne _081554A6
- movs r0, 0x1
- strh r0, [r3, 0x2E]
-_081554A6:
- pop {r0}
- bx r0
- thumb_func_end sub_815547C
-
- thumb_func_start sub_81554AC
-sub_81554AC: @ 81554AC
- push {r4,lr}
- adds r4, r0, 0
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- ldrh r2, [r4, 0x34]
- bl MapGridSetMetatileIdAt
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r2, 0x32
- ldrsh r1, [r4, r2]
- bl CurrentMapDrawMetatileAt
- ldr r2, =gEventObjects
- ldr r0, =gPlayerAvatar
- ldrb r1, [r0, 0x5]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x2
- strh r0, [r4, 0x2E]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81554AC
-
- thumb_func_start sub_815550C
-sub_815550C: @ 815550C
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _0815552C
- adds r0, r4, 0
- movs r1, 0x7
- bl FieldEffectStop
-_0815552C:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_815550C
-
- thumb_func_start sub_8155534
-sub_8155534: @ 8155534
- push {r4,r5,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x1C]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x96
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- cmp r0, 0x40
- beq _0815558E
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xF
- ands r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r1, 0x32]
- ldr r0, =0x0000ffff
- strh r0, [r1, 0x34]
- movs r0, 0x1
- negs r0, r0
- strh r0, [r1, 0x3A]
- strh r0, [r1, 0x3C]
-_0815558E:
- movs r0, 0x8
- bl FieldEffectActiveListRemove
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155534
-
- thumb_func_start sub_81555AC
-sub_81555AC: @ 81555AC
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0x10
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 24
- orrs r0, r3
- strh r0, [r2, 0x2E]
- bx lr
- .pool
- thumb_func_end sub_81555AC
-
- thumb_func_start sub_81555D8
-sub_81555D8: @ 81555D8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r3, =gSprites
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r3
- ldrh r0, [r2, 0x2E]
- movs r3, 0xF1
- negs r3, r3
- ands r3, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 20
- orrs r3, r0
- strh r3, [r2, 0x2E]
- bx lr
- .pool
- thumb_func_end sub_81555D8
-
- thumb_func_start sub_8155604
-sub_8155604: @ 8155604
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- ldr r4, =gSprites
- lsls r3, r0, 4
- adds r3, r0
- lsls r3, 2
- adds r3, r4
- ldrh r0, [r3, 0x2E]
- ldr r4, =0xfffff0ff
- ands r4, r0
- movs r0, 0xF0
- lsls r0, 20
- ands r0, r1
- lsrs r0, 16
- orrs r4, r0
- strh r4, [r3, 0x2E]
- strh r2, [r3, 0x30]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155604
-
- thumb_func_start sub_8155638
-sub_8155638: @ 8155638
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF
- ands r0, r1
- bx lr
- thumb_func_end sub_8155638
-
- thumb_func_start sub_8155640
-sub_8155640: @ 8155640
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- ands r0, r1
- lsrs r0, 4
- bx lr
- thumb_func_end sub_8155640
-
- thumb_func_start sub_815564C
-sub_815564C: @ 815564C
- ldrh r1, [r0, 0x2E]
- movs r0, 0xF0
- lsls r0, 4
- ands r0, r1
- lsrs r0, 8
- bx lr
- thumb_func_end sub_815564C
-
- thumb_func_start sub_8155658
-sub_8155658: @ 8155658
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x32
- ldrsh r0, [r6, r1]
- lsls r4, r0, 3
- adds r4, r0
- lsls r4, 2
- ldr r0, =gEventObjects
- adds r4, r0
- ldrb r0, [r4, 0x4]
- lsls r5, r0, 4
- adds r5, r0
- lsls r5, 2
- ldr r0, =gSprites
- adds r5, r0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81556B0
- adds r0, r4, 0
- adds r1, r6, 0
- bl sub_81556E8
- adds r0, r4, 0
- adds r1, r5, 0
- adds r2, r6, 0
- bl sub_815577C
- ldrb r0, [r5, 0x5]
- movs r1, 0xC
- ands r1, r0
- ldrb r2, [r6, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r6, 0x5]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155658
-
- thumb_func_start sub_81556B0
-sub_81556B0: @ 81556B0
- push {r4,r5,lr}
- sub sp, 0xC
- adds r5, r0, 0
- adds r4, r1, 0
- ldr r1, =gUnknown_085CDC60
- mov r0, sp
- movs r2, 0x9
- bl memcpy
- adds r0, r4, 0
- bl sub_8155640
- lsls r0, 24
- cmp r0, 0
- bne _081556DC
- ldrb r0, [r5, 0x18]
- lsrs r0, 4
- add r0, sp
- ldrb r1, [r0]
- adds r0, r4, 0
- bl StartSpriteAnimIfDifferent
-_081556DC:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81556B0
-
- thumb_func_start sub_81556E8
-sub_81556E8: @ 81556E8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r1, 0
- ldrh r2, [r0, 0x10]
- mov r1, sp
- strh r2, [r1]
- ldrh r1, [r0, 0x12]
- mov r0, sp
- adds r0, 0x2
- strh r1, [r0]
- movs r2, 0x26
- ldrsh r3, [r4, r2]
- mov r8, r0
- cmp r3, 0
- bne _08155770
- mov r0, sp
- movs r5, 0
- ldrsh r2, [r0, r5]
- movs r5, 0x3A
- ldrsh r0, [r4, r5]
- cmp r2, r0
- bne _08155724
- lsls r0, r1, 16
- asrs r0, 16
- movs r5, 0x3C
- ldrsh r1, [r4, r5]
- cmp r0, r1
- beq _08155770
-_08155724:
- strh r3, [r4, 0x38]
- strh r2, [r4, 0x3A]
- mov r1, r8
- movs r2, 0
- ldrsh r0, [r1, r2]
- strh r0, [r4, 0x3C]
- movs r5, 0x1
- mov r7, r8
- mov r6, sp
-_08155736:
- adds r0, r5, 0
- mov r1, sp
- adds r2, r7, 0
- bl MoveCoords
- movs r1, 0
- ldrsh r0, [r6, r1]
- movs r2, 0
- ldrsh r1, [r7, r2]
- bl MapGridGetZCoordAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x3
- bne _0815575C
- ldrh r0, [r4, 0x38]
- adds r0, 0x1
- strh r0, [r4, 0x38]
- b _08155770
-_0815575C:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldrh r0, [r4, 0x3A]
- strh r0, [r6]
- ldrh r0, [r4, 0x3C]
- mov r1, r8
- strh r0, [r1]
- cmp r5, 0x4
- bls _08155736
-_08155770:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81556E8
-
- thumb_func_start sub_815577C
-sub_815577C: @ 815577C
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r1, 0
- adds r4, r2, 0
- ldr r1, =gUnknown_085CDC6A
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- adds r0, r4, 0
- bl sub_8155638
- lsls r0, 24
- lsrs r0, 24
- adds r2, r0, 0
- cmp r2, 0
- beq _081557F6
- ldrh r1, [r4, 0x36]
- adds r1, 0x1
- strh r1, [r4, 0x36]
- movs r3, 0x38
- ldrsh r0, [r4, r3]
- lsls r0, 1
- add r0, sp
- ldrh r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081557BC
- ldrh r0, [r4, 0x34]
- ldrh r1, [r4, 0x26]
- adds r0, r1
- strh r0, [r4, 0x26]
-_081557BC:
- ldrh r1, [r4, 0x36]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _081557CC
- ldrh r0, [r4, 0x34]
- negs r0, r0
- strh r0, [r4, 0x34]
-_081557CC:
- cmp r2, 0x2
- beq _081557F6
- adds r0, r4, 0
- bl sub_815564C
- lsls r0, 24
- cmp r0, 0
- bne _081557E4
- ldrh r0, [r4, 0x26]
- b _081557EA
- .pool
-_081557E4:
- ldrh r0, [r4, 0x26]
- ldrh r3, [r4, 0x30]
- adds r0, r3
-_081557EA:
- strh r0, [r5, 0x26]
- ldrh r0, [r5, 0x20]
- strh r0, [r4, 0x20]
- ldrh r0, [r5, 0x22]
- adds r0, 0x8
- strh r0, [r4, 0x22]
-_081557F6:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_815577C
-
- thumb_func_start sub_8155800
-sub_8155800: @ 8155800
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gDummySpriteTemplate
- movs r1, 0
- movs r2, 0
- movs r3, 0xFF
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- ldr r1, =sub_8155850
- str r1, [r2, 0x1C]
- movs r1, 0x3E
- adds r1, r2
- mov r12, r1
- ldrb r1, [r1]
- movs r3, 0x4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- strh r4, [r2, 0x2E]
- movs r1, 0x1
- strh r1, [r2, 0x30]
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155800
-
- thumb_func_start sub_8155850
-sub_8155850: @ 8155850
- push {lr}
- adds r2, r0, 0
- movs r0, 0x2E
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r3, r0, r1
- ldrh r1, [r2, 0x32]
- adds r0, r1, 0x1
- strh r0, [r2, 0x32]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08155878
- ldrh r0, [r2, 0x30]
- ldrh r1, [r3, 0x26]
- adds r0, r1
- strh r0, [r3, 0x26]
-_08155878:
- ldrh r1, [r2, 0x32]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0
- bne _08155888
- ldrh r0, [r2, 0x30]
- negs r0, r0
- strh r0, [r2, 0x30]
-_08155888:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155850
-
- thumb_func_start sub_8155890
-sub_8155890: @ 8155890
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0xC
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x24]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _081558EC
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x5]
- ldr r0, [r4, 0x8]
- strh r0, [r2, 0x2E]
- movs r0, 0xA
- strh r0, [r2, 0x30]
-_081558EC:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155890
-
- thumb_func_start sub_8155900
-sub_8155900: @ 8155900
- push {r4-r7,lr}
- ldr r7, =gFieldEffectArguments
- ldrb r0, [r7]
- ldrb r1, [r7, 0x4]
- ldrb r2, [r7, 0x8]
- bl GetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 3
- adds r1, r0
- lsls r1, 2
- ldr r0, =gEventObjects
- adds r6, r1, r0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x74]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x40
- beq _081559A4
- ldrb r0, [r6, 0x5]
- bl GetEventObjectGraphicsInfo
- adds r5, r0, 0
- lsls r0, r4, 4
- adds r0, r4
- lsls r0, 2
- ldr r4, =gSprites
- adds r0, r4
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r3]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x5]
- movs r2, 0xC
- ands r2, r1
- ldrb r3, [r0, 0x5]
- movs r1, 0xD
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r1, [r7]
- strh r1, [r0, 0x2E]
- ldr r1, [r7, 0x4]
- strh r1, [r0, 0x30]
- ldr r1, [r7, 0x8]
- strh r1, [r0, 0x32]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x20]
- strh r1, [r0, 0x34]
- ldrb r2, [r6, 0x4]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrh r1, [r1, 0x22]
- strh r1, [r0, 0x36]
- ldrh r1, [r5, 0xA]
- lsls r1, 16
- asrs r1, 17
- subs r1, 0x2
- strh r1, [r0, 0x26]
- movs r1, 0x2
- bl SeekSpriteAnim
-_081559A4:
- movs r0, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155900
-
- thumb_func_start sub_81559BC
-sub_81559BC: @ 81559BC
- push {r4-r6,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r4, 0x32]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- bne _081559F6
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- ldrb r0, [r1, 0x2]
- lsls r0, 27
- cmp r0, 0
- blt _08155A04
-_081559F6:
- adds r0, r4, 0
- movs r1, 0x27
- bl FieldEffectStop
- b _08155A76
- .pool
-_08155A04:
- ldr r2, =gSprites
- ldrb r1, [r1, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r5, [r0, 0x22]
- ldrh r6, [r0, 0x20]
- movs r2, 0x20
- ldrsh r1, [r0, r2]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r1, r0
- bne _08155A2C
- lsls r0, r5, 16
- asrs r0, 16
- movs r2, 0x36
- ldrsh r1, [r4, r2]
- cmp r0, r1
- beq _08155A46
-_08155A2C:
- strh r6, [r4, 0x34]
- strh r5, [r4, 0x36]
- adds r0, r4, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155A46
- adds r0, r4, 0
- movs r1, 0
- bl StartSpriteAnim
-_08155A46:
- strh r6, [r4, 0x20]
- strh r5, [r4, 0x22]
- ldr r3, =gSprites
- ldr r2, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r1, [r0, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x43
- ldrb r0, [r0]
- adds r1, r4, 0
- adds r1, 0x43
- strb r0, [r1]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_08155A76:
- add sp, 0x4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81559BC
-
- thumb_func_start sub_8155A88
-sub_8155A88: @ 8155A88
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x88
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155AD8
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- ldr r0, =gSprites
- adds r1, r0
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- movs r2, 0x4
- orrs r0, r2
- strb r0, [r1, 0x5]
-_08155AD8:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155A88
-
- thumb_func_start sub_8155AEC
-sub_8155AEC: @ 8155AEC
- push {r4,lr}
- adds r4, r0, 0
- ldrh r0, [r4, 0x2E]
- adds r0, 0x80
- movs r1, 0x80
- lsls r1, 1
- ands r0, r1
- strh r0, [r4, 0x2E]
- lsls r0, 16
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- subs r1, r0
- strh r1, [r4, 0x22]
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r1, [r4, 0x3E]
- ldr r0, =0x00001004
- ands r0, r1
- cmp r0, 0
- beq _08155B20
- adds r0, r4, 0
- movs r1, 0x35
- bl FieldEffectStop
-_08155B20:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155AEC
-
- thumb_func_start sub_8155B2C
-sub_8155B2C: @ 8155B2C
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x4
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- ldr r0, [r0, 0x58]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- ldrb r3, [r4, 0x8]
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155B8C
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r3]
- movs r0, 0x3
- ldrb r1, [r4, 0xC]
- ands r1, r0
- lsls r1, 2
- ldrb r3, [r2, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- movs r1, 0xF
- ands r0, r1
- movs r1, 0x50
- orrs r0, r1
- strb r0, [r2, 0x5]
- movs r0, 0x17
- strh r0, [r2, 0x2E]
-_08155B8C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155B2C
-
- thumb_func_start ShowTreeDisguiseFieldEffect
-@ u8 ShowTreeDisguiseFieldEffect()
-ShowTreeDisguiseFieldEffect: @ 8155BA0
- push {lr}
- movs r0, 0x1C
- movs r1, 0x18
- movs r2, 0x4
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowTreeDisguiseFieldEffect
-
- thumb_func_start ShowMountainDisguiseFieldEffect
-@ u8 ShowMountainDisguiseFieldEffect()
-ShowMountainDisguiseFieldEffect: @ 8155BB0
- push {lr}
- movs r0, 0x1D
- movs r1, 0x19
- movs r2, 0x3
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowMountainDisguiseFieldEffect
-
- thumb_func_start ShowSandDisguiseFieldEffect
-@ u8 ShowSandDisguiseFieldEffect()
-ShowSandDisguiseFieldEffect: @ 8155BC0
- push {lr}
- movs r0, 0x24
- movs r1, 0x1C
- movs r2, 0x2
- bl ShowDisguiseFieldEffect
- pop {r1}
- bx r1
- thumb_func_end ShowSandDisguiseFieldEffect
-
- thumb_func_start ShowDisguiseFieldEffect
-@ u8 ShowDisguiseFieldEffect(u8 fieldEffectId, u8 fieldEffectObjectId, u8 paletteSlot)
-ShowDisguiseFieldEffect: @ 8155BD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- mov r8, r4
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r5, =gFieldEffectArguments
- ldrb r0, [r5]
- ldrb r1, [r5, 0x4]
- ldrb r2, [r5, 0x8]
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08155C08
- adds r0, r4, 0
- bl FieldEffectActiveListRemove
- movs r0, 0x40
- b _08155C74
- .pool
-_08155C08:
- ldr r1, =gFieldEffectObjectTemplatePointers
- lsls r0, r6, 2
- adds r0, r1
- ldr r0, [r0]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl CreateSpriteAtEnd
- mov r1, sp
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x40
- beq _08155C70
- mov r0, sp
- ldrb r0, [r0]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- ldr r0, =gSprites
- adds r2, r0
- movs r0, 0x3E
- adds r0, r2
- mov r12, r0
- ldrb r3, [r0]
- lsls r1, r3, 30
- lsrs r1, 31
- adds r1, 0x1
- movs r0, 0x1
- ands r1, r0
- lsls r1, 1
- movs r0, 0x3
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- mov r1, r12
- strb r0, [r1]
- lsls r3, r7, 4
- ldrb r1, [r2, 0x5]
- movs r0, 0xF
- ands r0, r1
- orrs r0, r3
- strb r0, [r2, 0x5]
- mov r0, r8
- strh r0, [r2, 0x30]
- ldr r0, [r5]
- strh r0, [r2, 0x32]
- ldr r0, [r5, 0x4]
- strh r0, [r2, 0x34]
- ldr r0, [r5, 0x8]
- strh r0, [r2, 0x36]
-_08155C70:
- mov r0, sp
- ldrb r0, [r0]
-_08155C74:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ShowDisguiseFieldEffect
-
- thumb_func_start sub_8155C88
-sub_8155C88: @ 8155C88
- push {r4,r5,lr}
- sub sp, 0x4
- adds r5, r0, 0
- ldrh r0, [r5, 0x32]
- lsls r0, 24
- lsrs r0, 24
- ldrh r1, [r5, 0x34]
- lsls r1, 24
- lsrs r1, 24
- ldrh r2, [r5, 0x36]
- lsls r2, 24
- lsrs r2, 24
- mov r3, sp
- bl TryGetEventObjectIdByLocalIdAndMap
- lsls r0, 24
- cmp r0, 0
- beq _08155CB8
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_08155CB8:
- ldr r4, =gEventObjects
- mov r0, sp
- ldrb r1, [r0]
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r0, [r0, 0x5]
- bl GetEventObjectGraphicsInfo
- mov r1, sp
- ldrb r2, [r1]
- lsls r1, r2, 3
- adds r1, r2
- lsls r1, 2
- adds r1, r4
- ldrb r1, [r1, 0x4]
- lsls r2, r1, 4
- adds r2, r1
- lsls r2, 2
- ldr r1, =gSprites
- adds r2, r1
- adds r1, r2, 0
- adds r1, 0x3E
- ldrb r1, [r1]
- movs r3, 0x3E
- adds r3, r5
- mov r12, r3
- movs r3, 0x4
- ands r3, r1
- mov r1, r12
- ldrb r4, [r1]
- movs r1, 0x5
- negs r1, r1
- ands r1, r4
- orrs r1, r3
- mov r3, r12
- strb r1, [r3]
- ldrh r1, [r2, 0x20]
- strh r1, [r5, 0x20]
- ldrh r0, [r0, 0xA]
- lsls r0, 16
- asrs r0, 17
- ldrh r1, [r2, 0x22]
- adds r0, r1
- subs r0, 0x10
- strh r0, [r5, 0x22]
- adds r2, 0x43
- ldrb r0, [r2]
- subs r0, 0x1
- adds r1, r5, 0
- adds r1, 0x43
- strb r0, [r1]
- ldrh r1, [r5, 0x2E]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1
- bne _08155D38
- adds r0, r1, 0x1
- strh r0, [r5, 0x2E]
- adds r0, r5, 0
- movs r1, 0x1
- bl StartSpriteAnim
-_08155D38:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- ldrh r2, [r5, 0x2E]
- cmp r0, 0x2
- bne _08155D54
- adds r0, r5, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155D54
- movs r0, 0x1
- strh r0, [r5, 0x3C]
-_08155D54:
- lsls r0, r2, 16
- asrs r0, 16
- cmp r0, 0x3
- bne _08155D68
- ldrh r1, [r5, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl FieldEffectStop
-_08155D68:
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155C88
-
- thumb_func_start sub_8155D78
-sub_8155D78: @ 8155D78
- push {lr}
- adds r1, r0, 0
- adds r0, 0x21
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08155D96
- ldr r2, =gSprites
- ldrb r1, [r1, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldrh r1, [r0, 0x2E]
- adds r1, 0x1
- strh r1, [r0, 0x2E]
-_08155D96:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155D78
-
- thumb_func_start sub_8155DA0
-sub_8155DA0: @ 8155DA0
- push {lr}
- adds r2, r0, 0
- adds r2, 0x21
- ldrb r1, [r2]
- cmp r1, 0x2
- beq _08155DD6
- cmp r1, 0
- beq _08155DD6
- ldrb r1, [r0, 0x1A]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r1, r0, r1
- movs r3, 0x3C
- ldrsh r0, [r1, r3]
- cmp r0, 0
- bne _08155DCC
- movs r0, 0
- b _08155DD8
- .pool
-_08155DCC:
- movs r0, 0x2
- strb r0, [r2]
- ldrh r0, [r1, 0x2E]
- adds r0, 0x1
- strh r0, [r1, 0x2E]
-_08155DD6:
- movs r0, 0x1
-_08155DD8:
- pop {r1}
- bx r1
- thumb_func_end sub_8155DA0
-
- thumb_func_start sub_8155DDC
-sub_8155DDC: @ 8155DDC
- push {r4,lr}
- ldr r4, =gFieldEffectArguments
- ldr r0, [r4]
- adds r0, 0x7
- str r0, [r4]
- ldr r0, [r4, 0x4]
- adds r0, 0x7
- str r0, [r4, 0x4]
- adds r1, r4, 0x4
- adds r0, r4, 0
- movs r2, 0x8
- movs r3, 0x8
- bl sub_80930E0
- ldr r0, =gFieldEffectObjectTemplatePointers
- adds r0, 0x8C
- ldr r0, [r0]
- movs r2, 0
- ldrsh r1, [r4, r2]
- movs r3, 0x4
- ldrsh r2, [r4, r3]
- movs r3, 0x52
- bl CreateSpriteAtEnd
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _08155E3C
- ldr r0, =gSprites
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- adds r1, r0
- movs r0, 0x3
- ldrb r2, [r4, 0x8]
- ands r2, r0
- lsls r2, 2
- ldrb r3, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r3
- orrs r0, r2
- strb r0, [r1, 0x5]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
-_08155E3C:
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8155DDC
-
- thumb_func_start sub_8155E50
-sub_8155E50: @ 8155E50
- push {lr}
- adds r2, r0, 0
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- bne _08155E84
- adds r0, r2, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08155E7C
- adds r3, r2, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r3]
- ldrh r0, [r2, 0x2E]
- adds r0, 0x1
- strh r0, [r2, 0x2E]
-_08155E7C:
- movs r1, 0x2E
- ldrsh r0, [r2, r1]
- cmp r0, 0
- beq _08155E9A
-_08155E84:
- ldrh r0, [r2, 0x30]
- adds r0, 0x1
- strh r0, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x22
- ble _08155E9A
- adds r0, r2, 0
- movs r1, 0x36
- bl FieldEffectStop
-_08155E9A:
- pop {r0}
- bx r0
- thumb_func_end sub_8155E50
-
- thumb_func_start sub_8155EA0
-sub_8155EA0: @ 8155EA0
- movs r1, 0
- strh r1, [r0, 0x3A]
- strh r1, [r0, 0x3C]
- bx lr
- thumb_func_end sub_8155EA0
-
- thumb_func_start sub_8155EA8
-sub_8155EA8: @ 8155EA8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r6, 0
- movs r1, 0x3C
- ldrsh r0, [r5, r1]
- cmp r0, 0x1
- beq _08155EDE
- cmp r0, 0x1
- bgt _08155EC0
- cmp r0, 0
- beq _08155ECA
- b _08155F42
-_08155EC0:
- cmp r0, 0x2
- beq _08155F06
- cmp r0, 0x3
- beq _08155F1A
- b _08155F42
-_08155ECA:
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- adds r0, r1
- strh r0, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _08155F38
-_08155EDE:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl sub_8097728
- ldrh r2, [r5, 0x26]
- adds r0, r2
- b _08155F40
-_08155F06:
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- bl sub_809773C
- ldrh r1, [r5, 0x24]
- subs r1, r0
- strh r1, [r5, 0x24]
- movs r2, 0x3A
- ldrsh r0, [r5, r2]
- b _08155F38
-_08155F1A:
- ldrh r0, [r5, 0x3A]
- movs r4, 0x47
- subs r0, r4, r0
- lsls r0, 16
- asrs r0, 16
- bl sub_809773C
- ldrh r2, [r5, 0x24]
- adds r0, r2
- strh r0, [r5, 0x24]
- ldrh r0, [r5, 0x3A]
- subs r4, r0
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
-_08155F38:
- bl sub_8097728
- ldrh r1, [r5, 0x26]
- adds r0, r1
-_08155F40:
- strh r0, [r5, 0x26]
-_08155F42:
- ldrh r1, [r5, 0x24]
- negs r1, r1
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x10
- bl SetGpuReg
- ldrh r0, [r5, 0x3A]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x3A]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x48
- bne _08155F68
- strh r1, [r5, 0x3A]
- ldrh r0, [r5, 0x3C]
- adds r0, 0x1
- strh r0, [r5, 0x3C]
-_08155F68:
- movs r2, 0x3C
- ldrsh r0, [r5, r2]
- cmp r0, 0x4
- bne _08155F76
- strh r1, [r5, 0x26]
- strh r1, [r5, 0x24]
- movs r6, 0x1
-_08155F76:
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8155EA8
-
- thumb_func_start sub_8155F80
-sub_8155F80: @ 8155F80
- push {r4-r7,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x8
- bls _08155F8E
- b _08156156
-_08155F8E:
- lsls r0, 2
- ldr r1, =_08155F9C
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08155F9C:
- .4byte _08155FC0
- .4byte _08156034
- .4byte _0815606C
- .4byte _08156090
- .4byte _081560C0
- .4byte _081560D4
- .4byte _081560E0
- .4byte _0815610E
- .4byte _08156120
-_08155FC0:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- movs r1, 0x3
- bl __divsi3
- movs r1, 0x78
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x12
- bl SetGpuReg
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- cmp r0, 0x60
- bne _08156016
- movs r1, 0
- ldr r4, =0x0600f800
- mov r12, r4
- ldr r0, =0x0000bff4
- adds r7, r0, 0
-_08155FEA:
- movs r2, 0xC
- lsls r0, r1, 1
- adds r3, r1, 0x1
- lsls r6, r1, 5
- adds r0, r1
- lsls r4, r0, 1
-_08155FF6:
- adds r0, r6, r2
- lsls r0, 1
- add r0, r12
- adds r1, r2, r7
- adds r1, r4, r1
- adds r1, 0x1
- strh r1, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x11
- bls _08155FF6
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _08155FEA
-_08156016:
- movs r2, 0x2E
- ldrsh r1, [r5, r2]
- ldr r0, =0x00000137
- cmp r1, r0
- bgt _08156022
- b _08156156
-_08156022:
- movs r1, 0
- movs r0, 0x1
- b _0815611A
- .pool
-_08156034:
- ldr r4, =gSineTable
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- movs r1, 0x3
- bl __divsi3
- lsls r0, 16
- asrs r0, 15
- adds r0, r4
- ldrh r0, [r0]
- lsls r0, 16
- asrs r0, 18
- ldrh r4, [r5, 0x36]
- adds r0, r4
- movs r1, 0
- strh r0, [r5, 0x22]
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0xBD
- bne _08156156
- movs r0, 0x2
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x38]
- strh r1, [r5, 0x2E]
- b _08156156
- .pool
-_0815606C:
- movs r3, 0x2E
- ldrsh r0, [r5, r3]
- cmp r0, 0x3C
- bne _0815607E
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- movs r1, 0
- strh r0, [r5, 0x38]
- strh r1, [r5, 0x2E]
-_0815607E:
- movs r4, 0x38
- ldrsh r0, [r5, r4]
- cmp r0, 0x7
- bne _08156156
- movs r0, 0
- strh r0, [r5, 0x38]
- movs r0, 0x3
- strh r0, [r5, 0x32]
- b _08156156
-_08156090:
- ldrh r2, [r5, 0x26]
- movs r0, 0x26
- ldrsh r1, [r5, r0]
- adds r3, r2, 0
- cmp r1, 0
- bne _081560A4
- strh r1, [r5, 0x2E]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
-_081560A4:
- movs r4, 0x2E
- ldrsh r0, [r5, r4]
- cmp r0, 0x5
- bne _08156156
- movs r0, 0
- strh r0, [r5, 0x2E]
- cmp r1, 0
- ble _081560BA
- subs r0, r3, 0x1
- strh r0, [r5, 0x26]
- b _08156156
-_081560BA:
- adds r0, r2, 0x1
- strh r0, [r5, 0x26]
- b _08156156
-_081560C0:
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- bne _08156156
- movs r1, 0
- movs r0, 0x5
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x2E]
- strh r1, [r5, 0x38]
- b _08156156
-_081560D4:
- adds r0, r5, 0
- bl sub_8155EA0
- movs r1, 0
- movs r0, 0x6
- b _0815611A
-_081560E0:
- adds r0, r5, 0
- bl sub_8155EA8
- lsls r0, 24
- cmp r0, 0
- beq _08156156
- movs r1, 0
- strh r1, [r5, 0x2E]
- ldrh r0, [r5, 0x38]
- adds r0, 0x1
- strh r0, [r5, 0x38]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2
- bgt _08156106
- adds r0, r5, 0
- bl sub_8155EA0
- b _08156156
-_08156106:
- strh r1, [r5, 0x38]
- movs r0, 0x7
- strh r0, [r5, 0x32]
- b _08156156
-_0815610E:
- movs r2, 0x2E
- ldrsh r0, [r5, r2]
- cmp r0, 0x1E
- bne _08156156
- movs r1, 0
- movs r0, 0x8
-_0815611A:
- strh r0, [r5, 0x32]
- strh r1, [r5, 0x2E]
- b _08156156
-_08156120:
- movs r1, 0
- ldr r6, =0x0600f800
- movs r4, 0
-_08156126:
- movs r2, 0xC
- adds r3, r1, 0x1
- lsls r1, 5
-_0815612C:
- adds r0, r1, r2
- lsls r0, 1
- adds r0, r6
- strh r4, [r0]
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x11
- bls _0815612C
- lsls r0, r3, 24
- lsrs r1, r0, 24
- cmp r1, 0xE
- bls _08156126
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- adds r0, r5, 0
- movs r1, 0x40
- bl FieldEffectStop
-_08156156:
- movs r3, 0x32
- ldrsh r0, [r5, r3]
- cmp r0, 0x1
- bne _08156184
- ldrh r1, [r5, 0x30]
- movs r0, 0x7
- ands r0, r1
- adds r2, r1, 0
- cmp r0, 0
- bne _08156172
- ldrh r0, [r5, 0x34]
- ldrh r4, [r5, 0x26]
- adds r0, r4
- strh r0, [r5, 0x26]
-_08156172:
- movs r0, 0xF
- ands r0, r2
- cmp r0, 0
- bne _08156180
- ldrh r0, [r5, 0x34]
- negs r0, r0
- strh r0, [r5, 0x34]
-_08156180:
- adds r0, r1, 0x1
- strh r0, [r5, 0x30]
-_08156184:
- ldrh r0, [r5, 0x2E]
- adds r0, 0x1
- strh r0, [r5, 0x2E]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8155F80
-
- thumb_func_start sub_8156194
-sub_8156194: @ 8156194
- push {r4,lr}
- adds r4, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081561B2
- ldrh r1, [r4, 0x30]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl FieldEffectStop
- b _081561C8
-_081561B2:
- adds r0, r4, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
- ldrh r0, [r4, 0x2E]
- lsls r0, 24
- lsrs r0, 24
- adds r1, r4, 0
- movs r2, 0
- bl SetObjectSubpriorityByZCoord
-_081561C8:
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8156194
-
- thumb_func_start sub_81561D0
-sub_81561D0: @ 81561D0
- push {lr}
- adds r2, r0, 0
- adds r0, 0x3F
- ldrb r1, [r0]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _081561EE
- ldrh r1, [r2, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- adds r0, r2, 0
- bl FieldEffectStop
- b _081561F6
-_081561EE:
- adds r0, r2, 0
- movs r1, 0
- bl UpdateEventObjectSpriteVisibility
-_081561F6:
- pop {r0}
- bx r0
- thumb_func_end sub_81561D0
-
- thumb_func_start sub_81561FC
-sub_81561FC: @ 81561FC
- push {r4-r7,lr}
- adds r6, r0, 0
- adds r0, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- adds r1, r6, 0
- bl SetObjectSubpriorityByZCoord
- movs r7, 0
-_08156212:
- lsls r0, r7, 3
- adds r0, r7
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r4, r0, r1
- ldrb r0, [r4]
- lsls r0, 31
- cmp r0, 0
- beq _081562B4
- ldrb r0, [r4, 0x5]
- bl GetEventObjectGraphicsInfo
- ldrb r1, [r4, 0x4]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r5, r0, r1
- adds r0, r6, 0
- adds r0, 0x28
- movs r2, 0
- ldrsb r2, [r0, r2]
- ldrh r0, [r6, 0x20]
- adds r1, r0, r2
- subs r0, r2
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- asrs r1, 16
- movs r0, 0x20
- ldrsh r2, [r5, r0]
- cmp r1, r2
- bge _081562B4
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r2
- ble _081562B4
- adds r0, r5, 0
- adds r0, 0x29
- movs r3, 0
- ldrsb r3, [r0, r3]
- ldrh r2, [r5, 0x22]
- adds r2, r3
- ldrh r4, [r5, 0x22]
- adds r0, r6, 0
- adds r0, 0x29
- movs r1, 0
- ldrsb r1, [r0, r1]
- ldrh r0, [r6, 0x22]
- subs r0, r1
- lsls r0, 16
- asrs r0, 16
- adds r3, r0, r3
- lsls r2, 16
- asrs r2, 16
- lsls r3, 16
- asrs r3, 16
- cmp r2, r3
- blt _0815628C
- cmp r2, r0
- bge _081562B4
-_0815628C:
- lsls r0, r4, 16
- asrs r0, 16
- cmp r0, r3
- ble _081562B4
- adds r2, r6, 0
- adds r2, 0x43
- adds r0, r5, 0
- adds r0, 0x43
- ldrb r1, [r0]
- ldrb r0, [r2]
- cmp r0, r1
- bhi _081562B4
- adds r0, r1, 0x2
- strb r0, [r2]
- b _081562BE
- .pool
-_081562B4:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- cmp r7, 0xF
- bls _08156212
-_081562BE:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_81561FC
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index 0abbf014f..c7b3a0486 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -1793,7 +1793,7 @@ InitPlayerAvatar: @ 808BFE0
movs r1, 0x1
orrs r0, r1
strb r0, [r4, 0x2]
- bl sub_8154228
+ bl CreateWarpArrowSprite
strb r0, [r4, 0x1B]
adds r0, r4, 0
mov r1, r9
@@ -2080,7 +2080,7 @@ _0808C2A2:
movs r1, 0
ldrsh r3, [r7, r1]
adds r1, r6, 0
- bl sub_8154298
+ bl ShowWarpArrowSprite
b _0808C302
.pool
_0808C2E8:
@@ -2095,7 +2095,7 @@ _0808C2E8:
cmp r1, 0x3
ble _0808C2A2
ldrb r0, [r5, 0x1B]
- bl objid_set_invisible
+ bl SetSpriteInvisible
_0808C302:
add sp, 0x4
pop {r3,r4}
diff --git a/asm/party_menu.s b/asm/party_menu.s
index f5ed314ce..e5540e171 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -7846,7 +7846,7 @@ sub_81B5958: @ 81B5958
thumb_func_start sub_81B5974
sub_81B5974: @ 81B5974
push {lr}
- bl sub_809D1E8
+ bl TrySetDiveWarp
ldr r1, =gFieldEffectArguments
lsls r0, 24
lsrs r0, 24
diff --git a/asm/script_pokemon_util_80F87D8.s b/asm/script_pokemon_util_80F87D8.s
index b7388b41b..1202473ee 100644
--- a/asm/script_pokemon_util_80F87D8.s
+++ b/asm/script_pokemon_util_80F87D8.s
@@ -1606,8 +1606,8 @@ _080F94D6:
.pool
thumb_func_end sub_80F94B8
- thumb_func_start sub_80F94E8
-sub_80F94E8: @ 80F94E8
+ thumb_func_start ReducePlayerPartyToThree
+ReducePlayerPartyToThree: @ 80F94E8
push {r4-r7,lr}
sub sp, 0x198
add r0, sp, 0x190
@@ -1662,6 +1662,6 @@ _080F9538:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80F94E8
+ thumb_func_end ReducePlayerPartyToThree
.align 2, 0 @ Don't pad with nop.
diff --git a/asm/shop.s b/asm/shop.s
index 807237389..56658c4ff 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -5,1404 +5,6 @@
.text
- thumb_func_start CreateShopMenu
-@ s8 CreateShopMenu(s8 type)
-CreateShopMenu: @ 80DFA78
- push {r4,r5,lr}
- sub sp, 0x10
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl ScriptContext2_Enable
- ldr r5, =gUnknown_02039F60
- strb r4, [r5, 0xF]
- cmp r4, 0
- bne _080DFACC
- ldr r0, =gUnknown_08589A38
- ldr r1, [r0, 0x4]
- ldr r0, [r0]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r4, =gUnknown_08589A10
- adds r0, r4, 0
- movs r1, 0x3
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp]
- ands r1, r2
- orrs r1, r0
- str r1, [sp]
- mov r0, sp
- bl AddWindow
- strb r0, [r5, 0xE]
- str r4, [r5, 0x4]
- movs r5, 0x3
- b _080DFAF8
- .pool
-_080DFACC:
- ldr r0, =gUnknown_08589A38
- ldr r1, [r0, 0xC]
- ldr r0, [r0, 0x8]
- str r0, [sp, 0x8]
- str r1, [sp, 0xC]
- ldr r4, =gUnknown_08589A28
- adds r0, r4, 0
- movs r1, 0x2
- bl GetMaxWidthInMenuTable
- lsls r0, 24
- ldr r2, =0x00ffffff
- ldr r1, [sp, 0x8]
- ands r1, r2
- orrs r1, r0
- str r1, [sp, 0x8]
- add r0, sp, 0x8
- bl AddWindow
- strb r0, [r5, 0xE]
- str r4, [r5, 0x4]
- movs r5, 0x2
-_080DFAF8:
- ldr r4, =gUnknown_02039F60
- ldrb r0, [r4, 0xE]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4, 0xE]
- ldr r2, [r4, 0x4]
- adds r1, r5, 0
- bl PrintMenuTable
- ldrb r0, [r4, 0xE]
- adds r1, r5, 0
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- ldrb r0, [r4, 0xE]
- bl PutWindowTilemap
- ldrb r0, [r4, 0xE]
- movs r1, 0x1
- bl CopyWindowToVram
- ldr r0, =Task_ShopMenu
- movs r1, 0x8
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- add sp, 0x10
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end CreateShopMenu
-
- thumb_func_start SetShopMenuCallback
-@ void SetShopMenuCallback()
-SetShopMenuCallback: @ 80DFB4C
- ldr r1, =gUnknown_02039F60
- str r0, [r1]
- bx lr
- .pool
- thumb_func_end SetShopMenuCallback
-
- thumb_func_start SetShopItemsForSale
-@ int SetShopItemsForSale(s16 *itemsForSale)
-SetShopItemsForSale: @ 80DFB58
- push {lr}
- adds r1, r0, 0
- movs r2, 0
- ldr r3, =gUnknown_02039F60
- str r1, [r3, 0x8]
- strh r2, [r3, 0xC]
- ldrh r0, [r1]
- cmp r0, 0
- beq _080DFB80
-_080DFB6A:
- ldrh r0, [r3, 0xC]
- adds r0, 0x1
- strh r0, [r3, 0xC]
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r0, r2, 1
- adds r0, r1
- ldrh r0, [r0]
- cmp r0, 0
- bne _080DFB6A
-_080DFB80:
- pop {r0}
- bx r0
- .pool
- thumb_func_end SetShopItemsForSale
-
- thumb_func_start Task_ShopMenu
-@ void Task_ShopMenu(u8 taskId)
-Task_ShopMenu: @ 80DFB88
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl Menu_ProcessInputNoWrapAround
- lsls r0, 24
- asrs r2, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r2, r0
- beq _080DFBC4
- adds r0, 0x1
- cmp r2, r0
- bne _080DFBB4
- movs r0, 0x5
- bl PlaySE
- adds r0, r4, 0
- bl HandleShopMenuQuit
- b _080DFBC4
-_080DFBB4:
- ldr r0, =gUnknown_02039F60
- ldr r1, [r0, 0x4]
- lsls r0, r2, 3
- adds r0, r1
- ldr r1, [r0, 0x4]
- adds r0, r5, 0
- bl _call_via_r1
-_080DFBC4:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ShopMenu
-
- thumb_func_start HandleShopMenuBuy
-@ void HandleShopMenuBuy(u8 taskId)
-HandleShopMenuBuy: @ 80DFBD0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks + 0x8
- adds r4, r1, r2
- ldr r3, =CB2_InitBuyMenu
- lsrs r0, r3, 16
- strh r0, [r4, 0x10]
- strh r3, [r4, 0x12]
- subs r2, 0x8
- adds r1, r2
- ldr r0, =Task_GoToBuyOrSellMenu
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuBuy
-
- thumb_func_start HandleShopMenuSell
-@ void HandleShopMenuSell(u8 taskId)
-HandleShopMenuSell: @ 80DFC0C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks + 0x8
- adds r4, r1, r2
- ldr r3, =CB2_GoToSellMenu
- lsrs r0, r3, 16
- strh r0, [r4, 0x10]
- strh r3, [r4, 0x12]
- subs r2, 0x8
- adds r1, r2
- ldr r0, =Task_GoToBuyOrSellMenu
- str r0, [r1]
- movs r0, 0x1
- movs r1, 0
- bl FadeScreen
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuSell
-
- thumb_func_start CB2_ExitSellMenu
-@ int CB2_ExitSellMenu()
-CB2_ExitSellMenu: @ 80DFC48
- push {lr}
- ldr r0, =gFieldCallback
- ldr r1, =MapPostLoadHook_ExitBuyOrSellMenu
- str r1, [r0]
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- pop {r0}
- bx r0
- .pool
- thumb_func_end CB2_ExitSellMenu
-
- thumb_func_start HandleShopMenuQuit
-@ void HandleShopMenuQuit(u8 taskId)
-HandleShopMenuQuit: @ 80DFC68
- push {r4,r5,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_02039F60
- ldrb r0, [r5, 0xE]
- movs r1, 0x2
- bl sub_8198070
- ldrb r0, [r5, 0xE]
- bl RemoveWindow
- bl SaveRecordedItemPurchasesForTVShow
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- ldr r5, [r5]
- cmp r5, 0
- beq _080DFC98
- bl _call_via_r5
-_080DFC98:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end HandleShopMenuQuit
-
- thumb_func_start Task_GoToBuyOrSellMenu
-@ int Task_GoToBuyOrSellMenu(u8 taskId)
-Task_GoToBuyOrSellMenu: @ 80DFCA4
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080DFCD2
- adds r0, r2, 0
- bl DestroyTask
- ldrh r0, [r4, 0x10]
- lsls r0, 16
- ldrh r1, [r4, 0x12]
- orrs r0, r1
- bl SetMainCallback2
-_080DFCD2:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_GoToBuyOrSellMenu
-
- thumb_func_start MapPostLoadHook_ExitBuyOrSellMenu
-@ void MapPostLoadHook_ExitBuyOrSellMenu()
-MapPostLoadHook_ExitBuyOrSellMenu: @ 80DFCE0
- push {lr}
- bl pal_fill_black
- ldr r0, =Task_ExitSellMenu
- movs r1, 0x8
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end MapPostLoadHook_ExitBuyOrSellMenu
-
- thumb_func_start Task_ExitSellMenu
-@ void Task_ExitSellMenu(u8 taskId)
-Task_ExitSellMenu: @ 80DFCF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- adds r5, r4, 0
- bl IsWeatherNotFadingIn
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080DFD36
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0x2
- bne _080DFD2C
- ldr r1, =gText_CanIHelpWithAnythingElse
- ldr r2, =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r4, 0
- bl DisplayItemMessageOnField
- b _080DFD36
- .pool
-_080DFD2C:
- ldr r1, =gText_AnythingElseICanHelp
- ldr r2, =ReturnToShopMenuAfterExitingSellMenu
- adds r0, r5, 0
- bl DisplayItemMessageOnField
-_080DFD36:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end Task_ExitSellMenu
-
- thumb_func_start ReturnToShopMenuAfterExitingSellMenu
-@ void ReturnToShopMenuAfterExitingSellMenu(u8 taskId)
-ReturnToShopMenuAfterExitingSellMenu: @ 80DFD44
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- bl CreateShopMenu
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end ReturnToShopMenuAfterExitingSellMenu
-
- thumb_func_start CB2_BuyMenu
-@ void CB2_BuyMenu()
-CB2_BuyMenu: @ 80DFD64
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- bl do_scheduled_bg_tilemap_copies_to_vram
- bl UpdatePaletteFade
- pop {r0}
- bx r0
- thumb_func_end CB2_BuyMenu
-
- thumb_func_start VBlankCB_BuyMenu
-@ void VBlankCB_BuyMenu()
-VBlankCB_BuyMenu: @ 80DFD80
- push {lr}
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- pop {r0}
- bx r0
- thumb_func_end VBlankCB_BuyMenu
-
- thumb_func_start CB2_InitBuyMenu
-@ void CB2_InitBuyMenu()
-CB2_InitBuyMenu: @ 80DFD94
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r5, r0, r1
- ldrb r4, [r5]
- cmp r4, 0
- beq _080DFE20
- cmp r4, 0x1
- bne _080DFDAC
- b _080DFEE4
-_080DFDAC:
- bl BuyMenuDrawGraphics
- bl BuyMenuAddScrollIndicatorArrows
- ldr r0, =Task_BuyMenu
- movs r1, 0x8
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gMultiuseListMenuTemplate
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r5, 0
- strh r0, [r1, 0x16]
- movs r4, 0x1
- negs r4, r4
- adds r0, r4, 0
- movs r1, 0x10
- movs r2, 0
- bl BlendPalettes
- str r5, [sp]
- adds r0, r4, 0
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginNormalPaletteFade
- ldr r0, =VBlankCB_BuyMenu
- bl SetVBlankCallback
- ldr r0, =CB2_BuyMenu
- bl SetMainCallback2
- b _080DFEF4
- .pool
-_080DFE20:
- bl SetVBlankHBlankCallbacksToNull
- str r4, [sp, 0x8]
- movs r1, 0xE0
- lsls r1, 19
- ldr r2, =0x01000100
- add r0, sp, 0x8
- bl CpuFastSet
- bl ScanlineEffect_Stop
- bl reset_temp_tile_data_buffers
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl clear_scheduled_bg_copies_to_vram
- ldr r4, =gUnknown_02039F70
- ldr r0, =0x000020b0
- bl AllocZeroed
- str r0, [r4]
- ldr r1, =0x0000200b
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, =0x0000200d
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- ldr r0, [r4]
- ldr r1, =0x0000200e
- adds r0, r1
- movs r1, 0x1
- negs r1, r1
- strb r1, [r0]
- bl BuyMenuBuildListMenuTemplate
- bl BuyMenuInitBgs
- movs r4, 0x20
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x2
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- str r4, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x3
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect_Palette0
- bl BuyMenuInitWindows
- bl BuyMenuDecompressBgGraphics
- b _080DFEEE
- .pool
-_080DFEE4:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _080DFEF4
-_080DFEEE:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
-_080DFEF4:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end CB2_InitBuyMenu
-
- thumb_func_start BuyMenuFreeMemory
-@ void BuyMenuFreeMemory()
-BuyMenuFreeMemory: @ 80DFEFC
- push {lr}
- ldr r0, =gUnknown_02039F70
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_02039F74
- ldr r0, [r0]
- bl Free
- ldr r0, =gUnknown_02039F78
- ldr r0, [r0]
- bl Free
- bl FreeAllWindowBuffers
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuFreeMemory
-
- thumb_func_start BuyMenuBuildListMenuTemplate
-@ void BuyMenuBuildListMenuTemplate()
-BuyMenuBuildListMenuTemplate: @ 80DFF2C
- push {r4-r7,lr}
- ldr r7, =gUnknown_02039F74
- ldr r4, =gUnknown_02039F60
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- lsls r0, 3
- bl Alloc
- str r0, [r7]
- ldr r5, =gUnknown_02039F78
- ldrh r0, [r4, 0xC]
- adds r0, 0x1
- lsls r0, 4
- bl Alloc
- str r0, [r5]
- movs r6, 0
- ldrh r0, [r4, 0xC]
- cmp r6, r0
- bcs _080DFF78
-_080DFF54:
- lsls r1, r6, 3
- ldr r0, [r7]
- adds r0, r1
- ldr r2, [r4, 0x8]
- lsls r1, r6, 1
- adds r1, r2
- ldrh r1, [r1]
- lsls r3, r6, 4
- ldr r2, [r5]
- adds r2, r3
- bl BuyMenuSetListEntry
- adds r0, r6, 0x1
- lsls r0, 16
- lsrs r6, r0, 16
- ldrh r2, [r4, 0xC]
- cmp r6, r2
- bcc _080DFF54
-_080DFF78:
- ldr r4, =gUnknown_02039F78
- lsls r5, r6, 4
- ldr r0, [r4]
- adds r0, r5
- ldr r1, =gText_Cancel2
- bl StringCopy
- ldr r2, =gUnknown_02039F74
- ldr r0, [r2]
- lsls r1, r6, 3
- adds r1, r0
- ldr r0, [r4]
- adds r0, r5
- str r0, [r1]
- movs r0, 0x2
- negs r0, r0
- str r0, [r1, 0x4]
- ldr r3, =gMultiuseListMenuTemplate
- adds r1, r3, 0
- ldr r0, =gUnknown_08589A48
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldm r0!, {r4-r6}
- stm r1!, {r4-r6}
- ldr r0, [r2]
- str r0, [r3]
- ldr r0, =gUnknown_02039F60
- ldrh r0, [r0, 0xC]
- adds r1, r0, 0x1
- strh r1, [r3, 0xC]
- lsls r0, r1, 16
- lsrs r0, 16
- cmp r0, 0x8
- bls _080DFFDC
- movs r0, 0x8
- strh r0, [r3, 0xE]
- b _080DFFDE
- .pool
-_080DFFDC:
- strh r1, [r3, 0xE]
-_080DFFDE:
- ldr r0, =gUnknown_02039F70
- ldr r0, [r0]
- ldr r1, =gMultiuseListMenuTemplate
- ldrh r1, [r1, 0xE]
- ldr r2, =0x00002004
- adds r0, r2
- strh r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuBuildListMenuTemplate
-
- thumb_func_start BuyMenuSetListEntry
-@ void BuyMenuSetListEntry(struct ListMenuEntry *entry, u16 code, u8 *str)
-BuyMenuSetListEntry: @ 80E0000
- push {r4-r6,lr}
- adds r6, r0, 0
- adds r5, r2, 0
- lsls r1, 16
- lsrs r4, r1, 16
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0020
- adds r0, r4, 0
- adds r1, r5, 0
- bl CopyItemName
- b _080E002C
- .pool
-_080E0020:
- lsls r1, r4, 5
- ldr r0, =gDecorations + 1
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_080E002C:
- str r5, [r6]
- str r4, [r6, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuSetListEntry
-
- thumb_func_start BuyMenuPrintItemDescriptionAndShowItemIcon
-@ void BuyMenuPrintItemDescriptionAndShowItemIcon(s32 menuEntryCode, bool8 isInitialSelection, struct ListMenu *listMenu)
-BuyMenuPrintItemDescriptionAndShowItemIcon: @ 80E003C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- adds r7, r0, 0
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0x1
- beq _080E0054
- movs r0, 0x5
- bl PlaySE
-_080E0054:
- movs r0, 0x2
- negs r0, r0
- cmp r7, r0
- beq _080E0078
- lsls r4, r7, 16
- lsrs r0, r4, 16
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- ldr r2, =0x0000200c
- adds r1, r2
- ldrb r1, [r1]
- bl BuyMenuAddItemIcon
- b _080E008A
- .pool
-_080E0078:
- ldr r0, =0x0000ffff
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- ldr r2, =0x0000200c
- adds r1, r2
- ldrb r1, [r1]
- bl BuyMenuAddItemIcon
- lsls r4, r7, 16
-_080E008A:
- lsrs r4, 16
- mov r8, r4
- ldr r6, =gUnknown_02039F70
- ldr r0, [r6]
- ldr r5, =0x0000200c
- adds r0, r5
- ldrb r0, [r0]
- movs r4, 0x1
- adds r1, r4, 0
- eors r1, r0
- mov r0, r8
- bl BuyMenuRemoveItemIcon
- ldr r1, [r6]
- adds r1, r5
- ldrb r0, [r1]
- eors r0, r4
- strb r0, [r1]
- movs r0, 0x2
- negs r0, r0
- cmp r7, r0
- beq _080E00E8
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E00D8
- mov r0, r8
- bl ItemId_GetDescription
- adds r4, r0, 0
- b _080E00EA
- .pool
-_080E00D8:
- ldr r0, =gDecorations
- lsls r1, r7, 5
- adds r0, 0x18
- adds r1, r0
- ldr r4, [r1]
- b _080E00EA
- .pool
-_080E00E8:
- ldr r4, =gText_QuitShopping
-_080E00EA:
- movs r0, 0x2
- movs r1, 0
- bl FillWindowPixelBuffer
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x2
- adds r1, r4, 0
- movs r2, 0x3
- movs r3, 0x1
- bl BuyMenuPrint
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintItemDescriptionAndShowItemIcon
-
- thumb_func_start BuyMenuPrintPriceInList
-@ void BuyMenuPrintPriceInList(u8 windowId, s32 menuEntryCode, u8 y)
-BuyMenuPrintPriceInList: @ 80E0114
- push {r4-r7,lr}
- sub sp, 0x14
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 24
- lsrs r7, r2, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E01AC
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- bne _080E0164
- ldr r5, =gStringVar1
- lsls r0, r1, 16
- lsrs r0, 16
- bl ItemId_GetPrice
- adds r4, r0, 0
- movs r0, 0x1
- bl GetPriceReduction
- lsls r4, 16
- lsrs r4, 16
- lsls r0, 24
- lsrs r0, 24
- asrs r4, r0
- adds r0, r5, 0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- b _080E0176
- .pool
-_080E0164:
- ldr r0, =gStringVar1
- ldr r2, =gDecorations
- lsls r1, 5
- adds r1, r2
- ldrh r1, [r1, 0x14]
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
-_080E0176:
- ldr r4, =gStringVar4
- ldr r1, =gText_PokedollarVar1
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0x7
- adds r1, r4, 0
- movs r2, 0x78
- bl GetStringRightAlignXOffset
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- ldr r0, =gUnknown_08589AB3
- str r0, [sp, 0x8]
- movs r0, 0x1
- negs r0, r0
- str r0, [sp, 0xC]
- str r4, [sp, 0x10]
- adds r0, r6, 0
- movs r1, 0x7
- adds r3, r7, 0
- bl AddTextPrinterParameterized4
-_080E01AC:
- add sp, 0x14
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintPriceInList
-
- thumb_func_start BuyMenuAddScrollIndicatorArrows
-@ void BuyMenuAddScrollIndicatorArrows()
-BuyMenuAddScrollIndicatorArrows: @ 80E01C8
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, =gUnknown_02039F70
- ldr r2, [r5]
- ldr r4, =0x0000200b
- adds r0, r2, r4
- ldrb r0, [r0]
- cmp r0, 0xFF
- bne _080E0206
- ldr r0, =gUnknown_02039F60
- ldrh r1, [r0, 0xC]
- adds r0, r1, 0x1
- cmp r0, 0x8
- ble _080E0206
- subs r0, r1, 0x7
- str r0, [sp]
- ldr r0, =0x00000834
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- ldr r1, =0x00002008
- adds r0, r2, r1
- str r0, [sp, 0xC]
- movs r0, 0x2
- movs r1, 0xAC
- movs r2, 0xC
- movs r3, 0x94
- bl AddScrollIndicatorArrowPairParameterized
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1]
-_080E0206:
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuAddScrollIndicatorArrows
-
- thumb_func_start BuyMenuRemoveScrollIndicatorArrows
-@ void BuyMenuRemoveScrollIndicatorArrows()
-BuyMenuRemoveScrollIndicatorArrows: @ 80E0224
- push {r4,lr}
- ldr r4, =gUnknown_02039F70
- ldr r0, [r4]
- ldr r2, =0x0000200b
- adds r1, r0, r2
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080E0242
- bl RemoveScrollIndicatorArrowPair
- ldr r0, [r4]
- ldr r1, =0x0000200b
- adds r0, r1
- movs r1, 0xFF
- strb r1, [r0]
-_080E0242:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuRemoveScrollIndicatorArrows
-
- thumb_func_start BuyMenuPrintCursor
-@ void BuyMenuPrintCursor(u8 taskId, u8 colorSetId)
-BuyMenuPrintCursor: @ 80E0250
- push {r4,lr}
- sub sp, 0x8
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- lsls r4, 24
- lsrs r4, 24
- bl ListMenuGetYCoordForPrintingArrowCursor
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- ldr r1, =gText_SelectorArrow2
- movs r0, 0
- str r0, [sp]
- str r4, [sp, 0x4]
- movs r0, 0x1
- movs r2, 0
- bl BuyMenuPrint
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrintCursor
-
- thumb_func_start BuyMenuAddItemIcon
-@ void BuyMenuAddItemIcon(u16 id, u8 iconSlot)
-BuyMenuAddItemIcon: @ 80E0284
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 16
- lsrs r2, r0, 16
- lsls r1, 24
- lsrs r3, r1, 24
- ldr r0, =gUnknown_02039F70
- ldr r4, =0x0000200d
- adds r1, r3, r4
- ldr r0, [r0]
- adds r4, r0, r1
- ldrb r0, [r4]
- cmp r0, 0xFF
- bne _080E0310
- ldr r0, =gUnknown_02039F60
- ldrb r0, [r0, 0xF]
- cmp r0, 0
- beq _080E02AE
- ldr r0, =0x0000ffff
- cmp r2, r0
- bne _080E02F0
-_080E02AE:
- ldr r0, =0x0000083e
- adds r1, r3, r0
- adds r0, r1, 0
- bl AddItemIconSprite
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E0310
- strb r2, [r4]
- ldr r1, =gSprites
- lsls r0, r2, 4
- adds r0, r2
- lsls r0, 2
- adds r0, r1
- movs r1, 0x18
- strh r1, [r0, 0x24]
- movs r1, 0x58
- strh r1, [r0, 0x26]
- b _080E0310
- .pool
-_080E02F0:
- lsls r0, r2, 24
- lsrs r0, 24
- ldr r2, =0x0000083e
- adds r1, r3, r2
- str r1, [sp]
- str r1, [sp, 0x4]
- movs r1, 0x14
- movs r2, 0x54
- movs r3, 0x1
- bl AddDecorationIconObject
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x40
- beq _080E0310
- strb r2, [r4]
-_080E0310:
- add sp, 0x8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuAddItemIcon
-
- thumb_func_start BuyMenuRemoveItemIcon
-@ void BuyMenuRemoveItemIcon(u16 id, u8 iconSlot)
-BuyMenuRemoveItemIcon: @ 80E031C
- push {r4,r5,lr}
- lsls r1, 24
- lsrs r4, r1, 24
- ldr r0, =gUnknown_02039F70
- ldr r2, =0x0000200d
- adds r1, r4, r2
- ldr r0, [r0]
- adds r5, r0, r1
- ldrb r0, [r5]
- cmp r0, 0xFF
- beq _080E0356
- ldr r0, =0x0000083e
- adds r4, r0
- adds r0, r4, 0
- bl FreeSpriteTilesByTag
- adds r0, r4, 0
- bl FreeSpritePaletteByTag
- ldrb r1, [r5]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- movs r0, 0xFF
- strb r0, [r5]
-_080E0356:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuRemoveItemIcon
-
- thumb_func_start BuyMenuInitBgs
-@ void BuyMenuInitBgs()
-BuyMenuInitBgs: @ 80E036C
- push {r4,lr}
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_08589A60
- movs r0, 0
- movs r2, 0x4
- bl InitBgsFromTemplates
- ldr r4, =gUnknown_02039F70
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 4
- adds r1, r0
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0xC0
- lsls r0, 5
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- movs r0, 0x80
- lsls r0, 5
- adds r1, r0
- movs r0, 0x3
- bl SetBgTilemapBuffer
- movs r0, 0x10
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x12
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x14
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x16
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x18
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1A
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1C
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x1E
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- movs r0, 0x3
- bl ShowBg
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuInitBgs
-
- thumb_func_start BuyMenuDecompressBgGraphics
-@ void BuyMenuDecompressBgGraphics()
-BuyMenuDecompressBgGraphics: @ 80E0424
- push {lr}
- sub sp, 0x4
- ldr r1, =gBuyMenuFrame_Gfx
- movs r2, 0xE8
- lsls r2, 2
- ldr r3, =0x000003e3
- movs r0, 0
- str r0, [sp]
- movs r0, 0x1
- bl decompress_and_copy_tile_data_to_vram
- ldr r0, =gBuyMenuFrame_Tilemap
- ldr r1, =gUnknown_02039F70
- ldr r1, [r1]
- bl LZDecompressWram
- ldr r0, =gMenuMoneyPal
- movs r1, 0xC0
- movs r2, 0x20
- bl LoadCompressedPalette
- add sp, 0x4
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDecompressBgGraphics
-
- thumb_func_start BuyMenuInitWindows
-@ void BuyMenuInitWindows()
-BuyMenuInitWindows: @ 80E0468
- push {lr}
- ldr r0, =gUnknown_08589A70
- bl InitWindows
- bl DeactivateAllTextPrinters
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD0
- bl LoadUserWindowBorderGfx
- movs r0, 0
- movs r1, 0xA
- movs r2, 0xE0
- bl LoadMessageBoxGfx
- movs r0, 0
- bl PutWindowTilemap
- movs r0, 0x1
- bl PutWindowTilemap
- movs r0, 0x2
- bl PutWindowTilemap
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuInitWindows
-
- thumb_func_start BuyMenuPrint
-@ void BuyMenuPrint(u8 windowId, u8 *str, u8 x, u8 y, u8 speed, u8 colorSetId)
-BuyMenuPrint: @ 80E04A4
- push {r4-r6,lr}
- sub sp, 0x14
- ldr r6, [sp, 0x24]
- ldr r5, [sp, 0x28]
- lsls r0, 24
- lsrs r0, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- movs r4, 0
- str r4, [sp]
- str r4, [sp, 0x4]
- lsls r4, r5, 1
- adds r4, r5
- ldr r5, =gUnknown_08589AB0
- adds r4, r5
- str r4, [sp, 0x8]
- lsls r6, 24
- asrs r6, 24
- str r6, [sp, 0xC]
- str r1, [sp, 0x10]
- movs r1, 0x1
- bl AddTextPrinterParameterized4
- add sp, 0x14
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuPrint
-
- thumb_func_start BuyMenuDisplayMessage
-@ void BuyMenuDisplayMessage(u8 taskId, u8 *str, void ( *callback)(u8 taskId))
-BuyMenuDisplayMessage: @ 80E04E8
- push {r4-r6,lr}
- sub sp, 0x10
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- bl GetPlayerTextSpeed
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- str r1, [sp]
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- str r6, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x5
- movs r2, 0xA
- movs r3, 0xE
- bl DisplayMessageAndContinueTask
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- add sp, 0x10
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDisplayMessage
-
- thumb_func_start BuyMenuDrawGraphics
-@ void BuyMenuDrawGraphics()
-BuyMenuDrawGraphics: @ 80E0524
- push {lr}
- bl BuyMenuDrawMapGraphics
- bl BuyMenuCopyMenuBgToBg1TilemapBuffer
- movs r0, 0x13
- movs r1, 0xB
- bl AddMoneyLabelObject
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- movs r1, 0x92
- lsls r1, 3
- adds r0, r1
- bl GetMoney
- adds r3, r0, 0
- movs r0, 0
- movs r1, 0x1
- movs r2, 0xD
- bl PrintMoneyAmountInMoneyBoxWithBorder
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x2
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x3
- bl schedule_bg_copy_tilemap_to_vram
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawGraphics
-
- thumb_func_start BuyMenuDrawMapGraphics
-@ void BuyMenuDrawMapGraphics()
-BuyMenuDrawMapGraphics: @ 80E0570
- push {lr}
- bl BuyMenuCollectEventObjectData
- bl BuyMenuDrawEventObjects
- bl BuyMenuDrawMapBg
- pop {r0}
- bx r0
- thumb_func_end BuyMenuDrawMapGraphics
-
- thumb_func_start BuyMenuDrawMapBg
-@ void BuyMenuDrawMapBg()
-BuyMenuDrawMapBg: @ 80E0584
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- ldr r0, =gMapHeader
- ldr r0, [r0]
- mov r9, r0
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r1, sp
- mov r0, sp
- ldrh r0, [r0]
- subs r0, 0x4
- strh r0, [r1]
- ldrh r0, [r4]
- subs r0, 0x4
- strh r0, [r4]
- movs r1, 0
- mov r10, r4
-_080E05B6:
- movs r4, 0
- lsls r7, r1, 16
- asrs r0, r7, 16
- mov r8, r0
-_080E05BE:
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- lsls r4, 16
- asrs r5, r4, 16
- adds r0, r5
- mov r2, r10
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- bl MapGridGetMetatileIdAt
- lsls r0, 16
- lsrs r6, r0, 16
- adds r0, r5, 0
- mov r1, r8
- bl BuyMenuCheckForOverlapWithMenuBg
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E0608
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- adds r0, r5
- mov r2, r10
- movs r3, 0
- ldrsh r1, [r2, r3]
- add r1, r8
- bl MapGridGetMetatileLayerTypeAt
- lsls r0, 24
- lsrs r5, r0, 24
- b _080E060A
- .pool
-_080E0608:
- movs r5, 0x1
-_080E060A:
- ldr r0, =0x000001ff
- cmp r6, r0
- bhi _080E062C
- asrs r0, r4, 16
- mov r2, r9
- ldr r1, [r2, 0x10]
- lsls r3, r6, 4
- ldr r2, [r1, 0xC]
- adds r2, r3
- asrs r1, r7, 16
- adds r3, r5, 0
- bl BuyMenuDrawMapMetatile
- b _080E0644
- .pool
-_080E062C:
- asrs r0, r4, 16
- mov r3, r9
- ldr r2, [r3, 0x14]
- ldr r3, =0xfffffe00
- adds r1, r6, r3
- lsls r1, 4
- ldr r2, [r2, 0xC]
- adds r2, r1
- asrs r1, r7, 16
- adds r3, r5, 0
- bl BuyMenuDrawMapMetatile
-_080E0644:
- movs r1, 0x80
- lsls r1, 9
- adds r0, r4, r1
- lsrs r4, r0, 16
- asrs r0, 16
- cmp r0, 0xE
- ble _080E05BE
- adds r0, r7, r1
- lsrs r1, r0, 16
- asrs r0, 16
- cmp r0, 0x9
- ble _080E05B6
- add sp, 0x4
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end BuyMenuDrawMapBg
-
thumb_func_start BuyMenuDrawMapMetatile
@ void BuyMenuDrawMapMetatile(u16 x, u16 y, u16 *src, u8 metatileLayerType)
BuyMenuDrawMapMetatile: @ 80E0670
@@ -1427,7 +29,7 @@ _080E0690:
beq _080E06F8
b _080E0728
_080E0696:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0xC0
lsls r2, 5
@@ -1446,7 +48,7 @@ _080E0696:
b _080E06E2
.pool
_080E06C0:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0x80
lsls r2, 5
@@ -1472,7 +74,7 @@ _080E06E2:
b _080E0728
.pool
_080E06F8:
- ldr r6, =gUnknown_02039F70
+ ldr r6, =gShopDataPtr
ldr r0, [r6]
movs r2, 0x80
lsls r2, 5
@@ -1542,7 +144,7 @@ BuyMenuCollectEventObjectData: @ 80E075C
adds r1, r4, 0
bl GetXYCoordsOneStepInFrontOfPlayer
movs r7, 0
- ldr r5, =gUnknown_02039F70
+ ldr r5, =gShopDataPtr
ldr r3, =0x00002010
movs r2, 0x10
_080E0780:
@@ -1560,7 +162,7 @@ _080E0780:
bls _080E0780
movs r7, 0
str r4, [sp, 0x8]
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
mov r9, r1
mov r2, sp
str r2, [sp, 0x4]
@@ -1728,7 +330,7 @@ BuyMenuDrawEventObjects: @ 80E08F0
push {r5-r7}
sub sp, 0x4
movs r7, 0
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
mov r8, r0
ldr r1, =gEventObjects
mov r10, r1
@@ -1883,7 +485,7 @@ _080E0A3A:
@ void BuyMenuCopyMenuBgToBg1TilemapBuffer()
BuyMenuCopyMenuBgToBg1TilemapBuffer: @ 80E0A40
push {r4-r6,lr}
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
ldr r0, [r0]
movs r1, 0x80
lsls r1, 4
@@ -1921,7 +523,7 @@ _080E0A6A:
@ bool8 BuyMenuCheckForOverlapWithMenuBg(u16 x, u16 y)
BuyMenuCheckForOverlapWithMenuBg: @ 80E0A88
push {lr}
- ldr r2, =gUnknown_02039F70
+ ldr r2, =gShopDataPtr
ldr r2, [r2]
lsls r0, 1
lsls r1, 6
@@ -1979,7 +581,7 @@ _080E0AEA:
bl ListMenuHandleInputGetItemId
adds r5, r0, 0
ldrb r0, [r4, 0xE]
- ldr r7, =gUnknown_02039F70
+ ldr r7, =gShopDataPtr
ldr r2, [r7]
ldr r3, =0x00002008
adds r1, r2, r3
@@ -2011,7 +613,7 @@ _080E0B32:
ldrb r0, [r4, 0xE]
movs r1, 0x2
bl BuyMenuPrintCursor
- ldr r0, =gUnknown_02039F60
+ ldr r0, =gMartInfo
ldrb r0, [r0, 0xF]
cmp r0, 0
bne _080E0B80
@@ -2049,7 +651,7 @@ _080E0B92:
movs r1, 0x92
lsls r1, 3
adds r0, r1
- ldr r2, =gUnknown_02039F70
+ ldr r2, =gShopDataPtr
mov r8, r2
ldr r1, [r2]
movs r7, 0x80
@@ -2065,7 +667,7 @@ _080E0B92:
b _080E0C28
.pool
_080E0BD0:
- ldr r4, =gUnknown_02039F60
+ ldr r4, =gMartInfo
ldrb r0, [r4, 0xF]
cmp r0, 0
bne _080E0C38
@@ -2199,7 +801,7 @@ Task_BuyHowManyDialogueInit: @ 80E0CA4
lsls r1, 3
adds r0, r1
bl GetMoney
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
ldr r4, [r1]
movs r2, 0x80
lsls r2, 6
@@ -2248,7 +850,7 @@ Task_BuyHowManyDialogueHandleInput: @ 80E0D88
ldr r1, =gTasks + 0x8
adds r5, r0, r1
adds r0, r5, 0x2
- ldr r7, =gUnknown_02039F70
+ ldr r7, =gShopDataPtr
ldr r1, [r7]
ldr r2, =0x0000200a
adds r1, r2
@@ -2389,7 +991,7 @@ BuyMenuTryMakePurchase: @ 80E0EDC
adds r4, r0, r1
movs r0, 0x1
bl PutWindowTilemap
- ldr r6, =gUnknown_02039F60
+ ldr r6, =gMartInfo
ldrb r0, [r6, 0xF]
cmp r0, 0
bne _080E0F40
@@ -2459,7 +1061,7 @@ BuyMenuSubtractMoney: @ 80E0F88
movs r4, 0x92
lsls r4, 3
adds r0, r4
- ldr r1, =gUnknown_02039F70
+ ldr r1, =gShopDataPtr
ldr r1, [r1]
movs r2, 0x80
lsls r2, 6
@@ -2475,7 +1077,7 @@ BuyMenuSubtractMoney: @ 80E0F88
movs r0, 0
movs r2, 0
bl PrintMoneyAmountInMoneyBox
- ldr r0, =gUnknown_02039F60
+ ldr r0, =gMartInfo
ldrb r0, [r0, 0xF]
cmp r0, 0
bne _080E0FF0
@@ -2623,7 +1225,7 @@ BuyMenuPrintItemQuantityAndPrice: @ 80E10EC
movs r0, 0x4
movs r1, 0x11
bl FillWindowPixelBuffer
- ldr r0, =gUnknown_02039F70
+ ldr r0, =gShopDataPtr
ldr r0, [r0]
movs r1, 0x80
lsls r1, 6
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 2c38140c6..e0cb5e21e 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -1141,8 +1141,8 @@ _080C308C:
.pool
thumb_func_end sub_80C3020
- thumb_func_start sub_80C30A4
-sub_80C30A4: @ 80C30A4
+ thumb_func_start TrainerCard_GenerateCardForPlayer
+TrainerCard_GenerateCardForPlayer: @ 80C30A4
push {r4,lr}
adds r4, r0, 0
movs r1, 0
@@ -1197,7 +1197,7 @@ _080C3108:
pop {r0}
bx r0
.pool
- thumb_func_end sub_80C30A4
+ thumb_func_end TrainerCard_GenerateCardForPlayer
thumb_func_start sub_80C3120
sub_80C3120: @ 80C3120
@@ -4558,8 +4558,8 @@ _080C4E44:
.pool
thumb_func_end sub_80C4DDC
- thumb_func_start sub_80C4E74
-sub_80C4E74: @ 80C4E74
+ thumb_func_start TrainerCard_ShowLinkCard
+TrainerCard_ShowLinkCard: @ 80C4E74
push {r4-r6,lr}
adds r4, r0, 0
adds r6, r1, 0
@@ -4600,7 +4600,7 @@ sub_80C4E74: @ 80C4E74
pop {r0}
bx r0
.pool
- thumb_func_end sub_80C4E74
+ thumb_func_end TrainerCard_ShowLinkCard
thumb_func_start sub_80C4EE4
sub_80C4EE4: @ 80C4EE4