summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcus Huderle <huderlem@gmail.com>2019-01-02 19:07:47 -0600
committerhuderlem <huderlem@gmail.com>2019-01-02 19:46:15 -0600
commite1092028ecaeaa64b35352cefd21b70aa2194577 (patch)
tree32ea76baba5b674beb00bc75657e82d5e7118484
parentf8c708a82a42a9b104cd8d1d36ba6f919f589201 (diff)
Decompile match_call.c
-rw-r--r--asm/battle_frontier_1.s2527
-rw-r--r--asm/pokenav.s2
-rw-r--r--data/battle_frontier_1.s434
-rw-r--r--data/event_scripts.s2955
-rwxr-xr-xdata/text/match_call.inc2953
-rw-r--r--include/constants/battle_frontier.h1
-rw-r--r--include/rtc.h1
-rw-r--r--include/strings.h214
-rw-r--r--ld_script.txt8
-rw-r--r--src/field_control_avatar.c4
-rwxr-xr-xsrc/field_message_box.c8
-rwxr-xr-x[-rw-r--r--]src/match_call.c2806
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c4
-rw-r--r--src/pokenav_match_call.c1275
-rw-r--r--src/rtc.c2
-rw-r--r--sym_ewram.txt8
17 files changed, 6236 insertions, 6970 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
deleted file mode 100644
index c47ca5d76..000000000
--- a/asm/battle_frontier_1.s
+++ /dev/null
@@ -1,2527 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
-
- thumb_func_start sub_8195E10
-sub_8195E10: @ 8195E10
- push {lr}
- bl RtcCalcLocalTime
- ldr r0, =gLocalTime
- bl sub_8195E34
- ldr r1, =gUnknown_0203CD80
- adds r0, 0xA
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x6]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195E10
-
- thumb_func_start sub_8195E34
-sub_8195E34: @ 8195E34
- adds r3, r0, 0
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- movs r2, 0x2
- ldrsb r2, [r3, r2]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 2
- adds r0, r1
- movs r1, 0x3
- ldrsb r1, [r3, r1]
- adds r0, r1
- bx lr
- thumb_func_end sub_8195E34
-
- thumb_func_start sub_8195E58
-sub_8195E58: @ 8195E58
- push {lr}
- bl RtcCalcLocalTime
- ldr r0, =gLocalTime
- bl sub_8195E34
- adds r1, r0, 0
- ldr r2, =gUnknown_0203CD80
- ldr r0, [r2]
- cmp r0, r1
- bhi _08195E74
- subs r0, r1, r0
- cmp r0, 0x9
- bls _08195E84
-_08195E74:
- str r1, [r2]
- movs r0, 0x1
- b _08195E86
- .pool
-_08195E84:
- movs r0, 0
-_08195E86:
- pop {r1}
- bx r1
- thumb_func_end sub_8195E58
-
- thumb_func_start sub_8195E8C
-sub_8195E8C: @ 8195E8C
- push {r4,r5,lr}
- movs r5, 0x1
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _08195EAE
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bne _08195EAE
- movs r5, 0x2
-_08195EAE:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r5, 1
- adds r1, r5
- cmp r0, r1
- blt _08195ED0
- movs r0, 0
- b _08195ED2
- .pool
-_08195ED0:
- movs r0, 0x1
-_08195ED2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8195E8C
-
- thumb_func_start sub_8195ED8
-sub_8195ED8: @ 8195ED8
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrb r0, [r4, 0x17]
- bl Overworld_MapTypeAllowsTeleportAndFly
- lsls r0, 24
- cmp r0, 0
- beq _08195F30
- ldrb r0, [r4, 0x14]
- cmp r0, 0x39
- beq _08195F30
- cmp r0, 0xE
- bne _08195F0E
- movs r0, 0xF9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08195F0E
- movs r0, 0xDC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08195F30
-_08195F0E:
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x14]
- cmp r0, 0x38
- bne _08195F38
- movs r0, 0xCF
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08195F38
- movs r0, 0x8B
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08195F38
-_08195F30:
- movs r0, 0
- b _08195F3A
- .pool
-_08195F38:
- movs r0, 0x1
-_08195F3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8195ED8
-
- thumb_func_start sub_8195F40
-sub_8195F40: @ 8195F40
- push {lr}
- ldr r1, =gUnknown_0203CD80
- ldrb r0, [r1, 0x6]
- adds r0, 0x1
- strb r0, [r1, 0x6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08195F5C
- movs r0, 0
- b _08195F62
- .pool
-_08195F5C:
- movs r0, 0
- strb r0, [r1, 0x6]
- movs r0, 0x1
-_08195F62:
- pop {r1}
- bx r1
- thumb_func_end sub_8195F40
-
- thumb_func_start sub_8195F68
-sub_8195F68: @ 8195F68
- push {r4,lr}
- bl sub_8195FCC
- adds r4, r0, 0
- cmp r4, 0
- beq _08195FB8
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- bl sub_8195FF8
- ldr r2, =gUnknown_0203CD80
- movs r1, 0
- strh r0, [r2, 0x4]
- strb r1, [r2, 0x7]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4E
- beq _08195FB8
- ldrh r0, [r2, 0x4]
- bl sub_8196844
- adds r4, r0, 0
- bl sub_819672C
- ldr r1, =gMapHeader
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x14]
- cmp r0, r1
- bne _08195FC4
- adds r0, r4, 0
- bl sub_8196710
- cmp r0, 0
- bne _08195FC4
-_08195FB8:
- movs r0, 0
- b _08195FC6
- .pool
-_08195FC4:
- movs r0, 0x1
-_08195FC6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8195F68
-
- thumb_func_start sub_8195FCC
-sub_8195FCC: @ 8195FCC
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08195FD2:
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08195FE8
- adds r5, 0x1
-_08195FE8:
- adds r4, 0x1
- cmp r4, 0x3F
- bls _08195FD2
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8195FCC
-
- thumb_func_start sub_8195FF8
-sub_8195FF8: @ 8195FF8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldr r6, =gRematchTable
-_08196000:
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08196022
- cmp r5, 0
- bne _08196020
- ldrh r0, [r6]
- b _0819602C
- .pool
-_08196020:
- subs r5, 0x1
-_08196022:
- adds r6, 0x10
- adds r4, 0x1
- cmp r4, 0x3F
- bls _08196000
- movs r0, 0x4E
-_0819602C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8195FF8
-
- thumb_func_start sub_8196034
-sub_8196034: @ 8196034
- push {lr}
- ldr r0, =0x0000012f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08196078
- bl sub_8195F40
- cmp r0, 0
- beq _08196078
- bl sub_8195E58
- cmp r0, 0
- beq _08196078
- bl sub_8195E8C
- cmp r0, 0
- beq _08196078
- bl sub_8195ED8
- cmp r0, 0
- beq _08196078
- bl sub_8195F68
- cmp r0, 0
- beq _08196078
- bl task_prev_quest
- movs r0, 0x1
- b _0819607A
- .pool
-_08196078:
- movs r0, 0
-_0819607A:
- pop {r1}
- bx r1
- thumb_func_end sub_8196034
-
- thumb_func_start sub_8196080
-sub_8196080: @ 8196080
- push {lr}
- ldr r1, =gUnknown_0203CD80
- movs r0, 0x1
- strb r0, [r1, 0x7]
- bl task_prev_quest
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196080
-
- thumb_func_start sub_8196094
-sub_8196094: @ 8196094
- push {lr}
- ldr r0, =sub_81960E0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196094
-
- thumb_func_start task_prev_quest
-task_prev_quest: @ 81960A8
- push {lr}
- ldr r0, =gUnknown_0203CD80
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _081960C2
- bl ScriptContext2_Enable
- bl FreezeEventObjects
- bl sub_808B864
- bl sub_808BCF4
-_081960C2:
- ldr r0, =0x00000107
- bl PlaySE
- ldr r0, =sub_81960E0
- movs r1, 0x1
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_prev_quest
-
- thumb_func_start sub_81960E0
-sub_81960E0: @ 81960E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r1, =gUnknown_0860EF78
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- cmp r0, 0
- beq _0819611E
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r1, 0
- strh r1, [r4, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _0819611E
- adds r0, r5, 0
- bl DestroyTask
-_0819611E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81960E0
-
- thumb_func_start sub_819612C
-sub_819612C: @ 819612C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gUnknown_0860EF98
- bl AddWindow
- strh r0, [r5, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bne _0819615C
- adds r0, r4, 0
- b _081961E0
- .pool
-_0819615C:
- ldr r1, =gUnknown_0860EA6C
- movs r2, 0x80
- lsls r2, 1
- movs r3, 0x9C
- lsls r3, 2
- movs r0, 0
- bl LoadBgTiles
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- bne _08196188
- ldrb r0, [r5, 0x4]
- bl RemoveWindow
- adds r0, r4, 0
- b _081961E0
- .pool
-_08196188:
- ldr r1, =gUnknown_0860EB8C
- ldr r3, =0x00000279
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- bl decompress_and_copy_tile_data_to_vram
- cmp r0, 0
- beq _081961D8
- ldrb r0, [r5, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0860EA4C
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_0860EB6C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =0xffffe000
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- b _081961E6
- .pool
-_081961D8:
- ldrb r0, [r5, 0x4]
- bl RemoveWindow
- adds r0, r6, 0
-_081961E0:
- bl DestroyTask
- movs r0, 0
-_081961E6:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_819612C
-
- thumb_func_start sub_81961F0
-sub_81961F0: @ 81961F0
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _08196268
- ldrb r0, [r4, 0x4]
- bl PutWindowTilemap
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r1, 0x9C
- lsls r1, 2
- movs r2, 0xE
- bl sub_819645C
- ldr r1, =0x0000f279
- movs r0, 0x4
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0xF
- bl WriteSequenceToBgTilemapBuffer
- ldr r0, =sub_8196694
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrb r0, [r4, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- b _0819626A
- .pool
-_08196268:
- movs r0, 0
-_0819626A:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81961F0
-
- thumb_func_start sub_8196274
-sub_8196274: @ 8196274
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _08196298
- movs r0, 0
- b _081962A4
- .pool
-_08196298:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- ldr r1, =gText_PokenavCallEllipsis
- bl sub_81965D8
- movs r0, 0x1
-_081962A4:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196274
-
- thumb_func_start sub_81962B0
-sub_81962B0: @ 81962B0
- push {lr}
- movs r1, 0xC0
- lsls r1, 3
- movs r0, 0
- movs r2, 0x1
- bl ChangeBgY
- cmp r0, 0
- bge _081962C6
- movs r0, 0
- b _081962D2
-_081962C6:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
-_081962D2:
- pop {r1}
- bx r1
- thumb_func_end sub_81962B0
-
- thumb_func_start sub_81962D8
-sub_81962D8: @ 81962D8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_8196648
- cmp r0, 0
- bne _08196328
- ldrb r0, [r4, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_0203CD80
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _0819630C
- ldrh r0, [r1, 0x4]
- ldr r1, =gStringVar4
- bl sub_81967AC
-_0819630C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- ldr r1, =gStringVar4
- bl sub_81965D8
- movs r0, 0x1
- b _0819632A
- .pool
-_08196328:
- movs r0, 0
-_0819632A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81962D8
-
- thumb_func_start sub_8196330
-sub_8196330: @ 8196330
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_8196648
- cmp r0, 0
- bne _08196388
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08196388
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08196388
- ldrb r0, [r4, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldrb r0, [r4, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x84
- lsls r0, 1
- bl PlaySE
- movs r0, 0x1
- b _0819638A
- .pool
-_08196388:
- movs r0, 0
-_0819638A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196330
-
- thumb_func_start sub_8196390
-sub_8196390: @ 8196390
- push {r4,lr}
- sub sp, 0x8
- 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 r1, 0xC0
- lsls r1, 3
- movs r0, 0
- movs r2, 0x2
- bl ChangeBgY
- ldr r1, =0xffffe000
- cmp r0, r1
- ble _081963C0
- movs r0, 0
- b _081963E8
- .pool
-_081963C0:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect_Palette0
- ldrb r0, [r4, 0xA]
- bl DestroyTask
- ldrb r0, [r4, 0x4]
- bl RemoveWindow
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
-_081963E8:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196390
-
- thumb_func_start sub_81963F0
-sub_81963F0: @ 81963F0
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08196454
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08196454
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, =gUnknown_0203CD80
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _08196446
- bl sub_81973A4
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetEventObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- bl EventObjectClearHeldMovementIfFinished
- bl sub_80D338C
- bl UnfreezeEventObjects
- bl ScriptContext2_Disable
-_08196446:
- movs r0, 0x1
- b _08196456
- .pool
-_08196454:
- movs r0, 0
-_08196456:
- pop {r1}
- bx r1
- thumb_func_end sub_81963F0
-
- thumb_func_start sub_819645C
-sub_819645C: @ 819645C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl GetWindowAttribute
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWindowAttribute
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetWindowAttribute
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetWindowAttribute
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl GetWindowAttribute
- str r0, [sp, 0x10]
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r1, 0xA
- bl GetBgAttribute
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
- lsls r7, 12
- movs r1, 0xF0
- lsls r1, 8
- adds r0, r1, 0
- ands r7, r0
- adds r1, r7, 0
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x8]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r4, [sp, 0xC]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x1
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x8]
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- str r0, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x14]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x2
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [sp, 0x8]
- adds r0, r3, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- mov r0, r8
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x1C]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x3
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0xC]
- lsls r6, r2, 24
- lsrs r6, 24
- mov r3, r8
- str r3, [sp]
- ldr r0, [sp, 0x10]
- lsls r4, r0, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- mov r0, r9
- mov r2, r10
- adds r3, r6, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x4
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- mov r2, r8
- str r2, [sp]
- str r4, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x1C]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x5
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r3, r2
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r8
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- mov r2, r10
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x6
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- str r0, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x14]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r5, 0x7
- orrs r5, r7
- lsls r5, 16
- lsrs r5, 16
- mov r3, r8
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819645C
-
- thumb_func_start sub_81965D8
-sub_81965D8: @ 81965D8
- push {lr}
- sub sp, 0x10
- str r1, [sp]
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x4]
- mov r0, sp
- movs r1, 0x1
- strb r1, [r0, 0x5]
- movs r2, 0x20
- strb r2, [r0, 0x6]
- strb r1, [r0, 0x7]
- strb r2, [r0, 0x8]
- strb r1, [r0, 0x9]
- strb r3, [r0, 0xA]
- strb r3, [r0, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- subs r1, 0x11
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- movs r3, 0xF
- movs r0, 0xA0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0xD]
- ands r1, r3
- movs r0, 0xE0
- orrs r1, r0
- strb r1, [r2, 0xD]
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl GetPlayerTextSpeedDelay
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81965D8
-
- thumb_func_start sub_8196648
-sub_8196648: @ 8196648
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0819666C
- ldr r0, =gTextFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08196678
- .pool
-_0819666C:
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08196678:
- bl RunTextPrinters
- lsls r0, r4, 24
- lsrs r0, 24
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196648
-
- thumb_func_start sub_8196694
-sub_8196694: @ 8196694
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r2, r1, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081966FC
- movs r1, 0
- strh r1, [r2]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _081966C8
- strh r1, [r2, 0x2]
-_081966C8:
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- lsls r1, 4
- ldr r0, =0x00000279
- adds r1, r0
- strh r1, [r2, 0x4]
- ldr r2, =0xfffff000
- adds r0, r2, 0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0xF
- bl WriteSequenceToBgTilemapBuffer
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_081966FC:
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196694
-
- thumb_func_start sub_8196710
-sub_8196710: @ 8196710
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, =0x000009ca
- adds r1, r2
- adds r1, r0
- ldrb r1, [r1]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_8196710
-
- thumb_func_start sub_819672C
-sub_819672C: @ 819672C
- push {lr}
- ldr r1, =gRematchTable
- lsls r0, 4
- adds r0, r1
- ldrh r2, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- adds r0, r2, 0
- bl Overworld_GetMapHeaderByGroupAndId
- ldrb r0, [r0, 0x14]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819672C
-
- thumb_func_start sub_8196748
-sub_8196748: @ 8196748
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
- ldr r4, =gRematchTable
-_08196750:
- ldrh r0, [r4]
- bl HasTrainerBeenFought
- lsls r0, 24
- cmp r0, 0
- beq _0819675E
- adds r6, 0x1
-_0819675E:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x3F
- bls _08196750
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196748
-
- thumb_func_start sub_8196774
-sub_8196774: @ 8196774
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- movs r6, 0
- ldr r5, =gRematchTable
-_0819677E:
- ldrh r0, [r5]
- bl HasTrainerBeenFought
- lsls r0, 24
- cmp r0, 0
- beq _0819679A
- cmp r6, r7
- bne _08196798
- adds r0, r4, 0
- b _081967A4
- .pool
-_08196798:
- adds r6, 0x1
-_0819679A:
- adds r5, 0x10
- adds r4, 0x1
- cmp r4, 0x4D
- bls _0819677E
- movs r0, 0x4E
-_081967A4:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8196774
-
- thumb_func_start sub_81967AC
-sub_81967AC: @ 81967AC
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r7, 0
- bl sub_8196844
- adds r5, r0, 0
- ldr r0, =gUnknown_0203CD88
- strh r7, [r0]
- adds r0, r5, 0
- bl sub_8196710
- cmp r0, 0
- beq _081967EC
- adds r0, r5, 0
- bl sub_819672C
- ldr r1, =gMapHeader
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x14]
- cmp r0, r1
- bne _081967EC
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196864
- b _08196830
- .pool
-_081967EC:
- adds r0, r5, 0
- bl sub_8196D74
- cmp r0, 0
- beq _0819680A
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196890
- adds r4, r0, 0
- movs r7, 0x1
- adds r0, r5, 0
- bl UpdateRematchIfDefeated
- b _08196832
-_0819680A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08196828
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81968BC
- b _08196830
-_08196828:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196910
-_08196830:
- adds r4, r0, 0
-_08196832:
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_81969E0
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81967AC
-
- thumb_func_start sub_8196844
-sub_8196844: @ 8196844
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r1, =gUnknown_0860DEB8
-_0819684C:
- ldrh r0, [r1]
- cmp r0, r3
- beq _0819685C
- adds r1, 0x14
- adds r2, 0x1
- b _0819684C
- .pool
-_0819685C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8196844
-
- thumb_func_start sub_8196864
-sub_8196864: @ 8196864
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0xE]
- movs r2, 0xFF
- lsrs r0, r1, 8
- subs r0, 0x1
- ands r1, r2
- subs r1, 0x1
- ldr r2, =gUnknown_0860EA2C
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_8196864
-
- thumb_func_start sub_8196890
-sub_8196890: @ 8196890
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- movs r2, 0xFF
- lsrs r0, r1, 8
- subs r0, 0x1
- ands r1, r2
- subs r1, 0x1
- ldr r2, =gUnknown_0860EA2C
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_8196890
-
- thumb_func_start sub_81968BC
-sub_81968BC: @ 81968BC
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- ldr r2, =gUnknown_0860DEB8
- lsrs r0, 15
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, r1
- adds r2, 0x4
- adds r0, r2
- ldrh r4, [r0]
- cmp r4, 0
- bne _081968EC
- movs r0, 0
- bl SpriteCallbackDummy
-_081968EC:
- movs r1, 0xFF
- lsrs r0, r4, 8
- subs r0, 0x1
- ands r4, r1
- subs r1, r4, 0x1
- ldr r2, =gUnknown_0860EA20
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81968BC
-
- thumb_func_start sub_8196910
-sub_8196910: @ 8196910
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081969AC
- movs r5, 0
- movs r4, 0
- lsls r7, r6, 2
-_0819692C:
- lsls r0, r4, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_8196E04
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _08196940
- adds r5, 0x1
-_08196940:
- adds r4, 0x1
- cmp r4, 0x6
- ble _0819692C
- cmp r5, 0
- beq _081969AC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- adds r5, r0, 0
- movs r4, 0
- b _08196962
-_0819695E:
- subs r5, 0x1
-_08196960:
- adds r4, 0x1
-_08196962:
- cmp r4, 0x6
- bgt _08196980
- lsls r0, r4, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_8196E04
- ldr r1, =gUnknown_0203CD88
- strh r0, [r1, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _08196960
- cmp r5, 0
- bne _0819695E
-_08196980:
- ldr r0, =gUnknown_0203CD88
- strh r4, [r0]
- ldr r1, =gUnknown_0860DEB8
- adds r0, r7, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0xC]
- subs r2, r0, 0x1
- ldr r1, =gUnknown_0860EA34
- ldr r0, [sp]
- lsls r0, 2
- adds r0, r1
- lsls r1, r2, 3
- ldr r0, [r0]
- adds r0, r1
- b _081969D0
- .pool
-_081969AC:
- ldr r1, =gUnknown_0860DEB8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0xA]
- lsrs r1, r2, 8
- subs r1, 0x1
- str r1, [sp]
- movs r0, 0xFF
- ands r0, r2
- subs r2, r0, 0x1
- ldr r0, =gUnknown_0860EA34
- lsls r1, 2
- adds r1, r0
- lsls r2, 3
- ldr r0, [r1]
- adds r0, r2
-_081969D0:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196910
-
- thumb_func_start sub_81969E0
-sub_81969E0: @ 81969E0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r1, r4, 0x4
- bl sub_81969FC
- ldr r1, [r4]
- adds r0, r5, 0
- bl StringExpandPlaceholders
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81969E0
-
- thumb_func_start sub_81969FC
-sub_81969FC: @ 81969FC
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r4, 0
- ldr r5, =gUnknown_0860EFA0
-_08196A06:
- adds r1, r6, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- blt _08196A1A
- adds r1, r0, 0
- ldr r2, [r5]
- adds r0, r7, 0
- bl sub_8196A2C
-_08196A1A:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0x2
- ble _08196A06
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81969FC
-
- thumb_func_start sub_8196A2C
-sub_8196A2C: @ 8196A2C
- push {lr}
- ldr r3, =gUnknown_0860EFAC
- lsls r1, 2
- adds r1, r3
- ldr r3, [r1]
- adds r1, r2, 0
- bl _call_via_r3
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196A2C
-
- thumb_func_start sub_8196A44
-sub_8196A44: @ 8196A44
- push {r4-r6,lr}
- adds r5, r1, 0
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r4, [r1]
- movs r2, 0
- ldr r3, =gUnknown_0860EFC4
- adds r6, r3, 0
-_08196A5A:
- lsls r1, r2, 3
- ldrh r0, [r3]
- cmp r0, r4
- bne _08196A78
- adds r0, r6, 0x4
- adds r0, r1, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringCopy
- b _08196A90
- .pool
-_08196A78:
- adds r3, 0x8
- adds r2, 0x1
- cmp r2, 0x5
- bls _08196A5A
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- ldr r0, =gTrainers + 0x4 @ name offset
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_08196A90:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196A44
-
- thumb_func_start sub_8196A9C
-sub_8196A9C: @ 8196A9C
- push {r4,lr}
- adds r4, r1, 0
- bl sub_819672C
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl GetMapName
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8196A9C
-
- thumb_func_start sub_8196AB8
-sub_8196AB8: @ 8196AB8
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x13
- bgt _08196AD4
- movs r0, 0
- b _08196B4A
-_08196AD4:
- adds r0, r1, 0
- subs r0, 0x14
- cmp r0, 0x13
- bhi _08196AE0
- movs r0, 0x1
- b _08196B4A
-_08196AE0:
- adds r0, r1, 0
- subs r0, 0x28
- cmp r0, 0x9
- bhi _08196AEC
- movs r0, 0x2
- b _08196B4A
-_08196AEC:
- adds r0, r1, 0
- subs r0, 0x32
- cmp r0, 0x9
- bhi _08196AF8
- movs r0, 0x3
- b _08196B4A
-_08196AF8:
- adds r0, r1, 0
- subs r0, 0x3C
- cmp r0, 0x9
- bhi _08196B04
- movs r0, 0x4
- b _08196B4A
-_08196B04:
- adds r0, r1, 0
- subs r0, 0x46
- cmp r0, 0x9
- bhi _08196B10
- movs r0, 0x5
- b _08196B4A
-_08196B10:
- adds r0, r1, 0
- subs r0, 0x50
- cmp r0, 0x4
- bhi _08196B1C
- movs r0, 0x6
- b _08196B4A
-_08196B1C:
- adds r0, r1, 0
- subs r0, 0x55
- cmp r0, 0x4
- bhi _08196B28
- movs r0, 0x7
- b _08196B4A
-_08196B28:
- adds r0, r1, 0
- subs r0, 0x5A
- cmp r0, 0x3
- bhi _08196B34
- movs r0, 0x8
- b _08196B4A
-_08196B34:
- adds r0, r1, 0
- subs r0, 0x5E
- cmp r0, 0x3
- bhi _08196B40
- movs r0, 0x9
- b _08196B4A
-_08196B40:
- cmp r1, 0x62
- beq _08196B48
- movs r0, 0xB
- b _08196B4A
-_08196B48:
- movs r0, 0xA
-_08196B4A:
- pop {r1}
- bx r1
- thumb_func_end sub_8196AB8
-
- thumb_func_start sub_8196B50
-sub_8196B50: @ 8196B50
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3B
- bgt _08196B6C
- movs r0, 0
- b _08196B92
-_08196B6C:
- adds r0, r1, 0
- subs r0, 0x3C
- cmp r0, 0x1D
- bhi _08196B78
- movs r0, 0x1
- b _08196B92
-_08196B78:
- adds r0, r1, 0
- subs r0, 0x5A
- cmp r0, 0x4
- bhi _08196B84
- movs r0, 0x2
- b _08196B92
-_08196B84:
- adds r0, r1, 0
- subs r0, 0x5F
- cmp r0, 0x3
- bls _08196B90
- movs r0, 0x4
- b _08196B92
-_08196B90:
- movs r0, 0x3
-_08196B92:
- pop {r1}
- bx r1
- thumb_func_end sub_8196B50
-
- thumb_func_start sub_8196B98
-sub_8196B98: @ 8196B98
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r2, r0, 0
- mov r8, r1
- movs r3, 0
- ldr r0, =gWildMonHeaders
- ldrb r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xFF
- beq _08196C5C
- ldr r1, =gRematchTable
- lsls r0, r2, 4
- adds r2, r0, r1
- ldrh r4, [r2, 0xA]
- adds r1, r7, 0
-_08196BBA:
- ldrb r0, [r1]
- cmp r0, r4
- bne _08196BC8
- ldrb r0, [r1, 0x1]
- ldrh r5, [r2, 0xC]
- cmp r0, r5
- beq _08196BD2
-_08196BC8:
- adds r1, 0x14
- adds r3, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08196BBA
-_08196BD2:
- adds r1, r7, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r5, r0, 2
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08196C5C
- movs r6, 0
- adds r0, r1, 0x4
- adds r0, r5, r0
- ldr r4, [r0]
- cmp r4, 0
- beq _08196C02
- bl sub_8196AB8
- lsls r0, 24
- mov r2, sp
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- movs r6, 0x1
-_08196C02:
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r5, r0
- ldr r4, [r0]
- cmp r4, 0
- beq _08196C26
- bl sub_8196B50
- lsls r0, 24
- lsls r1, r6, 1
- mov r3, sp
- adds r2, r3, r1
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- adds r6, 0x1
-_08196C26:
- cmp r6, 0
- beq _08196C5C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 1
- add r0, sp
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- mov r0, r8
- bl StringCopy
- b _08196C62
- .pool
-_08196C5C:
- movs r0, 0xFF
- mov r5, r8
- strb r0, [r5]
-_08196C62:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8196B98
-
- thumb_func_start sub_8196C70
-sub_8196C70: @ 8196C70
- push {r4-r7,lr}
- adds r7, r1, 0
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1]
- bl GetLastBeatenRematchTrainerId
- lsls r0, 16
- lsrs r0, 16
- ldr r5, =gTrainers
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r4, r0
- ldr r6, [r0]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r4, r5
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _08196CD4
- cmp r1, 0x1
- ble _08196CC2
- cmp r1, 0x2
- beq _08196CD0
- cmp r1, 0x3
- beq _08196CD4
-_08196CC2:
- lsls r0, 3
- b _08196CD6
- .pool
-_08196CD0:
- lsls r0, 3
- b _08196CD6
-_08196CD4:
- lsls r0, 4
-_08196CD6:
- adds r0, r6
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196C70
-
- thumb_func_start sub_8196CF4
-sub_8196CF4: @ 8196CF4
- push {lr}
- adds r0, r1, 0
- ldr r2, =gUnknown_0860EFF4
- ldr r1, =gUnknown_0203CD88
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196CF4
-
- thumb_func_start sub_8196D14
-sub_8196D14: @ 8196D14
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- ldr r0, =gUnknown_0203CD88
- ldrh r1, [r0, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _08196D34
-_08196D24:
- adds r0, r1, 0
- movs r1, 0xA
- bl __divsi3
- adds r1, r0, 0
- adds r4, 0x1
- cmp r1, 0
- bne _08196D24
-_08196D34:
- ldrh r1, [r6, 0x2]
- lsls r3, r4, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196D14
-
- thumb_func_start sub_8196D4C
-sub_8196D4C: @ 8196D4C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gUnknown_0860F010
- b _08196D5C
- .pool
-_08196D58:
- adds r5, 0x2
- adds r4, 0x1
-_08196D5C:
- cmp r4, 0x7
- bhi _08196D6C
- ldrh r0, [r5]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08196D58
-_08196D6C:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8196D4C
-
- thumb_func_start sub_8196D74
-sub_8196D74: @ 8196D74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- bl sub_8196D4C
- cmp r0, 0x4
- ble _08196DF4
- bl RtcGetLocalDayCount
- adds r4, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xA
- bl GetTrainerId
- adds r6, r0, 0
- ldr r0, =0x0000ffff
- ands r6, r0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00002e6a
- adds r0, r1
- ldrh r5, [r0]
- bl sub_8196748
- mov r9, r0
- movs r0, 0xD
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0xA
- bl __divsi3
- mov r8, r0
- movs r0, 0x9
- bl GetGameStat
- eors r4, r5
- eors r5, r0
- adds r4, r5
- eors r4, r6
- adds r0, r4, 0
- mov r1, r8
- bl __modsi3
- cmp r0, r9
- bge _08196DF4
- bl sub_8196774
- cmp r0, r7
- bne _08196DF4
- movs r0, 0x1
- b _08196DF6
- .pool
-_08196DF4:
- movs r0, 0
-_08196DF6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8196D74
-
- thumb_func_start sub_8196E04
-sub_8196E04: @ 8196E04
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0
- cmp r0, 0x6
- bls _08196E14
- b _08196F7E
-_08196E14:
- lsls r0, 2
- ldr r1, =_08196E24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08196E24:
- .4byte _08196E9C
- .4byte _08196E40
- .4byte _08196ED0
- .4byte _08196F38
- .4byte _08196E74
- .4byte _08196F04
- .4byte _08196F60
-_08196E40:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000d14
- adds r0, r1
-_08196E4A:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196E52:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196E5A
- ldrh r4, [r1]
-_08196E5A:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196E52
- cmp r3, 0x1
- ble _08196E4A
- movs r0, 0x3
- b _08196F7C
- .pool
-_08196E74:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e08
- adds r0, r1
- movs r3, 0x1
-_08196E7E:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196E86
- ldrh r4, [r0]
-_08196E86:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196E7E
- movs r0, 0x4
- b _08196F7C
- .pool
-_08196E9C:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xCF
- lsls r1, 4
- adds r0, r1
-_08196EA8:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196EB0:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196EB8
- ldrh r4, [r1]
-_08196EB8:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196EB0
- movs r2, 0x2
- cmp r3, 0x3
- ble _08196EA8
- str r2, [r5]
- b _08196F7E
- .pool
-_08196ED0:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xDD
- lsls r1, 4
- adds r0, r1
-_08196EDC:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196EE4:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196EEC
- ldrh r4, [r1]
-_08196EEC:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196EE4
- movs r2, 0x2
- cmp r3, 0x1
- ble _08196EDC
- str r2, [r5]
- b _08196F7E
- .pool
-_08196F04:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dea
- adds r0, r1
-_08196F0E:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196F16:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196F1E
- ldrh r4, [r1]
-_08196F1E:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196F16
- movs r2, 0x2
- cmp r3, 0x1
- ble _08196F0E
- str r2, [r5]
- b _08196F7E
- .pool
-_08196F38:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dde
- adds r0, r1
- movs r3, 0x1
-_08196F42:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196F4A
- ldrh r4, [r0]
-_08196F4A:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196F42
- movs r3, 0x2
- str r3, [r5]
- b _08196F7E
- .pool
-_08196F60:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e1e
- adds r0, r1
- movs r3, 0x1
-_08196F6A:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196F72
- ldrh r4, [r0]
-_08196F72:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196F6A
- movs r0, 0x5
-_08196F7C:
- str r0, [r5]
-_08196F7E:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196E04
-
- thumb_func_start sub_8196F90
-sub_8196F90: @ 8196F90
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bhi _08196F9E
- movs r0, 0
- b _0819707A
-_08196F9E:
- cmp r4, 0x13
- bhi _08196FA6
- movs r0, 0x1
- b _0819707A
-_08196FA6:
- cmp r4, 0x1D
- bhi _08196FAE
- movs r0, 0x2
- b _0819707A
-_08196FAE:
- cmp r4, 0x27
- bhi _08196FB6
- movs r0, 0x3
- b _0819707A
-_08196FB6:
- cmp r4, 0x31
- bhi _08196FBE
- movs r0, 0x4
- b _0819707A
-_08196FBE:
- cmp r4, 0x3B
- bhi _08196FC6
- movs r0, 0x5
- b _0819707A
-_08196FC6:
- cmp r4, 0x45
- bhi _08196FCE
- movs r0, 0x6
- b _0819707A
-_08196FCE:
- cmp r4, 0x4F
- bhi _08196FD6
- movs r0, 0x7
- b _0819707A
-_08196FD6:
- cmp r4, 0x59
- bhi _08196FDE
- movs r0, 0x8
- b _0819707A
-_08196FDE:
- cmp r4, 0x63
- bhi _08196FE6
- movs r0, 0x9
- b _0819707A
-_08196FE6:
- cmp r4, 0x6D
- bhi _08196FEE
- movs r0, 0xA
- b _0819707A
-_08196FEE:
- cmp r4, 0x77
- bhi _08196FF6
- movs r0, 0xB
- b _0819707A
-_08196FF6:
- cmp r4, 0x81
- bhi _08196FFE
- movs r0, 0xC
- b _0819707A
-_08196FFE:
- cmp r4, 0x8B
- bhi _08197006
- movs r0, 0xD
- b _0819707A
-_08197006:
- cmp r4, 0x95
- bhi _0819700E
- movs r0, 0xE
- b _0819707A
-_0819700E:
- cmp r4, 0x9F
- bhi _08197016
- movs r0, 0xF
- b _0819707A
-_08197016:
- cmp r4, 0xA9
- bhi _0819701E
- movs r0, 0x10
- b _0819707A
-_0819701E:
- cmp r4, 0xB3
- bhi _08197026
- movs r0, 0x11
- b _0819707A
-_08197026:
- cmp r4, 0xBD
- bhi _0819702E
- movs r0, 0x12
- b _0819707A
-_0819702E:
- cmp r4, 0xC7
- bls _08197078
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08197050
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08197050:
- ldr r0, =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _0819706C
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0819706C:
- cmp r4, 0xC7
- bls _08197078
- movs r0, 0x14
- b _0819707A
- .pool
-_08197078:
- movs r0, 0x13
-_0819707A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196F90
-
- thumb_func_start sub_8197080
-sub_8197080: @ 8197080
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- movs r0, 0xFA
- lsls r0, 2
- bl Alloc
- adds r7, r0, 0
- cmp r7, 0
- bne _081970A2
- movs r0, 0xFF
- mov r1, r8
- strb r0, [r1]
- b _0819715C
-_081970A2:
- movs r0, 0
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gStringVar1
- mov r10, r0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, =gStringVar2
- mov r9, r1
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- bl sub_8196F90
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gUnknown_082A5C9C
- adds r0, r7, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFB
- strb r6, [r5]
- adds r5, 0x1
- ldr r1, =gUnknown_082A5D2C
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- strb r6, [r5]
- adds r5, 0x1
- ldr r0, =gUnknown_0860F020
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r5, 0
- bl StringCopy
- mov r0, r8
- adds r1, r7, 0
- bl StringExpandPlaceholders
- adds r5, r0, 0
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _08197156
- strb r6, [r5]
- adds r5, 0x1
- movs r0, 0
- bl GetNationalPokedexCount
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- bl GetNationalPokedexCount
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_082A633D
- adds r0, r5, 0
- bl StringExpandPlaceholders
-_08197156:
- adds r0, r7, 0
- bl Free
-_0819715C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
-
- thumb_func_end sub_8197080
- thumb_func_start sub_8197184
-sub_8197184: @ 8197184
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0860EA6C
- movs r2, 0x80
- lsls r2, 1
- lsls r4, 16
- lsrs r4, 16
- adds r3, r4, 0
- bl LoadBgTiles
- ldr r0, =gUnknown_0860EA4C
- lsls r5, 20
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197184
-
- thumb_func_start sub_81971C4
-sub_81971C4: @ 81971C4
- push {lr}
- bl sub_819645C
- pop {r0}
- bx r0
- thumb_func_end sub_81971C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 1c0c18f7e..91682a780 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -8173,7 +8173,7 @@ _081CAFA4:
ldrh r0, [r1, 0x1E]
bl GetTrainerIdxByRematchIdx
ldr r1, =gStringVar4
- bl sub_81967AC
+ bl SelectMatchCallMessage
strb r0, [r6]
b _081CAFCC
.pool
diff --git a/data/battle_frontier_1.s b/data/battle_frontier_1.s
deleted file mode 100644
index b1375e05f..000000000
--- a/data/battle_frontier_1.s
+++ /dev/null
@@ -1,434 +0,0 @@
-#include "constants/flags.h"
-
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 2
-gUnknown_0860DEB8:: @ 860DEB8 //struct
- .2byte 0x0025, 0x0000, 0x0108, 0x0208, 0x0308, 0x0103, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x02e1, 0x0000, 0x010c, 0x020c, 0x030c, 0x013e, 0x000c, 0x010c, 0x020c, 0x0000
- .2byte 0x002c, 0x0000, 0x010c, 0x020c, 0x030c, 0x0104, 0x000c, 0x010c, 0x020c, 0x0000
- .2byte 0x0039, 0x0000, 0x0102, 0x0202, 0x0302, 0x0105, 0x0002, 0x0102, 0x0202, 0x0000
- .2byte 0x0040, 0x0000, 0x0101, 0x0201, 0x0301, 0x0106, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x02af, 0x0004, 0x0101, 0x0201, 0x0301, 0x013d, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x02ff, 0x0000, 0x010a, 0x020a, 0x030a, 0x0140, 0x000a, 0x010a, 0x020a, 0x0000
- .2byte 0x005e, 0x0000, 0x0109, 0x0209, 0x0309, 0x0108, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x004e, 0x0000, 0x0106, 0x0206, 0x0306, 0x0107, 0x0006, 0x0106, 0x0206, 0x0000
- .2byte 0x006c, 0x0000, 0x0108, 0x0208, 0x0308, 0x0109, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x0072, 0x0000, 0x0108, 0x0208, 0x0308, 0x010a, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x0090, 0x0000, 0x0108, 0x020a, 0x030a, 0x010e, 0x000a, 0x0108, 0x020a, 0x0000
- .2byte 0x007f, 0x0000, 0x010a, 0x020a, 0x030a, 0x010b, 0x000a, 0x0108, 0x020a, 0x0000
- .2byte 0x0088, 0x0000, 0x0104, 0x0204, 0x0304, 0x010c, 0x0004, 0x0104, 0x0204, 0x0000
- .2byte 0x008f, 0x0000, 0x0107, 0x0207, 0x0307, 0x010d, 0x0007, 0x0107, 0x0207, 0x0000
- .2byte 0x009b, 0x0000, 0x0105, 0x0205, 0x0305, 0x010f, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x00b7, 0x0000, 0x0103, 0x0203, 0x0303, 0x0110, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x02a0, 0x0000, 0x0103, 0x0203, 0x0303, 0x013b, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x00c3, 0x0000, 0x0106, 0x0206, 0x0306, 0x0111, 0x0006, 0x0106, 0x0206, 0x0000
- .2byte 0x00c4, 0x0000, 0x0104, 0x0204, 0x0304, 0x0112, 0x0004, 0x0104, 0x0204, 0x0000
- .2byte 0x00ce, 0x0000, 0x010b, 0x020b, 0x030b, 0x0113, 0x000b, 0x010b, 0x020b, 0x0000
- .2byte 0x00d8, 0x0000, 0x0101, 0x0201, 0x0301, 0x0114, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x02a9, 0x0003, 0x010c, 0x020c, 0x030c, 0x013c, 0x000c, 0x010c, 0x020c, 0x0000
- .2byte 0x00e2, 0x0000, 0x0107, 0x0207, 0x0307, 0x0115, 0x0007, 0x0107, 0x0207, 0x0000
- .2byte 0x00ee, 0x0000, 0x0104, 0x0204, 0x0304, 0x0116, 0x0001, 0x0104, 0x0204, 0x0000
- .2byte 0x00f9, 0x0000, 0x0108, 0x0208, 0x0308, 0x0117, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x00fe, 0x0000, 0x010c, 0x020c, 0x030c, 0x0118, 0x000c, 0x010c, 0x020c, 0x0000
- .2byte 0x0118, 0x0000, 0x0102, 0x0202, 0x0302, 0x011a, 0x0002, 0x0102, 0x0202, 0x0000
- .2byte 0x0111, 0x0000, 0x0101, 0x0201, 0x0301, 0x0119, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x011f, 0x0006, 0x0109, 0x0209, 0x0309, 0x011b, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x012e, 0x0000, 0x010e, 0x020e, 0x030e, 0x011d, 0x000e, 0x010e, 0x020e, 0x0000
- .2byte 0x0125, 0x0000, 0x010b, 0x020b, 0x030b, 0x011c, 0x000b, 0x010b, 0x020b, 0x0000
- .2byte 0x0133, 0x0000, 0x010c, 0x020c, 0x030c, 0x011e, 0x000c, 0x010c, 0x020c, 0x0000
- .2byte 0x0139, 0x0000, 0x010d, 0x020d, 0x030d, 0x011f, 0x000d, 0x010d, 0x020d, 0x0000
- .2byte 0x013e, 0x0000, 0x0101, 0x0201, 0x0301, 0x0120, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x0153, 0x0000, 0x0103, 0x0203, 0x0303, 0x0121, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x0178, 0x0000, 0x0105, 0x0205, 0x0305, 0x0126, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x0171, 0x0000, 0x0109, 0x0209, 0x0309, 0x0125, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x0166, 0x0000, 0x0109, 0x0209, 0x0309, 0x0123, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x016c, 0x0000, 0x0105, 0x0205, 0x0305, 0x0124, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x0182, 0x0000, 0x0109, 0x0209, 0x0309, 0x0128, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x0161, 0x0000, 0x0105, 0x0205, 0x0305, 0x0122, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x0179, 0x0000, 0x0105, 0x0205, 0x0305, 0x0127, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x0188, 0x0000, 0x0104, 0x0204, 0x0304, 0x0129, 0x0004, 0x0104, 0x0204, 0x0000
- .2byte 0x0196, 0x0000, 0x0106, 0x0206, 0x0306, 0x012a, 0x0006, 0x0106, 0x0206, 0x0000
- .2byte 0x01a3, 0x0000, 0x0101, 0x0201, 0x0301, 0x012b, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x01ab, 0x0000, 0x0109, 0x0209, 0x0309, 0x012c, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x01b2, 0x0000, 0x0108, 0x0208, 0x0308, 0x012d, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x01c1, 0x0000, 0x0109, 0x0209, 0x0309, 0x012e, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x01da, 0x0000, 0x0102, 0x0202, 0x0302, 0x012f, 0x0002, 0x0102, 0x0202, 0x0000
- .2byte 0x01e1, 0x0002, 0x0102, 0x0202, 0x0302, 0x0130, 0x0001, 0x0102, 0x0202, 0x0000
- .2byte 0x01ec, 0x0000, 0x0103, 0x0203, 0x0303, 0x0131, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x02e4, 0x0000, 0x0103, 0x0203, 0x0303, 0x013f, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x0200, 0x0000, 0x0107, 0x0207, 0x0307, 0x0132, 0x0007, 0x0107, 0x0207, 0x0000
- .2byte 0x0221, 0x0000, 0x0108, 0x0208, 0x0308, 0x0134, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x021a, 0x0000, 0x0105, 0x0205, 0x0305, 0x0133, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x0009, 0x0000, 0x0108, 0x0208, 0x0308, 0x0102, 0x0008, 0x0108, 0x0208, 0x0000
- .2byte 0x022f, 0x0000, 0x0109, 0x0209, 0x0309, 0x0136, 0x0009, 0x0109, 0x0209, 0x0000
- .2byte 0x0228, 0x0000, 0x0105, 0x0205, 0x0305, 0x0135, 0x0005, 0x0105, 0x0205, 0x0000
- .2byte 0x025c, 0x0000, 0x0102, 0x0202, 0x0302, 0x0137, 0x0002, 0x0102, 0x0202, 0x0000
- .2byte 0x026d, 0x0000, 0x0101, 0x0201, 0x0301, 0x0138, 0x0001, 0x0101, 0x0201, 0x0000
- .2byte 0x0273, 0x0000, 0x0103, 0x0203, 0x0303, 0x0139, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x0001, 0x0000, 0x010f, 0x0203, 0x0303, 0x0101, 0x0003, 0x0103, 0x0203, 0x0000
- .2byte 0x0282, 0x0001, 0x0109, 0x0209, 0x0309, 0x013a, 0x0009, 0x0109, 0x0209, 0x0000
-
- .align 2
-gUnknown_0860E3B8:: @ 860E3B8
- .4byte BattleFrontier_PokeNav_2A971C, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9798, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9813, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A98A8, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9977, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A99FD, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9A78, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9AE8, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9BA7, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9C36, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9CC8, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9D44, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9DD7, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9E70, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2A9EFD, 0x00ff0200
-
- .align 2
-gUnknown_0860E430:: @ 860E430
- .4byte BattleFrontier_PokeNav_2A9FAB, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA028, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA099, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA100, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA188, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA214, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA2A1, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA31B, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA3A8, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA442, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA4C5, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA520, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA5AD, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AA64D, 0x00ffff00
-
- .align 2
-gUnknown_0860E4A0:: @ 860E4A0
- .4byte BattleFrontier_PokeNav_2AA6AF, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA730, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA77A, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA81C, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA88C, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA934, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AA9D3, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAA40, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAAE4, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAB8C, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAC25, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAC9D, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAD41, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AAE00, 0x00ff0300
-
- .align 2
-gUnknown_0860E510:: @ 860E510
- .4byte BattleFrontier_PokeNav_2AAE7F, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AAEF1, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AAF69, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB010, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB076, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB11A, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB1B4, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB23D, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB2E9, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB382, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB410, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB4B0, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB538, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB5E4, 0x00ff0100
-
- .align 2
-gUnknown_0860E580:: @ 860E580
- .4byte BattleFrontier_PokeNav_2AB670, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB6CD, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB73C, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB808, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB8B7, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AB95D, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABA03, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABA9F, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABB62, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABC26, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABCE9, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABDA2, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABE5E, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2ABF36, 0x00ff0100
-
- .align 2
-gUnknown_0860E5F0:: @ 860E5F0
- .4byte BattleFrontier_PokeNav_2AC009, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AC0BD, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC18C, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC228, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC30C, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC3B6, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC446, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC5C7, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC682, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC755, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC82C, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AC914, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ACA59, 0x00ff0200
- .4byte BattleFrontier_PokeNav_2ACB02, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ACC3F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ACD2F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ACE1E, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ACF32, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2ACFBE, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD0AC, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD194, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD1DF, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD2A8, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD34F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD44E, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD53A, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD642, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AD801, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AD92E, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2ADA8F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ADB9B, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ADC92, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ADE08, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2ADF07, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE0D9, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE1FD, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE327, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE3DA, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE489, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE5CD, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE698, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE704, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AE78F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE859, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AE8E6, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AE998, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AEA8F, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AEB77, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AEBFA, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AECC1, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AED52, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AEE35, 0x00ff0300
- .4byte BattleFrontier_PokeNav_2AEEF4, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AEFDA, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF0E7, 0x00ff0100
- .4byte BattleFrontier_PokeNav_2AF1B8, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF2C4, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF371, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF480, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF671, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF7D8, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AF8F7, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AFA39, 0x00ffff00
- .4byte BattleFrontier_PokeNav_2AFB26, 0x00ffff00
-
- .align 2
-gUnknown_0860E7F0:: @860E7F0
- .4byte BattleFrontier_PokeNav_2AFC07, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFC78, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFCFF, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFDA7, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFE3D, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFECA, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFF64, 0x00050400
- .4byte BattleFrontier_PokeNav_2AFFF0, 0x00050400
- .4byte BattleFrontier_PokeNav_2B00B5, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0129, 0x00050400
- .4byte BattleFrontier_PokeNav_2B01A5, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0232, 0x00050400
- .4byte BattleFrontier_PokeNav_2B02D9, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0366, 0x00050400
-
- .align 2
-gUnknown_0860E860:: @860E860
- .4byte BattleFrontier_PokeNav_2B03E6, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0457, 0x00050400
- .4byte BattleFrontier_PokeNav_2B04DE, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0586, 0x00050400
- .4byte BattleFrontier_PokeNav_2B061C, 0x00050400
- .4byte BattleFrontier_PokeNav_2B06A3, 0x00050400
- .4byte BattleFrontier_PokeNav_2B073B, 0x00050400
- .4byte BattleFrontier_PokeNav_2B07C7, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0894, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0908, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0984, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0A11, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0AB8, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0B45, 0x00050400
-
- .align 2
-gUnknown_0860E8D0:: @860E8D0
- .4byte BattleFrontier_PokeNav_2B0BC5, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0C4A, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0CC7, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0D4A, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0DC8, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0E35, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0ED1, 0x00050400
- .4byte BattleFrontier_PokeNav_2B0F72, 0x00050400
- .4byte BattleFrontier_PokeNav_2B102A, 0x00050400
- .4byte BattleFrontier_PokeNav_2B10A7, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1121, 0x00050400
- .4byte BattleFrontier_PokeNav_2B11D3, 0x00050400
- .4byte BattleFrontier_PokeNav_2B124D, 0x00050400
- .4byte BattleFrontier_PokeNav_2B12D0, 0x00050400
-
- .align 2
-gUnknown_0860E940:: @860E940
- .4byte BattleFrontier_PokeNav_2B1347, 0x00050400
- .4byte BattleFrontier_PokeNav_2B13B1, 0x00050400
- .4byte BattleFrontier_PokeNav_2B142B, 0x00050400
- .4byte BattleFrontier_PokeNav_2B14B4, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1525, 0x00050400
- .4byte BattleFrontier_PokeNav_2B158E, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1622, 0x00050400
- .4byte BattleFrontier_PokeNav_2B169D, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1775, 0x00050400
- .4byte BattleFrontier_PokeNav_2B17F8, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1877, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1946, 0x00050400
- .4byte BattleFrontier_PokeNav_2B19C7, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1A4C, 0x00050400
-
- .align 2
-gUnknown_0860E9B0:: @860E9B0
- .4byte BattleFrontier_PokeNav_2B1ACA, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1B50, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1BE4, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1C6A, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1CCF, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1D38, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1DCD, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1E4B, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1F24, 0x00050400
- .4byte BattleFrontier_PokeNav_2B1FA8, 0x00050400
- .4byte BattleFrontier_PokeNav_2B2022, 0x00050400
- .4byte BattleFrontier_PokeNav_2B20F3, 0x00050400
- .4byte BattleFrontier_PokeNav_2B2175, 0x00050400
- .4byte BattleFrontier_PokeNav_2B21FC, 0x00050400
-
- .align 2
-gUnknown_0860EA20:: @ 860EA20
- .4byte gUnknown_0860E3B8
- .4byte gUnknown_0860E430
- .4byte gUnknown_0860E4A0
-
- .align 2
-gUnknown_0860EA2C:: @ 860EA2C
- .4byte gUnknown_0860E510
- .4byte gUnknown_0860E580
-
- .align 2
-gUnknown_0860EA34:: @ 860EA34
- .4byte gUnknown_0860E5F0
- .4byte gUnknown_0860E7F0
- .4byte gUnknown_0860E860
- .4byte gUnknown_0860E8D0
- .4byte gUnknown_0860E940
- .4byte gUnknown_0860E9B0
-
- .align 2
-gUnknown_0860EA4C:: @ 860EA4C
- .incbin "graphics/unknown/unknown_60EA4C.gbapal"
-
- .align 2
-gUnknown_0860EA6C:: @ 860EA6C
- .incbin "graphics/interface/menu_border.4bpp"
-
- .align 2
-gUnknown_0860EB6C:: @ 860EB6C
- .incbin "graphics/pokenav/icon.gbapal"
-
- .align 2
-gUnknown_0860EB8C:: @ 860EB8C
- .incbin "graphics/pokenav/icon.4bpp.lz"
-
- .align 2
-gText_PokenavCallEllipsis:: @ 860EF70
- .string "………………\p$"
-
- .align 2
-gUnknown_0860EF78:: @ 860EF78
- .4byte sub_819612C
- .4byte sub_81961F0
- .4byte sub_8196274
- .4byte sub_81962B0
- .4byte sub_81962D8
- .4byte sub_8196330
- .4byte sub_8196390
- .4byte sub_81963F0
-
- .align 2
-gUnknown_0860EF98:: @ 860EF98
- window_template 0x00, 0x01, 0x0f, 0x1c, 0x04, 0x0f, 0x0200
-
- .align 2
-gUnknown_0860EFA0:: @ 860EFA0
- .4byte gStringVar1
- .4byte gStringVar2
- .4byte gStringVar3
-
- .align 2
-gUnknown_0860EFAC:: @ 860EFAC
- .4byte sub_8196A44
- .4byte sub_8196A9C
- .4byte sub_8196B98
- .4byte sub_8196C70
- .4byte sub_8196CF4
- .4byte sub_8196D14
-
- .align 2
-gUnknown_0860EFC4:: @ 860EFC4
- .4byte 0x00000282, gText_Kira
- .4byte 0x000001e1, gText_Amy
- .4byte 0x000002a9, gText_John
- .4byte 0x000002af, gText_Roy
- .4byte 0x00000033, gText_Gabby
- .4byte 0x0000011f, gText_Anna
-
- .align 2
-gUnknown_0860EFF4:: @ 860EFF4
- .4byte gText_BattleTower2
- .4byte gText_BattleDome
- .4byte gText_BattlePalace
- .4byte gText_BattleArena
- .4byte gText_BattlePike
- .4byte gText_BattleFactory
- .4byte gText_BattlePyramid
-
- .align 2
-gUnknown_0860F010:: @ 860F010
- .2byte FLAG_BADGE01_GET
- .2byte FLAG_BADGE02_GET
- .2byte FLAG_BADGE03_GET
- .2byte FLAG_BADGE04_GET
- .2byte FLAG_BADGE05_GET
- .2byte FLAG_BADGE06_GET
- .2byte FLAG_BADGE07_GET
- .2byte FLAG_BADGE08_GET
-
-gUnknown_0860F020:: @ 860F020
- .4byte gBirchDexRatingText_LessThan10
- .4byte gBirchDexRatingText_LessThan20
- .4byte gBirchDexRatingText_LessThan30
- .4byte gBirchDexRatingText_LessThan40
- .4byte gBirchDexRatingText_LessThan50
- .4byte gBirchDexRatingText_LessThan60
- .4byte gBirchDexRatingText_LessThan70
- .4byte gBirchDexRatingText_LessThan80
- .4byte gBirchDexRatingText_LessThan90
- .4byte gBirchDexRatingText_LessThan100
- .4byte gBirchDexRatingText_LessThan110
- .4byte gBirchDexRatingText_LessThan120
- .4byte gBirchDexRatingText_LessThan130
- .4byte gBirchDexRatingText_LessThan140
- .4byte gBirchDexRatingText_LessThan150
- .4byte gBirchDexRatingText_LessThan160
- .4byte gBirchDexRatingText_LessThan170
- .4byte gBirchDexRatingText_LessThan180
- .4byte gBirchDexRatingText_LessThan190
- .4byte gBirchDexRatingText_LessThan200
- .4byte gBirchDexRatingText_DexCompleted
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 99b6f4dcf..647d967a5 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -5630,2960 +5630,7 @@ LilycoveCity_PokemonCenter_1F_Text_2A9703: @ 82A9703
LilycoveCity_PokemonCenter_1F_Text_2A970E: @ 82A970E
.string "{STR_VAR_1}: Umyaaaan!$"
-BattleFrontier_PokeNav_2A971C:: @ 82A971C
- .string "Hi! {PLAYER}{STRING 5}, hello!\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I saw this {STR_VAR_2} a while back\n"
- .string "but I couldn't catch it.\p"
- .string "It was so close, too!\n"
- .string "Well, see you again!$"
-
-BattleFrontier_PokeNav_2A9798:: @ 82A9798
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's {STR_VAR_1}.\p"
- .string "I tried to catch a nice {STR_VAR_2}\n"
- .string "a little while ago.\p"
- .string "But, it got away.\n"
- .string "I was sure disappointed!\p"
- .string "Okay, bye!$"
-
-BattleFrontier_PokeNav_2A9813:: @ 82A9813
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I just took a shot at catching\n"
- .string "this {STR_VAR_2}, but it took off.\p"
- .string "I came oh so close, too!\p"
- .string "It spoiled my day…\n"
- .string "All right, see you!$"
-
-BattleFrontier_PokeNav_2A98A8:: @ 82A98A8
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "You know the POKéMON {STR_VAR_2}?\n"
- .string "I came close to getting one.\p"
- .string "It was just a while back.\n"
- .string "I thought I had it but it escaped.\p"
- .string "If I see it again, I'll get it for\n"
- .string "sure, though.\p"
- .string "Okay, catch you later.$"
-
-BattleFrontier_PokeNav_2A9977:: @ 82A9977
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\l"
- .string "Catching any POKéMON lately?\p"
- .string "A little while ago I came close to\n"
- .string "nabbing one, but it got loose.\p"
- .string "Right, take care!$"
-
-BattleFrontier_PokeNav_2A99FD:: @ 82A99FD
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\l"
- .string "Caught any POKéMON lately?\p"
- .string "I nearly nabbed one the other day.\n"
- .string "But it evaded me somehow.\p"
- .string "You take care.$"
-
-BattleFrontier_PokeNav_2A9A78:: @ 82A9A78
- .string "…Uh, {PLAYER}{STRING 5}?\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "Oh, wait! Wait!\n"
- .string "I can catch this {STR_VAR_2}…\p"
- .string "Aaarrrgh! It bolted loose!\n"
- .string "That wasn't just close!$"
-
-BattleFrontier_PokeNav_2A9AE8:: @ 82A9AE8
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\p"
- .string "Have you had success catching\n"
- .string "POKéMON lately?\p"
- .string "I came very close a little while\n"
- .string "ago, but my target got free.\p"
- .string "I need to try harder!\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2A9BA7:: @ 82A9BA7
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "So? Are you getting more POKéMON\n"
- .string "together?\p"
- .string "I'm having a rotten time of it!\n"
- .string "They all get away from me!\p"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2A9C36:: @ 82A9C36
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Listen, I came within a whisker of\n"
- .string "catching this {STR_VAR_2}…\p"
- .string "But, it gave me the slip…\p"
- .string "I need to try harder.\n"
- .string "See you around.$"
-
-BattleFrontier_PokeNav_2A9CC8:: @ 82A9CC8
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "How are things with you?\p"
- .string "I tried to catch a wild {STR_VAR_2}\n"
- .string "earlier, but it managed to flee.\p"
- .string "I feel defeated…$"
-
-BattleFrontier_PokeNav_2A9D44:: @ 82A9D44
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you still catching POKéMON?\p"
- .string "I've been trying to catch them\n"
- .string "myself, but it's not so easy.\p"
- .string "The way of POKéMON is deep!$"
-
-BattleFrontier_PokeNav_2A9DD7:: @ 82A9DD7
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "Have you been catching POKéMON?\p"
- .string "I've been trying to catch them\n"
- .string "myself, but with little success.\p"
- .string "The way of POKéMON is deep!$"
-
-BattleFrontier_PokeNav_2A9E70:: @ 82A9E70
- .string "Oh, hi, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Just now, I tried to catch a cute\n"
- .string "{STR_VAR_2}.\p"
- .string "It got away, though!\n"
- .string "Oh, you bet I was disappointed!\p"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2A9EFD:: @ 82A9EFD
- .string "Hey, {PLAYER}!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I've been thinking about trying\n"
- .string "to catch me some POKéMON.\p"
- .string "But I can't seem to find any.\n"
- .string "It's a real puzzler for me!\p"
- .string "I'm at my wit's end!\n"
- .string "See you around!$"
-
-BattleFrontier_PokeNav_2A9FAB:: @ 82A9FAB
- .string "Hi! {PLAYER}{STRING 5}, hello!\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I tried battling another TRAINER,\n"
- .string "but I lost.\p"
- .string "It was really disappointing.\n"
- .string "Well, see you again!$"
-
-BattleFrontier_PokeNav_2AA028:: @ 82AA028
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's {STR_VAR_1}.\p"
- .string "I challenged someone else after\n"
- .string "we battled.\p"
- .string "I came close, but I ended up\n"
- .string "losing. Oh, well!$"
-
-BattleFrontier_PokeNav_2AA099:: @ 82AA099
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I just got cleaned in a battle.\p"
- .string "I guess I need to raise my team\n"
- .string "some more!$"
-
-BattleFrontier_PokeNav_2AA100:: @ 82AA100
- .string "Hey, {PLAYER}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "I tried another battle yesterday,\n"
- .string "but I couldn't pull out the win.\p"
- .string "My team needs more raising.\n"
- .string "Okay, catch you later.$"
-
-BattleFrontier_PokeNav_2AA188:: @ 82AA188
- .string "Hiya, {PLAYER}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "How are things with you?\p"
- .string "I've been battling on,\n"
- .string "but I haven't won very often.\p"
- .string "I can't get it together.\n"
- .string "Right, take care!$"
-
-BattleFrontier_PokeNav_2AA214:: @ 82AA214
- .string "Hey, {PLAYER}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "How's it going for you?\p"
- .string "I've been battling hard lately,\n"
- .string "but to little success.\p"
- .string "I can't get into the groove.\n"
- .string "You take care.$"
-
-BattleFrontier_PokeNav_2AA2A1:: @ 82AA2A1
- .string "{STR_VAR_1} here.\n"
- .string "How's it going lately?\p"
- .string "I lost a battle yesterday,\n"
- .string "and it's filled my thoughts.\p"
- .string "I have to devise a plan…\n"
- .string "See you.$"
-
-BattleFrontier_PokeNav_2AA31B:: @ 82AA31B
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\p"
- .string "How are your POKéMON doing?\n"
- .string "I lost a match the other day.\p"
- .string "I need to try harder!\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2AA3A8:: @ 82AA3A8
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "Listen, listen, you have to hear\n"
- .string "this!\p"
- .string "I had a POKéMON battle earlier,\n"
- .string "but I lost at the last second.\p"
- .string "Oh, it burns me up!$"
-
-BattleFrontier_PokeNav_2AA442:: @ 82AA442
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "A little earlier, I was in a battle.\n"
- .string "I lost, though.\p"
- .string "I need to raise my POKéMON more.\n"
- .string "See you around.$"
-
-BattleFrontier_PokeNav_2AA4C5:: @ 82AA4C5
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "How are your POKéMON?\p"
- .string "I just lost yet another battle.\p"
- .string "Well, see you!$"
-
-BattleFrontier_PokeNav_2AA520:: @ 82AA520
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you still battling hard?\p"
- .string "As for me, I lost recently, so I've\n"
- .string "been training my team all over.\p"
- .string "Let's meet again.$"
-
-BattleFrontier_PokeNav_2AA5AD:: @ 82AA5AD
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I hope you've been keeping well.\p"
- .string "I was in a battle just a little\n"
- .string "while before this.\p"
- .string "{PLAYER}{STRING 5}, try to be active like me.\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2AA64D:: @ 82AA64D
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Are you doing good?\p"
- .string "You should go home every so often,\n"
- .string "though.\p"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2AA6AF:: @ 82AA6AF
- .string "Hi! {PLAYER}{STRING 5}, hello!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I battled another TRAINER earlier.\n"
- .string "I won! I won!\p"
- .string "My {STR_VAR_2} really worked hard\n"
- .string "for me. This is so great!$"
-
-BattleFrontier_PokeNav_2AA730:: @ 82AA730
- .string "Hello, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}!\p"
- .string "I had a battle yesterday and\n"
- .string "I won! It's fantastic!$"
-
-BattleFrontier_PokeNav_2AA77A:: @ 82AA77A
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}!\l"
- .string "How's your battling?\p"
- .string "Me, I had a battle the other day,\n"
- .string "and my {STR_VAR_2} came up huge!\p"
- .string "The next time I battle you,\n"
- .string "{PLAYER}, it won't be me losing!$"
-
-BattleFrontier_PokeNav_2AA81C:: @ 82AA81C
- .string "Hey, {PLAYER}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "I had a match earlier.\n"
- .string "I managed to win, but it was close.\p"
- .string "My {STR_VAR_2} put on one\n"
- .string "inspired showing.$"
-
-BattleFrontier_PokeNav_2AA88C:: @ 82AA88C
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "How are things with you?\n"
- .string "Battling much?\p"
- .string "I just won a while back!\n"
- .string "My {STR_VAR_2} was brilliant!\p"
- .string "You wait. I'm going to beat you\n"
- .string "next time! Right, take care!$"
-
-BattleFrontier_PokeNav_2AA934:: @ 82AA934
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "How's it going for you?\p"
- .string "I've been riding a hot streak.\n"
- .string "Why, I just won a battle.\p"
- .string "When we have our next battle,\n"
- .string "I'm sure not going to lose!$"
-
-BattleFrontier_PokeNav_2AA9D3:: @ 82AA9D3
- .string "{PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here.\p"
- .string "My {STR_VAR_2} is a force!\n"
- .string "It won me another battle just now!\p"
- .string "I can't wait to have a rematch\n"
- .string "with you.$"
-
-BattleFrontier_PokeNav_2AAA40:: @ 82AAA40
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\p"
- .string "I hope you've been well.\n"
- .string "I wanted to tell you I just won.\p"
- .string "My {STR_VAR_2} worked especially\n"
- .string "hard to get the win.\p"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2AAAE4:: @ 82AAAE4
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "How are your POKéMON holding up?\n"
- .string "Mine just won a battle!\p"
- .string "My {STR_VAR_2} was spectacular,\n"
- .string "I must say!\p"
- .string "I wish I could've shown you!\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2AAB8C:: @ 82AAB8C
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "How has life been treating you?\p"
- .string "My POKéMON appear to be charged\n"
- .string "with energy.\p"
- .string "I just won a battle with them.\n"
- .string "See you around.$"
-
-BattleFrontier_PokeNav_2AAC25:: @ 82AAC25
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Been in any battles lately?\n"
- .string "I just won another one today!\p"
- .string "I'm on a roll! Gahahaha!\n"
- .string "Well, see you!$"
-
-BattleFrontier_PokeNav_2AAC9D:: @ 82AAC9D
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I trust you've been well?\n"
- .string "I'm still bursting with life!\p"
- .string "Why, just now, I won another match.\n"
- .string "I'm not stepping aside to you\l"
- .string "youngsters yet!$"
-
-BattleFrontier_PokeNav_2AAD41:: @ 82AAD41
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I hope you've been keeping well.\n"
- .string "I still have a bounce in my step!\p"
- .string "Why, I just won a battle yet again.\n"
- .string "Oh, I won't lose to young people\l"
- .string "quite yet!\p"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2AAE00:: @ 82AAE00
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I was in a battle recently, and my\n"
- .string "{STR_VAR_2} was exceptional!\p"
- .string "I wish you could have seen it,\n"
- .string "{PLAYER}{STRING 5}. Bye-bye!$"
-
-BattleFrontier_PokeNav_2AAE7F:: @ 82AAE7F
- .string "Hi! {PLAYER}, hello!\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Huh? Wait, you're near\n"
- .string "{STR_VAR_2}?\p"
- .string "Oh, wow, we have to battle, then!\n"
- .string "I'll be waiting! See you!$"
-
-BattleFrontier_PokeNav_2AAEF1:: @ 82AAEF1
- .string "Hello, {PLAYER}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "Oh? You happen to be around\n"
- .string "{STR_VAR_2} right now?\p"
- .string "Would you like to battle now?\n"
- .string "I'll wait for you! See you!$"
-
-BattleFrontier_PokeNav_2AAF69:: @ 82AAF69
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "Oh, hey, are you near\n"
- .string "{STR_VAR_2} right now?\p"
- .string "How would you like to battle with\n"
- .string "me right now?\p"
- .string "I'm not losing again!\n"
- .string "I'll be waiting! Catch you soon!$"
-
-BattleFrontier_PokeNav_2AB010:: @ 82AB010
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "Whereabouts are you now?\n"
- .string "Huh? {STR_VAR_2}?\p"
- .string "Want to battle now?\n"
- .string "I'll wait for you. See you!$"
-
-BattleFrontier_PokeNav_2AB076:: @ 82AB076
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\l"
- .string "How are things with you?\p"
- .string "You're where now?\n"
- .string "{STR_VAR_2}?\p"
- .string "Well, how about we have a quick\n"
- .string "rematch right away?\p"
- .string "I'll keep an eye out for you.\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2AB11A:: @ 82AB11A
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\l"
- .string "How are your POKéMON keeping?\p"
- .string "Oh, is that right? You're around\n"
- .string "{STR_VAR_2}?\p"
- .string "Well, then, we'd better have\n"
- .string "a rematch.\p"
- .string "I can wait, sure.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AB1B4:: @ 82AB1B4
- .string "…Er, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here…\p"
- .string "Oh, you happen to be around\n"
- .string "{STR_VAR_2}?\p"
- .string "Then, let's battle.\n"
- .string "Right away, I mean.\p"
- .string "I'll show you my POKéMON.\n"
- .string "I'll wait for you.$"
-
-BattleFrontier_PokeNav_2AB23D:: @ 82AB23D
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\p"
- .string "I hope you're doing well.\n"
- .string "Oh, you're near {STR_VAR_2}.\p"
- .string "Would you like to have a battle\n"
- .string "with me, then?\p"
- .string "I'll wait for you.\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2AB2E9:: @ 82AB2E9
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "Are you keeping up?\n"
- .string "Oh, you're near {STR_VAR_2}?\p"
- .string "Oh, well, then don't you think we\n"
- .string "should battle?\p"
- .string "Don't keep me waiting too long!$"
-
-BattleFrontier_PokeNav_2AB382:: @ 82AB382
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "How are things with you?\n"
- .string "Oh, you're near {STR_VAR_2}.\p"
- .string "We should have a battle now, then.\p"
- .string "I'm ready and waiting.\n"
- .string "Be quick!$"
-
-BattleFrontier_PokeNav_2AB410:: @ 82AB410
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Ah, so where you are now is\n"
- .string "{STR_VAR_2}?\p"
- .string "Well, then, we just have to have\n"
- .string "a battle, don't you think?\p"
- .string "I'll wait around for you!\n"
- .string "See you real quick!$"
-
-BattleFrontier_PokeNav_2AB4B0:: @ 82AB4B0
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Where might you be now?\p"
- .string "{STR_VAR_2}?\n"
- .string "That's quite close by!\p"
- .string "What do you say we have a battle\n"
- .string "now?\p"
- .string "I can wait.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AB538:: @ 82AB538
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I hope you've been keeping well.\n"
- .string "Oh, you're near {STR_VAR_2}?\p"
- .string "Since that's not very far away,\n"
- .string "come see me for a battle.\p"
- .string "I'll wait for you.\n"
- .string "Bye for now.$"
-
-BattleFrontier_PokeNav_2AB5E4:: @ 82AB5E4
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You're what? …{STR_VAR_2}?\n"
- .string "That's very close.\p"
- .string "Don't you think we ought to have\n"
- .string "a battle?\p"
- .string "I'll be looking for you!\n"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2AB670:: @ 82AB670
- .string "Hi! {PLAYER}, hello!\n"
- .string "This is {STR_VAR_1}.\p"
- .string "Want to have a battle with me?\p"
- .string "I'll be waiting for you around\n"
- .string "{STR_VAR_2}!$"
-
-BattleFrontier_PokeNav_2AB6CD:: @ 82AB6CD
- .string "Hello, {PLAYER}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "Would you like to have a battle\n"
- .string "with me again?\p"
- .string "You can find me around\n"
- .string "{STR_VAR_2}. I'll be waiting!$"
-
-BattleFrontier_PokeNav_2AB73C:: @ 82AB73C
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "My POKéMON have grown a lot\n"
- .string "tougher since last time.\p"
- .string "I want to see how strong they've\n"
- .string "become with your POKéMON, {PLAYER}.\p"
- .string "So, let's have a battle!\p"
- .string "I'll be waiting for you around\n"
- .string "{STR_VAR_2}.$"
-
-BattleFrontier_PokeNav_2AB808:: @ 82AB808
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\l"
- .string "How are things with you?\p"
- .string "My POKéMON have grown pretty\n"
- .string "tough lately.\p"
- .string "Hey, how would you like to have\n"
- .string "another battle with me?\p"
- .string "Let's meet up around\n"
- .string "{STR_VAR_2}, okay?$"
-
-BattleFrontier_PokeNav_2AB8B7:: @ 82AB8B7
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "My POKéMON are growing up in\n"
- .string "decent ways.\p"
- .string "I'd really like to have another\n"
- .string "battle with you.\p"
- .string "I'll keep an eye out for you around\n"
- .string "{STR_VAR_2}. See you soon!$"
-
-BattleFrontier_PokeNav_2AB95D:: @ 82AB95D
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\l"
- .string "I hope you're on top of things.\p"
- .string "I was thinking I'd like another\n"
- .string "battle with you. What do you say?\p"
- .string "If you feel like a battle,\n"
- .string "come to {STR_VAR_2}.\p"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2ABA03:: @ 82ABA03
- .string "…Er, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here…\l"
- .string "So? Are your POKéMON growing?\p"
- .string "Mine sure got stronger.\n"
- .string "I'd like to show you.\p"
- .string "I'll be around {STR_VAR_2}.\n"
- .string "Come see me for a match.\p"
- .string "See you around.$"
-
-BattleFrontier_PokeNav_2ABA9F:: @ 82ABA9F
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\p"
- .string "I hope you're doing well.\n"
- .string "My POKéMON are very frisky.\p"
- .string "If you're ever in the area, please\n"
- .string "give me a rematch.\p"
- .string "I'll be around {STR_VAR_2}.\n"
- .string "Until then, good-bye!$"
-
-BattleFrontier_PokeNav_2ABB62:: @ 82ABB62
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "How are your POKéMON doing?\p"
- .string "My POKéMON keep getting better.\n"
- .string "I'd like to show you, {PLAYER}{STRING 5}.\p"
- .string "I'm around {STR_VAR_2} now,\n"
- .string "so let's battle if you're close by.\p"
- .string "Hope I see you soon!$"
-
-BattleFrontier_PokeNav_2ABC26:: @ 82ABC26
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\l"
- .string "So, how are things with you?\p"
- .string "My POKéMON have grown much\n"
- .string "stronger than before.\p"
- .string "I'd love another battle with you,\n"
- .string "{PLAYER}{STRING 5}.\p"
- .string "I'll be around {STR_VAR_2}.\n"
- .string "Come see me if you're close.$"
-
-BattleFrontier_PokeNav_2ABCE9:: @ 82ABCE9
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "Where might you be now?\p"
- .string "My POKéMON are full of life.\n"
- .string "They appear to be looking forward\l"
- .string "to seeing your POKéMON, {PLAYER}{STRING 5}.\p"
- .string "I'm around {STR_VAR_2} now.\n"
- .string "I hope you'll seek us out.$"
-
-BattleFrontier_PokeNav_2ABDA2:: @ 82ABDA2
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I should tell you, my POKéMON have\n"
- .string "grown to be quite robust lately.\p"
- .string "I would like to see them in a battle\n"
- .string "with you, {PLAYER}{STRING 5}.\p"
- .string "We'll be around {STR_VAR_2}.\n"
- .string "Come see us anytime!$"
-
-BattleFrontier_PokeNav_2ABE5E:: @ 82ABE5E
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "Are your POKéMON keeping well?\p"
- .string "My POKéMON have been so healthy,\n"
- .string "they don't look capable of losing!\p"
- .string "I would surely love to have another\n"
- .string "battle with you.\p"
- .string "If you're near {STR_VAR_2},\n"
- .string "do come see us.$"
-
-BattleFrontier_PokeNav_2ABF36:: @ 82ABF36
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "Keeping well, I hope.\p"
- .string "Oh, yes! My POKéMON are\n"
- .string "much stronger than before.\p"
- .string "Don't you think we ought to have\n"
- .string "a battle, {PLAYER}{STRING 5}?\p"
- .string "We'll be waiting for you around\n"
- .string "{STR_VAR_2}.\p"
- .string "Come see us anytime, okay?$"
-
-BattleFrontier_PokeNav_2AC009:: @ 82AC009
- .string "It's me, the mountain-loving\n"
- .string "{STR_VAR_1}!\p"
- .string "Well, since we met, have you grown\n"
- .string "to appreciate the mountains more?\p"
- .string "I rarely see you in the mountains…\p"
- .string "Next time, we'll meet somewhere\n"
- .string "around {STR_VAR_2}.$"
-
-BattleFrontier_PokeNav_2AC0BD:: @ 82AC0BD
- .string "This is {STR_VAR_1}.\n"
- .string "Hello.\p"
- .string "I was just telling a new TRAINER\n"
- .string "about you.\p"
- .string "I told her about a strong TRAINER\n"
- .string "who raises POKéMON with care.\p"
- .string "I hope you'll become a TRAINER\n"
- .string "that everyone will admire.\p"
- .string "I hope we meet again!$"
-
-BattleFrontier_PokeNav_2AC18C:: @ 82AC18C
- .string "Hello! It's {STR_VAR_1}.\p"
- .string "I love where I am now.\n"
- .string "It's pleasant with sweet aromas!\p"
- .string "I think someone planted BERRIES,\n"
- .string "and they burst into bloom.\p"
- .string "See you again sometime!$"
-
-BattleFrontier_PokeNav_2AC228:: @ 82AC228
- .string "Hello! Thirty years of exploration,\n"
- .string "{STR_VAR_1} at your service!\p"
- .string "It seems that you're energetically\n"
- .string "traveling here and there.\p"
- .string "Have you discovered any new ruins?\n"
- .string "Please tell if you have!\p"
- .string "Now, if you'll excuse me,\n"
- .string "I have ruins to explore.$"
-
-BattleFrontier_PokeNav_2AC30C:: @ 82AC30C
- .string "It's {STR_VAR_1}!\p"
- .string "Know what I'm doing today?\n"
- .string "Looking at waves from the beach!\p"
- .string "Sigh… The waves are all sparkly.\n"
- .string "The sea is the prettiest from here.\l"
- .string "I'm getting hungry, so bye-bye!$"
-
-BattleFrontier_PokeNav_2AC3B6:: @ 82AC3B6
- .string "Munch-chew…\n"
- .string "Oh, hi, it's {STR_VAR_1}.\l"
- .string "I love eating on the beach.\p"
- .string "My POKéMON and I have been doing\n"
- .string "great. We're fully fueled!\l"
- .string "I'm going for a swim. Bye!$"
-
-BattleFrontier_PokeNav_2AC446:: @ 82AC446
- .string "Hello, this is {STR_VAR_1}…\p"
- .string "I've grown a little jaded with this\n"
- .string "whole COOLTRAINER thing…\p"
- .string "Everyone thinks I'm a perfect\n"
- .string "TRAINER, and that makes me try to\l"
- .string "live up to that expectation.\p"
- .string "But I guess that goes with being\n"
- .string "a COOLTRAINER.\p"
- .string "I'll just have to buckle down…\n"
- .string "and grin and bear it.\p"
- .string "You're the only person that I could\n"
- .string "confide in like this.\p"
- .string "But when I see you next,\n"
- .string "don't worry, I won't whine!$"
-
-BattleFrontier_PokeNav_2AC5C7:: @ 82AC5C7
- .string "Yahoo, it's {STR_VAR_1}!\n"
- .string "How do you do?\p"
- .string "I've been raising my POKéMON with\n"
- .string "you as the target.\p"
- .string "I don't intend to lose when we\n"
- .string "battle again.\p"
- .string "Isn't it great to have TRAINER\n"
- .string "friends? Let's meet again!$"
-
-BattleFrontier_PokeNav_2AC682:: @ 82AC682
- .string "It's {STR_VAR_1}…\n"
- .string "Right now, behind you…\l"
- .string "Wasn't there something…?\p"
- .string "The power of the POKéMON that\n"
- .string "sleep here at MT. PYRE…\p"
- .string "It's telling me about you…\p"
- .string "You should walk away quickly and\n"
- .string "never once look back…\p"
- .string "Giggle…\n"
- .string "Farewell…$"
-
-BattleFrontier_PokeNav_2AC755:: @ 82AC755
- .string "This is {STR_VAR_1}.\n"
- .string "How do you do?\p"
- .string "Isn't it convenient that we can\n"
- .string "chat like this at a distance?\p"
- .string "Before, if I wanted to speak with\n"
- .string "anyone, I had to have my father\l"
- .string "drive me…\p"
- .string "I should be going now.\n"
- .string "I'm glad we had this chat.$"
-
-BattleFrontier_PokeNav_2AC82C:: @ 82AC82C
- .string "It's {STR_VAR_1}!\n"
- .string "Will you listen to this?\p"
- .string "I like the SAFARI ZONE a lot,\n"
- .string "but whenever I go, I get lost!\p"
- .string "All that tall grass!\n"
- .string "And it's much too spread out!\p"
- .string "I feel better getting that off\n"
- .string "my chest!\p"
- .string "I'm off to the SAFARI ZONE again!\n"
- .string "Catch you!$"
-
-BattleFrontier_PokeNav_2AC914:: @ 82AC914
- .string "Hello, {STR_VAR_1} here.\n"
- .string "Yes, correct, I am rich, yes.\p"
- .string "I should tell you, my wealth has\n"
- .string "grown since we last met.\p"
- .string "What's more, my POKéMON have also\n"
- .string "grown stronger.\p"
- .string "I can't shake the feeling that\n"
- .string "this world exists for me!\p"
- .string "Oh, no need to say a word!\n"
- .string "Everyone knows it's true!\p"
- .string "Oh, you must excuse me, I have this\n"
- .string "formal dinner to attend.$"
-
-BattleFrontier_PokeNav_2ACA59:: @ 82ACA59
- .string "Ufufufufu…\n"
- .string "It's me, {STR_VAR_1}…\p"
- .string "Can you guess what I'm seeing?\n"
- .string "A pair of {STR_VAR_2} in a battle.\p"
- .string "Maybe I'll try catching the winner…\n"
- .string "Ufufufufufu…\p"
- .string "I… I'm kind of busy now.\n"
- .string "I have to go.$"
-
-BattleFrontier_PokeNav_2ACB02:: @ 82ACB02
- .string "Oh, it's {STR_VAR_1}!\p"
- .string "I was just thinking I'm getting\n"
- .string "bored of the ABANDONED SHIP.\p"
- .string "But since I'm already here,\n"
- .string "and I want to beat you once,\l"
- .string "I'll be sticking around a bit more.\p"
- .string "If you feel compelled, why don't\n"
- .string "you come see me?\p"
- .string "I think today will be the day that\n"
- .string "I finally challenge the man next\l"
- .string "door to a match.\p"
- .string "Be seeing you!$"
-
-BattleFrontier_PokeNav_2ACC3F:: @ 82ACC3F
- .string "I'm {STR_VAR_1}!\n"
- .string "The man of the sea!\p"
- .string "You know what I think?\p"
- .string "The TRAINERS out at sea are\n"
- .string "the toughest of the tough!\p"
- .string "You should learn from me and train\n"
- .string "in the sea…\p"
- .string "Whoops, giant surf rising!\p"
- .string "It's a great training opportunity!\n"
- .string "Sorry, but I have to go!$"
-
-BattleFrontier_PokeNav_2ACD2F:: @ 82ACD2F
- .string "It's {STR_VAR_1}! Listen, I've been\n"
- .string "teaching karate to my POKéMON.\p"
- .string "But now they're better than me!\n"
- .string "I've done nothing but lose to them!\p"
- .string "But even though I may lose to\n"
- .string "POKéMON, I won't lose to another\l"
- .string "TRAINER, no sir!\p"
- .string "We have to battle again!\n"
- .string "Ugwaah!$"
-
-BattleFrontier_PokeNav_2ACE1E:: @ 82ACE1E
- .string "It's me, {STR_VAR_1}.\n"
- .string "How're your travels unwinding?\p"
- .string "…Whoa, is that right?\n"
- .string "Sounds awfully stimulating!\p"
- .string "I think I could write a song about\n"
- .string "one of your episodes.\p"
- .string "…Oh, hey, I'm feeling it.\n"
- .string "I hear the riffs in my head.\p"
- .string "I'd better get this tune properly\n"
- .string "written, so I've got to fly! Later!$"
-
-BattleFrontier_PokeNav_2ACF32:: @ 82ACF32
- .string "This is {STR_VAR_1}…\n"
- .string "Hear my new song.\p"
- .string "Lalala, {STR_VAR_2}, {STR_VAR_2}!\n"
- .string "Why are you that {STR_VAR_2}?\l"
- .string "Why can't I be you, {STR_VAR_2}?\l"
- .string "Lala, {STR_VAR_2} and {STR_VAR_1},\l"
- .string "{STR_VAR_1} and {STR_VAR_2}…\p"
- .string "Repeat chorus, fade…$"
-
-BattleFrontier_PokeNav_2ACFBE:: @ 82ACFBE
- .string "I'm {STR_VAR_1}, you know,\n"
- .string "the camping expert!\p"
- .string "When we battled, I couldn't help\n"
- .string "but lose to you.\p"
- .string "After all, my expertise is in\n"
- .string "camping.\p"
- .string "But win or lose, I like to battle\n"
- .string "when I'm camping.\p"
- .string "Battle with us again, okay?\n"
- .string "Oh, and let's go camping, too!$"
-
-BattleFrontier_PokeNav_2AD0AC:: @ 82AD0AC
- .string "It's me, me, {STR_VAR_1}!\p"
- .string "I'd like to climb other mountains\n"
- .string "than this one, to be honest.\p"
- .string "But I'm not sure if there'd be any\n"
- .string "ladies like on MT. CHIMNEY.\p"
- .string "If you know any other mountain\n"
- .string "with ladies around, let me know!\p"
- .string "Ehehehe, see you around!$"
-
-BattleFrontier_PokeNav_2AD194:: @ 82AD194
- .string "… … … … … …\n"
- .string "… … … … … …\l"
- .string "It's {STR_VAR_1}…\p"
- .string "… … … … … …\n"
- .string "… … … … … …\l"
- .string "That's all today…$"
-
-BattleFrontier_PokeNav_2AD1DF:: @ 82AD1DF
- .string "This is {STR_VAR_1}. Today, I had\n"
- .string "this feeling I would chat with you.\p"
- .string "My desire to defeat you builds\n"
- .string "by day and by night.\p"
- .string "You have a rival like that, yes?\n"
- .string "I wish it were me…\p"
- .string "I'm glad you heard me out.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AD2A8:: @ 82AD2A8
- .string "It's {STR_VAR_1}.\p"
- .string "When there's a strong TRAINER\n"
- .string "nearby, I can sometimes sense that\l"
- .string "somehow.\p"
- .string "Did you pass close by, {PLAYER}{STRING 5}?\n"
- .string "Maybe it was you.\p"
- .string "I'll be waiting for your visit.\n"
- .string "Bye!$"
-
-BattleFrontier_PokeNav_2AD34F:: @ 82AD34F
- .string "Hello, this is {STR_VAR_1}.\n"
- .string "You sound well, {PLAYER}{STRING 5}.\p"
- .string "I've traveled around the world,\n"
- .string "but I must say I've taken a great\l"
- .string "shine to this region.\p"
- .string "I plan to stay here a while.\n"
- .string "Perhaps we can meet again?\p"
- .string "I've not forgotten your dazzling\n"
- .string "techniques.\p"
- .string "I do hope for a rematch.$"
-
-BattleFrontier_PokeNav_2AD44E:: @ 82AD44E
- .string "Snivel… It's… {STR_VAR_1}…\n"
- .string "…Sob…\p"
- .string "ROXANNE chewed me out in class\n"
- .string "today.\p"
- .string "But I don't dislike her or anything.\p"
- .string "ROXANNE tells me exactly what\n"
- .string "I did wrong so I can learn from it.\p"
- .string "You bet I'll be going to\n"
- .string "the TRAINER'S SCHOOL tomorrow!\p"
- .string "See you later!$"
-
-BattleFrontier_PokeNav_2AD53A:: @ 82AD53A
- .string "It's {STR_VAR_1}!\p"
- .string "ROXANNE let me battle with her\n"
- .string "yesterday.\p"
- .string "The results…\n"
- .string "Terrible, like you needed to ask.\p"
- .string "But I was delighted that ROXANNE\n"
- .string "would even let me challenge her!\p"
- .string "You wouldn't believe how much\n"
- .string "more I admire her!\p"
- .string "I'm going to really focus and work!\n"
- .string "I'd better go!$"
-
-BattleFrontier_PokeNav_2AD642:: @ 82AD642
- .string "Hi, it's ANNA! I'm with my junior\n"
- .string "partner MEG again today.\p"
- .string "I really love caring for MEG and\n"
- .string "POKéMON. They're so cute!\p"
- .string "I wish I could look after them\n"
- .string "as if they were my siblings!\p"
- .string "Oh, hi, MEG!\n"
- .string "Did you get the buns?\p"
- .string "Huh? No, no, I'm not treating you\n"
- .string "like my personal slave!\p"
- .string "You lost the match, so you have\n"
- .string "to go buy the bread as punishment!\p"
- .string "I wouldn't treat you like a slave,\n"
- .string "MEG! You're too special to me!\p"
- .string "I have to go now.\n"
- .string "It's time for our snack!$"
-
-BattleFrontier_PokeNav_2AD801:: @ 82AD801
- .string "I love POKéMON!\n"
- .string "It's {STR_VAR_1} from the FAN CLUB!\p"
- .string "You have to hear this!\n"
- .string "My sweet POKéMON…\p"
- .string "Snort! Wahaha!\n"
- .string "I can't say any more! It's a secret!\l"
- .string "It's just too cute for words!\p"
- .string "Oh, my sweet {STR_VAR_2} is begging\n"
- .string "for a {POKEBLOCK}!\p"
- .string "It's the picture of cuteness!\p"
- .string "Sorry, but I can't talk now!\n"
- .string "You'll have to hear this next time!$"
-
-BattleFrontier_PokeNav_2AD92E:: @ 82AD92E
- .string "Ohoho!\p"
- .string "This is {STR_VAR_1}! I can't wait to\n"
- .string "tell you about my darling POKéMON!\p"
- .string "Please, you must listen to this.\n"
- .string "It's about my darling {STR_VAR_2}.\p"
- .string "Whenever anyone picks it up,\n"
- .string "it leaps straight into my arms!\p"
- .string "Oh… Oh… Could there be anything\n"
- .string "more blissful?\p"
- .string "Oh, it feels so heavenly!\p"
- .string "I'm so glad I could share some of\n"
- .string "my happiness with you.\p"
- .string "Well, I must be going.\n"
- .string "Bye, now!$"
-
-BattleFrontier_PokeNav_2ADA8F:: @ 82ADA8F
- .string "I am… {STR_VAR_1}.\n"
- .string "People call me an EXPERT.\p"
- .string "But there is one thing I know.\n"
- .string "I could not be an EXPERT on my own\l"
- .string "power.\p"
- .string "Only with the help of POKéMON can\n"
- .string "a TRAINER become an EXPERT.\p"
- .string "Humph! I believe I may have said\n"
- .string "something deep and profound!\p"
- .string "I shall leave you in good spirits!$"
-
-BattleFrontier_PokeNav_2ADB9B:: @ 82ADB9B
- .string "It's {STR_VAR_1}.\n"
- .string "I'm glad to chat with you!\p"
- .string "I am feeling alive and refreshed\n"
- .string "soaking in this hot-spring tub.\p"
- .string "I've been battling young TRAINERS\n"
- .string "since we met, but you're still\l"
- .string "the best of the lot.\p"
- .string "I imagine you'll become an EXPERT\n"
- .string "in your old age! Ohohoho…$"
-
-BattleFrontier_PokeNav_2ADC92:: @ 82ADC92
- .string "Yay! This is {STR_VAR_1}!\n"
- .string "What's up?\p"
- .string "I might be imagining this, but when\n"
- .string "I win battles, my shorts seem to\l"
- .string "feel, like, better. Materially.\p"
- .string "What do I mean by that?\n"
- .string "It's kind of hard to explain, but…\l"
- .string "How would I say this now…\l"
- .string "My shorts feel silkier!\p"
- .string "And when I battled you, {PLAYER}{STRING 5},\n"
- .string "my shorts felt icky and coarse.\p"
- .string "… … … … … …\n"
- .string "You didn't really believe that?\l"
- .string "Ehehehe, that's all! Bye now!$"
-
-BattleFrontier_PokeNav_2ADE08:: @ 82ADE08
- .string "Ahoy!\n"
- .string "{STR_VAR_1} here!\p"
- .string "As always, I'm fishing with wild\n"
- .string "abandon!\p"
- .string "Are there other places I can fish\n"
- .string "than the sea and rivers?\p"
- .string "I get these powerful urges to\n"
- .string "fish just about anywhere!\p"
- .string "Oh, gosh, darn it!\n"
- .string "My line's tangled up!\p"
- .string "Gotta go!\n"
- .string "Find me some new fishing spots!$"
-
-BattleFrontier_PokeNav_2ADF07:: @ 82ADF07
- .string "Hey, there! It's {STR_VAR_1}.\n"
- .string "Are you taking it casually?\p"
- .string "Ever since I was a kid, you know,\n"
- .string "I've always been placid, huh?\p"
- .string "I never was much for getting all\n"
- .string "stressed or rushing things.\p"
- .string "But wouldn't you know it,\n"
- .string "I'm now a TRIATHLETE.\p"
- .string "You just can't tell where life will\n"
- .string "take you, if you get my drift.\p"
- .string "You're a TRAINER now, but who\n"
- .string "knows what the future holds, huh?\p"
- .string "Imagine yourself as a teacher,\n"
- .string "or maybe an artist. Cool, huh?\p"
- .string "But, hey, be cool. Take it casual.\n"
- .string "See you around.$"
-
-BattleFrontier_PokeNav_2AE0D9:: @ 82AE0D9
- .string "This is {STR_VAR_1}!\n"
- .string "I'm cycling right now.\p"
- .string "I love swimming and running,\n"
- .string "but cycling is my first love!\p"
- .string "It makes my whole body feel as if\n"
- .string "I'm one with the wind.\p"
- .string "It exhilarates me as if I were\n"
- .string "flying!\p"
- .string "Okay! Today, I'm going to set a new\n"
- .string "CYCLING ROAD record!\p"
- .string "You should make the challenge, too!\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AE1FD:: @ 82AE1FD
- .string "Yo, this is {STR_VAR_1}! I'm smack\n"
- .string "in the middle of a triathlon!\p"
- .string "But, hey, I've always got time to\n"
- .string "shoot the breeze!\p"
- .string "Working out with POKéMON feels\n"
- .string "mighty good!\p"
- .string "Without exchanging words, we synch\n"
- .string "as if we shared a heart.\p"
- .string "It's inspiring!\p"
- .string "Gasp… Chatting while running…\n"
- .string "I'm getting run down…\l"
- .string "Gasp… Have…to…go…$"
-
-BattleFrontier_PokeNav_2AE327:: @ 82AE327
- .string "Hi, it's {STR_VAR_1}.\n"
- .string "If you want to improve endurance,\l"
- .string "high-altitude training is it!\p"
- .string "Try running on a mountaintop.\n"
- .string "You'll be gasping in no time!\p"
- .string "I'm getting oxygen starved, too!\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AE3DA:: @ 82AE3DA
- .string "Oh, it's {STR_VAR_1}, hello.\p"
- .string "I've been swimming a lot but I still\n"
- .string "can't seem to reach EVERGRANDE.\p"
- .string "Maybe I'm just going in circles.\p"
- .string "No, no, that can't be possible.\n"
- .string "Wahahaha.\l"
- .string "Take care!$"
-
-BattleFrontier_PokeNav_2AE489:: @ 82AE489
- .string "Hey, it's {STR_VAR_1}…\n"
- .string "Whoops!\p"
- .string "Splash!\p"
- .string "Blug-blug-blug-blug…\p"
- .string "Sploosh!\p"
- .string "Whiff-whiff! Whiff-whiff!\p"
- .string "Hey! Sorry about that!\n"
- .string "I just put on some suntan oil.\p"
- .string "So my POKéNAV went whoopsy\n"
- .string "out of my hand into the water!\p"
- .string "But, boy, DEVON's POKéNAV is built\n"
- .string "tough. It survived that dunking!\p"
- .string "Anyways, I'm busy sunbathing,\n"
- .string "so let's chat another time.$"
-
-BattleFrontier_PokeNav_2AE5CD:: @ 82AE5CD
- .string "Hello, this is {STR_VAR_1}.\p"
- .string "Out of the three triathlon events,\n"
- .string "I like swimming best.\p"
- .string "But if I stay in the sea too long,\n"
- .string "won't I get all prune-like?\p"
- .string "Ooh, triathlon is such a grueling\n"
- .string "test of human endurance! Bye!$"
-
-BattleFrontier_PokeNav_2AE698:: @ 82AE698
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "How are your POKéMON doing?\p"
- .string "My DRAGON POKéMON appear to be\n"
- .string "in peak form. Bye for now.$"
-
-BattleFrontier_PokeNav_2AE704:: @ 82AE704
- .string "{STR_VAR_1} here.\p"
- .string "My {STR_VAR_2} has grown even more\n"
- .string "tough than that last time.\p"
- .string "I'm not going to lose again to you.\n"
- .string "You wait till next time!\p"
- .string "See you around!$"
-
-BattleFrontier_PokeNav_2AE78F:: @ 82AE78F
- .string "It is {STR_VAR_1} here.\p"
- .string "I have continued with my studies\n"
- .string "in the art of concealment.\p"
- .string "But I have been too successful.\n"
- .string "No one has been able to find me.\l"
- .string "My success makes me lonely…\p"
- .string "Like smoke I disappear!\n"
- .string "Farewell!$"
-
-BattleFrontier_PokeNav_2AE859:: @ 82AE859
- .string "This is {STR_VAR_1}.\n"
- .string "I kept up my training since we met.\p"
- .string "My {STR_VAR_2} is getting pretty\n"
- .string "tough.\p"
- .string "Training on a beach is effective,\n"
- .string "just as I thought. Bye now!$"
-
-BattleFrontier_PokeNav_2AE8E6:: @ 82AE8E6
- .string "How do you do?\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I wonder when this yucky volcanic\n"
- .string "ash will stop falling?\p"
- .string "If it gets too deep, it will cover\n"
- .string "up the pattern on my parasol…\p"
- .string "Let's promise to meet again!$"
-
-BattleFrontier_PokeNav_2AE998:: @ 82AE998
- .string "Hi, {STR_VAR_1} here.\p"
- .string "Did you know that it's easier to\n"
- .string "float in the sea than a pool?\p"
- .string "Just by lying still, your body will\n"
- .string "float on its own.\p"
- .string "But if you float for too long,\n"
- .string "watch that you don't get carried\l"
- .string "off too far out.\p"
- .string "…Where am I, anyway?\n"
- .string "I'd better go!$"
-
-BattleFrontier_PokeNav_2AEA8F:: @ 82AEA8F
- .string "Oh, {PLAYER}{STRING 5}, hello!\n"
- .string "This is {STR_VAR_1}.\l"
- .string "I'm up in the mountains now.\p"
- .string "But the ground is too bumpy.\n"
- .string "I can't pitch my tent here…\p"
- .string "Oh, I had a brilliant idea!\p"
- .string "Maybe I can get my POKéMON to tamp\n"
- .string "the ground flat here!\p"
- .string "I'm going to try that!\n"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2AEB77:: @ 82AEB77
- .string "Oh, hi, hi, this is {STR_VAR_1}!\p"
- .string "I'm raising POKéMON with LIV!\n"
- .string "We're trying very hard!\p"
- .string "If we try harder, can we become\n"
- .string "number one? Bye-bye!$"
-
-BattleFrontier_PokeNav_2AEBFA:: @ 82AEBFA
- .string "{STR_VAR_1} here!\p"
- .string "I'm a SAILOR, but I'm not on a boat\n"
- .string "now.\p"
- .string "It makes me wonder--what should\n"
- .string "a SAILOR on land be called?\p"
- .string "That's what I've been thinking\n"
- .string "while staring out across the waves.\p"
- .string "All right, next time!$"
-
-BattleFrontier_PokeNav_2AECC1:: @ 82AECC1
- .string "It's {STR_VAR_1}.\n"
- .string "So? Get any more POKéMON?\p"
- .string "If you catch a new POKéMON,\n"
- .string "you have to come show me.\p"
- .string "I won't whine for it, honest.\n"
- .string "I'll be waiting. See you.$"
-
-BattleFrontier_PokeNav_2AED52:: @ 82AED52
- .string "This is {STR_VAR_1}.\p"
- .string "Are you raising your POKéMON\n"
- .string "in the optimal way?\p"
- .string "The air is clean where I am.\n"
- .string "It's the perfect environment for\l"
- .string "raising POKéMON.\p"
- .string "If you're going to focus on raising\n"
- .string "POKéMON, you should come out to\l"
- .string "{STR_VAR_2}. Take care now.$"
-
-BattleFrontier_PokeNav_2AEE35:: @ 82AEE35
- .string "Hi, this is {STR_VAR_1}.\p"
- .string "I gave a {POKEBLOCK} to my {STR_VAR_2}.\n"
- .string "It seemed to enjoy it very much.\p"
- .string "It looks like POKéMON have their\n"
- .string "likes and dislikes with {POKEBLOCK}S.\p"
- .string "I find that quite fascinating.\n"
- .string "Please do take care.$"
-
-BattleFrontier_PokeNav_2AEEF4:: @ 82AEEF4
- .string "{STR_VAR_1} here.\p"
- .string "If you cooperate with POKéMON,\n"
- .string "one can be comfortable in the wild.\p"
- .string "Everyone should realize that and\n"
- .string "cooperate with POKéMON more.\p"
- .string "That would be ideal.\n"
- .string "I really think so.\p"
- .string "I think you're on the right track!\n"
- .string "Catch you later!$"
-
-BattleFrontier_PokeNav_2AEFDA:: @ 82AEFDA
- .string "Hi, it's {STR_VAR_1}. You know,\n"
- .string "the TRAINER who's always prepared!\p"
- .string "{PLAYER}{STRING 5}, do you have enough items?\n"
- .string "Are your POKéMON fit for action?\p"
- .string "Keeping everything perfect around\n"
- .string "you all the time is the secret to\l"
- .string "keeping your journey going.\p"
- .string "I'd better go check my own\n"
- .string "supplies! Be vigilant!$"
-
-BattleFrontier_PokeNav_2AF0E7:: @ 82AF0E7
- .string "It's {STR_VAR_1}!\n"
- .string "It's {STR_VAR_1}!\p"
- .string "{STR_VAR_2} is a very busy\n"
- .string "thoroughfare, so I get challenged\l"
- .string "by all kinds of TRAINERS every day.\p"
- .string "Today, I won five battles and lost\n"
- .string "only three!\p"
- .string "How did you do today?\n"
- .string "Tell me about it next time, okay?$"
-
-BattleFrontier_PokeNav_2AF1B8:: @ 82AF1B8
- .string "It's me, {STR_VAR_1}.\p"
- .string "I'm popular because I have lots\n"
- .string "of BUG POKéMON, right?\p"
- .string "Well, I took a bunch of my fave\n"
- .string "bugs to school today.\p"
- .string "This girl I like started crying!\n"
- .string "Go ahead and laugh if you want.\p"
- .string "I have to try teaching her what\n"
- .string "makes BUG POKéMON so appealing.\p"
- .string "Snivel…\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AF2C4:: @ 82AF2C4
- .string "Hah! Hah! Hah! Hah!\p"
- .string "Hi! It's {STR_VAR_1}! Hah! Hah!\p"
- .string "Trying to chat…\n"
- .string "While climbing…\l"
- .string "Is harsh exercise… Hah! Hah!\p"
- .string "Urgh! Oof…\n"
- .string "It's steeper now…\l"
- .string "We'll chat…another time…\l"
- .string "Hah! Hah! Hah!$"
-
-BattleFrontier_PokeNav_2AF371:: @ 82AF371
- .string "Oh, hi!\p"
- .string "I'm still searching for treasures\n"
- .string "with KIRA!\p"
- .string "Maybe there isn't any treasure\n"
- .string "here at all…\p"
- .string "But the important thing is for me\n"
- .string "to search alongside KIRA.\p"
- .string "Oh, hey, KIRA!\n"
- .string "Wh-why are you angry?\p"
- .string "I'm not ignoring you, honey!\n"
- .string "You're my one and only!\p"
- .string "…{PLAYER}, I have to go, bye!$"
-
-BattleFrontier_PokeNav_2AF480:: @ 82AF480
- .string "This is {STR_VAR_1}!\p"
- .string "I went to DEWFORD's GYM again\n"
- .string "for training.\p"
- .string "BRAWLY, the GYM LEADER, seems\n"
- .string "to be tougher now.\p"
- .string "Something about being toughened\n"
- .string "by the wild waves…\p"
- .string "But he's still as cool as ever.\n"
- .string "The ladies adore him!\l"
- .string "It makes me envious, frankly.\p"
- .string "I wonder… Is his friend BRUNO\n"
- .string "the same way as BRAWLY?\p"
- .string "You know, all sweaty or smelly,\n"
- .string "and prone to calling people\l"
- .string "“big wave,” that sort of thing.\p"
- .string "But, hey, this jealousy thing isn't\n"
- .string "very seemly, is it?\p"
- .string "Forget this chat ever happened,\n"
- .string "how about it? So long!$"
-
-BattleFrontier_PokeNav_2AF671:: @ 82AF671
- .string "It's a pleasure to chat with\n"
- .string "a young TRAINER like you.\p"
- .string "I imagine that you will continue to\n"
- .string "enjoy POKéMON whatever your age.\p"
- .string "Wouldn't it be good if you had\n"
- .string "a partnership like ours?\p"
- .string "Of course, {PLAYER}{STRING 5}, you already\n"
- .string "enjoy the trust and companionship\l"
- .string "of your POKéMON now.\p"
- .string "You have the makings of long and\n"
- .string "enduring relationships already!\p"
- .string "Hahaha!\n"
- .string "Never be discouraged!$"
-
-BattleFrontier_PokeNav_2AF7D8:: @ 82AF7D8
- .string "Hi, this is {STR_VAR_1}!\n"
- .string "We just won a battle!\p"
- .string "We don't win often, but it was this\n"
- .string "cool SWIMMER guy.\p"
- .string "My sister was steamed!\p"
- .string "She wanted to pretend that she\n"
- .string "was weak to make an impression!\p"
- .string "She always chews me out whether\n"
- .string "we win or lose!\p"
- .string "{PLAYER}{STRING 5}, can you say something\n"
- .string "to her next time?\p"
- .string "Okay, see you!$"
-
-BattleFrontier_PokeNav_2AF8F7:: @ 82AF8F7
- .string "{STR_VAR_1} here, yes.\n"
- .string "I headed out to sea yesterday.\p"
- .string "I had been hoping to find a new\n"
- .string "ruin to explore.\p"
- .string "But the tides somehow seemed to\n"
- .string "carry me back where I started.\p"
- .string "I'm still weak at battling, too…\n"
- .string "Feel free to mock me…\l"
- .string "But I won't give up.\p"
- .string "My day will come when I discover\n"
- .string "a new ruin!\p"
- .string "That's all I have to say!\n"
- .string "Farewell for now!$"
-
-BattleFrontier_PokeNav_2AFA39:: @ 82AFA39
- .string "Ahoy there!\n"
- .string "It's me, {STR_VAR_1}!\l"
- .string "I'm out on ROUTE 108 now!\l"
- .string "In other words, where I always am!\p"
- .string "Today, a gorgeous SWIMMER \n"
- .string "swam by me!\p"
- .string "So I startled her with a shout!\p"
- .string "And she gave me a nasty glare!\p"
- .string "That's all from ROUTE 108!\n"
- .string "Brought to you by {STR_VAR_1}!$"
-
-BattleFrontier_PokeNav_2AFB26:: @ 82AFB26
- .string "It's {STR_VAR_1}!\p"
- .string "I'm kind of busy, but I figured\n"
- .string "I should let you know that I've\l"
- .string "beaten five TRAINERS again today.\p"
- .string "If I keep this pace up, I can\n"
- .string "probably beat you next time.\p"
- .string "I think we'll be good rivals,\n"
- .string "you and I. Good-bye for now!$"
-
-BattleFrontier_PokeNav_2AFC07:: @ 82AFC07
- .string "Hi! This is {STR_VAR_1}.\n"
- .string "I heard the news!\p"
- .string "They say you did excellent at\n"
- .string "the {STR_VAR_2}.\p"
- .string "It's awesome, {STR_VAR_3} straight wins?\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AFC78:: @ 82AFC78
- .string "Hello, it's {STR_VAR_1}!\n"
- .string "I heard about you!\p"
- .string "They said you won {STR_VAR_3} straight\n"
- .string "battles at the {STR_VAR_2}.\p"
- .string "That's special! I should try\n"
- .string "harder, too! See you!$"
-
-BattleFrontier_PokeNav_2AFCFF:: @ 82AFCFF
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I heard you went on a tear at\n"
- .string "the {STR_VAR_2}!\p"
- .string "A big {STR_VAR_3}-win streak…\n"
- .string "That is a big record, isn't it?\p"
- .string "I'd better get it together, too!\n"
- .string "Catch you soon!$"
-
-BattleFrontier_PokeNav_2AFDA7:: @ 82AFDA7
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here. What's up?\p"
- .string "There's a rumor going around that\n"
- .string "you strung together {STR_VAR_3} straight\l"
- .string "wins at the {STR_VAR_2}.\p"
- .string "I'd better step it up, too.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2AFE3D:: @ 82AFE3D
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "You were at the {STR_VAR_2}\n"
- .string "and won {STR_VAR_3} battles in a row?\l"
- .string "Isn't that something!\p"
- .string "I'd better work on my POKéMON more.\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2AFECA:: @ 82AFECA
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here. How are you?\p"
- .string "By the way, I heard you pulled off\n"
- .string "the feat of {STR_VAR_3} straight wins at\l"
- .string "the {STR_VAR_2}.\p"
- .string "That inspires me to focus on\n"
- .string "raising my team.$"
-
-BattleFrontier_PokeNav_2AFF64:: @ 82AFF64
- .string "…Er, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here…\p"
- .string "Oh, yeah, you were over at\n"
- .string "the {STR_VAR_2}, right?\p"
- .string "And you won {STR_VAR_3} battles in a row.\p"
- .string "Oh, there goes a rare POKéMON!\n"
- .string "I have to go!$"
-
-BattleFrontier_PokeNav_2AFFF0:: @ 82AFFF0
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\l"
- .string "I hope you're doing well.\p"
- .string "Oh, but, you are. I've heard that\n"
- .string "you won {STR_VAR_3} matches in a row at\l"
- .string "the {STR_VAR_2}.\p"
- .string "That's very impressive!\n"
- .string "I hope you stay successful.$"
-
-BattleFrontier_PokeNav_2B00B5:: @ 82B00B5
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I heard! Your {STR_VAR_3}-win streak at\n"
- .string "the {STR_VAR_2}!\p"
- .string "That is so cool!\n"
- .string "I'd better try harder, too!$"
-
-BattleFrontier_PokeNav_2B0129:: @ 82B0129
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You won {STR_VAR_3} straight battles at\n"
- .string "the {STR_VAR_2}?\p"
- .string "That's quite the accomplishment.\n"
- .string "I need to work harder.$"
-
-BattleFrontier_PokeNav_2B01A5:: @ 82B01A5
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I hear you're the terror of\n"
- .string "the {STR_VAR_2}?\p"
- .string "You won, what, {STR_VAR_3} matches in\n"
- .string "a row?\p"
- .string "You're good, you.\n"
- .string "I wonder how many I can win?$"
-
-BattleFrontier_PokeNav_2B0232:: @ 82B0232
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you keeping well?\p"
- .string "Someone passed on word about you.\n"
- .string "How you won {STR_VAR_3} straight battles\l"
- .string "at a place named {STR_VAR_2}?\p"
- .string "That's quite the tale.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B02D9:: @ 82B02D9
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "I hope you've been keeping well.\p"
- .string "They say you won {STR_VAR_3} straight\n"
- .string "battles at the {STR_VAR_2}.\p"
- .string "I admire your energy!\n"
- .string "Bye now.$"
-
-BattleFrontier_PokeNav_2B0366:: @ 82B0366
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I heard about you!\n"
- .string "Didn't you just win {STR_VAR_3} battles in\l"
- .string "a row at the {STR_VAR_2}?\p"
- .string "You're an inspiration!\n"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2B03E6:: @ 82B03E6
- .string "Hi! This is {STR_VAR_1}.\n"
- .string "I heard the news!\p"
- .string "They say you did excellent at\n"
- .string "the {STR_VAR_2}.\p"
- .string "It's awesome--{STR_VAR_3} straight wins?\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B0457:: @ 82B0457
- .string "Hello, it's {STR_VAR_1}!\n"
- .string "I heard about you!\p"
- .string "They said you won {STR_VAR_3} straight\n"
- .string "battles at the {STR_VAR_2}.\p"
- .string "That's special! I should try\n"
- .string "harder, too! See you!$"
-
-BattleFrontier_PokeNav_2B04DE:: @ 82B04DE
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\p"
- .string "I heard you went on a tear at\n"
- .string "the {STR_VAR_2}!\p"
- .string "A big {STR_VAR_3}-win streak…\n"
- .string "That is a big record, isn't it?\p"
- .string "I'd better get it together, too!\n"
- .string "Catch you soon!$"
-
-BattleFrontier_PokeNav_2B0586:: @ 82B0586
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here. What's up?\p"
- .string "There's a rumor going around that\n"
- .string "you strung together {STR_VAR_3} straight\l"
- .string "wins at the {STR_VAR_2}.\p"
- .string "I'd better step it up, too.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B061C:: @ 82B061C
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "You were at the {STR_VAR_2}\n"
- .string "and won {STR_VAR_3} battles in a row?\l"
- .string "Isn't that something!\p"
- .string "Me? I'd say I'm coming along.\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2B06A3:: @ 82B06A3
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here. How are you?\p"
- .string "By the way, I heard you pulled off\n"
- .string "the feat of {STR_VAR_3} straight wins at\l"
- .string "the {STR_VAR_2}.\p"
- .string "I'd better try harder myself!\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2B073B:: @ 82B073B
- .string "…Er, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here…\p"
- .string "Oh, yeah, you were over at\n"
- .string "the {STR_VAR_2}, right?\p"
- .string "And you won {STR_VAR_3} battles in a row.\p"
- .string "Oh, there goes a rare POKéMON!\n"
- .string "I have to go!$"
-
-BattleFrontier_PokeNav_2B07C7:: @ 82B07C7
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\l"
- .string "I hope you're doing well.\p"
- .string "Oh, but, you are. I've heard that\n"
- .string "you won {STR_VAR_3} matches in a row at\l"
- .string "the {STR_VAR_2}.\p"
- .string "That's very impressive!\n"
- .string "I'd better work on my POKéMON, too!$"
-
-BattleFrontier_PokeNav_2B0894:: @ 82B0894
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I heard! Your {STR_VAR_3}-win streak at\n"
- .string "the {STR_VAR_2}!\p"
- .string "That is so cool!\n"
- .string "I'd better try harder, too!$"
-
-BattleFrontier_PokeNav_2B0908:: @ 82B0908
- .string "Oh, {PLAYER}{STRING 5}, hello…\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You won {STR_VAR_3} straight battles at\n"
- .string "the {STR_VAR_2}?\p"
- .string "That's quite the accomplishment.\n"
- .string "I need to work harder.$"
-
-BattleFrontier_PokeNav_2B0984:: @ 82B0984
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I hear you're the terror of\n"
- .string "the {STR_VAR_2}?\p"
- .string "You won, what, {STR_VAR_3} matches in\n"
- .string "a row?\p"
- .string "You're good, you.\n"
- .string "I wonder how many I can win?$"
-
-BattleFrontier_PokeNav_2B0A11:: @ 82B0A11
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you keeping well?\p"
- .string "Someone passed on word about you.\n"
- .string "How you won {STR_VAR_3} straight battles\l"
- .string "at a place named {STR_VAR_2}?\p"
- .string "That's quite the tale.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B0AB8:: @ 82B0AB8
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "I hope you've been keeping well.\p"
- .string "They say you won {STR_VAR_3} straight\n"
- .string "battles at the {STR_VAR_2}.\p"
- .string "I admire your energy!\n"
- .string "Bye now.$"
-
-BattleFrontier_PokeNav_2B0B45:: @ 82B0B45
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "I heard about you!\p"
- .string "Didn't you just win {STR_VAR_3} battles in\n"
- .string "a row at the {STR_VAR_2}?\p"
- .string "You're an inspiration!\n"
- .string "Bye-bye!$"
-
-BattleFrontier_PokeNav_2B0BC5:: @ 82B0BC5
- .string "Hi! {PLAYER}?\n"
- .string "Hello, this is {STR_VAR_1}!\l"
- .string "I heard the news!\p"
- .string "You became the champion at\n"
- .string "the {STR_VAR_2} {STR_VAR_3} times?\p"
- .string "It's awesome! I have to do better!\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B0C4A:: @ 82B0C4A
- .string "Hello, it's {STR_VAR_1}!\n"
- .string "I heard about you!\p"
- .string "They said you won {STR_VAR_3} titles\n"
- .string "at the {STR_VAR_2}.\p"
- .string "That's super! I wonder if I can\n"
- .string "become a champion?$"
-
-BattleFrontier_PokeNav_2B0CC7:: @ 82B0CC7
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "How's it going?\p"
- .string "I heard you won events {STR_VAR_3} times\n"
- .string "at the {STR_VAR_2}!\p"
- .string "Make it one more next time!\n"
- .string "Catch you soon!$"
-
-BattleFrontier_PokeNav_2B0D4A:: @ 82B0D4A
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "I heard you became the champion\n"
- .string "at the {STR_VAR_2} {STR_VAR_3} times.\p"
- .string "Sounds like you're working hard.\n"
- .string "I'll try to keep up!$"
-
-BattleFrontier_PokeNav_2B0DC8:: @ 82B0DC8
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "I heard you won {STR_VAR_3} times\n"
- .string "outright at the {STR_VAR_2}.\p"
- .string "I'd better get with it, too!\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2B0E35:: @ 82B0E35
- .string "Hey, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here. How are you?\p"
- .string "By the way, I heard you became\n"
- .string "the champion {STR_VAR_3} times at\l"
- .string "the {STR_VAR_2}.\p"
- .string "I'd better raise my POKéMON before\n"
- .string "you pull farther ahead.$"
-
-BattleFrontier_PokeNav_2B0ED1:: @ 82B0ED1
- .string "{PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here.\p"
- .string "You were at the {STR_VAR_2}\n"
- .string "and became the champ {STR_VAR_3} times?\p"
- .string "That's neat. By the way, have you\n"
- .string "caught any rare POKéMON lately?\p"
- .string "Oh, is that right.\n"
- .string "Okay, bye.$"
-
-BattleFrontier_PokeNav_2B0F72:: @ 82B0F72
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\l"
- .string "I hope you're doing well.\l"
- .string "Oh, but, you are.\p"
- .string "I've heard that you won {STR_VAR_3} titles\n"
- .string "at the {STR_VAR_2}.\p"
- .string "I must raise my POKéMON like you.\n"
- .string "See you again.$"
-
-BattleFrontier_PokeNav_2B102A:: @ 82B102A
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I heard! You took the title\n"
- .string "{STR_VAR_3} times at the {STR_VAR_2}!\p"
- .string "That is so cool!\n"
- .string "I'd better try harder, too!$"
-
-BattleFrontier_PokeNav_2B10A7:: @ 82B10A7
- .string "Oh, {PLAYER}{STRING 5}, hello.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You won {STR_VAR_3} straight times at\n"
- .string "the {STR_VAR_2}?\p"
- .string "That's quite the accomplishment.\n"
- .string "I need to work harder.$"
-
-BattleFrontier_PokeNav_2B1121:: @ 82B1121
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I hear you're the terror of\n"
- .string "the {STR_VAR_2}?\p"
- .string "You won, what, {STR_VAR_3} straight times\n"
- .string "now?\p"
- .string "I wonder if I can ever become\n"
- .string "a champion?\p"
- .string "…Pretty well impossible?\n"
- .string "Well, see you!$"
-
-BattleFrontier_PokeNav_2B11D3:: @ 82B11D3
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you keeping well?\p"
- .string "You've won {STR_VAR_3} events at a place\n"
- .string "named {STR_VAR_2}?\p"
- .string "That's quite the tale.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B124D:: @ 82B124D
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "I hope you've been keeping well.\p"
- .string "They say you won {STR_VAR_3} events\n"
- .string "at the {STR_VAR_2}?\p"
- .string "I admire your energy!\n"
- .string "Bye now.$"
-
-BattleFrontier_PokeNav_2B12D0:: @ 82B12D0
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "I heard about you!\p"
- .string "Didn't you win {STR_VAR_3} titles\n"
- .string "at the {STR_VAR_2}?\p"
- .string "You're an inspiration!\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2B1347:: @ 82B1347
- .string "Hi! {PLAYER}?\n"
- .string "Hello, this is {STR_VAR_1}!\l"
- .string "I heard the news!\p"
- .string "You got through {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}!\p"
- .string "That's awesome!\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B13B1:: @ 82B13B1
- .string "Hello, it's {STR_VAR_1}!\n"
- .string "I heard about you!\p"
- .string "They said you won your way through\n"
- .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
- .string "I have to try much harder!\n"
- .string "Bye!$"
-
-BattleFrontier_PokeNav_2B142B:: @ 82B142B
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "How's it going?\p"
- .string "I heard you won through {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}!\p"
- .string "Try to do even better next time!\n"
- .string "Catch you soon!$"
-
-BattleFrontier_PokeNav_2B14B4:: @ 82B14B4
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "I heard you blew through {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}.\p"
- .string "I'd better train my POKéMON and\n"
- .string "try to keep up!$"
-
-BattleFrontier_PokeNav_2B1525:: @ 82B1525
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "I heard you got past {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}.\p"
- .string "I'd better get with it, too!\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2B158E:: @ 82B158E
- .string "Hey, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here. How are you?\p"
- .string "By the way, I heard you got through\n"
- .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
- .string "I'd better raise my POKéMON before\n"
- .string "you pull further ahead.$"
-
-BattleFrontier_PokeNav_2B1622:: @ 82B1622
- .string "{PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here.\p"
- .string "You were at the {STR_VAR_2}\n"
- .string "and won your way past {STR_VAR_3} rooms?\p"
- .string "That's wicked.\p"
- .string "Oh, there goes a rare POKéMON!\n"
- .string "Okay, bye.$"
-
-BattleFrontier_PokeNav_2B169D:: @ 82B169D
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\l"
- .string "I hope you're doing well.\l"
- .string "Oh, but, you are.\p"
- .string "I've heard that you got through\n"
- .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
- .string "That's quite impressive!\n"
- .string "I must raise my POKéMON like you.\l"
- .string "See you again.$"
-
-BattleFrontier_PokeNav_2B1775:: @ 82B1775
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I heard! You won your way through\n"
- .string "{STR_VAR_3} rooms at the {STR_VAR_2}!\p"
- .string "That is so cool!\n"
- .string "I'd better try harder, too!$"
-
-BattleFrontier_PokeNav_2B17F8:: @ 82B17F8
- .string "Oh, {PLAYER}{STRING 5}, hello.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You won your way past {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}?\p"
- .string "That's quite the accomplishment.\n"
- .string "I need to work harder.$"
-
-BattleFrontier_PokeNav_2B1877:: @ 82B1877
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I hear you're the terror of\n"
- .string "the {STR_VAR_2}?\p"
- .string "You got through, what, {STR_VAR_3} rooms?\n"
- .string "That's gotta count for something.\p"
- .string "I wonder if I can ever become\n"
- .string "a champion?\p"
- .string "…Pretty well impossible?\n"
- .string "Well, see you!$"
-
-BattleFrontier_PokeNav_2B1946:: @ 82B1946
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you keeping well?\p"
- .string "You've won through {STR_VAR_3} rooms at\n"
- .string "a place named {STR_VAR_2}?\p"
- .string "That's quite the tale.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B19C7:: @ 82B19C7
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "I hope you've been keeping well.\p"
- .string "They say you won in {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}?\p"
- .string "I admire your energy!\n"
- .string "Bye now.$"
-
-BattleFrontier_PokeNav_2B1A4C:: @ 82B1A4C
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "I heard about you!\p"
- .string "Didn't you get through {STR_VAR_3} rooms\n"
- .string "at the {STR_VAR_2}?\p"
- .string "You're an inspiration!\n"
- .string "See you again!$"
-
-BattleFrontier_PokeNav_2B1ACA:: @ 82B1ACA
- .string "Hi! {PLAYER}?\n"
- .string "Hello, this is {STR_VAR_1}!\l"
- .string "I heard the news!\p"
- .string "You climbed {STR_VAR_3} floors inside\n"
- .string "the {STR_VAR_2}, right?\p"
- .string "That's awesome!\n"
- .string "I should try that challenge.$"
-
-BattleFrontier_PokeNav_2B1B50:: @ 82B1B50
- .string "Hello, it's {STR_VAR_1}!\n"
- .string "I heard about you!\p"
- .string "They said you won your way through\n"
- .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
- .string "Wow, that's fantastic!\n"
- .string "I'd better raise my POKéMON, too!$"
-
-BattleFrontier_PokeNav_2B1BE4:: @ 82B1BE4
- .string "Hey there, {PLAYER}!\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "How's it going?\p"
- .string "I heard you climbed {STR_VAR_3} floors\n"
- .string "in the {STR_VAR_2}!\p"
- .string "Try to do even better next time!\n"
- .string "Catch you soon!$"
-
-BattleFrontier_PokeNav_2B1C6A:: @ 82B1C6A
- .string "Hey, {PLAYER}{STRING 5}.\n"
- .string "{STR_VAR_1} here.\p"
- .string "I heard you scaled {STR_VAR_3} floors\n"
- .string "in the {STR_VAR_2}.\p"
- .string "I'd better work hard and try\n"
- .string "to keep up!$"
-
-BattleFrontier_PokeNav_2B1CCF:: @ 82B1CCF
- .string "Hiya, {PLAYER}{STRING 5}!\n"
- .string "It's {STR_VAR_1}.\p"
- .string "I heard you climbed {STR_VAR_3} floors\n"
- .string "in the {STR_VAR_2}.\p"
- .string "I'd better get with it, too!\n"
- .string "See you soon!$"
-
-BattleFrontier_PokeNav_2B1D38:: @ 82B1D38
- .string "Hey, {PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here. How are you?\p"
- .string "By the way, I heard you got through\n"
- .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
- .string "I'd better raise my POKéMON before\n"
- .string "you pull further ahead.$"
-
-BattleFrontier_PokeNav_2B1DCD:: @ 82B1DCD
- .string "{PLAYER}{STRING 5}?\n"
- .string "{STR_VAR_1} here.\p"
- .string "You were at the {STR_VAR_2}\n"
- .string "and won your way up {STR_VAR_3} floors?\p"
- .string "Neat. Were there any rare POKéMON\n"
- .string "there?\p"
- .string "No, huh?\n"
- .string "Okay, bye.$"
-
-BattleFrontier_PokeNav_2B1E4B:: @ 82B1E4B
- .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
- .string "This is {STR_VAR_1} speaking.\l"
- .string "I hope you're doing well.\l"
- .string "Oh, but, you are.\p"
- .string "I've heard that you got through\n"
- .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
- .string "That's quite impressive!\n"
- .string "I must raise my POKéMON like you.\l"
- .string "See you again.$"
-
-BattleFrontier_PokeNav_2B1F24:: @ 82B1F24
- .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
- .string "This is {STR_VAR_1}!\p"
- .string "I heard! You won your way through\n"
- .string "{STR_VAR_3} floors in the {STR_VAR_2}!\p"
- .string "That is so cool!\n"
- .string "I'd better try harder, too!$"
-
-BattleFrontier_PokeNav_2B1FA8:: @ 82B1FA8
- .string "Oh, {PLAYER}{STRING 5}, hello.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "You climbed {STR_VAR_3} floors inside\n"
- .string "the {STR_VAR_2}?\p"
- .string "That's quite the accomplishment.\n"
- .string "I need to work harder.$"
-
-BattleFrontier_PokeNav_2B2022:: @ 82B2022
- .string "Ah, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\p"
- .string "I hear you're the terror of\n"
- .string "the {STR_VAR_2}?\p"
- .string "You rose through, what, {STR_VAR_3} floors?\n"
- .string "That's gotta count for something.\p"
- .string "I wonder if I can ever become\n"
- .string "a champion?\p"
- .string "…Pretty well impossible?\n"
- .string "Well, see you!$"
-
-BattleFrontier_PokeNav_2B20F3:: @ 82B20F3
- .string "Hello, {PLAYER}{STRING 5}.\n"
- .string "It's me, {STR_VAR_1}.\l"
- .string "Are you keeping well?\p"
- .string "You've won through {STR_VAR_3} floors in\n"
- .string "a place named {STR_VAR_2}?\p"
- .string "That's quite the tale.\n"
- .string "See you!$"
-
-BattleFrontier_PokeNav_2B2175:: @ 82B2175
- .string "Ah, hello, {PLAYER}{STRING 5}!\n"
- .string "This is {STR_VAR_1}!\l"
- .string "I hope you've been keeping well.\p"
- .string "They say you climbed {STR_VAR_3} floors\n"
- .string "in the {STR_VAR_2}?\p"
- .string "I admire your energy!\n"
- .string "Bye now.$"
-
-BattleFrontier_PokeNav_2B21FC:: @ 82B21FC
- .string "Oh, hi, {PLAYER}{STRING 5}.\n"
- .string "This is {STR_VAR_1}.\l"
- .string "I heard about you!\p"
- .string "Didn't you get through {STR_VAR_3} floors\n"
- .string "in the {STR_VAR_2}?\p"
- .string "You're an inspiration!\n"
- .string "See you again!$"
-
-gText_Mom_Pokenav_2B227B:: @ 82B227B
- .string "MOM: Your father and you…\n"
- .string "Everyone is captivated by POKéMON.\p"
- .string "What is the charm of POKéMON?\p"
- .string "Me?\n"
- .string "I adore POKéMON that help me with\l"
- .string "my everyday chores.$"
-
-gText_Mom_Pokenav_2B2310:: @ 82B2310
- .string "MOM: Hi, {PLAYER}!\n"
- .string "Your father keeps himself locked\l"
- .string "away in the PETALBURG GYM.\p"
- .string "He comes home every so often.\n"
- .string "But he goes back to the GYM when\l"
- .string "he's eaten everything he can.\p"
- .string "I'm guessing that losing to you\n"
- .string "was a big blow to his pride!$"
-
-gText_Mom_Pokenav_2B23F3:: @ 82B23F3
- .string "MOM: {PLAYER}…\n"
- .string "Don't worry about me or the house.\p"
- .string "Wear those RUNNING SHOES until\n"
- .string "they fall apart, honey!$"
-
-gText_Roxanne_Pokenav_2B2456:: @ 82B2456
- .string "ROXANNE: Oh, hello, {PLAYER}!\p"
- .string "I've been hard at work retraining\n"
- .string "since we met.\p"
- .string "I will still need some more time\n"
- .string "before I can reopen the GYM.\p"
- .string "But when I do, please visit my GYM\n"
- .string "for a rematch!$"
-
-gText_Roxanne_Pokenav_2B250E:: @ 82B250E
- .string "ROXANNE: Is this {PLAYER}?\n"
- .string "Congratulations!\l"
- .string "I've been hearing about you!\p"
- .string "As for me, I need some more time\n"
- .string "before I can reopen the GYM.\p"
- .string "But when I do, please visit my GYM\n"
- .string "for a rematch!$"
-
-gText_Roxanne_Pokenav_2B25C1:: @ 82B25C1
- .string "ROXANNE: {PLAYER}!\n"
- .string "My GYM is ready!\p"
- .string "Please visit RUSTBORO whenever\n"
- .string "you can!$"
-
-gText_Roxanne_Pokenav_2B2607:: @ 82B2607
- .string "ROXANNE: At the RUSTBORO GYM,\n"
- .string "the fact that we battled, {PLAYER},\l"
- .string "is a matter of pride.$"
-
-gText_Brawly_Pokenav_2B2659:: @ 82B2659
- .string "BRAWLY: Hey, there, {PLAYER}{STRING 5}!\p"
- .string "I learned a lot from the battle we\n"
- .string "had together.\p"
- .string "I intend to do my training over,\n"
- .string "then reopen the GYM.\p"
- .string "It's going to take some time before\n"
- .string "I'm ready to run the GYM again.\p"
- .string "But if I can reopen the GYM,\n"
- .string "I want you to challenge us again.$"
-
-gText_Brawly_Pokenav_2B275D:: @ 82B275D
- .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n"
- .string "Congratulations!\p"
- .string "Word about your exploits arrived\n"
- .string "on tidal winds!\p"
- .string "It appears as if I need to work on\n"
- .string "my training some more.\p"
- .string "It's going to take some time before\n"
- .string "I'm ready to run the GYM again.\p"
- .string "But if I can reopen the GYM,\n"
- .string "I want you to challenge us again.$"
-
-gText_Brawly_Pokenav_2B286F:: @ 82B286F
- .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n"
- .string "My GYM's ready for action!\p"
- .string "Come back to DEWFORD anytime\n"
- .string "for another challenge!$"
-
-gText_Brawly_Pokenav_2B28D1:: @ 82B28D1
- .string "BRAWLY: {PLAYER}{STRING 5}, I don't think\n"
- .string "I'll ever get bored of battling you!$"
-
-gText_Wattson_Pokenav_2B2912:: @ 82B2912
- .string "WATTSON: Oh, it's you!\p"
- .string "After you left, I've been redoing\n"
- .string "my training from scratch.\p"
- .string "I'd say I could use a wee bit more\n"
- .string "time to reopen my GYM.\p"
- .string "You'll have to wait till then!\n"
- .string "Wahahahaha!$"
-
-gText_Wattson_Pokenav_2B29CA:: @ 82B29CA
- .string "WATTSON: Wahahahaha!\p"
- .string "You've really done it, haven't you?\n"
- .string "I've been getting word about you!\p"
- .string "It seems I need to retrain some\n"
- .string "more still.\p"
- .string "I'd say I could use a wee bit more\n"
- .string "time to reopen my GYM.\p"
- .string "You'll have to wait till then!\n"
- .string "Wahahahaha!$"
-
-gText_Wattson_Pokenav_2B2AB6:: @ 82B2AB6
- .string "WATTSON: Oh, it's you!\n"
- .string "My GYM's ready!\p"
- .string "Visit MAUVILLE anytime!\n"
- .string "Wahahahaha!$"
-
-gText_Wattson_Pokenav_2B2B01:: @ 82B2B01
- .string "WATTSON: Wahahaha!\p"
- .string "A battle with you is always charged\n"
- .string "with shocking power!$"
-
-gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D
- .string "FLANNERY: {PLAYER}…\p"
- .string "When we battled, I learned exactly\n"
- .string "how immature I was.\p"
- .string "But I'm not done yet!\p"
- .string "I'm going to redo my training and\n"
- .string "reopen the GYM.\p"
- .string "When the time comes, {PLAYER},\n"
- .string "please challenge us again.$"
-
-gText_Flannery_Pokenav_2B2C0E:: @ 82B2C0E
- .string "FLANNERY: Hello, {PLAYER}?\n"
- .string "Congratulations!\p"
- .string "Word of your success has reached\n"
- .string "us like the heat of a volcano!\p"
- .string "Our training is coming along very\n"
- .string "well here.\p"
- .string "When the GYM's ready, a mark will\n"
- .string "appear beside my name in the\l"
- .string "MATCH CALL list.$"
-
-gText_Flannery_Pokenav_2B2CF1:: @ 82B2CF1
- .string "FLANNERY: Oh, {PLAYER}?\n"
- .string "Our GYM's ready!\p"
- .string "Come to LAVARIDGE for a soak\n"
- .string "in the hot spring and a challenge!$"
-
-gText_Flannery_Pokenav_2B2D54:: @ 82B2D54
- .string "FLANNERY: {PLAYER}…\n"
- .string "I'm positive that you keep getting\l"
- .string "better at training every time.$"
-
-gText_Winona_Pokenav_2B2DA4:: @ 82B2DA4
- .string "WINONA: Hello, {PLAYER}!\p"
- .string "Thanks to our battle, I've come\n"
- .string "to understand my weak points!\p"
- .string "When I reopen the GYM, I won't go\n"
- .string "down in defeat again!$"
-
-gText_Winona_Pokenav_2B2E2B:: @ 82B2E2B
- .string "WINONA: You've done it, {PLAYER}!\p"
- .string "News about the new CHAMPION\n"
- .string "has reached us in FORTREE!\p"
- .string "But… The next time we battle,\n"
- .string "it's not going to end the same way.$"
-
-gText_Winona_Pokenav_2B2EC2:: @ 82B2EC2
- .string "WINONA: Is this {PLAYER}?\n"
- .string "Our GYM is back in operation!\p"
- .string "We're waiting for you in FORTREE!$"
-
-gText_Winona_Pokenav_2B2F16:: @ 82B2F16
- .string "WINONA: {PLAYER}…\n"
- .string "Though I have lost, my wings will\l"
- .string "never break.\p"
- .string "Yes, in exactly the same way that\n"
- .string "you never lost sight of your dream.$"
-
-gText_TateLiza_Pokenav_2B2F97:: @ 82B2F97
- .string "TATE: Oh! You're…\n"
- .string "LIZA: {PLAYER}!\p"
- .string "TATE: We're in training again…\n"
- .string "LIZA: So we can reopen our GYM!\p"
- .string "TATE: When our GYM is ready…\n"
- .string "LIZA: When our GYM is ready…\p"
- .string "TATE: A mark'll appear by our name…\n"
- .string "LIZA: On the MATCH CALL list.$"
-
-gText_TateLiza_Pokenav_2B306E:: @ 82B306E
- .string "TATE: {PLAYER}, congratulations!\n"
- .string "LIZA: {PLAYER}, congratulations!\p"
- .string "TATE: The two of us are…\n"
- .string "LIZA: Still in training!\p"
- .string "TATE: We need some more time, but…\n"
- .string "LIZA: When our GYM is ready…\p"
- .string "TATE: A mark'll appear by our name…\n"
- .string "LIZA: On the MATCH CALL list.$"
-
-gText_TateLiza_Pokenav_2B3158:: @ 82B3158
- .string "TATE: {PLAYER}!\n"
- .string "LIZA: {PLAYER}!\p"
- .string "TATE: Our GYM is ready!\n"
- .string "LIZA: Our GYM is ready!\p"
- .string "TATE: Please come visit…\n"
- .string "LIZA: MOSSDEEP anytime!$"
-
-gText_TateLiza_Pokenav_2B31CD:: @ 82B31CD
- .string "TATE: {PLAYER}, the battle we had…\n"
- .string "LIZA: Is an invaluable experience.\p"
- .string "TATE: It would be nice if…\n"
- .string "LIZA: We could all battle again!$"
-
-gText_Juan_Pokenav_2B3249:: @ 82B3249
- .string "JUAN: Hmm…\n"
- .string "{PLAYER}{STRING 5}… Was it?\p"
- .string "Our battle together--it brought\n"
- .string "to me memories of when I first\l"
- .string "encountered WALLACE.\p"
- .string "Perhaps you are a genius who may\n"
- .string "yet surpass WALLACE!$"
-
-gText_Juan_Pokenav_2B32EC:: @ 82B32EC
- .string "JUAN: Fufu… {PLAYER}{STRING 5}…\n"
- .string "You've finally achieved your goal.\p"
- .string "My eye for appraising talent wasn't\n"
- .string "mistaken…\p"
- .string "I wish for another chance to meet\n"
- .string "you, for you have scaled the peak\l"
- .string "of power and prestige.$"
-
-gText_Juan_Pokenav_2B33AA:: @ 82B33AA
- .string "JUAN: Hoho… {PLAYER}{STRING 5}…\p"
- .string "Our SOOTOPOLIS GYM has finally\n"
- .string "reopened.\p"
- .string "If you wish to see me, you are\n"
- .string "welcome to visit anytime.$"
-
-gText_Juan_Pokenav_2B341E:: @ 82B341E
- .string "JUAN: {PLAYER}{STRING 5}…\p"
- .string "Like the finest music, the battles\n"
- .string "we wage together strike chords\l"
- .string "of inspiration in my heart…\p"
- .string "When I close my eyes, I see visions\n"
- .string "of you soaring with the melody…$"
-
-gText_Sidney_Pokenav_2B34CC:: @ 82B34CC
- .string "SIDNEY: Yo, {PLAYER}!\p"
- .string "If you want to battle with me\n"
- .string "again, you come on back whenever\l"
- .string "you like to the POKéMON LEAGUE.\p"
- .string "I'll always be here!\n"
- .string "I'll be waiting!$"
-
-gText_Phoebe_Pokenav_2B3561:: @ 82B3561
- .string "PHOEBE: Hi, {PLAYER}!\p"
- .string "How about coming back here again\n"
- .string "sometime?\p"
- .string "I'd like to see how much tighter\n"
- .string "your bond has grown with your\l"
- .string "POKéMON.$"
-
-gText_Glacia_Pokenav_2B35E4:: @ 82B35E4
- .string "GLACIA: Hello, {PLAYER}.\p"
- .string "I trust you haven't become\n"
- .string "complacent with your power?\p"
- .string "If you feel the need to cool your\n"
- .string "hot emotions just a little, do come\l"
- .string "to the POKéMON LEAGUE…$"
-
-gText_Drake_Pokenav_2B368B:: @ 82B368B
- .string "DRAKE: That voice… {PLAYER}, is it?\n"
- .string "You sound well…\p"
- .string "I understand that there is now\n"
- .string "a facility called the BATTLE\l"
- .string "FRONTIER that tests the skills of\l"
- .string "TRAINERS.\p"
- .string "However, if you wish to have real\n"
- .string "battles, there is no substitute for\l"
- .string "the POKéMON LEAGUE!\p"
- .string "Don't you agree, {PLAYER}?$"
-
-gText_Wallace_Pokenav_2B3790:: @ 82B3790
- .string "WALLACE: Hello, {PLAYER}{STRING 5}.\n"
- .string "Have you met STEVEN?\p"
- .string "He is…\n"
- .string "Actually incredibly skilled.\p"
- .string "However, he's an odd soul who\n"
- .string "rarely battles.\p"
- .string "Instead, he would rather look for\n"
- .string "rare stones.\p"
- .string "I'm sure he's digging in a cave or\n"
- .string "a craggy mountain somewhere.\p"
- .string "But what is a rare stone exactly?\n"
- .string "All I can think of is a METEORITE…$"
-
-MossdeepCity_SpaceCenter_2F_Text_2B38C1: @ 82B38C1
- .string "… … … … … …\n"
- .string "… … … … … Beep!\p"
- .string "MAY: Hi, {PLAYER}{KUN}!\p"
- .string "I was just in PACIFIDLOG a little\n"
- .string "while ago.\p"
- .string "I saw a giant green POKéMON\n"
- .string "flying high in the sky.\p"
- .string "I…\n"
- .string "I've never seen anything like it.\p"
- .string "I wonder what it was.\n"
- .string "Is this maybe a major discovery?\p"
- .string "… … … … … …\n"
- .string "… … … … … Click!$"
-
-MossdeepCity_SpaceCenter_2F_Text_2B39C6: @ 82B39C6
- .string "… … … … … …\n"
- .string "… … … … … Beep!\p"
- .string "BRENDAN: Hey, {PLAYER}!\n"
- .string "I was in PACIFIDLOG just now.\p"
- .string "I saw this huge green POKéMON\n"
- .string "flying across the sky.\p"
- .string "I've never seen anything that\n"
- .string "amazing before.\p"
- .string "I wish you could've seen it,\n"
- .string "{PLAYER}.\p"
- .string "… … … … … …\n"
- .string "… … … … … Click!$"
-
-gText_May_Pokenav_2B3AB3:: @ 2B3AB3
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "MR. BRINEY retired as a SAILOR,\n"
- .string "but I still see him out on the sea\l"
- .string "with his pet PEEKO sometimes.\p"
- .string "He must love the sea still.$"
-
-gText_May_Pokenav_2B3B3F:: @ 2B3B3F
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "You know how little towns like\n"
- .string "PETALBURG and DEWFORD have GYMS?\p"
- .string "For some reason, the big port of\n"
- .string "SLATEPORT doesn't have a GYM.\p"
- .string "When they finally build a GYM there,\n"
- .string "I should apply to be the LEADER.$"
-
-gText_May_Pokenav_2B3C13:: @ 2B3C13
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "Do you remember a man named\n"
- .string "the CUTTER in RUSTBORO?\l"
- .string "He had a house there, remember?\p"
- .string "Well, I found out his younger\n"
- .string "brother lives in MAUVILLE.\p"
- .string "Can you guess his name?\p"
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "The ROCK SMASH GUY!$"
-
-gText_May_Pokenav_2B3CF3:: @ 2B3CF3
- .string "MAY: {PLAYER}{STRING 5}?\p"
- .string "RUSTURF TUNNEL…\n"
- .string "They named it that because it\l"
- .string "joins RUSTBORO and VERDANTURF.$"
-
-gText_May_Pokenav_2B3D4B:: @ 2B3D4B
- .string "MAY: {PLAYER}{STRING 5}, how are you?\p"
- .string "I'm out on ROUTE 111 now.\p"
- .string "I'm going to get a rest at an old\n"
- .string "lady's house.\p"
- .string "She lives just north of\n"
- .string "the desert.$"
-
-gText_May_Pokenav_2B3DD1:: @ 2B3DD1
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "Did you know about the MIRAGE\n"
- .string "TOWER in the desert?\p"
- .string "They say, like a mirage, it seems\n"
- .string "to mysteriously come and go.\p"
- .string "I wish I could see it.$"
-
-gText_May_Pokenav_2B3E69:: @ 2B3E69
- .string "MAY: {PLAYER}{STRING 5}, yahoo!\n"
- .string "I'm on ROUTE 119 now.\p"
- .string "There's a big river here, and\n"
- .string "it often rains.\p"
- .string "I got soaked!$"
-
-gText_May_Pokenav_2B3ECD:: @ 2B3ECD
- .string "MAY: {PLAYER}{STRING 5}, hi.\p"
- .string "MT. PYRE is a memorial to POKéMON\n"
- .string "whose lives have ended.\p"
- .string "Maybe as a result, it's infested\n"
- .string "with many GHOST-type POKéMON!$"
-
-gText_May_Pokenav_2B3F2B:: @ 2B3F2B
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "I was thinking of going to the hot\n"
- .string "spring in LAVARIDGE.\p"
- .string "But on the way, around JAGGED\n"
- .string "PASS, I ran into some bad-looking\l"
- .string "characters. The mood was ugly!$"
-
-gText_May_Pokenav_2B3FFB:: @ 2B3FFB
- .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
- .string "Did you see the news?\p"
- .string "They say CAPT. STERN discovered\n"
- .string "the SEAFLOOR CAVERN while on his\l"
- .string "submarine expedition.$"
-
-gText_May_Pokenav_2B402B:: @ 2B402B
- .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
- .string "Don't you think it's neat?\p"
- .string "Even if you don't have a boat,\n"
- .string "you can cross the sea using\l"
- .string "a POKéMON's move.\p"
- .string "Did you know there's more?\p"
- .string "There's a POKéMON move that lets\n"
- .string "you go to the bottom of the sea.$"
-
-gText_May_Pokenav_2B414B:: @ 2B414B
- .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
- .string "Hope things are okay!\p"
- .string "Have you been on the sea and\n"
- .string "found your way to the other side\l"
- .string "blocked?\p"
- .string "Try diving deep underwater and\n"
- .string "following trenches.\p"
- .string "When you get to the other side,\n"
- .string "come up to the surface. Easy!$"
-
-gText_May_Pokenav_2B4228:: @ 2B4228
- .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
- .string "How's it going?\n"
- .string "Are you filling your POKéDEX?\p"
- .string "I heard a rumor that there are\n"
- .string "super-ancient POKéMON out there.\l"
- .string "And there are three of them!\p"
- .string "I would love to see even one…$"
-
-gText_May_Pokenav_2B42E0:: @ 2B42E0
- .string "MAY: {PLAYER}{STRING 5}!\n"
- .string "I heard the rumors!\p"
- .string "You beat the SOOTOPOLIS GYM\n"
- .string "LEADER?\p"
- .string "That means you don't have far\n"
- .string "to go, do you?$"
-
-gText_May_Pokenav_2B4350:: @ 2B4350
- .string "MAY: There isn't a single TRAINER\n"
- .string "left in HOENN who doesn't know who\l"
- .string "you are, {PLAYER}{STRING 5}!\p"
- .string "When I tell people that I'm friends\n"
- .string "with you, {PLAYER}{STRING 5}, they're all\l"
- .string "surprised!$"
-
-gText_Brendan_Pokenav_2B43EF:: @ 2B43EF
- .string "BRENDAN: Hey, {PLAYER}!\p"
- .string "MR. BRINEY retired as a SAILOR,\n"
- .string "but I still see him out on the sea\l"
- .string "with his pet PEEKO sometimes.\p"
- .string "I guess he must love\n"
- .string "the sea still.$"
-
-gText_Brendan_Pokenav_2B4486:: @ 2B4486
- .string "BRENDAN: Hey, {PLAYER}!\p"
- .string "I don't get how little towns like\n"
- .string "PETALBURG and DEWFORD have GYMS.\p"
- .string "I mean, not when the big port of\n"
- .string "SLATEPORT doesn't have a GYM.\p"
- .string "When they finally build a GYM there,\n"
- .string "I should apply to be the LEADER.$"
-
-gText_Brendan_Pokenav_2B4560:: @ 2B4560
- .string "BRENDAN: Yo, {PLAYER}!\p"
- .string "Do you remember a guy named\n"
- .string "the CUTTER in RUSTBORO?\l"
- .string "He had a house there, right?\p"
- .string "Well, it turns out his little\n"
- .string "brother lives in MAUVILLE.\p"
- .string "Can you guess his name?\p"
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "The ROCK SMASH GUY!$"
-
-gText_Brendan_Pokenav_2B463F:: @ 2B463F
- .string "BRENDAN: This voice… {PLAYER}?\p"
- .string "They gave RUSTURF TUNNEL its name\n"
- .string "because it joins RUSTBORO and\l"
- .string "VERDANTURF.\p"
- .string "Did you know that?$"
-
-gText_Brendan_Pokenav_2B46B7:: @ 2B46B7
- .string "BRENDAN: {PLAYER}, what's up?\p"
- .string "Hey, I'm out on ROUTE 111 now.\p"
- .string "I'm going to rest up at an old\n"
- .string "lady's house north of the desert.\p"
- .string "If you're in the area, you should\n"
- .string "visit her, too.$"
-
-gText_Brendan_Pokenav_2B4761:: @ 2B4761
- .string "BRENDAN: Hey, {PLAYER}!\p"
- .string "Did you know about the MIRAGE\n"
- .string "TOWER in the desert?\p"
- .string "They say, like a mirage, it can be\n"
- .string "seen only sometimes.\p"
- .string "I'd like to see that!$"
-
-gText_Brendan_Pokenav_2B47F4:: @ 2B47F4
- .string "BRENDAN: Who's this? Oh, {PLAYER}?\n"
- .string "Guess what? I'm on ROUTE 119 now.\p"
- .string "There's a big river here, and\n"
- .string "it rains all the time.\p"
- .string "I got soaked to the bone!$"
-
-gText_Brendan_Pokenav_2B4882:: @ 2B4882
- .string "BRENDAN: {PLAYER}!\p"
- .string "MT. PYRE is a memorial to POKéMON\n"
- .string "whose lives have ended.\p"
- .string "That's probably why it's infested\n"
- .string "with many GHOST-type POKéMON!$"
-
-gText_Brendan_Pokenav_2B4909:: @ 2B4909
- .string "BRENDAN: Hey there, {PLAYER}.\p"
- .string "I was on my way back to the hot\n"
- .string "spring in LAVARIDGE.\p"
- .string "But around JAGGED PASS, I ran into\n"
- .string "some nasty-looking characters.\p"
- .string "Those creeps…\n"
- .string "I think they were TEAM MAGMA.$"
-
-gText_Brendan_Pokenav_2B49C4:: @ 2B49C4
- .string "BRENDAN: Hi, {PLAYER}!\n"
- .string "Did you catch the news?\p"
- .string "They say CAPT. STERN discovered\n"
- .string "the SEAFLOOR CAVERN while on his\l"
- .string "submarine expedition.$"
-
-gText_Brendan_Pokenav_2B4A44:: @ 2B4A44
- .string "BRENDAN: Hey there, {PLAYER}!\n"
- .string "Don't you think it's awesome?\p"
- .string "Even if you don't have a boat,\n"
- .string "you can cross the sea using\l"
- .string "a POKéMON's move.\p"
- .string "And, there's a move that lets you\n"
- .string "travel to the bottom of the sea.\p"
- .string "Man, POKéMON can do anything!$"
-
-gText_Brendan_Pokenav_2B4B28:: @ 2B4B28
- .string "BRENDAN: Howdy, {PLAYER}!\n"
- .string "How are you holding up?\p"
- .string "Ever found your way to the other\n"
- .string "side blocked while on the sea?\p"
- .string "Try diving deep underwater and\n"
- .string "following trenches at the bottom.\p"
- .string "When you get to the other side,\n"
- .string "come up to the surface. Simple!$"
-
-gText_Brendan_Pokenav_2B4C15:: @ 2B4C15
- .string "BRENDAN: Hey there, {PLAYER}!\p"
- .string "How's it going? Filling up your\n"
- .string "POKéDEX successfully?\p"
- .string "I heard a rumor that there are\n"
- .string "super-ancient POKéMON out there.\l"
- .string "And not just one--three!\p"
- .string "I'd love to catch even one…$"
-
-gText_Brendan_Pokenav_2B4CD8:: @ 2B4CD8
- .string "BRENDAN: {PLAYER}!\n"
- .string "I heard the rumors!\p"
- .string "You beat the SOOTOPOLIS GYM\n"
- .string "LEADER? Awesome!\p"
- .string "You're getting awful close now!$"
-
-gText_Brendan_Pokenav_2B4D46:: @ 2B4D46
- .string "BRENDAN: There isn't a TRAINER in\n"
- .string "all of HOENN who doesn't know who\l"
- .string "you are, {PLAYER}!\p"
- .string "When I tell people that I'm friends\n"
- .string "with you, {PLAYER}, they get pretty\l"
- .string "envious!$"
-
-gText_Wally_Pokenav_2B4DE2:: @ 2B4DE2
- .string "WALLY: Oh, {PLAYER}!\p"
- .string "I've been getting healthier and\n"
- .string "more physically fit.\p"
- .string "I hope I can become a TRAINER like\n"
- .string "you soon, {PLAYER}!$"
-
-gText_Wally_Pokenav_2B4E57:: @ 2B4E57
- .string "WALLY: {PLAYER}, hello!\p"
- .string "After RUSTURF TUNNEL went\n"
- .string "through, WANDA's been very happy!$"
-
-gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5
- .string "WALLY: Oh, {PLAYER}!\p"
- .string "I… I left my uncle's place in\n"
- .string "VERDANTURF without telling anyone.\p"
- .string "I wonder if he's furious with me…\p"
- .string "{PLAYER}, you understand how\n"
- .string "I feel, don't you?$"
-
-gText_Wally_Pokenav_2B4F41:: @ 2B4F41
- .string "WALLY: {PLAYER}?\n"
- .string "It's me, WALLY!\p"
- .string "The world of TRAINERS is amazing!\p"
- .string "When I have my POKéMON with me,\n"
- .string "all sorts of people say hi!\p"
- .string "It's as if everyone's getting\n"
- .string "connected through POKéMON!$"
-
-gText_Wally_Pokenav_2B4FF3:: @ 2B4FF3
- .string "WALLY: {PLAYER}? It's awesome!\n"
- .string "That RALTS we caught together?\l"
- .string "It evolved, {PLAYER}!\p"
- .string "Maybe I'm talented…\p"
- .string "Oh, but I shouldn't get a big head\n"
- .string "like that!\p"
- .string "After all, it's the POKéMON that\n"
- .string "should be praised!$"
-
-gText_Wally_Pokenav_2B50B1:: @ 2B50B1
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "WALLY appears to be out of\n"
- .string "the POKéNAV's service area…$"
-
-gText_Wally_Pokenav_2B5100:: @ 2B5100
- .string "WALLY: Oh, {PLAYER}!\p"
- .string "Before I met you, I hardly ever\n"
- .string "left my house…\p"
- .string "But now, I'm on an adventure with\n"
- .string "my very own POKéMON…\p"
- .string "{PLAYER}…\n"
- .string "Thank you…$"
-
-gText_Scott_Pokenav_2B5184:: @ 2B5184
- .string "SCOTT: Howdy, {PLAYER}{STRING 5}!\p"
- .string "You know how POKéMON can be found\n"
- .string "everywhere?\p"
- .string "Like in the mountains, in the sea,\n"
- .string "in tall grass anywhere?\p"
- .string "Just like POKéMON, you can find\n"
- .string "TRAINERS everywhere, too.\p"
- .string "As a result, I have to hurry\n"
- .string "everywhere, too. Busy, busy!$"
-
-gText_Scott_Pokenav_2B5275:: @ 2B5275
- .string "SCOTT: I'm on ROUTE 119 right now.\n"
- .string "It's teeming with TRAINERS!\p"
- .string "It's also overgrown with tall grass\n"
- .string "everywhere, it seems.\p"
- .string "Walking around in shorts here\n"
- .string "makes me all ticklish!$"
-
-gText_Scott_Pokenav_2B5323:: @ 2B5323
- .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p"
- .string "Have you had the chance to climb\n"
- .string "MT. PYRE?\p"
- .string "The place is a memorial to POKéMON\n"
- .string "that have passed away.\p"
- .string "It's somewhere every TRAINER\n"
- .string "should climb to the top of once.$"
-
-gText_Scott_Pokenav_2B53DB:: @ 2B53DB
- .string "SCOTT: Hi, {PLAYER}{STRING 5}!\p"
- .string "I've been hearing about these odd\n"
- .string "gangs being a nuisance.\p"
- .string "TEAM MAGMA and TEAM AQUA,\n"
- .string "I think they were.\p"
- .string "I would think there'd be some\n"
- .string "skilled TRAINERS among them.\p"
- .string "…But if they're thugs…$"
-
-gText_Scott_Pokenav_2B54A5:: @ 2B54A5
- .string "SCOTT: Oh, hi, {PLAYER}{STRING 5}.\p"
- .string "Might there be tough TRAINERS\n"
- .string "at the bottom of the sea?\p"
- .string "I can't go check for myself.\n"
- .string "I can't swim, for one.\l"
- .string "And I don't raise POKéMON…$"
-
-gText_Scott_Pokenav_2B5541:: @ 2B5541
- .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p"
- .string "You know that you can challenge\n"
- .string "the POKéMON LEAGUE when you've\l"
- .string "collected all the GYM BADGES?\p"
- .string "With your talent, becoming the\n"
- .string "CHAMPION isn't a pipe dream.\p"
- .string "But did you know?\n"
- .string "There's somewhere even better.\p"
- .string "But, that's all I'm willing to say\n"
- .string "for the time being.\p"
- .string "It's something you can look\n"
- .string "forward to.\p"
- .string "When you've won your way through\n"
- .string "the POKéMON LEAGUE into the HALL\l"
- .string "OF FAME!$"
-
-gText_Scott_Pokenav_2B56CA:: @ 2B56CA
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "SCOTT appears to be out of\n"
- .string "the POKéNAV's service area…$"
-
-gText_Norman_Pokenav_2B5719:: @ 82B5719
- .string "DAD: In RUSTBORO, there's a man\n"
- .string "that goes by the odd name of\l"
- .string "the CUTTER.\p"
- .string "If you're in the area, you should\n"
- .string "pay him a visit.$"
-
-gText_Norman_Pokenav_2B5795:: @ 82B5795
- .string "DAD: Hm… Little by little, but also\n"
- .string "very surely, you're getting\l"
- .string "tougher, {PLAYER}.\p"
- .string "The stronger you get, the farther\n"
- .string "and higher you soar from Mother\l"
- .string "and me…\p"
- .string "This feeling is hard to explain.$"
-
-gText_Norman_Pokenav_2B584D:: @ 82B584D
- .string "DAD: I see…\n"
- .string "You've collected four GYM BADGES…\p"
- .string "There's no avoiding it now.\n"
- .string "We will battle like I promised.\p"
- .string "Come anytime.\n"
- .string "We'll all be waiting for you!$"
-
-gText_Norman_Pokenav_2B58E3:: @ 82B58E3
- .string "DAD: {PLAYER}! You'd better go visit\n"
- .string "Mother every so often.\p"
- .string "I'm going to remain here and\n"
- .string "redouble my training.\p"
- .string "The way of battling is deep\n"
- .string "and unforgiving!$"
-
-gText_Norman_Pokenav_2B5979:: @ 82B5979
- .string "DAD: Oh, hi, {PLAYER}!\p"
- .string "What's that? MAGMA EMBLEM?\n"
- .string "I don't know what that's about.\p"
- .string "But with a name like that, it may\n"
- .string "be somehow linked to a volcano!$"
-
-gText_Norman_Pokenav_2B5A07:: @ 82B5A07
- .string "DAD: Hiyah! Haah! Dwah!\p"
- .string "…Oh? {PLAYER}!\p"
- .string "You caught me right in the middle\n"
- .string "of a POKéMON training session!$"
-
-gText_Norman_Pokenav_2B5A69:: @ 82B5A69
- .string "DAD: {PLAYER}!\p"
- .string "Who would've thought you'd become\n"
- .string "the POKéMON LEAGUE CHAMPION…\p"
- .string "Okay!\n"
- .string "I won't be left behind!$"
-
-gText_Norman_Pokenav_2B5ACF:: @ 82B5ACF
- .string "DAD: Hm? {PLAYER}?\n"
- .string "What good timing!\p"
- .string "This time, I'm going to challenge\n"
- .string "you to battle.\p"
- .string "I'm waiting in the PETALBURG GYM.\n"
- .string "Accept my challenge anytime!$"
-
-gText_Norman_Pokenav_2B5B5E:: @ 82B5B5E
- .string "DAD: …You amaze me, {PLAYER}.\n"
- .string "How much higher will you soar?$"
-
-gText_Steven_Pokenav_2B5B95:: @ 82B5B95
- .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
- .string "Have you been to MAUVILLE\n"
- .string "already?\p"
- .string "You should visit the BIKE SHOP\n"
- .string "and get a MACH BIKE.\p"
- .string "Then, try exploring the GRANITE\n"
- .string "CAVE thoroughly.\p"
- .string "You may make a new discovery\n"
- .string "there.$"
-
-gText_Steven_Pokenav_2B5C53:: @ 82B5C53
- .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
- .string "I've met a lot of different\n"
- .string "TRAINERS so far.\p"
- .string "But you're one of a kind.\n"
- .string "You're not like anyone else.$"
-
-gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9
- .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
- .string "When you're on an adventure with\n"
- .string "your POKéMON, what do you think?\p"
- .string "Do you consider them to be strong\n"
- .string "partners?\p"
- .string "Do you think of them as fun\n"
- .string "companions?\p"
- .string "Depending on how you think, your\n"
- .string "adventure's significance changes.$"
-
-gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4
- .string "STEVEN: Hello?\n"
- .string "{PLAYER}{STRING 5}?\p"
- .string "I'm involved in a spot of trouble\n"
- .string "at the SPACE CENTER.\p"
- .string "I'm sorry, but I can't talk now.\n"
- .string "Bye!$"
-
-gText_Steven_Pokenav_2B5E26:: @ 82B5E26
- .string "STEVEN: Oh!\n"
- .string "{PLAYER}{STRING 5}!\p"
- .string "There's no need to talk.\n"
- .string "It's past time for talking.\p"
- .string "You have to believe in yourself\n"
- .string "and do what's right.$"
-
-gText_Steven_Pokenav_2B5EA2:: @ 82B5EA2
- .string "… … … … … …\p"
- .string "STEVEN appears not to be getting\n"
- .string "the call…$"
-
-gText_Steven_Pokenav_2B5ED9:: @ 82B5ED9
- .string "STEVEN: {PLAYER}{STRING 5}… Congratulations\n"
- .string "for entering the HALL OF FAME.\p"
- .string "… … … … … …\n"
- .string "… … … … … …\p"
- .string "I hope we can meet again\n"
- .string "somewhere!$"
-
-Route101_Text_2B5F52: @ 82B5F52
- .string "PROF. BIRCH: Oh, {PLAYER}{KUN}!\n"
- .string "I've already heard about you!\p"
- .string "It seems your POKéNAV's been\n"
- .string "upgraded with MATCH CALL.\p"
- .string "Well, I should register, too!\p"
- .string "That way, I'd be able to examine\n"
- .string "your POKéDEX even while you're\l"
- .string "out in the field.\p"
- .string "… … … … … …$"
-
-Route101_Text_2B603A: @ 82B603A
- .string "Registered PROF. BIRCH\n"
- .string "in the POKéNAV.$"
-
- .string "PROF. BIRCH: When one has both\n"
- .string "the POKéDEX and POKéNAV, studying\l"
- .string "POKéMON becomes more fun, eh?$"
-
-gText_MrStone_Pokenav_2B60C0:: @ 82B60C0
- .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p"
- .string "Since you called me, the POKéNAV\n"
- .string "must be working properly!\p"
- .string "Other people will be registered,\n"
- .string "so try calling them up, too!\p"
- .string "Good! Good!\n"
- .string "You seem to be quite happy!\p"
- .string "Hm…\n"
- .string "How could I know that?\p"
- .string "It's because I'm looking down at\n"
- .string "you from my office window!\p"
- .string "Wahahaha!\n"
- .string "See you again!$"
-
-gText_MrStone_Pokenav_2B61E6:: @ 82B61E6
- .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p"
- .string "What's wrong? Have you forgotten\n"
- .string "about that little errand of mine?\p"
- .string "I need you to deliver my letter\n"
- .string "to STEVEN in DEWFORD.\p"
- .string "After that, deliver our parcel to\n"
- .string "CAPT. STERN in SLATEPORT.\p"
- .string "You remember, don't you?\p"
- .string "Now, since I am a busy PRESIDENT,\n"
- .string "I have to go! Bye-bye!$"
-
-gText_MrStone_Pokenav_2B6302:: @ 82B6302
- .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p"
- .string "Ah, so you've met STEVEN!\n"
- .string "I'd better reward you, then!\p"
- .string "When you visit RUSTBORO again,\n"
- .string "come see me at my office.\p"
- .string "I'll be waiting for you!$"
-
-gText_MrStone_Pokenav_2B63A0:: @ 82B63A0
- .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p"
- .string "Did you know that DEVON was\n"
- .string "digging the RUSTURF TUNNEL?\p"
- .string "But we shut down the operation to\n"
- .string "protect the POKéMON in the area.\p"
- .string "It's a no-brainer, really.\p"
- .string "It's more important to let POKéMON\n"
- .string "live in peace than worry about our\l"
- .string "own convenience.$"
-
-gText_MrStone_Pokenav_2B64A2:: @ 82B64A2
- .string "MR. STONE: Hello, hello, {PLAYER}{STRING 5}!\p"
- .string "I heard from someone in PETALBURG\n"
- .string "that you're NORMAN's child!\p"
- .string "No wonder you're such a capable\n"
- .string "being!$"
-
-gText_MrStone_Pokenav_2B6526:: @ 82B6526
- .string "MR. STONE: What's that?\p"
- .string "You battled your own father and\n"
- .string "defeated him?\p"
- .string "That's astounding!\p"
- .string "I had no idea that I befriended\n"
- .string "someone so special! Wahaha!$"
-
-gText_MrStone_Pokenav_2B65BB:: @ 82B65BB
- .string "Hello!\n"
- .string "This is DEVON CORPORATI…\l"
- .string "Oh, hello, {PLAYER}!\p"
- .string "Our PRESIDENT was here a little\n"
- .string "while ago, but he's gone out.\p"
- .string "Our PRESIDENT is busy, but you\n"
- .string "seem to be just as busy, {PLAYER}.$"
-
-gText_MrStone_Pokenav_2B6664:: @ 82B6664
- .string "…Huh? …What's that?\p"
- .string "GROU… Yes? …DON?\p"
- .string "You're breaking up…\n"
- .string "…can't hear…\p"
- .string "BZZZZ…$"
-
-gText_MrStone_Pokenav_2B66B1:: @ 82B66B1
- .string "…Huh? …What's that?\p"
- .string "Seaflo… Yes? …Caver…?\p"
- .string "You're breaking up…\n"
- .string "…can't hear…\p"
- .string "BZZZZ…$"
-
-gText_MrStone_Pokenav_2B6703:: @ 82B6703
- .string "MR. STONE: {PLAYER}{STRING 5}! It's me!\p"
- .string "You were apparently involved in all\n"
- .string "sorts of things, but I, being busy,\l"
- .string "haven't a clue exactly what!\p"
- .string "However, I urge you to take\n"
- .string "the road you believe in and walk it.\p"
- .string "I'll always be in your corner!\n"
- .string "Take care!$"
-
-gText_MrStone_Pokenav_2B67ED:: @ 82B67ED
- .string "MR. STONE: … … … … … …\n"
- .string "Is this maybe {PLAYER}{STRING 5}?\p"
- .string "Your voice is so full of confidence,\n"
- .string "I didn't recognize you right off!\p"
- .string "Hm! You must come visit us at DEVON\n"
- .string "sometime!$"
-
+ .include "data/text/match_call.inc"
.include "data/scripts/apprentice.inc"
gBattleDomeOpponentPotential1::
diff --git a/data/text/match_call.inc b/data/text/match_call.inc
new file mode 100755
index 000000000..bc962d2b2
--- /dev/null
+++ b/data/text/match_call.inc
@@ -0,0 +1,2953 @@
+BattleFrontier_PokeNav_2A971C:: @ 82A971C
+ .string "Hi! {PLAYER}{STRING 5}, hello!\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I saw this {STR_VAR_2} a while back\n"
+ .string "but I couldn't catch it.\p"
+ .string "It was so close, too!\n"
+ .string "Well, see you again!$"
+
+BattleFrontier_PokeNav_2A9798:: @ 82A9798
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "I tried to catch a nice {STR_VAR_2}\n"
+ .string "a little while ago.\p"
+ .string "But, it got away.\n"
+ .string "I was sure disappointed!\p"
+ .string "Okay, bye!$"
+
+BattleFrontier_PokeNav_2A9813:: @ 82A9813
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I just took a shot at catching\n"
+ .string "this {STR_VAR_2}, but it took off.\p"
+ .string "I came oh so close, too!\p"
+ .string "It spoiled my day…\n"
+ .string "All right, see you!$"
+
+BattleFrontier_PokeNav_2A98A8:: @ 82A98A8
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "You know the POKéMON {STR_VAR_2}?\n"
+ .string "I came close to getting one.\p"
+ .string "It was just a while back.\n"
+ .string "I thought I had it but it escaped.\p"
+ .string "If I see it again, I'll get it for\n"
+ .string "sure, though.\p"
+ .string "Okay, catch you later.$"
+
+BattleFrontier_PokeNav_2A9977:: @ 82A9977
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\l"
+ .string "Catching any POKéMON lately?\p"
+ .string "A little while ago I came close to\n"
+ .string "nabbing one, but it got loose.\p"
+ .string "Right, take care!$"
+
+BattleFrontier_PokeNav_2A99FD:: @ 82A99FD
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\l"
+ .string "Caught any POKéMON lately?\p"
+ .string "I nearly nabbed one the other day.\n"
+ .string "But it evaded me somehow.\p"
+ .string "You take care.$"
+
+BattleFrontier_PokeNav_2A9A78:: @ 82A9A78
+ .string "…Uh, {PLAYER}{STRING 5}?\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "Oh, wait! Wait!\n"
+ .string "I can catch this {STR_VAR_2}…\p"
+ .string "Aaarrrgh! It bolted loose!\n"
+ .string "That wasn't just close!$"
+
+BattleFrontier_PokeNav_2A9AE8:: @ 82A9AE8
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\p"
+ .string "Have you had success catching\n"
+ .string "POKéMON lately?\p"
+ .string "I came very close a little while\n"
+ .string "ago, but my target got free.\p"
+ .string "I need to try harder!\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2A9BA7:: @ 82A9BA7
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "So? Are you getting more POKéMON\n"
+ .string "together?\p"
+ .string "I'm having a rotten time of it!\n"
+ .string "They all get away from me!\p"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2A9C36:: @ 82A9C36
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Listen, I came within a whisker of\n"
+ .string "catching this {STR_VAR_2}…\p"
+ .string "But, it gave me the slip…\p"
+ .string "I need to try harder.\n"
+ .string "See you around.$"
+
+BattleFrontier_PokeNav_2A9CC8:: @ 82A9CC8
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "How are things with you?\p"
+ .string "I tried to catch a wild {STR_VAR_2}\n"
+ .string "earlier, but it managed to flee.\p"
+ .string "I feel defeated…$"
+
+BattleFrontier_PokeNav_2A9D44:: @ 82A9D44
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you still catching POKéMON?\p"
+ .string "I've been trying to catch them\n"
+ .string "myself, but it's not so easy.\p"
+ .string "The way of POKéMON is deep!$"
+
+BattleFrontier_PokeNav_2A9DD7:: @ 82A9DD7
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "Have you been catching POKéMON?\p"
+ .string "I've been trying to catch them\n"
+ .string "myself, but with little success.\p"
+ .string "The way of POKéMON is deep!$"
+
+BattleFrontier_PokeNav_2A9E70:: @ 82A9E70
+ .string "Oh, hi, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Just now, I tried to catch a cute\n"
+ .string "{STR_VAR_2}.\p"
+ .string "It got away, though!\n"
+ .string "Oh, you bet I was disappointed!\p"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2A9EFD:: @ 82A9EFD
+ .string "Hey, {PLAYER}!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I've been thinking about trying\n"
+ .string "to catch me some POKéMON.\p"
+ .string "But I can't seem to find any.\n"
+ .string "It's a real puzzler for me!\p"
+ .string "I'm at my wit's end!\n"
+ .string "See you around!$"
+
+BattleFrontier_PokeNav_2A9FAB:: @ 82A9FAB
+ .string "Hi! {PLAYER}{STRING 5}, hello!\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I tried battling another TRAINER,\n"
+ .string "but I lost.\p"
+ .string "It was really disappointing.\n"
+ .string "Well, see you again!$"
+
+BattleFrontier_PokeNav_2AA028:: @ 82AA028
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "I challenged someone else after\n"
+ .string "we battled.\p"
+ .string "I came close, but I ended up\n"
+ .string "losing. Oh, well!$"
+
+BattleFrontier_PokeNav_2AA099:: @ 82AA099
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I just got cleaned in a battle.\p"
+ .string "I guess I need to raise my team\n"
+ .string "some more!$"
+
+BattleFrontier_PokeNav_2AA100:: @ 82AA100
+ .string "Hey, {PLAYER}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "I tried another battle yesterday,\n"
+ .string "but I couldn't pull out the win.\p"
+ .string "My team needs more raising.\n"
+ .string "Okay, catch you later.$"
+
+BattleFrontier_PokeNav_2AA188:: @ 82AA188
+ .string "Hiya, {PLAYER}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "How are things with you?\p"
+ .string "I've been battling on,\n"
+ .string "but I haven't won very often.\p"
+ .string "I can't get it together.\n"
+ .string "Right, take care!$"
+
+BattleFrontier_PokeNav_2AA214:: @ 82AA214
+ .string "Hey, {PLAYER}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "How's it going for you?\p"
+ .string "I've been battling hard lately,\n"
+ .string "but to little success.\p"
+ .string "I can't get into the groove.\n"
+ .string "You take care.$"
+
+BattleFrontier_PokeNav_2AA2A1:: @ 82AA2A1
+ .string "{STR_VAR_1} here.\n"
+ .string "How's it going lately?\p"
+ .string "I lost a battle yesterday,\n"
+ .string "and it's filled my thoughts.\p"
+ .string "I have to devise a plan…\n"
+ .string "See you.$"
+
+BattleFrontier_PokeNav_2AA31B:: @ 82AA31B
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\p"
+ .string "How are your POKéMON doing?\n"
+ .string "I lost a match the other day.\p"
+ .string "I need to try harder!\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2AA3A8:: @ 82AA3A8
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "Listen, listen, you have to hear\n"
+ .string "this!\p"
+ .string "I had a POKéMON battle earlier,\n"
+ .string "but I lost at the last second.\p"
+ .string "Oh, it burns me up!$"
+
+BattleFrontier_PokeNav_2AA442:: @ 82AA442
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "A little earlier, I was in a battle.\n"
+ .string "I lost, though.\p"
+ .string "I need to raise my POKéMON more.\n"
+ .string "See you around.$"
+
+BattleFrontier_PokeNav_2AA4C5:: @ 82AA4C5
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "How are your POKéMON?\p"
+ .string "I just lost yet another battle.\p"
+ .string "Well, see you!$"
+
+BattleFrontier_PokeNav_2AA520:: @ 82AA520
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you still battling hard?\p"
+ .string "As for me, I lost recently, so I've\n"
+ .string "been training my team all over.\p"
+ .string "Let's meet again.$"
+
+BattleFrontier_PokeNav_2AA5AD:: @ 82AA5AD
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I hope you've been keeping well.\p"
+ .string "I was in a battle just a little\n"
+ .string "while before this.\p"
+ .string "{PLAYER}{STRING 5}, try to be active like me.\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2AA64D:: @ 82AA64D
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Are you doing good?\p"
+ .string "You should go home every so often,\n"
+ .string "though.\p"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2AA6AF:: @ 82AA6AF
+ .string "Hi! {PLAYER}{STRING 5}, hello!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I battled another TRAINER earlier.\n"
+ .string "I won! I won!\p"
+ .string "My {STR_VAR_2} really worked hard\n"
+ .string "for me. This is so great!$"
+
+BattleFrontier_PokeNav_2AA730:: @ 82AA730
+ .string "Hello, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}!\p"
+ .string "I had a battle yesterday and\n"
+ .string "I won! It's fantastic!$"
+
+BattleFrontier_PokeNav_2AA77A:: @ 82AA77A
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}!\l"
+ .string "How's your battling?\p"
+ .string "Me, I had a battle the other day,\n"
+ .string "and my {STR_VAR_2} came up huge!\p"
+ .string "The next time I battle you,\n"
+ .string "{PLAYER}, it won't be me losing!$"
+
+BattleFrontier_PokeNav_2AA81C:: @ 82AA81C
+ .string "Hey, {PLAYER}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "I had a match earlier.\n"
+ .string "I managed to win, but it was close.\p"
+ .string "My {STR_VAR_2} put on one\n"
+ .string "inspired showing.$"
+
+BattleFrontier_PokeNav_2AA88C:: @ 82AA88C
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "How are things with you?\n"
+ .string "Battling much?\p"
+ .string "I just won a while back!\n"
+ .string "My {STR_VAR_2} was brilliant!\p"
+ .string "You wait. I'm going to beat you\n"
+ .string "next time! Right, take care!$"
+
+BattleFrontier_PokeNav_2AA934:: @ 82AA934
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "How's it going for you?\p"
+ .string "I've been riding a hot streak.\n"
+ .string "Why, I just won a battle.\p"
+ .string "When we have our next battle,\n"
+ .string "I'm sure not going to lose!$"
+
+BattleFrontier_PokeNav_2AA9D3:: @ 82AA9D3
+ .string "{PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "My {STR_VAR_2} is a force!\n"
+ .string "It won me another battle just now!\p"
+ .string "I can't wait to have a rematch\n"
+ .string "with you.$"
+
+BattleFrontier_PokeNav_2AAA40:: @ 82AAA40
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\p"
+ .string "I hope you've been well.\n"
+ .string "I wanted to tell you I just won.\p"
+ .string "My {STR_VAR_2} worked especially\n"
+ .string "hard to get the win.\p"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2AAAE4:: @ 82AAAE4
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "How are your POKéMON holding up?\n"
+ .string "Mine just won a battle!\p"
+ .string "My {STR_VAR_2} was spectacular,\n"
+ .string "I must say!\p"
+ .string "I wish I could've shown you!\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2AAB8C:: @ 82AAB8C
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "How has life been treating you?\p"
+ .string "My POKéMON appear to be charged\n"
+ .string "with energy.\p"
+ .string "I just won a battle with them.\n"
+ .string "See you around.$"
+
+BattleFrontier_PokeNav_2AAC25:: @ 82AAC25
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Been in any battles lately?\n"
+ .string "I just won another one today!\p"
+ .string "I'm on a roll! Gahahaha!\n"
+ .string "Well, see you!$"
+
+BattleFrontier_PokeNav_2AAC9D:: @ 82AAC9D
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I trust you've been well?\n"
+ .string "I'm still bursting with life!\p"
+ .string "Why, just now, I won another match.\n"
+ .string "I'm not stepping aside to you\l"
+ .string "youngsters yet!$"
+
+BattleFrontier_PokeNav_2AAD41:: @ 82AAD41
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I hope you've been keeping well.\n"
+ .string "I still have a bounce in my step!\p"
+ .string "Why, I just won a battle yet again.\n"
+ .string "Oh, I won't lose to young people\l"
+ .string "quite yet!\p"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2AAE00:: @ 82AAE00
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I was in a battle recently, and my\n"
+ .string "{STR_VAR_2} was exceptional!\p"
+ .string "I wish you could have seen it,\n"
+ .string "{PLAYER}{STRING 5}. Bye-bye!$"
+
+BattleFrontier_PokeNav_2AAE7F:: @ 82AAE7F
+ .string "Hi! {PLAYER}, hello!\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Huh? Wait, you're near\n"
+ .string "{STR_VAR_2}?\p"
+ .string "Oh, wow, we have to battle, then!\n"
+ .string "I'll be waiting! See you!$"
+
+BattleFrontier_PokeNav_2AAEF1:: @ 82AAEF1
+ .string "Hello, {PLAYER}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "Oh? You happen to be around\n"
+ .string "{STR_VAR_2} right now?\p"
+ .string "Would you like to battle now?\n"
+ .string "I'll wait for you! See you!$"
+
+BattleFrontier_PokeNav_2AAF69:: @ 82AAF69
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "Oh, hey, are you near\n"
+ .string "{STR_VAR_2} right now?\p"
+ .string "How would you like to battle with\n"
+ .string "me right now?\p"
+ .string "I'm not losing again!\n"
+ .string "I'll be waiting! Catch you soon!$"
+
+BattleFrontier_PokeNav_2AB010:: @ 82AB010
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "Whereabouts are you now?\n"
+ .string "Huh? {STR_VAR_2}?\p"
+ .string "Want to battle now?\n"
+ .string "I'll wait for you. See you!$"
+
+BattleFrontier_PokeNav_2AB076:: @ 82AB076
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\l"
+ .string "How are things with you?\p"
+ .string "You're where now?\n"
+ .string "{STR_VAR_2}?\p"
+ .string "Well, how about we have a quick\n"
+ .string "rematch right away?\p"
+ .string "I'll keep an eye out for you.\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2AB11A:: @ 82AB11A
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\l"
+ .string "How are your POKéMON keeping?\p"
+ .string "Oh, is that right? You're around\n"
+ .string "{STR_VAR_2}?\p"
+ .string "Well, then, we'd better have\n"
+ .string "a rematch.\p"
+ .string "I can wait, sure.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AB1B4:: @ 82AB1B4
+ .string "…Er, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here…\p"
+ .string "Oh, you happen to be around\n"
+ .string "{STR_VAR_2}?\p"
+ .string "Then, let's battle.\n"
+ .string "Right away, I mean.\p"
+ .string "I'll show you my POKéMON.\n"
+ .string "I'll wait for you.$"
+
+BattleFrontier_PokeNav_2AB23D:: @ 82AB23D
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\p"
+ .string "I hope you're doing well.\n"
+ .string "Oh, you're near {STR_VAR_2}.\p"
+ .string "Would you like to have a battle\n"
+ .string "with me, then?\p"
+ .string "I'll wait for you.\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2AB2E9:: @ 82AB2E9
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "Are you keeping up?\n"
+ .string "Oh, you're near {STR_VAR_2}?\p"
+ .string "Oh, well, then don't you think we\n"
+ .string "should battle?\p"
+ .string "Don't keep me waiting too long!$"
+
+BattleFrontier_PokeNav_2AB382:: @ 82AB382
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "How are things with you?\n"
+ .string "Oh, you're near {STR_VAR_2}.\p"
+ .string "We should have a battle now, then.\p"
+ .string "I'm ready and waiting.\n"
+ .string "Be quick!$"
+
+BattleFrontier_PokeNav_2AB410:: @ 82AB410
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Ah, so where you are now is\n"
+ .string "{STR_VAR_2}?\p"
+ .string "Well, then, we just have to have\n"
+ .string "a battle, don't you think?\p"
+ .string "I'll wait around for you!\n"
+ .string "See you real quick!$"
+
+BattleFrontier_PokeNav_2AB4B0:: @ 82AB4B0
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Where might you be now?\p"
+ .string "{STR_VAR_2}?\n"
+ .string "That's quite close by!\p"
+ .string "What do you say we have a battle\n"
+ .string "now?\p"
+ .string "I can wait.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AB538:: @ 82AB538
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I hope you've been keeping well.\n"
+ .string "Oh, you're near {STR_VAR_2}?\p"
+ .string "Since that's not very far away,\n"
+ .string "come see me for a battle.\p"
+ .string "I'll wait for you.\n"
+ .string "Bye for now.$"
+
+BattleFrontier_PokeNav_2AB5E4:: @ 82AB5E4
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You're what? …{STR_VAR_2}?\n"
+ .string "That's very close.\p"
+ .string "Don't you think we ought to have\n"
+ .string "a battle?\p"
+ .string "I'll be looking for you!\n"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2AB670:: @ 82AB670
+ .string "Hi! {PLAYER}, hello!\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "Want to have a battle with me?\p"
+ .string "I'll be waiting for you around\n"
+ .string "{STR_VAR_2}!$"
+
+BattleFrontier_PokeNav_2AB6CD:: @ 82AB6CD
+ .string "Hello, {PLAYER}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "Would you like to have a battle\n"
+ .string "with me again?\p"
+ .string "You can find me around\n"
+ .string "{STR_VAR_2}. I'll be waiting!$"
+
+BattleFrontier_PokeNav_2AB73C:: @ 82AB73C
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "My POKéMON have grown a lot\n"
+ .string "tougher since last time.\p"
+ .string "I want to see how strong they've\n"
+ .string "become with your POKéMON, {PLAYER}.\p"
+ .string "So, let's have a battle!\p"
+ .string "I'll be waiting for you around\n"
+ .string "{STR_VAR_2}.$"
+
+BattleFrontier_PokeNav_2AB808:: @ 82AB808
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\l"
+ .string "How are things with you?\p"
+ .string "My POKéMON have grown pretty\n"
+ .string "tough lately.\p"
+ .string "Hey, how would you like to have\n"
+ .string "another battle with me?\p"
+ .string "Let's meet up around\n"
+ .string "{STR_VAR_2}, okay?$"
+
+BattleFrontier_PokeNav_2AB8B7:: @ 82AB8B7
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "My POKéMON are growing up in\n"
+ .string "decent ways.\p"
+ .string "I'd really like to have another\n"
+ .string "battle with you.\p"
+ .string "I'll keep an eye out for you around\n"
+ .string "{STR_VAR_2}. See you soon!$"
+
+BattleFrontier_PokeNav_2AB95D:: @ 82AB95D
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\l"
+ .string "I hope you're on top of things.\p"
+ .string "I was thinking I'd like another\n"
+ .string "battle with you. What do you say?\p"
+ .string "If you feel like a battle,\n"
+ .string "come to {STR_VAR_2}.\p"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2ABA03:: @ 82ABA03
+ .string "…Er, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here…\l"
+ .string "So? Are your POKéMON growing?\p"
+ .string "Mine sure got stronger.\n"
+ .string "I'd like to show you.\p"
+ .string "I'll be around {STR_VAR_2}.\n"
+ .string "Come see me for a match.\p"
+ .string "See you around.$"
+
+BattleFrontier_PokeNav_2ABA9F:: @ 82ABA9F
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\p"
+ .string "I hope you're doing well.\n"
+ .string "My POKéMON are very frisky.\p"
+ .string "If you're ever in the area, please\n"
+ .string "give me a rematch.\p"
+ .string "I'll be around {STR_VAR_2}.\n"
+ .string "Until then, good-bye!$"
+
+BattleFrontier_PokeNav_2ABB62:: @ 82ABB62
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "How are your POKéMON doing?\p"
+ .string "My POKéMON keep getting better.\n"
+ .string "I'd like to show you, {PLAYER}{STRING 5}.\p"
+ .string "I'm around {STR_VAR_2} now,\n"
+ .string "so let's battle if you're close by.\p"
+ .string "Hope I see you soon!$"
+
+BattleFrontier_PokeNav_2ABC26:: @ 82ABC26
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "So, how are things with you?\p"
+ .string "My POKéMON have grown much\n"
+ .string "stronger than before.\p"
+ .string "I'd love another battle with you,\n"
+ .string "{PLAYER}{STRING 5}.\p"
+ .string "I'll be around {STR_VAR_2}.\n"
+ .string "Come see me if you're close.$"
+
+BattleFrontier_PokeNav_2ABCE9:: @ 82ABCE9
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "Where might you be now?\p"
+ .string "My POKéMON are full of life.\n"
+ .string "They appear to be looking forward\l"
+ .string "to seeing your POKéMON, {PLAYER}{STRING 5}.\p"
+ .string "I'm around {STR_VAR_2} now.\n"
+ .string "I hope you'll seek us out.$"
+
+BattleFrontier_PokeNav_2ABDA2:: @ 82ABDA2
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I should tell you, my POKéMON have\n"
+ .string "grown to be quite robust lately.\p"
+ .string "I would like to see them in a battle\n"
+ .string "with you, {PLAYER}{STRING 5}.\p"
+ .string "We'll be around {STR_VAR_2}.\n"
+ .string "Come see us anytime!$"
+
+BattleFrontier_PokeNav_2ABE5E:: @ 82ABE5E
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "Are your POKéMON keeping well?\p"
+ .string "My POKéMON have been so healthy,\n"
+ .string "they don't look capable of losing!\p"
+ .string "I would surely love to have another\n"
+ .string "battle with you.\p"
+ .string "If you're near {STR_VAR_2},\n"
+ .string "do come see us.$"
+
+BattleFrontier_PokeNav_2ABF36:: @ 82ABF36
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "Keeping well, I hope.\p"
+ .string "Oh, yes! My POKéMON are\n"
+ .string "much stronger than before.\p"
+ .string "Don't you think we ought to have\n"
+ .string "a battle, {PLAYER}{STRING 5}?\p"
+ .string "We'll be waiting for you around\n"
+ .string "{STR_VAR_2}.\p"
+ .string "Come see us anytime, okay?$"
+
+BattleFrontier_PokeNav_2AC009:: @ 82AC009
+ .string "It's me, the mountain-loving\n"
+ .string "{STR_VAR_1}!\p"
+ .string "Well, since we met, have you grown\n"
+ .string "to appreciate the mountains more?\p"
+ .string "I rarely see you in the mountains…\p"
+ .string "Next time, we'll meet somewhere\n"
+ .string "around {STR_VAR_2}.$"
+
+BattleFrontier_PokeNav_2AC0BD:: @ 82AC0BD
+ .string "This is {STR_VAR_1}.\n"
+ .string "Hello.\p"
+ .string "I was just telling a new TRAINER\n"
+ .string "about you.\p"
+ .string "I told her about a strong TRAINER\n"
+ .string "who raises POKéMON with care.\p"
+ .string "I hope you'll become a TRAINER\n"
+ .string "that everyone will admire.\p"
+ .string "I hope we meet again!$"
+
+BattleFrontier_PokeNav_2AC18C:: @ 82AC18C
+ .string "Hello! It's {STR_VAR_1}.\p"
+ .string "I love where I am now.\n"
+ .string "It's pleasant with sweet aromas!\p"
+ .string "I think someone planted BERRIES,\n"
+ .string "and they burst into bloom.\p"
+ .string "See you again sometime!$"
+
+BattleFrontier_PokeNav_2AC228:: @ 82AC228
+ .string "Hello! Thirty years of exploration,\n"
+ .string "{STR_VAR_1} at your service!\p"
+ .string "It seems that you're energetically\n"
+ .string "traveling here and there.\p"
+ .string "Have you discovered any new ruins?\n"
+ .string "Please tell if you have!\p"
+ .string "Now, if you'll excuse me,\n"
+ .string "I have ruins to explore.$"
+
+BattleFrontier_PokeNav_2AC30C:: @ 82AC30C
+ .string "It's {STR_VAR_1}!\p"
+ .string "Know what I'm doing today?\n"
+ .string "Looking at waves from the beach!\p"
+ .string "Sigh… The waves are all sparkly.\n"
+ .string "The sea is the prettiest from here.\l"
+ .string "I'm getting hungry, so bye-bye!$"
+
+BattleFrontier_PokeNav_2AC3B6:: @ 82AC3B6
+ .string "Munch-chew…\n"
+ .string "Oh, hi, it's {STR_VAR_1}.\l"
+ .string "I love eating on the beach.\p"
+ .string "My POKéMON and I have been doing\n"
+ .string "great. We're fully fueled!\l"
+ .string "I'm going for a swim. Bye!$"
+
+BattleFrontier_PokeNav_2AC446:: @ 82AC446
+ .string "Hello, this is {STR_VAR_1}…\p"
+ .string "I've grown a little jaded with this\n"
+ .string "whole COOLTRAINER thing…\p"
+ .string "Everyone thinks I'm a perfect\n"
+ .string "TRAINER, and that makes me try to\l"
+ .string "live up to that expectation.\p"
+ .string "But I guess that goes with being\n"
+ .string "a COOLTRAINER.\p"
+ .string "I'll just have to buckle down…\n"
+ .string "and grin and bear it.\p"
+ .string "You're the only person that I could\n"
+ .string "confide in like this.\p"
+ .string "But when I see you next,\n"
+ .string "don't worry, I won't whine!$"
+
+BattleFrontier_PokeNav_2AC5C7:: @ 82AC5C7
+ .string "Yahoo, it's {STR_VAR_1}!\n"
+ .string "How do you do?\p"
+ .string "I've been raising my POKéMON with\n"
+ .string "you as the target.\p"
+ .string "I don't intend to lose when we\n"
+ .string "battle again.\p"
+ .string "Isn't it great to have TRAINER\n"
+ .string "friends? Let's meet again!$"
+
+BattleFrontier_PokeNav_2AC682:: @ 82AC682
+ .string "It's {STR_VAR_1}…\n"
+ .string "Right now, behind you…\l"
+ .string "Wasn't there something…?\p"
+ .string "The power of the POKéMON that\n"
+ .string "sleep here at MT. PYRE…\p"
+ .string "It's telling me about you…\p"
+ .string "You should walk away quickly and\n"
+ .string "never once look back…\p"
+ .string "Giggle…\n"
+ .string "Farewell…$"
+
+BattleFrontier_PokeNav_2AC755:: @ 82AC755
+ .string "This is {STR_VAR_1}.\n"
+ .string "How do you do?\p"
+ .string "Isn't it convenient that we can\n"
+ .string "chat like this at a distance?\p"
+ .string "Before, if I wanted to speak with\n"
+ .string "anyone, I had to have my father\l"
+ .string "drive me…\p"
+ .string "I should be going now.\n"
+ .string "I'm glad we had this chat.$"
+
+BattleFrontier_PokeNav_2AC82C:: @ 82AC82C
+ .string "It's {STR_VAR_1}!\n"
+ .string "Will you listen to this?\p"
+ .string "I like the SAFARI ZONE a lot,\n"
+ .string "but whenever I go, I get lost!\p"
+ .string "All that tall grass!\n"
+ .string "And it's much too spread out!\p"
+ .string "I feel better getting that off\n"
+ .string "my chest!\p"
+ .string "I'm off to the SAFARI ZONE again!\n"
+ .string "Catch you!$"
+
+BattleFrontier_PokeNav_2AC914:: @ 82AC914
+ .string "Hello, {STR_VAR_1} here.\n"
+ .string "Yes, correct, I am rich, yes.\p"
+ .string "I should tell you, my wealth has\n"
+ .string "grown since we last met.\p"
+ .string "What's more, my POKéMON have also\n"
+ .string "grown stronger.\p"
+ .string "I can't shake the feeling that\n"
+ .string "this world exists for me!\p"
+ .string "Oh, no need to say a word!\n"
+ .string "Everyone knows it's true!\p"
+ .string "Oh, you must excuse me, I have this\n"
+ .string "formal dinner to attend.$"
+
+BattleFrontier_PokeNav_2ACA59:: @ 82ACA59
+ .string "Ufufufufu…\n"
+ .string "It's me, {STR_VAR_1}…\p"
+ .string "Can you guess what I'm seeing?\n"
+ .string "A pair of {STR_VAR_2} in a battle.\p"
+ .string "Maybe I'll try catching the winner…\n"
+ .string "Ufufufufufu…\p"
+ .string "I… I'm kind of busy now.\n"
+ .string "I have to go.$"
+
+BattleFrontier_PokeNav_2ACB02:: @ 82ACB02
+ .string "Oh, it's {STR_VAR_1}!\p"
+ .string "I was just thinking I'm getting\n"
+ .string "bored of the ABANDONED SHIP.\p"
+ .string "But since I'm already here,\n"
+ .string "and I want to beat you once,\l"
+ .string "I'll be sticking around a bit more.\p"
+ .string "If you feel compelled, why don't\n"
+ .string "you come see me?\p"
+ .string "I think today will be the day that\n"
+ .string "I finally challenge the man next\l"
+ .string "door to a match.\p"
+ .string "Be seeing you!$"
+
+BattleFrontier_PokeNav_2ACC3F:: @ 82ACC3F
+ .string "I'm {STR_VAR_1}!\n"
+ .string "The man of the sea!\p"
+ .string "You know what I think?\p"
+ .string "The TRAINERS out at sea are\n"
+ .string "the toughest of the tough!\p"
+ .string "You should learn from me and train\n"
+ .string "in the sea…\p"
+ .string "Whoops, giant surf rising!\p"
+ .string "It's a great training opportunity!\n"
+ .string "Sorry, but I have to go!$"
+
+BattleFrontier_PokeNav_2ACD2F:: @ 82ACD2F
+ .string "It's {STR_VAR_1}! Listen, I've been\n"
+ .string "teaching karate to my POKéMON.\p"
+ .string "But now they're better than me!\n"
+ .string "I've done nothing but lose to them!\p"
+ .string "But even though I may lose to\n"
+ .string "POKéMON, I won't lose to another\l"
+ .string "TRAINER, no sir!\p"
+ .string "We have to battle again!\n"
+ .string "Ugwaah!$"
+
+BattleFrontier_PokeNav_2ACE1E:: @ 82ACE1E
+ .string "It's me, {STR_VAR_1}.\n"
+ .string "How're your travels unwinding?\p"
+ .string "…Whoa, is that right?\n"
+ .string "Sounds awfully stimulating!\p"
+ .string "I think I could write a song about\n"
+ .string "one of your episodes.\p"
+ .string "…Oh, hey, I'm feeling it.\n"
+ .string "I hear the riffs in my head.\p"
+ .string "I'd better get this tune properly\n"
+ .string "written, so I've got to fly! Later!$"
+
+BattleFrontier_PokeNav_2ACF32:: @ 82ACF32
+ .string "This is {STR_VAR_1}…\n"
+ .string "Hear my new song.\p"
+ .string "Lalala, {STR_VAR_2}, {STR_VAR_2}!\n"
+ .string "Why are you that {STR_VAR_2}?\l"
+ .string "Why can't I be you, {STR_VAR_2}?\l"
+ .string "Lala, {STR_VAR_2} and {STR_VAR_1},\l"
+ .string "{STR_VAR_1} and {STR_VAR_2}…\p"
+ .string "Repeat chorus, fade…$"
+
+BattleFrontier_PokeNav_2ACFBE:: @ 82ACFBE
+ .string "I'm {STR_VAR_1}, you know,\n"
+ .string "the camping expert!\p"
+ .string "When we battled, I couldn't help\n"
+ .string "but lose to you.\p"
+ .string "After all, my expertise is in\n"
+ .string "camping.\p"
+ .string "But win or lose, I like to battle\n"
+ .string "when I'm camping.\p"
+ .string "Battle with us again, okay?\n"
+ .string "Oh, and let's go camping, too!$"
+
+BattleFrontier_PokeNav_2AD0AC:: @ 82AD0AC
+ .string "It's me, me, {STR_VAR_1}!\p"
+ .string "I'd like to climb other mountains\n"
+ .string "than this one, to be honest.\p"
+ .string "But I'm not sure if there'd be any\n"
+ .string "ladies like on MT. CHIMNEY.\p"
+ .string "If you know any other mountain\n"
+ .string "with ladies around, let me know!\p"
+ .string "Ehehehe, see you around!$"
+
+BattleFrontier_PokeNav_2AD194:: @ 82AD194
+ .string "… … … … … …\n"
+ .string "… … … … … …\l"
+ .string "It's {STR_VAR_1}…\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\l"
+ .string "That's all today…$"
+
+BattleFrontier_PokeNav_2AD1DF:: @ 82AD1DF
+ .string "This is {STR_VAR_1}. Today, I had\n"
+ .string "this feeling I would chat with you.\p"
+ .string "My desire to defeat you builds\n"
+ .string "by day and by night.\p"
+ .string "You have a rival like that, yes?\n"
+ .string "I wish it were me…\p"
+ .string "I'm glad you heard me out.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AD2A8:: @ 82AD2A8
+ .string "It's {STR_VAR_1}.\p"
+ .string "When there's a strong TRAINER\n"
+ .string "nearby, I can sometimes sense that\l"
+ .string "somehow.\p"
+ .string "Did you pass close by, {PLAYER}{STRING 5}?\n"
+ .string "Maybe it was you.\p"
+ .string "I'll be waiting for your visit.\n"
+ .string "Bye!$"
+
+BattleFrontier_PokeNav_2AD34F:: @ 82AD34F
+ .string "Hello, this is {STR_VAR_1}.\n"
+ .string "You sound well, {PLAYER}{STRING 5}.\p"
+ .string "I've traveled around the world,\n"
+ .string "but I must say I've taken a great\l"
+ .string "shine to this region.\p"
+ .string "I plan to stay here a while.\n"
+ .string "Perhaps we can meet again?\p"
+ .string "I've not forgotten your dazzling\n"
+ .string "techniques.\p"
+ .string "I do hope for a rematch.$"
+
+BattleFrontier_PokeNav_2AD44E:: @ 82AD44E
+ .string "Snivel… It's… {STR_VAR_1}…\n"
+ .string "…Sob…\p"
+ .string "ROXANNE chewed me out in class\n"
+ .string "today.\p"
+ .string "But I don't dislike her or anything.\p"
+ .string "ROXANNE tells me exactly what\n"
+ .string "I did wrong so I can learn from it.\p"
+ .string "You bet I'll be going to\n"
+ .string "the TRAINER'S SCHOOL tomorrow!\p"
+ .string "See you later!$"
+
+BattleFrontier_PokeNav_2AD53A:: @ 82AD53A
+ .string "It's {STR_VAR_1}!\p"
+ .string "ROXANNE let me battle with her\n"
+ .string "yesterday.\p"
+ .string "The results…\n"
+ .string "Terrible, like you needed to ask.\p"
+ .string "But I was delighted that ROXANNE\n"
+ .string "would even let me challenge her!\p"
+ .string "You wouldn't believe how much\n"
+ .string "more I admire her!\p"
+ .string "I'm going to really focus and work!\n"
+ .string "I'd better go!$"
+
+BattleFrontier_PokeNav_2AD642:: @ 82AD642
+ .string "Hi, it's ANNA! I'm with my junior\n"
+ .string "partner MEG again today.\p"
+ .string "I really love caring for MEG and\n"
+ .string "POKéMON. They're so cute!\p"
+ .string "I wish I could look after them\n"
+ .string "as if they were my siblings!\p"
+ .string "Oh, hi, MEG!\n"
+ .string "Did you get the buns?\p"
+ .string "Huh? No, no, I'm not treating you\n"
+ .string "like my personal slave!\p"
+ .string "You lost the match, so you have\n"
+ .string "to go buy the bread as punishment!\p"
+ .string "I wouldn't treat you like a slave,\n"
+ .string "MEG! You're too special to me!\p"
+ .string "I have to go now.\n"
+ .string "It's time for our snack!$"
+
+BattleFrontier_PokeNav_2AD801:: @ 82AD801
+ .string "I love POKéMON!\n"
+ .string "It's {STR_VAR_1} from the FAN CLUB!\p"
+ .string "You have to hear this!\n"
+ .string "My sweet POKéMON…\p"
+ .string "Snort! Wahaha!\n"
+ .string "I can't say any more! It's a secret!\l"
+ .string "It's just too cute for words!\p"
+ .string "Oh, my sweet {STR_VAR_2} is begging\n"
+ .string "for a {POKEBLOCK}!\p"
+ .string "It's the picture of cuteness!\p"
+ .string "Sorry, but I can't talk now!\n"
+ .string "You'll have to hear this next time!$"
+
+BattleFrontier_PokeNav_2AD92E:: @ 82AD92E
+ .string "Ohoho!\p"
+ .string "This is {STR_VAR_1}! I can't wait to\n"
+ .string "tell you about my darling POKéMON!\p"
+ .string "Please, you must listen to this.\n"
+ .string "It's about my darling {STR_VAR_2}.\p"
+ .string "Whenever anyone picks it up,\n"
+ .string "it leaps straight into my arms!\p"
+ .string "Oh… Oh… Could there be anything\n"
+ .string "more blissful?\p"
+ .string "Oh, it feels so heavenly!\p"
+ .string "I'm so glad I could share some of\n"
+ .string "my happiness with you.\p"
+ .string "Well, I must be going.\n"
+ .string "Bye, now!$"
+
+BattleFrontier_PokeNav_2ADA8F:: @ 82ADA8F
+ .string "I am… {STR_VAR_1}.\n"
+ .string "People call me an EXPERT.\p"
+ .string "But there is one thing I know.\n"
+ .string "I could not be an EXPERT on my own\l"
+ .string "power.\p"
+ .string "Only with the help of POKéMON can\n"
+ .string "a TRAINER become an EXPERT.\p"
+ .string "Humph! I believe I may have said\n"
+ .string "something deep and profound!\p"
+ .string "I shall leave you in good spirits!$"
+
+BattleFrontier_PokeNav_2ADB9B:: @ 82ADB9B
+ .string "It's {STR_VAR_1}.\n"
+ .string "I'm glad to chat with you!\p"
+ .string "I am feeling alive and refreshed\n"
+ .string "soaking in this hot-spring tub.\p"
+ .string "I've been battling young TRAINERS\n"
+ .string "since we met, but you're still\l"
+ .string "the best of the lot.\p"
+ .string "I imagine you'll become an EXPERT\n"
+ .string "in your old age! Ohohoho…$"
+
+BattleFrontier_PokeNav_2ADC92:: @ 82ADC92
+ .string "Yay! This is {STR_VAR_1}!\n"
+ .string "What's up?\p"
+ .string "I might be imagining this, but when\n"
+ .string "I win battles, my shorts seem to\l"
+ .string "feel, like, better. Materially.\p"
+ .string "What do I mean by that?\n"
+ .string "It's kind of hard to explain, but…\l"
+ .string "How would I say this now…\l"
+ .string "My shorts feel silkier!\p"
+ .string "And when I battled you, {PLAYER}{STRING 5},\n"
+ .string "my shorts felt icky and coarse.\p"
+ .string "… … … … … …\n"
+ .string "You didn't really believe that?\l"
+ .string "Ehehehe, that's all! Bye now!$"
+
+BattleFrontier_PokeNav_2ADE08:: @ 82ADE08
+ .string "Ahoy!\n"
+ .string "{STR_VAR_1} here!\p"
+ .string "As always, I'm fishing with wild\n"
+ .string "abandon!\p"
+ .string "Are there other places I can fish\n"
+ .string "than the sea and rivers?\p"
+ .string "I get these powerful urges to\n"
+ .string "fish just about anywhere!\p"
+ .string "Oh, gosh, darn it!\n"
+ .string "My line's tangled up!\p"
+ .string "Gotta go!\n"
+ .string "Find me some new fishing spots!$"
+
+BattleFrontier_PokeNav_2ADF07:: @ 82ADF07
+ .string "Hey, there! It's {STR_VAR_1}.\n"
+ .string "Are you taking it casually?\p"
+ .string "Ever since I was a kid, you know,\n"
+ .string "I've always been placid, huh?\p"
+ .string "I never was much for getting all\n"
+ .string "stressed or rushing things.\p"
+ .string "But wouldn't you know it,\n"
+ .string "I'm now a TRIATHLETE.\p"
+ .string "You just can't tell where life will\n"
+ .string "take you, if you get my drift.\p"
+ .string "You're a TRAINER now, but who\n"
+ .string "knows what the future holds, huh?\p"
+ .string "Imagine yourself as a teacher,\n"
+ .string "or maybe an artist. Cool, huh?\p"
+ .string "But, hey, be cool. Take it casual.\n"
+ .string "See you around.$"
+
+BattleFrontier_PokeNav_2AE0D9:: @ 82AE0D9
+ .string "This is {STR_VAR_1}!\n"
+ .string "I'm cycling right now.\p"
+ .string "I love swimming and running,\n"
+ .string "but cycling is my first love!\p"
+ .string "It makes my whole body feel as if\n"
+ .string "I'm one with the wind.\p"
+ .string "It exhilarates me as if I were\n"
+ .string "flying!\p"
+ .string "Okay! Today, I'm going to set a new\n"
+ .string "CYCLING ROAD record!\p"
+ .string "You should make the challenge, too!\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AE1FD:: @ 82AE1FD
+ .string "Yo, this is {STR_VAR_1}! I'm smack\n"
+ .string "in the middle of a triathlon!\p"
+ .string "But, hey, I've always got time to\n"
+ .string "shoot the breeze!\p"
+ .string "Working out with POKéMON feels\n"
+ .string "mighty good!\p"
+ .string "Without exchanging words, we synch\n"
+ .string "as if we shared a heart.\p"
+ .string "It's inspiring!\p"
+ .string "Gasp… Chatting while running…\n"
+ .string "I'm getting run down…\l"
+ .string "Gasp… Have…to…go…$"
+
+BattleFrontier_PokeNav_2AE327:: @ 82AE327
+ .string "Hi, it's {STR_VAR_1}.\n"
+ .string "If you want to improve endurance,\l"
+ .string "high-altitude training is it!\p"
+ .string "Try running on a mountaintop.\n"
+ .string "You'll be gasping in no time!\p"
+ .string "I'm getting oxygen starved, too!\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AE3DA:: @ 82AE3DA
+ .string "Oh, it's {STR_VAR_1}, hello.\p"
+ .string "I've been swimming a lot but I still\n"
+ .string "can't seem to reach EVERGRANDE.\p"
+ .string "Maybe I'm just going in circles.\p"
+ .string "No, no, that can't be possible.\n"
+ .string "Wahahaha.\l"
+ .string "Take care!$"
+
+BattleFrontier_PokeNav_2AE489:: @ 82AE489
+ .string "Hey, it's {STR_VAR_1}…\n"
+ .string "Whoops!\p"
+ .string "Splash!\p"
+ .string "Blug-blug-blug-blug…\p"
+ .string "Sploosh!\p"
+ .string "Whiff-whiff! Whiff-whiff!\p"
+ .string "Hey! Sorry about that!\n"
+ .string "I just put on some suntan oil.\p"
+ .string "So my POKéNAV went whoopsy\n"
+ .string "out of my hand into the water!\p"
+ .string "But, boy, DEVON's POKéNAV is built\n"
+ .string "tough. It survived that dunking!\p"
+ .string "Anyways, I'm busy sunbathing,\n"
+ .string "so let's chat another time.$"
+
+BattleFrontier_PokeNav_2AE5CD:: @ 82AE5CD
+ .string "Hello, this is {STR_VAR_1}.\p"
+ .string "Out of the three triathlon events,\n"
+ .string "I like swimming best.\p"
+ .string "But if I stay in the sea too long,\n"
+ .string "won't I get all prune-like?\p"
+ .string "Ooh, triathlon is such a grueling\n"
+ .string "test of human endurance! Bye!$"
+
+BattleFrontier_PokeNav_2AE698:: @ 82AE698
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "How are your POKéMON doing?\p"
+ .string "My DRAGON POKéMON appear to be\n"
+ .string "in peak form. Bye for now.$"
+
+BattleFrontier_PokeNav_2AE704:: @ 82AE704
+ .string "{STR_VAR_1} here.\p"
+ .string "My {STR_VAR_2} has grown even more\n"
+ .string "tough than that last time.\p"
+ .string "I'm not going to lose again to you.\n"
+ .string "You wait till next time!\p"
+ .string "See you around!$"
+
+BattleFrontier_PokeNav_2AE78F:: @ 82AE78F
+ .string "It is {STR_VAR_1} here.\p"
+ .string "I have continued with my studies\n"
+ .string "in the art of concealment.\p"
+ .string "But I have been too successful.\n"
+ .string "No one has been able to find me.\l"
+ .string "My success makes me lonely…\p"
+ .string "Like smoke I disappear!\n"
+ .string "Farewell!$"
+
+BattleFrontier_PokeNav_2AE859:: @ 82AE859
+ .string "This is {STR_VAR_1}.\n"
+ .string "I kept up my training since we met.\p"
+ .string "My {STR_VAR_2} is getting pretty\n"
+ .string "tough.\p"
+ .string "Training on a beach is effective,\n"
+ .string "just as I thought. Bye now!$"
+
+BattleFrontier_PokeNav_2AE8E6:: @ 82AE8E6
+ .string "How do you do?\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I wonder when this yucky volcanic\n"
+ .string "ash will stop falling?\p"
+ .string "If it gets too deep, it will cover\n"
+ .string "up the pattern on my parasol…\p"
+ .string "Let's promise to meet again!$"
+
+BattleFrontier_PokeNav_2AE998:: @ 82AE998
+ .string "Hi, {STR_VAR_1} here.\p"
+ .string "Did you know that it's easier to\n"
+ .string "float in the sea than a pool?\p"
+ .string "Just by lying still, your body will\n"
+ .string "float on its own.\p"
+ .string "But if you float for too long,\n"
+ .string "watch that you don't get carried\l"
+ .string "off too far out.\p"
+ .string "…Where am I, anyway?\n"
+ .string "I'd better go!$"
+
+BattleFrontier_PokeNav_2AEA8F:: @ 82AEA8F
+ .string "Oh, {PLAYER}{STRING 5}, hello!\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "I'm up in the mountains now.\p"
+ .string "But the ground is too bumpy.\n"
+ .string "I can't pitch my tent here…\p"
+ .string "Oh, I had a brilliant idea!\p"
+ .string "Maybe I can get my POKéMON to tamp\n"
+ .string "the ground flat here!\p"
+ .string "I'm going to try that!\n"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2AEB77:: @ 82AEB77
+ .string "Oh, hi, hi, this is {STR_VAR_1}!\p"
+ .string "I'm raising POKéMON with LIV!\n"
+ .string "We're trying very hard!\p"
+ .string "If we try harder, can we become\n"
+ .string "number one? Bye-bye!$"
+
+BattleFrontier_PokeNav_2AEBFA:: @ 82AEBFA
+ .string "{STR_VAR_1} here!\p"
+ .string "I'm a SAILOR, but I'm not on a boat\n"
+ .string "now.\p"
+ .string "It makes me wonder--what should\n"
+ .string "a SAILOR on land be called?\p"
+ .string "That's what I've been thinking\n"
+ .string "while staring out across the waves.\p"
+ .string "All right, next time!$"
+
+BattleFrontier_PokeNav_2AECC1:: @ 82AECC1
+ .string "It's {STR_VAR_1}.\n"
+ .string "So? Get any more POKéMON?\p"
+ .string "If you catch a new POKéMON,\n"
+ .string "you have to come show me.\p"
+ .string "I won't whine for it, honest.\n"
+ .string "I'll be waiting. See you.$"
+
+BattleFrontier_PokeNav_2AED52:: @ 82AED52
+ .string "This is {STR_VAR_1}.\p"
+ .string "Are you raising your POKéMON\n"
+ .string "in the optimal way?\p"
+ .string "The air is clean where I am.\n"
+ .string "It's the perfect environment for\l"
+ .string "raising POKéMON.\p"
+ .string "If you're going to focus on raising\n"
+ .string "POKéMON, you should come out to\l"
+ .string "{STR_VAR_2}. Take care now.$"
+
+BattleFrontier_PokeNav_2AEE35:: @ 82AEE35
+ .string "Hi, this is {STR_VAR_1}.\p"
+ .string "I gave a {POKEBLOCK} to my {STR_VAR_2}.\n"
+ .string "It seemed to enjoy it very much.\p"
+ .string "It looks like POKéMON have their\n"
+ .string "likes and dislikes with {POKEBLOCK}S.\p"
+ .string "I find that quite fascinating.\n"
+ .string "Please do take care.$"
+
+BattleFrontier_PokeNav_2AEEF4:: @ 82AEEF4
+ .string "{STR_VAR_1} here.\p"
+ .string "If you cooperate with POKéMON,\n"
+ .string "one can be comfortable in the wild.\p"
+ .string "Everyone should realize that and\n"
+ .string "cooperate with POKéMON more.\p"
+ .string "That would be ideal.\n"
+ .string "I really think so.\p"
+ .string "I think you're on the right track!\n"
+ .string "Catch you later!$"
+
+BattleFrontier_PokeNav_2AEFDA:: @ 82AEFDA
+ .string "Hi, it's {STR_VAR_1}. You know,\n"
+ .string "the TRAINER who's always prepared!\p"
+ .string "{PLAYER}{STRING 5}, do you have enough items?\n"
+ .string "Are your POKéMON fit for action?\p"
+ .string "Keeping everything perfect around\n"
+ .string "you all the time is the secret to\l"
+ .string "keeping your journey going.\p"
+ .string "I'd better go check my own\n"
+ .string "supplies! Be vigilant!$"
+
+BattleFrontier_PokeNav_2AF0E7:: @ 82AF0E7
+ .string "It's {STR_VAR_1}!\n"
+ .string "It's {STR_VAR_1}!\p"
+ .string "{STR_VAR_2} is a very busy\n"
+ .string "thoroughfare, so I get challenged\l"
+ .string "by all kinds of TRAINERS every day.\p"
+ .string "Today, I won five battles and lost\n"
+ .string "only three!\p"
+ .string "How did you do today?\n"
+ .string "Tell me about it next time, okay?$"
+
+BattleFrontier_PokeNav_2AF1B8:: @ 82AF1B8
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I'm popular because I have lots\n"
+ .string "of BUG POKéMON, right?\p"
+ .string "Well, I took a bunch of my fave\n"
+ .string "bugs to school today.\p"
+ .string "This girl I like started crying!\n"
+ .string "Go ahead and laugh if you want.\p"
+ .string "I have to try teaching her what\n"
+ .string "makes BUG POKéMON so appealing.\p"
+ .string "Snivel…\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AF2C4:: @ 82AF2C4
+ .string "Hah! Hah! Hah! Hah!\p"
+ .string "Hi! It's {STR_VAR_1}! Hah! Hah!\p"
+ .string "Trying to chat…\n"
+ .string "While climbing…\l"
+ .string "Is harsh exercise… Hah! Hah!\p"
+ .string "Urgh! Oof…\n"
+ .string "It's steeper now…\l"
+ .string "We'll chat…another time…\l"
+ .string "Hah! Hah! Hah!$"
+
+BattleFrontier_PokeNav_2AF371:: @ 82AF371
+ .string "Oh, hi!\p"
+ .string "I'm still searching for treasures\n"
+ .string "with KIRA!\p"
+ .string "Maybe there isn't any treasure\n"
+ .string "here at all…\p"
+ .string "But the important thing is for me\n"
+ .string "to search alongside KIRA.\p"
+ .string "Oh, hey, KIRA!\n"
+ .string "Wh-why are you angry?\p"
+ .string "I'm not ignoring you, honey!\n"
+ .string "You're my one and only!\p"
+ .string "…{PLAYER}, I have to go, bye!$"
+
+BattleFrontier_PokeNav_2AF480:: @ 82AF480
+ .string "This is {STR_VAR_1}!\p"
+ .string "I went to DEWFORD's GYM again\n"
+ .string "for training.\p"
+ .string "BRAWLY, the GYM LEADER, seems\n"
+ .string "to be tougher now.\p"
+ .string "Something about being toughened\n"
+ .string "by the wild waves…\p"
+ .string "But he's still as cool as ever.\n"
+ .string "The ladies adore him!\l"
+ .string "It makes me envious, frankly.\p"
+ .string "I wonder… Is his friend BRUNO\n"
+ .string "the same way as BRAWLY?\p"
+ .string "You know, all sweaty or smelly,\n"
+ .string "and prone to calling people\l"
+ .string "“big wave,” that sort of thing.\p"
+ .string "But, hey, this jealousy thing isn't\n"
+ .string "very seemly, is it?\p"
+ .string "Forget this chat ever happened,\n"
+ .string "how about it? So long!$"
+
+BattleFrontier_PokeNav_2AF671:: @ 82AF671
+ .string "It's a pleasure to chat with\n"
+ .string "a young TRAINER like you.\p"
+ .string "I imagine that you will continue to\n"
+ .string "enjoy POKéMON whatever your age.\p"
+ .string "Wouldn't it be good if you had\n"
+ .string "a partnership like ours?\p"
+ .string "Of course, {PLAYER}{STRING 5}, you already\n"
+ .string "enjoy the trust and companionship\l"
+ .string "of your POKéMON now.\p"
+ .string "You have the makings of long and\n"
+ .string "enduring relationships already!\p"
+ .string "Hahaha!\n"
+ .string "Never be discouraged!$"
+
+BattleFrontier_PokeNav_2AF7D8:: @ 82AF7D8
+ .string "Hi, this is {STR_VAR_1}!\n"
+ .string "We just won a battle!\p"
+ .string "We don't win often, but it was this\n"
+ .string "cool SWIMMER guy.\p"
+ .string "My sister was steamed!\p"
+ .string "She wanted to pretend that she\n"
+ .string "was weak to make an impression!\p"
+ .string "She always chews me out whether\n"
+ .string "we win or lose!\p"
+ .string "{PLAYER}{STRING 5}, can you say something\n"
+ .string "to her next time?\p"
+ .string "Okay, see you!$"
+
+BattleFrontier_PokeNav_2AF8F7:: @ 82AF8F7
+ .string "{STR_VAR_1} here, yes.\n"
+ .string "I headed out to sea yesterday.\p"
+ .string "I had been hoping to find a new\n"
+ .string "ruin to explore.\p"
+ .string "But the tides somehow seemed to\n"
+ .string "carry me back where I started.\p"
+ .string "I'm still weak at battling, too…\n"
+ .string "Feel free to mock me…\l"
+ .string "But I won't give up.\p"
+ .string "My day will come when I discover\n"
+ .string "a new ruin!\p"
+ .string "That's all I have to say!\n"
+ .string "Farewell for now!$"
+
+BattleFrontier_PokeNav_2AFA39:: @ 82AFA39
+ .string "Ahoy there!\n"
+ .string "It's me, {STR_VAR_1}!\l"
+ .string "I'm out on ROUTE 108 now!\l"
+ .string "In other words, where I always am!\p"
+ .string "Today, a gorgeous SWIMMER \n"
+ .string "swam by me!\p"
+ .string "So I startled her with a shout!\p"
+ .string "And she gave me a nasty glare!\p"
+ .string "That's all from ROUTE 108!\n"
+ .string "Brought to you by {STR_VAR_1}!$"
+
+BattleFrontier_PokeNav_2AFB26:: @ 82AFB26
+ .string "It's {STR_VAR_1}!\p"
+ .string "I'm kind of busy, but I figured\n"
+ .string "I should let you know that I've\l"
+ .string "beaten five TRAINERS again today.\p"
+ .string "If I keep this pace up, I can\n"
+ .string "probably beat you next time.\p"
+ .string "I think we'll be good rivals,\n"
+ .string "you and I. Good-bye for now!$"
+
+BattleFrontier_PokeNav_2AFC07:: @ 82AFC07
+ .string "Hi! This is {STR_VAR_1}.\n"
+ .string "I heard the news!\p"
+ .string "They say you did excellent at\n"
+ .string "the {STR_VAR_2}.\p"
+ .string "It's awesome, {STR_VAR_3} straight wins?\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AFC78:: @ 82AFC78
+ .string "Hello, it's {STR_VAR_1}!\n"
+ .string "I heard about you!\p"
+ .string "They said you won {STR_VAR_3} straight\n"
+ .string "battles at the {STR_VAR_2}.\p"
+ .string "That's special! I should try\n"
+ .string "harder, too! See you!$"
+
+BattleFrontier_PokeNav_2AFCFF:: @ 82AFCFF
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I heard you went on a tear at\n"
+ .string "the {STR_VAR_2}!\p"
+ .string "A big {STR_VAR_3}-win streak…\n"
+ .string "That is a big record, isn't it?\p"
+ .string "I'd better get it together, too!\n"
+ .string "Catch you soon!$"
+
+BattleFrontier_PokeNav_2AFDA7:: @ 82AFDA7
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here. What's up?\p"
+ .string "There's a rumor going around that\n"
+ .string "you strung together {STR_VAR_3} straight\l"
+ .string "wins at the {STR_VAR_2}.\p"
+ .string "I'd better step it up, too.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2AFE3D:: @ 82AFE3D
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "You were at the {STR_VAR_2}\n"
+ .string "and won {STR_VAR_3} battles in a row?\l"
+ .string "Isn't that something!\p"
+ .string "I'd better work on my POKéMON more.\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2AFECA:: @ 82AFECA
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here. How are you?\p"
+ .string "By the way, I heard you pulled off\n"
+ .string "the feat of {STR_VAR_3} straight wins at\l"
+ .string "the {STR_VAR_2}.\p"
+ .string "That inspires me to focus on\n"
+ .string "raising my team.$"
+
+BattleFrontier_PokeNav_2AFF64:: @ 82AFF64
+ .string "…Er, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here…\p"
+ .string "Oh, yeah, you were over at\n"
+ .string "the {STR_VAR_2}, right?\p"
+ .string "And you won {STR_VAR_3} battles in a row.\p"
+ .string "Oh, there goes a rare POKéMON!\n"
+ .string "I have to go!$"
+
+BattleFrontier_PokeNav_2AFFF0:: @ 82AFFF0
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\l"
+ .string "I hope you're doing well.\p"
+ .string "Oh, but, you are. I've heard that\n"
+ .string "you won {STR_VAR_3} matches in a row at\l"
+ .string "the {STR_VAR_2}.\p"
+ .string "That's very impressive!\n"
+ .string "I hope you stay successful.$"
+
+BattleFrontier_PokeNav_2B00B5:: @ 82B00B5
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I heard! Your {STR_VAR_3}-win streak at\n"
+ .string "the {STR_VAR_2}!\p"
+ .string "That is so cool!\n"
+ .string "I'd better try harder, too!$"
+
+BattleFrontier_PokeNav_2B0129:: @ 82B0129
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You won {STR_VAR_3} straight battles at\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "That's quite the accomplishment.\n"
+ .string "I need to work harder.$"
+
+BattleFrontier_PokeNav_2B01A5:: @ 82B01A5
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I hear you're the terror of\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "You won, what, {STR_VAR_3} matches in\n"
+ .string "a row?\p"
+ .string "You're good, you.\n"
+ .string "I wonder how many I can win?$"
+
+BattleFrontier_PokeNav_2B0232:: @ 82B0232
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you keeping well?\p"
+ .string "Someone passed on word about you.\n"
+ .string "How you won {STR_VAR_3} straight battles\l"
+ .string "at a place named {STR_VAR_2}?\p"
+ .string "That's quite the tale.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B02D9:: @ 82B02D9
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "I hope you've been keeping well.\p"
+ .string "They say you won {STR_VAR_3} straight\n"
+ .string "battles at the {STR_VAR_2}.\p"
+ .string "I admire your energy!\n"
+ .string "Bye now.$"
+
+BattleFrontier_PokeNav_2B0366:: @ 82B0366
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I heard about you!\n"
+ .string "Didn't you just win {STR_VAR_3} battles in\l"
+ .string "a row at the {STR_VAR_2}?\p"
+ .string "You're an inspiration!\n"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2B03E6:: @ 82B03E6
+ .string "Hi! This is {STR_VAR_1}.\n"
+ .string "I heard the news!\p"
+ .string "They say you did excellent at\n"
+ .string "the {STR_VAR_2}.\p"
+ .string "It's awesome--{STR_VAR_3} straight wins?\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B0457:: @ 82B0457
+ .string "Hello, it's {STR_VAR_1}!\n"
+ .string "I heard about you!\p"
+ .string "They said you won {STR_VAR_3} straight\n"
+ .string "battles at the {STR_VAR_2}.\p"
+ .string "That's special! I should try\n"
+ .string "harder, too! See you!$"
+
+BattleFrontier_PokeNav_2B04DE:: @ 82B04DE
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\p"
+ .string "I heard you went on a tear at\n"
+ .string "the {STR_VAR_2}!\p"
+ .string "A big {STR_VAR_3}-win streak…\n"
+ .string "That is a big record, isn't it?\p"
+ .string "I'd better get it together, too!\n"
+ .string "Catch you soon!$"
+
+BattleFrontier_PokeNav_2B0586:: @ 82B0586
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here. What's up?\p"
+ .string "There's a rumor going around that\n"
+ .string "you strung together {STR_VAR_3} straight\l"
+ .string "wins at the {STR_VAR_2}.\p"
+ .string "I'd better step it up, too.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B061C:: @ 82B061C
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "You were at the {STR_VAR_2}\n"
+ .string "and won {STR_VAR_3} battles in a row?\l"
+ .string "Isn't that something!\p"
+ .string "Me? I'd say I'm coming along.\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2B06A3:: @ 82B06A3
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here. How are you?\p"
+ .string "By the way, I heard you pulled off\n"
+ .string "the feat of {STR_VAR_3} straight wins at\l"
+ .string "the {STR_VAR_2}.\p"
+ .string "I'd better try harder myself!\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2B073B:: @ 82B073B
+ .string "…Er, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here…\p"
+ .string "Oh, yeah, you were over at\n"
+ .string "the {STR_VAR_2}, right?\p"
+ .string "And you won {STR_VAR_3} battles in a row.\p"
+ .string "Oh, there goes a rare POKéMON!\n"
+ .string "I have to go!$"
+
+BattleFrontier_PokeNav_2B07C7:: @ 82B07C7
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\l"
+ .string "I hope you're doing well.\p"
+ .string "Oh, but, you are. I've heard that\n"
+ .string "you won {STR_VAR_3} matches in a row at\l"
+ .string "the {STR_VAR_2}.\p"
+ .string "That's very impressive!\n"
+ .string "I'd better work on my POKéMON, too!$"
+
+BattleFrontier_PokeNav_2B0894:: @ 82B0894
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I heard! Your {STR_VAR_3}-win streak at\n"
+ .string "the {STR_VAR_2}!\p"
+ .string "That is so cool!\n"
+ .string "I'd better try harder, too!$"
+
+BattleFrontier_PokeNav_2B0908:: @ 82B0908
+ .string "Oh, {PLAYER}{STRING 5}, hello…\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You won {STR_VAR_3} straight battles at\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "That's quite the accomplishment.\n"
+ .string "I need to work harder.$"
+
+BattleFrontier_PokeNav_2B0984:: @ 82B0984
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I hear you're the terror of\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "You won, what, {STR_VAR_3} matches in\n"
+ .string "a row?\p"
+ .string "You're good, you.\n"
+ .string "I wonder how many I can win?$"
+
+BattleFrontier_PokeNav_2B0A11:: @ 82B0A11
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you keeping well?\p"
+ .string "Someone passed on word about you.\n"
+ .string "How you won {STR_VAR_3} straight battles\l"
+ .string "at a place named {STR_VAR_2}?\p"
+ .string "That's quite the tale.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B0AB8:: @ 82B0AB8
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "I hope you've been keeping well.\p"
+ .string "They say you won {STR_VAR_3} straight\n"
+ .string "battles at the {STR_VAR_2}.\p"
+ .string "I admire your energy!\n"
+ .string "Bye now.$"
+
+BattleFrontier_PokeNav_2B0B45:: @ 82B0B45
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "I heard about you!\p"
+ .string "Didn't you just win {STR_VAR_3} battles in\n"
+ .string "a row at the {STR_VAR_2}?\p"
+ .string "You're an inspiration!\n"
+ .string "Bye-bye!$"
+
+BattleFrontier_PokeNav_2B0BC5:: @ 82B0BC5
+ .string "Hi! {PLAYER}?\n"
+ .string "Hello, this is {STR_VAR_1}!\l"
+ .string "I heard the news!\p"
+ .string "You became the champion at\n"
+ .string "the {STR_VAR_2} {STR_VAR_3} times?\p"
+ .string "It's awesome! I have to do better!\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B0C4A:: @ 82B0C4A
+ .string "Hello, it's {STR_VAR_1}!\n"
+ .string "I heard about you!\p"
+ .string "They said you won {STR_VAR_3} titles\n"
+ .string "at the {STR_VAR_2}.\p"
+ .string "That's super! I wonder if I can\n"
+ .string "become a champion?$"
+
+BattleFrontier_PokeNav_2B0CC7:: @ 82B0CC7
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "How's it going?\p"
+ .string "I heard you won events {STR_VAR_3} times\n"
+ .string "at the {STR_VAR_2}!\p"
+ .string "Make it one more next time!\n"
+ .string "Catch you soon!$"
+
+BattleFrontier_PokeNav_2B0D4A:: @ 82B0D4A
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "I heard you became the champion\n"
+ .string "at the {STR_VAR_2} {STR_VAR_3} times.\p"
+ .string "Sounds like you're working hard.\n"
+ .string "I'll try to keep up!$"
+
+BattleFrontier_PokeNav_2B0DC8:: @ 82B0DC8
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "I heard you won {STR_VAR_3} times\n"
+ .string "outright at the {STR_VAR_2}.\p"
+ .string "I'd better get with it, too!\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2B0E35:: @ 82B0E35
+ .string "Hey, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here. How are you?\p"
+ .string "By the way, I heard you became\n"
+ .string "the champion {STR_VAR_3} times at\l"
+ .string "the {STR_VAR_2}.\p"
+ .string "I'd better raise my POKéMON before\n"
+ .string "you pull farther ahead.$"
+
+BattleFrontier_PokeNav_2B0ED1:: @ 82B0ED1
+ .string "{PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "You were at the {STR_VAR_2}\n"
+ .string "and became the champ {STR_VAR_3} times?\p"
+ .string "That's neat. By the way, have you\n"
+ .string "caught any rare POKéMON lately?\p"
+ .string "Oh, is that right.\n"
+ .string "Okay, bye.$"
+
+BattleFrontier_PokeNav_2B0F72:: @ 82B0F72
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\l"
+ .string "I hope you're doing well.\l"
+ .string "Oh, but, you are.\p"
+ .string "I've heard that you won {STR_VAR_3} titles\n"
+ .string "at the {STR_VAR_2}.\p"
+ .string "I must raise my POKéMON like you.\n"
+ .string "See you again.$"
+
+BattleFrontier_PokeNav_2B102A:: @ 82B102A
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I heard! You took the title\n"
+ .string "{STR_VAR_3} times at the {STR_VAR_2}!\p"
+ .string "That is so cool!\n"
+ .string "I'd better try harder, too!$"
+
+BattleFrontier_PokeNav_2B10A7:: @ 82B10A7
+ .string "Oh, {PLAYER}{STRING 5}, hello.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You won {STR_VAR_3} straight times at\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "That's quite the accomplishment.\n"
+ .string "I need to work harder.$"
+
+BattleFrontier_PokeNav_2B1121:: @ 82B1121
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I hear you're the terror of\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "You won, what, {STR_VAR_3} straight times\n"
+ .string "now?\p"
+ .string "I wonder if I can ever become\n"
+ .string "a champion?\p"
+ .string "…Pretty well impossible?\n"
+ .string "Well, see you!$"
+
+BattleFrontier_PokeNav_2B11D3:: @ 82B11D3
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you keeping well?\p"
+ .string "You've won {STR_VAR_3} events at a place\n"
+ .string "named {STR_VAR_2}?\p"
+ .string "That's quite the tale.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B124D:: @ 82B124D
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "I hope you've been keeping well.\p"
+ .string "They say you won {STR_VAR_3} events\n"
+ .string "at the {STR_VAR_2}?\p"
+ .string "I admire your energy!\n"
+ .string "Bye now.$"
+
+BattleFrontier_PokeNav_2B12D0:: @ 82B12D0
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "I heard about you!\p"
+ .string "Didn't you win {STR_VAR_3} titles\n"
+ .string "at the {STR_VAR_2}?\p"
+ .string "You're an inspiration!\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2B1347:: @ 82B1347
+ .string "Hi! {PLAYER}?\n"
+ .string "Hello, this is {STR_VAR_1}!\l"
+ .string "I heard the news!\p"
+ .string "You got through {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}!\p"
+ .string "That's awesome!\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B13B1:: @ 82B13B1
+ .string "Hello, it's {STR_VAR_1}!\n"
+ .string "I heard about you!\p"
+ .string "They said you won your way through\n"
+ .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
+ .string "I have to try much harder!\n"
+ .string "Bye!$"
+
+BattleFrontier_PokeNav_2B142B:: @ 82B142B
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "How's it going?\p"
+ .string "I heard you won through {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}!\p"
+ .string "Try to do even better next time!\n"
+ .string "Catch you soon!$"
+
+BattleFrontier_PokeNav_2B14B4:: @ 82B14B4
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "I heard you blew through {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}.\p"
+ .string "I'd better train my POKéMON and\n"
+ .string "try to keep up!$"
+
+BattleFrontier_PokeNav_2B1525:: @ 82B1525
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "I heard you got past {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}.\p"
+ .string "I'd better get with it, too!\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2B158E:: @ 82B158E
+ .string "Hey, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here. How are you?\p"
+ .string "By the way, I heard you got through\n"
+ .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
+ .string "I'd better raise my POKéMON before\n"
+ .string "you pull further ahead.$"
+
+BattleFrontier_PokeNav_2B1622:: @ 82B1622
+ .string "{PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "You were at the {STR_VAR_2}\n"
+ .string "and won your way past {STR_VAR_3} rooms?\p"
+ .string "That's wicked.\p"
+ .string "Oh, there goes a rare POKéMON!\n"
+ .string "Okay, bye.$"
+
+BattleFrontier_PokeNav_2B169D:: @ 82B169D
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\l"
+ .string "I hope you're doing well.\l"
+ .string "Oh, but, you are.\p"
+ .string "I've heard that you got through\n"
+ .string "{STR_VAR_3} rooms at the {STR_VAR_2}.\p"
+ .string "That's quite impressive!\n"
+ .string "I must raise my POKéMON like you.\l"
+ .string "See you again.$"
+
+BattleFrontier_PokeNav_2B1775:: @ 82B1775
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I heard! You won your way through\n"
+ .string "{STR_VAR_3} rooms at the {STR_VAR_2}!\p"
+ .string "That is so cool!\n"
+ .string "I'd better try harder, too!$"
+
+BattleFrontier_PokeNav_2B17F8:: @ 82B17F8
+ .string "Oh, {PLAYER}{STRING 5}, hello.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You won your way past {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}?\p"
+ .string "That's quite the accomplishment.\n"
+ .string "I need to work harder.$"
+
+BattleFrontier_PokeNav_2B1877:: @ 82B1877
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I hear you're the terror of\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "You got through, what, {STR_VAR_3} rooms?\n"
+ .string "That's gotta count for something.\p"
+ .string "I wonder if I can ever become\n"
+ .string "a champion?\p"
+ .string "…Pretty well impossible?\n"
+ .string "Well, see you!$"
+
+BattleFrontier_PokeNav_2B1946:: @ 82B1946
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you keeping well?\p"
+ .string "You've won through {STR_VAR_3} rooms at\n"
+ .string "a place named {STR_VAR_2}?\p"
+ .string "That's quite the tale.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B19C7:: @ 82B19C7
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "I hope you've been keeping well.\p"
+ .string "They say you won in {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}?\p"
+ .string "I admire your energy!\n"
+ .string "Bye now.$"
+
+BattleFrontier_PokeNav_2B1A4C:: @ 82B1A4C
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "I heard about you!\p"
+ .string "Didn't you get through {STR_VAR_3} rooms\n"
+ .string "at the {STR_VAR_2}?\p"
+ .string "You're an inspiration!\n"
+ .string "See you again!$"
+
+BattleFrontier_PokeNav_2B1ACA:: @ 82B1ACA
+ .string "Hi! {PLAYER}?\n"
+ .string "Hello, this is {STR_VAR_1}!\l"
+ .string "I heard the news!\p"
+ .string "You climbed {STR_VAR_3} floors inside\n"
+ .string "the {STR_VAR_2}, right?\p"
+ .string "That's awesome!\n"
+ .string "I should try that challenge.$"
+
+BattleFrontier_PokeNav_2B1B50:: @ 82B1B50
+ .string "Hello, it's {STR_VAR_1}!\n"
+ .string "I heard about you!\p"
+ .string "They said you won your way through\n"
+ .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
+ .string "Wow, that's fantastic!\n"
+ .string "I'd better raise my POKéMON, too!$"
+
+BattleFrontier_PokeNav_2B1BE4:: @ 82B1BE4
+ .string "Hey there, {PLAYER}!\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "How's it going?\p"
+ .string "I heard you climbed {STR_VAR_3} floors\n"
+ .string "in the {STR_VAR_2}!\p"
+ .string "Try to do even better next time!\n"
+ .string "Catch you soon!$"
+
+BattleFrontier_PokeNav_2B1C6A:: @ 82B1C6A
+ .string "Hey, {PLAYER}{STRING 5}.\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "I heard you scaled {STR_VAR_3} floors\n"
+ .string "in the {STR_VAR_2}.\p"
+ .string "I'd better work hard and try\n"
+ .string "to keep up!$"
+
+BattleFrontier_PokeNav_2B1CCF:: @ 82B1CCF
+ .string "Hiya, {PLAYER}{STRING 5}!\n"
+ .string "It's {STR_VAR_1}.\p"
+ .string "I heard you climbed {STR_VAR_3} floors\n"
+ .string "in the {STR_VAR_2}.\p"
+ .string "I'd better get with it, too!\n"
+ .string "See you soon!$"
+
+BattleFrontier_PokeNav_2B1D38:: @ 82B1D38
+ .string "Hey, {PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here. How are you?\p"
+ .string "By the way, I heard you got through\n"
+ .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
+ .string "I'd better raise my POKéMON before\n"
+ .string "you pull further ahead.$"
+
+BattleFrontier_PokeNav_2B1DCD:: @ 82B1DCD
+ .string "{PLAYER}{STRING 5}?\n"
+ .string "{STR_VAR_1} here.\p"
+ .string "You were at the {STR_VAR_2}\n"
+ .string "and won your way up {STR_VAR_3} floors?\p"
+ .string "Neat. Were there any rare POKéMON\n"
+ .string "there?\p"
+ .string "No, huh?\n"
+ .string "Okay, bye.$"
+
+BattleFrontier_PokeNav_2B1E4B:: @ 82B1E4B
+ .string "Oh, {PLAYER}{STRING 5}, how do you do?\n"
+ .string "This is {STR_VAR_1} speaking.\l"
+ .string "I hope you're doing well.\l"
+ .string "Oh, but, you are.\p"
+ .string "I've heard that you got through\n"
+ .string "{STR_VAR_3} floors in the {STR_VAR_2}.\p"
+ .string "That's quite impressive!\n"
+ .string "I must raise my POKéMON like you.\l"
+ .string "See you again.$"
+
+BattleFrontier_PokeNav_2B1F24:: @ 82B1F24
+ .string "Oh, {PLAYER}{STRING 5}, hi there!\n"
+ .string "This is {STR_VAR_1}!\p"
+ .string "I heard! You won your way through\n"
+ .string "{STR_VAR_3} floors in the {STR_VAR_2}!\p"
+ .string "That is so cool!\n"
+ .string "I'd better try harder, too!$"
+
+BattleFrontier_PokeNav_2B1FA8:: @ 82B1FA8
+ .string "Oh, {PLAYER}{STRING 5}, hello.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "You climbed {STR_VAR_3} floors inside\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "That's quite the accomplishment.\n"
+ .string "I need to work harder.$"
+
+BattleFrontier_PokeNav_2B2022:: @ 82B2022
+ .string "Ah, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\p"
+ .string "I hear you're the terror of\n"
+ .string "the {STR_VAR_2}?\p"
+ .string "You rose through, what, {STR_VAR_3} floors?\n"
+ .string "That's gotta count for something.\p"
+ .string "I wonder if I can ever become\n"
+ .string "a champion?\p"
+ .string "…Pretty well impossible?\n"
+ .string "Well, see you!$"
+
+BattleFrontier_PokeNav_2B20F3:: @ 82B20F3
+ .string "Hello, {PLAYER}{STRING 5}.\n"
+ .string "It's me, {STR_VAR_1}.\l"
+ .string "Are you keeping well?\p"
+ .string "You've won through {STR_VAR_3} floors in\n"
+ .string "a place named {STR_VAR_2}?\p"
+ .string "That's quite the tale.\n"
+ .string "See you!$"
+
+BattleFrontier_PokeNav_2B2175:: @ 82B2175
+ .string "Ah, hello, {PLAYER}{STRING 5}!\n"
+ .string "This is {STR_VAR_1}!\l"
+ .string "I hope you've been keeping well.\p"
+ .string "They say you climbed {STR_VAR_3} floors\n"
+ .string "in the {STR_VAR_2}?\p"
+ .string "I admire your energy!\n"
+ .string "Bye now.$"
+
+BattleFrontier_PokeNav_2B21FC:: @ 82B21FC
+ .string "Oh, hi, {PLAYER}{STRING 5}.\n"
+ .string "This is {STR_VAR_1}.\l"
+ .string "I heard about you!\p"
+ .string "Didn't you get through {STR_VAR_3} floors\n"
+ .string "in the {STR_VAR_2}?\p"
+ .string "You're an inspiration!\n"
+ .string "See you again!$"
+
+gText_Mom_Pokenav_2B227B:: @ 82B227B
+ .string "MOM: Your father and you…\n"
+ .string "Everyone is captivated by POKéMON.\p"
+ .string "What is the charm of POKéMON?\p"
+ .string "Me?\n"
+ .string "I adore POKéMON that help me with\l"
+ .string "my everyday chores.$"
+
+gText_Mom_Pokenav_2B2310:: @ 82B2310
+ .string "MOM: Hi, {PLAYER}!\n"
+ .string "Your father keeps himself locked\l"
+ .string "away in the PETALBURG GYM.\p"
+ .string "He comes home every so often.\n"
+ .string "But he goes back to the GYM when\l"
+ .string "he's eaten everything he can.\p"
+ .string "I'm guessing that losing to you\n"
+ .string "was a big blow to his pride!$"
+
+gText_Mom_Pokenav_2B23F3:: @ 82B23F3
+ .string "MOM: {PLAYER}…\n"
+ .string "Don't worry about me or the house.\p"
+ .string "Wear those RUNNING SHOES until\n"
+ .string "they fall apart, honey!$"
+
+gText_Roxanne_Pokenav_2B2456:: @ 82B2456
+ .string "ROXANNE: Oh, hello, {PLAYER}!\p"
+ .string "I've been hard at work retraining\n"
+ .string "since we met.\p"
+ .string "I will still need some more time\n"
+ .string "before I can reopen the GYM.\p"
+ .string "But when I do, please visit my GYM\n"
+ .string "for a rematch!$"
+
+gText_Roxanne_Pokenav_2B250E:: @ 82B250E
+ .string "ROXANNE: Is this {PLAYER}?\n"
+ .string "Congratulations!\l"
+ .string "I've been hearing about you!\p"
+ .string "As for me, I need some more time\n"
+ .string "before I can reopen the GYM.\p"
+ .string "But when I do, please visit my GYM\n"
+ .string "for a rematch!$"
+
+gText_Roxanne_Pokenav_2B25C1:: @ 82B25C1
+ .string "ROXANNE: {PLAYER}!\n"
+ .string "My GYM is ready!\p"
+ .string "Please visit RUSTBORO whenever\n"
+ .string "you can!$"
+
+gText_Roxanne_Pokenav_2B2607:: @ 82B2607
+ .string "ROXANNE: At the RUSTBORO GYM,\n"
+ .string "the fact that we battled, {PLAYER},\l"
+ .string "is a matter of pride.$"
+
+gText_Brawly_Pokenav_2B2659:: @ 82B2659
+ .string "BRAWLY: Hey, there, {PLAYER}{STRING 5}!\p"
+ .string "I learned a lot from the battle we\n"
+ .string "had together.\p"
+ .string "I intend to do my training over,\n"
+ .string "then reopen the GYM.\p"
+ .string "It's going to take some time before\n"
+ .string "I'm ready to run the GYM again.\p"
+ .string "But if I can reopen the GYM,\n"
+ .string "I want you to challenge us again.$"
+
+gText_Brawly_Pokenav_2B275D:: @ 82B275D
+ .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n"
+ .string "Congratulations!\p"
+ .string "Word about your exploits arrived\n"
+ .string "on tidal winds!\p"
+ .string "It appears as if I need to work on\n"
+ .string "my training some more.\p"
+ .string "It's going to take some time before\n"
+ .string "I'm ready to run the GYM again.\p"
+ .string "But if I can reopen the GYM,\n"
+ .string "I want you to challenge us again.$"
+
+gText_Brawly_Pokenav_2B286F:: @ 82B286F
+ .string "BRAWLY: Hey, {PLAYER}{STRING 5}!\n"
+ .string "My GYM's ready for action!\p"
+ .string "Come back to DEWFORD anytime\n"
+ .string "for another challenge!$"
+
+gText_Brawly_Pokenav_2B28D1:: @ 82B28D1
+ .string "BRAWLY: {PLAYER}{STRING 5}, I don't think\n"
+ .string "I'll ever get bored of battling you!$"
+
+gText_Wattson_Pokenav_2B2912:: @ 82B2912
+ .string "WATTSON: Oh, it's you!\p"
+ .string "After you left, I've been redoing\n"
+ .string "my training from scratch.\p"
+ .string "I'd say I could use a wee bit more\n"
+ .string "time to reopen my GYM.\p"
+ .string "You'll have to wait till then!\n"
+ .string "Wahahahaha!$"
+
+gText_Wattson_Pokenav_2B29CA:: @ 82B29CA
+ .string "WATTSON: Wahahahaha!\p"
+ .string "You've really done it, haven't you?\n"
+ .string "I've been getting word about you!\p"
+ .string "It seems I need to retrain some\n"
+ .string "more still.\p"
+ .string "I'd say I could use a wee bit more\n"
+ .string "time to reopen my GYM.\p"
+ .string "You'll have to wait till then!\n"
+ .string "Wahahahaha!$"
+
+gText_Wattson_Pokenav_2B2AB6:: @ 82B2AB6
+ .string "WATTSON: Oh, it's you!\n"
+ .string "My GYM's ready!\p"
+ .string "Visit MAUVILLE anytime!\n"
+ .string "Wahahahaha!$"
+
+gText_Wattson_Pokenav_2B2B01:: @ 82B2B01
+ .string "WATTSON: Wahahaha!\p"
+ .string "A battle with you is always charged\n"
+ .string "with shocking power!$"
+
+gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D
+ .string "FLANNERY: {PLAYER}…\p"
+ .string "When we battled, I learned exactly\n"
+ .string "how immature I was.\p"
+ .string "But I'm not done yet!\p"
+ .string "I'm going to redo my training and\n"
+ .string "reopen the GYM.\p"
+ .string "When the time comes, {PLAYER},\n"
+ .string "please challenge us again.$"
+
+gText_Flannery_Pokenav_2B2C0E:: @ 82B2C0E
+ .string "FLANNERY: Hello, {PLAYER}?\n"
+ .string "Congratulations!\p"
+ .string "Word of your success has reached\n"
+ .string "us like the heat of a volcano!\p"
+ .string "Our training is coming along very\n"
+ .string "well here.\p"
+ .string "When the GYM's ready, a mark will\n"
+ .string "appear beside my name in the\l"
+ .string "MATCH CALL list.$"
+
+gText_Flannery_Pokenav_2B2CF1:: @ 82B2CF1
+ .string "FLANNERY: Oh, {PLAYER}?\n"
+ .string "Our GYM's ready!\p"
+ .string "Come to LAVARIDGE for a soak\n"
+ .string "in the hot spring and a challenge!$"
+
+gText_Flannery_Pokenav_2B2D54:: @ 82B2D54
+ .string "FLANNERY: {PLAYER}…\n"
+ .string "I'm positive that you keep getting\l"
+ .string "better at training every time.$"
+
+gText_Winona_Pokenav_2B2DA4:: @ 82B2DA4
+ .string "WINONA: Hello, {PLAYER}!\p"
+ .string "Thanks to our battle, I've come\n"
+ .string "to understand my weak points!\p"
+ .string "When I reopen the GYM, I won't go\n"
+ .string "down in defeat again!$"
+
+gText_Winona_Pokenav_2B2E2B:: @ 82B2E2B
+ .string "WINONA: You've done it, {PLAYER}!\p"
+ .string "News about the new CHAMPION\n"
+ .string "has reached us in FORTREE!\p"
+ .string "But… The next time we battle,\n"
+ .string "it's not going to end the same way.$"
+
+gText_Winona_Pokenav_2B2EC2:: @ 82B2EC2
+ .string "WINONA: Is this {PLAYER}?\n"
+ .string "Our GYM is back in operation!\p"
+ .string "We're waiting for you in FORTREE!$"
+
+gText_Winona_Pokenav_2B2F16:: @ 82B2F16
+ .string "WINONA: {PLAYER}…\n"
+ .string "Though I have lost, my wings will\l"
+ .string "never break.\p"
+ .string "Yes, in exactly the same way that\n"
+ .string "you never lost sight of your dream.$"
+
+gText_TateLiza_Pokenav_2B2F97:: @ 82B2F97
+ .string "TATE: Oh! You're…\n"
+ .string "LIZA: {PLAYER}!\p"
+ .string "TATE: We're in training again…\n"
+ .string "LIZA: So we can reopen our GYM!\p"
+ .string "TATE: When our GYM is ready…\n"
+ .string "LIZA: When our GYM is ready…\p"
+ .string "TATE: A mark'll appear by our name…\n"
+ .string "LIZA: On the MATCH CALL list.$"
+
+gText_TateLiza_Pokenav_2B306E:: @ 82B306E
+ .string "TATE: {PLAYER}, congratulations!\n"
+ .string "LIZA: {PLAYER}, congratulations!\p"
+ .string "TATE: The two of us are…\n"
+ .string "LIZA: Still in training!\p"
+ .string "TATE: We need some more time, but…\n"
+ .string "LIZA: When our GYM is ready…\p"
+ .string "TATE: A mark'll appear by our name…\n"
+ .string "LIZA: On the MATCH CALL list.$"
+
+gText_TateLiza_Pokenav_2B3158:: @ 82B3158
+ .string "TATE: {PLAYER}!\n"
+ .string "LIZA: {PLAYER}!\p"
+ .string "TATE: Our GYM is ready!\n"
+ .string "LIZA: Our GYM is ready!\p"
+ .string "TATE: Please come visit…\n"
+ .string "LIZA: MOSSDEEP anytime!$"
+
+gText_TateLiza_Pokenav_2B31CD:: @ 82B31CD
+ .string "TATE: {PLAYER}, the battle we had…\n"
+ .string "LIZA: Is an invaluable experience.\p"
+ .string "TATE: It would be nice if…\n"
+ .string "LIZA: We could all battle again!$"
+
+gText_Juan_Pokenav_2B3249:: @ 82B3249
+ .string "JUAN: Hmm…\n"
+ .string "{PLAYER}{STRING 5}… Was it?\p"
+ .string "Our battle together--it brought\n"
+ .string "to me memories of when I first\l"
+ .string "encountered WALLACE.\p"
+ .string "Perhaps you are a genius who may\n"
+ .string "yet surpass WALLACE!$"
+
+gText_Juan_Pokenav_2B32EC:: @ 82B32EC
+ .string "JUAN: Fufu… {PLAYER}{STRING 5}…\n"
+ .string "You've finally achieved your goal.\p"
+ .string "My eye for appraising talent wasn't\n"
+ .string "mistaken…\p"
+ .string "I wish for another chance to meet\n"
+ .string "you, for you have scaled the peak\l"
+ .string "of power and prestige.$"
+
+gText_Juan_Pokenav_2B33AA:: @ 82B33AA
+ .string "JUAN: Hoho… {PLAYER}{STRING 5}…\p"
+ .string "Our SOOTOPOLIS GYM has finally\n"
+ .string "reopened.\p"
+ .string "If you wish to see me, you are\n"
+ .string "welcome to visit anytime.$"
+
+gText_Juan_Pokenav_2B341E:: @ 82B341E
+ .string "JUAN: {PLAYER}{STRING 5}…\p"
+ .string "Like the finest music, the battles\n"
+ .string "we wage together strike chords\l"
+ .string "of inspiration in my heart…\p"
+ .string "When I close my eyes, I see visions\n"
+ .string "of you soaring with the melody…$"
+
+gText_Sidney_Pokenav_2B34CC:: @ 82B34CC
+ .string "SIDNEY: Yo, {PLAYER}!\p"
+ .string "If you want to battle with me\n"
+ .string "again, you come on back whenever\l"
+ .string "you like to the POKéMON LEAGUE.\p"
+ .string "I'll always be here!\n"
+ .string "I'll be waiting!$"
+
+gText_Phoebe_Pokenav_2B3561:: @ 82B3561
+ .string "PHOEBE: Hi, {PLAYER}!\p"
+ .string "How about coming back here again\n"
+ .string "sometime?\p"
+ .string "I'd like to see how much tighter\n"
+ .string "your bond has grown with your\l"
+ .string "POKéMON.$"
+
+gText_Glacia_Pokenav_2B35E4:: @ 82B35E4
+ .string "GLACIA: Hello, {PLAYER}.\p"
+ .string "I trust you haven't become\n"
+ .string "complacent with your power?\p"
+ .string "If you feel the need to cool your\n"
+ .string "hot emotions just a little, do come\l"
+ .string "to the POKéMON LEAGUE…$"
+
+gText_Drake_Pokenav_2B368B:: @ 82B368B
+ .string "DRAKE: That voice… {PLAYER}, is it?\n"
+ .string "You sound well…\p"
+ .string "I understand that there is now\n"
+ .string "a facility called the BATTLE\l"
+ .string "FRONTIER that tests the skills of\l"
+ .string "TRAINERS.\p"
+ .string "However, if you wish to have real\n"
+ .string "battles, there is no substitute for\l"
+ .string "the POKéMON LEAGUE!\p"
+ .string "Don't you agree, {PLAYER}?$"
+
+gText_Wallace_Pokenav_2B3790:: @ 82B3790
+ .string "WALLACE: Hello, {PLAYER}{STRING 5}.\n"
+ .string "Have you met STEVEN?\p"
+ .string "He is…\n"
+ .string "Actually incredibly skilled.\p"
+ .string "However, he's an odd soul who\n"
+ .string "rarely battles.\p"
+ .string "Instead, he would rather look for\n"
+ .string "rare stones.\p"
+ .string "I'm sure he's digging in a cave or\n"
+ .string "a craggy mountain somewhere.\p"
+ .string "But what is a rare stone exactly?\n"
+ .string "All I can think of is a METEORITE…$"
+
+MossdeepCity_SpaceCenter_2F_Text_2B38C1: @ 82B38C1
+ .string "… … … … … …\n"
+ .string "… … … … … Beep!\p"
+ .string "MAY: Hi, {PLAYER}{KUN}!\p"
+ .string "I was just in PACIFIDLOG a little\n"
+ .string "while ago.\p"
+ .string "I saw a giant green POKéMON\n"
+ .string "flying high in the sky.\p"
+ .string "I…\n"
+ .string "I've never seen anything like it.\p"
+ .string "I wonder what it was.\n"
+ .string "Is this maybe a major discovery?\p"
+ .string "… … … … … …\n"
+ .string "… … … … … Click!$"
+
+MossdeepCity_SpaceCenter_2F_Text_2B39C6: @ 82B39C6
+ .string "… … … … … …\n"
+ .string "… … … … … Beep!\p"
+ .string "BRENDAN: Hey, {PLAYER}!\n"
+ .string "I was in PACIFIDLOG just now.\p"
+ .string "I saw this huge green POKéMON\n"
+ .string "flying across the sky.\p"
+ .string "I've never seen anything that\n"
+ .string "amazing before.\p"
+ .string "I wish you could've seen it,\n"
+ .string "{PLAYER}.\p"
+ .string "… … … … … …\n"
+ .string "… … … … … Click!$"
+
+gText_May_Pokenav_2B3AB3:: @ 2B3AB3
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "MR. BRINEY retired as a SAILOR,\n"
+ .string "but I still see him out on the sea\l"
+ .string "with his pet PEEKO sometimes.\p"
+ .string "He must love the sea still.$"
+
+gText_May_Pokenav_2B3B3F:: @ 2B3B3F
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "You know how little towns like\n"
+ .string "PETALBURG and DEWFORD have GYMS?\p"
+ .string "For some reason, the big port of\n"
+ .string "SLATEPORT doesn't have a GYM.\p"
+ .string "When they finally build a GYM there,\n"
+ .string "I should apply to be the LEADER.$"
+
+gText_May_Pokenav_2B3C13:: @ 2B3C13
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "Do you remember a man named\n"
+ .string "the CUTTER in RUSTBORO?\l"
+ .string "He had a house there, remember?\p"
+ .string "Well, I found out his younger\n"
+ .string "brother lives in MAUVILLE.\p"
+ .string "Can you guess his name?\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "The ROCK SMASH GUY!$"
+
+gText_May_Pokenav_2B3CF3:: @ 2B3CF3
+ .string "MAY: {PLAYER}{STRING 5}?\p"
+ .string "RUSTURF TUNNEL…\n"
+ .string "They named it that because it\l"
+ .string "joins RUSTBORO and VERDANTURF.$"
+
+gText_May_Pokenav_2B3D4B:: @ 2B3D4B
+ .string "MAY: {PLAYER}{STRING 5}, how are you?\p"
+ .string "I'm out on ROUTE 111 now.\p"
+ .string "I'm going to get a rest at an old\n"
+ .string "lady's house.\p"
+ .string "She lives just north of\n"
+ .string "the desert.$"
+
+gText_May_Pokenav_2B3DD1:: @ 2B3DD1
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "Did you know about the MIRAGE\n"
+ .string "TOWER in the desert?\p"
+ .string "They say, like a mirage, it seems\n"
+ .string "to mysteriously come and go.\p"
+ .string "I wish I could see it.$"
+
+gText_May_Pokenav_2B3E69:: @ 2B3E69
+ .string "MAY: {PLAYER}{STRING 5}, yahoo!\n"
+ .string "I'm on ROUTE 119 now.\p"
+ .string "There's a big river here, and\n"
+ .string "it often rains.\p"
+ .string "I got soaked!$"
+
+gText_May_Pokenav_2B3ECD:: @ 2B3ECD
+ .string "MAY: {PLAYER}{STRING 5}, hi.\p"
+ .string "MT. PYRE is a memorial to POKéMON\n"
+ .string "whose lives have ended.\p"
+ .string "Maybe as a result, it's infested\n"
+ .string "with many GHOST-type POKéMON!$"
+
+gText_May_Pokenav_2B3F2B:: @ 2B3F2B
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "I was thinking of going to the hot\n"
+ .string "spring in LAVARIDGE.\p"
+ .string "But on the way, around JAGGED\n"
+ .string "PASS, I ran into some bad-looking\l"
+ .string "characters. The mood was ugly!$"
+
+gText_May_Pokenav_2B3FFB:: @ 2B3FFB
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
+ .string "Did you see the news?\p"
+ .string "They say CAPT. STERN discovered\n"
+ .string "the SEAFLOOR CAVERN while on his\l"
+ .string "submarine expedition.$"
+
+gText_May_Pokenav_2B402B:: @ 2B402B
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
+ .string "Don't you think it's neat?\p"
+ .string "Even if you don't have a boat,\n"
+ .string "you can cross the sea using\l"
+ .string "a POKéMON's move.\p"
+ .string "Did you know there's more?\p"
+ .string "There's a POKéMON move that lets\n"
+ .string "you go to the bottom of the sea.$"
+
+gText_May_Pokenav_2B414B:: @ 2B414B
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\n"
+ .string "Hope things are okay!\p"
+ .string "Have you been on the sea and\n"
+ .string "found your way to the other side\l"
+ .string "blocked?\p"
+ .string "Try diving deep underwater and\n"
+ .string "following trenches.\p"
+ .string "When you get to the other side,\n"
+ .string "come up to the surface. Easy!$"
+
+gText_May_Pokenav_2B4228:: @ 2B4228
+ .string "MAY: Hi, {PLAYER}{STRING 5}!\p"
+ .string "How's it going?\n"
+ .string "Are you filling your POKéDEX?\p"
+ .string "I heard a rumor that there are\n"
+ .string "super-ancient POKéMON out there.\l"
+ .string "And there are three of them!\p"
+ .string "I would love to see even one…$"
+
+gText_May_Pokenav_2B42E0:: @ 2B42E0
+ .string "MAY: {PLAYER}{STRING 5}!\n"
+ .string "I heard the rumors!\p"
+ .string "You beat the SOOTOPOLIS GYM\n"
+ .string "LEADER?\p"
+ .string "That means you don't have far\n"
+ .string "to go, do you?$"
+
+gText_May_Pokenav_2B4350:: @ 2B4350
+ .string "MAY: There isn't a single TRAINER\n"
+ .string "left in HOENN who doesn't know who\l"
+ .string "you are, {PLAYER}{STRING 5}!\p"
+ .string "When I tell people that I'm friends\n"
+ .string "with you, {PLAYER}{STRING 5}, they're all\l"
+ .string "surprised!$"
+
+gText_Brendan_Pokenav_2B43EF:: @ 2B43EF
+ .string "BRENDAN: Hey, {PLAYER}!\p"
+ .string "MR. BRINEY retired as a SAILOR,\n"
+ .string "but I still see him out on the sea\l"
+ .string "with his pet PEEKO sometimes.\p"
+ .string "I guess he must love\n"
+ .string "the sea still.$"
+
+gText_Brendan_Pokenav_2B4486:: @ 2B4486
+ .string "BRENDAN: Hey, {PLAYER}!\p"
+ .string "I don't get how little towns like\n"
+ .string "PETALBURG and DEWFORD have GYMS.\p"
+ .string "I mean, not when the big port of\n"
+ .string "SLATEPORT doesn't have a GYM.\p"
+ .string "When they finally build a GYM there,\n"
+ .string "I should apply to be the LEADER.$"
+
+gText_Brendan_Pokenav_2B4560:: @ 2B4560
+ .string "BRENDAN: Yo, {PLAYER}!\p"
+ .string "Do you remember a guy named\n"
+ .string "the CUTTER in RUSTBORO?\l"
+ .string "He had a house there, right?\p"
+ .string "Well, it turns out his little\n"
+ .string "brother lives in MAUVILLE.\p"
+ .string "Can you guess his name?\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "The ROCK SMASH GUY!$"
+
+gText_Brendan_Pokenav_2B463F:: @ 2B463F
+ .string "BRENDAN: This voice… {PLAYER}?\p"
+ .string "They gave RUSTURF TUNNEL its name\n"
+ .string "because it joins RUSTBORO and\l"
+ .string "VERDANTURF.\p"
+ .string "Did you know that?$"
+
+gText_Brendan_Pokenav_2B46B7:: @ 2B46B7
+ .string "BRENDAN: {PLAYER}, what's up?\p"
+ .string "Hey, I'm out on ROUTE 111 now.\p"
+ .string "I'm going to rest up at an old\n"
+ .string "lady's house north of the desert.\p"
+ .string "If you're in the area, you should\n"
+ .string "visit her, too.$"
+
+gText_Brendan_Pokenav_2B4761:: @ 2B4761
+ .string "BRENDAN: Hey, {PLAYER}!\p"
+ .string "Did you know about the MIRAGE\n"
+ .string "TOWER in the desert?\p"
+ .string "They say, like a mirage, it can be\n"
+ .string "seen only sometimes.\p"
+ .string "I'd like to see that!$"
+
+gText_Brendan_Pokenav_2B47F4:: @ 2B47F4
+ .string "BRENDAN: Who's this? Oh, {PLAYER}?\n"
+ .string "Guess what? I'm on ROUTE 119 now.\p"
+ .string "There's a big river here, and\n"
+ .string "it rains all the time.\p"
+ .string "I got soaked to the bone!$"
+
+gText_Brendan_Pokenav_2B4882:: @ 2B4882
+ .string "BRENDAN: {PLAYER}!\p"
+ .string "MT. PYRE is a memorial to POKéMON\n"
+ .string "whose lives have ended.\p"
+ .string "That's probably why it's infested\n"
+ .string "with many GHOST-type POKéMON!$"
+
+gText_Brendan_Pokenav_2B4909:: @ 2B4909
+ .string "BRENDAN: Hey there, {PLAYER}.\p"
+ .string "I was on my way back to the hot\n"
+ .string "spring in LAVARIDGE.\p"
+ .string "But around JAGGED PASS, I ran into\n"
+ .string "some nasty-looking characters.\p"
+ .string "Those creeps…\n"
+ .string "I think they were TEAM MAGMA.$"
+
+gText_Brendan_Pokenav_2B49C4:: @ 2B49C4
+ .string "BRENDAN: Hi, {PLAYER}!\n"
+ .string "Did you catch the news?\p"
+ .string "They say CAPT. STERN discovered\n"
+ .string "the SEAFLOOR CAVERN while on his\l"
+ .string "submarine expedition.$"
+
+gText_Brendan_Pokenav_2B4A44:: @ 2B4A44
+ .string "BRENDAN: Hey there, {PLAYER}!\n"
+ .string "Don't you think it's awesome?\p"
+ .string "Even if you don't have a boat,\n"
+ .string "you can cross the sea using\l"
+ .string "a POKéMON's move.\p"
+ .string "And, there's a move that lets you\n"
+ .string "travel to the bottom of the sea.\p"
+ .string "Man, POKéMON can do anything!$"
+
+gText_Brendan_Pokenav_2B4B28:: @ 2B4B28
+ .string "BRENDAN: Howdy, {PLAYER}!\n"
+ .string "How are you holding up?\p"
+ .string "Ever found your way to the other\n"
+ .string "side blocked while on the sea?\p"
+ .string "Try diving deep underwater and\n"
+ .string "following trenches at the bottom.\p"
+ .string "When you get to the other side,\n"
+ .string "come up to the surface. Simple!$"
+
+gText_Brendan_Pokenav_2B4C15:: @ 2B4C15
+ .string "BRENDAN: Hey there, {PLAYER}!\p"
+ .string "How's it going? Filling up your\n"
+ .string "POKéDEX successfully?\p"
+ .string "I heard a rumor that there are\n"
+ .string "super-ancient POKéMON out there.\l"
+ .string "And not just one--three!\p"
+ .string "I'd love to catch even one…$"
+
+gText_Brendan_Pokenav_2B4CD8:: @ 2B4CD8
+ .string "BRENDAN: {PLAYER}!\n"
+ .string "I heard the rumors!\p"
+ .string "You beat the SOOTOPOLIS GYM\n"
+ .string "LEADER? Awesome!\p"
+ .string "You're getting awful close now!$"
+
+gText_Brendan_Pokenav_2B4D46:: @ 2B4D46
+ .string "BRENDAN: There isn't a TRAINER in\n"
+ .string "all of HOENN who doesn't know who\l"
+ .string "you are, {PLAYER}!\p"
+ .string "When I tell people that I'm friends\n"
+ .string "with you, {PLAYER}, they get pretty\l"
+ .string "envious!$"
+
+gText_Wally_Pokenav_2B4DE2:: @ 2B4DE2
+ .string "WALLY: Oh, {PLAYER}!\p"
+ .string "I've been getting healthier and\n"
+ .string "more physically fit.\p"
+ .string "I hope I can become a TRAINER like\n"
+ .string "you soon, {PLAYER}!$"
+
+gText_Wally_Pokenav_2B4E57:: @ 2B4E57
+ .string "WALLY: {PLAYER}, hello!\p"
+ .string "After RUSTURF TUNNEL went\n"
+ .string "through, WANDA's been very happy!$"
+
+gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5
+ .string "WALLY: Oh, {PLAYER}!\p"
+ .string "I… I left my uncle's place in\n"
+ .string "VERDANTURF without telling anyone.\p"
+ .string "I wonder if he's furious with me…\p"
+ .string "{PLAYER}, you understand how\n"
+ .string "I feel, don't you?$"
+
+gText_Wally_Pokenav_2B4F41:: @ 2B4F41
+ .string "WALLY: {PLAYER}?\n"
+ .string "It's me, WALLY!\p"
+ .string "The world of TRAINERS is amazing!\p"
+ .string "When I have my POKéMON with me,\n"
+ .string "all sorts of people say hi!\p"
+ .string "It's as if everyone's getting\n"
+ .string "connected through POKéMON!$"
+
+gText_Wally_Pokenav_2B4FF3:: @ 2B4FF3
+ .string "WALLY: {PLAYER}? It's awesome!\n"
+ .string "That RALTS we caught together?\l"
+ .string "It evolved, {PLAYER}!\p"
+ .string "Maybe I'm talented…\p"
+ .string "Oh, but I shouldn't get a big head\n"
+ .string "like that!\p"
+ .string "After all, it's the POKéMON that\n"
+ .string "should be praised!$"
+
+gText_Wally_Pokenav_2B50B1:: @ 2B50B1
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "WALLY appears to be out of\n"
+ .string "the POKéNAV's service area…$"
+
+gText_Wally_Pokenav_2B5100:: @ 2B5100
+ .string "WALLY: Oh, {PLAYER}!\p"
+ .string "Before I met you, I hardly ever\n"
+ .string "left my house…\p"
+ .string "But now, I'm on an adventure with\n"
+ .string "my very own POKéMON…\p"
+ .string "{PLAYER}…\n"
+ .string "Thank you…$"
+
+gText_Scott_Pokenav_2B5184:: @ 2B5184
+ .string "SCOTT: Howdy, {PLAYER}{STRING 5}!\p"
+ .string "You know how POKéMON can be found\n"
+ .string "everywhere?\p"
+ .string "Like in the mountains, in the sea,\n"
+ .string "in tall grass anywhere?\p"
+ .string "Just like POKéMON, you can find\n"
+ .string "TRAINERS everywhere, too.\p"
+ .string "As a result, I have to hurry\n"
+ .string "everywhere, too. Busy, busy!$"
+
+gText_Scott_Pokenav_2B5275:: @ 2B5275
+ .string "SCOTT: I'm on ROUTE 119 right now.\n"
+ .string "It's teeming with TRAINERS!\p"
+ .string "It's also overgrown with tall grass\n"
+ .string "everywhere, it seems.\p"
+ .string "Walking around in shorts here\n"
+ .string "makes me all ticklish!$"
+
+gText_Scott_Pokenav_2B5323:: @ 2B5323
+ .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p"
+ .string "Have you had the chance to climb\n"
+ .string "MT. PYRE?\p"
+ .string "The place is a memorial to POKéMON\n"
+ .string "that have passed away.\p"
+ .string "It's somewhere every TRAINER\n"
+ .string "should climb to the top of once.$"
+
+gText_Scott_Pokenav_2B53DB:: @ 2B53DB
+ .string "SCOTT: Hi, {PLAYER}{STRING 5}!\p"
+ .string "I've been hearing about these odd\n"
+ .string "gangs being a nuisance.\p"
+ .string "TEAM MAGMA and TEAM AQUA,\n"
+ .string "I think they were.\p"
+ .string "I would think there'd be some\n"
+ .string "skilled TRAINERS among them.\p"
+ .string "…But if they're thugs…$"
+
+gText_Scott_Pokenav_2B54A5:: @ 2B54A5
+ .string "SCOTT: Oh, hi, {PLAYER}{STRING 5}.\p"
+ .string "Might there be tough TRAINERS\n"
+ .string "at the bottom of the sea?\p"
+ .string "I can't go check for myself.\n"
+ .string "I can't swim, for one.\l"
+ .string "And I don't raise POKéMON…$"
+
+gText_Scott_Pokenav_2B5541:: @ 2B5541
+ .string "SCOTT: Hi, hi, {PLAYER}{STRING 5}!\p"
+ .string "You know that you can challenge\n"
+ .string "the POKéMON LEAGUE when you've\l"
+ .string "collected all the GYM BADGES?\p"
+ .string "With your talent, becoming the\n"
+ .string "CHAMPION isn't a pipe dream.\p"
+ .string "But did you know?\n"
+ .string "There's somewhere even better.\p"
+ .string "But, that's all I'm willing to say\n"
+ .string "for the time being.\p"
+ .string "It's something you can look\n"
+ .string "forward to.\p"
+ .string "When you've won your way through\n"
+ .string "the POKéMON LEAGUE into the HALL\l"
+ .string "OF FAME!$"
+
+gText_Scott_Pokenav_2B56CA:: @ 2B56CA
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "SCOTT appears to be out of\n"
+ .string "the POKéNAV's service area…$"
+
+gText_Norman_Pokenav_2B5719:: @ 82B5719
+ .string "DAD: In RUSTBORO, there's a man\n"
+ .string "that goes by the odd name of\l"
+ .string "the CUTTER.\p"
+ .string "If you're in the area, you should\n"
+ .string "pay him a visit.$"
+
+gText_Norman_Pokenav_2B5795:: @ 82B5795
+ .string "DAD: Hm… Little by little, but also\n"
+ .string "very surely, you're getting\l"
+ .string "tougher, {PLAYER}.\p"
+ .string "The stronger you get, the farther\n"
+ .string "and higher you soar from Mother\l"
+ .string "and me…\p"
+ .string "This feeling is hard to explain.$"
+
+gText_Norman_Pokenav_2B584D:: @ 82B584D
+ .string "DAD: I see…\n"
+ .string "You've collected four GYM BADGES…\p"
+ .string "There's no avoiding it now.\n"
+ .string "We will battle like I promised.\p"
+ .string "Come anytime.\n"
+ .string "We'll all be waiting for you!$"
+
+gText_Norman_Pokenav_2B58E3:: @ 82B58E3
+ .string "DAD: {PLAYER}! You'd better go visit\n"
+ .string "Mother every so often.\p"
+ .string "I'm going to remain here and\n"
+ .string "redouble my training.\p"
+ .string "The way of battling is deep\n"
+ .string "and unforgiving!$"
+
+gText_Norman_Pokenav_2B5979:: @ 82B5979
+ .string "DAD: Oh, hi, {PLAYER}!\p"
+ .string "What's that? MAGMA EMBLEM?\n"
+ .string "I don't know what that's about.\p"
+ .string "But with a name like that, it may\n"
+ .string "be somehow linked to a volcano!$"
+
+gText_Norman_Pokenav_2B5A07:: @ 82B5A07
+ .string "DAD: Hiyah! Haah! Dwah!\p"
+ .string "…Oh? {PLAYER}!\p"
+ .string "You caught me right in the middle\n"
+ .string "of a POKéMON training session!$"
+
+gText_Norman_Pokenav_2B5A69:: @ 82B5A69
+ .string "DAD: {PLAYER}!\p"
+ .string "Who would've thought you'd become\n"
+ .string "the POKéMON LEAGUE CHAMPION…\p"
+ .string "Okay!\n"
+ .string "I won't be left behind!$"
+
+gText_Norman_Pokenav_2B5ACF:: @ 82B5ACF
+ .string "DAD: Hm? {PLAYER}?\n"
+ .string "What good timing!\p"
+ .string "This time, I'm going to challenge\n"
+ .string "you to battle.\p"
+ .string "I'm waiting in the PETALBURG GYM.\n"
+ .string "Accept my challenge anytime!$"
+
+gText_Norman_Pokenav_2B5B5E:: @ 82B5B5E
+ .string "DAD: …You amaze me, {PLAYER}.\n"
+ .string "How much higher will you soar?$"
+
+gText_Steven_Pokenav_2B5B95:: @ 82B5B95
+ .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
+ .string "Have you been to MAUVILLE\n"
+ .string "already?\p"
+ .string "You should visit the BIKE SHOP\n"
+ .string "and get a MACH BIKE.\p"
+ .string "Then, try exploring the GRANITE\n"
+ .string "CAVE thoroughly.\p"
+ .string "You may make a new discovery\n"
+ .string "there.$"
+
+gText_Steven_Pokenav_2B5C53:: @ 82B5C53
+ .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
+ .string "I've met a lot of different\n"
+ .string "TRAINERS so far.\p"
+ .string "But you're one of a kind.\n"
+ .string "You're not like anyone else.$"
+
+gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9
+ .string "STEVEN: Hi, {PLAYER}{STRING 5}!\p"
+ .string "When you're on an adventure with\n"
+ .string "your POKéMON, what do you think?\p"
+ .string "Do you consider them to be strong\n"
+ .string "partners?\p"
+ .string "Do you think of them as fun\n"
+ .string "companions?\p"
+ .string "Depending on how you think, your\n"
+ .string "adventure's significance changes.$"
+
+gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4
+ .string "STEVEN: Hello?\n"
+ .string "{PLAYER}{STRING 5}?\p"
+ .string "I'm involved in a spot of trouble\n"
+ .string "at the SPACE CENTER.\p"
+ .string "I'm sorry, but I can't talk now.\n"
+ .string "Bye!$"
+
+gText_Steven_Pokenav_2B5E26:: @ 82B5E26
+ .string "STEVEN: Oh!\n"
+ .string "{PLAYER}{STRING 5}!\p"
+ .string "There's no need to talk.\n"
+ .string "It's past time for talking.\p"
+ .string "You have to believe in yourself\n"
+ .string "and do what's right.$"
+
+gText_Steven_Pokenav_2B5EA2:: @ 82B5EA2
+ .string "… … … … … …\p"
+ .string "STEVEN appears not to be getting\n"
+ .string "the call…$"
+
+gText_Steven_Pokenav_2B5ED9:: @ 82B5ED9
+ .string "STEVEN: {PLAYER}{STRING 5}… Congratulations\n"
+ .string "for entering the HALL OF FAME.\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\p"
+ .string "I hope we can meet again\n"
+ .string "somewhere!$"
+
+Route101_Text_2B5F52: @ 82B5F52
+ .string "PROF. BIRCH: Oh, {PLAYER}{KUN}!\n"
+ .string "I've already heard about you!\p"
+ .string "It seems your POKéNAV's been\n"
+ .string "upgraded with MATCH CALL.\p"
+ .string "Well, I should register, too!\p"
+ .string "That way, I'd be able to examine\n"
+ .string "your POKéDEX even while you're\l"
+ .string "out in the field.\p"
+ .string "… … … … … …$"
+
+Route101_Text_2B603A: @ 82B603A
+ .string "Registered PROF. BIRCH\n"
+ .string "in the POKéNAV.$"
+
+ .string "PROF. BIRCH: When one has both\n"
+ .string "the POKéDEX and POKéNAV, studying\l"
+ .string "POKéMON becomes more fun, eh?$"
+
+gText_MrStone_Pokenav_2B60C0:: @ 82B60C0
+ .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p"
+ .string "Since you called me, the POKéNAV\n"
+ .string "must be working properly!\p"
+ .string "Other people will be registered,\n"
+ .string "so try calling them up, too!\p"
+ .string "Good! Good!\n"
+ .string "You seem to be quite happy!\p"
+ .string "Hm…\n"
+ .string "How could I know that?\p"
+ .string "It's because I'm looking down at\n"
+ .string "you from my office window!\p"
+ .string "Wahahaha!\n"
+ .string "See you again!$"
+
+gText_MrStone_Pokenav_2B61E6:: @ 82B61E6
+ .string "MR. STONE: Oh? {PLAYER}{STRING 5}!\p"
+ .string "What's wrong? Have you forgotten\n"
+ .string "about that little errand of mine?\p"
+ .string "I need you to deliver my letter\n"
+ .string "to STEVEN in DEWFORD.\p"
+ .string "After that, deliver our parcel to\n"
+ .string "CAPT. STERN in SLATEPORT.\p"
+ .string "You remember, don't you?\p"
+ .string "Now, since I am a busy PRESIDENT,\n"
+ .string "I have to go! Bye-bye!$"
+
+gText_MrStone_Pokenav_2B6302:: @ 82B6302
+ .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p"
+ .string "Ah, so you've met STEVEN!\n"
+ .string "I'd better reward you, then!\p"
+ .string "When you visit RUSTBORO again,\n"
+ .string "come see me at my office.\p"
+ .string "I'll be waiting for you!$"
+
+gText_MrStone_Pokenav_2B63A0:: @ 82B63A0
+ .string "MR. STONE: Oh! {PLAYER}{STRING 5}!\p"
+ .string "Did you know that DEVON was\n"
+ .string "digging the RUSTURF TUNNEL?\p"
+ .string "But we shut down the operation to\n"
+ .string "protect the POKéMON in the area.\p"
+ .string "It's a no-brainer, really.\p"
+ .string "It's more important to let POKéMON\n"
+ .string "live in peace than worry about our\l"
+ .string "own convenience.$"
+
+gText_MrStone_Pokenav_2B64A2:: @ 82B64A2
+ .string "MR. STONE: Hello, hello, {PLAYER}{STRING 5}!\p"
+ .string "I heard from someone in PETALBURG\n"
+ .string "that you're NORMAN's child!\p"
+ .string "No wonder you're such a capable\n"
+ .string "being!$"
+
+gText_MrStone_Pokenav_2B6526:: @ 82B6526
+ .string "MR. STONE: What's that?\p"
+ .string "You battled your own father and\n"
+ .string "defeated him?\p"
+ .string "That's astounding!\p"
+ .string "I had no idea that I befriended\n"
+ .string "someone so special! Wahaha!$"
+
+gText_MrStone_Pokenav_2B65BB:: @ 82B65BB
+ .string "Hello!\n"
+ .string "This is DEVON CORPORATI…\l"
+ .string "Oh, hello, {PLAYER}!\p"
+ .string "Our PRESIDENT was here a little\n"
+ .string "while ago, but he's gone out.\p"
+ .string "Our PRESIDENT is busy, but you\n"
+ .string "seem to be just as busy, {PLAYER}.$"
+
+gText_MrStone_Pokenav_2B6664:: @ 82B6664
+ .string "…Huh? …What's that?\p"
+ .string "GROU… Yes? …DON?\p"
+ .string "You're breaking up…\n"
+ .string "…can't hear…\p"
+ .string "BZZZZ…$"
+
+gText_MrStone_Pokenav_2B66B1:: @ 82B66B1
+ .string "…Huh? …What's that?\p"
+ .string "Seaflo… Yes? …Caver…?\p"
+ .string "You're breaking up…\n"
+ .string "…can't hear…\p"
+ .string "BZZZZ…$"
+
+gText_MrStone_Pokenav_2B6703:: @ 82B6703
+ .string "MR. STONE: {PLAYER}{STRING 5}! It's me!\p"
+ .string "You were apparently involved in all\n"
+ .string "sorts of things, but I, being busy,\l"
+ .string "haven't a clue exactly what!\p"
+ .string "However, I urge you to take\n"
+ .string "the road you believe in and walk it.\p"
+ .string "I'll always be in your corner!\n"
+ .string "Take care!$"
+
+gText_MrStone_Pokenav_2B67ED:: @ 82B67ED
+ .string "MR. STONE: … … … … … …\n"
+ .string "Is this maybe {PLAYER}{STRING 5}?\p"
+ .string "Your voice is so full of confidence,\n"
+ .string "I didn't recognize you right off!\p"
+ .string "Hm! You must come visit us at DEVON\n"
+ .string "sometime!$"
diff --git a/include/constants/battle_frontier.h b/include/constants/battle_frontier.h
index 55b14b642..ca9e3bc9f 100644
--- a/include/constants/battle_frontier.h
+++ b/include/constants/battle_frontier.h
@@ -9,6 +9,7 @@
#define FRONTIER_FACILITY_FACTORY 4
#define FRONTIER_FACILITY_PIKE 5
#define FRONTIER_FACILITY_PYRAMID 6
+#define NUM_FRONTIER_FACILITIES 7
#define TENT_VERDANTURF 2
#define TENT_FALLARBOR 3
diff --git a/include/rtc.h b/include/rtc.h
index 5ee6a5316..7a3d3d524 100644
--- a/include/rtc.h
+++ b/include/rtc.h
@@ -44,5 +44,6 @@ void RtcInitLocalTimeOffset(s32 hour, s32 minute);
void RtcCalcLocalTimeOffset(s32 days, s32 hours, s32 minutes, s32 seconds);
void CalcTimeDifference(struct Time *result, struct Time *t1, struct Time *t2);
u32 RtcGetMinuteCount(void);
+u32 RtcGetLocalDayCount(void);
#endif // GUARD_RTC_UTIL_H
diff --git a/include/strings.h b/include/strings.h
index 7a23e2e0f..c0f646cbf 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -869,6 +869,13 @@ extern const u8 gText_TeachWhichMoveToPkmn[];
extern const u8 gText_GiveUpTeachingNewMove[];
extern const u8 gText_TeachX[];
+extern const u8 gText_Kira[];
+extern const u8 gText_Amy[];
+extern const u8 gText_John[];
+extern const u8 gText_Roy[];
+extern const u8 gText_Gabby[];
+extern const u8 gText_Anna[];
+
extern const u8 gText_DadsAdvice[];
extern const u8 gText_CantDismountBike[];
extern const u8 gText_ItemFinderNothing[];
@@ -1993,4 +2000,211 @@ extern const u8 gText_CommunicationStandby5[];
// roulette
extern const u8 gUnknown_082A5B89[];
+// match call
+extern const u8 BattleFrontier_PokeNav_2A971C[];
+extern const u8 BattleFrontier_PokeNav_2A9798[];
+extern const u8 BattleFrontier_PokeNav_2A9813[];
+extern const u8 BattleFrontier_PokeNav_2A98A8[];
+extern const u8 BattleFrontier_PokeNav_2A9977[];
+extern const u8 BattleFrontier_PokeNav_2A99FD[];
+extern const u8 BattleFrontier_PokeNav_2A9A78[];
+extern const u8 BattleFrontier_PokeNav_2A9AE8[];
+extern const u8 BattleFrontier_PokeNav_2A9BA7[];
+extern const u8 BattleFrontier_PokeNav_2A9C36[];
+extern const u8 BattleFrontier_PokeNav_2A9CC8[];
+extern const u8 BattleFrontier_PokeNav_2A9D44[];
+extern const u8 BattleFrontier_PokeNav_2A9DD7[];
+extern const u8 BattleFrontier_PokeNav_2A9E70[];
+extern const u8 BattleFrontier_PokeNav_2A9EFD[];
+extern const u8 BattleFrontier_PokeNav_2A9FAB[];
+extern const u8 BattleFrontier_PokeNav_2AA028[];
+extern const u8 BattleFrontier_PokeNav_2AA099[];
+extern const u8 BattleFrontier_PokeNav_2AA100[];
+extern const u8 BattleFrontier_PokeNav_2AA188[];
+extern const u8 BattleFrontier_PokeNav_2AA214[];
+extern const u8 BattleFrontier_PokeNav_2AA2A1[];
+extern const u8 BattleFrontier_PokeNav_2AA31B[];
+extern const u8 BattleFrontier_PokeNav_2AA3A8[];
+extern const u8 BattleFrontier_PokeNav_2AA442[];
+extern const u8 BattleFrontier_PokeNav_2AA4C5[];
+extern const u8 BattleFrontier_PokeNav_2AA520[];
+extern const u8 BattleFrontier_PokeNav_2AA5AD[];
+extern const u8 BattleFrontier_PokeNav_2AA64D[];
+extern const u8 BattleFrontier_PokeNav_2AA6AF[];
+extern const u8 BattleFrontier_PokeNav_2AA730[];
+extern const u8 BattleFrontier_PokeNav_2AA77A[];
+extern const u8 BattleFrontier_PokeNav_2AA81C[];
+extern const u8 BattleFrontier_PokeNav_2AA88C[];
+extern const u8 BattleFrontier_PokeNav_2AA934[];
+extern const u8 BattleFrontier_PokeNav_2AA9D3[];
+extern const u8 BattleFrontier_PokeNav_2AAA40[];
+extern const u8 BattleFrontier_PokeNav_2AAAE4[];
+extern const u8 BattleFrontier_PokeNav_2AAB8C[];
+extern const u8 BattleFrontier_PokeNav_2AAC25[];
+extern const u8 BattleFrontier_PokeNav_2AAC9D[];
+extern const u8 BattleFrontier_PokeNav_2AAD41[];
+extern const u8 BattleFrontier_PokeNav_2AAE00[];
+extern const u8 BattleFrontier_PokeNav_2AAE7F[];
+extern const u8 BattleFrontier_PokeNav_2AAEF1[];
+extern const u8 BattleFrontier_PokeNav_2AAF69[];
+extern const u8 BattleFrontier_PokeNav_2AB010[];
+extern const u8 BattleFrontier_PokeNav_2AB076[];
+extern const u8 BattleFrontier_PokeNav_2AB11A[];
+extern const u8 BattleFrontier_PokeNav_2AB1B4[];
+extern const u8 BattleFrontier_PokeNav_2AB23D[];
+extern const u8 BattleFrontier_PokeNav_2AB2E9[];
+extern const u8 BattleFrontier_PokeNav_2AB382[];
+extern const u8 BattleFrontier_PokeNav_2AB410[];
+extern const u8 BattleFrontier_PokeNav_2AB4B0[];
+extern const u8 BattleFrontier_PokeNav_2AB538[];
+extern const u8 BattleFrontier_PokeNav_2AB5E4[];
+extern const u8 BattleFrontier_PokeNav_2AB670[];
+extern const u8 BattleFrontier_PokeNav_2AB6CD[];
+extern const u8 BattleFrontier_PokeNav_2AB73C[];
+extern const u8 BattleFrontier_PokeNav_2AB808[];
+extern const u8 BattleFrontier_PokeNav_2AB8B7[];
+extern const u8 BattleFrontier_PokeNav_2AB95D[];
+extern const u8 BattleFrontier_PokeNav_2ABA03[];
+extern const u8 BattleFrontier_PokeNav_2ABA9F[];
+extern const u8 BattleFrontier_PokeNav_2ABB62[];
+extern const u8 BattleFrontier_PokeNav_2ABC26[];
+extern const u8 BattleFrontier_PokeNav_2ABCE9[];
+extern const u8 BattleFrontier_PokeNav_2ABDA2[];
+extern const u8 BattleFrontier_PokeNav_2ABE5E[];
+extern const u8 BattleFrontier_PokeNav_2ABF36[];
+extern const u8 BattleFrontier_PokeNav_2AC009[];
+extern const u8 BattleFrontier_PokeNav_2AC0BD[];
+extern const u8 BattleFrontier_PokeNav_2AC18C[];
+extern const u8 BattleFrontier_PokeNav_2AC228[];
+extern const u8 BattleFrontier_PokeNav_2AC30C[];
+extern const u8 BattleFrontier_PokeNav_2AC3B6[];
+extern const u8 BattleFrontier_PokeNav_2AC446[];
+extern const u8 BattleFrontier_PokeNav_2AC5C7[];
+extern const u8 BattleFrontier_PokeNav_2AC682[];
+extern const u8 BattleFrontier_PokeNav_2AC755[];
+extern const u8 BattleFrontier_PokeNav_2AC82C[];
+extern const u8 BattleFrontier_PokeNav_2AC914[];
+extern const u8 BattleFrontier_PokeNav_2ACA59[];
+extern const u8 BattleFrontier_PokeNav_2ACB02[];
+extern const u8 BattleFrontier_PokeNav_2ACC3F[];
+extern const u8 BattleFrontier_PokeNav_2ACD2F[];
+extern const u8 BattleFrontier_PokeNav_2ACE1E[];
+extern const u8 BattleFrontier_PokeNav_2ACF32[];
+extern const u8 BattleFrontier_PokeNav_2ACFBE[];
+extern const u8 BattleFrontier_PokeNav_2AD0AC[];
+extern const u8 BattleFrontier_PokeNav_2AD194[];
+extern const u8 BattleFrontier_PokeNav_2AD1DF[];
+extern const u8 BattleFrontier_PokeNav_2AD2A8[];
+extern const u8 BattleFrontier_PokeNav_2AD34F[];
+extern const u8 BattleFrontier_PokeNav_2AD44E[];
+extern const u8 BattleFrontier_PokeNav_2AD53A[];
+extern const u8 BattleFrontier_PokeNav_2AD642[];
+extern const u8 BattleFrontier_PokeNav_2AD801[];
+extern const u8 BattleFrontier_PokeNav_2AD92E[];
+extern const u8 BattleFrontier_PokeNav_2ADA8F[];
+extern const u8 BattleFrontier_PokeNav_2ADB9B[];
+extern const u8 BattleFrontier_PokeNav_2ADC92[];
+extern const u8 BattleFrontier_PokeNav_2ADE08[];
+extern const u8 BattleFrontier_PokeNav_2ADF07[];
+extern const u8 BattleFrontier_PokeNav_2AE0D9[];
+extern const u8 BattleFrontier_PokeNav_2AE1FD[];
+extern const u8 BattleFrontier_PokeNav_2AE327[];
+extern const u8 BattleFrontier_PokeNav_2AE3DA[];
+extern const u8 BattleFrontier_PokeNav_2AE489[];
+extern const u8 BattleFrontier_PokeNav_2AE5CD[];
+extern const u8 BattleFrontier_PokeNav_2AE698[];
+extern const u8 BattleFrontier_PokeNav_2AE704[];
+extern const u8 BattleFrontier_PokeNav_2AE78F[];
+extern const u8 BattleFrontier_PokeNav_2AE859[];
+extern const u8 BattleFrontier_PokeNav_2AE8E6[];
+extern const u8 BattleFrontier_PokeNav_2AE998[];
+extern const u8 BattleFrontier_PokeNav_2AEA8F[];
+extern const u8 BattleFrontier_PokeNav_2AEB77[];
+extern const u8 BattleFrontier_PokeNav_2AEBFA[];
+extern const u8 BattleFrontier_PokeNav_2AECC1[];
+extern const u8 BattleFrontier_PokeNav_2AED52[];
+extern const u8 BattleFrontier_PokeNav_2AEE35[];
+extern const u8 BattleFrontier_PokeNav_2AEEF4[];
+extern const u8 BattleFrontier_PokeNav_2AEFDA[];
+extern const u8 BattleFrontier_PokeNav_2AF0E7[];
+extern const u8 BattleFrontier_PokeNav_2AF1B8[];
+extern const u8 BattleFrontier_PokeNav_2AF2C4[];
+extern const u8 BattleFrontier_PokeNav_2AF371[];
+extern const u8 BattleFrontier_PokeNav_2AF480[];
+extern const u8 BattleFrontier_PokeNav_2AF671[];
+extern const u8 BattleFrontier_PokeNav_2AF7D8[];
+extern const u8 BattleFrontier_PokeNav_2AF8F7[];
+extern const u8 BattleFrontier_PokeNav_2AFA39[];
+extern const u8 BattleFrontier_PokeNav_2AFB26[];
+extern const u8 BattleFrontier_PokeNav_2AFC07[];
+extern const u8 BattleFrontier_PokeNav_2AFC78[];
+extern const u8 BattleFrontier_PokeNav_2AFCFF[];
+extern const u8 BattleFrontier_PokeNav_2AFDA7[];
+extern const u8 BattleFrontier_PokeNav_2AFE3D[];
+extern const u8 BattleFrontier_PokeNav_2AFECA[];
+extern const u8 BattleFrontier_PokeNav_2AFF64[];
+extern const u8 BattleFrontier_PokeNav_2AFFF0[];
+extern const u8 BattleFrontier_PokeNav_2B00B5[];
+extern const u8 BattleFrontier_PokeNav_2B0129[];
+extern const u8 BattleFrontier_PokeNav_2B01A5[];
+extern const u8 BattleFrontier_PokeNav_2B0232[];
+extern const u8 BattleFrontier_PokeNav_2B02D9[];
+extern const u8 BattleFrontier_PokeNav_2B0366[];
+extern const u8 BattleFrontier_PokeNav_2B03E6[];
+extern const u8 BattleFrontier_PokeNav_2B0457[];
+extern const u8 BattleFrontier_PokeNav_2B04DE[];
+extern const u8 BattleFrontier_PokeNav_2B0586[];
+extern const u8 BattleFrontier_PokeNav_2B061C[];
+extern const u8 BattleFrontier_PokeNav_2B06A3[];
+extern const u8 BattleFrontier_PokeNav_2B073B[];
+extern const u8 BattleFrontier_PokeNav_2B07C7[];
+extern const u8 BattleFrontier_PokeNav_2B0894[];
+extern const u8 BattleFrontier_PokeNav_2B0908[];
+extern const u8 BattleFrontier_PokeNav_2B0984[];
+extern const u8 BattleFrontier_PokeNav_2B0A11[];
+extern const u8 BattleFrontier_PokeNav_2B0AB8[];
+extern const u8 BattleFrontier_PokeNav_2B0B45[];
+extern const u8 BattleFrontier_PokeNav_2B0BC5[];
+extern const u8 BattleFrontier_PokeNav_2B0C4A[];
+extern const u8 BattleFrontier_PokeNav_2B0CC7[];
+extern const u8 BattleFrontier_PokeNav_2B0D4A[];
+extern const u8 BattleFrontier_PokeNav_2B0DC8[];
+extern const u8 BattleFrontier_PokeNav_2B0E35[];
+extern const u8 BattleFrontier_PokeNav_2B0ED1[];
+extern const u8 BattleFrontier_PokeNav_2B0F72[];
+extern const u8 BattleFrontier_PokeNav_2B102A[];
+extern const u8 BattleFrontier_PokeNav_2B10A7[];
+extern const u8 BattleFrontier_PokeNav_2B1121[];
+extern const u8 BattleFrontier_PokeNav_2B11D3[];
+extern const u8 BattleFrontier_PokeNav_2B124D[];
+extern const u8 BattleFrontier_PokeNav_2B12D0[];
+extern const u8 BattleFrontier_PokeNav_2B1347[];
+extern const u8 BattleFrontier_PokeNav_2B13B1[];
+extern const u8 BattleFrontier_PokeNav_2B142B[];
+extern const u8 BattleFrontier_PokeNav_2B14B4[];
+extern const u8 BattleFrontier_PokeNav_2B1525[];
+extern const u8 BattleFrontier_PokeNav_2B158E[];
+extern const u8 BattleFrontier_PokeNav_2B1622[];
+extern const u8 BattleFrontier_PokeNav_2B169D[];
+extern const u8 BattleFrontier_PokeNav_2B1775[];
+extern const u8 BattleFrontier_PokeNav_2B17F8[];
+extern const u8 BattleFrontier_PokeNav_2B1877[];
+extern const u8 BattleFrontier_PokeNav_2B1946[];
+extern const u8 BattleFrontier_PokeNav_2B19C7[];
+extern const u8 BattleFrontier_PokeNav_2B1A4C[];
+extern const u8 BattleFrontier_PokeNav_2B1ACA[];
+extern const u8 BattleFrontier_PokeNav_2B1B50[];
+extern const u8 BattleFrontier_PokeNav_2B1BE4[];
+extern const u8 BattleFrontier_PokeNav_2B1C6A[];
+extern const u8 BattleFrontier_PokeNav_2B1CCF[];
+extern const u8 BattleFrontier_PokeNav_2B1D38[];
+extern const u8 BattleFrontier_PokeNav_2B1DCD[];
+extern const u8 BattleFrontier_PokeNav_2B1E4B[];
+extern const u8 BattleFrontier_PokeNav_2B1F24[];
+extern const u8 BattleFrontier_PokeNav_2B1FA8[];
+extern const u8 BattleFrontier_PokeNav_2B2022[];
+extern const u8 BattleFrontier_PokeNav_2B20F3[];
+extern const u8 BattleFrontier_PokeNav_2B2175[];
+extern const u8 BattleFrontier_PokeNav_2B21FC[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index f675b6a91..324045b50 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -262,7 +262,7 @@ SECTIONS {
src/lilycove_lady.o(.text);
src/battle_dome.o(.text);
src/battle_palace.o(.text);
- asm/battle_frontier_1.o(.text);
+ src/match_call.o(.text);
src/menu.o(.text);
src/battle_factory_screen.o(.text);
src/apprentice.o(.text);
@@ -289,7 +289,7 @@ SECTIONS {
src/unk_pokedex_area_screen_helper.o(.text);
src/battle_pyramid_bag.o(.text);
asm/pokenav.o(.text);
- src/match_call.o(.text);
+ src/pokenav_match_call.o(.text);
asm/pokenav.o(.text.after.match.call);
src/rayquaza_scene.o(.text);
src/walda_phrase.o(.text);
@@ -568,7 +568,7 @@ SECTIONS {
src/lilycove_lady.o(.rodata);
src/battle_dome.o(.rodata);
src/battle_palace.o(.rodata);
- data/battle_frontier_1.o(.rodata);
+ src/match_call.o(.rodata);
src/menu.o(.rodata);
src/battle_factory_screen.o(.rodata);
src/apprentice.o(.rodata);
@@ -593,7 +593,7 @@ SECTIONS {
src/unk_pokedex_area_screen_helper.o(.rodata);
src/battle_pyramid_bag.o(.rodata);
data/pokenav.o(.rodata);
- src/match_call.o(.rodata);
+ src/pokenav_match_call.o(.rodata);
data/pokenav.o(.rodata.after.match.call);
src/rayquaza_scene.o(.rodata);
src/walda_phrase.o(.rodata);
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index e6a859c84..4f6f5acdf 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -32,7 +32,7 @@
#include "constants/maps.h"
#include "constants/songs.h"
-extern bool32 sub_8196034(void);
+extern bool32 TryStartMatchCall(void);
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
@@ -600,7 +600,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
ScriptContext1_SetupScript(SSTidalCorridor_EventScript_23C050);
return TRUE;
}
- if (sub_8196034())
+ if (TryStartMatchCall())
return TRUE;
return FALSE;
}
diff --git a/src/field_message_box.c b/src/field_message_box.c
index 5e23b5f6b..299aafaf2 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -5,8 +5,8 @@
#include "task.h"
#include "text.h"
-extern bool32 sub_8196094(void);
-extern void sub_8196080(u8*);
+extern bool32 IsMatchCallTaskActive(void);
+extern void StartMatchCallFromScript(u8*);
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
@@ -68,7 +68,7 @@ bool8 ShowFieldMessage(u8 *str)
void sub_8098214(u8 taskId)
{
- if (!sub_8196094())
+ if (!IsMatchCallTaskActive())
{
sFieldMessageBoxMode = 0;
DestroyTask(taskId);
@@ -81,7 +81,7 @@ bool8 sub_8098238(u8 *str)
return FALSE;
StringExpandPlaceholders(gStringVar4, str);
CreateTask(sub_8098214, 0);
- sub_8196080(str);
+ StartMatchCallFromScript(str);
sFieldMessageBoxMode = 2;
return TRUE;
}
diff --git a/src/match_call.c b/src/match_call.c
index a15700070..1b9eef76d 100644..100755
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1,1275 +1,2017 @@
-
-// Includes
#include "global.h"
+#include "alloc.h"
+#include "battle.h"
#include "battle_setup.h"
+#include "bg.h"
+#include "data2.h"
#include "event_data.h"
+#include "event_object_movement.h"
+#include "field_player_avatar.h"
+#include "main.h"
+#include "menu.h"
+#include "new_game.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokedex.h"
+#include "pokemon.h"
+#include "random.h"
+#include "region_map.h"
+#include "rtc.h"
+#include "script.h"
+#include "script_movement.h"
+#include "sound.h"
#include "string_util.h"
-#include "battle.h"
-#include "gym_leader_rematch.h"
-
-extern void sub_8197080(u8 *dest);
-extern const u8 gTrainerClassNames[][13];
-
-// Static type declarations
-
-typedef struct MatchCallTextDataStruct {
- const u8 *text;
- u16 flag;
- u16 flag2;
-} match_call_text_data_t;
-
-struct MatchCallStructCommon {
- u8 type;
- u8 v1;
- u16 flag;
-};
-
-struct MatchCallStruct0 {
- u8 type;
- u8 v1;
- u16 flag;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+#include "strings.h"
+#include "task.h"
+#include "wild_encounter.h"
+#include "window.h"
+#include "constants/abilities.h"
+#include "constants/battle_frontier.h"
+#include "constants/event_objects.h"
+#include "constants/maps.h"
+#include "constants/region_map_sections.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/trainers.h"
+
+struct MatchCallState
+{
+ u32 minutes;
+ u16 trainerId;
+ u8 stepCounter;
+ u8 triggeredFromScript;
};
-struct MatchCallStruct1 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 rematchTableIdx;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+struct MatchCallTrainerTextInfo
+{
+ u16 trainerId;
+ u16 unused;
+ u16 battleTopicTextIds[3];
+ u16 battleFrontierStreakTextId;
+ u8 battleFrontierRecordStreakTextIndex;
+ u16 sameRouteMatchCallTextId;
+ u16 differentRouteMatchCallTextId;
};
-struct MatchCallSubstruct2 {
- u16 flag;
- u8 v2;
+struct MatchCallText
+{
+ const u8 *text;
+ s8 stringVarFuncIds[3];
};
-struct MatchCallStruct2 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 rematchTableIdx;
- const u8 *desc;
- const match_call_text_data_t *textData;
- const struct MatchCallSubstruct2 *v10;
+struct MultiTrainerMatchCallText
+{
+ u16 trainerId;
+ const u8 *text;
};
-struct MatchCallStruct3 {
- u8 type;
- u8 v1;
- u16 flag;
- const u8 *desc;
- const u8 *name;
+struct BattleFrontierStreakInfo
+{
+ u16 facilityId;
+ u16 streak;
};
-struct MatchCallStruct4 {
- u8 type;
- u8 gender;
- u16 flag;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+EWRAM_DATA struct MatchCallState gMatchCallState = {0};
+EWRAM_DATA struct BattleFrontierStreakInfo gBattleFrontierStreakInfo = {0};
+
+bool32 SelectMatchCallMessage(int, u8 *);
+static u32 GetCurrentTotalMinutes(struct Time *);
+static u32 GetNumRegisteredNPCs(void);
+static u32 GetActiveMatchCallTrainerId(u32);
+static int GetTrainerMatchCallId(int);
+static u16 GetRematchTrainerLocation(int);
+static bool32 TrainerIsEligibleForRematch(int);
+static void StartMatchCall(void);
+static void ExecuteMatchCall(u8);
+static void DrawMatchCallTextBoxBorder(u32, u32, u32);
+static void sub_8196694(u8);
+static void InitMatchCallTextPrinter(int, const u8 *);
+static bool32 ExecuteMatchCallTextPrinter(int);
+static const struct MatchCallText *GetSameRouteMatchCallText(int, u8 *);
+static const struct MatchCallText *GetDifferentRouteMatchCallText(int, u8 *);
+static const struct MatchCallText *GetBattleMatchCallText(int, u8 *);
+static const struct MatchCallText *GetGeneralMatchCallText(int, u8 *);
+static bool32 sub_8196D74(int);
+static void BuildMatchCallString(int, const struct MatchCallText *, u8 *);
+static u16 GetFrontierStreakInfo(u16, u32 *);
+static void PopulateMatchCallStringVars(int, const s8 *);
+static void PopulateMatchCallStringVar(int, int, u8 *);
+static bool32 LoadMatchCallWindowGfx(u8);
+static bool32 MoveMatchCallWindowToVram(u8);
+static bool32 PrintMatchCallIntroEllipsis(u8);
+static bool32 sub_81962B0(u8);
+static bool32 sub_81962D8(u8);
+static bool32 sub_8196330(u8);
+static bool32 sub_8196390(u8);
+static bool32 sub_81963F0(u8);
+static void PopulateTrainerName(int, u8 *);
+static void PopulateMapName(int, u8 *);
+static void PopulateSpeciesFromTrainerLocation(int, u8 *);
+static void PopulateSpeciesFromTrainerParty(int, u8 *);
+static void PopulateBattleFrontierFacilityName(int, u8 *);
+static void PopulateBattleFrontierStreak(int, u8 *);
+
+extern void sub_81973A4(void);
+
+#define TEXT_ID(topic, id) (((topic) << 8) | ((id) & 0xFF))
+
+static const struct MatchCallTrainerTextInfo sMatchCallTrainers[] =
+{
+ {
+ .trainerId = TRAINER_ROSE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 3),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_ANDRES_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 62),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_DUSTY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 4),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_LOLA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 5),
+ .battleFrontierRecordStreakTextIndex = 2,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 2),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 2),
+ },
+ {
+ .trainerId = TRAINER_RICKY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 6),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_LILA_AND_ROY_1,
+ .unused = 4,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 61),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_CRISTIN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 10), TEXT_ID(2, 10), TEXT_ID(3, 10) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 64),
+ .battleFrontierRecordStreakTextIndex = 10,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 10),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 10),
+ },
+ {
+ .trainerId = TRAINER_BROOKE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 8),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_WILTON_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 7),
+ .battleFrontierRecordStreakTextIndex = 6,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 6),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 6),
+ },
+ {
+ .trainerId = TRAINER_VALERIE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 9),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_CINDY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 10),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_THALIA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 10), TEXT_ID(3, 10) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 14),
+ .battleFrontierRecordStreakTextIndex = 10,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 10),
+ },
+ {
+ .trainerId = TRAINER_JESSICA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 10), TEXT_ID(2, 10), TEXT_ID(3, 10) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 11),
+ .battleFrontierRecordStreakTextIndex = 10,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 10),
+ },
+ {
+ .trainerId = TRAINER_WINSTON_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 12),
+ .battleFrontierRecordStreakTextIndex = 4,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 4),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 4),
+ },
+ {
+ .trainerId = TRAINER_STEVE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 13),
+ .battleFrontierRecordStreakTextIndex = 7,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 7),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 7),
+ },
+ {
+ .trainerId = TRAINER_TONY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 15),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_NOB_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 16),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_KOJI_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 59),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_FERNANDO_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 17),
+ .battleFrontierRecordStreakTextIndex = 6,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 6),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 6),
+ },
+ {
+ .trainerId = TRAINER_DALTON_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 18),
+ .battleFrontierRecordStreakTextIndex = 4,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 4),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 4),
+ },
+ {
+ .trainerId = TRAINER_BERNIE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 11), TEXT_ID(2, 11), TEXT_ID(3, 11) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 19),
+ .battleFrontierRecordStreakTextIndex = 11,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 11),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 11),
+ },
+ {
+ .trainerId = TRAINER_ETHAN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 20),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_JOHN_AND_JAY_1,
+ .unused = 3,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 60),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_JEFFREY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 21),
+ .battleFrontierRecordStreakTextIndex = 7,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 7),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 7),
+ },
+ {
+ .trainerId = TRAINER_CAMERON_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 22),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 4),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 4),
+ },
+ {
+ .trainerId = TRAINER_JACKI_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 23),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_WALTER_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 24),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_KAREN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 26),
+ .battleFrontierRecordStreakTextIndex = 2,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 2),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 2),
+ },
+ {
+ .trainerId = TRAINER_JERRY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 25),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_ANNA_AND_MEG_1,
+ .unused = 6,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 27),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_ISABEL_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 14), TEXT_ID(2, 14), TEXT_ID(3, 14) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 29),
+ .battleFrontierRecordStreakTextIndex = 14,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 14),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 14),
+ },
+ {
+ .trainerId = TRAINER_MIGUEL_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 11), TEXT_ID(2, 11), TEXT_ID(3, 11) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 28),
+ .battleFrontierRecordStreakTextIndex = 11,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 11),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 11),
+ },
+ {
+ .trainerId = TRAINER_TIMOTHY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 30),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_SHELBY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 13), TEXT_ID(2, 13), TEXT_ID(3, 13) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 31),
+ .battleFrontierRecordStreakTextIndex = 13,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 13),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 13),
+ },
+ {
+ .trainerId = TRAINER_CALVIN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 32),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_ELLIOT_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 33),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_ISAIAH_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 38),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_MARIA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 37),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_ABIGAIL_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 35),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_DYLAN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 36),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_KATELYN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 40),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_BENJAMIN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 34),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_PABLO_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 39),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_NICOLAS_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 4), TEXT_ID(2, 4), TEXT_ID(3, 4) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 41),
+ .battleFrontierRecordStreakTextIndex = 4,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 4),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 4),
+ },
+ {
+ .trainerId = TRAINER_ROBERT_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 6), TEXT_ID(2, 6), TEXT_ID(3, 6) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 42),
+ .battleFrontierRecordStreakTextIndex = 6,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 6),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 6),
+ },
+ {
+ .trainerId = TRAINER_LAO_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 43),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_CYNDY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 44),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_MADELINE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 45),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_JENNY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 46),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_DIANA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 47),
+ .battleFrontierRecordStreakTextIndex = 2,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 2),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 2),
+ },
+ {
+ .trainerId = TRAINER_AMY_AND_LIV_1,
+ .unused = 2,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 48),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 2),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 2),
+ },
+ {
+ .trainerId = TRAINER_ERNEST_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 49),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_CORY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 63),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_EDWIN_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 7), TEXT_ID(2, 7), TEXT_ID(3, 7) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 50),
+ .battleFrontierRecordStreakTextIndex = 7,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 7),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 7),
+ },
+ {
+ .trainerId = TRAINER_LYDIA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 52),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_ISAAC_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 51),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_GABRIELLE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 2),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_CATHERINE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 54),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
+ {
+ .trainerId = TRAINER_JACKSON_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 5), TEXT_ID(2, 5), TEXT_ID(3, 5) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 53),
+ .battleFrontierRecordStreakTextIndex = 5,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 5),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 5),
+ },
+ {
+ .trainerId = TRAINER_HALEY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 55),
+ .battleFrontierRecordStreakTextIndex = 2,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 2),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 2),
+ },
+ {
+ .trainerId = TRAINER_JAMES_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 1), TEXT_ID(2, 1), TEXT_ID(3, 1) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 56),
+ .battleFrontierRecordStreakTextIndex = 1,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 1),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 1),
+ },
+ {
+ .trainerId = TRAINER_TRENT_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 3), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 57),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_SAWYER_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 15), TEXT_ID(2, 3), TEXT_ID(3, 3) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 1),
+ .battleFrontierRecordStreakTextIndex = 3,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 3),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 3),
+ },
+ {
+ .trainerId = TRAINER_KIRA_AND_DAN_1,
+ .unused = 1,
+ .battleTopicTextIds = { TEXT_ID(1, 9), TEXT_ID(2, 9), TEXT_ID(3, 9) },
+ .battleFrontierStreakTextId = TEXT_ID(1, 58),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
};
-struct MatchCallStruct5 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 v4;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+static const struct MatchCallText sMatchCallWildBattleTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2A971C, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9798, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9813, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A98A8, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9977, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A99FD, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9A78, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9AE8, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9BA7, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9C36, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9CC8, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9D44, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9DD7, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9E70, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2A9EFD, .stringVarFuncIds = { 0, 2, -1 } },
};
-#define MATCHCALLDEF(name, type_, ...) \
-static const struct MatchCallStruct##type_ name = { \
- .type = type_, \
- __VA_ARGS__ \
+ static const struct MatchCallText sMatchCallNegativeBattleTexts[] =
+ {
+ { .text = BattleFrontier_PokeNav_2A9FAB, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA028, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA099, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA100, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA188, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA214, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA2A1, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA31B, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA3A8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA442, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA4C5, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA520, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA5AD, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA64D, .stringVarFuncIds = { 0, -1, -1 } },
};
-typedef union {
- const struct MatchCallStructCommon *common;
- const struct MatchCallStruct0 *type0;
- const struct MatchCallStruct1 *type1;
- const struct MatchCallStruct2 *type2;
- const struct MatchCallStruct3 *type3;
- const struct MatchCallStruct4 *type4;
- const struct MatchCallStruct5 *type5;
-} match_call_t;
-
-struct UnkStruct_08625388 {
- u16 idx;
- u16 v2;
- u16 v4;
- const u8 *v8[4];
+static const struct MatchCallText sMatchCallPositiveBattleTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2AA6AF, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA730, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA77A, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA81C, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA88C, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA934, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AA9D3, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAA40, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAAE4, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAB8C, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAC25, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAC9D, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAD41, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAE00, .stringVarFuncIds = { 0, 3, -1 } },
};
-// Static RAM declarations
-
-// Static ROM declarations
-
-static bool32 MatchCallGetFlag_Type0(match_call_t);
-static bool32 MatchCallGetFlag_Type1(match_call_t);
-static bool32 MatchCallGetFlag_Type2(match_call_t);
-static bool32 MatchCallGetFlag_Type3(match_call_t);
-static bool32 MatchCallGetFlag_Type4(match_call_t);
-
-static u8 sub_81D1714(match_call_t);
-static u8 sub_81D1718(match_call_t);
-static u8 sub_81D171C(match_call_t);
-static u8 sub_81D1750(match_call_t);
-static u8 sub_81D1754(match_call_t);
-
-static bool32 MatchCall_IsRematchable_Type0(match_call_t);
-static bool32 MatchCall_IsRematchable_Type1(match_call_t);
-static bool32 MatchCall_IsRematchable_Type2(match_call_t);
-static bool32 MatchCall_IsRematchable_Type3(match_call_t);
-static bool32 MatchCall_IsRematchable_Type4(match_call_t);
-
-static bool32 sub_81D1840(match_call_t);
-static bool32 sub_81D1844(match_call_t);
-static bool32 sub_81D1848(match_call_t);
-static bool32 sub_81D184C(match_call_t);
-static bool32 sub_81D1850(match_call_t);
-
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t);
-
-static void MatchCall_GetMessage_Type0(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type1(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type2(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type3(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type4(match_call_t, u8 *);
-
-static void MatchCall_GetNameAndDesc_Type0(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type1(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type2(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type3(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type4(match_call_t, const u8 **, const u8 **);
-
-static void sub_81D1920(const match_call_text_data_t *, u8 *);
-static void sub_81D199C(const match_call_text_data_t *, u16, u8 *);
-static void MatchCall_GetNameAndDescByRematchIdx(u32, const u8 **, const u8 **);
-
-extern const u8 gText_MrStone_Pokenav_2B60C0[];
-extern const u8 gText_MrStone_Pokenav_2B61E6[];
-extern const u8 gText_MrStone_Pokenav_2B6302[];
-extern const u8 gText_MrStone_Pokenav_2B63A0[];
-extern const u8 gText_MrStone_Pokenav_2B64A2[];
-extern const u8 gText_MrStone_Pokenav_2B6526[];
-extern const u8 gText_MrStone_Pokenav_2B65BB[];
-extern const u8 gText_MrStone_Pokenav_2B6664[];
-extern const u8 gText_MrStone_Pokenav_2B66B1[];
-extern const u8 gText_MrStone_Pokenav_2B6703[];
-extern const u8 gText_MrStone_Pokenav_2B67ED[];
-
-extern const u8 gMrStoneMatchCallDesc[];
-extern const u8 gMrStoneMatchCallName[];
-
-extern const u8 gText_Norman_Pokenav_2B5719[];
-extern const u8 gText_Norman_Pokenav_2B5795[];
-extern const u8 gText_Norman_Pokenav_2B584D[];
-extern const u8 gText_Norman_Pokenav_2B58E3[];
-extern const u8 gText_Norman_Pokenav_2B5979[];
-extern const u8 gText_Norman_Pokenav_2B5A07[];
-extern const u8 gText_Norman_Pokenav_2B5A69[];
-extern const u8 gText_Norman_Pokenav_2B5ACF[];
-extern const u8 gText_Norman_Pokenav_2B5B5E[];
-
-extern const u8 gNormanMatchCallDesc[];
-extern const u8 gNormanMatchCallName[];
-
-extern const u8 gProfBirchMatchCallDesc[];
-extern const u8 gProfBirchMatchCallName[];
-
-extern const u8 gText_Mom_Pokenav_2B227B[];
-extern const u8 gText_Mom_Pokenav_2B2310[];
-extern const u8 gText_Mom_Pokenav_2B23F3[];
-
-extern const u8 gMomMatchCallDesc[];
-extern const u8 gMomMatchCallName[];
-
-extern const u8 gText_Steven_Pokenav_2B5B95[];
-extern const u8 gText_Steven_Pokenav_2B5C53[];
-extern const u8 gText_Steven_Pokenav_2B5CC9[];
-extern const u8 gText_Steven_Pokenav_2B5DB4[];
-extern const u8 gText_Steven_Pokenav_2B5E26[];
-extern const u8 gText_Steven_Pokenav_2B5EA2[];
-extern const u8 gText_Steven_Pokenav_2B5ED9[];
-
-extern const u8 gStevenMatchCallDesc[];
-extern const u8 gStevenMatchCallName[];
-
-extern const u8 gText_May_Pokenav_2B3AB3[];
-extern const u8 gText_May_Pokenav_2B3B3F[];
-extern const u8 gText_May_Pokenav_2B3C13[];
-extern const u8 gText_May_Pokenav_2B3CF3[];
-extern const u8 gText_May_Pokenav_2B3D4B[];
-extern const u8 gText_May_Pokenav_2B3DD1[];
-extern const u8 gText_May_Pokenav_2B3E69[];
-extern const u8 gText_May_Pokenav_2B3ECD[];
-extern const u8 gText_May_Pokenav_2B3F2B[];
-extern const u8 gText_May_Pokenav_2B3FFB[];
-extern const u8 gText_May_Pokenav_2B402B[];
-extern const u8 gText_May_Pokenav_2B414B[];
-extern const u8 gText_May_Pokenav_2B4228[];
-extern const u8 gText_May_Pokenav_2B42E0[];
-extern const u8 gText_May_Pokenav_2B4350[];
-extern const u8 gMayBrendanMatchCallDesc[];
-extern const u8 gExpandedPlaceholder_May[];
-extern const u8 gText_Brendan_Pokenav_2B43EF[];
-extern const u8 gText_Brendan_Pokenav_2B4486[];
-extern const u8 gText_Brendan_Pokenav_2B4560[];
-extern const u8 gText_Brendan_Pokenav_2B463F[];
-extern const u8 gText_Brendan_Pokenav_2B46B7[];
-extern const u8 gText_Brendan_Pokenav_2B4761[];
-extern const u8 gText_Brendan_Pokenav_2B47F4[];
-extern const u8 gText_Brendan_Pokenav_2B4882[];
-extern const u8 gText_Brendan_Pokenav_2B4909[];
-extern const u8 gText_Brendan_Pokenav_2B49C4[];
-extern const u8 gText_Brendan_Pokenav_2B4A44[];
-extern const u8 gText_Brendan_Pokenav_2B4B28[];
-extern const u8 gText_Brendan_Pokenav_2B4C15[];
-extern const u8 gText_Brendan_Pokenav_2B4CD8[];
-extern const u8 gText_Brendan_Pokenav_2B4D46[];
-extern const u8 gExpandedPlaceholder_Brendan[];
-extern const u8 gText_Wally_Pokenav_2B4DE2[];
-extern const u8 gText_Wally_Pokenav_2B4E57[];
-extern const u8 gText_Wally_Pokenav_2B4EA5[];
-extern const u8 gText_Wally_Pokenav_2B4F41[];
-extern const u8 gText_Wally_Pokenav_2B4FF3[];
-extern const u8 gText_Wally_Pokenav_2B50B1[];
-extern const u8 gText_Wally_Pokenav_2B5100[];
-extern const u8 gWallyMatchCallDesc[];
-extern const u8 gText_Scott_Pokenav_2B5184[];
-extern const u8 gText_Scott_Pokenav_2B5275[];
-extern const u8 gText_Scott_Pokenav_2B5323[];
-extern const u8 gText_Scott_Pokenav_2B53DB[];
-extern const u8 gText_Scott_Pokenav_2B54A5[];
-extern const u8 gText_Scott_Pokenav_2B5541[];
-extern const u8 gText_Scott_Pokenav_2B56CA[];
-extern const u8 gScottMatchCallDesc[];
-extern const u8 gScottMatchCallName[];
-extern const u8 gText_Roxanne_Pokenav_2B2456[];
-extern const u8 gText_Roxanne_Pokenav_2B250E[];
-extern const u8 gText_Roxanne_Pokenav_2B25C1[];
-extern const u8 gText_Roxanne_Pokenav_2B2607[];
-extern const u8 gRoxanneMatchCallDesc[];
-extern const u8 gText_Brawly_Pokenav_2B2659[];
-extern const u8 gText_Brawly_Pokenav_2B275D[];
-extern const u8 gText_Brawly_Pokenav_2B286F[];
-extern const u8 gText_Brawly_Pokenav_2B28D1[];
-extern const u8 gBrawlyMatchCallDesc[];
-extern const u8 gText_Wattson_Pokenav_2B2912[];
-extern const u8 gText_Wattson_Pokenav_2B29CA[];
-extern const u8 gText_Wattson_Pokenav_2B2AB6[];
-extern const u8 gText_Wattson_Pokenav_2B2B01[];
-extern const u8 gWattsonMatchCallDesc[];
-extern const u8 gText_Flannery_Pokenav_2B2B4D[];
-extern const u8 gText_Flannery_Pokenav_2B2C0E[];
-extern const u8 gText_Flannery_Pokenav_2B2CF1[];
-extern const u8 gText_Flannery_Pokenav_2B2D54[];
-extern const u8 gFlanneryMatchCallDesc[];
-extern const u8 gText_Winona_Pokenav_2B2DA4[];
-extern const u8 gText_Winona_Pokenav_2B2E2B[];
-extern const u8 gText_Winona_Pokenav_2B2EC2[];
-extern const u8 gText_Winona_Pokenav_2B2F16[];
-extern const u8 gWinonaMatchCallDesc[];
-extern const u8 gText_TateLiza_Pokenav_2B2F97[];
-extern const u8 gText_TateLiza_Pokenav_2B306E[];
-extern const u8 gText_TateLiza_Pokenav_2B3158[];
-extern const u8 gText_TateLiza_Pokenav_2B31CD[];
-extern const u8 gTateLizaMatchCallDesc[];
-extern const u8 gText_Juan_Pokenav_2B3249[];
-extern const u8 gText_Juan_Pokenav_2B32EC[];
-extern const u8 gText_Juan_Pokenav_2B33AA[];
-extern const u8 gText_Juan_Pokenav_2B341E[];
-extern const u8 gJuanMatchCallDesc[];
-extern const u8 gText_Sidney_Pokenav_2B34CC[];
-extern const u8 gEliteFourMatchCallDesc[];
-extern const u8 gText_Phoebe_Pokenav_2B3561[];
-extern const u8 gText_Glacia_Pokenav_2B35E4[];
-extern const u8 gText_Drake_Pokenav_2B368B[];
-extern const u8 gText_Wallace_Pokenav_2B3790[];
-extern const u8 gChampionMatchCallDesc[];
-extern const u8 gMatchCallStevenStrategyText[];
-extern const u8 gMatchCall_StevenTrainersPokemonText[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_BrendanStrategyText[];
-extern const u8 gMatchCall_BrendanTrainersPokemonText[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line1[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line2[];
-extern const u8 gMatchCall_MayStrategyText[];
-extern const u8 gMatchCall_MayTrainersPokemonText[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line1[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line2[];
-// .rodata
-
-static const match_call_text_data_t sMrStoneTextScripts[] = {
- { gText_MrStone_Pokenav_2B60C0, 0xFFFF, FLAG_0x158 },
- { gText_MrStone_Pokenav_2B61E6, FLAG_0x158, 0xFFFF },
- { gText_MrStone_Pokenav_2B6302, FLAG_0x0BD, 0xFFFF },
- { gText_MrStone_Pokenav_2B63A0, FLAG_0x110, 0xFFFF },
- { gText_MrStone_Pokenav_2B64A2, FLAG_0x06A, 0xFFFF },
- { gText_MrStone_Pokenav_2B6526, FLAG_0x4F4, 0xFFFF },
- { gText_MrStone_Pokenav_2B65BB, FLAG_0x097, 0xFFFF },
- { gText_MrStone_Pokenav_2B6664, FLAG_0x06F, 0xFFFF },
- { gText_MrStone_Pokenav_2B66B1, FLAG_0x070, 0xFFFF },
- { gText_MrStone_Pokenav_2B6703, FLAG_0x4F7, 0xFFFF },
- { gText_MrStone_Pokenav_2B67ED, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallSameRouteBattleRequestTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2AAE7F, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAEF1, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AAF69, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB010, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB076, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB11A, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB1B4, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB23D, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB2E9, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB382, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB410, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB4B0, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB538, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB5E4, .stringVarFuncIds = { 0, 1, -1 } },
};
-MATCHCALLDEF(sMrStoneMatchCallHeader, 0, 10, 0xffff, gMrStoneMatchCallDesc, gMrStoneMatchCallName, sMrStoneTextScripts);
-
-static const match_call_text_data_t sNormanTextScripts[] = {
- { gText_Norman_Pokenav_2B5719, FLAG_0x132, 0xFFFF },
- { gText_Norman_Pokenav_2B5795, FLAG_0x4F1, 0xFFFF },
- { gText_Norman_Pokenav_2B584D, FLAG_0x4F3, 0xFFFF },
- { gText_Norman_Pokenav_2B58E3, FLAG_0x4F4, 0xFFFF },
- { gText_Norman_Pokenav_2B5979, FLAG_0x0D4, 0xFFFF },
- { gText_Norman_Pokenav_2B5A07, 0xFFFE, 0xFFFF },
- { gText_Norman_Pokenav_2B5A69, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5ACF, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5B5E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallDifferentRouteBattleRequestTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2AB670, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB6CD, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB73C, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB808, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB8B7, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AB95D, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABA03, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABA9F, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABB62, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABC26, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABCE9, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABDA2, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABE5E, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ABF36, .stringVarFuncIds = { 0, 1, -1 } },
};
-MATCHCALLDEF(sNormanMatchCallHeader, 5, 7, FLAG_0x132, 0x45, gNormanMatchCallDesc, gNormanMatchCallName, sNormanTextScripts);
-
-MATCHCALLDEF(sProfBirchMatchCallHeader, 3, 0, FLAG_0x119, gProfBirchMatchCallDesc, gProfBirchMatchCallName)
-
-static const match_call_text_data_t sMomTextScripts[] = {
- { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
- { gText_Mom_Pokenav_2B2310, FLAG_0x4F4, 0xffff },
- { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff }
+static const struct MatchCallText sMatchCallPersonalizedTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2AC009, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC0BD, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC18C, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC228, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC30C, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC3B6, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC446, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC5C7, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC682, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC755, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC82C, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AC914, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACA59, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACB02, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACC3F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACD2F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACE1E, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACF32, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2ACFBE, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD0AC, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD194, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD1DF, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD2A8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD34F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD44E, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD53A, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD642, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD801, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AD92E, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2ADA8F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ADB9B, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ADC92, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ADE08, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2ADF07, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE0D9, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE1FD, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE327, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE3DA, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE489, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE5CD, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE698, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE704, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE78F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE859, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE8E6, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AE998, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEA8F, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEB77, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEBFA, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AECC1, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AED52, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEE35, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEEF4, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AEFDA, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF0E7, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF1B8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF2C4, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF371, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF480, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF671, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF7D8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AF8F7, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AFA39, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = BattleFrontier_PokeNav_2AFB26, .stringVarFuncIds = { 0, -1, -1 } },
};
-MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatchCallName, sMomTextScripts);
-
-static const match_call_text_data_t sStevenTextScripts[] = {
- { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
- { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
- { gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
- { gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
- { gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
- { gText_Steven_Pokenav_2B5EA2, FLAG_0x081, 0xffff },
- { gText_Steven_Pokenav_2B5ED9, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff },
+static const struct MatchCallText sMatchCallBattleFrontierStreakTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2AFC07, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFC78, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFCFF, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFDA7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFE3D, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFECA, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFF64, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2AFFF0, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B00B5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0129, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B01A5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0232, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B02D9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0366, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sStevenMatchCallHeader, 0, 0xd5, FLAG_0x131, gStevenMatchCallDesc, gStevenMatchCallName, sStevenTextScripts);
-
-static const match_call_text_data_t sMayTextScripts[] = {
- { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF },
- { gText_May_Pokenav_2B3B3F, FLAG_0x4F1, 0xFFFF },
- { gText_May_Pokenav_2B3C13, FLAG_0x095, 0xFFFF },
- { gText_May_Pokenav_2B3CF3, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_May_Pokenav_2B3D4B, FLAG_0x06A, 0xFFFF },
- { gText_May_Pokenav_2B3DD1, FLAG_0x4F3, 0xFFFF },
- { gText_May_Pokenav_2B3E69, FLAG_0x4F4, 0xFFFF },
- { gText_May_Pokenav_2B3ECD, FLAG_0x097, 0xFFFF },
- { gText_May_Pokenav_2B3F2B, FLAG_0x0D4, 0xFFFF },
- { gText_May_Pokenav_2B3FFB, FLAG_0x06F, 0xFFFF },
- { gText_May_Pokenav_2B402B, FLAG_0x061, 0xFFFF },
- { gText_May_Pokenav_2B414B, FLAG_0x070, 0xFFFF },
- { gText_May_Pokenav_2B4228, FLAG_0x081, 0xFFFF },
- { gText_May_Pokenav_2B42E0, FLAG_0x4F7, 0xFFFF },
- { gText_May_Pokenav_2B4350, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattleFrontierRecordStreakTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2B03E6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0457, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B04DE, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0586, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B061C, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B06A3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B073B, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B07C7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0894, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0908, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0984, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0A11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0AB8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0B45, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sMayMatchCallHeader, 4, MALE, FLAG_0x0FD, gMayBrendanMatchCallDesc, gExpandedPlaceholder_May, sMayTextScripts);
-
-static const match_call_text_data_t sBrendanTextScripts[] = {
- { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF },
- { gText_Brendan_Pokenav_2B4486, FLAG_0x4F1, 0xFFFF },
- { gText_Brendan_Pokenav_2B4560, FLAG_0x095, 0xFFFF },
- { gText_Brendan_Pokenav_2B463F, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_Brendan_Pokenav_2B46B7, FLAG_0x06A, 0xFFFF },
- { gText_Brendan_Pokenav_2B4761, FLAG_0x4F3, 0xFFFF },
- { gText_Brendan_Pokenav_2B47F4, FLAG_0x4F4, 0xFFFF },
- { gText_Brendan_Pokenav_2B4882, FLAG_0x097, 0xFFFF },
- { gText_Brendan_Pokenav_2B4909, FLAG_0x0D4, 0xFFFF },
- { gText_Brendan_Pokenav_2B49C4, FLAG_0x06F, 0xFFFF },
- { gText_Brendan_Pokenav_2B4A44, FLAG_0x061, 0xFFFF },
- { gText_Brendan_Pokenav_2B4B28, FLAG_0x070, 0xFFFF },
- { gText_Brendan_Pokenav_2B4C15, FLAG_0x081, 0xFFFF },
- { gText_Brendan_Pokenav_2B4CD8, FLAG_0x4F7, 0xFFFF },
- { gText_Brendan_Pokenav_2B4D46, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattleDomeTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2B0BC5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0C4A, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0CC7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0D4A, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0DC8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0E35, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0ED1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B0F72, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B102A, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B10A7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1121, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B11D3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B124D, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B12D0, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCallDesc, gExpandedPlaceholder_Brendan, sBrendanTextScripts);
-
-static const match_call_text_data_t sWallyTextScripts[] = {
- { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
- { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
- { gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
- { gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
- { gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },
- { gText_Wally_Pokenav_2B50B1, FLAG_0x081, 0xFFFF },
- { gText_Wally_Pokenav_2B5100, FLAG_0x07E, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattlePikeTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2B1347, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B13B1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B142B, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B14B4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1525, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B158E, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1622, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B169D, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1775, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B17F8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1877, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1946, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B19C7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1A4C, .stringVarFuncIds = { 0, 4, 5 } },
};
-const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
- { FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 },
- { FLAG_0x06F, 0xD5 },
- { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 },
- { 0xFFFF, 0xD5 }
+static const struct MatchCallText sMatchCallBattlePyramidTexts[] =
+{
+ { .text = BattleFrontier_PokeNav_2B1ACA, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1B50, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1BE4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1C6A, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1CCF, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1D38, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1DCD, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1E4B, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1F24, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B1FA8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B2022, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B20F3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B2175, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = BattleFrontier_PokeNav_2B21FC, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sWallyMatchCallHeader, 2, 0, FLAG_0x0D6, REMATCH_WALLY_3, gWallyMatchCallDesc, sWallyTextScripts, sWallyAdditionalData);
-
-static const match_call_text_data_t sScottTextScripts[] = {
- { gText_Scott_Pokenav_2B5184, 0xFFFF, 0xFFFF },
- { gText_Scott_Pokenav_2B5275, FLAG_0x08B, 0xFFFF },
- { gText_Scott_Pokenav_2B5323, FLAG_0x097, 0xFFFF },
- { gText_Scott_Pokenav_2B53DB, FLAG_0x0D4, 0xFFFF },
- { gText_Scott_Pokenav_2B54A5, FLAG_0x070, 0xFFFF },
- { gText_Scott_Pokenav_2B5541, FLAG_0x4F7, 0xFFFF },
- { gText_Scott_Pokenav_2B56CA, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallBattleTopics[] =
+{
+ sMatchCallWildBattleTexts,
+ sMatchCallNegativeBattleTexts,
+ sMatchCallPositiveBattleTexts,
};
-
-MATCHCALLDEF(sScottMatchCallHeader, 0, 0xD5, FLAG_0x0D7, gScottMatchCallDesc, gScottMatchCallName, sScottTextScripts);
-
-static const match_call_text_data_t sRoxanneTextScripts[] = {
- { gText_Roxanne_Pokenav_2B2456, 0xFFFE, 0xFFFF },
- { gText_Roxanne_Pokenav_2B250E, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B25C1, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B2607, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallBattleRequestTopics[] =
+{
+ sMatchCallSameRouteBattleRequestTexts,
+ sMatchCallDifferentRouteBattleRequestTexts,
};
-MATCHCALLDEF(sRoxanneMatchCallHeader, 5, 10, FLAG_0x1D3, 0x41, gRoxanneMatchCallDesc, NULL, sRoxanneTextScripts);
-
-static const match_call_text_data_t sBrawlyTextScripts[] = {
- { gText_Brawly_Pokenav_2B2659, 0xFFFE, 0xFFFF },
- { gText_Brawly_Pokenav_2B275D, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B286F, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B28D1, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallGeneralTopics[] =
+{
+ sMatchCallPersonalizedTexts,
+ sMatchCallBattleFrontierStreakTexts,
+ sMatchCallBattleFrontierRecordStreakTexts,
+ sMatchCallBattleDomeTexts,
+ sMatchCallBattlePikeTexts,
+ sMatchCallBattlePyramidTexts,
};
-MATCHCALLDEF(sBrawlyMatchCallHeader, 5, 2, FLAG_0x1D4, 0x42, gBrawlyMatchCallDesc, NULL, sBrawlyTextScripts);
-
-static const match_call_text_data_t sWattsonTextScripts[] = {
- { gText_Wattson_Pokenav_2B2912, 0xFFFE, 0xFFFF },
- { gText_Wattson_Pokenav_2B29CA, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2AB6, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2B01, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+extern const u8 gUnknown_082A5C9C[];
+extern const u8 gUnknown_082A5D2C[];
+extern const u8 gUnknown_082A633D[];
-MATCHCALLDEF(sWattsonMatchCallHeader, 5, 9, FLAG_0x1D5, 0x43, gWattsonMatchCallDesc, NULL, sWattsonTextScripts);
+void InitMatchCallCounters(void)
+{
+ RtcCalcLocalTime();
+ gMatchCallState.minutes = GetCurrentTotalMinutes(&gLocalTime) + 10;
+ gMatchCallState.stepCounter = 0;
+}
-static const match_call_text_data_t sFlanneryTextScripts[] = {
- { gText_Flannery_Pokenav_2B2B4D, 0xFFFE, 0xFFFF },
- { gText_Flannery_Pokenav_2B2C0E, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2CF1, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2D54, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetCurrentTotalMinutes(struct Time *time)
+{
+ return time->days * 1440 + time->hours * 60 + time->minutes;
+}
-MATCHCALLDEF(sFlanneryMatchCallHeader, 5, 3, FLAG_0x1D6, 0x44, gFlanneryMatchCallDesc, NULL, sFlanneryTextScripts);
+static bool32 UpdateMatchCallMinutesCounter(void)
+{
+ int curMinutes;
+ RtcCalcLocalTime();
+ curMinutes = GetCurrentTotalMinutes(&gLocalTime);
+ if (gMatchCallState.minutes > curMinutes || curMinutes - gMatchCallState.minutes > 9)
+ {
+ gMatchCallState.minutes = curMinutes;
+ return TRUE;
+ }
-static const match_call_text_data_t sWinonaTextScripts[] = {
- { gText_Winona_Pokenav_2B2DA4, 0xFFFE, 0xFFFF },
- { gText_Winona_Pokenav_2B2E2B, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2EC2, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2F16, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return FALSE;
+}
-MATCHCALLDEF(sWinonaMatchCallHeader, 5, 11, FLAG_0x1D7, 0x46, gWinonaMatchCallDesc, NULL, sWinonaTextScripts);
+static bool32 CheckMatchCallChance(void)
+{
+ int callChance = 1;
+ if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) && GetMonAbility(&gPlayerParty[0]) == ABILITY_LIGHTNING_ROD)
+ callChance = 2;
+
+ if (Random() % 10 < callChance * 3)
+ return TRUE;
+ else
+ return FALSE;
+}
-static const match_call_text_data_t sTateLizaTextScripts[] = {
- { gText_TateLiza_Pokenav_2B2F97, 0xFFFE, 0xFFFF },
- { gText_TateLiza_Pokenav_2B306E, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B3158, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B31CD, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static bool32 MapAllowsMatchCall(void)
+{
+ if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) || gMapHeader.regionMapSectionId == MAPSEC_SAFARI_ZONE)
+ return FALSE;
+
+ if (gMapHeader.regionMapSectionId == MAPSEC_SOOTOPOLIS_CITY
+ && FlagGet(FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA) == TRUE
+ && FlagGet(FLAG_0x0DC) == FALSE)
+ return FALSE;
-MATCHCALLDEF(sTateLizaMatchCallHeader, 5, 13, FLAG_0x1D8, 0x47, gTateLizaMatchCallDesc, NULL, sTateLizaTextScripts);
+ if (gMapHeader.regionMapSectionId == MAPSEC_MT_CHIMNEY
+ && FlagGet(FLAG_0x0CF) == TRUE
+ && FlagGet(FLAG_0x08B) == FALSE)
+ return FALSE;
-static const match_call_text_data_t sJuanTextScripts[] = {
- { gText_Juan_Pokenav_2B3249, 0xFFFE, 0xFFFF },
- { gText_Juan_Pokenav_2B32EC, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B33AA, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B341E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return TRUE;
+}
-MATCHCALLDEF(sJuanMatchCallHeader, 5, 14, FLAG_0x1D9, 0x48, gJuanMatchCallDesc, NULL, sJuanTextScripts);
+static bool32 UpdateMatchCallStepCounter(void)
+{
+ if (++gMatchCallState.stepCounter >= 10)
+ {
+ gMatchCallState.stepCounter = 0;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
-static const match_call_text_data_t sSidneyTextScripts[] = {
- { gText_Sidney_Pokenav_2B34CC, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static bool32 SelectMatchCallTrainer(void)
+{
+ u32 matchCallId;
+ u32 numRegistered = GetNumRegisteredNPCs();
+ if (!numRegistered)
+ return FALSE;
-MATCHCALLDEF(sSidneyMatchCallHeader, 5, 15, FLAG_0x1A5, 0x49, gEliteFourMatchCallDesc, NULL, sSidneyTextScripts);
+ gMatchCallState.trainerId = GetActiveMatchCallTrainerId(Random() % numRegistered);
+ gMatchCallState.triggeredFromScript = 0;
+ if (gMatchCallState.trainerId == REMATCH_TABLE_ENTRIES)
+ return FALSE;
-static const match_call_text_data_t sPhoebeTextScripts[] = {
- { gText_Phoebe_Pokenav_2B3561, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ matchCallId = GetTrainerMatchCallId(gMatchCallState.trainerId);
+ if (GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId && !TrainerIsEligibleForRematch(matchCallId))
+ return FALSE;
-MATCHCALLDEF(sPhoebeMatchCallHeader, 5, 15, FLAG_0x1A6, 0x4A, gEliteFourMatchCallDesc, NULL, sPhoebeTextScripts);
+ return TRUE;
+}
-static const match_call_text_data_t sGlaciaTextScripts[] = {
- { gText_Glacia_Pokenav_2B35E4, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetNumRegisteredNPCs(void)
+{
+ u32 i, count;
+ for (i = 0, count = 0; i < 64; i++)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
+ count++;
+ }
-MATCHCALLDEF(sGlaciaMatchCallHeader, 5, 15, FLAG_0x1A7, 0x4B, gEliteFourMatchCallDesc, NULL, sGlaciaTextScripts);
+ return count;
+}
-static const match_call_text_data_t sDrakeTextScripts[] = {
- { gText_Drake_Pokenav_2B368B, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId)
+{
+ u32 i;
+ for (i = 0; i < 64; i++)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
+ {
+ if (!activeMatchCallId)
+ return gRematchTable[i].trainerIds[0];
-MATCHCALLDEF(sDrakeMatchCallHeader, 5, 15, FLAG_0x1A8, 0x4C, gEliteFourMatchCallDesc, NULL, sDrakeTextScripts);
+ activeMatchCallId--;
+ }
+ }
-static const match_call_text_data_t sWallaceTextScripts[] = {
- { gText_Wallace_Pokenav_2B3790, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return REMATCH_TABLE_ENTRIES;
+}
-MATCHCALLDEF(sWallaceMatchCallHeader, 5, 15, FLAG_0x1A9, 0x4D, gChampionMatchCallDesc, NULL, sWallaceTextScripts);
-
-static const match_call_t sMatchCallHeaders[] = {
- {.type0 = &sMrStoneMatchCallHeader},
- {.type3 = &sProfBirchMatchCallHeader},
- {.type4 = &sBrendanMatchCallHeader},
- {.type4 = &sMayMatchCallHeader},
- {.type2 = &sWallyMatchCallHeader},
- {.type5 = &sNormanMatchCallHeader},
- {.type0 = &sMomMatchCallHeader},
- {.type0 = &sStevenMatchCallHeader},
- {.type0 = &sScottMatchCallHeader},
- {.type5 = &sRoxanneMatchCallHeader},
- {.type5 = &sBrawlyMatchCallHeader},
- {.type5 = &sWattsonMatchCallHeader},
- {.type5 = &sFlanneryMatchCallHeader},
- {.type5 = &sWinonaMatchCallHeader},
- {.type5 = &sTateLizaMatchCallHeader},
- {.type5 = &sJuanMatchCallHeader},
- {.type5 = &sSidneyMatchCallHeader},
- {.type5 = &sPhoebeMatchCallHeader},
- {.type5 = &sGlaciaMatchCallHeader},
- {.type5 = &sDrakeMatchCallHeader},
- {.type5 = &sWallaceMatchCallHeader}
-};
+bool32 TryStartMatchCall(void)
+{
+ if (FlagGet(FLAG_HAS_MATCH_CALL) && UpdateMatchCallStepCounter() && UpdateMatchCallMinutesCounter()
+ && CheckMatchCallChance() && MapAllowsMatchCall() && SelectMatchCallTrainer())
+ {
+ StartMatchCall();
+ return TRUE;
+ }
-static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
- MatchCallGetFlag_Type0,
- MatchCallGetFlag_Type1,
- MatchCallGetFlag_Type2,
- MatchCallGetFlag_Type3,
- MatchCallGetFlag_Type4
-};
+ return FALSE;
+}
-static u8 (*const gUnknown_08625310[])(match_call_t) = {
- sub_81D1714,
- sub_81D1718,
- sub_81D171C,
- sub_81D1750,
- sub_81D1754
-};
+void StartMatchCallFromScript(void)
+{
+ gMatchCallState.triggeredFromScript = 1;
+ StartMatchCall();
+}
-static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
- MatchCall_IsRematchable_Type0,
- MatchCall_IsRematchable_Type1,
- MatchCall_IsRematchable_Type2,
- MatchCall_IsRematchable_Type3,
- MatchCall_IsRematchable_Type4
-};
+bool8 IsMatchCallTaskActive(void)
+{
+ return FuncIsActiveTask(ExecuteMatchCall);
+}
-static bool32 (*const gUnknown_08625338[])(match_call_t) = {
- sub_81D1840,
- sub_81D1844,
- sub_81D1848,
- sub_81D184C,
- sub_81D1850
-};
+static void StartMatchCall(void)
+{
+ if (!gMatchCallState.triggeredFromScript)
+ {
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_808B864();
+ sub_808BCF4();
+ }
-static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
- MatchCall_GetRematchTableIdx_Type0,
- MatchCall_GetRematchTableIdx_Type1,
- MatchCall_GetRematchTableIdx_Type2,
- MatchCall_GetRematchTableIdx_Type3,
- MatchCall_GetRematchTableIdx_Type4
-};
+ PlaySE(SE_TOREEYE);
+ CreateTask(ExecuteMatchCall, 1);
+}
-static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = {
- MatchCall_GetMessage_Type0,
- MatchCall_GetMessage_Type1,
- MatchCall_GetMessage_Type2,
- MatchCall_GetMessage_Type3,
- MatchCall_GetMessage_Type4
-};
+static const u16 sUnknown_0860EA4C[] = INCBIN_U16("graphics/unknown/unknown_60EA4C.gbapal");
+static const u8 sUnknown_0860EA6C[] = INCBIN_U8("graphics/interface/menu_border.4bpp");
+static const u16 sPokeNavIconPalette[] = INCBIN_U16("graphics/pokenav/icon.gbapal");
+static const u32 sPokeNavIconGfx[] = INCBIN_U32("graphics/pokenav/icon.4bpp.lz");
-static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = {
- MatchCall_GetNameAndDesc_Type0,
- MatchCall_GetNameAndDesc_Type1,
- MatchCall_GetNameAndDesc_Type2,
- MatchCall_GetNameAndDesc_Type3,
- MatchCall_GetNameAndDesc_Type4
-};
+static const u8 sText_PokenavCallEllipsis[] = _("………………\p");
-static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = {
- { 7, 0x4B, 0xffff, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
- { 7, 0x4B, FLAG_0x4F6, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
- { 2, 0x3c, 0xffff, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
- { 3, 0x3f, 0xffff, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
+static bool32 (*const sMatchCallTaskFuncs[])(u8) =
+{
+ LoadMatchCallWindowGfx,
+ MoveMatchCallWindowToVram,
+ PrintMatchCallIntroEllipsis,
+ sub_81962B0,
+ sub_81962D8,
+ sub_8196330,
+ sub_8196390,
+ sub_81963F0,
};
-// .text
-
-static u32 MatchCallGetFunctionIndex(match_call_t matchCall)
+static void ExecuteMatchCall(u8 taskId)
{
- switch (matchCall.common->type)
+ s16 *taskData = gTasks[taskId].data;
+ if (sMatchCallTaskFuncs[taskData[0]](taskId))
{
- case 0:
- default:
- return 0;
- case 1:
- case 5:
- return 1;
- case 2:
- return 2;
- case 4:
- return 3;
- case 3:
- return 4;
+ taskData[0]++;
+ taskData[1] = 0;
+ if ((u16)taskData[0] > 7)
+ DestroyTask(taskId);
}
}
-u32 GetTrainerIdxByRematchIdx(u32 rematchIdx)
+static const struct WindowTemplate sMatchCallTextWindow =
{
- return gRematchTable[rematchIdx].trainerIds[0];
-}
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x200
+};
-s32 GetRematchIdxByTrainerIdx(s32 trainerIdx)
+static bool32 LoadMatchCallWindowGfx(u8 taskId)
{
- s32 rematchIdx;
-
- for (rematchIdx = 0; rematchIdx < REMATCH_TABLE_ENTRIES; rematchIdx++)
+ s16 *taskData = gTasks[taskId].data;
+ taskData[2] = AddWindow(&sMatchCallTextWindow);
+ if (taskData[2] == 0xFF)
{
- if (gRematchTable[rematchIdx].trainerIds[0] == trainerIdx)
- return rematchIdx;
+ DestroyTask(taskId);
+ return FALSE;
}
- return -1;
-}
-bool32 MatchCallFlagGetByIndex(u32 idx)
-{
- match_call_t matchCall;
- u32 i;
+ if (LoadBgTiles(0, sUnknown_0860EA6C, sizeof(sUnknown_0860EA6C), 0x270) == 0xFFFF)
+ {
+ RemoveWindow(taskData[2]);
+ DestroyTask(taskId);
+ return FALSE;
+ }
- if (idx > 20)
+ if (!decompress_and_copy_tile_data_to_vram(0, sPokeNavIconGfx, 0, 0x279, 0))
+ {
+ RemoveWindow(taskData[2]);
+ DestroyTask(taskId);
return FALSE;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCallGetFlagFuncs[i](matchCall);
+ }
+
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20);
+ LoadPalette(sPokeNavIconPalette, 0xF0, 0x20);
+ ChangeBgY(0, -0x2000, 0);
+ return TRUE;
}
-static bool32 MatchCallGetFlag_Type0(match_call_t matchCall)
+static bool32 MoveMatchCallWindowToVram(u8 taskId)
{
- if (matchCall.type0->flag == 0xffff)
- return TRUE;
- return FlagGet(matchCall.type0->flag);
+ s16 *taskData = gTasks[taskId].data;
+ if (free_temp_tile_data_buffers_if_possible())
+ return FALSE;
+
+ PutWindowTilemap(taskData[2]);
+ DrawMatchCallTextBoxBorder(taskData[2], 0x270, 14);
+ WriteSequenceToBgTilemapBuffer(0, 0xF279, 1, 15, 4, 4, 17, 1);
+ taskData[5] = CreateTask(sub_8196694, 10);
+ CopyWindowToVram(taskData[2], 2);
+ CopyBgTilemapBufferToVram(0);
+ return TRUE;
}
-static bool32 MatchCallGetFlag_Type1(match_call_t matchCall)
+static bool32 PrintMatchCallIntroEllipsis(u8 taskId)
{
- if (matchCall.type1->flag == 0xffff)
+ s16 *taskData = gTasks[taskId].data;
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ InitMatchCallTextPrinter(taskData[2], sText_PokenavCallEllipsis);
return TRUE;
- return FlagGet(matchCall.type1->flag);
+ }
+
+ return FALSE;
}
-static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
+static bool32 sub_81962B0(u8 taskId)
{
- if (matchCall.type2->flag == 0xffff)
+ if (ChangeBgY(0, 0x600, 1) >= 0)
+ {
+ ChangeBgY(0, 0, 0);
return TRUE;
- return FlagGet(matchCall.type2->flag);
+ }
+
+ return FALSE;
}
-static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
+static bool32 sub_81962D8(u8 taskId)
{
- if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
- return FALSE;
- if (matchCall.type4->flag == 0xffff)
+ s16 *taskData = gTasks[taskId].data;
+ if (!ExecuteMatchCallTextPrinter(taskData[2]))
+ {
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ if (!gMatchCallState.triggeredFromScript)
+ SelectMatchCallMessage(gMatchCallState.trainerId, gStringVar4);
+
+ InitMatchCallTextPrinter(taskData[2], gStringVar4);
return TRUE;
- return FlagGet(matchCall.type4->flag);
-}
+ }
-static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
-{
- return FlagGet(matchCall.type3->flag);
+ return FALSE;
}
-u8 sub_81D16DC(u32 idx)
+static bool32 sub_8196330(u8 taskId)
{
- match_call_t matchCall;
- u32 i;
+ s16 *taskData = gTasks[taskId].data;
+ if (!ExecuteMatchCallTextPrinter(taskData[2]) && !IsSEPlaying() && gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ CopyWindowToVram(taskData[2], 2);
+ PlaySE(SE_TOREOFF);
+ return TRUE;
+ }
- if (idx > 20)
- return 0;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return gUnknown_08625310[i](matchCall);
+ return FALSE;
}
-static u8 sub_81D1714(match_call_t matchCall)
+static bool32 sub_8196390(u8 taskId)
{
- return matchCall.type0->v1;
-}
+ s16 *taskData = gTasks[taskId].data;
+ if (ChangeBgY(0, 0x600, 2) <= -0x2000)
+ {
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 14, 30, 6);
+ DestroyTask(taskData[5]);
+ RemoveWindow(taskData[2]);
+ CopyBgTilemapBufferToVram(0);
+ return TRUE;
+ }
-static u8 sub_81D1718(match_call_t matchCall)
-{
- return matchCall.type1->v1;
+ return FALSE;
}
-static u8 sub_81D171C(match_call_t matchCall)
+static bool32 sub_81963F0(u8 taskId)
{
- s32 i;
-
- for (i = 0; matchCall.type2->v10[i].flag != 0xffff; i++)
+ u8 playerObjectId;
+ if (!IsDma3ManagerBusyWithBgCopy() && !IsSEPlaying())
{
- if (!FlagGet(matchCall.type2->v10[i].flag))
- break;
+ ChangeBgY(0, 0, 0);
+ if (!gMatchCallState.triggeredFromScript)
+ {
+ sub_81973A4();
+ playerObjectId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
+ EventObjectClearHeldMovementIfFinished(&gEventObjects[playerObjectId]);
+ sub_80D338C();
+ UnfreezeEventObjects();
+ ScriptContext2_Disable();
+ }
+
+ return TRUE;
}
- return matchCall.type2->v10[i].v2;
+
+ return FALSE;
}
-static u8 sub_81D1750(match_call_t matchCall)
+static void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId)
{
- return 0xd5;
+ int bg, x, y, width, height;
+ int tileNum;
+
+ bg = GetWindowAttribute(windowId, WINDOW_BG);
+ x = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT);
+ y = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP);
+ width = GetWindowAttribute(windowId, WINDOW_WIDTH);
+ height = GetWindowAttribute(windowId, WINDOW_HEIGHT);
+ tileNum = tileOffset + GetBgAttribute(bg, BG_ATTR_BASETILE);
+
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 0), x - 1, y - 1, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 1), x, y - 1, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 2), x + width, y - 1, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 3), x - 1, y, 1, height);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 4), x + width, y, 1, height);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 5), x - 1, y + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 6), x, y + height, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 7), x + width, y + height, 1, 1);
}
-static u8 sub_81D1754(match_call_t matchCall)
+static void InitMatchCallTextPrinter(int windowId, const u8 *str)
{
- return 0xd5;
+ struct TextPrinterTemplate printerTemplate;
+ printerTemplate.currentChar = str;
+ printerTemplate.windowId = windowId;
+ printerTemplate.fontId = 1;
+ printerTemplate.x = 32;
+ printerTemplate.y = 1;
+ printerTemplate.currentX = 32;
+ printerTemplate.currentY = 1;
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.unk = 0;
+ printerTemplate.fgColor = 10;
+ printerTemplate.bgColor = 8;
+ printerTemplate.shadowColor = 14;
+ gTextFlags.useAlternateDownArrow = 0;
+
+ AddTextPrinter(&printerTemplate, GetPlayerTextSpeedDelay(), NULL);
}
-bool32 MatchCall_IsRematchable(u32 idx)
+static bool32 ExecuteMatchCallTextPrinter(int windowId)
{
- match_call_t matchCall;
- u32 i;
+ if (gMain.heldKeys & A_BUTTON)
+ gTextFlags.canABSpeedUpPrint = 1;
+ else
+ gTextFlags.canABSpeedUpPrint = 0;
- if (idx > 20)
- return 0;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCall_IsRematchableFunctions[i](matchCall);
+ RunTextPrinters();
+ return IsTextPrinterActive(windowId);
}
-static bool32 MatchCall_IsRematchable_Type0(match_call_t matchCall)
+static void sub_8196694(u8 taskId)
{
- return FALSE;
-}
+ s16 *taskData = gTasks[taskId].data;
+ if (++taskData[0] > 8)
+ {
+ taskData[0] = 0;
+ if (++taskData[1] > 7)
+ taskData[1] = 0;
-static bool32 MatchCall_IsRematchable_Type1(match_call_t matchCall)
-{
- if (matchCall.type1->rematchTableIdx >= REMATCH_ELITE_FOUR_ENTRIES)
- return FALSE;
- return gSaveBlock1Ptr->trainerRematches[matchCall.type1->rematchTableIdx] ? TRUE : FALSE;
+ taskData[2] = (taskData[1] * 16) + 0x279;
+ WriteSequenceToBgTilemapBuffer(0, taskData[2] | ~0xFFF, 1, 15, 4, 4, 17, 1);
+ CopyBgTilemapBufferToVram(0);
+ }
}
-static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall)
+static bool32 TrainerIsEligibleForRematch(int matchCallId)
{
- return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE;
+ return gSaveBlock1Ptr->trainerRematches[matchCallId] > 0;
}
-static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
+static u16 GetRematchTrainerLocation(int matchCallId)
{
- return FALSE;
+ const struct MapHeader *mapHeader = Overworld_GetMapHeaderByGroupAndId(gRematchTable[matchCallId].mapGroup, gRematchTable[matchCallId].mapNum);
+ return mapHeader->regionMapSectionId;
}
-static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
+static u32 GetNumRematchTrainersFought(void)
{
- return FALSE;
+ u32 i, count;
+ for (i = 0, count = 0; i < 64; i++)
+ {
+ if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
+ count++;
+ }
+
+ return count;
}
-bool32 sub_81D17E8(u32 idx)
+static u32 sub_8196774(int arg0)
{
- match_call_t matchCall;
- u32 i;
+ u32 i, count;
- if (idx > 20)
- return FALSE;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- if (gUnknown_08625338[i](matchCall))
- return TRUE;
- for (i = 0; i < 4; i++)
+ for (i = 0, count = 0; i < REMATCH_TABLE_ENTRIES; i++)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
- return TRUE;
+ if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
+ {
+ if (count == arg0)
+ return i;
+
+ count++;
+ }
}
- return FALSE;
+
+ return REMATCH_TABLE_ENTRIES;
}
-static bool32 sub_81D1840(match_call_t matchCall)
+bool32 SelectMatchCallMessage(int trainerId, u8 *str)
{
- return FALSE;
+ u32 matchCallId;
+ const struct MatchCallText *matchCallText;
+ bool32 retVal = FALSE;
+
+ matchCallId = GetTrainerMatchCallId(trainerId);
+ gBattleFrontierStreakInfo.facilityId = 0;
+ if (TrainerIsEligibleForRematch(matchCallId)
+ && GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId)
+ {
+ matchCallText = GetSameRouteMatchCallText(matchCallId, str);
+ }
+ else if (sub_8196D74(matchCallId))
+ {
+ matchCallText = GetDifferentRouteMatchCallText(matchCallId, str);
+ retVal = TRUE;
+ UpdateRematchIfDefeated(matchCallId);
+ }
+ else if (Random() % 3)
+ {
+ matchCallText = GetBattleMatchCallText(matchCallId, str);
+ }
+ else
+ {
+ matchCallText = GetGeneralMatchCallText(matchCallId, str);
+ }
+
+ BuildMatchCallString(matchCallId, matchCallText, str);
+ return retVal;
}
-static bool32 sub_81D1844(match_call_t matchCall)
+static int GetTrainerMatchCallId(int trainerId)
{
- return TRUE;
+ int i = 0;
+ while (1)
+ {
+ if (sMatchCallTrainers[i].trainerId == trainerId)
+ return i;
+ else
+ i++;
+ }
}
-static bool32 sub_81D1848(match_call_t matchCall)
+static const struct MatchCallText *GetSameRouteMatchCallText(int matchCallId, u8 *str)
{
- return TRUE;
+ u16 textId = sMatchCallTrainers[matchCallId].sameRouteMatchCallTextId;
+ int mask = 0xFF;
+ u32 topic = (textId >> 8) - 1;
+ u32 id = (textId & mask) - 1;
+ return &sMatchCallBattleRequestTopics[topic][id];
}
-static bool32 sub_81D184C(match_call_t matchCall)
+static const struct MatchCallText *GetDifferentRouteMatchCallText(int matchCallId, u8 *str)
{
- return FALSE;
+ u16 textId = sMatchCallTrainers[matchCallId].differentRouteMatchCallTextId;
+ int mask = 0xFF;
+ u32 topic = (textId >> 8) - 1;
+ u32 id = (textId & mask) - 1;
+ return &sMatchCallBattleRequestTopics[topic][id];
}
-static bool32 sub_81D1850(match_call_t matchCall)
+static const struct MatchCallText *GetBattleMatchCallText(int matchCallId, u8 *str)
{
- return FALSE;
+ int mask;
+ u32 textId, topic, id;
+
+ topic = Random() % 3;
+ textId = sMatchCallTrainers[matchCallId].battleTopicTextIds[topic];
+ if (!textId)
+ SpriteCallbackDummy(NULL); // leftover debugging ???
+
+ mask = 0xFF;
+ topic = (textId >> 8) - 1;
+ id = (textId & mask) - 1;
+ return &sMatchCallBattleTopics[topic][id];
}
-u32 MatchCall_GetRematchTableIdx(u32 idx)
+static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 *str)
{
- match_call_t matchCall;
- u32 i;
+ int i;
+ int count;
+ u32 topic, id;
+ u16 rand;
+ u16 var3;
+
+ rand = Random();
+ if (!(rand & 1))
+ {
+ for (count = 0, i = 0; i < NUM_FRONTIER_FACILITIES; i++)
+ {
+ if (GetFrontierStreakInfo(i, &topic) > 1)
+ count++;
+ }
- if (idx > 20)
- return REMATCH_TABLE_ENTRIES;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCall_GetRematchTableIdxFunctions[i](matchCall);
+ if (count)
+ {
+ count = Random() % count;
+ for (i = 0; i < NUM_FRONTIER_FACILITIES; i++)
+ {
+ gBattleFrontierStreakInfo.streak = GetFrontierStreakInfo(i, &topic);
+ if (gBattleFrontierStreakInfo.streak < 2)
+ continue;
+
+ if (!count)
+ break;
+
+ count--;
+ }
+
+ gBattleFrontierStreakInfo.facilityId = i;
+ id = sMatchCallTrainers[matchCallId].battleFrontierRecordStreakTextIndex - 1;
+ return &sMatchCallGeneralTopics[topic][id];
+ }
+ }
+
+ topic = (sMatchCallTrainers[matchCallId].battleFrontierStreakTextId >> 8) - 1;
+ id = (sMatchCallTrainers[matchCallId].battleFrontierStreakTextId & 0xFF) - 1;
+ return &sMatchCallGeneralTopics[topic][id];
}
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t matchCall)
+static void BuildMatchCallString(int matchCallId, const struct MatchCallText *matchCallText, u8 *str)
{
- return REMATCH_TABLE_ENTRIES;
+ PopulateMatchCallStringVars(matchCallId, matchCallText->stringVarFuncIds);
+ StringExpandPlaceholders(str, matchCallText->text);
}
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t matchCall)
+static u8 *const sMatchCallTextStringVars[] = { gStringVar1, gStringVar2, gStringVar3 };
+
+static void PopulateMatchCallStringVars(int matchCallId, const s8 *stringVarFuncIds)
{
- return matchCall.type1->rematchTableIdx;
+ int i;
+ for (i = 0; i < 3; i++)
+ {
+ if (stringVarFuncIds[i] >= 0)
+ PopulateMatchCallStringVar(matchCallId, stringVarFuncIds[i], sMatchCallTextStringVars[i]);
+ }
}
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall)
+static void (*const sPopulateMatchCallStringVarFuncs[])(int, u8 *) =
{
- return matchCall.type2->rematchTableIdx;
-}
+ PopulateTrainerName,
+ PopulateMapName,
+ PopulateSpeciesFromTrainerLocation,
+ PopulateSpeciesFromTrainerParty,
+ PopulateBattleFrontierFacilityName,
+ PopulateBattleFrontierStreak,
+};
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
+static void PopulateMatchCallStringVar(int matchCallId, int funcId, u8 *destStr)
{
- return REMATCH_TABLE_ENTRIES;
+ sPopulateMatchCallStringVarFuncs[funcId](matchCallId, destStr);
}
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
+static const struct MultiTrainerMatchCallText sMultiTrainerMatchCallTexts[] =
{
- return REMATCH_TABLE_ENTRIES;
-}
+ { .trainerId = TRAINER_KIRA_AND_DAN_1, .text = gText_Kira },
+ { .trainerId = TRAINER_AMY_AND_LIV_1, .text = gText_Amy },
+ { .trainerId = TRAINER_JOHN_AND_JAY_1, .text = gText_John },
+ { .trainerId = TRAINER_LILA_AND_ROY_1, .text = gText_Roy },
+ { .trainerId = TRAINER_GABBY_AND_TY_1, .text = gText_Gabby },
+ { .trainerId = TRAINER_ANNA_AND_MEG_1, .text = gText_Anna },
+};
-void MatchCall_GetMessage(u32 idx, u8 *dest)
+static void PopulateTrainerName(int matchCallId, u8 *destStr)
{
- match_call_t matchCall;
u32 i;
+ u16 trainerId = sMatchCallTrainers[matchCallId].trainerId;
+ for (i = 0; i < 6; i++)
+ {
+ if (sMultiTrainerMatchCallTexts[i].trainerId == trainerId)
+ {
+ StringCopy(destStr, sMultiTrainerMatchCallTexts[i].text);
+ return;
+ }
+ }
- if (idx > 20)
- return;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- sMatchCall_GetMessageFunctions[i](matchCall, dest);
+ StringCopy(destStr, gTrainers[trainerId].trainerName);
}
-static void MatchCall_GetMessage_Type0(match_call_t matchCall, u8 *dest)
+static void PopulateMapName(int matchCallId, u8 *destStr)
{
- sub_81D1920(matchCall.type0->textData, dest);
+ GetMapName(destStr, GetRematchTrainerLocation(matchCallId), 0);
}
-static void MatchCall_GetMessage_Type1(match_call_t matchCall, u8 *dest)
+static u8 GetLandEncounterSlot(void)
{
- if (matchCall.common->type != 5)
- sub_81D1920(matchCall.type5->textData, dest);
+ int rand = Random() % 100;
+ if (rand < 20)
+ return 0;
+ else if (rand >= 20 && rand < 40)
+ return 1;
+ else if (rand >= 40 && rand < 50)
+ return 2;
+ else if (rand >= 50 && rand < 60)
+ return 3;
+ else if (rand >= 60 && rand < 70)
+ return 4;
+ else if (rand >= 70 && rand < 80)
+ return 5;
+ else if (rand >= 80 && rand < 85)
+ return 6;
+ else if (rand >= 85 && rand < 90)
+ return 7;
+ else if (rand >= 90 && rand < 94)
+ return 8;
+ else if (rand >= 94 && rand < 98)
+ return 9;
+ else if (rand >= 98 && rand < 99)
+ return 10;
else
- sub_81D199C(matchCall.type1->textData, matchCall.type1->rematchTableIdx, dest);
-}
-
-static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest)
-{
- sub_81D1920(matchCall.type2->textData, dest);
+ return 11;
}
-static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
+static u8 GetWaterEncounterSlot(void)
{
- sub_81D1920(matchCall.type4->textData, dest);
+ int rand = Random() % 100;
+ if (rand < 60)
+ return 0;
+ else if (rand >= 60 && rand < 90)
+ return 1;
+ else if (rand >= 90 && rand < 95)
+ return 2;
+ else if (rand >= 95 && rand < 99)
+ return 3;
+ else
+ return 4;
}
-static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
+static void PopulateSpeciesFromTrainerLocation(int matchCallId, u8 *destStr)
{
- sub_8197080(dest);
-}
+ u16 species[2];
+ int numSpecies;
+ u8 slot;
+ int i = 0;
-void sub_81D1920(const match_call_text_data_t *sub0, u8 *dest)
-{
- u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
- ;
- if (i)
- i--;
- while (i)
+ if (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED)) // ??? This check is nonsense.
{
- if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE)
- break;
- i--;
- }
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
-}
+ while (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED))
+ {
+ if (gWildMonHeaders[i].mapGroup == gRematchTable[matchCallId].mapGroup
+ && gWildMonHeaders[i].mapNum == gRematchTable[matchCallId].mapNum)
+ break;
-#ifdef NONMATCHING
-// There's some weird upmerge going on that I cannot replicate at this time.
-static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
-{
- u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
- {
- if (sub0[i].flag == 0xfffe)
- break;
- if (sub0[i].flag == 0xffff && !FlagGet(sub0[i].flag))
- break;
- }
- if (sub0[i].flag != 0xfffe)
- {
- if (i)
- i--;
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
- }
- else
- {
- if (!FlagGet(FLAG_SYS_GAME_CLEAR))
- ;
- else if (gSaveBlock1Ptr->trainerRematches[idx])
- i += 2;
- else if (CountBattledRematchTeams(idx) >= 2)
- i += 3;
- else
i++;
- StringExpandPlaceholders(dest, sub0[i].text);
+ }
+
+ if (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED))
+ {
+ numSpecies = 0;
+ if (gWildMonHeaders[i].landMonsInfo)
+ {
+ slot = GetLandEncounterSlot();
+ species[numSpecies] = gWildMonHeaders[i].landMonsInfo->wildPokemon[slot].species;
+ numSpecies++;
+ }
+
+ if (gWildMonHeaders[i].waterMonsInfo)
+ {
+ slot = GetWaterEncounterSlot();
+ species[numSpecies] = gWildMonHeaders[i].waterMonsInfo->wildPokemon[slot].species;
+ numSpecies++;
+ }
+
+ if (numSpecies)
+ {
+ StringCopy(destStr, gSpeciesNames[species[Random() % numSpecies]]);
+ return;
+ }
+ }
}
+
+ destStr[0] = EOS;
}
-#else
-static NAKED void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r10\n"
- "\tmov r6, r9\n"
- "\tmov r5, r8\n"
- "\tpush {r5-r7}\n"
- "\tadds r6, r0, 0\n"
- "\tmov r10, r2\n"
- "\tlsls r1, 16\n"
- "\tlsrs r7, r1, 16\n"
- "\tmovs r5, 0\n"
- "\tldr r0, [r6]\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "\tldrh r0, [r6, 0x4]\n"
- "\tldr r1, =0x0000fffe\n"
- "\tcmp r0, r1\n"
- "\tbeq _081D1A24\n"
- "\tldr r0, =0x0000ffff\n"
- "\tmov r9, r0\n"
- "\tmov r8, r1\n"
- "\tadds r4, r6, 0\n"
- "_081D19C6:\n"
- "\tldrh r0, [r4, 0x4]\n"
- "\tcmp r0, r9\n"
- "\tbeq _081D19D6\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "_081D19D6:\n"
- "\tadds r4, 0x8\n"
- "\tadds r5, 0x1\n"
- "\tldr r0, [r4]\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "\tldrh r0, [r4, 0x4]\n"
- "\tcmp r0, r8\n"
- "\tbne _081D19C6\n"
- "_081D19E6:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r0, r6\n"
- "\tldrh r1, [r0, 0x4]\n"
- "\tldr r0, =0x0000fffe\n"
- "\tcmp r1, r0\n"
- "\tbeq _081D1A24\n"
- "\tcmp r5, 0\n"
- "\tbeq _081D19F8\n"
- "\tsubs r5, 0x1\n"
- "_081D19F8:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r4, r0, r6\n"
- "\tldrh r1, [r4, 0x6]\n"
- "\tldr r0, =0x0000ffff\n"
- "\tcmp r1, r0\n"
- "\tbeq _081D1A0A\n"
- "\tadds r0, r1, 0\n"
- "\tbl FlagSet\n"
- "_081D1A0A:\n"
- "\tldr r1, [r4]\n"
- "\tmov r0, r10\n"
- "\tbl StringExpandPlaceholders\n"
- "\tb _081D1A5C\n"
- "\t.pool\n"
- "_081D1A1C:\n"
- "\tadds r5, 0x2\n"
- "\tb _081D1A50\n"
- "_081D1A20:\n"
- "\tadds r5, 0x3\n"
- "\tb _081D1A50\n"
- "_081D1A24:\n"
- "\tldr r0, =0x00000864\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D1A50\n"
- "\tldr r0, =gSaveBlock1Ptr\n"
- "\tldr r0, [r0]\n"
- "\tldr r1, =0x000009ca\n"
- "\tadds r0, r1\n"
- "\tadds r0, r7\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbne _081D1A1C\n"
- "\tadds r0, r7, 0\n"
- "\tbl CountBattledRematchTeams\n"
- "\tlsls r0, 16\n"
- "\tlsrs r0, 16\n"
- "\tcmp r0, 0x1\n"
- "\tbhi _081D1A20\n"
- "\tadds r5, 0x1\n"
- "_081D1A50:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r0, r6\n"
- "\tldr r1, [r0]\n"
- "\tmov r0, r10\n"
- "\tbl StringExpandPlaceholders\n"
- "_081D1A5C:\n"
- "\tpop {r3-r5}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tmov r10, r5\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.pool");
-}
-#endif
-void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name)
+static void PopulateSpeciesFromTrainerParty(int matchCallId, u8 *destStr)
{
- match_call_t matchCall;
- u32 i;
+ u16 trainerId;
+ union TrainerMonPtr party;
+ u8 monId;
+ const u8 *speciesName;
- if (idx > 20)
- return;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- sMatchCall_GetNameAndDescFunctions[i](matchCall, desc, name);
+ trainerId = GetLastBeatenRematchTrainerId(sMatchCallTrainers[matchCallId].trainerId);
+ party = gTrainers[trainerId].party;
+ monId = Random() % gTrainers[trainerId].partySize;
+
+ switch (gTrainers[trainerId].partyFlags)
+ {
+ case 0:
+ default:
+ speciesName = gSpeciesNames[party.NoItemDefaultMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET:
+ speciesName = gSpeciesNames[party.NoItemCustomMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_HELD_ITEM:
+ speciesName = gSpeciesNames[party.ItemDefaultMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
+ speciesName = gSpeciesNames[party.ItemCustomMoves[monId].species];
+ break;
+ }
+
+ StringCopy(destStr, speciesName);
}
-static void MatchCall_GetNameAndDesc_Type0(match_call_t matchCall, const u8 **desc, const u8 **name)
+static const u8 *const sBattleFrontierFacilityNames[] =
{
- *desc = matchCall.type0->desc;
- *name = matchCall.type0->name;
-}
+ gText_BattleTower2,
+ gText_BattleDome,
+ gText_BattlePalace,
+ gText_BattleArena,
+ gText_BattlePike,
+ gText_BattleFactory,
+ gText_BattlePyramid,
+};
-static void MatchCall_GetNameAndDesc_Type1(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void PopulateBattleFrontierFacilityName(int matchCallId, u8 *destStr)
{
- match_call_t _matchCall = matchCall;
- if (_matchCall.type1->name == NULL)
- MatchCall_GetNameAndDescByRematchIdx(_matchCall.type1->rematchTableIdx, desc, name);
- else
- *name = _matchCall.type1->name;
- *desc = _matchCall.type1->desc;
+ StringCopy(destStr, sBattleFrontierFacilityNames[gBattleFrontierStreakInfo.facilityId]);
}
-static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void PopulateBattleFrontierStreak(int matchCallId, u8 *destStr)
{
- MatchCall_GetNameAndDescByRematchIdx(matchCall.type2->rematchTableIdx, desc, name);
- *desc = matchCall.type2->desc;
+ int i = 0;
+ int streak = gBattleFrontierStreakInfo.streak;
+ while (streak != 0)
+ {
+ streak /= 10;
+ i++;
+ }
+
+ ConvertIntToDecimalStringN(destStr, gBattleFrontierStreakInfo.streak, 0, i);
}
-static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
+static const u16 sBadgeFlags[] =
{
- *desc = matchCall.type4->desc;
- *name = matchCall.type4->name;
-}
+ FLAG_BADGE01_GET,
+ FLAG_BADGE02_GET,
+ FLAG_BADGE03_GET,
+ FLAG_BADGE04_GET,
+ FLAG_BADGE05_GET,
+ FLAG_BADGE06_GET,
+ FLAG_BADGE07_GET,
+ FLAG_BADGE08_GET,
+};
-static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
+static int GetNumOwnedBadges(void)
{
- *desc = matchCall.type3->desc;
- *name = matchCall.type3->name;
+ u32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (!FlagGet(sBadgeFlags[i]))
+ break;
+ }
+
+ return i;
}
-static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const u8 **name)
+static bool32 sub_8196D74(int matchCallId)
{
- const struct Trainer *trainer = gTrainers + GetTrainerIdxByRematchIdx(idx);
- *desc = gTrainerClassNames[trainer->trainerClass];
- *name = trainer->trainerName;
+ int dayCount;
+ int otId;
+ u16 easyChatWord;
+ int numRematchTrainersFought;
+ int var0, var1, var2;
+
+ if (GetNumOwnedBadges() < 5)
+ return FALSE;
+
+ dayCount = RtcGetLocalDayCount();
+ otId = GetTrainerId(gSaveBlock2Ptr->playerTrainerId) & 0xFFFF;
+
+ easyChatWord = gSaveBlock1Ptr->easyChatPairs[0].unk2;
+ numRematchTrainersFought = GetNumRematchTrainersFought();
+ var0 = (numRematchTrainersFought * 13) / 10;
+ var1 = ((dayCount ^ easyChatWord) + (easyChatWord ^ GetGameStat(GAME_STAT_TRAINER_BATTLES))) ^ otId;
+ var2 = var1 % var0;
+ if (var2 < numRematchTrainersFought)
+ {
+ if (sub_8196774(var2) == matchCallId)
+ return TRUE;
+ }
+
+ return FALSE;
}
-#ifdef NONMATCHING
-const u8 *sub_81D1B40(u32 idx, u32 offset)
+static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId)
{
- u32 i;
+ int i;
+ int j;
+ u16 streak = 0;
- for (i = 0; i < 4; i++)
+ switch (facilityId)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
+ case FRONTIER_FACILITY_DOME:
+ for (i = 0; i < 2; i++)
{
- for (; i + 1 < 4 && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++)
+ for (j = 0; j < 2; j++)
{
- if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4))
- break;
+ if (streak < gSaveBlock2Ptr->frontier.domeRecordWinStreaks[i][j])
+ streak = gSaveBlock2Ptr->frontier.domeRecordWinStreaks[i][j];
+ }
+ }
+ *topicTextId = 3;
+ break;
+ case FRONTIER_FACILITY_FACTORY:
+ for (i = 0; i < 2; i++)
+ {
+ // BUG: should be looking at battle factory records.
+ if (streak < gSaveBlock2Ptr->frontier.pikeRecordStreaks[i])
+ streak = gSaveBlock2Ptr->frontier.pikeRecordStreaks[i];
+ }
+ *topicTextId = 4;
+ break;
+ case FRONTIER_FACILITY_TOWER:
+ for (i = 0; i < 4; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ if (streak < gSaveBlock2Ptr->frontier.towerRecordWinStreaks[i][j])
+ streak = gSaveBlock2Ptr->frontier.towerRecordWinStreaks[i][j];
}
- return sMatchCallCheckPageOverrides[i].v8[offset];
}
+ *topicTextId = 2;
+ break;
+ case FRONTIER_FACILITY_PALACE:
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ if (streak < gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[i][j])
+ streak = gSaveBlock2Ptr->frontier.palaceRecordWinStreaks[i][j];
+ }
+ }
+ *topicTextId = 2;
+ break;
+ case FRONTIER_FACILITY_PIKE:
+ for (i = 0; i < 2; i++)
+ {
+ for (j = 0; j < 2; j++)
+ {
+ // BUG: should be looking at battle pike records.
+ if (streak < gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[i][j])
+ streak = gSaveBlock2Ptr->frontier.factoryRecordWinStreaks[i][j];
+ }
+ }
+ *topicTextId = 2;
+ break;
+ case FRONTIER_FACILITY_ARENA:
+ for (i = 0; i < 2; i++)
+ {
+ if (streak < gSaveBlock2Ptr->frontier.arenaRecordStreaks[i])
+ streak = gSaveBlock2Ptr->frontier.arenaRecordStreaks[i];
+ }
+ *topicTextId = 2;
+ break;
+ case FRONTIER_FACILITY_PYRAMID:
+ for (i = 0; i < 2; i++)
+ {
+ if (streak < gSaveBlock2Ptr->frontier.pyramidRecordStreaks[i])
+ streak = gSaveBlock2Ptr->frontier.pyramidRecordStreaks[i];
+ }
+ *topicTextId = 5;
+ break;
}
- return NULL;
+
+ return streak;
}
-#else
-NAKED const u8 *sub_81D1B40(u32 idx, u32 offset)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r9\n"
- "\tmov r6, r8\n"
- "\tpush {r6,r7}\n"
- "\tadds r6, r0, 0\n"
- "\tmovs r5, 0\n"
- "\tldr r2, =sMatchCallCheckPageOverrides\n"
- "\tmovs r0, 0x8\n"
- "\tadds r0, r2\n"
- "\tmov r9, r0\n"
- "_081D1B54:\n"
- "\tlsls r0, r5, 1\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r2\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbne _081D1BBC\n"
- "\tadds r4, r5, 0x1\n"
- "\tlsls r1, 2\n"
- "\tmov r8, r1\n"
- "\tcmp r4, 0x3\n"
- "\tbhi _081D1BA8\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r2\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbne _081D1BA8\n"
- "\tldr r7, =sMatchCallCheckPageOverrides\n"
- "_081D1B7C:\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r1, r7, 0x4\n"
- "\tadds r0, r1\n"
- "\tldrh r0, [r0]\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D1BA8\n"
- "\tadds r5, r4, 0\n"
- "\tadds r4, r5, 0x1\n"
- "\tcmp r4, 0x3\n"
- "\tbhi _081D1BA8\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r7\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbeq _081D1B7C\n"
- "_081D1BA8:\n"
- "\tlsls r0, r5, 1\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 3\n"
- "\tadd r0, r8\n"
- "\tadd r0, r9\n"
- "\tldr r0, [r0]\n"
- "\tb _081D1BC4\n"
- "\t.pool\n"
- "_081D1BBC:\n"
- "\tadds r5, 0x1\n"
- "\tcmp r5, 0x3\n"
- "\tbls _081D1B54\n"
- "\tmovs r0, 0\n"
- "_081D1BC4:\n"
- "\tpop {r3,r4}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tpop {r4-r7}\n"
- "\tpop {r1}\n"
- "\tbx r1");
+
+static u8 GetPokedexRatingLevel(u16 numSeen)
+{
+ if (numSeen < 10)
+ return 0;
+ if (numSeen < 20)
+ return 1;
+ if (numSeen < 30)
+ return 2;
+ if (numSeen < 40)
+ return 3;
+ if (numSeen < 50)
+ return 4;
+ if (numSeen < 60)
+ return 5;
+ if (numSeen < 70)
+ return 6;
+ if (numSeen < 80)
+ return 7;
+ if (numSeen < 90)
+ return 8;
+ if (numSeen < 100)
+ return 9;
+ if (numSeen < 110)
+ return 10;
+ if (numSeen < 120)
+ return 11;
+ if (numSeen < 130)
+ return 12;
+ if (numSeen < 140)
+ return 13;
+ if (numSeen < 150)
+ return 14;
+ if (numSeen < 160)
+ return 15;
+ if (numSeen < 170)
+ return 16;
+ if (numSeen < 180)
+ return 17;
+ if (numSeen < 190)
+ return 18;
+ if (numSeen < 200)
+ return 19;
+
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT))
+ numSeen--;
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT))
+ numSeen--;
+
+ if (numSeen < 200)
+ return 19;
+ else
+ return 20;
}
-#endif
-s32 sub_81D1BD0(u32 idx)
+static const u8 *const sBirchDexRatingTexts[] =
{
- u32 i;
+ gBirchDexRatingText_LessThan10,
+ gBirchDexRatingText_LessThan20,
+ gBirchDexRatingText_LessThan30,
+ gBirchDexRatingText_LessThan40,
+ gBirchDexRatingText_LessThan50,
+ gBirchDexRatingText_LessThan60,
+ gBirchDexRatingText_LessThan70,
+ gBirchDexRatingText_LessThan80,
+ gBirchDexRatingText_LessThan90,
+ gBirchDexRatingText_LessThan100,
+ gBirchDexRatingText_LessThan110,
+ gBirchDexRatingText_LessThan120,
+ gBirchDexRatingText_LessThan130,
+ gBirchDexRatingText_LessThan140,
+ gBirchDexRatingText_LessThan150,
+ gBirchDexRatingText_LessThan160,
+ gBirchDexRatingText_LessThan170,
+ gBirchDexRatingText_LessThan180,
+ gBirchDexRatingText_LessThan190,
+ gBirchDexRatingText_LessThan200,
+ gBirchDexRatingText_DexCompleted,
+};
- for (i = 0; i < 4; i++)
+void sub_8197080(u8 *destStr)
+{
+ int numSeen, numCaught;
+ u8 *str;
+ u8 dexRatingLevel;
+
+ u8 *buffer = Alloc(0x3E8);
+ if (!buffer)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
- return sMatchCallCheckPageOverrides[i].v2;
+ destStr[0] = EOS;
+ return;
}
- return -1;
-}
-
-bool32 sub_81D1BF8(u32 idx)
-{
- s32 i;
- for (i = 0; i < 21; i++)
+ numSeen = GetHoennPokedexCount(FLAG_GET_SEEN);
+ numCaught = GetHoennPokedexCount(FLAG_GET_CAUGHT);
+ ConvertIntToDecimalStringN(gStringVar1, numSeen, 0, 3);
+ ConvertIntToDecimalStringN(gStringVar2, numCaught, 0, 3);
+ dexRatingLevel = GetPokedexRatingLevel(numCaught);
+ str = StringCopy(buffer, gUnknown_082A5C9C);
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ str = StringCopy(str, gUnknown_082A5D2C);
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ StringCopy(str, sBirchDexRatingTexts[dexRatingLevel]);
+ str = StringExpandPlaceholders(destStr, buffer);
+
+ if (IsNationalPokedexEnabled())
{
- u32 r0 = MatchCall_GetRematchTableIdx(i);
- if (r0 != REMATCH_TABLE_ENTRIES && r0 == idx)
- return TRUE;
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ numSeen = GetNationalPokedexCount(FLAG_GET_SEEN);
+ numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT);
+ ConvertIntToDecimalStringN(gStringVar1, numSeen, 0, 3);
+ ConvertIntToDecimalStringN(gStringVar2, numCaught, 0, 3);
+ StringExpandPlaceholders(str, gUnknown_082A633D);
}
- return FALSE;
+
+ Free(buffer);
+}
+
+void sub_8197184(u8 windowId, u32 destOffset, u32 paletteId)
+{
+ u8 bg = GetWindowAttribute(windowId, WINDOW_BG);
+ LoadBgTiles(bg, sUnknown_0860EA6C, 0x100, destOffset);
+ LoadPalette(sUnknown_0860EA4C, paletteId << 4, 0x20);
}
-void SetMatchCallRegisteredFlag(void)
+void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId)
{
- s32 r0 = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
- if (r0 >= 0)
- FlagSet(FLAG_MATCH_CALL_REGISTERED + r0);
+ DrawMatchCallTextBoxBorder(windowId, tileOffset, paletteId);
}
diff --git a/src/new_game.c b/src/new_game.c
index 8ecd48bc7..1b3fa2b00 100644
--- a/src/new_game.c
+++ b/src/new_game.c
@@ -46,7 +46,7 @@ extern void NewGameInitPCItems(void);
extern void ClearDecorationInventories(void);
extern void ResetFanClub(void);
extern void copy_strings_to_sav1(void);
-extern void sub_8195E10(void);
+extern void InitMatchCallCounters(void);
extern void sub_801AFD8(void);
extern void sub_800E5AC(void);
extern void sub_81D54BC(void);
@@ -209,7 +209,7 @@ void NewGameInitData(void)
SetLilycoveLady();
ResetAllApprenticeData();
ClearRankingHallRecords();
- sub_8195E10();
+ InitMatchCallCounters();
sub_801AFD8();
sub_800E5AC();
sub_81D54BC();
diff --git a/src/overworld.c b/src/overworld.c
index ef424cff8..9df69e360 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -127,7 +127,7 @@ extern void ExecuteTruckSequence(void);
extern void sub_80A0A38(void);
extern void WriteFlashScanlineEffectBuffer(u8);
extern void sub_81AA2F8(void);
-extern void sub_8195E10(void);
+extern void InitMatchCallCounters(void);
extern void sub_80EDB44(void);
extern void sub_81D64C0(void);
extern void InitFieldMessageBox(void);
@@ -1777,7 +1777,7 @@ void CB2_ContinueSavedGame(void)
PlayTimeCounter_Start();
ScriptContext1_Init();
ScriptContext2_Disable();
- sub_8195E10();
+ InitMatchCallCounters();
if (UseContinueGameWarp() == TRUE)
{
ClearContinueGameWarpStatus();
diff --git a/src/pokenav_match_call.c b/src/pokenav_match_call.c
new file mode 100644
index 000000000..a15700070
--- /dev/null
+++ b/src/pokenav_match_call.c
@@ -0,0 +1,1275 @@
+
+// Includes
+#include "global.h"
+#include "battle_setup.h"
+#include "event_data.h"
+#include "string_util.h"
+#include "battle.h"
+#include "gym_leader_rematch.h"
+
+extern void sub_8197080(u8 *dest);
+extern const u8 gTrainerClassNames[][13];
+
+// Static type declarations
+
+typedef struct MatchCallTextDataStruct {
+ const u8 *text;
+ u16 flag;
+ u16 flag2;
+} match_call_text_data_t;
+
+struct MatchCallStructCommon {
+ u8 type;
+ u8 v1;
+ u16 flag;
+};
+
+struct MatchCallStruct0 {
+ u8 type;
+ u8 v1;
+ u16 flag;
+ const u8 *desc;
+ const u8 *name;
+ const match_call_text_data_t *textData;
+};
+
+struct MatchCallStruct1 {
+ u8 type;
+ u8 v1;
+ u16 flag;
+ u16 rematchTableIdx;
+ const u8 *desc;
+ const u8 *name;
+ const match_call_text_data_t *textData;
+};
+
+struct MatchCallSubstruct2 {
+ u16 flag;
+ u8 v2;
+};
+
+struct MatchCallStruct2 {
+ u8 type;
+ u8 v1;
+ u16 flag;
+ u16 rematchTableIdx;
+ const u8 *desc;
+ const match_call_text_data_t *textData;
+ const struct MatchCallSubstruct2 *v10;
+};
+
+struct MatchCallStruct3 {
+ u8 type;
+ u8 v1;
+ u16 flag;
+ const u8 *desc;
+ const u8 *name;
+};
+
+struct MatchCallStruct4 {
+ u8 type;
+ u8 gender;
+ u16 flag;
+ const u8 *desc;
+ const u8 *name;
+ const match_call_text_data_t *textData;
+};
+
+struct MatchCallStruct5 {
+ u8 type;
+ u8 v1;
+ u16 flag;
+ u16 v4;
+ const u8 *desc;
+ const u8 *name;
+ const match_call_text_data_t *textData;
+};
+
+#define MATCHCALLDEF(name, type_, ...) \
+static const struct MatchCallStruct##type_ name = { \
+ .type = type_, \
+ __VA_ARGS__ \
+};
+
+typedef union {
+ const struct MatchCallStructCommon *common;
+ const struct MatchCallStruct0 *type0;
+ const struct MatchCallStruct1 *type1;
+ const struct MatchCallStruct2 *type2;
+ const struct MatchCallStruct3 *type3;
+ const struct MatchCallStruct4 *type4;
+ const struct MatchCallStruct5 *type5;
+} match_call_t;
+
+struct UnkStruct_08625388 {
+ u16 idx;
+ u16 v2;
+ u16 v4;
+ const u8 *v8[4];
+};
+
+// Static RAM declarations
+
+// Static ROM declarations
+
+static bool32 MatchCallGetFlag_Type0(match_call_t);
+static bool32 MatchCallGetFlag_Type1(match_call_t);
+static bool32 MatchCallGetFlag_Type2(match_call_t);
+static bool32 MatchCallGetFlag_Type3(match_call_t);
+static bool32 MatchCallGetFlag_Type4(match_call_t);
+
+static u8 sub_81D1714(match_call_t);
+static u8 sub_81D1718(match_call_t);
+static u8 sub_81D171C(match_call_t);
+static u8 sub_81D1750(match_call_t);
+static u8 sub_81D1754(match_call_t);
+
+static bool32 MatchCall_IsRematchable_Type0(match_call_t);
+static bool32 MatchCall_IsRematchable_Type1(match_call_t);
+static bool32 MatchCall_IsRematchable_Type2(match_call_t);
+static bool32 MatchCall_IsRematchable_Type3(match_call_t);
+static bool32 MatchCall_IsRematchable_Type4(match_call_t);
+
+static bool32 sub_81D1840(match_call_t);
+static bool32 sub_81D1844(match_call_t);
+static bool32 sub_81D1848(match_call_t);
+static bool32 sub_81D184C(match_call_t);
+static bool32 sub_81D1850(match_call_t);
+
+static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t);
+
+static void MatchCall_GetMessage_Type0(match_call_t, u8 *);
+static void MatchCall_GetMessage_Type1(match_call_t, u8 *);
+static void MatchCall_GetMessage_Type2(match_call_t, u8 *);
+static void MatchCall_GetMessage_Type3(match_call_t, u8 *);
+static void MatchCall_GetMessage_Type4(match_call_t, u8 *);
+
+static void MatchCall_GetNameAndDesc_Type0(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Type1(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Type2(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Type3(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Type4(match_call_t, const u8 **, const u8 **);
+
+static void sub_81D1920(const match_call_text_data_t *, u8 *);
+static void sub_81D199C(const match_call_text_data_t *, u16, u8 *);
+static void MatchCall_GetNameAndDescByRematchIdx(u32, const u8 **, const u8 **);
+
+extern const u8 gText_MrStone_Pokenav_2B60C0[];
+extern const u8 gText_MrStone_Pokenav_2B61E6[];
+extern const u8 gText_MrStone_Pokenav_2B6302[];
+extern const u8 gText_MrStone_Pokenav_2B63A0[];
+extern const u8 gText_MrStone_Pokenav_2B64A2[];
+extern const u8 gText_MrStone_Pokenav_2B6526[];
+extern const u8 gText_MrStone_Pokenav_2B65BB[];
+extern const u8 gText_MrStone_Pokenav_2B6664[];
+extern const u8 gText_MrStone_Pokenav_2B66B1[];
+extern const u8 gText_MrStone_Pokenav_2B6703[];
+extern const u8 gText_MrStone_Pokenav_2B67ED[];
+
+extern const u8 gMrStoneMatchCallDesc[];
+extern const u8 gMrStoneMatchCallName[];
+
+extern const u8 gText_Norman_Pokenav_2B5719[];
+extern const u8 gText_Norman_Pokenav_2B5795[];
+extern const u8 gText_Norman_Pokenav_2B584D[];
+extern const u8 gText_Norman_Pokenav_2B58E3[];
+extern const u8 gText_Norman_Pokenav_2B5979[];
+extern const u8 gText_Norman_Pokenav_2B5A07[];
+extern const u8 gText_Norman_Pokenav_2B5A69[];
+extern const u8 gText_Norman_Pokenav_2B5ACF[];
+extern const u8 gText_Norman_Pokenav_2B5B5E[];
+
+extern const u8 gNormanMatchCallDesc[];
+extern const u8 gNormanMatchCallName[];
+
+extern const u8 gProfBirchMatchCallDesc[];
+extern const u8 gProfBirchMatchCallName[];
+
+extern const u8 gText_Mom_Pokenav_2B227B[];
+extern const u8 gText_Mom_Pokenav_2B2310[];
+extern const u8 gText_Mom_Pokenav_2B23F3[];
+
+extern const u8 gMomMatchCallDesc[];
+extern const u8 gMomMatchCallName[];
+
+extern const u8 gText_Steven_Pokenav_2B5B95[];
+extern const u8 gText_Steven_Pokenav_2B5C53[];
+extern const u8 gText_Steven_Pokenav_2B5CC9[];
+extern const u8 gText_Steven_Pokenav_2B5DB4[];
+extern const u8 gText_Steven_Pokenav_2B5E26[];
+extern const u8 gText_Steven_Pokenav_2B5EA2[];
+extern const u8 gText_Steven_Pokenav_2B5ED9[];
+
+extern const u8 gStevenMatchCallDesc[];
+extern const u8 gStevenMatchCallName[];
+
+extern const u8 gText_May_Pokenav_2B3AB3[];
+extern const u8 gText_May_Pokenav_2B3B3F[];
+extern const u8 gText_May_Pokenav_2B3C13[];
+extern const u8 gText_May_Pokenav_2B3CF3[];
+extern const u8 gText_May_Pokenav_2B3D4B[];
+extern const u8 gText_May_Pokenav_2B3DD1[];
+extern const u8 gText_May_Pokenav_2B3E69[];
+extern const u8 gText_May_Pokenav_2B3ECD[];
+extern const u8 gText_May_Pokenav_2B3F2B[];
+extern const u8 gText_May_Pokenav_2B3FFB[];
+extern const u8 gText_May_Pokenav_2B402B[];
+extern const u8 gText_May_Pokenav_2B414B[];
+extern const u8 gText_May_Pokenav_2B4228[];
+extern const u8 gText_May_Pokenav_2B42E0[];
+extern const u8 gText_May_Pokenav_2B4350[];
+extern const u8 gMayBrendanMatchCallDesc[];
+extern const u8 gExpandedPlaceholder_May[];
+extern const u8 gText_Brendan_Pokenav_2B43EF[];
+extern const u8 gText_Brendan_Pokenav_2B4486[];
+extern const u8 gText_Brendan_Pokenav_2B4560[];
+extern const u8 gText_Brendan_Pokenav_2B463F[];
+extern const u8 gText_Brendan_Pokenav_2B46B7[];
+extern const u8 gText_Brendan_Pokenav_2B4761[];
+extern const u8 gText_Brendan_Pokenav_2B47F4[];
+extern const u8 gText_Brendan_Pokenav_2B4882[];
+extern const u8 gText_Brendan_Pokenav_2B4909[];
+extern const u8 gText_Brendan_Pokenav_2B49C4[];
+extern const u8 gText_Brendan_Pokenav_2B4A44[];
+extern const u8 gText_Brendan_Pokenav_2B4B28[];
+extern const u8 gText_Brendan_Pokenav_2B4C15[];
+extern const u8 gText_Brendan_Pokenav_2B4CD8[];
+extern const u8 gText_Brendan_Pokenav_2B4D46[];
+extern const u8 gExpandedPlaceholder_Brendan[];
+extern const u8 gText_Wally_Pokenav_2B4DE2[];
+extern const u8 gText_Wally_Pokenav_2B4E57[];
+extern const u8 gText_Wally_Pokenav_2B4EA5[];
+extern const u8 gText_Wally_Pokenav_2B4F41[];
+extern const u8 gText_Wally_Pokenav_2B4FF3[];
+extern const u8 gText_Wally_Pokenav_2B50B1[];
+extern const u8 gText_Wally_Pokenav_2B5100[];
+extern const u8 gWallyMatchCallDesc[];
+extern const u8 gText_Scott_Pokenav_2B5184[];
+extern const u8 gText_Scott_Pokenav_2B5275[];
+extern const u8 gText_Scott_Pokenav_2B5323[];
+extern const u8 gText_Scott_Pokenav_2B53DB[];
+extern const u8 gText_Scott_Pokenav_2B54A5[];
+extern const u8 gText_Scott_Pokenav_2B5541[];
+extern const u8 gText_Scott_Pokenav_2B56CA[];
+extern const u8 gScottMatchCallDesc[];
+extern const u8 gScottMatchCallName[];
+extern const u8 gText_Roxanne_Pokenav_2B2456[];
+extern const u8 gText_Roxanne_Pokenav_2B250E[];
+extern const u8 gText_Roxanne_Pokenav_2B25C1[];
+extern const u8 gText_Roxanne_Pokenav_2B2607[];
+extern const u8 gRoxanneMatchCallDesc[];
+extern const u8 gText_Brawly_Pokenav_2B2659[];
+extern const u8 gText_Brawly_Pokenav_2B275D[];
+extern const u8 gText_Brawly_Pokenav_2B286F[];
+extern const u8 gText_Brawly_Pokenav_2B28D1[];
+extern const u8 gBrawlyMatchCallDesc[];
+extern const u8 gText_Wattson_Pokenav_2B2912[];
+extern const u8 gText_Wattson_Pokenav_2B29CA[];
+extern const u8 gText_Wattson_Pokenav_2B2AB6[];
+extern const u8 gText_Wattson_Pokenav_2B2B01[];
+extern const u8 gWattsonMatchCallDesc[];
+extern const u8 gText_Flannery_Pokenav_2B2B4D[];
+extern const u8 gText_Flannery_Pokenav_2B2C0E[];
+extern const u8 gText_Flannery_Pokenav_2B2CF1[];
+extern const u8 gText_Flannery_Pokenav_2B2D54[];
+extern const u8 gFlanneryMatchCallDesc[];
+extern const u8 gText_Winona_Pokenav_2B2DA4[];
+extern const u8 gText_Winona_Pokenav_2B2E2B[];
+extern const u8 gText_Winona_Pokenav_2B2EC2[];
+extern const u8 gText_Winona_Pokenav_2B2F16[];
+extern const u8 gWinonaMatchCallDesc[];
+extern const u8 gText_TateLiza_Pokenav_2B2F97[];
+extern const u8 gText_TateLiza_Pokenav_2B306E[];
+extern const u8 gText_TateLiza_Pokenav_2B3158[];
+extern const u8 gText_TateLiza_Pokenav_2B31CD[];
+extern const u8 gTateLizaMatchCallDesc[];
+extern const u8 gText_Juan_Pokenav_2B3249[];
+extern const u8 gText_Juan_Pokenav_2B32EC[];
+extern const u8 gText_Juan_Pokenav_2B33AA[];
+extern const u8 gText_Juan_Pokenav_2B341E[];
+extern const u8 gJuanMatchCallDesc[];
+extern const u8 gText_Sidney_Pokenav_2B34CC[];
+extern const u8 gEliteFourMatchCallDesc[];
+extern const u8 gText_Phoebe_Pokenav_2B3561[];
+extern const u8 gText_Glacia_Pokenav_2B35E4[];
+extern const u8 gText_Drake_Pokenav_2B368B[];
+extern const u8 gText_Wallace_Pokenav_2B3790[];
+extern const u8 gChampionMatchCallDesc[];
+extern const u8 gMatchCallStevenStrategyText[];
+extern const u8 gMatchCall_StevenTrainersPokemonText[];
+extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[];
+extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[];
+extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[];
+extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[];
+extern const u8 gMatchCall_BrendanStrategyText[];
+extern const u8 gMatchCall_BrendanTrainersPokemonText[];
+extern const u8 gMatchCall_BrendanSelfIntroductionText_Line1[];
+extern const u8 gMatchCall_BrendanSelfIntroductionText_Line2[];
+extern const u8 gMatchCall_MayStrategyText[];
+extern const u8 gMatchCall_MayTrainersPokemonText[];
+extern const u8 gMatchCall_MaySelfIntroductionText_Line1[];
+extern const u8 gMatchCall_MaySelfIntroductionText_Line2[];
+// .rodata
+
+static const match_call_text_data_t sMrStoneTextScripts[] = {
+ { gText_MrStone_Pokenav_2B60C0, 0xFFFF, FLAG_0x158 },
+ { gText_MrStone_Pokenav_2B61E6, FLAG_0x158, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6302, FLAG_0x0BD, 0xFFFF },
+ { gText_MrStone_Pokenav_2B63A0, FLAG_0x110, 0xFFFF },
+ { gText_MrStone_Pokenav_2B64A2, FLAG_0x06A, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6526, FLAG_0x4F4, 0xFFFF },
+ { gText_MrStone_Pokenav_2B65BB, FLAG_0x097, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6664, FLAG_0x06F, 0xFFFF },
+ { gText_MrStone_Pokenav_2B66B1, FLAG_0x070, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6703, FLAG_0x4F7, 0xFFFF },
+ { gText_MrStone_Pokenav_2B67ED, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sMrStoneMatchCallHeader, 0, 10, 0xffff, gMrStoneMatchCallDesc, gMrStoneMatchCallName, sMrStoneTextScripts);
+
+static const match_call_text_data_t sNormanTextScripts[] = {
+ { gText_Norman_Pokenav_2B5719, FLAG_0x132, 0xFFFF },
+ { gText_Norman_Pokenav_2B5795, FLAG_0x4F1, 0xFFFF },
+ { gText_Norman_Pokenav_2B584D, FLAG_0x4F3, 0xFFFF },
+ { gText_Norman_Pokenav_2B58E3, FLAG_0x4F4, 0xFFFF },
+ { gText_Norman_Pokenav_2B5979, FLAG_0x0D4, 0xFFFF },
+ { gText_Norman_Pokenav_2B5A07, 0xFFFE, 0xFFFF },
+ { gText_Norman_Pokenav_2B5A69, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { gText_Norman_Pokenav_2B5ACF, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { gText_Norman_Pokenav_2B5B5E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sNormanMatchCallHeader, 5, 7, FLAG_0x132, 0x45, gNormanMatchCallDesc, gNormanMatchCallName, sNormanTextScripts);
+
+MATCHCALLDEF(sProfBirchMatchCallHeader, 3, 0, FLAG_0x119, gProfBirchMatchCallDesc, gProfBirchMatchCallName)
+
+static const match_call_text_data_t sMomTextScripts[] = {
+ { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
+ { gText_Mom_Pokenav_2B2310, FLAG_0x4F4, 0xffff },
+ { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
+ { NULL, 0xffff, 0xffff }
+};
+
+MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_0x0D8, gMomMatchCallDesc, gMomMatchCallName, sMomTextScripts);
+
+static const match_call_text_data_t sStevenTextScripts[] = {
+ { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
+ { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
+ { gText_Steven_Pokenav_2B5CC9, FLAG_0x0D4, 0xffff },
+ { gText_Steven_Pokenav_2B5DB4, FLAG_0x070, 0xffff },
+ { gText_Steven_Pokenav_2B5E26, FLAG_0x4F6, 0xffff },
+ { gText_Steven_Pokenav_2B5EA2, FLAG_0x081, 0xffff },
+ { gText_Steven_Pokenav_2B5ED9, FLAG_SYS_GAME_CLEAR, 0xffff },
+ { NULL, 0xffff, 0xffff },
+};
+
+MATCHCALLDEF(sStevenMatchCallHeader, 0, 0xd5, FLAG_0x131, gStevenMatchCallDesc, gStevenMatchCallName, sStevenTextScripts);
+
+static const match_call_text_data_t sMayTextScripts[] = {
+ { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF },
+ { gText_May_Pokenav_2B3B3F, FLAG_0x4F1, 0xFFFF },
+ { gText_May_Pokenav_2B3C13, FLAG_0x095, 0xFFFF },
+ { gText_May_Pokenav_2B3CF3, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { gText_May_Pokenav_2B3D4B, FLAG_0x06A, 0xFFFF },
+ { gText_May_Pokenav_2B3DD1, FLAG_0x4F3, 0xFFFF },
+ { gText_May_Pokenav_2B3E69, FLAG_0x4F4, 0xFFFF },
+ { gText_May_Pokenav_2B3ECD, FLAG_0x097, 0xFFFF },
+ { gText_May_Pokenav_2B3F2B, FLAG_0x0D4, 0xFFFF },
+ { gText_May_Pokenav_2B3FFB, FLAG_0x06F, 0xFFFF },
+ { gText_May_Pokenav_2B402B, FLAG_0x061, 0xFFFF },
+ { gText_May_Pokenav_2B414B, FLAG_0x070, 0xFFFF },
+ { gText_May_Pokenav_2B4228, FLAG_0x081, 0xFFFF },
+ { gText_May_Pokenav_2B42E0, FLAG_0x4F7, 0xFFFF },
+ { gText_May_Pokenav_2B4350, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sMayMatchCallHeader, 4, MALE, FLAG_0x0FD, gMayBrendanMatchCallDesc, gExpandedPlaceholder_May, sMayTextScripts);
+
+static const match_call_text_data_t sBrendanTextScripts[] = {
+ { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4486, FLAG_0x4F1, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4560, FLAG_0x095, 0xFFFF },
+ { gText_Brendan_Pokenav_2B463F, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { gText_Brendan_Pokenav_2B46B7, FLAG_0x06A, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4761, FLAG_0x4F3, 0xFFFF },
+ { gText_Brendan_Pokenav_2B47F4, FLAG_0x4F4, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4882, FLAG_0x097, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4909, FLAG_0x0D4, 0xFFFF },
+ { gText_Brendan_Pokenav_2B49C4, FLAG_0x06F, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4A44, FLAG_0x061, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4B28, FLAG_0x070, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4C15, FLAG_0x081, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4CD8, FLAG_0x4F7, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4D46, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_0x0FD, gMayBrendanMatchCallDesc, gExpandedPlaceholder_Brendan, sBrendanTextScripts);
+
+static const match_call_text_data_t sWallyTextScripts[] = {
+ { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
+ { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
+ { gText_Wally_Pokenav_2B4EA5, FLAG_0x4F3, 0xFFFF },
+ { gText_Wally_Pokenav_2B4F41, FLAG_0x097, 0xFFFF },
+ { gText_Wally_Pokenav_2B4FF3, FLAG_0x06F, 0xFFFF },
+ { gText_Wally_Pokenav_2B50B1, FLAG_0x081, 0xFFFF },
+ { gText_Wally_Pokenav_2B5100, FLAG_0x07E, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
+ { FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 },
+ { FLAG_0x06F, 0xD5 },
+ { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 },
+ { 0xFFFF, 0xD5 }
+};
+
+MATCHCALLDEF(sWallyMatchCallHeader, 2, 0, FLAG_0x0D6, REMATCH_WALLY_3, gWallyMatchCallDesc, sWallyTextScripts, sWallyAdditionalData);
+
+static const match_call_text_data_t sScottTextScripts[] = {
+ { gText_Scott_Pokenav_2B5184, 0xFFFF, 0xFFFF },
+ { gText_Scott_Pokenav_2B5275, FLAG_0x08B, 0xFFFF },
+ { gText_Scott_Pokenav_2B5323, FLAG_0x097, 0xFFFF },
+ { gText_Scott_Pokenav_2B53DB, FLAG_0x0D4, 0xFFFF },
+ { gText_Scott_Pokenav_2B54A5, FLAG_0x070, 0xFFFF },
+ { gText_Scott_Pokenav_2B5541, FLAG_0x4F7, 0xFFFF },
+ { gText_Scott_Pokenav_2B56CA, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+
+MATCHCALLDEF(sScottMatchCallHeader, 0, 0xD5, FLAG_0x0D7, gScottMatchCallDesc, gScottMatchCallName, sScottTextScripts);
+
+static const match_call_text_data_t sRoxanneTextScripts[] = {
+ { gText_Roxanne_Pokenav_2B2456, 0xFFFE, 0xFFFF },
+ { gText_Roxanne_Pokenav_2B250E, 0xFFFF, 0xFFFF },
+ { gText_Roxanne_Pokenav_2B25C1, 0xFFFF, 0xFFFF },
+ { gText_Roxanne_Pokenav_2B2607, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sRoxanneMatchCallHeader, 5, 10, FLAG_0x1D3, 0x41, gRoxanneMatchCallDesc, NULL, sRoxanneTextScripts);
+
+static const match_call_text_data_t sBrawlyTextScripts[] = {
+ { gText_Brawly_Pokenav_2B2659, 0xFFFE, 0xFFFF },
+ { gText_Brawly_Pokenav_2B275D, 0xFFFF, 0xFFFF },
+ { gText_Brawly_Pokenav_2B286F, 0xFFFF, 0xFFFF },
+ { gText_Brawly_Pokenav_2B28D1, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sBrawlyMatchCallHeader, 5, 2, FLAG_0x1D4, 0x42, gBrawlyMatchCallDesc, NULL, sBrawlyTextScripts);
+
+static const match_call_text_data_t sWattsonTextScripts[] = {
+ { gText_Wattson_Pokenav_2B2912, 0xFFFE, 0xFFFF },
+ { gText_Wattson_Pokenav_2B29CA, 0xFFFF, 0xFFFF },
+ { gText_Wattson_Pokenav_2B2AB6, 0xFFFF, 0xFFFF },
+ { gText_Wattson_Pokenav_2B2B01, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sWattsonMatchCallHeader, 5, 9, FLAG_0x1D5, 0x43, gWattsonMatchCallDesc, NULL, sWattsonTextScripts);
+
+static const match_call_text_data_t sFlanneryTextScripts[] = {
+ { gText_Flannery_Pokenav_2B2B4D, 0xFFFE, 0xFFFF },
+ { gText_Flannery_Pokenav_2B2C0E, 0xFFFF, 0xFFFF },
+ { gText_Flannery_Pokenav_2B2CF1, 0xFFFF, 0xFFFF },
+ { gText_Flannery_Pokenav_2B2D54, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sFlanneryMatchCallHeader, 5, 3, FLAG_0x1D6, 0x44, gFlanneryMatchCallDesc, NULL, sFlanneryTextScripts);
+
+static const match_call_text_data_t sWinonaTextScripts[] = {
+ { gText_Winona_Pokenav_2B2DA4, 0xFFFE, 0xFFFF },
+ { gText_Winona_Pokenav_2B2E2B, 0xFFFF, 0xFFFF },
+ { gText_Winona_Pokenav_2B2EC2, 0xFFFF, 0xFFFF },
+ { gText_Winona_Pokenav_2B2F16, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sWinonaMatchCallHeader, 5, 11, FLAG_0x1D7, 0x46, gWinonaMatchCallDesc, NULL, sWinonaTextScripts);
+
+static const match_call_text_data_t sTateLizaTextScripts[] = {
+ { gText_TateLiza_Pokenav_2B2F97, 0xFFFE, 0xFFFF },
+ { gText_TateLiza_Pokenav_2B306E, 0xFFFF, 0xFFFF },
+ { gText_TateLiza_Pokenav_2B3158, 0xFFFF, 0xFFFF },
+ { gText_TateLiza_Pokenav_2B31CD, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sTateLizaMatchCallHeader, 5, 13, FLAG_0x1D8, 0x47, gTateLizaMatchCallDesc, NULL, sTateLizaTextScripts);
+
+static const match_call_text_data_t sJuanTextScripts[] = {
+ { gText_Juan_Pokenav_2B3249, 0xFFFE, 0xFFFF },
+ { gText_Juan_Pokenav_2B32EC, 0xFFFF, 0xFFFF },
+ { gText_Juan_Pokenav_2B33AA, 0xFFFF, 0xFFFF },
+ { gText_Juan_Pokenav_2B341E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sJuanMatchCallHeader, 5, 14, FLAG_0x1D9, 0x48, gJuanMatchCallDesc, NULL, sJuanTextScripts);
+
+static const match_call_text_data_t sSidneyTextScripts[] = {
+ { gText_Sidney_Pokenav_2B34CC, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sSidneyMatchCallHeader, 5, 15, FLAG_0x1A5, 0x49, gEliteFourMatchCallDesc, NULL, sSidneyTextScripts);
+
+static const match_call_text_data_t sPhoebeTextScripts[] = {
+ { gText_Phoebe_Pokenav_2B3561, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sPhoebeMatchCallHeader, 5, 15, FLAG_0x1A6, 0x4A, gEliteFourMatchCallDesc, NULL, sPhoebeTextScripts);
+
+static const match_call_text_data_t sGlaciaTextScripts[] = {
+ { gText_Glacia_Pokenav_2B35E4, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sGlaciaMatchCallHeader, 5, 15, FLAG_0x1A7, 0x4B, gEliteFourMatchCallDesc, NULL, sGlaciaTextScripts);
+
+static const match_call_text_data_t sDrakeTextScripts[] = {
+ { gText_Drake_Pokenav_2B368B, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sDrakeMatchCallHeader, 5, 15, FLAG_0x1A8, 0x4C, gEliteFourMatchCallDesc, NULL, sDrakeTextScripts);
+
+static const match_call_text_data_t sWallaceTextScripts[] = {
+ { gText_Wallace_Pokenav_2B3790, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sWallaceMatchCallHeader, 5, 15, FLAG_0x1A9, 0x4D, gChampionMatchCallDesc, NULL, sWallaceTextScripts);
+
+static const match_call_t sMatchCallHeaders[] = {
+ {.type0 = &sMrStoneMatchCallHeader},
+ {.type3 = &sProfBirchMatchCallHeader},
+ {.type4 = &sBrendanMatchCallHeader},
+ {.type4 = &sMayMatchCallHeader},
+ {.type2 = &sWallyMatchCallHeader},
+ {.type5 = &sNormanMatchCallHeader},
+ {.type0 = &sMomMatchCallHeader},
+ {.type0 = &sStevenMatchCallHeader},
+ {.type0 = &sScottMatchCallHeader},
+ {.type5 = &sRoxanneMatchCallHeader},
+ {.type5 = &sBrawlyMatchCallHeader},
+ {.type5 = &sWattsonMatchCallHeader},
+ {.type5 = &sFlanneryMatchCallHeader},
+ {.type5 = &sWinonaMatchCallHeader},
+ {.type5 = &sTateLizaMatchCallHeader},
+ {.type5 = &sJuanMatchCallHeader},
+ {.type5 = &sSidneyMatchCallHeader},
+ {.type5 = &sPhoebeMatchCallHeader},
+ {.type5 = &sGlaciaMatchCallHeader},
+ {.type5 = &sDrakeMatchCallHeader},
+ {.type5 = &sWallaceMatchCallHeader}
+};
+
+static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
+ MatchCallGetFlag_Type0,
+ MatchCallGetFlag_Type1,
+ MatchCallGetFlag_Type2,
+ MatchCallGetFlag_Type3,
+ MatchCallGetFlag_Type4
+};
+
+static u8 (*const gUnknown_08625310[])(match_call_t) = {
+ sub_81D1714,
+ sub_81D1718,
+ sub_81D171C,
+ sub_81D1750,
+ sub_81D1754
+};
+
+static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
+ MatchCall_IsRematchable_Type0,
+ MatchCall_IsRematchable_Type1,
+ MatchCall_IsRematchable_Type2,
+ MatchCall_IsRematchable_Type3,
+ MatchCall_IsRematchable_Type4
+};
+
+static bool32 (*const gUnknown_08625338[])(match_call_t) = {
+ sub_81D1840,
+ sub_81D1844,
+ sub_81D1848,
+ sub_81D184C,
+ sub_81D1850
+};
+
+static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
+ MatchCall_GetRematchTableIdx_Type0,
+ MatchCall_GetRematchTableIdx_Type1,
+ MatchCall_GetRematchTableIdx_Type2,
+ MatchCall_GetRematchTableIdx_Type3,
+ MatchCall_GetRematchTableIdx_Type4
+};
+
+static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = {
+ MatchCall_GetMessage_Type0,
+ MatchCall_GetMessage_Type1,
+ MatchCall_GetMessage_Type2,
+ MatchCall_GetMessage_Type3,
+ MatchCall_GetMessage_Type4
+};
+
+static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = {
+ MatchCall_GetNameAndDesc_Type0,
+ MatchCall_GetNameAndDesc_Type1,
+ MatchCall_GetNameAndDesc_Type2,
+ MatchCall_GetNameAndDesc_Type3,
+ MatchCall_GetNameAndDesc_Type4
+};
+
+static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = {
+ { 7, 0x4B, 0xffff, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
+ { 7, 0x4B, FLAG_0x4F6, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
+ { 2, 0x3c, 0xffff, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
+ { 3, 0x3f, 0xffff, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
+};
+
+// .text
+
+static u32 MatchCallGetFunctionIndex(match_call_t matchCall)
+{
+ switch (matchCall.common->type)
+ {
+ case 0:
+ default:
+ return 0;
+ case 1:
+ case 5:
+ return 1;
+ case 2:
+ return 2;
+ case 4:
+ return 3;
+ case 3:
+ return 4;
+ }
+}
+
+u32 GetTrainerIdxByRematchIdx(u32 rematchIdx)
+{
+ return gRematchTable[rematchIdx].trainerIds[0];
+}
+
+s32 GetRematchIdxByTrainerIdx(s32 trainerIdx)
+{
+ s32 rematchIdx;
+
+ for (rematchIdx = 0; rematchIdx < REMATCH_TABLE_ENTRIES; rematchIdx++)
+ {
+ if (gRematchTable[rematchIdx].trainerIds[0] == trainerIdx)
+ return rematchIdx;
+ }
+ return -1;
+}
+
+bool32 MatchCallFlagGetByIndex(u32 idx)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return FALSE;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ return sMatchCallGetFlagFuncs[i](matchCall);
+}
+
+static bool32 MatchCallGetFlag_Type0(match_call_t matchCall)
+{
+ if (matchCall.type0->flag == 0xffff)
+ return TRUE;
+ return FlagGet(matchCall.type0->flag);
+}
+
+static bool32 MatchCallGetFlag_Type1(match_call_t matchCall)
+{
+ if (matchCall.type1->flag == 0xffff)
+ return TRUE;
+ return FlagGet(matchCall.type1->flag);
+}
+
+static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
+{
+ if (matchCall.type2->flag == 0xffff)
+ return TRUE;
+ return FlagGet(matchCall.type2->flag);
+}
+
+static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
+{
+ if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
+ return FALSE;
+ if (matchCall.type4->flag == 0xffff)
+ return TRUE;
+ return FlagGet(matchCall.type4->flag);
+}
+
+static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
+{
+ return FlagGet(matchCall.type3->flag);
+}
+
+u8 sub_81D16DC(u32 idx)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return 0;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ return gUnknown_08625310[i](matchCall);
+}
+
+static u8 sub_81D1714(match_call_t matchCall)
+{
+ return matchCall.type0->v1;
+}
+
+static u8 sub_81D1718(match_call_t matchCall)
+{
+ return matchCall.type1->v1;
+}
+
+static u8 sub_81D171C(match_call_t matchCall)
+{
+ s32 i;
+
+ for (i = 0; matchCall.type2->v10[i].flag != 0xffff; i++)
+ {
+ if (!FlagGet(matchCall.type2->v10[i].flag))
+ break;
+ }
+ return matchCall.type2->v10[i].v2;
+}
+
+static u8 sub_81D1750(match_call_t matchCall)
+{
+ return 0xd5;
+}
+
+static u8 sub_81D1754(match_call_t matchCall)
+{
+ return 0xd5;
+}
+
+bool32 MatchCall_IsRematchable(u32 idx)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return 0;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ return sMatchCall_IsRematchableFunctions[i](matchCall);
+}
+
+static bool32 MatchCall_IsRematchable_Type0(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+static bool32 MatchCall_IsRematchable_Type1(match_call_t matchCall)
+{
+ if (matchCall.type1->rematchTableIdx >= REMATCH_ELITE_FOUR_ENTRIES)
+ return FALSE;
+ return gSaveBlock1Ptr->trainerRematches[matchCall.type1->rematchTableIdx] ? TRUE : FALSE;
+}
+
+static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall)
+{
+ return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE;
+}
+
+static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+bool32 sub_81D17E8(u32 idx)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return FALSE;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ if (gUnknown_08625338[i](matchCall))
+ return TRUE;
+ for (i = 0; i < 4; i++)
+ {
+ if (sMatchCallCheckPageOverrides[i].idx == idx)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+static bool32 sub_81D1840(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+static bool32 sub_81D1844(match_call_t matchCall)
+{
+ return TRUE;
+}
+
+static bool32 sub_81D1848(match_call_t matchCall)
+{
+ return TRUE;
+}
+
+static bool32 sub_81D184C(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+static bool32 sub_81D1850(match_call_t matchCall)
+{
+ return FALSE;
+}
+
+u32 MatchCall_GetRematchTableIdx(u32 idx)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return REMATCH_TABLE_ENTRIES;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ return sMatchCall_GetRematchTableIdxFunctions[i](matchCall);
+}
+
+static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t matchCall)
+{
+ return REMATCH_TABLE_ENTRIES;
+}
+
+static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t matchCall)
+{
+ return matchCall.type1->rematchTableIdx;
+}
+
+static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall)
+{
+ return matchCall.type2->rematchTableIdx;
+}
+
+static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
+{
+ return REMATCH_TABLE_ENTRIES;
+}
+
+static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
+{
+ return REMATCH_TABLE_ENTRIES;
+}
+
+void MatchCall_GetMessage(u32 idx, u8 *dest)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ sMatchCall_GetMessageFunctions[i](matchCall, dest);
+}
+
+static void MatchCall_GetMessage_Type0(match_call_t matchCall, u8 *dest)
+{
+ sub_81D1920(matchCall.type0->textData, dest);
+}
+
+static void MatchCall_GetMessage_Type1(match_call_t matchCall, u8 *dest)
+{
+ if (matchCall.common->type != 5)
+ sub_81D1920(matchCall.type5->textData, dest);
+ else
+ sub_81D199C(matchCall.type1->textData, matchCall.type1->rematchTableIdx, dest);
+}
+
+static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest)
+{
+ sub_81D1920(matchCall.type2->textData, dest);
+}
+
+static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
+{
+ sub_81D1920(matchCall.type4->textData, dest);
+}
+
+static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
+{
+ sub_8197080(dest);
+}
+
+void sub_81D1920(const match_call_text_data_t *sub0, u8 *dest)
+{
+ u32 i;
+ for (i = 0; sub0[i].text != NULL; i++)
+ ;
+ if (i)
+ i--;
+ while (i)
+ {
+ if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE)
+ break;
+ i--;
+ }
+ if (sub0[i].flag2 != 0xffff)
+ FlagSet(sub0[i].flag2);
+ StringExpandPlaceholders(dest, sub0[i].text);
+}
+
+#ifdef NONMATCHING
+// There's some weird upmerge going on that I cannot replicate at this time.
+static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
+{
+ u32 i;
+ for (i = 0; sub0[i].text != NULL; i++)
+ {
+ if (sub0[i].flag == 0xfffe)
+ break;
+ if (sub0[i].flag == 0xffff && !FlagGet(sub0[i].flag))
+ break;
+ }
+ if (sub0[i].flag != 0xfffe)
+ {
+ if (i)
+ i--;
+ if (sub0[i].flag2 != 0xffff)
+ FlagSet(sub0[i].flag2);
+ StringExpandPlaceholders(dest, sub0[i].text);
+ }
+ else
+ {
+ if (!FlagGet(FLAG_SYS_GAME_CLEAR))
+ ;
+ else if (gSaveBlock1Ptr->trainerRematches[idx])
+ i += 2;
+ else if (CountBattledRematchTeams(idx) >= 2)
+ i += 3;
+ else
+ i++;
+ StringExpandPlaceholders(dest, sub0[i].text);
+ }
+}
+#else
+static NAKED void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r10\n"
+ "\tmov r6, r9\n"
+ "\tmov r5, r8\n"
+ "\tpush {r5-r7}\n"
+ "\tadds r6, r0, 0\n"
+ "\tmov r10, r2\n"
+ "\tlsls r1, 16\n"
+ "\tlsrs r7, r1, 16\n"
+ "\tmovs r5, 0\n"
+ "\tldr r0, [r6]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081D19E6\n"
+ "\tldrh r0, [r6, 0x4]\n"
+ "\tldr r1, =0x0000fffe\n"
+ "\tcmp r0, r1\n"
+ "\tbeq _081D1A24\n"
+ "\tldr r0, =0x0000ffff\n"
+ "\tmov r9, r0\n"
+ "\tmov r8, r1\n"
+ "\tadds r4, r6, 0\n"
+ "_081D19C6:\n"
+ "\tldrh r0, [r4, 0x4]\n"
+ "\tcmp r0, r9\n"
+ "\tbeq _081D19D6\n"
+ "\tbl FlagGet\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081D19E6\n"
+ "_081D19D6:\n"
+ "\tadds r4, 0x8\n"
+ "\tadds r5, 0x1\n"
+ "\tldr r0, [r4]\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081D19E6\n"
+ "\tldrh r0, [r4, 0x4]\n"
+ "\tcmp r0, r8\n"
+ "\tbne _081D19C6\n"
+ "_081D19E6:\n"
+ "\tlsls r0, r5, 3\n"
+ "\tadds r0, r6\n"
+ "\tldrh r1, [r0, 0x4]\n"
+ "\tldr r0, =0x0000fffe\n"
+ "\tcmp r1, r0\n"
+ "\tbeq _081D1A24\n"
+ "\tcmp r5, 0\n"
+ "\tbeq _081D19F8\n"
+ "\tsubs r5, 0x1\n"
+ "_081D19F8:\n"
+ "\tlsls r0, r5, 3\n"
+ "\tadds r4, r0, r6\n"
+ "\tldrh r1, [r4, 0x6]\n"
+ "\tldr r0, =0x0000ffff\n"
+ "\tcmp r1, r0\n"
+ "\tbeq _081D1A0A\n"
+ "\tadds r0, r1, 0\n"
+ "\tbl FlagSet\n"
+ "_081D1A0A:\n"
+ "\tldr r1, [r4]\n"
+ "\tmov r0, r10\n"
+ "\tbl StringExpandPlaceholders\n"
+ "\tb _081D1A5C\n"
+ "\t.pool\n"
+ "_081D1A1C:\n"
+ "\tadds r5, 0x2\n"
+ "\tb _081D1A50\n"
+ "_081D1A20:\n"
+ "\tadds r5, 0x3\n"
+ "\tb _081D1A50\n"
+ "_081D1A24:\n"
+ "\tldr r0, =0x00000864\n"
+ "\tbl FlagGet\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081D1A50\n"
+ "\tldr r0, =gSaveBlock1Ptr\n"
+ "\tldr r0, [r0]\n"
+ "\tldr r1, =0x000009ca\n"
+ "\tadds r0, r1\n"
+ "\tadds r0, r7\n"
+ "\tldrb r0, [r0]\n"
+ "\tcmp r0, 0\n"
+ "\tbne _081D1A1C\n"
+ "\tadds r0, r7, 0\n"
+ "\tbl CountBattledRematchTeams\n"
+ "\tlsls r0, 16\n"
+ "\tlsrs r0, 16\n"
+ "\tcmp r0, 0x1\n"
+ "\tbhi _081D1A20\n"
+ "\tadds r5, 0x1\n"
+ "_081D1A50:\n"
+ "\tlsls r0, r5, 3\n"
+ "\tadds r0, r6\n"
+ "\tldr r1, [r0]\n"
+ "\tmov r0, r10\n"
+ "\tbl StringExpandPlaceholders\n"
+ "_081D1A5C:\n"
+ "\tpop {r3-r5}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tmov r10, r5\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r0}\n"
+ "\tbx r0\n"
+ "\t.pool");
+}
+#endif
+
+void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name)
+{
+ match_call_t matchCall;
+ u32 i;
+
+ if (idx > 20)
+ return;
+ matchCall = sMatchCallHeaders[idx];
+ i = MatchCallGetFunctionIndex(matchCall);
+ sMatchCall_GetNameAndDescFunctions[i](matchCall, desc, name);
+}
+
+static void MatchCall_GetNameAndDesc_Type0(match_call_t matchCall, const u8 **desc, const u8 **name)
+{
+ *desc = matchCall.type0->desc;
+ *name = matchCall.type0->name;
+}
+
+static void MatchCall_GetNameAndDesc_Type1(match_call_t matchCall, const u8 **desc, const u8 **name)
+{
+ match_call_t _matchCall = matchCall;
+ if (_matchCall.type1->name == NULL)
+ MatchCall_GetNameAndDescByRematchIdx(_matchCall.type1->rematchTableIdx, desc, name);
+ else
+ *name = _matchCall.type1->name;
+ *desc = _matchCall.type1->desc;
+}
+
+static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **desc, const u8 **name)
+{
+ MatchCall_GetNameAndDescByRematchIdx(matchCall.type2->rematchTableIdx, desc, name);
+ *desc = matchCall.type2->desc;
+}
+
+static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
+{
+ *desc = matchCall.type4->desc;
+ *name = matchCall.type4->name;
+}
+
+static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
+{
+ *desc = matchCall.type3->desc;
+ *name = matchCall.type3->name;
+}
+
+static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const u8 **name)
+{
+ const struct Trainer *trainer = gTrainers + GetTrainerIdxByRematchIdx(idx);
+ *desc = gTrainerClassNames[trainer->trainerClass];
+ *name = trainer->trainerName;
+}
+
+#ifdef NONMATCHING
+const u8 *sub_81D1B40(u32 idx, u32 offset)
+{
+ u32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sMatchCallCheckPageOverrides[i].idx == idx)
+ {
+ for (; i + 1 < 4 && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++)
+ {
+ if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4))
+ break;
+ }
+ return sMatchCallCheckPageOverrides[i].v8[offset];
+ }
+ }
+ return NULL;
+}
+#else
+NAKED const u8 *sub_81D1B40(u32 idx, u32 offset)
+{
+ asm_unified("\tpush {r4-r7,lr}\n"
+ "\tmov r7, r9\n"
+ "\tmov r6, r8\n"
+ "\tpush {r6,r7}\n"
+ "\tadds r6, r0, 0\n"
+ "\tmovs r5, 0\n"
+ "\tldr r2, =sMatchCallCheckPageOverrides\n"
+ "\tmovs r0, 0x8\n"
+ "\tadds r0, r2\n"
+ "\tmov r9, r0\n"
+ "_081D1B54:\n"
+ "\tlsls r0, r5, 1\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r2\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, r6\n"
+ "\tbne _081D1BBC\n"
+ "\tadds r4, r5, 0x1\n"
+ "\tlsls r1, 2\n"
+ "\tmov r8, r1\n"
+ "\tcmp r4, 0x3\n"
+ "\tbhi _081D1BA8\n"
+ "\tlsls r0, r4, 1\n"
+ "\tadds r0, r4\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r2\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, r6\n"
+ "\tbne _081D1BA8\n"
+ "\tldr r7, =sMatchCallCheckPageOverrides\n"
+ "_081D1B7C:\n"
+ "\tlsls r0, r4, 1\n"
+ "\tadds r0, r4\n"
+ "\tlsls r0, 3\n"
+ "\tadds r1, r7, 0x4\n"
+ "\tadds r0, r1\n"
+ "\tldrh r0, [r0]\n"
+ "\tbl FlagGet\n"
+ "\tlsls r0, 24\n"
+ "\tcmp r0, 0\n"
+ "\tbeq _081D1BA8\n"
+ "\tadds r5, r4, 0\n"
+ "\tadds r4, r5, 0x1\n"
+ "\tcmp r4, 0x3\n"
+ "\tbhi _081D1BA8\n"
+ "\tlsls r0, r4, 1\n"
+ "\tadds r0, r4\n"
+ "\tlsls r0, 3\n"
+ "\tadds r0, r7\n"
+ "\tldrh r0, [r0]\n"
+ "\tcmp r0, r6\n"
+ "\tbeq _081D1B7C\n"
+ "_081D1BA8:\n"
+ "\tlsls r0, r5, 1\n"
+ "\tadds r0, r5\n"
+ "\tlsls r0, 3\n"
+ "\tadd r0, r8\n"
+ "\tadd r0, r9\n"
+ "\tldr r0, [r0]\n"
+ "\tb _081D1BC4\n"
+ "\t.pool\n"
+ "_081D1BBC:\n"
+ "\tadds r5, 0x1\n"
+ "\tcmp r5, 0x3\n"
+ "\tbls _081D1B54\n"
+ "\tmovs r0, 0\n"
+ "_081D1BC4:\n"
+ "\tpop {r3,r4}\n"
+ "\tmov r8, r3\n"
+ "\tmov r9, r4\n"
+ "\tpop {r4-r7}\n"
+ "\tpop {r1}\n"
+ "\tbx r1");
+}
+#endif
+
+s32 sub_81D1BD0(u32 idx)
+{
+ u32 i;
+
+ for (i = 0; i < 4; i++)
+ {
+ if (sMatchCallCheckPageOverrides[i].idx == idx)
+ return sMatchCallCheckPageOverrides[i].v2;
+ }
+ return -1;
+}
+
+bool32 sub_81D1BF8(u32 idx)
+{
+ s32 i;
+
+ for (i = 0; i < 21; i++)
+ {
+ u32 r0 = MatchCall_GetRematchTableIdx(i);
+ if (r0 != REMATCH_TABLE_ENTRIES && r0 == idx)
+ return TRUE;
+ }
+ return FALSE;
+}
+
+void SetMatchCallRegisteredFlag(void)
+{
+ s32 r0 = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
+ if (r0 >= 0)
+ FlagSet(FLAG_MATCH_CALL_REGISTERED + r0);
+}
diff --git a/src/rtc.c b/src/rtc.c
index 3f413d0e3..37a06fe7e 100644
--- a/src/rtc.c
+++ b/src/rtc.c
@@ -340,7 +340,7 @@ u32 RtcGetMinuteCount(void)
return (24 * 60) * RtcGetDayCount(&sRtc) + 60 * sRtc.hour + sRtc.minute;
}
-u16 RtcGetLocalDayCount(void)
+u32 RtcGetLocalDayCount(void)
{
return RtcGetDayCount(&sRtc);
}
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 59048a08e..825a4632f 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -257,13 +257,7 @@ gPlayerFacingPosition: @ 203AB40
.include "src/trainer_pokemon_sprites.o"
.include "src/lilycove_lady.o"
.include "src/battle_dome.o"
-
-gUnknown_0203CD80: @ 203CD80
- .space 0x8
-
-gUnknown_0203CD88: @ 203CD88
- .space 0x4
-
+ .include "src/match_call.o"
.include "src/menu.o"
.include "src/battle_factory_screen.o"
.include "src/mossdeep_gym.o"