summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTetrable <atifhuss386@gmail.com>2019-01-03 02:28:18 +0000
committerTetrable <atifhuss386@gmail.com>2019-01-03 02:28:18 +0000
commit30e7ac0dcadc1ca15d56dc24e79489be63527357 (patch)
treebb804c19ca84b582f7517af645bfc8665b26a1e1
parent50aa222aff56499aeef1c64c9191f53b9b20a1de (diff)
parentb471bba55e7e3743fa8cdb796cba57c41f5bfdbc (diff)
Fix merge conflicts
-rw-r--r--asm/battle_frontier_1.s2527
-rw-r--r--asm/pokenav.s2
-rw-r--r--asm/roulette.s9634
-rw-r--r--data/battle_frontier_1.s434
-rw-r--r--data/event_scripts.s2957
-rw-r--r--data/roulette.s928
-rw-r--r--data/specials.inc2
-rwxr-xr-xdata/text/match_call.inc2953
-rw-r--r--include/constants/battle_frontier.h1
-rw-r--r--include/gba/types.h4
-rw-r--r--include/graphics.h9
-rw-r--r--include/m4a.h3
-rw-r--r--include/menu_helpers.h2
-rw-r--r--include/roulette_util.h7
-rw-r--r--include/rtc.h1
-rw-r--r--include/strings.h217
-rw-r--r--ld_script.txt12
-rw-r--r--src/decoration.c10
-rw-r--r--src/field_control_avatar.c4
-rwxr-xr-xsrc/field_message_box.c8
-rw-r--r--src/match_call.c2806
-rw-r--r--src/menu.c468
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/new_game.c4
-rw-r--r--src/overworld.c4
-rw-r--r--src/pokenav_match_call.c1275
-rw-r--r--src/roulette.c4929
-rwxr-xr-xsrc/roulette_util.c2
-rw-r--r--src/rtc.c2
-rw-r--r--src/secret_base.c2
-rw-r--r--sym_ewram.txt16
31 files changed, 11436 insertions, 17789 deletions
diff --git a/asm/battle_frontier_1.s b/asm/battle_frontier_1.s
deleted file mode 100644
index c47ca5d76..000000000
--- a/asm/battle_frontier_1.s
+++ /dev/null
@@ -1,2527 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
-
-
- thumb_func_start sub_8195E10
-sub_8195E10: @ 8195E10
- push {lr}
- bl RtcCalcLocalTime
- ldr r0, =gLocalTime
- bl sub_8195E34
- ldr r1, =gUnknown_0203CD80
- adds r0, 0xA
- str r0, [r1]
- movs r0, 0
- strb r0, [r1, 0x6]
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8195E10
-
- thumb_func_start sub_8195E34
-sub_8195E34: @ 8195E34
- adds r3, r0, 0
- movs r1, 0
- ldrsh r0, [r3, r1]
- lsls r1, r0, 1
- adds r1, r0
- lsls r0, r1, 4
- subs r0, r1
- lsls r0, 5
- movs r2, 0x2
- ldrsb r2, [r3, r2]
- lsls r1, r2, 4
- subs r1, r2
- lsls r1, 2
- adds r0, r1
- movs r1, 0x3
- ldrsb r1, [r3, r1]
- adds r0, r1
- bx lr
- thumb_func_end sub_8195E34
-
- thumb_func_start sub_8195E58
-sub_8195E58: @ 8195E58
- push {lr}
- bl RtcCalcLocalTime
- ldr r0, =gLocalTime
- bl sub_8195E34
- adds r1, r0, 0
- ldr r2, =gUnknown_0203CD80
- ldr r0, [r2]
- cmp r0, r1
- bhi _08195E74
- subs r0, r1, r0
- cmp r0, 0x9
- bls _08195E84
-_08195E74:
- str r1, [r2]
- movs r0, 0x1
- b _08195E86
- .pool
-_08195E84:
- movs r0, 0
-_08195E86:
- pop {r1}
- bx r1
- thumb_func_end sub_8195E58
-
- thumb_func_start sub_8195E8C
-sub_8195E8C: @ 8195E8C
- push {r4,r5,lr}
- movs r5, 0x1
- ldr r4, =gPlayerParty
- adds r0, r4, 0
- movs r1, 0x6
- bl GetMonData
- cmp r0, 0
- bne _08195EAE
- adds r0, r4, 0
- bl GetMonAbility
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1F
- bne _08195EAE
- movs r5, 0x2
-_08195EAE:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0xA
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r5, 1
- adds r1, r5
- cmp r0, r1
- blt _08195ED0
- movs r0, 0
- b _08195ED2
- .pool
-_08195ED0:
- movs r0, 0x1
-_08195ED2:
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8195E8C
-
- thumb_func_start sub_8195ED8
-sub_8195ED8: @ 8195ED8
- push {r4,lr}
- ldr r4, =gMapHeader
- ldrb r0, [r4, 0x17]
- bl Overworld_MapTypeAllowsTeleportAndFly
- lsls r0, 24
- cmp r0, 0
- beq _08195F30
- ldrb r0, [r4, 0x14]
- cmp r0, 0x39
- beq _08195F30
- cmp r0, 0xE
- bne _08195F0E
- movs r0, 0xF9
- lsls r0, 2
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08195F0E
- movs r0, 0xDC
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08195F30
-_08195F0E:
- ldr r0, =gMapHeader
- ldrb r0, [r0, 0x14]
- cmp r0, 0x38
- bne _08195F38
- movs r0, 0xCF
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08195F38
- movs r0, 0x8B
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08195F38
-_08195F30:
- movs r0, 0
- b _08195F3A
- .pool
-_08195F38:
- movs r0, 0x1
-_08195F3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8195ED8
-
- thumb_func_start sub_8195F40
-sub_8195F40: @ 8195F40
- push {lr}
- ldr r1, =gUnknown_0203CD80
- ldrb r0, [r1, 0x6]
- adds r0, 0x1
- strb r0, [r1, 0x6]
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x9
- bhi _08195F5C
- movs r0, 0
- b _08195F62
- .pool
-_08195F5C:
- movs r0, 0
- strb r0, [r1, 0x6]
- movs r0, 0x1
-_08195F62:
- pop {r1}
- bx r1
- thumb_func_end sub_8195F40
-
- thumb_func_start sub_8195F68
-sub_8195F68: @ 8195F68
- push {r4,lr}
- bl sub_8195FCC
- adds r4, r0, 0
- cmp r4, 0
- beq _08195FB8
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r4, 0
- bl __umodsi3
- bl sub_8195FF8
- ldr r2, =gUnknown_0203CD80
- movs r1, 0
- strh r0, [r2, 0x4]
- strb r1, [r2, 0x7]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x4E
- beq _08195FB8
- ldrh r0, [r2, 0x4]
- bl sub_8196844
- adds r4, r0, 0
- bl sub_819672C
- ldr r1, =gMapHeader
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x14]
- cmp r0, r1
- bne _08195FC4
- adds r0, r4, 0
- bl sub_8196710
- cmp r0, 0
- bne _08195FC4
-_08195FB8:
- movs r0, 0
- b _08195FC6
- .pool
-_08195FC4:
- movs r0, 0x1
-_08195FC6:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8195F68
-
- thumb_func_start sub_8195FCC
-sub_8195FCC: @ 8195FCC
- push {r4,r5,lr}
- movs r4, 0
- movs r5, 0
-_08195FD2:
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08195FE8
- adds r5, 0x1
-_08195FE8:
- adds r4, 0x1
- cmp r4, 0x3F
- bls _08195FD2
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8195FCC
-
- thumb_func_start sub_8195FF8
-sub_8195FF8: @ 8195FF8
- push {r4-r6,lr}
- adds r5, r0, 0
- movs r4, 0
- ldr r6, =gRematchTable
-_08196000:
- movs r1, 0xAE
- lsls r1, 1
- adds r0, r4, r1
- lsls r0, 16
- lsrs r0, 16
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08196022
- cmp r5, 0
- bne _08196020
- ldrh r0, [r6]
- b _0819602C
- .pool
-_08196020:
- subs r5, 0x1
-_08196022:
- adds r6, 0x10
- adds r4, 0x1
- cmp r4, 0x3F
- bls _08196000
- movs r0, 0x4E
-_0819602C:
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_8195FF8
-
- thumb_func_start sub_8196034
-sub_8196034: @ 8196034
- push {lr}
- ldr r0, =0x0000012f
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _08196078
- bl sub_8195F40
- cmp r0, 0
- beq _08196078
- bl sub_8195E58
- cmp r0, 0
- beq _08196078
- bl sub_8195E8C
- cmp r0, 0
- beq _08196078
- bl sub_8195ED8
- cmp r0, 0
- beq _08196078
- bl sub_8195F68
- cmp r0, 0
- beq _08196078
- bl task_prev_quest
- movs r0, 0x1
- b _0819607A
- .pool
-_08196078:
- movs r0, 0
-_0819607A:
- pop {r1}
- bx r1
- thumb_func_end sub_8196034
-
- thumb_func_start sub_8196080
-sub_8196080: @ 8196080
- push {lr}
- ldr r1, =gUnknown_0203CD80
- movs r0, 0x1
- strb r0, [r1, 0x7]
- bl task_prev_quest
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196080
-
- thumb_func_start sub_8196094
-sub_8196094: @ 8196094
- push {lr}
- ldr r0, =sub_81960E0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196094
-
- thumb_func_start task_prev_quest
-task_prev_quest: @ 81960A8
- push {lr}
- ldr r0, =gUnknown_0203CD80
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _081960C2
- bl ScriptContext2_Enable
- bl FreezeEventObjects
- bl sub_808B864
- bl sub_808BCF4
-_081960C2:
- ldr r0, =0x00000107
- bl PlaySE
- ldr r0, =sub_81960E0
- movs r1, 0x1
- bl CreateTask
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_prev_quest
-
- thumb_func_start sub_81960E0
-sub_81960E0: @ 81960E0
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r4, r0, r1
- ldr r1, =gUnknown_0860EF78
- movs r2, 0
- ldrsh r0, [r4, r2]
- lsls r0, 2
- adds r0, r1
- ldr r1, [r0]
- adds r0, r5, 0
- bl _call_via_r1
- cmp r0, 0
- beq _0819611E
- ldrh r0, [r4]
- adds r0, 0x1
- strh r0, [r4]
- movs r1, 0
- strh r1, [r4, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x7
- bls _0819611E
- adds r0, r5, 0
- bl DestroyTask
-_0819611E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81960E0
-
- thumb_func_start sub_819612C
-sub_819612C: @ 819612C
- push {r4-r6,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r4, r0, 24
- adds r6, r4, 0
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gUnknown_0860EF98
- bl AddWindow
- strh r0, [r5, 0x4]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xFF
- bne _0819615C
- adds r0, r4, 0
- b _081961E0
- .pool
-_0819615C:
- ldr r1, =gUnknown_0860EA6C
- movs r2, 0x80
- lsls r2, 1
- movs r3, 0x9C
- lsls r3, 2
- movs r0, 0
- bl LoadBgTiles
- lsls r0, 16
- ldr r1, =0xffff0000
- cmp r0, r1
- bne _08196188
- ldrb r0, [r5, 0x4]
- bl RemoveWindow
- adds r0, r4, 0
- b _081961E0
- .pool
-_08196188:
- ldr r1, =gUnknown_0860EB8C
- ldr r3, =0x00000279
- movs r0, 0
- str r0, [sp]
- movs r2, 0
- bl decompress_and_copy_tile_data_to_vram
- cmp r0, 0
- beq _081961D8
- ldrb r0, [r5, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldr r0, =gUnknown_0860EA4C
- movs r1, 0xE0
- movs r2, 0x20
- bl LoadPalette
- ldr r0, =gUnknown_0860EB6C
- movs r1, 0xF0
- movs r2, 0x20
- bl LoadPalette
- ldr r1, =0xffffe000
- movs r0, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
- b _081961E6
- .pool
-_081961D8:
- ldrb r0, [r5, 0x4]
- bl RemoveWindow
- adds r0, r6, 0
-_081961E0:
- bl DestroyTask
- movs r0, 0
-_081961E6:
- add sp, 0x4
- pop {r4-r6}
- pop {r1}
- bx r1
- thumb_func_end sub_819612C
-
- thumb_func_start sub_81961F0
-sub_81961F0: @ 81961F0
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- bne _08196268
- ldrb r0, [r4, 0x4]
- bl PutWindowTilemap
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- movs r1, 0x9C
- lsls r1, 2
- movs r2, 0xE
- bl sub_819645C
- ldr r1, =0x0000f279
- movs r0, 0x4
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0xF
- bl WriteSequenceToBgTilemapBuffer
- ldr r0, =sub_8196694
- movs r1, 0xA
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0xA]
- ldrb r0, [r4, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
- b _0819626A
- .pool
-_08196268:
- movs r0, 0
-_0819626A:
- add sp, 0x10
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81961F0
-
- thumb_func_start sub_8196274
-sub_8196274: @ 8196274
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- beq _08196298
- movs r0, 0
- b _081962A4
- .pool
-_08196298:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- ldr r1, =gText_PokenavCallEllipsis
- bl sub_81965D8
- movs r0, 0x1
-_081962A4:
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196274
-
- thumb_func_start sub_81962B0
-sub_81962B0: @ 81962B0
- push {lr}
- movs r1, 0xC0
- lsls r1, 3
- movs r0, 0
- movs r2, 0x1
- bl ChangeBgY
- cmp r0, 0
- bge _081962C6
- movs r0, 0
- b _081962D2
-_081962C6:
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- movs r0, 0x1
-_081962D2:
- pop {r1}
- bx r1
- thumb_func_end sub_81962B0
-
- thumb_func_start sub_81962D8
-sub_81962D8: @ 81962D8
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_8196648
- cmp r0, 0
- bne _08196328
- ldrb r0, [r4, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldr r1, =gUnknown_0203CD80
- ldrb r0, [r1, 0x7]
- cmp r0, 0
- bne _0819630C
- ldrh r0, [r1, 0x4]
- ldr r1, =gStringVar4
- bl sub_81967AC
-_0819630C:
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- ldr r1, =gStringVar4
- bl sub_81965D8
- movs r0, 0x1
- b _0819632A
- .pool
-_08196328:
- movs r0, 0
-_0819632A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_81962D8
-
- thumb_func_start sub_8196330
-sub_8196330: @ 8196330
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0x4
- ldrsh r0, [r4, r1]
- bl sub_8196648
- cmp r0, 0
- bne _08196388
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08196388
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08196388
- ldrb r0, [r4, 0x4]
- movs r1, 0x88
- bl FillWindowPixelBuffer
- ldrb r0, [r4, 0x4]
- movs r1, 0x2
- bl CopyWindowToVram
- movs r0, 0x84
- lsls r0, 1
- bl PlaySE
- movs r0, 0x1
- b _0819638A
- .pool
-_08196388:
- movs r0, 0
-_0819638A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196330
-
- thumb_func_start sub_8196390
-sub_8196390: @ 8196390
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r4, r1, r0
- movs r1, 0xC0
- lsls r1, 3
- movs r0, 0
- movs r2, 0x2
- bl ChangeBgY
- ldr r1, =0xffffe000
- cmp r0, r1
- ble _081963C0
- movs r0, 0
- b _081963E8
- .pool
-_081963C0:
- movs r0, 0x1E
- str r0, [sp]
- movs r0, 0x6
- str r0, [sp, 0x4]
- movs r0, 0
- movs r1, 0
- movs r2, 0
- movs r3, 0xE
- bl FillBgTilemapBufferRect_Palette0
- ldrb r0, [r4, 0xA]
- bl DestroyTask
- ldrb r0, [r4, 0x4]
- bl RemoveWindow
- movs r0, 0
- bl CopyBgTilemapBufferToVram
- movs r0, 0x1
-_081963E8:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196390
-
- thumb_func_start sub_81963F0
-sub_81963F0: @ 81963F0
- push {lr}
- bl IsDma3ManagerBusyWithBgCopy
- lsls r0, 24
- cmp r0, 0
- bne _08196454
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- bne _08196454
- movs r0, 0
- movs r1, 0
- movs r2, 0
- bl ChangeBgY
- ldr r0, =gUnknown_0203CD80
- ldrb r0, [r0, 0x7]
- cmp r0, 0
- bne _08196446
- bl sub_81973A4
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- bl GetEventObjectIdByLocalIdAndMap
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- lsls r0, r1, 3
- adds r0, r1
- lsls r0, 2
- ldr r1, =gEventObjects
- adds r0, r1
- bl EventObjectClearHeldMovementIfFinished
- bl sub_80D338C
- bl UnfreezeEventObjects
- bl ScriptContext2_Disable
-_08196446:
- movs r0, 0x1
- b _08196456
- .pool
-_08196454:
- movs r0, 0
-_08196456:
- pop {r1}
- bx r1
- thumb_func_end sub_81963F0
-
- thumb_func_start sub_819645C
-sub_819645C: @ 819645C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- adds r7, r2, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl GetWindowAttribute
- mov r9, r0
- adds r0, r4, 0
- movs r1, 0x1
- bl GetWindowAttribute
- str r0, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x2
- bl GetWindowAttribute
- str r0, [sp, 0xC]
- adds r0, r4, 0
- movs r1, 0x3
- bl GetWindowAttribute
- adds r6, r0, 0
- adds r0, r4, 0
- movs r1, 0x4
- bl GetWindowAttribute
- str r0, [sp, 0x10]
- mov r0, r9
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- movs r1, 0xA
- bl GetBgAttribute
- lsls r0, 16
- lsrs r0, 16
- adds r5, r0
- lsls r7, 12
- movs r1, 0xF0
- lsls r1, 8
- adds r0, r1, 0
- ands r7, r0
- adds r1, r7, 0
- orrs r1, r5
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0x8]
- subs r2, 0x1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- ldr r4, [sp, 0xC]
- subs r4, 0x1
- lsls r4, 24
- lsrs r4, 24
- movs r3, 0x1
- mov r8, r3
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x1
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x8]
- lsls r2, r0, 24
- lsrs r2, 24
- str r2, [sp, 0x14]
- lsls r0, r6, 24
- lsrs r0, 24
- str r0, [sp, 0x18]
- str r0, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x14]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x2
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [sp, 0x8]
- adds r0, r3, r6
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x1C]
- mov r0, r8
- str r0, [sp]
- str r0, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x1C]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x3
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r2, [sp, 0xC]
- lsls r6, r2, 24
- lsrs r6, 24
- mov r3, r8
- str r3, [sp]
- ldr r0, [sp, 0x10]
- lsls r4, r0, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- mov r0, r9
- mov r2, r10
- adds r3, r6, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x4
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- mov r2, r8
- str r2, [sp]
- str r4, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x1C]
- adds r3, r6, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x5
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r3, [sp, 0xC]
- ldr r2, [sp, 0x10]
- adds r0, r3, r2
- lsls r0, 24
- lsrs r4, r0, 24
- mov r3, r8
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- mov r2, r10
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r1, r5, 0x6
- orrs r1, r7
- lsls r1, 16
- lsrs r1, 16
- ldr r0, [sp, 0x18]
- str r0, [sp]
- mov r2, r8
- str r2, [sp, 0x4]
- mov r0, r9
- ldr r2, [sp, 0x14]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- adds r5, 0x7
- orrs r5, r7
- lsls r5, 16
- lsrs r5, 16
- mov r3, r8
- str r3, [sp]
- str r3, [sp, 0x4]
- mov r0, r9
- adds r1, r5, 0
- ldr r2, [sp, 0x1C]
- adds r3, r4, 0
- bl FillBgTilemapBufferRect_Palette0
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_819645C
-
- thumb_func_start sub_81965D8
-sub_81965D8: @ 81965D8
- push {lr}
- sub sp, 0x10
- str r1, [sp]
- mov r1, sp
- movs r3, 0
- strb r0, [r1, 0x4]
- mov r0, sp
- movs r1, 0x1
- strb r1, [r0, 0x5]
- movs r2, 0x20
- strb r2, [r0, 0x6]
- strb r1, [r0, 0x7]
- strb r2, [r0, 0x8]
- strb r1, [r0, 0x9]
- strb r3, [r0, 0xA]
- strb r3, [r0, 0xB]
- mov r3, sp
- ldrb r2, [r3, 0xC]
- subs r1, 0x11
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3, 0xC]
- mov r2, sp
- movs r3, 0xF
- movs r0, 0xA0
- strb r0, [r2, 0xC]
- ldrb r0, [r2, 0xD]
- ands r1, r0
- movs r0, 0x8
- orrs r1, r0
- strb r1, [r2, 0xD]
- ands r1, r3
- movs r0, 0xE0
- orrs r1, r0
- strb r1, [r2, 0xD]
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x3
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- bl GetPlayerTextSpeedDelay
- adds r1, r0, 0
- lsls r1, 24
- lsrs r1, 24
- mov r0, sp
- movs r2, 0
- bl AddTextPrinter
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81965D8
-
- thumb_func_start sub_8196648
-sub_8196648: @ 8196648
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gMain
- ldrh r1, [r0, 0x2C]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _0819666C
- ldr r0, =gTextFlags
- ldrb r1, [r0]
- movs r2, 0x1
- orrs r1, r2
- strb r1, [r0]
- b _08196678
- .pool
-_0819666C:
- ldr r2, =gTextFlags
- ldrb r1, [r2]
- movs r0, 0x2
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
-_08196678:
- bl RunTextPrinters
- lsls r0, r4, 24
- lsrs r0, 24
- bl IsTextPrinterActive
- lsls r0, 16
- lsrs r0, 16
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196648
-
- thumb_func_start sub_8196694
-sub_8196694: @ 8196694
- push {lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- ldr r0, =gTasks + 0x8
- adds r2, r1, r0
- ldrh r0, [r2]
- adds r0, 0x1
- strh r0, [r2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x8
- ble _081966FC
- movs r1, 0
- strh r1, [r2]
- ldrh r0, [r2, 0x2]
- adds r0, 0x1
- strh r0, [r2, 0x2]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _081966C8
- strh r1, [r2, 0x2]
-_081966C8:
- movs r0, 0x2
- ldrsh r1, [r2, r0]
- lsls r1, 4
- ldr r0, =0x00000279
- adds r1, r0
- strh r1, [r2, 0x4]
- ldr r2, =0xfffff000
- adds r0, r2, 0
- orrs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x4
- str r0, [sp]
- str r0, [sp, 0x4]
- movs r0, 0x11
- str r0, [sp, 0x8]
- movs r0, 0x1
- str r0, [sp, 0xC]
- movs r0, 0
- movs r2, 0x1
- movs r3, 0xF
- bl WriteSequenceToBgTilemapBuffer
- movs r0, 0
- bl CopyBgTilemapBufferToVram
-_081966FC:
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196694
-
- thumb_func_start sub_8196710
-sub_8196710: @ 8196710
- ldr r1, =gSaveBlock1Ptr
- ldr r1, [r1]
- ldr r2, =0x000009ca
- adds r1, r2
- adds r1, r0
- ldrb r1, [r1]
- negs r0, r1
- orrs r0, r1
- lsrs r0, 31
- bx lr
- .pool
- thumb_func_end sub_8196710
-
- thumb_func_start sub_819672C
-sub_819672C: @ 819672C
- push {lr}
- ldr r1, =gRematchTable
- lsls r0, 4
- adds r0, r1
- ldrh r2, [r0, 0xA]
- ldrh r1, [r0, 0xC]
- adds r0, r2, 0
- bl Overworld_GetMapHeaderByGroupAndId
- ldrb r0, [r0, 0x14]
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_819672C
-
- thumb_func_start sub_8196748
-sub_8196748: @ 8196748
- push {r4-r6,lr}
- movs r5, 0
- movs r6, 0
- ldr r4, =gRematchTable
-_08196750:
- ldrh r0, [r4]
- bl HasTrainerBeenFought
- lsls r0, 24
- cmp r0, 0
- beq _0819675E
- adds r6, 0x1
-_0819675E:
- adds r4, 0x10
- adds r5, 0x1
- cmp r5, 0x3F
- bls _08196750
- adds r0, r6, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196748
-
- thumb_func_start sub_8196774
-sub_8196774: @ 8196774
- push {r4-r7,lr}
- adds r7, r0, 0
- movs r4, 0
- movs r6, 0
- ldr r5, =gRematchTable
-_0819677E:
- ldrh r0, [r5]
- bl HasTrainerBeenFought
- lsls r0, 24
- cmp r0, 0
- beq _0819679A
- cmp r6, r7
- bne _08196798
- adds r0, r4, 0
- b _081967A4
- .pool
-_08196798:
- adds r6, 0x1
-_0819679A:
- adds r5, 0x10
- adds r4, 0x1
- cmp r4, 0x4D
- bls _0819677E
- movs r0, 0x4E
-_081967A4:
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8196774
-
- thumb_func_start sub_81967AC
-sub_81967AC: @ 81967AC
- push {r4-r7,lr}
- adds r6, r1, 0
- movs r7, 0
- bl sub_8196844
- adds r5, r0, 0
- ldr r0, =gUnknown_0203CD88
- strh r7, [r0]
- adds r0, r5, 0
- bl sub_8196710
- cmp r0, 0
- beq _081967EC
- adds r0, r5, 0
- bl sub_819672C
- ldr r1, =gMapHeader
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x14]
- cmp r0, r1
- bne _081967EC
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196864
- b _08196830
- .pool
-_081967EC:
- adds r0, r5, 0
- bl sub_8196D74
- cmp r0, 0
- beq _0819680A
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196890
- adds r4, r0, 0
- movs r7, 0x1
- adds r0, r5, 0
- bl UpdateRematchIfDefeated
- b _08196832
-_0819680A:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- cmp r0, 0
- beq _08196828
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_81968BC
- b _08196830
-_08196828:
- adds r0, r5, 0
- adds r1, r6, 0
- bl sub_8196910
-_08196830:
- adds r4, r0, 0
-_08196832:
- adds r0, r5, 0
- adds r1, r4, 0
- adds r2, r6, 0
- bl sub_81969E0
- adds r0, r7, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_81967AC
-
- thumb_func_start sub_8196844
-sub_8196844: @ 8196844
- push {lr}
- adds r3, r0, 0
- movs r2, 0
- ldr r1, =gUnknown_0860DEB8
-_0819684C:
- ldrh r0, [r1]
- cmp r0, r3
- beq _0819685C
- adds r1, 0x14
- adds r2, 0x1
- b _0819684C
- .pool
-_0819685C:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_8196844
-
- thumb_func_start sub_8196864
-sub_8196864: @ 8196864
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0xE]
- movs r2, 0xFF
- lsrs r0, r1, 8
- subs r0, 0x1
- ands r1, r2
- subs r1, 0x1
- ldr r2, =gUnknown_0860EA2C
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_8196864
-
- thumb_func_start sub_8196890
-sub_8196890: @ 8196890
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- movs r2, 0xFF
- lsrs r0, r1, 8
- subs r0, 0x1
- ands r1, r2
- subs r1, 0x1
- ldr r2, =gUnknown_0860EA2C
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- bx lr
- .pool
- thumb_func_end sub_8196890
-
- thumb_func_start sub_81968BC
-sub_81968BC: @ 81968BC
- push {r4,lr}
- adds r4, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x3
- bl __umodsi3
- lsls r0, 16
- ldr r2, =gUnknown_0860DEB8
- lsrs r0, 15
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 2
- adds r0, r1
- adds r2, 0x4
- adds r0, r2
- ldrh r4, [r0]
- cmp r4, 0
- bne _081968EC
- movs r0, 0
- bl SpriteCallbackDummy
-_081968EC:
- movs r1, 0xFF
- lsrs r0, r4, 8
- subs r0, 0x1
- ands r4, r1
- subs r1, r4, 0x1
- ldr r2, =gUnknown_0860EA20
- lsls r0, 2
- adds r0, r2
- lsls r1, 3
- ldr r0, [r0]
- adds r0, r1
- pop {r4}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81968BC
-
- thumb_func_start sub_8196910
-sub_8196910: @ 8196910
- push {r4-r7,lr}
- sub sp, 0x4
- adds r6, r0, 0
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- ands r0, r1
- cmp r0, 0
- bne _081969AC
- movs r5, 0
- movs r4, 0
- lsls r7, r6, 2
-_0819692C:
- lsls r0, r4, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_8196E04
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _08196940
- adds r5, 0x1
-_08196940:
- adds r4, 0x1
- cmp r4, 0x6
- ble _0819692C
- cmp r5, 0
- beq _081969AC
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r5, 0
- bl __modsi3
- adds r5, r0, 0
- movs r4, 0
- b _08196962
-_0819695E:
- subs r5, 0x1
-_08196960:
- adds r4, 0x1
-_08196962:
- cmp r4, 0x6
- bgt _08196980
- lsls r0, r4, 16
- lsrs r0, 16
- mov r1, sp
- bl sub_8196E04
- ldr r1, =gUnknown_0203CD88
- strh r0, [r1, 0x2]
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- bls _08196960
- cmp r5, 0
- bne _0819695E
-_08196980:
- ldr r0, =gUnknown_0203CD88
- strh r4, [r0]
- ldr r1, =gUnknown_0860DEB8
- adds r0, r7, r6
- lsls r0, 2
- adds r0, r1
- ldrb r0, [r0, 0xC]
- subs r2, r0, 0x1
- ldr r1, =gUnknown_0860EA34
- ldr r0, [sp]
- lsls r0, 2
- adds r0, r1
- lsls r1, r2, 3
- ldr r0, [r0]
- adds r0, r1
- b _081969D0
- .pool
-_081969AC:
- ldr r1, =gUnknown_0860DEB8
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 2
- adds r0, r1
- ldrh r2, [r0, 0xA]
- lsrs r1, r2, 8
- subs r1, 0x1
- str r1, [sp]
- movs r0, 0xFF
- ands r0, r2
- subs r2, r0, 0x1
- ldr r0, =gUnknown_0860EA34
- lsls r1, 2
- adds r1, r0
- lsls r2, 3
- ldr r0, [r1]
- adds r0, r2
-_081969D0:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196910
-
- thumb_func_start sub_81969E0
-sub_81969E0: @ 81969E0
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- adds r1, r4, 0x4
- bl sub_81969FC
- ldr r1, [r4]
- adds r0, r5, 0
- bl StringExpandPlaceholders
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_81969E0
-
- thumb_func_start sub_81969FC
-sub_81969FC: @ 81969FC
- push {r4-r7,lr}
- adds r7, r0, 0
- adds r6, r1, 0
- movs r4, 0
- ldr r5, =gUnknown_0860EFA0
-_08196A06:
- adds r1, r6, r4
- movs r0, 0
- ldrsb r0, [r1, r0]
- cmp r0, 0
- blt _08196A1A
- adds r1, r0, 0
- ldr r2, [r5]
- adds r0, r7, 0
- bl sub_8196A2C
-_08196A1A:
- adds r5, 0x4
- adds r4, 0x1
- cmp r4, 0x2
- ble _08196A06
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81969FC
-
- thumb_func_start sub_8196A2C
-sub_8196A2C: @ 8196A2C
- push {lr}
- ldr r3, =gUnknown_0860EFAC
- lsls r1, 2
- adds r1, r3
- ldr r3, [r1]
- adds r1, r2, 0
- bl _call_via_r3
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196A2C
-
- thumb_func_start sub_8196A44
-sub_8196A44: @ 8196A44
- push {r4-r6,lr}
- adds r5, r1, 0
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r4, [r1]
- movs r2, 0
- ldr r3, =gUnknown_0860EFC4
- adds r6, r3, 0
-_08196A5A:
- lsls r1, r2, 3
- ldrh r0, [r3]
- cmp r0, r4
- bne _08196A78
- adds r0, r6, 0x4
- adds r0, r1, r0
- ldr r1, [r0]
- adds r0, r5, 0
- bl StringCopy
- b _08196A90
- .pool
-_08196A78:
- adds r3, 0x8
- adds r2, 0x1
- cmp r2, 0x5
- bls _08196A5A
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- ldr r0, =gTrainers + 0x4 @ name offset
- adds r1, r0
- adds r0, r5, 0
- bl StringCopy
-_08196A90:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196A44
-
- thumb_func_start sub_8196A9C
-sub_8196A9C: @ 8196A9C
- push {r4,lr}
- adds r4, r1, 0
- bl sub_819672C
- adds r1, r0, 0
- lsls r1, 16
- lsrs r1, 16
- adds r0, r4, 0
- movs r2, 0
- bl GetMapName
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_8196A9C
-
- thumb_func_start sub_8196AB8
-sub_8196AB8: @ 8196AB8
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x13
- bgt _08196AD4
- movs r0, 0
- b _08196B4A
-_08196AD4:
- adds r0, r1, 0
- subs r0, 0x14
- cmp r0, 0x13
- bhi _08196AE0
- movs r0, 0x1
- b _08196B4A
-_08196AE0:
- adds r0, r1, 0
- subs r0, 0x28
- cmp r0, 0x9
- bhi _08196AEC
- movs r0, 0x2
- b _08196B4A
-_08196AEC:
- adds r0, r1, 0
- subs r0, 0x32
- cmp r0, 0x9
- bhi _08196AF8
- movs r0, 0x3
- b _08196B4A
-_08196AF8:
- adds r0, r1, 0
- subs r0, 0x3C
- cmp r0, 0x9
- bhi _08196B04
- movs r0, 0x4
- b _08196B4A
-_08196B04:
- adds r0, r1, 0
- subs r0, 0x46
- cmp r0, 0x9
- bhi _08196B10
- movs r0, 0x5
- b _08196B4A
-_08196B10:
- adds r0, r1, 0
- subs r0, 0x50
- cmp r0, 0x4
- bhi _08196B1C
- movs r0, 0x6
- b _08196B4A
-_08196B1C:
- adds r0, r1, 0
- subs r0, 0x55
- cmp r0, 0x4
- bhi _08196B28
- movs r0, 0x7
- b _08196B4A
-_08196B28:
- adds r0, r1, 0
- subs r0, 0x5A
- cmp r0, 0x3
- bhi _08196B34
- movs r0, 0x8
- b _08196B4A
-_08196B34:
- adds r0, r1, 0
- subs r0, 0x5E
- cmp r0, 0x3
- bhi _08196B40
- movs r0, 0x9
- b _08196B4A
-_08196B40:
- cmp r1, 0x62
- beq _08196B48
- movs r0, 0xB
- b _08196B4A
-_08196B48:
- movs r0, 0xA
-_08196B4A:
- pop {r1}
- bx r1
- thumb_func_end sub_8196AB8
-
- thumb_func_start sub_8196B50
-sub_8196B50: @ 8196B50
- push {lr}
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r1, r0, 16
- cmp r1, 0x3B
- bgt _08196B6C
- movs r0, 0
- b _08196B92
-_08196B6C:
- adds r0, r1, 0
- subs r0, 0x3C
- cmp r0, 0x1D
- bhi _08196B78
- movs r0, 0x1
- b _08196B92
-_08196B78:
- adds r0, r1, 0
- subs r0, 0x5A
- cmp r0, 0x4
- bhi _08196B84
- movs r0, 0x2
- b _08196B92
-_08196B84:
- adds r0, r1, 0
- subs r0, 0x5F
- cmp r0, 0x3
- bls _08196B90
- movs r0, 0x4
- b _08196B92
-_08196B90:
- movs r0, 0x3
-_08196B92:
- pop {r1}
- bx r1
- thumb_func_end sub_8196B50
-
- thumb_func_start sub_8196B98
-sub_8196B98: @ 8196B98
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r2, r0, 0
- mov r8, r1
- movs r3, 0
- ldr r0, =gWildMonHeaders
- ldrb r1, [r0]
- adds r7, r0, 0
- cmp r1, 0xFF
- beq _08196C5C
- ldr r1, =gRematchTable
- lsls r0, r2, 4
- adds r2, r0, r1
- ldrh r4, [r2, 0xA]
- adds r1, r7, 0
-_08196BBA:
- ldrb r0, [r1]
- cmp r0, r4
- bne _08196BC8
- ldrb r0, [r1, 0x1]
- ldrh r5, [r2, 0xC]
- cmp r0, r5
- beq _08196BD2
-_08196BC8:
- adds r1, 0x14
- adds r3, 0x1
- ldrb r0, [r1]
- cmp r0, 0xFF
- bne _08196BBA
-_08196BD2:
- adds r1, r7, 0
- lsls r0, r3, 2
- adds r0, r3
- lsls r5, r0, 2
- adds r0, r5, r1
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _08196C5C
- movs r6, 0
- adds r0, r1, 0x4
- adds r0, r5, r0
- ldr r4, [r0]
- cmp r4, 0
- beq _08196C02
- bl sub_8196AB8
- lsls r0, 24
- mov r2, sp
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- movs r6, 0x1
-_08196C02:
- adds r0, r7, 0
- adds r0, 0x8
- adds r0, r5, r0
- ldr r4, [r0]
- cmp r4, 0
- beq _08196C26
- bl sub_8196B50
- lsls r0, 24
- lsls r1, r6, 1
- mov r3, sp
- adds r2, r3, r1
- ldr r1, [r4, 0x4]
- lsrs r0, 22
- adds r0, r1
- ldrh r0, [r0, 0x2]
- strh r0, [r2]
- adds r6, 0x1
-_08196C26:
- cmp r6, 0
- beq _08196C5C
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r1, r6, 0
- bl __modsi3
- lsls r0, 1
- add r0, sp
- ldrh r1, [r0]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- mov r0, r8
- bl StringCopy
- b _08196C62
- .pool
-_08196C5C:
- movs r0, 0xFF
- mov r5, r8
- strb r0, [r5]
-_08196C62:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8196B98
-
- thumb_func_start sub_8196C70
-sub_8196C70: @ 8196C70
- push {r4-r7,lr}
- adds r7, r1, 0
- ldr r2, =gUnknown_0860DEB8
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldrh r0, [r1]
- bl GetLastBeatenRematchTrainerId
- lsls r0, 16
- lsrs r0, 16
- ldr r5, =gTrainers
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r0, r5, 0
- adds r0, 0x24
- adds r0, r4, r0
- ldr r6, [r0]
- bl Random
- lsls r0, 16
- lsrs r0, 16
- adds r4, r5
- adds r1, r4, 0
- adds r1, 0x20
- ldrb r1, [r1]
- bl __modsi3
- lsls r0, 24
- lsrs r0, 24
- ldrb r1, [r4]
- cmp r1, 0x1
- beq _08196CD4
- cmp r1, 0x1
- ble _08196CC2
- cmp r1, 0x2
- beq _08196CD0
- cmp r1, 0x3
- beq _08196CD4
-_08196CC2:
- lsls r0, 3
- b _08196CD6
- .pool
-_08196CD0:
- lsls r0, 3
- b _08196CD6
-_08196CD4:
- lsls r0, 4
-_08196CD6:
- adds r0, r6
- ldrh r1, [r0, 0x4]
- movs r0, 0xB
- muls r1, r0
- ldr r0, =gSpeciesNames
- adds r1, r0
- adds r0, r7, 0
- bl StringCopy
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196C70
-
- thumb_func_start sub_8196CF4
-sub_8196CF4: @ 8196CF4
- push {lr}
- adds r0, r1, 0
- ldr r2, =gUnknown_0860EFF4
- ldr r1, =gUnknown_0203CD88
- ldrh r1, [r1]
- lsls r1, 2
- adds r1, r2
- ldr r1, [r1]
- bl StringCopy
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196CF4
-
- thumb_func_start sub_8196D14
-sub_8196D14: @ 8196D14
- push {r4-r6,lr}
- adds r5, r1, 0
- movs r4, 0
- ldr r0, =gUnknown_0203CD88
- ldrh r1, [r0, 0x2]
- adds r6, r0, 0
- cmp r1, 0
- beq _08196D34
-_08196D24:
- adds r0, r1, 0
- movs r1, 0xA
- bl __divsi3
- adds r1, r0, 0
- adds r4, 0x1
- cmp r1, 0
- bne _08196D24
-_08196D34:
- ldrh r1, [r6, 0x2]
- lsls r3, r4, 24
- lsrs r3, 24
- adds r0, r5, 0
- movs r2, 0
- bl ConvertIntToDecimalStringN
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8196D14
-
- thumb_func_start sub_8196D4C
-sub_8196D4C: @ 8196D4C
- push {r4,r5,lr}
- movs r4, 0
- ldr r5, =gUnknown_0860F010
- b _08196D5C
- .pool
-_08196D58:
- adds r5, 0x2
- adds r4, 0x1
-_08196D5C:
- cmp r4, 0x7
- bhi _08196D6C
- ldrh r0, [r5]
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _08196D58
-_08196D6C:
- adds r0, r4, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8196D4C
-
- thumb_func_start sub_8196D74
-sub_8196D74: @ 8196D74
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r7, r0, 0
- bl sub_8196D4C
- cmp r0, 0x4
- ble _08196DF4
- bl RtcGetLocalDayCount
- adds r4, r0, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- adds r0, 0xA
- bl GetTrainerId
- adds r6, r0, 0
- ldr r0, =0x0000ffff
- ands r6, r0
- ldr r0, =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, =0x00002e6a
- adds r0, r1
- ldrh r5, [r0]
- bl sub_8196748
- mov r9, r0
- movs r0, 0xD
- mov r1, r9
- muls r1, r0
- adds r0, r1, 0
- movs r1, 0xA
- bl __divsi3
- mov r8, r0
- movs r0, 0x9
- bl GetGameStat
- eors r4, r5
- eors r5, r0
- adds r4, r5
- eors r4, r6
- adds r0, r4, 0
- mov r1, r8
- bl __modsi3
- cmp r0, r9
- bge _08196DF4
- bl sub_8196774
- cmp r0, r7
- bne _08196DF4
- movs r0, 0x1
- b _08196DF6
- .pool
-_08196DF4:
- movs r0, 0
-_08196DF6:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8196D74
-
- thumb_func_start sub_8196E04
-sub_8196E04: @ 8196E04
- push {r4-r6,lr}
- adds r5, r1, 0
- lsls r0, 16
- lsrs r0, 16
- movs r4, 0
- cmp r0, 0x6
- bls _08196E14
- b _08196F7E
-_08196E14:
- lsls r0, 2
- ldr r1, =_08196E24
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08196E24:
- .4byte _08196E9C
- .4byte _08196E40
- .4byte _08196ED0
- .4byte _08196F38
- .4byte _08196E74
- .4byte _08196F04
- .4byte _08196F60
-_08196E40:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000d14
- adds r0, r1
-_08196E4A:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196E52:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196E5A
- ldrh r4, [r1]
-_08196E5A:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196E52
- cmp r3, 0x1
- ble _08196E4A
- movs r0, 0x3
- b _08196F7C
- .pool
-_08196E74:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e08
- adds r0, r1
- movs r3, 0x1
-_08196E7E:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196E86
- ldrh r4, [r0]
-_08196E86:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196E7E
- movs r0, 0x4
- b _08196F7C
- .pool
-_08196E9C:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xCF
- lsls r1, 4
- adds r0, r1
-_08196EA8:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196EB0:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196EB8
- ldrh r4, [r1]
-_08196EB8:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196EB0
- movs r2, 0x2
- cmp r3, 0x3
- ble _08196EA8
- str r2, [r5]
- b _08196F7E
- .pool
-_08196ED0:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- movs r1, 0xDD
- lsls r1, 4
- adds r0, r1
-_08196EDC:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196EE4:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196EEC
- ldrh r4, [r1]
-_08196EEC:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196EE4
- movs r2, 0x2
- cmp r3, 0x1
- ble _08196EDC
- str r2, [r5]
- b _08196F7E
- .pool
-_08196F04:
- movs r3, 0
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dea
- adds r0, r1
-_08196F0E:
- lsls r1, r3, 2
- adds r3, 0x1
- adds r1, r0
- movs r2, 0x1
-_08196F16:
- ldrh r6, [r1]
- cmp r4, r6
- bcs _08196F1E
- ldrh r4, [r1]
-_08196F1E:
- adds r1, 0x2
- subs r2, 0x1
- cmp r2, 0
- bge _08196F16
- movs r2, 0x2
- cmp r3, 0x1
- ble _08196F0E
- str r2, [r5]
- b _08196F7E
- .pool
-_08196F38:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000dde
- adds r0, r1
- movs r3, 0x1
-_08196F42:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196F4A
- ldrh r4, [r0]
-_08196F4A:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196F42
- movs r3, 0x2
- str r3, [r5]
- b _08196F7E
- .pool
-_08196F60:
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- ldr r1, =0x00000e1e
- adds r0, r1
- movs r3, 0x1
-_08196F6A:
- ldrh r6, [r0]
- cmp r4, r6
- bcs _08196F72
- ldrh r4, [r0]
-_08196F72:
- adds r0, 0x2
- subs r3, 0x1
- cmp r3, 0
- bge _08196F6A
- movs r0, 0x5
-_08196F7C:
- str r0, [r5]
-_08196F7E:
- adds r0, r4, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8196E04
-
- thumb_func_start sub_8196F90
-sub_8196F90: @ 8196F90
- push {r4,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- cmp r4, 0x9
- bhi _08196F9E
- movs r0, 0
- b _0819707A
-_08196F9E:
- cmp r4, 0x13
- bhi _08196FA6
- movs r0, 0x1
- b _0819707A
-_08196FA6:
- cmp r4, 0x1D
- bhi _08196FAE
- movs r0, 0x2
- b _0819707A
-_08196FAE:
- cmp r4, 0x27
- bhi _08196FB6
- movs r0, 0x3
- b _0819707A
-_08196FB6:
- cmp r4, 0x31
- bhi _08196FBE
- movs r0, 0x4
- b _0819707A
-_08196FBE:
- cmp r4, 0x3B
- bhi _08196FC6
- movs r0, 0x5
- b _0819707A
-_08196FC6:
- cmp r4, 0x45
- bhi _08196FCE
- movs r0, 0x6
- b _0819707A
-_08196FCE:
- cmp r4, 0x4F
- bhi _08196FD6
- movs r0, 0x7
- b _0819707A
-_08196FD6:
- cmp r4, 0x59
- bhi _08196FDE
- movs r0, 0x8
- b _0819707A
-_08196FDE:
- cmp r4, 0x63
- bhi _08196FE6
- movs r0, 0x9
- b _0819707A
-_08196FE6:
- cmp r4, 0x6D
- bhi _08196FEE
- movs r0, 0xA
- b _0819707A
-_08196FEE:
- cmp r4, 0x77
- bhi _08196FF6
- movs r0, 0xB
- b _0819707A
-_08196FF6:
- cmp r4, 0x81
- bhi _08196FFE
- movs r0, 0xC
- b _0819707A
-_08196FFE:
- cmp r4, 0x8B
- bhi _08197006
- movs r0, 0xD
- b _0819707A
-_08197006:
- cmp r4, 0x95
- bhi _0819700E
- movs r0, 0xE
- b _0819707A
-_0819700E:
- cmp r4, 0x9F
- bhi _08197016
- movs r0, 0xF
- b _0819707A
-_08197016:
- cmp r4, 0xA9
- bhi _0819701E
- movs r0, 0x10
- b _0819707A
-_0819701E:
- cmp r4, 0xB3
- bhi _08197026
- movs r0, 0x11
- b _0819707A
-_08197026:
- cmp r4, 0xBD
- bhi _0819702E
- movs r0, 0x12
- b _0819707A
-_0819702E:
- cmp r4, 0xC7
- bls _08197078
- movs r0, 0xCD
- lsls r0, 1
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _08197050
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_08197050:
- ldr r0, =0x00000199
- bl SpeciesToNationalPokedexNum
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- bl GetSetPokedexFlag
- lsls r0, 24
- cmp r0, 0
- beq _0819706C
- subs r0, r4, 0x1
- lsls r0, 16
- lsrs r4, r0, 16
-_0819706C:
- cmp r4, 0xC7
- bls _08197078
- movs r0, 0x14
- b _0819707A
- .pool
-_08197078:
- movs r0, 0x13
-_0819707A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8196F90
-
- thumb_func_start sub_8197080
-sub_8197080: @ 8197080
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- mov r8, r0
- movs r0, 0xFA
- lsls r0, 2
- bl Alloc
- adds r7, r0, 0
- cmp r7, 0
- bne _081970A2
- movs r0, 0xFF
- mov r1, r8
- strb r0, [r1]
- b _0819715C
-_081970A2:
- movs r0, 0
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- bl GetHoennPokedexCount
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r0, =gStringVar1
- mov r10, r0
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, =gStringVar2
- mov r9, r1
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- adds r0, r6, 0
- bl sub_8196F90
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, =gUnknown_082A5C9C
- adds r0, r7, 0
- bl StringCopy
- adds r5, r0, 0
- movs r6, 0xFB
- strb r6, [r5]
- adds r5, 0x1
- ldr r1, =gUnknown_082A5D2C
- adds r0, r5, 0
- bl StringCopy
- adds r5, r0, 0
- strb r6, [r5]
- adds r5, 0x1
- ldr r0, =gUnknown_0860F020
- lsls r4, 2
- adds r4, r0
- ldr r1, [r4]
- adds r0, r5, 0
- bl StringCopy
- mov r0, r8
- adds r1, r7, 0
- bl StringExpandPlaceholders
- adds r5, r0, 0
- bl IsNationalPokedexEnabled
- cmp r0, 0
- beq _08197156
- strb r6, [r5]
- adds r5, 0x1
- movs r0, 0
- bl GetNationalPokedexCount
- lsls r0, 16
- lsrs r4, r0, 16
- movs r0, 0x1
- bl GetNationalPokedexCount
- lsls r0, 16
- lsrs r6, r0, 16
- mov r0, r10
- adds r1, r4, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- mov r0, r9
- adds r1, r6, 0
- movs r2, 0
- movs r3, 0x3
- bl ConvertIntToDecimalStringN
- ldr r1, =gUnknown_082A633D
- adds r0, r5, 0
- bl StringExpandPlaceholders
-_08197156:
- adds r0, r7, 0
- bl Free
-_0819715C:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
-
- thumb_func_end sub_8197080
- thumb_func_start sub_8197184
-sub_8197184: @ 8197184
- push {r4,r5,lr}
- adds r4, r1, 0
- adds r5, r2, 0
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- bl GetWindowAttribute
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0860EA6C
- movs r2, 0x80
- lsls r2, 1
- lsls r4, 16
- lsrs r4, 16
- adds r3, r4, 0
- bl LoadBgTiles
- ldr r0, =gUnknown_0860EA4C
- lsls r5, 20
- lsrs r5, 16
- adds r1, r5, 0
- movs r2, 0x20
- bl LoadPalette
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8197184
-
- thumb_func_start sub_81971C4
-sub_81971C4: @ 81971C4
- push {lr}
- bl sub_819645C
- pop {r0}
- bx r0
- thumb_func_end sub_81971C4
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/pokenav.s b/asm/pokenav.s
index 1c0c18f7e..91682a780 100644
--- a/asm/pokenav.s
+++ b/asm/pokenav.s
@@ -8173,7 +8173,7 @@ _081CAFA4:
ldrh r0, [r1, 0x1E]
bl GetTrainerIdxByRematchIdx
ldr r1, =gStringVar4
- bl sub_81967AC
+ bl SelectMatchCallMessage
strb r0, [r6]
b _081CAFCC
.pool
diff --git a/asm/roulette.s b/asm/roulette.s
deleted file mode 100644
index 4174924e6..000000000
--- a/asm/roulette.s
+++ /dev/null
@@ -1,9634 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8140238
-sub_8140238: @ 8140238
- push {lr}
- bl RunTasks
- bl AnimateSprites
- bl BuildOamBuffer
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r1, r0, 0
- adds r1, 0xB8
- ldrb r0, [r1]
- cmp r0, 0
- beq _0814025A
- adds r0, r1, 0
- bl task_tutorial_controls_fadein
-_0814025A:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140238
-
- thumb_func_start sub_8140264
-sub_8140264: @ 8140264
- push {r4,lr}
- sub sp, 0x4
- bl LoadOam
- bl ProcessSpriteCopyRequests
- bl TransferPlttBuffer
- bl sub_8142814
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- ldrh r0, [r0, 0x26]
- movs r2, 0x80
- lsls r2, 2
- adds r1, r2, 0
- subs r1, r0
- lsls r1, 16
- lsrs r1, 16
- movs r0, 0x14
- bl SetGpuReg
- ldr r1, [r4]
- ldrb r0, [r1, 0x1]
- cmp r0, 0
- beq _081402A0
- ldrh r1, [r1, 0x34]
- movs r0, 0x52
- bl SetGpuReg
-_081402A0:
- ldr r2, [r4]
- movs r3, 0x2A
- ldrsh r0, [r2, r3]
- cmp r0, 0
- beq _081402C0
- ldr r1, =0x040000d4
- ldr r3, =0x0000133c
- adds r0, r2, r3
- str r0, [r1]
- ldr r0, =0x060021c0
- str r0, [r1, 0x4]
- ldr r0, =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0
- strh r0, [r2, 0x2A]
-_081402C0:
- ldr r0, [r4]
- movs r2, 0x28
- ldrsh r1, [r0, r2]
- cmp r1, 0x1
- beq _081402EC
- cmp r1, 0x1
- ble _08140374
- cmp r1, 0x2
- beq _08140324
- cmp r1, 0xFF
- beq _08140348
- b _08140374
- .pool
-_081402EC:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- ldr r1, =0x040000d4
- ldr r2, [r4]
- movs r3, 0xCF
- lsls r3, 2
- adds r0, r2, r3
- str r0, [r1]
- ldr r0, =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- movs r0, 0x2
- strh r0, [r2, 0x28]
- b _08140374
- .pool
-_08140324:
- ldr r1, =0x040000d4
- movs r2, 0xCF
- lsls r2, 2
- adds r0, r2
- str r0, [r1]
- ldr r0, =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, =0x800001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- b _08140374
- .pool
-_08140348:
- movs r0, 0
- movs r1, 0x1
- movs r2, 0x2
- bl SetBgAttribute
- movs r0, 0
- bl ShowBg
- mov r1, sp
- movs r0, 0
- strh r0, [r1]
- ldr r1, =0x040000d4
- mov r3, sp
- str r3, [r1]
- ldr r0, =0x0600f9c0
- str r0, [r1, 0x4]
- ldr r0, =0x810001a0
- str r0, [r1, 0x8]
- ldr r0, [r1, 0x8]
- ldr r1, [r4]
- movs r0, 0
- strh r0, [r1, 0x28]
-_08140374:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140264
-
- thumb_func_start sub_8140388
-sub_8140388: @ 8140388
- push {r4,r5,lr}
- sub sp, 0x4
- movs r5, 0
- str r5, [sp]
- ldr r4, =gUnknown_0203AB88
- movs r0, 0xE6
- lsls r0, 6
- bl AllocZeroed
- str r0, [r4]
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r1, =gUnknown_085B6140
- movs r0, 0x1
- movs r2, 0x3
- bl InitBgsFromTemplates
- ldr r1, [r4]
- movs r0, 0xBE
- lsls r0, 1
- adds r1, r0
- movs r0, 0
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r2, =0x0000117c
- adds r1, r2
- movs r0, 0x1
- bl SetBgTilemapBuffer
- ldr r1, [r4]
- ldr r0, =0x0000317c
- adds r1, r0
- movs r0, 0x2
- bl SetBgTilemapBuffer
- ldr r0, =gUnknown_085B614C
- bl InitWindows
- bl sub_8197200
- ldr r0, =gUnknown_0203AB8C
- strb r5, [r0]
- ldr r0, =gUnknown_085B5DFC
- mov r1, sp
- bl malloc_and_decompress
- ldr r1, [r4]
- ldr r2, =0x0000397c
- adds r1, r2
- str r0, [r1]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140388
-
- thumb_func_start sub_8140418
-sub_8140418: @ 8140418
- push {r4,r5,lr}
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- ldr r4, =0x0000397c
- adds r0, r4
- ldr r0, [r0]
- bl Free
- ldr r0, [r5]
- adds r0, r4
- movs r4, 0
- str r4, [r0]
- bl FreeAllWindowBuffers
- movs r0, 0
- bl UnsetBgTilemapBuffer
- movs r0, 0x1
- bl UnsetBgTilemapBuffer
- movs r0, 0x2
- bl UnsetBgTilemapBuffer
- movs r0, 0
- bl ResetBgsAndClearDma3BusyFlags
- ldr r0, [r5]
- movs r2, 0xE6
- lsls r2, 6
- movs r1, 0
- bl memset
- ldr r0, [r5]
- bl Free
- str r4, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140418
-
- thumb_func_start sub_8140470
-sub_8140470: @ 8140470
- push {r4-r6,lr}
- sub sp, 0x8
- ldr r1, =gUnknown_085B6418
- mov r0, sp
- movs r2, 0x6
- bl memcpy
- ldr r5, =gUnknown_0203AB88
- ldr r3, [r5]
- ldr r4, =gSpecialVar_0x8004
- ldrb r0, [r4]
- movs r1, 0x1
- ands r1, r0
- ldrb r2, [r3, 0x4]
- movs r0, 0x4
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x4]
- ldrh r1, [r4]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _081404AA
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0, 0x4]
-_081404AA:
- ldr r1, [r5]
- ldr r2, =gUnknown_085B6348
- ldrb r0, [r1, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r2
- ldrb r0, [r0, 0x3]
- adds r1, 0x22
- strb r0, [r1]
- ldr r1, [r5]
- ldrb r0, [r1, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r2
- ldrb r0, [r0, 0x4]
- adds r1, 0x23
- strb r0, [r1]
- ldr r2, [r5]
- ldr r3, =gUnknown_085B6344
- ldrb r1, [r2, 0x4]
- lsls r0, r1, 30
- lsrs r0, 30
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r3
- ldrb r0, [r0]
- strb r0, [r2, 0x19]
- ldr r2, [r5]
- ldrb r1, [r2, 0x1A]
- movs r0, 0xF
- ands r0, r1
- movs r1, 0x10
- orrs r0, r1
- strb r0, [r2, 0x1A]
- ldr r0, [r5]
- ldrb r0, [r0, 0x19]
- cmp r0, 0x1
- bne _08140520
- ldr r4, =gPlttBufferUnfaded
- ldr r3, =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0]
- b _08140528
- .pool
-_08140520:
- ldr r4, =gPlttBufferUnfaded
- ldr r3, =gPlttBufferFaded
- mov r0, sp
- ldrh r2, [r0, 0x2]
-_08140528:
- adds r0, r3, 0
- adds r0, 0xA2
- strh r2, [r0]
- ldr r1, =0x0000ffff
- adds r0, r1, 0
- ands r0, r2
- strh r0, [r3]
- ands r0, r1
- adds r2, r4, 0
- adds r2, 0xA2
- strh r0, [r2]
- ands r0, r1
- strh r0, [r4]
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0xB8
- bl sub_8151678
- movs r4, 0
-_0814054E:
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- adds r0, 0xB8
- lsls r2, r4, 3
- ldr r1, =gUnknown_085B6388
- adds r2, r1
- adds r1, r4, 0
- bl sub_815168C
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xC
- bls _0814054E
- movs r4, 0
-_0814056C:
- movs r0, 0x64
- muls r0, r4
- ldr r1, =gPlayerParty
- adds r0, r1
- movs r1, 0x41
- bl GetMonData
- adds r1, r0, 0
- movs r0, 0x98
- lsls r0, 1
- cmp r1, r0
- beq _081405AC
- adds r0, 0x2
- cmp r1, r0
- bne _081405B6
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- movs r2, 0x1
- b _081405B2
- .pool
-_081405AC:
- ldr r0, [r5]
- ldrb r1, [r0, 0x2]
- movs r2, 0x2
-_081405B2:
- orrs r1, r2
- strb r1, [r0, 0x2]
-_081405B6:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _0814056C
- bl RtcCalcLocalTime
- add sp, 0x8
- pop {r4-r6}
- pop {r0}
- bx r0
- thumb_func_end sub_8140470
-
- thumb_func_start sub_81405CC
-sub_81405CC: @ 81405CC
- push {r4,r5,lr}
- sub sp, 0xC
- ldr r0, =gMain
- movs r1, 0x87
- lsls r1, 3
- adds r0, r1
- ldrb r0, [r0]
- cmp r0, 0x8
- bls _081405E0
- b _081407F8
-_081405E0:
- lsls r0, 2
- ldr r1, =_081405F4
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081405F4:
- .4byte _08140618
- .4byte _08140630
- .4byte _08140650
- .4byte _08140662
- .4byte _0814069C
- .4byte _081406C0
- .4byte _081406E0
- .4byte _08140750
- .4byte _0814077A
-_08140618:
- movs r0, 0
- bl SetVBlankCallback
- bl ScanlineEffect_Stop
- bl SetVBlankHBlankCallbacksToNull
- bl ResetVramOamAndBgCntRegs
- bl ResetAllBgsCoordinates
- b _081407F8
-_08140630:
- bl sub_8140388
- bl DeactivateAllTextPrinters
- movs r1, 0x90
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x0000060a
- movs r0, 0x52
- bl SetGpuReg
- b _081407F8
- .pool
-_08140650:
- bl ResetPaletteFade
- bl ResetSpriteData
- bl ResetTasks
- bl reset_temp_tile_data_buffers
- b _081407F8
-_08140662:
- ldr r0, =gUnknown_085B5BFC
- movs r2, 0xE0
- lsls r2, 1
- movs r1, 0
- bl LoadPalette
- ldr r1, =gRouletteMenuTiles
- movs r4, 0
- str r4, [sp]
- movs r0, 0x1
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- ldr r1, =gRouletteWheelTiles
- str r4, [sp]
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl decompress_and_copy_tile_data_to_vram
- b _081407F8
- .pool
-_0814069C:
- bl free_temp_tile_data_buffers_if_possible
- lsls r0, 24
- cmp r0, 0
- beq _081406A8
- b _08140806
-_081406A8:
- bl sub_8140470
- ldr r1, =gUnknown_085B5FA0
- movs r0, 0x2
- movs r2, 0
- movs r3, 0
- bl CopyToBgTilemapBuffer
- b _081407F8
- .pool
-_081406C0:
- movs r0, 0
- bl sub_8142C0C
- bl sub_81439C8
- bl sub_814391C
- bl sub_8143314
- bl sub_8142CD0
- bl sub_8142F7C
- bl sub_81431E4
- b _081407F8
-_081406E0:
- bl AnimateSprites
- bl BuildOamBuffer
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- bl sub_8143514
- movs r0, 0x6
- bl sub_814372C
- movs r0, 0
- bl sub_81436D0
- movs r0, 0
- bl sub_81424FC
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5B89
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r5, 0
- str r5, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =gSpriteCoordOffsetX
- movs r2, 0x3C
- negs r2, r2
- adds r0, r2, 0
- strh r0, [r1]
- ldr r0, =gSpriteCoordOffsetY
- strh r5, [r0]
- b _081407F8
- .pool
-_08140750:
- movs r1, 0x82
- lsls r1, 5
- movs r0, 0
- bl SetGpuReg
- movs r0, 0x1
- bl CopyBgTilemapBufferToVram
- movs r0, 0x2
- bl CopyBgTilemapBufferToVram
- movs r0, 0
- bl ShowBg
- movs r0, 0x1
- bl ShowBg
- movs r0, 0x2
- bl ShowBg
- b _081407F8
-_0814077A:
- movs r0, 0x1
- bl EnableInterrupts
- ldr r0, =sub_8140264
- bl SetVBlankCallback
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0x10
- movs r3, 0
- bl BeginHardwarePaletteFade
- ldr r0, =sub_81408A8
- movs r1, 0
- bl CreateTask
- ldr r5, =gUnknown_0203AB88
- ldr r1, [r5]
- adds r1, 0xA4
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0x6
- strh r0, [r4, 0x14]
- bl GetCoins
- strh r0, [r4, 0x22]
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- bl sub_80EDE84
- ldr r0, =sub_8140814
- movs r1, 0x1
- bl CreateTask
- ldr r1, [r5]
- adds r1, 0xA5
- strb r0, [r1]
- ldr r0, =sub_8140238
- bl SetMainCallback2
- b _08140806
- .pool
-_081407F8:
- ldr r1, =gMain
- movs r0, 0x87
- lsls r0, 3
- adds r1, r0
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_08140806:
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81405CC
-
- thumb_func_start sub_8140814
-sub_8140814: @ 8140814
- push {r4-r6,lr}
- ldr r3, =gUnknown_0203AB88
- ldr r0, [r3]
- adds r0, 0x21
- ldrb r2, [r0]
- adds r1, r2, 0x1
- strb r1, [r0]
- ldr r1, [r3]
- adds r0, r1, 0
- adds r0, 0x23
- lsls r2, 24
- lsrs r2, 24
- adds r6, r3, 0
- ldrb r0, [r0]
- cmp r2, r0
- bne _0814085A
- adds r1, 0x21
- movs r0, 0
- strb r0, [r1]
- ldr r2, [r6]
- adds r3, r2, 0
- adds r3, 0x22
- ldrb r1, [r3]
- ldrh r0, [r2, 0x24]
- subs r0, r1
- strh r0, [r2, 0x24]
- lsls r0, 16
- cmp r0, 0
- bge _0814085A
- ldrb r1, [r3]
- movs r3, 0xB4
- lsls r3, 1
- adds r0, r3, 0
- subs r0, r1
- strh r0, [r2, 0x24]
-_0814085A:
- adds r4, r6, 0
- ldr r0, [r4]
- ldrh r0, [r0, 0x24]
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- ldr r0, [r4]
- ldrh r0, [r0, 0x24]
- bl Cos2
- lsls r0, 16
- lsrs r1, r0, 16
- lsls r0, r5, 16
- asrs r0, 16
- cmp r0, 0
- bge _0814087E
- adds r0, 0xF
-_0814087E:
- lsls r0, 12
- lsrs r5, r0, 16
- ldr r3, [r6]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0
- bge _0814088E
- adds r0, 0xF
-_0814088E:
- asrs r0, 4
- strh r0, [r3, 0x32]
- strh r0, [r3, 0x2C]
- strh r5, [r3, 0x2E]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r3, 0x30]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140814
-
- thumb_func_start sub_81408A8
-sub_81408A8: @ 81408A8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _081408FE
- movs r1, 0x90
- lsls r1, 6
- movs r0, 0x50
- bl SetGpuReg
- ldr r1, =0x00000808
- movs r0, 0x52
- bl SetGpuReg
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- strh r5, [r0, 0x14]
- adds r0, r4, 0
- bl sub_8141FF4
- bl sub_8142070
- bl sub_8143A40
- movs r0, 0
- bl sub_81424FC
- movs r0, 0x6
- bl sub_814372C
- ldr r1, =sub_8140968
- ldr r2, =0x0000ffff
- adds r0, r4, 0
- movs r3, 0x3
- bl sub_8141F7C
-_081408FE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81408A8
-
- thumb_func_start sub_8140914
-sub_8140914: @ 8140914
- push {r4,r5,lr}
- sub sp, 0xC
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl DisplayYesNoMenu
- ldr r5, =gUnknown_0203AB8C
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- ldr r2, =gUnknown_082A5C13
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =gUnknown_085B6410
- adds r0, r4, 0
- bl sub_8121F68
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140914
-
- thumb_func_start sub_8140968
-sub_8140968: @ 8140968
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_819746C
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8140BD0
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140968
-
- thumb_func_start sub_8140994
-sub_8140994: @ 8140994
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0xA5
- ldrb r0, [r0]
- bl DestroyTask
- adds r0, r4, 0
- bl sub_8141DE4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140994
-
- thumb_func_start sub_81409B8
-sub_81409B8: @ 81409B8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xF
- bls _081409CA
- b _08140AE8
-_081409CA:
- lsls r0, r4, 2
- ldr r1, =_081409D8
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_081409D8:
- .4byte _08140A18
- .4byte _08140A3C
- .4byte _08140A3C
- .4byte _08140A3C
- .4byte _08140A3C
- .4byte _08140A90
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140A90
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140AE8
- .4byte _08140A90
-_08140A18:
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- movs r1, 0xBE
- lsls r1, 1
- adds r0, r1
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8152008
- b _08140B4E
- .pool
-_08140A3C:
- lsls r0, r4, 1
- adds r0, r4
- adds r0, 0xE
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- movs r1, 0x10
- str r1, [sp]
- movs r6, 0xD
- str r6, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8152008
- ldr r0, [r5]
- adds r4, r0, r4
- ldr r1, =0x0000397c
- adds r0, r1
- ldr r1, [r0]
- ldr r0, =0x00000232
- adds r1, r0
- movs r0, 0x3
- str r0, [sp]
- str r6, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r8
- movs r3, 0x7
- bl sub_8152058
- b _08140B4E
- .pool
-_08140A90:
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xA
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- movs r6, 0x10
- str r6, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8152008
- ldr r0, [r5]
- adds r4, r0, r4
- ldr r1, =0x0000397c
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0xA0
- lsls r0, 2
- adds r1, r0
- str r6, [sp]
- movs r0, 0x3
- str r0, [sp, 0x4]
- adds r0, r4, 0
- movs r2, 0xE
- adds r3, r7, 0
- bl sub_8152058
- b _08140B4E
- .pool
-_08140AE8:
- adds r0, r4, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0xE
- lsls r1, 24
- lsrs r1, 24
- mov r8, r1
- subs r0, r4, 0x1
- movs r1, 0x5
- bl __divsi3
- lsls r1, r0, 1
- adds r1, r0
- adds r1, 0x7
- lsls r1, 24
- lsrs r7, r1, 24
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- movs r4, 0xBE
- lsls r4, 1
- adds r0, r4
- movs r1, 0x10
- str r1, [sp]
- movs r1, 0xD
- str r1, [sp, 0x4]
- movs r1, 0
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8152008
- ldr r0, [r5]
- adds r4, r0, r4
- ldr r1, =0x0000397c
- adds r0, r1
- ldr r1, [r0]
- movs r0, 0x88
- lsls r0, 2
- adds r1, r0
- movs r0, 0x3
- str r0, [sp]
- str r0, [sp, 0x4]
- adds r0, r4, 0
- mov r2, r8
- adds r3, r7, 0
- bl sub_8152058
-_08140B4E:
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81409B8
-
- thumb_func_start sub_8140B64
-sub_8140B64: @ 8140B64
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x10]
- bl sub_81436D0
- ldrb r0, [r4, 0x10]
- bl sub_81409B8
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140B64
-
- thumb_func_start sub_8140B8C
-sub_8140B8C: @ 8140B8C
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r5, =gUnknown_0203AB88
- ldr r2, [r5]
- movs r6, 0
- movs r1, 0x1
- strh r1, [r2, 0x28]
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrb r0, [r4, 0x10]
- bl sub_81409B8
- ldr r0, [r5]
- adds r0, 0x23
- movs r1, 0x2
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x21
- strb r6, [r0]
- ldr r0, =sub_8141040
- str r0, [r4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140B8C
-
- thumb_func_start sub_8140BD0
-sub_8140BD0: @ 8140BD0
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gUnknown_0203AB88
- ldr r0, [r1]
- ldr r2, [r0, 0x8]
- movs r0, 0x20
- ands r0, r2
- cmp r0, 0
- beq _08140C30
- movs r3, 0xB
- ldr r5, =gUnknown_085B6154
- adds r0, r5, 0
- adds r0, 0xE4
- ldr r0, [r0]
- ands r2, r0
- ldr r0, =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r2, 0
- beq _08140C6E
- adds r4, r1, 0
- adds r5, 0x8
-_08140BFE:
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r3, r0, 16
- asrs r2, r0, 16
- cmp r2, 0xD
- bgt _08140C6E
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08140BFE
- b _08140C6E
- .pool
-_08140C30:
- movs r3, 0x6
- ldr r5, =gUnknown_085B6154
- adds r0, r5, 0
- adds r0, 0x80
- ldr r0, [r0]
- ands r2, r0
- ldr r0, =gTasks
- mov r12, r0
- lsls r7, r6, 2
- cmp r2, 0
- beq _08140C6E
- adds r4, r1, 0
- adds r5, 0x8
-_08140C4A:
- lsls r0, r3, 16
- movs r1, 0x80
- lsls r1, 9
- adds r0, r1
- lsrs r3, r0, 16
- asrs r2, r0, 16
- cmp r2, 0x9
- bgt _08140C6E
- ldr r1, [r4]
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 2
- adds r0, r5
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08140C4A
-_08140C6E:
- adds r4, r7, r6
- lsls r4, 3
- add r4, r12
- movs r5, 0
- strh r3, [r4, 0x10]
- adds r0, r6, 0
- bl sub_8141FF4
- ldrb r0, [r4, 0x10]
- bl sub_81424FC
- ldrb r0, [r4, 0x10]
- bl sub_81436D0
- ldrb r0, [r4, 0x10]
- bl sub_8142284
- strh r5, [r4, 0xA]
- ldr r0, =sub_8140B8C
- str r0, [r4]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140BD0
-
- thumb_func_start sub_8140CA8
-sub_8140CA8: @ 8140CA8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r1, 24
- lsrs r5, r1, 24
- movs r6, 0
- movs r7, 0
- ldr r1, =gUnknown_085B641E
- mov r0, sp
- movs r2, 0x4
- bl memcpy
- ldrb r0, [r4]
- mov r8, r0
- cmp r5, 0
- blt _08140D1C
- cmp r5, 0x1
- bgt _08140CF4
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- movs r2, 0xF0
- lsls r2, 20
- adds r1, r0, r2
- lsrs r7, r1, 24
- cmp r0, 0
- bne _08140D1C
- movs r6, 0x5
- b _08140D1C
- .pool
-_08140CF4:
- cmp r5, 0x3
- bgt _08140D1C
- movs r1, 0
- ldrsh r0, [r4, r1]
- movs r1, 0x5
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 24
- lsrs r6, r1, 24
- movs r2, 0x80
- lsls r2, 19
- adds r0, r1, r2
- lsrs r7, r0, 24
- cmp r1, 0
- bne _08140D1C
- movs r6, 0x1
-_08140D1C:
- mov r1, sp
- adds r0, r1, r5
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r2, [r4]
- adds r0, r2
- strh r0, [r4]
- lsls r1, r6, 24
- asrs r3, r1, 24
- lsls r0, 16
- asrs r0, 16
- lsls r2, r7, 24
- cmp r0, r3
- bge _08140D3E
- asrs r0, r2, 24
- strh r0, [r4]
-_08140D3E:
- movs r0, 0
- ldrsh r1, [r4, r0]
- asrs r0, r2, 24
- cmp r1, r0
- ble _08140D4A
- strh r3, [r4]
-_08140D4A:
- mov r1, r8
- lsls r0, r1, 24
- movs r2, 0
- ldrsh r1, [r4, r2]
- asrs r0, 24
- cmp r1, r0
- bne _08140D5C
- movs r0, 0
- b _08140D5E
-_08140D5C:
- movs r0, 0x1
-_08140D5E:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_8140CA8
-
- thumb_func_start sub_8140D6C
-sub_8140D6C: @ 8140D6C
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- mov r9, r0
- movs r5, 0
- ldr r4, =gMain
- ldrh r1, [r4, 0x2E]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _08140DA8
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0
- bl sub_8140CA8
- lsls r0, 24
- cmp r0, 0
- bne _08140DA8
- b _08140F3A
-_08140DA8:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08140DCE
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x1
- bl sub_8140CA8
- lsls r0, 24
- cmp r0, 0
- bne _08140DCE
- b _08140F3A
-_08140DCE:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08140DF4
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x2
- bl sub_8140CA8
- lsls r0, 24
- cmp r0, 0
- bne _08140DF4
- b _08140F3A
-_08140DF4:
- ldrh r1, [r4, 0x2E]
- movs r0, 0x10
- ands r0, r1
- cmp r0, 0
- beq _08140E1A
- movs r5, 0x1
- lsls r0, r7, 2
- adds r0, r7
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r0, r1
- adds r0, 0x8
- movs r1, 0x3
- bl sub_8140CA8
- lsls r0, 24
- cmp r0, 0
- bne _08140E1A
- b _08140F3A
-_08140E1A:
- cmp r5, 0
- bne _08140E20
- b _08140F3A
-_08140E20:
- ldr r0, =gTasks
- lsls r6, r7, 2
- adds r4, r6, r7
- lsls r4, 3
- adds r4, r0
- ldrb r0, [r4, 0x10]
- bl sub_81424FC
- adds r0, r7, 0
- bl sub_8140B64
- mov r1, r9
- strh r1, [r4, 0xA]
- movs r0, 0x5
- bl PlaySE
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- adds r0, 0xB8
- ldr r1, =0x0000ffff
- bl sub_8151A9C
- ldr r5, [r5]
- movs r2, 0xB8
- lsls r2, 1
- adds r3, r5, r2
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- movs r0, 0xB2
- lsls r0, 1
- adds r3, r5, r0
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- movs r0, 0xAC
- lsls r0, 1
- adds r2, r5, r0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldrb r0, [r4, 0x10]
- bl sub_8142284
- movs r4, 0
- mov r9, r6
- ldr r1, =gSprites
- mov r12, r1
- movs r2, 0x8
- add r2, r12
- mov r10, r2
-_08140E8C:
- ldr r0, =gUnknown_0203AB88
- ldr r5, [r0]
- adds r0, r4, 0
- adds r0, 0x29
- adds r6, r5, 0
- adds r6, 0x3C
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r1, r12
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r10
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =0x000003ff
- mov r8, r2
- mov r0, r8
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08140E8C
- ldr r0, =gTasks
- mov r2, r9
- adds r1, r2, r7
- lsls r1, 3
- adds r1, r0
- ldrh r3, [r1, 0x10]
- subs r0, r3, 0x1
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x3
- bhi _08140F3A
- ldr r2, =gUnknown_085B6154
- movs r0, 0x10
- ldrsh r1, [r1, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r5, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08140F3A
- subs r0, r3, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- adds r0, 0x29
- adds r0, r6, r0
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r3, r0, r1
- adds r2, r3, 0
- adds r2, 0x40
- adds r1, 0x8
- adds r0, r1
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0, 0x4]
- ldrh r2, [r2]
- adds r1, r2
- mov r2, r8
- ands r1, r2
- ldrh r2, [r3, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
-_08140F3A:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140D6C
-
- thumb_func_start sub_8140F6C
-sub_8140F6C: @ 8140F6C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- bl sub_80EECA4
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- movs r0, 0xFF
- strh r0, [r1, 0x28]
- ldrb r2, [r1, 0x19]
- cmp r2, 0x1
- bne _08140F90
- adds r0, r1, 0
- adds r0, 0x23
- strb r2, [r0]
- b _08140F96
- .pool
-_08140F90:
- adds r1, 0x23
- movs r0, 0
- strb r0, [r1]
-_08140F96:
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x21
- movs r1, 0
- strb r1, [r0]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r1, 0x20
- strh r1, [r0, 0xA]
- ldr r1, =sub_81410FC
- str r1, [r0]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140F6C
-
- thumb_func_start sub_8140FC4
-sub_8140FC4: @ 8140FC4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gUnknown_0203AB88
- ldr r2, [r4]
- ldrb r1, [r2, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r2, 0x1B
- adds r2, r1
- ldr r3, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r5, r1, r3
- ldrh r0, [r5, 0x10]
- strb r0, [r2]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_8142758
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0xC]
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_81436D0
- ldr r0, [r4]
- ldrb r1, [r0, 0x19]
- ldrh r0, [r5, 0x22]
- subs r0, r1
- strh r0, [r5, 0x22]
- lsls r0, 16
- cmp r0, 0
- bge _08141024
- movs r0, 0
- strh r0, [r5, 0x22]
-_08141024:
- ldrh r0, [r5, 0x22]
- bl sub_8143514
- ldr r0, =sub_8140F6C
- str r0, [r5]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8140FC4
-
- thumb_func_start sub_8141040
-sub_8141040: @ 8141040
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- bl sub_8140D6C
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x1E
- beq _08141076
- cmp r0, 0x1E
- bgt _0814106C
- cmp r0, 0
- beq _08141072
- b _0814108A
- .pool
-_0814106C:
- cmp r0, 0x3B
- beq _08141084
- b _0814108A
-_08141072:
- ldrb r0, [r4, 0x10]
- b _08141078
-_08141076:
- movs r0, 0
-_08141078:
- bl sub_81409B8
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _0814109A
-_08141084:
- movs r0, 0
- strh r0, [r4, 0xA]
- b _0814109A
-_0814108A:
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0xA]
- adds r0, 0x1
- strh r0, [r1, 0xA]
-_0814109A:
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _081410F2
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- ldr r2, =gUnknown_085B6154
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x10
- ldrsh r1, [r4, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r2, 0x8
- adds r0, r2
- ldr r1, [r3, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _081410E8
- movs r0, 0x16
- bl PlaySE
- b _081410F2
- .pool
-_081410E8:
- movs r0, 0x5F
- bl m4aSongNumStart
- ldr r0, =sub_8140FC4
- str r0, [r4]
-_081410F2:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141040
-
- thumb_func_start sub_81410FC
-sub_81410FC: @ 81410FC
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r4, r1, r2
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _08141168
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08141128
- ldr r1, =gSpriteCoordOffsetX
- ldrh r0, [r1]
- adds r0, 0x2
- strh r0, [r1]
-_08141128:
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- ldrh r0, [r1, 0x26]
- adds r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08141180
- ldr r2, =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =SpriteCallbackDummy
- str r1, [r0]
- b _08141180
- .pool
-_08141168:
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8142E70
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8143038
- ldr r0, =sub_8141344
- str r0, [r4]
- movs r0, 0
- strh r0, [r4, 0xA]
-_08141180:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81410FC
-
- thumb_func_start sub_814118C
-sub_814118C: @ 814118C
- push {r4,r5,lr}
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r1, 16
- lsrs r1, 16
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- ldrb r2, [r3, 0x2]
- adds r5, r0, 0
- cmp r2, 0x2
- bgt _081411AC
- cmp r2, 0x1
- bge _081411B2
- b _08141280
- .pool
-_081411AC:
- cmp r2, 0x3
- beq _08141214
- b _08141280
-_081411B2:
- ldr r0, =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _081411E4
- cmp r4, 0xB
- bls _081411CC
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08141296
-_081411CC:
- ldr r0, =gUnknown_085B6348
- ldrb r1, [r3, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_081411E4:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _08141200
- ldr r0, =gUnknown_085B6348
- ldrb r1, [r3, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_08141200:
- ldr r0, =gUnknown_085B6348
- ldrb r1, [r3, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- b _0814133A
- .pool
-_08141214:
- ldr r0, =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x6
- bhi _08141248
- cmp r4, 0x5
- bls _0814122E
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08141296
-_0814122E:
- ldr r0, =gUnknown_085B6348
- ldrb r1, [r3, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_08141248:
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08141268
- cmp r4, 0x6
- bls _08141268
- ldr r0, =gUnknown_085B6348
- ldrb r1, [r3, 0x4]
- lsls r1, 30
- lsrs r1, 25
- adds r1, r0
- ldrb r0, [r1, 0x2]
- lsrs r0, 2
- b _0814133A
- .pool
-_08141268:
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_08141280:
- ldr r0, =gLocalTime
- ldrb r0, [r0, 0x2]
- subs r0, 0x4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x5
- bhi _081412B8
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081412A0
-_08141296:
- movs r0, 0x1
- b _0814133A
- .pool
-_081412A0:
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_081412B8:
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- bne _081412F0
- cmp r4, 0xC
- bls _081412DC
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x2]
- lsrs r0, 1
- b _0814133A
- .pool
-_081412DC:
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x2]
- b _0814133A
- .pool
-_081412F0:
- movs r0, 0x80
- lsls r0, 8
- ands r0, r1
- cmp r0, 0
- beq _08141328
- cmp r4, 0xC
- bls _08141314
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x2]
- b _0814133A
- .pool
-_08141314:
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x1]
- b _0814133A
- .pool
-_08141328:
- ldr r1, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r0, [r0, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrb r0, [r0, 0x1]
- lsls r0, 25
- lsrs r0, 24
-_0814133A:
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_814118C
-
- thumb_func_start sub_8141344
-sub_8141344: @ 8141344
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- lsls r0, 24
- lsrs r0, 24
- mov r10, r0
- movs r4, 0
- ldr r1, =gUnknown_085B6422
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- bl Random
- lsls r0, 16
- lsrs r7, r0, 16
- adds r0, r7, 0
- movs r1, 0x64
- bl __umodsi3
- lsls r0, 16
- lsrs r6, r0, 16
- ldr r3, =gUnknown_0203AB88
- ldr r0, [r3]
- ldr r2, =gTasks
- mov r5, r10
- lsls r1, r5, 2
- add r1, r10
- lsls r1, 3
- adds r1, r2
- ldrh r2, [r1, 0x14]
- adds r0, 0x7C
- strb r2, [r0]
- ldr r0, [r3]
- adds r2, r0, 0
- adds r2, 0x7F
- strb r4, [r2]
- subs r2, 0x1
- strb r4, [r2]
- adds r0, 0x7D
- strb r4, [r0]
- ldrh r0, [r1, 0x18]
- adds r1, r7, 0
- bl sub_814118C
- adds r4, r0, 0
- lsls r4, 24
- lsrs r1, r4, 24
- adds r0, r7, 0
- bl __modsi3
- lsrs r4, 25
- subs r0, r4
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gLocalTime
- ldrb r0, [r0, 0x2]
- lsls r0, 24
- asrs r0, 24
- movs r5, 0x1
- cmp r0, 0xC
- bgt _081413C8
- movs r5, 0
-_081413C8:
- cmp r6, 0x4F
- bhi _081413E0
- lsls r0, r5, 25
- b _081413EA
- .pool
-_081413E0:
- lsls r1, r5, 24
- asrs r1, 24
- movs r0, 0x1
- subs r0, r1
- lsls r0, 25
-_081413EA:
- lsrs r5, r0, 24
- ldr r0, _08141530 @ =gUnknown_0203AB88
- ldr r6, [r0]
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- ldr r1, _08141534 @ =gUnknown_085B6348
- adds r0, r1
- lsls r4, 24
- asrs r4, 24
- ldrh r0, [r0, 0x1A]
- adds r4, r0
- adds r0, r6, 0
- adds r0, 0x80
- strh r4, [r0]
- lsls r4, 16
- asrs r4, 16
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _0814141C
- ldr r1, _08141538 @ =0x47800000
- bl __addsf3
-_0814141C:
- ldr r1, _0814153C @ =0x40A00000
- bl __divsf3
- bl __fixunssfsi
- lsls r0, 16
- lsrs r4, r0, 16
- lsls r0, r4, 1
- adds r0, r4
- movs r2, 0x82
- adds r2, r6
- mov r8, r2
- strh r0, [r2]
- adds r0, r6, 0
- adds r0, 0x84
- strh r4, [r0]
- adds r0, 0x2
- strh r4, [r0]
- movs r0, 0x88
- adds r0, r6
- mov r9, r0
- movs r0, 0x1
- ands r0, r7
- lsls r1, r5, 24
- asrs r1, 24
- adds r0, r1
- lsls r0, 1
- add r0, sp
- movs r1, 0
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- cmp r4, 0
- bge _08141468
- ldr r1, _08141538 @ =0x47800000
- bl __addsf3
-_08141468:
- mov r2, r9
- str r0, [r2]
- adds r7, r6, 0
- adds r7, 0x8C
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- ldr r5, _08141534 @ =gUnknown_085B6348
- adds r0, r5
- movs r1, 0x18
- ldrsh r4, [r0, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08141492
- ldr r1, _08141538 @ =0x47800000
- bl __addsf3
- adds r5, r0, 0
-_08141492:
- str r5, [r7]
- adds r7, r6, 0
- adds r7, 0x90
- ldr r1, _08141540 @ =0x3F000000
- adds r0, r5, 0
- bl __mulsf3
- adds r1, r5, 0
- bl __subsf3
- adds r5, r0, 0
- mov r2, r8
- movs r0, 0
- ldrsh r4, [r2, r0]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081414C2
- ldr r1, _08141538 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081414C2:
- adds r0, r5, 0
- adds r1, r2, 0
- bl __divsf3
- str r0, [r7]
- adds r1, r6, 0
- adds r1, 0x94
- ldr r0, _08141544 @ =0x42880000
- str r0, [r1]
- adds r1, 0x8
- ldr r0, _08141548 @ =0x00000000
- str r0, [r1]
- adds r5, r6, 0
- adds r5, 0x98
- mov r1, r8
- movs r2, 0
- ldrsh r4, [r1, r2]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _081414F8
- ldr r1, _08141538 @ =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_081414F8:
- ldr r0, _0814154C @ =0x41000000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- str r0, [r5]
- adds r1, r6, 0
- adds r1, 0xA0
- ldr r0, _08141550 @ =0x42100000
- str r0, [r1]
- ldr r1, _08141554 @ =gTasks
- mov r5, r10
- lsls r0, r5, 2
- add r0, r10
- lsls r0, 3
- adds r0, r1
- ldr r1, _08141558 @ =sub_814155C
- str r1, [r0]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141530:
- .4byte gUnknown_0203AB88
-_08141534:
- .4byte gUnknown_085B6348
-_08141538:
- .4byte 0x47800000
-_0814153C:
- .4byte 0x40A00000
-_08141540:
- .4byte 0x3F000000
-_08141544:
- .4byte 0x42880000
-_08141548:
- .4byte 0x00000000
-_0814154C:
- .4byte 0x41000000
-_08141550:
- .4byte 0x42100000
-_08141554:
- .4byte gTasks
-_08141558:
- .4byte sub_814155C
- thumb_func_end sub_8141344
-
- thumb_func_start sub_814155C
-sub_814155C: @ 814155C
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r4, =gUnknown_0203AB88
- ldr r3, [r4]
- ldrb r1, [r3, 0x3]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r3, 0x3]
- ldr r3, [r4]
- adds r2, r3, 0
- adds r2, 0x7C
- adds r1, r3, 0
- adds r1, 0x3C
- ldrb r2, [r2]
- adds r1, r2
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, =gSprites
- adds r1, r2
- str r1, [r3, 0x38]
- ldr r2, =sub_81446AC
- str r2, [r1, 0x1C]
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- ldrh r1, [r4, 0x14]
- adds r1, 0x1
- strh r1, [r4, 0x14]
- ldrh r0, [r4, 0x18]
- adds r0, 0x1
- strh r0, [r4, 0x18]
- movs r0, 0x6
- subs r0, r1
- lsls r0, 24
- lsrs r0, 24
- bl sub_814372C
- movs r0, 0x5C
- bl m4aSongNumStart
- ldr r0, =sub_81415D4
- str r0, [r4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814155C
-
- thumb_func_start sub_81415D4
-sub_81415D4: @ 81415D4
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r6, =gUnknown_0203AB88
- ldr r3, [r6]
- adds r0, r3, 0
- adds r0, 0x7D
- ldrb r0, [r0]
- cmp r0, 0
- beq _081416C6
- ldrb r1, [r3, 0x3]
- movs r0, 0x20
- ands r0, r1
- cmp r0, 0
- beq _08141614
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- beq _081416C6
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r3, 0x3]
- ldr r2, [r6]
- ldrb r1, [r2, 0x3]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- b _081416C6
- .pool
-_08141614:
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r0, r1, r4
- lsls r0, 3
- adds r5, r0, r2
- movs r2, 0xA
- ldrsh r0, [r5, r2]
- adds r7, r1, 0
- cmp r0, 0
- bne _08141660
- adds r0, r3, 0
- adds r0, 0x7E
- ldrb r1, [r0]
- adds r0, r4, 0
- bl sub_81420D0
- lsls r0, 24
- lsrs r0, 24
- ldr r2, [r6]
- ldrb r1, [r2, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r2, 0x1B
- adds r2, r1
- ldrb r1, [r2]
- bl sub_81421E8
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r5, 0x12]
- cmp r0, 0x1
- bne _08141660
- ldr r0, [r6]
- adds r0, 0xB8
- movs r1, 0x80
- lsls r1, 5
- bl sub_8151A48
-_08141660:
- ldr r0, =gTasks
- adds r1, r7, r4
- lsls r1, 3
- adds r4, r1, r0
- movs r1, 0xA
- ldrsh r0, [r4, r1]
- cmp r0, 0x3C
- bgt _08141690
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x1
- ands r0, r1
- cmp r0, 0
- beq _08141680
- movs r0, 0x3C
- strh r0, [r4, 0xA]
-_08141680:
- ldrh r0, [r4, 0xA]
- adds r0, 0x1
- strh r0, [r4, 0xA]
- b _081416C6
- .pool
-_08141690:
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r1, r0
- ldrb r0, [r1]
- bl sub_81424FC
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8142E70
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8143038
- movs r0, 0x20
- strh r0, [r4, 0xA]
- ldr r0, =sub_81416D4
- str r0, [r4]
-_081416C6:
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81415D4
-
- thumb_func_start sub_81416D4
-sub_81416D4: @ 81416D4
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- cmp r0, 0
- ble _08141740
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2
- ble _08141700
- ldr r1, =gSpriteCoordOffsetX
- ldrh r0, [r1]
- subs r0, 0x2
- strh r0, [r1]
-_08141700:
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- ldrh r0, [r1, 0x26]
- subs r0, 0x4
- strh r0, [r1, 0x26]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x68
- bne _08141768
- ldr r2, =gSprites
- adds r0, r1, 0
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_814390C
- str r1, [r0]
- b _08141768
- .pool
-_08141740:
- ldrh r0, [r4, 0x20]
- lsls r0, 24
- lsrs r0, 24
- bl sub_8143150
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- bne _08141756
- movs r0, 0x79
- b _08141758
-_08141756:
- movs r0, 0x3D
-_08141758:
- strh r0, [r4, 0xA]
- ldr r0, =gTasks
- lsls r1, r5, 2
- adds r1, r5
- lsls r1, 3
- adds r1, r0
- ldr r0, =sub_8141778
- str r0, [r1]
-_08141768:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81416D4
-
- thumb_func_start sub_8141778
-sub_8141778: @ 8141778
- push {r4,lr}
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r4, r0, r1
- ldrh r0, [r4, 0xA]
- subs r1, r0, 0x1
- strh r1, [r4, 0xA]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1
- ble _081417E8
- movs r0, 0xA
- ldrsh r1, [r4, r0]
- adds r0, r1, 0
- cmp r1, 0
- bge _081417A2
- adds r0, 0xF
-_081417A2:
- asrs r0, 4
- lsls r0, 4
- subs r0, r1, r0
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0
- beq _081417CC
- cmp r0, 0x8
- bne _081417F4
- movs r0, 0
- movs r1, 0xFF
- bl sub_8142E70
- movs r0, 0
- movs r1, 0xFF
- bl sub_8143038
- b _081417F4
- .pool
-_081417CC:
- ldrh r1, [r4, 0x20]
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8142E70
- ldrb r1, [r4, 0x14]
- subs r1, 0x1
- lsls r1, 24
- lsrs r1, 24
- movs r0, 0
- bl sub_8143038
- b _081417F4
-_081417E8:
- ldr r1, =sub_814189C
- adds r0, r2, 0
- movs r2, 0x1E
- movs r3, 0
- bl sub_8141F7C
-_081417F4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141778
-
- thumb_func_start sub_8141800
-sub_8141800: @ 8141800
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r4, r0, r1
- movs r1, 0x12
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _08141864
- cmp r0, 0
- blt _08141864
- cmp r0, 0x2
- bgt _08141864
- bl IsFanfareTaskInactive
- lsls r0, 24
- cmp r0, 0
- beq _08141888
- movs r0, 0x1D
- bl GetGameStat
- ldrh r1, [r4, 0x1E]
- adds r1, 0x1
- strh r1, [r4, 0x1E]
- lsls r1, 16
- asrs r1, 16
- cmp r0, r1
- bcs _08141848
- movs r0, 0x1E
- ldrsh r1, [r4, r0]
- movs r0, 0x1D
- bl SetGameStat
-_08141848:
- ldr r1, =sub_8141A18
- ldr r2, =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8141F7C
- b _08141888
- .pool
-_08141864:
- bl IsSEPlaying
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0
- bne _08141888
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r2, [r0, 0x1E]
- ldr r1, =sub_8141AC0
- ldr r2, =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8141F7C
-_08141888:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141800
-
- thumb_func_start sub_814189C
-sub_814189C: @ 814189C
- push {r4,r5,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r2, 0x12
- ldrsh r1, [r0, r2]
- cmp r1, 0
- beq _08141928
- cmp r1, 0
- blt _08141928
- cmp r1, 0x2
- bgt _08141928
- movs r1, 0xC
- ldrsh r0, [r0, r1]
- cmp r0, 0xC
- bne _081418EC
- ldr r0, =0x00000185
- bl PlayFanfare
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5BD7
- b _08141902
- .pool
-_081418EC:
- movs r0, 0xC3
- lsls r0, 1
- bl PlayFanfare
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5BCB
-_08141902:
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- b _08141958
- .pool
-_08141928:
- movs r0, 0x20
- bl m4aSongNumStart
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5BE0
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
-_08141958:
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- movs r1, 0
- strh r1, [r0, 0xA]
- ldr r1, =sub_8141800
- str r1, [r0]
- add sp, 0xC
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814189C
-
- thumb_func_start sub_8141984
-sub_8141984: @ 8141984
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r4, r0, r1
- movs r0, 0x16
- ldrsh r5, [r4, r0]
- cmp r5, 0
- beq _081419AC
- cmp r5, 0x3
- beq _081419DC
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _081419E4
- .pool
-_081419AC:
- ldrh r0, [r4, 0x22]
- adds r0, 0x1
- strh r0, [r4, 0x22]
- movs r0, 0x15
- bl m4aSongNumStart
- ldrh r0, [r4, 0x22]
- bl sub_8143514
- movs r2, 0x22
- ldrsh r1, [r4, r2]
- ldr r0, =0x0000270e
- cmp r1, r0
- ble _081419D0
- strh r5, [r4, 0xA]
- b _081419E6
- .pool
-_081419D0:
- ldrh r0, [r4, 0xA]
- subs r0, 0x1
- strh r0, [r4, 0xA]
- ldrh r0, [r4, 0x16]
- adds r0, 0x1
- b _081419E4
-_081419DC:
- movs r0, 0x15
- bl m4aSongNumStop
- movs r0, 0
-_081419E4:
- strh r0, [r4, 0x16]
-_081419E6:
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r1, r0
- movs r2, 0xA
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08141A04
- ldr r1, =sub_8141AC0
- ldr r2, =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8141F7C
-_08141A04:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141984
-
- thumb_func_start sub_8141A18
-sub_8141A18: @ 8141A18
- push {r4-r6,lr}
- mov r6, r9
- mov r5, r8
- push {r5,r6}
- sub sp, 0xC
- lsls r0, 24
- lsrs r0, 24
- ldr r3, =gStringVar1
- ldr r1, =gUnknown_0203AB88
- mov r9, r1
- ldr r1, [r1]
- ldrb r2, [r1, 0x19]
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r1, 0xC
- ldrsh r0, [r4, r1]
- adds r1, r2, 0
- muls r1, r0
- adds r0, r3, 0
- movs r2, 0
- movs r3, 0x2
- bl ConvertIntToDecimalStringN
- ldr r2, =gStringVar4
- mov r8, r2
- ldr r1, =gUnknown_082A5BEF
- mov r0, r8
- bl StringExpandPlaceholders
- ldr r5, =gUnknown_0203AB8C
- ldrb r0, [r5]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r5]
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- movs r1, 0x1
- mov r2, r8
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r5]
- movs r1, 0x3
- bl CopyWindowToVram
- mov r1, r9
- ldr r0, [r1]
- ldrb r1, [r0, 0x19]
- movs r2, 0xC
- ldrsh r0, [r4, r2]
- muls r0, r1
- strh r0, [r4, 0xA]
- strh r6, [r4, 0x16]
- ldr r0, =sub_8141984
- str r0, [r4]
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141A18
-
- thumb_func_start sub_8141AC0
-sub_8141AC0: @ 8141AC0
- push {r4-r6,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r5, =gUnknown_0203AB88
- ldr r0, [r5]
- adds r0, 0xB8
- ldr r1, =0x0000ffff
- bl sub_8151A9C
- ldr r6, [r5]
- movs r0, 0xB8
- lsls r0, 1
- adds r3, r6, r0
- ldrb r2, [r3]
- movs r1, 0x7F
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- movs r0, 0xB2
- lsls r0, 1
- adds r3, r6, r0
- ldrb r2, [r3]
- adds r0, r1, 0
- ands r0, r2
- strb r0, [r3]
- movs r0, 0xAC
- lsls r0, 1
- adds r2, r6, r0
- ldrb r0, [r2]
- ands r1, r0
- strb r1, [r2]
- ldr r6, =gSprites
- ldr r2, [r5]
- ldr r5, =gUnknown_085B6154
- ldr r0, =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r0
- movs r0, 0x20
- ldrsh r1, [r3, r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0]
- adds r2, r0
- adds r2, 0x43
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, =sub_8141B58
- str r0, [r3]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141AC0
-
- thumb_func_start sub_8141B58
-sub_8141B58: @ 8141B58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- movs r2, 0
- strh r5, [r0, 0x10]
- ldr r4, =gUnknown_0203AB88
- ldr r1, [r4]
- ldrb r0, [r1, 0x1A]
- lsls r0, 28
- lsrs r0, 28
- adds r1, 0x1B
- adds r1, r0
- strb r2, [r1]
- movs r0, 0
- bl sub_81424FC
- ldr r3, =gSprites
- ldr r0, [r4]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- adds r7, r3, 0
- movs r0, 0x8
- adds r0, r7
- mov r12, r0
- ldr r1, =0xfffffc00
- mov r8, r1
-_08141BB0:
- ldr r0, =gUnknown_0203AB88
- ldr r4, [r0]
- adds r0, r4, r5
- adds r0, 0x65
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r7
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r12
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08141BB0
- ldr r0, =gTasks
- lsls r1, r6, 2
- adds r1, r6
- lsls r1, 3
- adds r2, r1, r0
- movs r1, 0x22
- ldrsh r0, [r2, r1]
- ldrb r4, [r4, 0x19]
- cmp r0, r4
- blt _08141CBC
- movs r1, 0x14
- ldrsh r0, [r2, r1]
- cmp r0, 0x6
- bne _08141C58
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5C21
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =dp01t_12_3_battle_menu
- b _08141C8E
- .pool
-_08141C58:
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, =0x0000270f
- cmp r1, r0
- bne _08141CB0
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5C61
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =sub_8140914
-_08141C8E:
- ldr r2, =0x0000ffff
- adds r0, r6, 0
- movs r3, 0x3
- bl sub_8141F7C
- b _08141CF2
- .pool
-_08141CB0:
- ldr r0, =sub_8140914
- str r0, [r2]
- b _08141CF2
- .pool
-_08141CBC:
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5C04
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =sub_8140994
- adds r0, r6, 0
- movs r2, 0x3C
- movs r3, 0x3
- bl sub_8141F7C
-_08141CF2:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141B58
-
- thumb_func_start dp01t_12_3_battle_menu
-dp01t_12_3_battle_menu: @ 8141D0C
- push {r4-r7,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- strh r4, [r0, 0x14]
- adds r0, r5, 0
- bl sub_8141FF4
- bl sub_8142070
- bl sub_8143A40
- movs r0, 0
- bl sub_81424FC
- movs r0, 0x6
- bl sub_814372C
- ldr r7, =gSprites
- ldr r3, =gUnknown_0203AB88
- movs r6, 0x5
- negs r6, r6
-_08141D44:
- ldr r0, [r3]
- adds r0, r4
- adds r0, 0x43
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08141D44
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r2, r0, r1
- movs r0, 0x22
- ldrsh r1, [r2, r0]
- ldr r0, =0x0000270f
- cmp r1, r0
- bne _08141DD4
- ldr r4, =gUnknown_0203AB8C
- ldrb r0, [r4]
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldrb r0, [r4]
- ldr r2, =gUnknown_082A5C61
- movs r1, 0x1
- str r1, [sp]
- movs r1, 0xFF
- str r1, [sp, 0x4]
- movs r1, 0
- str r1, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- ldrb r0, [r4]
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =sub_8140914
- ldr r2, =0x0000ffff
- adds r0, r5, 0
- movs r3, 0x3
- bl sub_8141F7C
- b _08141DD8
- .pool
-_08141DD4:
- ldr r0, =sub_8140914
- str r0, [r2]
-_08141DD8:
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end dp01t_12_3_battle_menu
-
- thumb_func_start sub_8141DE4
-sub_8141DE4: @ 8141DE4
- push {r4,r5,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- adds r0, 0xB8
- ldr r1, =0x0000ffff
- bl sub_8151A9C
- ldr r0, [r4]
- adds r0, 0xB8
- bl sub_8151678
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldrh r0, [r0, 0x22]
- bl SetCoins
- bl GetCoins
- ldr r1, [r4]
- lsls r0, 16
- lsrs r0, 16
- ldrb r1, [r1, 0x19]
- cmp r0, r1
- bcs _08141E38
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- b _08141E3C
- .pool
-_08141E38:
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0
-_08141E3C:
- strh r0, [r1]
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- bl sub_80EDD78
- movs r0, 0
- str r0, [sp]
- movs r0, 0xFF
- movs r1, 0
- movs r2, 0
- movs r3, 0x10
- bl BeginHardwarePaletteFade
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_8141E7C
- str r1, [r0]
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141DE4
-
- thumb_func_start sub_8141E7C
-sub_8141E7C: @ 8141E7C
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- bl UpdatePaletteFade
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0
- bne _08141EDE
- movs r0, 0
- bl SetVBlankCallback
- ldr r1, =gSpriteCoordOffsetX
- ldr r0, =gSpriteCoordOffsetY
- strh r4, [r0]
- strh r4, [r1]
- bl ResetVramOamAndBgCntRegs
- bl ResetAllBgsCoordinates
- movs r0, 0x50
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x52
- movs r1, 0
- bl SetGpuReg
- movs r0, 0x54
- movs r1, 0
- bl SetGpuReg
- bl FreeAllSpritePalettes
- bl ResetPaletteFade
- bl ResetSpriteData
- bl sub_8140418
- ldr r1, =gFieldCallback
- ldr r0, =sub_80AF168
- str r0, [r1]
- ldr r0, =CB2_ReturnToField
- bl SetMainCallback2
- adds r0, r5, 0
- bl DestroyTask
-_08141EDE:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141E7C
-
- thumb_func_start sub_8141EF8
-sub_8141EF8: @ 8141EF8
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_0203AB88
- ldr r3, [r1]
- adds r0, r3, 0
- adds r0, 0xA8
- ldrh r0, [r0]
- adds r5, r1, 0
- cmp r0, 0
- beq _08141F1E
- ldr r0, =gMain
- adds r2, r3, 0
- adds r2, 0xAA
- ldrh r1, [r0, 0x2E]
- ldrh r0, [r2]
- ands r0, r1
- cmp r0, 0
- beq _08141F52
-_08141F1E:
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- adds r1, r3, 0
- adds r1, 0xAC
- ldr r1, [r1]
- str r1, [r0]
- adds r0, r3, 0
- adds r0, 0xAA
- ldrh r0, [r0]
- cmp r0, 0
- beq _08141F40
- movs r0, 0x5
- bl PlaySE
-_08141F40:
- ldr r2, [r5]
- adds r0, r2, 0
- adds r0, 0xAC
- movs r1, 0
- str r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
- subs r0, 0x2
- strh r1, [r0]
-_08141F52:
- ldr r0, [r5]
- adds r1, r0, 0
- adds r1, 0xA8
- ldrh r2, [r1]
- ldr r0, =0x0000ffff
- cmp r2, r0
- beq _08141F64
- subs r0, r2, 0x1
- strh r0, [r1]
-_08141F64:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141EF8
-
- thumb_func_start sub_8141F7C
-sub_8141F7C: @ 8141F7C
- push {r4-r7,lr}
- adds r5, r1, 0
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r2, 16
- lsrs r4, r2, 16
- lsls r3, 16
- lsrs r7, r3, 16
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- mov r12, r0
- mov r3, r12
- adds r3, 0xB4
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r0, [r0]
- str r0, [r3]
- adds r3, r1, 0
- cmp r5, 0
- bne _08141FAC
- adds r5, r0, 0
-_08141FAC:
- mov r0, r12
- adds r0, 0xAC
- str r5, [r0]
- subs r0, 0x4
- strh r4, [r0]
- ldr r0, =0x0000ffff
- cmp r4, r0
- bne _08141FD8
- cmp r7, 0
- bne _08141FD8
- mov r1, r12
- adds r1, 0xAA
- ldrh r0, [r1]
- orrs r4, r0
- strh r4, [r1]
- b _08141FDE
- .pool
-_08141FD8:
- ldr r0, [r2]
- adds r0, 0xAA
- strh r7, [r0]
-_08141FDE:
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r3
- ldr r1, =sub_8141EF8
- str r1, [r0]
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141F7C
-
- thumb_func_start sub_8141FF4
-sub_8141FF4: @ 8141FF4
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- movs r4, 0
- ldr r3, =gUnknown_0203AB88
- ldr r0, [r3]
- strb r4, [r0]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x21
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r6, =gTasks
- adds r2, r3, 0
- movs r1, 0
-_08142036:
- ldr r0, [r2]
- adds r0, 0x1B
- adds r0, r4
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _08142036
- ldr r2, [r3]
- ldrb r1, [r2, 0x1A]
- movs r0, 0x10
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x1A]
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r6
- movs r1, 0
- strh r1, [r0, 0xA]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8141FF4
-
- thumb_func_start sub_8142070
-sub_8142070: @ 8142070
- push {lr}
- ldr r2, =gUnknown_0203AB88
- ldr r1, [r2]
- movs r0, 0
- str r0, [r1, 0x8]
- movs r1, 0
- movs r3, 0
-_0814207E:
- ldr r0, [r2]
- adds r0, 0xC
- adds r0, r1
- strb r3, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x5
- bls _0814207E
- movs r1, 0
- ldr r3, =gUnknown_0203AB88
- movs r2, 0
-_08142096:
- ldr r0, [r3]
- adds r0, 0x12
- adds r0, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x3
- bls _08142096
- movs r1, 0
- ldr r3, =gUnknown_0203AB88
- movs r2, 0
-_081420AE:
- ldr r0, [r3]
- adds r0, 0x16
- adds r0, r1
- strb r2, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x2
- bls _081420AE
- movs r0, 0x1
- movs r1, 0xFF
- bl sub_8143038
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142070
-
- thumb_func_start sub_81420D0
-sub_81420D0: @ 81420D0
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x1C
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- mov r1, sp
- ldr r0, =gUnknown_085B642C
- ldm r0!, {r2,r3,r6}
- stm r1!, {r2,r3,r6}
- ldr r0, [r0]
- str r0, [r1]
- add r2, sp, 0x10
- adds r1, r2, 0
- ldr r0, =gUnknown_085B643C
- ldm r0!, {r3,r6,r7}
- stm r1!, {r3,r6,r7}
- mov r8, r2
- cmp r5, 0xB
- bls _0814210C
- movs r0, 0
- b _081421C8
- .pool
-_0814210C:
- ldr r6, =gUnknown_0203AB88
- ldr r3, [r6]
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- movs r7, 0x14
- ldrsh r1, [r0, r7]
- adds r3, r1
- ldr r4, =gUnknown_085B62E4
- lsls r5, 3
- adds r2, r5, r4
- ldrb r1, [r2, 0x2]
- strb r1, [r3, 0xB]
- ldrb r1, [r2, 0x2]
- strh r1, [r0, 0x20]
- ldr r2, [r6]
- adds r0, r4, 0x4
- adds r0, r5, r0
- ldr r1, [r2, 0x8]
- ldr r0, [r0]
- orrs r1, r0
- str r1, [r2, 0x8]
- movs r3, 0
- mov r9, r4
- mov r12, r5
- adds r5, r0, 0
-_08142144:
- lsls r0, r3, 2
- mov r1, sp
- adds r4, r1, r0
- ldr r0, [r4]
- ands r0, r5
- cmp r0, 0
- beq _0814215E
- ldr r1, [r6]
- adds r1, 0x12
- adds r1, r3
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_0814215E:
- ldr r2, [r6]
- adds r0, r2, 0
- adds r0, 0x12
- adds r0, r3
- ldrb r0, [r0]
- cmp r0, 0x2
- bls _08142174
- ldr r0, [r2, 0x8]
- ldr r1, [r4]
- orrs r0, r1
- str r0, [r2, 0x8]
-_08142174:
- adds r0, r3, 0x1
- lsls r0, 24
- lsrs r3, r0, 24
- cmp r3, 0x3
- bls _08142144
- movs r6, 0
- ldr r0, =gUnknown_085B62E4+0x4
- add r0, r12
- ldr r7, [r0]
- ldr r4, =gUnknown_0203AB88
- mov r5, r8
-_0814218A:
- lsls r0, r6, 2
- adds r2, r5, r0
- ldr r0, [r2]
- ands r0, r7
- cmp r0, 0
- beq _081421A2
- ldr r1, [r4]
- adds r1, 0x16
- adds r1, r6
- ldrb r0, [r1]
- adds r0, 0x1
- strb r0, [r1]
-_081421A2:
- ldr r3, [r4]
- adds r0, r3, 0
- adds r0, 0x16
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0x3
- bls _081421B8
- ldr r0, [r3, 0x8]
- ldr r1, [r2]
- orrs r0, r1
- str r0, [r3, 0x8]
-_081421B8:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _0814218A
- mov r0, r12
- add r0, r9
- ldrb r0, [r0, 0x2]
-_081421C8:
- add sp, 0x1C
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_81420D0
-
- thumb_func_start sub_81421E8
-sub_81421E8: @ 81421E8
- push {lr}
- lsls r0, 24
- lsls r1, 24
- lsrs r2, r1, 24
- lsrs r3, r0, 24
- movs r1, 0xFF
- lsls r1, 24
- adds r0, r1
- lsrs r0, 24
- cmp r0, 0x12
- bhi _0814227C
- cmp r2, 0xF
- bhi _08142278
- lsls r0, r2, 2
- ldr r1, =_08142210
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08142210:
- .4byte _08142250
- .4byte _08142254
- .4byte _08142254
- .4byte _08142254
- .4byte _08142254
- .4byte _08142268
- .4byte _08142278
- .4byte _08142278
- .4byte _08142278
- .4byte _08142278
- .4byte _08142268
- .4byte _08142278
- .4byte _08142278
- .4byte _08142278
- .4byte _08142278
- .4byte _08142268
-_08142250:
- movs r0, 0x3
- b _0814227E
-_08142254:
- adds r0, r2, 0x5
- cmp r3, r0
- beq _08142274
- adds r0, 0x5
- cmp r3, r0
- beq _08142274
- adds r0, 0x5
- cmp r3, r0
- bne _0814227C
- b _08142274
-_08142268:
- adds r0, r2, 0x1
- cmp r3, r0
- blt _0814227C
- adds r0, r2, 0x4
- cmp r3, r0
- bgt _0814227C
-_08142274:
- movs r0, 0x1
- b _0814227E
-_08142278:
- cmp r3, r2
- beq _08142274
-_0814227C:
- movs r0, 0
-_0814227E:
- pop {r1}
- bx r1
- thumb_func_end sub_81421E8
-
- thumb_func_start sub_8142284
-sub_8142284: @ 8142284
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0
- str r0, [sp, 0x18]
- cmp r7, 0xA
- beq _081422AA
- cmp r7, 0xA
- bgt _081422A6
- cmp r7, 0x5
- beq _081422AA
- b _0814230C
-_081422A6:
- cmp r7, 0xF
- bne _0814230C
-_081422AA:
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- adds r2, r7, 0x5
- ldr r1, =gUnknown_0203AB88
- mov r12, r1
- cmp r4, r2
- bge _081422E8
- ldr r0, [r1]
- ldr r3, =gUnknown_085B6154
- ldr r5, [r0, 0x8]
- adds r6, r3, 0
- adds r6, 0x8
-_081422C4:
- lsls r0, r4, 2
- adds r0, r4
- lsls r1, r0, 2
- adds r0, r1, r6
- ldr r0, [r0]
- ands r0, r5
- cmp r0, 0
- bne _081422DE
- adds r0, r1, r3
- ldrh r0, [r0, 0x10]
- ldr r1, [sp, 0x18]
- orrs r1, r0
- str r1, [sp, 0x18]
-_081422DE:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, r2
- blt _081422C4
-_081422E8:
- mov r2, r12
- ldr r0, [r2]
- adds r0, 0xB8
- ldr r1, =0x0000dfff
- ldr r3, [sp, 0x18]
- ands r3, r1
- str r3, [sp, 0x18]
- adds r1, r3, 0
- bl sub_8151A48
- b _081424E2
- .pool
-_0814230C:
- mov r0, sp
- ldr r1, =gUnknown_085B63F0
- ldm r1!, {r2,r4,r5}
- stm r0!, {r2,r4,r5}
- ldm r1!, {r3-r5}
- stm r0!, {r3-r5}
- subs r0, r7, 0x1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x1
- mov r9, r1
- cmp r0, 0x3
- bhi _0814232A
- movs r2, 0x3
- mov r9, r2
-_0814232A:
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 8
- ldr r3, =0xffff0000
- adds r0, r3
- lsrs r0, 16
- mov r8, r0
- adds r0, r7, 0
- movs r1, 0x5
- bl __umodsi3
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x2
- beq _08142390
- cmp r0, 0x2
- bgt _08142368
- cmp r0, 0x1
- beq _0814237C
- ldr r4, =gUnknown_0203AB88
- mov r12, r4
- b _081423D4
- .pool
-_08142368:
- cmp r0, 0x3
- beq _081423A4
- cmp r0, 0x4
- beq _081423B8
- ldr r5, =gUnknown_0203AB88
- mov r12, r5
- b _081423D4
- .pool
-_0814237C:
- ldr r3, =gSprites
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- adds r0, 0x43
- b _081423C0
- .pool
-_08142390:
- ldr r3, =gSprites
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- adds r0, 0x44
- b _081423C0
- .pool
-_081423A4:
- ldr r3, =gSprites
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- adds r0, 0x45
- b _081423C0
- .pool
-_081423B8:
- ldr r3, =gSprites
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- adds r0, 0x46
-_081423C0:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r0, [r0, 0x5]
- lsrs r0, 4
- lsls r0, 4
- mov r8, r0
- mov r12, r2
-_081423D4:
- mov r0, r9
- cmp r0, 0x1
- bne _08142430
- mov r1, r12
- ldr r4, [r1]
- ldr r1, =gUnknown_085B6154
- lsls r2, r7, 2
- adds r0, r2, r7
- lsls r0, 2
- adds r1, 0x8
- adds r0, r1
- ldr r1, [r4, 0x8]
- ldr r0, [r0]
- ands r1, r0
- str r2, [sp, 0x1C]
- cmp r1, 0
- bne _081424E2
- adds r0, r7, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- add r1, r8
- strh r1, [r2, 0x2]
- adds r1, r4, 0
- adds r1, 0xB8
- lsls r0, 3
- subs r0, 0x8
- adds r2, r3, r0
- adds r0, r1, 0
- movs r1, 0xD
- bl sub_815168C
- b _081424C4
- .pool
-_08142430:
- movs r4, 0
- lsls r5, r7, 2
- str r5, [sp, 0x1C]
- ldr r0, =gUnknown_085B6154
- mov r10, r0
-_0814243A:
- lsls r0, r4, 2
- adds r0, r4
- adds r0, r7, r0
- adds r0, 0x5
- lsls r0, 24
- lsrs r3, r0, 24
- mov r1, r12
- ldr r5, [r1]
- lsls r0, r3, 2
- adds r0, r3
- lsls r6, r0, 2
- mov r0, r10
- adds r0, 0x8
- adds r0, r6, r0
- ldr r1, [r5, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081424B0
- adds r0, r3, 0
- movs r1, 0x5
- bl __udivsi3
- lsls r0, 24
- lsrs r0, 24
- subs r1, r0, 0x1
- lsls r1, 3
- mov r3, sp
- adds r2, r3, r1
- ldrh r1, [r2, 0x2]
- add r1, r8
- strh r1, [r2, 0x2]
- adds r3, r5, 0
- adds r3, 0xB8
- adds r1, r4, 0
- adds r1, 0xD
- lsls r1, 24
- lsrs r1, 24
- lsls r0, 3
- subs r0, 0x8
- mov r5, sp
- adds r2, r5, r0
- adds r0, r3, 0
- bl sub_815168C
- mov r0, r9
- cmp r0, 0x3
- bne _081424A2
- mov r1, r10
- adds r0, r6, r1
- ldrh r0, [r0, 0x10]
- str r0, [sp, 0x18]
-_081424A2:
- mov r0, r9
- subs r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- ldr r2, =gUnknown_0203AB88
- mov r12, r2
-_081424B0:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _0814243A
- mov r3, r9
- cmp r3, 0x2
- beq _081424C4
- movs r4, 0
- str r4, [sp, 0x18]
-_081424C4:
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0xB8
- ldr r2, =gUnknown_085B6154
- ldr r5, [sp, 0x1C]
- adds r1, r5, r7
- lsls r1, 2
- adds r1, r2
- ldrh r1, [r1, 0x10]
- ldr r2, [sp, 0x18]
- orrs r2, r1
- str r2, [sp, 0x18]
- adds r1, r2, 0
- bl sub_8151A48
-_081424E2:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142284
-
- thumb_func_start sub_81424FC
-sub_81424FC: @ 81424FC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x2C
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r4, =gUnknown_0203AB88
- ldr r1, [r4]
- movs r0, 0x1
- strh r0, [r1, 0x2A]
- movs r0, 0
- movs r1, 0
- bl sub_8142E70
- ldr r1, [r4]
- ldr r2, =0x0000117c
- adds r0, r1, r2
- ldr r2, =0x0000397c
- adds r1, r2
- ldr r1, [r1]
- movs r2, 0x10
- str r2, [sp]
- movs r2, 0xD
- str r2, [sp, 0x4]
- movs r2, 0xE
- movs r3, 0x7
- bl sub_8152058
- cmp r5, 0xF
- bhi _081425FC
- lsls r0, r5, 2
- ldr r1, =_08142558
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08142558:
- .4byte _08142738
- .4byte _08142598
- .4byte _08142598
- .4byte _08142598
- .4byte _08142598
- .4byte _081425CC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425CC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425FC
- .4byte _081425CC
-_08142598:
- movs r0, 0x4
- str r0, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x3
- bhi _08142604
- add r4, sp, 0x10
- adds r3, r1, 0
-_081425AE:
- ldrb r2, [r3]
- adds r2, r4
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- adds r0, r5, r0
- strb r0, [r2]
- ldrb r0, [r3]
- adds r0, 0x1
- strb r0, [r3]
- ldrb r0, [r3]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _081425AE
- b _08142604
-_081425CC:
- movs r2, 0x5
- str r2, [sp, 0x18]
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- cmp r0, 0x4
- bhi _08142604
- add r3, sp, 0x10
- adds r2, r1, 0
-_081425E2:
- ldrb r1, [r2]
- adds r1, r3
- ldrb r0, [r2]
- adds r0, r5, r0
- strb r0, [r1]
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _081425E2
- b _08142604
-_081425FC:
- movs r2, 0x1
- str r2, [sp, 0x18]
- add r0, sp, 0x10
- strb r5, [r0]
-_08142604:
- add r1, sp, 0x8
- movs r0, 0
- strb r0, [r1]
- adds r0, r1, 0
- ldrb r0, [r0]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcc _08142616
- b _08142738
-_08142616:
- mov r2, sp
- adds r2, 0xE
- str r2, [sp, 0x1C]
- add r0, sp, 0x10
- mov r10, r0
- add r1, sp, 0x8
- mov r9, r1
- subs r2, 0x4
- str r2, [sp, 0x20]
-_08142628:
- mov r1, r9
- ldrb r0, [r1]
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r2, =gUnknown_085B6154
- adds r0, r2
- ldrb r0, [r0, 0x6]
- ldr r1, [sp, 0x1C]
- strb r0, [r1]
- mov r2, r9
- ldrb r0, [r2]
- add r0, r10
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- ldr r1, =gUnknown_085B6154
- adds r0, r1
- ldrb r0, [r0, 0x3]
- ldr r2, [sp, 0x20]
- strh r0, [r2]
- mov r7, sp
- adds r7, 0x9
- movs r0, 0
- strb r0, [r7]
- ldrb r0, [r7]
- cmp r0, 0x2
- bhi _08142726
- add r6, sp, 0xC
- mov r8, r2
- ldr r0, [sp, 0x1C]
- mov r12, r0
- ldr r1, =gUnknown_0203AB88
- str r1, [sp, 0x28]
-_08142672:
- mov r2, r9
- ldrb r0, [r2]
- add r0, r10
- ldrb r0, [r0]
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 2
- ldr r0, =gUnknown_085B6154
- adds r1, r0
- str r7, [sp, 0x24]
- ldrb r0, [r7]
- ldrb r1, [r1, 0x4]
- adds r0, r1
- lsls r0, 5
- strh r0, [r6]
- ldr r1, [sp, 0x28]
- ldr r4, [r1]
- mov r2, r8
- ldrh r0, [r2]
- ldrh r2, [r6]
- adds r2, r0
- lsls r2, 1
- ldr r0, =0x0000117c
- adds r5, r4, r0
- adds r2, r5, r2
- mov r1, r12
- ldrb r0, [r1]
- ldrb r1, [r7]
- adds r1, r0
- ldr r0, =0x0000397c
- adds r4, r0
- ldr r3, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- adds r0, r3
- movs r1, 0xD0
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- mov r2, r8
- ldrh r0, [r2]
- ldrh r2, [r6]
- adds r2, r0
- adds r2, 0x1
- lsls r2, 1
- adds r2, r5, r2
- mov r1, r12
- ldrb r0, [r1]
- ldrb r1, [r7]
- adds r1, r0
- ldr r3, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- adds r0, r3
- movs r1, 0xD1
- lsls r1, 1
- adds r0, r1
- ldrh r0, [r0]
- strh r0, [r2]
- mov r2, r8
- ldrh r1, [r2]
- ldrh r0, [r6]
- adds r0, r1
- adds r0, 0x2
- lsls r0, 1
- adds r5, r0
- mov r1, r12
- ldrb r0, [r1]
- ldrb r1, [r7]
- adds r1, r0
- ldr r2, [r4]
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 1
- adds r0, r2
- movs r2, 0xD2
- lsls r2, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r5]
- ldrb r0, [r7]
- adds r0, 0x1
- strb r0, [r7]
- ldr r1, [sp, 0x24]
- ldrb r0, [r1]
- cmp r0, 0x2
- bls _08142672
-_08142726:
- mov r2, r9
- ldrb r0, [r2]
- adds r0, 0x1
- strb r0, [r2]
- ldrb r0, [r2]
- ldr r1, [sp, 0x18]
- cmp r0, r1
- bcs _08142738
- b _08142628
-_08142738:
- add sp, 0x2C
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81424FC
-
- thumb_func_start sub_8142758
-sub_8142758: @ 8142758
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_085B6448
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _08142770
- movs r4, 0
-_08142770:
- ldr r3, =gUnknown_085B6154
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _081427C4
- cmp r0, 0x4
- bgt _08142798
- cmp r0, 0x3
- beq _0814279E
- b _08142808
- .pool
-_08142798:
- cmp r0, 0xC
- beq _081427E8
- b _08142808
-_0814279E:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x16
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _08142808
- ldrb r0, [r1]
- adds r0, 0x1
- b _081427DC
- .pool
-_081427C4:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x12
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _08142808
- ldrb r0, [r1]
- adds r0, 0x2
-_081427DC:
- add r0, sp
- ldrb r0, [r0]
- b _0814280A
- .pool
-_081427E8:
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _08142808
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _0814280A
- .pool
-_08142808:
- movs r0, 0
-_0814280A:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8142758
-
- thumb_func_start sub_8142814
-sub_8142814: @ 8142814
- push {r4-r6,lr}
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- ldrh r1, [r0, 0x2C]
- movs r0, 0x20
- bl SetGpuReg
- ldr r0, [r4]
- ldrh r1, [r0, 0x2E]
- movs r0, 0x22
- bl SetGpuReg
- ldr r0, [r4]
- ldrh r1, [r0, 0x30]
- movs r0, 0x24
- bl SetGpuReg
- ldr r0, [r4]
- ldrh r1, [r0, 0x32]
- movs r0, 0x26
- bl SetGpuReg
- ldr r3, [r4]
- movs r0, 0x2E
- ldrsh r1, [r3, r0]
- ldr r0, =gSpriteCoordOffsetY
- movs r4, 0
- ldrsh r2, [r0, r4]
- adds r2, 0x50
- adds r0, r1, 0
- muls r0, r2
- movs r4, 0xE8
- lsls r4, 7
- subs r4, r0
- movs r6, 0x2C
- ldrsh r5, [r3, r6]
- ldr r0, =gSpriteCoordOffsetX
- movs r6, 0
- ldrsh r1, [r0, r6]
- adds r1, 0x74
- adds r0, r5, 0
- muls r0, r1
- subs r4, r0
- movs r5, 0x32
- ldrsh r0, [r3, r5]
- muls r0, r2
- movs r5, 0xA8
- lsls r5, 7
- subs r5, r0
- movs r6, 0x30
- ldrsh r0, [r3, r6]
- muls r0, r1
- subs r5, r0
- lsls r1, r4, 16
- lsrs r1, 16
- movs r0, 0x28
- bl SetGpuReg
- ldr r6, =0x0fff0000
- ands r4, r6
- lsrs r4, 16
- movs r0, 0x2A
- adds r1, r4, 0
- bl SetGpuReg
- lsls r1, r5, 16
- lsrs r1, 16
- movs r0, 0x2C
- bl SetGpuReg
- ands r5, r6
- lsrs r5, 16
- movs r0, 0x2E
- adds r1, r5, 0
- bl SetGpuReg
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142814
-
- thumb_func_start sub_81428C4
-sub_81428C4: @ 81428C4
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl DisplayYesNoMenu
- ldr r1, =gUnknown_085B6408
- adds r0, r4, 0
- bl sub_8121F68
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81428C4
-
- thumb_func_start sub_81428E4
-sub_81428E4: @ 81428E4
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _08142908
- movs r0, 0
- bl SetVBlankCallback
- ldr r0, =sub_81405CC
- bl SetMainCallback2
- adds r0, r4, 0
- bl DestroyTask
-_08142908:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81428E4
-
- thumb_func_start sub_8142918
-sub_8142918: @ 8142918
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0x1
- bl sub_819746C
- bl HideCoinsWindow
- bl FreeAllWindowBuffers
- movs r0, 0x1
- negs r0, r0
- movs r1, 0
- str r1, [sp]
- movs r2, 0
- movs r3, 0x10
- bl BeginNormalPaletteFade
- ldr r2, =gPaletteFade
- ldrb r1, [r2, 0x8]
- lsls r1, 26
- lsrs r1, 26
- ldrb r3, [r2, 0x4]
- movs r0, 0x40
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2, 0x4]
- bl UpdatePaletteFade
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81428E4
- str r1, [r0]
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142918
-
- thumb_func_start sub_814297C
-sub_814297C: @ 814297C
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- movs r0, 0
- movs r1, 0
- bl sub_819746C
- bl HideCoinsWindow
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_814297C
-
- thumb_func_start sub_81429A0
-sub_81429A0: @ 81429A0
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r0, r1
- ldrh r1, [r0, 0x8]
- adds r1, 0x1
- strh r1, [r0, 0x8]
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081429DE
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0x1
- strh r0, [r1]
- bl HideCoinsWindow
- movs r0, 0
- movs r1, 0x1
- bl sub_819746C
- bl ScriptContext2_Disable
- adds r0, r4, 0
- bl DestroyTask
-_081429DE:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81429A0
-
- thumb_func_start sub_81429F0
-sub_81429F0: @ 81429F0
- push {r4-r6,lr}
- sub sp, 0xC
- lsls r0, 24
- lsrs r6, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _08142A60
- ldr r2, =gUnknown_085B6344
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- movs r5, 0x1
- adds r0, r5, 0
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r1, [r0]
- ldr r0, =gStringVar1
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_082A5B12
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- str r5, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =gTasks
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81428C4
- str r1, [r0]
-_08142A60:
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81429F0
-
- thumb_func_start sub_8142A88
-sub_8142A88: @ 8142A88
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r6, r0, r1
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- bl PrintCoinsString
- ldr r2, =gUnknown_085B6344
- ldr r0, =gSpecialVar_0x8004
- mov r8, r0
- ldrh r1, [r0]
- movs r7, 0x1
- adds r0, r7, 0
- ands r0, r1
- lsrs r1, 7
- lsls r1, 1
- adds r0, r1
- adds r0, r2
- ldrb r4, [r0]
- ldr r0, =gStringVar1
- adds r1, r4, 0
- movs r2, 0x2
- movs r3, 0x1
- bl ConvertIntToDecimalStringN
- movs r1, 0x22
- ldrsh r0, [r6, r1]
- cmp r0, r4
- blt _08142B78
- mov r0, r8
- ldrh r1, [r0]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- beq _08142B28
- adds r0, r7, 0
- ands r0, r1
- cmp r0, 0
- beq _08142B28
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- ldr r2, =gUnknown_082A5B6B
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, =sub_81429F0
- str r0, [r6]
- b _08142BB0
- .pool
-_08142B28:
- ldr r4, =gStringVar4
- ldr r1, =gUnknown_082A5B12
- adds r0, r4, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- movs r1, 0x1
- adds r2, r4, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r1, =gTasks
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- adds r0, r1
- ldr r1, =sub_81428C4
- str r1, [r0]
- b _08142BB0
- .pool
-_08142B78:
- ldr r5, =gStringVar4
- ldr r1, =gUnknown_082A5B4E
- adds r0, r5, 0
- bl StringExpandPlaceholders
- movs r0, 0
- movs r1, 0
- bl NewMenuHelpers_DrawStdWindowFrame
- str r7, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- movs r0, 0
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0
- bl AddTextPrinterParameterized
- movs r0, 0
- movs r1, 0x3
- bl CopyWindowToVram
- ldr r0, =sub_81429A0
- str r0, [r6]
- strh r4, [r6, 0x22]
- strh r4, [r6, 0x8]
-_08142BB0:
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142A88
-
- thumb_func_start sub_8142BC8
-sub_8142BC8: @ 8142BC8
- push {r4,lr}
- bl ScriptContext2_Enable
- bl GetCoins
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x1
- movs r2, 0x1
- bl ShowCoinsWindow
- ldr r0, =sub_8142A88
- movs r1, 0
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- bl GetCoins
- ldr r2, =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- strh r0, [r1, 0x22]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142BC8
-
- thumb_func_start sub_8142C0C
-sub_8142C0C: @ 8142C0C
- push {lr}
- lsls r0, 24
- cmp r0, 0
- bne _08142C44
- bl FreeAllSpritePalettes
- ldr r0, =gUnknown_085B7384
- bl LoadSpritePalettes
- ldr r0, =gUnknown_085B7864
- bl LoadCompressedSpriteSheet
- ldr r0, =gUnknown_085B7978
- bl LoadCompressedSpriteSheet
- ldr r0, =gUnknown_085B7A40
- bl LoadCompressedSpriteSheet
- b _08142C5A
- .pool
-_08142C44:
- movs r0, 0xE
- bl FreeSpriteTilesByTag
- movs r0, 0xD
- bl FreeSpriteTilesByTag
- movs r0, 0xC
- bl FreeSpriteTilesByTag
- bl FreeAllSpritePalettes
-_08142C5A:
- pop {r0}
- bx r0
- thumb_func_end sub_8142C0C
-
- thumb_func_start sub_8142C60
-sub_8142C60: @ 8142C60
- push {r4-r6,lr}
- adds r4, r1, 0
- adds r6, r2, 0
- lsls r4, 24
- lsrs r4, 24
- ldr r1, [r0, 0x4]
- ldrb r3, [r1]
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- adds r5, r0, 0
- ldr r0, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r1, r0
- ldrh r0, [r6]
- strh r0, [r1, 0x2E]
- strh r4, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x3E
- ldrb r0, [r3]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- ldrh r2, [r6]
- adds r0, r2, 0
- adds r0, 0x1E
- strh r0, [r6]
- lsls r0, 16
- ldr r1, =0x01670000
- cmp r0, r1
- bls _08142CBC
- ldr r1, =0xfffffeb6
- adds r0, r2, r1
- strh r0, [r6]
-_08142CBC:
- adds r0, r5, 0
- pop {r4-r6}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8142C60
-
- thumb_func_start sub_8142CD0
-sub_8142CD0: @ 8142CD0
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- ldr r4, =gUnknown_085B7488
- ldr r0, [r4]
- ldr r5, =gDecompressionBuffer
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- mov r6, sp
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r4, =gUnknown_085B7490
- ldr r0, [r4]
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r0, [r4, 0x4]
- strh r0, [r6, 0x4]
- ldrh r0, [r4, 0x6]
- strh r0, [r6, 0x6]
- mov r0, sp
- bl LoadSpriteSheet
- movs r6, 0
- ldr r0, =gSprites
- mov r8, r0
-_08142D18:
- lsls r0, r6, 1
- adds r0, r6
- lsls r0, 27
- lsrs r4, r0, 24
- movs r5, 0
- lsls r7, r6, 2
-_08142D24:
- lsls r1, r5, 1
- adds r1, r5
- lsls r1, 3
- ldr r0, =gSpriteTemplate_85B75B0
- adds r0, r1, r0
- adds r1, 0x94
- adds r2, r4, 0
- adds r2, 0x5C
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- adds r2, r5, 0
- adds r2, 0x1D
- adds r2, r7, r2
- adds r1, 0x3C
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r8
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- adds r0, 0x18
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x47
- bls _08142D6E
- movs r4, 0
-_08142D6E:
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08142D24
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _08142D18
- movs r6, 0
- ldr r4, =gSprites
-_08142D86:
- lsls r1, r6, 1
- adds r1, r6
- lsls r1, 3
- ldr r0, =gSpriteTemplate_85B7508
- adds r0, r1, r0
- adds r1, 0x94
- lsls r1, 16
- asrs r1, 16
- movs r2, 0x46
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- adds r1, r6
- adds r1, 0x65
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _08142D86
- movs r6, 0
- ldr r4, =gSprites
-_08142DCC:
- lsls r2, r6, 1
- adds r2, r6
- lsls r2, 3
- ldr r0, =gSpriteTemplate_85B7568
- adds r0, r2, r0
- adds r2, 0x5C
- lsls r2, 16
- asrs r2, 16
- movs r1, 0x7E
- movs r3, 0x1E
- bl CreateSprite
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- adds r1, r6
- adds r1, 0x69
- strb r0, [r1]
- lsls r0, 24
- lsrs r1, r0, 24
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x2
- bls _08142DCC
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142CD0
-
- thumb_func_start sub_8142E3C
-sub_8142E3C: @ 8142E3C
- push {r4,lr}
- movs r4, 0
-_08142E40:
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, r4
- adds r0, 0x59
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- bl DestroySprite
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08142E40
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142E3C
-
- thumb_func_start sub_8142E70
-sub_8142E70: @ 8142E70
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r12, r1
- cmp r0, 0
- beq _08142EC0
- cmp r0, 0x1
- bne _08142F66
- movs r4, 0
- ldr r5, =gSprites
- ldr r3, =gUnknown_0203AB88
- movs r2, 0x4
-_08142E92:
- ldr r0, [r3]
- adds r0, r4
- adds r0, 0x59
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x12
- bls _08142E92
- b _08142F66
- .pool
-_08142EC0:
- movs r4, 0
- ldr r0, =gUnknown_0203AB88
- mov r9, r0
- ldr r7, =gUnknown_085B62E4
- adds r1, r7, 0x4
- mov r8, r1
- ldr r5, =gSprites
- movs r6, 0x5
- negs r6, r6
-_08142ED2:
- mov r0, r9
- ldr r2, [r0]
- lsls r3, r4, 3
- mov r1, r8
- adds r0, r3, r1
- ldr r1, [r2, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- beq _08142F14
- adds r0, r3, r7
- ldrb r0, [r0, 0x2]
- cmp r0, r12
- beq _08142F14
- adds r0, r2, r4
- adds r0, 0x59
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08142F2C
- .pool
-_08142F14:
- adds r0, r2, r4
- adds r0, 0x59
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r6, 0
- ands r0, r2
- strb r0, [r1]
-_08142F2C:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0xB
- bls _08142ED2
- cmp r4, 0x12
- bhi _08142F66
- ldr r6, =gSprites
- ldr r3, =gUnknown_0203AB88
- movs r5, 0x5
- negs r5, r5
-_08142F42:
- ldr r0, [r3]
- adds r0, r4
- adds r0, 0x59
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- adds r0, r5, 0
- ands r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x12
- bls _08142F42
-_08142F66:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142E70
-
- thumb_func_start sub_8142F7C
-sub_8142F7C: @ 8142F7C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- movs r5, 0
- ldr r6, =gUnknown_0203AB88
- ldr r4, =gSprites
- movs r0, 0x4
- mov r8, r0
-_08142F8C:
- ldr r0, =gSpriteTemplate_85B7928
- movs r1, 0x74
- movs r2, 0x14
- movs r3, 0xA
- bl CreateSprite
- ldr r1, [r6]
- adds r3, r5, 0
- adds r3, 0x31
- adds r1, 0x3C
- adds r1, r3
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- mov r2, r8
- orrs r1, r2
- strb r1, [r0]
- ldr r2, [r6]
- adds r2, 0x3C
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x1
- strh r1, [r0, 0x2E]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r4, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_814390C
- str r1, [r0]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldrb r1, [r0, 0x5]
- movs r7, 0xD
- negs r7, r7
- adds r2, r7, 0
- ands r1, r2
- mov r2, r8
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, [r6]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- movs r1, 0x8
- bl StartSpriteAnim
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x5
- bls _08142F8C
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8142F7C
-
- thumb_func_start sub_8143038
-sub_8143038: @ 8143038
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- movs r6, 0
- cmp r0, 0
- beq _08143084
- ldr r4, =gSprites
- ldr r3, =gUnknown_0203AB88
- movs r2, 0x4
-_08143056:
- ldr r0, [r3]
- adds r0, r6
- adds r0, 0x6D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08143056
- b _08143142
- .pool
-_08143084:
- ldr r0, =gUnknown_0203AB88
- mov r8, r0
- ldr r7, =gSprites
- ldr r0, =gUnknown_085B6154
- mov r12, r0
- movs r0, 0x5
- negs r0, r0
- mov r10, r0
-_08143094:
- mov r0, r8
- ldr r1, [r0]
- adds r0, r1, 0
- adds r0, 0xC
- adds r0, r6
- ldrb r0, [r0]
- cmp r0, 0
- beq _081430A8
- cmp r6, r9
- bne _081430D0
-_081430A8:
- adds r0, r1, r6
- adds r0, 0x6D
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _08143138
- .pool
-_081430D0:
- adds r5, r6, 0
- adds r5, 0x31
- adds r0, r1, 0
- adds r0, 0x3C
- adds r0, r5
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r10
- ands r0, r2
- strb r0, [r1]
- mov r0, r8
- ldr r3, [r0]
- adds r4, r3, 0
- adds r4, 0x3C
- adds r4, r5
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- adds r3, 0xC
- adds r3, r6
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0x3]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x4
- strh r0, [r2, 0x20]
- ldrb r0, [r4]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r7
- ldrb r1, [r3]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- add r0, r12
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- lsls r0, 3
- adds r0, 0x3
- strh r0, [r2, 0x22]
-_08143138:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08143094
-_08143142:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_8143038
-
- thumb_func_start sub_8143150
-sub_8143150: @ 8143150
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- bne _08143180
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- b _081431D0
- .pool
-_08143180:
- ldr r4, =gSprites
- ldr r3, =gUnknown_0203AB88
- ldr r0, [r3]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r3, [r3]
- adds r3, 0x6C
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldr r0, =gUnknown_085B6154
- lsls r2, r5, 2
- adds r2, r5
- lsls r2, 2
- adds r2, r0
- ldrb r0, [r2, 0x3]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x20]
- ldrb r0, [r3]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r0, [r2, 0x4]
- adds r0, 0x2
- lsls r0, 3
- strh r0, [r1, 0x22]
-_081431D0:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143150
-
- thumb_func_start sub_81431E4
-sub_81431E4: @ 81431E4
- push {r4-r7,lr}
- sub sp, 0xC
- ldr r4, =gUnknown_085B741C
- ldr r0, [r4]
- ldr r5, =gDecompressionBuffer
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp, 0x4]
- add r0, sp, 0x4
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldrh r1, [r4, 0x4]
- orrs r1, r2
- str r1, [r0, 0x4]
- bl LoadSpriteSheet
- movs r1, 0xF
- mov r0, sp
- strh r1, [r0]
- movs r0, 0
- ldr r7, =gSprites
-_08143210:
- movs r4, 0
- adds r6, r0, 0x1
- lsls r5, r0, 2
-_08143216:
- adds r1, r5, r4
- lsls r0, r1, 1
- adds r0, r1
- lsls r0, 3
- ldr r1, =gSpriteTemplate_85B7610
- adds r0, r1
- movs r1, 0x28
- mov r2, sp
- bl sub_8142C60
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- adds r2, r4, 0x7
- adds r2, r5, r2
- adds r1, 0x3C
- adds r1, r2
- strb r0, [r1]
- lsls r0, 24
- lsrs r0, 24
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r7
- adds r1, 0x2C
- ldrb r0, [r1]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r1]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x3
- bls _08143216
- lsls r0, r6, 24
- lsrs r0, 24
- cmp r0, 0x2
- bls _08143210
- add sp, 0xC
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81431E4
-
- thumb_func_start sub_8143280
-sub_8143280: @ 8143280
- push {r4-r6,lr}
- adds r6, r0, 0
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- ldrh r0, [r6, 0x2E]
- ldrh r1, [r1, 0x24]
- adds r0, r1
- lsls r0, 16
- lsrs r4, r0, 16
- asrs r1, r0, 16
- ldr r0, =0x00000167
- cmp r1, r0
- ble _081432A2
- ldr r2, =0xfffffe98
- adds r0, r1, r2
- lsls r0, 16
- lsrs r4, r0, 16
-_081432A2:
- adds r0, r4, 0
- bl Sin2
- lsls r0, 16
- lsrs r5, r0, 16
- adds r0, r4, 0
- bl Cos2
- lsls r2, r5, 16
- asrs r2, 16
- movs r3, 0x30
- ldrsh r1, [r6, r3]
- muls r1, r2
- asrs r1, 12
- strh r1, [r6, 0x24]
- lsls r0, 16
- asrs r4, r0, 16
- negs r1, r4
- movs r3, 0x30
- ldrsh r0, [r6, r3]
- muls r0, r1
- asrs r0, 12
- strh r0, [r6, 0x26]
- ldrb r0, [r6, 0x3]
- lsls r0, 26
- lsrs r3, r0, 27
- cmp r2, 0
- bge _081432DC
- adds r2, 0xF
-_081432DC:
- lsls r0, r2, 12
- lsrs r5, r0, 16
- ldr r1, =gOamMatrices
- lsls r0, r3, 3
- adds r1, r0, r1
- adds r0, r4, 0
- cmp r0, 0
- bge _081432EE
- adds r0, 0xF
-_081432EE:
- asrs r0, 4
- strh r0, [r1, 0x6]
- strh r0, [r1]
- strh r5, [r1, 0x2]
- lsls r0, r5, 16
- asrs r0, 16
- negs r0, r0
- strh r0, [r1, 0x4]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143280
-
- thumb_func_start sub_8143314
-sub_8143314: @ 8143314
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x8
- movs r5, 0
- ldr r7, =gDecompressionBuffer
- mov r6, sp
-_08143322:
- ldr r0, =gUnknown_085B7750
- lsls r4, r5, 3
- adds r4, r0
- ldr r0, [r4]
- adds r1, r7, 0
- bl LZ77UnCompWram
- str r7, [sp]
- ldrh r2, [r4, 0x4]
- ldr r0, =0xffff0000
- ldr r1, [r6, 0x4]
- ands r1, r0
- orrs r1, r2
- str r1, [r6, 0x4]
- ldrh r2, [r4, 0x6]
- lsls r2, 16
- ldr r0, =0x0000ffff
- ands r0, r1
- orrs r0, r2
- str r0, [r6, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x4
- bls _08143322
- ldr r0, =gSpriteTemplate_85B77E4
- movs r1, 0xD0
- movs r2, 0x10
- movs r3, 0x4
- bl CreateSprite
- ldr r3, =gUnknown_0203AB88
- ldr r1, [r3]
- adds r1, 0x50
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r3]
- adds r0, 0x50
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r5, 0
- adds r7, r3, 0
-_0814338C:
- lsls r1, r5, 19
- movs r0, 0xC4
- lsls r0, 16
- adds r1, r0
- asrs r1, 16
- ldr r0, =gUnknown_085B77FC
- movs r2, 0x18
- movs r3, 0
- bl CreateSprite
- ldr r1, [r7]
- adds r3, r5, 0
- adds r3, 0x15
- adds r1, 0x3C
- adds r1, r3
- strb r0, [r1]
- ldr r0, [r7]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r7]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _0814338C
- ldr r0, =gUnknown_085B7814
- movs r1, 0x78
- movs r2, 0x44
- movs r3, 0x4
- bl CreateSprite
- ldr r2, =gUnknown_0203AB88
- ldr r1, [r2]
- adds r1, 0x55
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r0, [r2]
- adds r0, 0x55
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- movs r5, 0
- adds r4, r2, 0
- adds r7, r3, 0
-_0814341C:
- lsls r1, r5, 20
- movs r2, 0xC0
- lsls r2, 16
- adds r1, r2
- asrs r1, 16
- ldr r0, =gUnknown_085B782C
- movs r2, 0x24
- movs r3, 0x4
- bl CreateSprite
- ldr r1, [r4]
- adds r2, r5, 0
- adds r2, 0x1A
- adds r1, 0x3C
- adds r1, r2
- strb r0, [r1]
- ldr r0, [r4]
- adds r0, 0x3C
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r3, 0x4
- mov r8, r3
- mov r3, r8
- orrs r1, r3
- strb r1, [r0]
- ldr r0, [r4]
- adds r0, 0x3C
- adds r0, r2
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r7
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r6, 0x40
- orrs r1, r6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x2
- bls _0814341C
- ldr r0, =gUnknown_085B7844
- movs r1, 0x98
- movs r2, 0x60
- movs r3, 0x9
- bl CreateSprite
- ldr r3, =gUnknown_0203AB88
- ldr r1, [r3]
- adds r1, 0x6C
- strb r0, [r1]
- ldr r4, =gSprites
- ldr r0, [r3]
- adds r0, 0x6C
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- mov r2, r8
- orrs r0, r2
- strb r0, [r1, 0x5]
- ldr r0, [r3]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x2C
- ldrb r1, [r0]
- orrs r1, r6
- strb r1, [r0]
- ldr r0, [r3]
- adds r0, 0x6C
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- adds r0, 0x3E
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- add sp, 0x8
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143314
-
- thumb_func_start sub_8143514
-sub_8143514: @ 8143514
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- lsls r0, 16
- lsrs r7, r0, 16
- movs r0, 0xFA
- lsls r0, 2
- mov r8, r0
- movs r4, 0
- movs r6, 0
- ldr r1, =gSprites
- mov r9, r1
- ldr r0, =gUnknown_0203AB88
- mov r10, r0
-_08143534:
- adds r0, r7, 0
- mov r1, r8
- bl __udivsi3
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r1, =gUnknown_0203AB88
- ldr r0, [r1]
- adds r3, r6, 0
- adds r3, 0x15
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- cmp r5, 0
- bne _0814356E
- cmp r4, 0
- bne _0814356E
- cmp r6, 0x3
- bne _081435CC
-_0814356E:
- mov r4, r10
- ldr r0, [r4]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- add r0, r9
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r4, 0x5
- negs r4, r4
- adds r2, r4, 0
- ands r1, r2
- strb r1, [r0]
- mov r1, r10
- ldr r0, [r1]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- mov r4, r9
- adds r3, r0, r4
- adds r4, r3, 0
- adds r4, 0x40
- ldr r1, =gSprites + 8
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r5, 2
- adds r0, r1
- ldrh r2, [r0]
- ldrh r4, [r4]
- adds r2, r4
- ldr r4, =0x000003ff
- adds r0, r4, 0
- ands r2, r0
- ldrh r0, [r3, 0x4]
- ldr r4, =0xfffffc00
- adds r1, r4, 0
- ands r0, r1
- orrs r0, r2
- strh r0, [r3, 0x4]
- movs r4, 0x1
-_081435CC:
- adds r0, r7, 0
- mov r1, r8
- bl __umodsi3
- lsls r0, 16
- lsrs r7, r0, 16
- mov r0, r8
- movs r1, 0xA
- bl __udivsi3
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, 0x3
- bls _08143534
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143514
-
- thumb_func_start sub_8143614
-sub_8143614: @ 8143614
- push {r4,lr}
- sub sp, 0x8
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gUnknown_085B7B04
- mov r0, sp
- movs r2, 0x5
- bl memcpy
- cmp r4, 0x13
- bls _0814362C
- movs r4, 0
-_0814362C:
- ldr r3, =gUnknown_085B6154
- lsls r0, r4, 2
- adds r0, r4
- lsls r2, r0, 2
- adds r0, r2, r3
- ldrb r0, [r0, 0x1]
- lsls r0, 28
- lsrs r0, 28
- cmp r0, 0x4
- beq _08143680
- cmp r0, 0x4
- bgt _08143654
- cmp r0, 0x3
- beq _0814365A
- b _081436C4
- .pool
-_08143654:
- cmp r0, 0xC
- beq _081436A4
- b _081436C4
-_0814365A:
- adds r0, r4, 0
- movs r1, 0x5
- bl __udivsi3
- subs r0, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x16
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0x3
- bhi _081436C4
- ldrb r0, [r1]
- adds r0, 0x1
- b _08143698
- .pool
-_08143680:
- subs r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x12
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0x2
- bhi _081436C4
- ldrb r0, [r1]
- adds r0, 0x2
-_08143698:
- add r0, sp
- ldrb r0, [r0]
- b _081436C6
- .pool
-_081436A4:
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- adds r0, r3, 0
- adds r0, 0x8
- adds r0, r2, r0
- ldr r1, [r1, 0x8]
- ldr r0, [r0]
- ands r1, r0
- cmp r1, 0
- bne _081436C4
- mov r0, sp
- ldrb r0, [r0, 0x4]
- b _081436C6
- .pool
-_081436C4:
- movs r0, 0
-_081436C6:
- add sp, 0x8
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8143614
-
- thumb_func_start sub_81436D0
-sub_81436D0: @ 81436D0
- push {r4,lr}
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- adds r1, 0x55
- ldrb r2, [r1]
- lsls r1, r2, 4
- adds r1, r2
- lsls r1, 2
- ldr r2, =gSprites
- adds r4, r1, r2
- bl sub_8143614
- adds r3, r4, 0
- adds r3, 0x2B
- strb r0, [r3]
- adds r2, r4, 0
- adds r2, 0x40
- ldr r1, [r4, 0x8]
- ldrb r0, [r3]
- ldr r1, [r1]
- lsls r0, 2
- adds r0, r1
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r4, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r4, 0x4]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81436D0
-
- thumb_func_start sub_814372C
-sub_814372C: @ 814372C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 24
- lsrs r2, r0, 24
- movs r6, 0
- ldr r1, =gUnknown_0203AB88
- ldr r0, [r1]
- ldrb r0, [r0, 0x19]
- adds r5, r1, 0
- cmp r0, 0x1
- bne _08143746
- movs r6, 0x2
-_08143746:
- cmp r2, 0x6
- bls _0814374C
- b _081438A8
-_0814374C:
- lsls r0, r2, 2
- ldr r1, =_08143760
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_08143760:
- .4byte _081438A8
- .4byte _08143864
- .4byte _0814383C
- .4byte _08143830
- .4byte _08143808
- .4byte _081437FC
- .4byte _0814377C
-_0814377C:
- movs r4, 0
- ldr r5, =gSprites
- ldr r6, =gUnknown_0203AB88
- movs r0, 0x5
- negs r0, r0
- mov r12, r0
- adds r7, r5, 0
- adds r7, 0x8
- ldr r2, =0xfffffc00
- mov r8, r2
-_08143790:
- ldr r0, [r6]
- adds r3, r4, 0
- adds r3, 0x1A
- adds r0, 0x3C
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r5
- adds r1, 0x3E
- ldrb r2, [r1]
- mov r0, r12
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r6]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r5
- adds r2, r3, 0
- adds r2, 0x40
- adds r0, r7
- ldr r0, [r0]
- ldr r0, [r0]
- ldrh r1, [r0]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _08143790
- b _081438F4
- .pool
-_081437FC:
- ldr r2, =gSprites
- ldr r0, [r5]
- adds r0, 0x58
- b _0814386A
- .pool
-_08143808:
- ldr r2, =gSprites
- ldr r0, [r5]
- adds r0, 0x58
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08143886
- .pool
-_08143830:
- ldr r2, =gSprites
- ldr r0, [r5]
- adds r0, 0x57
- b _0814386A
- .pool
-_0814383C:
- ldr r2, =gSprites
- ldr r0, [r5]
- adds r0, 0x57
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r0, r1
- ldrh r1, [r0, 0x8]
- b _08143886
- .pool
-_08143864:
- ldr r2, =gSprites
- ldr r0, [r5]
- adds r0, 0x56
-_0814386A:
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r2
- adds r4, r3, 0
- adds r4, 0x40
- adds r2, 0x8
- adds r0, r2
- ldr r0, [r0]
- ldr r1, [r0]
- lsls r0, r6, 2
- adds r0, r1
- ldrh r1, [r0, 0x4]
-_08143886:
- ldrh r4, [r4]
- adds r1, r4
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- ldr r0, =0xfffffc00
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- b _081438F4
- .pool
-_081438A8:
- movs r4, 0
- lsls r7, r6, 2
- ldr r6, =gSprites
- movs r0, 0x8
- adds r0, r6
- mov r12, r0
- ldr r2, =0xfffffc00
- mov r8, r2
-_081438B8:
- ldr r0, [r5]
- adds r0, r4
- adds r0, 0x56
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r3, r0, r6
- adds r2, r3, 0
- adds r2, 0x40
- add r0, r12
- ldr r0, [r0]
- ldr r0, [r0]
- adds r0, r7, r0
- ldrh r1, [r0, 0x8]
- ldrh r2, [r2]
- adds r1, r2
- ldr r2, =0x000003ff
- adds r0, r2, 0
- ands r1, r0
- ldrh r2, [r3, 0x4]
- mov r0, r8
- ands r0, r2
- orrs r0, r1
- strh r0, [r3, 0x4]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x2
- bls _081438B8
-_081438F4:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814372C
-
- thumb_func_start sub_814390C
-sub_814390C: @ 814390C
- ldr r1, =gUnknown_0203AB88
- ldr r1, [r1]
- ldrh r1, [r1, 0x26]
- strh r1, [r0, 0x24]
- bx lr
- .pool
- thumb_func_end sub_814390C
-
- thumb_func_start sub_814391C
-sub_814391C: @ 814391C
- push {r4,r5,lr}
- sub sp, 0x8
- ldr r4, =gUnknown_085B7948
- ldr r0, [r4]
- ldr r5, =gDecompressionBuffer
- adds r1, r5, 0
- bl LZ77UnCompWram
- str r5, [sp]
- ldrh r1, [r4, 0x6]
- lsls r1, 16
- ldrh r0, [r4, 0x4]
- orrs r0, r1
- str r0, [sp, 0x4]
- mov r0, sp
- bl LoadSpriteSheet
- ldr r0, =gSpriteTemplate_85B7950
- movs r1, 0x74
- movs r2, 0x50
- movs r3, 0x51
- bl CreateSprite
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gSprites
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r2
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldrh r0, [r0, 0x24]
- movs r2, 0
- strh r0, [r1, 0x2E]
- strh r2, [r1, 0x30]
- adds r3, r1, 0
- adds r3, 0x2C
- ldrb r0, [r3]
- movs r2, 0x40
- orrs r0, r2
- movs r2, 0x80
- orrs r0, r2
- strb r0, [r3]
- adds r1, 0x3E
- ldrb r0, [r1]
- movs r2, 0x2
- orrs r0, r2
- strb r0, [r1]
- add sp, 0x8
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_814391C
-
- thumb_func_start sub_814399C
-sub_814399C: @ 814399C
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- ldr r1, =gOamMatrices
- lsls r0, 3
- adds r0, r1
- ldr r1, =gUnknown_0203AB88
- ldr r2, [r1]
- ldrh r1, [r2, 0x2C]
- strh r1, [r0, 0x6]
- ldrh r1, [r2, 0x2C]
- strh r1, [r0]
- ldrh r1, [r2, 0x2E]
- strh r1, [r0, 0x2]
- ldrh r1, [r2, 0x30]
- strh r1, [r0, 0x4]
- bx lr
- .pool
- thumb_func_end sub_814399C
-
- thumb_func_start sub_81439C8
-sub_81439C8: @ 81439C8
- push {r4-r6,lr}
- movs r4, 0
- ldr r5, =gUnknown_0203AB88
- ldr r6, =gSprites
-_081439D0:
- movs r3, 0x39
- subs r3, r4
- lsls r3, 24
- lsrs r3, 24
- ldr r0, =gSpriteTemplate_85B7928
- movs r1, 0x74
- movs r2, 0x50
- bl CreateSprite
- ldr r1, [r5]
- adds r1, 0x3C
- adds r1, r4
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x3C
- adds r1, r0, r4
- ldrb r0, [r1]
- cmp r0, 0x40
- beq _08143A24
- adds r1, r0, 0
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x3C
- adds r0, r4
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
-_08143A24:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x5
- bls _081439D0
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81439C8
-
- thumb_func_start sub_8143A40
-sub_8143A40: @ 8143A40
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x3C
- ldrb r5, [r0]
- movs r6, 0
- ldr r7, =gSprites
- movs r0, 0x1C
- adds r0, r7
- mov r10, r0
- movs r1, 0x2E
- adds r1, r7
- mov r9, r1
- mov r8, r6
-_08143A64:
- lsls r4, r5, 4
- adds r4, r5
- lsls r4, 2
- adds r0, r4, r7
- adds r3, r0, 0
- adds r3, 0x3E
- ldrb r1, [r3]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r3]
- mov r1, r10
- adds r2, r4, r1
- ldr r1, =SpriteCallbackDummy
- str r1, [r2]
- movs r1, 0
- bl StartSpriteAnim
- movs r1, 0
- adds r2, r5, 0x1
- adds r3, r6, 0x1
-_08143A8C:
- lsls r0, r1, 1
- adds r0, r4
- add r0, r9
- mov r5, r8
- strh r5, [r0]
- adds r0, r1, 0x1
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x7
- bls _08143A8C
- lsls r0, r2, 24
- lsrs r5, r0, 24
- lsls r0, r3, 24
- lsrs r6, r0, 24
- cmp r6, 0x5
- bls _08143A64
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143A40
-
- thumb_func_start sub_8143AC8
-sub_8143AC8: @ 8143AC8
- push {r4,r5,lr}
- adds r3, r0, 0
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldrh r4, [r0, 0x24]
- movs r2, 0x24
- ldrsh r1, [r0, r2]
- ldrh r2, [r3, 0x34]
- movs r5, 0x34
- ldrsh r0, [r3, r5]
- cmp r1, r0
- ble _08143B04
- movs r1, 0xB4
- lsls r1, 1
- adds r0, r2, r1
- subs r2, r0, r4
- strh r2, [r3, 0x3A]
- lsls r1, r2, 16
- ldr r0, =0x01670000
- cmp r1, r0
- ble _08143B08
- ldr r5, =0xfffffe98
- adds r0, r2, r5
- b _08143B06
- .pool
-_08143B04:
- subs r0, r2, r4
-_08143B06:
- strh r0, [r3, 0x3A]
-_08143B08:
- movs r1, 0x3A
- ldrsh r0, [r3, r1]
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_8143AC8
-
- thumb_func_start sub_8143B14
-sub_8143B14: @ 8143B14
- push {r4,r5,lr}
- bl sub_8143AC8
- ldr r5, =gUnknown_0203AB88
- ldr r4, [r5]
- lsls r0, 16
- asrs r0, 16
- bl __floatsisf
- ldr r1, =0x41f00000
- bl __divsf3
- bl __fixunssfsi
- adds r4, 0x7E
- strb r0, [r4]
- ldr r0, [r5]
- adds r0, 0x7E
- ldrb r0, [r0]
- pop {r4,r5}
- pop {r1}
- bx r1
- .pool
- thumb_func_end sub_8143B14
-
- thumb_func_start sub_8143B48
-sub_8143B48: @ 8143B48
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8143AC8
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x1E
- bl __modsi3
- lsls r0, 16
- asrs r1, r0, 16
- cmp r1, 0xE
- bne _08143B68
- movs r0, 0
- strh r0, [r4, 0x32]
- b _08143B7E
-_08143B68:
- cmp r1, 0xD
- bgt _08143B70
- movs r0, 0xE
- b _08143B72
-_08143B70:
- movs r0, 0x2B
-_08143B72:
- subs r0, r1
- lsls r0, 16
- lsrs r0, 16
- strh r0, [r4, 0x32]
- lsls r0, 16
- asrs r0, 16
-_08143B7E:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end sub_8143B48
-
- thumb_func_start sub_8143B84
-sub_8143B84: @ 8143B84
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r7, r0, 0
- ldr r5, _08143BCC @ =gUnknown_0203AB88
- ldr r6, [r5]
- adds r4, r6, 0
- adds r4, 0x8C
- adds r1, r6, 0
- adds r1, 0x90
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- subs r4, 0x4
- ldr r0, [r4]
- bl __addsf3
- adds r6, r0, 0
- str r6, [r4]
- ldr r0, _08143BD0 @ =0x43B40000
- mov r8, r0
- adds r0, r6, 0
- mov r1, r8
- bl __gesf2
- cmp r0, 0
- blt _08143BD4
- adds r0, r6, 0
- mov r1, r8
- bl __subsf3
- b _08143BE8
- .align 2, 0
-_08143BCC:
- .4byte gUnknown_0203AB88
-_08143BD0:
- .4byte 0x43B40000
-_08143BD4:
- ldr r1, _08143C80 @ =0x00000000
- adds r0, r6, 0
- bl __ltsf2
- cmp r0, 0
- bge _08143BEA
- adds r0, r6, 0
- mov r1, r8
- bl __addsf3
-_08143BE8:
- str r0, [r4]
-_08143BEA:
- ldr r5, [r5]
- adds r0, r5, 0
- adds r0, 0x88
- ldr r0, [r0]
- bl __fixsfsi
- strh r0, [r7, 0x34]
- adds r4, r5, 0
- adds r4, 0x98
- adds r1, r5, 0
- adds r1, 0x9C
- ldr r0, [r4]
- ldr r1, [r1]
- bl __addsf3
- adds r1, r0, 0
- str r1, [r4]
- subs r4, 0x4
- ldr r0, [r4]
- bl __addsf3
- str r0, [r4]
- bl __fixsfsi
- strh r0, [r7, 0x36]
- ldrh r0, [r7, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r7, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r7, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r7, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r7, r2]
- muls r0, r1
- asrs r0, 12
- strh r0, [r7, 0x26]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08143C74
- ldr r0, _08143C84 @ =gMPlayInfo_SE1
- ldr r4, _08143C88 @ =0x0000FFFF
- ldrh r2, [r7, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, _08143C8C @ =gMPlayInfo_SE2
- ldrh r2, [r7, 0x24]
- lsls r2, 24
- asrs r2, 24
- adds r1, r4, 0
- bl m4aMPlayPanpotControl
-_08143C74:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143C80:
- .4byte 0x00000000
-_08143C84:
- .4byte gMPlayInfo_SE1
-_08143C88:
- .4byte 0x0000FFFF
-_08143C8C:
- .4byte gMPlayInfo_SE2
- thumb_func_end sub_8143B84
-
- thumb_func_start sub_8143C90
-sub_8143C90: @ 8143C90
- push {r4,r5,lr}
- adds r5, r0, 0
- ldr r0, =gUnknown_0203AB88
- ldr r1, [r0]
- ldrh r0, [r5, 0x3A]
- ldrh r1, [r1, 0x24]
- adds r2, r0, r1
- strh r2, [r5, 0x34]
- lsls r1, r2, 16
- ldr r0, =0x01670000
- cmp r1, r0
- ble _08143CAE
- ldr r1, =0xfffffe98
- adds r0, r2, r1
- strh r0, [r5, 0x34]
-_08143CAE:
- ldrh r0, [r5, 0x34]
- bl Sin2
- adds r4, r0, 0
- lsls r4, 16
- lsrs r4, 16
- ldrh r0, [r5, 0x34]
- bl Cos2
- lsls r4, 16
- asrs r4, 16
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r1, r4
- asrs r1, 12
- strh r1, [r5, 0x24]
- lsls r0, 16
- asrs r0, 16
- negs r0, r0
- movs r2, 0x36
- ldrsh r1, [r5, r2]
- muls r0, r1
- ldr r1, =gSpriteCoordOffsetY
- asrs r0, 12
- ldrh r1, [r1]
- adds r0, r1
- strh r0, [r5, 0x26]
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143C90
-
- thumb_func_start sub_8143CFC
-sub_8143CFC: @ 8143CFC
- push {r4-r7,lr}
- adds r5, r0, 0
- bl sub_8143B84
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- ldrh r0, [r5, 0x36]
- adds r0, 0x84
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xD4
- bls _08143D22
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- b _08143D2E
-_08143D22:
- adds r2, r5, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
-_08143D2E:
- strb r0, [r2]
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0x1D
- ble _08143DF8
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08143D6C
- ldr r7, _08143D64 @ =gUnknown_0203AB88
- ldr r6, [r7]
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08143D68 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __lesf2
- cmp r0, 0
- bgt _08143DF8
- b _08143D8C
- .align 2, 0
-_08143D64:
- .4byte gUnknown_0203AB88
-_08143D68:
- .4byte 0x40000000
-_08143D6C:
- ldr r7, _08143E00 @ =gUnknown_0203AB88
- ldr r6, [r7]
- adds r4, r6, 0
- adds r4, 0x94
- adds r0, r6, 0
- adds r0, 0xA0
- ldr r0, [r0]
- ldr r1, _08143E04 @ =0x40000000
- bl __subsf3
- adds r1, r0, 0
- ldr r0, [r4]
- bl __gesf2
- cmp r0, 0
- blt _08143DF8
-_08143D8C:
- adds r1, r6, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, [r7]
- ldrb r1, [r2, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8143B14
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8143AC8
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, _08143E08 @ =sub_8143C90
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- ldr r3, [r7]
- adds r2, r3, 0
- adds r2, 0x9C
- adds r1, r3, 0
- adds r1, 0x98
- ldr r0, _08143E0C @ =0x00000000
- str r0, [r1]
- str r0, [r2]
- subs r1, 0xC
- ldr r0, _08143E10 @ =0xBF800000
- str r0, [r1]
-_08143DF8:
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143E00:
- .4byte gUnknown_0203AB88
-_08143E04:
- .4byte 0x40000000
-_08143E08:
- .4byte sub_8143C90
-_08143E0C:
- .4byte 0x00000000
-_08143E10:
- .4byte 0xBF800000
- thumb_func_end sub_8143CFC
-
- thumb_func_start sub_8143E14
-sub_8143E14: @ 8143E14
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- adds r7, r0, 0
- bl sub_8143B84
- movs r1, 0x34
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08143E32
- cmp r0, 0xB4
- beq _08143E9C
- b _08143F80
-_08143E32:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0x1
- bne _08143E3C
- b _08143F80
-_08143E3C:
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r9, r0
- ldr r0, =gUnknown_085B6348
- mov r10, r0
- ldr r1, =gUnknown_0203AB88
- mov r8, r1
- ldr r0, [r1]
- ldrb r4, [r0, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r10
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r9
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r10
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r10
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r9
- bl __divsf3
- b _08143EFC
- .pool
-_08143E9C:
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08143F80
- movs r1, 0x3C
- ldrsh r0, [r7, r1]
- bl __floatsisf
- mov r9, r0
- ldr r0, _08143F90 @ =gUnknown_085B6348
- mov r10, r0
- ldr r1, _08143F94 @ =gUnknown_0203AB88
- mov r8, r1
- ldr r0, [r1]
- ldrb r4, [r0, 0x4]
- lsls r4, 30
- lsrs r0, r4, 25
- add r0, r10
- ldrb r0, [r0, 0x1]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r9
- bl __mulsf3
- adds r6, r0, 0
- lsrs r0, r4, 25
- add r0, r10
- ldrb r0, [r0, 0x2]
- subs r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r6, 0
- bl __addsf3
- adds r5, r0, 0
- lsrs r4, 25
- add r4, r10
- ldrh r0, [r4, 0xC]
- bl __floatsisf
- adds r1, r0, 0
- mov r0, r9
- bl __divsf3
- bl __negsf2
-_08143EFC:
- adds r2, r0, 0
- mov r0, r8
- ldr r6, [r0]
- adds r1, r6, 0
- adds r1, 0xA0
- adds r0, r6, 0
- adds r0, 0x94
- ldr r0, [r0]
- str r0, [r1]
- adds r0, r6, 0
- adds r0, 0x98
- str r2, [r0]
- movs r0, 0x9C
- adds r0, r6
- mov r8, r0
- adds r0, r2, 0
- adds r1, r2, 0
- bl __addsf3
- adds r1, r5, 0
- bl __divsf3
- adds r4, r0, 0
- adds r0, r5, 0
- adds r1, r5, 0
- bl __mulsf3
- adds r1, r0, 0
- ldr r0, _08143F98 @ =0x40000000
- bl __divsf3
- adds r1, r0, 0
- adds r0, r4, 0
- bl __addsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x8C
- ldr r0, _08143F9C @ =0x00000000
- str r0, [r1]
- adds r2, r7, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r0, r7, 0
- adds r0, 0x2A
- movs r2, 0
- strb r2, [r0]
- adds r3, r7, 0
- adds r3, 0x3F
- ldrb r0, [r3]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r3]
- ldr r0, _08143FA0 @ =sub_8143CFC
- str r0, [r7, 0x1C]
- strh r2, [r7, 0x32]
-_08143F80:
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08143F90:
- .4byte gUnknown_085B6348
-_08143F94:
- .4byte gUnknown_0203AB88
-_08143F98:
- .4byte 0x40000000
-_08143F9C:
- .4byte 0x00000000
-_08143FA0:
- .4byte sub_8143CFC
- thumb_func_end sub_8143E14
-
- thumb_func_start sub_8143FA4
-sub_8143FA4: @ 8143FA4
- push {r4,r5,lr}
- adds r5, r0, 0
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, =0x3d4ccccd
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- adds r1, r0, 0
- subs r1, 0x2D
- strh r1, [r5, 0x26]
- ldrh r0, [r5, 0x32]
- adds r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x1D
- ble _0814403E
- lsls r0, r1, 16
- cmp r0, 0
- blt _0814403E
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- adds r0, 0x7D
- movs r1, 0xFF
- strb r1, [r0]
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8143B14
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8143AC8
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, =sub_8143C90
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- ldr r2, [r4]
- ldrb r0, [r2, 0x3]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2, 0x3]
-_0814403E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8143FA4
-
- thumb_func_start sub_8144050
-sub_8144050: @ 8144050
- push {r4,lr}
- adds r3, r0, 0
- ldrh r0, [r3, 0x32]
- adds r1, r0, 0x1
- strh r1, [r3, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x2C
- bgt _08144098
- ldrh r4, [r3, 0x26]
- subs r0, r4, 0x1
- strh r0, [r3, 0x26]
- lsls r0, r1, 16
- asrs r0, 16
- cmp r0, 0x2D
- bne _0814411E
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _0814411E
- strh r4, [r3, 0x26]
- b _0814411E
- .pool
-_08144098:
- lsls r0, r1, 16
- asrs r0, 16
- movs r2, 0x3C
- ldrsh r1, [r3, r2]
- cmp r0, r1
- bge _081440E4
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r0, r2
- adds r0, r1, 0
- adds r0, 0x2C
- ldrb r0, [r0]
- lsls r0, 26
- cmp r0, 0
- bne _0814411E
- adds r0, r1, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081440DC
- ldrh r0, [r3, 0x26]
- adds r0, 0x1
- strh r0, [r3, 0x26]
- b _0814411E
- .pool
-_081440DC:
- ldrh r0, [r3, 0x26]
- subs r0, 0x1
- strh r0, [r3, 0x26]
- b _0814411E
-_081440E4:
- adds r2, r3, 0
- adds r2, 0x2C
- ldrb r1, [r2]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- adds r1, r3, 0
- adds r1, 0x2A
- movs r2, 0
- movs r0, 0x1
- strb r0, [r1]
- movs r0, 0x3F
- adds r0, r3
- mov r12, r0
- ldrb r0, [r0]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- mov r1, r12
- strb r0, [r1]
- strh r2, [r3, 0x32]
- ldr r0, =sub_8143FA4
- str r0, [r3, 0x1C]
- movs r0, 0x3D
- bl m4aSongNumStart
-_0814411E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144050
-
- thumb_func_start sub_8144128
-sub_8144128: @ 8144128
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8143B84
- movs r0, 0x34
- ldrsh r1, [r4, r0]
- cmp r1, 0x5A
- beq _08144142
- movs r0, 0x87
- lsls r0, 1
- cmp r1, r0
- beq _0814414C
- b _0814415C
-_08144142:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0814415C
- b _08144154
-_0814414C:
- movs r1, 0x2E
- ldrsh r0, [r4, r1]
- cmp r0, 0
- beq _0814415C
-_08144154:
- ldr r0, =sub_8144050
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x32]
-_0814415C:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144128
-
- thumb_func_start sub_8144168
-sub_8144168: @ 8144168
- push {r4,lr}
- adds r4, r0, 0
- bl sub_8143B84
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldrb r0, [r0, 0x3]
- lsls r0, 27
- lsrs r0, 27
- cmp r0, 0
- beq _08144182
- cmp r0, 0x1
- beq _08144194
-_08144182:
- adds r0, r4, 0
- bl sub_81446DC
- ldr r0, =sub_8143E14
- b _0814419C
- .pool
-_08144194:
- adds r0, r4, 0
- bl sub_81448B8
- ldr r0, =sub_8144128
-_0814419C:
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144168
-
- thumb_func_start prev_quest_read_x24_hm_usage
-prev_quest_read_x24_hm_usage: @ 81441A8
- push {r4,r5,lr}
- adds r5, r0, 0
- bl sub_8143B84
- ldrh r0, [r5, 0x32]
- subs r0, 0x1
- strh r0, [r5, 0x32]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0xF
- bne _081441CE
- ldr r0, =gUnknown_0203AB88
- ldr r4, [r0]
- adds r4, 0x98
- ldr r0, [r4]
- ldr r1, =0xbf800000
- bl __mulsf3
- str r0, [r4]
-_081441CE:
- movs r1, 0x32
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0814425C
- movs r1, 0x2E
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _08144244
- ldr r2, =gUnknown_0203AB88
- ldr r0, [r2]
- adds r0, 0x7D
- movs r1, 0xFF
- strb r1, [r0]
- ldr r2, [r2]
- ldrb r1, [r2, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r5, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r5, 0
- bl StartSpriteAnim
- adds r0, r5, 0
- bl sub_8143B14
- movs r0, 0x1E
- strh r0, [r5, 0x36]
- adds r0, r5, 0
- bl sub_8143AC8
- movs r1, 0x3A
- ldrsh r0, [r5, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r5, 0x3A]
- ldr r0, =sub_8143C90
- str r0, [r5, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _0814425C
- .pool
-_08144244:
- adds r0, r5, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- movs r0, 0x38
- bl m4aSongNumStart
- adds r0, r5, 0
- bl sub_8144A24
-_0814425C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end prev_quest_read_x24_hm_usage
-
- thumb_func_start sub_8144264
-sub_8144264: @ 8144264
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_8143B84
- movs r0, 0
- strh r0, [r6, 0x32]
- adds r0, r6, 0
- bl sub_8143B14
- ldr r1, _081442F0 @ =gUnknown_085B62E4
- ldr r4, _081442F4 @ =gUnknown_0203AB88
- ldr r2, [r4]
- adds r0, r2, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- lsls r0, 3
- adds r1, 0x4
- adds r0, r1
- ldr r0, [r0]
- ldr r1, [r2, 0x8]
- ands r0, r1
- cmp r0, 0
- bne _081442FC
- adds r1, r2, 0
- adds r1, 0x7D
- movs r0, 0xFF
- strb r0, [r1]
- ldr r2, [r4]
- ldrb r1, [r2, 0x3]
- movs r0, 0x7F
- ands r0, r1
- strb r0, [r2, 0x3]
- adds r0, r6, 0
- adds r0, 0x2B
- ldrb r1, [r0]
- adds r1, 0x3
- lsls r1, 24
- lsrs r1, 24
- adds r0, r6, 0
- bl StartSpriteAnim
- adds r0, r6, 0
- bl sub_8143B14
- movs r0, 0x1E
- strh r0, [r6, 0x36]
- adds r0, r6, 0
- bl sub_8143AC8
- movs r1, 0x3A
- ldrsh r0, [r6, r1]
- movs r1, 0x1E
- bl __divsi3
- lsls r0, 16
- asrs r0, 16
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0xF
- strh r1, [r6, 0x3A]
- ldr r0, _081442F8 @ =sub_8143C90
- str r0, [r6, 0x1C]
- movs r0, 0x47
- bl m4aSongNumStartOrChange
- b _081443F8
- .align 2, 0
-_081442F0:
- .4byte gUnknown_085B62E4
-_081442F4:
- .4byte gUnknown_0203AB88
-_081442F8:
- .4byte sub_8143C90
-_081442FC:
- movs r0, 0x38
- bl m4aSongNumStart
- bl Random
- movs r1, 0x1
- mov r8, r1
- ands r1, r0
- mov r8, r1
- cmp r1, 0
- beq _08144340
- ldr r4, [r4]
- adds r1, r4, 0
- adds r1, 0x8C
- ldr r0, _08144338 @ =0x00000000
- str r0, [r1]
- adds r0, r4, 0
- adds r0, 0x7E
- ldrb r0, [r0]
- adds r0, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r1, r0, 24
- lsrs r2, r1, 24
- adds r1, r4, 0
- adds r1, 0x7F
- strb r0, [r1]
- ldr r5, _0814433C @ =gUnknown_085B6348
- b _08144378
-_08144338:
- .4byte 0x00000000
-_0814433C:
- .4byte gUnknown_085B6348
-_08144340:
- ldr r7, [r4]
- adds r4, r7, 0
- adds r4, 0x8C
- ldr r5, =gUnknown_085B6348
- ldrb r0, [r7, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r1, r5, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, [r0]
- adds r0, r1, 0
- bl __addsf3
- str r0, [r4]
- adds r0, r7, 0
- adds r0, 0x7E
- ldrb r4, [r0]
- adds r0, r4, 0
- adds r0, 0xB
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r2, r0, 24
- adds r0, r7, 0
- adds r0, 0x7F
- strb r4, [r0]
-_08144378:
- ldr r0, =gUnknown_085B62E4
- lsls r1, r2, 3
- adds r0, 0x4
- adds r1, r0
- ldr r2, =gUnknown_0203AB88
- ldr r3, [r2]
- ldr r1, [r1]
- ldr r0, [r3, 0x8]
- ands r1, r0
- cmp r1, 0
- beq _081443AC
- movs r0, 0x1
- strh r0, [r6, 0x2E]
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r6, 0x32]
- b _081443E8
- .pool
-_081443AC:
- strh r1, [r6, 0x2E]
- ldrb r1, [r3, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0
- beq _081443C4
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x1]
- strh r0, [r6, 0x32]
- b _081443E8
-_081443C4:
- lsls r0, r1, 30
- lsrs r0, 25
- adds r0, r5
- ldrb r0, [r0, 0x2]
- strh r0, [r6, 0x32]
- mov r0, r8
- cmp r0, 0
- beq _081443E0
- adds r1, r3, 0
- adds r1, 0x8C
- ldr r0, =0x3f000000
- b _081443E6
- .pool
-_081443E0:
- adds r1, r3, 0
- adds r1, 0x8C
- ldr r0, =0xbfc00000
-_081443E6:
- str r0, [r1]
-_081443E8:
- ldr r0, [r2]
- adds r0, 0x98
- ldr r1, =0x3dae147b
- str r1, [r0]
- ldr r0, =prev_quest_read_x24_hm_usage
- str r0, [r6, 0x1C]
- movs r0, 0x5
- strh r0, [r6, 0x30]
-_081443F8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144264
-
- thumb_func_start sub_8144410
-sub_8144410: @ 8144410
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- adds r6, r0, 0
- bl sub_8143B84
- ldr r4, _081444A4 @ =gUnknown_0203AB88
- ldr r0, [r4]
- adds r0, 0x8C
- ldr r0, [r0]
- ldr r1, _081444A8 @ =0x3F000000
- bl __gtsf2
- cmp r0, 0
- bgt _081444FA
- adds r0, r6, 0
- bl sub_8143B14
- adds r0, r6, 0
- bl sub_8143B48
- lsls r0, 16
- cmp r0, 0
- bne _081444BC
- ldr r2, [r4]
- adds r1, r2, 0
- adds r1, 0x90
- ldr r0, _081444AC @ =0x00000000
- str r0, [r1]
- movs r0, 0x8C
- adds r0, r2
- mov r8, r0
- ldr r1, _081444B0 @ =gUnknown_085B6348
- mov r9, r1
- ldrb r0, [r2, 0x4]
- lsls r7, r0, 30
- lsrs r0, r7, 25
- add r0, r9
- movs r4, 0x3
- ldrsb r4, [r0, r4]
- adds r0, r4, 0
- bl __floatsisf
- adds r5, r0, 0
- cmp r4, 0
- bge _08144476
- ldr r1, _081444B4 @ =0x43800000
- bl __addsf3
- adds r5, r0, 0
-_08144476:
- lsrs r0, r7, 25
- add r0, r9
- ldrb r0, [r0, 0x4]
- adds r0, 0x1
- bl __floatsisf
- adds r1, r0, 0
- adds r0, r5, 0
- bl __divsf3
- adds r1, r0, 0
- mov r2, r8
- ldr r0, [r2]
- bl __subsf3
- mov r1, r8
- str r0, [r1]
- movs r0, 0x4
- strh r0, [r6, 0x30]
- ldr r0, _081444B8 @ =sub_8144264
- str r0, [r6, 0x1C]
- b _081444FA
- .align 2, 0
-_081444A4:
- .4byte gUnknown_0203AB88
-_081444A8:
- .4byte 0x3F000000
-_081444AC:
- .4byte 0x00000000
-_081444B0:
- .4byte gUnknown_085B6348
-_081444B4:
- .4byte 0x43800000
-_081444B8:
- .4byte sub_8144264
-_081444BC:
- ldr r4, [r4]
- adds r7, r4, 0
- adds r7, 0x90
- ldr r0, [r7]
- ldr r6, _08144508 @ =0x00000000
- adds r1, r6, 0
- bl __nesf2
- cmp r0, 0
- beq _081444FA
- adds r5, r4, 0
- adds r5, 0x8C
- ldr r0, [r5]
- adds r1, r6, 0
- bl __ltsf2
- cmp r0, 0
- bge _081444FA
- str r6, [r7]
- str r6, [r5]
- adds r4, 0x98
- ldr r0, [r4]
- bl __extendsfdf2
- ldr r2, _0814450C @ =0x3FF33333
- ldr r3, _08144510 @ =0x33333333
- bl __divdf3
- bl __truncdfsf2
- str r0, [r4]
-_081444FA:
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08144508:
- .4byte 0x00000000
-_0814450C:
- .4byte 0x3FF33333
-_08144510:
- .4byte 0x33333333
- thumb_func_end sub_8144410
-
- thumb_func_start sub_8144514
-sub_8144514: @ 8144514
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_8143B84
- ldr r0, =gUnknown_0203AB88
- ldr r5, [r0]
- adds r0, r5, 0
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, =0x42200000
- bl __gtsf2
- cmp r0, 0
- bgt _081445B8
- movs r0, 0x98
- adds r0, r5
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x86
- movs r1, 0
- ldrsh r4, [r7, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08144556
- ldr r1, =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08144556:
- ldr r0, =0x40800000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- movs r0, 0x90
- adds r0, r5
- mov r8, r0
- adds r5, 0x8C
- movs r1, 0
- ldrsh r4, [r7, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08144586
- ldr r1, =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08144586:
- ldr r0, [r5]
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x2
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x3
- strh r0, [r6, 0x30]
- ldr r0, =sub_8144410
- str r0, [r6, 0x1C]
-_081445B8:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144514
-
- thumb_func_start sub_81445D8
-sub_81445D8: @ 81445D8
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- adds r6, r0, 0
- bl sub_8143B84
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- adds r0, 0x94
- ldr r0, [r0]
- ldr r1, =0x42700000
- bl __gtsf2
- cmp r0, 0
- bgt _0814468A
- movs r0, 0x5D
- bl m4aSongNumStartOrChange
- ldr r5, [r4]
- movs r0, 0x98
- adds r0, r5
- mov r8, r0
- adds r7, r5, 0
- adds r7, 0x84
- movs r1, 0
- ldrsh r4, [r7, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _08144620
- ldr r1, =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_08144620:
- ldr r0, =0x41a00000
- adds r1, r2, 0
- bl __divsf3
- bl __negsf2
- mov r1, r8
- str r0, [r1]
- movs r0, 0x90
- adds r0, r5
- mov r8, r0
- adds r0, r5, 0
- adds r0, 0x8C
- ldr r1, [r0]
- ldr r0, =0x3f800000
- bl __subsf3
- adds r5, r0, 0
- movs r1, 0
- ldrsh r4, [r7, r1]
- adds r0, r4, 0
- bl __floatsisf
- adds r2, r0, 0
- cmp r4, 0
- bge _0814465C
- ldr r1, =0x47800000
- bl __addsf3
- adds r2, r0, 0
-_0814465C:
- adds r0, r5, 0
- adds r1, r2, 0
- bl __divsf3
- mov r1, r8
- str r0, [r1]
- adds r1, r6, 0
- adds r1, 0x2A
- movs r0, 0x1
- strb r0, [r1]
- adds r2, r6, 0
- adds r2, 0x3F
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- movs r1, 0x11
- negs r1, r1
- ands r0, r1
- strb r0, [r2]
- movs r0, 0x2
- strh r0, [r6, 0x30]
- ldr r0, =sub_8144514
- str r0, [r6, 0x1C]
-_0814468A:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81445D8
-
- thumb_func_start sub_81446AC
-sub_81446AC: @ 81446AC
- push {r4,lr}
- adds r4, r0, 0
- movs r1, 0
- movs r0, 0x1
- strh r0, [r4, 0x30]
- strh r1, [r4, 0x32]
- adds r0, r4, 0
- bl sub_8143B84
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldr r0, =sub_81445D8
- str r0, [r4, 0x1C]
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81446AC
-
- thumb_func_start sub_81446DC
-sub_81446DC: @ 81446DC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- mov r8, r0
- ldr r1, =gUnknown_085B7B0A
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- mov r1, r8
- ldrh r0, [r1, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r5, =gUnknown_0203AB88
- ldr r0, =gSpriteTemplate_85B79F8
- movs r2, 0xC
- negs r2, r2
- movs r1, 0x24
- movs r3, 0x32
- bl CreateSprite
- ldr r1, [r5]
- adds r1, 0x73
- strb r0, [r1]
- ldr r4, =gSpriteTemplate_85B7ABC
- mov r3, r8
- movs r0, 0x2E
- ldrsh r2, [r3, r0]
- lsls r2, 2
- mov r1, sp
- adds r0, r1, r2
- movs r3, 0
- ldrsh r1, [r0, r3]
- mov r0, sp
- adds r0, 0x2
- adds r0, r2
- movs r3, 0
- ldrsh r2, [r0, r3]
- adds r0, r4, 0
- movs r3, 0x3B
- bl CreateSprite
- ldr r1, [r5]
- adds r1, 0x74
- strb r0, [r1]
- adds r4, 0x18
- adds r0, r4, 0
- movs r1, 0x24
- movs r2, 0x8C
- movs r3, 0x33
- bl CreateSprite
- ldr r1, [r5]
- adds r1, 0x75
- strb r0, [r1]
- ldr r3, =gSprites
- ldr r0, [r5]
- adds r0, 0x75
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r3
- ldrb r2, [r0, 0x1]
- movs r1, 0xD
- negs r1, r1
- ands r1, r2
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0, 0x1]
- movs r7, 0
- adds r6, r3, 0
- ldr r0, =gUnknown_085B6348
- mov r12, r0
- mov r10, r5
-_0814477C:
- ldr r0, [r5]
- adds r3, r7, 0
- adds r3, 0x37
- adds r0, 0x3C
- adds r0, r3
- ldrb r0, [r0]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- adds r1, 0x3E
- ldrb r2, [r1]
- movs r0, 0x3
- negs r0, r0
- ands r0, r2
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x4
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x3C
- adds r0, r3
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldr r4, [r5]
- adds r2, r4, 0
- adds r2, 0x3C
- adds r2, r3
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r1, r4, 0
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r1, r4, 0
- adds r1, 0x74
- ldrb r1, [r1]
- strh r1, [r0, 0x38]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r1, r4, 0
- adds r1, 0x75
- ldrb r1, [r1]
- strh r1, [r0, 0x3A]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r1, r9
- strh r1, [r0, 0x32]
- ldrb r0, [r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r6
- mov r0, r8
- movs r1, 0x3C
- ldrsh r3, [r0, r1]
- ldrb r1, [r4, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- add r0, r12
- ldrb r0, [r0, 0x1]
- muls r3, r0
- lsrs r1, 25
- add r1, r12
- ldrb r0, [r1, 0x2]
- ldr r1, =0x0000ffff
- adds r0, r1
- adds r3, r0
- strh r3, [r2, 0x34]
- adds r0, r7, 0x1
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gSprites
- cmp r7, 0x2
- bls _0814477C
- mov r3, r10
- ldr r0, [r3]
- adds r0, 0x74
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r1, [r0]
- movs r2, 0x2
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r3]
- mov r1, r8
- str r1, [r0, 0x38]
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81446DC
-
- thumb_func_start sub_81448B8
-sub_81448B8: @ 81448B8
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0x8
- adds r7, r0, 0
- movs r0, 0
- mov r8, r0
- ldr r1, =gUnknown_085B7B12
- mov r0, sp
- movs r2, 0x8
- bl memcpy
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2
- lsls r0, 16
- lsrs r0, 16
- mov r9, r0
- ldr r0, =gSpriteTemplate_85B7A10
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- mov r4, sp
- adds r4, 0x2
- adds r2, r4, r2
- movs r3, 0
- ldrsh r2, [r2, r3]
- movs r3, 0x32
- bl CreateSprite
- ldr r5, =gUnknown_0203AB88
- ldr r1, [r5]
- adds r1, 0x73
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r6, =gSprites
- adds r0, r6
- ldrh r1, [r7, 0x2E]
- lsls r1, 24
- lsrs r1, 24
- bl StartSpriteAnim
- ldr r0, =gUnknown_085B7AEC
- movs r1, 0x2E
- ldrsh r2, [r7, r1]
- lsls r2, 2
- mov r3, sp
- adds r1, r3, r2
- movs r3, 0
- ldrsh r1, [r1, r3]
- adds r4, r2
- movs r3, 0
- ldrsh r2, [r4, r3]
- movs r3, 0x33
- bl CreateSprite
- ldr r1, [r5]
- adds r1, 0x74
- strb r0, [r1]
- ldr r0, [r5]
- adds r0, 0x74
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x80
- orrs r1, r2
- strb r1, [r0]
- ldr r0, [r5]
- adds r0, 0x74
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r2, 0x40
- orrs r1, r2
- strb r1, [r0]
- mov r0, r9
- lsls r2, r0, 16
- asrs r2, 16
- ldr r3, =gUnknown_085B6348
- ldr r0, [r5]
- ldrb r1, [r0, 0x4]
- lsls r1, 30
- lsrs r0, r1, 25
- adds r0, r3
- ldrb r0, [r0, 0x1]
- muls r2, r0
- lsrs r1, 25
- adds r1, r3
- ldrh r0, [r1, 0x10]
- adds r0, 0x2D
- adds r2, r0
- strh r2, [r7, 0x3C]
-_08144992:
- ldr r0, =gUnknown_0203AB88
- ldr r4, [r0]
- mov r1, r8
- adds r2, r4, r1
- adds r2, 0x73
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r1, r4, 0
- adds r1, 0x73
- ldrb r1, [r1]
- strh r1, [r0, 0x36]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- adds r3, r4, 0
- adds r3, 0x74
- ldrb r1, [r3]
- strh r1, [r0, 0x38]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- ldrb r1, [r3]
- strh r1, [r0, 0x3A]
- ldrb r1, [r2]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r6
- mov r3, r9
- strh r3, [r0, 0x32]
- ldrb r0, [r2]
- lsls r1, r0, 4
- adds r1, r0
- lsls r1, 2
- adds r1, r6
- ldrh r0, [r7, 0x3C]
- subs r0, 0x2D
- strh r0, [r1, 0x34]
- mov r0, r8
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- cmp r0, 0x1
- bls _08144992
- str r7, [r4, 0x38]
- add sp, 0x8
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81448B8
-
- thumb_func_start sub_8144A24
-sub_8144A24: @ 8144A24
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x14
- adds r7, r0, 0
- movs r0, 0
- mov r9, r0
- movs r1, 0x5
- mov r8, r1
- str r0, [sp, 0xC]
- mov r0, sp
- movs r1, 0
- movs r2, 0xA
- bl memset
- bl Random
- lsls r0, 16
- lsrs r0, 16
- str r0, [sp, 0x10]
- ldr r3, _08144B10 @ =gUnknown_0203AB88
- ldr r0, [r3]
- adds r0, 0x7D
- movs r5, 0x1
- strb r5, [r0]
- ldr r2, [r3]
- ldrb r0, [r2, 0x3]
- movs r1, 0x20
- orrs r0, r1
- strb r0, [r2, 0x3]
- ldr r2, [r3]
- ldrb r1, [r2, 0x3]
- movs r0, 0x41
- negs r0, r0
- ands r0, r1
- strb r0, [r2, 0x3]
- ldr r0, [r3]
- adds r0, 0x7E
- movs r1, 0xFF
- strb r1, [r0]
- ldr r6, [r3]
- adds r4, r6, 0
- adds r4, 0x88
- movs r1, 0x34
- ldrsh r0, [r7, r1]
- bl __floatsisf
- str r0, [r4]
- adds r1, r6, 0
- adds r1, 0x98
- ldr r0, _08144B14 @ =0x00000000
- str r0, [r1]
- adds r2, r6, 0
- adds r2, 0x8C
- ldr r1, _08144B18 @ =gUnknown_085B6348
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r1, 0x1C
- adds r0, r1
- ldr r0, [r0]
- str r0, [r2]
- ldrb r0, [r6, 0x4]
- lsls r0, 30
- lsrs r0, 30
- lsls r1, r0, 4
- subs r1, r0
- lsls r1, 1
- adds r1, 0x21
- ldrb r0, [r6, 0x3]
- lsls r0, 27
- lsrs r0, 27
- subs r5, r0
- lsls r0, r5, 4
- subs r0, r5
- adds r1, r0
- lsls r1, 16
- lsrs r1, 16
- mov r5, r9
- movs r0, 0x34
- ldrsh r2, [r7, r0]
-_08144ACA:
- cmp r1, r2
- bge _08144AD6
- adds r0, r1, 0
- adds r0, 0x5A
- cmp r2, r0
- ble _08144B38
-_08144AD6:
- cmp r5, 0x3
- beq _08144B1C
- adds r0, r1, 0
- adds r0, 0x5A
- lsls r0, 16
- lsrs r1, r0, 16
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0x3
- bls _08144ACA
-_08144AEC:
- ldr r0, _08144B10 @ =gUnknown_0203AB88
- ldr r0, [r0]
- ldrb r1, [r0, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0
- beq _08144B64
- movs r1, 0x2E
- ldrsh r0, [r7, r1]
- cmp r0, 0
- beq _08144B58
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
- b _08144B70
- .align 2, 0
-_08144B10:
- .4byte gUnknown_0203AB88
-_08144B14:
- .4byte 0x00000000
-_08144B18:
- .4byte gUnknown_085B6348
-_08144B1C:
- movs r0, 0x1
- strh r0, [r7, 0x2E]
- ldr r0, =gUnknown_0203AB88
- ldr r2, [r0]
- ldrb r1, [r2, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r1
- movs r1, 0x1
- orrs r0, r1
- strb r0, [r2, 0x3]
- b _08144AEC
- .pool
-_08144B38:
- lsrs r0, r5, 1
- strh r0, [r7, 0x2E]
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- movs r1, 0x1
- ands r1, r5
- ldrb r2, [r3, 0x3]
- movs r0, 0x20
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3, 0x3]
- b _08144AEC
- .pool
-_08144B58:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _08144B70
-_08144B64:
- movs r0, 0x99
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_08144B70:
- movs r0, 0x2
- mov r10, r0
- ldr r4, =gUnknown_0203AB88
- ldr r5, [r4]
- adds r0, r5, 0
- adds r0, 0x7F
- ldrb r0, [r0]
- adds r0, 0x2
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- ldrb r1, [r5, 0x3]
- movs r0, 0x1F
- ands r0, r1
- cmp r0, 0x1
- bne _08144BA8
- ldrb r1, [r5, 0x4]
- movs r0, 0x3
- ands r0, r1
- cmp r0, 0x1
- bne _08144BA8
- mov r0, r8
- adds r0, 0x6
- b _08144BAC
- .pool
-_08144BA8:
- mov r0, r8
- add r0, r10
-_08144BAC:
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- mov r5, r10
- cmp r5, r8
- bcs _08144C18
- ldr r1, =gUnknown_085B6154+0xC
- mov r10, r1
-_08144BBC:
- ldr r3, [r4]
- lsls r0, r6, 3
- ldr r1, =gUnknown_085B62E4+0x4
- adds r0, r1
- ldr r1, [r3, 0x8]
- ldr r2, [r0]
- ands r1, r2
- cmp r1, 0
- bne _08144C02
- mov r0, r9
- adds r1, r0, 0x1
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- add r0, sp
- strb r5, [r0]
- ldr r0, [sp, 0xC]
- cmp r0, 0
- bne _08144C02
- ldrb r1, [r3, 0x1A]
- lsls r1, 28
- lsrs r1, 28
- adds r0, r3, 0
- adds r0, 0x1B
- adds r0, r1
- ldrb r1, [r0]
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 2
- add r0, r10
- ldr r0, [r0]
- ands r2, r0
- cmp r2, 0
- beq _08144C02
- str r5, [sp, 0xC]
-_08144C02:
- adds r0, r6, 0x1
- movs r1, 0xC
- bl __modsi3
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, r8
- bcc _08144BBC
-_08144C18:
- ldr r0, [r4]
- ldrb r1, [r0, 0x3]
- lsls r1, 27
- lsrs r1, 27
- adds r1, 0x1
- ldrb r0, [r0, 0x2]
- ands r1, r0
- cmp r1, 0
- beq _08144C48
- ldr r1, [sp, 0xC]
- cmp r1, 0
- beq _08144C48
- movs r0, 0xFF
- ldr r1, [sp, 0x10]
- ands r0, r1
- cmp r0, 0xBF
- bhi _08144C48
- mov r0, sp
- ldrh r0, [r0, 0xC]
- b _08144C54
- .pool
-_08144C48:
- ldr r0, [sp, 0x10]
- mov r1, r9
- bl __modsi3
- add r0, sp
- ldrb r0, [r0]
-_08144C54:
- strh r0, [r7, 0x3C]
- ldr r1, =sub_8144168
- str r1, [r7, 0x1C]
- add sp, 0x14
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144A24
-
- thumb_func_start sub_8144C70
-sub_8144C70: @ 8144C70
- push {r4,lr}
- adds r2, r0, 0
- ldrh r0, [r2, 0x30]
- adds r1, r0, 0x1
- strh r1, [r2, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r2, r3]
- cmp r0, r1
- blt _08144CC0
- ldrh r0, [r2, 0x20]
- subs r0, 0x2
- strh r0, [r2, 0x20]
- lsls r0, 16
- asrs r0, 16
- movs r1, 0x10
- negs r1, r1
- cmp r0, r1
- bge _08144CC0
- ldr r4, =gUnknown_0203AB88
- ldr r3, [r4]
- ldrb r1, [r3, 0x3]
- movs r0, 0x40
- ands r0, r1
- cmp r0, 0
- bne _08144CAC
- movs r0, 0x40
- orrs r0, r1
- strb r0, [r3, 0x3]
-_08144CAC:
- adds r0, r2, 0
- bl DestroySprite
- ldr r1, [r4]
- movs r0, 0
- strb r0, [r1, 0x1]
- ldr r1, [r4]
- ldr r0, =gUnknown_085B7B1A
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
-_08144CC0:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144C70
-
- thumb_func_start sub_8144CD0
-sub_8144CD0: @ 8144CD0
- push {r4,lr}
- sub sp, 0x18
- adds r4, r0, 0
- ldr r1, =gUnknown_085B7B2E
- mov r0, sp
- movs r2, 0x18
- bl memcpy
- ldrh r0, [r4, 0x30]
- adds r2, r0, 0x1
- strh r2, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- movs r3, 0x34
- ldrsh r1, [r4, r3]
- cmp r0, r1
- bge _08144D54
- movs r0, 0x1
- ands r2, r0
- cmp r2, 0
- beq _08144D2E
- ldr r3, =gSpriteCoordOffsetY
- movs r0, 0x3C
- ldrsh r2, [r4, r0]
- lsls r2, 1
- movs r1, 0x32
- ldrsh r0, [r4, r1]
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 3
- adds r2, r0
- mov r1, sp
- adds r0, r1, r2
- ldrh r0, [r0]
- strh r0, [r3]
- movs r3, 0x3C
- ldrsh r2, [r4, r3]
- adds r1, r2, 0x1
- adds r0, r1, 0
- cmp r1, 0
- bge _08144D26
- adds r0, r2, 0x4
-_08144D26:
- asrs r0, 2
- lsls r0, 2
- subs r0, r1, r0
- strh r0, [r4, 0x3C]
-_08144D2E:
- adds r3, r4, 0
- adds r3, 0x3E
- ldrb r2, [r3]
- lsls r0, r2, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r2
- orrs r0, r1
- strb r0, [r3]
- b _08144D7E
- .pool
-_08144D54:
- ldr r1, =gSpriteCoordOffsetY
- movs r0, 0
- strh r0, [r1]
- ldr r2, =gSprites
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- adds r0, 0x73
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x41
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- adds r0, r4, 0
- bl DestroySprite
-_08144D7E:
- add sp, 0x18
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144CD0
-
- thumb_func_start sub_8144D94
-sub_8144D94: @ 8144D94
- push {r4,r5,lr}
- adds r5, r0, 0
- ldrh r0, [r5, 0x30]
- adds r0, 0x1
- strh r0, [r5, 0x30]
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- bl __floatsisf
- adds r4, r0, 0
- ldr r1, =0x3d1fbe77
- bl __mulsf3
- adds r1, r4, 0
- bl __mulsf3
- bl __fixsfsi
- strh r0, [r5, 0x26]
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- ldr r2, =gUnknown_085B7B1A
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _08144DDC
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_08144DDC:
- movs r1, 0x30
- ldrsh r0, [r5, r1]
- cmp r0, 0x3C
- ble _08144E3E
- movs r0, 0
- strh r0, [r5, 0x30]
- ldr r3, =sub_8144C70
- str r3, [r5, 0x1C]
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r4, r2, 0
- adds r4, 0x1C
- adds r0, r4
- str r3, [r0]
- movs r0, 0x3A
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =0x0000fffe
- strh r1, [r0, 0x30]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- movs r0, 0x38
- ldrsh r1, [r5, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r4
- ldr r1, =sub_8144CD0
- str r1, [r0]
- movs r0, 0xD6
- bl m4aSongNumStart
-_08144E3E:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144D94
-
- thumb_func_start sub_8144E60
-sub_8144E60: @ 8144E60
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r1, 0x3C
- ldrsh r0, [r4, r1]
- cmp r0, 0
- bne _08144EE4
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08144E94
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- b _08144EA6
- .pool
-_08144E94:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x8]
- adds r0, 0xB4
-_08144EA6:
- cmp r2, r0
- bne _08144F7C
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r1, [r2]
- movs r0, 0x5
- negs r0, r0
- ands r0, r1
- strb r0, [r2]
- ldrh r0, [r4, 0x3C]
- adds r0, 0x1
- strh r0, [r4, 0x3C]
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r2, =gUnknown_0203AB88
- ldr r1, [r2]
- movs r0, 0x1
- strb r0, [r1, 0x1]
- ldr r1, [r2]
- ldr r0, =gUnknown_085B7B1A
- ldrh r0, [r0]
- strh r0, [r1, 0x34]
- b _08144F7C
- .pool
-_08144EE4:
- ldr r5, =gUnknown_0203AB88
- ldr r3, [r5]
- ldr r2, =gUnknown_085B7B1A
- ldrb r0, [r3, 0x1]
- subs r0, 0x1
- lsrs r1, r0, 31
- adds r0, r1
- asrs r0, 1
- lsls r0, 1
- adds r0, r2
- ldrh r0, [r0]
- strh r0, [r3, 0x34]
- ldrb r0, [r3, 0x1]
- cmp r0, 0x12
- bhi _08144F06
- adds r0, 0x1
- strb r0, [r3, 0x1]
-_08144F06:
- ldr r3, [r5]
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _08144F30
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- b _08144F42
- .pool
-_08144F30:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0xA]
- adds r0, 0xB4
-_08144F42:
- cmp r2, r0
- bne _08144F7C
- ldr r2, =gSprites
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r1, r2, 0
- adds r1, 0x1C
- adds r0, r1
- ldr r1, =sub_8144D94
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x3E
- ldrb r2, [r0]
- movs r1, 0x5
- negs r1, r1
- ands r1, r2
- strb r1, [r0]
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- movs r0, 0
- strh r0, [r4, 0x3C]
-_08144F7C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144E60
-
- thumb_func_start sub_8144F94
-sub_8144F94: @ 8144F94
- adds r0, 0x3E
- ldrb r3, [r0]
- lsls r1, r3, 29
- lsrs r1, 31
- movs r2, 0x1
- eors r2, r1
- lsls r2, 2
- movs r1, 0x5
- negs r1, r1
- ands r1, r3
- orrs r1, r2
- strb r1, [r0]
- bx lr
- thumb_func_end sub_8144F94
-
- thumb_func_start sub_8144FB0
-sub_8144FB0: @ 8144FB0
- push {r4,r5,lr}
- adds r4, r0, 0
- ldrh r2, [r4, 0x22]
- movs r0, 0x22
- ldrsh r1, [r4, r0]
- movs r0, 0x10
- negs r0, r0
- cmp r1, r0
- ble _08144FC8
- subs r0, r2, 0x1
- strh r0, [r4, 0x22]
- b _0814501C
-_08144FC8:
- ldr r0, =SpriteCallbackDummy
- str r0, [r4, 0x1C]
- adds r2, r4, 0
- adds r2, 0x3E
- ldrb r0, [r2]
- movs r1, 0x4
- orrs r0, r1
- strb r0, [r2]
- subs r2, 0x12
- ldrb r0, [r2]
- movs r1, 0x40
- orrs r0, r1
- strb r0, [r2]
- movs r0, 0x5E
- bl m4aSongNumStop
- adds r0, r4, 0
- bl DestroySprite
- ldr r5, =gSprites
- ldr r4, =gUnknown_0203AB88
- ldr r0, [r4]
- adds r0, 0x74
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- ldrb r0, [r0, 0x3]
- lsls r0, 26
- lsrs r0, 27
- bl FreeOamMatrix
- ldr r0, [r4]
- adds r0, 0x74
- ldrb r1, [r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r5
- bl DestroySprite
-_0814501C:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8144FB0
-
- thumb_func_start sub_8145030
-sub_8145030: @ 8145030
- push {r4,lr}
- adds r4, r0, 0
- ldrh r1, [r4, 0x30]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _0814505A
- subs r1, 0x1
- strh r1, [r4, 0x30]
- ldrh r0, [r4, 0x22]
- subs r0, 0x1
- strh r0, [r4, 0x22]
- lsls r1, 16
- cmp r1, 0
- bne _081450C6
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _081450C6
- b _08145080
-_0814505A:
- ldrh r1, [r4, 0x34]
- movs r2, 0x34
- ldrsh r0, [r4, r2]
- cmp r0, 0
- blt _08145090
- subs r0, r1, 0x1
- strh r0, [r4, 0x34]
- adds r0, r4, 0
- adds r0, 0x2C
- ldrb r1, [r0]
- movs r0, 0x3F
- ands r0, r1
- cmp r0, 0
- bne _081450C6
- adds r0, r4, 0
- adds r0, 0x2B
- ldrb r0, [r0]
- cmp r0, 0x1
- bne _08145088
-_08145080:
- ldrh r0, [r4, 0x26]
- adds r0, 0x1
- strh r0, [r4, 0x26]
- b _081450C6
-_08145088:
- ldrh r0, [r4, 0x26]
- subs r0, 0x1
- strh r0, [r4, 0x26]
- b _081450C6
-_08145090:
- movs r0, 0x2B
- bl m4aSongNumStart
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x4
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- ldr r0, =sub_8144FB0
- str r0, [r4, 0x1C]
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- adds r0, 0x2C
- ldrb r2, [r0]
- movs r1, 0x7F
- ands r1, r2
- strb r1, [r0]
-_081450C6:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145030
-
- thumb_func_start sub_81450D8
-sub_81450D8: @ 81450D8
- push {r4,r5,lr}
- sub sp, 0x14
- adds r4, r0, 0
- ldr r1, =gUnknown_085B7B46
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- add r5, sp, 0x4
- ldr r1, =gUnknown_085B7B48
- adds r0, r5, 0
- movs r2, 0x10
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- asrs r0, 16
- cmp r0, 0x7
- ble _0814516C
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- bl IsSEPlaying
- lsls r0, 24
- cmp r0, 0
- beq _08145208
- movs r1, 0x20
- ldrsh r0, [r4, r1]
- movs r4, 0x74
- subs r4, r0
- lsrs r0, r4, 31
- adds r4, r0
- asrs r4, 1
- negs r4, r4
- ldr r0, =gMPlayInfo_SE1
- ldr r5, =0x0000ffff
- lsls r4, 24
- asrs r4, 24
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- ldr r0, =gMPlayInfo_SE2
- adds r1, r5, 0
- adds r2, r4, 0
- bl m4aMPlayPanpotControl
- b _08145208
- .pool
-_0814516C:
- lsls r0, r1, 16
- cmp r0, 0
- blt _081451BC
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- add r0, sp
- movs r2, 0
- ldrsb r2, [r0, r2]
- movs r1, 0x30
- ldrsh r0, [r4, r1]
- movs r1, 0x7
- subs r0, r1, r0
- lsls r0, 1
- adds r0, r5, r0
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- muls r0, r2
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- movs r2, 0x30
- ldrsh r0, [r4, r2]
- subs r1, r0
- lsls r1, 1
- mov r0, sp
- adds r0, 0x5
- adds r0, r1
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- ldrh r1, [r4, 0x22]
- adds r0, r1
- strh r0, [r4, 0x22]
- b _08145208
- .pool
-_081451BC:
- movs r0, 0x5E
- bl m4aSongNumStartOrChange
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r0, r2]
- cmp r0, 0
- bne _081451E0
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- bl PlayCry1
- b _081451EC
- .pool
-_081451E0:
- movs r0, 0x98
- lsls r0, 1
- movs r1, 0x3F
- negs r1, r1
- bl PlayCry1
-_081451EC:
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- ldrh r1, [r0, 0x2E]
- adds r1, 0x2
- lsls r1, 24
- lsrs r1, 24
- adds r0, r4, 0
- bl StartSpriteAnim
- movs r0, 0x2D
- strh r0, [r4, 0x30]
- ldr r0, =sub_8145030
- str r0, [r4, 0x1C]
-_08145208:
- add sp, 0x14
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_81450D8
-
- thumb_func_start sub_8145218
-sub_8145218: @ 8145218
- push {r4,lr}
- sub sp, 0x4
- adds r4, r0, 0
- ldr r1, =gUnknown_085B7B46
- mov r0, sp
- movs r2, 0x2
- bl memcpy
- ldrh r0, [r4, 0x30]
- subs r1, r0, 0x1
- strh r1, [r4, 0x30]
- lsls r0, 16
- cmp r0, 0
- blt _08145284
- ldr r0, =gUnknown_0203AB88
- ldr r0, [r0]
- ldr r0, [r0, 0x38]
- movs r1, 0x2E
- ldrsh r0, [r0, r1]
- add r0, sp
- ldrb r0, [r0]
- lsls r0, 24
- asrs r0, 24
- lsls r0, 1
- ldrh r2, [r4, 0x20]
- adds r0, r2
- strh r0, [r4, 0x20]
- ldr r1, =gSprites
- movs r2, 0x3A
- ldrsh r0, [r4, r2]
- lsls r2, r0, 4
- adds r2, r0
- lsls r2, 2
- adds r2, r1
- adds r2, 0x3E
- ldrb r3, [r2]
- lsls r0, r3, 29
- lsrs r0, 31
- movs r1, 0x1
- eors r1, r0
- lsls r1, 2
- movs r0, 0x5
- negs r0, r0
- ands r0, r3
- orrs r0, r1
- strb r0, [r2]
- b _08145288
- .pool
-_08145284:
- ldr r0, =sub_8144F94
- str r0, [r4, 0x1C]
-_08145288:
- add sp, 0x4
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145218
-
- thumb_func_start sub_8145294
-sub_8145294: @ 8145294
- push {r4,lr}
- adds r4, r0, 0
- ldr r0, =gUnknown_0203AB88
- ldr r3, [r0]
- ldr r1, [r3, 0x38]
- movs r2, 0x2E
- ldrsh r0, [r1, r2]
- cmp r0, 0
- bne _081452DC
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x12]
- adds r0, 0x5A
- cmp r2, r0
- bne _0814533E
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x34
- b _08145306
- .pool
-_081452DC:
- movs r0, 0x34
- ldrsh r2, [r1, r0]
- ldr r1, =gUnknown_085B6348
- ldrb r0, [r3, 0x4]
- lsls r0, 30
- lsrs r0, 25
- adds r0, r1
- ldrh r0, [r0, 0x14]
- movs r1, 0x87
- lsls r1, 1
- adds r0, r1
- cmp r2, r0
- bne _0814533E
- ldr r2, =gSprites
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- movs r3, 0x2E
-_08145306:
- strh r3, [r0, 0x30]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- strh r3, [r0, 0x30]
- movs r0, 0x3A
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r2, 0x1C
- adds r0, r2
- ldr r1, =sub_8145218
- str r1, [r0]
- movs r0, 0x36
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- adds r0, r2
- ldr r1, =sub_81450D8
- str r1, [r0]
- movs r0, 0x2B
- bl m4aSongNumStart
-_0814533E:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_8145294
-
- .align 2, 0 @ Don't pad with nop.
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 3e97cee6b..34a8484e5 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -4695,7 +4695,7 @@ MauvilleCity_GameCorner_EventScript_2A5ADF:: @ 82A5ADF
end
MauvilleCity_GameCorner_EventScript_2A5B0D:: @ 82A5B0D
- special sub_8142BC8
+ special PlayRoulette
waitstate
end
@@ -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/roulette.s b/data/roulette.s
deleted file mode 100644
index 3cb412084..000000000
--- a/data/roulette.s
+++ /dev/null
@@ -1,928 +0,0 @@
-
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
- .align 1
-gUnknown_085B5BFC:: @ 85B5BFC
- .incbin "graphics/roulette/85B5BFC.gbapal"
-
- .align 2
-gUnknown_085B5DFC:: @ 85B5DFC
- .incbin "graphics/roulette/85B5DFC.bin.lz"
-
- .align 2
-gUnknown_085B5FA0:: @ 85B5FA0
- .incbin "graphics/roulette/wheel_map.bin.lz"
-
- .align 2
-gUnknown_085B6140:: @ 85B6140
- .4byte 0x000001f8, 0x00001241, 0x00002a66
-
- .align 2
-gUnknown_085B614C:: @ 85B614C
- window_template 0x00, 0x03, 0x0f, 0x18, 0x04, 0x0f, 0x00c5
-
- .align 2
-gUnknown_085B6154:: @ 85B6154
- .byte 0xFF, 0x00, 0x00, 0x07, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
- .byte 0x0C, 0x14, 0x00, 0x11, 0x07, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x42, 0x08, 0x01, 0x00, 0x00, 0xE0, 0x00, 0x00
- .byte 0x0D, 0x24, 0x00, 0x14, 0x07, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x84, 0x10, 0x02, 0x00, 0x00, 0xE0, 0x00, 0x00
- .byte 0x0E, 0x34, 0x00, 0x17, 0x07, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x21, 0x04, 0x00, 0x00, 0xE0, 0x00, 0x00
- .byte 0x0F, 0x44, 0x00, 0x1A, 0x07, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x42, 0x08, 0x00, 0x00, 0xE0, 0x00, 0x00
- .byte 0x10, 0x03, 0x01, 0x0E, 0x0A, 0x00, 0x0C, 0x00, 0x20, 0x00, 0x00, 0x00, 0xE0, 0x03, 0x00, 0x00, 0x49, 0x02, 0x00, 0x00
- .byte 0x00, 0x1C, 0x01, 0x11, 0x0A, 0x03, 0x03, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x01, 0x20, 0x00, 0x00
- .byte 0x09, 0x2C, 0x01, 0x14, 0x0A, 0x03, 0x03, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x00, 0x22, 0x00, 0x00
- .byte 0x06, 0x3C, 0x01, 0x17, 0x0A, 0x03, 0x03, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x40, 0x20, 0x00, 0x00
- .byte 0x03, 0x4C, 0x01, 0x1A, 0x0A, 0x03, 0x03, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x08, 0x20, 0x00, 0x00
- .byte 0x11, 0x03, 0x02, 0x0E, 0x0D, 0x03, 0x0F, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x7C, 0x00, 0x00, 0x92, 0x04, 0x00, 0x00
- .byte 0x04, 0x1C, 0x02, 0x11, 0x0D, 0x06, 0x06, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x10, 0x20, 0x00, 0x00
- .byte 0x01, 0x2C, 0x02, 0x14, 0x0D, 0x06, 0x06, 0x00, 0x00, 0x10, 0x00, 0x00, 0x00, 0x10, 0x00, 0x00, 0x02, 0x20, 0x00, 0x00
- .byte 0x0A, 0x3C, 0x02, 0x17, 0x0D, 0x06, 0x06, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x20, 0x00, 0x00, 0x00, 0x24, 0x00, 0x00
- .byte 0x07, 0x4C, 0x02, 0x1A, 0x0D, 0x06, 0x06, 0x00, 0x00, 0x40, 0x00, 0x00, 0x00, 0x40, 0x00, 0x00, 0x80, 0x20, 0x00, 0x00
- .byte 0x12, 0x03, 0x03, 0x0E, 0x10, 0x06, 0x12, 0x00, 0x00, 0x80, 0x00, 0x00, 0x00, 0x80, 0x0F, 0x00, 0x24, 0x09, 0x00, 0x00
- .byte 0x08, 0x1C, 0x03, 0x11, 0x10, 0x09, 0x09, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x21, 0x00, 0x00
- .byte 0x05, 0x2C, 0x03, 0x14, 0x10, 0x09, 0x09, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x20, 0x20, 0x00, 0x00
- .byte 0x02, 0x3C, 0x03, 0x17, 0x10, 0x09, 0x09, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x04, 0x00, 0x04, 0x20, 0x00, 0x00
- .byte 0x0B, 0x4C, 0x03, 0x1A, 0x10, 0x09, 0x09, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x00, 0x08, 0x00, 0x00, 0x28, 0x00, 0x00
-
- .align 2
-gUnknown_085B62E4:: @ 85B62E4
- .byte 0, 1, 6, 0, 64, 0, 0, 0
- .byte 1, 3, 12, 0, 0, 16, 0, 0
- .byte 2, 5, 18, 0, 0, 0, 4, 0
- .byte 3, 7, 9, 0, 0, 2, 0, 0
- .byte 4, 9, 11, 0, 0, 8, 0, 0
- .byte 5, 11, 17, 0, 0, 0, 2, 0
- .byte 6, 13, 8, 0, 0, 1, 0, 0
- .byte 7, 15, 14, 0, 0, 64, 0, 0
- .byte 8, 17, 16, 0, 0, 0, 1, 0
- .byte 9, 19, 7, 0, 128, 0, 0, 0
- .byte 10, 21, 13, 0, 0, 32, 0, 0
- .byte 11, 23, 19, 0, 0, 0, 8, 0
-
-gUnknown_085B6344:: @ 85B6344
- .byte 1, 3
- .byte 1, 6
-
- .align 2
-gUnknown_085B6348:: @ 85B6348
- .byte 0x01, 0x3C, 0x1E, 0x01, 0x01, 0x00, 0x00, 0x00, 0x2D, 0x00, 0x1E, 0x00, 0x01, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x1B, 0x00, 0x18, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x68, 0x01, 0x00, 0x00, 0x00, 0xBF
- .byte 0x03, 0x1E, 0x0F, 0x01, 0x00, 0x00, 0x00, 0x00, 0x4B, 0x00, 0x3C, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x36, 0x00, 0x30, 0x00, 0x00, 0x00, 0x0A, 0x00, 0x0E, 0x01, 0x00, 0x00, 0x80, 0xBF
-
- .align 2
-gUnknown_085B6388:: @ 85B6388
- .byte 0x00, 0x80, 0x05, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x0A, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x15, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x55, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x5A, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x65, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x75, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x7A, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x85, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x95, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0x9A, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0x00, 0x80, 0xA5, 0x00, 0x01, 0x01, 0xFF, 0x48
- .byte 0xD6, 0x77, 0x28, 0x00, 0x02, 0x0A, 0xFF, 0x4E
-
- .align 1
-gUnknown_085B63F0:: @ 85B63F0
- .2byte 0x53FF
- .2byte 0x0101
- .2byte 0x1E05
- .2byte 0x4EFF
- .2byte 0x7FFB
- .2byte 0x0106
- .2byte 0x1E05
- .2byte 0x4EFF
- .2byte 0x7F7F
- .2byte 0x010B
- .2byte 0x1E05
- .2byte 0x4EFF
-
- .align 2
-gUnknown_085B6408:: @ 85B6408
- .4byte sub_8142918
- .4byte sub_814297C
-
- .align 2
-gUnknown_085B6410:: @ 85B6410
- .4byte sub_8140968
- .4byte sub_8140994
-
- .align 1
-gUnknown_085B6418:: @ 85B6418
- .2byte 0x2898
- .2byte 0x1A6A
- .2byte 0x2898
-
-gUnknown_085B641E:: @ 85B641E
- .byte 0xFB, 0x05, 0xFF, 0x01
-
- .align 1
-gUnknown_085B6422:: @ 85B6422
- .2byte 0, 180
- .2byte 90, 270
-
- .align 2
-gUnknown_085B642C:: @ 85B642C
- .4byte 0x10842
- .4byte 0x21084
- .4byte 0x42108
- .4byte 0x84210
-
- .align 2
-gUnknown_085B643C:: @ 85B643C
- .4byte 0x3E0
- .4byte 0x7C00
- .4byte 0xF8000
-
-gUnknown_085B6448:: @ 85B6448
- .byte 0, 3, 4, 6, 12
-
- .align 2
-RouletteSpritePalette_01: @ 85B6450
- .incbin "graphics/roulette/shadow.gbapal"
-
- .align 2
-RouletteSpritePalette_02: @ 85B6470
- .incbin "graphics/roulette/ball.gbapal"
-
- .align 2
-RouletteSpritePalette_03: @ 85B6490
- .incbin "graphics/roulette/ball_counter.gbapal"
-
- .align 2
-RouletteSpritePalette_04: @ 85B64B0
- .incbin "graphics/roulette/cursor.gbapal"
-
- .align 2
-RouletteSpritePalette_05: @ 85B64D0
- .incbin "graphics/roulette/credit.gbapal"
-
- .align 2
-RouletteSpritePalette_06: @ 85B64F0
- .incbin "graphics/roulette/shroomish.gbapal"
-
- .align 2
-RouletteSpritePalette_07: @ 85B6510
- .incbin "graphics/roulette/tailow.gbapal"
-
- .align 2
-RouletteSpritePalette_08: @ 85B6530
- .incbin "graphics/roulette/poke_icons.gbapal"
-
- .align 2
-RouletteSpritePalette_09: @ 85B6550
- .incbin "graphics/roulette/wynaut.gbapal"
-
- .align 2
-RouletteSpritePalette_10: @ 85B6570
- .incbin "graphics/roulette/azurill.gbapal"
-
- .align 2
-RouletteSpritePalette_11: @ 85B6590
- .incbin "graphics/roulette/skitty.gbapal"
-
- .align 2
-RouletteSpritePalette_12: @ 85B65B0
- .incbin "graphics/roulette/makuhita.gbapal"
-
- .align 2
-RouletteSpritePalette_13: @ 85B65D0
- .incbin "graphics/roulette/85B65D0.gbapal"
-
- .align 2
-RouletteSpritePalette_14: @ 85B65F0
- .incbin "graphics/roulette/85B65F0.gbapal"
-
- .align 2
-RouletteSpritePalette_15: @ 85B6610
- .incbin "graphics/roulette/85B6610.gbapal"
-
- .align 2
-RouletteSpritePalette_16: @ 85B6630
- .incbin "graphics/roulette/85B6630.gbapal"
-
- .align 2
-gUnknown_085B6650:: @ 85B6650
- .incbin "graphics/roulette/ball.4bpp.lz"
-
- .align 2
-RouletteBallCounterTiles: @ 85B6798
- .incbin "graphics/roulette/ball_counter.4bpp.lz"
-
- .align 2
-gUnknown_085B67FC:: @ 85B67FC
- .incbin "graphics/roulette/roulette_tilt.4bpp.lz"
-
- .align 2
-RoulettePokeIconsTiles: @ 85B6BEC
- .incbin "graphics/roulette/poke_icons.4bpp.lz"
-
- .align 2
-RoulettePokeIcons2Tiles: @ 85B6D90
- .incbin "graphics/roulette/poke_icons2.4bpp.lz"
-
- .align 2
-gUnknown_085B7290:: @ 85B7290
- .incbin "graphics/roulette/shadow.4bpp.lz"
-
- .align 2
-RouletteCursorTiles: @ 85B7328
- .incbin "graphics/roulette/cursor.4bpp.lz"
-
- .align 2
-gUnknown_085B7384:: @ 85B7384
- obj_pal RouletteSpritePalette_01, 1
- obj_pal RouletteSpritePalette_02, 2
- obj_pal RouletteSpritePalette_03, 3
- obj_pal RouletteSpritePalette_04, 4
- obj_pal RouletteSpritePalette_05, 5
- obj_pal RouletteSpritePalette_06, 6
- obj_pal RouletteSpritePalette_07, 7
- obj_pal RouletteSpritePalette_08, 8
- obj_pal RouletteSpritePalette_09, 9
- obj_pal RouletteSpritePalette_10, 10
- obj_pal RouletteSpritePalette_11, 11
- obj_pal RouletteSpritePalette_12, 12
- null_obj_pal
-
- .align 2
-gOamData_85B73EC:: @ 85B73EC
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_85B73F4:: @ 85B73F4
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0400
-
- .align 2
-gOamData_85B73FC:: @ 85B73FC
- .2byte 0x833C
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gSpriteAnim_85B7404:: @ 85B7404
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B740C:: @ 85B740C
- .4byte gSpriteAnim_85B7404
-
- .align 2
-gSpriteAffineAnim_85B7410:: @ 85B7410
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_85B7418:: @ 85B7418
- .4byte gSpriteAffineAnim_85B7410
-
- .align 2
-gUnknown_085B741C:: @ 85B741C
- obj_tiles RoulettePokeIcons2Tiles, 0xC00, 0
-
- .align 2
-gSpriteAnim_85B7420:: @ 85B7420
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_frame 64, 0
- obj_image_anim_frame 72, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 40, 0
- obj_image_anim_frame 48, 0
- obj_image_anim_frame 80, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 24, 0
- obj_image_anim_frame 56, 0
- obj_image_anim_frame 88, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B7458:: @ 85B7458
- .4byte gSpriteAnim_85B7420
-
- .align 2
-gSpriteAnimTable_85B745C:: @ 85B745C
- .4byte gSpriteAnim_85B7420 + 0x4
-
- .align 2
-gSpriteAnimTable_85B7460:: @ 85B7460
- .4byte gSpriteAnim_85B7420 + 0x8
-
- .align 2
-gSpriteAnimTable_85B7464:: @ 85B7464
- .4byte gSpriteAnim_85B7420 + 0xC
-
- .align 2
-gSpriteAnimTable_85B7468:: @ 85B7468
- .4byte gSpriteAnim_85B7420 + 0x10
-
- .align 2
-gSpriteAnimTable_85B746C:: @ 85B746C
- .4byte gSpriteAnim_85B7420 + 0x14
-
- .align 2
-gSpriteAnimTable_85B7470:: @ 85B7470
- .4byte gSpriteAnim_85B7420 + 0x18
-
- .align 2
-gSpriteAnimTable_85B7474:: @ 85B7474
- .4byte gSpriteAnim_85B7420 + 0x1C
-
- .align 2
-gSpriteAnimTable_85B7478:: @ 85B7478
- .4byte gSpriteAnim_85B7420 + 0x20
-
- .align 2
-gSpriteAnimTable_85B747C:: @ 85B747C
- .4byte gSpriteAnim_85B7420 + 0x24
-
- .align 2
-gSpriteAnimTable_85B7480:: @ 85B7480
- .4byte gSpriteAnim_85B7420 + 0x28
-
- .align 2
-gSpriteAnimTable_85B7484:: @ 85B7484
- .4byte gSpriteAnim_85B7420 + 0x2C
-
- .align 2
-gUnknown_085B7488:: @ 85B7488
- obj_tiles gRouletteHeadersTiles, 0x1600, 4
-
- .align 2
-gUnknown_085B7490:: @ 85B7490
- obj_tiles RoulettePokeIconsTiles, 0x400, 5
-
- .align 2
-gSpriteAnim_85B7498:: @ 85B7498
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_frame 48, 0
- obj_image_anim_frame 64, 0
- obj_image_anim_frame 80, 0
- obj_image_anim_frame 96, 0
- obj_image_anim_frame 112, 0
- obj_image_anim_frame 128, 0
- obj_image_anim_frame 144, 0
- obj_image_anim_frame 160, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B74C8:: @ 85B74C8
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B74DC:: @ 85B74DC
- .4byte gSpriteAnim_85B7498
-
- .align 2
-gSpriteAnimTable_85B74E0:: @ 85B74E0
- .4byte gSpriteAnim_85B7498 + 0x8
-
- .align 2
-gSpriteAnimTable_85B74E4:: @ 85B74E4
- .4byte gSpriteAnim_85B7498 + 0x10
-
- .align 2
-gSpriteAnimTable_85B74E8:: @ 85B74E8
- .4byte gSpriteAnim_85B7498 + 0x18
-
- .align 2
-gSpriteAnimTable_85B74EC:: @ 85B74EC
- .4byte gSpriteAnim_85B7498 + 0x20
-
- .align 2
-gSpriteAnimTable_85B74F0:: @ 85B74F0
- .4byte gSpriteAnim_85B7498 + 0x24
-
- .align 2
-gSpriteAnimTable_85B74F4:: @ 85B74F4
- .4byte gSpriteAnim_85B7498 + 0x28
-
- .align 2
-gSpriteAnimTable_85B74F8:: @ 85B74F8
- .4byte gSpriteAnim_85B74C8
-
- .align 2
-gSpriteAnimTable_85B74FC:: @ 85B74FC
- .4byte gSpriteAnim_85B74C8 + 0x4
-
- .align 2
-gSpriteAnimTable_85B7500:: @ 85B7500
- .4byte gSpriteAnim_85B74C8 + 0x8
-
- .align 2
-gSpriteAnimTable_85B7504:: @ 85B7504
- .4byte gSpriteAnim_85B74C8 + 0xC
-
- .align 2
-gSpriteTemplate_85B7508:: @ 85B7508
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74DC, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7520:: @ 85B7520
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74E0, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7538:: @ 85B7538
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74E4, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7550:: @ 85B7550
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74E8, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7568:: @ 85B7568
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74EC, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7580:: @ 85B7580
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74F0, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7598:: @ 85B7598
- spr_template 4, 8, gOamData_85B73EC, gSpriteAnimTable_85B74F4, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B75B0:: @ 85B75B0
- spr_template 5, 8, gOamData_85B73F4, gSpriteAnimTable_85B74F8, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B75C8:: @ 85B75C8
- spr_template 5, 8, gOamData_85B73F4, gSpriteAnimTable_85B74FC, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B75E0:: @ 85B75E0
- spr_template 5, 8, gOamData_85B73F4, gSpriteAnimTable_85B7500, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B75F8:: @ 85B75F8
- spr_template 5, 8, gOamData_85B73F4, gSpriteAnimTable_85B7504, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gSpriteTemplate_85B7610:: @ 85B7610
- spr_template 0, 9, gOamData_85B73FC, gSpriteAnimTable_85B7458, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7628:: @ 85B7628
- spr_template 0, 10, gOamData_85B73FC, gSpriteAnimTable_85B745C, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7640:: @ 85B7640
- spr_template 0, 11, gOamData_85B73FC, gSpriteAnimTable_85B7460, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7658:: @ 85B7658
- spr_template 0, 12, gOamData_85B73FC, gSpriteAnimTable_85B7464, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7670:: @ 85B7670
- spr_template 0, 9, gOamData_85B73FC, gSpriteAnimTable_85B7468, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7688:: @ 85B7688
- spr_template 0, 10, gOamData_85B73FC, gSpriteAnimTable_85B746C, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B76A0:: @ 85B76A0
- spr_template 0, 11, gOamData_85B73FC, gSpriteAnimTable_85B7470, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B76B8:: @ 85B76B8
- spr_template 0, 12, gOamData_85B73FC, gSpriteAnimTable_85B7474, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B76D0:: @ 85B76D0
- spr_template 0, 9, gOamData_85B73FC, gSpriteAnimTable_85B7478, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B76E8:: @ 85B76E8
- spr_template 0, 10, gOamData_85B73FC, gSpriteAnimTable_85B747C, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7700:: @ 85B7700
- spr_template 0, 11, gOamData_85B73FC, gSpriteAnimTable_85B7480, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gSpriteTemplate_85B7718:: @ 85B7718
- spr_template 0, 12, gOamData_85B73FC, gSpriteAnimTable_85B7484, NULL, gDummySpriteAffineAnimTable, sub_8143280
-
- .align 2
-gOamData_85B7730:: @ 85B7730
- .2byte 0x4000
- .2byte 0xC000
- .2byte 0x0400
-
- .align 2
-gOamData_85B7738:: @ 85B7738
- .2byte 0x8000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gOamData_85B7740:: @ 85B7740
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0400
-
- .align 2
-gOamData_85B7748:: @ 85B7748
- .2byte 0x4000
- .2byte 0x0000
- .2byte 0x0400
-
- .align 2
-gUnknown_085B7750:: @ 85B7750
- obj_tiles gRouletteCreditTiles, 0x400, 7
- obj_tiles gRouletteNumbersTiles, 0x280, 8
- obj_tiles gRouletteMultiplierTiles, 0x500, 9
- obj_tiles RouletteBallCounterTiles, 0x140, 10
- obj_tiles RouletteCursorTiles, 0x200, 11
- null_obj_tiles
-
- .align 2
-gSpriteAnim_85B7780:: @ 85B7780
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 2, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 6, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 10, 0
- obj_image_anim_frame 12, 0
- obj_image_anim_frame 14, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 18, 0
-
- .align 2
-gSpriteAnimTable_85B77A8:: @ 85B77A8
- .4byte gSpriteAnim_85B7780
-
- .align 2
-gSpriteAnim_85B77AC:: @ 85B77AC
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_frame 16, 0
- obj_image_anim_frame 24, 0
- obj_image_anim_frame 32, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B77C4:: @ 85B77C4
- .4byte gSpriteAnim_85B77AC
-
- .align 2
-gSpriteAnim_85B77C8:: @ 85B77C8
- obj_image_anim_frame 0, 0
- obj_image_anim_frame 2, 0
- obj_image_anim_frame 4, 0
- obj_image_anim_frame 6, 0
- obj_image_anim_frame 8, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B77E0:: @ 85B77E0
- .4byte gSpriteAnim_85B77C8
-
- .align 2
-gSpriteTemplate_85B77E4:: @ 85B77E4
- spr_template 7, 5, gOamData_85B7730, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_085B77FC:: @ 85B77FC
- spr_template 8, 5, gOamData_85B7738, gSpriteAnimTable_85B77A8, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_085B7814:: @ 85B7814
- spr_template 9, 5, gOamData_85B7740, gSpriteAnimTable_85B77C4, NULL, gDummySpriteAffineAnimTable, sub_814390C
-
- .align 2
-gUnknown_085B782C:: @ 85B782C
- spr_template 10, 3, gOamData_85B7748, gSpriteAnimTable_85B77E0, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gUnknown_085B7844:: @ 85B7844
- spr_template 11, 5, gOamData_85B73EC, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_85B785C:: @ 85B785C
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gUnknown_085B7864:: @ 85B7864
- obj_tiles gUnknown_085B6650, 0x200, 0xC
-
- .align 2
-gSpriteAnim_85B786C:: @ 85B786C
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B7880:: @ 85B7880
- obj_image_anim_frame 0, 10
- obj_image_anim_frame 4, 10
- obj_image_anim_frame 8, 10
- obj_image_anim_frame 4, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B7894:: @ 85B7894
- obj_image_anim_frame 0, 15
- obj_image_anim_frame 4, 15
- obj_image_anim_frame 8, 15
- obj_image_anim_frame 4, 15
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B78A8:: @ 85B78A8
- obj_image_anim_frame 4, 2
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B78BC:: @ 85B78BC
- obj_image_anim_frame 4, 2
- obj_image_anim_frame 0, 4
- obj_image_anim_frame 4, 4
- obj_image_anim_frame 8, 4
- obj_image_anim_frame 12, 4
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B78D4:: @ 85B78D4
- obj_image_anim_frame 0, 2
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 8, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B78E8:: @ 85B78E8
- obj_image_anim_frame 12, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B78F0:: @ 85B78F0
- obj_image_anim_frame 8, 2
- obj_image_anim_frame 4, 5
- obj_image_anim_frame 0, 5
- obj_image_anim_frame 12, 5
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B7904:: @ 85B7904
- .4byte gSpriteAnim_85B786C
- .4byte gSpriteAnim_85B7880
- .4byte gSpriteAnim_85B7894
- .4byte gSpriteAnim_85B78A8
- .4byte gSpriteAnim_85B78F0
- .4byte gSpriteAnim_85B78BC
- .4byte gSpriteAnim_85B78D4
- .4byte gSpriteAnim_85B78D4
- .4byte gSpriteAnim_85B78E8
-
- .align 2
-gSpriteTemplate_85B7928:: @ 85B7928
- spr_template 12, 2, gOamData_85B785C, gSpriteAnimTable_85B7904, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gOamData_85B7940:: @ 85B7940
- .2byte 0x0351
- .2byte 0xC000
- .2byte 0x0800
-
- .align 2
-gUnknown_085B7948:: @ 85B7948
- obj_tiles gRouletteCenter_Gfx, 2048, 0x0006
-
- .align 2
-gSpriteTemplate_85B7950:: @ 85B7950
- spr_template 6, 2, gOamData_85B7940, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, sub_814399C
-
- .align 2
-gOamData_85B7968:: @ 85B7968
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_85B7970:: @ 85B7970
- .2byte 0x0000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gUnknown_085B7978:: @ 85B7978
- obj_tiles gUnknown_085B67FC, 0xE00, 0x000D
-
- .align 2
-gSpriteAnim_85B7980:: @ 85B7980
- obj_image_anim_frame 0x00, 6
- obj_image_anim_frame 0x10, 6
- obj_image_anim_frame 0x20, 6
- obj_image_anim_frame 0x30, 6
- obj_image_anim_frame 0x20, 6
- obj_image_anim_frame 0x40, 6
- obj_image_anim_jump 2
-
- .align 2
-gSpriteAnim_85B799C:: @ 85B799C
- obj_image_anim_frame 0x50, 10
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B79A4:: @ 85B79A4
- obj_image_anim_frame 0x50, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B79AC:: @ 85B79AC
- obj_image_anim_frame 0x50, 20
- obj_image_anim_frame 0x60, 20
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B79B8:: @ 85B79B8
- obj_image_anim_frame 0x50, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0x60, 20, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B79C4:: @ 85B79C4
- obj_image_anim_frame 0x50, 10
- obj_image_anim_frame 0x60, 10
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnim_85B79D0:: @ 85B79D0
- obj_image_anim_frame 0x50, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_frame 0x60, 10, OBJ_IMAGE_ANIM_H_FLIP
- obj_image_anim_jump 0
-
- .align 2
-gSpriteAnimTable_85B79DC:: @ 85B79DC
- .4byte gSpriteAnim_85B7980
-
- .align 2
-gSpriteAnimTable_85B79E0:: @ 85B79E0
- .4byte gSpriteAnim_85B799C
- .4byte gSpriteAnim_85B79A4
- .4byte gSpriteAnim_85B79AC
- .4byte gSpriteAnim_85B79B8
- .4byte gSpriteAnim_85B79C4
- .4byte gSpriteAnim_85B79D0
-
- .align 2
-gSpriteTemplate_85B79F8:: @ 85B79F8
- spr_template 13, 6, gOamData_85B7968, gSpriteAnimTable_85B79DC, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_85B7A10:: @ 85B7A10
- spr_template 13, 7, gOamData_85B7970, gSpriteAnimTable_85B79E0, NULL, gDummySpriteAffineAnimTable, sub_8145294
-
- .align 2
-gOamData_85B7A28:: @ 85B7A28
- .2byte 0x0000
- .2byte 0x4000
- .2byte 0x0800
-
- .align 2
-gOamData_85B7A30:: @ 85B7A30
- .2byte 0x4000
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gOamData_85B7A38:: @ 85B7A38
- .2byte 0x4100
- .2byte 0x8000
- .2byte 0x0800
-
- .align 2
-gUnknown_085B7A40:: @ 85B7A40
- obj_tiles gUnknown_085B7290, 0x180, 0x000E
-
- .align 2
-gSpriteAffineAnim_85B7A48:: @ 85B7A48
- obj_rot_scal_anim_frame 0x80, 0x80, 0, 0
- obj_rot_scal_anim_frame 0x2, 0x2, 0, 60
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnim_85B7A60:: @ 85B7A60
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_frame 0xFFFE, 0x0, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFE, 0, 15
- obj_rot_scal_anim_frame 0xFFFF, 0xFFFB, 0, 24
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_85B7A88:: @ 85B7A88
- .4byte gSpriteAffineAnim_85B7A48
-
- .align 2
-gSpriteAffineAnimTable_85B7A8C:: @ 85B7A8C
- .4byte gSpriteAffineAnim_85B7A60
-
- .align 2
-gSpriteAffineAnim_85B7A90:: @ 85B7A90
- obj_rot_scal_anim_frame 0x100, 0x100, 0, 0
- obj_rot_scal_anim_end
-
- .align 2
-gSpriteAffineAnimTable_85B7AA0:: @ 85B7AA0
- .4byte gSpriteAffineAnim_85B7A90
-
- .align 2
-gSpriteAnim_85B7AA4:: @ 85B7AA4
- obj_image_anim_frame 0, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnim_85B7AAC:: @ 85B7AAC
- obj_image_anim_frame 4, 0
- obj_image_anim_end
-
- .align 2
-gSpriteAnimTable_85B7AB4:: @ 85B7AB4
- .4byte gSpriteAnim_85B7AA4
-
- .align 2
-gSpriteAnimTable_85B7AB8:: @ 85B7AB8
- .4byte gSpriteAnim_85B7AAC
-
- .align 2
-gSpriteTemplate_85B7ABC:: @ 85B7ABC
- spr_template 14, 1, gOamData_85B7A28, gSpriteAnimTable_85B7AB4, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
-
- .align 2
-gSpriteTemplate_83FA5D8:: @ 83FA5D8
- spr_template 14, 1, gOamData_85B7A30, gSpriteAnimTable_85B7AB8, NULL, gDummySpriteAffineAnimTable, sub_8144E60
-
- .align 2
-gUnknown_085B7AEC:: @ 85B7AEC
- spr_template 14, 1, gOamData_85B7A38, gSpriteAnimTable_85B7AB8, NULL, gSpriteAffineAnimTable_85B7A8C, sub_8145294
-
-gUnknown_085B7B04:: @ 85B7B04
- .byte 0, 1, 2, 3, 4
-
- .align 1
-gUnknown_085B7B0A:: @ 85B7B0A
- .2byte 0x74, 0x2C
- .2byte 0x74, 0x70
-
- .align 1
-gUnknown_085B7B12:: @ 85B7B12
- .2byte 256, 84
- .2byte -16, 84
-
- .align 1
-gUnknown_085B7B1A:: @ 85B7B1A
- .2byte 0x907
- .2byte 0x808
- .2byte 0x709
- .2byte 0x60A
- .2byte 0x50B
- .2byte 0x40C
- .2byte 0x30D
- .2byte 0x20E
- .2byte 0x10F
- .2byte 0x10
-
- .align 1
-gUnknown_085B7B2E:: @ 85B7B2E
- .2byte -1, 0, 1, 0
- .2byte -2, 0, 2, 0
- .2byte -3, 0, 3, 0
-
-gUnknown_085B7B46:: @ 85B7B46
- .byte -1, 1
-
-gUnknown_085B7B48:: @ 85B7B48
- .byte 2, 0
- .byte 2, 0
- .byte 2, -1
- .byte 2, -1
- .byte 2, -1
- .byte 2, -1
- .byte 2, -2
- .byte 2, -2
diff --git a/data/specials.inc b/data/specials.inc
index dd8a51b34..5ac4930c7 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -173,7 +173,7 @@ gSpecials:: @ 81DBA64
def_special sub_81B94B0
def_special GetFirstFreePokeblockSlot
def_special DoBerryBlending
- def_special sub_8142BC8
+ def_special PlayRoulette
def_special ShouldMoveLilycoveFanClubMember
def_special GetNumMovedLilycoveFanClubMembers
def_special BufferStreakTrainerText
diff --git a/data/text/match_call.inc b/data/text/match_call.inc
new file mode 100755
index 000000000..b25b72ebf
--- /dev/null
+++ b/data/text/match_call.inc
@@ -0,0 +1,2953 @@
+MatchCall_WildBattleText1:: @ 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!$"
+
+MatchCall_WildBattleText2:: @ 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!$"
+
+MatchCall_WildBattleText3:: @ 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!$"
+
+MatchCall_WildBattleText4:: @ 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.$"
+
+MatchCall_WildBattleText5:: @ 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!$"
+
+MatchCall_WildBattleText6:: @ 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.$"
+
+MatchCall_WildBattleText7:: @ 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!$"
+
+MatchCall_WildBattleText8:: @ 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!$"
+
+MatchCall_WildBattleText9:: @ 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!$"
+
+MatchCall_WildBattleText10:: @ 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.$"
+
+MatchCall_WildBattleText11:: @ 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…$"
+
+MatchCall_WildBattleText12:: @ 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!$"
+
+MatchCall_WildBattleText13:: @ 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!$"
+
+MatchCall_WildBattleText14:: @ 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!$"
+
+MatchCall_WildBattleText15:: @ 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!$"
+
+MatchCall_NegativeBattleText1:: @ 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!$"
+
+MatchCall_NegativeBattleText2:: @ 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!$"
+
+MatchCall_NegativeBattleText3:: @ 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!$"
+
+MatchCall_NegativeBattleText4:: @ 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.$"
+
+MatchCall_NegativeBattleText5:: @ 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!$"
+
+MatchCall_NegativeBattleText6:: @ 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.$"
+
+MatchCall_NegativeBattleText7:: @ 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.$"
+
+MatchCall_NegativeBattleText8:: @ 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!$"
+
+MatchCall_NegativeBattleText9:: @ 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!$"
+
+MatchCall_NegativeBattleText10:: @ 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.$"
+
+MatchCall_NegativeBattleText11:: @ 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!$"
+
+MatchCall_NegativeBattleText12:: @ 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.$"
+
+MatchCall_NegativeBattleText13:: @ 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!$"
+
+MatchCall_NegativeBattleText14:: @ 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!$"
+
+MatchCall_PositiveBattleText1:: @ 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!$"
+
+MatchCall_PositiveBattleText2:: @ 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!$"
+
+MatchCall_PositiveBattleText3:: @ 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!$"
+
+MatchCall_PositiveBattleText4:: @ 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.$"
+
+MatchCall_PositiveBattleText5:: @ 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!$"
+
+MatchCall_PositiveBattleText6:: @ 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!$"
+
+MatchCall_PositiveBattleText7:: @ 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.$"
+
+MatchCall_PositiveBattleText8:: @ 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!$"
+
+MatchCall_PositiveBattleText9:: @ 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!$"
+
+MatchCall_PositiveBattleText10:: @ 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.$"
+
+MatchCall_PositiveBattleText11:: @ 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!$"
+
+MatchCall_PositiveBattleText12:: @ 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!$"
+
+MatchCall_PositiveBattleText13:: @ 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!$"
+
+MatchCall_PositiveBattleText14:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText1:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText2:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText3:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText4:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText5:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText6:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText7:: @ 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.$"
+
+MatchCall_SameRouteBattleRequestText8:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText9:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText10:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText11:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText12:: @ 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!$"
+
+MatchCall_SameRouteBattleRequestText13:: @ 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.$"
+
+MatchCall_SameRouteBattleRequestText14:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText1:: @ 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}!$"
+
+MatchCall_DifferentRouteBattleRequestText2:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText3:: @ 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}.$"
+
+MatchCall_DifferentRouteBattleRequestText4:: @ 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?$"
+
+MatchCall_DifferentRouteBattleRequestText5:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText6:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText7:: @ 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.$"
+
+MatchCall_DifferentRouteBattleRequestText8:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText9:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText10:: @ 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.$"
+
+MatchCall_DifferentRouteBattleRequestText11:: @ 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.$"
+
+MatchCall_DifferentRouteBattleRequestText12:: @ 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!$"
+
+MatchCall_DifferentRouteBattleRequestText13:: @ 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.$"
+
+MatchCall_DifferentRouteBattleRequestText14:: @ 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?$"
+
+MatchCall_PersonalizedText1:: @ 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}.$"
+
+MatchCall_PersonalizedText2:: @ 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!$"
+
+MatchCall_PersonalizedText3:: @ 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!$"
+
+MatchCall_PersonalizedText4:: @ 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.$"
+
+MatchCall_PersonalizedText5:: @ 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!$"
+
+MatchCall_PersonalizedText6:: @ 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!$"
+
+MatchCall_PersonalizedText7:: @ 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!$"
+
+MatchCall_PersonalizedText8:: @ 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!$"
+
+MatchCall_PersonalizedText9:: @ 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…$"
+
+MatchCall_PersonalizedText10:: @ 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.$"
+
+MatchCall_PersonalizedText11:: @ 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!$"
+
+MatchCall_PersonalizedText12:: @ 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.$"
+
+MatchCall_PersonalizedText13:: @ 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.$"
+
+MatchCall_PersonalizedText14:: @ 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!$"
+
+MatchCall_PersonalizedText15:: @ 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!$"
+
+MatchCall_PersonalizedText16:: @ 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!$"
+
+MatchCall_PersonalizedText17:: @ 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!$"
+
+MatchCall_PersonalizedText18:: @ 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…$"
+
+MatchCall_PersonalizedText19:: @ 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!$"
+
+MatchCall_PersonalizedText20:: @ 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!$"
+
+MatchCall_PersonalizedText21:: @ 82AD194
+ .string "… … … … … …\n"
+ .string "… … … … … …\l"
+ .string "It's {STR_VAR_1}…\p"
+ .string "… … … … … …\n"
+ .string "… … … … … …\l"
+ .string "That's all today…$"
+
+MatchCall_PersonalizedText22:: @ 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!$"
+
+MatchCall_PersonalizedText23:: @ 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!$"
+
+MatchCall_PersonalizedText24:: @ 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.$"
+
+MatchCall_PersonalizedText25:: @ 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!$"
+
+MatchCall_PersonalizedText26:: @ 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!$"
+
+MatchCall_PersonalizedText27:: @ 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!$"
+
+MatchCall_PersonalizedText28:: @ 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!$"
+
+MatchCall_PersonalizedText29:: @ 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!$"
+
+MatchCall_PersonalizedText30:: @ 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!$"
+
+MatchCall_PersonalizedText31:: @ 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…$"
+
+MatchCall_PersonalizedText32:: @ 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!$"
+
+MatchCall_PersonalizedText33:: @ 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!$"
+
+MatchCall_PersonalizedText34:: @ 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.$"
+
+MatchCall_PersonalizedText35:: @ 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!$"
+
+MatchCall_PersonalizedText36:: @ 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…$"
+
+MatchCall_PersonalizedText37:: @ 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!$"
+
+MatchCall_PersonalizedText38:: @ 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!$"
+
+MatchCall_PersonalizedText39:: @ 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.$"
+
+MatchCall_PersonalizedText40:: @ 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!$"
+
+MatchCall_PersonalizedText41:: @ 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.$"
+
+MatchCall_PersonalizedText42:: @ 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!$"
+
+MatchCall_PersonalizedText43:: @ 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!$"
+
+MatchCall_PersonalizedText44:: @ 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!$"
+
+MatchCall_PersonalizedText45:: @ 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!$"
+
+MatchCall_PersonalizedText46:: @ 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!$"
+
+MatchCall_PersonalizedText47:: @ 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!$"
+
+MatchCall_PersonalizedText48:: @ 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!$"
+
+MatchCall_PersonalizedText49:: @ 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!$"
+
+MatchCall_PersonalizedText50:: @ 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.$"
+
+MatchCall_PersonalizedText51:: @ 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.$"
+
+MatchCall_PersonalizedText52:: @ 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.$"
+
+MatchCall_PersonalizedText53:: @ 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!$"
+
+MatchCall_PersonalizedText54:: @ 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!$"
+
+MatchCall_PersonalizedText55:: @ 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?$"
+
+MatchCall_PersonalizedText56:: @ 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!$"
+
+MatchCall_PersonalizedText57:: @ 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!$"
+
+MatchCall_PersonalizedText58:: @ 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!$"
+
+MatchCall_PersonalizedText59:: @ 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!$"
+
+MatchCall_PersonalizedText60:: @ 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!$"
+
+MatchCall_PersonalizedText61:: @ 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!$"
+
+MatchCall_PersonalizedText62:: @ 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!$"
+
+MatchCall_PersonalizedText63:: @ 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}!$"
+
+MatchCall_PersonalizedText64:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText1:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText2:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText3:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText4:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText5:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText6:: @ 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.$"
+
+MatchCall_BattleFrontierStreakText7:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText8:: @ 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.$"
+
+MatchCall_BattleFrontierStreakText9:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText10:: @ 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.$"
+
+MatchCall_BattleFrontierStreakText11:: @ 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?$"
+
+MatchCall_BattleFrontierStreakText12:: @ 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!$"
+
+MatchCall_BattleFrontierStreakText13:: @ 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.$"
+
+MatchCall_BattleFrontierStreakText14:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText1:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText2:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText3:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText4:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText5:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText6:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText7:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText8:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText9:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText10:: @ 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.$"
+
+MatchCall_BattleFrontierRecordStreakText11:: @ 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?$"
+
+MatchCall_BattleFrontierRecordStreakText12:: @ 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!$"
+
+MatchCall_BattleFrontierRecordStreakText13:: @ 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.$"
+
+MatchCall_BattleFrontierRecordStreakText14:: @ 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!$"
+
+MatchCall_BattleDomeText1:: @ 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!$"
+
+MatchCall_BattleDomeText2:: @ 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?$"
+
+MatchCall_BattleDomeText3:: @ 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!$"
+
+MatchCall_BattleDomeText4:: @ 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!$"
+
+MatchCall_BattleDomeText5:: @ 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!$"
+
+MatchCall_BattleDomeText6:: @ 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.$"
+
+MatchCall_BattleDomeText7:: @ 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.$"
+
+MatchCall_BattleDomeText8:: @ 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.$"
+
+MatchCall_BattleDomeText9:: @ 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!$"
+
+MatchCall_BattleDomeText10:: @ 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.$"
+
+MatchCall_BattleDomeText11:: @ 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!$"
+
+MatchCall_BattleDomeText12:: @ 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!$"
+
+MatchCall_BattleDomeText13:: @ 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.$"
+
+MatchCall_BattleDomeText14:: @ 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!$"
+
+MatchCall_BattlePikeText1:: @ 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!$"
+
+MatchCall_BattlePikeText2:: @ 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!$"
+
+MatchCall_BattlePikeText3:: @ 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!$"
+
+MatchCall_BattlePikeText4:: @ 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!$"
+
+MatchCall_BattlePikeText5:: @ 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!$"
+
+MatchCall_BattlePikeText6:: @ 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.$"
+
+MatchCall_BattlePikeText7:: @ 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.$"
+
+MatchCall_BattlePikeText8:: @ 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.$"
+
+MatchCall_BattlePikeText9:: @ 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!$"
+
+MatchCall_BattlePikeText10:: @ 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.$"
+
+MatchCall_BattlePikeText11:: @ 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!$"
+
+MatchCall_BattlePikeText12:: @ 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!$"
+
+MatchCall_BattlePikeText13:: @ 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.$"
+
+MatchCall_BattlePikeText14:: @ 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!$"
+
+MatchCall_BattlePyramidText1:: @ 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.$"
+
+MatchCall_BattlePyramidText2:: @ 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!$"
+
+MatchCall_BattlePyramidText3:: @ 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!$"
+
+MatchCall_BattlePyramidText4:: @ 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!$"
+
+MatchCall_BattlePyramidText5:: @ 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!$"
+
+MatchCall_BattlePyramidText6:: @ 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.$"
+
+MatchCall_BattlePyramidText7:: @ 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.$"
+
+MatchCall_BattlePyramidText8:: @ 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.$"
+
+MatchCall_BattlePyramidText9:: @ 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!$"
+
+MatchCall_BattlePyramidText10:: @ 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.$"
+
+MatchCall_BattlePyramidText11:: @ 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!$"
+
+MatchCall_BattlePyramidText12:: @ 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!$"
+
+MatchCall_BattlePyramidText13:: @ 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.$"
+
+MatchCall_BattlePyramidText14:: @ 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/gba/types.h b/include/gba/types.h
index fff48d437..3d78b5b5e 100644
--- a/include/gba/types.h
+++ b/include/gba/types.h
@@ -59,8 +59,8 @@ struct OamData
u32 shape:2; // 0x40, 0x80 -> 0xC0
/*0x02*/ u32 x:9;
- u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
- u32 size:2;
+ u32 matrixNum:5; // bits 3/4 are h-flip/v-flip if not in affine mode
+ u32 size:2; // 0x4000, 0x8000 -> 0xC000
/*0x04*/ u16 tileNum:10; // 0x3FF
u16 priority:2; // 0x400, 0x800 -> 0xC00
diff --git a/include/graphics.h b/include/graphics.h
index ad2b39260..4563a7e99 100644
--- a/include/graphics.h
+++ b/include/graphics.h
@@ -4818,4 +4818,13 @@ extern const u32 gStatusPal_Icons[];
extern const u32 gPartyMenuPokeball_Pal[];
extern const u32 gStatusPal_Icons[];
+// Roulette
+extern const u32 gRouletteMenuTiles[];
+extern const u32 gRouletteWheelTiles[];
+extern const u32 gRouletteCenter_Gfx[];
+extern const u32 gRouletteHeadersTiles[];
+extern const u32 gRouletteCreditTiles[];
+extern const u32 gRouletteNumbersTiles[];
+extern const u32 gRouletteMultiplierTiles[];
+
#endif //GUARD_GRAPHICS_H
diff --git a/include/m4a.h b/include/m4a.h
index 595379495..4847c12cc 100644
--- a/include/m4a.h
+++ b/include/m4a.h
@@ -8,7 +8,8 @@ void m4aSoundVSyncOn(void);
void m4aSoundInit(void);
void m4aSoundMain(void);
-void m4aSongNumStart(u16);
+void m4aSongNumStart(u16 n);
+void m4aSongNumStartOrChange(u16 n);
void m4aSongNumStop(u16 n);
void m4aMPlayAllStop(void);
void m4aMPlayContinue(struct MusicPlayerInfo *mplayInfo);
diff --git a/include/menu_helpers.h b/include/menu_helpers.h
index ee8501d18..63af4c731 100644
--- a/include/menu_helpers.h
+++ b/include/menu_helpers.h
@@ -20,7 +20,7 @@ void ResetAllBgsCoordinates(void);
void SetVBlankHBlankCallbacksToNull(void);
void DisplayMessageAndContinueTask(u8 taskId, u8 windowId, u16 arg2, u8 arg3, u8 fontId, u8 textSpeed, const u8 *string, void *taskFunc);
bool16 RunTextPrintersRetIsActive(u8 textPrinterId);
-void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data);
+void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data);
void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *template, u8 arg2, u8 arg3, u8 arg4, u16 tileStart, u8 palette, const struct YesNoFuncTable *yesNo);
bool8 AdjustQuantityAccordingToDPadInput(s16 *arg0, u16 arg1);
u8 GetLRKeysState(void);
diff --git a/include/roulette_util.h b/include/roulette_util.h
index 7f0b9cbf8..76752fe74 100644
--- a/include/roulette_util.h
+++ b/include/roulette_util.h
@@ -1,6 +1,8 @@
#ifndef GUARD_ROULETTE_UTIL_H
#define GUARD_ROULETTE_UTIL_H
+#include "roulette.h"
+
struct PulseBlendSettings
{
u16 blendColor;
@@ -41,5 +43,10 @@ void UnmarkUsedPulseBlendPalettes(struct PulseBlend *, u16, u8);
void UpdatePulseBlend(struct PulseBlend *);
void sub_8152008(u16 *dest, u16 src, u8 left, u8 top, u8 width, u8 height);
void sub_8152058(u16 *dest, u16 *src, u8 left, u8 top, u8 width, u8 height);
+void task_tutorial_controls_fadein(struct UnkStruct0 *r0);
+void sub_8151678(struct UnkStruct0 *r0);
+u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2);
+void sub_8151A9C(struct UnkStruct0 *r0, u16 r1);
+void sub_8151A48(struct UnkStruct0 *r0, u16 r1);
#endif // GUARD_ROULETTE_UTIL_H
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 b941f7825..c88252b7b 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[];
@@ -1990,4 +1997,214 @@ extern const u8 gText_XSentOverY[];
extern const u8 gText_TakeGoodCareOfX[];
extern const u8 gText_CommunicationStandby5[];
+// roulette
+extern const u8 gUnknown_082A5B89[];
+
+// match call
+extern const u8 MatchCall_WildBattleText1[];
+extern const u8 MatchCall_WildBattleText2[];
+extern const u8 MatchCall_WildBattleText3[];
+extern const u8 MatchCall_WildBattleText4[];
+extern const u8 MatchCall_WildBattleText5[];
+extern const u8 MatchCall_WildBattleText6[];
+extern const u8 MatchCall_WildBattleText7[];
+extern const u8 MatchCall_WildBattleText8[];
+extern const u8 MatchCall_WildBattleText9[];
+extern const u8 MatchCall_WildBattleText10[];
+extern const u8 MatchCall_WildBattleText11[];
+extern const u8 MatchCall_WildBattleText12[];
+extern const u8 MatchCall_WildBattleText13[];
+extern const u8 MatchCall_WildBattleText14[];
+extern const u8 MatchCall_WildBattleText15[];
+extern const u8 MatchCall_NegativeBattleText1[];
+extern const u8 MatchCall_NegativeBattleText2[];
+extern const u8 MatchCall_NegativeBattleText3[];
+extern const u8 MatchCall_NegativeBattleText4[];
+extern const u8 MatchCall_NegativeBattleText5[];
+extern const u8 MatchCall_NegativeBattleText6[];
+extern const u8 MatchCall_NegativeBattleText7[];
+extern const u8 MatchCall_NegativeBattleText8[];
+extern const u8 MatchCall_NegativeBattleText9[];
+extern const u8 MatchCall_NegativeBattleText10[];
+extern const u8 MatchCall_NegativeBattleText11[];
+extern const u8 MatchCall_NegativeBattleText12[];
+extern const u8 MatchCall_NegativeBattleText13[];
+extern const u8 MatchCall_NegativeBattleText14[];
+extern const u8 MatchCall_PositiveBattleText1[];
+extern const u8 MatchCall_PositiveBattleText2[];
+extern const u8 MatchCall_PositiveBattleText3[];
+extern const u8 MatchCall_PositiveBattleText4[];
+extern const u8 MatchCall_PositiveBattleText5[];
+extern const u8 MatchCall_PositiveBattleText6[];
+extern const u8 MatchCall_PositiveBattleText7[];
+extern const u8 MatchCall_PositiveBattleText8[];
+extern const u8 MatchCall_PositiveBattleText9[];
+extern const u8 MatchCall_PositiveBattleText10[];
+extern const u8 MatchCall_PositiveBattleText11[];
+extern const u8 MatchCall_PositiveBattleText12[];
+extern const u8 MatchCall_PositiveBattleText13[];
+extern const u8 MatchCall_PositiveBattleText14[];
+extern const u8 MatchCall_SameRouteBattleRequestText1[];
+extern const u8 MatchCall_SameRouteBattleRequestText2[];
+extern const u8 MatchCall_SameRouteBattleRequestText3[];
+extern const u8 MatchCall_SameRouteBattleRequestText4[];
+extern const u8 MatchCall_SameRouteBattleRequestText5[];
+extern const u8 MatchCall_SameRouteBattleRequestText6[];
+extern const u8 MatchCall_SameRouteBattleRequestText7[];
+extern const u8 MatchCall_SameRouteBattleRequestText8[];
+extern const u8 MatchCall_SameRouteBattleRequestText9[];
+extern const u8 MatchCall_SameRouteBattleRequestText10[];
+extern const u8 MatchCall_SameRouteBattleRequestText11[];
+extern const u8 MatchCall_SameRouteBattleRequestText12[];
+extern const u8 MatchCall_SameRouteBattleRequestText13[];
+extern const u8 MatchCall_SameRouteBattleRequestText14[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText1[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText2[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText3[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText4[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText5[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText6[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText7[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText8[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText9[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText10[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText11[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText12[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText13[];
+extern const u8 MatchCall_DifferentRouteBattleRequestText14[];
+extern const u8 MatchCall_PersonalizedText1[];
+extern const u8 MatchCall_PersonalizedText2[];
+extern const u8 MatchCall_PersonalizedText3[];
+extern const u8 MatchCall_PersonalizedText4[];
+extern const u8 MatchCall_PersonalizedText5[];
+extern const u8 MatchCall_PersonalizedText6[];
+extern const u8 MatchCall_PersonalizedText7[];
+extern const u8 MatchCall_PersonalizedText8[];
+extern const u8 MatchCall_PersonalizedText9[];
+extern const u8 MatchCall_PersonalizedText10[];
+extern const u8 MatchCall_PersonalizedText11[];
+extern const u8 MatchCall_PersonalizedText12[];
+extern const u8 MatchCall_PersonalizedText13[];
+extern const u8 MatchCall_PersonalizedText14[];
+extern const u8 MatchCall_PersonalizedText15[];
+extern const u8 MatchCall_PersonalizedText16[];
+extern const u8 MatchCall_PersonalizedText17[];
+extern const u8 MatchCall_PersonalizedText18[];
+extern const u8 MatchCall_PersonalizedText19[];
+extern const u8 MatchCall_PersonalizedText20[];
+extern const u8 MatchCall_PersonalizedText21[];
+extern const u8 MatchCall_PersonalizedText22[];
+extern const u8 MatchCall_PersonalizedText23[];
+extern const u8 MatchCall_PersonalizedText24[];
+extern const u8 MatchCall_PersonalizedText25[];
+extern const u8 MatchCall_PersonalizedText26[];
+extern const u8 MatchCall_PersonalizedText27[];
+extern const u8 MatchCall_PersonalizedText28[];
+extern const u8 MatchCall_PersonalizedText29[];
+extern const u8 MatchCall_PersonalizedText30[];
+extern const u8 MatchCall_PersonalizedText31[];
+extern const u8 MatchCall_PersonalizedText32[];
+extern const u8 MatchCall_PersonalizedText33[];
+extern const u8 MatchCall_PersonalizedText34[];
+extern const u8 MatchCall_PersonalizedText35[];
+extern const u8 MatchCall_PersonalizedText36[];
+extern const u8 MatchCall_PersonalizedText37[];
+extern const u8 MatchCall_PersonalizedText38[];
+extern const u8 MatchCall_PersonalizedText39[];
+extern const u8 MatchCall_PersonalizedText40[];
+extern const u8 MatchCall_PersonalizedText41[];
+extern const u8 MatchCall_PersonalizedText42[];
+extern const u8 MatchCall_PersonalizedText43[];
+extern const u8 MatchCall_PersonalizedText44[];
+extern const u8 MatchCall_PersonalizedText45[];
+extern const u8 MatchCall_PersonalizedText46[];
+extern const u8 MatchCall_PersonalizedText47[];
+extern const u8 MatchCall_PersonalizedText48[];
+extern const u8 MatchCall_PersonalizedText49[];
+extern const u8 MatchCall_PersonalizedText50[];
+extern const u8 MatchCall_PersonalizedText51[];
+extern const u8 MatchCall_PersonalizedText52[];
+extern const u8 MatchCall_PersonalizedText53[];
+extern const u8 MatchCall_PersonalizedText54[];
+extern const u8 MatchCall_PersonalizedText55[];
+extern const u8 MatchCall_PersonalizedText56[];
+extern const u8 MatchCall_PersonalizedText57[];
+extern const u8 MatchCall_PersonalizedText58[];
+extern const u8 MatchCall_PersonalizedText59[];
+extern const u8 MatchCall_PersonalizedText60[];
+extern const u8 MatchCall_PersonalizedText61[];
+extern const u8 MatchCall_PersonalizedText62[];
+extern const u8 MatchCall_PersonalizedText63[];
+extern const u8 MatchCall_PersonalizedText64[];
+extern const u8 MatchCall_BattleFrontierStreakText1[];
+extern const u8 MatchCall_BattleFrontierStreakText2[];
+extern const u8 MatchCall_BattleFrontierStreakText3[];
+extern const u8 MatchCall_BattleFrontierStreakText4[];
+extern const u8 MatchCall_BattleFrontierStreakText5[];
+extern const u8 MatchCall_BattleFrontierStreakText6[];
+extern const u8 MatchCall_BattleFrontierStreakText7[];
+extern const u8 MatchCall_BattleFrontierStreakText8[];
+extern const u8 MatchCall_BattleFrontierStreakText9[];
+extern const u8 MatchCall_BattleFrontierStreakText10[];
+extern const u8 MatchCall_BattleFrontierStreakText11[];
+extern const u8 MatchCall_BattleFrontierStreakText12[];
+extern const u8 MatchCall_BattleFrontierStreakText13[];
+extern const u8 MatchCall_BattleFrontierStreakText14[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText1[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText2[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText3[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText4[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText5[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText6[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText7[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText8[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText9[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText10[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText11[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText12[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText13[];
+extern const u8 MatchCall_BattleFrontierRecordStreakText14[];
+extern const u8 MatchCall_BattleDomeText1[];
+extern const u8 MatchCall_BattleDomeText2[];
+extern const u8 MatchCall_BattleDomeText3[];
+extern const u8 MatchCall_BattleDomeText4[];
+extern const u8 MatchCall_BattleDomeText5[];
+extern const u8 MatchCall_BattleDomeText6[];
+extern const u8 MatchCall_BattleDomeText7[];
+extern const u8 MatchCall_BattleDomeText8[];
+extern const u8 MatchCall_BattleDomeText9[];
+extern const u8 MatchCall_BattleDomeText10[];
+extern const u8 MatchCall_BattleDomeText11[];
+extern const u8 MatchCall_BattleDomeText12[];
+extern const u8 MatchCall_BattleDomeText13[];
+extern const u8 MatchCall_BattleDomeText14[];
+extern const u8 MatchCall_BattlePikeText1[];
+extern const u8 MatchCall_BattlePikeText2[];
+extern const u8 MatchCall_BattlePikeText3[];
+extern const u8 MatchCall_BattlePikeText4[];
+extern const u8 MatchCall_BattlePikeText5[];
+extern const u8 MatchCall_BattlePikeText6[];
+extern const u8 MatchCall_BattlePikeText7[];
+extern const u8 MatchCall_BattlePikeText8[];
+extern const u8 MatchCall_BattlePikeText9[];
+extern const u8 MatchCall_BattlePikeText10[];
+extern const u8 MatchCall_BattlePikeText11[];
+extern const u8 MatchCall_BattlePikeText12[];
+extern const u8 MatchCall_BattlePikeText13[];
+extern const u8 MatchCall_BattlePikeText14[];
+extern const u8 MatchCall_BattlePyramidText1[];
+extern const u8 MatchCall_BattlePyramidText2[];
+extern const u8 MatchCall_BattlePyramidText3[];
+extern const u8 MatchCall_BattlePyramidText4[];
+extern const u8 MatchCall_BattlePyramidText5[];
+extern const u8 MatchCall_BattlePyramidText6[];
+extern const u8 MatchCall_BattlePyramidText7[];
+extern const u8 MatchCall_BattlePyramidText8[];
+extern const u8 MatchCall_BattlePyramidText9[];
+extern const u8 MatchCall_BattlePyramidText10[];
+extern const u8 MatchCall_BattlePyramidText11[];
+extern const u8 MatchCall_BattlePyramidText12[];
+extern const u8 MatchCall_BattlePyramidText13[];
+extern const u8 MatchCall_BattlePyramidText14[];
+
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 660c1d60d..324045b50 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -206,7 +206,7 @@ SECTIONS {
src/battle_records.o(.text);
src/pokedex_area_screen.o(.text);
src/evolution_scene.o(.text);
- asm/roulette.o(.text);
+ src/roulette.o(.text);
src/pokedex_cry_screen.o(.text);
src/coins.o(.text);
src/landmark.o(.text);
@@ -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);
@@ -524,7 +524,7 @@ SECTIONS {
src/battle_records.o(.rodata);
src/pokedex_area_screen.o(.rodata);
src/evolution_scene.o(.rodata);
- data/roulette.o(.rodata);
+ src/roulette.o(.rodata);
src/pokedex_cry_screen.o(.rodata);
src/landmark.o(.rodata);
src/battle_transition.o(.rodata);
@@ -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/decoration.c b/src/decoration.c
index 438f2cbd1..c4c3d6171 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -1629,7 +1629,7 @@ void sub_8128950(u8 taskId)
void sub_81289D0(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_085A72C4);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085A72C4);
}
void sub_81289F0(u8 taskId)
@@ -1694,7 +1694,7 @@ void sub_8128AAC(u8 taskId)
void sub_8128B80(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_085A72CC);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085A72CC);
}
void sub_8128BA0(u8 taskId)
@@ -2589,7 +2589,7 @@ void sub_812A0E8(u8 taskId)
void sub_812A1A0(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_085A7348);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085A7348);
}
void sub_812A1C0(u8 taskId)
@@ -2602,7 +2602,7 @@ void sub_812A1C0(u8 taskId)
void sub_812A1F0(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_085A7350);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085A7350);
}
void sub_812A210(u8 taskId)
@@ -2726,7 +2726,7 @@ void sub_812A3D4(u8 taskId)
void sub_812A458(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_085A741C);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085A741C);
}
void sub_812A478(u8 taskId)
diff --git a/src/field_control_avatar.c b/src/field_control_avatar.c
index e6a859c84..4f6f5acdf 100644
--- a/src/field_control_avatar.c
+++ b/src/field_control_avatar.c
@@ -32,7 +32,7 @@
#include "constants/maps.h"
#include "constants/songs.h"
-extern bool32 sub_8196034(void);
+extern bool32 TryStartMatchCall(void);
static EWRAM_DATA u8 sWildEncounterImmunitySteps = 0;
static EWRAM_DATA u16 sPreviousPlayerMetatileBehavior = 0;
@@ -600,7 +600,7 @@ static bool8 TryStartStepCountScript(u16 metatileBehavior)
ScriptContext1_SetupScript(SSTidalCorridor_EventScript_23C050);
return TRUE;
}
- if (sub_8196034())
+ if (TryStartMatchCall())
return TRUE;
return FALSE;
}
diff --git a/src/field_message_box.c b/src/field_message_box.c
index 5e23b5f6b..299aafaf2 100755
--- a/src/field_message_box.c
+++ b/src/field_message_box.c
@@ -5,8 +5,8 @@
#include "task.h"
#include "text.h"
-extern bool32 sub_8196094(void);
-extern void sub_8196080(u8*);
+extern bool32 IsMatchCallTaskActive(void);
+extern void StartMatchCallFromScript(u8*);
static EWRAM_DATA u8 sFieldMessageBoxMode = 0;
@@ -68,7 +68,7 @@ bool8 ShowFieldMessage(u8 *str)
void sub_8098214(u8 taskId)
{
- if (!sub_8196094())
+ if (!IsMatchCallTaskActive())
{
sFieldMessageBoxMode = 0;
DestroyTask(taskId);
@@ -81,7 +81,7 @@ bool8 sub_8098238(u8 *str)
return FALSE;
StringExpandPlaceholders(gStringVar4, str);
CreateTask(sub_8098214, 0);
- sub_8196080(str);
+ StartMatchCallFromScript(str);
sFieldMessageBoxMode = 2;
return TRUE;
}
diff --git a/src/match_call.c b/src/match_call.c
index 53f9f0548..e7e91969f 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1,1275 +1,2017 @@
-
-// Includes
#include "global.h"
+#include "alloc.h"
+#include "battle.h"
#include "battle_setup.h"
+#include "bg.h"
+#include "data2.h"
#include "event_data.h"
+#include "event_object_movement.h"
+#include "field_player_avatar.h"
+#include "main.h"
+#include "menu.h"
+#include "new_game.h"
+#include "overworld.h"
+#include "palette.h"
+#include "pokedex.h"
+#include "pokemon.h"
+#include "random.h"
+#include "region_map.h"
+#include "rtc.h"
+#include "script.h"
+#include "script_movement.h"
+#include "sound.h"
#include "string_util.h"
-#include "battle.h"
-#include "gym_leader_rematch.h"
-
-extern void sub_8197080(u8 *dest);
-extern const u8 gTrainerClassNames[][13];
-
-// Static type declarations
-
-typedef struct MatchCallTextDataStruct {
- const u8 *text;
- u16 flag;
- u16 flag2;
-} match_call_text_data_t;
-
-struct MatchCallStructCommon {
- u8 type;
- u8 v1;
- u16 flag;
-};
-
-struct MatchCallStruct0 {
- u8 type;
- u8 v1;
- u16 flag;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+#include "strings.h"
+#include "task.h"
+#include "wild_encounter.h"
+#include "window.h"
+#include "constants/abilities.h"
+#include "constants/battle_frontier.h"
+#include "constants/event_objects.h"
+#include "constants/maps.h"
+#include "constants/region_map_sections.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/trainers.h"
+
+struct MatchCallState
+{
+ u32 minutes;
+ u16 trainerId;
+ u8 stepCounter;
+ u8 triggeredFromScript;
};
-struct MatchCallStruct1 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 rematchTableIdx;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+struct MatchCallTrainerTextInfo
+{
+ u16 trainerId;
+ u16 unused;
+ u16 battleTopicTextIds[3];
+ u16 generalTextId;
+ u8 battleFrontierRecordStreakTextIndex;
+ u16 sameRouteMatchCallTextId;
+ u16 differentRouteMatchCallTextId;
};
-struct MatchCallSubstruct2 {
- u16 flag;
- u8 v2;
+struct MatchCallText
+{
+ const u8 *text;
+ s8 stringVarFuncIds[3];
};
-struct MatchCallStruct2 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 rematchTableIdx;
- const u8 *desc;
- const match_call_text_data_t *textData;
- const struct MatchCallSubstruct2 *v10;
+struct MultiTrainerMatchCallText
+{
+ u16 trainerId;
+ const u8 *text;
};
-struct MatchCallStruct3 {
- u8 type;
- u8 v1;
- u16 flag;
- const u8 *desc;
- const u8 *name;
+struct BattleFrontierStreakInfo
+{
+ u16 facilityId;
+ u16 streak;
};
-struct MatchCallStruct4 {
- u8 type;
- u8 gender;
- u16 flag;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+EWRAM_DATA struct MatchCallState gMatchCallState = {0};
+EWRAM_DATA struct BattleFrontierStreakInfo gBattleFrontierStreakInfo = {0};
+
+bool32 SelectMatchCallMessage(int, u8 *);
+static u32 GetCurrentTotalMinutes(struct Time *);
+static u32 GetNumRegisteredNPCs(void);
+static u32 GetActiveMatchCallTrainerId(u32);
+static int GetTrainerMatchCallId(int);
+static u16 GetRematchTrainerLocation(int);
+static bool32 TrainerIsEligibleForRematch(int);
+static void StartMatchCall(void);
+static void ExecuteMatchCall(u8);
+static void DrawMatchCallTextBoxBorder(u32, u32, u32);
+static void sub_8196694(u8);
+static void InitMatchCallTextPrinter(int, const u8 *);
+static bool32 ExecuteMatchCallTextPrinter(int);
+static const struct MatchCallText *GetSameRouteMatchCallText(int, u8 *);
+static const struct MatchCallText *GetDifferentRouteMatchCallText(int, u8 *);
+static const struct MatchCallText *GetBattleMatchCallText(int, u8 *);
+static const struct MatchCallText *GetGeneralMatchCallText(int, u8 *);
+static bool32 sub_8196D74(int);
+static void BuildMatchCallString(int, const struct MatchCallText *, u8 *);
+static u16 GetFrontierStreakInfo(u16, u32 *);
+static void PopulateMatchCallStringVars(int, const s8 *);
+static void PopulateMatchCallStringVar(int, int, u8 *);
+static bool32 LoadMatchCallWindowGfx(u8);
+static bool32 MoveMatchCallWindowToVram(u8);
+static bool32 PrintMatchCallIntroEllipsis(u8);
+static bool32 sub_81962B0(u8);
+static bool32 sub_81962D8(u8);
+static bool32 sub_8196330(u8);
+static bool32 sub_8196390(u8);
+static bool32 sub_81963F0(u8);
+static void PopulateTrainerName(int, u8 *);
+static void PopulateMapName(int, u8 *);
+static void PopulateSpeciesFromTrainerLocation(int, u8 *);
+static void PopulateSpeciesFromTrainerParty(int, u8 *);
+static void PopulateBattleFrontierFacilityName(int, u8 *);
+static void PopulateBattleFrontierStreak(int, u8 *);
+
+extern void sub_81973A4(void);
+
+#define TEXT_ID(topic, id) (((topic) << 8) | ((id) & 0xFF))
+
+static const struct MatchCallTrainerTextInfo sMatchCallTrainers[] =
+{
+ {
+ .trainerId = TRAINER_ROSE_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 8), TEXT_ID(2, 8), TEXT_ID(3, 8) },
+ .generalTextId = TEXT_ID(1, 3),
+ .battleFrontierRecordStreakTextIndex = 8,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 8),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 8),
+ },
+ {
+ .trainerId = TRAINER_ANDRES_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .generalTextId = TEXT_ID(1, 62),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_DUSTY_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 12), TEXT_ID(2, 12), TEXT_ID(3, 12) },
+ .generalTextId = TEXT_ID(1, 4),
+ .battleFrontierRecordStreakTextIndex = 12,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 12),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 12),
+ },
+ {
+ .trainerId = TRAINER_LOLA_1,
+ .unused = 0,
+ .battleTopicTextIds = { TEXT_ID(1, 2), TEXT_ID(2, 2), TEXT_ID(3, 2) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = 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) },
+ .generalTextId = TEXT_ID(1, 58),
+ .battleFrontierRecordStreakTextIndex = 9,
+ .sameRouteMatchCallTextId = TEXT_ID(1, 9),
+ .differentRouteMatchCallTextId = TEXT_ID(2, 9),
+ },
};
-struct MatchCallStruct5 {
- u8 type;
- u8 v1;
- u16 flag;
- u16 v4;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
+static const struct MatchCallText sMatchCallWildBattleTexts[] =
+{
+ { .text = MatchCall_WildBattleText1, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText2, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText3, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText4, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText5, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText6, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText7, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText8, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText9, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText10, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText11, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText12, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText13, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText14, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_WildBattleText15, .stringVarFuncIds = { 0, 2, -1 } },
};
-#define MATCHCALLDEF(name, type_, ...) \
-static const struct MatchCallStruct##type_ name = { \
- .type = type_, \
- __VA_ARGS__ \
+ static const struct MatchCallText sMatchCallNegativeBattleTexts[] =
+ {
+ { .text = MatchCall_NegativeBattleText1, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText2, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText3, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText4, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText5, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText6, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText7, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText9, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText10, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText11, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText12, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText13, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_NegativeBattleText14, .stringVarFuncIds = { 0, -1, -1 } },
};
-typedef union {
- const struct MatchCallStructCommon *common;
- const struct MatchCallStruct0 *type0;
- const struct MatchCallStruct1 *type1;
- const struct MatchCallStruct2 *type2;
- const struct MatchCallStruct3 *type3;
- const struct MatchCallStruct4 *type4;
- const struct MatchCallStruct5 *type5;
-} match_call_t;
-
-struct UnkStruct_08625388 {
- u16 idx;
- u16 v2;
- u16 v4;
- const u8 *v8[4];
+static const struct MatchCallText sMatchCallPositiveBattleTexts[] =
+{
+ { .text = MatchCall_PositiveBattleText1, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText2, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText3, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText4, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText5, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText6, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText7, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText8, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText9, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText10, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText11, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText12, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText13, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PositiveBattleText14, .stringVarFuncIds = { 0, 3, -1 } },
};
-// Static RAM declarations
-
-// Static ROM declarations
-
-static bool32 MatchCallGetFlag_Type0(match_call_t);
-static bool32 MatchCallGetFlag_Type1(match_call_t);
-static bool32 MatchCallGetFlag_Type2(match_call_t);
-static bool32 MatchCallGetFlag_Type3(match_call_t);
-static bool32 MatchCallGetFlag_Type4(match_call_t);
-
-static u8 sub_81D1714(match_call_t);
-static u8 sub_81D1718(match_call_t);
-static u8 sub_81D171C(match_call_t);
-static u8 sub_81D1750(match_call_t);
-static u8 sub_81D1754(match_call_t);
-
-static bool32 MatchCall_IsRematchable_Type0(match_call_t);
-static bool32 MatchCall_IsRematchable_Type1(match_call_t);
-static bool32 MatchCall_IsRematchable_Type2(match_call_t);
-static bool32 MatchCall_IsRematchable_Type3(match_call_t);
-static bool32 MatchCall_IsRematchable_Type4(match_call_t);
-
-static bool32 sub_81D1840(match_call_t);
-static bool32 sub_81D1844(match_call_t);
-static bool32 sub_81D1848(match_call_t);
-static bool32 sub_81D184C(match_call_t);
-static bool32 sub_81D1850(match_call_t);
-
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t);
-
-static void MatchCall_GetMessage_Type0(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type1(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type2(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type3(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type4(match_call_t, u8 *);
-
-static void MatchCall_GetNameAndDesc_Type0(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type1(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type2(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type3(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type4(match_call_t, const u8 **, const u8 **);
-
-static void sub_81D1920(const match_call_text_data_t *, u8 *);
-static void sub_81D199C(const match_call_text_data_t *, u16, u8 *);
-static void MatchCall_GetNameAndDescByRematchIdx(u32, const u8 **, const u8 **);
-
-extern const u8 gText_MrStone_Pokenav_2B60C0[];
-extern const u8 gText_MrStone_Pokenav_2B61E6[];
-extern const u8 gText_MrStone_Pokenav_2B6302[];
-extern const u8 gText_MrStone_Pokenav_2B63A0[];
-extern const u8 gText_MrStone_Pokenav_2B64A2[];
-extern const u8 gText_MrStone_Pokenav_2B6526[];
-extern const u8 gText_MrStone_Pokenav_2B65BB[];
-extern const u8 gText_MrStone_Pokenav_2B6664[];
-extern const u8 gText_MrStone_Pokenav_2B66B1[];
-extern const u8 gText_MrStone_Pokenav_2B6703[];
-extern const u8 gText_MrStone_Pokenav_2B67ED[];
-
-extern const u8 gMrStoneMatchCallDesc[];
-extern const u8 gMrStoneMatchCallName[];
-
-extern const u8 gText_Norman_Pokenav_2B5719[];
-extern const u8 gText_Norman_Pokenav_2B5795[];
-extern const u8 gText_Norman_Pokenav_2B584D[];
-extern const u8 gText_Norman_Pokenav_2B58E3[];
-extern const u8 gText_Norman_Pokenav_2B5979[];
-extern const u8 gText_Norman_Pokenav_2B5A07[];
-extern const u8 gText_Norman_Pokenav_2B5A69[];
-extern const u8 gText_Norman_Pokenav_2B5ACF[];
-extern const u8 gText_Norman_Pokenav_2B5B5E[];
-
-extern const u8 gNormanMatchCallDesc[];
-extern const u8 gNormanMatchCallName[];
-
-extern const u8 gProfBirchMatchCallDesc[];
-extern const u8 gProfBirchMatchCallName[];
-
-extern const u8 gText_Mom_Pokenav_2B227B[];
-extern const u8 gText_Mom_Pokenav_2B2310[];
-extern const u8 gText_Mom_Pokenav_2B23F3[];
-
-extern const u8 gMomMatchCallDesc[];
-extern const u8 gMomMatchCallName[];
-
-extern const u8 gText_Steven_Pokenav_2B5B95[];
-extern const u8 gText_Steven_Pokenav_2B5C53[];
-extern const u8 gText_Steven_Pokenav_2B5CC9[];
-extern const u8 gText_Steven_Pokenav_2B5DB4[];
-extern const u8 gText_Steven_Pokenav_2B5E26[];
-extern const u8 gText_Steven_Pokenav_2B5EA2[];
-extern const u8 gText_Steven_Pokenav_2B5ED9[];
-
-extern const u8 gStevenMatchCallDesc[];
-extern const u8 gStevenMatchCallName[];
-
-extern const u8 gText_May_Pokenav_2B3AB3[];
-extern const u8 gText_May_Pokenav_2B3B3F[];
-extern const u8 gText_May_Pokenav_2B3C13[];
-extern const u8 gText_May_Pokenav_2B3CF3[];
-extern const u8 gText_May_Pokenav_2B3D4B[];
-extern const u8 gText_May_Pokenav_2B3DD1[];
-extern const u8 gText_May_Pokenav_2B3E69[];
-extern const u8 gText_May_Pokenav_2B3ECD[];
-extern const u8 gText_May_Pokenav_2B3F2B[];
-extern const u8 gText_May_Pokenav_2B3FFB[];
-extern const u8 gText_May_Pokenav_2B402B[];
-extern const u8 gText_May_Pokenav_2B414B[];
-extern const u8 gText_May_Pokenav_2B4228[];
-extern const u8 gText_May_Pokenav_2B42E0[];
-extern const u8 gText_May_Pokenav_2B4350[];
-extern const u8 gMayBrendanMatchCallDesc[];
-extern const u8 gExpandedPlaceholder_May[];
-extern const u8 gText_Brendan_Pokenav_2B43EF[];
-extern const u8 gText_Brendan_Pokenav_2B4486[];
-extern const u8 gText_Brendan_Pokenav_2B4560[];
-extern const u8 gText_Brendan_Pokenav_2B463F[];
-extern const u8 gText_Brendan_Pokenav_2B46B7[];
-extern const u8 gText_Brendan_Pokenav_2B4761[];
-extern const u8 gText_Brendan_Pokenav_2B47F4[];
-extern const u8 gText_Brendan_Pokenav_2B4882[];
-extern const u8 gText_Brendan_Pokenav_2B4909[];
-extern const u8 gText_Brendan_Pokenav_2B49C4[];
-extern const u8 gText_Brendan_Pokenav_2B4A44[];
-extern const u8 gText_Brendan_Pokenav_2B4B28[];
-extern const u8 gText_Brendan_Pokenav_2B4C15[];
-extern const u8 gText_Brendan_Pokenav_2B4CD8[];
-extern const u8 gText_Brendan_Pokenav_2B4D46[];
-extern const u8 gExpandedPlaceholder_Brendan[];
-extern const u8 gText_Wally_Pokenav_2B4DE2[];
-extern const u8 gText_Wally_Pokenav_2B4E57[];
-extern const u8 gText_Wally_Pokenav_2B4EA5[];
-extern const u8 gText_Wally_Pokenav_2B4F41[];
-extern const u8 gText_Wally_Pokenav_2B4FF3[];
-extern const u8 gText_Wally_Pokenav_2B50B1[];
-extern const u8 gText_Wally_Pokenav_2B5100[];
-extern const u8 gWallyMatchCallDesc[];
-extern const u8 gText_Scott_Pokenav_2B5184[];
-extern const u8 gText_Scott_Pokenav_2B5275[];
-extern const u8 gText_Scott_Pokenav_2B5323[];
-extern const u8 gText_Scott_Pokenav_2B53DB[];
-extern const u8 gText_Scott_Pokenav_2B54A5[];
-extern const u8 gText_Scott_Pokenav_2B5541[];
-extern const u8 gText_Scott_Pokenav_2B56CA[];
-extern const u8 gScottMatchCallDesc[];
-extern const u8 gScottMatchCallName[];
-extern const u8 gText_Roxanne_Pokenav_2B2456[];
-extern const u8 gText_Roxanne_Pokenav_2B250E[];
-extern const u8 gText_Roxanne_Pokenav_2B25C1[];
-extern const u8 gText_Roxanne_Pokenav_2B2607[];
-extern const u8 gRoxanneMatchCallDesc[];
-extern const u8 gText_Brawly_Pokenav_2B2659[];
-extern const u8 gText_Brawly_Pokenav_2B275D[];
-extern const u8 gText_Brawly_Pokenav_2B286F[];
-extern const u8 gText_Brawly_Pokenav_2B28D1[];
-extern const u8 gBrawlyMatchCallDesc[];
-extern const u8 gText_Wattson_Pokenav_2B2912[];
-extern const u8 gText_Wattson_Pokenav_2B29CA[];
-extern const u8 gText_Wattson_Pokenav_2B2AB6[];
-extern const u8 gText_Wattson_Pokenav_2B2B01[];
-extern const u8 gWattsonMatchCallDesc[];
-extern const u8 gText_Flannery_Pokenav_2B2B4D[];
-extern const u8 gText_Flannery_Pokenav_2B2C0E[];
-extern const u8 gText_Flannery_Pokenav_2B2CF1[];
-extern const u8 gText_Flannery_Pokenav_2B2D54[];
-extern const u8 gFlanneryMatchCallDesc[];
-extern const u8 gText_Winona_Pokenav_2B2DA4[];
-extern const u8 gText_Winona_Pokenav_2B2E2B[];
-extern const u8 gText_Winona_Pokenav_2B2EC2[];
-extern const u8 gText_Winona_Pokenav_2B2F16[];
-extern const u8 gWinonaMatchCallDesc[];
-extern const u8 gText_TateLiza_Pokenav_2B2F97[];
-extern const u8 gText_TateLiza_Pokenav_2B306E[];
-extern const u8 gText_TateLiza_Pokenav_2B3158[];
-extern const u8 gText_TateLiza_Pokenav_2B31CD[];
-extern const u8 gTateLizaMatchCallDesc[];
-extern const u8 gText_Juan_Pokenav_2B3249[];
-extern const u8 gText_Juan_Pokenav_2B32EC[];
-extern const u8 gText_Juan_Pokenav_2B33AA[];
-extern const u8 gText_Juan_Pokenav_2B341E[];
-extern const u8 gJuanMatchCallDesc[];
-extern const u8 gText_Sidney_Pokenav_2B34CC[];
-extern const u8 gEliteFourMatchCallDesc[];
-extern const u8 gText_Phoebe_Pokenav_2B3561[];
-extern const u8 gText_Glacia_Pokenav_2B35E4[];
-extern const u8 gText_Drake_Pokenav_2B368B[];
-extern const u8 gText_Wallace_Pokenav_2B3790[];
-extern const u8 gChampionMatchCallDesc[];
-extern const u8 gMatchCallStevenStrategyText[];
-extern const u8 gMatchCall_StevenTrainersPokemonText[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_BrendanStrategyText[];
-extern const u8 gMatchCall_BrendanTrainersPokemonText[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line1[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line2[];
-extern const u8 gMatchCall_MayStrategyText[];
-extern const u8 gMatchCall_MayTrainersPokemonText[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line1[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line2[];
-// .rodata
-
-static const match_call_text_data_t sMrStoneTextScripts[] = {
- { gText_MrStone_Pokenav_2B60C0, 0xFFFF, FLAG_ENABLE_MR_STONE_POKENAV },
- { gText_MrStone_Pokenav_2B61E6, FLAG_ENABLE_MR_STONE_POKENAV, 0xFFFF },
- { gText_MrStone_Pokenav_2B6302, FLAG_DELIVERED_STEVEN_LETTER, 0xFFFF },
- { gText_MrStone_Pokenav_2B63A0, FLAG_RECEIVED_EXP_SHARE, 0xFFFF },
- { gText_MrStone_Pokenav_2B64A2, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_MrStone_Pokenav_2B6526, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_MrStone_Pokenav_2B65BB, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_MrStone_Pokenav_2B6664, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_MrStone_Pokenav_2B66B1, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_MrStone_Pokenav_2B6703, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_MrStone_Pokenav_2B67ED, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallSameRouteBattleRequestTexts[] =
+{
+ { .text = MatchCall_SameRouteBattleRequestText1, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText2, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText3, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText4, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText5, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText6, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText7, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText8, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText9, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText10, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText11, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText12, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText13, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_SameRouteBattleRequestText14, .stringVarFuncIds = { 0, 1, -1 } },
};
-MATCHCALLDEF(sMrStoneMatchCallHeader, 0, 10, 0xffff, gMrStoneMatchCallDesc, gMrStoneMatchCallName, sMrStoneTextScripts);
-
-static const match_call_text_data_t sNormanTextScripts[] = {
- { gText_Norman_Pokenav_2B5719, FLAG_ENABLE_NORMAN_MATCH_CALL, 0xFFFF },
- { gText_Norman_Pokenav_2B5795, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B584D, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B58E3, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B5979, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Norman_Pokenav_2B5A07, 0xFFFE, 0xFFFF },
- { gText_Norman_Pokenav_2B5A69, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5ACF, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5B5E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallDifferentRouteBattleRequestTexts[] =
+{
+ { .text = MatchCall_DifferentRouteBattleRequestText1, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText2, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText3, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText4, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText5, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText6, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText7, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText8, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText9, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText10, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText11, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText12, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText13, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_DifferentRouteBattleRequestText14, .stringVarFuncIds = { 0, 1, -1 } },
};
-MATCHCALLDEF(sNormanMatchCallHeader, 5, 7, FLAG_ENABLE_NORMAN_MATCH_CALL, 0x45, gNormanMatchCallDesc, gNormanMatchCallName, sNormanTextScripts);
-
-MATCHCALLDEF(sProfBirchMatchCallHeader, 3, 0, FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, gProfBirchMatchCallDesc, gProfBirchMatchCallName)
-
-static const match_call_text_data_t sMomTextScripts[] = {
- { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
- { gText_Mom_Pokenav_2B2310, FLAG_DEFEATED_PETALBURG_GYM, 0xffff },
- { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff }
+static const struct MatchCallText sMatchCallPersonalizedTexts[] =
+{
+ { .text = MatchCall_PersonalizedText1, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_PersonalizedText2, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText3, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText4, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText5, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText6, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText7, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText8, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText9, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText10, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText11, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText12, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText13, .stringVarFuncIds = { 0, 2, -1 } },
+ { .text = MatchCall_PersonalizedText14, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText15, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText16, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText17, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText18, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText19, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText20, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText21, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText22, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText23, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText24, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText25, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText26, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText27, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText28, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText29, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText30, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText31, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText32, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText33, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText34, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText35, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText36, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText37, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText38, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText39, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText40, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText41, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText42, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText43, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText44, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText45, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText46, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText47, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText48, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText49, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText50, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText51, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_PersonalizedText52, .stringVarFuncIds = { 0, 3, -1 } },
+ { .text = MatchCall_PersonalizedText53, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText54, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText55, .stringVarFuncIds = { 0, 1, -1 } },
+ { .text = MatchCall_PersonalizedText56, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText57, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText58, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText59, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText60, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText61, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText62, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText63, .stringVarFuncIds = { 0, -1, -1 } },
+ { .text = MatchCall_PersonalizedText64, .stringVarFuncIds = { 0, -1, -1 } },
};
-MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_ENABLE_MOM_MATCH_CALL, 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_RECEIVED_RED_OR_BLUE_ORB, 0xffff },
- { gText_Steven_Pokenav_2B5DB4, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xffff },
- { gText_Steven_Pokenav_2B5E26, FLAG_DEFEATED_MOSSDEEP_GYM, 0xffff },
- { gText_Steven_Pokenav_2B5EA2, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xffff },
- { gText_Steven_Pokenav_2B5ED9, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff },
+static const struct MatchCallText sMatchCallBattleFrontierStreakTexts[] =
+{
+ { .text = MatchCall_BattleFrontierStreakText1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText2, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText10, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText12, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText13, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierStreakText14, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sStevenMatchCallHeader, 0, 0xd5, FLAG_REGISTERED_STEVEN_POKENAV, gStevenMatchCallDesc, gStevenMatchCallName, sStevenTextScripts);
-
-static const match_call_text_data_t sMayTextScripts[] = {
- { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF },
- { gText_May_Pokenav_2B3B3F, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3C13, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
- { gText_May_Pokenav_2B3CF3, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_May_Pokenav_2B3D4B, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_May_Pokenav_2B3DD1, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3E69, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3ECD, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_May_Pokenav_2B3F2B, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_May_Pokenav_2B3FFB, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_May_Pokenav_2B402B, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
- { gText_May_Pokenav_2B414B, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_May_Pokenav_2B4228, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_May_Pokenav_2B42E0, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_May_Pokenav_2B4350, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattleFrontierRecordStreakTexts[] =
+{
+ { .text = MatchCall_BattleFrontierRecordStreakText1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText2, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText10, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText12, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText13, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleFrontierRecordStreakText14, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sMayMatchCallHeader, 4, MALE, FLAG_ENABLE_RIVAL_MATCH_CALL, gMayBrendanMatchCallDesc, gExpandedPlaceholder_May, sMayTextScripts);
-
-static const match_call_text_data_t sBrendanTextScripts[] = {
- { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF },
- { gText_Brendan_Pokenav_2B4486, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4560, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
- { gText_Brendan_Pokenav_2B463F, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_Brendan_Pokenav_2B46B7, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_Brendan_Pokenav_2B4761, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B47F4, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4882, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4909, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Brendan_Pokenav_2B49C4, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_Brendan_Pokenav_2B4A44, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
- { gText_Brendan_Pokenav_2B4B28, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_Brendan_Pokenav_2B4C15, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_Brendan_Pokenav_2B4CD8, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4D46, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattleDomeTexts[] =
+{
+ { .text = MatchCall_BattleDomeText1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText2, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText10, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText12, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText13, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattleDomeText14, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_ENABLE_RIVAL_MATCH_CALL, 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_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Wally_Pokenav_2B4F41, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Wally_Pokenav_2B4FF3, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_Wally_Pokenav_2B50B1, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_Wally_Pokenav_2B5100, FLAG_DEFEATED_WALLY_VICTORY_ROAD, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText sMatchCallBattlePikeTexts[] =
+{
+ { .text = MatchCall_BattlePikeText1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText2, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText10, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText12, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText13, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePikeText14, .stringVarFuncIds = { 0, 4, 5 } },
};
-const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
- { FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 },
- { FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xD5 },
- { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 },
- { 0xFFFF, 0xD5 }
+static const struct MatchCallText sMatchCallBattlePyramidTexts[] =
+{
+ { .text = MatchCall_BattlePyramidText1, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText2, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText3, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText4, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText5, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText6, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText7, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText8, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText9, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText10, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText11, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText12, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText13, .stringVarFuncIds = { 0, 4, 5 } },
+ { .text = MatchCall_BattlePyramidText14, .stringVarFuncIds = { 0, 4, 5 } },
};
-MATCHCALLDEF(sWallyMatchCallHeader, 2, 0, FLAG_ENABLE_WALLY_MATCH_CALL, 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_DEFEATED_EVIL_TEAM_MT_CHIMNEY, 0xFFFF },
- { gText_Scott_Pokenav_2B5323, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Scott_Pokenav_2B53DB, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Scott_Pokenav_2B54A5, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_Scott_Pokenav_2B5541, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_Scott_Pokenav_2B56CA, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallBattleTopics[] =
+{
+ sMatchCallWildBattleTexts,
+ sMatchCallNegativeBattleTexts,
+ sMatchCallPositiveBattleTexts,
};
-
-MATCHCALLDEF(sScottMatchCallHeader, 0, 0xD5, FLAG_ENABLE_SCOTT_MATCH_CALL, gScottMatchCallDesc, gScottMatchCallName, sScottTextScripts);
-
-static const match_call_text_data_t sRoxanneTextScripts[] = {
- { gText_Roxanne_Pokenav_2B2456, 0xFFFE, 0xFFFF },
- { gText_Roxanne_Pokenav_2B250E, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B25C1, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B2607, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallBattleRequestTopics[] =
+{
+ sMatchCallSameRouteBattleRequestTexts,
+ sMatchCallDifferentRouteBattleRequestTexts,
};
-MATCHCALLDEF(sRoxanneMatchCallHeader, 5, 10, FLAG_ENABLE_ROXANNE_MATCH_CALL, 0x41, gRoxanneMatchCallDesc, NULL, sRoxanneTextScripts);
-
-static const match_call_text_data_t sBrawlyTextScripts[] = {
- { gText_Brawly_Pokenav_2B2659, 0xFFFE, 0xFFFF },
- { gText_Brawly_Pokenav_2B275D, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B286F, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B28D1, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+static const struct MatchCallText *const sMatchCallGeneralTopics[] =
+{
+ sMatchCallPersonalizedTexts,
+ sMatchCallBattleFrontierStreakTexts,
+ sMatchCallBattleFrontierRecordStreakTexts,
+ sMatchCallBattleDomeTexts,
+ sMatchCallBattlePikeTexts,
+ sMatchCallBattlePyramidTexts,
};
-MATCHCALLDEF(sBrawlyMatchCallHeader, 5, 2, FLAG_ENABLE_BRAWLY_MATCH_CALL, 0x42, gBrawlyMatchCallDesc, NULL, sBrawlyTextScripts);
-
-static const match_call_text_data_t sWattsonTextScripts[] = {
- { gText_Wattson_Pokenav_2B2912, 0xFFFE, 0xFFFF },
- { gText_Wattson_Pokenav_2B29CA, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2AB6, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2B01, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+extern const u8 gUnknown_082A5C9C[];
+extern const u8 gUnknown_082A5D2C[];
+extern const u8 gUnknown_082A633D[];
-MATCHCALLDEF(sWattsonMatchCallHeader, 5, 9, FLAG_ENABLE_WATTSON_MATCH_CALL, 0x43, gWattsonMatchCallDesc, NULL, sWattsonTextScripts);
+void InitMatchCallCounters(void)
+{
+ RtcCalcLocalTime();
+ gMatchCallState.minutes = GetCurrentTotalMinutes(&gLocalTime) + 10;
+ gMatchCallState.stepCounter = 0;
+}
-static const match_call_text_data_t sFlanneryTextScripts[] = {
- { gText_Flannery_Pokenav_2B2B4D, 0xFFFE, 0xFFFF },
- { gText_Flannery_Pokenav_2B2C0E, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2CF1, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2D54, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetCurrentTotalMinutes(struct Time *time)
+{
+ return time->days * 1440 + time->hours * 60 + time->minutes;
+}
-MATCHCALLDEF(sFlanneryMatchCallHeader, 5, 3, FLAG_ENABLE_FLANNERY_MATCH_CALL, 0x44, gFlanneryMatchCallDesc, NULL, sFlanneryTextScripts);
+static bool32 UpdateMatchCallMinutesCounter(void)
+{
+ int curMinutes;
+ RtcCalcLocalTime();
+ curMinutes = GetCurrentTotalMinutes(&gLocalTime);
+ if (gMatchCallState.minutes > curMinutes || curMinutes - gMatchCallState.minutes > 9)
+ {
+ gMatchCallState.minutes = curMinutes;
+ return TRUE;
+ }
-static const match_call_text_data_t sWinonaTextScripts[] = {
- { gText_Winona_Pokenav_2B2DA4, 0xFFFE, 0xFFFF },
- { gText_Winona_Pokenav_2B2E2B, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2EC2, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2F16, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return FALSE;
+}
-MATCHCALLDEF(sWinonaMatchCallHeader, 5, 11, FLAG_ENABLE_WINONA_MATCH_CALL, 0x46, gWinonaMatchCallDesc, NULL, sWinonaTextScripts);
+static bool32 CheckMatchCallChance(void)
+{
+ int callChance = 1;
+ if (!GetMonData(&gPlayerParty[0], MON_DATA_SANITY_IS_EGG) && GetMonAbility(&gPlayerParty[0]) == ABILITY_LIGHTNING_ROD)
+ callChance = 2;
+
+ if (Random() % 10 < callChance * 3)
+ return TRUE;
+ else
+ return FALSE;
+}
-static const match_call_text_data_t sTateLizaTextScripts[] = {
- { gText_TateLiza_Pokenav_2B2F97, 0xFFFE, 0xFFFF },
- { gText_TateLiza_Pokenav_2B306E, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B3158, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B31CD, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static bool32 MapAllowsMatchCall(void)
+{
+ if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType) || gMapHeader.regionMapSectionId == MAPSEC_SAFARI_ZONE)
+ return FALSE;
+
+ if (gMapHeader.regionMapSectionId == MAPSEC_SOOTOPOLIS_CITY
+ && FlagGet(FLAG_HIDE_SOOTOPOLIS_CITY_RAYQUAZA) == TRUE
+ && FlagGet(FLAG_UNUSED_0x0DC) == FALSE)
+ return FALSE;
-MATCHCALLDEF(sTateLizaMatchCallHeader, 5, 13, FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL, 0x47, gTateLizaMatchCallDesc, NULL, sTateLizaTextScripts);
+ if (gMapHeader.regionMapSectionId == MAPSEC_MT_CHIMNEY
+ && FlagGet(FLAG_MET_ARCHIE_METEOR_FALLS) == TRUE
+ && FlagGet(FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY) == FALSE)
+ return FALSE;
-static const match_call_text_data_t sJuanTextScripts[] = {
- { gText_Juan_Pokenav_2B3249, 0xFFFE, 0xFFFF },
- { gText_Juan_Pokenav_2B32EC, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B33AA, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B341E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return TRUE;
+}
-MATCHCALLDEF(sJuanMatchCallHeader, 5, 14, FLAG_ENABLE_JUAN_MATCH_CALL, 0x48, gJuanMatchCallDesc, NULL, sJuanTextScripts);
+static bool32 UpdateMatchCallStepCounter(void)
+{
+ if (++gMatchCallState.stepCounter >= 10)
+ {
+ gMatchCallState.stepCounter = 0;
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
-static const match_call_text_data_t sSidneyTextScripts[] = {
- { gText_Sidney_Pokenav_2B34CC, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static bool32 SelectMatchCallTrainer(void)
+{
+ u32 matchCallId;
+ u32 numRegistered = GetNumRegisteredNPCs();
+ if (!numRegistered)
+ return FALSE;
-MATCHCALLDEF(sSidneyMatchCallHeader, 5, 15, FLAG_REMATCH_JUAN, 0x49, gEliteFourMatchCallDesc, NULL, sSidneyTextScripts);
+ gMatchCallState.trainerId = GetActiveMatchCallTrainerId(Random() % numRegistered);
+ gMatchCallState.triggeredFromScript = 0;
+ if (gMatchCallState.trainerId == REMATCH_TABLE_ENTRIES)
+ return FALSE;
-static const match_call_text_data_t sPhoebeTextScripts[] = {
- { gText_Phoebe_Pokenav_2B3561, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ matchCallId = GetTrainerMatchCallId(gMatchCallState.trainerId);
+ if (GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId && !TrainerIsEligibleForRematch(matchCallId))
+ return FALSE;
-MATCHCALLDEF(sPhoebeMatchCallHeader, 5, 15, FLAG_REMATCH_SIDNEY, 0x4A, gEliteFourMatchCallDesc, NULL, sPhoebeTextScripts);
+ return TRUE;
+}
-static const match_call_text_data_t sGlaciaTextScripts[] = {
- { gText_Glacia_Pokenav_2B35E4, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetNumRegisteredNPCs(void)
+{
+ u32 i, count;
+ for (i = 0, count = 0; i < 64; i++)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
+ count++;
+ }
-MATCHCALLDEF(sGlaciaMatchCallHeader, 5, 15, FLAG_REMATCH_PHOEBE, 0x4B, gEliteFourMatchCallDesc, NULL, sGlaciaTextScripts);
+ return count;
+}
-static const match_call_text_data_t sDrakeTextScripts[] = {
- { gText_Drake_Pokenav_2B368B, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId)
+{
+ u32 i;
+ for (i = 0; i < 64; i++)
+ {
+ if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
+ {
+ if (!activeMatchCallId)
+ return gRematchTable[i].trainerIds[0];
-MATCHCALLDEF(sDrakeMatchCallHeader, 5, 15, FLAG_REMATCH_GLACIA, 0x4C, gEliteFourMatchCallDesc, NULL, sDrakeTextScripts);
+ activeMatchCallId--;
+ }
+ }
-static const match_call_text_data_t sWallaceTextScripts[] = {
- { gText_Wallace_Pokenav_2B3790, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
-};
+ return REMATCH_TABLE_ENTRIES;
+}
-MATCHCALLDEF(sWallaceMatchCallHeader, 5, 15, FLAG_REMATCH_DRAKE, 0x4D, gChampionMatchCallDesc, NULL, sWallaceTextScripts);
-
-static const match_call_t sMatchCallHeaders[] = {
- {.type0 = &sMrStoneMatchCallHeader},
- {.type3 = &sProfBirchMatchCallHeader},
- {.type4 = &sBrendanMatchCallHeader},
- {.type4 = &sMayMatchCallHeader},
- {.type2 = &sWallyMatchCallHeader},
- {.type5 = &sNormanMatchCallHeader},
- {.type0 = &sMomMatchCallHeader},
- {.type0 = &sStevenMatchCallHeader},
- {.type0 = &sScottMatchCallHeader},
- {.type5 = &sRoxanneMatchCallHeader},
- {.type5 = &sBrawlyMatchCallHeader},
- {.type5 = &sWattsonMatchCallHeader},
- {.type5 = &sFlanneryMatchCallHeader},
- {.type5 = &sWinonaMatchCallHeader},
- {.type5 = &sTateLizaMatchCallHeader},
- {.type5 = &sJuanMatchCallHeader},
- {.type5 = &sSidneyMatchCallHeader},
- {.type5 = &sPhoebeMatchCallHeader},
- {.type5 = &sGlaciaMatchCallHeader},
- {.type5 = &sDrakeMatchCallHeader},
- {.type5 = &sWallaceMatchCallHeader}
-};
+bool32 TryStartMatchCall(void)
+{
+ if (FlagGet(FLAG_HAS_MATCH_CALL) && UpdateMatchCallStepCounter() && UpdateMatchCallMinutesCounter()
+ && CheckMatchCallChance() && MapAllowsMatchCall() && SelectMatchCallTrainer())
+ {
+ StartMatchCall();
+ return TRUE;
+ }
-static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
- MatchCallGetFlag_Type0,
- MatchCallGetFlag_Type1,
- MatchCallGetFlag_Type2,
- MatchCallGetFlag_Type3,
- MatchCallGetFlag_Type4
-};
+ return FALSE;
+}
-static u8 (*const gUnknown_08625310[])(match_call_t) = {
- sub_81D1714,
- sub_81D1718,
- sub_81D171C,
- sub_81D1750,
- sub_81D1754
-};
+void StartMatchCallFromScript(void)
+{
+ gMatchCallState.triggeredFromScript = 1;
+ StartMatchCall();
+}
-static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
- MatchCall_IsRematchable_Type0,
- MatchCall_IsRematchable_Type1,
- MatchCall_IsRematchable_Type2,
- MatchCall_IsRematchable_Type3,
- MatchCall_IsRematchable_Type4
-};
+bool8 IsMatchCallTaskActive(void)
+{
+ return FuncIsActiveTask(ExecuteMatchCall);
+}
-static bool32 (*const gUnknown_08625338[])(match_call_t) = {
- sub_81D1840,
- sub_81D1844,
- sub_81D1848,
- sub_81D184C,
- sub_81D1850
-};
+static void StartMatchCall(void)
+{
+ if (!gMatchCallState.triggeredFromScript)
+ {
+ ScriptContext2_Enable();
+ FreezeEventObjects();
+ sub_808B864();
+ sub_808BCF4();
+ }
-static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
- MatchCall_GetRematchTableIdx_Type0,
- MatchCall_GetRematchTableIdx_Type1,
- MatchCall_GetRematchTableIdx_Type2,
- MatchCall_GetRematchTableIdx_Type3,
- MatchCall_GetRematchTableIdx_Type4
-};
+ PlaySE(SE_TOREEYE);
+ CreateTask(ExecuteMatchCall, 1);
+}
-static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = {
- MatchCall_GetMessage_Type0,
- MatchCall_GetMessage_Type1,
- MatchCall_GetMessage_Type2,
- MatchCall_GetMessage_Type3,
- MatchCall_GetMessage_Type4
-};
+static const u16 sUnknown_0860EA4C[] = INCBIN_U16("graphics/unknown/unknown_60EA4C.gbapal");
+static const u8 sUnknown_0860EA6C[] = INCBIN_U8("graphics/interface/menu_border.4bpp");
+static const u16 sPokeNavIconPalette[] = INCBIN_U16("graphics/pokenav/icon.gbapal");
+static const u32 sPokeNavIconGfx[] = INCBIN_U32("graphics/pokenav/icon.4bpp.lz");
-static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = {
- MatchCall_GetNameAndDesc_Type0,
- MatchCall_GetNameAndDesc_Type1,
- MatchCall_GetNameAndDesc_Type2,
- MatchCall_GetNameAndDesc_Type3,
- MatchCall_GetNameAndDesc_Type4
-};
+static const u8 sText_PokenavCallEllipsis[] = _("………………\p");
-static const struct UnkStruct_08625388 sMatchCallCheckPageOverrides[] = {
- { 7, 0x4B, 0xffff, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
- { 7, 0x4B, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
- { 2, 0x3c, 0xffff, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
- { 3, 0x3f, 0xffff, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
+static bool32 (*const sMatchCallTaskFuncs[])(u8) =
+{
+ LoadMatchCallWindowGfx,
+ MoveMatchCallWindowToVram,
+ PrintMatchCallIntroEllipsis,
+ sub_81962B0,
+ sub_81962D8,
+ sub_8196330,
+ sub_8196390,
+ sub_81963F0,
};
-// .text
-
-static u32 MatchCallGetFunctionIndex(match_call_t matchCall)
+static void ExecuteMatchCall(u8 taskId)
{
- switch (matchCall.common->type)
+ s16 *taskData = gTasks[taskId].data;
+ if (sMatchCallTaskFuncs[taskData[0]](taskId))
{
- case 0:
- default:
- return 0;
- case 1:
- case 5:
- return 1;
- case 2:
- return 2;
- case 4:
- return 3;
- case 3:
- return 4;
+ taskData[0]++;
+ taskData[1] = 0;
+ if ((u16)taskData[0] > 7)
+ DestroyTask(taskId);
}
}
-u32 GetTrainerIdxByRematchIdx(u32 rematchIdx)
+static const struct WindowTemplate sMatchCallTextWindow =
{
- return gRematchTable[rematchIdx].trainerIds[0];
-}
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x200
+};
-s32 GetRematchIdxByTrainerIdx(s32 trainerIdx)
+static bool32 LoadMatchCallWindowGfx(u8 taskId)
{
- s32 rematchIdx;
-
- for (rematchIdx = 0; rematchIdx < REMATCH_TABLE_ENTRIES; rematchIdx++)
+ s16 *taskData = gTasks[taskId].data;
+ taskData[2] = AddWindow(&sMatchCallTextWindow);
+ if (taskData[2] == 0xFF)
{
- if (gRematchTable[rematchIdx].trainerIds[0] == trainerIdx)
- return rematchIdx;
+ DestroyTask(taskId);
+ return FALSE;
}
- return -1;
-}
-bool32 MatchCallFlagGetByIndex(u32 idx)
-{
- match_call_t matchCall;
- u32 i;
+ if (LoadBgTiles(0, sUnknown_0860EA6C, sizeof(sUnknown_0860EA6C), 0x270) == 0xFFFF)
+ {
+ RemoveWindow(taskData[2]);
+ DestroyTask(taskId);
+ return FALSE;
+ }
- if (idx > 20)
+ if (!decompress_and_copy_tile_data_to_vram(0, sPokeNavIconGfx, 0, 0x279, 0))
+ {
+ RemoveWindow(taskData[2]);
+ DestroyTask(taskId);
return FALSE;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCallGetFlagFuncs[i](matchCall);
+ }
+
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ LoadPalette(sUnknown_0860EA4C, 0xE0, 0x20);
+ LoadPalette(sPokeNavIconPalette, 0xF0, 0x20);
+ ChangeBgY(0, -0x2000, 0);
+ return TRUE;
}
-static bool32 MatchCallGetFlag_Type0(match_call_t matchCall)
+static bool32 MoveMatchCallWindowToVram(u8 taskId)
{
- if (matchCall.type0->flag == 0xffff)
- return TRUE;
- return FlagGet(matchCall.type0->flag);
+ s16 *taskData = gTasks[taskId].data;
+ if (free_temp_tile_data_buffers_if_possible())
+ return FALSE;
+
+ PutWindowTilemap(taskData[2]);
+ DrawMatchCallTextBoxBorder(taskData[2], 0x270, 14);
+ WriteSequenceToBgTilemapBuffer(0, 0xF279, 1, 15, 4, 4, 17, 1);
+ taskData[5] = CreateTask(sub_8196694, 10);
+ CopyWindowToVram(taskData[2], 2);
+ CopyBgTilemapBufferToVram(0);
+ return TRUE;
}
-static bool32 MatchCallGetFlag_Type1(match_call_t matchCall)
+static bool32 PrintMatchCallIntroEllipsis(u8 taskId)
{
- if (matchCall.type1->flag == 0xffff)
+ s16 *taskData = gTasks[taskId].data;
+ if (!IsDma3ManagerBusyWithBgCopy())
+ {
+ InitMatchCallTextPrinter(taskData[2], sText_PokenavCallEllipsis);
return TRUE;
- return FlagGet(matchCall.type1->flag);
+ }
+
+ return FALSE;
}
-static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
+static bool32 sub_81962B0(u8 taskId)
{
- if (matchCall.type2->flag == 0xffff)
+ if (ChangeBgY(0, 0x600, 1) >= 0)
+ {
+ ChangeBgY(0, 0, 0);
return TRUE;
- return FlagGet(matchCall.type2->flag);
+ }
+
+ return FALSE;
}
-static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
+static bool32 sub_81962D8(u8 taskId)
{
- if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
- return FALSE;
- if (matchCall.type4->flag == 0xffff)
+ s16 *taskData = gTasks[taskId].data;
+ if (!ExecuteMatchCallTextPrinter(taskData[2]))
+ {
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ if (!gMatchCallState.triggeredFromScript)
+ SelectMatchCallMessage(gMatchCallState.trainerId, gStringVar4);
+
+ InitMatchCallTextPrinter(taskData[2], gStringVar4);
return TRUE;
- return FlagGet(matchCall.type4->flag);
-}
+ }
-static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
-{
- return FlagGet(matchCall.type3->flag);
+ return FALSE;
}
-u8 sub_81D16DC(u32 idx)
+static bool32 sub_8196330(u8 taskId)
{
- match_call_t matchCall;
- u32 i;
+ s16 *taskData = gTasks[taskId].data;
+ if (!ExecuteMatchCallTextPrinter(taskData[2]) && !IsSEPlaying() && gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ FillWindowPixelBuffer(taskData[2], 0x88);
+ CopyWindowToVram(taskData[2], 2);
+ PlaySE(SE_TOREOFF);
+ return TRUE;
+ }
- if (idx > 20)
- return 0;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return gUnknown_08625310[i](matchCall);
+ return FALSE;
}
-static u8 sub_81D1714(match_call_t matchCall)
+static bool32 sub_8196390(u8 taskId)
{
- return matchCall.type0->v1;
-}
+ s16 *taskData = gTasks[taskId].data;
+ if (ChangeBgY(0, 0x600, 2) <= -0x2000)
+ {
+ FillBgTilemapBufferRect_Palette0(0, 0, 0, 14, 30, 6);
+ DestroyTask(taskData[5]);
+ RemoveWindow(taskData[2]);
+ CopyBgTilemapBufferToVram(0);
+ return TRUE;
+ }
-static u8 sub_81D1718(match_call_t matchCall)
-{
- return matchCall.type1->v1;
+ return FALSE;
}
-static u8 sub_81D171C(match_call_t matchCall)
+static bool32 sub_81963F0(u8 taskId)
{
- s32 i;
-
- for (i = 0; matchCall.type2->v10[i].flag != 0xffff; i++)
+ u8 playerObjectId;
+ if (!IsDma3ManagerBusyWithBgCopy() && !IsSEPlaying())
{
- if (!FlagGet(matchCall.type2->v10[i].flag))
- break;
+ ChangeBgY(0, 0, 0);
+ if (!gMatchCallState.triggeredFromScript)
+ {
+ sub_81973A4();
+ playerObjectId = GetEventObjectIdByLocalIdAndMap(EVENT_OBJ_ID_PLAYER, 0, 0);
+ EventObjectClearHeldMovementIfFinished(&gEventObjects[playerObjectId]);
+ sub_80D338C();
+ UnfreezeEventObjects();
+ ScriptContext2_Disable();
+ }
+
+ return TRUE;
}
- return matchCall.type2->v10[i].v2;
+
+ return FALSE;
}
-static u8 sub_81D1750(match_call_t matchCall)
+static void DrawMatchCallTextBoxBorder(u32 windowId, u32 tileOffset, u32 paletteId)
{
- return 0xd5;
+ int bg, x, y, width, height;
+ int tileNum;
+
+ bg = GetWindowAttribute(windowId, WINDOW_BG);
+ x = GetWindowAttribute(windowId, WINDOW_TILEMAP_LEFT);
+ y = GetWindowAttribute(windowId, WINDOW_TILEMAP_TOP);
+ width = GetWindowAttribute(windowId, WINDOW_WIDTH);
+ height = GetWindowAttribute(windowId, WINDOW_HEIGHT);
+ tileNum = tileOffset + GetBgAttribute(bg, BG_ATTR_BASETILE);
+
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 0), x - 1, y - 1, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 1), x, y - 1, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 2), x + width, y - 1, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 3), x - 1, y, 1, height);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 4), x + width, y, 1, height);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 5), x - 1, y + height, 1, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 6), x, y + height, width, 1);
+ FillBgTilemapBufferRect_Palette0(bg, ((paletteId << 12) & 0xF000) | (tileNum + 7), x + width, y + height, 1, 1);
}
-static u8 sub_81D1754(match_call_t matchCall)
+static void InitMatchCallTextPrinter(int windowId, const u8 *str)
{
- return 0xd5;
+ struct TextPrinterTemplate printerTemplate;
+ printerTemplate.currentChar = str;
+ printerTemplate.windowId = windowId;
+ printerTemplate.fontId = 1;
+ printerTemplate.x = 32;
+ printerTemplate.y = 1;
+ printerTemplate.currentX = 32;
+ printerTemplate.currentY = 1;
+ printerTemplate.letterSpacing = 0;
+ printerTemplate.lineSpacing = 0;
+ printerTemplate.unk = 0;
+ printerTemplate.fgColor = 10;
+ printerTemplate.bgColor = 8;
+ printerTemplate.shadowColor = 14;
+ gTextFlags.useAlternateDownArrow = 0;
+
+ AddTextPrinter(&printerTemplate, GetPlayerTextSpeedDelay(), NULL);
}
-bool32 MatchCall_IsRematchable(u32 idx)
+static bool32 ExecuteMatchCallTextPrinter(int windowId)
{
- match_call_t matchCall;
- u32 i;
+ if (gMain.heldKeys & A_BUTTON)
+ gTextFlags.canABSpeedUpPrint = 1;
+ else
+ gTextFlags.canABSpeedUpPrint = 0;
- if (idx > 20)
- return 0;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCall_IsRematchableFunctions[i](matchCall);
+ RunTextPrinters();
+ return IsTextPrinterActive(windowId);
}
-static bool32 MatchCall_IsRematchable_Type0(match_call_t matchCall)
+static void sub_8196694(u8 taskId)
{
- return FALSE;
-}
+ s16 *taskData = gTasks[taskId].data;
+ if (++taskData[0] > 8)
+ {
+ taskData[0] = 0;
+ if (++taskData[1] > 7)
+ taskData[1] = 0;
-static bool32 MatchCall_IsRematchable_Type1(match_call_t matchCall)
-{
- if (matchCall.type1->rematchTableIdx >= REMATCH_ELITE_FOUR_ENTRIES)
- return FALSE;
- return gSaveBlock1Ptr->trainerRematches[matchCall.type1->rematchTableIdx] ? TRUE : FALSE;
+ taskData[2] = (taskData[1] * 16) + 0x279;
+ WriteSequenceToBgTilemapBuffer(0, taskData[2] | ~0xFFF, 1, 15, 4, 4, 17, 1);
+ CopyBgTilemapBufferToVram(0);
+ }
}
-static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall)
+static bool32 TrainerIsEligibleForRematch(int matchCallId)
{
- return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE;
+ return gSaveBlock1Ptr->trainerRematches[matchCallId] > 0;
}
-static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
+static u16 GetRematchTrainerLocation(int matchCallId)
{
- return FALSE;
+ const struct MapHeader *mapHeader = Overworld_GetMapHeaderByGroupAndId(gRematchTable[matchCallId].mapGroup, gRematchTable[matchCallId].mapNum);
+ return mapHeader->regionMapSectionId;
}
-static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
+static u32 GetNumRematchTrainersFought(void)
{
- return FALSE;
+ u32 i, count;
+ for (i = 0, count = 0; i < 64; i++)
+ {
+ if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
+ count++;
+ }
+
+ return count;
}
-bool32 sub_81D17E8(u32 idx)
+static u32 sub_8196774(int arg0)
{
- match_call_t matchCall;
- u32 i;
+ u32 i, count;
- if (idx > 20)
- return FALSE;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- if (gUnknown_08625338[i](matchCall))
- return TRUE;
- for (i = 0; i < 4; i++)
+ for (i = 0, count = 0; i < REMATCH_TABLE_ENTRIES; i++)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
- return TRUE;
+ if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
+ {
+ if (count == arg0)
+ return i;
+
+ count++;
+ }
}
- return FALSE;
+
+ return REMATCH_TABLE_ENTRIES;
}
-static bool32 sub_81D1840(match_call_t matchCall)
+bool32 SelectMatchCallMessage(int trainerId, u8 *str)
{
- return FALSE;
+ u32 matchCallId;
+ const struct MatchCallText *matchCallText;
+ bool32 retVal = FALSE;
+
+ matchCallId = GetTrainerMatchCallId(trainerId);
+ gBattleFrontierStreakInfo.facilityId = 0;
+ if (TrainerIsEligibleForRematch(matchCallId)
+ && GetRematchTrainerLocation(matchCallId) == gMapHeader.regionMapSectionId)
+ {
+ matchCallText = GetSameRouteMatchCallText(matchCallId, str);
+ }
+ else if (sub_8196D74(matchCallId))
+ {
+ matchCallText = GetDifferentRouteMatchCallText(matchCallId, str);
+ retVal = TRUE;
+ UpdateRematchIfDefeated(matchCallId);
+ }
+ else if (Random() % 3)
+ {
+ matchCallText = GetBattleMatchCallText(matchCallId, str);
+ }
+ else
+ {
+ matchCallText = GetGeneralMatchCallText(matchCallId, str);
+ }
+
+ BuildMatchCallString(matchCallId, matchCallText, str);
+ return retVal;
}
-static bool32 sub_81D1844(match_call_t matchCall)
+static int GetTrainerMatchCallId(int trainerId)
{
- return TRUE;
+ int i = 0;
+ while (1)
+ {
+ if (sMatchCallTrainers[i].trainerId == trainerId)
+ return i;
+ else
+ i++;
+ }
}
-static bool32 sub_81D1848(match_call_t matchCall)
+static const struct MatchCallText *GetSameRouteMatchCallText(int matchCallId, u8 *str)
{
- return TRUE;
+ u16 textId = sMatchCallTrainers[matchCallId].sameRouteMatchCallTextId;
+ int mask = 0xFF;
+ u32 topic = (textId >> 8) - 1;
+ u32 id = (textId & mask) - 1;
+ return &sMatchCallBattleRequestTopics[topic][id];
}
-static bool32 sub_81D184C(match_call_t matchCall)
+static const struct MatchCallText *GetDifferentRouteMatchCallText(int matchCallId, u8 *str)
{
- return FALSE;
+ u16 textId = sMatchCallTrainers[matchCallId].differentRouteMatchCallTextId;
+ int mask = 0xFF;
+ u32 topic = (textId >> 8) - 1;
+ u32 id = (textId & mask) - 1;
+ return &sMatchCallBattleRequestTopics[topic][id];
}
-static bool32 sub_81D1850(match_call_t matchCall)
+static const struct MatchCallText *GetBattleMatchCallText(int matchCallId, u8 *str)
{
- return FALSE;
+ int mask;
+ u32 textId, topic, id;
+
+ topic = Random() % 3;
+ textId = sMatchCallTrainers[matchCallId].battleTopicTextIds[topic];
+ if (!textId)
+ SpriteCallbackDummy(NULL); // leftover debugging ???
+
+ mask = 0xFF;
+ topic = (textId >> 8) - 1;
+ id = (textId & mask) - 1;
+ return &sMatchCallBattleTopics[topic][id];
}
-u32 MatchCall_GetRematchTableIdx(u32 idx)
+static const struct MatchCallText *GetGeneralMatchCallText(int matchCallId, u8 *str)
{
- match_call_t matchCall;
- u32 i;
+ int i;
+ int count;
+ u32 topic, id;
+ u16 rand;
+ u16 var3;
+
+ rand = Random();
+ if (!(rand & 1))
+ {
+ for (count = 0, i = 0; i < NUM_FRONTIER_FACILITIES; i++)
+ {
+ if (GetFrontierStreakInfo(i, &topic) > 1)
+ count++;
+ }
- if (idx > 20)
- return REMATCH_TABLE_ENTRIES;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCall_GetRematchTableIdxFunctions[i](matchCall);
+ if (count)
+ {
+ count = Random() % count;
+ for (i = 0; i < NUM_FRONTIER_FACILITIES; i++)
+ {
+ gBattleFrontierStreakInfo.streak = GetFrontierStreakInfo(i, &topic);
+ if (gBattleFrontierStreakInfo.streak < 2)
+ continue;
+
+ if (!count)
+ break;
+
+ count--;
+ }
+
+ gBattleFrontierStreakInfo.facilityId = i;
+ id = sMatchCallTrainers[matchCallId].battleFrontierRecordStreakTextIndex - 1;
+ return &sMatchCallGeneralTopics[topic][id];
+ }
+ }
+
+ topic = (sMatchCallTrainers[matchCallId].generalTextId >> 8) - 1;
+ id = (sMatchCallTrainers[matchCallId].generalTextId & 0xFF) - 1;
+ return &sMatchCallGeneralTopics[topic][id];
}
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t matchCall)
+static void BuildMatchCallString(int matchCallId, const struct MatchCallText *matchCallText, u8 *str)
{
- return REMATCH_TABLE_ENTRIES;
+ PopulateMatchCallStringVars(matchCallId, matchCallText->stringVarFuncIds);
+ StringExpandPlaceholders(str, matchCallText->text);
}
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t matchCall)
+static u8 *const sMatchCallTextStringVars[] = { gStringVar1, gStringVar2, gStringVar3 };
+
+static void PopulateMatchCallStringVars(int matchCallId, const s8 *stringVarFuncIds)
{
- return matchCall.type1->rematchTableIdx;
+ int i;
+ for (i = 0; i < 3; i++)
+ {
+ if (stringVarFuncIds[i] >= 0)
+ PopulateMatchCallStringVar(matchCallId, stringVarFuncIds[i], sMatchCallTextStringVars[i]);
+ }
}
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall)
+static void (*const sPopulateMatchCallStringVarFuncs[])(int, u8 *) =
{
- return matchCall.type2->rematchTableIdx;
-}
+ PopulateTrainerName,
+ PopulateMapName,
+ PopulateSpeciesFromTrainerLocation,
+ PopulateSpeciesFromTrainerParty,
+ PopulateBattleFrontierFacilityName,
+ PopulateBattleFrontierStreak,
+};
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
+static void PopulateMatchCallStringVar(int matchCallId, int funcId, u8 *destStr)
{
- return REMATCH_TABLE_ENTRIES;
+ sPopulateMatchCallStringVarFuncs[funcId](matchCallId, destStr);
}
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
+static const struct MultiTrainerMatchCallText sMultiTrainerMatchCallTexts[] =
{
- return REMATCH_TABLE_ENTRIES;
-}
+ { .trainerId = TRAINER_KIRA_AND_DAN_1, .text = gText_Kira },
+ { .trainerId = TRAINER_AMY_AND_LIV_1, .text = gText_Amy },
+ { .trainerId = TRAINER_JOHN_AND_JAY_1, .text = gText_John },
+ { .trainerId = TRAINER_LILA_AND_ROY_1, .text = gText_Roy },
+ { .trainerId = TRAINER_GABBY_AND_TY_1, .text = gText_Gabby },
+ { .trainerId = TRAINER_ANNA_AND_MEG_1, .text = gText_Anna },
+};
-void MatchCall_GetMessage(u32 idx, u8 *dest)
+static void PopulateTrainerName(int matchCallId, u8 *destStr)
{
- match_call_t matchCall;
u32 i;
+ u16 trainerId = sMatchCallTrainers[matchCallId].trainerId;
+ for (i = 0; i < 6; i++)
+ {
+ if (sMultiTrainerMatchCallTexts[i].trainerId == trainerId)
+ {
+ StringCopy(destStr, sMultiTrainerMatchCallTexts[i].text);
+ return;
+ }
+ }
- if (idx > 20)
- return;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- sMatchCall_GetMessageFunctions[i](matchCall, dest);
+ StringCopy(destStr, gTrainers[trainerId].trainerName);
}
-static void MatchCall_GetMessage_Type0(match_call_t matchCall, u8 *dest)
+static void PopulateMapName(int matchCallId, u8 *destStr)
{
- sub_81D1920(matchCall.type0->textData, dest);
+ GetMapName(destStr, GetRematchTrainerLocation(matchCallId), 0);
}
-static void MatchCall_GetMessage_Type1(match_call_t matchCall, u8 *dest)
+static u8 GetLandEncounterSlot(void)
{
- if (matchCall.common->type != 5)
- sub_81D1920(matchCall.type5->textData, dest);
+ int rand = Random() % 100;
+ if (rand < 20)
+ return 0;
+ else if (rand >= 20 && rand < 40)
+ return 1;
+ else if (rand >= 40 && rand < 50)
+ return 2;
+ else if (rand >= 50 && rand < 60)
+ return 3;
+ else if (rand >= 60 && rand < 70)
+ return 4;
+ else if (rand >= 70 && rand < 80)
+ return 5;
+ else if (rand >= 80 && rand < 85)
+ return 6;
+ else if (rand >= 85 && rand < 90)
+ return 7;
+ else if (rand >= 90 && rand < 94)
+ return 8;
+ else if (rand >= 94 && rand < 98)
+ return 9;
+ else if (rand >= 98 && rand < 99)
+ return 10;
else
- sub_81D199C(matchCall.type1->textData, matchCall.type1->rematchTableIdx, dest);
+ return 11;
}
-static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest)
+static u8 GetWaterEncounterSlot(void)
{
- sub_81D1920(matchCall.type2->textData, dest);
-}
-
-static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
-{
- sub_81D1920(matchCall.type4->textData, dest);
+ int rand = Random() % 100;
+ if (rand < 60)
+ return 0;
+ else if (rand >= 60 && rand < 90)
+ return 1;
+ else if (rand >= 90 && rand < 95)
+ return 2;
+ else if (rand >= 95 && rand < 99)
+ return 3;
+ else
+ return 4;
}
-static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
+static void PopulateSpeciesFromTrainerLocation(int matchCallId, u8 *destStr)
{
- sub_8197080(dest);
-}
+ u16 species[2];
+ int numSpecies;
+ u8 slot;
+ int i = 0;
-void sub_81D1920(const match_call_text_data_t *sub0, u8 *dest)
-{
- u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
- ;
- if (i)
- i--;
- while (i)
+ if (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED)) // ??? This check is nonsense.
{
- if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE)
- break;
- i--;
- }
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
-}
+ while (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED))
+ {
+ if (gWildMonHeaders[i].mapGroup == gRematchTable[matchCallId].mapGroup
+ && gWildMonHeaders[i].mapNum == gRematchTable[matchCallId].mapNum)
+ break;
-#ifdef NONMATCHING
-// There's some weird upmerge going on that I cannot replicate at this time.
-static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
-{
- u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
- {
- if (sub0[i].flag == 0xfffe)
- break;
- if (sub0[i].flag == 0xffff && !FlagGet(sub0[i].flag))
- break;
- }
- if (sub0[i].flag != 0xfffe)
- {
- if (i)
- i--;
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
- }
- else
- {
- if (!FlagGet(FLAG_SYS_GAME_CLEAR))
- ;
- else if (gSaveBlock1Ptr->trainerRematches[idx])
- i += 2;
- else if (CountBattledRematchTeams(idx) >= 2)
- i += 3;
- else
i++;
- StringExpandPlaceholders(dest, sub0[i].text);
+ }
+
+ if (gWildMonHeaders[i].mapGroup != MAP_GROUP(UNDEFINED))
+ {
+ numSpecies = 0;
+ if (gWildMonHeaders[i].landMonsInfo)
+ {
+ slot = GetLandEncounterSlot();
+ species[numSpecies] = gWildMonHeaders[i].landMonsInfo->wildPokemon[slot].species;
+ numSpecies++;
+ }
+
+ if (gWildMonHeaders[i].waterMonsInfo)
+ {
+ slot = GetWaterEncounterSlot();
+ species[numSpecies] = gWildMonHeaders[i].waterMonsInfo->wildPokemon[slot].species;
+ numSpecies++;
+ }
+
+ if (numSpecies)
+ {
+ StringCopy(destStr, gSpeciesNames[species[Random() % numSpecies]]);
+ return;
+ }
+ }
}
+
+ destStr[0] = EOS;
}
-#else
-static NAKED void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r10\n"
- "\tmov r6, r9\n"
- "\tmov r5, r8\n"
- "\tpush {r5-r7}\n"
- "\tadds r6, r0, 0\n"
- "\tmov r10, r2\n"
- "\tlsls r1, 16\n"
- "\tlsrs r7, r1, 16\n"
- "\tmovs r5, 0\n"
- "\tldr r0, [r6]\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "\tldrh r0, [r6, 0x4]\n"
- "\tldr r1, =0x0000fffe\n"
- "\tcmp r0, r1\n"
- "\tbeq _081D1A24\n"
- "\tldr r0, =0x0000ffff\n"
- "\tmov r9, r0\n"
- "\tmov r8, r1\n"
- "\tadds r4, r6, 0\n"
- "_081D19C6:\n"
- "\tldrh r0, [r4, 0x4]\n"
- "\tcmp r0, r9\n"
- "\tbeq _081D19D6\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "_081D19D6:\n"
- "\tadds r4, 0x8\n"
- "\tadds r5, 0x1\n"
- "\tldr r0, [r4]\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D19E6\n"
- "\tldrh r0, [r4, 0x4]\n"
- "\tcmp r0, r8\n"
- "\tbne _081D19C6\n"
- "_081D19E6:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r0, r6\n"
- "\tldrh r1, [r0, 0x4]\n"
- "\tldr r0, =0x0000fffe\n"
- "\tcmp r1, r0\n"
- "\tbeq _081D1A24\n"
- "\tcmp r5, 0\n"
- "\tbeq _081D19F8\n"
- "\tsubs r5, 0x1\n"
- "_081D19F8:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r4, r0, r6\n"
- "\tldrh r1, [r4, 0x6]\n"
- "\tldr r0, =0x0000ffff\n"
- "\tcmp r1, r0\n"
- "\tbeq _081D1A0A\n"
- "\tadds r0, r1, 0\n"
- "\tbl FlagSet\n"
- "_081D1A0A:\n"
- "\tldr r1, [r4]\n"
- "\tmov r0, r10\n"
- "\tbl StringExpandPlaceholders\n"
- "\tb _081D1A5C\n"
- "\t.pool\n"
- "_081D1A1C:\n"
- "\tadds r5, 0x2\n"
- "\tb _081D1A50\n"
- "_081D1A20:\n"
- "\tadds r5, 0x3\n"
- "\tb _081D1A50\n"
- "_081D1A24:\n"
- "\tldr r0, =0x00000864\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D1A50\n"
- "\tldr r0, =gSaveBlock1Ptr\n"
- "\tldr r0, [r0]\n"
- "\tldr r1, =0x000009ca\n"
- "\tadds r0, r1\n"
- "\tadds r0, r7\n"
- "\tldrb r0, [r0]\n"
- "\tcmp r0, 0\n"
- "\tbne _081D1A1C\n"
- "\tadds r0, r7, 0\n"
- "\tbl CountBattledRematchTeams\n"
- "\tlsls r0, 16\n"
- "\tlsrs r0, 16\n"
- "\tcmp r0, 0x1\n"
- "\tbhi _081D1A20\n"
- "\tadds r5, 0x1\n"
- "_081D1A50:\n"
- "\tlsls r0, r5, 3\n"
- "\tadds r0, r6\n"
- "\tldr r1, [r0]\n"
- "\tmov r0, r10\n"
- "\tbl StringExpandPlaceholders\n"
- "_081D1A5C:\n"
- "\tpop {r3-r5}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tmov r10, r5\n"
- "\tpop {r4-r7}\n"
- "\tpop {r0}\n"
- "\tbx r0\n"
- "\t.pool");
-}
-#endif
-void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name)
+static void PopulateSpeciesFromTrainerParty(int matchCallId, u8 *destStr)
{
- match_call_t matchCall;
- u32 i;
+ u16 trainerId;
+ union TrainerMonPtr party;
+ u8 monId;
+ const u8 *speciesName;
- if (idx > 20)
- return;
- matchCall = sMatchCallHeaders[idx];
- i = MatchCallGetFunctionIndex(matchCall);
- sMatchCall_GetNameAndDescFunctions[i](matchCall, desc, name);
+ trainerId = GetLastBeatenRematchTrainerId(sMatchCallTrainers[matchCallId].trainerId);
+ party = gTrainers[trainerId].party;
+ monId = Random() % gTrainers[trainerId].partySize;
+
+ switch (gTrainers[trainerId].partyFlags)
+ {
+ case 0:
+ default:
+ speciesName = gSpeciesNames[party.NoItemDefaultMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET:
+ speciesName = gSpeciesNames[party.NoItemCustomMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_HELD_ITEM:
+ speciesName = gSpeciesNames[party.ItemDefaultMoves[monId].species];
+ break;
+ case F_TRAINER_PARTY_CUSTOM_MOVESET | F_TRAINER_PARTY_HELD_ITEM:
+ speciesName = gSpeciesNames[party.ItemCustomMoves[monId].species];
+ break;
+ }
+
+ StringCopy(destStr, speciesName);
}
-static void MatchCall_GetNameAndDesc_Type0(match_call_t matchCall, const u8 **desc, const u8 **name)
+static const u8 *const sBattleFrontierFacilityNames[] =
{
- *desc = matchCall.type0->desc;
- *name = matchCall.type0->name;
-}
+ gText_BattleTower2,
+ gText_BattleDome,
+ gText_BattlePalace,
+ gText_BattleArena,
+ gText_BattlePike,
+ gText_BattleFactory,
+ gText_BattlePyramid,
+};
-static void MatchCall_GetNameAndDesc_Type1(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void PopulateBattleFrontierFacilityName(int matchCallId, u8 *destStr)
{
- match_call_t _matchCall = matchCall;
- if (_matchCall.type1->name == NULL)
- MatchCall_GetNameAndDescByRematchIdx(_matchCall.type1->rematchTableIdx, desc, name);
- else
- *name = _matchCall.type1->name;
- *desc = _matchCall.type1->desc;
+ StringCopy(destStr, sBattleFrontierFacilityNames[gBattleFrontierStreakInfo.facilityId]);
}
-static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void PopulateBattleFrontierStreak(int matchCallId, u8 *destStr)
{
- MatchCall_GetNameAndDescByRematchIdx(matchCall.type2->rematchTableIdx, desc, name);
- *desc = matchCall.type2->desc;
+ int i = 0;
+ int streak = gBattleFrontierStreakInfo.streak;
+ while (streak != 0)
+ {
+ streak /= 10;
+ i++;
+ }
+
+ ConvertIntToDecimalStringN(destStr, gBattleFrontierStreakInfo.streak, 0, i);
}
-static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
+static const u16 sBadgeFlags[] =
{
- *desc = matchCall.type4->desc;
- *name = matchCall.type4->name;
-}
+ FLAG_BADGE01_GET,
+ FLAG_BADGE02_GET,
+ FLAG_BADGE03_GET,
+ FLAG_BADGE04_GET,
+ FLAG_BADGE05_GET,
+ FLAG_BADGE06_GET,
+ FLAG_BADGE07_GET,
+ FLAG_BADGE08_GET,
+};
-static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
+static int GetNumOwnedBadges(void)
{
- *desc = matchCall.type3->desc;
- *name = matchCall.type3->name;
+ u32 i;
+
+ for (i = 0; i < 8; i++)
+ {
+ if (!FlagGet(sBadgeFlags[i]))
+ break;
+ }
+
+ return i;
}
-static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const u8 **name)
+static bool32 sub_8196D74(int matchCallId)
{
- const struct Trainer *trainer = gTrainers + GetTrainerIdxByRematchIdx(idx);
- *desc = gTrainerClassNames[trainer->trainerClass];
- *name = trainer->trainerName;
+ int dayCount;
+ int otId;
+ u16 easyChatWord;
+ int numRematchTrainersFought;
+ int var0, var1, var2;
+
+ if (GetNumOwnedBadges() < 5)
+ return FALSE;
+
+ dayCount = RtcGetLocalDayCount();
+ otId = GetTrainerId(gSaveBlock2Ptr->playerTrainerId) & 0xFFFF;
+
+ easyChatWord = gSaveBlock1Ptr->easyChatPairs[0].unk2;
+ numRematchTrainersFought = GetNumRematchTrainersFought();
+ var0 = (numRematchTrainersFought * 13) / 10;
+ var1 = ((dayCount ^ easyChatWord) + (easyChatWord ^ GetGameStat(GAME_STAT_TRAINER_BATTLES))) ^ otId;
+ var2 = var1 % var0;
+ if (var2 < numRematchTrainersFought)
+ {
+ if (sub_8196774(var2) == matchCallId)
+ return TRUE;
+ }
+
+ return FALSE;
}
-#ifdef NONMATCHING
-const u8 *sub_81D1B40(u32 idx, u32 offset)
+static u16 GetFrontierStreakInfo(u16 facilityId, u32 *topicTextId)
{
- u32 i;
+ int i;
+ int j;
+ u16 streak = 0;
- for (i = 0; i < 4; i++)
+ switch (facilityId)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
+ case FRONTIER_FACILITY_DOME:
+ for (i = 0; i < 2; i++)
{
- for (; i + 1 < 4 && sMatchCallCheckPageOverrides[i + 1].idx == idx; i++)
+ for (j = 0; j < 2; j++)
{
- if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].v4))
- break;
+ if (streak < gSaveBlock2Ptr->frontier.domeRecordWinStreaks[i][j])
+ streak = gSaveBlock2Ptr->frontier.domeRecordWinStreaks[i][j];
}
- return sMatchCallCheckPageOverrides[i].v8[offset];
}
+ *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 NULL;
+
+ return streak;
}
-#else
-NAKED const u8 *sub_81D1B40(u32 idx, u32 offset)
-{
- asm_unified("\tpush {r4-r7,lr}\n"
- "\tmov r7, r9\n"
- "\tmov r6, r8\n"
- "\tpush {r6,r7}\n"
- "\tadds r6, r0, 0\n"
- "\tmovs r5, 0\n"
- "\tldr r2, =sMatchCallCheckPageOverrides\n"
- "\tmovs r0, 0x8\n"
- "\tadds r0, r2\n"
- "\tmov r9, r0\n"
- "_081D1B54:\n"
- "\tlsls r0, r5, 1\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r2\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbne _081D1BBC\n"
- "\tadds r4, r5, 0x1\n"
- "\tlsls r1, 2\n"
- "\tmov r8, r1\n"
- "\tcmp r4, 0x3\n"
- "\tbhi _081D1BA8\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r2\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbne _081D1BA8\n"
- "\tldr r7, =sMatchCallCheckPageOverrides\n"
- "_081D1B7C:\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r1, r7, 0x4\n"
- "\tadds r0, r1\n"
- "\tldrh r0, [r0]\n"
- "\tbl FlagGet\n"
- "\tlsls r0, 24\n"
- "\tcmp r0, 0\n"
- "\tbeq _081D1BA8\n"
- "\tadds r5, r4, 0\n"
- "\tadds r4, r5, 0x1\n"
- "\tcmp r4, 0x3\n"
- "\tbhi _081D1BA8\n"
- "\tlsls r0, r4, 1\n"
- "\tadds r0, r4\n"
- "\tlsls r0, 3\n"
- "\tadds r0, r7\n"
- "\tldrh r0, [r0]\n"
- "\tcmp r0, r6\n"
- "\tbeq _081D1B7C\n"
- "_081D1BA8:\n"
- "\tlsls r0, r5, 1\n"
- "\tadds r0, r5\n"
- "\tlsls r0, 3\n"
- "\tadd r0, r8\n"
- "\tadd r0, r9\n"
- "\tldr r0, [r0]\n"
- "\tb _081D1BC4\n"
- "\t.pool\n"
- "_081D1BBC:\n"
- "\tadds r5, 0x1\n"
- "\tcmp r5, 0x3\n"
- "\tbls _081D1B54\n"
- "\tmovs r0, 0\n"
- "_081D1BC4:\n"
- "\tpop {r3,r4}\n"
- "\tmov r8, r3\n"
- "\tmov r9, r4\n"
- "\tpop {r4-r7}\n"
- "\tpop {r1}\n"
- "\tbx r1");
+
+static u8 GetPokedexRatingLevel(u16 numSeen)
+{
+ if (numSeen < 10)
+ return 0;
+ if (numSeen < 20)
+ return 1;
+ if (numSeen < 30)
+ return 2;
+ if (numSeen < 40)
+ return 3;
+ if (numSeen < 50)
+ return 4;
+ if (numSeen < 60)
+ return 5;
+ if (numSeen < 70)
+ return 6;
+ if (numSeen < 80)
+ return 7;
+ if (numSeen < 90)
+ return 8;
+ if (numSeen < 100)
+ return 9;
+ if (numSeen < 110)
+ return 10;
+ if (numSeen < 120)
+ return 11;
+ if (numSeen < 130)
+ return 12;
+ if (numSeen < 140)
+ return 13;
+ if (numSeen < 150)
+ return 14;
+ if (numSeen < 160)
+ return 15;
+ if (numSeen < 170)
+ return 16;
+ if (numSeen < 180)
+ return 17;
+ if (numSeen < 190)
+ return 18;
+ if (numSeen < 200)
+ return 19;
+
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_DEOXYS), FLAG_GET_CAUGHT))
+ numSeen--;
+ if (GetSetPokedexFlag(SpeciesToNationalPokedexNum(SPECIES_JIRACHI), FLAG_GET_CAUGHT))
+ numSeen--;
+
+ if (numSeen < 200)
+ return 19;
+ else
+ return 20;
}
-#endif
-s32 sub_81D1BD0(u32 idx)
+static const u8 *const sBirchDexRatingTexts[] =
{
- u32 i;
+ gBirchDexRatingText_LessThan10,
+ gBirchDexRatingText_LessThan20,
+ gBirchDexRatingText_LessThan30,
+ gBirchDexRatingText_LessThan40,
+ gBirchDexRatingText_LessThan50,
+ gBirchDexRatingText_LessThan60,
+ gBirchDexRatingText_LessThan70,
+ gBirchDexRatingText_LessThan80,
+ gBirchDexRatingText_LessThan90,
+ gBirchDexRatingText_LessThan100,
+ gBirchDexRatingText_LessThan110,
+ gBirchDexRatingText_LessThan120,
+ gBirchDexRatingText_LessThan130,
+ gBirchDexRatingText_LessThan140,
+ gBirchDexRatingText_LessThan150,
+ gBirchDexRatingText_LessThan160,
+ gBirchDexRatingText_LessThan170,
+ gBirchDexRatingText_LessThan180,
+ gBirchDexRatingText_LessThan190,
+ gBirchDexRatingText_LessThan200,
+ gBirchDexRatingText_DexCompleted,
+};
+
+void sub_8197080(u8 *destStr)
+{
+ int numSeen, numCaught;
+ u8 *str;
+ u8 dexRatingLevel;
- for (i = 0; i < 4; i++)
+ u8 *buffer = Alloc(0x3E8);
+ if (!buffer)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
- return sMatchCallCheckPageOverrides[i].v2;
+ destStr[0] = EOS;
+ return;
}
- return -1;
-}
-
-bool32 sub_81D1BF8(u32 idx)
-{
- s32 i;
- for (i = 0; i < 21; i++)
+ numSeen = GetHoennPokedexCount(FLAG_GET_SEEN);
+ numCaught = GetHoennPokedexCount(FLAG_GET_CAUGHT);
+ ConvertIntToDecimalStringN(gStringVar1, numSeen, 0, 3);
+ ConvertIntToDecimalStringN(gStringVar2, numCaught, 0, 3);
+ dexRatingLevel = GetPokedexRatingLevel(numCaught);
+ str = StringCopy(buffer, gUnknown_082A5C9C);
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ str = StringCopy(str, gUnknown_082A5D2C);
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ StringCopy(str, sBirchDexRatingTexts[dexRatingLevel]);
+ str = StringExpandPlaceholders(destStr, buffer);
+
+ if (IsNationalPokedexEnabled())
{
- u32 r0 = MatchCall_GetRematchTableIdx(i);
- if (r0 != REMATCH_TABLE_ENTRIES && r0 == idx)
- return TRUE;
+ str[0] = CHAR_PROMPT_CLEAR;
+ str++;
+ numSeen = GetNationalPokedexCount(FLAG_GET_SEEN);
+ numCaught = GetNationalPokedexCount(FLAG_GET_CAUGHT);
+ ConvertIntToDecimalStringN(gStringVar1, numSeen, 0, 3);
+ ConvertIntToDecimalStringN(gStringVar2, numCaught, 0, 3);
+ StringExpandPlaceholders(str, gUnknown_082A633D);
}
- return FALSE;
+
+ Free(buffer);
}
-void SetMatchCallRegisteredFlag(void)
+void sub_8197184(u8 windowId, u32 destOffset, u32 paletteId)
{
- s32 r0 = GetRematchIdxByTrainerIdx(gSpecialVar_0x8004);
- if (r0 >= 0)
- FlagSet(FLAG_MATCH_CALL_REGISTERED + r0);
+ 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);
+} \ No newline at end of file
diff --git a/src/menu.c b/src/menu.c
index f1b35b42e..ae589dff4 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -1,24 +1,24 @@
#include "global.h"
-#include "bg.h"
-#include "window.h"
-#include "palette.h"
-#include "menu.h"
-#include "constants/songs.h"
-#include "main.h"
-#include "sound.h"
-#include "menu_helpers.h"
#include "alloc.h"
-#include "task.h"
+#include "bg.h"
#include "dma3.h"
-#include "string_util.h"
-#include "pokemon_icon.h"
-#include "constants/flags.h"
#include "event_data.h"
+#include "graphics.h"
+#include "main.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "palette.h"
#include "pokedex.h"
+#include "pokemon_icon.h"
#include "region_map.h"
-#include "text_window.h"
+#include "sound.h"
+#include "string_util.h"
#include "strings.h"
-#include "graphics.h"
+#include "task.h"
+#include "text_window.h"
+#include "window.h"
+#include "constants/flags.h"
+#include "constants/songs.h"
#define DLG_WINDOW_PALETTE_NUM 15
#define DLG_WINDOW_BASE_TILE_NUM 0x200
@@ -50,11 +50,11 @@ struct Menu
static EWRAM_DATA u8 sStartMenuWindowId = 0;
static EWRAM_DATA u8 sMapNamePopupWindowId = 0;
-static EWRAM_DATA struct Menu gUnknown_0203CD90 = {0};
-static EWRAM_DATA u16 gUnknown_0203CD9C = 0;
-static EWRAM_DATA u8 gUnknown_0203CD9E = 0;
-static EWRAM_DATA u8 gUnknown_0203CD9F = 0;
-static EWRAM_DATA u8 gUnknown_0203CDA0 = 0;
+static EWRAM_DATA struct Menu sMenu = {0};
+static EWRAM_DATA u16 sTileNum = 0;
+static EWRAM_DATA u8 sPaletteNum = 0;
+static EWRAM_DATA u8 sYesNoWindowId = 0;
+static EWRAM_DATA u8 sWindowId = 0;
static EWRAM_DATA u16 sFiller = 0; // needed to align
static EWRAM_DATA bool8 gUnknown_0203CDA4[4] = {FALSE};
static EWRAM_DATA u16 gUnknown_0203CDA8 = 0;
@@ -549,10 +549,10 @@ void sub_8197AE8(bool8 copyToVram)
CopyBgTilemapBufferToVram(0);
}
-void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
+void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 tileNum, u8 paletteNum)
{
- gUnknown_0203CD9C = a3;
- gUnknown_0203CD9E = a4;
+ sTileNum = tileNum;
+ sPaletteNum = paletteNum;
CallWindowFunction(windowId, sub_8197BB4);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -560,10 +560,10 @@ void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a3, u8 a4)
CopyWindowToVram(windowId, 3);
}
-void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
+void sub_8197B64(u8 windowId, bool8 copyToVram, u16 tileNum)
{
- gUnknown_0203CD9C = a3;
- gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
+ sTileNum = tileNum;
+ sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, sub_8197BB4);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -574,96 +574,96 @@ void sub_8197B64(u8 windowId, bool8 copyToVram, u16 a3)
void sub_8197BB4(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 1,
+ sTileNum + 1,
tilemapLeft - 2,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 3,
+ sTileNum + 3,
tilemapLeft - 1,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 4,
+ sTileNum + 4,
tilemapLeft,
tilemapTop - 1,
width - 1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 5,
+ sTileNum + 5,
tilemapLeft + width - 1,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 6,
+ sTileNum + 6,
tilemapLeft + width,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 7,
+ sTileNum + 7,
tilemapLeft - 2,
tilemapTop,
1,
5,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 9,
+ sTileNum + 9,
tilemapLeft - 1,
tilemapTop,
width + 1,
5,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 10,
+ sTileNum + 10,
tilemapLeft + width,
tilemapTop,
1,
5,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- BG_TILE_V_FLIP(gUnknown_0203CD9C + 1),
+ BG_TILE_V_FLIP(sTileNum + 1),
tilemapLeft - 2,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- BG_TILE_V_FLIP(gUnknown_0203CD9C + 3),
+ BG_TILE_V_FLIP(sTileNum + 3),
tilemapLeft - 1,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- BG_TILE_V_FLIP(gUnknown_0203CD9C + 4),
+ BG_TILE_V_FLIP(sTileNum + 4),
tilemapLeft,
tilemapTop + height,
width - 1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- BG_TILE_V_FLIP(gUnknown_0203CD9C + 5),
+ BG_TILE_V_FLIP(sTileNum + 5),
tilemapLeft + width - 1,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- BG_TILE_V_FLIP(gUnknown_0203CD9C + 6),
+ BG_TILE_V_FLIP(sTileNum + 6),
tilemapLeft + width,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
}
void sub_8197DF8(u8 windowId, bool8 copyToVram)
@@ -682,8 +682,8 @@ void sub_8197E30(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 p
void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 paletteNum)
{
- gUnknown_0203CD9C = baseTileNum;
- gUnknown_0203CD9E = paletteNum;
+ sTileNum = baseTileNum;
+ sPaletteNum = paletteNum;
CallWindowFunction(windowId, DrawWindowBorder);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -693,8 +693,8 @@ void SetWindowBorderStyle(u8 windowId, bool8 copyToVram, u16 baseTileNum, u8 pal
void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
{
- gUnknown_0203CD9C = baseTileNum;
- gUnknown_0203CD9E = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
+ sTileNum = baseTileNum;
+ sPaletteNum = GetWindowAttribute(windowId, WINDOW_PALETTE_NUM);
CallWindowFunction(windowId, DrawWindowBorder);
FillWindowPixelBuffer(windowId, 0x11);
PutWindowTilemap(windowId);
@@ -705,61 +705,61 @@ void sub_8197EC8(u8 windowId, bool8 copyToVram, u16 baseTileNum)
void DrawWindowBorder(u8 bg, u8 tilemapLeft, u8 tilemapTop, u8 width, u8 height, u8 paletteNum)
{
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 0,
+ sTileNum + 0,
tilemapLeft - 1,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 1,
+ sTileNum + 1,
tilemapLeft,
tilemapTop - 1,
width,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 2,
+ sTileNum + 2,
tilemapLeft + width,
tilemapTop - 1,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 3,
+ sTileNum + 3,
tilemapLeft - 1,
tilemapTop,
1,
height,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 5,
+ sTileNum + 5,
tilemapLeft + width,
tilemapTop,
1,
height,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 6,
+ sTileNum + 6,
tilemapLeft - 1,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 7,
+ sTileNum + 7,
tilemapLeft,
tilemapTop + height,
width,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
FillBgTilemapBufferRect(bg,
- gUnknown_0203CD9C + 8,
+ sTileNum + 8,
tilemapLeft + width,
tilemapTop + height,
1,
1,
- gUnknown_0203CD9E);
+ sPaletteNum);
}
void sub_8198070(u8 windowId, bool8 copyToVram)
@@ -793,7 +793,7 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
window.paletteNum = palette;
window.baseBlock = baseTile;
- gUnknown_0203CDA0 = AddWindow(&window);
+ sWindowId = AddWindow(&window);
if (palette > 15)
palette = 15 * 16;
@@ -801,27 +801,27 @@ u8 sub_81980F0(u8 bg, u8 xPos, u8 yPos, u8 palette, u16 baseTile)
palette *= 16;
LoadPalette(gUnknown_0860F0B0, palette, sizeof(gUnknown_0860F0B0));
- return gUnknown_0203CDA0;
+ return sWindowId;
}
void sub_8198180(const u8 *string, u8 a2, bool8 copyToVram)
{
u16 width = 0;
- if (gUnknown_0203CDA0 != 0xFF)
+ if (sWindowId != 0xFF)
{
- PutWindowTilemap(gUnknown_0203CDA0);
- FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
+ PutWindowTilemap(sWindowId);
+ FillWindowPixelBuffer(sWindowId, 0xFF);
width = GetStringWidth(0, string, 0);
- AddTextPrinterParameterized3(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(sWindowId,
0,
- 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
+ 0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a2 - width,
1,
gUnknown_0860F0D0,
0,
string);
if (copyToVram)
- CopyWindowToVram(gUnknown_0203CDA0, 3);
+ CopyWindowToVram(sWindowId, 3);
}
}
@@ -830,7 +830,7 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
u8 color[3];
u16 width = 0;
- if (gUnknown_0203CDA0 != 0xFF)
+ if (sWindowId != 0xFF)
{
if (a3 != 0)
{
@@ -844,49 +844,49 @@ void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyTo
color[1] = 1;
color[2] = 2;
}
- PutWindowTilemap(gUnknown_0203CDA0);
- FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
+ PutWindowTilemap(sWindowId);
+ FillWindowPixelBuffer(sWindowId, 0xFF);
if (string2 != NULL)
{
width = GetStringWidth(0, string2, 0);
- AddTextPrinterParameterized3(gUnknown_0203CDA0,
+ AddTextPrinterParameterized3(sWindowId,
0,
- 0xEC - (GetWindowAttribute(gUnknown_0203CDA0, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
+ 0xEC - (GetWindowAttribute(sWindowId, WINDOW_TILEMAP_LEFT) * 8) - a4 - width,
1,
color,
0,
string2);
}
- AddTextPrinterParameterized4(gUnknown_0203CDA0, 1, 4, 1, 0, 0, color, 0, string);
+ AddTextPrinterParameterized4(sWindowId, 1, 4, 1, 0, 0, color, 0, string);
if (copyToVram)
- CopyWindowToVram(gUnknown_0203CDA0, 3);
+ CopyWindowToVram(sWindowId, 3);
}
}
void sub_81982D8(void)
{
- if (gUnknown_0203CDA0 != 0xFF)
- CopyWindowToVram(gUnknown_0203CDA0, 3);
+ if (sWindowId != 0xFF)
+ CopyWindowToVram(sWindowId, 3);
}
void sub_81982F0(void)
{
- if (gUnknown_0203CDA0 != 0xFF)
+ if (sWindowId != 0xFF)
{
- FillWindowPixelBuffer(gUnknown_0203CDA0, 0xFF);
- CopyWindowToVram(gUnknown_0203CDA0, 3);
+ FillWindowPixelBuffer(sWindowId, 0xFF);
+ CopyWindowToVram(sWindowId, 3);
}
}
void sub_8198314(void)
{
- if (gUnknown_0203CDA0 != 0xFF)
+ if (sWindowId != 0xFF)
{
- FillWindowPixelBuffer(gUnknown_0203CDA0, 0);
- ClearWindowTilemap(gUnknown_0203CDA0);
- CopyWindowToVram(gUnknown_0203CDA0, 3);
- RemoveWindow(gUnknown_0203CDA0);
- gUnknown_0203CDA0 = 0xFF;
+ FillWindowPixelBuffer(sWindowId, 0);
+ ClearWindowTilemap(sWindowId);
+ CopyWindowToVram(sWindowId, 3);
+ RemoveWindow(sWindowId);
+ sWindowId = 0xFF;
}
}
@@ -894,24 +894,24 @@ u8 sub_8198348(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numC
{
s32 pos;
- gUnknown_0203CD90.left = left;
- gUnknown_0203CD90.top = top;
- gUnknown_0203CD90.minCursorPos = 0;
- gUnknown_0203CD90.maxCursorPos = numChoices - 1;
- gUnknown_0203CD90.windowId = windowId;
- gUnknown_0203CD90.fontId = fontId;
- gUnknown_0203CD90.optionHeight = cursorHeight;
- gUnknown_0203CD90.APressMuted = a7;
+ sMenu.left = left;
+ sMenu.top = top;
+ sMenu.minCursorPos = 0;
+ sMenu.maxCursorPos = numChoices - 1;
+ sMenu.windowId = windowId;
+ sMenu.fontId = fontId;
+ sMenu.optionHeight = cursorHeight;
+ sMenu.APressMuted = a7;
pos = initialCursorPos;
- if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = 0;
+ if (pos < 0 || pos > sMenu.maxCursorPos)
+ sMenu.cursorPos = 0;
else
- gUnknown_0203CD90.cursorPos = pos;
+ sMenu.cursorPos = pos;
Menu_MoveCursor(0);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
u8 sub_81983AC(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPos)
@@ -929,56 +929,56 @@ void RedrawMenuCursor(u8 oldPos, u8 newPos)
{
u8 width, height;
- width = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
- height = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
- FillWindowPixelRect(gUnknown_0203CD90.windowId, 0x11, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * oldPos + gUnknown_0203CD90.top, width, height);
- AddTextPrinterParameterized(gUnknown_0203CD90.windowId, gUnknown_0203CD90.fontId, gText_SelectorArrow3, gUnknown_0203CD90.left, gUnknown_0203CD90.optionHeight * newPos + gUnknown_0203CD90.top, 0, 0);
+ width = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
+ height = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
+ FillWindowPixelRect(sMenu.windowId, 0x11, sMenu.left, sMenu.optionHeight * oldPos + sMenu.top, width, height);
+ AddTextPrinterParameterized(sMenu.windowId, sMenu.fontId, gText_SelectorArrow3, sMenu.left, sMenu.optionHeight * newPos + sMenu.top, 0, 0);
}
u8 Menu_MoveCursor(s8 cursorDelta)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
- int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
+ u8 oldPos = sMenu.cursorPos;
+ int newPos = sMenu.cursorPos + cursorDelta;
- if (newPos < gUnknown_0203CD90.minCursorPos)
- gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
- else if (newPos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
+ if (newPos < sMenu.minCursorPos)
+ sMenu.cursorPos = sMenu.maxCursorPos;
+ else if (newPos > sMenu.maxCursorPos)
+ sMenu.cursorPos = sMenu.minCursorPos;
else
- gUnknown_0203CD90.cursorPos += cursorDelta;
+ sMenu.cursorPos += cursorDelta;
- RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
- return gUnknown_0203CD90.cursorPos;
+ RedrawMenuCursor(oldPos, sMenu.cursorPos);
+ return sMenu.cursorPos;
}
u8 Menu_MoveCursorNoWrapAround(s8 cursorDelta)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
- int newPos = gUnknown_0203CD90.cursorPos + cursorDelta;
+ u8 oldPos = sMenu.cursorPos;
+ int newPos = sMenu.cursorPos + cursorDelta;
- if (newPos < gUnknown_0203CD90.minCursorPos)
- gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.minCursorPos;
- else if (newPos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = gUnknown_0203CD90.maxCursorPos;
+ if (newPos < sMenu.minCursorPos)
+ sMenu.cursorPos = sMenu.minCursorPos;
+ else if (newPos > sMenu.maxCursorPos)
+ sMenu.cursorPos = sMenu.maxCursorPos;
else
- gUnknown_0203CD90.cursorPos += cursorDelta;
+ sMenu.cursorPos += cursorDelta;
- RedrawMenuCursor(oldPos, gUnknown_0203CD90.cursorPos);
- return gUnknown_0203CD90.cursorPos;
+ RedrawMenuCursor(oldPos, sMenu.cursorPos);
+ return sMenu.cursorPos;
}
u8 Menu_GetCursorPos(void)
{
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
s8 Menu_ProcessInput(void)
{
if (gMain.newKeys & A_BUTTON)
{
- if (!gUnknown_0203CD90.APressMuted)
+ if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1002,13 +1002,13 @@ s8 Menu_ProcessInput(void)
s8 Menu_ProcessInputNoWrap(void)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
- if (!gUnknown_0203CD90.APressMuted)
+ if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1034,9 +1034,9 @@ s8 ProcessMenuInput_other(void)
{
if (gMain.newKeys & A_BUTTON)
{
- if (!gUnknown_0203CD90.APressMuted)
+ if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1060,13 +1060,13 @@ s8 ProcessMenuInput_other(void)
s8 Menu_ProcessInputNoWrapAround_other(void)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
- if (!gUnknown_0203CD90.APressMuted)
+ if (!sMenu.APressMuted)
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1174,11 +1174,11 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
{
struct TextPrinterTemplate printer;
- gUnknown_0203CD9F = AddWindow(window);
- SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
+ sYesNoWindowId = AddWindow(window);
+ SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
- printer.windowId = gUnknown_0203CD9F;
+ printer.windowId = sYesNoWindowId;
printer.fontId = fontId;
printer.x = GetFontAttribute(fontId, FONTATTR_MAX_LETTER_WIDTH) + left;
printer.y = top;
@@ -1193,7 +1193,7 @@ void sub_8198AF8(const struct WindowTemplate *window, u8 fontId, u8 left, u8 top
AddTextPrinter(&printer, 0xFF, NULL);
- sub_81983AC(gUnknown_0203CD9F, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
+ sub_81983AC(sYesNoWindowId, fontId, left, top, GetFontAttribute(fontId, FONTATTR_MAX_LETTER_HEIGHT), 2, initialCursorPos);
}
void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum, u8 paletteNum)
@@ -1211,8 +1211,8 @@ s8 Menu_ProcessInputNoWrapClearOnChoose(void)
void sub_8198C78(void)
{
- sub_8198070(gUnknown_0203CD9F, TRUE);
- RemoveWindow(gUnknown_0203CD9F);
+ sub_8198070(sYesNoWindowId, TRUE);
+ RemoveWindow(sYesNoWindowId);
}
void sub_8198C94(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7, const struct MenuAction *strs)
@@ -1274,26 +1274,26 @@ u8 sub_8198F58(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 cursorHeight,
{
s32 pos;
- gUnknown_0203CD90.left = left;
- gUnknown_0203CD90.top = top;
- gUnknown_0203CD90.minCursorPos = 0;
- gUnknown_0203CD90.maxCursorPos = numChoices - 1;
- gUnknown_0203CD90.windowId = windowId;
- gUnknown_0203CD90.fontId = fontId;
- gUnknown_0203CD90.optionWidth = a4;
- gUnknown_0203CD90.optionHeight = cursorHeight;
- gUnknown_0203CD90.horizontalCount = a6;
- gUnknown_0203CD90.verticalCount = a7;
+ sMenu.left = left;
+ sMenu.top = top;
+ sMenu.minCursorPos = 0;
+ sMenu.maxCursorPos = numChoices - 1;
+ sMenu.windowId = windowId;
+ sMenu.fontId = fontId;
+ sMenu.optionWidth = a4;
+ sMenu.optionHeight = cursorHeight;
+ sMenu.horizontalCount = a6;
+ sMenu.verticalCount = a7;
pos = a9;
- if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = 0;
+ if (pos < 0 || pos > sMenu.maxCursorPos)
+ sMenu.cursorPos = 0;
else
- gUnknown_0203CD90.cursorPos = pos;
+ sMenu.cursorPos = pos;
sub_8199134(0, 0);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8 a7)
@@ -1305,20 +1305,20 @@ u8 sub_8198FD4(u8 windowId, u8 fontId, u8 left, u8 top, u8 a4, u8 a5, u8 a6, u8
void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
{
- u8 cursorWidth = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 0);
- u8 cursorHeight = GetMenuCursorDimensionByFont(gUnknown_0203CD90.fontId, 1);
- u8 xPos = (oldCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
- u8 yPos = (oldCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
- FillWindowPixelRect(gUnknown_0203CD90.windowId,
+ u8 cursorWidth = GetMenuCursorDimensionByFont(sMenu.fontId, 0);
+ u8 cursorHeight = GetMenuCursorDimensionByFont(sMenu.fontId, 1);
+ u8 xPos = (oldCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
+ u8 yPos = (oldCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
+ FillWindowPixelRect(sMenu.windowId,
0x11,
xPos,
yPos,
cursorWidth,
cursorHeight);
- xPos = (newCursorPos % gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionWidth + gUnknown_0203CD90.left;
- yPos = (newCursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.optionHeight + gUnknown_0203CD90.top;
- AddTextPrinterParameterized(gUnknown_0203CD90.windowId,
- gUnknown_0203CD90.fontId,
+ xPos = (newCursorPos % sMenu.horizontalCount) * sMenu.optionWidth + sMenu.left;
+ yPos = (newCursorPos / sMenu.horizontalCount) * sMenu.optionHeight + sMenu.top;
+ AddTextPrinterParameterized(sMenu.windowId,
+ sMenu.fontId,
gText_SelectorArrow3,
xPos,
yPos,
@@ -1328,83 +1328,83 @@ void sub_8199060(u8 oldCursorPos, u8 newCursorPos)
u8 sub_8199134(s8 deltaX, s8 deltaY)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (deltaX != 0)
{
- if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < 0)
+ if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < 0)
{
- gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount - 1;
+ sMenu.cursorPos += sMenu.horizontalCount - 1;
}
- else if ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= gUnknown_0203CD90.horizontalCount)
+ else if ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= sMenu.horizontalCount)
{
- gUnknown_0203CD90.cursorPos = (gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) * gUnknown_0203CD90.horizontalCount;
+ sMenu.cursorPos = (sMenu.cursorPos / sMenu.horizontalCount) * sMenu.horizontalCount;
}
else
{
- gUnknown_0203CD90.cursorPos += deltaX;
+ sMenu.cursorPos += deltaX;
}
}
if (deltaY != 0)
{
- if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < 0)
+ if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < 0)
{
- gUnknown_0203CD90.cursorPos += gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
+ sMenu.cursorPos += sMenu.horizontalCount * (sMenu.verticalCount - 1);
}
- else if ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= gUnknown_0203CD90.verticalCount)
+ else if ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= sMenu.verticalCount)
{
- gUnknown_0203CD90.cursorPos -= gUnknown_0203CD90.horizontalCount * (gUnknown_0203CD90.verticalCount - 1);
+ sMenu.cursorPos -= sMenu.horizontalCount * (sMenu.verticalCount - 1);
}
else
{
- gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
+ sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
}
}
- if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
+ if (sMenu.cursorPos > sMenu.maxCursorPos)
{
- gUnknown_0203CD90.cursorPos = oldPos;
- return gUnknown_0203CD90.cursorPos;
+ sMenu.cursorPos = oldPos;
+ return sMenu.cursorPos;
}
else
{
- sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
- return gUnknown_0203CD90.cursorPos;
+ sub_8199060(oldPos, sMenu.cursorPos);
+ return sMenu.cursorPos;
}
}
u8 sub_81991F8(s8 deltaX, s8 deltaY)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (deltaX != 0)
{
- if (((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX >= 0) &&
- ((gUnknown_0203CD90.cursorPos % gUnknown_0203CD90.horizontalCount) + deltaX < gUnknown_0203CD90.horizontalCount))
+ if (((sMenu.cursorPos % sMenu.horizontalCount) + deltaX >= 0) &&
+ ((sMenu.cursorPos % sMenu.horizontalCount) + deltaX < sMenu.horizontalCount))
{
- gUnknown_0203CD90.cursorPos += deltaX;
+ sMenu.cursorPos += deltaX;
}
}
if (deltaY != 0)
{
- if (((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY >= 0) &&
- ((gUnknown_0203CD90.cursorPos / gUnknown_0203CD90.horizontalCount) + deltaY < gUnknown_0203CD90.verticalCount))
+ if (((sMenu.cursorPos / sMenu.horizontalCount) + deltaY >= 0) &&
+ ((sMenu.cursorPos / sMenu.horizontalCount) + deltaY < sMenu.verticalCount))
{
- gUnknown_0203CD90.cursorPos += (gUnknown_0203CD90.horizontalCount * deltaY);
+ sMenu.cursorPos += (sMenu.horizontalCount * deltaY);
}
}
- if (gUnknown_0203CD90.cursorPos > gUnknown_0203CD90.maxCursorPos)
+ if (sMenu.cursorPos > sMenu.maxCursorPos)
{
- gUnknown_0203CD90.cursorPos = oldPos;
- return gUnknown_0203CD90.cursorPos;
+ sMenu.cursorPos = oldPos;
+ return sMenu.cursorPos;
}
else
{
- sub_8199060(oldPos, gUnknown_0203CD90.cursorPos);
- return gUnknown_0203CD90.cursorPos;
+ sub_8199060(oldPos, sMenu.cursorPos);
+ return sMenu.cursorPos;
}
}
@@ -1413,7 +1413,7 @@ s8 sub_8199284(void)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1449,12 +1449,12 @@ s8 sub_8199284(void)
s8 Menu_ProcessInputGridLayout(void)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1493,7 +1493,7 @@ s8 sub_81993D8(void)
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1529,12 +1529,12 @@ s8 sub_81993D8(void)
s8 sub_8199484(void)
{
- u8 oldPos = gUnknown_0203CD90.cursorPos;
+ u8 oldPos = sMenu.cursorPos;
if (gMain.newKeys & A_BUTTON)
{
PlaySE(SE_SELECT);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
else if (gMain.newKeys & B_BUTTON)
{
@@ -1572,21 +1572,21 @@ u8 InitMenuInUpperLeftCorner(u8 windowId, u8 itemCount, u8 initialCursorPos, boo
{
s32 pos;
- gUnknown_0203CD90.left = 0;
- gUnknown_0203CD90.top = 1;
- gUnknown_0203CD90.minCursorPos = 0;
- gUnknown_0203CD90.maxCursorPos = itemCount - 1;
- gUnknown_0203CD90.windowId = windowId;
- gUnknown_0203CD90.fontId = 1;
- gUnknown_0203CD90.optionHeight = 16;
- gUnknown_0203CD90.APressMuted = APressMuted;
+ sMenu.left = 0;
+ sMenu.top = 1;
+ sMenu.minCursorPos = 0;
+ sMenu.maxCursorPos = itemCount - 1;
+ sMenu.windowId = windowId;
+ sMenu.fontId = 1;
+ sMenu.optionHeight = 16;
+ sMenu.APressMuted = APressMuted;
pos = initialCursorPos;
- if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = 0;
+ if (pos < 0 || pos > sMenu.maxCursorPos)
+ sMenu.cursorPos = 0;
else
- gUnknown_0203CD90.cursorPos = pos;
+ sMenu.cursorPos = pos;
return Menu_MoveCursor(0);
}
@@ -1639,11 +1639,11 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
{
struct TextPrinterTemplate printer;
- gUnknown_0203CD9F = AddWindow(window);
- SetWindowBorderStyle(gUnknown_0203CD9F, TRUE, baseTileNum, paletteNum);
+ sYesNoWindowId = AddWindow(window);
+ SetWindowBorderStyle(sYesNoWindowId, TRUE, baseTileNum, paletteNum);
printer.currentChar = gText_YesNo;
- printer.windowId = gUnknown_0203CD9F;
+ printer.windowId = sYesNoWindowId;
printer.fontId = 1;
printer.x = 8;
printer.y = 1;
@@ -1657,7 +1657,7 @@ void CreateYesNoMenu(const struct WindowTemplate *window, u16 baseTileNum, u8 pa
printer.lineSpacing = 0;
AddTextPrinter(&printer, 0xFF, NULL);
- InitMenuInUpperLeftCornerPlaySoundWhenAPressed(gUnknown_0203CD9F, 2, initialCursorPos);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(sYesNoWindowId, 2, initialCursorPos);
}
void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs)
@@ -1709,26 +1709,26 @@ u8 sub_8199944(u8 windowId, u8 optionWidth, u8 horizontalCount, u8 verticalCount
{
s32 pos;
- gUnknown_0203CD90.left = 0;
- gUnknown_0203CD90.top = 1;
- gUnknown_0203CD90.minCursorPos = 0;
- gUnknown_0203CD90.maxCursorPos = (horizontalCount * verticalCount) - 1;
- gUnknown_0203CD90.windowId = windowId;
- gUnknown_0203CD90.fontId = 1;
- gUnknown_0203CD90.optionWidth = optionWidth;
- gUnknown_0203CD90.optionHeight = 16;
- gUnknown_0203CD90.horizontalCount = horizontalCount;
- gUnknown_0203CD90.verticalCount = verticalCount;
+ sMenu.left = 0;
+ sMenu.top = 1;
+ sMenu.minCursorPos = 0;
+ sMenu.maxCursorPos = (horizontalCount * verticalCount) - 1;
+ sMenu.windowId = windowId;
+ sMenu.fontId = 1;
+ sMenu.optionWidth = optionWidth;
+ sMenu.optionHeight = 16;
+ sMenu.horizontalCount = horizontalCount;
+ sMenu.verticalCount = verticalCount;
pos = initialCursorPos;
- if (pos < 0 || pos > gUnknown_0203CD90.maxCursorPos)
- gUnknown_0203CD90.cursorPos = 0;
+ if (pos < 0 || pos > sMenu.maxCursorPos)
+ sMenu.cursorPos = 0;
else
- gUnknown_0203CD90.cursorPos = pos;
+ sMenu.cursorPos = pos;
sub_8199134(0, 0);
- return gUnknown_0203CD90.cursorPos;
+ return sMenu.cursorPos;
}
void clear_scheduled_bg_copies_to_vram(void)
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 0adc6228e..e6547b300 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -152,7 +152,7 @@ static void Task_ContinueTaskAfterMessagePrints(u8 taskId)
gUnknown_0300117C(taskId);
}
-void sub_8121F68(u8 taskId, const struct YesNoFuncTable *data)
+void DoYesNoFuncWithChoice(u8 taskId, const struct YesNoFuncTable *data)
{
gUnknown_0203A138 = *data;
gTasks[taskId].func = Task_CallYesOrNoCallback;
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..53f9f0548
--- /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_ENABLE_MR_STONE_POKENAV },
+ { gText_MrStone_Pokenav_2B61E6, FLAG_ENABLE_MR_STONE_POKENAV, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6302, FLAG_DELIVERED_STEVEN_LETTER, 0xFFFF },
+ { gText_MrStone_Pokenav_2B63A0, FLAG_RECEIVED_EXP_SHARE, 0xFFFF },
+ { gText_MrStone_Pokenav_2B64A2, FLAG_RECEIVED_HM04, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6526, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { gText_MrStone_Pokenav_2B65BB, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6664, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { gText_MrStone_Pokenav_2B66B1, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { gText_MrStone_Pokenav_2B6703, FLAG_DEFEATED_SOOTOPOLIS_GYM, 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_ENABLE_NORMAN_MATCH_CALL, 0xFFFF },
+ { gText_Norman_Pokenav_2B5795, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { gText_Norman_Pokenav_2B584D, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { gText_Norman_Pokenav_2B58E3, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { gText_Norman_Pokenav_2B5979, FLAG_RECEIVED_RED_OR_BLUE_ORB, 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_ENABLE_NORMAN_MATCH_CALL, 0x45, gNormanMatchCallDesc, gNormanMatchCallName, sNormanTextScripts);
+
+MATCHCALLDEF(sProfBirchMatchCallHeader, 3, 0, FLAG_ENABLE_PROF_BIRCH_MATCH_CALL, gProfBirchMatchCallDesc, gProfBirchMatchCallName)
+
+static const match_call_text_data_t sMomTextScripts[] = {
+ { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
+ { gText_Mom_Pokenav_2B2310, FLAG_DEFEATED_PETALBURG_GYM, 0xffff },
+ { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
+ { NULL, 0xffff, 0xffff }
+};
+
+MATCHCALLDEF(sMomMatchCallHeader, 0, 0, FLAG_ENABLE_MOM_MATCH_CALL, 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_RECEIVED_RED_OR_BLUE_ORB, 0xffff },
+ { gText_Steven_Pokenav_2B5DB4, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xffff },
+ { gText_Steven_Pokenav_2B5E26, FLAG_DEFEATED_MOSSDEEP_GYM, 0xffff },
+ { gText_Steven_Pokenav_2B5EA2, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xffff },
+ { gText_Steven_Pokenav_2B5ED9, FLAG_SYS_GAME_CLEAR, 0xffff },
+ { NULL, 0xffff, 0xffff },
+};
+
+MATCHCALLDEF(sStevenMatchCallHeader, 0, 0xd5, FLAG_REGISTERED_STEVEN_POKENAV, gStevenMatchCallDesc, gStevenMatchCallName, sStevenTextScripts);
+
+static const match_call_text_data_t sMayTextScripts[] = {
+ { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF },
+ { gText_May_Pokenav_2B3B3F, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { gText_May_Pokenav_2B3C13, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
+ { gText_May_Pokenav_2B3CF3, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { gText_May_Pokenav_2B3D4B, FLAG_RECEIVED_HM04, 0xFFFF },
+ { gText_May_Pokenav_2B3DD1, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { gText_May_Pokenav_2B3E69, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { gText_May_Pokenav_2B3ECD, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { gText_May_Pokenav_2B3F2B, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { gText_May_Pokenav_2B3FFB, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { gText_May_Pokenav_2B402B, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
+ { gText_May_Pokenav_2B414B, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { gText_May_Pokenav_2B4228, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { gText_May_Pokenav_2B42E0, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { gText_May_Pokenav_2B4350, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sMayMatchCallHeader, 4, MALE, FLAG_ENABLE_RIVAL_MATCH_CALL, gMayBrendanMatchCallDesc, gExpandedPlaceholder_May, sMayTextScripts);
+
+static const match_call_text_data_t sBrendanTextScripts[] = {
+ { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4486, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4560, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
+ { gText_Brendan_Pokenav_2B463F, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { gText_Brendan_Pokenav_2B46B7, FLAG_RECEIVED_HM04, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4761, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { gText_Brendan_Pokenav_2B47F4, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4882, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4909, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { gText_Brendan_Pokenav_2B49C4, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4A44, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4B28, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4C15, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4CD8, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { gText_Brendan_Pokenav_2B4D46, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+MATCHCALLDEF(sBrendanMatchCallHeader, 4, FEMALE, FLAG_ENABLE_RIVAL_MATCH_CALL, 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_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { gText_Wally_Pokenav_2B4F41, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { gText_Wally_Pokenav_2B4FF3, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { gText_Wally_Pokenav_2B50B1, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { gText_Wally_Pokenav_2B5100, FLAG_DEFEATED_WALLY_VICTORY_ROAD, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
+ { FLAG_HIDE_MAUVILLE_CITY_WALLY, 0x05 },
+ { FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xD5 },
+ { FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, 0x46 },
+ { 0xFFFF, 0xD5 }
+};
+
+MATCHCALLDEF(sWallyMatchCallHeader, 2, 0, FLAG_ENABLE_WALLY_MATCH_CALL, 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_DEFEATED_EVIL_TEAM_MT_CHIMNEY, 0xFFFF },
+ { gText_Scott_Pokenav_2B5323, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { gText_Scott_Pokenav_2B53DB, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { gText_Scott_Pokenav_2B54A5, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { gText_Scott_Pokenav_2B5541, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { gText_Scott_Pokenav_2B56CA, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
+};
+
+
+MATCHCALLDEF(sScottMatchCallHeader, 0, 0xD5, FLAG_ENABLE_SCOTT_MATCH_CALL, 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_ENABLE_ROXANNE_MATCH_CALL, 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_ENABLE_BRAWLY_MATCH_CALL, 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_ENABLE_WATTSON_MATCH_CALL, 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_ENABLE_FLANNERY_MATCH_CALL, 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_ENABLE_WINONA_MATCH_CALL, 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_ENABLE_TATE_AND_LIZA_MATCH_CALL, 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_ENABLE_JUAN_MATCH_CALL, 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_REMATCH_JUAN, 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_REMATCH_SIDNEY, 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_REMATCH_PHOEBE, 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_REMATCH_GLACIA, 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_REMATCH_DRAKE, 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_DEFEATED_MOSSDEEP_GYM, { 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/roulette.c b/src/roulette.c
new file mode 100644
index 000000000..a6a020f39
--- /dev/null
+++ b/src/roulette.c
@@ -0,0 +1,4929 @@
+#include "global.h"
+#include "alloc.h"
+#include "bg.h"
+#include "coins.h"
+#include "decompress.h"
+#include "event_data.h"
+#include "field_screen_effect.h"
+#include "gpu_regs.h"
+#include "graphics.h"
+#include "m4a.h"
+#include "main.h"
+#include "menu.h"
+#include "menu_helpers.h"
+#include "overworld.h"
+#include "palette.h"
+#include "random.h"
+#include "roulette.h"
+#include "roulette_util.h"
+#include "rtc.h"
+#include "scanline_effect.h"
+#include "script.h"
+#include "sound.h"
+#include "sprite.h"
+#include "string_util.h"
+#include "task.h"
+#include "trig.h"
+#include "tv.h"
+#include "window.h"
+#include "constants/rgb.h"
+#include "constants/species.h"
+#include "constants/songs.h"
+
+struct StructgUnknown_083F8DF4
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u8 var03;
+ u8 var04;
+ u8 filler_05[3];
+ u16 var08;
+ u16 var0A;
+ u16 var0C;
+ u8 filler_0E[2];
+ u16 var10;
+ u16 var12;
+ u16 var14;
+ u8 filler_16[2];
+ u16 var18;
+ u16 var1A;
+ float var1C;
+};
+
+struct StructgUnknown_085B6154
+{
+ u8 var00;
+ u8 var01_0:4;
+ u8 var01_4:4;
+ u8 var02;
+ u8 var03;
+ u8 var04;
+ u8 var05;
+ u8 var06;
+ u32 var08;
+ u32 var0C;
+ u16 var10;
+};
+
+struct StructgUnknown_083F8D90
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u32 var04;
+};
+
+EWRAM_DATA struct Roulette
+{
+ u8 var00;
+ u8 var01;
+ u8 var02;
+ u8 var03_0:5;
+ u8 var03_5:1;
+ u8 var03_6:1;
+ u8 var03_7:1;
+ u8 var04_0:2;
+ u8 var04_2:5;
+ u8 var04_7:1;
+ u32 var08;
+ u8 var0C[6];
+ u8 var12[4];
+ u8 var16[3];
+ u8 var19;
+ u8 var1A_0:4;
+ u8 var1A_4:4;
+ u8 var1B[6];
+ u8 var21;
+ u8 var22;
+ u8 var23;
+ s16 var24;
+ s16 var26;
+ s16 var28;
+ s16 var2A;
+ struct OamMatrix var2C;
+ u16 var34;
+ struct Sprite *var38;
+ u8 var3C[MAX_SPRITES]; // Sprite IDs
+ u8 var7C;
+ u8 var7D;
+ u8 var7E;
+ u8 var7F;
+ s16 var80;
+ s16 var82;
+ u16 var84;
+ u16 var86;
+ float var88;
+ float var8C;
+ float var90;
+ float var94;
+ float var98;
+ float var9C;
+ float varA0;
+ u8 varA4;
+ u8 varA5;
+ u8 v51[2];
+ u16 varA8;
+ u16 varAA;
+ TaskFunc varAC;
+ u8 v46[4];
+ TaskFunc varB4;
+ struct UnkStruct0 varB8;
+ u16 tilemapBuffers[7][0x400];
+ u16 *unk_397C;
+} *gUnknown_0203AB88 = NULL;
+EWRAM_DATA u8 gUnknown_0203AB8C = 0;
+
+static void sub_8140814(u8);
+static void sub_81408A8(u8);
+static void sub_8140968(u8);
+static void sub_8140994(u8);
+static void sub_8140BD0(u8);
+static void sub_8141040(u8);
+static void sub_81410FC(u8);
+static void sub_8141344(u8);
+static void sub_814155C(u8);
+static void sub_81415D4(u8);
+static void sub_81416D4(u8);
+static void sub_8141778(u8);
+static void sub_814189C(u8);
+static void sub_8141A18(u8);
+static void sub_8141AC0(u8);
+static void sub_8141B58(u8);
+static void dp01t_12_3_battle_menu(u8);
+static void sub_8141DE4(u8);
+static void sub_8141E7C(u8);
+static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3);
+static void sub_8141FF4(u8);
+static void sub_8142070(void);
+static void sub_8142918(u8);
+static void sub_814297C(u8);
+static u8 sub_81420D0(u8, u8);
+static bool8 sub_81421E8(u8, u8);
+static void sub_8142284(u8);
+static void sub_81424FC(u8);
+static u8 sub_8142758(u8);
+static void sub_8142814(void);
+static void sub_8142C0C(u8);
+static void sub_8142CD0(void);
+static void sub_8142E70(u8, u8);
+static void sub_8142F7C(void);
+static void sub_8143038(u8, u8);
+static void sub_8143150(u8);
+static void sub_81431E4(void);
+static void sub_8143280(struct Sprite *);
+static void sub_8143314(void);
+static void sub_8143514(u16);
+static void sub_81436D0(u8);
+static void sub_814372C(u8);
+static void sub_814390C(struct Sprite *);
+static void sub_814391C(void);
+static void sub_814399C(struct Sprite *);
+static void sub_81439C8(void);
+static void sub_8143A40(void);
+static void sub_81446AC(struct Sprite *);
+static void sub_81446DC(struct Sprite *);
+static void sub_81448B8(struct Sprite *);
+static void sub_8144A24(struct Sprite *);
+static void sub_8144E60(struct Sprite *);
+static void sub_8145294(struct Sprite *);
+
+extern const u8 gUnknown_082A5B89[];
+extern const u8 gUnknown_082A5C13[];
+extern const u8 gUnknown_082A5BD7[];
+extern const u8 gUnknown_082A5BCB[];
+extern const u8 gUnknown_082A5BE0[];
+extern const u8 gUnknown_082A5BEF[];
+extern const u8 gUnknown_082A5C21[];
+extern const u8 gUnknown_082A5C61[];
+extern const u8 gUnknown_082A5C04[];
+extern const u8 gUnknown_082A5B12[];
+extern const u8 gUnknown_082A5B6B[];
+extern const u8 gUnknown_082A5B4E[];
+
+static const u16 gUnknown_085B5BFC[] = INCBIN_U16("graphics/roulette/85B5BFC.gbapal");
+static const u32 gUnknown_085B5DFC[] = INCBIN_U32("graphics/roulette/85B5DFC.bin.lz");
+static const u32 gUnknown_085B5FA0[] = INCBIN_U32("graphics/roulette/wheel_map.bin.lz");
+static const struct BgTemplate gUnknown_085B6140[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 2,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 4,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 1,
+ .mapBaseIndex = 6,
+ .screenSize = 1,
+ .paletteMode = 1,
+ .priority = 2,
+ .baseTile = 0
+ }
+};
+static const struct WindowTemplate gUnknown_085B614C[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 3,
+ .tilemapTop = 15,
+ .width = 24,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0xC5
+ },
+ // BUG: Array not terminated properly
+ //DUMMY_WIN_TEMPLATE
+};
+static const struct StructgUnknown_085B6154 gUnknown_085B6154[] =
+{
+ {
+ .var00 = 0xFF,
+ .var01_0 = 0,
+ .var01_4 = 0,
+ .var02 = 0,
+ .var03 = 7,
+ .var04 = 7,
+ .var05 = 0,
+ .var06 = 0,
+ .var08 = 0x0,
+ .var0C = 0x0,
+ .var10 = 0x0,
+ },
+ {
+ .var00 = 12,
+ .var01_0 = 4,
+ .var01_4 = 1,
+ .var02 = 0,
+ .var03 = 17,
+ .var04 = 7,
+ .var05 = 0,
+ .var06 = 0,
+ .var08 = 0x2,
+ .var0C = 0x10842,
+ .var10 = 0xE000,
+ },
+ {
+ .var00 = 13,
+ .var01_0 = 4,
+ .var01_4 = 2,
+ .var02 = 0,
+ .var03 = 20,
+ .var04 = 7,
+ .var05 = 0,
+ .var06 = 0,
+ .var08 = 0x4,
+ .var0C = 0x21084,
+ .var10 = 0xE000,
+ },
+ {
+ .var00 = 14,
+ .var01_0 = 4,
+ .var01_4 = 3,
+ .var02 = 0,
+ .var03 = 23,
+ .var04 = 7,
+ .var05 = 0,
+ .var06 = 0,
+ .var08 = 0x8,
+ .var0C = 0x42108,
+ .var10 = 0xE000,
+ },
+ {
+ .var00 = 15,
+ .var01_0 = 4,
+ .var01_4 = 4,
+ .var02 = 0,
+ .var03 = 26,
+ .var04 = 7,
+ .var05 = 0,
+ .var06 = 0,
+ .var08 = 0x10,
+ .var0C = 0x84210,
+ .var10 = 0xE000,
+ },
+ {
+ .var00 = 16,
+ .var01_0 = 3,
+ .var01_4 = 0,
+ .var02 = 1,
+ .var03 = 14,
+ .var04 = 10,
+ .var05 = 0,
+ .var06 = 12,
+ .var08 = 0x20,
+ .var0C = 0x3E0,
+ .var10 = 0x249,
+ },
+ {
+ .var00 = 0,
+ .var01_0 = 12,
+ .var01_4 = 1,
+ .var02 = 1,
+ .var03 = 17,
+ .var04 = 10,
+ .var05 = 3,
+ .var06 = 3,
+ .var08 = 0x40,
+ .var0C = 0x40,
+ .var10 = 0x2001,
+ },
+ {
+ .var00 = 9,
+ .var01_0 = 12,
+ .var01_4 = 2,
+ .var02 = 1,
+ .var03 = 20,
+ .var04 = 10,
+ .var05 = 3,
+ .var06 = 3,
+ .var08 = 0x80,
+ .var0C = 0x80,
+ .var10 = 0x2200,
+ },
+ {
+ .var00 = 6,
+ .var01_0 = 12,
+ .var01_4 = 3,
+ .var02 = 1,
+ .var03 = 23,
+ .var04 = 10,
+ .var05 = 3,
+ .var06 = 3,
+ .var08 = 0x100,
+ .var0C = 0x100,
+ .var10 = 0x2040,
+ },
+ {
+ .var00 = 3,
+ .var01_0 = 12,
+ .var01_4 = 4,
+ .var02 = 1,
+ .var03 = 26,
+ .var04 = 10,
+ .var05 = 3,
+ .var06 = 3,
+ .var08 = 0x200,
+ .var0C = 0x200,
+ .var10 = 0x2008,
+ },
+ {
+ .var00 = 17,
+ .var01_0 = 3,
+ .var01_4 = 0,
+ .var02 = 2,
+ .var03 = 14,
+ .var04 = 13,
+ .var05 = 3,
+ .var06 = 15,
+ .var08 = 0x400,
+ .var0C = 0x7C00,
+ .var10 = 0x492,
+ },
+ {
+ .var00 = 4,
+ .var01_0 = 12,
+ .var01_4 = 1,
+ .var02 = 2,
+ .var03 = 17,
+ .var04 = 13,
+ .var05 = 6,
+ .var06 = 6,
+ .var08 = 0x800,
+ .var0C = 0x800,
+ .var10 = 0x2010,
+ },
+ {
+ .var00 = 1,
+ .var01_0 = 12,
+ .var01_4 = 2,
+ .var02 = 2,
+ .var03 = 20,
+ .var04 = 13,
+ .var05 = 6,
+ .var06 = 6,
+ .var08 = 0x1000,
+ .var0C = 0x1000,
+ .var10 = 0x2002,
+ },
+ {
+ .var00 = 10,
+ .var01_0 = 12,
+ .var01_4 = 3,
+ .var02 = 2,
+ .var03 = 23,
+ .var04 = 13,
+ .var05 = 6,
+ .var06 = 6,
+ .var08 = 0x2000,
+ .var0C = 0x2000,
+ .var10 = 0x2400,
+ },
+ {
+ .var00 = 7,
+ .var01_0 = 12,
+ .var01_4 = 4,
+ .var02 = 2,
+ .var03 = 26,
+ .var04 = 13,
+ .var05 = 6,
+ .var06 = 6,
+ .var08 = 0x4000,
+ .var0C = 0x4000,
+ .var10 = 0x2080,
+ },
+ {
+ .var00 = 18,
+ .var01_0 = 3,
+ .var01_4 = 0,
+ .var02 = 3,
+ .var03 = 14,
+ .var04 = 16,
+ .var05 = 6,
+ .var06 = 18,
+ .var08 = 0x8000,
+ .var0C = 0xF8000,
+ .var10 = 0x924,
+ },
+ {
+ .var00 = 8,
+ .var01_0 = 12,
+ .var01_4 = 1,
+ .var02 = 3,
+ .var03 = 17,
+ .var04 = 16,
+ .var05 = 9,
+ .var06 = 9,
+ .var08 = 0x10000,
+ .var0C = 0x10000,
+ .var10 = 0x2100,
+ },
+ {
+ .var00 = 5,
+ .var01_0 = 12,
+ .var01_4 = 2,
+ .var02 = 3,
+ .var03 = 20,
+ .var04 = 16,
+ .var05 = 9,
+ .var06 = 9,
+ .var08 = 0x20000,
+ .var0C = 0x20000,
+ .var10 = 0x2020,
+ },
+ {
+ .var00 = 2,
+ .var01_0 = 12,
+ .var01_4 = 3,
+ .var02 = 3,
+ .var03 = 23,
+ .var04 = 16,
+ .var05 = 9,
+ .var06 = 9,
+ .var08 = 0x40000,
+ .var0C = 0x40000,
+ .var10 = 0x2004,
+ },
+ {
+ .var00 = 11,
+ .var01_0 = 12,
+ .var01_4 = 4,
+ .var02 = 3,
+ .var03 = 26,
+ .var04 = 16,
+ .var05 = 9,
+ .var06 = 9,
+ .var08 = 0x80000,
+ .var0C = 0x80000,
+ .var10 = 0x2800,
+ },
+};
+
+static const struct StructgUnknown_083F8D90 gUnknown_085B62E4[] =
+{
+ {
+ .var00 = 0,
+ .var01 = 1,
+ .var02 = 6,
+ .var04 = 0x40,
+ },
+ {
+ .var00 = 1,
+ .var01 = 3,
+ .var02 = 12,
+ .var04 = 0x1000,
+ },
+ {
+ .var00 = 2,
+ .var01 = 5,
+ .var02 = 18,
+ .var04 = 0x40000,
+ },
+ {
+ .var00 = 3,
+ .var01 = 7,
+ .var02 = 9,
+ .var04 = 0x200,
+ },
+ {
+ .var00 = 4,
+ .var01 = 9,
+ .var02 = 11,
+ .var04 = 0x800,
+ },
+ {
+ .var00 = 5,
+ .var01 = 11,
+ .var02 = 17,
+ .var04 = 0x20000,
+ },
+ {
+ .var00 = 6,
+ .var01 = 13,
+ .var02 = 8,
+ .var04 = 0x100,
+ },
+ {
+ .var00 = 7,
+ .var01 = 15,
+ .var02 = 14,
+ .var04 = 0x4000,
+ },
+ {
+ .var00 = 8,
+ .var01 = 17,
+ .var02 = 16,
+ .var04 = 0x10000,
+ },
+ {
+ .var00 = 9,
+ .var01 = 19,
+ .var02 = 7,
+ .var04 = 0x80,
+ },
+ {
+ .var00 = 10,
+ .var01 = 21,
+ .var02 = 13,
+ .var04 = 0x2000,
+ },
+ {
+ .var00 = 11,
+ .var01 = 23,
+ .var02 = 19,
+ .var04 = 0x80000,
+ },
+};
+static const u8 gUnknown_085B6344[] = {1, 3, 1, 6};
+static const struct StructgUnknown_083F8DF4 gUnknown_085B6348[] =
+{
+ {
+ .var00 = 1,
+ .var01 = 60,
+ .var02 = 30,
+ .var03 = 1,
+ .var04 = 1,
+ .var08 = 45,
+ .var0A = 30,
+ .var0C = 1,
+ .var10 = 75,
+ .var12 = 27,
+ .var14 = 24,
+ .var18 = 10,
+ .var1A = 360,
+ .var1C = -0.5f
+ },
+ {
+ .var00 = 3,
+ .var01 = 30,
+ .var02 = 15,
+ .var03 = 1,
+ .var04 = 0,
+ .var08 = 75,
+ .var0A = 60,
+ .var0C = 2,
+ .var10 = 0,
+ .var12 = 54,
+ .var14 = 48,
+ .var18 = 10,
+ .var1A = 270,
+ .var1C = -1.0f
+ }
+};
+
+static const struct UnkStruct1 gUnknown_085B6388[] =
+{
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0005,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x000A,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0015,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0055,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x005A,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0065,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0075,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x007A,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0085,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x0095,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x009A,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x8000,
+ .var02 = 0x00A5,
+ .var04 = 1,
+ .var05 = 1,
+ .var06 = 0xFF,
+ .var07_0 = 8,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x77D6,
+ .var02 = 0x0028,
+ .var04 = 2,
+ .var05 = 10,
+ .var06 = 0xFF,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+};
+
+static const struct UnkStruct1 gUnknown_085B63F0[] =
+{
+ {
+ .var00 = 0x53FF,
+ .var02 = 0x0101,
+ .var04 = 5,
+ .var05 = 30,
+ .var06 = 0xFF,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x7FFB,
+ .var02 = 0x0106,
+ .var04 = 5,
+ .var05 = 30,
+ .var06 = 0xFF,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = 0
+ },
+ {
+ .var00 = 0x7F7F,
+ .var02 = 0x010B,
+ .var04 = 5,
+ .var05 = 30,
+ .var06 = 0xFF,
+ .var07_0 = 14,
+ .var07_5 = 2,
+ .var07_7 = 0
+ }
+};
+
+static const struct YesNoFuncTable gUnknown_085B6408 =
+{
+ sub_8142918,
+ sub_814297C
+};
+
+static const struct YesNoFuncTable gUnknown_085B6410 =
+{
+ sub_8140968,
+ sub_8140994
+};
+
+static void sub_8140238(void)
+{
+ RunTasks();
+ AnimateSprites();
+ BuildOamBuffer();
+ if (gUnknown_0203AB88->varB8.var00)
+ task_tutorial_controls_fadein(&gUnknown_0203AB88->varB8);
+}
+
+static void sub_8140264(void)
+{
+ LoadOam();
+ ProcessSpriteCopyRequests();
+ TransferPlttBuffer();
+ sub_8142814();
+ SetGpuReg(REG_OFFSET_BG1HOFS, 0x200 - gUnknown_0203AB88->var26);
+ if (gUnknown_0203AB88->var01)
+ SetGpuReg(REG_OFFSET_BLDALPHA, gUnknown_0203AB88->var34);
+ if (gUnknown_0203AB88->var2A != 0)
+ {
+ DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[2][0xE0], (void *)BG_SCREEN_ADDR(4) + 0x1C0, 0x340);
+ gUnknown_0203AB88->var2A = 0;
+ }
+ switch (gUnknown_0203AB88->var28)
+ {
+ case 1:
+ SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 0);
+ ShowBg(0);
+ DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340);
+ gUnknown_0203AB88->var28 = 2;
+ break;
+ case 2:
+ DmaCopy16(3, &gUnknown_0203AB88->tilemapBuffers[0][0xE0], (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340);
+ break;
+ case 0xFF:
+ SetBgAttribute(0, BG_ATTR_CHARBASEINDEX, 2);
+ ShowBg(0);
+ DmaFill16(3, 0, (void *)BG_SCREEN_ADDR(31) + 0x1C0, 0x340);
+ gUnknown_0203AB88->var28 = 0;
+ case 0:
+ break;
+ }
+}
+
+static void sub_8140388(void)
+{
+ u32 size = 0;
+
+ gUnknown_0203AB88 = AllocZeroed(sizeof(*gUnknown_0203AB88));
+ ResetBgsAndClearDma3BusyFlags(0);
+ InitBgsFromTemplates(1, gUnknown_085B6140, ARRAY_COUNT(gUnknown_085B6140));
+ SetBgTilemapBuffer(0, gUnknown_0203AB88->tilemapBuffers[0]);
+ SetBgTilemapBuffer(1, gUnknown_0203AB88->tilemapBuffers[2]);
+ SetBgTilemapBuffer(2, gUnknown_0203AB88->tilemapBuffers[6]);
+ InitWindows(gUnknown_085B614C);
+ sub_8197200();
+ gUnknown_0203AB8C = 0;
+ gUnknown_0203AB88->unk_397C = malloc_and_decompress(gUnknown_085B5DFC, &size);
+}
+
+static void sub_8140418(void)
+{
+ FREE_AND_SET_NULL(gUnknown_0203AB88->unk_397C);
+ FreeAllWindowBuffers();
+ UnsetBgTilemapBuffer(0);
+ UnsetBgTilemapBuffer(1);
+ UnsetBgTilemapBuffer(2);
+ ResetBgsAndClearDma3BusyFlags(0);
+ memset(gUnknown_0203AB88, 0, sizeof(*gUnknown_0203AB88));
+ FREE_AND_SET_NULL(gUnknown_0203AB88);
+}
+
+static void sub_8140470(void)
+{
+ u8 i;
+ u16 arr[3] = {RGB(24, 4, 10), RGB(10, 19, 6), RGB(24, 4, 10)}; // the third is never used ?
+
+ gUnknown_0203AB88->var04_0 = (gSpecialVar_0x8004 & 1);
+
+ if (gSpecialVar_0x8004 & 0x80)
+ gUnknown_0203AB88->var04_7 = 1;
+
+ gUnknown_0203AB88->var22 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03;
+ gUnknown_0203AB88->var23 = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04;
+ gUnknown_0203AB88->var19 = gUnknown_085B6344[gUnknown_0203AB88->var04_0 + gUnknown_0203AB88->var04_7 * 2];
+ gUnknown_0203AB88->var1A_4 = 1;
+
+ if (gUnknown_0203AB88->var19 == 1)
+ gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[0];
+ else
+ gPlttBufferUnfaded[0] = gPlttBufferUnfaded[0x51] = gPlttBufferFaded[0] = gPlttBufferFaded[0x51] = arr[1];
+
+ sub_8151678(&gUnknown_0203AB88->varB8);
+
+ for (i = 0; i < 13; i++)
+ {
+ sub_815168C(&gUnknown_0203AB88->varB8, i, &gUnknown_085B6388[i]);
+ }
+
+ for (i = 0; i < PARTY_SIZE; i++)
+ {
+ switch (GetMonData(&gPlayerParty[i], MON_DATA_SPECIES2))
+ {
+ case SPECIES_SHROOMISH:
+ gUnknown_0203AB88->var02 |= 0x1;
+ break;
+ case SPECIES_TAILLOW:
+ gUnknown_0203AB88->var02 |= 0x2;
+ break;
+ }
+ }
+ RtcCalcLocalTime();
+}
+
+static void sub_81405CC(void)
+{
+ u8 taskId;
+
+ switch (gMain.state)
+ {
+ case 0:
+ SetVBlankCallback(NULL);
+ ScanlineEffect_Stop();
+ SetVBlankHBlankCallbacksToNull();
+ ResetVramOamAndBgCntRegs();
+ ResetAllBgsCoordinates();
+ break;
+ case 1:
+ sub_8140388();
+ DeactivateAllTextPrinters();
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE |
+ BLDCNT_TGT2_BG2 |
+ BLDCNT_TGT2_BD);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(10, 6));
+ break;
+ case 2:
+ ResetPaletteFade();
+ ResetSpriteData();
+ ResetTasks();
+ reset_temp_tile_data_buffers();
+ break;
+ case 3:
+ LoadPalette(&gUnknown_085B5BFC, 0, 0x1C0);
+ decompress_and_copy_tile_data_to_vram(1, gRouletteMenuTiles, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(2, gRouletteWheelTiles, 0, 0, 0);
+ break;
+ case 4:
+ if (free_temp_tile_data_buffers_if_possible())
+ return;
+
+ sub_8140470();
+ CopyToBgTilemapBuffer(2, gUnknown_085B5FA0, 0, 0);
+ break;
+ case 5:
+ sub_8142C0C(0);
+ sub_81439C8();
+ sub_814391C();
+ sub_8143314();
+ sub_8142CD0();
+ sub_8142F7C();
+ sub_81431E4();
+ break;
+ case 6:
+ AnimateSprites();
+ BuildOamBuffer();
+ sub_8143514(GetCoins());
+ sub_814372C(6);
+ sub_81436D0(0);
+ sub_81424FC(0);
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5B89, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ gSpriteCoordOffsetX = -60;
+ gSpriteCoordOffsetY = 0;
+ break;
+ case 7:
+ SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 |
+ DISPCNT_OBJ_1D_MAP |
+ DISPCNT_OBJ_ON);
+ CopyBgTilemapBufferToVram(1);
+ CopyBgTilemapBufferToVram(2);
+ ShowBg(0);
+ ShowBg(1);
+ ShowBg(2);
+ break;
+ case 8:
+ EnableInterrupts(INTR_FLAG_VBLANK);
+ SetVBlankCallback(sub_8140264);
+ BeginHardwarePaletteFade(0xFF, 0, 16, 0, 1);
+ taskId = gUnknown_0203AB88->varA4 = CreateTask(sub_81408A8, 0);
+ gTasks[taskId].data[6] = 6;
+ gTasks[taskId].data[13] = GetCoins();
+ sub_80EDE84(GetCoins());
+ gUnknown_0203AB88->varA5 = CreateTask(sub_8140814, 1);
+ SetMainCallback2(sub_8140238);
+ return;
+ }
+ gMain.state++;
+}
+
+static void sub_8140814(u8 unused)
+{
+ s16 sin;
+ s16 cos;
+
+ if (gUnknown_0203AB88->var21++ == gUnknown_0203AB88->var23)
+ {
+ gUnknown_0203AB88->var21 = 0;
+ if ((gUnknown_0203AB88->var24 -= gUnknown_0203AB88->var22) < 0)
+ gUnknown_0203AB88->var24 = 360 - gUnknown_0203AB88->var22;
+ }
+ sin = Sin2(gUnknown_0203AB88->var24);
+ cos = Cos2(gUnknown_0203AB88->var24);
+ sin = sin / 16;
+ gUnknown_0203AB88->var2C.a = gUnknown_0203AB88->var2C.d = cos / 16;
+ gUnknown_0203AB88->var2C.b = sin;
+ gUnknown_0203AB88->var2C.c = -sin;
+}
+
+static void sub_81408A8(u8 taskId)
+{
+ if (UpdatePaletteFade() == 0)
+ {
+ SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_EFFECT_NONE |
+ BLDCNT_TGT2_BG2 |
+ BLDCNT_TGT2_BD);
+ SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(8, 8));
+ gTasks[taskId].data[6] = 0;
+ sub_8141FF4(taskId);
+ sub_8142070();
+ sub_8143A40();
+ sub_81424FC(0);
+ sub_814372C(6);
+ sub_8141F7C(taskId, sub_8140968, 0xFFFF, 0x3);
+ }
+}
+
+static void sub_8140914(u8 taskId)
+{
+ DisplayYesNoMenu();
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, 0);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C13, 0, 1, TEXT_SPEED_FF, 0);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_085B6410);
+}
+
+static void sub_8140968(u8 taskId)
+{
+ sub_819746C(0, TRUE);
+ gTasks[taskId].func = sub_8140BD0;
+}
+
+static void sub_8140994(u8 taskId)
+{
+ DestroyTask(gUnknown_0203AB88->varA5);
+ sub_8141DE4(taskId);
+}
+
+static void sub_81409B8(u8 r0)
+{
+ u8 temp0, temp1;
+ switch (r0)
+ {
+ case 0:
+ sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13);
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 4:
+ temp0 = (r0 * 3 + 14);
+ sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13);
+ sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[281], temp0, 7, 3, 13);
+ break;
+ case 0x5:
+ case 0xA:
+ case 0xF:
+ temp1 = ((r0 - 1) / 5 * 3 + 10);
+ sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13);
+ sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[320], 14, temp1, 16, 3);
+ break;
+ default:
+ temp0 = ((r0 % 5) * 3 + 14);
+ temp1 = ((r0 - 1) / 5 * 3 + 7);
+ sub_8152008(&gUnknown_0203AB88->tilemapBuffers[0][0], 0, 14, 7, 16, 13);
+ sub_8152058(&gUnknown_0203AB88->tilemapBuffers[0][0], &gUnknown_0203AB88->unk_397C[272], temp0, temp1, 3, 3);
+ break;
+ }
+}
+
+static void sub_8140B64(u8 taskId)
+{
+ sub_81436D0(gTasks[taskId].data[4]);
+ sub_81409B8(gTasks[taskId].data[4]);
+}
+
+static void sub_8140B8C(u8 taskId)
+{
+ gUnknown_0203AB88->var28 = 1;
+ sub_81409B8(gTasks[taskId].data[4]);
+ gUnknown_0203AB88->var23 = 2;
+ gUnknown_0203AB88->var21 = 0;
+ gTasks[taskId].func = sub_8141040;
+}
+
+static void sub_8140BD0(u8 taskId)
+{
+ s16 i;
+
+ if (gUnknown_0203AB88->var08 & 0x20)
+ {
+ for (i = 11; i < 14; i++)
+ {
+ if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0)
+ break;
+ }
+ }
+ else
+ {
+ for (i = 6; i < 10; i++)
+ {
+ if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08) == 0)
+ break;
+ }
+ }
+ gTasks[taskId].data[4] = i;
+ sub_8141FF4(taskId);
+ sub_81424FC(gTasks[taskId].data[4]);
+ sub_81436D0(gTasks[taskId].data[4]);
+ sub_8142284(gTasks[taskId].data[4]);
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_8140B8C;
+}
+
+static u8 sub_8140CA8(s16 *r0, u8 r1)
+{
+ s8 temp1 = 0;
+ s8 temp = 0;
+ s8 arr[4] = {-5, 5, -1, 1};
+ s8 t = *r0;
+
+ switch (r1)
+ {
+ case 0:
+ case 1:
+ temp1 = (*r0 % 5);
+ temp = temp1 + 15;
+ if (temp1 == 0)
+ temp1 = 5;
+ break;
+ case 2:
+ case 3:
+ temp1 = (*r0 / 5) * 5;
+ temp = temp1 + 4;
+ if (temp1 == 0)
+ temp1 = 1;
+ break;
+ }
+
+ *r0 += arr[r1];
+
+ if (*r0 < temp1)
+ *r0 = temp;
+
+ if (*r0 > temp)
+ *r0 = temp1;
+
+ if (*r0 != t)
+ return TRUE;
+
+ return FALSE;
+}
+
+static void sub_8140D6C(u8 r0)
+{
+ u8 z = 0;
+ bool8 var0 = FALSE;
+ if (!(gMain.newKeys & DPAD_UP) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 0)))
+ if (!(gMain.newKeys & DPAD_DOWN) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 1)))
+ if (!(gMain.newKeys & DPAD_LEFT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 2)))
+ if (!(gMain.newKeys & DPAD_RIGHT) || ((var0 = TRUE), sub_8140CA8(&gTasks[r0].data[4], 3)))
+ if (var0)
+ {
+ u8 i;
+ sub_81424FC(gTasks[r0].data[4]);
+ sub_8140B64(r0);
+ gTasks[r0].data[1] = z;
+ PlaySE(SE_SELECT);
+ sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF);
+ gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0;
+ sub_8142284(gTasks[r0].data[4]);
+ for (i = 0; i < 4; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type;
+ }
+ if ((u16)(gTasks[r0].data[4] - 1) < 4 && !(gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[r0].data[4]].var08) )
+ {
+ z = gTasks[r0].data[4] - 1;
+ gSprites[gUnknown_0203AB88->var3C[z + 41]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[z + 41]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[z + 41]].anims + 1)->type;
+ }
+ }
+}
+
+static void sub_8140F6C(u8 r0)
+{
+ sub_80EECA4();
+ gUnknown_0203AB88->var28 = 0xFF;
+ if (gUnknown_0203AB88->var19 == 1)
+ gUnknown_0203AB88->var23 = 1;
+ else
+ gUnknown_0203AB88->var23 = 0;
+ gUnknown_0203AB88->var21 = 0;
+ gTasks[r0].data[1] = 32;
+ gTasks[r0].func = sub_81410FC;
+}
+
+static void sub_8140FC4(u8 taskId)
+{
+ gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = gTasks[taskId].data[4];
+ gTasks[taskId].data[2] = sub_8142758(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]);
+ sub_81436D0(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]);
+ if ((gTasks[taskId].data[13] -= gUnknown_0203AB88->var19) < 0)
+ gTasks[taskId].data[13] = 0;
+ sub_8143514(gTasks[taskId].data[13]);
+ gTasks[taskId].func = sub_8140F6C;
+}
+
+static void sub_8141040(u8 taskId)
+{
+ sub_8140D6C(taskId);
+
+ switch (gTasks[taskId].data[1])
+ {
+ case 0:
+ sub_81409B8(gTasks[taskId].data[4]);
+ gTasks[taskId].data[1]++;
+ break;
+ case 30:
+ sub_81409B8(0);
+ gTasks[taskId].data[1]++;
+ break;
+ case 59:
+ gTasks[taskId].data[1] = 0;
+ break;
+ default:
+ gTasks[taskId].data[1]++;
+ }
+
+ if (gMain.newKeys & A_BUTTON)
+ {
+ if ((gUnknown_0203AB88->var08 & gUnknown_085B6154[gTasks[taskId].data[4]].var08))
+ PlaySE(SE_BOO);
+ else
+ {
+ m4aSongNumStart(SE_REGI);
+ gTasks[taskId].func = sub_8140FC4;
+ }
+ }
+}
+
+static void sub_81410FC(u8 taskId)
+{
+ if (gTasks[taskId].data[1]-- > 0)
+ {
+ if (gTasks[taskId].data[1] > 2)
+ gSpriteCoordOffsetX += 2;
+ if ((gUnknown_0203AB88->var26 += 4) == 104)
+ gSprites[gUnknown_0203AB88->var3C[25]].callback = &SpriteCallbackDummy;
+ }
+ else
+ {
+ sub_8142E70(1, -1);
+ sub_8143038(1, -1);
+ gTasks[taskId].func = sub_8141344;
+ gTasks[taskId].data[1] = 0;
+ }
+}
+
+static u8 sub_814118C(u16 r0, u16 r1)
+{
+ switch (gUnknown_0203AB88->var02)
+ {
+ case 1: // SHROOMISH
+ case 2: // TAILLOW
+ // one of the two is in party
+ if (gLocalTime.hours > 3 && gLocalTime.hours < 10)
+ {
+ if (r0 < 12 || (r1 & 1))
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ else if (!(r1 & 0x3))
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02;
+ }
+ break;
+ case 3:
+ // both are in party
+ if (gLocalTime.hours > 3 && gLocalTime.hours < 11)
+ {
+ if (r0 < 6 || (r1 & 1))
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ else
+ {
+ return 1;
+ }
+ }
+ else if ((r1 & 1) && r0 > 6)
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 4;
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ break;
+ case 0:
+ default:
+ // neither is in party
+ if (gLocalTime.hours > 3 && gLocalTime.hours < 10)
+ {
+ if (!(r1 & 3))
+ {
+ return 1;
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ }
+ else if (!(r1 & 3))
+ {
+ if (r0 > 12)
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 / 2;
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02;
+ }
+ }
+ else if (r1 & 0x8000)
+ {
+ if (r0 > 12)
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02;
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01;
+ }
+ }
+ else
+ {
+ return gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 * 2;
+ }
+ break;
+ }
+}
+
+// r7/r8 swap
+#ifdef NONMATCHING
+static void sub_8141344(u8 taskId)
+{
+ u8 randf;
+ s8 randfinal;
+ s8 r5;
+ u16 g = 0;
+ u16 rand;
+ u16 randmod;
+ u16 angles[4] = {0, 180, 90, 270}; // angles in 90 degree steps
+
+ rand = Random();
+ randmod = rand % 100;
+ gUnknown_0203AB88->var7C = gTasks[taskId].data[6];
+ gUnknown_0203AB88->var7D = gUnknown_0203AB88->var7E = gUnknown_0203AB88->var7F = g;
+ randf = sub_814118C(gTasks[taskId].data[8], rand);
+ randfinal = (rand % randf) - (randf / 2);
+
+ if (gLocalTime.hours < 13)
+ r5 = 0;
+ else
+ r5 = 1;
+
+ if (randmod < 80)
+ r5 *= 2;
+ else
+ r5 = (1 - r5) * 2;
+
+ gUnknown_0203AB88->var80 = g = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1A + randfinal;
+
+ g = S16TOPOSFLOAT(g) / 5.0f;
+ gUnknown_0203AB88->var82 = g * 3;
+ gUnknown_0203AB88->var84 = g;
+ gUnknown_0203AB88->var86 = g;
+
+ gUnknown_0203AB88->var88 = S16TOPOSFLOAT(angles[(rand & 1) + r5]);
+ gUnknown_0203AB88->var8C = S16TOPOSFLOAT(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var18);
+ gUnknown_0203AB88->var90 = ((gUnknown_0203AB88->var8C * 0.5f) - gUnknown_0203AB88->var8C) / S16TOPOSFLOAT(gUnknown_0203AB88->var82);
+ gUnknown_0203AB88->var94 = 68.0f;
+ gUnknown_0203AB88->var9C = 0.0f;
+ gUnknown_0203AB88->var98 = -(8.0f / S16TOPOSFLOAT(gUnknown_0203AB88->var82));
+ gUnknown_0203AB88->varA0 = 36.0f;
+ gTasks[taskId].func = sub_814155C;
+}
+#else
+static const u16 gUnknown_085B6422[4] = {0, 180, 90, 270};
+NAKED
+static void sub_8141344(u8 taskId)
+{
+ asm_unified(" push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x8\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r10, r0\n\
+ movs r4, 0\n\
+ ldr r1, =gUnknown_085B6422\n\
+ mov r0, sp\n\
+ movs r2, 0x8\n\
+ bl memcpy\n\
+ bl Random\n\
+ lsls r0, 16\n\
+ lsrs r7, r0, 16\n\
+ adds r0, r7, 0\n\
+ movs r1, 0x64\n\
+ bl __umodsi3\n\
+ lsls r0, 16\n\
+ lsrs r6, r0, 16\n\
+ ldr r3, =gUnknown_0203AB88\n\
+ ldr r0, [r3]\n\
+ ldr r2, =gTasks\n\
+ mov r5, r10\n\
+ lsls r1, r5, 2\n\
+ add r1, r10\n\
+ lsls r1, 3\n\
+ adds r1, r2\n\
+ ldrh r2, [r1, 0x14]\n\
+ adds r0, 0x7C\n\
+ strb r2, [r0]\n\
+ ldr r0, [r3]\n\
+ adds r2, r0, 0\n\
+ adds r2, 0x7F\n\
+ strb r4, [r2]\n\
+ subs r2, 0x1\n\
+ strb r4, [r2]\n\
+ adds r0, 0x7D\n\
+ strb r4, [r0]\n\
+ ldrh r0, [r1, 0x18]\n\
+ adds r1, r7, 0\n\
+ bl sub_814118C\n\
+ adds r4, r0, 0\n\
+ lsls r4, 24\n\
+ lsrs r1, r4, 24\n\
+ adds r0, r7, 0\n\
+ bl __modsi3\n\
+ lsrs r4, 25\n\
+ subs r0, r4\n\
+ lsls r0, 24\n\
+ lsrs r4, r0, 24\n\
+ ldr r0, =gLocalTime\n\
+ ldrb r0, [r0, 0x2]\n\
+ lsls r0, 24\n\
+ asrs r0, 24\n\
+ movs r5, 0x1\n\
+ cmp r0, 0xC\n\
+ bgt _081413C8\n\
+ movs r5, 0\n\
+_081413C8:\n\
+ cmp r6, 0x4F\n\
+ bhi _081413E0\n\
+ lsls r0, r5, 25\n\
+ b _081413EA\n\
+ .pool\n\
+_081413E0:\n\
+ lsls r1, r5, 24\n\
+ asrs r1, 24\n\
+ movs r0, 0x1\n\
+ subs r0, r1\n\
+ lsls r0, 25\n\
+_081413EA:\n\
+ lsrs r5, r0, 24\n\
+ ldr r0, _08141530 @ =gUnknown_0203AB88\n\
+ ldr r6, [r0]\n\
+ ldrb r0, [r6, 0x4]\n\
+ lsls r0, 30\n\
+ lsrs r0, 25\n\
+ ldr r1, _08141534 @ =gUnknown_085B6348\n\
+ adds r0, r1\n\
+ lsls r4, 24\n\
+ asrs r4, 24\n\
+ ldrh r0, [r0, 0x1A]\n\
+ adds r4, r0\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x80\n\
+ strh r4, [r0]\n\
+ lsls r4, 16\n\
+ asrs r4, 16\n\
+ adds r0, r4, 0\n\
+ bl __floatsisf\n\
+ cmp r4, 0\n\
+ bge _0814141C\n\
+ ldr r1, _08141538 @ =0x47800000\n\
+ bl __addsf3\n\
+_0814141C:\n\
+ ldr r1, _0814153C @ =0x40A00000\n\
+ bl __divsf3\n\
+ bl __fixunssfsi\n\
+ lsls r0, 16\n\
+ lsrs r4, r0, 16\n\
+ lsls r0, r4, 1\n\
+ adds r0, r4\n\
+ movs r2, 0x82\n\
+ adds r2, r6\n\
+ mov r8, r2\n\
+ strh r0, [r2]\n\
+ adds r0, r6, 0\n\
+ adds r0, 0x84\n\
+ strh r4, [r0]\n\
+ adds r0, 0x2\n\
+ strh r4, [r0]\n\
+ movs r0, 0x88\n\
+ adds r0, r6\n\
+ mov r9, r0\n\
+ movs r0, 0x1\n\
+ ands r0, r7\n\
+ lsls r1, r5, 24\n\
+ asrs r1, 24\n\
+ adds r0, r1\n\
+ lsls r0, 1\n\
+ add r0, sp\n\
+ movs r1, 0\n\
+ ldrsh r4, [r0, r1]\n\
+ adds r0, r4, 0\n\
+ bl __floatsisf\n\
+ cmp r4, 0\n\
+ bge _08141468\n\
+ ldr r1, _08141538 @ =0x47800000\n\
+ bl __addsf3\n\
+_08141468:\n\
+ mov r2, r9\n\
+ str r0, [r2]\n\
+ adds r7, r6, 0\n\
+ adds r7, 0x8C\n\
+ ldrb r0, [r6, 0x4]\n\
+ lsls r0, 30\n\
+ lsrs r0, 25\n\
+ ldr r5, _08141534 @ =gUnknown_085B6348\n\
+ adds r0, r5\n\
+ movs r1, 0x18\n\
+ ldrsh r4, [r0, r1]\n\
+ adds r0, r4, 0\n\
+ bl __floatsisf\n\
+ adds r5, r0, 0\n\
+ cmp r4, 0\n\
+ bge _08141492\n\
+ ldr r1, _08141538 @ =0x47800000\n\
+ bl __addsf3\n\
+ adds r5, r0, 0\n\
+_08141492:\n\
+ str r5, [r7]\n\
+ adds r7, r6, 0\n\
+ adds r7, 0x90\n\
+ ldr r1, _08141540 @ =0x3F000000\n\
+ adds r0, r5, 0\n\
+ bl __mulsf3\n\
+ adds r1, r5, 0\n\
+ bl __subsf3\n\
+ adds r5, r0, 0\n\
+ mov r2, r8\n\
+ movs r0, 0\n\
+ ldrsh r4, [r2, r0]\n\
+ adds r0, r4, 0\n\
+ bl __floatsisf\n\
+ adds r2, r0, 0\n\
+ cmp r4, 0\n\
+ bge _081414C2\n\
+ ldr r1, _08141538 @ =0x47800000\n\
+ bl __addsf3\n\
+ adds r2, r0, 0\n\
+_081414C2:\n\
+ adds r0, r5, 0\n\
+ adds r1, r2, 0\n\
+ bl __divsf3\n\
+ str r0, [r7]\n\
+ adds r1, r6, 0\n\
+ adds r1, 0x94\n\
+ ldr r0, _08141544 @ =0x42880000\n\
+ str r0, [r1]\n\
+ adds r1, 0x8\n\
+ ldr r0, _08141548 @ =0x00000000\n\
+ str r0, [r1]\n\
+ adds r5, r6, 0\n\
+ adds r5, 0x98\n\
+ mov r1, r8\n\
+ movs r2, 0\n\
+ ldrsh r4, [r1, r2]\n\
+ adds r0, r4, 0\n\
+ bl __floatsisf\n\
+ adds r2, r0, 0\n\
+ cmp r4, 0\n\
+ bge _081414F8\n\
+ ldr r1, _08141538 @ =0x47800000\n\
+ bl __addsf3\n\
+ adds r2, r0, 0\n\
+_081414F8:\n\
+ ldr r0, _0814154C @ =0x41000000\n\
+ adds r1, r2, 0\n\
+ bl __divsf3\n\
+ bl __negsf2\n\
+ str r0, [r5]\n\
+ adds r1, r6, 0\n\
+ adds r1, 0xA0\n\
+ ldr r0, _08141550 @ =0x42100000\n\
+ str r0, [r1]\n\
+ ldr r1, _08141554 @ =gTasks\n\
+ mov r5, r10\n\
+ lsls r0, r5, 2\n\
+ add r0, r10\n\
+ lsls r0, 3\n\
+ adds r0, r1\n\
+ ldr r1, _08141558 @ =sub_814155C\n\
+ str r1, [r0]\n\
+ add sp, 0x8\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .align 2, 0\n\
+_08141530:\n\
+ .4byte gUnknown_0203AB88\n\
+_08141534:\n\
+ .4byte gUnknown_085B6348\n\
+_08141538:\n\
+ .4byte 0x47800000\n\
+_0814153C:\n\
+ .4byte 0x40A00000\n\
+_08141540:\n\
+ .4byte 0x3F000000\n\
+_08141544:\n\
+ .4byte 0x42880000\n\
+_08141548:\n\
+ .4byte 0x00000000\n\
+_0814154C:\n\
+ .4byte 0x41000000\n\
+_08141550:\n\
+ .4byte 0x42100000\n\
+_08141554:\n\
+ .4byte gTasks\n\
+_08141558:\n\
+ .4byte sub_814155C");
+}
+#endif // NONMATCHING
+
+static void sub_814155C(u8 taskId)
+{
+ u8 index;
+ gUnknown_0203AB88->var03_7 = 1;
+ index = gUnknown_0203AB88->var3C[gUnknown_0203AB88->var7C];
+ gUnknown_0203AB88->var38 = &gSprites[index];
+ gUnknown_0203AB88->var38->callback = sub_81446AC;
+ gTasks[taskId].data[6]++;
+ gTasks[taskId].data[0x8]++;
+ sub_814372C(6 - gTasks[taskId].data[6]);
+ m4aSongNumStart(SE_TAMAKORO);
+ gTasks[taskId].func = sub_81415D4;
+}
+
+static void sub_81415D4(u8 taskId)
+{
+ if (gUnknown_0203AB88->var7D)
+ {
+ if (gUnknown_0203AB88->var03_5)
+ {
+ if (gUnknown_0203AB88->var03_6)
+ {
+ gUnknown_0203AB88->var03_6 = FALSE;
+ gUnknown_0203AB88->var03_5 = FALSE;
+ }
+ }
+ else
+ {
+ if (!gTasks[taskId].data[1])
+ {
+ bool8 temp = sub_81421E8(sub_81420D0(taskId, gUnknown_0203AB88->var7E), gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]);
+ gTasks[taskId].data[5] = temp;
+ if (temp == TRUE)
+ sub_8151A48(&gUnknown_0203AB88->varB8, 0x1000);
+ }
+ if (gTasks[taskId].data[1] <= 60)
+ {
+ if (gMain.newKeys & A_BUTTON)
+ gTasks[taskId].data[1] = 60;
+ gTasks[taskId].data[1]++;
+ }
+ else
+ {
+ sub_81424FC(gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]);
+ sub_8142E70(0, gTasks[taskId].data[12]);
+ sub_8143038(0, gTasks[taskId].data[6] - 1);
+ gTasks[taskId].data[1] = 32;
+ gTasks[taskId].func = sub_81416D4;
+ }
+ }
+ }
+}
+
+static void sub_81416D4(u8 taskId)
+{
+ if (gTasks[taskId].data[1]-- > 0)
+ {
+ if (gTasks[taskId].data[1] > 2)
+ gSpriteCoordOffsetX -= 2;
+ if ((gUnknown_0203AB88->var26 -= 4) == 104)
+ gSprites[gUnknown_0203AB88->var3C[25]].callback = sub_814390C;
+ }
+ else
+ {
+ sub_8143150(gTasks[taskId].data[12]);
+ if (gTasks[taskId].data[5] == 1)
+ gTasks[taskId].data[1] = 121;
+ else
+ gTasks[taskId].data[1] = 61;
+ gTasks[taskId].func = sub_8141778;
+ }
+}
+
+static void sub_8141778(u8 taskId)
+{
+ if (gTasks[taskId].data[1]-- > 1)
+ {
+ switch (gTasks[taskId].data[1] % 16)
+ {
+ case 8:
+ sub_8142E70(0, -1);
+ sub_8143038(0, -1);
+ break;
+ case 0:
+ sub_8142E70(0, gTasks[taskId].data[12]);
+ sub_8143038(0, gTasks[taskId].data[6] - 1);
+ break;
+ }
+ }
+ else
+ {
+ sub_8141F7C(taskId, sub_814189C, 30, 0);
+ }
+}
+
+static void sub_8141800(u8 taskId)
+{
+ switch (gTasks[taskId].data[0x5])
+ {
+ case 1:
+ case 2:
+ if (IsFanfareTaskInactive())
+ {
+ u32 wins = GetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS);
+ if (wins < ++gTasks[taskId].data[11])
+ SetGameStat(GAME_STAT_CONSECUTIVE_ROULETTE_WINS, gTasks[taskId].data[11]);
+ sub_8141F7C(taskId, sub_8141A18, 0xFFFF, 3);
+ }
+ break;
+ case 0:
+ default:
+ if (!IsSEPlaying())
+ {
+ gTasks[taskId].data[11] = FALSE;
+ sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3);
+ }
+ break;
+ }
+}
+
+static void sub_814189C(u8 taskId)
+{
+ switch (gTasks[taskId].data[5])
+ {
+ case 1:
+ case 2:
+ if (gTasks[taskId].data[2] == 12)
+ {
+ PlayFanfare(MUS_ME_B_BIG);
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BD7, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ }
+ else
+ {
+ PlayFanfare(MUS_ME_B_SMALL);
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BCB, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ }
+ break;
+ case 0:
+ default:
+ m4aSongNumStart(SE_HAZURE);
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5BE0, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ break;
+ }
+ gTasks[taskId].data[1] = 0;
+ gTasks[taskId].func = sub_8141800;
+}
+
+static void sub_8141984(u8 taskId)
+{
+ s32 r0 = gTasks[taskId].data[7];
+ switch (r0)
+ {
+ case 0:
+ gTasks[taskId].data[13]++;
+ m4aSongNumStart(SE_PIN);
+ sub_8143514(gTasks[taskId].data[13]);
+ if (gTasks[taskId].data[13] >= 9999)
+ {
+ gTasks[taskId].data[1] = r0;
+ }
+ else
+ {
+ gTasks[taskId].data[1]--;
+ gTasks[taskId].data[7]++;
+ }
+ break;
+ case 3:
+ m4aSongNumStop(SE_PIN);
+ gTasks[taskId].data[7] = 0;
+ break;
+ default:
+ gTasks[taskId].data[7]++;
+ break;
+ }
+ if (gTasks[taskId].data[1] == 0)
+ sub_8141F7C(taskId, sub_8141AC0, 0xFFFF, 3);
+}
+
+static void sub_8141A18(u8 taskId)
+{
+ ConvertIntToDecimalStringN(gStringVar1, (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]), STR_CONV_MODE_LEFT_ALIGN, 2);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082A5BEF);
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ gTasks[taskId].data[1] = (gUnknown_0203AB88->var19 * gTasks[taskId].data[2]);
+ gTasks[taskId].data[7] = 0;
+ gTasks[taskId].func = sub_8141984;
+}
+
+static void sub_8141AC0(u8 taskId)
+{
+ sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF);
+ gUnknown_0203AB88->varB8.var04[13].var00_7 = gUnknown_0203AB88->varB8.var04[14].var00_7 = gUnknown_0203AB88->varB8.var04[15].var00_7 = 0;
+ gSprites[gUnknown_0203AB88->var3C[7 + gUnknown_085B6154[gTasks[taskId].data[12]].var00]].invisible = TRUE;
+ gTasks[taskId].func = sub_8141B58;
+}
+
+static void sub_8141B58(u8 taskId)
+{
+ u8 i = 0;
+ gTasks[taskId].data[4] = i;
+ gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0] = 0;
+ sub_81424FC(0);
+ gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE;
+ for (i = 0; i < 4; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 41]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[i + 41]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[i + 41]].anims)->type;
+ }
+ if (gTasks[taskId].data[13] >= gUnknown_0203AB88->var19)
+ {
+ if (gTasks[taskId].data[6] == 6)
+ {
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C21, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ sub_8141F7C(taskId, dp01t_12_3_battle_menu, 0xFFFF, 3);
+ }
+ else if (gTasks[taskId].data[13] == 9999)
+ {
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C61, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ sub_8141F7C(taskId, sub_8140914, 0xFFFF, 0x3);
+ }
+ else
+ {
+ gTasks[taskId].func = sub_8140914;
+ }
+ }
+ else
+ {
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C04, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ sub_8141F7C(taskId, sub_8140994, 0x3C, 0x3);
+ }
+}
+
+static void dp01t_12_3_battle_menu(u8 taskId)
+{
+ u8 i = 0;
+
+ gTasks[taskId].data[6] = 0;
+ sub_8141FF4(taskId);
+ sub_8142070();
+ sub_8143A40();
+ sub_81424FC(0);
+ sub_814372C(6);
+
+ for (i = 0; i < 12; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 7]].invisible = FALSE;
+ }
+
+ if (gTasks[taskId].data[13] == 9999)
+ {
+ NewMenuHelpers_DrawStdWindowFrame(gUnknown_0203AB8C, FALSE);
+ AddTextPrinterParameterized(gUnknown_0203AB8C, 1, gUnknown_082A5C61, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(gUnknown_0203AB8C, 3);
+ sub_8141F7C(taskId, sub_8140914, 0xFFFF, 3);
+ }
+ else
+ {
+ gTasks[taskId].func = sub_8140914;
+ }
+}
+
+static void sub_8141DE4(u8 taskId)
+{
+ sub_8151A9C(&gUnknown_0203AB88->varB8, 0xFFFF);
+ sub_8151678(&gUnknown_0203AB88->varB8);
+ SetCoins(gTasks[taskId].data[13]);
+ if (GetCoins() < gUnknown_0203AB88->var19)
+ gSpecialVar_0x8004 = TRUE;
+ else
+ gSpecialVar_0x8004 = FALSE;
+ sub_80EDD78(GetCoins());
+ BeginHardwarePaletteFade(0xFF, 0, 0, 16, 0);
+ gTasks[taskId].func = sub_8141E7C;
+}
+
+static void sub_8141E7C(u8 taskId) // end roulette ?
+{
+ if (UpdatePaletteFade() == 0)
+ {
+ SetVBlankCallback(NULL);
+ gSpriteCoordOffsetX = gSpriteCoordOffsetY = 0;
+ ResetVramOamAndBgCntRegs();
+ ResetAllBgsCoordinates();
+ SetGpuReg(REG_OFFSET_BLDCNT, 0);
+ SetGpuReg(REG_OFFSET_BLDALPHA, 0);
+ SetGpuReg(REG_OFFSET_BLDY, 0);
+ FreeAllSpritePalettes();
+ ResetPaletteFade();
+ ResetSpriteData();
+ sub_8140418();
+ gFieldCallback = sub_80AF168;
+ SetMainCallback2(CB2_ReturnToField);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_8141EF8(u8 taskId)
+{
+ if (gUnknown_0203AB88->varA8 == 0 || gMain.newKeys & gUnknown_0203AB88->varAA)
+ {
+ gTasks[taskId].func = gUnknown_0203AB88->varAC;
+ if (gUnknown_0203AB88->varAA > 0)
+ PlaySE(SE_SELECT);
+ gUnknown_0203AB88->varAC = NULL;
+ gUnknown_0203AB88->varAA = 0;
+ gUnknown_0203AB88->varA8 = 0;
+ }
+ if (gUnknown_0203AB88->varA8 != 0xFFFF)
+ gUnknown_0203AB88->varA8--;
+}
+
+static void sub_8141F7C(u8 taskId, TaskFunc r1, u16 r2, u16 r3)
+{
+ gUnknown_0203AB88->varB4 = gTasks[taskId].func;
+ if (r1 == NULL)
+ r1 = gUnknown_0203AB88->varB4;
+ gUnknown_0203AB88->varAC = r1;
+ gUnknown_0203AB88->varA8 = r2;
+ if (r2 == 0xFFFF && r3 == 0)
+ gUnknown_0203AB88->varAA = 0xFFFF;
+ else
+ gUnknown_0203AB88->varAA = r3;
+ gTasks[taskId].func = sub_8141EF8;
+}
+
+static void sub_8141FF4(u8 taskId)
+{
+ u8 i = 0;
+ gUnknown_0203AB88->var00 = i;
+ gUnknown_0203AB88->var03_7 = 0;
+ gUnknown_0203AB88->var03_5 = 0;
+ gUnknown_0203AB88->var03_6 = 0;
+ gUnknown_0203AB88->var03_0 = 0;
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_0203AB88->var1B[i] = 0;
+ }
+ gUnknown_0203AB88->var1A_0 = 0;
+ gTasks[taskId].data[1] = 0;
+}
+
+static void sub_8142070(void)
+{
+ u8 i;
+ gUnknown_0203AB88->var08 = 0;
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_0203AB88->var0C[i] = 0;
+ }
+ for (i = 0; i < 4; i++)
+ {
+ gUnknown_0203AB88->var12[i] = 0;
+ }
+ for (i = 0; i < 3; i++)
+ {
+ gUnknown_0203AB88->var16[i] = 0;
+ }
+ sub_8143038(1, -1);
+}
+
+static u8 sub_81420D0(u8 taskId, u8 r1)
+{
+ u8 i;
+ u8 z;
+ u32 t0[4] = {0x10842, 0x21084, 0x42108, 0x84210};
+ u32 t1[3] = {0x3E0, 0x7C00, 0xF8000};
+
+ if (r1 > 11)
+ return 0;
+
+ gUnknown_0203AB88->var0C[gTasks[taskId].data[6] - 1] = gUnknown_085B62E4[r1].var02;
+ gTasks[taskId].data[12] = gUnknown_085B62E4[r1].var02;
+ gUnknown_0203AB88->var08 |= gUnknown_085B62E4[r1].var04;
+ for (i = 0; i < 4; i++)
+ {
+ if (gUnknown_085B62E4[r1].var04 & t0[i])
+ gUnknown_0203AB88->var12[i]++;
+ if (gUnknown_0203AB88->var12[i] > 2)
+ gUnknown_0203AB88->var08 |= t0[i];
+ }
+ for (z = 0; z < 3; z++)
+ {
+ if (gUnknown_085B62E4[r1].var04 & t1[z])
+ gUnknown_0203AB88->var16[z]++;
+ if (gUnknown_0203AB88->var16[z] > 3)
+ gUnknown_0203AB88->var08 |= t1[z];
+ }
+ return gUnknown_085B62E4[r1].var02;
+}
+
+static bool8 sub_81421E8(u8 r0, u8 r1)
+{
+ u8 t = r0;
+ if (--r0 < 19)
+ {
+ switch (r1)
+ {
+ case 0:
+ return 3;
+ case 1 ... 4:
+ if (t == r1 + 5 || t == r1 + 10 || t == r1 + 15)
+ return TRUE;
+ break;
+ case 5:
+ case 10:
+ case 15:
+ if (t >= (r1 + 1) && t <= (r1 + 4))
+ return TRUE;
+ break;
+ default:
+ if (t == r1)
+ return TRUE;
+ }
+ }
+ return FALSE;
+}
+
+static void sub_8142284(u8 r0)
+{
+
+ u16 var0 = 0;
+ u8 var2;
+ u16 var3;
+ u8 i;
+
+ switch (r0)
+ {
+ case 5:
+ case 10:
+ case 15:
+ for (i = (r0 + 1); i < (r0 + 5); i++)
+ {
+ if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[i].var08))
+ var0 |= gUnknown_085B6154[i].var10;
+ }
+ sub_8151A48(&gUnknown_0203AB88->varB8, var0 &= 0xDFFF);
+ break;
+ default:
+ {
+ struct UnkStruct1 var1[3];
+ memcpy(var1, gUnknown_085B63F0, sizeof(var1));
+ if (r0 > 0 && r0 < 5)
+ var2 = 3;
+ else
+ var2 = 1;
+ var3 = r0 / 5 - 1;
+ switch (r0 % 5)
+ {
+ case 1:
+ var3 = gSprites[gUnknown_0203AB88->var3C[7]].oam.paletteNum * 16;
+ break;
+ case 2:
+ var3 = gSprites[gUnknown_0203AB88->var3C[8]].oam.paletteNum * 16;
+ break;
+ case 3:
+ var3 = gSprites[gUnknown_0203AB88->var3C[9]].oam.paletteNum * 16;
+ break;
+ case 4:
+ var3 = gSprites[gUnknown_0203AB88->var3C[10]].oam.paletteNum * 16;
+ break;
+ }
+ if (var2 == 1)
+ {
+ if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08))
+ {
+ var1[r0 / 5 - 1].var02 += var3;
+ sub_815168C(&gUnknown_0203AB88->varB8, 13, &var1[r0 / 5 - 1]);
+ }
+ else
+ {
+ break;
+ }
+ }
+ else
+ {
+ for (i = 0; i < 3; i++)
+ {
+ u8 var4 = i * 5 + r0 + 5;
+ if (!(gUnknown_0203AB88->var08 & gUnknown_085B6154[var4].var08))
+ {
+ var1[var4 / 5 - 1].var02 += var3;
+ sub_815168C(&gUnknown_0203AB88->varB8, i + 13, &var1[var4 / 5 - 1]);
+ if (var2 == 3)
+ var0 = gUnknown_085B6154[var4].var10;
+ var2--;
+ }
+ }
+ if (var2 != 2)
+ var0 = 0;
+ }
+ sub_8151A48(&gUnknown_0203AB88->varB8, var0 |= gUnknown_085B6154[r0].var10);
+ break;
+ }
+ }
+}
+
+static void sub_81424FC(u8 r0)
+{
+ vu8 i;
+ vu8 z;
+ vu16 var1;
+ vu16 var2;
+ vu8 var0;
+ u8 v[5];
+ u8 l;
+ gUnknown_0203AB88->var2A = 1;
+ sub_8142E70(0, 0);
+ sub_8152058(gUnknown_0203AB88->tilemapBuffers[2], gUnknown_0203AB88->unk_397C, 14, 7, 16, 13);
+ switch (r0)
+ {
+ case 0:
+ return;
+ case 1 ... 4:
+ l = 4;
+ for (i = 0; i < l; i++)
+ {
+ v[i] = i * 5 + r0;
+ }
+ break;
+ case 5:
+ case 10:
+ case 15:
+ l = 5;
+ for (i = 0; i < l; i++)
+ {
+ v[i] = i + r0;
+ }
+ break;
+ default:
+ l = 1;
+ v[0] = r0;
+ }
+ for (i = 0; i < l; i++)
+ {
+ var0 = gUnknown_085B6154[v[i]].var06;
+ var1 = gUnknown_085B6154[v[i]].var03;
+ for (z = 0; z < 3; z++)
+ {
+ var2 = (gUnknown_085B6154[v[i]].var04 + z) * 32;
+ gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 0] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 208];
+ gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 1] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 209];
+ gUnknown_0203AB88->tilemapBuffers[2][var1 + var2 + 2] = gUnknown_0203AB88->unk_397C[(var0 + z) * 3 + 210];
+ }
+ }
+}
+
+static u8 sub_8142758(u8 r0)
+{
+ u8 var0[5] = {0, 3, 4, 6, 12};
+
+ if (r0 > 19)
+ r0 = 0;
+ switch (gUnknown_085B6154[r0].var01_0)
+ {
+ case 3:
+ r0 = r0 / 5 - 1;
+ if (gUnknown_0203AB88->var16[r0] > 3)
+ return 0;
+ return var0[gUnknown_0203AB88->var16[r0] + 1];
+ case 4:
+ r0--;
+ if (gUnknown_0203AB88->var12[r0] > 2)
+ return 0;
+ return var0[gUnknown_0203AB88->var12[r0] + 2];
+ case 12:
+ if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08)
+ return 0;
+ return var0[4];
+ }
+ return 0;
+}
+
+static void sub_8142814(void)
+{
+ s32 x1;
+ s32 x2;
+ SetGpuReg(REG_OFFSET_BG2PA, gUnknown_0203AB88->var2C.a);
+ SetGpuReg(REG_OFFSET_BG2PB, gUnknown_0203AB88->var2C.b);
+ SetGpuReg(REG_OFFSET_BG2PC, gUnknown_0203AB88->var2C.c);
+ SetGpuReg(REG_OFFSET_BG2PD, gUnknown_0203AB88->var2C.d);
+ x1 = 0x7400 - gUnknown_0203AB88->var2C.a * (gSpriteCoordOffsetX + 116)
+ - gUnknown_0203AB88->var2C.b * (gSpriteCoordOffsetY + 80);
+ x2 = 0x5400 - gUnknown_0203AB88->var2C.c * (gSpriteCoordOffsetX + 116)
+ - gUnknown_0203AB88->var2C.d * (gSpriteCoordOffsetY + 80);
+ SetGpuReg(REG_OFFSET_BG2X_L, x1);
+ SetGpuReg(REG_OFFSET_BG2X_H, (x1 & 0x0fff0000) >> 16);
+ SetGpuReg(REG_OFFSET_BG2Y_L, x2);
+ SetGpuReg(REG_OFFSET_BG2Y_H, (x2 & 0x0fff0000) >> 16);
+}
+
+static const u8 sFiller_085B644D[3] = {};
+static const u16 RouletteSpritePalette_01[] = INCBIN_U16("graphics/roulette/shadow.gbapal");
+static const u16 RouletteSpritePalette_02[] = INCBIN_U16("graphics/roulette/ball.gbapal");
+static const u16 RouletteSpritePalette_03[] = INCBIN_U16("graphics/roulette/ball_counter.gbapal");
+static const u16 RouletteSpritePalette_04[] = INCBIN_U16("graphics/roulette/cursor.gbapal");
+static const u16 RouletteSpritePalette_05[] = INCBIN_U16("graphics/roulette/credit.gbapal");
+static const u16 RouletteSpritePalette_06[] = INCBIN_U16("graphics/roulette/shroomish.gbapal");
+static const u16 RouletteSpritePalette_07[] = INCBIN_U16("graphics/roulette/tailow.gbapal");
+static const u16 RouletteSpritePalette_08[] = INCBIN_U16("graphics/roulette/poke_icons.gbapal");
+static const u16 RouletteSpritePalette_09[] = INCBIN_U16("graphics/roulette/wynaut.gbapal");
+static const u16 RouletteSpritePalette_10[] = INCBIN_U16("graphics/roulette/azurill.gbapal");
+static const u16 RouletteSpritePalette_11[] = INCBIN_U16("graphics/roulette/skitty.gbapal");
+static const u16 RouletteSpritePalette_12[] = INCBIN_U16("graphics/roulette/makuhita.gbapal");
+static const u16 RouletteSpritePalette_13[] = INCBIN_U16("graphics/roulette/85B65D0.gbapal");
+static const u16 RouletteSpritePalette_14[] = INCBIN_U16("graphics/roulette/85B65F0.gbapal");
+static const u16 RouletteSpritePalette_15[] = INCBIN_U16("graphics/roulette/85B6610.gbapal");
+static const u16 RouletteSpritePalette_16[] = INCBIN_U16("graphics/roulette/85B6630.gbapal");
+static const u32 gUnknown_085B6650[] = INCBIN_U32("graphics/roulette/ball.4bpp.lz");
+static const u32 RouletteBallCounterTiles[] = INCBIN_U32("graphics/roulette/ball_counter.4bpp.lz");
+static const u32 gUnknown_085B67FC[] = INCBIN_U32("graphics/roulette/roulette_tilt.4bpp.lz");
+static const u32 RoulettePokeIconsTiles[] = INCBIN_U32("graphics/roulette/poke_icons.4bpp.lz");
+static const u32 RoulettePokeIcons2Tiles[] = INCBIN_U32("graphics/roulette/poke_icons2.4bpp.lz");
+static const u32 gUnknown_085B7290[] = INCBIN_U32("graphics/roulette/shadow.4bpp.lz");
+static const u32 RouletteCursorTiles[] = INCBIN_U32("graphics/roulette/cursor.4bpp.lz");
+
+static const struct SpritePalette gUnknown_085B7384[] =
+{
+ { RouletteSpritePalette_01, 1 },
+ { RouletteSpritePalette_02, 2 },
+ { RouletteSpritePalette_03, 3 },
+ { RouletteSpritePalette_04, 4 },
+ { RouletteSpritePalette_05, 5 },
+ { RouletteSpritePalette_06, 6 },
+ { RouletteSpritePalette_07, 7 },
+ { RouletteSpritePalette_08, 8 },
+ { RouletteSpritePalette_09, 9 },
+ { RouletteSpritePalette_10, 10 },
+ { RouletteSpritePalette_11, 11 },
+ { RouletteSpritePalette_12, 12 },
+ {}
+};
+
+static const struct OamData gOamData_85B73EC =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 2,
+ .priority = 1,
+};
+
+static const struct OamData gOamData_85B73F4 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 1,
+ .priority = 1,
+};
+
+static const struct OamData gOamData_85B73FC =
+{
+ .y = 60,
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_V_RECTANGLE,
+ .size = 2,
+ .priority = 2,
+};
+
+static const union AnimCmd gSpriteAnim_85B7404[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B740C[] = {
+ gSpriteAnim_85B7404
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_85B7410[] = {
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7418[] = {
+ gSpriteAffineAnim_85B7410
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B741C = {
+ .data = RoulettePokeIcons2Tiles,
+ .size = 0xC00,
+ .tag = 0
+};
+
+static const union AnimCmd gSpriteAnim_85B7420[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_FRAME(64, 0),
+ ANIMCMD_FRAME(72, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(40, 0),
+ ANIMCMD_FRAME(48, 0),
+ ANIMCMD_FRAME(80, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_FRAME(56, 0),
+ ANIMCMD_FRAME(88, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7458[] = {
+ &gSpriteAnim_85B7420[0]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B745C[] = {
+ &gSpriteAnim_85B7420[1]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7460[] = {
+ &gSpriteAnim_85B7420[2]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7464[] = {
+ &gSpriteAnim_85B7420[3]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7468[] = {
+ &gSpriteAnim_85B7420[4]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B746C[] = {
+ &gSpriteAnim_85B7420[5]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7470[] = {
+ &gSpriteAnim_85B7420[6]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7474[] = {
+ &gSpriteAnim_85B7420[7]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7478[] = {
+ &gSpriteAnim_85B7420[8]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B747C[] = {
+ &gSpriteAnim_85B7420[9]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7480[] = {
+ &gSpriteAnim_85B7420[10]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7484[] = {
+ &gSpriteAnim_85B7420[11]
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7488 = {
+ .data = gRouletteHeadersTiles,
+ .size = 0x1600,
+ .tag = 4
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7490 = {
+ .data = RoulettePokeIconsTiles,
+ .size = 0x400,
+ .tag = 5
+};
+
+static const union AnimCmd gSpriteAnim_85B7498[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_FRAME(48, 0),
+ ANIMCMD_FRAME(64, 0),
+ ANIMCMD_FRAME(80, 0),
+ ANIMCMD_FRAME(96, 0),
+ ANIMCMD_FRAME(112, 0),
+ ANIMCMD_FRAME(128, 0),
+ ANIMCMD_FRAME(144, 0),
+ ANIMCMD_FRAME(160, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B74C8[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74DC[] = {
+ &gSpriteAnim_85B7498[0]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74E0[] = {
+ &gSpriteAnim_85B7498[2]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74E4[] = {
+ &gSpriteAnim_85B7498[4]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74E8[] = {
+ &gSpriteAnim_85B7498[6]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74EC[] = {
+ &gSpriteAnim_85B7498[8]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74F0[] = {
+ &gSpriteAnim_85B7498[9]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74F4[] = {
+ &gSpriteAnim_85B7498[10]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74F8[] = {
+ &gSpriteAnim_85B74C8[0]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B74FC[] = {
+ &gSpriteAnim_85B74C8[1]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7500[] = {
+ &gSpriteAnim_85B74C8[2]
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7504[] = {
+ &gSpriteAnim_85B74C8[3]
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7508[] =
+{
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74DC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74E4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74E8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ }
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7568[] =
+{
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74EC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74F0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 4,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73EC,
+ .anims = gSpriteAnimTable_85B74F4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ }
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B75B0[] =
+{
+ {
+ .tileTag = 5,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73F4,
+ .anims = gSpriteAnimTable_85B74F8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 5,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73F4,
+ .anims = gSpriteAnimTable_85B74FC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 5,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73F4,
+ .anims = gSpriteAnimTable_85B7500,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ },
+ {
+ .tileTag = 5,
+ .paletteTag = 8,
+ .oam = &gOamData_85B73F4,
+ .anims = gSpriteAnimTable_85B7504,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+ }
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7610[] =
+{
+ {
+ .tileTag = 0,
+ .paletteTag = 9,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7458,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 10,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B745C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 11,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7460,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 12,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7464,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 9,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7468,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 10,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B746C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 11,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7470,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 12,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7474,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 9,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7478,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 10,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B747C,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 11,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7480,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ },
+ {
+ .tileTag = 0,
+ .paletteTag = 12,
+ .oam = &gOamData_85B73FC,
+ .anims = gSpriteAnimTable_85B7484,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8143280
+ }
+};
+
+static const struct OamData gOamData_85B7730 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 3,
+ .priority = 1,
+};
+
+static const struct OamData gOamData_85B7738 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_V_RECTANGLE,
+ .size = 0,
+ .priority = 1,
+};
+
+static const struct OamData gOamData_85B7740 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 1,
+};
+
+static const struct OamData gOamData_85B7748 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 0,
+ .priority = 1,
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7750[] =
+{
+ {
+ .data = gRouletteCreditTiles,
+ .size = 0x400,
+ .tag = 7
+ },
+ {
+ .data = gRouletteNumbersTiles,
+ .size = 0x280,
+ .tag = 8
+ },
+ {
+ .data = gRouletteMultiplierTiles,
+ .size = 0x500,
+ .tag = 9
+ },
+ {
+ .data = RouletteBallCounterTiles,
+ .size = 0x140,
+ .tag = 10
+ },
+ {
+ .data = RouletteCursorTiles,
+ .size = 0x200,
+ .tag = 11
+ },
+ {}
+};
+
+static const union AnimCmd gSpriteAnim_85B7780[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(2, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(6, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(10, 0),
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_FRAME(14, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(18, 0),
+ // BUG: Animation not terminated properly
+ //ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B77A8[] = {
+ gSpriteAnim_85B7780
+};
+
+static const union AnimCmd gSpriteAnim_85B77AC[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_FRAME(32, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B77C4[] = {
+ gSpriteAnim_85B77AC
+};
+
+static const union AnimCmd gSpriteAnim_85B77C8[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_FRAME(2, 0),
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_FRAME(6, 0),
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B77E0[] = {
+ gSpriteAnim_85B77C8
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B77E4 =
+{
+ .tileTag = 7,
+ .paletteTag = 5,
+ .oam = &gOamData_85B7730,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gUnknown_085B77FC =
+{
+ .tileTag = 8,
+ .paletteTag = 5,
+ .oam = &gOamData_85B7738,
+ .anims = gSpriteAnimTable_85B77A8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gUnknown_085B7814 =
+{
+ .tileTag = 9,
+ .paletteTag = 5,
+ .oam = &gOamData_85B7740,
+ .anims = gSpriteAnimTable_85B77C4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814390C
+};
+
+static const struct SpriteTemplate gUnknown_085B782C =
+{
+ .tileTag = 10,
+ .paletteTag = 3,
+ .oam = &gOamData_85B7748,
+ .anims = gSpriteAnimTable_85B77E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gUnknown_085B7844 =
+{
+ .tileTag = 11,
+ .paletteTag = 5,
+ .oam = &gOamData_85B73EC,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct OamData gOamData_85B785C =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 1,
+ .priority = 2,
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7864 = {
+ .data = gUnknown_085B6650,
+ .size = 0x200,
+ .tag = 12
+};
+
+static const union AnimCmd gSpriteAnim_85B786C[] = {
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B7880[] = {
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_FRAME(4, 10),
+ ANIMCMD_FRAME(8, 10),
+ ANIMCMD_FRAME(4, 10),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B7894[] = {
+ ANIMCMD_FRAME(0, 15),
+ ANIMCMD_FRAME(4, 15),
+ ANIMCMD_FRAME(8, 15),
+ ANIMCMD_FRAME(4, 15),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B78A8[] = {
+ ANIMCMD_FRAME(4, 2),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B78BC[] = {
+ ANIMCMD_FRAME(4, 2),
+ ANIMCMD_FRAME(0, 4),
+ ANIMCMD_FRAME(4, 4),
+ ANIMCMD_FRAME(8, 4),
+ ANIMCMD_FRAME(12, 4),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B78D4[] = {
+ ANIMCMD_FRAME(0, 2),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(8, 5),
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B78E8[] = {
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B78F0[] = {
+ ANIMCMD_FRAME(8, 2),
+ ANIMCMD_FRAME(4, 5),
+ ANIMCMD_FRAME(0, 5),
+ ANIMCMD_FRAME(12, 5),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7904[] = {
+ gSpriteAnim_85B786C,
+ gSpriteAnim_85B7880,
+ gSpriteAnim_85B7894,
+ gSpriteAnim_85B78A8,
+ gSpriteAnim_85B78F0,
+ gSpriteAnim_85B78BC,
+ gSpriteAnim_85B78D4,
+ gSpriteAnim_85B78D4,
+ gSpriteAnim_85B78E8
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7928 =
+{
+ .tileTag = 12,
+ .paletteTag = 2,
+ .oam = &gOamData_85B785C,
+ .anims = gSpriteAnimTable_85B7904,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct OamData gOamData_85B7940 =
+{
+ .y = 81,
+ .affineMode = ST_OAM_AFFINE_DOUBLE,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 3,
+ .priority = 2,
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7948 = {
+ .data = gRouletteCenter_Gfx,
+ .size = 0x800,
+ .tag = 6
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7950 =
+{
+ .tileTag = 6,
+ .paletteTag = 2,
+ .oam = &gOamData_85B7940,
+ .anims = gDummySpriteAnimTable,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_814399C
+};
+
+static const struct OamData gOamData_85B7968 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 2,
+ .priority = 2,
+};
+
+static const struct OamData gOamData_85B7970 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 2,
+ .priority = 2,
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7978 = {
+ .data = gUnknown_085B67FC,
+ .size = 0xE00,
+ .tag = 13
+};
+
+static const union AnimCmd gSpriteAnim_85B7980[] = {
+ ANIMCMD_FRAME(0, 6),
+ ANIMCMD_FRAME(16, 6),
+ ANIMCMD_FRAME(32, 6),
+ ANIMCMD_FRAME(48, 6),
+ ANIMCMD_FRAME(32, 6),
+ ANIMCMD_FRAME(64, 6),
+ ANIMCMD_JUMP(2)
+};
+
+static const union AnimCmd gSpriteAnim_85B799C[] = {
+ ANIMCMD_FRAME(80, 10),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B79A4[] = {
+ ANIMCMD_FRAME(80, 10, .hFlip = TRUE),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B79AC[] = {
+ ANIMCMD_FRAME(80, 20),
+ ANIMCMD_FRAME(96, 20),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B79B8[] = {
+ ANIMCMD_FRAME(80, 20, .hFlip = TRUE),
+ ANIMCMD_FRAME(96, 20, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B79C4[] = {
+ ANIMCMD_FRAME(80, 10),
+ ANIMCMD_FRAME(96, 10),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd gSpriteAnim_85B79D0[] = {
+ ANIMCMD_FRAME(80, 10, .hFlip = TRUE),
+ ANIMCMD_FRAME(96, 10, .hFlip = TRUE),
+ ANIMCMD_JUMP(0)
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B79DC[] = {
+ gSpriteAnim_85B7980
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B79E0[] = {
+ gSpriteAnim_85B799C,
+ gSpriteAnim_85B79A4,
+ gSpriteAnim_85B79AC,
+ gSpriteAnim_85B79B8,
+ gSpriteAnim_85B79C4,
+ gSpriteAnim_85B79D0
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B79F8 =
+{
+ .tileTag = 13,
+ .paletteTag = 6,
+ .oam = &gOamData_85B7968,
+ .anims = gSpriteAnimTable_85B79DC,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7A10 =
+{
+ .tileTag = 13,
+ .paletteTag = 7,
+ .oam = &gOamData_85B7970,
+ .anims = gSpriteAnimTable_85B79E0,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8145294
+};
+
+static const struct OamData gOamData_85B7A28 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_SQUARE,
+ .size = 1,
+ .priority = 2,
+};
+
+static const struct OamData gOamData_85B7A30 =
+{
+ .affineMode = ST_OAM_AFFINE_OFF,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2,
+};
+
+static const struct OamData gOamData_85B7A38 =
+{
+ .affineMode = ST_OAM_AFFINE_NORMAL,
+ .objMode = ST_OAM_OBJ_NORMAL,
+ .shape = ST_OAM_H_RECTANGLE,
+ .size = 2,
+ .priority = 2,
+};
+
+static const struct CompressedSpriteSheet gUnknown_085B7A40 = {
+ .data = gUnknown_085B7290,
+ .size = 0x180,
+ .tag = 14
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_85B7A48[] = {
+ AFFINEANIMCMD_FRAME(0x80, 0x80, 0, 0),
+ AFFINEANIMCMD_FRAME(2, 2, 0, 60),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_85B7A60[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_FRAME(-2, 0x0, 0, 15),
+ AFFINEANIMCMD_FRAME(-1, -2, 0, 15),
+ AFFINEANIMCMD_FRAME(-1, -5, 0, 24),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A88[] = {
+ gSpriteAffineAnim_85B7A48
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7A8C[] = {
+ gSpriteAffineAnim_85B7A60
+};
+
+static const union AffineAnimCmd gSpriteAffineAnim_85B7A90[] = {
+ AFFINEANIMCMD_FRAME(0x100, 0x100, 0, 0),
+ AFFINEANIMCMD_END
+};
+
+static const union AffineAnimCmd *const gSpriteAffineAnimTable_85B7AA0[] = {
+ gSpriteAffineAnim_85B7A90
+};
+
+static const union AnimCmd gSpriteAnim_85B7AA4[] = {
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd gSpriteAnim_85B7AAC[] = {
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7AB4[] = {
+ gSpriteAnim_85B7AA4
+};
+
+static const union AnimCmd *const gSpriteAnimTable_85B7AB8[] = {
+ gSpriteAnim_85B7AAC
+};
+
+static const struct SpriteTemplate gSpriteTemplate_85B7ABC[] =
+{
+ {
+ .tileTag = 14,
+ .paletteTag = 1,
+ .oam = &gOamData_85B7A28,
+ .anims = gSpriteAnimTable_85B7AB4,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+ },
+ {
+ .tileTag = 14,
+ .paletteTag = 1,
+ .oam = &gOamData_85B7A30,
+ .anims = gSpriteAnimTable_85B7AB8,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = sub_8144E60
+ }
+};
+
+static const struct SpriteTemplate gUnknown_085B7AEC =
+{
+ .tileTag = 14,
+ .paletteTag = 1,
+ .oam = &gOamData_85B7A38,
+ .anims = gSpriteAnimTable_85B7AB8,
+ .images = NULL,
+ .affineAnims = gSpriteAffineAnimTable_85B7A8C,
+ .callback = sub_8145294
+};
+
+static void sub_81428C4(u8 r0)
+{
+ DisplayYesNoMenu();
+ DoYesNoFuncWithChoice(r0, &gUnknown_085B6408);
+}
+
+static void sub_81428E4(u8 taskId)
+{
+ if (!gPaletteFade.active)
+ {
+ SetVBlankCallback(NULL);
+ SetMainCallback2(sub_81405CC);
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_8142918(u8 taskId)
+{
+ sub_819746C(0, TRUE);
+ HideCoinsWindow();
+ FreeAllWindowBuffers();
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
+ gPaletteFade.delayCounter = gPaletteFade.multipurpose2;
+ UpdatePaletteFade();
+ gTasks[taskId].func = sub_81428E4;
+}
+
+static void sub_814297C(u8 taskId)
+{
+ sub_819746C(0, FALSE);
+ HideCoinsWindow();
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+}
+
+static void sub_81429A0(u8 taskId)
+{
+ gTasks[taskId].data[0]++;
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ gSpecialVar_0x8004 = 1;
+ HideCoinsWindow();
+ sub_819746C(0, TRUE);
+ ScriptContext2_Disable();
+ DestroyTask(taskId);
+ }
+}
+
+static void sub_81429F0(u8 taskId)
+{
+ if (gMain.newKeys & (A_BUTTON | B_BUTTON))
+ {
+ u32 temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)];
+ ConvertIntToDecimalStringN(gStringVar1, temp, STR_CONV_MODE_LEADING_ZEROS, 1);
+ StringExpandPlaceholders(gStringVar4, gUnknown_082A5B12);
+ NewMenuHelpers_DrawStdWindowFrame(0, FALSE);
+ AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(0, 3);
+ gTasks[taskId].func = sub_81428C4;
+ }
+}
+
+static void Task_Roulette_0(u8 taskId)
+{
+ s32 temp;
+ PrintCoinsString(gTasks[taskId].data[13]);
+ temp = gUnknown_085B6344[(gSpecialVar_0x8004 & 1) + (gSpecialVar_0x8004 >> 7 << 1)];
+ ConvertIntToDecimalStringN(gStringVar1, temp, 2, 1);
+ if (gTasks[taskId].data[13] >= temp)
+ {
+ if ((gSpecialVar_0x8004 & 0x80) && (gSpecialVar_0x8004 & 1))
+ {
+ NewMenuHelpers_DrawStdWindowFrame(0, FALSE);
+ AddTextPrinterParameterized(0, 1, gUnknown_082A5B6B, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(0, 3);
+ gTasks[taskId].func = sub_81429F0;
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gUnknown_082A5B12);
+ NewMenuHelpers_DrawStdWindowFrame(0, FALSE);
+ AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(0, 3);
+ gTasks[taskId].func = sub_81428C4;
+ }
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gUnknown_082A5B4E);
+ NewMenuHelpers_DrawStdWindowFrame(0, FALSE);
+ AddTextPrinterParameterized(0, 1, gStringVar4, 0, 1, TEXT_SPEED_FF, NULL);
+ CopyWindowToVram(0, 3);
+ gTasks[taskId].func = sub_81429A0;
+ gTasks[taskId].data[13] = 0;
+ gTasks[taskId].data[0] = 0;
+ }
+}
+
+void PlayRoulette(void)
+{
+ u8 taskId;
+
+ ScriptContext2_Enable();
+ ShowCoinsWindow(GetCoins(), 1, 1);
+ taskId = CreateTask(Task_Roulette_0, 0);
+ gTasks[taskId].data[13] = GetCoins();
+}
+
+static void sub_8142C0C(u8 r0)
+{
+ if (!r0)
+ {
+ FreeAllSpritePalettes();
+ LoadSpritePalettes(gUnknown_085B7384);
+ LoadCompressedSpriteSheet(&gUnknown_085B7864);
+ LoadCompressedSpriteSheet(&gUnknown_085B7978);
+ LoadCompressedSpriteSheet(&gUnknown_085B7A40);
+ }
+ else
+ {
+ FreeSpriteTilesByTag(14);
+ FreeSpriteTilesByTag(13);
+ FreeSpriteTilesByTag(12);
+ FreeAllSpritePalettes();
+ }
+}
+
+static u8 sub_8142C60(const struct SpriteTemplate *r0, u8 r1, u16 *r2)
+{
+ u16 temp;
+ u8 spriteId = CreateSprite(r0, 116, 80, r0->oam->y);
+ gSprites[spriteId].data[0] = *r2;
+ gSprites[spriteId].data[1] = r1;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+ gSprites[spriteId].animPaused = TRUE;
+ gSprites[spriteId].affineAnimPaused = TRUE;
+ temp = *r2;
+ *r2 += 30;
+ if (*r2 >= 360)
+ *r2 = temp - 330;
+ return spriteId;
+}
+
+static void sub_8142CD0(void)
+{
+ u8 i, j;
+ u8 spriteId;
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_085B7488.data, gDecompressionBuffer);
+ s.data = gDecompressionBuffer;
+ s.size = gUnknown_085B7488.size;
+ s.tag = gUnknown_085B7488.tag;
+ LoadSpriteSheet(&s);
+ LZ77UnCompWram(gUnknown_085B7490.data, gDecompressionBuffer);
+ s.data = gDecompressionBuffer;
+ s.size = gUnknown_085B7490.size;
+ s.tag = gUnknown_085B7490.tag;
+ LoadSpriteSheet(&s);
+ for (i = 0; i < 3; i++)
+ {
+ u8 o = i * 24;
+ for (j = 0; j < 4; j++)
+ {
+ spriteId = gUnknown_0203AB88->var3C[(i * 4) + 29 + j] = CreateSprite(&gSpriteTemplate_85B75B0[j], (j * 24) + 148, o + 92, 30);
+ gSprites[spriteId].animPaused = TRUE;
+ o += 24;
+ if (o >= 72)
+ o = 0;
+ }
+ }
+ for (i = 0; i < 4; i++)
+ {
+ spriteId = gUnknown_0203AB88->var3C[i + 41] = CreateSprite(&gSpriteTemplate_85B7508[i], (i * 24) + 148, 70, 30);
+ gSprites[spriteId].animPaused = TRUE;
+ }
+ for (i = 0; i < 3; i++)
+ {
+ spriteId = gUnknown_0203AB88->var3C[i + 45] = CreateSprite(&gSpriteTemplate_85B7568[i], 126, (i * 24) + 92, 30);
+ gSprites[spriteId].animPaused = TRUE;
+ }
+}
+
+static void unref_sub_8142E3C(void)
+{
+ u8 i;
+ for (i = 0; i < 12; i++)
+ {
+ DestroySprite(&gSprites[gUnknown_0203AB88->var3C[i + 29]]);
+ }
+}
+
+static void sub_8142E70(u8 r0, u8 r1)
+{
+ u8 i;
+ switch (r0)
+ {
+ case 1:
+ for (i = 0; i < 19; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE;
+ }
+ break;
+ case 0:
+ for (i = 0; i < 12; i++)
+ {
+ if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[i].var04))
+ gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE;
+ else if (gUnknown_085B62E4[i].var02 != r1)
+ gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = TRUE;
+ else
+ gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE;
+ }
+ for (; i < 19; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 29]].invisible = FALSE;
+ }
+ break;
+ }
+}
+
+static void sub_8142F7C(void)
+{
+ u8 i;
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_0203AB88->var3C[i + 49] = CreateSprite(&gSpriteTemplate_85B7928, 116, 20, 10);
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].data[0] = 1;
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].callback = sub_814390C;
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].oam.priority = 1;
+ StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[i + 49]], 8);
+ }
+}
+
+static void sub_8143038(u8 r0, u8 r1)
+{
+ u8 i = 0;
+ if (r0)
+ {
+ for ( ; i < 6; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE;
+ }
+ }
+ else
+ {
+ for ( ; i < 6; i++)
+ {
+ if (!gUnknown_0203AB88->var0C[i] || i == r1)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = TRUE;
+ }
+ else
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].invisible = FALSE;
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.x = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var03 + 1) * 8 + 4;
+ gSprites[gUnknown_0203AB88->var3C[i + 49]].pos1.y = (gUnknown_085B6154[gUnknown_0203AB88->var0C[i]].var04 + 1) * 8 + 3;
+ }
+ }
+ }
+}
+
+static void sub_8143150(u8 r0)
+{
+ if (!r0)
+ {
+ gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE;
+ }
+ else
+ {
+ gSprites[gUnknown_0203AB88->var3C[48]].invisible = FALSE;
+ gSprites[gUnknown_0203AB88->var3C[48]].pos1.x = (gUnknown_085B6154[r0].var03 + 2) * 8;
+ gSprites[gUnknown_0203AB88->var3C[48]].pos1.y = (gUnknown_085B6154[r0].var04 + 2) * 8;
+ }
+}
+
+static void sub_81431E4(void)
+{
+ u8 i, j;
+ u16 k;
+ struct SpriteSheet s;
+
+ LZ77UnCompWram(gUnknown_085B741C.data, gDecompressionBuffer);
+ s.data = gDecompressionBuffer;
+ s.size = gUnknown_085B741C.size;
+ s.tag = gUnknown_085B741C.tag;
+ LoadSpriteSheet(&s);
+
+ k = 15;
+ for (i = 0; i < 3; i++)
+ {
+ for (j = 0; j < 4; j++)
+ {
+ u8 spriteId;
+ spriteId = gUnknown_0203AB88->var3C[(i * 4) + 7 + j] = sub_8142C60(&gSpriteTemplate_85B7610[i * 4 + j], 40, &k);
+ gSprites[spriteId].animPaused = TRUE;
+ gSprites[spriteId].affineAnimPaused = TRUE;
+ }
+ }
+}
+
+static void sub_8143280(struct Sprite *sprite)
+{
+ s16 cos;
+ s16 sin;
+ u32 matrixNum;
+ s16 angle = gUnknown_0203AB88->var24 + sprite->data[0];
+ if (angle >= 360)
+ angle -= 360;
+ sin = Sin2(angle);
+ cos = Cos2(angle);
+ sprite->pos2.x = sin * sprite->data[1] >> 12;
+ sprite->pos2.y = -cos * sprite->data[1] >> 12;
+ matrixNum = sprite->oam.matrixNum;
+ sin /= 16;
+ gOamMatrices[matrixNum].d = cos /= 16;
+ gOamMatrices[matrixNum].a = cos;
+ gOamMatrices[matrixNum].b = sin;
+ gOamMatrices[matrixNum].c = -sin;
+}
+
+static void sub_8143314(void)
+{
+ u8 i;
+ for (i = 0; i < 5; i++)
+ {
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_085B7750[i].data, gDecompressionBuffer);
+ s.data = gDecompressionBuffer;
+ s.size = gUnknown_085B7750[i].size;
+ s.tag = gUnknown_085B7750[i].tag;
+ LoadSpriteSheet(&s);
+ }
+ gUnknown_0203AB88->var3C[20] = CreateSprite(&gSpriteTemplate_85B77E4, 208, 16, 4);
+ gSprites[gUnknown_0203AB88->var3C[20]].animPaused = TRUE;
+ for (i = 0; i < 4; i++)
+ {
+ gUnknown_0203AB88->var3C[i + 21] = CreateSprite(&gUnknown_085B77FC, i * 8 + 196, 24, 0);
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].animPaused = TRUE;
+ }
+ gUnknown_0203AB88->var3C[25] = CreateSprite(&gUnknown_085B7814, 120, 68, 4);
+ gSprites[gUnknown_0203AB88->var3C[25]].animPaused = TRUE;
+ for (i = 0; i < 3; i++)
+ {
+ gUnknown_0203AB88->var3C[i + 26] = CreateSprite(&gUnknown_085B782C, i * 16 + 192, 36, 4);
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].animPaused = TRUE;
+ }
+ gUnknown_0203AB88->var3C[48] = CreateSprite(&gUnknown_085B7844, 152, 96, 9);
+ gSprites[gUnknown_0203AB88->var3C[48]].oam.priority = 1;
+ gSprites[gUnknown_0203AB88->var3C[48]].animPaused = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[48]].invisible = TRUE;
+}
+
+static void sub_8143514(u16 r0)
+{
+ u8 i;
+ u16 d = 1000;
+ bool8 v = FALSE;
+ for (i = 0; i < 4; i++)
+ {
+ u8 t = r0 / d;
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = TRUE;
+ if (t > 0 || v || i == 3)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].invisible = FALSE;
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[i + 21]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[i + 21]].anims + t)->type;
+ v = TRUE;
+ }
+ r0 = r0 % d;
+ d = d / 10;
+ }
+}
+
+static u8 sub_8143614(u8 r0)
+{
+ u8 t[5] = {0, 1, 2, 3, 4};
+
+ if (r0 >= 20)
+ r0 = 0;
+ switch (gUnknown_085B6154[r0].var01_0)
+ {
+ case 3:
+ r0 = r0 / 5 - 1;
+ if (gUnknown_0203AB88->var16[r0] > 3)
+ return 0;
+ return t[gUnknown_0203AB88->var16[r0] + 1];
+ case 4:
+ r0--;
+ if (gUnknown_0203AB88->var12[r0] > 2)
+ return 0;
+ return t[gUnknown_0203AB88->var12[r0] + 2];
+ case 12:
+ if (gUnknown_0203AB88->var08 & gUnknown_085B6154[r0].var08)
+ return 0;
+ return t[4];
+ }
+ return 0;
+}
+
+static void sub_81436D0(u8 r0)
+{
+ struct Sprite *s = &gSprites[gUnknown_0203AB88->var3C[25]];
+ s->animCmdIndex = sub_8143614(r0);
+ s->oam.tileNum = s->sheetTileStart + (*s->anims + s->animCmdIndex)->type;
+}
+
+static void sub_814372C(u8 r0)
+{
+ u8 i;
+ u8 t = 0;
+ if (gUnknown_0203AB88->var19 == 1)
+ t = 2;
+ switch (r0)
+ {
+ case 6:
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].invisible = FALSE;
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims)->type;
+ }
+ break;
+ case 5:
+ gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 1)->type;
+ break;
+ case 4:
+ gSprites[gUnknown_0203AB88->var3C[28]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[28]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[28]].anims + t + 2)->type;
+ break;
+ case 3:
+ gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 1)->type;
+ break;
+ case 2:
+ gSprites[gUnknown_0203AB88->var3C[27]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[27]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[27]].anims + t + 2)->type;
+ break;
+ case 1:
+ gSprites[gUnknown_0203AB88->var3C[26]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[26]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[26]].anims + t + 1)->type;
+ break;
+ case 0:
+ default:
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].oam.tileNum =
+ gSprites[gUnknown_0203AB88->var3C[i + 26]].sheetTileStart
+ + (*gSprites[gUnknown_0203AB88->var3C[i + 26]].anims + t + 2)->type;
+ }
+ }
+}
+
+static void sub_814390C(struct Sprite *sprite)
+{
+ sprite->pos2.x = gUnknown_0203AB88->var26;
+}
+
+static void sub_814391C(void)
+{
+ u8 spriteId;
+ struct SpriteSheet s;
+ LZ77UnCompWram(gUnknown_085B7948.data, gDecompressionBuffer);
+ s.data = gDecompressionBuffer;
+ s.size = gUnknown_085B7948.size;
+ s.tag = gUnknown_085B7948.tag;
+ LoadSpriteSheet(&s);
+ spriteId = CreateSprite(&gSpriteTemplate_85B7950, 116, 80, 81);
+ gSprites[spriteId].data[0] = gUnknown_0203AB88->var24;
+ gSprites[spriteId].data[1] = 0;
+ gSprites[spriteId].animPaused = TRUE;
+ gSprites[spriteId].affineAnimPaused = TRUE;
+ gSprites[spriteId].coordOffsetEnabled = TRUE;
+}
+
+static void sub_814399C(struct Sprite *sprite)
+{
+ u32 t = sprite->oam.matrixNum;
+ struct OamMatrix *m = &gOamMatrices[0];
+ m[t].d = gUnknown_0203AB88->var2C.a;
+ m[t].a = gUnknown_0203AB88->var2C.a;
+ m[t].b = gUnknown_0203AB88->var2C.b;
+ m[t].c = gUnknown_0203AB88->var2C.c;
+}
+
+static void sub_81439C8(void)
+{
+ u8 i;
+ for (i = 0; i < 6; i++)
+ {
+ gUnknown_0203AB88->var3C[i] = CreateSprite(&gSpriteTemplate_85B7928, 116, 80, 57 - i);
+ if (gUnknown_0203AB88->var3C[i] != MAX_SPRITES)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i]].invisible = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i]].coordOffsetEnabled = TRUE;
+ }
+ }
+}
+
+static void sub_8143A40(void)
+{
+ u8 t = gUnknown_0203AB88->var3C[0];
+ u8 i;
+ for (i = 0; i < 6; i++)
+ {
+ u8 j;
+ gSprites[t].invisible = TRUE;
+ gSprites[t].callback = &SpriteCallbackDummy;
+ StartSpriteAnim(&gSprites[t], 0);
+ for (j = 0; j < 8; j++)
+ {
+ gSprites[t].data[j] = 0;
+ }
+ t++;
+ }
+}
+
+static s16 sub_8143AC8(struct Sprite *sprite)
+{
+ if (gUnknown_0203AB88->var24 > sprite->data[3])
+ {
+ sprite->data[6] = 360 - gUnknown_0203AB88->var24 + sprite->data[3];
+ if (sprite->data[6] >= 360)
+ sprite->data[6] -= 360;
+ }
+ else
+ {
+ sprite->data[6] = sprite->data[3] - gUnknown_0203AB88->var24;
+ }
+
+ return sprite->data[6];
+}
+
+static u8 sub_8143B14(struct Sprite *sprite)
+{
+ gUnknown_0203AB88->var7E = sub_8143AC8(sprite) / 30.0f;
+ return gUnknown_0203AB88->var7E;
+}
+
+static s16 sub_8143B48(struct Sprite *sprite)
+{
+ s16 t = sub_8143AC8(sprite) % 30;
+ u16 z;
+ if (t == 14)
+ {
+ z = 0;
+ return sprite->data[2] = z;
+ }
+ else if (t > 13)
+ {
+ z = 43 - t;
+ return sprite->data[2] = z;
+ }
+ else
+ {
+ z = 14 - t;
+ return sprite->data[2] = z;
+ }
+}
+
+static void sub_8143B84(struct Sprite *sprite)
+{
+ s16 sin, cos;
+
+ gUnknown_0203AB88->var8C += gUnknown_0203AB88->var90;
+ gUnknown_0203AB88->var88 += gUnknown_0203AB88->var8C;
+
+ if (gUnknown_0203AB88->var88 >= 360)
+ gUnknown_0203AB88->var88 -= 360.0f;
+ else if (gUnknown_0203AB88->var88 < 0.0f)
+ gUnknown_0203AB88->var88 += 360.0f;
+
+ sprite->data[3] = gUnknown_0203AB88->var88;
+ gUnknown_0203AB88->var98 += gUnknown_0203AB88->var9C;
+ gUnknown_0203AB88->var94 += gUnknown_0203AB88->var98;
+ sprite->data[4] = gUnknown_0203AB88->var94;
+ sin = Sin2(sprite->data[3]);
+ cos = Cos2(sprite->data[3]);
+ sprite->pos2.x = sin * sprite->data[4] >> 12;
+ sprite->pos2.y = -cos * sprite->data[4] >> 12;
+ if (IsSEPlaying())
+ {
+ m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, sprite->pos2.x);
+ m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, sprite->pos2.x);
+ }
+}
+
+static void sub_8143C90(struct Sprite *sprite)
+{
+ s16 sin, cos;
+ sprite->data[3] = gUnknown_0203AB88->var24 + sprite->data[6];
+ if (sprite->data[3] >= 360)
+ sprite->data[3] -= 360;
+ sin = Sin2(sprite->data[3]);
+ cos = Cos2(sprite->data[3]);
+ sprite->pos2.x = sin * sprite->data[4] >> 12;
+ sprite->pos2.y = -cos * sprite->data[4] >> 12;
+ sprite->pos2.y += gSpriteCoordOffsetY;
+}
+
+static void sub_8143CFC(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ sprite->data[2]++;
+ if (sprite->data[4] < -132 || sprite->data[4] > 80)
+ sprite->invisible = TRUE;
+ else
+ sprite->invisible = FALSE;
+
+ if (sprite->data[2] >= 30)
+ {
+ if (!sprite->data[0])
+ {
+ if (gUnknown_0203AB88->var94 <= gUnknown_0203AB88->varA0 - 2.0f)
+ {
+ gUnknown_0203AB88->var7D = 0xFF;
+ gUnknown_0203AB88->var03_7 = 0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 0x3);
+ sub_8143B14(sprite);
+ sprite->data[4] = 30;
+ sub_8143AC8(sprite);
+ sprite->data[6] = (sprite->data[6] / 30) * 30 + 15;
+ sprite->callback = sub_8143C90;
+ m4aSongNumStartOrChange(SE_HASHI);
+ gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f;
+ gUnknown_0203AB88->var8C = -1.0f;
+ }
+ }
+ else
+ {
+ if (gUnknown_0203AB88->var94 >= gUnknown_0203AB88->varA0 - 2.0f)
+ {
+ gUnknown_0203AB88->var7D = 0xFF;
+ gUnknown_0203AB88->var03_7 = 0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 3);
+ sub_8143B14(sprite);
+ sprite->data[4] = 30;
+ sub_8143AC8(sprite);
+ sprite->data[6] = (sprite->data[6] / 30) * 30 + 15;
+ sprite->callback = sub_8143C90;
+ m4aSongNumStartOrChange(SE_HASHI);
+ gUnknown_0203AB88->var9C = gUnknown_0203AB88->var98 = 0.0f;
+ gUnknown_0203AB88->var8C = -1.0f;
+ }
+ }
+ }
+}
+
+static void sub_8143E14(struct Sprite *sprite)
+{
+ float f0, f1, f2;
+ sub_8143B84(sprite);
+
+ switch (sprite->data[3])
+ {
+ case 0:
+ if (sprite->data[0] != 1)
+ {
+ f0 = sprite->data[7];
+ f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1));
+ f2 = (f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C);
+ }
+ else
+ {
+ return;
+ }
+ break;
+ case 180:
+ if (sprite->data[0] != 0)
+ {
+ f0 = sprite->data[7];
+ f1 = (f0 * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01 + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 - 1));
+ f2 = -(f0 / gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0C);
+ }
+ else
+ {
+ return;
+ }
+ break;
+ default:
+ return;
+ }
+ gUnknown_0203AB88->varA0 = gUnknown_0203AB88->var94;
+ gUnknown_0203AB88->var98 = f2;
+ gUnknown_0203AB88->var9C = -((f2 * 2.0f) / f1 + (2.0f / (f1 * f1)));
+ gUnknown_0203AB88->var8C = 0.0f;
+ sprite->animPaused = FALSE;
+ sprite->animNum = 0;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->callback = sub_8143CFC;
+ sprite->data[2] = 0;
+}
+
+static void sub_8143FA4(struct Sprite *sprite)
+{
+ sprite->pos2.y = (s16)(sprite->data[2] * 0.05f * sprite->data[2]) - 45;
+ sprite->data[2]++;
+ if (sprite->data[2] > 29 && sprite->pos2.y >= 0)
+ {
+ gUnknown_0203AB88->var7D = 0xFF;
+ gUnknown_0203AB88->var03_7 = FALSE;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 3);
+ sub_8143B14(sprite);
+ sprite->data[4] = 30;
+ sub_8143AC8(sprite);
+ sprite->data[6] = (sprite->data[6] / 30) * 30 + 15;
+ sprite->callback = sub_8143C90;
+ m4aSongNumStartOrChange(SE_HASHI);
+ gUnknown_0203AB88->var03_6 = TRUE;
+ }
+}
+
+static void sub_8144050(struct Sprite *sprite)
+{
+ if (sprite->data[2]++ < 45)
+ {
+ sprite->pos2.y--;
+ if (sprite->data[2] == 45)
+ {
+ if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1)
+ sprite->pos2.y++;
+ }
+ }
+ else
+ {
+ if (sprite->data[2] < sprite->data[7])
+ {
+ if (gSprites[gUnknown_0203AB88->var3C[55]].animDelayCounter == 0)
+ {
+ if (gSprites[gUnknown_0203AB88->var3C[55]].animCmdIndex == 1)
+ sprite->pos2.y++;
+ else
+ sprite->pos2.y--;
+ }
+ }
+ else
+ {
+ sprite->animPaused = FALSE;
+ sprite->animNum = 1;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[2] = 0;
+ sprite->callback = sub_8143FA4;
+ m4aSongNumStart(SE_NAGERU);
+ }
+ }
+}
+
+static void sub_8144128(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ switch (sprite->data[3])
+ {
+ case 90:
+ if (sprite->data[0] != 1)
+ {
+ sprite->callback = &sub_8144050;
+ sprite->data[2] = 0;
+ }
+ break;
+ case 270:
+ if (sprite->data[0] != 0)
+ {
+ sprite->callback = &sub_8144050;
+ sprite->data[2] = 0;
+ }
+ break;
+ }
+}
+
+static void sub_8144168(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ switch (gUnknown_0203AB88->var03_0)
+ {
+ default:
+ case 0:
+ sub_81446DC(sprite);
+ sprite->callback = sub_8143E14;
+ break;
+ case 1:
+ sub_81448B8(sprite);
+ sprite->callback = sub_8144128;
+ break;
+ }
+}
+
+static void prev_quest_read_x24_hm_usage(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ if (sprite->data[2]-- == 16)
+ gUnknown_0203AB88->var98 *= -1.0f;
+ if (sprite->data[2] == 0)
+ {
+ if (!sprite->data[0])
+ {
+ gUnknown_0203AB88->var7D = 0xFF;
+ gUnknown_0203AB88->var03_7 = 0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 3);
+ sub_8143B14(sprite);
+ sprite->data[4] = 30;
+ sub_8143AC8(sprite);
+ sprite->data[6] = (sprite->data[6] / 30) * 30 + 15;
+ sprite->callback = sub_8143C90;
+ m4aSongNumStartOrChange(SE_HASHI);
+ }
+ else
+ {
+ sprite->animPaused = TRUE;
+ m4aSongNumStart(SE_KON);
+ sub_8144A24(sprite);
+ }
+ }
+}
+
+static void sub_8144264(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ sprite->data[2] = 0;
+ sub_8143B14(sprite);
+ if (!(gUnknown_085B62E4[gUnknown_0203AB88->var7E].var04 & gUnknown_0203AB88->var08))
+ {
+ gUnknown_0203AB88->var7D = 0xFF;
+ gUnknown_0203AB88->var03_7 = 0;
+ StartSpriteAnim(sprite, sprite->animCmdIndex + 3);
+ sub_8143B14(sprite);
+ sprite->data[4] = 30;
+ sub_8143AC8(sprite);
+ sprite->data[6] = (sprite->data[6] / 30) * 30 + 15;
+ sprite->callback = sub_8143C90;
+ m4aSongNumStartOrChange(SE_HASHI);
+ }
+ else
+ {
+ u8 t;
+ u32 z;
+ m4aSongNumStart(SE_KON);
+ z = Random() & 1;
+ if (z)
+ {
+ gUnknown_0203AB88->var8C = 0.0f;
+ gUnknown_0203AB88->var7F = t = (gUnknown_0203AB88->var7E + 1) % 12;
+ }
+ else
+ {
+ float temp;
+ gUnknown_0203AB88->var8C = (temp = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C) * 2.0f;
+ t = (gUnknown_0203AB88->var7E + 11) % 12;
+ gUnknown_0203AB88->var7F = gUnknown_0203AB88->var7E;
+ }
+ if (gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08)
+ {
+ sprite->data[0] = 1;
+ sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02;
+ }
+ else
+ {
+ sprite->data[0] = gUnknown_085B62E4[t].var04 & gUnknown_0203AB88->var08;
+ if (gUnknown_0203AB88->var04_0)
+ {
+ sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01;
+ }
+ else
+ {
+ sprite->data[2] = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02;
+ if (z)
+ {
+ gUnknown_0203AB88->var8C = 0.5f;
+ }
+ else
+ {
+ gUnknown_0203AB88->var8C = -1.5f;
+ }
+ }
+ }
+ gUnknown_0203AB88->var98 = 0.085f;
+ sprite->callback = prev_quest_read_x24_hm_usage;
+ sprite->data[1] = 5;
+ }
+}
+
+static void sub_8144410(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ if (gUnknown_0203AB88->var8C > 0.5f)
+ return;
+
+ sub_8143B14(sprite);
+ if (!sub_8143B48(sprite))
+ {
+ gUnknown_0203AB88->var90 = 0.0f;
+ gUnknown_0203AB88->var8C -= (float)(gUnknown_085B6348[gUnknown_0203AB88->var04_0].var03)
+ / (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var04 + 1);
+ sprite->data[1] = 4;
+ sprite->callback = sub_8144264;
+ }
+ else
+ {
+ if (gUnknown_0203AB88->var90 != 0.0f)
+ {
+ if (gUnknown_0203AB88->var8C < 0.0f)
+ {
+ gUnknown_0203AB88->var90 = 0.0f;
+ gUnknown_0203AB88->var8C = 0.0f;
+ gUnknown_0203AB88->var98 /= 1.2;
+ }
+ }
+ }
+}
+
+static void sub_8144514(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ if (gUnknown_0203AB88->var94 > 40.f)
+ return;
+
+ gUnknown_0203AB88->var98 = -(4.0f / (float)gUnknown_0203AB88->var86);
+ gUnknown_0203AB88->var90 = -(gUnknown_0203AB88->var8C / (float)gUnknown_0203AB88->var86);
+ sprite->animNum = 2;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[1] = 3;
+ sprite->callback = sub_8144410;
+}
+
+static void sub_81445D8(struct Sprite *sprite)
+{
+ sub_8143B84(sprite);
+ if (gUnknown_0203AB88->var94 > 60.0f)
+ return;
+
+ m4aSongNumStartOrChange(SE_TAMAKORO_E);
+ gUnknown_0203AB88->var98 = -(20.0f / (float)gUnknown_0203AB88->var84);
+ gUnknown_0203AB88->var90 = ((1.0f - gUnknown_0203AB88->var8C) / (float)gUnknown_0203AB88->var84);
+ sprite->animNum = 1;
+ sprite->animBeginning = TRUE;
+ sprite->animEnded = FALSE;
+ sprite->data[1] = 2;
+ sprite->callback = sub_8144514;
+}
+
+static void sub_81446AC(struct Sprite *sprite)
+{
+ sprite->data[1] = 1;
+ sprite->data[2] = 0;
+ sub_8143B84(sprite);
+ sprite->invisible = FALSE;
+ sprite->callback = sub_81445D8;
+}
+
+static void sub_81446DC(struct Sprite *sprite)
+{
+ u16 t;
+ u8 i;
+ s16 s[2][2] = {
+ {116, 44},
+ {116, 112}
+ };
+ struct Roulette *p;
+
+ t = sprite->data[7] - 2;
+ p = gUnknown_0203AB88; // why???
+ gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B79F8, 36, -12, 50);
+ gUnknown_0203AB88->var3C[56] = CreateSprite(&gSpriteTemplate_85B7ABC[0], s[sprite->data[0]][0], s[sprite->data[0]][1], 59);
+ gUnknown_0203AB88->var3C[57] = CreateSprite(&gSpriteTemplate_85B7ABC[1], 36, 140, 51);
+ gSprites[gUnknown_0203AB88->var3C[57]].oam.objMode = 1;
+ for (i = 0; i < 3; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].coordOffsetEnabled = FALSE;
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].invisible = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].animPaused = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].affineAnimPaused = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].data[4] = gUnknown_0203AB88->var3C[55];
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].data[5] = gUnknown_0203AB88->var3C[56];
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].data[6] = gUnknown_0203AB88->var3C[57];
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].data[2] = t;
+ gSprites[gUnknown_0203AB88->var3C[i + 55]].data[3] = (sprite->data[7] * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) +
+ (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var02 + 0xFFFF);
+ }
+ gSprites[gUnknown_0203AB88->var3C[56]].coordOffsetEnabled = TRUE;
+ gUnknown_0203AB88->var38 = sprite;
+}
+
+static void sub_81448B8(struct Sprite *sprite)
+{
+ u8 i = 0;
+ s16 t;
+ s16 s[2][2] = {
+ {256, 84},
+ {-16, 84}
+ };
+
+ t = sprite->data[7] - 2;
+ gUnknown_0203AB88->var3C[55] = CreateSprite(&gSpriteTemplate_85B7A10, s[sprite->data[0]][0], s[sprite->data[0]][1], 50);
+ StartSpriteAnim(&gSprites[gUnknown_0203AB88->var3C[55]], sprite->data[0]);
+ gUnknown_0203AB88->var3C[56] = CreateSprite(&gUnknown_085B7AEC, s[sprite->data[0]][0], s[sprite->data[0]][1], 51);
+ gSprites[gUnknown_0203AB88->var3C[56]].affineAnimPaused = TRUE;
+ gSprites[gUnknown_0203AB88->var3C[56]].animPaused = TRUE;
+ sprite->data[7] = (t * gUnknown_085B6348[gUnknown_0203AB88->var04_0].var01) + (gUnknown_085B6348[gUnknown_0203AB88->var04_0].var10 + 45);
+ for (; i < 2; i++)
+ {
+ gSprites[gUnknown_0203AB88->var3C[55 + i]].data[4] = gUnknown_0203AB88->var3C[55];
+ gSprites[gUnknown_0203AB88->var3C[55 + i]].data[5] = gUnknown_0203AB88->var3C[56];
+ gSprites[gUnknown_0203AB88->var3C[55 + i]].data[6] = gUnknown_0203AB88->var3C[56];
+ gSprites[gUnknown_0203AB88->var3C[55 + i]].data[2] = t;
+ gSprites[gUnknown_0203AB88->var3C[55 + i]].data[3] = sprite->data[7] - 45;
+ }
+ gUnknown_0203AB88->var38 = sprite;
+}
+
+#ifdef NONMATCHING
+static void sub_8144A24(struct Sprite *sprite)
+{
+ u8 z;
+ u16 o;
+ u8 h = 0; // r10 (sp+0xc)
+ u8 j = 5; // r9 (r9)
+ u8 p = 0; // sp+0xc (sp+0x10)
+ u8 i;
+ u8 s[10] = {}; // sp+0 (sp+0)
+ u16 t = Random(); // sp+0x10 (r10)
+
+ gUnknown_0203AB88->var7D = 1;
+ gUnknown_0203AB88->var03_5 = TRUE;
+ gUnknown_0203AB88->var03_6 = FALSE;
+ gUnknown_0203AB88->var7E = 0xFF;
+ gUnknown_0203AB88->var88 = sprite->data[3];
+ gUnknown_0203AB88->var98 = 0.0f;
+ gUnknown_0203AB88->var8C = gUnknown_085B6348[gUnknown_0203AB88->var04_0].var1C;
+ o = (gUnknown_0203AB88->var04_0 * 30 + 33) + (0x1 - gUnknown_0203AB88->var03_0) * 15;
+ for (i = 0; i < 4; i++)
+ {
+ if (o < sprite->data[3] && sprite->data[3] <= o + 90)
+ {
+ sprite->data[0] = i / 2;
+ gUnknown_0203AB88->var03_0 = i & 1;
+ break;
+ }
+ if (i == 3)
+ {
+ sprite->data[0] = 1;
+ gUnknown_0203AB88->var03_0 = 1;
+ break;
+ }
+ o += 90;
+ }
+ if (gUnknown_0203AB88->var03_0)
+ {
+ if (sprite->data[0])
+ {
+ PlayCry1(SPECIES_TAILLOW, -63);
+ }
+ else
+ {
+ PlayCry1(SPECIES_TAILLOW, 63);
+ }
+ }
+ else
+ {
+ PlayCry1(SPECIES_SHROOMISH, -63);
+ }
+ i = 2;
+ z = (gUnknown_0203AB88->var7F + 2) % 12;
+ if (gUnknown_0203AB88->var03_0 == 1 && gUnknown_0203AB88->var04_0 == 1)
+ j += 6;
+ else
+ j += i;
+ for (; i < j; i++)
+ {
+ if (!(gUnknown_0203AB88->var08 & gUnknown_085B62E4[z].var04))
+ {
+ s[h++] = i;
+ if (!p && (gUnknown_085B62E4[z].var04 & gUnknown_085B6154[gUnknown_0203AB88->var1B[gUnknown_0203AB88->var1A_0]].var00))
+ {
+ p = i;
+ }
+ }
+ z = (z + 1) % 0xC;
+ }
+ if ((gUnknown_0203AB88->var03_0 + 1) & gUnknown_0203AB88->var02)
+ {
+ if (p && (t & 0xFF) < 0xc0)
+ {
+ sprite->data[7] = p;
+ }
+ else
+ {
+ sprite->data[7] = s[t % h];
+ }
+ }
+ else
+ {
+ sprite->data[7] = s[t % h];
+ }
+ sprite->callback = sub_8144168;
+}
+#else
+NAKED
+static void sub_8144A24(struct Sprite *sprite)
+{
+ asm_unified("push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x14\n\
+ adds r7, r0, 0\n\
+ movs r0, 0\n\
+ mov r9, r0\n\
+ movs r1, 0x5\n\
+ mov r8, r1\n\
+ str r0, [sp, 0xC]\n\
+ mov r0, sp\n\
+ movs r1, 0\n\
+ movs r2, 0xA\n\
+ bl memset\n\
+ bl Random\n\
+ lsls r0, 16\n\
+ lsrs r0, 16\n\
+ str r0, [sp, 0x10]\n\
+ ldr r3, _08144B10 @ =gUnknown_0203AB88\n\
+ ldr r0, [r3]\n\
+ adds r0, 0x7D\n\
+ movs r5, 0x1\n\
+ strb r5, [r0]\n\
+ ldr r2, [r3]\n\
+ ldrb r0, [r2, 0x3]\n\
+ movs r1, 0x20\n\
+ orrs r0, r1\n\
+ strb r0, [r2, 0x3]\n\
+ ldr r2, [r3]\n\
+ ldrb r1, [r2, 0x3]\n\
+ movs r0, 0x41\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ strb r0, [r2, 0x3]\n\
+ ldr r0, [r3]\n\
+ adds r0, 0x7E\n\
+ movs r1, 0xFF\n\
+ strb r1, [r0]\n\
+ ldr r6, [r3]\n\
+ adds r4, r6, 0\n\
+ adds r4, 0x88\n\
+ movs r1, 0x34\n\
+ ldrsh r0, [r7, r1]\n\
+ bl __floatsisf\n\
+ str r0, [r4]\n\
+ adds r1, r6, 0\n\
+ adds r1, 0x98\n\
+ ldr r0, _08144B14 @ =0x00000000\n\
+ str r0, [r1]\n\
+ adds r2, r6, 0\n\
+ adds r2, 0x8C\n\
+ ldr r1, _08144B18 @ =gUnknown_085B6348\n\
+ ldrb r0, [r6, 0x4]\n\
+ lsls r0, 30\n\
+ lsrs r0, 25\n\
+ adds r1, 0x1C\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ str r0, [r2]\n\
+ ldrb r0, [r6, 0x4]\n\
+ lsls r0, 30\n\
+ lsrs r0, 30\n\
+ lsls r1, r0, 4\n\
+ subs r1, r0\n\
+ lsls r1, 1\n\
+ adds r1, 0x21\n\
+ ldrb r0, [r6, 0x3]\n\
+ lsls r0, 27\n\
+ lsrs r0, 27\n\
+ subs r5, r0\n\
+ lsls r0, r5, 4\n\
+ subs r0, r5\n\
+ adds r1, r0\n\
+ lsls r1, 16\n\
+ lsrs r1, 16\n\
+ mov r5, r9\n\
+ movs r0, 0x34\n\
+ ldrsh r2, [r7, r0]\n\
+_08144ACA:\n\
+ cmp r1, r2\n\
+ bge _08144AD6\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x5A\n\
+ cmp r2, r0\n\
+ ble _08144B38\n\
+_08144AD6:\n\
+ cmp r5, 0x3\n\
+ beq _08144B1C\n\
+ adds r0, r1, 0\n\
+ adds r0, 0x5A\n\
+ lsls r0, 16\n\
+ lsrs r1, r0, 16\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, 0x3\n\
+ bls _08144ACA\n\
+_08144AEC:\n\
+ ldr r0, _08144B10 @ =gUnknown_0203AB88\n\
+ ldr r0, [r0]\n\
+ ldrb r1, [r0, 0x3]\n\
+ movs r0, 0x1F\n\
+ ands r0, r1\n\
+ cmp r0, 0\n\
+ beq _08144B64\n\
+ movs r1, 0x2E\n\
+ ldrsh r0, [r7, r1]\n\
+ cmp r0, 0\n\
+ beq _08144B58\n\
+ movs r0, 0x98\n\
+ lsls r0, 1\n\
+ movs r1, 0x3F\n\
+ negs r1, r1\n\
+ bl PlayCry1\n\
+ b _08144B70\n\
+ .align 2, 0\n\
+_08144B10:\n\
+ .4byte gUnknown_0203AB88\n\
+_08144B14:\n\
+ .4byte 0x00000000\n\
+_08144B18:\n\
+ .4byte gUnknown_085B6348\n\
+_08144B1C:\n\
+ movs r0, 0x1\n\
+ strh r0, [r7, 0x2E]\n\
+ ldr r0, =gUnknown_0203AB88\n\
+ ldr r2, [r0]\n\
+ ldrb r1, [r2, 0x3]\n\
+ movs r0, 0x20\n\
+ negs r0, r0\n\
+ ands r0, r1\n\
+ movs r1, 0x1\n\
+ orrs r0, r1\n\
+ strb r0, [r2, 0x3]\n\
+ b _08144AEC\n\
+ .pool\n\
+_08144B38:\n\
+ lsrs r0, r5, 1\n\
+ strh r0, [r7, 0x2E]\n\
+ ldr r0, =gUnknown_0203AB88\n\
+ ldr r3, [r0]\n\
+ movs r1, 0x1\n\
+ ands r1, r5\n\
+ ldrb r2, [r3, 0x3]\n\
+ movs r0, 0x20\n\
+ negs r0, r0\n\
+ ands r0, r2\n\
+ orrs r0, r1\n\
+ strb r0, [r3, 0x3]\n\
+ b _08144AEC\n\
+ .pool\n\
+_08144B58:\n\
+ movs r0, 0x98\n\
+ lsls r0, 1\n\
+ movs r1, 0x3F\n\
+ bl PlayCry1\n\
+ b _08144B70\n\
+_08144B64:\n\
+ movs r0, 0x99\n\
+ lsls r0, 1\n\
+ movs r1, 0x3F\n\
+ negs r1, r1\n\
+ bl PlayCry1\n\
+_08144B70:\n\
+ movs r0, 0x2\n\
+ mov r10, r0\n\
+ ldr r4, =gUnknown_0203AB88\n\
+ ldr r5, [r4]\n\
+ adds r0, r5, 0\n\
+ adds r0, 0x7F\n\
+ ldrb r0, [r0]\n\
+ adds r0, 0x2\n\
+ movs r1, 0xC\n\
+ bl __modsi3\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ ldrb r1, [r5, 0x3]\n\
+ movs r0, 0x1F\n\
+ ands r0, r1\n\
+ cmp r0, 0x1\n\
+ bne _08144BA8\n\
+ ldrb r1, [r5, 0x4]\n\
+ movs r0, 0x3\n\
+ ands r0, r1\n\
+ cmp r0, 0x1\n\
+ bne _08144BA8\n\
+ mov r0, r8\n\
+ adds r0, 0x6\n\
+ b _08144BAC\n\
+ .pool\n\
+_08144BA8:\n\
+ mov r0, r8\n\
+ add r0, r10\n\
+_08144BAC:\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ mov r5, r10\n\
+ cmp r5, r8\n\
+ bcs _08144C18\n\
+ ldr r1, =gUnknown_085B6154+0xC\n\
+ mov r10, r1\n\
+_08144BBC:\n\
+ ldr r3, [r4]\n\
+ lsls r0, r6, 3\n\
+ ldr r1, =gUnknown_085B62E4+0x4\n\
+ adds r0, r1\n\
+ ldr r1, [r3, 0x8]\n\
+ ldr r2, [r0]\n\
+ ands r1, r2\n\
+ cmp r1, 0\n\
+ bne _08144C02\n\
+ mov r0, r9\n\
+ adds r1, r0, 0x1\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ mov r9, r1\n\
+ add r0, sp\n\
+ strb r5, [r0]\n\
+ ldr r0, [sp, 0xC]\n\
+ cmp r0, 0\n\
+ bne _08144C02\n\
+ ldrb r1, [r3, 0x1A]\n\
+ lsls r1, 28\n\
+ lsrs r1, 28\n\
+ adds r0, r3, 0\n\
+ adds r0, 0x1B\n\
+ adds r0, r1\n\
+ ldrb r1, [r0]\n\
+ lsls r0, r1, 2\n\
+ adds r0, r1\n\
+ lsls r0, 2\n\
+ add r0, r10\n\
+ ldr r0, [r0]\n\
+ ands r2, r0\n\
+ cmp r2, 0\n\
+ beq _08144C02\n\
+ str r5, [sp, 0xC]\n\
+_08144C02:\n\
+ adds r0, r6, 0x1\n\
+ movs r1, 0xC\n\
+ bl __modsi3\n\
+ lsls r0, 24\n\
+ lsrs r6, r0, 24\n\
+ adds r0, r5, 0x1\n\
+ lsls r0, 24\n\
+ lsrs r5, r0, 24\n\
+ cmp r5, r8\n\
+ bcc _08144BBC\n\
+_08144C18:\n\
+ ldr r0, [r4]\n\
+ ldrb r1, [r0, 0x3]\n\
+ lsls r1, 27\n\
+ lsrs r1, 27\n\
+ adds r1, 0x1\n\
+ ldrb r0, [r0, 0x2]\n\
+ ands r1, r0\n\
+ cmp r1, 0\n\
+ beq _08144C48\n\
+ ldr r1, [sp, 0xC]\n\
+ cmp r1, 0\n\
+ beq _08144C48\n\
+ movs r0, 0xFF\n\
+ ldr r1, [sp, 0x10]\n\
+ ands r0, r1\n\
+ cmp r0, 0xBF\n\
+ bhi _08144C48\n\
+ mov r0, sp\n\
+ ldrh r0, [r0, 0xC]\n\
+ b _08144C54\n\
+ .pool\n\
+_08144C48:\n\
+ ldr r0, [sp, 0x10]\n\
+ mov r1, r9\n\
+ bl __modsi3\n\
+ add r0, sp\n\
+ ldrb r0, [r0]\n\
+_08144C54:\n\
+ strh r0, [r7, 0x3C]\n\
+ ldr r1, =sub_8144168\n\
+ str r1, [r7, 0x1C]\n\
+ add sp, 0x14\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r0}\n\
+ bx r0\n\
+ .pool");
+}
+#endif // NONMATCHING
+
+static const u16 gUnknown_085B7B1A[] = {
+ 0x907,
+ 0x808,
+ 0x709,
+ 0x60A,
+ 0x50B,
+ 0x40C,
+ 0x30D,
+ 0x20E,
+ 0x10F,
+ 0x010,
+};
+
+static void sub_8144C70(struct Sprite *sprite)
+{
+ if (sprite->data[1]++ >= sprite->data[3])
+ {
+ sprite->pos1.x -= 2;
+ if (sprite->pos1.x < -16)
+ {
+ if (!gUnknown_0203AB88->var03_6)
+ gUnknown_0203AB88->var03_6 = TRUE;
+ DestroySprite(sprite);
+ gUnknown_0203AB88->var01 = 0;
+ gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0];
+ }
+ }
+}
+
+static void sub_8144CD0(struct Sprite *sprite)
+{
+ int p;
+ u16 t[][4] = {
+ {-1, 0, 1, 0},
+ {-2, 0, 2, 0},
+ {-3, 0, 3, 0},
+ };
+
+ if (sprite->data[1]++ < sprite->data[3])
+ {
+ if (sprite->data[1] & 1)
+ {
+ gSpriteCoordOffsetY = t[sprite->data[2] / 2][sprite->data[7]];
+ p = sprite->data[7] + 1;
+ sprite->data[7] = p - ((p / 4) * 4);
+ }
+ sprite->invisible ^= 1;
+ }
+ else
+ {
+ gSpriteCoordOffsetY = 0;
+ gSprites[gUnknown_0203AB88->var3C[55]].animPaused = FALSE;
+ DestroySprite(sprite);
+ }
+}
+
+static void sub_8144D94(struct Sprite *sprite)
+{
+ float t;
+ sprite->data[1]++;
+ t = sprite->data[1];
+ sprite->pos2.y = t * 0.039f * t;
+ gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2];
+ if (gUnknown_0203AB88->var01 < 19)
+ gUnknown_0203AB88->var01++;
+ if (sprite->data[1] > 60)
+ {
+ sprite->data[1] = 0;
+ sprite->callback = sub_8144C70;
+ gSprites[sprite->data[6]].callback = sub_8144C70;
+ gSprites[sprite->data[6]].data[1] = -2;
+ gSprites[sprite->data[5]].invisible = FALSE;
+ gSprites[sprite->data[5]].callback = sub_8144CD0;
+ m4aSongNumStart(SE_W070);
+ }
+}
+
+static void sub_8144E60(struct Sprite *sprite)
+{
+ if (sprite->data[7] == 0)
+ {
+ if (gUnknown_0203AB88->var38->data[0] == 0)
+ {
+ if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08)
+ return;
+ }
+ else
+ {
+ if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var08 + 180)
+ return;
+ }
+
+ sprite->invisible = FALSE;
+ sprite->data[7]++;
+ m4aSongNumStart(SE_RU_HYUU);
+ gUnknown_0203AB88->var01 = 1;
+ gUnknown_0203AB88->var34 = gUnknown_085B7B1A[0];
+ }
+ else
+ {
+ gUnknown_0203AB88->var34 = gUnknown_085B7B1A[(gUnknown_0203AB88->var01 - 1) / 2];
+ if (gUnknown_0203AB88->var01 < 19)
+ gUnknown_0203AB88->var01++;
+
+ if (gUnknown_0203AB88->var38->data[0] == 0)
+ {
+ if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A)
+ return;
+ }
+ else
+ {
+ if (gUnknown_0203AB88->var38->data[3] != gUnknown_085B6348[gUnknown_0203AB88->var04_0].var0A + 180)
+ return;
+ }
+
+ gSprites[sprite->data[4]].callback = sub_8144D94;
+ gSprites[sprite->data[4]].invisible = FALSE;
+ sprite->callback = &SpriteCallbackDummy;
+ sprite->data[7] = 0;
+ }
+}
+
+static void sub_8144F94(struct Sprite *sprite)
+{
+ sprite->invisible ^= 1;
+}
+
+static void sub_8144FB0(struct Sprite *sprite)
+{
+ if (sprite->pos1.y > -16)
+ {
+ sprite->pos1.y--;
+ }
+ else
+ {
+ sprite->callback = SpriteCallbackDummy;
+ sprite->invisible = TRUE;
+ sprite->animPaused = TRUE;
+ m4aSongNumStop(SE_BASABASA);
+ DestroySprite(sprite);
+ FreeOamMatrix(gSprites[gUnknown_0203AB88->var3C[56]].oam.matrixNum);
+ DestroySprite(&gSprites[gUnknown_0203AB88->var3C[56]]);
+ }
+}
+
+static void sub_8145030(struct Sprite *sprite)
+{
+ if (sprite->data[1] >= 0)
+ {
+ sprite->data[1]--;
+ sprite->pos1.y--;
+ if (sprite->data[1] == 0 && sprite->animCmdIndex == 1)
+ sprite->pos2.y++;
+ }
+ else
+ {
+ if (sprite->data[3] >= 0)
+ {
+ sprite->data[3]--;
+ if (sprite->animDelayCounter == 0)
+ {
+ if (sprite->animCmdIndex == 1)
+ sprite->pos2.y++;
+ else
+ sprite->pos2.y--;
+ }
+ }
+ else
+ {
+ m4aSongNumStart(SE_RU_HYUU);
+ StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 4);
+ sprite->callback = sub_8144FB0;
+ gSprites[sprite->data[6]].affineAnimPaused = FALSE;
+ }
+ }
+}
+
+static void sub_81450D8(struct Sprite *sprite)
+{
+ s8 t[2] = {-1, 1};
+ s8 z[][2] = {
+ {2, 0},
+ {2, 0},
+ {2, -1},
+ {2, -1},
+ {2, -1},
+ {2, -1},
+ {2, -2},
+ {2, -2},
+ };
+
+ if (sprite->data[1]-- > 7)
+ {
+ sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2;
+ if (IsSEPlaying())
+ {
+ s8 pan = -((116 - sprite->pos1.x) / 2);
+ m4aMPlayPanpotControl(&gMPlayInfo_SE1, 0xFFFF, pan);
+ m4aMPlayPanpotControl(&gMPlayInfo_SE2, 0xFFFF, pan);
+ }
+ }
+ else
+ {
+ if (sprite->data[1] >= 0)
+ {
+ sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * z[7 - sprite->data[1]][0];
+ sprite->pos1.y += z[7 - sprite->data[1]][1];
+ }
+ else
+ {
+ m4aSongNumStartOrChange(SE_BASABASA);
+ if (gUnknown_0203AB88->var38->data[0] == 0)
+ PlayCry1(SPECIES_TAILLOW, 63);
+ else
+ PlayCry1(SPECIES_TAILLOW, -63);
+ StartSpriteAnim(sprite, gUnknown_0203AB88->var38->data[0] + 2);
+ sprite->data[1] = 45;
+ sprite->callback = sub_8145030;
+ }
+ }
+}
+
+static void sub_8145218(struct Sprite *sprite)
+{
+ s8 t[2] = {-1, 1};
+
+ if (sprite->data[1]-- >= 0)
+ {
+ sprite->pos1.x += t[gUnknown_0203AB88->var38->data[0]] * 2;
+ gSprites[sprite->data[6]].invisible ^= 1;
+ }
+ else
+ {
+ sprite->callback = sub_8144F94;
+ }
+}
+
+static void sub_8145294(struct Sprite *sprite)
+{
+ if (gUnknown_0203AB88->var38->data[0] == 0)
+ {
+ if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var12 + 90)
+ {
+ gSprites[sprite->data[6]].data[1] = 52;
+ gSprites[sprite->data[4]].data[1] = 52;
+ }
+ else
+ {
+ return;
+ }
+ }
+ else
+ {
+ if (gUnknown_0203AB88->var38->data[3] == gUnknown_085B6348[gUnknown_0203AB88->var04_0].var14 + 270)
+ {
+ gSprites[sprite->data[6]].data[1] = 46;
+ gSprites[sprite->data[4]].data[1] = 46;
+ }
+ else
+ {
+ return;
+ }
+ }
+ gSprites[sprite->data[6]].callback = sub_8145218;
+ gSprites[sprite->data[4]].callback = sub_81450D8;
+ m4aSongNumStart(SE_RU_HYUU);
+}
diff --git a/src/roulette_util.c b/src/roulette_util.c
index c556a4af5..9531302d9 100755
--- a/src/roulette_util.c
+++ b/src/roulette_util.c
@@ -11,7 +11,7 @@ void sub_8151678(struct UnkStruct0 *r0)
memset(&r0->var04, 0, sizeof(r0->var04));
}
-u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, struct UnkStruct1 *r2)
+u8 sub_815168C(struct UnkStruct0 *r0, u8 r1, const struct UnkStruct1 *r2)
{
if (!(r1 < 16) || (r0->var04[r1].var00_7))
return 0xFF;
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/src/secret_base.c b/src/secret_base.c
index dbb3c9be4..ebc01b333 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -1032,7 +1032,7 @@ void sub_80E9FFC(u8 taskId)
void sub_80EA06C(u8 taskId)
{
DisplayYesNoMenu();
- sub_8121F68(taskId, &gUnknown_0858D058);
+ DoYesNoFuncWithChoice(taskId, &gUnknown_0858D058);
}
void sub_80EA08C(u8 taskId)
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 96a107711..825a4632f 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -226,13 +226,7 @@ gPlayerFacingPosition: @ 203AB40
.include "src/battle_records.o"
.include "src/pokedex_area_screen.o"
.include "src/evolution_scene.o"
-
-gUnknown_0203AB88: @ 203AB88
- .space 0x4
-
-gUnknown_0203AB8C: @ 203AB8C
- .space 0x4
-
+ .include "src/roulette.o"
.include "src/pokedex_cry_screen.o"
.include "src/coins.o"
.include "src/battle_transition.o"
@@ -263,13 +257,7 @@ gUnknown_0203AB8C: @ 203AB8C
.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"