From e1092028ecaeaa64b35352cefd21b70aa2194577 Mon Sep 17 00:00:00 2001 From: Marcus Huderle Date: Wed, 2 Jan 2019 19:07:47 -0600 Subject: [PATCH] Decompile match_call.c --- asm/battle_frontier_1.s | 2527 --------------------- asm/pokenav.s | 2 +- data/battle_frontier_1.s | 434 ---- data/event_scripts.s | 2955 +------------------------ data/text/match_call.inc | 2953 +++++++++++++++++++++++++ include/constants/battle_frontier.h | 1 + include/rtc.h | 1 + include/strings.h | 214 ++ ld_script.txt | 8 +- src/field_control_avatar.c | 4 +- src/field_message_box.c | 8 +- src/match_call.c | 3194 +++++++++++++++++---------- src/new_game.c | 4 +- src/overworld.c | 4 +- src/pokenav_match_call.c | 1275 +++++++++++ src/rtc.c | 2 +- sym_ewram.txt | 8 +- 17 files changed, 6430 insertions(+), 7164 deletions(-) delete mode 100644 asm/battle_frontier_1.s delete mode 100644 data/battle_frontier_1.s create mode 100755 data/text/match_call.inc mode change 100644 => 100755 src/match_call.c create mode 100644 src/pokenav_match_call.c 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 old mode 100644 new mode 100755 index a15700070..1b9eef76d --- a/src/match_call.c +++ b/src/match_call.c @@ -1,1275 +1,2017 @@ - -// Includes #include "global.h" -#include "battle_setup.h" -#include "event_data.h" -#include "string_util.h" +#include "alloc.h" #include "battle.h" -#include "gym_leader_rematch.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 "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" -extern void sub_8197080(u8 *dest); -extern const u8 gTrainerClassNames[][13]; +struct MatchCallState +{ + u32 minutes; + u16 trainerId; + u8 stepCounter; + u8 triggeredFromScript; +}; -// Static type declarations +struct MatchCallTrainerTextInfo +{ + u16 trainerId; + u16 unused; + u16 battleTopicTextIds[3]; + u16 battleFrontierStreakTextId; + u8 battleFrontierRecordStreakTextIndex; + u16 sameRouteMatchCallTextId; + u16 differentRouteMatchCallTextId; +}; -typedef struct MatchCallTextDataStruct { +struct MatchCallText +{ const u8 *text; - u16 flag; - u16 flag2; -} match_call_text_data_t; - -struct MatchCallStructCommon { - u8 type; - u8 v1; - u16 flag; + s8 stringVarFuncIds[3]; }; -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) +struct MultiTrainerMatchCallText +{ + u16 trainerId; + const u8 *text; +}; + +struct BattleFrontierStreakInfo +{ + u16 facilityId; + u16 streak; +}; + +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[] = { - 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++) + .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), + }, { - 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++) + .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), + }, { - 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++) + .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), + }, { - if (sMatchCallCheckPageOverrides[i].idx == idx) - return TRUE; + .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), + }, +}; + +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 } }, +}; + + 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 } }, +}; + +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 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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +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 } }, +}; + +static const struct MatchCallText *const sMatchCallBattleTopics[] = +{ + sMatchCallWildBattleTexts, + sMatchCallNegativeBattleTexts, + sMatchCallPositiveBattleTexts, +}; + +static const struct MatchCallText *const sMatchCallBattleRequestTopics[] = +{ + sMatchCallSameRouteBattleRequestTexts, + sMatchCallDifferentRouteBattleRequestTexts, +}; + +static const struct MatchCallText *const sMatchCallGeneralTopics[] = +{ + sMatchCallPersonalizedTexts, + sMatchCallBattleFrontierStreakTexts, + sMatchCallBattleFrontierRecordStreakTexts, + sMatchCallBattleDomeTexts, + sMatchCallBattlePikeTexts, + sMatchCallBattlePyramidTexts, +}; + +extern const u8 gUnknown_082A5C9C[]; +extern const u8 gUnknown_082A5D2C[]; +extern const u8 gUnknown_082A633D[]; + +void InitMatchCallCounters(void) +{ + RtcCalcLocalTime(); + gMatchCallState.minutes = GetCurrentTotalMinutes(&gLocalTime) + 10; + gMatchCallState.stepCounter = 0; +} + +static u32 GetCurrentTotalMinutes(struct Time *time) +{ + return time->days * 1440 + time->hours * 60 + time->minutes; +} + +static bool32 UpdateMatchCallMinutesCounter(void) +{ + int curMinutes; + RtcCalcLocalTime(); + curMinutes = GetCurrentTotalMinutes(&gLocalTime); + if (gMatchCallState.minutes > curMinutes || curMinutes - gMatchCallState.minutes > 9) + { + gMatchCallState.minutes = curMinutes; + return TRUE; } + return FALSE; } -static bool32 sub_81D1840(match_call_t matchCall) +static bool32 CheckMatchCallChance(void) { - return FALSE; + 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 bool32 sub_81D1844(match_call_t matchCall) +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; + + if (gMapHeader.regionMapSectionId == MAPSEC_MT_CHIMNEY + && FlagGet(FLAG_0x0CF) == TRUE + && FlagGet(FLAG_0x08B) == FALSE) + return FALSE; + return TRUE; } -static bool32 sub_81D1848(match_call_t matchCall) +static bool32 UpdateMatchCallStepCounter(void) { + if (++gMatchCallState.stepCounter >= 10) + { + gMatchCallState.stepCounter = 0; + return TRUE; + } + else + { + return FALSE; + } +} + +static bool32 SelectMatchCallTrainer(void) +{ + u32 matchCallId; + u32 numRegistered = GetNumRegisteredNPCs(); + if (!numRegistered) + return FALSE; + + gMatchCallState.trainerId = GetActiveMatchCallTrainerId(Random() % numRegistered); + gMatchCallState.triggeredFromScript = 0; + if (gMatchCallState.trainerId == REMATCH_TABLE_ENTRIES) + return FALSE; + + matchCallId = GetTrainerMatchCallId(gMatchCallState.trainerId); + if (GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId && !TrainerIsEligibleForRematch(matchCallId)) + return FALSE; + return TRUE; } -static bool32 sub_81D184C(match_call_t matchCall) +static u32 GetNumRegisteredNPCs(void) { - 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) + u32 i, count; + for (i = 0, count = 0; i < 64; i++) { - if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE) - break; - i--; + if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i)) + count++; } - if (sub0[i].flag2 != 0xffff) - FlagSet(sub0[i].flag2); - StringExpandPlaceholders(dest, sub0[i].text); + + return count; } -#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) +static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId) { u32 i; - for (i = 0; sub0[i].text != NULL; i++) + for (i = 0; i < 64; 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) + if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i)) { - for (; i + 1 < 4 && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++) - { - if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4)) - break; - } - return sMatchCallCheckPageOverrides[i].v8[offset]; + if (!activeMatchCallId) + return gRematchTable[i].trainerIds[0]; + + activeMatchCallId--; } } - 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; + return REMATCH_TABLE_ENTRIES; +} - for (i = 0; i < 4; i++) +bool32 TryStartMatchCall(void) +{ + if (FlagGet(FLAG_HAS_MATCH_CALL) && UpdateMatchCallStepCounter() && UpdateMatchCallMinutesCounter() + && CheckMatchCallChance() && MapAllowsMatchCall() && SelectMatchCallTrainer()) { - if (sMatchCallCheckPageOverrides[i].idx == idx) - return sMatchCallCheckPageOverrides[i].v2; + StartMatchCall(); + return TRUE; } - 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) +void StartMatchCallFromScript(void) { - s32 r0 = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004); - if (r0 >= 0) - FlagSet(FLAG_MATCH_CALL_REGISTERED + r0); + gMatchCallState.triggeredFromScript = 1; + StartMatchCall(); +} + +bool8 IsMatchCallTaskActive(void) +{ + return FuncIsActiveTask(ExecuteMatchCall); +} + +static void StartMatchCall(void) +{ + if (!gMatchCallState.triggeredFromScript) + { + ScriptContext2_Enable(); + FreezeEventObjects(); + sub_808B864(); + sub_808BCF4(); + } + + PlaySE(SE_TOREEYE); + CreateTask(ExecuteMatchCall, 1); +} + +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 const u8 sText_PokenavCallEllipsis[] = _("………………\p"); + +static bool32 (*const sMatchCallTaskFuncs[])(u8) = +{ + LoadMatchCallWindowGfx, + MoveMatchCallWindowToVram, + PrintMatchCallIntroEllipsis, + sub_81962B0, + sub_81962D8, + sub_8196330, + sub_8196390, + sub_81963F0, +}; + +static void ExecuteMatchCall(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + if (sMatchCallTaskFuncs[taskData[0]](taskId)) + { + taskData[0]++; + taskData[1] = 0; + if ((u16)taskData[0] > 7) + DestroyTask(taskId); + } +} + +static const struct WindowTemplate sMatchCallTextWindow = +{ + .bg = 0, + .tilemapLeft = 1, + .tilemapTop = 15, + .width = 28, + .height = 4, + .paletteNum = 15, + .baseBlock = 0x200 +}; + +static bool32 LoadMatchCallWindowGfx(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + taskData[2] = AddWindow(&sMatchCallTextWindow); + if (taskData[2] == 0xFF) + { + DestroyTask(taskId); + return FALSE; + } + + if (LoadBgTiles(0, sUnknown_0860EA6C, sizeof(sUnknown_0860EA6C), 0x270) == 0xFFFF) + { + RemoveWindow(taskData[2]); + DestroyTask(taskId); + return FALSE; + } + + if (!decompress_and_copy_tile_data_to_vram(0, sPokeNavIconGfx, 0, 0x279, 0)) + { + RemoveWindow(taskData[2]); + DestroyTask(taskId); + return FALSE; + } + + FillWindowPixelBuffer(taskData[2], 0x88); + LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20); + LoadPalette(sPokeNavIconPalette, 0xF0, 0x20); + ChangeBgY(0, -0x2000, 0); + return TRUE; +} + +static bool32 MoveMatchCallWindowToVram(u8 taskId) +{ + 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 PrintMatchCallIntroEllipsis(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + if (!IsDma3ManagerBusyWithBgCopy()) + { + InitMatchCallTextPrinter(taskData[2], sText_PokenavCallEllipsis); + return TRUE; + } + + return FALSE; +} + +static bool32 sub_81962B0(u8 taskId) +{ + if (ChangeBgY(0, 0x600, 1) >= 0) + { + ChangeBgY(0, 0, 0); + return TRUE; + } + + return FALSE; +} + +static bool32 sub_81962D8(u8 taskId) +{ + 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 FALSE; +} + +static bool32 sub_8196330(u8 taskId) +{ + 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; + } + + return FALSE; +} + +static bool32 sub_8196390(u8 taskId) +{ + 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; + } + + return FALSE; +} + +static bool32 sub_81963F0(u8 taskId) +{ + u8 playerObjectId; + if (!IsDma3ManagerBusyWithBgCopy() && !IsSEPlaying()) + { + 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 FALSE; +} + +static void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId) +{ + 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 void InitMatchCallTextPrinter(int windowId, const u8 *str) +{ + 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); +} + +static bool32 ExecuteMatchCallTextPrinter(int windowId) +{ + if (gMain.heldKeys & A_BUTTON) + gTextFlags.canABSpeedUpPrint = 1; + else + gTextFlags.canABSpeedUpPrint = 0; + + RunTextPrinters(); + return IsTextPrinterActive(windowId); +} + +static void sub_8196694(u8 taskId) +{ + s16 *taskData = gTasks[taskId].data; + if (++taskData[0] > 8) + { + taskData[0] = 0; + if (++taskData[1] > 7) + taskData[1] = 0; + + taskData[2] = (taskData[1] * 16) + 0x279; + WriteSequenceToBgTilemapBuffer(0, taskData[2] | ~0xFFF, 1, 15, 4, 4, 17, 1); + CopyBgTilemapBufferToVram(0); + } +} + +static bool32 TrainerIsEligibleForRematch(int matchCallId) +{ + return gSaveBlock1Ptr->trainerRematches[matchCallId] > 0; +} + +static u16 GetRematchTrainerLocation(int matchCallId) +{ + const struct MapHeader *mapHeader = Overworld_GetMapHeaderByGroupAndId(gRematchTable[matchCallId].mapGroup, gRematchTable[matchCallId].mapNum); + return mapHeader->regionMapSectionId; +} + +static u32 GetNumRematchTrainersFought(void) +{ + u32 i, count; + for (i = 0, count = 0; i < 64; i++) + { + if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0])) + count++; + } + + return count; +} + +static u32 sub_8196774(int arg0) +{ + u32 i, count; + + for (i = 0, count = 0; i < REMATCH_TABLE_ENTRIES; i++) + { + if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0])) + { + if (count == arg0) + return i; + + count++; + } + } + + return REMATCH_TABLE_ENTRIES; +} + +bool32 SelectMatchCallMessage(int trainerId, u8 *str) +{ + 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 int GetTrainerMatchCallId(int trainerId) +{ + int i = 0; + while (1) + { + if (sMatchCallTrainers[i].trainerId == trainerId) + return i; + else + i++; + } +} + +static const struct MatchCallText *GetSameRouteMatchCallText(int matchCallId, u8 *str) +{ + u16 textId = sMatchCallTrainers[matchCallId].sameRouteMatchCallTextId; + int mask = 0xFF; + u32 topic = (textId >> 8) - 1; + u32 id = (textId & mask) - 1; + return &sMatchCallBattleRequestTopics[topic][id]; +} + +static const struct MatchCallText *GetDifferentRouteMatchCallText(int matchCallId, u8 *str) +{ + u16 textId = sMatchCallTrainers[matchCallId].differentRouteMatchCallTextId; + int mask = 0xFF; + u32 topic = (textId >> 8) - 1; + u32 id = (textId & mask) - 1; + return &sMatchCallBattleRequestTopics[topic][id]; +} + +static const struct MatchCallText *GetBattleMatchCallText(int matchCallId, u8 *str) +{ + 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]; +} + +static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 *str) +{ + 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 (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 void BuildMatchCallString(int matchCallId, const struct MatchCallText *matchCallText, u8 *str) +{ + PopulateMatchCallStringVars(matchCallId, matchCallText->stringVarFuncIds); + StringExpandPlaceholders(str, matchCallText->text); +} + +static u8 *const sMatchCallTextStringVars[] = { gStringVar1, gStringVar2, gStringVar3 }; + +static void PopulateMatchCallStringVars(int matchCallId, const s8 *stringVarFuncIds) +{ + int i; + for (i = 0; i < 3; i++) + { + if (stringVarFuncIds[i] >= 0) + PopulateMatchCallStringVar(matchCallId, stringVarFuncIds[i], sMatchCallTextStringVars[i]); + } +} + +static void (*const sPopulateMatchCallStringVarFuncs[])(int, u8 *) = +{ + PopulateTrainerName, + PopulateMapName, + PopulateSpeciesFromTrainerLocation, + PopulateSpeciesFromTrainerParty, + PopulateBattleFrontierFacilityName, + PopulateBattleFrontierStreak, +}; + +static void PopulateMatchCallStringVar(int matchCallId, int funcId, u8 *destStr) +{ + sPopulateMatchCallStringVarFuncs[funcId](matchCallId, destStr); +} + +static const struct MultiTrainerMatchCallText sMultiTrainerMatchCallTexts[] = +{ + { .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 }, +}; + +static void PopulateTrainerName(int matchCallId, u8 *destStr) +{ + u32 i; + u16 trainerId = sMatchCallTrainers[matchCallId].trainerId; + for (i = 0; i < 6; i++) + { + if (sMultiTrainerMatchCallTexts[i].trainerId == trainerId) + { + StringCopy(destStr, sMultiTrainerMatchCallTexts[i].text); + return; + } + } + + StringCopy(destStr, gTrainers[trainerId].trainerName); +} + +static void PopulateMapName(int matchCallId, u8 *destStr) +{ + GetMapName(destStr, GetRematchTrainerLocation(matchCallId), 0); +} + +static u8 GetLandEncounterSlot(void) +{ + 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 + return 11; +} + +static u8 GetWaterEncounterSlot(void) +{ + 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 PopulateSpeciesFromTrainerLocation(int matchCallId, u8 *destStr) +{ + u16 species[2]; + int numSpecies; + u8 slot; + int i = 0; + + if (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED)) // ??? This check is nonsense. + { + while (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED)) + { + if (gWildMonHeaders[i].mapGroup == gRematchTable[matchCallId].mapGroup + && gWildMonHeaders[i].mapNum == gRematchTable[matchCallId].mapNum) + break; + + i++; + } + + 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; +} + +static void PopulateSpeciesFromTrainerParty(int matchCallId, u8 *destStr) +{ + u16 trainerId; + union TrainerMonPtr party; + u8 monId; + const u8 *speciesName; + + 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 const u8 *const sBattleFrontierFacilityNames[] = +{ + gText_BattleTower2, + gText_BattleDome, + gText_BattlePalace, + gText_BattleArena, + gText_BattlePike, + gText_BattleFactory, + gText_BattlePyramid, +}; + +static void PopulateBattleFrontierFacilityName(int matchCallId, u8 *destStr) +{ + StringCopy(destStr, sBattleFrontierFacilityNames[gBattleFrontierStreakInfo.facilityId]); +} + +static void PopulateBattleFrontierStreak(int matchCallId, u8 *destStr) +{ + int i = 0; + int streak = gBattleFrontierStreakInfo.streak; + while (streak != 0) + { + streak /= 10; + i++; + } + + ConvertIntToDecimalStringN(destStr, gBattleFrontierStreakInfo.streak, 0, i); +} + +static const u16 sBadgeFlags[] = +{ + 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 int GetNumOwnedBadges(void) +{ + u32 i; + + for (i = 0; i < 8; i++) + { + if (!FlagGet(sBadgeFlags[i])) + break; + } + + return i; +} + +static bool32 sub_8196D74(int matchCallId) +{ + 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; +} + +static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId) +{ + int i; + int j; + u16 streak = 0; + + switch (facilityId) + { + case FRONTIER_FACILITY_DOME: + for (i = 0; i < 2; i++) + { + for (j = 0; j < 2; j++) + { + 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]; + } + } + *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 streak; +} + +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; +} + +static const u8 *const sBirchDexRatingTexts[] = +{ + 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, +}; + +void sub_8197080(u8 *destStr) +{ + int numSeen, numCaught; + u8 *str; + u8 dexRatingLevel; + + u8 *buffer = Alloc(0x3E8); + if (!buffer) + { + destStr[0] = EOS; + return; + } + + 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()) + { + 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); + } + + 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 sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId) +{ + 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"