summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xasm/union_room.s3006
-rwxr-xr-xdata/union_room.s1562
-rw-r--r--include/battle.h1
-rw-r--r--include/event_obj_lock.h1
-rw-r--r--include/link_rfu.h1
-rw-r--r--include/menu.h2
-rw-r--r--include/rom_8011DC0.h149
-rw-r--r--src/link_rfu.c20
-rw-r--r--src/union_room.c2453
-rw-r--r--sym_ewram.txt25
10 files changed, 2343 insertions, 4877 deletions
diff --git a/asm/union_room.s b/asm/union_room.s
index 576a1a51f..ca5ad6853 100755
--- a/asm/union_room.s
+++ b/asm/union_room.s
@@ -5,3012 +5,6 @@
.text
- thumb_func_start sub_8016CA0
-sub_8016CA0: @ 8016CA0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r7, 0
- mov r0, sp
- adds r0, 0x10
- str r0, [sp, 0x18]
-_08016CC4:
- lsls r2, r7, 24
- lsrs r2, 24
- mov r0, sp
- ldr r1, [sp, 0x18]
- bl sub_800DE7C
- lsls r0, 24
- lsrs r4, r0, 24
- mov r0, sp
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 3
- ldr r3, =gTasks
- adds r1, r3
- movs r5, 0x10
- ldrsh r1, [r1, r5]
- bl sub_8013D88
- cmp r0, 0
- bne _08016D00
- mov r1, sp
- ldr r0, =gUnknown_082F045C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08016D00:
- mov r0, sp
- ldrb r1, [r0]
- movs r0, 0xF
- ands r0, r1
- cmp r0, 0x1
- bne _08016D18
- mov r1, sp
- ldr r0, =gUnknown_082F045C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08016D18:
- cmp r4, 0
- bne _08016D9C
- lsls r0, r7, 3
- mov r8, r0
- adds r1, r7, 0x1
- mov r9, r1
- cmp r7, 0
- ble _08016D58
- movs r2, 0
- str r2, [sp, 0x1C]
- adds r4, r7, 0
-_08016D2E:
- ldr r0, [r6, 0x4]
- ldr r3, [sp, 0x1C]
- adds r0, r3
- mov r1, sp
- bl sub_8017630
- lsls r0, 24
- cmp r0, 0
- bne _08016D4C
- mov r1, sp
- ldr r0, =gUnknown_082F045C
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
-_08016D4C:
- ldr r5, [sp, 0x1C]
- adds r5, 0x1C
- str r5, [sp, 0x1C]
- subs r4, 0x1
- cmp r4, 0
- bne _08016D2E
-_08016D58:
- ldr r1, [r6, 0x4]
- mov r0, r8
- subs r4, r0, r7
- lsls r4, 2
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r6, 0x4]
- adds r0, r4
- ldr r1, =gUnknown_082F045C
- bl sub_8017630
- ldr r3, [r6, 0x4]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- b _08016DD4
- .pool
-_08016D9C:
- ldr r1, [r6]
- lsls r4, r7, 3
- subs r4, r7
- lsls r4, 2
- adds r1, r4
- mov r0, sp
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldm r0!, {r2,r3,r5}
- stm r1!, {r2,r3,r5}
- ldr r0, [r6]
- adds r0, r4
- ldr r1, =gUnknown_082F045C
- bl sub_8017630
- ldr r3, [r6]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- adds r7, 0x1
- mov r9, r7
-_08016DD4:
- mov r7, r9
- cmp r7, 0x3
- bgt _08016DDC
- b _08016CC4
-_08016DDC:
- 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_8016CA0
-
- thumb_func_start sub_8016DF0
-sub_8016DF0: @ 8016DF0
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- adds r6, r2, 0
- ldr r0, =sub_8016CA0
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r2, =gTasks + 0x8
- adds r3, r1, r2
- str r4, [r3]
- str r5, [r3, 0x4]
- adds r2, r1
- strh r6, [r2, 0x8]
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8016DF0
-
- thumb_func_start sub_8016E24
-sub_8016E24: @ 8016E24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- lsls r0, 2
- add r0, r10
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r6, r0, r1
- movs r3, 0
-_08016E42:
- lsls r4, r3, 3
- subs r0, r4, r3
- lsls r5, r0, 2
- ldr r0, [r6]
- adds r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- lsls r2, r3, 24
- lsrs r2, 24
- str r3, [sp]
- bl sub_800DE7C
- ldr r0, [r6]
- adds r0, r5
- ldrb r0, [r0, 0xA]
- lsls r0, 25
- lsrs r0, 25
- mov r2, r10
- lsls r1, r2, 2
- add r1, r10
- lsls r1, 3
- ldr r7, =gTasks
- adds r1, r7
- movs r2, 0xC
- ldrsh r1, [r1, r2]
- bl sub_8013D88
- mov r8, r4
- ldr r3, [sp]
- cmp r0, 0
- bne _08016E8E
- ldr r1, [r6]
- adds r1, r5
- ldr r0, =gUnknown_082F045C
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
- ldm r0!, {r2,r4,r7}
- stm r1!, {r2,r4,r7}
-_08016E8E:
- adds r4, r3, 0x1
- mov r9, r4
- cmp r3, 0
- ble _08016ED2
- str r5, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- adds r4, r3, 0
-_08016E9E:
- ldr r1, [r6]
- ldr r7, [sp, 0x8]
- adds r0, r1, r7
- ldr r2, [sp, 0x4]
- adds r1, r2
- str r3, [sp]
- bl sub_8017630
- lsls r0, 24
- ldr r3, [sp]
- cmp r0, 0
- bne _08016EC6
- ldr r1, [r6]
- ldr r5, [sp, 0x4]
- adds r1, r5
- ldr r0, =gUnknown_082F045C
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
- ldm r0!, {r2,r5,r7}
- stm r1!, {r2,r5,r7}
-_08016EC6:
- ldr r7, [sp, 0x8]
- adds r7, 0x1C
- str r7, [sp, 0x8]
- subs r4, 0x1
- cmp r4, 0
- bne _08016E9E
-_08016ED2:
- mov r0, r8
- subs r4, r0, r3
- lsls r4, 2
- ldr r0, [r6]
- adds r0, r4
- ldr r1, =gUnknown_082F045C
- bl sub_8017630
- ldr r3, [r6]
- adds r3, r4
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r4, 0x2
- negs r4, r4
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- mov r3, r9
- cmp r3, 0x3
- ble _08016E42
- add sp, 0xC
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8016E24
-
- thumb_func_start sub_8016F1C
-sub_8016F1C: @ 8016F1C
- push {lr}
- lsls r1, 16
- asrs r1, 16
- cmp r1, 0x7
- bne _08016F2C
- ldrb r1, [r0]
- movs r0, 0x20
- b _08016F34
-_08016F2C:
- cmp r1, 0x8
- bne _08016F3E
- ldrb r1, [r0]
- movs r0, 0x10
-_08016F34:
- ands r0, r1
- cmp r0, 0
- beq _08016F3E
- movs r0, 0x1
- b _08016F40
-_08016F3E:
- movs r0, 0
-_08016F40:
- pop {r1}
- bx r1
- thumb_func_end sub_8016F1C
-
- thumb_func_start sub_8016F44
-sub_8016F44: @ 8016F44
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- 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 r6, 0
- subs r0, 0x8
- movs r5, 0
- adds r1, r0
- mov r8, r1
-_08016F62:
- ldr r0, [r4]
- adds r0, r5
- adds r1, r0, 0
- adds r1, 0x10
- lsls r2, r6, 24
- lsrs r2, 24
- bl sub_800DF34
- lsls r0, 24
- cmp r0, 0
- beq _08016F86
- ldr r0, [r4]
- adds r0, r5
- mov r2, r8
- movs r3, 0xC
- ldrsh r1, [r2, r3]
- bl sub_8016F1C
-_08016F86:
- ldr r0, [r4]
- adds r0, r5
- ldr r1, =gUnknown_082F045C
- bl sub_8017630
- ldr r3, [r4]
- adds r3, r5
- movs r2, 0x1
- ands r2, r0
- ldrb r0, [r3, 0x18]
- movs r7, 0x2
- negs r7, r7
- adds r1, r7, 0
- ands r0, r1
- orrs r0, r2
- strb r0, [r3, 0x18]
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _08016F62
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8016F44
-
- thumb_func_start sub_8016FC0
-sub_8016FC0: @ 8016FC0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, =sub_8016E24
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r1, =gTasks + 0x8
- adds r3, r2, r1
- str r4, [r3]
- adds r1, r2
- strh r5, [r1, 0x4]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8016FC0
-
- thumb_func_start sub_8016FF0
-sub_8016FF0: @ 8016FF0
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldr r0, =sub_8016F44
- movs r1, 0
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- lsls r2, r0, 2
- adds r2, r0
- lsls r2, 3
- ldr r1, =gTasks + 0x8
- adds r3, r2, r1
- str r4, [r3]
- adds r1, r2
- strh r5, [r1, 0x4]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8016FF0
-
- thumb_func_start sub_8017020
-sub_8017020: @ 8017020
- push {r4,lr}
- adds r4, r0, 0
- bl sub_81973A4
- movs r0, 0
- movs r1, 0x1
- bl DrawDialogueFrame
- ldr r0, =gStringVar4
- adds r1, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0x1
- bl AddTextPrinterWithCustomSpeedForMessage
- movs r0, 0
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8017020
-
- thumb_func_start sub_801704C
-sub_801704C: @ 801704C
- push {lr}
- bl RunTextPrintersAndIsPrinter0Active
- lsls r0, 16
- cmp r0, 0
- beq _0801705C
- movs r0, 0
- b _0801705E
-_0801705C:
- movs r0, 0x1
-_0801705E:
- pop {r1}
- bx r1
- thumb_func_end sub_801704C
-
- thumb_func_start PrintOnTextbox
-PrintOnTextbox: @ 8017064
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _08017076
- cmp r0, 0x1
- beq _0801709C
- b _080170AE
-_08017076:
- bl sub_81973A4
- movs r0, 0
- movs r1, 0x1
- bl DrawDialogueFrame
- ldr r0, =gStringVar4
- adds r1, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0x1
- bl AddTextPrinterForMessage_2
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _080170AE
- .pool
-_0801709C:
- bl RunTextPrintersAndIsPrinter0Active
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0
- bne _080170AE
- strb r0, [r4]
- movs r0, 0x1
- b _080170B0
-_080170AE:
- movs r0, 0
-_080170B0:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end PrintOnTextbox
-
- thumb_func_start sub_80170B8
-sub_80170B8: @ 80170B8
- push {r4,r5,lr}
- adds r4, r0, 0
- adds r5, r1, 0
- ldrb r0, [r4]
- cmp r0, 0
- beq _080170CA
- cmp r0, 0x1
- beq _080170E0
- b _0801710C
-_080170CA:
- cmp r5, 0
- beq _080170D4
- movs r0, 0x3
- negs r0, r0
- b _08017110
-_080170D4:
- bl DisplayYesNoMenuDefaultYes
- ldrb r0, [r4]
- adds r0, 0x1
- strb r0, [r4]
- b _0801710C
-_080170E0:
- cmp r5, 0
- beq _080170F2
- bl sub_8198C78
- movs r0, 0
- strb r0, [r4]
- movs r0, 0x3
- negs r0, r0
- b _08017110
-_080170F2:
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- movs r2, 0x80
- lsls r2, 17
- adds r0, r2
- lsrs r0, 24
- cmp r0, 0x2
- bhi _0801710C
- strb r5, [r4]
- adds r0, r1, 0
- b _08017110
-_0801710C:
- movs r0, 0x2
- negs r0, r0
-_08017110:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80170B8
-
- thumb_func_start sub_8017118
-sub_8017118: @ 8017118
- push {r4,lr}
- sub sp, 0x8
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl DrawStdWindowFrame
- adds r0, r4, 0
- movs r1, 0xFF
- bl FillWindowPixelBuffer
- ldr r2, =gUnknown_082EFD94
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl sub_80173E0
- adds r0, r4, 0
- movs r1, 0x2
- bl CopyWindowToVram
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8017118
-
- thumb_func_start sub_8017168
-sub_8017168: @ 8017168
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- bl RemoveWindow
- pop {r0}
- bx r0
- thumb_func_end sub_8017168
-
- thumb_func_start sub_8017178
-sub_8017178: @ 8017178
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- adds r5, r1, 0
- mov r9, r2
- ldrb r4, [r7]
- cmp r4, 0
- beq _08017194
- cmp r4, 0x1
- beq _08017228
- b _0801728E
-_08017194:
- ldr r0, [r3]
- ldr r1, [r3, 0x4]
- str r0, [sp]
- str r1, [sp, 0x4]
- ldr r0, [sp, 0x24]
- bl sub_81DB41C
- adds r1, r0, 0
- ldr r2, [sp]
- lsrs r0, r2, 24
- cmp r0, r1
- ble _080171B6
- lsls r1, 24
- ldr r0, =0x00ffffff
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
-_080171B6:
- ldr r2, [sp]
- lsrs r0, r2, 8
- lsls r0, 24
- lsrs r0, 24
- lsrs r1, r2, 24
- adds r0, r1
- cmp r0, 0x1D
- ble _080171DC
- movs r0, 0x1D
- subs r0, r1
- cmp r0, 0
- bge _080171D0
- movs r0, 0
-_080171D0:
- lsls r1, r0, 24
- lsrs r1, 16
- ldr r0, =0xffff00ff
- ands r0, r2
- orrs r0, r1
- str r0, [sp]
-_080171DC:
- mov r0, sp
- bl AddWindow
- strb r0, [r5]
- ldrb r0, [r5]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, [sp, 0x24]
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldm r1!, {r3,r4,r6}
- stm r2!, {r3,r4,r6}
- ldrb r1, [r5]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0
- bl ListMenuInit
- mov r1, r9
- strb r0, [r1]
- ldrb r0, [r5]
- movs r1, 0x1
- bl CopyWindowToVram
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- b _0801728E
- .pool
-_08017228:
- mov r3, r9
- ldrb r0, [r3]
- bl ListMenu_ProcessInput
- mov r8, r0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- ands r4, r1
- cmp r4, 0
- beq _08017264
- mov r4, r9
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r5]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r5]
- bl RemoveWindow
- movs r0, 0
- strb r0, [r7]
- mov r0, r8
- b _08017292
- .pool
-_08017264:
- movs r0, 0x2
- ands r0, r1
- cmp r0, 0
- beq _0801728E
- mov r6, r9
- ldrb r0, [r6]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r5]
- movs r1, 0x1
- bl ClearStdWindowAndFrame
- ldrb r0, [r5]
- bl RemoveWindow
- strb r4, [r7]
- movs r0, 0x2
- negs r0, r0
- b _08017292
-_0801728E:
- movs r0, 0x1
- negs r0, r0
-_08017292:
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8017178
-
- thumb_func_start sub_80172A0
-sub_80172A0: @ 80172A0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r5, r0, 0
- adds r6, r1, 0
- mov r10, r2
- mov r9, r3
- ldrb r4, [r5]
- cmp r4, 0x1
- beq _0801730C
- cmp r4, 0x1
- bgt _080172C2
- cmp r4, 0
- beq _080172C8
- b _0801739C
-_080172C2:
- cmp r4, 0x2
- beq _0801731C
- b _0801739C
-_080172C8:
- ldr r0, =gUnknown_082F0344
- bl sub_8017118
- mov r1, r9
- strb r0, [r1]
- ldr r0, [sp, 0x20]
- bl AddWindow
- strb r0, [r6]
- ldrb r0, [r6]
- movs r1, 0
- bl DrawStdWindowFrame
- ldr r0, =gMultiuseListMenuTemplate
- adds r2, r0, 0
- ldr r1, [sp, 0x24]
- ldm r1!, {r3,r4,r7}
- stm r2!, {r3,r4,r7}
- ldm r1!, {r3,r4,r7}
- stm r2!, {r3,r4,r7}
- ldrb r1, [r6]
- strb r1, [r0, 0x10]
- movs r1, 0
- movs r2, 0x1
- bl ListMenuInit
- mov r1, r10
- strb r0, [r1]
- b _08017314
- .pool
-_0801730C:
- ldrb r0, [r6]
- movs r1, 0x1
- bl CopyWindowToVram
-_08017314:
- ldrb r0, [r5]
- adds r0, 0x1
- strb r0, [r5]
- b _0801739C
-_0801731C:
- mov r3, r10
- ldrb r0, [r3]
- bl ListMenu_ProcessInput
- adds r1, r0, 0
- ldr r0, =gMain
- ldrh r2, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r2
- cmp r0, 0
- beq _0801739C
- cmp r1, 0x8
- beq _0801733E
- ands r4, r2
- mov r8, r4
- cmp r4, 0
- beq _08017368
-_0801733E:
- mov r4, r10
- ldrb r0, [r4]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r6]
- bl RemoveWindow
- mov r7, r9
- ldrb r0, [r7]
- bl sub_8017168
- movs r0, 0
- strb r0, [r5]
- movs r0, 0x2
- negs r0, r0
- b _080173A0
- .pool
-_08017368:
- ldr r0, [sp, 0x28]
- bl sub_8017CB0
- adds r4, r0, 0
- cmp r4, 0
- blt _08017396
- mov r1, r10
- ldrb r0, [r1]
- movs r1, 0
- movs r2, 0
- bl DestroyListMenuTask
- ldrb r0, [r6]
- bl RemoveWindow
- mov r3, r9
- ldrb r0, [r3]
- bl sub_8017168
- mov r7, r8
- strb r7, [r5]
- adds r0, r4, 0
- b _080173A0
-_08017396:
- movs r0, 0x7
- bl PlaySE
-_0801739C:
- movs r0, 0x1
- negs r0, r0
-_080173A0:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80172A0
-
- thumb_func_start sub_80173B0
-sub_80173B0: @ 80173B0
- push {lr}
- sub sp, 0xC
- movs r0, 0x20
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0
- movs r2, 0
- movs r3, 0
- bl FillBgTilemapBufferRect
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- add sp, 0xC
- pop {r0}
- bx r0
- thumb_func_end sub_80173B0
-
- thumb_func_start sub_80173D4
-sub_80173D4: @ 80173D4
- push {lr}
- bl EnableBothScriptContexts
- pop {r0}
- bx r0
- thumb_func_end sub_80173D4
-
- thumb_func_start sub_80173E0
-sub_80173E0: @ 80173E0
- push {r4,r5,lr}
- sub sp, 0x10
- ldr r5, [sp, 0x1C]
- ldr r4, [sp, 0x20]
- lsls r3, 24
- lsrs r3, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r4, 24
- lsrs r4, 24
- str r2, [sp]
- mov r2, sp
- strb r0, [r2, 0x4]
- mov r0, sp
- strb r1, [r0, 0x5]
- strb r3, [r0, 0x6]
- strb r5, [r0, 0x7]
- strb r3, [r0, 0x8]
- strb r5, [r0, 0x9]
- ldrb r1, [r2, 0xC]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0xC]
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- cmp r4, 0x6
- bls _08017422
- b _0801756E
-_08017422:
- lsls r0, r4, 2
- ldr r1, =_08017434
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08017434:
- .4byte _08017450
- .4byte _0801747C
- .4byte _080174A8
- .4byte _080174D4
- .4byte _08017500
- .4byte _0801752C
- .4byte _08017544
-_08017450:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0801756A
-_0801747C:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x50
- b _0801756A
-_080174A8:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x60
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x70
- b _0801756A
-_080174D4:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0801756A
-_08017500:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0xC]
- ldrb r1, [r2, 0xD]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- movs r1, 0x2
- orrs r0, r1
- strb r0, [r2, 0xD]
- ands r0, r3
- movs r1, 0x30
- b _0801756A
-_0801752C:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r4, 0xF
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0x70
- b _0801755A
-_08017544:
- mov r0, sp
- movs r1, 0
- strb r1, [r0, 0xA]
- strb r1, [r0, 0xB]
- mov r2, sp
- ldrb r1, [r2, 0xC]
- movs r4, 0xF
- movs r3, 0xF
- adds r0, r3, 0
- ands r0, r1
- movs r1, 0xE0
-_0801755A:
- orrs r0, r1
- strb r0, [r2, 0xC]
- mov r1, sp
- ldrb r0, [r1, 0xD]
- orrs r0, r4
- strb r0, [r1, 0xD]
- ands r0, r3
- movs r1, 0x90
-_0801756A:
- orrs r0, r1
- strb r0, [r2, 0xD]
-_0801756E:
- mov r0, sp
- movs r1, 0xFF
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_80173E0
-
- thumb_func_start sub_8017580
-sub_8017580: @ 8017580
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r1, 24
- lsrs r1, 24
- cmp r1, 0
- beq _080175D8
- ldr r2, =gUnknown_082F045C
- mov r8, r2
- movs r5, 0
- mov r9, r5
- movs r6, 0x4
- negs r6, r6
- mov r12, r6
- adds r2, r0, 0
- adds r2, 0x18
- adds r4, r0, 0
- movs r7, 0xFF
- mov r10, r7
- adds r3, r1, 0
-_080175AC:
- adds r1, r4, 0
- mov r0, r8
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- mov r0, r10
- strh r0, [r2]
- ldrb r1, [r2, 0x2]
- mov r0, r12
- ands r0, r1
- movs r1, 0x5
- negs r1, r1
- ands r0, r1
- strb r0, [r2, 0x2]
- mov r5, r9
- strb r5, [r2, 0x3]
- adds r2, 0x20
- adds r4, 0x20
- subs r3, 0x1
- cmp r3, 0
- bne _080175AC
-_080175D8:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8017580
-
- thumb_func_start sub_80175EC
-sub_80175EC: @ 80175EC
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- ldr r1, =gUnknown_082F045C
- mov r12, r1
- movs r5, 0x2
- negs r5, r5
- mov r8, r5
- adds r2, r0, 0
- adds r2, 0x18
- adds r3, r0, 0
- movs r4, 0x3
-_08017604:
- adds r1, r3, 0
- mov r0, r12
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldm r0!, {r5-r7}
- stm r1!, {r5-r7}
- ldrb r1, [r2]
- mov r0, r8
- ands r0, r1
- strb r0, [r2]
- adds r2, 0x1C
- adds r3, 0x1C
- subs r4, 0x1
- cmp r4, 0
- bge _08017604
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80175EC
-
- thumb_func_start sub_8017630
-sub_8017630: @ 8017630
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- movs r2, 0
- adds r4, r5, 0x2
- adds r3, r6, 0x2
-_0801763C:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08017664
- adds r2, 0x1
- cmp r2, 0x1
- ble _0801763C
- movs r2, 0
- adds r4, r5, 0
- adds r4, 0x10
- adds r3, r6, 0
- adds r3, 0x10
-_08017658:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- beq _08017668
-_08017664:
- movs r0, 0x1
- b _08017670
-_08017668:
- adds r2, 0x1
- cmp r2, 0x7
- ble _08017658
- movs r0, 0
-_08017670:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8017630
-
- thumb_func_start sub_8017678
-sub_8017678: @ 8017678
- push {r4-r6,lr}
- adds r5, r0, 0
- adds r6, r1, 0
- ldrb r3, [r5, 0xA]
- movs r0, 0x7F
- ldrb r2, [r6, 0xA]
- adds r1, r0, 0
- ands r1, r3
- ands r0, r2
- cmp r1, r0
- bne _080176DC
- movs r0, 0x80
- adds r1, r0, 0
- ands r1, r3
- ands r0, r2
- cmp r1, r0
- bne _080176DC
- movs r2, 0
- adds r4, r5, 0x4
- adds r3, r6, 0x4
-_080176A0:
- adds r0, r4, r2
- adds r1, r3, r2
- ldrb r0, [r0]
- ldrb r1, [r1]
- cmp r0, r1
- bne _080176DC
- adds r2, 0x1
- cmp r2, 0x3
- ble _080176A0
- ldrh r2, [r5, 0x8]
- ldr r0, =0x000003ff
- ldrh r3, [r6, 0x8]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _080176DC
- ldrb r2, [r5, 0x9]
- movs r0, 0xFC
- ldrb r3, [r6, 0x9]
- adds r1, r0, 0
- ands r1, r2
- ands r0, r3
- cmp r1, r0
- bne _080176DC
- movs r0, 0
- b _080176DE
- .pool
-_080176DC:
- movs r0, 0x1
-_080176DE:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8017678
-
- thumb_func_start sub_80176E4
-sub_80176E4: @ 80176E4
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- mov r8, r0
- movs r7, 0xFF
- movs r6, 0
- adds r4, r1, 0
- adds r4, 0x18
- adds r5, r1, 0
-_080176F6:
- ldrb r1, [r4]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0801771E
- mov r0, r8
- adds r1, r5, 0
- bl sub_8017630
- lsls r0, 24
- cmp r0, 0
- bne _0801771E
- lsls r0, r6, 24
- lsrs r7, r0, 24
- ldrb r0, [r4]
- movs r2, 0x2
- negs r2, r2
- adds r1, r2, 0
- ands r0, r1
- strb r0, [r4]
-_0801771E:
- adds r4, 0x1C
- adds r5, 0x1C
- adds r6, 0x1
- cmp r6, 0x3
- ble _080176F6
- adds r0, r7, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_80176E4
-
- thumb_func_start sub_8017734
-sub_8017734: @ 8017734
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r3, r0, 0
- mov r8, r1
- lsls r2, 24
- lsrs r6, r2, 24
- ldrb r1, [r1, 0x18]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _080177A8
- movs r5, 0
- cmp r5, r6
- bge _080177A8
- movs r0, 0x4
- negs r0, r0
- mov r9, r0
- movs r1, 0x2
- negs r1, r1
- mov r12, r1
- adds r2, r3, 0
- adds r2, 0x18
- adds r1, r3, 0
-_08017766:
- ldrb r0, [r2, 0x2]
- movs r3, 0x3
- ands r3, r0
- cmp r3, 0
- bne _0801779E
- mov r0, r8
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- ldm r0!, {r4,r6,r7}
- stm r1!, {r4,r6,r7}
- strh r3, [r2]
- ldrb r1, [r2, 0x2]
- mov r0, r9
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x2]
- movs r0, 0x40
- strb r0, [r2, 0x3]
- mov r0, r8
- ldrb r1, [r0, 0x18]
- mov r0, r12
- ands r0, r1
- mov r1, r8
- strb r0, [r1, 0x18]
- lsls r0, r5, 24
- lsrs r0, 24
- b _080177AA
-_0801779E:
- adds r2, 0x20
- adds r1, 0x20
- adds r5, 0x1
- cmp r5, r6
- blt _08017766
-_080177A8:
- movs r0, 0xFF
-_080177AA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8017734
-
- thumb_func_start sub_80177B8
-sub_80177B8: @ 80177B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r4, r1, 0
- adds r6, r3, 0
- ldr r3, [sp, 0x2C]
- ldr r1, [sp, 0x30]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r4, 24
- lsrs r4, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r9, r3
- lsls r1, 24
- lsrs r1, 24
- ldr r5, =gStringVar4
- adds r1, 0x1
- adds r0, r5, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_Colon
- adds r0, r5, 0
- bl StringAppend
- str r7, [sp]
- movs r0, 0
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80173E0
- adds r4, 0x12
- lsls r4, 24
- lsrs r4, 24
- ldrb r0, [r6, 0xA]
- lsls r0, 25
- lsrs r2, r0, 25
- ldrb r1, [r6, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _08017884
- movs r0, 0x40
- ands r2, r0
- cmp r2, 0
- bne _08017884
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8018404
- str r7, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0x1
- adds r2, r5, 0
- adds r3, r4, 0
- bl sub_80173E0
- ldrb r1, [r6, 0x2]
- ldrb r0, [r6, 0x3]
- lsls r0, 8
- orrs r1, r0
- add r0, sp, 0x8
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_UnkCtrlCodeF907
- adds r0, r5, 0
- bl StringCopy
- adds r0, r5, 0
- add r1, sp, 0x8
- bl StringAppend
- movs r0, 0x1
- adds r1, r5, 0
- movs r2, 0x88
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- str r7, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- mov r0, r8
- movs r1, 0x1
- adds r2, r5, 0
- bl sub_80173E0
-_08017884:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80177B8
-
- thumb_func_start sub_80178A0
-sub_80178A0: @ 80178A0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r5, r3, 0
- ldr r3, [sp, 0x2C]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r8, r2
- lsls r3, 24
- lsrs r7, r3, 24
- ldrb r1, [r5, 0x1A]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _0801792A
- ldr r4, =gStringVar4
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8018404
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- movs r1, 0x1
- adds r2, r4, 0
- adds r3, r6, 0
- bl sub_80173E0
- ldrb r1, [r5, 0x2]
- ldrb r0, [r5, 0x3]
- lsls r0, 8
- orrs r1, r0
- add r0, sp, 0x8
- movs r2, 0x2
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- ldr r1, =gText_UnkCtrlCodeF907
- adds r0, r4, 0
- bl StringCopy
- adds r0, r4, 0
- add r1, sp, 0x8
- bl StringAppend
- movs r0, 0x1
- adds r1, r4, 0
- movs r2, 0x68
- bl GetStringRightAlignXOffset
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r8
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r9
- movs r1, 0x1
- adds r2, r4, 0
- bl sub_80173E0
-_0801792A:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80178A0
-
- thumb_func_start sub_8017940
-sub_8017940: @ 8017940
- push {r4,lr}
- sub sp, 0x4
- mov r4, sp
- adds r4, 0x2
- mov r0, sp
- adds r1, r4, 0
- bl GetXYCoordsOneStepInFrontOfPlayer
- mov r0, sp
- movs r1, 0
- ldrsh r0, [r0, r1]
- cmp r0, 0x9
- bne _08017978
- movs r1, 0
- ldrsh r0, [r4, r1]
- cmp r0, 0x8
- bne _08017978
- ldr r0, =gPlayerAvatar
- ldrb r0, [r0, 0x3]
- cmp r0, 0x2
- beq _0801796E
- cmp r0, 0
- bne _08017978
-_0801796E:
- movs r0, 0x1
- b _0801797A
- .pool
-_08017978:
- movs r0, 0
-_0801797A:
- add sp, 0x4
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8017940
-
- thumb_func_start sub_8017984
-sub_8017984: @ 8017984
- push {lr}
- cmp r0, 0x4
- beq _0801799C
- cmp r0, 0x4
- ble _080179A4
- cmp r0, 0x5
- beq _08017998
- cmp r0, 0x8
- beq _080179A0
- b _080179A4
-_08017998:
- movs r0, 0x1
- b _080179A6
-_0801799C:
- movs r0, 0x2
- b _080179A6
-_080179A0:
- movs r0, 0x3
- b _080179A6
-_080179A4:
- movs r0, 0
-_080179A6:
- pop {r1}
- bx r1
- thumb_func_end sub_8017984
-
- thumb_func_start sub_80179AC
-sub_80179AC: @ 80179AC
- push {r4,lr}
- sub sp, 0x20
- adds r4, r0, 0
- mov r0, sp
- adds r1, r4, 0
- bl sub_8018404
- adds r4, 0x2
- adds r0, r4, 0
- bl ReadAsU16
- lsls r0, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_800E540
- add sp, 0x20
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80179AC
-
- thumb_func_start sub_80179D4
-sub_80179D4: @ 80179D4
- push {r4-r6,lr}
- adds r6, r3, 0
- lsls r1, 24
- lsrs r4, r1, 24
- lsls r2, 24
- lsrs r2, 19
- adds r5, r0, r2
- ldrb r1, [r5, 0xA]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08017A4C
- cmp r4, 0
- bne _08017A4C
- ldr r4, =gStringVar1
- adds r0, r4, 0
- adds r1, r5, 0
- bl sub_8018404
- adds r0, r5, 0x2
- bl ReadAsU16
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl sub_800E540
- adds r2, r0, 0
- ldrb r1, [r5, 0xA]
- movs r0, 0x7F
- ands r0, r1
- cmp r0, 0x45
- bne _08017A38
- ldr r0, =gStringVar4
- ldr r3, =gUnknown_082EE6B8
- lsls r1, r6, 2
- lsls r2, 3
- adds r1, r2
- adds r1, r3
- ldr r1, [r1]
- bl StringExpandPlaceholders
- movs r0, 0x2
- b _08017B2A
- .pool
-_08017A38:
- ldr r0, =gUnknown_082EE17C
- lsls r1, r2, 2
- adds r1, r0
- ldr r0, [r1]
- bl sub_8017020
- movs r0, 0x1
- b _08017B2A
- .pool
-_08017A4C:
- ldr r0, =gStringVar1
- adds r1, r5, 0
- bl sub_8018404
- cmp r4, 0
- beq _08017A62
- adds r0, r5, r4
- ldrb r0, [r0, 0x3]
- lsrs r6, r0, 3
- movs r0, 0x1
- ands r6, r0
-_08017A62:
- ldrb r0, [r5, 0xA]
- lsls r0, 25
- lsrs r0, 25
- movs r1, 0x3F
- ands r1, r0
- cmp r1, 0x4
- beq _08017AB0
- cmp r1, 0x4
- bgt _08017A80
- cmp r1, 0x1
- beq _08017A8A
- b _08017B20
- .pool
-_08017A80:
- cmp r1, 0x5
- beq _08017AD0
- cmp r1, 0x8
- beq _08017AF4
- b _08017B20
-_08017A8A:
- ldr r5, =gStringVar4
- ldr r4, =gUnknown_082EEEAC
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 14
- lsls r0, r6, 4
- adds r1, r0
- adds r1, r4
- ldr r1, [r1]
- b _08017B0E
- .pool
-_08017AB0:
- ldr r5, =gStringVar4
- ldr r4, =gUnknown_082EF1CC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- lsls r1, r6, 4
- b _08017B08
- .pool
-_08017AD0:
- ldr r5, =gStringVar4
- ldr r4, =gUnknown_082EF010
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- lsrs r1, 14
- lsls r0, r6, 4
- adds r1, r0
- adds r1, r4
- ldr r1, [r1]
- b _08017B0E
- .pool
-_08017AF4:
- ldr r5, =gStringVar4
- ldr r4, =gUnknown_082EF100
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- lsls r0, 2
- lsls r1, r6, 3
-_08017B08:
- adds r0, r1
- adds r0, r4
- ldr r1, [r0]
-_08017B0E:
- adds r0, r5, 0
- bl StringExpandPlaceholders
- b _08017B28
- .pool
-_08017B20:
- ldr r0, =gStringVar4
- ldr r1, =gUnknown_082EE6C8
- bl StringExpandPlaceholders
-_08017B28:
- movs r0, 0
-_08017B2A:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_80179D4
-
- thumb_func_start nullsub_14
-nullsub_14: @ 8017B38
- bx lr
- thumb_func_end nullsub_14
-
- thumb_func_start sub_8017B3C
-sub_8017B3C: @ 8017B3C
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r4, 24
- lsrs r4, 24
- ldrh r0, [r2, 0x8]
- lsls r0, 22
- lsrs r0, 22
- mov r8, r0
- ldrb r0, [r2, 0x9]
- lsrs r7, r0, 2
- ldrb r0, [r2, 0xB]
- lsrs r0, 1
- mov r9, r0
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x1
- adds r2, r3, 0
- movs r3, 0x8
- bl sub_80173E0
- movs r0, 0xCE
- lsls r0, 1
- cmp r8, r0
- bne _08017B94
- ldr r2, =gUnknown_082EF7D0
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0x44
- bl sub_80173E0
- b _08017BD4
- .pool
-_08017B94:
- adds r1, r7, 0x1
- adds r0, r6, 0
- movs r2, 0x44
- adds r3, r5, 0
- bl blit_move_info_icon
- movs r0, 0xB
- mov r2, r8
- muls r2, r0
- ldr r0, =gSpeciesNames
- adds r2, r0
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0x76
- bl sub_80173E0
- add r0, sp, 0x8
- mov r1, r9
- movs r2, 0x1
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- str r5, [sp]
- str r4, [sp, 0x4]
- adds r0, r6, 0
- movs r1, 0x1
- add r2, sp, 0x8
- movs r3, 0xC6
- bl sub_80173E0
-_08017BD4:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8017B3C
-
- thumb_func_start sub_8017BE8
-sub_8017BE8: @ 8017BE8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x10
- adds r4, r1, 0
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r2, 24
- lsrs r7, r2, 24
- ldr r0, =gUnknown_02022C30
- ldr r0, [r0]
- mov r8, r0
- movs r0, 0x3
- negs r0, r0
- cmp r4, r0
- bne _08017C6C
- ldr r0, =gUnknown_082F03A4
- ldrb r0, [r0, 0x14]
- lsls r0, 28
- lsrs r0, 28
- cmp r7, r0
- bne _08017C6C
- bl sub_800F7DC
- adds r2, r0, 0
- ldrh r1, [r2, 0x8]
- ldr r0, =0x000003ff
- ands r0, r1
- cmp r0, 0
- beq _08017CA0
- ldr r0, =gSaveBlock2Ptr
- ldr r3, [r0]
- movs r0, 0x5
- str r0, [sp]
- mov r0, r9
- adds r1, r7, 0
- bl sub_8017B3C
- b _08017CA0
- .pool
-_08017C4C:
- mov r0, r12
- adds r1, r0, r4
- add r0, sp, 0x4
- bl sub_8018404
- mov r0, r8
- ldr r2, [r0]
- adds r2, r4
- movs r0, 0x6
- str r0, [sp]
- mov r0, r9
- adds r1, r7, 0
- add r3, sp, 0x4
- bl sub_8017B3C
- b _08017CA0
-_08017C6C:
- movs r5, 0
- movs r1, 0
- mov r2, r8
- ldr r2, [r2]
- mov r12, r2
- adds r2, 0x8
- movs r3, 0
- adds r6, r4, 0x1
-_08017C7C:
- ldrb r0, [r2, 0x12]
- lsls r0, 30
- lsrs r0, 30
- adds r4, r3, 0
- cmp r0, 0x1
- bne _08017C92
- ldrh r0, [r2]
- lsls r0, 22
- cmp r0, 0
- beq _08017C92
- adds r5, 0x1
-_08017C92:
- cmp r5, r6
- beq _08017C4C
- adds r2, 0x20
- adds r3, 0x20
- adds r1, 0x1
- cmp r1, 0x7
- ble _08017C7C
-_08017CA0:
- add sp, 0x10
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8017BE8
-
- thumb_func_start sub_8017CB0
-sub_8017CB0: @ 8017CB0
- push {r4-r7,lr}
- movs r4, 0
- movs r3, 0
- movs r7, 0x3
- ldr r6, =0x000003ff
- adds r2, r0, 0
- adds r2, 0x8
- adds r5, r1, 0x1
-_08017CC0:
- ldrb r1, [r2, 0x12]
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0x1
- bne _08017CD6
- ldrh r1, [r2]
- adds r0, r6, 0
- ands r0, r1
- cmp r0, 0
- beq _08017CD6
- adds r4, 0x1
-_08017CD6:
- cmp r4, r5
- bne _08017CE4
- adds r0, r3, 0
- b _08017CF0
- .pool
-_08017CE4:
- adds r2, 0x20
- adds r3, 0x1
- cmp r3, 0x7
- ble _08017CC0
- movs r0, 0x1
- negs r0, r0
-_08017CF0:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8017CB0
-
- thumb_func_start sub_8017CF8
-sub_8017CF8: @ 8017CF8
- lsls r0, 5
- adds r0, r1
- ldrb r0, [r0, 0xB]
- lsls r0, 31
- lsrs r0, 31
- bx lr
- thumb_func_end sub_8017CF8
-
- thumb_func_start sub_8017D04
-sub_8017D04: @ 8017D04
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- bne _08017D44
- movs r4, 0
- b _08017D2E
-_08017D14:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _08017D74
- adds r4, 0x1
-_08017D2E:
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _08017D14
- movs r0, 0x2
- b _08017D90
- .pool
-_08017D44:
- movs r4, 0
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- bge _08017D8E
- ldr r6, =gBaseStats
-_08017D50:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r1, r0, r6
- ldrb r0, [r1, 0x6]
- cmp r0, r5
- beq _08017D74
- ldrb r0, [r1, 0x7]
- cmp r0, r5
- bne _08017D84
-_08017D74:
- movs r0, 0
- b _08017D90
- .pool
-_08017D84:
- adds r4, 0x1
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r4, r0
- blt _08017D50
-_08017D8E:
- movs r0, 0x1
-_08017D90:
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8017D04
-
- thumb_func_start sub_8017D9C
-sub_8017D9C: @ 8017D9C
- push {lr}
- adds r3, r0, 0
- cmp r1, 0x44
- beq _08017DD8
- cmp r1, 0x44
- bgt _08017DAE
- cmp r1, 0x41
- beq _08017DB8
- b _08017DF6
-_08017DAE:
- cmp r1, 0x45
- beq _08017DC8
- cmp r1, 0x48
- beq _08017DE8
- b _08017DF6
-_08017DB8:
- ldr r0, =gUnknown_082EEA68
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- b _08017DDA
- .pool
-_08017DC8:
- ldr r0, =gUnknown_082EED3C
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- b _08017DDA
- .pool
-_08017DD8:
- ldr r1, =gUnknown_082EF7B0
-_08017DDA:
- adds r0, r3, 0
- bl StringExpandPlaceholders
- b _08017DF6
- .pool
-_08017DE8:
- ldr r0, =gUnknown_082EEB08
- lsls r1, r2, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r3, 0
- bl StringExpandPlaceholders
-_08017DF6:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8017D9C
-
- thumb_func_start sub_8017E00
-sub_8017E00: @ 8017E00
- push {r4-r6,lr}
- adds r5, r0, 0
- lsls r1, 24
- lsrs r4, r1, 24
- adds r6, r4, 0
- bl GetMultiplayerId
- lsls r0, 24
- lsrs r3, r0, 24
- ldr r2, =gLinkPlayers
- movs r0, 0x1
- adds r1, r3, 0
- eors r1, r0
- lsls r0, r1, 3
- subs r0, r1
- lsls r0, 2
- adds r0, r2
- ldrb r0, [r0, 0x13]
- cmp r4, 0x44
- beq _08017E54
- cmp r4, 0x44
- bgt _08017E38
- cmp r4, 0x41
- beq _08017E3E
- b _08017E94
- .pool
-_08017E38:
- cmp r6, 0x45
- beq _08017E78
- b _08017E94
-_08017E3E:
- ldr r2, =gUnknown_082EE984
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- b _08017E66
- .pool
-_08017E54:
- ldr r2, =gUnknown_082EE984
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- adds r2, 0x8
-_08017E66:
- adds r1, r2
- ldr r1, [r1]
- adds r0, r5, 0
- bl StringCopy
- b _08017E94
- .pool
-_08017E78:
- ldr r2, =gUnknown_082EE984
- lsls r1, r0, 1
- adds r1, r0
- lsls r1, 2
- lsls r0, r3, 1
- adds r0, r3
- lsls r0, 3
- adds r1, r0
- adds r2, 0x4
- adds r1, r2
- ldr r1, [r1]
- adds r0, r5, 0
- bl StringCopy
-_08017E94:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8017E00
-
- thumb_func_start sub_8017EA0
-sub_8017EA0: @ 8017EA0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- movs r2, 0
- mov r8, r2
- ldrh r0, [r5]
- subs r0, 0x40
- cmp r0, 0x8
- bls _08017EBA
- b _08017FC6
-_08017EBA:
- lsls r0, 2
- ldr r1, =_08017EC8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08017EC8:
- .4byte _08017FBC
- .4byte _08017EEC
- .4byte _08017FC6
- .4byte _08017FC6
- .4byte _08017EFC
- .4byte _08017EF4
- .4byte _08017FC6
- .4byte _08017FC6
- .4byte _08017FAC
-_08017EEC:
- ldr r1, =gUnknown_082EE3DC
- b _08017FAE
- .pool
-_08017EF4:
- ldr r1, =gUnknown_082EE430
- b _08017FAE
- .pool
-_08017EFC:
- adds r0, r6, 0
- adds r0, 0x58
- ldr r4, =gUnknown_02022C40
- ldrh r1, [r4, 0xC]
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- adds r0, 0x68
- ldrh r2, [r4, 0xA]
- movs r1, 0xB
- muls r1, r2
- ldr r2, =gSpeciesNames
- adds r1, r2
- bl StringCopy
- movs r4, 0
- b _08017F2E
- .pool
-_08017F2C:
- adds r4, 0x1
-_08017F2E:
- cmp r4, 0x3
- bgt _08017F64
- ldr r0, =gUnknown_03007890
- ldr r0, [r0]
- lsls r1, r4, 5
- adds r0, r1
- ldrh r0, [r0, 0x18]
- cmp r0, 0x2
- bne _08017F2C
- ldrh r1, [r5, 0x4]
- adds r0, r6, 0
- adds r0, 0x78
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldrh r1, [r5, 0x2]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r6, 0
- adds r0, 0x88
- bl StringCopy
- ldrh r5, [r5, 0x2]
- mov r8, r5
-_08017F64:
- movs r0, 0xCE
- lsls r0, 1
- cmp r8, r0
- bne _08017F84
- ldr r1, =gUnknown_082EE4F0
- adds r0, r7, 0
- bl StringCopy
- b _08017FB4
- .pool
-_08017F84:
- movs r4, 0
- adds r5, r6, 0
- adds r5, 0x58
-_08017F8A:
- lsls r0, r4, 24
- lsrs r0, 24
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- adds r5, 0x10
- adds r4, 0x1
- cmp r4, 0x3
- ble _08017F8A
- ldr r1, =gUnknown_082EE47C
- adds r0, r7, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- b _08017FB4
- .pool
-_08017FAC:
- ldr r1, =gUnknown_082EE380
-_08017FAE:
- adds r0, r7, 0
- bl StringExpandPlaceholders
-_08017FB4:
- movs r2, 0x1
- b _08017FC6
- .pool
-_08017FBC:
- ldr r1, =gUnknown_082EE544
- adds r0, r7, 0
- bl StringExpandPlaceholders
- movs r2, 0x2
-_08017FC6:
- adds r0, r2, 0
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8017EA0
-
- thumb_func_start sub_8017FD8
-sub_8017FD8: @ 8017FD8
- push {lr}
- adds r2, r0, 0
- ldr r0, =gRecvCmds
- ldrh r1, [r0, 0x2]
- cmp r1, 0
- beq _08017FFC
- cmp r1, 0x51
- beq _08017FEC
- cmp r1, 0x52
- bne _08017FFC
-_08017FEC:
- adds r0, r2, 0
- adds r0, 0x98
- strh r1, [r0]
- movs r0, 0x1
- b _08017FFE
- .pool
-_08017FFC:
- movs r0, 0
-_08017FFE:
- pop {r1}
- bx r1
- thumb_func_end sub_8017FD8
-
- thumb_func_start InUnionRoom
-InUnionRoom: @ 8018004
- push {lr}
- movs r2, 0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldr r0, =0x00003c19
- cmp r1, r0
- bne _08018016
- movs r2, 0x1
-_08018016:
- adds r0, r2, 0
- pop {r1}
- bx r1
- .pool
- thumb_func_end InUnionRoom
-
- thumb_func_start sub_8018024
-sub_8018024: @ 8018024
- push {r4-r6,lr}
- movs r6, 0
- movs r5, 0
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r6, r0
- bge _08018064
-_08018032:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- cmp r0, 0x1E
- bhi _0801805A
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- movs r1, 0xCE
- lsls r1, 1
- cmp r0, r1
- beq _0801805A
- adds r6, 0x1
-_0801805A:
- adds r5, 0x1
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _08018032
-_08018064:
- cmp r6, 0x1
- bgt _08018074
- movs r0, 0
- b _08018076
- .pool
-_08018074:
- movs r0, 0x1
-_08018076:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8018024
-
- thumb_func_start sub_801807C
-sub_801807C: @ 801807C
- movs r1, 0
- strh r1, [r0]
- strh r1, [r0, 0x2]
- str r1, [r0, 0x4]
- strh r1, [r0, 0xA]
- strh r1, [r0, 0xC]
- strh r1, [r0, 0xE]
- strh r1, [r0, 0x10]
- str r1, [r0, 0x14]
- bx lr
- thumb_func_end sub_801807C
-
- thumb_func_start sub_8018090
-sub_8018090: @ 8018090
- push {lr}
- ldr r0, =gUnknown_02022C40
- bl sub_801807C
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8018090
-
- thumb_func_start sub_80180A0
-sub_80180A0: @ 80180A0
- push {r4,r5,lr}
- adds r5, r1, 0
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- strh r0, [r5, 0xA]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strh r0, [r5, 0xC]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x4]
- ldrh r1, [r5, 0xA]
- movs r0, 0xCE
- lsls r0, 1
- cmp r1, r0
- beq _080180E0
- movs r0, 0
- b _080180E2
- .pool
-_080180E0:
- movs r0, 0x1
-_080180E2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80180A0
-
- thumb_func_start sub_80180E8
-sub_80180E8: @ 80180E8
- push {r4,r5,lr}
- adds r5, r1, 0
- movs r1, 0x64
- adds r4, r0, 0
- muls r4, r1
- ldr r0, =gPlayerParty
- adds r4, r0
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- strh r0, [r5, 0xE]
- adds r0, r4, 0
- movs r1, 0x38
- bl GetMonData
- strh r0, [r5, 0x10]
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- str r0, [r5, 0x14]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80180E8
-
- thumb_func_start sub_8018120
-sub_8018120: @ 8018120
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r1, 24
- movs r2, 0
- mov r8, r2
- cmp r1, 0
- bne _0801813E
- ldrh r7, [r0, 0xA]
- ldr r6, [r0, 0x4]
- b _08018142
-_08018136:
- lsls r0, r5, 16
- lsrs r0, 16
- mov r8, r0
- b _08018176
-_0801813E:
- ldrh r7, [r0, 0xE]
- ldr r6, [r0, 0x14]
-_08018142:
- movs r5, 0
- b _0801816E
-_08018146:
- movs r0, 0x64
- adds r1, r5, 0
- muls r1, r0
- ldr r0, =gPlayerParty
- adds r4, r1, r0
- adds r0, r4, 0
- movs r1, 0
- bl GetMonData
- cmp r0, r6
- bne _0801816C
- adds r0, r4, 0
- movs r1, 0x41
- bl GetMonData
- lsls r0, 16
- lsrs r0, 16
- cmp r0, r7
- beq _08018136
-_0801816C:
- adds r5, 0x1
-_0801816E:
- ldr r0, =gPlayerPartyCount
- ldrb r0, [r0]
- cmp r5, r0
- blt _08018146
-_08018176:
- mov r0, r8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8018120
-
- thumb_func_start sub_801818C
-sub_801818C: @ 801818C
- push {r4,lr}
- adds r4, r0, 0
- bl sub_80173B0
- bl ScriptContext2_Disable
- bl sub_8098524
- ldr r1, =gUnknown_02022C2C
- movs r0, 0
- strb r0, [r1]
- cmp r4, 0
- beq _080181BC
- ldr r2, =gUnknown_02022C40
- ldrh r0, [r2, 0x2]
- ldrh r1, [r2, 0xA]
- ldrh r2, [r2, 0xC]
- bl sub_8010FCC
- movs r0, 0x40
- movs r1, 0
- movs r2, 0
- bl sub_8011090
-_080181BC:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_801818C
-
- thumb_func_start sub_80181CC
-sub_80181CC: @ 80181CC
- push {lr}
- bl ScriptContext2_Enable
- bl ScriptFreezeEventObjects
- pop {r0}
- bx r0
- thumb_func_end sub_80181CC
-
- thumb_func_start sub_80181DC
-sub_80181DC: @ 80181DC
- push {r4,lr}
- movs r3, 0x80
- movs r2, 0
- ldr r4, [r0, 0xC]
-_080181E4:
- lsls r0, r2, 3
- subs r0, r2
- lsls r0, 2
- adds r1, r4, r0
- ldrb r0, [r1, 0x18]
- lsls r0, 31
- cmp r0, 0
- beq _0801820C
- ldrb r0, [r1, 0xB]
- lsls r0, 31
- lsrs r0, 31
- lsls r0, 3
- orrs r3, r0
- ldrb r1, [r1, 0x2]
- movs r0, 0x7
- ands r0, r1
- orrs r3, r0
- lsls r0, r3, 24
- lsrs r3, r0, 24
- b _08018216
-_0801820C:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x3
- bls _080181E4
-_08018216:
- adds r0, r3, 0
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_80181DC
-
- thumb_func_start sub_8018220
-sub_8018220: @ 8018220
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x4
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- str r2, [sp]
- bl GetMultiplayerId
- movs r1, 0x1
- eors r0, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x64
- muls r1, r0
- ldr r0, =gTrainerCards
- adds r1, r0
- mov r8, r1
- bl DynamicPlaceholderTextUtil_Reset
- mov r6, r9
- adds r6, 0xC0
- bl sub_8068BB0
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xD
- muls r1, r0
- ldr r0, =gTrainerClassNames
- adds r1, r0
- adds r0, r6, 0
- bl StringCopy
- movs r0, 0
- adds r1, r6, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r1, r8
- adds r1, 0x30
- movs r0, 0x1
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r4, 0xBA
- lsls r4, 1
- add r4, r9
- ldr r1, =gUnknown_082EFF50
- mov r2, r8
- ldrb r0, [r2, 0x1]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r4, 0
- bl StringCopy
- movs r0, 0x2
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r5, r9
- adds r5, 0xDE
- mov r0, r8
- ldrh r1, [r0, 0xC]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- movs r0, 0x3
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r2, 0xED
- add r2, r9
- mov r10, r2
- mov r0, r8
- ldrh r1, [r0, 0x10]
- mov r0, r10
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r4, r9
- adds r4, 0xFC
- mov r2, r8
- ldrh r1, [r2, 0x12]
- adds r0, r4, 0
- movs r2, 0x2
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- movs r0, 0x4
- mov r1, r10
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r0, 0x5
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r4, 0xD2
- lsls r4, 1
- add r4, r9
- ldr r1, =gUnknown_082EFF64
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- ldr r0, =gStringVar4
- adds r1, r4, 0
- bl StringCopy
- mov r0, r8
- ldrh r1, [r0, 0x14]
- ldr r4, =0x0000270f
- cmp r1, r4
- ble _0801830C
- adds r1, r4, 0
-_0801830C:
- adds r0, r6, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r0, 0
- adds r1, r6, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r2, r8
- ldrh r1, [r2, 0x16]
- cmp r1, r4
- ble _08018328
- adds r1, r4, 0
-_08018328:
- mov r4, r9
- adds r4, 0xCF
- adds r0, r4, 0
- movs r2, 0
- movs r3, 0x4
- bl ConvertIntToDecimalStringN
- movs r0, 0x2
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- mov r0, r8
- ldrh r1, [r0, 0x20]
- adds r0, r5, 0
- movs r2, 0
- movs r3, 0x5
- bl ConvertIntToDecimalStringN
- movs r0, 0x3
- adds r1, r5, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r7, 0
- movs r6, 0x80
- lsls r6, 19
- mov r5, r8
- adds r5, 0x28
- mov r4, r10
-_08018360:
- ldrh r1, [r5]
- adds r0, r4, 0
- bl CopyEasyChatWord
- lsrs r0, r6, 24
- adds r1, r4, 0
- bl DynamicPlaceholderTextUtil_SetPlaceholderPtr
- movs r2, 0x80
- lsls r2, 17
- adds r6, r2
- adds r5, 0x2
- adds r4, 0xF
- adds r7, 0x1
- cmp r7, 0x3
- ble _08018360
- movs r4, 0xD2
- lsls r4, 1
- add r4, r9
- ldr r1, =gUnknown_082EFFA4
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- ldr r5, =gStringVar4
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- ldr r0, [sp]
- cmp r0, 0x1
- bne _080183D0
- ldr r1, =gUnknown_082F0020
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
- b _080183F0
- .pool
-_080183D0:
- ldr r2, [sp]
- cmp r2, 0
- bne _080183F0
- ldr r0, =gUnknown_082F0018
- mov r2, r8
- ldrb r1, [r2]
- lsls r1, 2
- adds r1, r0
- ldr r1, [r1]
- adds r0, r4, 0
- bl DynamicPlaceholderTextUtil_ExpandPlaceholders
- adds r0, r5, 0
- adds r1, r4, 0
- bl StringAppend
-_080183F0:
- 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 sub_8018220
-
- thumb_func_start sub_8018404
-sub_8018404: @ 8018404
- push {r4,r5,lr}
- adds r5, r0, 0
- adds r4, r1, 0
- adds r1, 0x10
- bl StringCopy7
- ldrb r1, [r4]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r5, 0
- bl ConvertInternationalString
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_8018404
-
thumb_func_start sub_8018424
sub_8018424: @ 8018424
push {lr}
diff --git a/data/union_room.s b/data/union_room.s
index 3213301fb..6934f0fd8 100755
--- a/data/union_room.s
+++ b/data/union_room.s
@@ -4,1568 +4,6 @@
.section .rodata
.align 2
-
-gUnknown_082ED82C:: @ 82ED82C
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
-
-gUnknown_082ED84B:: @ 82ED84B
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x00
-
-gUnknown_082ED85B:: @ 82ED85B
- .byte 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20, 0x20
- .byte 0x00, 0x20, 0x00, 0x2a, 0x00
-
-gUnknown_082ED868:: @ 82ED868
- .asciz "NOWSLOT"
-
- .asciz " "
-
- .asciz "CLOCK DRIFT"
-
- .asciz "BUSY SEND "
-
- .asciz "CMD REJECT "
-
- .asciz "CLOCK SLAVE"
-
- .ascii "CHILD "
-
- .align 2
- .ascii "PARENT"
-
- .align 2
- .ascii "SEARCH"
-
- .align 2
-gText_EmptyString:: @ 82ED8C4
- .string "$"
-
- .align 2
-gText_Colon:: @ 82ED8C8
- .string ":$"
-
- .align 2
-gText_UnkCtrlCodeF907:: @ 82ED8CC
- .string "{ID}$"
-
- .align 2
-gText_PleaseStartOver:: @ 82ED8D0
- .string "Please start over from the beginning.$"
-
- .align 2
-gText_WirelessSearchCanceled:: @ 82ED8F8
- .string "The WIRELESS COMMUNICATION\nSYSTEM search has been canceled.$"
-
- .align 2
- .string "Awaiting communication\nfrom another player.$"
-
- .align 2
-gText_AwaitingCommunication:: @ 82ED960
- .string "{STR_VAR_1}! Awaiting\ncommunication from another player.$"
-
-gText_AwaitingLink:: @ 82ED990
- .string "{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready.$"
-
- .align 2
-gJPText_SingleBattle:: @ 82ED9C8
- .string "シングルバトルを かいさいする$" @ "shingurubatoruwo kaisaisuru" ("hold a single battle" in Japanese)
-
- .align 2
-gJPText_DoubleBattle:: @ 82ED9D8
- .string "ダブルバトルを かいさいする$" @ "daburubatoruwo kaisaisuru" ("hold a double battle" in Japanese)
-
- .align 2
-gJPText_MultiBattle:: @ 82ED9E8
- .string "マルチバトルを かいさいする$" @ "maruchibatoruwo kaisaisuru" ("hold a multi battle" in Japanese)
-
- .align 2
-gJPText_TradePokemon:: @ 82ED9F8
- .string "ポケモンこうかんを かいさいする$" @ "pokemonkoukanwo kaisaisuru" ("trade Pokémon" in Japanese)
-
- .align 2
-gJPText_Chat:: @ 82EDA0C
- .string "チャットを かいさいする$" @ "chattowo kaisaisuru" ("chat" in Japanese)
-
- .align 2
-gJPText_DistWonderCard:: @ 82EDA1C
- .string "ふしぎなカードをくばる$" @ "fushiginakaadowokubaru" ("distribute Wonder Card" in Japanese)
-
- .align 2
-gJPText_DistWonderNews:: @ 82EDA28
- .string "ふしぎなニュースをくばる$" @ "fushiginanyuusuwokubaru" ("distribute Wonder News" in Japanese)
-
- .align 2
- .string "ふしぎなできごとを かいさいする$" @ "fushiginadekigotowo kaisaisuru" ("hold a session of Mystery Event" in Japanese)
-
- .align 2
-gJPText_HoldPokemonJump:: @ 82EDA4C
- .string "なわとびを かいさいする$" @ "nawatobiwo kaisaisuru" ("hold a session of Jump" in Japanese)
-
- .align 2
-gJPText_HoldBerryCrush:: @ 82EDA5C
- .string "きのみマッシャーを かいさいする$" @ "kinomimassha-wo kaisaisuru" ("hold a session of Berry Masher" in Japanese)
-
- .align 2
-gJPText_HoldBerryPicking:: @ 82EDA70
- .string "きのみどりを かいさいする$" @ "kinomidoriwo kaisaisuru" ("hold a session of Berry Picking" in Japanese)
-
- .align 2
-gJPText_HoldSpinTrade:: @ 82EDA80
- .string "ぐるぐるこうかんを かいさいする$" @ "gurugurukoukanwo kaisaisuru" ("hold a session of Spin Trade" in Japanese)
-
- .align 2
-gJPText_HoldSpinShop:: @ 82EDA94
- .string "ぐるぐるショップを かいさいする$" @ "gurugurushoppuwo kaisaisuru" ("hold a session of Spin Shop" in Japanese)
-
- .align 2
- .4byte gJPText_SingleBattle
- .4byte gJPText_DoubleBattle
- .4byte gJPText_MultiBattle
- .4byte gJPText_TradePokemon
- .4byte gJPText_Chat
- .4byte gJPText_DistWonderCard
- .4byte gJPText_DistWonderNews
- .4byte gJPText_DistWonderCard
- .4byte gJPText_HoldPokemonJump
- .4byte gJPText_HoldBerryCrush
- .4byte gJPText_HoldBerryPicking
- .4byte gJPText_HoldBerryPicking
- .4byte gJPText_HoldSpinTrade
- .4byte gJPText_HoldSpinShop
-
-gText_1PlayerNeeded:: @ 82EDAE0
- .string "1 player\nneeded.$"
-
-gText_2PlayersNeeded:: @ 82EDAF1
- .string "2 players\nneeded.$"
-
-gText_3PlayersNeeded:: @ 82EDB03
- .string "3 players\nneeded.$"
-
-gText_4PlayersNeeded:: @ 82EDB15
- .string "4 players\nneeded.$"
-
-gText_2PlayerMode:: @ 82EDB27
- .string "2-PLAYER\nMODE$"
-
-gText_3PlayerMode:: @ 82EDB35
- .string "3-PLAYER\nMODE$"
-
-gText_4PlayerMode:: @ 82EDB43
- .string "4-PLAYER\nMODE$"
-
-gText_5PlayerMode:: @ 82EDB51
- .string "5-PLAYER\nMODE$"
-
- .align 2
-gUnknown_082EDB60:: @ 82EDB60
- .4byte gText_1PlayerNeeded
- .4byte gText_2PlayerMode
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gText_3PlayersNeeded
- .4byte gText_2PlayersNeeded
- .4byte gText_1PlayerNeeded
- .4byte gText_4PlayerMode
- .4byte NULL
- .4byte gText_1PlayerNeeded
- .4byte gText_2PlayerMode
- .4byte gText_3PlayerMode
- .4byte gText_4PlayerMode
- .4byte gText_5PlayerMode
- .4byte gText_2PlayersNeeded
- .4byte gText_1PlayerNeeded
- .4byte gText_3PlayerMode
- .4byte gText_4PlayerMode
- .4byte gText_5PlayerMode
- .4byte gText_1PlayerNeeded
- .4byte gText_2PlayerMode
- .4byte gText_3PlayerMode
- .4byte gText_4PlayerMode
- .4byte NULL
-
- .align 2
-gUnknown_082EDBC4:: @ 82EDBC4
- .string "{B_BUTTON}CANCEL$"
-
- .align 2
- .string "ため\nさんかしゃ ぼしゅうちゅう です!$" @ "tame\nsankasha boshuuchuu desu!"
-
- .align 2
-gUnknown_082EDBE8:: @ 82EDBE8
- .string "{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?$"
-
- .align 2
-gUnknown_082EDC0C:: @ 82EDC0C
- .string "{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?$"
-
- .align 2
-gUnknown_082EDC34:: @ 82EDC34
- .string "{STR_VAR_2} contacted you.\nAdd to the members?$"
-
- .align 2
-gUnknown_082EDC5C:: @ 82EDC5C
- .string "{STR_VAR_1}!\nAre these members OK?$"
-
- .align 2
-gUnknown_082EDC78:: @ 82EDC78
- .string "Cancel {STR_VAR_1} MODE\nwith these members?$"
-
- .align 2
-gUnknown_082EDC9C:: @ 82EDC9C
- .string "An “OK” was sent\nto {STR_VAR_1}.$"
-
- .align 2
-gUnknown_082EDCB4:: @ 82EDCB4
- .string "The other TRAINER doesn't appear\nto be available now…\p$"
-
- .align 2
-gUnknown_082EDCEC:: @ 82EDCEC
- .string "You can't transmit with a TRAINER\nwho is too far away.\p$"
-
- .align 2
-gUnknown_082EDD24:: @ 82EDD24
- .string "The other TRAINER(S) is/are not\nready yet.\p$"
-
- .align 2
-gUnknown_082EDD50:: @ 82EDD50
- .4byte gUnknown_082EDCEC
- .4byte gUnknown_082EDD24
-
- .align 2
-gUnknown_082EDD58:: @ 82EDD58
- .string "The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EDD8C:: @ 82EDD8C
- .string "There is a member who can no\nlonger remain available.\p$"
-
- .align 2
-gUnknown_082EDDC4:: @ 82EDDC4
- .4byte gUnknown_082EDCB4
- .4byte gUnknown_082EDD8C
-
- .align 2
-gUnknown_082EDDCC:: @ 82EDDCC
- .string "The other TRAINER appears\nunavailable…\p$"
-
- .align 2
-gUnknown_082EDDF4:: @ 82EDDF4
- .string "{STR_VAR_1} sent back an “OK”!$"
-
- .align 2
-gUnknown_082EDE0C:: @ 82EDE0C
- .string "{STR_VAR_1} OK'd your registration as\na member.$"
-
- .align 2
-gUnknown_082EDE34:: @ 82EDE34
- .string "{STR_VAR_1} replied, “No…”\p$"
-
- .align 2
-gUnknown_082EDE48:: @ 82EDE48
- .string "{STR_VAR_1}!\nAwaiting other members!$"
-
- .align 2
-gUnknown_082EDE64:: @ 82EDE64
- .string "Quit being a member?$"
-
- .align 2
-gUnknown_082EDE7C:: @ 82EDE7C
- .string "You stopped being a member.\p$"
-
- .align 2
-gUnknown_082EDE9C:: @ 82EDE9C
- .4byte NULL
- .4byte gUnknown_082EDD8C
- .4byte gUnknown_082EDDCC
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_082EDE34
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_082EDE7C
-
- .align 2
-gUnknown_082EDEC4:: @ 82EDEC4
- .string "The WIRELESS COMMUNICATION\nSYSTEM link has been established.$"
-
- .align 2
-gUnknown_082EDF04:: @ 82EDF04
- .string "The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…$"
-
- .align 2
-gUnknown_082EDF40:: @ 82EDF40
- .string "The link with your friend has been\ndropped…$"
-
- .align 2
-gUnknown_082EDF6C:: @ 82EDF6C
- .string "{STR_VAR_1} replied, “No…”$"
-
- .align 2
-gUnknown_082EDF80:: @ 82EDF80
- .4byte NULL
- .4byte gUnknown_082EDF40
- .4byte gUnknown_082EDF40
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_082EDF6C
- .4byte NULL
- .4byte NULL
- .4byte NULL
-
- .align 2
-gUnknown_082EDFA8:: @ 82EDF80
- .string "Do you want the {STR_VAR_2}\nMODE?$"
-
- .align 2
-gUnknown_082EDFC4:: @ 82EDFC4
- .string "Do you want the {STR_VAR_2}\nMODE?$"
-
- .align 2
- .4byte gUnknown_082EDFA8
- .4byte gUnknown_082EDFC4
-
- .align 2
- .string "Communicating…\nPlease wait.$"
-
- .align 2
-gUnknown_082EE004:: @ 82EE004
- .string "Awaiting {STR_VAR_1}'s response about\nthe trade…$"
-
- .align 2
-gUnknown_082EE02C:: @ 82EE02C
- .string "Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_082EE098:: @ 82EE098
- .string "Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_082EE104:: @ 82EE104
- .string "Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.$"
-
- .align 2
-gUnknown_082EE17C:: @ 82EE17C
- .4byte gUnknown_082EE02C
- .4byte gUnknown_082EE098
- .4byte gUnknown_082EE104
-
- .align 2
-gUnknown_082EE188:: @ 82EE188
- .string "Hiya! Is there something that you\nwanted to do?$"
-
- .align 2
-gUnknown_082EE1B8:: @ 82EE1B8
- .string "Hello!\nWould you like to do something?$"
-
- .align 2
-gUnknown_082EE1E0:: @ 82EE1E0
- .string "{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?$"
-
- .align 2
-gUnknown_082EE218:: @ 82EE218
- .string "{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?$"
-
- .align 2
-gUnknown_082EE24C:: @ 82EE24C
- .4byte gUnknown_082EE188
- .4byte gUnknown_082EE1B8
- .4byte gUnknown_082EE1E0
- .4byte gUnknown_082EE218
-
- .align 2
-gUnknown_082EE25C:: @ 82EE25C
- .string "Want to do something?$"
-
- .align 2
-gUnknown_082EE274:: @ 82EE274
- .string "Would you like to do something?$"
-
- .align 2
-gUnknown_082EE294:: @ 82EE294
- .string "{STR_VAR_1}: What would you like to\ndo now?$"
-
- .align 2
- .string "{STR_VAR_1}: Want to do anything else?$"
-
- .align 2
- .4byte gUnknown_082EE25C
- .4byte gUnknown_082EE274
- .4byte gUnknown_082EE294
- .4byte gUnknown_082EE294
-
- .align 2
-gUnknown_082EE2E8:: @ 82EE2E8
- .string "Somebody has contacted you.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE308:: @ 82EE308
- .string "{STR_VAR_1} has contacted you.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE324:: @ 82EE324
- .4byte gUnknown_082EE2E8
- .4byte gUnknown_082EE308
-
- .align 2
-gUnknown_082EE32C:: @ 82EE32C
- .string "Awaiting a response from\nthe other TRAINER…$"
-
- .align 2
-gUnknown_082EE358:: @ 82EE358
- .string "Awaiting a response from\n{STR_VAR_1}…$"
-
- .align 2
-gUnknown_082EE378:: @ 82EE378
- .4byte gUnknown_082EE32C
- .4byte gUnknown_082EE358
-
- .align 2
-gUnknown_082EE380:: @ 82EE380
- .string "The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?$"
-
- .align 2
-gUnknown_082EE3DC:: @ 82EE3DC
- .string "The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?$"
-
- .align 2
-gUnknown_082EE430:: @ 82EE430
- .string "The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?$"
-
- .align 2
-gUnknown_082EE47C:: @ 82EE47C
- .string "There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?$"
-
- .align 2
-gUnknown_082EE4F0:: @ 82EE4F0
- .string "There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?$"
-
- .align 2
-gUnknown_082EE544:: @ 82EE544
- .string "The chat has been dropped.\p$"
-
- .align 2
-gUnknown_082EE560:: @ 82EE560
- .string "You declined the offer.\p$"
-
- .align 2
-gUnknown_082EE57C:: @ 82EE57C
- .string "You declined the offer.\p$"
-
- .align 2
-gUnknown_082EE598:: @ 82EE598
- .string "The chat was ended.\p$"
-
- .align 2
- .4byte gUnknown_082EE380
- .4byte gUnknown_082EE3DC
- .4byte gUnknown_082EE430
- .4byte gUnknown_082EE47C
-
- .align 2
-gUnknown_082EE5C0:: @ 82EE5C0
- .string "Oh, hey! We're in a chat right now.\nWant to join us?$"
-
- .align 2
-gUnknown_082EE5F8:: @ 82EE5F8
- .string "{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?$"
-
- .align 2
-gUnknown_082EE638:: @ 82EE638
- .string "Oh, hi! We're having a chat now.\nWould you like to join us?$"
-
- .align 2
-gUnknown_082EE674:: @ 82EE674
- .string "{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?$"
-
- .align 2
-gUnknown_082EE6B8:: @ 82EE6B8
- .4byte gUnknown_082EE5C0
- .4byte gUnknown_082EE638
- .4byte gUnknown_082EE5F8
- .4byte gUnknown_082EE674
-
- .align 2
-gUnknown_082EE6C8:: @ 82EE6C8
- .string "……\nThe TRAINER appears to be busy…\p$"
-
- .align 2
-gUnknown_082EE6EC:: @ 82EE6EC
- .string "A battle, huh?\nAll right, just give me some time.$"
-
- .align 2
-gUnknown_082EE720:: @ 82EE720
- .string "You want to chat, huh?\nSure, just wait a little.$"
-
- .align 2
-gUnknown_082EE754:: @ 82EE754
- .string "Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.$"
-
- .align 2
-gUnknown_082EE78C:: @ 82EE78C
- .string "A battle? Of course, but I need\ntime to get ready.$"
-
- .align 2
-gUnknown_082EE7C0:: @ 82EE7C0
- .string "Did you want to chat?\nOkay, but please wait a moment.$"
-
- .align 2
-gUnknown_082EE7F8:: @ 82EE7F8
- .string "As my introduction, I'll show you\nmy TRAINER CARD.$"
-
- .align 2
-gUnknown_082EE82C:: @ 82EE82C
- .4byte gUnknown_082EE6EC
- .4byte gUnknown_082EE720
- .4byte NULL
- .4byte gUnknown_082EE754
- .4byte gUnknown_082EE78C
- .4byte gUnknown_082EE7C0
- .4byte NULL
- .4byte gUnknown_082EE7F8
-
- .align 2
- .string "You want to chat, huh?\nSure, just wait a little.$"
-
- .align 2
-gUnknown_082EE880:: @ 82EE880
- .string "Thanks for waiting!\nLet's get our battle started!{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE8B8:: @ 82EE880
- .string "All right!\nLet's chat!{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE8D4:: @ 82EE8D4
- .string "Sorry I made you wait!\nLet's get started!{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE904:: @ 82EE904
- .string "Sorry I made you wait!\nLet's chat.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE92C:: @ 82EE92C
- .string "The trade will be started.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE94C:: @ 82EE94C
- .string "The battle will be started.{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE96C:: @ 82EE96C
- .string "Entering the chat…{PAUSE 60}$"
-
- .align 2
-gUnknown_082EE984:: @ 82EE984
- .4byte gUnknown_082EE94C
- .4byte gUnknown_082EE96C
- .4byte gUnknown_082EE92C
- .4byte gUnknown_082EE94C
- .4byte gUnknown_082EE96C
- .4byte gUnknown_082EE92C
- .4byte gUnknown_082EE880
- .4byte gUnknown_082EE8B8
- .4byte gUnknown_082EE92C
- .4byte gUnknown_082EE8D4
- .4byte gUnknown_082EE904
- .4byte gUnknown_082EE92C
-
- .align 2
-gUnknown_082EE9B4:: @ 82EE9B4
- .string "Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p$"
-
- .align 2
-gUnknown_082EEA14:: @ 82EEA14
- .string "I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p$"
-
- .align 2
-gUnknown_082EEA68:: @ 82EEA68
- .4byte gUnknown_082EE9B4
- .4byte gUnknown_082EEA14
-
- .align 2
-gUnknown_082EEA70:: @ 82EEA70
- .string "Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p$"
-
- .align 2
-gUnknown_082EEAC0:: @ 82EEAC0
- .string "Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p$"
-
- .align 2
-gUnknown_082EEB08:: @ 82EEB08
- .4byte gUnknown_082EEA70
- .4byte gUnknown_082EEAC0
-
- .align 2
-gUnknown_082EEB10:: @ 82EEB10
- .string "If you want to do something with\nme, just give me a shout!\p$"
-
- .align 2
-gUnknown_082EEB4C:: @ 82EEB4C
- .string "If you want to do something with\nme, don't be shy.\p$"
-
- .align 2
-gUnknown_082EEB80:: @ 82EEB80
- .4byte gUnknown_082EEB10
- .4byte gUnknown_082EEB4C
-
- .align 2
-gUnknown_082EEB88:: @ 82EEB88
- .string "Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p$"
-
- .align 2
-gUnknown_082EEBD0:: @ 82EEBD0
- .string "If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p$"
-
- .align 2
-gUnknown_082EEC14:: @ 82EEC14
- .string "For a battle, you need two\nPOKéMON that are below Lv. 30.\p$"
-
- .align 2
-gUnknown_082EEC50:: @ 82EEC50
- .string "Oh, all right.\nCome see me anytime, okay?\p$"
-
- .align 2
-gUnknown_082EEC7C:: @ 82EEC7C
- .string "Oh…\nPlease come by anytime.\p$"
-
- .align 2
-gUnknown_082EEC9C:: @ 82EEC9C
- .4byte gUnknown_082EEC50
- .4byte gUnknown_082EEC7C
-
- .align 2
-gUnknown_082EECA4:: @ 82EECA4
- .string "Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p$"
-
- .align 2
-gUnknown_082EECEC:: @ 82EECEC
- .string "Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p$"
-
- .align 2
-gUnknown_082EED3C:: @ 82EED3C
- .4byte gUnknown_082EECA4
- .4byte gUnknown_082EECEC
-
- .align 2
-gUnknown_082EED44:: @ 82EED3C
- .string "Whoa!\nI can tell you're pretty tough!\p$"
-
- .align 2
-gUnknown_082EED6C:: @ 82EED6C
- .string "You used that move?\nThat's good strategy!\p$"
-
- .align 2
-gUnknown_082EED98:: @ 82EED98
- .string "Way to go!\nThat was an eye-opener!\p$"
-
- .align 2
-gUnknown_082EEDBC:: @ 82EEDBC
- .string "Oh! How could you use that\nPOKéMON in that situation?\p$"
-
- .align 2
-gUnknown_082EEDF4:: @ 82EEDF4
- .string "That POKéMON…\nIt's been raised really well!\p$"
-
- .align 2
-gUnknown_082EEE24:: @ 82EEE24
- .string "That's it!\nThis is the right move now!\p$"
-
- .align 2
-gUnknown_082EEE4C:: @ 82EEE4C
- .string "That's awesome!\nYou can battle that way?\p$"
-
- .align 2
-gUnknown_082EEE78:: @ 82EEE78
- .string "You have exquisite timing for\nswitching POKéMON!\p$"
-
- .align 2
-gUnknown_082EEEAC:: @ 82EEEAC
- .4byte gUnknown_082EED44
- .4byte gUnknown_082EED6C
- .4byte gUnknown_082EED98
- .4byte gUnknown_082EEDBC
- .4byte gUnknown_082EEDF4
- .4byte gUnknown_082EEE24
- .4byte gUnknown_082EEE4C
- .4byte gUnknown_082EEE78
-
- .align 2
-gUnknown_082EEECC:: @ 82EEECC
- .string "Oh, I see!\nThis is educational!\p$"
-
- .align 2
-gUnknown_082EEEF0:: @ 82EEEF0
- .string "Don't say anything funny anymore!\nI'm sore from laughing!\p$"
-
- .align 2
-gUnknown_082EEF2C:: @ 82EEF2C
- .string "Oh?\nSomething like that happened.\p$"
-
- .align 2
-gUnknown_082EEF50:: @ 82EEF50
- .string "Hmhm… What?\nSo is this what you're saying?\p$"
-
- .align 2
-gUnknown_082EEF7C:: @ 82EEF7C
- .string "Is that right?\nI didn't know that.\p$"
-
- .align 2
-gUnknown_082EEFA0:: @ 82EEFA0
- .string "Ahaha!\nWhat is that about?\p$"
-
- .align 2
-gUnknown_082EEFBC:: @ 82EEFBC
- .string "Yes, that's exactly it!\nThat's what I meant.\p$"
-
- .align 2
-gUnknown_082EEFEC:: @ 82EEFEC
- .string "In other words…\nYes! That's right!\p$"
-
- .align 2
-gUnknown_082EF010:: @ 82EF010
- .4byte gUnknown_082EEECC
- .4byte gUnknown_082EEEF0
- .4byte gUnknown_082EEF2C
- .4byte gUnknown_082EEF50
- .4byte gUnknown_082EEF7C
- .4byte gUnknown_082EEFA0
- .4byte gUnknown_082EEFBC
- .4byte gUnknown_082EEFEC
-
- .align 2
-gUnknown_082EF030:: @ 82EF030
- .string "I'm just showing my TRAINER CARD\nas my way of greeting.\p$"
-
- .align 2
-gUnknown_082EF06C:: @ 82EF06C
- .string "I hope I get to know you better!\p$"
-
- .align 2
-gUnknown_082EF090:: @ 82EF010
- .string "We're showing each other our\nTRAINER CARDS to get acquainted.\p$"
-
- .align 2
-gUnknown_082EF0D0:: @ 82EF0D0
- .string "Glad to meet you.\nPlease don't be a stranger!\p$"
-
- .align 2
-gUnknown_082EF100:: @ 82EF100
- .4byte gUnknown_082EF030
- .4byte gUnknown_082EF06C
- .4byte gUnknown_082EF090
- .4byte gUnknown_082EF0D0
-
- .align 2
-gUnknown_082EF110:: @ 82EF110
- .string "Yeahah!\nI really wanted this POKéMON!\p$"
-
- .align 2
-gUnknown_082EF138:: @ 82EF138
- .string "Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p$"
-
- .align 2
-gUnknown_082EF178:: @ 82EF178
- .string "I'm trading POKéMON right now.\p$"
-
- .align 2
-gUnknown_082EF198:: @ 82EF198
- .string "I finally got that POKéMON I\nwanted in a trade!\p$"
-
- .align 2
-gUnknown_082EF1CC:: @ 82EF1CC
- .4byte gUnknown_082EF110
- .4byte gUnknown_082EF138
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_082EF178
- .4byte gUnknown_082EF198
- .4byte NULL
- .4byte NULL
-
- .align 2
-gUnknown_082EF1EC:: @ 82EF1EC
- .string "{STR_VAR_1} checked the\nTRADING BOARD.\p$"
-
- .align 2
-gUnknown_082EF20C:: @ 82EF20C
- .string "Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?$"
-
- .align 2
-gUnknown_082EF298:: @ 82EF298
- .string "This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?$"
-
- .align 2
- .string "We have registered your POKéMON for\ntrade on the TRADING BOARD.\pThank you for using this service!\p$"
-
- .align 2
- .string "Nobody has registered any POKéMON\nfor trade on the TRADING BOARD.\p\n$"
-
- .align 2
-gUnknown_082EF47C:: @ 82EF47C
- .string "Please choose the type of POKéMON\nthat you would like in the trade.\n$"
-
- .align 2
-gUnknown_082EF4C4:: @ 82EF4C4
- .string "Which of your party POKéMON will\nyou offer in trade?\p$"
-
- .align 2
-gUnknown_082EF4FC:: @ 82EF4FC
- .string "Registration has been canceled.\p$"
-
- .align 2
-gUnknown_082EF520:: @ 82EF520
- .string "Registration has been completed.\p$"
-
- .align 2
-gUnknown_082EF544:: @ 82EF544
- .string "The trade has been canceled.\p$"
-
- .align 2
-gUnknown_082EF564:: @ 82EF564
- .string "Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?$"
-
- .align 2
-gUnknown_082EF590:: @ 82EF590
- .string "Cancel the registration of your\nEGG?$"
-
- .align 2
-gUnknown_082EF5B8:: @ 82EF5B8
- .string "The registration has been canceled.\p$"
-
- .align 2
- .string "TRAINERS wishing to make a trade\nwill be listed.$"
-
- .align 2
- .string "Please choose the TRAINER with whom\nyou would like to trade POKéMON.$"
-
- .align 2
-gUnknown_082EF65C:: @ 82EF65C
- .string "Would you like to ask {STR_VAR_1} to\nmake a trade?$"
-
- .align 2
- .string "Awaiting a response from\nthe other TRAINER…$"
-
- .align 2
- .string "You have not registered a POKéMON\nfor trading.\p$"
-
- .align 2
-gUnknown_082EF6E4:: @ 82EF6E4
- .string "You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p$"
-
- .align 2
-gUnknown_082EF718:: @ 82EF718
- .string "You don't have an EGG that\n{STR_VAR_1} wants.\p$"
-
- .align 2
-gUnknown_082EF740:: @ 82EF740
- .string "{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p$"
-
- .align 2
-gUnknown_082EF774:: @ 82EF774
- .string "You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p$"
-
- .align 2
- .4byte gUnknown_082EF740
- .4byte gUnknown_082EF774
-
- .align 2
-gUnknown_082EF7B0:: @ 82EF7B0
- .string "Your trade offer was rejected.\p$"
-
- .align 2
-gUnknown_082EF7D0:: @ 82EF7D0
- .string "EGG TRADE$"
-
- .align 2
-gUnknown_082EF7DC:: @ 82EF7DC
- .string "{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL$"
-
- .align 2
-gUnknown_082EF7F8:: @ 82EF7F8
- .string "Please choose a TRAINER.$"
-
- .align 2
-gUnknown_082EF814:: @ 82EF814
- .string "Please choose a TRAINER for\na SINGLE BATTLE.$"
-
- .align 2
-gUnknown_082EF844:: @ 82EF844
- .string "Please choose a TRAINER for\na DOUBLE BATTLE.$"
-
- .align 2
-gUnknown_082EF874:: @ 82EF874
- .string "Please choose the LEADER\nfor a MULTI BATTLE.$"
-
- .align 2
-gUnknown_082EF8A4:: @ 82EF8A4
- .string "Please choose the TRAINER to\ntrade with.$"
-
- .align 2
-gUnknown_082EF8D0:: @ 82EF8D0
- .string "Please choose the TRAINER who is\nsharing WONDER CARDS.$"
-
- .align 2
-gUnknown_082EF908:: @ 82EF908
- .string "Please choose the TRAINER who is\nsharing WONDER NEWS.$"
-
- .align 2
-gUnknown_082EF940:: @ 82EF940
- .string "Jump with mini POKéMON!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EF974:: @ 82EF974
- .string "BERRY CRUSH!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EF99C:: @ 82EF974
- .string "DODRIO BERRY-PICKING!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EF9CC:: @ 82EF9CC
- .string "BERRY BLENDER!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EF9F8:: @ 82EF9F8
- .string "RECORD CORNER!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFA24:: @ 82EFA24
- .string "COOLNESS CONTEST!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFA50:: @ 82EFA50
- .string "BEAUTY CONTEST!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFA7C:: @ 82EFA7C
- .string "CUTENESS CONTEST!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFAA8:: @ 82EFAA8
- .string "SMARTNESS CONTEST!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFAD8:: @ 82EFAD8
- .string "TOUGHNESS CONTEST!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFB08:: @ 82EFB08
- .string "BATTLE TOWER LEVEL 50!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFB3C:: @ 82EFB3C
- .string "BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER.$"
-
- .align 2
-gUnknown_082EFB70:: @ 82EFB70
- .4byte gUnknown_082EF814
- .4byte gUnknown_082EF844
- .4byte gUnknown_082EF874
- .4byte gUnknown_082EF8A4
- .4byte gUnknown_082EF940
- .4byte gUnknown_082EF974
- .4byte gUnknown_082EF99C
- .4byte gUnknown_082EF8D0
- .4byte gUnknown_082EF908
- .4byte NULL
- .4byte NULL
- .4byte NULL
- .4byte gUnknown_082EF9F8
- .4byte gUnknown_082EF9CC
- .4byte NULL
- .4byte gUnknown_082EFA24
- .4byte gUnknown_082EFA50
- .4byte gUnknown_082EFA7C
- .4byte gUnknown_082EFAA8
- .4byte gUnknown_082EFAD8
- .4byte gUnknown_082EFB08
- .4byte gUnknown_082EFB3C
-
- .align 2
-gUnknown_082EFBC8:: @ 82EFBC8
- .string "Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...$"
-
- .align 2
- .string "For a DOUBLE BATTLE, you must have\nat least two POKéMON.\p$"
-
- .align 2
-gUnknown_082EFC3C:: @ 82EFC3C
- .string "Awaiting {STR_VAR_1}'s response…$"
-
- .align 2
-gUnknown_082EFC54:: @ 82EFC54
- .string "{STR_VAR_1} has been asked to register\nyou as a member. Please wait.$"
-
- .align 2
-gUnknown_082EFC90:: @ 82EFC90
- .string "Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM.$"
-
- .align 2
- .string "Please wait for other TRAINERS to\ngather and get ready.$"
-
- .align 2
-gUnknown_082EFD04:: @ 82EFD04
- .string "No CARDS appear to be shared \nright now.$"
-
- .align 2
-gUnknown_082EFD30:: @ 82EFD30
- .string "No NEWS appears to be shared\nright now.$"
-
- .align 2
-gUnknown_082EFD58:: @ 82EFD58
- .4byte gUnknown_082EFD04
- .4byte gUnknown_082EFD30
-
- .align 2
-gUnknown_082EFD60:: @ 82EFD60
- .string "BATTLE$"
-
- .align 2
-gUnknown_082EFD68:: @ 82EFD68
- .string "CHAT$"
-
- .align 2
-gUnknown_082EFD70:: @ 82EFD70
- .string "GREETINGS$"
-
- .align 2
-gUnknown_082EFD7C:: @ 82EFD7C
- .string "EXIT$"
-
- .align 2
-gUnknown_082EFD84:: @ 82EFD84
- .string "EXIT$"
-
- .align 2
-gUnknown_082EFD8C:: @ 82EFD8C
- .string "INFO$"
-
- .align 2
-gUnknown_082EFD94:: @ 82EFD94
- .string "NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.$"
-
- .align 2
-gUnknown_082EFDB0:: @ 82EFDB0
- .string "SINGLE BATTLE$"
-
- .align 2
-gUnknown_082EFDC0:: @ 82EFDC0
- .string "DOUBLE BATTLE$"
-
- .align 2
-gUnknown_082EFDD0:: @ 82EFDD0
- .string "MULTI BATTLE$"
-
- .align 2
-gUnknown_082EFDE0:: @ 82EFDE0
- .string "POKéMON TRADES$"
-
- .align 2
-gUnknown_082EFDF0:: @ 82EFDF0
- .string "CHAT$"
-
- .align 2
-gUnknown_082EFDF8:: @ 82EFDF8
- .string "CARDS$"
-
- .align 2
-gUnknown_082EFE00:: @ 82EFE00
- .string "WONDER CARDS$"
-
- .align 2
-gUnknown_082EFE10:: @ 82EFE10
- .string "WONDER NEWS$"
-
- .align 2
-gUnknown_082EFE1C:: @ 82EFE1C
- .string "POKéMON JUMP$"
-
- .align 2
-gUnknown_082EFE2C:: @ 82EFE2C
- .string "BERRY CRUSH$"
-
- .align 2
-gUnknown_082EFE38:: @ 82EFE38
- .string "BERRY-PICKING$"
-
- .align 2
-gUnknown_082EFE48:: @ 82EFE48
- .string "SEARCH$"
-
- .align 2
-gUnknown_082EFE50:: @ 82EFE50
- .string "BERRY BLENDER$"
-
- .align 2
-gUnknown_082EFE60:: @ 82EFE60
- .string "RECORD CORNER$"
-
- .align 2
-gUnknown_082EFE70:: @ 82EFE70
- .string "COOL CONTEST$"
-
- .align 2
-gUnknown_082EFE80:: @ 82EFE80
- .string "BEAUTY CONTEST$"
-
- .align 2
-gUnknown_082EFE90:: @ 82EFE90
- .string "CUTE CONTEST$"
-
- .align 2
-gUnknown_082EFEA0:: @ 82EFEA0
- .string "SMART CONTEST$"
-
- .align 2
-gUnknown_082EFEB0:: @ 82EFEB0
- .string "TOUGH CONTEST$"
-
- .align 2
-gUnknown_082EFEC0:: @ 82EFEC0
- .string "BATTLE TOWER LV. 50$"
-
- .align 2
-gUnknown_082EFED4:: @ 82EFED4
- .string "BATTLE TOWER OPEN LEVEL$"
-
- .align 2
-gUnknown_082EFEEC:: @ 82EFEEC
- .string "It's a NORMAL CARD.$"
-
- .align 2
-gUnknown_082EFF00:: @ 82EFF00
- .string "It's a BRONZE CARD!$"
-
- .align 2
-gUnknown_082EFF14:: @ 82EFF14
- .string "It's a COPPER CARD!$"
-
- .align 2
-gUnknown_082EFF28:: @ 82EFF28
- .string "It's a SILVER CARD!$"
-
- .align 2
-gUnknown_082EFF3C:: @ 82EFF3C
- .string "It's a GOLD CARD!$"
-
- .align 2
-gUnknown_082EFF50:: @ 82EFF50
- .4byte gUnknown_082EFEEC
- .4byte gUnknown_082EFF00
- .4byte gUnknown_082EFF14
- .4byte gUnknown_082EFF28
- .4byte gUnknown_082EFF3C
-
-gUnknown_082EFF64:: @ 82EFF64
- .string "This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p$"
-
- .align 2
-gUnknown_082EFFA4:: @ 82EFFA4
- .string "BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p$"
-
- .align 2
-gUnknown_082EFFDC:: @ 82EFFDC
- .string "{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}$"
-
- .align 2
-gUnknown_082EFFFC:: @ 82EFFFC
- .string "{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}$"
-
- .align 2
-gUnknown_082F0018:: @ 82F0018
- .4byte gUnknown_082EFFDC
- .4byte gUnknown_082EFFFC
-
- .align 2
-gUnknown_082F0020:: @ 82F0020
- .string "Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}$"
-
- .align 2
-gUnknown_082F0048:: @ 82F0048
- .4byte gText_EmptyString
- .4byte gUnknown_082EFDB0
- .4byte gUnknown_082EFDC0
- .4byte gUnknown_082EFDD0
- .4byte gUnknown_082EFDE0
- .4byte gUnknown_082EFDF0
- .4byte gUnknown_082EFE00
- .4byte gUnknown_082EFE10
- .4byte gUnknown_082EFDF8
- .4byte gUnknown_082EFE1C
- .4byte gUnknown_082EFE2C
- .4byte gUnknown_082EFE38
- .4byte gUnknown_082EFE48
- .4byte gText_EmptyString
- .4byte gUnknown_082EFED4
- .4byte gUnknown_082EFE60
- .4byte gUnknown_082EFE50
- .4byte gText_EmptyString
- .4byte gText_EmptyString
- .4byte gText_EmptyString
- .4byte gText_EmptyString
- .4byte gUnknown_082EFE00
- .4byte gUnknown_082EFE10
- .4byte gUnknown_082EFE70
- .4byte gUnknown_082EFE80
- .4byte gUnknown_082EFE90
- .4byte gUnknown_082EFEA0
- .4byte gUnknown_082EFEB0
- .4byte gUnknown_082EFEC0
-
- .align 2
-gUnknown_082F00BC:: @ 82F00BC
- window_template 0x00, 0x00, 0x00, 0x1E, 0x02, 0x0F, 0x0008
-
- .align 2
-gUnknown_082F00C4:: @ 82F00C4
- .byte 0x01, 0x02, 0x00, 0x00
- .byte 0x02, 0x02, 0x00, 0x00
- .byte 0x03, 0x04, 0x00, 0x00
- .byte 0x04, 0x02, 0x00, 0x00
- .byte 0x09, 0x25, 0x00, 0x00
- .byte 0x0a, 0x25, 0x00, 0x00
- .byte 0x0b, 0x35, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x0f, 0x24, 0x00, 0x00
- .byte 0x10, 0x24, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00
- .byte 0x17, 0x24, 0x00, 0x00
- .byte 0x18, 0x24, 0x00, 0x00
- .byte 0x19, 0x24, 0x00, 0x00
- .byte 0x1a, 0x24, 0x00, 0x00
- .byte 0x1b, 0x24, 0x00, 0x00
- .byte 0x1c, 0x02, 0x00, 0x00
- .byte 0x0e, 0x02, 0x00, 0x00
-
- .align 2
-gUnknown_082F011C:: @ 82F011C
- window_template 0x00, 0x01, 0x03, 0x0d, 0x08, 0x0f, 0x0044
-
- .align 2
-gUnknown_082F0124:: @ 82F0124
- window_template 0x00, 0x01, 0x03, 0x0d, 0x0a, 0x0f, 0x0044
-
- .align 2
-gUnknown_082F012C:: @ 82F012C
- window_template 0x00, 0x10, 0x03, 0x07, 0x04, 0x0f, 0x00c6
-
- .align 2
-gUnknown_082F0134:: @ 82F0134
- .4byte gText_EmptyString
- .4byte 0x00000000
- .4byte gText_EmptyString
- .4byte 0x00000001
- .4byte gText_EmptyString
- .4byte 0x00000002
- .4byte gText_EmptyString
- .4byte 0x00000003
- .4byte gText_EmptyString
- .4byte 0x00000004
-
- .align 2
-gUnknown_082F015C:: @ 82F015C struct ListMenuTemplate
- .4byte gUnknown_082F0134
- .4byte NULL
- .4byte sub_8013278
- .byte 0x05, 0x00, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x21, 0x31, 0x00, 0x41
-
- .align 2
-gUnknown_082F0174:: @ 82F0174
- window_template 0x00, 0x01, 0x03, 0x11, 0x0a, 0x0f, 0x0044
-
- .align 2
-gUnknown_082F017C:: @ 82F017C
- window_template 0x00, 0x14, 0x03, 0x07, 0x04, 0x0f, 0x00ee
-
- .align 2
-gUnknown_082F0184:: @ 82F0184
- .4byte gText_EmptyString, 0x00000000
- .4byte gText_EmptyString, 0x00000001
- .4byte gText_EmptyString, 0x00000002
- .4byte gText_EmptyString, 0x00000003
- .4byte gText_EmptyString, 0x00000004
- .4byte gText_EmptyString, 0x00000005
- .4byte gText_EmptyString, 0x00000006
- .4byte gText_EmptyString, 0x00000007
- .4byte gText_EmptyString, 0x00000008
- .4byte gText_EmptyString, 0x00000009
- .4byte gText_EmptyString, 0x0000000a
- .4byte gText_EmptyString, 0x0000000b
- .4byte gText_EmptyString, 0x0000000c
- .4byte gText_EmptyString, 0x0000000d
- .4byte gText_EmptyString, 0x0000000e
- .4byte gText_EmptyString, 0x0000000f
-
- .align 2
-gUnknown_082F0204:: @ 82F0204 struct ListMenuTemplate
- .4byte gUnknown_082F0184
- .4byte ListMenuDefaultCursorMoveFunc
- .4byte sub_8013DF4
- .byte 0x10, 0x00, 0x05, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0x21, 0x31, 0x40, 0x01
-
- .align 2
-gUnknown_082F021C:: @ 82F021C
- window_template 0x00, 0x14, 0x05, 0x10, 0x08, 0x0f, 0x0001
-
- .align 2
-gUnknown_082F0224:: @ 82F0224
- .4byte gUnknown_082EFD70, 0x00000208
- .4byte gUnknown_082EFD60, 0x00000241
- .4byte gUnknown_082EFD68, 0x00000245
- .4byte gUnknown_082EFD7C, 0x00000040
-
- .align 2
-gUnknown_082F0244:: @ 82F0244 struct ListMenuTemplate
- .4byte gUnknown_082F0224
- .byte 0x79, 0xf0, 0x1a, 0x08
- .4byte NULL
- .byte 0x04, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0x21, 0x31, 0x00, 0x01
-
- .align 2
-gUnknown_082F025C:: @ 82F025C
- window_template 0x00, 0x12, 0x07, 0x10, 0x06, 0x0f, 0x0001
-
-gUnknown_082F0264:: @ 82F0264
- .4byte gText_Register, 0x00000001
- .4byte gUnknown_082EFD8C, 0x00000002
- .4byte gUnknown_082EFD7C, 0x00000003
-
- .align 2
-gUnknown_082F027C:: @ 82F027C
- .4byte gUnknown_082F0264
- .4byte ListMenuDefaultCursorMoveFunc
- .4byte NULL
- .byte 0x03, 0x00, 0x03, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0x21, 0x31, 0x00, 0x01
-
- .align 2
-gUnknown_082F0294:: @ 82F0294
- window_template 0x00, 0x14, 0x01, 0x10, 0x0c, 0x0f, 0x0001
-
- .align 2
-gUnknown_082F029C:: @ 82F029C
- .4byte gTypeNames, 0x00000000 @ NORMAL
- .4byte gTypeNames+0x46, 0x0000000a @ FIRE
- .4byte gTypeNames+0x4D, 0x0000000b @ WATER
- .4byte gTypeNames+0x5B, 0x0000000d @ ELECTR
- .4byte gTypeNames+0x54, 0x0000000c @ GRASS
- .4byte gTypeNames+0x69, 0x0000000f @ ICE
- .4byte gTypeNames+0x1C, 0x00000004 @ GROUND
- .4byte gTypeNames+0x23, 0x00000005 @ ROCK
- .4byte gTypeNames+0x0E, 0x00000002 @ FLYING
- .4byte gTypeNames+0x62, 0x0000000e @ PSYCHC
- .4byte gTypeNames+0x07, 0x00000001 @ FIGHT
- .4byte gTypeNames+0x15, 0x00000003 @ POISON
- .4byte gTypeNames+0x2A, 0x00000006 @ BUG
- .4byte gTypeNames+0x31, 0x00000007 @ GHOST
- .4byte gTypeNames+0x70, 0x00000010 @ DRAGON
- .4byte gTypeNames+0x38, 0x00000008 @ STEEL
- .4byte gTypeNames+0x77, 0x00000011 @ DARK
- .4byte gUnknown_082EFD7C, 0x00000012 @ EXIT
-
- .align 2
-gUnknown_082F032C:: @ 82F032C
- .4byte gUnknown_082F029C
- .4byte ListMenuDefaultCursorMoveFunc
- .4byte NULL
- .byte 0x12, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0x21, 0x31, 0x00, 0x01
-
- .align 2
-gUnknown_082F0344:: @ 82F0344
- window_template 0x00, 0x01, 0x01, 0x1c, 0x02, 0x0d, 0x0001
-
- .align 2
-gUnknown_082F034C:: @ 82F034C
- window_template 0x00, 0x01, 0x05, 0x1c, 0x0c, 0x0d, 0x0039
-
- .align 2
-gUnknown_082F0354:: @ 82F0354
- .4byte gText_EmptyString, 0xfffffffd
- .4byte gText_EmptyString, 0x00000000
- .4byte gText_EmptyString, 0x00000001
- .4byte gText_EmptyString, 0x00000002
- .4byte gText_EmptyString, 0x00000003
- .4byte gText_EmptyString, 0x00000004
- .4byte gText_EmptyString, 0x00000005
- .4byte gText_EmptyString, 0x00000006
- .4byte gText_EmptyString, 0x00000007
- .4byte gUnknown_082EFD84, 0x00000008
-
- .align 2
-gUnknown_082F03A4:: @ 82F03A4
- .4byte gUnknown_082F0354
- .4byte ListMenuDefaultCursorMoveFunc
- .4byte sub_8017BE8
- .byte 0x0a, 0x00, 0x06, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0xe1, 0xdf, 0x00, 0x01
-
- .align 2
- window_template 0x00, 0x01, 0x05, 0x1c, 0x0c, 0x0d, 0x0039
-
- .align 2
-gUnknown_082F03C4:: @ 82F03C4
- .4byte gText_EmptyString, 0x00000000
- .4byte gText_EmptyString, 0x00000001
- .4byte gText_EmptyString, 0x00000002
- .4byte gText_EmptyString, 0x00000003
- .4byte gText_EmptyString, 0x00000004
- .4byte gText_EmptyString, 0x00000005
- .4byte gText_EmptyString, 0x00000006
- .4byte gText_EmptyString, 0x00000007
- .4byte gText_EmptyString, 0x00000008
- .4byte gText_EmptyString, 0x00000009
- .4byte gText_EmptyString, 0x0000000a
- .4byte gText_EmptyString, 0x0000000b
- .4byte gText_EmptyString, 0x0000000c
- .4byte gText_EmptyString, 0x0000000d
- .4byte gText_EmptyString, 0x0000000e
- .4byte gText_EmptyString, 0x0000000f
-
- .align 2
- .4byte gUnknown_082F03C4
- .4byte ListMenuDefaultCursorMoveFunc
- .4byte nullsub_14
- .byte 0x10, 0x00, 0x04, 0x00, 0x00, 0x00, 0x08, 0x00
- .byte 0x21, 0x31, 0x40, 0x01
-
- .align 2
-gUnknown_082F045C:: @ 82F045C
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
-
- .align 2
-gUnknown_082F0474:: @ 82F0474
- .byte 0x01, 0xff
-
- .align 2
-gUnknown_082F0478:: @ 82F0478
- .byte 0x02, 0xff
-
- .align 2
-gUnknown_082F047C:: @ 82F047C
- .byte 0x03, 0xff
-
- .align 2
-gUnknown_082F0480:: @ 82F0480
- .byte 0x04, 0xff
-
- .align 2
-gUnknown_082F0484:: @ 82F0484
- .byte 0x09, 0xff
-
- .align 2
-gUnknown_082F0488:: @ 82F0488
- .byte 0x0a, 0xff
-
- .align 2
-gUnknown_082F048C:: @ 82F048C
- .byte 0x0b, 0xff
-
- .align 2
-gUnknown_082F0490:: @ 82F0490
- .byte 0x15, 0xff
-
- .align 2
-gUnknown_082F0494:: @ 82F0494
- .byte 0x16, 0xff
-
- .align 2
-gUnknown_082F0498:: @ 82F0498
- .byte 0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xff
-
- .align 2
-gUnknown_082F04A4:: @ 82F04A4
- .byte 0x0c, 0xff
-
- .align 2
-gUnknown_082F04A8:: @ 82F04A8
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, 0x16, 0x0d, 0xff
-
- .align 2
-gUnknown_082F04B4:: @ 82F04B4
- .byte 0x0f, 0xff
-
- .align 2
-gUnknown_082F04B8:: @ 82F04B8
- .byte 0x10, 0xff
-
- .align 2
-gUnknown_082F04BC:: @ 82F04BC
- .byte 0x17, 0xff
-
- .align 2
-gUnknown_082F04C0:: @ 82F04C0
- .byte 0x18, 0xff
-
- .align 2
-gUnknown_082F04C4:: @ 82F04C4
- .byte 0x19, 0xff
-
- .align 2
-gUnknown_082F04C8:: @ 82F04C8
- .byte 0x1a, 0xff
-
- .align 2
-gUnknown_082F04CC:: @ 82F04CC
- .byte 0x1b, 0xff
-
- .align 2
-gUnknown_082F04D0:: @ 82F04D0
- .byte 0x1c, 0xff
-
- .align 2
-gUnknown_082F04D4:: @ 82F04D4
- .byte 0x0e, 0xff
-
- .align 2
-gUnknown_082F04D8:: @ 82F04D8
- .4byte gUnknown_082F0474
- .4byte gUnknown_082F0478
- .4byte gUnknown_082F047C
- .4byte gUnknown_082F0480
- .4byte gUnknown_082F0484
- .4byte gUnknown_082F0488
- .4byte gUnknown_082F048C
- .4byte gUnknown_082F0490
- .4byte gUnknown_082F0494
- .4byte gUnknown_082F0498
- .4byte gUnknown_082F04A4
- .4byte gUnknown_082F04A8
- .4byte gUnknown_082F04B4
- .4byte gUnknown_082F04B8
- .4byte NULL
- .4byte gUnknown_082F04BC
- .4byte gUnknown_082F04C0
- .4byte gUnknown_082F04C4
- .4byte gUnknown_082F04C8
- .4byte gUnknown_082F04CC
- .4byte gUnknown_082F04D0
- .4byte gUnknown_082F04D4
-
- .align 2
-gUnknown_082F0530:: @ 82F0530
- .byte 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15
- .byte 0x16, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x17
- .byte 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x0e, 0x00, 0x00
-
- .align 2
gUnkTextboxBorderPal:: @ 82F0548
.incbin "graphics/interface/unk_textbox_border.gbapal"
diff --git a/include/battle.h b/include/battle.h
index d155ca5a0..38bce0e61 100644
--- a/include/battle.h
+++ b/include/battle.h
@@ -776,5 +776,6 @@ extern u8 gHealthboxSpriteIds[MAX_BATTLERS_COUNT];
extern u8 gMultiUsePlayerCursor;
extern u8 gNumberOfMovesToChoose;
extern u8 gUnknown_03005D7C[MAX_BATTLERS_COUNT];
+extern const u8 gTrainerClassNames[][13];
#endif // GUARD_BATTLE_H
diff --git a/include/event_obj_lock.h b/include/event_obj_lock.h
index 2f09ad36a..037c0080d 100644
--- a/include/event_obj_lock.h
+++ b/include/event_obj_lock.h
@@ -8,5 +8,6 @@ void LockSelectedEventObject(void);
void sub_8098630(void);
bool8 sub_8098734(void);
void ScriptUnfreezeEventObjects(void);
+void sub_8098524(void);
#endif // GUARD_EVENT_OBJ_LOCK_H
diff --git a/include/link_rfu.h b/include/link_rfu.h
index f630302c7..d8f374ff9 100644
--- a/include/link_rfu.h
+++ b/include/link_rfu.h
@@ -281,6 +281,7 @@ void sub_8011DE0(u32 arg0);
u8 sub_801100C(int a0);
void sub_800EF7C(void);
bool8 sub_800DE7C(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
+bool8 sub_800DF34(struct UnkLinkRfuStruct_02022B14 *buff1, u8 *buff2, u8 idx);
s32 sub_800E87C(u8 idx);
void sub_8011BA4(void);
void sub_8010198(void);
diff --git a/include/menu.h b/include/menu.h
index ff5730bad..b4c3cb2b5 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -99,6 +99,8 @@ void sub_8199CBC(u8 bgId, u16 *dest, u8 left, u8 top, u8 width, u8 height);
u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile);
void sub_8198314(void);
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram);
+void AddTextPrinterWithCustomSpeedForMessage(bool8 allowSkippingDelayWithButtonPress, u8 speed);
+void sub_8198C78(void);
void PrintTextArray(u8 windowId, u8 fontId, u8 left, u8 top, u8 lineHeight, u8 itemCount, const struct MenuAction *strs);
#endif // GUARD_MENU_H
diff --git a/include/rom_8011DC0.h b/include/rom_8011DC0.h
index 8376d1bc6..fa54fca66 100644
--- a/include/rom_8011DC0.h
+++ b/include/rom_8011DC0.h
@@ -1,12 +1,161 @@
#ifndef GUARD_rom_8011DC0_H
#define GUARD_rom_8011DC0_H
+#include "librfu.h"
+
// Exported type declarations
+struct UnkStruct_Shared
+{
+ struct UnkLinkRfuStruct_02022B14 field_0;
+ u8 ALIGNED(4) playerName[PLAYER_NAME_LENGTH + 1];
+};
+
+struct UnkStruct_x1C
+{
+ struct UnkStruct_Shared unk0;
+ u8 unk18:1;
+};
+
+struct UnkStruct_x20
+{
+ struct UnkStruct_Shared unk;
+ u16 field_18;
+ u8 field_1A_0:2;
+ u8 field_1A_1:1;
+ u8 field_1B;
+ u8 field_1D;
+ u8 field_1E;
+ u8 field_1F;
+};
+
+struct UnkStruct_Main0
+{
+ struct UnkStruct_x20 arr[8];
+};
+
+struct UnkStruct_Main4
+{
+ struct UnkStruct_x1C arr[5];
+};
+
+struct UnkStruct_Main8
+{
+ struct UnkStruct_x20 arr[5];
+};
+
+struct UnkStruct_Leader
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ struct UnkStruct_Main8 *field_8;
+ u8 state;
+ u8 textState;
+ u8 field_E;
+ u8 listWindowId;
+ u8 field_10;
+ u8 field_11;
+ u8 listTaskId;
+ u8 field_13;
+ u8 field_14;
+ u8 field_15;
+ u8 field_16;
+ u8 field_17;
+ u8 field_18;
+ u8 field_19;
+ u16 field_1A;
+};
+
+struct UnkStruct_Group
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ u8 state;
+ u8 textState;
+ u8 field_A;
+ u8 listWindowId;
+ u8 field_C;
+ u8 field_D;
+ u8 listTaskId;
+ u8 field_F;
+ u8 field_10;
+ u8 field_11;
+ u8 field_12;
+ u8 field_13;
+ u8 field_14;
+ u8 field_15;
+};
+
+struct UnkStruct_8019BA8
+{
+ u8 field_0;
+ u8 field_1;
+ u8 field_2;
+ u8 field_3;
+};
+
+struct UnkStruct_URoom
+{
+ struct UnkStruct_Main0 *field_0;
+ struct UnkStruct_Main4 *field_4;
+ struct UnkStruct_Main0 *field_8;
+ struct UnkStruct_Main4 *field_C;
+ u16 field_10;
+ u16 field_12;
+ u8 state;
+ u8 stateAfterPrint;
+ u8 textState;
+ u8 field_17;
+ u8 field_18;
+ u8 field_19;
+ u8 field_1A;
+ u8 field_1B;
+ u8 field_1C;
+ u8 field_1D;
+ u8 field_1E;
+ u8 field_1F;
+ u8 field_20;
+ u8 spriteIds[40];
+ u8 field_49;
+ u8 field_4A;
+ u16 field_4C[6];
+ u8 field_58[0x98 - 0x58];
+ u16 field_98;
+ u16 field_9A[3];
+ struct UnkStruct_8019BA8 field_A0[8];
+ u8 field_C0[12][15];
+ u8 field_174[48];
+ u8 field_1A4[200];
+};
+
+union UnkUnion_Main
+{
+ struct UnkStruct_Leader *leader;
+ struct UnkStruct_Group *group;
+ struct UnkStruct_URoom *uRoom;
+};
+
+struct TradeUnkStruct
+{
+ u16 field_0;
+ u16 type;
+ u32 playerPersonality;
+ u8 field_8;
+ u8 field_9;
+ u16 playerSpecies;
+ u16 playerLevel;
+ u16 species;
+ u16 level;
+ u16 field_12;
+ u32 personality;
+};
+
// Exported RAM declarations
extern u8 gUnknown_02022C2C;
+extern union UnkUnion_Main gUnknown_02022C30;
extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38;
+
extern u16 gUnknown_02022C3C;
extern u8 gUnknown_02022C3E;
diff --git a/src/link_rfu.c b/src/link_rfu.c
index e4295dc39..945806459 100644
--- a/src/link_rfu.c
+++ b/src/link_rfu.c
@@ -310,10 +310,22 @@ const char gUnknown_082ED7EC[] = "PokemonSioInfo";
const char gUnknown_082ED7FC[] = "LINK LOSS DISCONNECT!";
const char gUnknown_082ED814[] = "LINK LOSS RECOVERY NOW";
-extern const char gUnknown_082ED82C[];
-extern const char gUnknown_082ED84B[];
-extern const char gUnknown_082ED85B[];
-extern const char gUnknown_082ED868[];
+ALIGNED(4) const char gUnknown_082ED82C[31] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0x00};
+const char gUnknown_082ED84B[16] = {' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',0x00};
+const char gUnknown_082ED85B[9] = {' ',' ',' ',' ',' ',' ',' ',' ',0x00};
+ALIGNED(4) const char gUnknown_082ED864[2] = {' ',0x00};
+const char gUnknown_082ED866[2] = {'*',0x00};
+const char gUnknown_082ED868[8] = "NOWSLOT";
+const char gUnknown_082ED870[12] = " ";
+const char gUnknown_082ED87C[12] = "CLOCK DRIFT";
+const char gUnknown_082ED888[12] = "BUSY SEND ";
+const char gUnknown_082ED894[12] = "CMD REJECT ";
+const char gUnknown_082ED8A0[12] = "CLOCK SLAVE";
+const char gUnknown_082ED8A8[3][8] = {
+ "CHILD ",
+ "PARENT",
+ "SEARCH"
+};
// .text
diff --git a/src/union_room.c b/src/union_room.c
index e0777cdb7..338063ef1 100644
--- a/src/union_room.c
+++ b/src/union_room.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "window.h"
#include "bg.h"
+#include "random.h"
#include "string_util.h"
#include "task.h"
#include "event_data.h"
@@ -34,162 +35,25 @@
#include "data2.h"
#include "field_screen_effect.h"
#include "script_pokemon_util_80F87D8.h"
+#include "international_string_util.h"
+#include "field_player_avatar.h"
+#include "strings.h"
#include "mevent.h"
+#include "dynamic_placeholder_text_util.h"
+#include "rom_8011DC0.h"
+#include "easy_chat.h"
+#include "event_obj_lock.h"
#include "union_room_chat.h"
-struct UnkStruct_Shared
-{
- struct UnkLinkRfuStruct_02022B14 field_0;
- u8 needingPadding[2];
- u8 playerName[PLAYER_NAME_LENGTH + 1];
-};
-
-struct UnkStruct_x1C
-{
- struct UnkStruct_Shared unk0;
- u8 unk18;
-};
-
-struct UnkStruct_x20
-{
- struct UnkStruct_Shared unk;
- u16 field_18;
- u8 field_1A_0:2;
- u8 field_1A_1:1;
- u8 field_1B;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
-};
-
-struct UnkStruct_Main0
-{
- struct UnkStruct_x20 arr[8];
-};
-
-struct UnkStruct_Main4
-{
- struct UnkStruct_x1C arr[5];
-};
-
-struct UnkStruct_Main8
-{
- struct UnkStruct_x20 arr[5];
-};
-
-struct UnkStruct_Leader
-{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
- struct UnkStruct_Main8 *field_8;
- u8 state;
- u8 textState;
- u8 field_E;
- u8 listWindowId;
- u8 field_10;
- u8 field_11;
- u8 listTaskId;
- u8 field_13;
- u8 field_14;
- u8 field_15;
- u8 field_16;
- u8 field_17;
- u8 field_18;
- u8 field_19;
- u16 field_1A;
-};
-
-struct UnkStruct_Group
-{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
- u8 state;
- u8 textState;
- u8 field_A;
- u8 listWindowId;
- u8 field_C;
- u8 field_D;
- u8 listTaskId;
- u8 field_F;
- u8 field_10;
- u8 field_11;
- u8 field_12;
- u8 field_13;
- u8 field_14;
- u8 field_15;
-};
-
-struct UnkStruct_8019BA8
-{
- u8 field_0;
- u8 field_1;
- u8 field_2;
- u8 field_3;
-};
-
-struct UnkStruct_URoom
-{
- struct UnkStruct_Main0 *field_0;
- struct UnkStruct_Main4 *field_4;
- struct UnkStruct_Main0 *field_8;
- struct UnkStruct_Main4 *field_C;
- u16 field_10;
- u16 field_12;
- u8 state;
- u8 stateAfterPrint;
- u8 textState;
- u8 field_17;
- u8 field_18;
- u8 field_19;
- u8 field_1A;
- u8 field_1B;
- u8 field_1C;
- u8 field_1D;
- u8 field_1E;
- u8 field_1F;
- u8 field_20;
- u8 spriteIds[40];
- u8 field_49;
- u8 field_4A;
- u16 field_4C[6];
- u8 field_58[0x98 - 0x58];
- u16 field_98;
- u16 field_9A[3];
- struct UnkStruct_8019BA8 field_A0[8];
-};
-
-union UnkUnion_Main
-{
- struct UnkStruct_Leader *leader;
- struct UnkStruct_Group *group;
- struct UnkStruct_URoom *uRoom;
-};
-
-struct TradeUnkStruct
-{
- u16 field_0;
- u16 field_2;
- u32 field_4;
- u8 field_8;
- u8 field_9;
- u16 field_A;
- u16 field_C;
- u16 species;
- u16 level;
- u16 field_12;
- u32 personality;
-};
-
-extern struct TradeUnkStruct gUnknown_02022C40;
-extern struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38;
-extern union UnkUnion_Main gUnknown_02022C30;
-extern u8 gUnknown_02022C2C;
-extern u8 gUnknown_02022C2D;
-extern u8 gUnknown_02022C3E;
-extern u16 gUnknown_02022C3C;
-extern u8 gUnknown_02022C20[];
-extern u8 gFieldLinkPlayerCount;
-extern u8 gLocalLinkPlayerId;
+EWRAM_DATA u8 gUnknown_02022C20[12] = {};
+EWRAM_DATA u8 gUnknown_02022C2C = 0;
+EWRAM_DATA u8 gUnknown_02022C2D = 0;
+EWRAM_DATA union UnkUnion_Main gUnknown_02022C30 = {};
+EWRAM_DATA u32 gFiller_02022C34 = 0;
+EWRAM_DATA struct UnkLinkRfuStruct_02022B14Substruct gUnknown_02022C38 = {};
+EWRAM_DATA u16 gUnknown_02022C3C = 0;
+EWRAM_DATA u8 gUnknown_02022C3E = 0;
+EWRAM_DATA struct TradeUnkStruct gUnknown_02022C40 = {};
// IWRAM vars
IWRAM_DATA struct UnkStruct_Leader *gUnknown_03000DA0;
@@ -222,13 +86,13 @@ void sub_80149C4(void);
u8 sub_80132D4(struct UnkStruct_Main0 *arg0);
void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1);
-u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_Shared *arg1, u8 arg2);
+u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2);
u8 sub_8013E44(void);
u32 sub_8013B8C(struct UnkStruct_Group *arg0, s32 id);
void sub_8013BD8(struct UnkStruct_Group *arg0, s32 id);
void sub_80173D4(void);
void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id);
-bool32 sub_8017678(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1);
+bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1);
u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId);
void sub_801807C(struct TradeUnkStruct *arg0);
void sub_801AC54(void);
@@ -241,12 +105,12 @@ void sub_8018784(u8 windowId);
void sub_8018884(const u8 *src);
bool32 mevent_0814257C(u8 *textState, const u8 *str);
s8 sub_8018B08(u8 *textState, u8 *arg1, u8 arg2, const u8 *str);
-bool32 sub_8016F1C(struct UnkStruct_x20 *arg0, s16 arg1);
+bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1);
u8 sub_8016DF0(struct UnkStruct_Main4 *arg0, struct UnkStruct_Main4 *arg1, u32 arg2);
void sub_8019F2C(void);
void sub_8019E70(u8 *arg0, s32 arg1);
-bool32 sub_80180A0(u8 monId, struct TradeUnkStruct *arg1);
-void sub_80180E8(u8 monId, struct TradeUnkStruct *arg1);
+bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1);
+void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1);
bool32 sub_801A2A8(struct UnkStruct_Main0 *arg0, s16 *arg1, s16 *arg2, u8 *arg3);
void sub_80181CC(void);
bool32 sub_8017940(void);
@@ -264,120 +128,1069 @@ void sub_801818C(bool32 arg0);
void sub_801A3D0(u32 arg0, u32 arg1, struct UnkStruct_Main0 *arg2);
s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate);
s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6);
+s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1);
bool32 sub_8018024(void);
-u32 sub_8017984(u32 arg0);
+u32 sub_8017984(s32 arg0);
void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2);
-void sub_8017D9C(u8 *dst, u32 arg1, u32 playerGender);
+void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender);
u32 sub_80179AC(struct UnkStruct_x20 *arg0);
void sub_8017E00(u8 *dst, u8 arg1);
void sub_8019F04(u8 *spriteIds);
void sub_8019E3C(void);
void sub_80173B0(void);
s32 sub_8017D04(u32 type, u32 species);
-void sub_8017020(const u8 *src);
+bool32 sub_8017020(const u8 *src);
void sub_8019BA8(void *);
s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3);
void sub_801697C(u8 taskId);
bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1);
+void sub_8013278(u8 windowId, s32 itemId, u8 y);
+void sub_8013DF4(u8 windowId, s32 itemId, u8 y);
+void sub_8017BE8(u8 windowId, s32 itemId, u8 y);
+void nullsub_14(u8 windowId, s32 itemId, u8 y);
// const rom data
-extern const u8 *const gUnknown_082EDB60[][5];
-
-extern const u8 gText_UnkCtrlCodeF907[];
-extern const u8 gUnknown_082EDBC4[];
-extern const u8 gText_AwaitingCommunication[];
-extern const u8 gText_AwaitingLink[];
-extern const u8 gUnknown_082EDC5C[];
-extern const u8 gUnknown_082EDC9C[];
-extern const u8 gUnknown_082EDC78[];
-extern const u8 gUnknown_082EDD58[];
-extern const u8 gUnknown_082EDBE8[];
-extern const u8 gUnknown_082EDC0C[];
-extern const u8 gUnknown_082EDC34[];
-extern const u8 gUnknown_082EE560[];
-extern const u8 gUnknown_082EE57C[];
-extern const u8 gUnknown_082EFC54[];
-extern const u8 gUnknown_082EFC3C[];
-extern const u8 gUnknown_082EDE0C[];
-extern const u8 gUnknown_082EDDF4[];
-extern const u8 gUnknown_082EF7DC[];
-extern const u8 gUnknown_082EDE48[];
-extern const u8 gUnknown_082EDE64[];
-extern const u8 gUnknown_082EDF40[];
-extern const u8 gText_PleaseStartOver[];
-extern const u8 gUnknown_082EF7F8[];
-extern const u8 gUnknown_082EFBC8[];
-extern const u8 gUnknown_082EFC90[];
-extern const u8 gUnknown_082EDEC4[];
-extern const u8 gUnknown_082EDF04[];
-extern const u8 gText_WirelessSearchCanceled[];
-extern const u8 gUnknown_082EF4FC[];
-extern const u8 gUnknown_082EF520[];
-extern const u8 gUnknown_082EF5B8[];
-extern const u8 gUnknown_082EF1EC[];
-extern const u8 gUnknown_082EF544[];
-extern const u8 gUnknown_082EF47C[];
-extern const u8 gUnknown_082EE6C8[];
-extern const u8 gUnknown_082EE004[];
-extern const u8 gUnknown_082EEBD0[];
-extern const u8 gUnknown_082EEB88[];
-extern const u8 gUnknown_082EE598[];
-extern const u8 gUnknown_082EEC14[];
-extern const u8 gUnknown_082EF590[];
-extern const u8 gUnknown_082EF20C[];
-extern const u8 gUnknown_082EF564[];
-extern const u8 gUnknown_082EF4C4[];
-extern const u8 gUnknown_082EF298[];
-extern const u8 gUnknown_082EF65C[];
-extern const u8 gUnknown_082EF6E4[];
-extern const u8 gUnknown_082EF718[];
-
-extern const u32 gUnknown_082F00C4[];
-
-extern const u8 gUnknown_082F0530[];
-
-extern const struct WindowTemplate gUnknown_082F00BC;
-extern const struct WindowTemplate gUnknown_082F0124;
-extern const struct WindowTemplate gUnknown_082F012C;
-extern const struct WindowTemplate gUnknown_082F011C;
-extern const struct WindowTemplate gUnknown_082F0174;
-extern const struct WindowTemplate gUnknown_082F017C;
-extern const struct WindowTemplate gUnknown_082F021C;
-extern const struct WindowTemplate gUnknown_082F025C;
-extern const struct WindowTemplate gUnknown_082F0294;
-extern const struct WindowTemplate gUnknown_082F034C;
-
-extern const struct ListMenuTemplate gUnknown_082F015C;
-extern const struct ListMenuTemplate gUnknown_082F0204;
-extern const struct ListMenuTemplate gUnknown_082F0244;
-extern const struct ListMenuTemplate gUnknown_082F027C;
-extern const struct ListMenuTemplate gUnknown_082F032C;
-extern const struct ListMenuTemplate gUnknown_082F03A4;
-
-extern const u8 *const gUnknown_082F0048[];
-extern const u8 *const gUnknown_082EDDC4[];
-extern const u8 *const gUnknown_082EFB70[];
-extern const u8 *const gUnknown_082EDD50[];
-extern const u8 *const gUnknown_082EDE9C[];
-extern const u8 *const gUnknown_082EDF80[];
-extern const u8 *const gUnknown_082EFD58[];
-extern const u8 *const gUnknown_082EEB80[];
-extern const u8 *const gUnknown_082EE378[];
-extern const u8 *const gUnknown_082EEC9C[];
-extern const u8 *const gUnknown_082EED3C[];
-extern const u8 *const gUnknown_082EE324[];
-extern const u8 *const gUnknown_082EE17C[];
-
-extern const u8 *const gUnknown_082EE82C[][4];
-
-extern const u8 *const gUnknown_082EE24C[][2];
-
-extern const struct UnkStruct_Shared gUnknown_082F045C;
-
-extern const u8 *const gUnknown_082F04D8[22];
+
+ALIGNED(4) const u8 gText_EmptyString[] = _("");
+ALIGNED(4) const u8 gText_Colon[] = _(":");
+ALIGNED(4) const u8 gText_UnkCtrlCodeF907[] = _("{ID}");
+ALIGNED(4) const u8 gText_PleaseStartOver[] = _("Please start over from the beginning.");
+ALIGNED(4) const u8 gText_WirelessSearchCanceled[] = _("The WIRELESS COMMUNICATION\nSYSTEM search has been canceled.");
+ALIGNED(4) const u8 unref_text_union_room_0[] = _("Awaiting communication\nfrom another player.");
+ALIGNED(4) const u8 gText_AwaitingCommunication[] = _("{STR_VAR_1}! Awaiting\ncommunication from another player.");
+ALIGNED(4) const u8 gText_AwaitingLink[] = _("{STR_VAR_1}! Awaiting link!\nPress START when everyone's ready.");
+ALIGNED(4) const u8 gJPText_SingleBattle[] = _("シングルバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_DoubleBattle[] = _("ダブルバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_MultiBattle[] = _("マルチバトルを かいさいする");
+ALIGNED(4) const u8 gJPText_TradePokemon[] = _("ポケモンこうかんを かいさいする");
+ALIGNED(4) const u8 gJPText_Chat[] = _("チャットを かいさいする");
+ALIGNED(4) const u8 gJPText_DistWonderCard[] = _("ふしぎなカードをくばる");
+ALIGNED(4) const u8 gJPText_DistWonderNews[] = _("ふしぎなニュースをくばる");
+ALIGNED(4) const u8 unref_text_union_room_1[] = _("ふしぎなできごとを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldPokemonJump[] = _("なわとびを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldBerryCrush[] = _("きのみマッシャーを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldBerryPicking[] = _("きのみどりを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldSpinTrade[] = _("ぐるぐるこうかんを かいさいする");
+ALIGNED(4) const u8 gJPText_HoldSpinShop[] = _("ぐるぐるショップを かいさいする");
+
+const u8 *const unref_text_ptrs_union_room_0[] = {
+ gJPText_SingleBattle,
+ gJPText_DoubleBattle,
+ gJPText_MultiBattle,
+ gJPText_TradePokemon,
+ gJPText_Chat,
+ gJPText_DistWonderCard,
+ gJPText_DistWonderNews,
+ gJPText_DistWonderCard,
+ gJPText_HoldPokemonJump,
+ gJPText_HoldBerryCrush,
+ gJPText_HoldBerryPicking,
+ gJPText_HoldBerryPicking,
+ gJPText_HoldSpinTrade,
+ gJPText_HoldSpinShop
+};
+
+const u8 gText_1PlayerNeeded[] = _("1 player\nneeded.");
+const u8 gText_2PlayersNeeded[] = _("2 players\nneeded.");
+const u8 gText_3PlayersNeeded[] = _("3 players\nneeded.");
+const u8 gText_4PlayersNeeded[] = _("4 players\nneeded.");
+const u8 gText_2PlayerMode[] = _("2-PLAYER\nMODE");
+const u8 gText_3PlayerMode[] = _("3-PLAYER\nMODE");
+const u8 gText_4PlayerMode[] = _("4-PLAYER\nMODE");
+const u8 gText_5PlayerMode[] = _("5-PLAYER\nMODE");
+
+const u8 *const gUnknown_082EDB60[][5] = {
+ {
+ gText_1PlayerNeeded,
+ gText_2PlayerMode,
+ NULL,
+ NULL,
+ NULL
+ }, {
+ gText_3PlayersNeeded,
+ gText_2PlayersNeeded,
+ gText_1PlayerNeeded,
+ gText_4PlayerMode,
+ NULL
+ }, {
+ gText_1PlayerNeeded,
+ gText_2PlayerMode,
+ gText_3PlayerMode,
+ gText_4PlayerMode,
+ gText_5PlayerMode
+ }, {
+ gText_2PlayersNeeded,
+ gText_1PlayerNeeded,
+ gText_3PlayerMode,
+ gText_4PlayerMode,
+ gText_5PlayerMode
+ }, {
+ gText_1PlayerNeeded,
+ gText_2PlayerMode,
+ gText_3PlayerMode,
+ gText_4PlayerMode,
+ NULL
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EDBC4[] = _("{B_BUTTON}CANCEL");
+ALIGNED(4) const u8 unref_text_union_room_2[] = _("ため\nさんかしゃ ぼしゅうちゅう です!");
+ALIGNED(4) const u8 gUnknown_082EDBE8[] = _("{STR_VAR_2} contacted you for\n{STR_VAR_1}. Accept?");
+ALIGNED(4) const u8 gUnknown_082EDC0C[] = _("{STR_VAR_2} contacted you.\nWill you share {STR_VAR_1}?");
+ALIGNED(4) const u8 gUnknown_082EDC34[] = _("{STR_VAR_2} contacted you.\nAdd to the members?");
+ALIGNED(4) const u8 gUnknown_082EDC5C[] = _("{STR_VAR_1}!\nAre these members OK?");
+ALIGNED(4) const u8 gUnknown_082EDC78[] = _("Cancel {STR_VAR_1} MODE\nwith these members?");
+ALIGNED(4) const u8 gUnknown_082EDC9C[] = _("An “OK” was sent\nto {STR_VAR_1}.");
+ALIGNED(4) const u8 gUnknown_082EDCB4[] = _("The other TRAINER doesn't appear\nto be available now…\p");
+ALIGNED(4) const u8 gUnknown_082EDCEC[] = _("You can't transmit with a TRAINER\nwho is too far away.\p");
+ALIGNED(4) const u8 gUnknown_082EDD24[] = _("The other TRAINER(S) is/are not\nready yet.\p");
+
+const u8 *const gUnknown_082EDD50[] = {
+ gUnknown_082EDCEC,
+ gUnknown_082EDD24
+};
+
+ALIGNED(4) const u8 gUnknown_082EDD58[] = _("The {STR_VAR_1} MODE with\nthese members will be canceled.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EDD8C[] = _("There is a member who can no\nlonger remain available.\p");
+
+const u8 *const gUnknown_082EDDC4[] = {
+ gUnknown_082EDCB4,
+ gUnknown_082EDD8C
+};
+
+ALIGNED(4) const u8 gUnknown_082EDDCC[] = _("The other TRAINER appears\nunavailable…\p");
+ALIGNED(4) const u8 gUnknown_082EDDF4[] = _("{STR_VAR_1} sent back an “OK”!");
+ALIGNED(4) const u8 gUnknown_082EDE0C[] = _("{STR_VAR_1} OK'd your registration as\na member.");
+ALIGNED(4) const u8 gUnknown_082EDE34[] = _("{STR_VAR_1} replied, “No…”\p");
+ALIGNED(4) const u8 gUnknown_082EDE48[] = _("{STR_VAR_1}!\nAwaiting other members!");
+ALIGNED(4) const u8 gUnknown_082EDE64[] = _("Quit being a member?");
+ALIGNED(4) const u8 gUnknown_082EDE7C[] = _("You stopped being a member.\p");
+
+const u8 *const gUnknown_082EDE9C[] = {
+ NULL,
+ gUnknown_082EDD8C,
+ gUnknown_082EDDCC,
+ NULL,
+ NULL,
+ NULL,
+ gUnknown_082EDE34,
+ NULL,
+ NULL,
+ gUnknown_082EDE7C
+};
+
+ALIGNED(4) const u8 gUnknown_082EDEC4[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been established.");
+ALIGNED(4) const u8 gUnknown_082EDF04[] = _("The WIRELESS COMMUNICATION\nSYSTEM link has been dropped…");
+ALIGNED(4) const u8 gUnknown_082EDF40[] = _("The link with your friend has been\ndropped…");
+ALIGNED(4) const u8 gUnknown_082EDF6C[] = _("{STR_VAR_1} replied, “No…”");
+
+const u8 *const gUnknown_082EDF80[] = {
+ NULL,
+ gUnknown_082EDF40,
+ gUnknown_082EDF40,
+ NULL,
+ NULL,
+ NULL,
+ gUnknown_082EDF6C,
+ NULL,
+ NULL,
+ NULL
+};
+
+ALIGNED(4) const u8 gUnknown_082EDFA8[] = _("Do you want the {STR_VAR_2}\nMODE?");
+ALIGNED(4) const u8 gUnknown_082EDFC4[] = _("Do you want the {STR_VAR_2}\nMODE?");
+
+const u8 *const unref_text_ptrs_union_room_1[] = {
+ gUnknown_082EDFA8,
+ gUnknown_082EDFC4
+};
+
+ALIGNED(4) const u8 unref_text_union_room_3[] = _("Communicating…\nPlease wait.");
+ALIGNED(4) const u8 gUnknown_082EE004[] = _("Awaiting {STR_VAR_1}'s response about\nthe trade…");
+ALIGNED(4) const u8 gUnknown_082EE02C[] = _("Communicating{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+ALIGNED(4) const u8 gUnknown_082EE098[] = _("Communicating with {STR_VAR_1}{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+ALIGNED(4) const u8 gUnknown_082EE104[] = _("Please wait a while{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.\n{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.{PAUSE 15}.");
+
+const u8 *const gUnknown_082EE17C[] = {
+ gUnknown_082EE02C,
+ gUnknown_082EE098,
+ gUnknown_082EE104
+};
+
+ALIGNED(4) const u8 gUnknown_082EE188[] = _("Hiya! Is there something that you\nwanted to do?");
+ALIGNED(4) const u8 gUnknown_082EE1B8[] = _("Hello!\nWould you like to do something?");
+ALIGNED(4) const u8 gUnknown_082EE1E0[] = _("{STR_VAR_1}: Hiya, we meet again!\nWhat are you up for this time?");
+ALIGNED(4) const u8 gUnknown_082EE218[] = _("{STR_VAR_1}: Oh! {PLAYER}, hello!\nWould you like to do something?");
+
+const u8 *const gUnknown_082EE24C[][2] = {
+ {
+ gUnknown_082EE188,
+ gUnknown_082EE1B8
+ }, {
+ gUnknown_082EE1E0,
+ gUnknown_082EE218
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EE25C[] = _("Want to do something?");
+ALIGNED(4) const u8 gUnknown_082EE274[] = _("Would you like to do something?");
+ALIGNED(4) const u8 gUnknown_082EE294[] = _("{STR_VAR_1}: What would you like to\ndo now?");
+ALIGNED(4) const u8 unref_text_union_room_4[] = _("{STR_VAR_1}: Want to do anything else?");
+
+const u8 *const unref_text_ptrs_union_room_2[][2] = {
+ {
+ gUnknown_082EE25C,
+ gUnknown_082EE274
+ }, {
+ gUnknown_082EE294,
+ gUnknown_082EE294
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EE2E8[] = _("Somebody has contacted you.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE308[] = _("{STR_VAR_1} has contacted you.{PAUSE 60}");
+
+const u8 *const gUnknown_082EE324[] = {
+ gUnknown_082EE2E8,
+ gUnknown_082EE308
+};
+
+ALIGNED(4) const u8 gUnknown_082EE32C[] = _("Awaiting a response from\nthe other TRAINER…");
+ALIGNED(4) const u8 gUnknown_082EE358[] = _("Awaiting a response from\n{STR_VAR_1}…");
+
+const u8 *const gUnknown_082EE378[] = {
+ gUnknown_082EE32C,
+ gUnknown_082EE358
+};
+
+ALIGNED(4) const u8 gUnknown_082EE380[] = _("The other TRAINER showed\nyou their TRAINER CARD.\pWould you like to show your\nTRAINER CARD?");
+ALIGNED(4) const u8 gUnknown_082EE3DC[] = _("The other TRAINER challenges you\nto battle.\pWill you accept the battle\nchallenge?");
+ALIGNED(4) const u8 gUnknown_082EE430[] = _("The other TRAINER invites you\nto chat.\pWill you accept the chat\ninvitation?");
+ALIGNED(4) const u8 gUnknown_082EE47C[] = _("There is an offer to trade your\nregistered Lv. {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}\pin exchange for a\nLv. {SPECIAL_F7 0x02} {SPECIAL_F7 0x03}.\pWill you accept this trade\noffer?");
+ALIGNED(4) const u8 gUnknown_082EE4F0[] = _("There is an offer to trade your\nregistered EGG.\lWill you accept this trade offer?");
+ALIGNED(4) const u8 gUnknown_082EE544[] = _("The chat has been dropped.\p");
+ALIGNED(4) const u8 gUnknown_082EE560[] = _("You declined the offer.\p");
+ALIGNED(4) const u8 gUnknown_082EE57C[] = _("You declined the offer.\p");
+ALIGNED(4) const u8 gUnknown_082EE598[] = _("The chat was ended.\p");
+
+const u8 *const unref_text_ptrs_union_room_3[] = {
+ gUnknown_082EE380,
+ gUnknown_082EE3DC,
+ gUnknown_082EE430,
+ gUnknown_082EE47C
+};
+
+ALIGNED(4) const u8 gUnknown_082EE5C0[] = _("Oh, hey! We're in a chat right now.\nWant to join us?");
+ALIGNED(4) const u8 gUnknown_082EE5F8[] = _("{STR_VAR_1}: Hey, {PLAYER}!\nWe're having a chat right now.\lWant to join us?");
+ALIGNED(4) const u8 gUnknown_082EE638[] = _("Oh, hi! We're having a chat now.\nWould you like to join us?");
+ALIGNED(4) const u8 gUnknown_082EE674[] = _("{STR_VAR_1}: Oh, hi, {PLAYER}!\nWe're having a chat now.\lWould you like to join us?");
+
+const u8 *const gUnknown_082EE6B8[][2] = {
+ {
+ gUnknown_082EE5C0,
+ gUnknown_082EE638
+ }, {
+ gUnknown_082EE5F8,
+ gUnknown_082EE674
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EE6C8[] = _("……\nThe TRAINER appears to be busy…\p");
+ALIGNED(4) const u8 gUnknown_082EE6EC[] = _("A battle, huh?\nAll right, just give me some time.");
+ALIGNED(4) const u8 gUnknown_082EE720[] = _("You want to chat, huh?\nSure, just wait a little.");
+ALIGNED(4) const u8 gUnknown_082EE754[] = _("Sure thing! As my “Greetings,”\nhere's my TRAINER CARD.");
+ALIGNED(4) const u8 gUnknown_082EE78C[] = _("A battle? Of course, but I need\ntime to get ready.");
+ALIGNED(4) const u8 gUnknown_082EE7C0[] = _("Did you want to chat?\nOkay, but please wait a moment.");
+ALIGNED(4) const u8 gUnknown_082EE7F8[] = _("As my introduction, I'll show you\nmy TRAINER CARD.");
+
+const u8 *const gUnknown_082EE82C[][4] = {
+ {
+ gUnknown_082EE6EC,
+ gUnknown_082EE720,
+ NULL,
+ gUnknown_082EE754
+ }, {
+ gUnknown_082EE78C,
+ gUnknown_082EE7C0,
+ NULL,
+ gUnknown_082EE7F8
+ }
+};
+
+ALIGNED(4) const u8 unref_text_union_room_5[] = _("You want to chat, huh?\nSure, just wait a little.");
+ALIGNED(4) const u8 gUnknown_082EE880[] = _("Thanks for waiting!\nLet's get our battle started!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE8B8[] = _("All right!\nLet's chat!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE8D4[] = _("Sorry I made you wait!\nLet's get started!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE904[] = _("Sorry I made you wait!\nLet's chat.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE92C[] = _("The trade will be started.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE94C[] = _("The battle will be started.{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EE96C[] = _("Entering the chat…{PAUSE 60}");
+
+const u8 *const gUnknown_082EE984[][2][3] = {
+ {
+ {
+ gUnknown_082EE94C,
+ gUnknown_082EE96C,
+ gUnknown_082EE92C
+ }, {
+ gUnknown_082EE94C,
+ gUnknown_082EE96C,
+ gUnknown_082EE92C
+ }
+ }, {
+ {
+ gUnknown_082EE880,
+ gUnknown_082EE8B8,
+ gUnknown_082EE92C
+ }, {
+ gUnknown_082EE8D4,
+ gUnknown_082EE904,
+ gUnknown_082EE92C
+ }
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EE9B4[] = _("Sorry! My POKéMON don't seem to\nbe feeling too well right now.\lLet me battle you another time.\p");
+ALIGNED(4) const u8 gUnknown_082EEA14[] = _("I'm terribly sorry, but my POKéMON\naren't feeling well…\pLet's battle another time.\p");
+
+const u8 *const gUnknown_082EEA68[] = {
+ gUnknown_082EE9B4,
+ gUnknown_082EEA14
+};
+
+ALIGNED(4) const u8 gUnknown_082EEA70[] = _("Huh? My TRAINER CARD…\nWhere'd it go now?\lSorry! I'll show you another time!\p");
+ALIGNED(4) const u8 gUnknown_082EEAC0[] = _("Oh? Now where did I put my\nTRAINER CARD?…\lSorry! I'll show you later!\p");
+
+const u8 *const gUnknown_082EEB08[] = {
+ gUnknown_082EEA70,
+ gUnknown_082EEAC0
+};
+
+ALIGNED(4) const u8 gUnknown_082EEB10[] = _("If you want to do something with\nme, just give me a shout!\p");
+ALIGNED(4) const u8 gUnknown_082EEB4C[] = _("If you want to do something with\nme, don't be shy.\p");
+
+const u8 *const gUnknown_082EEB80[] = {
+ gUnknown_082EEB10,
+ gUnknown_082EEB4C
+};
+
+ALIGNED(4) const u8 gUnknown_082EEB88[] = _("Whoops! Sorry, but I have to do\nsomething else.\lAnother time, okay?\p");
+ALIGNED(4) const u8 gUnknown_082EEBD0[] = _("If you want to battle, you need\ntwo POKéMON that are below\lLv. 30.\p");
+ALIGNED(4) const u8 gUnknown_082EEC14[] = _("For a battle, you need two\nPOKéMON that are below Lv. 30.\p");
+ALIGNED(4) const u8 gUnknown_082EEC50[] = _("Oh, all right.\nCome see me anytime, okay?\p");
+ALIGNED(4) const u8 gUnknown_082EEC7C[] = _("Oh…\nPlease come by anytime.\p");
+
+const u8 *const gUnknown_082EEC9C[] = {
+ gUnknown_082EEC50,
+ gUnknown_082EEC7C
+};
+
+ALIGNED(4) const u8 gUnknown_082EECA4[] = _("Oh, sorry!\nI just can't right this instant.\lLet's chat another time.\p");
+ALIGNED(4) const u8 gUnknown_082EECEC[] = _("Oh, I'm sorry.\nI have too much to do right now.\lLet's chat some other time.\p");
+
+const u8 *const gUnknown_082EED3C[] = {
+ gUnknown_082EECA4,
+ gUnknown_082EECEC
+};
+
+ALIGNED(4) const u8 gUnknown_082EED44[] = _("Whoa!\nI can tell you're pretty tough!\p");
+ALIGNED(4) const u8 gUnknown_082EED6C[] = _("You used that move?\nThat's good strategy!\p");
+ALIGNED(4) const u8 gUnknown_082EED98[] = _("Way to go!\nThat was an eye-opener!\p");
+ALIGNED(4) const u8 gUnknown_082EEDBC[] = _("Oh! How could you use that\nPOKéMON in that situation?\p");
+ALIGNED(4) const u8 gUnknown_082EEDF4[] = _("That POKéMON…\nIt's been raised really well!\p");
+ALIGNED(4) const u8 gUnknown_082EEE24[] = _("That's it!\nThis is the right move now!\p");
+ALIGNED(4) const u8 gUnknown_082EEE4C[] = _("That's awesome!\nYou can battle that way?\p");
+ALIGNED(4) const u8 gUnknown_082EEE78[] = _("You have exquisite timing for\nswitching POKéMON!\p");
+
+const u8 *const gUnknown_082EEEAC[][4] = {
+ {
+ gUnknown_082EED44,
+ gUnknown_082EED6C,
+ gUnknown_082EED98,
+ gUnknown_082EEDBC
+ }, {
+ gUnknown_082EEDF4,
+ gUnknown_082EEE24,
+ gUnknown_082EEE4C,
+ gUnknown_082EEE78
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EEECC[] = _("Oh, I see!\nThis is educational!\p");
+ALIGNED(4) const u8 gUnknown_082EEEF0[] = _("Don't say anything funny anymore!\nI'm sore from laughing!\p");
+ALIGNED(4) const u8 gUnknown_082EEF2C[] = _("Oh?\nSomething like that happened.\p");
+ALIGNED(4) const u8 gUnknown_082EEF50[] = _("Hmhm… What?\nSo is this what you're saying?\p");
+ALIGNED(4) const u8 gUnknown_082EEF7C[] = _("Is that right?\nI didn't know that.\p");
+ALIGNED(4) const u8 gUnknown_082EEFA0[] = _("Ahaha!\nWhat is that about?\p");
+ALIGNED(4) const u8 gUnknown_082EEFBC[] = _("Yes, that's exactly it!\nThat's what I meant.\p");
+ALIGNED(4) const u8 gUnknown_082EEFEC[] = _("In other words…\nYes! That's right!\p");
+
+const u8 *const gUnknown_082EF010[][4] = {
+ {
+ gUnknown_082EEECC,
+ gUnknown_082EEEF0,
+ gUnknown_082EEF2C,
+ gUnknown_082EEF50
+ }, {
+ gUnknown_082EEF7C,
+ gUnknown_082EEFA0,
+ gUnknown_082EEFBC,
+ gUnknown_082EEFEC
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EF030[] = _("I'm just showing my TRAINER CARD\nas my way of greeting.\p");
+ALIGNED(4) const u8 gUnknown_082EF06C[] = _("I hope I get to know you better!\p");
+ALIGNED(4) const u8 gUnknown_082EF090[] = _("We're showing each other our\nTRAINER CARDS to get acquainted.\p");
+ALIGNED(4) const u8 gUnknown_082EF0D0[] = _("Glad to meet you.\nPlease don't be a stranger!\p");
+
+const u8 *const gUnknown_082EF100[][2] = {
+ {
+ gUnknown_082EF030,
+ gUnknown_082EF06C
+ }, {
+ gUnknown_082EF090,
+ gUnknown_082EF0D0
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EF110[] = _("Yeahah!\nI really wanted this POKéMON!\p");
+ALIGNED(4) const u8 gUnknown_082EF138[] = _("Finally, a trade got me that\nPOKéMON I'd wanted a long time.\p");
+ALIGNED(4) const u8 gUnknown_082EF178[] = _("I'm trading POKéMON right now.\p");
+ALIGNED(4) const u8 gUnknown_082EF198[] = _("I finally got that POKéMON I\nwanted in a trade!\p");
+
+const u8 *const gUnknown_082EF1CC[][4] = {
+ {
+ gUnknown_082EF110,
+ gUnknown_082EF138,
+ NULL,
+ NULL
+ }, {
+ gUnknown_082EF178,
+ gUnknown_082EF198,
+ NULL,
+ NULL
+ }
+};
+
+ALIGNED(4) const u8 gUnknown_082EF1EC[] = _("{STR_VAR_1} checked the\nTRADING BOARD.\p");
+ALIGNED(4) const u8 gUnknown_082EF20C[] = _("Welcome to the TRADING BOARD.\pYou may register your POKéMON\nand offer it up for a trade.\pWould you like to register one of\nyour POKéMON?");
+ALIGNED(4) const u8 gUnknown_082EF298[] = _("This TRADING BOARD is used for\noffering a POKéMON for a trade.\pAll you need to do is register a\nPOKéMON for a trade.\pAnother TRAINER may offer a party\nPOKéMON in return for the trade.\pWe hope you will register POKéMON\nand trade them with many, many\lother TRAINERS.\pWould you like to register one of\nyour POKéMON?");
+ALIGNED(4) const u8 unref_text_union_room_6[] = _("We have registered your POKéMON for\ntrade on the TRADING BOARD.\pThank you for using this service!\p");
+ALIGNED(4) const u8 unref_text_union_room_7[] = _("Nobody has registered any POKéMON\nfor trade on the TRADING BOARD.\p\n");
+ALIGNED(4) const u8 gUnknown_082EF47C[] = _("Please choose the type of POKéMON\nthat you would like in the trade.\n");
+ALIGNED(4) const u8 gUnknown_082EF4C4[] = _("Which of your party POKéMON will\nyou offer in trade?\p");
+ALIGNED(4) const u8 gUnknown_082EF4FC[] = _("Registration has been canceled.\p");
+ALIGNED(4) const u8 gUnknown_082EF520[] = _("Registration has been completed.\p");
+ALIGNED(4) const u8 gUnknown_082EF544[] = _("The trade has been canceled.\p");
+ALIGNED(4) const u8 gUnknown_082EF564[] = _("Cancel the registration of your\nLv. {STR_VAR_2} {STR_VAR_1}?");
+ALIGNED(4) const u8 gUnknown_082EF590[] = _("Cancel the registration of your\nEGG?");
+ALIGNED(4) const u8 gUnknown_082EF5B8[] = _("The registration has been canceled.\p");
+ALIGNED(4) const u8 unref_text_union_room_8[] = _("TRAINERS wishing to make a trade\nwill be listed.");
+ALIGNED(4) const u8 unref_text_union_room_9[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON.");
+ALIGNED(4) const u8 gUnknown_082EF65C[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
+ALIGNED(4) const u8 unref_text_union_room_10[] = _("Awaiting a response from\nthe other TRAINER…");
+ALIGNED(4) const u8 unref_text_union_room_11[] = _("You have not registered a POKéMON\nfor trading.\p");
+ALIGNED(4) const u8 gUnknown_082EF6E4[] = _("You don't have a {STR_VAR_2}-type\nPOKéMON that {STR_VAR_1} wants.\p");
+ALIGNED(4) const u8 gUnknown_082EF718[] = _("You don't have an EGG that\n{STR_VAR_1} wants.\p");
+ALIGNED(4) const u8 gUnknown_082EF740[] = _("{STR_VAR_1} can't make a trade for\nyour POKéMON right now.\p");
+ALIGNED(4) const u8 gUnknown_082EF774[] = _("You can't make a trade for\n{STR_VAR_1}'s POKéMON right now.\p");
+
+const u8 *const unref_text_ptrs_union_room_4[] = {
+ gUnknown_082EF740,
+ gUnknown_082EF774
+};
+
+ALIGNED(4) const u8 gUnknown_082EF7B0[] = _("Your trade offer was rejected.\p");
+ALIGNED(4) const u8 gUnknown_082EF7D0[] = _("EGG TRADE");
+ALIGNED(4) const u8 gUnknown_082EF7DC[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL");
+ALIGNED(4) const u8 gUnknown_082EF7F8[] = _("Please choose a TRAINER.");
+ALIGNED(4) const u8 gUnknown_082EF814[] = _("Please choose a TRAINER for\na SINGLE BATTLE.");
+ALIGNED(4) const u8 gUnknown_082EF844[] = _("Please choose a TRAINER for\na DOUBLE BATTLE.");
+ALIGNED(4) const u8 gUnknown_082EF874[] = _("Please choose the LEADER\nfor a MULTI BATTLE.");
+ALIGNED(4) const u8 gUnknown_082EF8A4[] = _("Please choose the TRAINER to\ntrade with.");
+ALIGNED(4) const u8 gUnknown_082EF8D0[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS.");
+ALIGNED(4) const u8 gUnknown_082EF908[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS.");
+ALIGNED(4) const u8 gUnknown_082EF940[] = _("Jump with mini POKéMON!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EF974[] = _("BERRY CRUSH!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EF99C[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EF9CC[] = _("BERRY BLENDER!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EF9F8[] = _("RECORD CORNER!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFA24[] = _("COOLNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFA50[] = _("BEAUTY CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFA7C[] = _("CUTENESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFAA8[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFAD8[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFB08[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 gUnknown_082EFB3C[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER.");
+
+const u8 *const gUnknown_082EFB70[] = {
+ gUnknown_082EF814,
+ gUnknown_082EF844,
+ gUnknown_082EF874,
+ gUnknown_082EF8A4,
+ gUnknown_082EF940,
+ gUnknown_082EF974,
+ gUnknown_082EF99C,
+ gUnknown_082EF8D0,
+ gUnknown_082EF908,
+ NULL,
+ NULL,
+ NULL,
+ gUnknown_082EF9F8,
+ gUnknown_082EF9CC,
+ NULL,
+ gUnknown_082EFA24,
+ gUnknown_082EFA50,
+ gUnknown_082EFA7C,
+ gUnknown_082EFAA8,
+ gUnknown_082EFAD8,
+ gUnknown_082EFB08,
+ gUnknown_082EFB3C
+};
+
+ALIGNED(4) const u8 gUnknown_082EFBC8[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...");
+ALIGNED(4) const u8 unref_text_union_room_12[] = _("For a DOUBLE BATTLE, you must have\nat least two POKéMON.\p");
+ALIGNED(4) const u8 gUnknown_082EFC3C[] = _("Awaiting {STR_VAR_1}'s response…");
+ALIGNED(4) const u8 gUnknown_082EFC54[] = _("{STR_VAR_1} has been asked to register\nyou as a member. Please wait.");
+ALIGNED(4) const u8 gUnknown_082EFC90[] = _("Awaiting a response from the\nWIRELESS COMMUNICATION SYSTEM.");
+ALIGNED(4) const u8 unref_text_union_room_13[] = _("Please wait for other TRAINERS to\ngather and get ready.");
+ALIGNED(4) const u8 gUnknown_082EFD04[] = _("No CARDS appear to be shared \nright now.");
+ALIGNED(4) const u8 gUnknown_082EFD30[] = _("No NEWS appears to be shared\nright now.");
+
+const u8 *const gUnknown_082EFD58[] = {
+ gUnknown_082EFD04,
+ gUnknown_082EFD30
+};
+
+ALIGNED(4) const u8 gUnknown_082EFD60[] = _("BATTLE");
+ALIGNED(4) const u8 gUnknown_082EFD68[] = _("CHAT");
+ALIGNED(4) const u8 gUnknown_082EFD70[] = _("GREETINGS");
+ALIGNED(4) const u8 gUnknown_082EFD7C[] = _("EXIT");
+ALIGNED(4) const u8 gUnknown_082EFD84[] = _("EXIT");
+ALIGNED(4) const u8 gUnknown_082EFD8C[] = _("INFO");
+ALIGNED(4) const u8 gUnknown_082EFD94[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.");
+ALIGNED(4) const u8 gUnknown_082EFDB0[] = _("SINGLE BATTLE");
+ALIGNED(4) const u8 gUnknown_082EFDC0[] = _("DOUBLE BATTLE");
+ALIGNED(4) const u8 gUnknown_082EFDD0[] = _("MULTI BATTLE");
+ALIGNED(4) const u8 gUnknown_082EFDE0[] = _("POKéMON TRADES");
+ALIGNED(4) const u8 gUnknown_082EFDF0[] = _("CHAT");
+ALIGNED(4) const u8 gUnknown_082EFDF8[] = _("CARDS");
+ALIGNED(4) const u8 gUnknown_082EFE00[] = _("WONDER CARDS");
+ALIGNED(4) const u8 gUnknown_082EFE10[] = _("WONDER NEWS");
+ALIGNED(4) const u8 gUnknown_082EFE1C[] = _("POKéMON JUMP");
+ALIGNED(4) const u8 gUnknown_082EFE2C[] = _("BERRY CRUSH");
+ALIGNED(4) const u8 gUnknown_082EFE38[] = _("BERRY-PICKING");
+ALIGNED(4) const u8 gUnknown_082EFE48[] = _("SEARCH");
+ALIGNED(4) const u8 gUnknown_082EFE50[] = _("BERRY BLENDER");
+ALIGNED(4) const u8 gUnknown_082EFE60[] = _("RECORD CORNER");
+ALIGNED(4) const u8 gUnknown_082EFE70[] = _("COOL CONTEST");
+ALIGNED(4) const u8 gUnknown_082EFE80[] = _("BEAUTY CONTEST");
+ALIGNED(4) const u8 gUnknown_082EFE90[] = _("CUTE CONTEST");
+ALIGNED(4) const u8 gUnknown_082EFEA0[] = _("SMART CONTEST");
+ALIGNED(4) const u8 gUnknown_082EFEB0[] = _("TOUGH CONTEST");
+ALIGNED(4) const u8 gUnknown_082EFEC0[] = _("BATTLE TOWER LV. 50");
+ALIGNED(4) const u8 gUnknown_082EFED4[] = _("BATTLE TOWER OPEN LEVEL");
+ALIGNED(4) const u8 gUnknown_082EFEEC[] = _("It's a NORMAL CARD.");
+ALIGNED(4) const u8 gUnknown_082EFF00[] = _("It's a BRONZE CARD!");
+ALIGNED(4) const u8 gUnknown_082EFF14[] = _("It's a COPPER CARD!");
+ALIGNED(4) const u8 gUnknown_082EFF28[] = _("It's a SILVER CARD!");
+ALIGNED(4) const u8 gUnknown_082EFF3C[] = _("It's a GOLD CARD!");
+
+const u8 *const gUnknown_082EFF50[] = {
+ gUnknown_082EFEEC,
+ gUnknown_082EFF00,
+ gUnknown_082EFF14,
+ gUnknown_082EFF28,
+ gUnknown_082EFF3C
+};
+
+ALIGNED(4) const u8 gUnknown_082EFF64[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p");
+ALIGNED(4) const u8 gUnknown_082EFFA4[] = _("BATTLES: WINS: {SPECIAL_F7 0x00} LOSSES: {SPECIAL_F7 0x02}\nTRADES: {SPECIAL_F7 0x03}\p“{SPECIAL_F7 0x04} {SPECIAL_F7 0x05}\n{SPECIAL_F7 0x06} {SPECIAL_F7 0x07}”\p");
+ALIGNED(4) const u8 gUnknown_082EFFDC[] = _("{SPECIAL_F7 0x01}: Glad to have met you!{PAUSE 60}");
+ALIGNED(4) const u8 gUnknown_082EFFFC[] = _("{SPECIAL_F7 0x01}: Glad to meet you!{PAUSE 60}");
+
+const u8 *const gUnknown_082F0018[] = {
+ gUnknown_082EFFDC,
+ gUnknown_082EFFFC
+};
+
+ALIGNED(4) const u8 gUnknown_082F0020[] = _("Finished checking {SPECIAL_F7 0x01}'s\nTRAINER CARD.{PAUSE 60}");
+
+const u8 *const gUnknown_082F0048[] = {
+ gText_EmptyString,
+ gUnknown_082EFDB0,
+ gUnknown_082EFDC0,
+ gUnknown_082EFDD0,
+ gUnknown_082EFDE0,
+ gUnknown_082EFDF0,
+ gUnknown_082EFE00,
+ gUnknown_082EFE10,
+ gUnknown_082EFDF8,
+ gUnknown_082EFE1C,
+ gUnknown_082EFE2C,
+ gUnknown_082EFE38,
+ gUnknown_082EFE48,
+ gText_EmptyString,
+ gUnknown_082EFED4,
+ gUnknown_082EFE60,
+ gUnknown_082EFE50,
+ gText_EmptyString,
+ gText_EmptyString,
+ gText_EmptyString,
+ gText_EmptyString,
+ gUnknown_082EFE00,
+ gUnknown_082EFE10,
+ gUnknown_082EFE70,
+ gUnknown_082EFE80,
+ gUnknown_082EFE90,
+ gUnknown_082EFEA0,
+ gUnknown_082EFEB0,
+ gUnknown_082EFEC0
+};
+
+const struct WindowTemplate gUnknown_082F00BC = {
+ .bg = 0x00,
+ .tilemapLeft = 0x00,
+ .tilemapTop = 0x00,
+ .width = 0x1E,
+ .height = 0x02,
+ .paletteNum = 0x0F,
+ .baseBlock = 0x0008
+};
+
+const u32 gUnknown_082F00C4[] = {
+ 0x0201,
+ 0x0202,
+ 0x0403,
+ 0x0204,
+ 0x2509,
+ 0x250a,
+ 0x350b,
+ 0x0000,
+ 0x0000,
+ 0x0000,
+ 0x0000,
+ 0x0000,
+ 0x240f,
+ 0x2410,
+ 0x0000,
+ 0x2417,
+ 0x2418,
+ 0x2419,
+ 0x241a,
+ 0x241b,
+ 0x021c,
+ 0x020e
+};
+
+const struct WindowTemplate gUnknown_082F011C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x03,
+ .width = 0x0d,
+ .height = 0x08,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0044
+};
+
+const struct WindowTemplate gUnknown_082F0124 = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x03,
+ .width = 0x0d,
+ .height = 0x0a,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0044
+};
+
+const struct WindowTemplate gUnknown_082F012C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x10,
+ .tilemapTop = 0x03,
+ .width = 0x07,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x00c6
+};
+
+const struct ListMenuItem gUnknown_082F0134[] = {
+ { gText_EmptyString, 0 },
+ { gText_EmptyString, 1 },
+ { gText_EmptyString, 2 },
+ { gText_EmptyString, 3 },
+ { gText_EmptyString, 4 }
+};
+
+const struct ListMenuTemplate gUnknown_082F015C = {
+ .items = gUnknown_082F0134,
+ .moveCursorFunc = NULL,
+ .itemPrintFunc = sub_8013278,
+ .totalItems = 5,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 0,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 0,
+ .fontId = 1,
+ .cursorKind = 1
+};
+
+const struct WindowTemplate gUnknown_082F0174 = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x03,
+ .width = 0x11,
+ .height = 0x0a,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0044
+};
+
+const struct WindowTemplate gUnknown_082F017C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x14,
+ .tilemapTop = 0x03,
+ .width = 0x07,
+ .height = 0x04,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x00ee
+};
+
+const struct ListMenuItem gUnknown_082F0184[] = {
+ { gText_EmptyString, 0 },
+ { gText_EmptyString, 1 },
+ { gText_EmptyString, 2 },
+ { gText_EmptyString, 3 },
+ { gText_EmptyString, 4 },
+ { gText_EmptyString, 5 },
+ { gText_EmptyString, 6 },
+ { gText_EmptyString, 7 },
+ { gText_EmptyString, 8 },
+ { gText_EmptyString, 9 },
+ { gText_EmptyString, 10 },
+ { gText_EmptyString, 11 },
+ { gText_EmptyString, 12 },
+ { gText_EmptyString, 13 },
+ { gText_EmptyString, 14 },
+ { gText_EmptyString, 15 }
+};
+
+const struct ListMenuTemplate gUnknown_082F0204 = {
+ .items = gUnknown_082F0184,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_8013DF4,
+ .totalItems = 16,
+ .maxShowed = 5,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 1,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct WindowTemplate gUnknown_082F021C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x14,
+ .tilemapTop = 0x05,
+ .width = 0x10,
+ .height = 0x08,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+};
+
+const struct ListMenuItem gUnknown_082F0224[] = {
+ { gUnknown_082EFD70, 0x208 },
+ { gUnknown_082EFD60, 0x241 },
+ { gUnknown_082EFD68, 0x245 },
+ { gUnknown_082EFD7C, 0x040 }
+};
+
+const struct ListMenuTemplate gUnknown_082F0244 = {
+ .items = gUnknown_082F0224,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 4,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 0,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct WindowTemplate gUnknown_082F025C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x12,
+ .tilemapTop = 0x07,
+ .width = 0x10,
+ .height = 0x06,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+};
+
+const struct ListMenuItem gUnknown_082F0264[] = {
+ { gText_Register, 1 },
+ { gUnknown_082EFD8C, 2 },
+ { gUnknown_082EFD7C, 3 }
+};
+
+const struct ListMenuTemplate gUnknown_082F027C = {
+ .items = gUnknown_082F0264,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = 3,
+ .maxShowed = 3,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 0,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct WindowTemplate gUnknown_082F0294 = {
+ .bg = 0x00,
+ .tilemapLeft = 0x14,
+ .tilemapTop = 0x01,
+ .width = 0x10,
+ .height = 0x0c,
+ .paletteNum = 0x0f,
+ .baseBlock = 0x0001
+};
+
+const struct ListMenuItem gUnknown_082F029C[] = {
+ { gTypeNames[TYPE_NORMAL], TYPE_NORMAL },
+ { gTypeNames[TYPE_FIRE], TYPE_FIRE },
+ { gTypeNames[TYPE_WATER], TYPE_WATER },
+ { gTypeNames[TYPE_ELECTRIC], TYPE_ELECTRIC },
+ { gTypeNames[TYPE_GRASS], TYPE_GRASS },
+ { gTypeNames[TYPE_ICE], TYPE_ICE },
+ { gTypeNames[TYPE_GROUND], TYPE_GROUND },
+ { gTypeNames[TYPE_ROCK], TYPE_ROCK },
+ { gTypeNames[TYPE_FLYING], TYPE_FLYING },
+ { gTypeNames[TYPE_PSYCHIC], TYPE_PSYCHIC },
+ { gTypeNames[TYPE_FIGHTING], TYPE_FIGHTING },
+ { gTypeNames[TYPE_POISON], TYPE_POISON },
+ { gTypeNames[TYPE_BUG], TYPE_BUG },
+ { gTypeNames[TYPE_GHOST], TYPE_GHOST },
+ { gTypeNames[TYPE_DRAGON], TYPE_DRAGON },
+ { gTypeNames[TYPE_STEEL], TYPE_STEEL },
+ { gTypeNames[TYPE_DARK], TYPE_DARK },
+ { gUnknown_082EFD7C, NUMBER_OF_MON_TYPES }
+};
+
+const struct ListMenuTemplate gUnknown_082F032C = {
+ .items = gUnknown_082F029C,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = NULL,
+ .totalItems = NUMBER_OF_MON_TYPES,
+ .maxShowed = 6,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 0,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct WindowTemplate gUnknown_082F0344 = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x01,
+ .width = 0x1c,
+ .height = 0x02,
+ .paletteNum = 0x0d,
+ .baseBlock = 0x0001
+};
+
+const struct WindowTemplate gUnknown_082F034C = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x05,
+ .width = 0x1c,
+ .height = 0x0c,
+ .paletteNum = 0x0d,
+ .baseBlock = 0x0039
+};
+
+const struct ListMenuItem gUnknown_082F0354[] = {
+ { gText_EmptyString, -3 },
+ { gText_EmptyString, 0 },
+ { gText_EmptyString, 1 },
+ { gText_EmptyString, 2 },
+ { gText_EmptyString, 3 },
+ { gText_EmptyString, 4 },
+ { gText_EmptyString, 5 },
+ { gText_EmptyString, 6 },
+ { gText_EmptyString, 7 },
+ { gUnknown_082EFD84, 8 }
+};
+
+const struct ListMenuTemplate gUnknown_082F03A4 = {
+ .items = gUnknown_082F0354,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = sub_8017BE8,
+ .totalItems = 10,
+ .maxShowed = 6,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 14,
+ .fillValue = 15,
+ .cursorShadowPal = 13,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 0,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct WindowTemplate UnrefWindowTemplate_082F03B4 = {
+ .bg = 0x00,
+ .tilemapLeft = 0x01,
+ .tilemapTop = 0x05,
+ .width = 0x1c,
+ .height = 0x0c,
+ .paletteNum = 0x0d,
+ .baseBlock = 0x0039
+};
+
+const struct ListMenuItem gUnknown_082F03C4[] = {
+ { gText_EmptyString, 0 },
+ { gText_EmptyString, 1 },
+ { gText_EmptyString, 2 },
+ { gText_EmptyString, 3 },
+ { gText_EmptyString, 4 },
+ { gText_EmptyString, 5 },
+ { gText_EmptyString, 6 },
+ { gText_EmptyString, 7 },
+ { gText_EmptyString, 8 },
+ { gText_EmptyString, 9 },
+ { gText_EmptyString, 10 },
+ { gText_EmptyString, 11 },
+ { gText_EmptyString, 12 },
+ { gText_EmptyString, 13 },
+ { gText_EmptyString, 14 },
+ { gText_EmptyString, 15 }
+};
+
+const struct ListMenuTemplate UnrefListMenuTemplate_082F0444 = {
+ .items = gUnknown_082F03C4,
+ .moveCursorFunc = ListMenuDefaultCursorMoveFunc,
+ .itemPrintFunc = nullsub_14,
+ .totalItems = 16,
+ .maxShowed = 4,
+ .windowId = 0,
+ .header_X = 0,
+ .item_X = 8,
+ .cursor_X = 0,
+ .upText_Y = 1,
+ .cursorPal = 2,
+ .fillValue = 1,
+ .cursorShadowPal = 3,
+ .lettersSpacing = 0,
+ .itemVerticalPadding = 0,
+ .scrollMultiple = 1,
+ .fontId = 1,
+ .cursorKind = 0
+};
+
+const struct UnkStruct_Shared gUnknown_082F045C = {0};
+
+ALIGNED(4) const u8 gUnknown_082F0474[] = {0x01, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0478[] = {0x02, 0xff};
+ALIGNED(4) const u8 gUnknown_082F047C[] = {0x03, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0480[] = {0x04, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0484[] = {0x09, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0488[] = {0x0a, 0xff};
+ALIGNED(4) const u8 gUnknown_082F048C[] = {0x0b, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0490[] = {0x15, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0494[] = {0x16, 0xff};
+ALIGNED(4) const u8 gUnknown_082F0498[] = {0x40, 0x41, 0x44, 0x45, 0x48, 0x51, 0x52, 0x53, 0x54, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04A4[] = {0x0c, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04A8[] = {0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15, 0x16, 0x0d, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04B4[] = {0x0f, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04B8[] = {0x10, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04BC[] = {0x17, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04C0[] = {0x18, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04C4[] = {0x19, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04C8[] = {0x1a, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04CC[] = {0x1b, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04D0[] = {0x1c, 0xff};
+ALIGNED(4) const u8 gUnknown_082F04D4[] = {0x0e, 0xff};
+
+const u8 *const gUnknown_082F04D8[] = {
+ gUnknown_082F0474,
+ gUnknown_082F0478,
+ gUnknown_082F047C,
+ gUnknown_082F0480,
+ gUnknown_082F0484,
+ gUnknown_082F0488,
+ gUnknown_082F048C,
+ gUnknown_082F0490,
+ gUnknown_082F0494,
+ gUnknown_082F0498,
+ gUnknown_082F04A4,
+ gUnknown_082F04A8,
+ gUnknown_082F04B4,
+ gUnknown_082F04B8,
+ NULL,
+ gUnknown_082F04BC,
+ gUnknown_082F04C0,
+ gUnknown_082F04C4,
+ gUnknown_082F04C8,
+ gUnknown_082F04CC,
+ gUnknown_082F04D0,
+ gUnknown_082F04D4
+};
+
+const u8 gUnknown_082F0530[] = {
+ 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15,
+ 0x16, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x17,
+ 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x0e, 0x00, 0x00
+};
// code
-void nullsub_89(void)
+void nullsub_89(u8 taskId)
{
}
@@ -923,7 +1736,7 @@ bool8 sub_801320C(struct UnkStruct_Leader *data, u32 arg1, u32 arg2)
return FALSE;
}
-void sub_8013278(u8 arg0, u32 id, u8 arg2)
+void sub_8013278(u8 arg0, s32 id, u8 arg2)
{
struct UnkStruct_Leader *data = gUnknown_02022C30.leader;
u8 var = 0;
@@ -969,7 +1782,7 @@ u8 sub_80132D4(struct UnkStruct_Main0 *arg0)
}
for (id = 0; id < 4; id++)
- sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 5);
+ sub_8017734(data->field_0->arr, &data->field_4->arr[id], 5);
if (ret != 2)
{
@@ -1428,7 +2241,7 @@ u8 sub_8013DBC(struct UnkStruct_Group *data, u32 id)
return 0;
}
-void sub_8013DF4(u8 arg0, u32 id, u8 arg2)
+void sub_8013DF4(u8 arg0, s32 id, u8 arg2)
{
struct UnkStruct_Group *data = gUnknown_02022C30.group;
u8 var = sub_8013DBC(data, id);
@@ -1452,7 +2265,7 @@ u8 sub_8013E44(void)
{
if (data->field_0->arr[i].field_1A_0 == 1)
{
- if (sub_8017678(&data->field_0->arr[i], &data->field_4->arr[id]))
+ if (sub_8017678(&data->field_0->arr[i].unk, &data->field_4->arr[id].unk0))
{
data->field_0->arr[i].unk = data->field_4->arr[id].unk0;
data->field_0->arr[i].field_1B = 0x40;
@@ -1494,7 +2307,7 @@ u8 sub_8013E44(void)
for (id = 0; id < 4; id++)
{
- if (sub_8017734(data->field_0->arr, &data->field_4->arr[id].unk0, 16) != 0xFF)
+ if (sub_8017734(data->field_0->arr, &data->field_4->arr[id], 16) != 0xFF)
ret = 1;
}
@@ -2340,7 +3153,7 @@ void sub_80152F4(u8 taskId)
{
if (data->field_0->arr[0].field_1A_0 == 1 && !data->field_0->arr[0].unk.field_0.unk_0a_7)
{
- if (sub_8016F1C(&data->field_0->arr[0], data->field_12 + 7))
+ if (sub_8016F1C(&data->field_0->arr[0].unk.field_0, data->field_12 + 7))
{
data->field_F = 0;
data->field_14 = 0;
@@ -2454,7 +3267,7 @@ void UnionRoomSpecial(void)
// dumb line needed to match
gUnknown_02022C30.uRoom = gUnknown_02022C30.uRoom;
- dataPtr = AllocZeroed(0x26C);
+ dataPtr = AllocZeroed(sizeof(*gUnknown_02022C30.uRoom));
gUnknown_02022C30.uRoom = dataPtr;
gUnknown_03000DA8 = dataPtr;
@@ -2530,7 +3343,7 @@ void sub_80156E0(u8 taskId)
break;
case 2:
sub_8010F84(0x40, 0, 0);
- sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C);
+ sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
sub_800B488();
OpenLink();
sub_8011C84();
@@ -3125,14 +3938,14 @@ void sub_80156E0(u8 taskId)
sub_801568C(gUnknown_082EF4FC);
break;
default:
- gUnknown_02022C40.field_2 = var5;
+ gUnknown_02022C40.type = var5;
data->state = 55;
break;
}
}
break;
case 55:
- sub_8010FCC(gUnknown_02022C40.field_2, gUnknown_02022C40.field_A, gUnknown_02022C40.field_C);
+ sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
sub_801568C(gUnknown_082EF520);
break;
case 44:
@@ -3419,7 +4232,7 @@ u8 sub_8016B00(void)
{
if (structPtr->field_0->arr[j].field_1A_0 == 1)
{
- if (sub_8017678(&structPtr->field_0->arr[j], &structPtr->field_4->arr[i]))
+ if (sub_8017678(&structPtr->field_0->arr[j].unk, &structPtr->field_4->arr[i].unk0))
{
structPtr->field_0->arr[j].unk = structPtr->field_4->arr[i].unk0;
structPtr->field_0->arr[j].field_1B = 0x40;
@@ -3461,40 +4274,1118 @@ u8 sub_8016B00(void)
}
for (i = 0; i < 4; i++)
{
- if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i].unk0, 8) != 0xFF)
+ if (sub_8017734(&structPtr->field_0->arr[0], &structPtr->field_4->arr[i], 8) != 0xFF)
r7 = 1;
}
return r7;
}
-/*
void sub_8016CA0(u8 taskId)
{
s32 i, j;
- struct UnkLinkRfuStruct_02022B14 sp0;
- u8 text[10];
- struct UnkStruct_Main4 *ptr = (void*) gTasks[taskId].data;
+ struct UnkStruct_Shared sp0;
+ struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data;
+ bool8 r4;
for (i = 0; i < 4; i++)
{
- j = sub_800DE7C(&sp0, text, i);
- if (!sub_8013D88(sp0.unk_0a_0, gTasks[taskId].data[4]))
- sp0 = gUnknown_082F045C.field_0;
- if (sp0.unk_00.unk_00_0 == 1)
- sp0 = gUnknown_082F045C.field_0;
-
- if (!j)
+ r4 = sub_800DE7C(&sp0.field_0, sp0.playerName, i);
+ if (!sub_8013D88(sp0.field_0.unk_0a_0, gTasks[taskId].data[4]))
+ {
+ sp0 = gUnknown_082F045C;
+ }
+ if (sp0.field_0.unk_00.unk_00_0 == 1)
+ {
+ sp0 = gUnknown_082F045C;
+ }
+ if (!r4)
{
for (j = 0; j < i; j++)
{
- if (sub_8017630())
+ if (!sub_8017630(&ptr[1]->arr[j].unk0, &sp0))
+ {
+ sp0 = gUnknown_082F045C;
+ }
+ }
+ ptr[1]->arr[i].unk0 = sp0;
+ ptr[1]->arr[i].unk18 = sub_8017630(&ptr[1]->arr[i].unk0, &gUnknown_082F045C);
+ }
+ else
+ {
+ ptr[0]->arr[i].unk0 = sp0;
+ ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C);
+ }
+ }
+}
+
+u8 sub_8016DF0(struct UnkStruct_Main4 * a0, struct UnkStruct_Main4 * a1, u32 a2)
+{
+ u8 taskId = CreateTask(sub_8016CA0, 0);
+ struct UnkStruct_Main4 ** data = (void *)gTasks[taskId].data;
+ data[0] = a0;
+ data[1] = a1;
+ gTasks[taskId].data[4] = a2;
+ return taskId;
+}
+
+void sub_8016E24(u8 taskId)
+{
+ s32 i, j;
+ struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data;
+
+ for (i = 0; i < 4; i++)
+ {
+ sub_800DE7C(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i);
+ if (!sub_8013D88(ptr[0]->arr[i].unk0.field_0.unk_0a_0, gTasks[taskId].data[2]))
+ {
+ ptr[0]->arr[i].unk0 = gUnknown_082F045C;
+ }
+ for (j = 0; j < i; j++)
+ {
+ if (!sub_8017630(&ptr[0]->arr[j].unk0, &ptr[0]->arr[i].unk0))
+ {
+ ptr[0]->arr[i].unk0 = gUnknown_082F045C;
+ }
+ }
+ ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C);
+ }
+}
+
+bool32 sub_8016F1C(struct UnkLinkRfuStruct_02022B14 *arg0, s16 arg1)
+{
+ if (arg1 == 7)
+ {
+ if (!arg0->unk_00.unk_00_5)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else if (arg1 == 8)
+ {
+ if (!arg0->unk_00.unk_00_4)
+ {
+ return FALSE;
+ }
+ else
+ {
+ return TRUE;
+ }
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void sub_8016F44(u8 taskId)
+{
+ s32 i;
+ struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sub_800DF34(&ptr[0]->arr[i].unk0.field_0, ptr[0]->arr[i].unk0.playerName, i))
+ {
+ sub_8016F1C(&ptr[0]->arr[i].unk0.field_0, gTasks[taskId].data[2]);
+ }
+ ptr[0]->arr[i].unk18 = sub_8017630(&ptr[0]->arr[i].unk0, &gUnknown_082F045C);
+ }
+}
+
+u8 sub_8016FC0(struct UnkStruct_Main4 * a0, u32 a1)
+{
+ u8 taskId = CreateTask(sub_8016E24, 0);
+ struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data;
+ ptr[0] = a0;
+ gTasks[taskId].data[2] = a1;
+ return taskId;
+}
+
+u8 sub_8016FF0(struct UnkStruct_Main4 * a0, u32 a1)
+{
+ u8 taskId = CreateTask(sub_8016F44, 0);
+ struct UnkStruct_Main4 **ptr = (void*) gTasks[taskId].data;
+ ptr[0] = a0;
+ gTasks[taskId].data[2] = a1;
+ return taskId;
+}
+
+bool32 sub_8017020(const u8 *src)
+{
+ sub_81973A4();
+ DrawDialogueFrame(0, 1);
+ StringExpandPlaceholders(gStringVar4, src);
+ AddTextPrinterWithCustomSpeedForMessage(FALSE, 1);
+ return FALSE;
+}
+
+bool32 sub_801704C(void)
+{
+ if (!RunTextPrintersAndIsPrinter0Active())
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+bool8 PrintOnTextbox(u8 *textState, const u8 *str)
+{
+ switch (*textState)
+ {
+ case 0:
+ sub_81973A4();
+ DrawDialogueFrame(0, 1);
+ StringExpandPlaceholders(gStringVar4, str);
+ AddTextPrinterForMessage_2(TRUE);
+ (*textState)++;
+ break;
+ case 1:
+ if (!RunTextPrintersAndIsPrinter0Active())
+ {
+ *textState = 0;
+ return TRUE;
+ }
+ break;
+ }
+ return FALSE;
+}
+
+s8 sub_80170B8(u8 *arg0, bool32 arg1)
+{
+ s8 r1;
+
+ switch (*arg0)
+ {
+ case 0:
+ if (arg1)
+ {
+ return -3;
+ }
+ DisplayYesNoMenuDefaultYes();
+ (*arg0)++;
+ break;
+ case 1:
+ if (arg1)
+ {
+ sub_8198C78();
+ *arg0 = 0;
+ return -3;
+ }
+ r1 = Menu_ProcessInputNoWrapClearOnChoose();
+ if (r1 == -1 || r1 == 0 || r1 == 1)
+ {
+ *arg0 = 0;
+ return r1;
+ }
+ break;
+ }
+ return -2;
+}
+
+u8 sub_8017118(const struct WindowTemplate * template)
+{
+ u8 windowId = AddWindow(template);
+ DrawStdWindowFrame(windowId, FALSE);
+ FillWindowPixelBuffer(windowId, 0xFF);
+ sub_80173E0(windowId, 1, gUnknown_082EFD94, 8, 1, 6);
+ CopyWindowToVram(windowId, 2);
+ PutWindowTilemap(windowId);
+ return windowId;
+}
+
+void sub_8017168(u8 windowId)
+{
+ RemoveWindow(windowId);
+}
+
+s32 sub_8017178(u8 *arg0, u8 *arg1, u8 *arg2, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate)
+{
+ s32 r1, r8;
+ struct WindowTemplate winTemplateCopy;
+
+ switch (*arg0)
+ {
+ case 0:
+ winTemplateCopy = *winTemplate;
+ r1 = sub_81DB41C(menuTemplate);
+ if (winTemplateCopy.width > r1)
+ {
+ winTemplateCopy.width = r1;
+ }
+ if (winTemplateCopy.tilemapLeft + winTemplateCopy.width > 29)
+ {
+ winTemplateCopy.tilemapLeft = max(29 - winTemplateCopy.width, 0);
+ }
+ *arg1 = AddWindow(&winTemplateCopy);
+ DrawStdWindowFrame(*arg1, FALSE);
+ gMultiuseListMenuTemplate = *menuTemplate;
+ gMultiuseListMenuTemplate.windowId = *arg1;
+ *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 0);
+ CopyWindowToVram(*arg1, TRUE);
+ (*arg0)++;
+ break;
+ case 1:
+ r8 = ListMenu_ProcessInput(*arg2);
+ if (({gMain.newKeys & A_BUTTON;}))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ *arg0 = 0;
+ return r8;
+ }
+ else if (({gMain.newKeys & B_BUTTON;}))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ ClearStdWindowAndFrame(*arg1, TRUE);
+ RemoveWindow(*arg1);
+ *arg0 = 0;
+ return -2;
+ }
+ break;
+ }
+
+ return -1;
+}
+
+s32 sub_80172A0(u8 *arg0, u8 *arg1, u8 *arg2, u8 *arg3, const struct WindowTemplate *winTemplate, const struct ListMenuTemplate *menuTemplate, struct UnkStruct_Main0 *arg6)
+{
+ s32 input;
+ s32 r4;
+
+ switch (*arg0)
+ {
+ case 0:
+ *arg3 = sub_8017118(&gUnknown_082F0344);
+ *arg1 = AddWindow(winTemplate);
+ DrawStdWindowFrame(*arg1, FALSE);
+ gMultiuseListMenuTemplate = *menuTemplate;
+ gMultiuseListMenuTemplate.windowId = *arg1;
+ *arg2 = ListMenuInit(&gMultiuseListMenuTemplate, 0, 1);
+ (*arg0)++;
+ break;
+ case 1:
+ CopyWindowToVram(*arg1, TRUE);
+ (*arg0)++;
+ break;
+ case 2:
+ // Register swap r1 <---> r2
+ input = ListMenu_ProcessInput(*arg2);
+ if (({gMain.newKeys & (A_BUTTON | B_BUTTON);}))
+ {
+ if (input == 8 || ({gMain.newKeys & B_BUTTON;}))
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ RemoveWindow(*arg1);
+ sub_8017168(*arg3);
+ *arg0 = 0;
+ return -2;
+ }
+ else
+ {
+ r4 = sub_8017CB0(arg6->arr, input);
+ if (r4 >= 0)
+ {
+ DestroyListMenuTask(*arg2, NULL, NULL);
+ RemoveWindow(*arg1);
+ sub_8017168(*arg3);
+ *arg0 = 0;
+ return r4;
+ }
+ else
+ {
+ PlaySE(SE_WALL_HIT);
+ }
+ }
+ }
+ break;
+ }
+
+ return -1;
+}
+void sub_80173B0(void)
+{
+ FillBgTilemapBufferRect(0, 0, 0, 0, 32, 32, 0);
+ CopyBgTilemapBufferToVram(0);
+}
+
+void sub_80173D4(void)
+{
+ EnableBothScriptContexts();
+}
+
+void sub_80173E0(u8 windowId, u8 arg1, const u8 *str, u8 arg3, u8 arg4, u8 arg5)
+{
+ struct TextPrinterTemplate sp0;
+
+ sp0.currentChar = str;
+ sp0.windowId = windowId;
+ sp0.fontId = arg1;
+ sp0.x = arg3;
+ sp0.y = arg4;
+ sp0.currentX = arg3;
+ sp0.currentY = arg4;
+ sp0.unk = 0;
+
+ gTextFlags.useAlternateDownArrow = FALSE;
+ switch (arg5)
+ {
+ case 0:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 2;
+ sp0.bgColor = 1;
+ sp0.shadowColor = 3;
+ break;
+ case 1:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 4;
+ sp0.bgColor = 1;
+ sp0.shadowColor = 5;
+ break;
+ case 2:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 6;
+ sp0.bgColor = 1;
+ sp0.shadowColor = 7;
+ break;
+ case 3:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 1;
+ sp0.bgColor = 1;
+ sp0.shadowColor = 3;
+ break;
+ case 4:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 1;
+ sp0.bgColor = 2;
+ sp0.shadowColor = 3;
+ break;
+ case 5:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 7;
+ sp0.bgColor = 15;
+ sp0.shadowColor = 9;
+ break;
+ case 6:
+ sp0.letterSpacing = 0;
+ sp0.lineSpacing = 0;
+ sp0.fgColor = 14;
+ sp0.bgColor = 15;
+ sp0.shadowColor = 9;
+ break;
+ }
+
+ AddTextPrinter(&sp0, 0xFF, NULL);
+}
+
+void sub_8017580(struct UnkStruct_x20 *arg0, u8 count)
+{
+ s32 i;
+
+ for (i = 0; i < count; i++)
+ {
+ arg0[i].unk = gUnknown_082F045C;
+ arg0[i].field_18 = 0xFF;
+ arg0[i].field_1A_0 = 0;
+ arg0[i].field_1A_1 = 0;
+ arg0[i].field_1B = 0;
+ }
+}
+
+void sub_80175EC(struct UnkStruct_Main4 *arg0, u8 count)
+{
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ arg0->arr[i].unk0 = gUnknown_082F045C;
+ arg0->arr[i].unk18 = 0;
+ }
+}
+
+bool8 sub_8017630(struct UnkStruct_Shared* arg0, const struct UnkStruct_Shared* arg1)
+{
+ s32 i;
+
+ for (i = 0; i < 2; i++)
+ {
+ if (arg0->field_0.unk_00.playerTrainerId[i] != arg1->field_0.unk_00.playerTrainerId[i])
+ {
+ return TRUE;
+ }
+ }
+
+ for (i = 0; i < 8; i++)
+ {
+ if (arg0->playerName[i] != arg1->playerName[i])
+ {
+ return TRUE;
+ }
+ }
+
+ return FALSE;
+}
+
+bool32 sub_8017678(struct UnkStruct_Shared *arg0, struct UnkStruct_Shared *arg1)
+{
+ s32 i;
+
+ if (arg0->field_0.unk_0a_0 != arg1->field_0.unk_0a_0)
+ {
+ return TRUE;
+ }
+
+ if (arg0->field_0.unk_0a_7 != arg1->field_0.unk_0a_7)
+ {
+ return TRUE;
+ }
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg0->field_0.unk_04[i] != arg1->field_0.unk_04[i])
+ {
+ return TRUE;
+ }
+ }
+
+ if (arg0->field_0.species != arg1->field_0.species)
+ {
+ return TRUE;
+ }
+
+ if (arg0->field_0.type != arg1->field_0.type)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+u32 sub_80176E4(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1)
+{
+ u8 result = 0xFF;
+ s32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg1[i].unk18 && !sub_8017630(&arg0->unk, &arg1[i].unk0))
+ {
+ result = i;
+ arg1[i].unk18 = FALSE;
+ }
+ }
+
+ return result;
+}
+
+u8 sub_8017734(struct UnkStruct_x20 *arg0, struct UnkStruct_x1C *arg1, u8 arg2)
+{
+ s32 i;
+
+ if (arg1->unk18)
+ {
+ for (i = 0; i < arg2; i++)
+ {
+ if (arg0[i].field_1A_0 == 0)
+ {
+ arg0[i].unk = arg1->unk0;
+ arg0[i].field_18 = 0;
+ arg0[i].field_1A_0 = 1;
+ arg0[i].field_1B = 64;
+ arg1->unk18 = FALSE;
+ return i;
}
}
+ }
+
+ return 0xFF;
+}
+
+void sub_80177B8(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id)
+{
+ u8 r2;
+ u8 sp0[6];
+
+ ConvertIntToDecimalStringN(gStringVar4, id + 1, STR_CONV_MODE_LEADING_ZEROS, 2);
+ StringAppend(gStringVar4, gText_Colon);
+ sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, 0);
+ arg1 += 18;
+ r2 = arg3->unk.field_0.unk_0a_0;
+ if (arg3->field_1A_0 == 1 && !(r2 & 0x40))
+ {
+ sub_8018404(gStringVar4, arg3);
+ sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, arg4);
+ ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
+ StringCopy(gStringVar4, gText_UnkCtrlCodeF907);
+ StringAppend(gStringVar4, sp0);
+ sub_80173E0(arg0, 1, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x88), arg2, arg4);
+ }
+}
+
+void sub_80178A0(u8 arg0, u8 arg1, u8 arg2, struct UnkStruct_x20 *arg3, u8 arg4, u8 id)
+{
+ u8 sp0[6];
+
+ if (arg3->field_1A_0 == 1)
+ {
+ sub_8018404(gStringVar4, arg3);
+ sub_80173E0(arg0, 1, gStringVar4, arg1, arg2, arg4);
+ ConvertIntToDecimalStringN(sp0, arg3->unk.field_0.unk_00.playerTrainerId[0] | (arg3->unk.field_0.unk_00.playerTrainerId[1] << 8), STR_CONV_MODE_LEADING_ZEROS, 5);
+ StringCopy(gStringVar4, gText_UnkCtrlCodeF907);
+ StringAppend(gStringVar4, sp0);
+ sub_80173E0(arg0, 1, gStringVar4, GetStringRightAlignXOffset(1, gStringVar4, 0x68), arg2, arg4);
+ }
+}
+
+bool32 sub_8017940(void)
+{
+ s16 x, y;
+ GetXYCoordsOneStepInFrontOfPlayer(&x, &y);
+ if (x != 9)
+ {
+ return FALSE;
+ }
+ if (y != 8)
+ {
+ return FALSE;
+ }
+ if (gPlayerAvatar.tileTransitionState == 2 || gPlayerAvatar.tileTransitionState == 0)
+ {
+ return TRUE;
+ }
+
+ return FALSE;
+}
+
+u32 sub_8017984(s32 arg0)
+{
+ switch (arg0)
+ {
+ case 5:
+ return 1;
+ case 4:
+ return 2;
+ case 8:
+ return 3;
+ case 3:
+ default:
+ return 0;
+ }
+}
+
+u32 sub_80179AC(struct UnkStruct_x20 *arg0)
+{
+ u8 sp0[30];
+ sub_8018404(sp0, arg0);
+ return sub_800E540(ReadAsU16(arg0->unk.field_0.unk_00.playerTrainerId), sp0);
+}
+
+s32 sub_80179D4(struct UnkStruct_Main0 *arg0, u8 arg1, u8 arg2, u32 playerGender)
+{
+ bool32 r2;
+
+ struct UnkStruct_x20 * r5 = &arg0->arr[arg2];
+
+ if (!r5->unk.field_0.unk_0a_7 && arg1 == 0)
+ {
+ sub_8018404(gStringVar1, r5);
+ r2 = sub_800E540(ReadAsU16(r5->unk.field_0.unk_00.playerTrainerId), gStringVar1);
+ if (r5->unk.field_0.unk_0a_0 == 0x45)
+ {
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EE6B8[r2][playerGender]);
+ return 2;
+ }
else
{
+ sub_8017020(gUnknown_082EE17C[r2]);
+ return 1;
+ }
+ }
+ else
+ {
+ sub_8018404(gStringVar1, r5);
+ if (arg1 != 0)
+ {
+ playerGender = (r5->unk.field_0.unk_00.playerTrainerId[arg1 + 1] >> 3) & 1;
+ }
+ switch (r5->unk.field_0.unk_0a_0 & 0x3F)
+ {
+ case 1:
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EEEAC[playerGender][Random() % 4]);
+ break;
+ case 4:
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EF1CC[playerGender][Random() % 2]);
+ break;
+ case 5:
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EF010[playerGender][Random() % 4]);
+ break;
+ case 8:
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EF100[playerGender][Random() % 2]);
+ break;
+ default:
+ StringExpandPlaceholders(gStringVar4, gUnknown_082EE6C8);
+ break;
+ }
+ return 0;
+ }
+}
+
+void nullsub_14(u8 windowId, s32 itemId, u8 y)
+{
+
+}
+
+void sub_8017B3C(u8 arg0, u8 arg1, struct UnkLinkRfuStruct_02022B14 * arg2, const u8 * str, u8 arg4)
+{
+ u8 sp8[4];
+ u16 r8 = arg2->species;
+ u8 r7 = arg2->type;
+ u8 r9 = arg2->unk_0b_1;
+
+ sub_80173E0(arg0, 1, str, 8, arg1, arg4);
+ if (r8 == SPECIES_EGG)
+ {
+ sub_80173E0(arg0, 1, gUnknown_082EF7D0, 0x44, arg1, arg4);
+ }
+ else
+ {
+ blit_move_info_icon(arg0, r7 + 1, 0x44, arg1);
+ sub_80173E0(arg0, 1, gSpeciesNames[r8], 0x76, arg1, arg4);
+ ConvertIntToDecimalStringN(sp8, r9, STR_CONV_MODE_RIGHT_ALIGN, 3);
+ sub_80173E0(arg0, 1, sp8, 0xC6, arg1, arg4);
+ }
+}
+
+void sub_8017BE8(u8 windowId, s32 itemId, u8 y)
+{
+ struct UnkStruct_Leader *leader = gUnknown_02022C30.leader;
+ struct UnkLinkRfuStruct_02022B14 *rfu;
+ s32 i, j;
+ u8 sp4[11];
+ if (itemId == -3 && y == gUnknown_082F03A4.upText_Y)
+ {
+ rfu = sub_800F7DC();
+ if (rfu->species != SPECIES_NONE)
+ {
+ sub_8017B3C(windowId, y, rfu, gSaveBlock2Ptr->playerName, 5);
+ }
+ }
+ else
+ {
+ j = 0;
+ for (i = 0; i < 8; i++)
+ {
+ if (leader->field_0->arr[i].field_1A_0 == 1 && leader->field_0->arr[i].unk.field_0.species != SPECIES_NONE)
+ {
+ j++;
+ }
+ if (j == itemId + 1)
+ {
+ sub_8018404(sp4, &leader->field_0->arr[i]);
+ sub_8017B3C(windowId, y, &leader->field_0->arr[i].unk.field_0, sp4, 6);
+ break;
+ }
}
}
}
-*/
+
+s32 sub_8017CB0(struct UnkStruct_x20 * arg, s32 arg1)
+{
+ s32 i;
+ s32 j = 0;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (arg[i].field_1A_0 == 1 && arg[i].unk.field_0.species != SPECIES_NONE)
+ {
+ j++;
+ }
+ if (j == arg1 + 1)
+ {
+ return i;
+ }
+ }
+
+ return -1;
+}
+
+s32 sub_8017CF8(s32 arg1, struct UnkStruct_Main0 *arg0)
+{
+ return arg0->arr[arg1].unk.field_0.playerGender;
+}
+
+s32 sub_8017D04(u32 type, u32 species)
+{
+ s32 i;
+
+ if (species == SPECIES_EGG)
+ {
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (species == SPECIES_EGG)
+ {
+ return 0;
+ }
+ }
+ return 2;
+ }
+ else
+ {
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (gBaseStats[species].type1 == type || gBaseStats[species].type2 == type)
+ {
+ return 0;
+ }
+ }
+ return 1;
+ }
+}
+
+void sub_8017D9C(u8 *dst, s32 arg1, u32 playerGender)
+{
+ switch (arg1)
+ {
+ case 0x41:
+ StringExpandPlaceholders(dst, gUnknown_082EEA68[playerGender]);
+ break;
+ case 0x45:
+ StringExpandPlaceholders(dst, gUnknown_082EED3C[playerGender]);
+ break;
+ case 0x44:
+ StringExpandPlaceholders(dst, gUnknown_082EF7B0);
+ break;
+ case 0x48:
+ StringExpandPlaceholders(dst, gUnknown_082EEB08[playerGender]);
+ break;
+ }
+}
+
+void sub_8017E00(u8 *dst, u8 arg1)
+{
+ u8 mpId = GetMultiplayerId();
+ u8 gender = gLinkPlayers[mpId ^ 1].gender;
+
+ switch (arg1)
+ {
+ case 0x41:
+ StringCopy(dst, gUnknown_082EE984[mpId][gender][0]);
+ break;
+ case 0x44:
+ StringCopy(dst, gUnknown_082EE984[mpId][gender][2]);
+ break;
+ case 0x45:
+ StringCopy(dst, gUnknown_082EE984[mpId][gender][1]);
+ break;
+ }
+}
+
+s32 sub_8017EA0(u8 *dst, u32 gender, u16 *arg2, struct UnkStruct_URoom *arg3)
+{
+ s32 result = 0;
+ u16 species = SPECIES_NONE;
+ s32 i;
+
+ switch (arg2[0])
+ {
+ case 0x41:
+ StringExpandPlaceholders(dst, gUnknown_082EE3DC);
+ result = 1;
+ break;
+ case 0x45:
+ StringExpandPlaceholders(dst, gUnknown_082EE430);
+ result = 1;
+ break;
+ case 0x44:
+ ConvertIntToDecimalStringN(arg3->field_58 + 0x00, gUnknown_02022C40.playerLevel, STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(arg3->field_58 + 0x10, gSpeciesNames[gUnknown_02022C40.playerSpecies]);
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_03007890->unk_14[i].unk_04 == 2)
+ {
+ ConvertIntToDecimalStringN(arg3->field_58 + 0x20, arg2[2], STR_CONV_MODE_LEFT_ALIGN, 3);
+ StringCopy(arg3->field_58 + 0x30, gSpeciesNames[arg2[1]]);
+ species = arg2[1];
+ break;
+ }
+ }
+ if (species == SPECIES_EGG)
+ {
+ StringCopy(dst, gUnknown_082EE4F0);
+ }
+ else
+ {
+ for (i = 0; i < 4; i++)
+ {
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(i, arg3->field_58 + 0x10 * i);
+ }
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(dst, gUnknown_082EE47C);
+ }
+ result = 1;
+ break;
+ case 0x48:
+ StringExpandPlaceholders(dst, gUnknown_082EE380);
+ result = 1;
+ break;
+ case 0x40:
+ StringExpandPlaceholders(dst, gUnknown_082EE544);
+ result = 2;
+ break;
+ }
+
+ return result;
+}
+
+bool32 sub_8017FD8(struct UnkStruct_URoom *arg0)
+{
+ if (gRecvCmds[0][1] != 0)
+ {
+ if (gRecvCmds[0][1] == 0x51)
+ {
+ arg0->field_98 = 0x51;
+ return TRUE;
+ }
+ else if (gRecvCmds[0][1] == 0x52)
+ {
+ arg0->field_98 = 0x52;
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+bool32 InUnionRoom(void)
+{
+ return gSaveBlock1Ptr->location.mapGroup == MAP_GROUP(UNION_ROOM)
+ && gSaveBlock1Ptr->location.mapNum == MAP_NUM(UNION_ROOM)
+ ? TRUE : FALSE;
+}
+
+bool32 sub_8018024(void)
+{
+ s32 i;
+ s32 count = 0;
+
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ if ( GetMonData(&gPlayerParty[i], MON_DATA_LEVEL) <= 30
+ && GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2) != SPECIES_EGG)
+ {
+ count++;
+ }
+ }
+
+ if (count > 1)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void sub_801807C(struct TradeUnkStruct *arg0)
+{
+ arg0->field_0 = 0;
+ arg0->type = 0;
+ arg0->playerPersonality = 0;
+ arg0->playerSpecies = 0;
+ arg0->playerLevel = 0;
+ arg0->species = 0;
+ arg0->level = 0;
+ arg0->personality = 0;
+}
+
+void sub_8018090(void)
+{
+ sub_801807C(&gUnknown_02022C40);
+}
+
+bool32 sub_80180A0(u32 monId, struct TradeUnkStruct *arg1)
+{
+ arg1->playerSpecies = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
+ arg1->playerLevel = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ arg1->playerPersonality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+ if (arg1->playerSpecies == SPECIES_EGG)
+ {
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+
+void sub_80180E8(u32 monId, struct TradeUnkStruct *arg1)
+{
+ arg1->species = GetMonData(&gPlayerParty[monId], MON_DATA_SPECIES2);
+ arg1->level = GetMonData(&gPlayerParty[monId], MON_DATA_LEVEL);
+ arg1->personality = GetMonData(&gPlayerParty[monId], MON_DATA_PERSONALITY);
+}
+
+u32 sub_8018120(struct TradeUnkStruct *arg0, u8 multiplayerId)
+{
+ u16 response = 0;
+ u16 species;
+ u32 personality;
+ u32 cur_personality;
+ u16 cur_species;
+ s32 i;
+
+ if (multiplayerId == 0)
+ {
+ species = arg0->playerSpecies;
+ personality = arg0->playerPersonality;
+ }
+ else
+ {
+ species = arg0->species;
+ personality = arg0->personality;
+ }
+
+ for (i = 0; i < gPlayerPartyCount; i++)
+ {
+ cur_personality = GetMonData(&gPlayerParty[i], MON_DATA_PERSONALITY);
+ if (cur_personality != personality)
+ {
+ continue;
+ }
+ cur_species = GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2);
+ if (cur_species != species)
+ {
+ continue;
+ }
+ response = i;
+ break;
+ }
+
+ return response;
+}
+
+void sub_801818C(bool32 arg0)
+{
+ sub_80173B0();
+ ScriptContext2_Disable();
+ sub_8098524();
+ gUnknown_02022C2C = 0;
+ if (arg0)
+ {
+ sub_8010FCC(gUnknown_02022C40.type, gUnknown_02022C40.playerSpecies, gUnknown_02022C40.playerLevel);
+ sub_8011090(0x40, 0, 0);
+ }
+}
+
+void sub_80181CC(void)
+{
+ ScriptContext2_Enable();
+ ScriptFreezeEventObjects();
+}
+
+u8 sub_80181DC(struct UnkStruct_URoom *arg0)
+{
+ u8 retVal = 0x80;
+ u8 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (arg0->field_C->arr[i].unk18)
+ {
+ retVal |= arg0->field_C->arr[i].unk0.field_0.playerGender << 3;
+ retVal |= arg0->field_C->arr[i].unk0.field_0.unk_00.playerTrainerId[0] & 7;
+ break;
+ }
+ }
+
+ return retVal;
+}
+
+void sub_8018220(u8 *unused, struct UnkStruct_URoom *arg1, bool8 arg2)
+{
+ struct TrainerCard *trainerCard = &gTrainerCards[GetMultiplayerId() ^ 1];
+ s32 i;
+ s32 n;
+
+ DynamicPlaceholderTextUtil_Reset();
+
+ StringCopy(arg1->field_C0[0], gTrainerClassNames[sub_8068BB0()]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]);
+
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, trainerCard->playerName);
+
+ StringCopy(arg1->field_174, gUnknown_082EFF50[trainerCard->stars]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_174);
+
+ ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->caughtMonsCount, STR_CONV_MODE_LEFT_ALIGN, 3);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]);
+
+ ConvertIntToDecimalStringN(arg1->field_C0[3], trainerCard->playTimeHours, STR_CONV_MODE_LEFT_ALIGN, 3);
+ ConvertIntToDecimalStringN(arg1->field_C0[4], trainerCard->playTimeMinutes, STR_CONV_MODE_LEADING_ZEROS, 2);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(4, arg1->field_C0[3]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(5, arg1->field_C0[4]);
+
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082EFF64);
+ StringCopy(gStringVar4, arg1->field_1A4);
+
+ n = trainerCard->linkBattleWins;
+ if (n > 9999)
+ {
+ n = 9999;
+ }
+ ConvertIntToDecimalStringN(arg1->field_C0[0], n, STR_CONV_MODE_LEFT_ALIGN, 4);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, arg1->field_C0[0]);
+
+ n = trainerCard->linkBattleLosses;
+ if (n > 9999)
+ {
+ n = 9999;
+ }
+ ConvertIntToDecimalStringN(arg1->field_C0[1], n, STR_CONV_MODE_LEFT_ALIGN, 4);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, arg1->field_C0[1]);
+
+ ConvertIntToDecimalStringN(arg1->field_C0[2], trainerCard->pokemonTrades, STR_CONV_MODE_LEFT_ALIGN, 5);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(3, arg1->field_C0[2]);
+
+ for (i = 0; i < 4; i++)
+ {
+ CopyEasyChatWord(arg1->field_C0[i + 3], trainerCard->var_28[i]);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(i + 4, arg1->field_C0[i + 3]);
+ }
+
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082EFFA4);
+ StringAppend(gStringVar4, arg1->field_1A4);
+
+ if (arg2 == TRUE)
+ {
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082F0020);
+ StringAppend(gStringVar4, arg1->field_1A4);
+ }
+ else if (arg2 == FALSE)
+ {
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(arg1->field_1A4, gUnknown_082F0018[trainerCard->gender]);
+ StringAppend(gStringVar4, arg1->field_1A4);
+ }
+}
+
+void sub_8018404(u8 *dest, struct UnkStruct_x20 *arg1)
+{
+ StringCopy7(dest, arg1->unk.playerName);
+ ConvertInternationalString(dest, arg1->unk.field_0.unk_00.unk_00_0);
+}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 0cc9b7744..8aea7124c 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -6,30 +6,7 @@
.include "src/string_util.o"
.include "src/link.o"
.include "src/link_rfu.o"
-
-gUnknown_02022C20: @ 2022C20
- .space 0xC
-
-gUnknown_02022C2C: @ 2022C2C
- .space 0x1
-
-gUnknown_02022C2D: @ 2022C2D
- .space 0x3
-
-gUnknown_02022C30: @ 2022C30
- .space 0x8
-
-gUnknown_02022C38: @ 2022C38
- .space 0x4
-
-gUnknown_02022C3C: @ 2022C3C
- .space 0x2
-
-gUnknown_02022C3E: @ 2022C3E
- .space 0x2
-
-gUnknown_02022C40: @ 2022C40
- .space 0x18
+ .include "src/union_room.o"
gUnknown_02022C58: @ 2022C58
.space 0x8