summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <PikalaxALT@users.noreply.github.com>2019-04-11 19:21:51 -0400
committerGitHub <noreply@github.com>2019-04-11 19:21:51 -0400
commit24bb85896d9e670c0fa419dc7cb6c96b5d0806c7 (patch)
treeeba61257e555461f5d9662fea9477561bef51adf
parent532907559304e1b32f8efa76e2fb8a2fc526ec02 (diff)
parentc85f726224bbe53502ba98557d2c89eef89d7fbd (diff)
Merge pull request #47 from PikalaxALT/roamer
Roamer
-rw-r--r--asm/battle_1.s2
-rw-r--r--asm/battle_2.s8
-rw-r--r--asm/battle_message.s2
-rw-r--r--asm/berry_pouch.s4
-rw-r--r--asm/buy_menu_helpers.s2
-rw-r--r--asm/cable_club.s2
-rw-r--r--asm/credits.s4
-rw-r--r--asm/daycare.s6
-rw-r--r--asm/field_effect.s4
-rw-r--r--asm/field_message_box.s6
-rw-r--r--asm/field_player_avatar.s4
-rw-r--r--asm/field_screen_effect.s2
-rw-r--r--asm/field_specials.s24
-rw-r--r--asm/hall_of_fame.s32
-rw-r--r--asm/help_system_812B1E0.s24
-rw-r--r--asm/intro.s12
-rw-r--r--asm/item_menu.s8
-rw-r--r--asm/item_pc.s6
-rw-r--r--asm/item_use.s2
-rw-r--r--asm/itemfinder.s4
-rw-r--r--asm/learn_move.s2
-rw-r--r--asm/link_rfu_3.s36
-rw-r--r--asm/list_menu.s2
-rw-r--r--asm/mail.s4
-rw-r--r--asm/main_menu.s2
-rw-r--r--asm/menu.s28
-rw-r--r--asm/naming_screen.s10
-rw-r--r--asm/new_game.s2
-rw-r--r--asm/new_menu_helpers.s58
-rw-r--r--asm/option_menu.s2
-rw-r--r--asm/overworld.s8
-rw-r--r--asm/party_menu.s8
-rw-r--r--asm/player_pc.s32
-rw-r--r--asm/pokedex_screen.s2
-rw-r--r--asm/pokemon_3.s6
-rw-r--r--asm/pokemon_special_anim.s2
-rw-r--r--asm/pokemon_storage_system.s18
-rw-r--r--asm/pokemon_summary_screen.s8
-rw-r--r--asm/reshow_battle_screen.s8
-rw-r--r--asm/roamer.s531
-rw-r--r--asm/script_menu.s6
-rw-r--r--asm/shop.s2
-rw-r--r--asm/start_menu.s18
-rw-r--r--asm/teachy_tv.s2
-rw-r--r--asm/title_screen.s2
-rw-r--r--asm/tm_case.s4
-rw-r--r--asm/trade.s2
-rw-r--r--asm/trainer_card.s8
-rw-r--r--asm/union_room_chat.s4
-rw-r--r--asm/unk_814BB4C.s14
-rw-r--r--asm/unk_814D5C8.s4
-rw-r--r--asm/unk_81507FC.s6
-rw-r--r--asm/wild_pokemon_area.s4
-rw-r--r--asm/wireless_communication_status_screen.s2
-rw-r--r--data/data_835B488.s8
-rw-r--r--data/data_83F5738.s2
-rw-r--r--data/data_83FECCC.s28
-rw-r--r--data/event_scripts.s130
-rw-r--r--data/oak_speech/unk_8462A10.pngbin271 -> 341 bytes
-rw-r--r--data/oak_speech/unk_8462B74.pngbin350 -> 414 bytes
-rw-r--r--data/oak_speech/unk_8462D34.pngbin228 -> 297 bytes
-rw-r--r--data/oak_speech/unk_8462E18.pngbin119 -> 187 bytes
-rw-r--r--data/roamer.s5
-rw-r--r--data/specials.inc4
-rw-r--r--include/constants/vars.h2
-rw-r--r--include/event_scripts.h132
-rw-r--r--include/field_specials.h1
-rw-r--r--include/help_system.h2
-rw-r--r--include/menu.h11
-rw-r--r--include/new_menu_helpers.h14
-rw-r--r--include/oak_speech.h3
-rw-r--r--include/pokemon_3.h2
-rw-r--r--include/text.h2
-rw-r--r--ld_script.txt4
-rw-r--r--src/fame_checker.c6
-rw-r--r--src/menu2.c4
-rw-r--r--src/mevent_8145654.c4
-rw-r--r--src/oak_speech.c877
-rw-r--r--src/roamer.c238
-rw-r--r--src/scrcmd.c2
-rw-r--r--src/text.c2
-rw-r--r--src/trainer_tower.c2
-rw-r--r--src/vs_seeker.c2
-rw-r--r--sym_ewram.txt4
84 files changed, 1100 insertions, 1396 deletions
diff --git a/asm/battle_1.s b/asm/battle_1.s
index abaad7e85..6ae993e27 100644
--- a/asm/battle_1.s
+++ b/asm/battle_1.s
@@ -253,7 +253,7 @@ sub_800F380: @ 800F380
cmp r0, 0
beq _0800F3EA
movs r0, 0x70
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
movs r0, 0
movs r1, 0x30
movs r2, 0x70
diff --git a/asm/battle_2.s b/asm/battle_2.s
index e5827747b..ec9fa32a3 100644
--- a/asm/battle_2.s
+++ b/asm/battle_2.s
@@ -45,11 +45,11 @@ _0800FDD8:
cmp r1, 0
beq _0800FDFE
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FDFE:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE06:
movs r0, 0x80
@@ -57,11 +57,11 @@ _0800FE06:
cmp r1, 0
beq _0800FE16
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0800FE1C
_0800FE16:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_0800FE1C:
pop {r4}
pop {r0}
diff --git a/asm/battle_message.s b/asm/battle_message.s
index 183306f97..9505d542b 100644
--- a/asm/battle_message.s
+++ b/asm/battle_message.s
@@ -2863,7 +2863,7 @@ _080D894A:
movs r3, 0x1
b _080D8960
_080D8958:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r3, r0, 24
_080D8960:
diff --git a/asm/berry_pouch.s b/asm/berry_pouch.s
index 050c42606..8b639487f 100644
--- a/asm/berry_pouch.s
+++ b/asm/berry_pouch.s
@@ -1974,7 +1974,7 @@ _0813DC86:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
bl sub_813EA08
adds r4, r0, 0
@@ -3642,7 +3642,7 @@ sub_813EB20: @ 813EB20
bl AddWindow
strb r0, [r4, 0x5]
_0813EB44:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x5]
diff --git a/asm/buy_menu_helpers.s b/asm/buy_menu_helpers.s
index 734e648b3..224bfa20c 100644
--- a/asm/buy_menu_helpers.s
+++ b/asm/buy_menu_helpers.s
@@ -141,7 +141,7 @@ sub_813F75C: @ 813F75C
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
diff --git a/asm/cable_club.s b/asm/cable_club.s
index 45967283c..a403aa659 100644
--- a/asm/cable_club.s
+++ b/asm/cable_club.s
@@ -91,7 +91,7 @@ sub_80807E8: @ 80807E8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
movs r1, 0x3
bl CopyWindowToVram
diff --git a/asm/credits.s b/asm/credits.s
index bf8c5eeac..0413aac97 100644
--- a/asm/credits.s
+++ b/asm/credits.s
@@ -241,7 +241,7 @@ _080F3B5E:
bl sub_80F3A74
bl sub_80F3AA4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3BC8 @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
@@ -325,7 +325,7 @@ _080F3C64:
bl sub_80F3AA4
bl sub_80F3AC4
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
ldr r0, _080F3C8C @ =gPlttBufferUnfaded
movs r2, 0xFF
lsls r2, 1
diff --git a/asm/daycare.s b/asm/daycare.s
index 3b7d7ffe0..c19aa1bdf 100644
--- a/asm/daycare.s
+++ b/asm/daycare.s
@@ -3011,7 +3011,7 @@ _08046A46:
bl sub_810713C
ldrb r0, [r4, 0xA]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0xA]
bl RemoveWindow
adds r0, r5, 0
@@ -3035,7 +3035,7 @@ _08046A7C:
bl sub_810713C
ldrb r0, [r4, 0xA]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0xA]
bl RemoveWindow
adds r0, r5, 0
@@ -3060,7 +3060,7 @@ ShowDaycareLevelMenu: @ 8046AB8
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
mov r1, sp
ldr r0, _08046B1C @ =gUnknown_825F814
ldm r0!, {r2,r3,r5}
diff --git a/asm/field_effect.s b/asm/field_effect.s
index 5aa0772dd..785e36266 100644
--- a/asm/field_effect.s
+++ b/asm/field_effect.s
@@ -2542,7 +2542,7 @@ sub_8084708: @ 8084708
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08084760:
ldr r0, _08084780 @ =sub_8084484
bl FindTaskIdByFunc
@@ -7213,7 +7213,7 @@ sub_8086B30: @ 8086B30
lsrs r0, 24
bl DestroyTask
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08086B96:
pop {r4,r5}
pop {r0}
diff --git a/asm/field_message_box.s b/asm/field_message_box.s
index 78a5f8c8c..46f4c3f8e 100644
--- a/asm/field_message_box.s
+++ b/asm/field_message_box.s
@@ -83,7 +83,7 @@ _080693D4:
_080693DA:
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
_080693E2:
ldrh r0, [r5, 0x8]
adds r0, 0x1
@@ -250,7 +250,7 @@ HideFieldMessageBox: @ 80694F4
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r1, _0806950C @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
@@ -293,7 +293,7 @@ sub_8069538: @ 8069538
bl task_del_textbox
movs r0, 0
movs r1, 0x1
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _08069550 @ =gUnknown_203709C
movs r0, 0
strb r0, [r1]
diff --git a/asm/field_player_avatar.s b/asm/field_player_avatar.s
index df2588587..b7824ee84 100644
--- a/asm/field_player_avatar.s
+++ b/asm/field_player_avatar.s
@@ -4769,7 +4769,7 @@ _0805D748:
strh r6, [r0, 0x26]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldrh r0, [r5, 0xA]
adds r0, 0x1
strh r0, [r5, 0xA]
@@ -5043,7 +5043,7 @@ sub_805D980: @ 805D980
bl UnfreezeMapObjects
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
ldr r0, _0805D9C0 @ =sub_805D304
bl FindTaskIdByFunc
lsls r0, 24
diff --git a/asm/field_screen_effect.s b/asm/field_screen_effect.s
index 734c7495d..24ca7a19a 100644
--- a/asm/field_screen_effect.s
+++ b/asm/field_screen_effect.s
@@ -869,7 +869,7 @@ _0807F4A8:
adds r7, r0, r1
strh r5, [r7, 0xA]
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
adds r0, r5, 0
movs r1, 0
bl FillWindowPixelBuffer
diff --git a/asm/field_specials.s b/asm/field_specials.s
index 4c0b97151..e930a2ee7 100644
--- a/asm/field_specials.s
+++ b/asm/field_specials.s
@@ -756,7 +756,7 @@ sub_80CAB78: @ 80CAB78
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r6, r0, 16
bl CalculatePlayerPartyCount
@@ -3078,15 +3078,15 @@ _080CBD7C: .4byte gTasks
sub_80CBD80: @ 80CBD80
push {lr}
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
movs r0, 0x8
bl SetPlayerAvatarTransitionFlags
pop {r0}
bx r0
thumb_func_end sub_80CBD80
- thumb_func_start sub_80CBD94
-sub_80CBD94: @ 80CBD94
+ thumb_func_start GetStarterPokemon
+GetStarterPokemon: @ 80CBD94
push {lr}
lsls r0, 16
lsrs r1, r0, 16
@@ -3094,31 +3094,31 @@ sub_80CBD94: @ 80CBD94
bls _080CBDA0
movs r1, 0
_080CBDA0:
- ldr r0, _080CBDAC @ =gUnknown_83F5D2C
+ ldr r0, _080CBDAC @ =sStarterMon
lsls r1, 1
adds r1, r0
ldrh r0, [r1]
pop {r1}
bx r1
.align 2, 0
-_080CBDAC: .4byte gUnknown_83F5D2C
- thumb_func_end sub_80CBD94
+_080CBDAC: .4byte sStarterMon
+ thumb_func_end GetStarterPokemon
- thumb_func_start sub_80CBDB0
-sub_80CBDB0: @ 80CBDB0
+ thumb_func_start ScrSpecial_GetStarter
+ScrSpecial_GetStarter: @ 80CBDB0
push {lr}
ldr r0, _080CBDC8 @ =0x00004031
bl VarGet
lsls r0, 16
lsrs r0, 16
- bl sub_80CBD94
+ bl GetStarterPokemon
lsls r0, 16
lsrs r0, 16
pop {r1}
bx r1
.align 2, 0
_080CBDC8: .4byte 0x00004031
- thumb_func_end sub_80CBDB0
+ thumb_func_end ScrSpecial_GetStarter
thumb_func_start sub_80CBDCC
sub_80CBDCC: @ 80CBDCC
@@ -5542,7 +5542,7 @@ sub_80CD098: @ 80CD098
str r3, [sp]
movs r0, 0
movs r3, 0
- bl sub_8006300
+ bl CreateTextCursorSpriteForOakSpeech
ldr r1, _080CD0DC @ =gUnknown_2039A1B
strb r0, [r1]
b _080CD0E8
diff --git a/asm/hall_of_fame.s b/asm/hall_of_fame.s
index 5aa8a055c..c74165999 100644
--- a/asm/hall_of_fame.s
+++ b/asm/hall_of_fame.s
@@ -508,7 +508,7 @@ _080F21B2:
bl memcpy
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F2214 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -723,7 +723,7 @@ _080F22F2:
strh r0, [r1]
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r4, r5
ldr r0, _080F239C @ =sub_80F23A0
str r0, [r4]
@@ -1265,7 +1265,7 @@ _080F27AC:
bl sub_80F33DC
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F27FC @ =gUnknown_84160C8
str r5, [sp]
movs r0, 0x2
@@ -1607,7 +1607,7 @@ sub_80F2AA4: @ 80F2AA4
movs r1, 0x1E
movs r2, 0
movs r3, 0xC
- bl sub_810F558
+ bl CreateWindow_SnapRight_StdPal
movs r0, 0x3
bl Save_LoadGameData
lsls r0, 24
@@ -1888,13 +1888,13 @@ _080F2CB4:
ldrsh r0, [r4, r1]
cmp r0, 0
bgt _080F2D24
- ldr r1, _080F2D20 @ =gUnknown_8415D78
+ ldr r1, _080F2D20 @ =gText_UPDOWNPick_ABUTTONBBUTTONCancel
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
b _080F2D34
.align 2, 0
_080F2D08: .4byte 0xffff0000
@@ -1903,15 +1903,15 @@ _080F2D10: .4byte gStringVar1
_080F2D14: .4byte gTasks
_080F2D18: .4byte gStringVar4
_080F2D1C: .4byte gUnknown_84160B4
-_080F2D20: .4byte gUnknown_8415D78
+_080F2D20: .4byte gText_UPDOWNPick_ABUTTONBBUTTONCancel
_080F2D24:
- ldr r1, _080F2D54 @ =gUnknown_8415D60
+ ldr r1, _080F2D54 @ =gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
movs r0, 0x1
str r0, [sp]
adds r0, r5, 0
movs r2, 0
movs r3, 0
- bl sub_810F650
+ bl Menu_PrintHelpSystemUIHeader
_080F2D34:
ldr r0, _080F2D58 @ =gTasks
ldr r1, [sp, 0x14]
@@ -1929,7 +1929,7 @@ _080F2D34:
pop {r0}
bx r0
.align 2, 0
-_080F2D54: .4byte gUnknown_8415D60
+_080F2D54: .4byte gText_UPDOWNPick_ABUTTONNext_BBUTTONBack
_080F2D58: .4byte gTasks
_080F2D5C: .4byte Task_HofPC_PrintMonInfo
thumb_func_end sub_80F2B6C
@@ -2339,13 +2339,13 @@ sub_80F30A4: @ 80F30A4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- ldr r0, _080F30FC @ =gUnknown_8415D8C
+ ldr r0, _080F30FC @ =gText_ABUTTONExit
movs r1, 0x8
movs r2, 0x1
- bl sub_810F5E8
+ bl PrintTextOnRightSnappedWindow
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080F3100 @ =gUnknown_8416090
movs r0, 0
str r0, [sp]
@@ -2374,7 +2374,7 @@ sub_80F30A4: @ 80F30A4
pop {r0}
bx r0
.align 2, 0
-_080F30FC: .4byte gUnknown_8415D8C
+_080F30FC: .4byte gText_ABUTTONExit
_080F3100: .4byte gUnknown_8416090
_080F3104: .4byte gTasks
_080F3108: .4byte Task_HofPC_ExitOnButtonPress
@@ -3223,8 +3223,8 @@ _080F37C8:
bl CopyBgTilemapBufferToVram
b _080F3854
_080F381E:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
b _080F3854
_080F3828:
movs r1, 0x82
diff --git a/asm/help_system_812B1E0.s b/asm/help_system_812B1E0.s
index bca296e67..b88a86b47 100644
--- a/asm/help_system_812B1E0.s
+++ b/asm/help_system_812B1E0.s
@@ -16,8 +16,8 @@ sub_812B1E0: @ 812B1E0
_0812B1EC: .4byte gUnknown_203B0EC
thumb_func_end sub_812B1E0
- thumb_func_start sub_812B1F0
-sub_812B1F0: @ 812B1F0
+ thumb_func_start HelpSystem_SetSomeVariable2
+HelpSystem_SetSomeVariable2: @ 812B1F0
push {lr}
lsls r0, 24
lsrs r1, r0, 24
@@ -44,7 +44,7 @@ _0812B218:
bx r0
.align 2, 0
_0812B21C: .4byte gUnknown_203B0EC
- thumb_func_end sub_812B1F0
+ thumb_func_end HelpSystem_SetSomeVariable2
thumb_func_start sub_812B220
sub_812B220: @ 812B220
@@ -240,7 +240,7 @@ sub_812B35C: @ 812B35C
cmp r0, 0
beq _0812B376
movs r0, 0x16
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B376:
bl sub_812B2C4
@@ -248,7 +248,7 @@ _0812B376:
cmp r0, 0
beq _0812B388
movs r0, 0x15
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B388:
ldr r0, _0812B3B0 @ =gMapHeader
@@ -268,7 +268,7 @@ _0812B388:
bne _0812B3B8
_0812B3A8:
movs r0, 0xE
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
.align 2, 0
_0812B3B0: .4byte gMapHeader
@@ -279,36 +279,36 @@ _0812B3B8:
cmp r1, r0
bne _0812B3C8
movs r0, 0xF
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3C8:
bl IsCurMapPokeCenter
cmp r0, 0x1
bne _0812B3D8
movs r0, 0x10
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3D8:
bl sub_812B25C
cmp r0, 0x1
bne _0812B3E8
movs r0, 0x11
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3E8:
bl sub_812B26C
cmp r0, 0x1
bne _0812B3F8
movs r0, 0x12
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B3F8:
movs r0, 0x13
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0812B406
_0812B400:
movs r0, 0x14
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_0812B406:
pop {r0}
bx r0
diff --git a/asm/intro.s b/asm/intro.s
index fd430031e..309b636c8 100644
--- a/asm/intro.s
+++ b/asm/intro.s
@@ -898,7 +898,7 @@ _080ECCF6:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl OakSpeech_StartBlendTask
+ bl StartBlendTask
b _080ECD36
.align 2, 0
_080ECD14: .4byte 0x00003f44
@@ -907,7 +907,7 @@ _080ECD18:
bl ShowBg
b _080ECD36
_080ECD20:
- bl OakSpeech_IsBlendTaskActive
+ bl IsBlendTaskActive
lsls r0, 24
lsrs r5, r0, 24
cmp r5, 0
@@ -980,7 +980,7 @@ _080ECD9C:
movs r1, 0x10
movs r2, 0x10
movs r3, 0
- bl OakSpeech_StartBlendTask
+ bl StartBlendTask
strh r4, [r6, 0x8]
strh r5, [r6, 0xA]
strh r4, [r6, 0x12]
@@ -992,7 +992,7 @@ _080ECDC4:
str r0, [r6, 0x14]
b _080ECE70
_080ECDCC:
- bl OakSpeech_IsBlendTaskActive
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
@@ -1051,10 +1051,10 @@ _080ECE26:
movs r1, 0
movs r2, 0
movs r3, 0x10
- bl OakSpeech_StartBlendTask
+ bl StartBlendTask
b _080ECE70
_080ECE52:
- bl OakSpeech_IsBlendTaskActive
+ bl IsBlendTaskActive
lsls r0, 24
cmp r0, 0
bne _080ECE96
diff --git a/asm/item_menu.s b/asm/item_menu.s
index 4f753d49e..dcc74bafd 100644
--- a/asm/item_menu.s
+++ b/asm/item_menu.s
@@ -400,13 +400,13 @@ _081080DE:
cmp r0, 0x3
bne _081080F4
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _081080FA
.align 2, 0
_081080F0: .4byte gUnknown_203ACFC
_081080F4:
movs r0, 0x9
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_081080FA:
ldr r2, _08108114 @ =gPaletteFade
ldrb r1, [r2, 0x8]
@@ -2177,7 +2177,7 @@ sub_8108E70: @ 8108E70
strh r0, [r4, 0x14]
movs r1, 0x11
bl FillWindowPixelBuffer
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
ldrb r1, [r4, 0x14]
@@ -3715,7 +3715,7 @@ _08109AD4:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x6
movs r1, 0
bl sub_810B9DC
diff --git a/asm/item_pc.s b/asm/item_pc.s
index 9d7c3af52..f4a4176d9 100644
--- a/asm/item_pc.s
+++ b/asm/item_pc.s
@@ -257,7 +257,7 @@ _0810D608:
b _0810D674
_0810D60E:
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0810D674
_0810D616:
ldr r0, _0810D62C @ =gUnknown_203ADCC
@@ -1880,7 +1880,7 @@ sub_810E274: @ 810E274
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldrh r0, [r6, 0x2]
bl sub_810DD68
lsls r0, 16
@@ -2884,7 +2884,7 @@ sub_810EB30: @ 810EB30
adds r6, r2, 0
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0xEB
diff --git a/asm/item_use.s b/asm/item_use.s
index fce57bc88..2b425dec2 100644
--- a/asm/item_use.s
+++ b/asm/item_use.s
@@ -203,7 +203,7 @@ sub_80A112C: @ 80A112C
lsrs r4, 24
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r4, 0
bl DestroyTask
bl sub_80696C0
diff --git a/asm/itemfinder.s b/asm/itemfinder.s
index bf3e78ebc..e510252ab 100644
--- a/asm/itemfinder.s
+++ b/asm/itemfinder.s
@@ -81,7 +81,7 @@ sub_813ED18: @ 813ED18
lsrs r4, 24
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
@@ -970,7 +970,7 @@ sub_813F380: @ 813F380
bl sub_813F3FC
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
bl sub_80696C0
bl ScriptContext2_Disable
adds r0, r4, 0
diff --git a/asm/learn_move.s b/asm/learn_move.s
index 5068e6d16..fbb31d196 100644
--- a/asm/learn_move.s
+++ b/asm/learn_move.s
@@ -296,7 +296,7 @@ sub_80E48C0: @ 80E48C0
ldr r4, _080E48F0 @ =gStringVar4
adds r0, r4, 0
bl StringExpandPlaceholders
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r0, [sp]
diff --git a/asm/link_rfu_3.s b/asm/link_rfu_3.s
index 01e93a41d..514e386ed 100644
--- a/asm/link_rfu_3.s
+++ b/asm/link_rfu_3.s
@@ -401,7 +401,7 @@ _08115B5C:
bl CopyWindowToVram
ldrb r0, [r5, 0xF]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _08115C58 @ =gUnknown_3005E70
adds r2, r0, 0
ldr r1, _08115C5C @ =gUnknown_8456D34
@@ -417,7 +417,7 @@ _08115B5C:
strb r0, [r5, 0x12]
ldrb r0, [r5, 0x11]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r5, 0x11]
bl PutWindowTilemap
ldrb r0, [r5, 0x11]
@@ -1135,7 +1135,7 @@ sub_81161E4: @ 81161E4
bl ClearWindowTilemap
ldrb r0, [r4, 0x11]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4, 0x12]
movs r1, 0
movs r2, 0
@@ -1144,7 +1144,7 @@ sub_81161E4: @ 81161E4
bl ClearWindowTilemap
ldrb r0, [r4, 0xF]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r4, 0x11]
@@ -1919,7 +1919,7 @@ _08116838:
bl CopyWindowToVram
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _081168FC @ =gUnknown_3005E70
adds r2, r0, 0
ldr r1, _08116900 @ =gUnknown_8456DDC
@@ -1935,7 +1935,7 @@ _08116838:
strb r0, [r6, 0xE]
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldrb r0, [r6, 0xD]
bl PutWindowTilemap
ldrb r0, [r6, 0xD]
@@ -2318,7 +2318,7 @@ _08116C10:
bl ClearWindowTilemap
ldrb r0, [r6, 0xD]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r6, 0xE]
movs r1, 0
movs r2, 0
@@ -2327,7 +2327,7 @@ _08116C10:
bl ClearWindowTilemap
ldrb r0, [r6, 0xB]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
movs r0, 0
bl CopyBgTilemapBufferToVram
ldrb r0, [r6, 0xD]
@@ -8485,7 +8485,7 @@ sub_811A0B4: @ 811A0B4
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A0DC @ =gStringVar4
adds r1, r4, 0
bl StringExpandPlaceholders
@@ -8531,7 +8531,7 @@ _0811A10A:
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _0811A12C @ =gStringVar4
adds r1, r5, 0
bl StringExpandPlaceholders
@@ -8624,7 +8624,7 @@ sub_811A1AC: @ 811A1AC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
adds r0, r4, 0
movs r1, 0xFF
bl FillWindowPixelBuffer
@@ -8659,7 +8659,7 @@ sub_811A1FC: @ 811A1FC
lsrs r4, 24
adds r0, r4, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
adds r0, r4, 0
bl RemoveWindow
pop {r4}
@@ -8688,7 +8688,7 @@ _0811A234:
strb r0, [r5]
ldrb r0, [r5]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _0811A270 @ =gUnknown_3005E70
adds r2, r0, 0
ldr r1, [sp, 0x1C]
@@ -8729,7 +8729,7 @@ _0811A274:
bl sub_810713C
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
movs r0, 0
@@ -8750,7 +8750,7 @@ _0811A2B0:
bl sub_810713C
ldrb r0, [r5]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r5]
bl RemoveWindow
strb r4, [r7]
@@ -8794,7 +8794,7 @@ _0811A308:
strb r0, [r4]
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _0811A354 @ =gUnknown_3005E70
adds r2, r0, 0
ldr r1, [sp, 0x20]
@@ -8845,7 +8845,7 @@ _0811A37E:
bl sub_810713C
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
@@ -8870,7 +8870,7 @@ _0811A3AC:
bl sub_810713C
ldrb r0, [r4]
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
ldrb r0, [r7]
diff --git a/asm/list_menu.s b/asm/list_menu.s
index 3475b0914..f0a609fcd 100644
--- a/asm/list_menu.s
+++ b/asm/list_menu.s
@@ -126,7 +126,7 @@ _08106FA8:
bgt _08106FBA
ldrb r0, [r5, 0x5]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
_08106FBA:
ldr r0, _08106FC8 @ =gUnknown_203ACF4
ldrb r0, [r0, 0x5]
diff --git a/asm/mail.s b/asm/mail.s
index 2631754c3..dac4bf6f8 100644
--- a/asm/mail.s
+++ b/asm/mail.s
@@ -209,13 +209,13 @@ _080BED8C:
cmp r0, 0
bne _080BEDB4
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
.align 2, 0
_080BEDB0: .4byte gUnknown_203AAC4
_080BEDB4:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080BF0F4
_080BEDBC:
add r1, sp, 0x8
diff --git a/asm/main_menu.s b/asm/main_menu.s
index fa9e7ef20..b170db136 100644
--- a/asm/main_menu.s
+++ b/asm/main_menu.s
@@ -983,7 +983,7 @@ _0800CB2E:
bl FreeAllWindowBuffers
adds r0, r6, 0
bl DestroyTask
- bl sub_812EB2C
+ bl StartNewGameScene
b _0800CB84
.align 2, 0
_0800CB44: .4byte gUnknown_2031DE0
diff --git a/asm/menu.s b/asm/menu.s
index e593eef1c..a6d3d183b 100644
--- a/asm/menu.s
+++ b/asm/menu.s
@@ -933,8 +933,8 @@ sub_810F510: @ 810F510
bx r0
thumb_func_end sub_810F510
- thumb_func_start sub_810F558
-sub_810F558: @ 810F558
+ thumb_func_start CreateWindow_SnapRight_StdPal
+CreateWindow_SnapRight_StdPal: @ 810F558
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1005,10 +1005,10 @@ _0810F5C4:
bx r1
.align 2, 0
_0810F5E4: .4byte gUnknown_203ADF4
- thumb_func_end sub_810F558
+ thumb_func_end CreateWindow_SnapRight_StdPal
- thumb_func_start sub_810F5E8
-sub_810F5E8: @ 810F5E8
+ thumb_func_start PrintTextOnRightSnappedWindow
+PrintTextOnRightSnappedWindow: @ 810F5E8
push {r4-r6,lr}
sub sp, 0xC
adds r5, r0, 0
@@ -1055,10 +1055,10 @@ _0810F63E:
.align 2, 0
_0810F648: .4byte gUnknown_203ADF4
_0810F64C: .4byte gUnknown_8456618
- thumb_func_end sub_810F5E8
+ thumb_func_end PrintTextOnRightSnappedWindow
- thumb_func_start sub_810F650
-sub_810F650: @ 810F650
+ thumb_func_start Menu_PrintHelpSystemUIHeader
+Menu_PrintHelpSystemUIHeader: @ 810F650
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1145,7 +1145,7 @@ _0810F6F6:
pop {r4-r7}
pop {r0}
bx r0
- thumb_func_end sub_810F650
+ thumb_func_end Menu_PrintHelpSystemUIHeader
thumb_func_start sub_810F704
sub_810F704: @ 810F704
@@ -1264,8 +1264,8 @@ _0810F7BE:
_0810F7D4: .4byte gUnknown_203ADE4
thumb_func_end sub_810F774
- thumb_func_start sub_810F7D8
-sub_810F7D8: @ 810F7D8
+ thumb_func_start ProgramAndPlaceMenuCursorOnWindow
+ProgramAndPlaceMenuCursorOnWindow: @ 810F7D8
push {r4-r6,lr}
sub sp, 0x10
ldr r4, [sp, 0x20]
@@ -1297,7 +1297,7 @@ sub_810F7D8: @ 810F7D8
pop {r4-r6}
pop {r1}
bx r1
- thumb_func_end sub_810F7D8
+ thumb_func_end ProgramAndPlaceMenuCursorOnWindow
thumb_func_start sub_810F818
sub_810F818: @ 810F818
@@ -1336,7 +1336,7 @@ sub_810F818: @ 810F818
adds r1, r6, 0
ldr r2, [sp, 0xC]
ldr r3, [sp, 0x10]
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
lsls r0, 24
lsrs r0, 24
add sp, 0x14
@@ -2410,7 +2410,7 @@ sub_810FF60: @ 810FF60
adds r1, r6, 0
mov r2, r8
mov r3, r9
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
add sp, 0x1C
pop {r3-r5}
mov r8, r3
diff --git a/asm/naming_screen.s b/asm/naming_screen.s
index b3c9d1f73..01217d92f 100644
--- a/asm/naming_screen.s
+++ b/asm/naming_screen.s
@@ -401,8 +401,8 @@ _0809DBD6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
_0809DCA4:
lsls r0, r4, 3
ldr r1, _0809DD50 @ =gUnknown_83E22A0
@@ -493,7 +493,7 @@ sub_809DD60: @ 809DD60
bl SetMainCallback2
bl sub_812B234
movs r0, 0x3
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
@@ -959,13 +959,13 @@ _0809E156:
bl StringExpandPlaceholders
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0809E1D0 @ =gTextFlags
ldrb r0, [r2]
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
diff --git a/asm/new_game.s b/asm/new_game.s
index cec2b2c9a..d1d5a1487 100644
--- a/asm/new_game.s
+++ b/asm/new_game.s
@@ -257,7 +257,7 @@ sub_8054A60: @ 8054A60
strb r5, [r0]
bl ZeroPlayerPartyMons
bl sub_808C7E0
- bl sub_8141C54
+ bl ClearRoamerData
ldr r0, [r6]
ldr r1, _08054B68 @ =0x00000296
adds r0, r1
diff --git a/asm/new_menu_helpers.s b/asm/new_menu_helpers.s
index b3844a165..bf2578249 100644
--- a/asm/new_menu_helpers.s
+++ b/asm/new_menu_helpers.s
@@ -672,8 +672,8 @@ sub_80F6C14: @ 80F6C14
bx r0
thumb_func_end sub_80F6C14
- thumb_func_start sub_80F6C6C
-sub_80F6C6C: @ 80F6C6C
+ thumb_func_start InitStandardTextBoxWindows
+InitStandardTextBoxWindows: @ 80F6C6C
push {lr}
ldr r0, _080F6C84 @ =gUnknown_841F42C
bl InitWindows
@@ -686,7 +686,7 @@ sub_80F6C6C: @ 80F6C6C
.align 2, 0
_080F6C84: .4byte gUnknown_841F42C
_080F6C88: .4byte gUnknown_203ABE0
- thumb_func_end sub_80F6C6C
+ thumb_func_end InitStandardTextBoxWindows
thumb_func_start sub_80F6C8C
sub_80F6C8C: @ 80F6C8C
@@ -696,8 +696,8 @@ sub_80F6C8C: @ 80F6C8C
bx r0
thumb_func_end sub_80F6C8C
- thumb_func_start sub_80F6C98
-sub_80F6C98: @ 80F6C98
+ thumb_func_start ResetBg0
+ResetBg0: @ 80F6C98
push {lr}
movs r0, 0
movs r1, 0
@@ -711,7 +711,7 @@ sub_80F6C98: @ 80F6C98
bl sub_80F6E9C
pop {r0}
bx r0
- thumb_func_end sub_80F6C98
+ thumb_func_end ResetBg0
thumb_func_start sub_80F6CBC
sub_80F6CBC: @ 80F6CBC
@@ -819,7 +819,7 @@ sub_80F6D5C: @ 80F6D5C
lsrs r0, 24
cmp r0, 0
bne _080F6DB0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -840,7 +840,7 @@ _080F6DAC: .4byte gStringVar4
_080F6DB0:
cmp r0, 0x1
bne _080F6DDC
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -858,7 +858,7 @@ _080F6DB0:
.align 2, 0
_080F6DD8: .4byte gStringVar4
_080F6DDC:
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -896,7 +896,7 @@ sub_80F6E08: @ 80F6E08
ands r1, r2
orrs r1, r0
strb r1, [r3]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -995,8 +995,8 @@ _080F6ED4:
bx r0
thumb_func_end sub_80F6E9C
- thumb_func_start sub_80F6EE4
-sub_80F6EE4: @ 80F6EE4
+ thumb_func_start DrawDialogueFrame
+DrawDialogueFrame: @ 80F6EE4
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1022,10 +1022,10 @@ _080F6F12:
bx r0
.align 2, 0
_080F6F18: .4byte sub_80F7124
- thumb_func_end sub_80F6EE4
+ thumb_func_end DrawDialogueFrame
- thumb_func_start sub_80F6F1C
-sub_80F6F1C: @ 80F6F1C
+ thumb_func_start DrawStdWindowFrame
+DrawStdWindowFrame: @ 80F6F1C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1051,10 +1051,10 @@ _080F6F4A:
bx r0
.align 2, 0
_080F6F50: .4byte sub_80F6FD4
- thumb_func_end sub_80F6F1C
+ thumb_func_end DrawStdWindowFrame
- thumb_func_start sub_80F6F54
-sub_80F6F54: @ 80F6F54
+ thumb_func_start ClearDialogWindowAndFrame
+ClearDialogWindowAndFrame: @ 80F6F54
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1087,10 +1087,10 @@ _080F6F8E:
.align 2, 0
_080F6F94: .4byte sub_80F76CC
_080F6F98: .4byte gUnknown_203ADFA
- thumb_func_end sub_80F6F54
+ thumb_func_end ClearDialogWindowAndFrame
- thumb_func_start sub_80F6F9C
-sub_80F6F9C: @ 80F6F9C
+ thumb_func_start ClearStdWindowAndFrame
+ClearStdWindowAndFrame: @ 80F6F9C
push {r4,r5,lr}
adds r4, r1, 0
lsls r0, 24
@@ -1116,7 +1116,7 @@ _080F6FCA:
bx r0
.align 2, 0
_080F6FD0: .4byte sub_80F7684
- thumb_func_end sub_80F6F9C
+ thumb_func_end ClearStdWindowAndFrame
thumb_func_start sub_80F6FD4
sub_80F6FD4: @ 80F6FD4
@@ -2059,8 +2059,8 @@ sub_80F77B8: @ 80F77B8
_080F77C8: .4byte gUnknown_841F408
thumb_func_end sub_80F77B8
- thumb_func_start sub_80F77CC
-sub_80F77CC: @ 80F77CC
+ thumb_func_start Menu_LoadStdPalAt
+Menu_LoadStdPalAt: @ 80F77CC
push {lr}
adds r1, r0, 0
lsls r1, 16
@@ -2072,7 +2072,7 @@ sub_80F77CC: @ 80F77CC
bx r0
.align 2, 0
_080F77E0: .4byte gUnknown_841F408
- thumb_func_end sub_80F77CC
+ thumb_func_end Menu_LoadStdPalAt
thumb_func_start sub_80F77E4
sub_80F77E4: @ 80F77E4
@@ -2116,7 +2116,7 @@ DisplayItemMessageOnField: @ 80F7808
lsls r4, 24
lsrs r4, 24
bl sub_80F6E9C
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
movs r2, 0x80
@@ -2187,8 +2187,8 @@ sub_80F7880: @ 80F7880
_080F78A4: .4byte gUnknown_841F43C
thumb_func_end sub_80F7880
- thumb_func_start sub_80F78A8
-sub_80F78A8: @ 80F78A8
+ thumb_func_start GetTextSpeedSetting
+GetTextSpeedSetting: @ 80F78A8
push {lr}
ldr r3, _080F78D8 @ =gSaveBlock2Ptr
ldr r2, [r3]
@@ -2216,7 +2216,7 @@ _080F78C4:
.align 2, 0
_080F78D8: .4byte gSaveBlock2Ptr
_080F78DC: .4byte gUnknown_841F428
- thumb_func_end sub_80F78A8
+ thumb_func_end GetTextSpeedSetting
thumb_func_start sub_80F78E0
sub_80F78E0: @ 80F78E0
diff --git a/asm/option_menu.s b/asm/option_menu.s
index dc175eefd..cff6f1f25 100644
--- a/asm/option_menu.s
+++ b/asm/option_menu.s
@@ -93,7 +93,7 @@ _080883FA:
cmp r3, 0x5
bls _080883E6
movs r0, 0xD
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808842C @ =sub_8088454
bl SetMainCallback2
pop {r4-r6}
diff --git a/asm/overworld.s b/asm/overworld.s
index 526b9f298..e44855b46 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3117,8 +3117,8 @@ sub_80562B0: @ 80562B0
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
@@ -3181,8 +3181,8 @@ sub_8056354: @ 8056354
ldr r1, [r5]
movs r0, 0x3
bl SetBgTilemapBuffer
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
bl sub_8069348
pop {r3}
mov r8, r3
diff --git a/asm/party_menu.s b/asm/party_menu.s
index be2f0246c..085d0da85 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -420,7 +420,7 @@ _0811ED96:
_0811EDA8: .4byte gUnknown_203B09C
_0811EDAC:
movs r0, 0x5
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _0811EDFC
_0811EDB4:
ldr r4, _0811EDCC @ =gUnknown_203B09C
@@ -6888,7 +6888,7 @@ sub_8121FC0: @ 8121FC0
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -6990,7 +6990,7 @@ sub_8122084: @ 8122084
movs r1, 0x1
orrs r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
@@ -13684,7 +13684,7 @@ _08125680:
mov r1, r8
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x2
bl schedule_bg_copy_tilemap_to_vram
add sp, 0x10
diff --git a/asm/player_pc.s b/asm/player_pc.s
index 4fea7bea1..6d998daaa 100644
--- a/asm/player_pc.s
+++ b/asm/player_pc.s
@@ -187,7 +187,7 @@ _080EB77E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EB814 @ =gTasks
@@ -361,11 +361,11 @@ _080EB940:
cmp r0, 0
bne _080EB95C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EB962
_080EB95C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EB962:
ldr r0, _080EB990 @ =gUnknown_203AAC4
ldrb r0, [r0, 0x5]
@@ -376,7 +376,7 @@ _080EB962:
bne _080EB99C
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_80EBEB0
ldr r0, _080EB994 @ =gTasks
@@ -449,14 +449,14 @@ sub_80EB9E8: @ 80EB9E8
cmp r0, 0
bne _080EBA18
movs r0, 0x21
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EBA1E
.align 2, 0
_080EBA10: .4byte gTasks+0x8
_080EBA14: .4byte gUnknown_203AAC4
_080EBA18:
movs r0, 0x1D
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EBA1E:
ldr r0, _080EBA80 @ =gUnknown_8402258
bl AddWindow
@@ -488,7 +488,7 @@ _080EBA1E:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EBA88 @ =gUnknown_84021DC
@@ -513,7 +513,7 @@ sub_80EBA8C: @ 80EBA8C
adds r4, r0, 0
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0x1
str r0, [sp]
movs r0, 0
@@ -702,7 +702,7 @@ sub_80EBC0C: @ 80EBC0C
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBC34 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -777,7 +777,7 @@ sub_80EBCAC: @ 80EBCAC
bl sub_80F6E9C
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r0, _080EBCD4 @ =sub_80EBBDC
movs r1, 0
bl CreateTask
@@ -1341,7 +1341,7 @@ sub_80EC0D8: @ 80EC0D8
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r1, _080EC154 @ =gTasks
@@ -1503,13 +1503,13 @@ sub_80EC260: @ 80EC260
cmp r0, 0
bne _080EC278
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC27E
.align 2, 0
_080EC274: .4byte gUnknown_203AAC4
_080EC278:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC27E:
bl sub_80F6E9C
ldr r0, _080EC2A8 @ =sub_80EC230
@@ -1773,13 +1773,13 @@ sub_80EC474: @ 80EC474
cmp r0, 0
bne _080EC48C
movs r0, 0x22
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080EC492
.align 2, 0
_080EC488: .4byte gUnknown_203AAC4
_080EC48C:
movs r0, 0x1E
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080EC492:
ldr r0, _080EC4E8 @ =sub_80EC230
movs r1, 0
@@ -1871,7 +1871,7 @@ sub_80EC53C: @ 80EC53C
lsrs r4, 24
movs r0, 0
movs r1, 0
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r4, 0
bl sub_80EBEB0
movs r0, 0
diff --git a/asm/pokedex_screen.s b/asm/pokedex_screen.s
index ce2d3fa75..bd18d2e76 100644
--- a/asm/pokedex_screen.s
+++ b/asm/pokedex_screen.s
@@ -309,7 +309,7 @@ sub_810275C: @ 810275C
ldr r0, _08102794 @ =sub_81024D4
bl SetMainCallback2
movs r0, 0x4
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/pokemon_3.s b/asm/pokemon_3.s
index 0d4ee1bcb..416c996bb 100644
--- a/asm/pokemon_3.s
+++ b/asm/pokemon_3.s
@@ -785,8 +785,8 @@ _08044AE8: .4byte gUnknown_825E05C
_08044AEC: .4byte gUnknown_82349BC
thumb_func_end sub_8044A40
- thumb_func_start sub_8044AF0
-sub_8044AF0: @ 8044AF0
+ thumb_func_start SetUpMonSpriteManagerMaybe
+SetUpMonSpriteManagerMaybe: @ 8044AF0
push {r4-r7,lr}
mov r7, r8
push {r7}
@@ -1124,7 +1124,7 @@ _08044D70:
bx r1
.align 2, 0
_08044D7C: .4byte gUnknown_20244F4
- thumb_func_end sub_8044AF0
+ thumb_func_end SetUpMonSpriteManagerMaybe
thumb_func_start sub_8044D80
sub_8044D80: @ 8044D80
diff --git a/asm/pokemon_special_anim.s b/asm/pokemon_special_anim.s
index a5e8ba21b..33f64b00b 100644
--- a/asm/pokemon_special_anim.s
+++ b/asm/pokemon_special_anim.s
@@ -1727,7 +1727,7 @@ sub_811D2EC: @ 811D2EC
lsrs r7, r0, 16
movs r0, 0
mov r8, r0
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
mov r9, r0
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index d656ad188..826e2f9e4 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1412,7 +1412,7 @@ _0808C3CC:
.4byte _0808C680
_0808C3E0:
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldrb r0, [r5, 0xA]
adds r1, r5, 0
adds r1, 0x26
@@ -1420,7 +1420,7 @@ _0808C3E0:
bl sub_80F6E9C
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
movs r0, 0
movs r1, 0x11
bl FillWindowPixelBuffer
@@ -1557,12 +1557,12 @@ _0808C508: .4byte gUnknown_83CDA20
_0808C50C:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrh r0, [r5, 0x26]
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl ScriptContext2_Disable
bl EnableBothScriptContexts
adds r0, r4, 0
@@ -1833,7 +1833,7 @@ sub_808C72C: @ 808C72C
lsrs r4, 24
adds r0, r4, 0
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
movs r0, 0x2
movs r1, 0
bl GetMenuCursorDimensionByFont
@@ -1861,7 +1861,7 @@ sub_808C72C: @ 808C72C
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
mov r0, r10
strh r5, [r0]
add sp, 0xC
@@ -2716,7 +2716,7 @@ _0808CE18:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl StorageGetCurrentBox
ldr r1, _0808CE58 @ =gUnknown_20397B8
strb r0, [r1]
@@ -2767,7 +2767,7 @@ _0808CE8C:
ldr r1, [r4]
strb r0, [r1, 0x4]
movs r0, 0x1C
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0808CEC4 @ =c2_Box
bl SetMainCallback2
_0808CEB6:
@@ -18961,7 +18961,7 @@ sub_8094E88: @ 8094E88
movs r1, 0x1
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
bl schedule_bg_copy_tilemap_to_vram
ldr r0, [r5]
diff --git a/asm/pokemon_summary_screen.s b/asm/pokemon_summary_screen.s
index 3d0c545ef..385e5fb84 100644
--- a/asm/pokemon_summary_screen.s
+++ b/asm/pokemon_summary_screen.s
@@ -107,7 +107,7 @@ _081345D0:
beq _08134604
_081345D4:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r2, _081345F8 @ =gUnknown_203B140
ldr r0, [r2]
ldr r3, _081345FC @ =0x00003214
@@ -128,7 +128,7 @@ _081345FC: .4byte 0x00003214
_08134600: .4byte 0x00003234
_08134604:
movs r0, 0x6
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134628 @ =0x00003214
adds r0, r3
@@ -149,7 +149,7 @@ _0813462C: .4byte 0x0000321c
_08134630: .4byte 0x00003234
_08134634:
movs r0, 0x8
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, [r4]
ldr r3, _08134710 @ =0x00003214
adds r0, r3
@@ -7608,7 +7608,7 @@ _0813846C:
_08138470:
movs r0, 0x7
_08138472:
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_08138476:
pop {r0}
bx r0
diff --git a/asm/reshow_battle_screen.s b/asm/reshow_battle_screen.s
index 0abdc979c..d88ecf578 100644
--- a/asm/reshow_battle_screen.s
+++ b/asm/reshow_battle_screen.s
@@ -45,7 +45,7 @@ sub_8077764: @ 8077764
cmp r1, 0
beq _080777BC
movs r0, 0x19
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
.align 2, 0
_080777B0: .4byte gPaletteFade
@@ -53,7 +53,7 @@ _080777B4: .4byte gBattleScripting
_080777B8: .4byte gBattleTypeFlags
_080777BC:
movs r0, 0x18
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777C4:
movs r0, 0x80
@@ -61,11 +61,11 @@ _080777C4:
cmp r1, 0
beq _080777D4
movs r0, 0x1A
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
b _080777DA
_080777D4:
movs r0, 0x17
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
_080777DA:
ldr r0, _080777E4 @ =sub_80777E8
bl SetMainCallback2
diff --git a/asm/roamer.s b/asm/roamer.s
deleted file mode 100644
index d42b34293..000000000
--- a/asm/roamer.s
+++ /dev/null
@@ -1,531 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_8141C54
-sub_8141C54: @ 8141C54
- push {lr}
- ldr r0, _08141C84 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141C88 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- movs r2, 0x1C
- bl memset
- ldr r1, _08141C8C @ =gUnknown_203F3AE
- movs r0, 0
- strb r0, [r1]
- strb r0, [r1, 0x1]
- movs r1, 0
- movs r2, 0
- ldr r0, _08141C90 @ =gUnknown_203F3A8
-_08141C74:
- strb r2, [r0]
- strb r2, [r0, 0x1]
- adds r0, 0x2
- adds r1, 0x1
- cmp r1, 0x2
- bls _08141C74
- pop {r0}
- bx r0
- .align 2, 0
-_08141C84: .4byte gSaveBlock1Ptr
-_08141C88: .4byte 0x000030d0
-_08141C8C: .4byte gUnknown_203F3AE
-_08141C90: .4byte gUnknown_203F3A8
- thumb_func_end sub_8141C54
-
- thumb_func_start sub_8141C94
-sub_8141C94: @ 8141C94
- push {r4-r7,lr}
- sub sp, 0x10
- ldr r7, _08141CB0 @ =gEnemyParty
- bl sub_80CBDB0
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0x1
- beq _08141CB4
- cmp r0, 0x4
- beq _08141CB8
- movs r6, 0xF3
- b _08141CBA
- .align 2, 0
-_08141CB0: .4byte gEnemyParty
-_08141CB4:
- movs r6, 0xF4
- b _08141CBA
-_08141CB8:
- movs r6, 0xF5
-_08141CBA:
- movs r0, 0
- str r0, [sp]
- str r0, [sp, 0x4]
- str r0, [sp, 0x8]
- str r0, [sp, 0xC]
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x32
- movs r3, 0x20
- bl CreateMon
- ldr r5, _08141D8C @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08141D90 @ =0x000030d0
- adds r1, r4
- movs r2, 0
- strh r6, [r1, 0x8]
- movs r0, 0x32
- strb r0, [r1, 0xC]
- ldr r0, [r5]
- adds r0, r4
- strb r2, [r0, 0xD]
- ldr r0, [r5]
- adds r0, r4
- movs r1, 0x1
- strb r1, [r0, 0x13]
- adds r0, r7, 0
- movs r1, 0x42
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1]
- adds r0, r7, 0
- movs r1, 0
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- str r0, [r1, 0x4]
- adds r0, r7, 0
- movs r1, 0x3A
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r7, 0
- movs r1, 0x16
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xE]
- adds r0, r7, 0
- movs r1, 0x17
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xF]
- adds r0, r7, 0
- movs r1, 0x18
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x10]
- adds r0, r7, 0
- movs r1, 0x21
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x11]
- adds r0, r7, 0
- movs r1, 0x2F
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0x12]
- ldr r5, _08141D94 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r5]
- bl Random
- ldr r4, _08141D98 @ =gUnknown_8466C58
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r4
- ldrb r0, [r1]
- strb r0, [r5, 0x1]
- add sp, 0x10
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_08141D8C: .4byte gSaveBlock1Ptr
-_08141D90: .4byte 0x000030d0
-_08141D94: .4byte gUnknown_203F3AE
-_08141D98: .4byte gUnknown_8466C58
- thumb_func_end sub_8141C94
-
- thumb_func_start sub_8141D9C
-sub_8141D9C: @ 8141D9C
- push {lr}
- bl sub_8141C54
- bl sub_8141C94
- pop {r0}
- bx r0
- thumb_func_end sub_8141D9C
-
- thumb_func_start UpdateLocationHistoryForRoamer
-UpdateLocationHistoryForRoamer: @ 8141DAC
- ldr r0, _08141DCC @ =gUnknown_203F3A8
- ldrb r1, [r0, 0x2]
- strb r1, [r0, 0x4]
- ldrb r1, [r0, 0x3]
- strb r1, [r0, 0x5]
- ldrb r1, [r0]
- strb r1, [r0, 0x2]
- ldrb r1, [r0, 0x1]
- strb r1, [r0, 0x3]
- ldr r1, _08141DD0 @ =gSaveBlock1Ptr
- ldr r2, [r1]
- ldrb r1, [r2, 0x4]
- strb r1, [r0]
- ldrb r1, [r2, 0x5]
- strb r1, [r0, 0x1]
- bx lr
- .align 2, 0
-_08141DCC: .4byte gUnknown_203F3A8
-_08141DD0: .4byte gSaveBlock1Ptr
- thumb_func_end UpdateLocationHistoryForRoamer
-
- thumb_func_start RoamerMoveToOtherLocationSet
-RoamerMoveToOtherLocationSet: @ 8141DD4
- push {r4,r5,lr}
- ldr r0, _08141E18 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E1C @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141E10
- ldr r1, _08141E20 @ =gUnknown_203F3AE
- movs r0, 0x3
- strb r0, [r1]
- ldr r5, _08141E24 @ =gUnknown_8466C58
- adds r4, r1, 0
-_08141DEE:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x19
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- lsls r1, r0, 3
- subs r1, r0
- adds r1, r5
- ldrb r1, [r1]
- ldrb r0, [r4, 0x1]
- cmp r0, r1
- beq _08141DEE
- strb r1, [r4, 0x1]
-_08141E10:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141E18: .4byte gSaveBlock1Ptr
-_08141E1C: .4byte 0x000030d0
-_08141E20: .4byte gUnknown_203F3AE
-_08141E24: .4byte gUnknown_8466C58
- thumb_func_end RoamerMoveToOtherLocationSet
-
- thumb_func_start RoamerMove
-RoamerMove: @ 8141E28
- push {r4-r7,lr}
- movs r4, 0
- bl Random
- lsls r0, 16
- movs r1, 0xF0
- lsls r1, 12
- ands r1, r0
- cmp r1, 0
- bne _08141E42
- bl RoamerMoveToOtherLocationSet
- b _08141EB2
-_08141E42:
- ldr r0, _08141E94 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08141E98 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EB2
- ldr r7, _08141E9C @ =gUnknown_203F3AE
-_08141E52:
- ldr r3, _08141EA0 @ =gUnknown_8466C58
- lsls r0, r4, 3
- subs r2, r0, r4
- adds r1, r2, r3
- ldrb r0, [r7, 0x1]
- ldrb r1, [r1]
- cmp r0, r1
- bne _08141EA8
- adds r6, r3, 0
- adds r5, r2, 0x1
- ldr r4, _08141EA4 @ =gUnknown_203F3A8
-_08141E68:
- bl Random
- lsls r0, 16
- lsrs r0, 16
- movs r1, 0x6
- bl __umodsi3
- lsls r0, 16
- lsrs r0, 16
- adds r0, r5
- adds r0, r6
- ldrb r1, [r0]
- ldrb r0, [r4, 0x4]
- cmp r0, 0x3
- bne _08141E8C
- ldrb r0, [r4, 0x5]
- cmp r0, r1
- beq _08141E68
-_08141E8C:
- cmp r1, 0xFF
- beq _08141E68
- strb r1, [r7, 0x1]
- b _08141EB2
- .align 2, 0
-_08141E94: .4byte gSaveBlock1Ptr
-_08141E98: .4byte 0x000030d0
-_08141E9C: .4byte gUnknown_203F3AE
-_08141EA0: .4byte gUnknown_8466C58
-_08141EA4: .4byte gUnknown_203F3A8
-_08141EA8:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x18
- bls _08141E52
-_08141EB2:
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end RoamerMove
-
- thumb_func_start IsRoamerAt
-IsRoamerAt: @ 8141EB8
- push {lr}
- lsls r0, 24
- lsrs r2, r0, 24
- lsls r1, 24
- lsrs r1, 24
- ldr r0, _08141EE4 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r3, _08141EE8 @ =0x000030d0
- adds r0, r3
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08141EF0
- ldr r0, _08141EEC @ =gUnknown_203F3AE
- ldrb r3, [r0]
- cmp r2, r3
- bne _08141EF0
- ldrb r0, [r0, 0x1]
- cmp r1, r0
- bne _08141EF0
- movs r0, 0x1
- b _08141EF2
- .align 2, 0
-_08141EE4: .4byte gSaveBlock1Ptr
-_08141EE8: .4byte 0x000030d0
-_08141EEC: .4byte gUnknown_203F3AE
-_08141EF0:
- movs r0, 0
-_08141EF2:
- pop {r1}
- bx r1
- thumb_func_end IsRoamerAt
-
- thumb_func_start CreateRoamerMonInstance
-CreateRoamerMonInstance: @ 8141EF8
- push {r4,r5,lr}
- sub sp, 0x4
- ldr r5, _08141F84 @ =gEnemyParty
- bl ZeroEnemyPartyMons
- ldr r4, _08141F88 @ =gSaveBlock1Ptr
- ldr r0, [r4]
- ldr r1, _08141F8C @ =0x000030d0
- adds r0, r1
- ldrh r1, [r0, 0x8]
- ldrb r2, [r0, 0xC]
- ldr r3, [r0]
- ldr r0, [r0, 0x4]
- str r0, [sp]
- adds r0, r5, 0
- bl CreateMonWithIVsPersonality
- ldr r2, [r4]
- ldr r0, _08141F90 @ =0x000030dd
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x37
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F94 @ =0x000030da
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x39
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141F98 @ =0x000030de
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x16
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141F9C @ =0x000030df
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x17
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA0 @ =0x000030e0
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x18
- bl SetMonData
- ldr r2, [r4]
- ldr r1, _08141FA4 @ =0x000030e1
- adds r2, r1
- adds r0, r5, 0
- movs r1, 0x21
- bl SetMonData
- ldr r2, [r4]
- ldr r0, _08141FA8 @ =0x000030e2
- adds r2, r0
- adds r0, r5, 0
- movs r1, 0x2F
- bl SetMonData
- add sp, 0x4
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_08141F84: .4byte gEnemyParty
-_08141F88: .4byte gSaveBlock1Ptr
-_08141F8C: .4byte 0x000030d0
-_08141F90: .4byte 0x000030dd
-_08141F94: .4byte 0x000030da
-_08141F98: .4byte 0x000030de
-_08141F9C: .4byte 0x000030df
-_08141FA0: .4byte 0x000030e0
-_08141FA4: .4byte 0x000030e1
-_08141FA8: .4byte 0x000030e2
- thumb_func_end CreateRoamerMonInstance
-
- thumb_func_start TryStartRoamerEncounter
-TryStartRoamerEncounter: @ 8141FAC
- push {lr}
- ldr r0, _08141FDC @ =gSaveBlock1Ptr
- ldr r1, [r0]
- ldrb r0, [r1, 0x4]
- ldrb r1, [r1, 0x5]
- bl IsRoamerAt
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _08141FE0
- bl Random
- lsls r0, 16
- movs r1, 0xC0
- lsls r1, 10
- ands r1, r0
- cmp r1, 0
- bne _08141FE0
- bl CreateRoamerMonInstance
- movs r0, 0x1
- b _08141FE2
- .align 2, 0
-_08141FDC: .4byte gSaveBlock1Ptr
-_08141FE0:
- movs r0, 0
-_08141FE2:
- pop {r1}
- bx r1
- thumb_func_end TryStartRoamerEncounter
-
- thumb_func_start UpdateRoamerHPStatus
-UpdateRoamerHPStatus: @ 8141FE8
- push {r4-r6,lr}
- adds r6, r0, 0
- movs r1, 0x39
- bl GetMonData
- ldr r5, _08142014 @ =gSaveBlock1Ptr
- ldr r1, [r5]
- ldr r4, _08142018 @ =0x000030d0
- adds r1, r4
- strh r0, [r1, 0xA]
- adds r0, r6, 0
- movs r1, 0x37
- bl GetMonData
- ldr r1, [r5]
- adds r1, r4
- strb r0, [r1, 0xD]
- bl RoamerMoveToOtherLocationSet
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_08142014: .4byte gSaveBlock1Ptr
-_08142018: .4byte 0x000030d0
- thumb_func_end UpdateRoamerHPStatus
-
- thumb_func_start SetRoamerInactive
-SetRoamerInactive: @ 814201C
- ldr r0, _0814202C @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142030 @ =0x000030d0
- adds r0, r1
- movs r1, 0
- strb r1, [r0, 0x13]
- bx lr
- .align 2, 0
-_0814202C: .4byte gSaveBlock1Ptr
-_08142030: .4byte 0x000030d0
- thumb_func_end SetRoamerInactive
-
- thumb_func_start GetRoamerLocation
-GetRoamerLocation: @ 8142034
- ldr r3, _08142040 @ =gUnknown_203F3AE
- ldrb r2, [r3]
- strb r2, [r0]
- ldrb r0, [r3, 0x1]
- strb r0, [r1]
- bx lr
- .align 2, 0
-_08142040: .4byte gUnknown_203F3AE
- thumb_func_end GetRoamerLocation
-
- thumb_func_start sub_8142044
-sub_8142044: @ 8142044
- push {lr}
- ldr r0, _08142064 @ =gSaveBlock1Ptr
- ldr r0, [r0]
- ldr r1, _08142068 @ =0x000030d0
- adds r0, r1
- ldrb r0, [r0, 0x13]
- cmp r0, 0
- beq _08142070
- ldr r1, _0814206C @ =gUnknown_203F3AE
- ldrb r0, [r1]
- ldrb r1, [r1, 0x1]
- bl get_mapheader_by_bank_and_number
- ldrb r0, [r0, 0x14]
- b _08142072
- .align 2, 0
-_08142064: .4byte gSaveBlock1Ptr
-_08142068: .4byte 0x000030d0
-_0814206C: .4byte gUnknown_203F3AE
-_08142070:
- movs r0, 0xC5
-_08142072:
- pop {r1}
- bx r1
- thumb_func_end sub_8142044
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/script_menu.s b/asm/script_menu.s
index 438f715fa..11b9feee2 100644
--- a/asm/script_menu.s
+++ b/asm/script_menu.s
@@ -301,7 +301,7 @@ _0809CB7A:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldr r0, [sp, 0x18]
adds r1, r7, 0
adds r2, r5, 0
@@ -1138,7 +1138,7 @@ _0809D1FA:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r6, 0
@@ -1946,7 +1946,7 @@ _0809D844:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0
mov r1, r9
adds r2, r7, 0
diff --git a/asm/shop.s b/asm/shop.s
index 999874b6b..67d30d52a 100644
--- a/asm/shop.s
+++ b/asm/shop.s
@@ -74,7 +74,7 @@ _0809AAF8:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
ldrb r0, [r4]
bl PutWindowTilemap
ldrb r0, [r4]
diff --git a/asm/start_menu.s b/asm/start_menu.s
index 1cc3a7919..65a1e4402 100644
--- a/asm/start_menu.s
+++ b/asm/start_menu.s
@@ -158,7 +158,7 @@ sub_806EE7C: @ 806EE7C
bl PutWindowTilemap
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r0, _0806EEFC @ =gStringVar1
ldr r1, _0806EF00 @ =gUnknown_2039996
ldrh r1, [r1]
@@ -390,7 +390,7 @@ _0806F06C:
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F1C
+ bl DrawStdWindowFrame
ldr r1, _0806F08C @ =gUnknown_20370FF
b _0806F0B8
.align 2, 0
@@ -438,7 +438,7 @@ _0806F0C4:
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
strb r0, [r4]
bl sub_80BF708
lsls r0, 24
@@ -1049,7 +1049,7 @@ sub_806F5A4: @ 806F5A4
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r1, _0806F5C0 @ =gUnknown_20370F0
ldr r0, _0806F5C4 @ =sub_806F5C8
@@ -1156,7 +1156,7 @@ sub_806F67C: @ 806F67C
push {lr}
bl sub_812B234
movs r0, 0xC
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_806F624
ldr r0, _0806F698 @ =task50_save_game
movs r1, 0x50
@@ -1239,7 +1239,7 @@ sub_806F71C: @ 806F71C
push {lr}
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
pop {r0}
bx r0
thumb_func_end sub_806F71C
@@ -1328,7 +1328,7 @@ sub_806F7A8: @ 806F7A8
lsls r0, 24
lsrs r0, 24
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
movs r0, 0
bl sub_8112EDC
@@ -2178,7 +2178,7 @@ sub_806FE84: @ 806FE84
ldr r4, _0806FE9C @ =gUnknown_2037104
ldrb r0, [r4]
movs r1, 0
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
ldrb r0, [r4]
bl RemoveWindow
pop {r4}
@@ -2197,7 +2197,7 @@ sub_806FEA0: @ 806FEA0
lsls r0, 24
lsrs r0, 24
movs r1, 0x1
- bl sub_80F6F9C
+ bl ClearStdWindowAndFrame
bl remove_start_menu_window_maybe
bl sub_80696C0
bl ScriptContext2_Disable
diff --git a/asm/teachy_tv.s b/asm/teachy_tv.s
index feba05e6d..b9bf09d46 100644
--- a/asm/teachy_tv.s
+++ b/asm/teachy_tv.s
@@ -774,7 +774,7 @@ sub_815B1DC: @ 815B1DC
negs r0, r0
ands r0, r1
strb r0, [r2]
- bl sub_80F78A8
+ bl GetTextSpeedSetting
adds r3, r0, 0
lsls r3, 24
lsrs r3, 24
diff --git a/asm/title_screen.s b/asm/title_screen.s
index e6f203e3b..c8261c1d3 100644
--- a/asm/title_screen.s
+++ b/asm/title_screen.s
@@ -809,7 +809,7 @@ sub_8078FC4: @ 8078FC4
b _08079094
_08078FD6:
movs r0, 0x1
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
ldr r0, _0807902C @ =sub_807941C
movs r1, 0
bl CreateTask
diff --git a/asm/tm_case.s b/asm/tm_case.s
index d3b8d6320..ac58fa0a2 100644
--- a/asm/tm_case.s
+++ b/asm/tm_case.s
@@ -1586,7 +1586,7 @@ _08132468:
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x80
lsls r0, 1
bl Alloc
@@ -3291,7 +3291,7 @@ sub_813337C: @ 813337C
lsrs r5, 24
lsls r4, 24
lsrs r4, 24
- bl sub_80F78A8
+ bl GetTextSpeedSetting
lsls r0, 24
lsrs r0, 24
str r4, [sp]
diff --git a/asm/trade.s b/asm/trade.s
index e9fcddf2d..5f0f9da85 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -3390,7 +3390,7 @@ _0804E208:
movs r1, 0x3
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x1
bl PutWindowTilemap
movs r0, 0x1
diff --git a/asm/trainer_card.s b/asm/trainer_card.s
index 2229c0b7d..0b0d6c2cf 100644
--- a/asm/trainer_card.s
+++ b/asm/trainer_card.s
@@ -291,7 +291,7 @@ _0808924A:
cmp r0, 0
beq _08089280
movs r0, 0xB
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
movs r0, 0xF2
bl PlaySE
@@ -387,7 +387,7 @@ _0808931C: .4byte gMain
_08089320: .4byte gReceivedRemoteLinkPlayers
_08089324:
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
bl sub_808B1D4
ldr r0, _08089340 @ =gUnknown_20397A4
ldr r1, [r0]
@@ -431,7 +431,7 @@ _0808937A:
bl sub_800AAC0
movs r0, 0
movs r1, 0x1
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _080893B0 @ =gUnknown_8419D89
movs r0, 0x1
str r0, [sp]
@@ -1647,7 +1647,7 @@ sub_8089D8C: @ 8089D8C
ldr r0, _08089DA0 @ =sub_8089070
bl SetMainCallback2
movs r0, 0xA
- bl sub_812B1F0
+ bl HelpSystem_SetSomeVariable2
pop {r0}
bx r0
.align 2, 0
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index c7be31ac9..194066e70 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -4299,7 +4299,7 @@ sub_812A424: @ 812A424
movs r1, 0x2
movs r2, 0
movs r3, 0x2
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
_0812A4F0:
add sp, 0x14
pop {r3}
@@ -5000,7 +5000,7 @@ sub_812AA10: @ 812AA10
movs r1, 0x2
movs r2, 0
movs r3, 0
- bl sub_810F7D8
+ bl ProgramAndPlaceMenuCursorOnWindow
movs r0, 0x3
bl PutWindowTilemap
add sp, 0xC
diff --git a/asm/unk_814BB4C.s b/asm/unk_814BB4C.s
index 9c0e0503b..5ad566185 100644
--- a/asm/unk_814BB4C.s
+++ b/asm/unk_814BB4C.s
@@ -201,7 +201,7 @@ _0814BC98:
_0814BCA2:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrb r1, [r5, 0x1]
movs r0, 0x2
mov r8, r0
@@ -287,7 +287,7 @@ _0814BD48:
beq _0814BD5A
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
_0814BD5A:
ldrb r0, [r7, 0xE]
movs r1, 0x1
@@ -597,7 +597,7 @@ _0814BFA0: .4byte gUnknown_83DFC9C
_0814BFA4:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r0, 0xA
movs r1, 0x1
movs r2, 0
@@ -2855,7 +2855,7 @@ _0814D106:
beq _0814D17E
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _0814D148 @ =gUnknown_8419F54
movs r0, 0
str r0, [sp]
@@ -2979,7 +2979,7 @@ _0814D204:
_0814D206:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
movs r4, 0
str r4, [sp]
adds r0, r6, 0
@@ -3159,7 +3159,7 @@ _0814D34A:
_0814D356:
movs r0, 0
movs r1, 0x1
- bl sub_80F6F54
+ bl ClearDialogWindowAndFrame
adds r0, r5, 0
bl sub_814DA04
movs r0, 0x1
@@ -3217,7 +3217,7 @@ _0814D3BA:
_0814D3C0:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldrh r1, [r5, 0x14]
cmp r1, 0x3
bne _0814D3F0
diff --git a/asm/unk_814D5C8.s b/asm/unk_814D5C8.s
index 4e8bbd051..422d34f07 100644
--- a/asm/unk_814D5C8.s
+++ b/asm/unk_814D5C8.s
@@ -186,8 +186,8 @@ _0814D768:
beq _0814D774
b _0814D87E
_0814D774:
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
adds r0, r5, 0
bl sub_814EB38
adds r0, r5, 0
diff --git a/asm/unk_81507FC.s b/asm/unk_81507FC.s
index e0448643e..324a6b48c 100644
--- a/asm/unk_81507FC.s
+++ b/asm/unk_81507FC.s
@@ -10657,7 +10657,7 @@ _08155A9C:
_08155AA6:
movs r0, 0
movs r1, 0
- bl sub_80F6EE4
+ bl DrawDialogueFrame
ldr r2, _08155ACC @ =gUnknown_8419F54
str r4, [sp]
movs r0, 0x2
@@ -11276,8 +11276,8 @@ _08155EC6:
movs r1, 0
movs r2, 0
bl ChangeBgY
- bl sub_80F6C6C
- bl sub_80F6C98
+ bl InitStandardTextBoxWindows
+ bl ResetBg0
movs r1, 0x82
lsls r1, 5
movs r0, 0
diff --git a/asm/wild_pokemon_area.s b/asm/wild_pokemon_area.s
index 26c908a14..71d8ac8dc 100644
--- a/asm/wild_pokemon_area.s
+++ b/asm/wild_pokemon_area.s
@@ -221,13 +221,13 @@ sub_813CB5C: @ 813CB5C
ldr r0, _0813CBBC @ =gUnknown_84642F4
lsls r4, 2
adds r4, r0
- bl sub_80CBDB0
+ bl ScrSpecial_GetStarter
ldrh r1, [r4, 0x2]
lsls r0, 16
lsrs r0, 16
cmp r1, r0
bne _0813CBC4
- bl sub_8142044
+ bl GetRoamerLocationMapSectionId
lsls r0, 16
lsrs r0, 16
movs r1, 0
diff --git a/asm/wireless_communication_status_screen.s b/asm/wireless_communication_status_screen.s
index b5f357a83..72368171f 100644
--- a/asm/wireless_communication_status_screen.s
+++ b/asm/wireless_communication_status_screen.s
@@ -130,7 +130,7 @@ sub_814F1E4: @ 814F1E4
movs r2, 0x20
bl LoadPalette
movs r0, 0xF0
- bl sub_80F77CC
+ bl Menu_LoadStdPalAt
bl UnkTextUtil_Reset
movs r0, 0x20
str r0, [sp]
diff --git a/data/data_835B488.s b/data/data_835B488.s
index c5b533348..2a0bfcf87 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -740,19 +740,19 @@ sFanfares:: @ 83AC990
gUnknown_83AC9D0:: @ 83AC9D0
.incbin "baserom.gba", 0x3AC9D0, 0x8
-gUnknown_83AC9D8::
+gOamData_83AC9D8::
.incbin "baserom.gba", 0x3AC9D8, 0x10
-gUnknown_83AC9E8::
+gOamData_83AC9E8::
.incbin "baserom.gba", 0x3AC9E8, 0x10
-gUnknown_83AC9F8::
+gOamData_83AC9F8::
.incbin "baserom.gba", 0x3AC9F8, 0x8
gUnknown_83ACA00::
.incbin "baserom.gba", 0x3ACA00, 0xF8
-gUnknown_83ACAF8::
+gOamData_83ACAF8::
.incbin "baserom.gba", 0x3ACAF8, 0x110
gUnknown_83ACC08:: @ 83ACC08
diff --git a/data/data_83F5738.s b/data/data_83F5738.s
index e6f026d0e..c14edc5c8 100644
--- a/data/data_83F5738.s
+++ b/data/data_83F5738.s
@@ -55,7 +55,7 @@ gUnknown_83F5BCC:: @ 83F5BCC
gUnknown_83F5D1C:: @ 83F5D1C
.incbin "baserom.gba", 0x3F5D1C, 0x10
-gUnknown_83F5D2C:: @ 83F5D2C
+sStarterMon:: @ 83F5D2C
.incbin "baserom.gba", 0x3F5D2C, 0x6
gUnknown_83F5D32:: @ 83F5D32
diff --git a/data/data_83FECCC.s b/data/data_83FECCC.s
index 96485c89e..682877f7e 100644
--- a/data/data_83FECCC.s
+++ b/data/data_83FECCC.s
@@ -586,7 +586,7 @@ gUnknown_8415C64:: @ 8415C64
gUnknown_8415CE8:: @ 8415CE8
.incbin "baserom.gba", 0x415CE8, 0x44
-gUnknown_8415D2C:: @ 8415D2C
+gText_Controls:: @ 8415D2C
.string "CONTROLS$"
.align 2
@@ -594,28 +594,30 @@ gUnknown_8415D38:: @ 8415D2C
.string "{KEYGFX_DPAD_UP_DOWN}えらぶ {KEYGFX_A_BUTTON}けってい$"
.align 2
-gUnknown_8415D48:: @ 8415D48
+gText_ABUTTONNext:: @ 8415D48
.string "{KEYGFX_A_BUTTON}NEXT$"
.align 2
-gUnknown_8415D50:: @ 8415D50
+gText_ABUTTONNext_BBUTTONBack:: @ 8415D50
.string "{KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}BACK$"
.align 2
-gUnknown_8415D60:: @ 8415D60
- .incbin "baserom.gba", 0x415D60, 0x18
+gText_UPDOWNPick_ABUTTONNext_BBUTTONBack:: @ 8415D60
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}NEXT {KEYGFX_B_BUTTON}CANCEL$"
-gUnknown_8415D78:: @ 8415D78
- .incbin "baserom.gba", 0x415D78, 0x14
+ .align 2
+gText_UPDOWNPick_ABUTTONBBUTTONCancel:: @ 8415D78
+ .string "{KEYGFX_DPAD_UP_DOWN}PICK {KEYGFX_A_BUTTON}{KEYGFX_B_BUTTON}CANCEL$"
-gUnknown_8415D8C:: @ 8415D8C
- .incbin "baserom.gba", 0x415D8C, 0x7
+ .align 2
+gText_ABUTTONExit:: @ 8415D8C
+ .string "{KEYGFX_A_BUTTON}EXIT$"
-gUnknown_8415D93:: @ 8415D93
- .incbin "baserom.gba", 0x415D93, 0x4
+gText_Boy:: @ 8415D93
+ .string "BOY$"
-gUnknown_8415D97:: @ 8415D97
- .incbin "baserom.gba", 0x415D97, 0x5
+gText_Girl:: @ 8415D97
+ .string "GIRL$"
gUnknown_8415D9C:: @ 8415D9C
.incbin "baserom.gba", 0x415D9C, 0x1C
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 7d4a7b996..95fcf7a92 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -428,167 +428,167 @@ gUnknown_81C5647:: @ 81C5647
gUnknown_81C566A:: @ 81C566A
.incbin "baserom.gba", 0x1C566A, 0xE5
-gUnknown_81C574F:: @ 81C574F
+gOtherText_NewName:: @ 81C574F
.string "NEW NAME$"
-gUnknown_81C5758:: @ 81C5758
+gNameChoice_Green:: @ 81C5758
.string "GREEN$"
-gUnknown_81C575E:: @ 81C575E
+gNameChoice_Red:: @ 81C575E
.string "RED$"
-gUnknown_81C5762:: @ 81C5762
+gNameChoice_Leaf:: @ 81C5762
.string "LEAF$"
-gUnknown_81C5767:: @ 81C5767
+gNameChoice_Fire:: @ 81C5767
.string "FIRE$"
-gUnknown_81C576C:: @ 81C576C
+gNameChoice_Gary:: @ 81C576C
.string "GARY$"
-gUnknown_81C5771:: @ 81C5771
+gNameChoice_Kaz:: @ 81C5771
.string "KAZ$"
-gUnknown_81C5775:: @ 81C5775
+gNameChoice_Toru:: @ 81C5775
.string "TORU$"
-gUnknown_81C577A:: @ 81C577A
+gNameChoice_Ash:: @ 81C577A
.string "ASH$"
-gUnknown_81C577E:: @ 81C577E
+gNameChoice_Kene:: @ 81C577E
.string "KENE$"
-gUnknown_81C5783:: @ 81C5783
+gNameChoice_Geki:: @ 81C5783
.string "GEKI$"
-gUnknown_81C5788:: @ 81C5788
+gNameChoice_Jak:: @ 81C5788
.string "JAK$"
-gUnknown_81C578C:: @ 81C578C
+gNameChoice_Janne:: @ 81C578C
.string "JANNE$"
-gUnknown_81C5792:: @ 81C5792
+gNameChoice_Jonn:: @ 81C5792
.string "JONN$"
-gUnknown_81C5797:: @ 81C5797
+gNameChoice_Kamon:: @ 81C5797
.string "KAMON$"
-gUnknown_81C579D:: @ 81C579D
+gNameChoice_Karl:: @ 81C579D
.string "KARL$"
-gUnknown_81C57A2:: @ 81C57A2
+gNameChoice_Taylor:: @ 81C57A2
.string "TAYLOR$"
-gUnknown_81C57A9:: @ 81C57A9
+gNameChoice_Oscar:: @ 81C57A9
.string "OSCAR$"
-gUnknown_81C57AF:: @ 81C57AF
+gNameChoice_Hiro:: @ 81C57AF
.string "HIRO$"
-gUnknown_81C57B4:: @ 81C57B4
+gNameChoice_Max:: @ 81C57B4
.string "MAX$"
-gUnknown_81C57B8:: @ 81C57B8
+gNameChoice_Jon:: @ 81C57B8
.string "JON$"
-gUnknown_81C57BC:: @ 81C57BC
+gNameChoice_Ralph:: @ 81C57BC
.string "RALPH$"
-gUnknown_81C57C2:: @ 81C57C2
+gNameChoice_Kay:: @ 81C57C2
.string "KAY$"
-gUnknown_81C57C6:: @ 81C57C6
+gNameChoice_Tosh:: @ 81C57C6
.string "TOSH$"
-gUnknown_81C57CB:: @ 81C57CB
+gNameChoice_Roak:: @ 81C57CB
.string "ROAK$"
-gUnknown_81C57D0:: @ 81C57D0
+gNameChoice_Omi:: @ 81C57D0
.string "OMI$"
-gUnknown_81C57D4:: @ 81C57D4
+gNameChoice_Jodi:: @ 81C57D4
.string "JODI$"
-gUnknown_81C57D9:: @ 81C57D9
+gNameChoice_Amanda:: @ 81C57D9
.string "AMANDA$"
-gUnknown_81C57E0:: @ 81C57E0
+gNameChoice_Hillary:: @ 81C57E0
.string "HILLARY$"
-gUnknown_81C57E8:: @ 81C57E8
+gNameChoice_Makey:: @ 81C57E8
.string "MAKEY$"
-gUnknown_81C57EE:: @ 81C57EE
+gNameChoice_Michi:: @ 81C57EE
.string "MICHI$"
-gUnknown_81C57F4:: @ 81C57F4
+gNameChoice_Paula:: @ 81C57F4
.string "PAULA$"
-gUnknown_81C57FA:: @ 81C57FA
+gNameChoice_June:: @ 81C57FA
.string "JUNE$"
-gUnknown_81C57FF:: @ 81C57FF
+gNameChoice_Cassie:: @ 81C57FF
.string "CASSIE$"
-gUnknown_81C5806:: @ 81C5806
+gNameChoice_Rey:: @ 81C5806
.string "REY$"
-gUnknown_81C580A:: @ 81C580A
+gNameChoice_Seda:: @ 81C580A
.string "SEDA$"
-gUnknown_81C580F:: @ 81C580F
+gNameChoice_Kiko:: @ 81C580F
.string "KIKO$"
-gUnknown_81C5814:: @ 81C5814
+gNameChoice_Mina:: @ 81C5814
.string "MINA$"
-gUnknown_81C5819:: @ 81C5819
+gNameChoice_Norie:: @ 81C5819
.string "NORIE$"
-gUnknown_81C581F:: @ 81C581F
+gNameChoice_Sai:: @ 81C581F
.string "SAI$"
-gUnknown_81C5823:: @ 81C5823
+gNameChoice_Momo:: @ 81C5823
.string "MOMO$"
-gUnknown_81C5828:: @ 81C5828
+gNameChoice_Suzi:: @ 81C5828
.string "SUZI$"
-gUnknown_81C582D:: @ 81C582D
+gNewGame_HelpDocs1:: @ 81C582D
.string "The various buttons will be explained in\n"
.string "the order of their importance.$"
-gUnknown_81C5875:: @ 81C5875
+gNewGame_HelpDocs2:: @ 81C5875
.string "Moves the main character.\n"
.string "Also used to choose various data\n"
.string "headings.$"
-gUnknown_81C58BA:: @ 81C58BA
+gNewGame_HelpDocs3:: @ 81C58BA
.string "Used to confirm a choice, check\n"
.string "things, chat, and scroll text.$"
-gUnknown_81C58F9:: @ 81C58F9
+gNewGame_HelpDocs4:: @ 81C58F9
.string "Used to exit, cancel a choice,\n"
.string "and cancel a mode.$"
-gUnknown_81C592B:: @ 81C592B
+gNewGame_HelpDocs5:: @ 81C592B
.string "Press this button to open the\n"
.string "MENU.$"
-gUnknown_81C594F:: @ 81C594F
+gNewGame_HelpDocs6:: @ 81C594F
.string "Used to shift items and to use\n"
.string "a registered item.$"
-gUnknown_81C5981:: @ 81C5981
+gNewGame_HelpDocs7:: @ 81C5981
.string "If you need help playing the\n"
.string "game, or on how to do things,\n"
.string "press the L or R Button.$"
-gUnknown_81C59D5:: @ 81C59D5
+gOakText_AskPlayerGender:: @ 81C59D5
.string "Now tell me. Are you a boy?\n"
.string "Or are you a girl?$"
-gUnknown_81C5A04::
+gNewGameAdventureIntro1::
.string "In the world which you are about to\n"
.string "enter, you will embark on a grand\n"
.string "adventure with you as the hero.\n"
@@ -598,7 +598,7 @@ gUnknown_81C5A04::
.string "or caves. Gather information and\n"
.string "hints from every source.$"
-gUnknown_81C5AEB::
+gNewGameAdventureIntro2::
.string "New paths will open to you by helping\n"
.string "people in need, overcoming challenges,\n"
.string "and solving mysteries.\n"
@@ -607,7 +607,7 @@ gUnknown_81C5AEB::
.string "others and attacked by wild creatures.\n"
.string "Be brave and keep pushing on.$"
-gUnknown_81C5BB9::
+gNewGameAdventureIntro3::
.string "Through your adventure, we hope\n"
.string "that you will interact with all sorts\n"
.string "of people and achieve personal growth.\n"
@@ -616,49 +616,49 @@ gUnknown_81C5BB9::
.string "Press the A Button, and let your\n"
.string "adventure begin!$"
-gUnknown_81C5C78:: @ 81C5C78
+gOakText_WelcomeToTheWorld:: @ 81C5C78
.string "Hello, there!\n"
.string "Glad to meet you!\pWelcome to the world of POKéMON!\pMy name is OAK.\pPeople affectionately refer to me\n"
.string "as the POKéMON PROFESSOR.\p$"
-gUnknown_81C5D06:: @ 81C5D06
+gOakText_WorldInhabited1:: @ 81C5D06
.string "This world…$"
-gUnknown_81C5D12:: @ 81C5D12
+gOakText_WorldInhabited2:: @ 81C5D12
.string "…is inhabited far and wide by\n"
.string "creatures called POKéMON.\p$"
-gUnknown_81C5D4B:: @ 81C5D4B
+gOakText_PetsBattlingStudy:: @ 81C5D4B
.string "For some people, POKéMON are pets.\n"
.string "Others use them for battling.\pAs for myself…\pI study POKéMON as a profession.\p$"
-gUnknown_81C5DBD:: @ 81C5DBD
+gOakText_TellMeALittleAboutYourself:: @ 81C5DBD
.string "But first, tell me a little about\n"
.string "yourself.\p$"
-gUnknown_81C5DEA:: @ 81C5DEA
+gOakText_AskPlayerName:: @ 81C5DEA
.string "Let’s begin with your name.\n"
.string "What is it?\p$"
-gUnknown_81C5E13:: @ 81C5E13
+gOakText_FinalizePlayerName:: @ 81C5E13
.string "Right…\n"
.string "So your name is {PLAYER}.$"
-gUnknown_81C5E2E:: @ 81C5E2E
+gOakText_IntroduceRival:: @ 81C5E2E
.string "This is my grandson.\pHe’s been your rival since you both\n"
.string "were babies.\p…Erm, what was his name now?$"
-gUnknown_81C5E91:: @ 81C5E91
+gOakText_AskRivalName:: @ 81C5E91
.string "Your rival’s name, what was it now?$"
-gUnknown_81C5EB5:: @ 81C5EB5
+gOakText_ConfirmRivalName:: @ 81C5EB5
.string "…Er, was it {RIVAL}?$"
-gUnknown_81C5EC5:: @ 81C5EC5
+gOakText_RememberRivalName:: @ 81C5EC5
.string "That’s right! I remember now!\n"
.string "His name is {RIVAL}!\p$"
-gUnknown_81C5EF4:: @ 81C5EF4
+gOakText_LegendAboutToUnfold:: @ 81C5EF4
.string "{PLAYER}!\pYour very own POKéMON legend is\n"
.string "about to unfold!\pA world of dreams and adventures\n"
.string "with POKéMON awaits! Let’s go!$"
diff --git a/data/oak_speech/unk_8462A10.png b/data/oak_speech/unk_8462A10.png
index 324529e90..2c8e425d2 100644
--- a/data/oak_speech/unk_8462A10.png
+++ b/data/oak_speech/unk_8462A10.png
Binary files differ
diff --git a/data/oak_speech/unk_8462B74.png b/data/oak_speech/unk_8462B74.png
index 674cef46d..71644c355 100644
--- a/data/oak_speech/unk_8462B74.png
+++ b/data/oak_speech/unk_8462B74.png
Binary files differ
diff --git a/data/oak_speech/unk_8462D34.png b/data/oak_speech/unk_8462D34.png
index 56715aadb..e85cbfa9c 100644
--- a/data/oak_speech/unk_8462D34.png
+++ b/data/oak_speech/unk_8462D34.png
Binary files differ
diff --git a/data/oak_speech/unk_8462E18.png b/data/oak_speech/unk_8462E18.png
index f6796f724..5e2fd80c0 100644
--- a/data/oak_speech/unk_8462E18.png
+++ b/data/oak_speech/unk_8462E18.png
Binary files differ
diff --git a/data/roamer.s b/data/roamer.s
deleted file mode 100644
index a17d9d26b..000000000
--- a/data/roamer.s
+++ /dev/null
@@ -1,5 +0,0 @@
- .section .rodata
- .align 2
-
-gUnknown_8466C58:: @ 8466C58
- .incbin "baserom.gba", 0x466C58, 0xB8
diff --git a/data/specials.inc b/data/specials.inc
index 56b666207..33cc5736b 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -306,7 +306,7 @@ gSpecials:: @ 815FD60
def_special ScrSpecial_AreLeadMonEVsMaxedOut
def_special sub_8069740
def_special sub_8069768
- def_special sub_8141D9C
+ def_special InitRoamer
def_special nullsub_75
def_special sub_80CA804
def_special nullsub_75
@@ -363,7 +363,7 @@ gSpecials:: @ 815FD60
def_special GetDaycarePokemonCount
def_special sub_80CB63C
def_special sub_80CBD80
- def_special sub_80CBDB0
+ def_special ScrSpecial_GetStarter
def_special sub_80CBDCC
def_special sub_810C444
def_special sub_80CC7B4
diff --git a/include/constants/vars.h b/include/constants/vars.h
index 886bae93c..2f817fb02 100644
--- a/include/constants/vars.h
+++ b/include/constants/vars.h
@@ -54,7 +54,7 @@
#define VAR_0x402F 0x402F
#define VAR_0x4030 0x4030
-#define VAR_0x4031 0x4031
+#define VAR_STARTER_MON 0x4031
#define VAR_0x4032 0x4032
#define VAR_ENIGMA_BERRY_AVAILABLE 0x4033
diff --git a/include/event_scripts.h b/include/event_scripts.h
index d925f4b52..1762faf8e 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -705,71 +705,71 @@ extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni3[];
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni4[];
extern const u8 gFameCheckerFlavorTextOriginObjectName_Giovanni5[];
-extern const u8 gUnknown_81C574F[];
-extern const u8 gUnknown_81C5758[];
-extern const u8 gUnknown_81C575E[];
-extern const u8 gUnknown_81C575E[];
-extern const u8 gUnknown_81C5767[];
-extern const u8 gUnknown_81C5767[];
-extern const u8 gUnknown_81C576C[];
-extern const u8 gUnknown_81C5771[];
-extern const u8 gUnknown_81C5775[];
-extern const u8 gUnknown_81C577A[];
-extern const u8 gUnknown_81C577E[];
-extern const u8 gUnknown_81C5783[];
-extern const u8 gUnknown_81C5788[];
-extern const u8 gUnknown_81C578C[];
-extern const u8 gUnknown_81C5792[];
-extern const u8 gUnknown_81C5797[];
-extern const u8 gUnknown_81C579D[];
-extern const u8 gUnknown_81C57A2[];
-extern const u8 gUnknown_81C57A9[];
-extern const u8 gUnknown_81C57AF[];
-extern const u8 gUnknown_81C57B4[];
-extern const u8 gUnknown_81C57B8[];
-extern const u8 gUnknown_81C57BC[];
-extern const u8 gUnknown_81C57C2[];
-extern const u8 gUnknown_81C57C6[];
-extern const u8 gUnknown_81C57CB[];
-extern const u8 gUnknown_81C57D0[];
-extern const u8 gUnknown_81C57D4[];
-extern const u8 gUnknown_81C57D9[];
-extern const u8 gUnknown_81C57E0[];
-extern const u8 gUnknown_81C57E8[];
-extern const u8 gUnknown_81C57EE[];
-extern const u8 gUnknown_81C57F4[];
-extern const u8 gUnknown_81C57FA[];
-extern const u8 gUnknown_81C57FF[];
-extern const u8 gUnknown_81C5806[];
-extern const u8 gUnknown_81C580A[];
-extern const u8 gUnknown_81C580F[];
-extern const u8 gUnknown_81C5814[];
-extern const u8 gUnknown_81C5819[];
-extern const u8 gUnknown_81C581F[];
-extern const u8 gUnknown_81C5823[];
-extern const u8 gUnknown_81C5828[];
-extern const u8 gUnknown_81C582D[];
-extern const u8 gUnknown_81C5875[];
-extern const u8 gUnknown_81C58BA[];
-extern const u8 gUnknown_81C58F9[];
-extern const u8 gUnknown_81C592B[];
-extern const u8 gUnknown_81C594F[];
-extern const u8 gUnknown_81C5981[];
-extern const u8 gUnknown_81C59D5[];
-extern const u8 gUnknown_81C5A04[];
-extern const u8 gUnknown_81C5AEB[];
-extern const u8 gUnknown_81C5BB9[];
-extern const u8 gUnknown_81C5C78[];
-extern const u8 gUnknown_81C5D06[];
-extern const u8 gUnknown_81C5D12[];
-extern const u8 gUnknown_81C5D4B[];
-extern const u8 gUnknown_81C5DBD[];
-extern const u8 gUnknown_81C5DEA[];
-extern const u8 gUnknown_81C5E13[];
-extern const u8 gUnknown_81C5E2E[];
-extern const u8 gUnknown_81C5E91[];
-extern const u8 gUnknown_81C5EB5[];
-extern const u8 gUnknown_81C5EC5[];
-extern const u8 gUnknown_81C5EF4[];
+extern const u8 gOtherText_NewName[];
+extern const u8 gNameChoice_Green[];
+extern const u8 gNameChoice_Red[];
+extern const u8 gNameChoice_Red[];
+extern const u8 gNameChoice_Fire[];
+extern const u8 gNameChoice_Fire[];
+extern const u8 gNameChoice_Gary[];
+extern const u8 gNameChoice_Kaz[];
+extern const u8 gNameChoice_Toru[];
+extern const u8 gNameChoice_Ash[];
+extern const u8 gNameChoice_Kene[];
+extern const u8 gNameChoice_Geki[];
+extern const u8 gNameChoice_Jak[];
+extern const u8 gNameChoice_Janne[];
+extern const u8 gNameChoice_Jonn[];
+extern const u8 gNameChoice_Kamon[];
+extern const u8 gNameChoice_Karl[];
+extern const u8 gNameChoice_Taylor[];
+extern const u8 gNameChoice_Oscar[];
+extern const u8 gNameChoice_Hiro[];
+extern const u8 gNameChoice_Max[];
+extern const u8 gNameChoice_Jon[];
+extern const u8 gNameChoice_Ralph[];
+extern const u8 gNameChoice_Kay[];
+extern const u8 gNameChoice_Tosh[];
+extern const u8 gNameChoice_Roak[];
+extern const u8 gNameChoice_Omi[];
+extern const u8 gNameChoice_Jodi[];
+extern const u8 gNameChoice_Amanda[];
+extern const u8 gNameChoice_Hillary[];
+extern const u8 gNameChoice_Makey[];
+extern const u8 gNameChoice_Michi[];
+extern const u8 gNameChoice_Paula[];
+extern const u8 gNameChoice_June[];
+extern const u8 gNameChoice_Cassie[];
+extern const u8 gNameChoice_Rey[];
+extern const u8 gNameChoice_Seda[];
+extern const u8 gNameChoice_Kiko[];
+extern const u8 gNameChoice_Mina[];
+extern const u8 gNameChoice_Norie[];
+extern const u8 gNameChoice_Sai[];
+extern const u8 gNameChoice_Momo[];
+extern const u8 gNameChoice_Suzi[];
+extern const u8 gNewGame_HelpDocs1[];
+extern const u8 gNewGame_HelpDocs2[];
+extern const u8 gNewGame_HelpDocs3[];
+extern const u8 gNewGame_HelpDocs4[];
+extern const u8 gNewGame_HelpDocs5[];
+extern const u8 gNewGame_HelpDocs6[];
+extern const u8 gNewGame_HelpDocs7[];
+extern const u8 gOakText_AskPlayerGender[];
+extern const u8 gNewGameAdventureIntro1[];
+extern const u8 gNewGameAdventureIntro2[];
+extern const u8 gNewGameAdventureIntro3[];
+extern const u8 gOakText_WelcomeToTheWorld[];
+extern const u8 gOakText_WorldInhabited1[];
+extern const u8 gOakText_WorldInhabited2[];
+extern const u8 gOakText_PetsBattlingStudy[];
+extern const u8 gOakText_TellMeALittleAboutYourself[];
+extern const u8 gOakText_AskPlayerName[];
+extern const u8 gOakText_FinalizePlayerName[];
+extern const u8 gOakText_IntroduceRival[];
+extern const u8 gOakText_AskRivalName[];
+extern const u8 gOakText_ConfirmRivalName[];
+extern const u8 gOakText_RememberRivalName[];
+extern const u8 gOakText_LegendAboutToUnfold[];
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 2d495fdd5..c1bc8e8c9 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -6,5 +6,6 @@
u8 GetLeadMonIndex(void);
u8 CountDigits(u16 number);
void TV_PrintIntToStringVar(u8, int);
+u16 ScrSpecial_GetStarter(void);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/help_system.h b/include/help_system.h
index 0192809fc..3ef5f53e4 100644
--- a/include/help_system.h
+++ b/include/help_system.h
@@ -6,6 +6,6 @@
extern bool8 gUnknown_3005ECC;
void sub_812B484(void);
-void sub_812B1F0(u8);
+void HelpSystem_SetSomeVariable2(u8);
#endif //GUARD_HELP_SYSTEM_H
diff --git a/include/menu.h b/include/menu.h
index 3394603c8..f26c7efde 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -38,12 +38,15 @@ void AddTextPrinterParametrized2(u8 windowId, u8 fontId, u8 x, u8 y, u8 letterSp
void sub_8197B1C(u8 windowId, bool8 copyToVram, u16 a2, u16 a3);
void sub_810F4D8(u8 windowId, bool32 someBool);
void *sub_80F68F0(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
-void sub_810F558(u8, u8, u8, u8, u16);
-void sub_810F650(const u8 *, const u8 *, u8, u32, u8);
-void sub_810F5E8(const u8 *, u32, u8);
+void CreateWindow_SnapRight_StdPal(u8, u8, u8, u8, u16);
+void Menu_PrintHelpSystemUIHeader(const u8 *, const u8 *, u8, u32, u8);
+void PrintTextOnRightSnappedWindow(const u8 *, u32, u8);
void sub_810F71C(void);
void sub_810F740(void);
-void sub_810F7D8(u8, u8, u8, u8, u8, u8, u8);
+u8 ProgramAndPlaceMenuCursorOnWindow(u8 windowId, u8 fontId, u8 left, u8 top, u8 cursorHeight, u8 numChoices, u8 initialCursorPosition);
void sub_810FF60(const struct WindowTemplate *, u8, u8, u8, u16, u8, u8);
+void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
+bool8 IsBlendTaskActive(void);
+
#endif // GUARD_MENU_H
diff --git a/include/new_menu_helpers.h b/include/new_menu_helpers.h
index 0157896cb..fe8b5b754 100644
--- a/include/new_menu_helpers.h
+++ b/include/new_menu_helpers.h
@@ -15,18 +15,18 @@ void sub_8197434(u8 a0, u8 a1);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
void sub_8197930(void);
u8 GetPlayerTextSpeed(void);
-void sub_80F6F54(u8, u8);
-u8 sub_80F78A8(void);
+void ClearDialogWindowAndFrame(u8, u8);
+u8 GetTextSpeedSetting(void);
void sub_80F6E9C(void);
-void sub_80F6EE4(u8 windowId, bool8 transfer);
+void DrawDialogueFrame(u8 windowId, bool8 transfer);
void sub_80F7974(const u8 *);
u8 GetStartMenuWindowId(void);
void sub_80F7998(void);
void sub_80F69E8(u8 bgId, const void *src, u32 size, u16 offset, u8 mode);
-void sub_80F6F1C(u8 windowId, bool8 copyNow);
-void sub_80F6C6C(void);
-void sub_80F6C98(void);
-void sub_80F77CC(u16);
+void DrawStdWindowFrame(u8 windowId, bool8 copyNow);
+void InitStandardTextBoxWindows(void);
+void ResetBg0(void);
+void Menu_LoadStdPalAt(u16);
void * malloc_and_decompress(const void * src, u32 * size);
u16 sub_80F796C(void);
diff --git a/include/oak_speech.h b/include/oak_speech.h
index 5ee916b86..d5d94bc83 100644
--- a/include/oak_speech.h
+++ b/include/oak_speech.h
@@ -1,7 +1,6 @@
#ifndef GUARD_OAK_SPEECH_H
#define GUARD_OAK_SPEECH_H
-void OakSpeech_StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority);
-bool8 OakSpeech_IsBlendTaskActive(void);
+void StartNewGameScene(void);
#endif //GUARD_OAK_SPEECH_H
diff --git a/include/pokemon_3.h b/include/pokemon_3.h
index f6226f40d..e65bc85fc 100644
--- a/include/pokemon_3.h
+++ b/include/pokemon_3.h
@@ -5,7 +5,7 @@
const u8* GetTrainerClassNameFromId(u16 trainerId);
const u8* GetTrainerNameFromId(u16 trainerId);
-void sub_8044AF0(u8, u8);
+void * SetUpMonSpriteManagerMaybe(u8, u8);
void sub_8044D80(void);
void * sub_8044E00(u8 buffId);
diff --git a/include/text.h b/include/text.h
index c8835fbde..d2c2ecf42 100644
--- a/include/text.h
+++ b/include/text.h
@@ -250,7 +250,7 @@ s32 GetGlyphWidthFont3(u16 glyphId, bool32 isJapanese);
s32 GetGlyphWidthFont4(u16 glyphId, bool32 isJapanese);
s32 GetGlyphWidthFont5(u16 glyphId, bool32 isJapanese);
void sub_80062B0(struct Sprite *sprite);
-u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority);
+u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority);
void sub_8006398(u8 spriteId);
#endif // GUARD_TEXT_H
diff --git a/ld_script.txt b/ld_script.txt
index eb38837ef..52e4ff197 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -240,7 +240,7 @@ SECTIONS {
asm/itemfinder.o(.text);
asm/buy_menu_helpers.o(.text);
asm/slot_machine.o(.text);
- asm/roamer.o(.text);
+ src/roamer.o(.text);
asm/mystery_gift_menu.o(.text);
asm/link_rfu_4.o(.text);
src/mevent.o(.text);
@@ -395,7 +395,7 @@ SECTIONS {
data/itemfinder.o(.rodata);
data/buy_menu_helpers.o(.rodata);
data/slot_machine.o(.rodata);
- data/roamer.o(.rodata);
+ src/roamer.o(.rodata);
data/mystery_gift_menu.o(.rodata);
data/link_rfu_4.o(.rodata);
src/mevent.o(.rodata);
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 855e9d157..29b888a32 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -779,7 +779,7 @@ static void GetPickModeText(void)
if (HasUnlockedAllFlavorTextsForCurrentPerson() == TRUE)
offset = NUM_FAMECHECKER_PERSONS;
StringExpandPlaceholders(gStringVar4, sFameCheckerNameAndQuotesPointers[sFameCheckerData->unlockedPersons[who] + offset]);
- AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3);
+ AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
}
}
@@ -790,7 +790,7 @@ static void PrintSelectedNameInBrightGreen(u8 taskId)
u16 cursorPos = FameCheckerGetCursorY();
FillWindowPixelRect(FCWINDOWID_MSGBOX, 0x11, 0, 0, 0xd0, 0x20);
StringExpandPlaceholders(gStringVar4, sFameCheckerFlavorTextPointers[sFameCheckerData->unlockedPersons[cursorPos] * 6 + data[1]]);
- AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, sub_80F78A8(), NULL, 2, 1, 3);
+ AddTextPrinterParametrized(FCWINDOWID_MSGBOX, 2, gStringVar4, GetTextSpeedSetting(), NULL, 2, 1, 3);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
}
@@ -803,7 +803,7 @@ static void WipeMsgBoxAndTransfer(void)
static void Setup_DrawMsgAndListBoxes(void)
{
sub_80F6E9C();
- sub_80F6EE4(FCWINDOWID_MSGBOX, TRUE);
+ DrawDialogueFrame(FCWINDOWID_MSGBOX, TRUE);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_MSGBOX);
FC_PutWindowTilemapAndCopyWindowToVramMode3(FCWINDOWID_LIST);
}
diff --git a/src/menu2.c b/src/menu2.c
index e83b1bff2..ec244b8f7 100644
--- a/src/menu2.c
+++ b/src/menu2.c
@@ -768,7 +768,7 @@ void sub_819A080(void * a0, void * a1, u16 a2, u16 a3, u16 a4, u16 a5, u16 a6, u
#define tEvWhich data[6]
#define tEvStepCount data[8]
-void OakSpeech_StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority)
+void StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end, u8 ev_step, u8 priority)
{
u8 taskId = CreateTask(Task_SmoothBlendLayers, priority);
gTasks[taskId].tEvA = eva_start << 8;
@@ -781,7 +781,7 @@ void OakSpeech_StartBlendTask(u8 eva_start, u8 evb_start, u8 eva_end, u8 evb_end
SetGpuReg(REG_OFFSET_BLDALPHA, (evb_start << 8) | eva_start);
}
-bool8 OakSpeech_IsBlendTaskActive(void)
+bool8 IsBlendTaskActive(void)
{
return FuncIsActiveTask(Task_SmoothBlendLayers);
}
diff --git a/src/mevent_8145654.c b/src/mevent_8145654.c
index c39d76f25..65f515d1b 100644
--- a/src/mevent_8145654.c
+++ b/src/mevent_8145654.c
@@ -58,7 +58,7 @@ void sub_8145D18(u8 whichWindow);
void sub_8146060(void);
void sub_81461D8(void);
-extern const struct OamData gUnknown_83AC9F8;
+extern const struct OamData gOamData_83AC9F8;
const struct TextColor gUnknown_8467068[] = {
{0, 2, 3},
@@ -113,7 +113,7 @@ const struct SpritePalette gUnknown_8467F60[] = {
{gUnknown_8467ED4, 0x8000}
};
const struct SpriteTemplate gUnknown_8467FA0 = {
- 0x8000, 0x8000, &gUnknown_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
+ 0x8000, 0x8000, &gOamData_83AC9F8, gDummySpriteAnimTable, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy
};
const struct UnkStruct_8467FB8 gUnknown_8467FB8[8] = {
{1, 0, 0, 0, gUnknown_846718C, gUnknown_8467288, gUnknown_846708C},
diff --git a/src/oak_speech.c b/src/oak_speech.c
index 056dbd56b..2e58e801d 100644
--- a/src/oak_speech.c
+++ b/src/oak_speech.c
@@ -30,15 +30,15 @@
struct OakSpeechResources
{
- void * unk_0000;
- void * unk_0004;
+ void * solidColorsGfx;
+ void * trainerPicTilemapBuffer;
void * unk_0008;
u8 filler_000C[4];
u16 unk_0010;
u16 unk_0012;
u16 unk_0014[4];
u8 unk_001C[3];
- u8 unk_001F;
+ u8 textSpeed;
u8 filler_0020[0x1800];
u8 bg2TilemapBuffer[0x400];
u8 bg1TilemapBuffer[0x800];
@@ -46,96 +46,96 @@ struct OakSpeechResources
EWRAM_DATA struct OakSpeechResources * sOakSpeechResources = NULL;
-static void sub_812EB58(u8 taskId);
-static void sub_812EEB0(void);
-static void sub_812F0B0(u8 taskId);
-static void sub_812F180(u8 taskId);
-static void sub_812F274(u8 taskId);
-static void sub_812F33C(u8 taskId);
-static void sub_812F4A8(u8 taskId);
-static void sub_812F72C(u8 taskId);
-static void sub_812F7C0(u8 taskId);
-static void sub_812F880(u8 taskId);
-static void sub_812F880(u8 taskId);
-static void sub_812F944(u8 taskId);
-static void sub_812F9EC(u8 taskId);
-static void sub_812FA78(u8 taskId);
-static void sub_812FB4C(u8 taskId);
-static void sub_812FBF0(u8 taskId);
-static void sub_812FC68(u8 taskId);
-static void sub_812FD78(u8 taskId);
-static void sub_812FDC0(u8 taskId);
-static void sub_812FE88(u8 taskId);
-static void sub_812FFA4(u8 taskId);
-static void sub_812FFF0(u8 taskId);
-static void sub_8130050(u8 taskId);
-static void sub_81300A0(u8 taskId);
-static void sub_8130160(u8 taskId);
-static void sub_8130324(u8 taskId);
-static void sub_81303B4(u8 taskId);
-static void sub_8130464(u8 taskId);
-static void sub_8130554(u8 taskId);
-static void sub_8130650(u8 taskId);
-static void sub_8130694(u8 taskId);
-static void sub_81306D4(u8 taskId);
-static void sub_813071C(u8 taskId);
-static void sub_81307D0(u8 taskId);
-static void sub_8130858(u8 taskId);
-static void sub_81308D0(u8 taskId);
-static void sub_8130914(u8 taskId);
-static void sub_8130940(u8 taskId);
-static void sub_8130980(u8 taskId);
-static void sub_8130A38(u8 taskId);
-static void sub_8130A80(u8 taskId);
-static void sub_8130ADC(u8 taskId);
-static void sub_8130B10(u8 taskId);
-static void sub_8130BA8(u8 taskId);
-static void sub_8130BF0(u8 taskId);
-static void sub_8130C20(u8 taskId);
+static void Task_OaksSpeech1(u8 taskId);
+static void CreateHelpDocsPage1(void);
+static void Task_OaksSpeech2(u8 taskId);
+static void Task_OakSpeech3(u8 taskId);
+static void Task_OakSpeech5(u8 taskId);
+static void Task_OakSpeech6(u8 taskId);
+static void Task_OakSpeech7(u8 taskId);
+static void Task_OakSpeech8(u8 taskId);
+static void Task_OakSpeech9(u8 taskId);
+static void Task_OakSpeech10(u8 taskId);
+static void Task_OakSpeech10(u8 taskId);
+static void Task_OakSpeech11(u8 taskId);
+static void Task_OakSpeech12(u8 taskId);
+static void Task_OakSpeech13(u8 taskId);
+static void Task_OakSpeech14(u8 taskId);
+static void Task_OakSpeech15(u8 taskId);
+static void Task_OakSpeech16(u8 taskId);
+static void Task_OakSpeech17(u8 taskId);
+static void Task_OakSpeech18(u8 taskId);
+static void Task_OakSpeech19(u8 taskId);
+static void Task_OakSpeech20(u8 taskId);
+static void Task_OakSpeech21(u8 taskId);
+static void Task_OakSpeech22(u8 taskId);
+static void Task_OakSpeech23(u8 taskId);
+static void Task_OakSpeech24(u8 taskId);
+static void Task_OakSpeech29(u8 taskId);
+static void Task_OakSpeech25(u8 taskId);
+static void Task_OakSpeech26(u8 taskId);
+static void Task_OakSpeech27(u8 taskId);
+static void Task_OakSpeech30(u8 taskId);
+static void Task_OakSpeech31(u8 taskId);
+static void Task_OakSpeech32(u8 taskId);
+static void Task_OakSpeech34(u8 taskId);
+static void Task_OakSpeech33(u8 taskId);
+static void Task_OakSpeech36(u8 taskId);
+static void Task_OakSpeech37(u8 taskId);
+static void Task_OakSpeech38(u8 taskId);
+static void Task_OakSpeech38_3(u8 taskId);
+static void Task_OakSpeech39(u8 taskId);
+static void Task_OakSpeech38_1(u8 taskId);
+static void Task_OakSpeech38_sub1(u8 taskId);
+static void Task_OakSpeech38_2(u8 taskId);
+static void Task_OakSpeech38_sub2(u8 taskId);
+static void Task_OakSpeech40(u8 taskId);
+static void Task_OakSpeech41(u8 taskId);
+static void Task_OakSpeech42(u8 taskId);
static void CB2_ReturnFromNamingScreen(void);
static void CreateNidoranFSprite(u8 taskId);
-static void sub_8130FD4(u8 taskId, u8 state);
-static void sub_8131168(u8 taskId, u8 state);
-static void sub_81311F4(u16 whichPic, u16 tileOffset);
-static void sub_8131310(void);
-static void sub_813144C(u8 taskId, u8 state);
-static void sub_81315CC(u8 taskId, u8 state);
-static void sub_8131660(u8 taskId, u8 state);
-static void sub_8131754(u8 arg0, u8 namePick);
-
-extern const u8 gUnknown_8415D2C[];
-extern const u8 gUnknown_8415D48[];
-extern const u8 gUnknown_8415D50[];
-extern const u8 gUnknown_8415D93[];
-extern const u8 gUnknown_8415D97[];
+static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state);
+static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state);
+static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset);
+static void DestroyOaksSpeechTrainerPic(void);
+static void CreateFadeInTask(u8 taskId, u8 state);
+static void CreateFadeOutTask(u8 taskId, u8 state);
+static void PrintNameChoiceOptions(u8 taskId, u8 state);
+static void GetDefaultName(u8 arg0, u8 namePick);
+
+extern const u8 gText_Controls[];
+extern const u8 gText_ABUTTONNext[];
+extern const u8 gText_ABUTTONNext_BBUTTONBack[];
+extern const u8 gText_Boy[];
+extern const u8 gText_Girl[];
extern const struct CompressedSpriteSheet gUnknown_8235194[];
extern const struct CompressedSpritePalette gUnknown_82373F4;
-ALIGNED(4) const u16 gUnknown_8460568[] = INCBIN_U16("data/oak_speech/unk_8460568.gbapal");
-static const u32 gUnknown_84605E8[] = INCBIN_U32("data/oak_speech/unk_84605E8.4bpp.lz");
-static const u32 gUnknown_8460BA8[] = INCBIN_U32("data/oak_speech/unk_8460BA8.bin.lz");
-static const u32 gUnknown_8460CA4[] = INCBIN_U32("data/oak_speech/unk_8460CA4.4bpp.lz");
-static const u32 gUnknown_8460CE8[] = INCBIN_U32("data/oak_speech/unk_8460CE8.bin.lz");
-static const u16 gUnknown_8460D94[] = INCBIN_U16("data/oak_speech/unk_8460D94.bin");
-static const u16 gUnknown_8460E34[] = INCBIN_U16("data/oak_speech/unk_8460E34.bin");
-static const u16 gUnknown_8460ED4[] = INCBIN_U16("data/oak_speech/unk_8460ED4.gbapal");
-static const u32 gUnknown_8460F14[] = INCBIN_U32("data/oak_speech/unk_8460F14.8bpp.lz");
-static const u16 gUnknown_84615FC[] = INCBIN_U16("data/oak_speech/unk_84615FC.gbapal");
-static const u32 gUnknown_846163C[] = INCBIN_U32("data/oak_speech/unk_846163C.8bpp.lz");
-static const u16 gUnknown_8461CD4[] = INCBIN_U16("data/oak_speech/unk_8461CD4.gbapal");
-static const u32 gUnknown_8461D14[] = INCBIN_U32("data/oak_speech/unk_8461D14.8bpp.lz");
-static const u16 gUnknown_84623AC[] = INCBIN_U16("data/oak_speech/unk_84623AC.gbapal");
-static const u32 gUnknown_84623EC[] = INCBIN_U32("data/oak_speech/unk_84623EC.8bpp.lz");
-static const u16 gUnknown_84629D0[] = INCBIN_U16("data/oak_speech/unk_84629D0.gbapal");
-static const u16 gUnknown_84629F0[] = INCBIN_U16("data/oak_speech/unk_84629F0.gbapal");
-static const u32 gUnknown_8462A10[] = INCBIN_U32("data/oak_speech/unk_8462A10.4bpp.lz");
-static const u32 gUnknown_8462B74[] = INCBIN_U32("data/oak_speech/unk_8462B74.4bpp.lz");
-static const u32 gUnknown_8462D34[] = INCBIN_U32("data/oak_speech/unk_8462D34.4bpp.lz");
-static const u32 gUnknown_8462E18[] = INCBIN_U32("data/oak_speech/unk_8462E18.4bpp.lz");
-
-static const struct BgTemplate gUnknown_8462E58[3] = {
+ALIGNED(4) const u16 sHelpDocsPalette[] = INCBIN_U16("data/oak_speech/unk_8460568.gbapal");
+static const u32 sOakSpeechGfx_GameStartHelpUI[] = INCBIN_U32("data/oak_speech/unk_84605E8.4bpp.lz");
+static const u32 sNewGameAdventureIntroTilemap[] = INCBIN_U32("data/oak_speech/unk_8460BA8.bin.lz");
+static const u32 sOakSpeechGfx_SolidColors[] = INCBIN_U32("data/oak_speech/unk_8460CA4.4bpp.lz");
+static const u32 sOakSpeech_BackgroundTilemap[] = INCBIN_U32("data/oak_speech/unk_8460CE8.bin.lz");
+static const u16 sHelpDocsPage2Tilemap[] = INCBIN_U16("data/oak_speech/unk_8460D94.bin");
+static const u16 sHelpDocsPage3Tilemap[] = INCBIN_U16("data/oak_speech/unk_8460E34.bin");
+static const u16 sOakSpeechGfx_LeafPal[] = INCBIN_U16("data/oak_speech/unk_8460ED4.gbapal");
+static const u32 sOakSpeechGfx_LeafPic[] = INCBIN_U32("data/oak_speech/unk_8460F14.8bpp.lz");
+static const u16 sOakSpeechGfx_RedPal[] = INCBIN_U16("data/oak_speech/unk_84615FC.gbapal");
+static const u32 sOakSpeechGfx_RedPic[] = INCBIN_U32("data/oak_speech/unk_846163C.8bpp.lz");
+static const u16 sOakSpeechGfx_OakPal[] = INCBIN_U16("data/oak_speech/unk_8461CD4.gbapal");
+static const u32 sOakSpeechGfx_OakPic[] = INCBIN_U32("data/oak_speech/unk_8461D14.8bpp.lz");
+static const u16 sOakSpeechGfx_RivalPal[] = INCBIN_U16("data/oak_speech/unk_84623AC.gbapal");
+static const u32 sOakSpeechGfx_RivalPic[] = INCBIN_U32("data/oak_speech/unk_84623EC.8bpp.lz");
+static const u16 sOakSpeech_GrassPlatformPalette[] = INCBIN_U16("data/oak_speech/unk_84629D0.gbapal");
+static const u16 sOakSpeech_PikaPalette[] = INCBIN_U16("data/oak_speech/unk_84629F0.gbapal");
+static const u32 sOakSpeechGfx_GrassPlatform[] = INCBIN_U32("data/oak_speech/unk_8462A10.4bpp.lz");
+static const u32 sOakSpeechGfx_Pika1[] = INCBIN_U32("data/oak_speech/unk_8462B74.4bpp.lz");
+static const u32 sOakSpeechGfx_Pika2[] = INCBIN_U32("data/oak_speech/unk_8462D34.4bpp.lz");
+static const u32 sOakSpeechGfx_PikaEyes[] = INCBIN_U32("data/oak_speech/unk_8462E18.4bpp.lz");
+
+static const struct BgTemplate sBgTemplates[3] = {
{
.bg = 0,
.charBaseIndex = 2,
@@ -163,7 +163,7 @@ static const struct BgTemplate gUnknown_8462E58[3] = {
}
};
-static const struct WindowTemplate gUnknown_8462E64[] = {
+static const struct WindowTemplate sHelpDocsWindowTemplates1[] = {
{
.priority = 0x00,
.tilemapLeft = 0x00,
@@ -175,7 +175,7 @@ static const struct WindowTemplate gUnknown_8462E64[] = {
}, DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate gUnknown_8462E74[] = {
+static const struct WindowTemplate sHelpDocsWindowTemplates2[] = {
{
.priority = 0x00,
.tilemapLeft = 0x06,
@@ -203,7 +203,7 @@ static const struct WindowTemplate gUnknown_8462E74[] = {
}, DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate gUnknown_8462E94[] = {
+static const struct WindowTemplate sHelpDocsWindowTemplates3[] = {
{
.priority = 0x00,
.tilemapLeft = 0x06,
@@ -231,13 +231,13 @@ static const struct WindowTemplate gUnknown_8462E94[] = {
}, DUMMY_WIN_TEMPLATE
};
-static const struct WindowTemplate *const gUnknown_8462EB4[3] = {
- gUnknown_8462E64,
- gUnknown_8462E74,
- gUnknown_8462E94
+static const struct WindowTemplate *const sHelpDocsWindowTemplatePtrs[3] = {
+ sHelpDocsWindowTemplates1,
+ sHelpDocsWindowTemplates2,
+ sHelpDocsWindowTemplates3
};
-static const struct WindowTemplate gUnknown_8462EC0[] = {
+static const struct WindowTemplate sNewGameAdventureIntroWindowTemplates[] = {
{
.priority = 0x00,
.tilemapLeft = 0x01,
@@ -273,77 +273,78 @@ static const struct WindowTemplate gUnknown_8462EC0[] = {
}, DUMMY_WIN_TEMPLATE
};
-ALIGNED(4) const struct TextColor gUnknown_8462EE8 = {
+ALIGNED(4) const struct TextColor sTextColor_HelpSystem = {
0x00, 0x01, 0x02
};
-ALIGNED(4) const struct TextColor gUnknown_8462EEC = {
+ALIGNED(4) const struct TextColor sTextColor_OakSpeech = {
0x00, 0x02, 0x03
};
-static const u8 *const gUnknown_8462EF0[] = {
- gUnknown_81C5A04,
- gUnknown_81C5AEB,
- gUnknown_81C5BB9
+static const u8 *const sNewGameAdventureIntroTextPointers[] = {
+ gNewGameAdventureIntro1,
+ gNewGameAdventureIntro2,
+ gNewGameAdventureIntro3
};
-static const struct CompressedSpriteSheet gUnknown_8462EFC[3] = {
- { (const void *)gUnknown_8462B74, 0x0400, 0x1001 },
- { (const void *)gUnknown_8462D34, 0x0200, 0x1002 },
- { (const void *)gUnknown_8462E18, 0x0080, 0x1003 },
+static const struct CompressedSpriteSheet sOakSpeech_PikaSpriteSheets[3] = {
+ { (const void *)sOakSpeechGfx_Pika1, 0x0400, 0x1001 },
+ { (const void *)sOakSpeechGfx_Pika2, 0x0200, 0x1002 },
+ { (const void *)sOakSpeechGfx_PikaEyes, 0x0080, 0x1003 },
};
-static const struct CompressedSpriteSheet gUnknown_8462F14 = {
- (const void *)gUnknown_8462A10, 0x0600, 0x1000
+static const struct CompressedSpriteSheet sOakSpeech_GrassPlatformSpriteSheet = {
+ (const void *)sOakSpeechGfx_GrassPlatform, 0x0600, 0x1000
};
-static const struct SpritePalette gUnknown_8462F1C = {
- (const void *)gUnknown_84629F0, 0x1001
+static const struct SpritePalette sOakSpeech_PikaSpritePal = {
+ (const void *)sOakSpeech_PikaPalette, 0x1001
};
-static const struct SpritePalette gUnknown_8462F24 = {
- (const void *)gUnknown_84629D0, 0x1000
+
+static const struct SpritePalette sOakSpeech_GrassPlatformSpritePal = {
+ (const void *)sOakSpeech_GrassPlatformPalette, 0x1000
};
-static const union AnimCmd gUnknown_8462F2C[] = {
+static const union AnimCmd sGrassPlatformAnim1[] = {
ANIMCMD_FRAME( 0, 0),
ANIMCMD_END
};
-static const union AnimCmd gUnknown_8462F34[] = {
+static const union AnimCmd sGrassPlatformAnim2[] = {
ANIMCMD_FRAME(16, 0),
ANIMCMD_END
};
-static const union AnimCmd gUnknown_8462F3C[] = {
+static const union AnimCmd sGrassPlatformAnim3[] = {
ANIMCMD_FRAME(32, 0),
ANIMCMD_END
};
-static const union AnimCmd *const gUnknown_8462F44[] = {
- gUnknown_8462F2C
+static const union AnimCmd *const sGrassPlatformAnims1[] = {
+ sGrassPlatformAnim1
};
-static const union AnimCmd *const gUnknown_8462F48[] = {
- gUnknown_8462F34
+static const union AnimCmd *const sGrassPlatformAnims2[] = {
+ sGrassPlatformAnim2
};
-static const union AnimCmd *const gUnknown_8462F4C[] = {
- gUnknown_8462F3C
+static const union AnimCmd *const sGrassPlatformAnims3[] = {
+ sGrassPlatformAnim3
};
-extern const struct OamData gUnknown_83ACAF8;
+extern const struct OamData gOamData_83ACAF8;
-static const struct SpriteTemplate gUnknown_8462F50[3] = {
- { 0x1000, 0x1000, &gUnknown_83ACAF8, gUnknown_8462F44, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
- { 0x1000, 0x1000, &gUnknown_83ACAF8, gUnknown_8462F48, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
- { 0x1000, 0x1000, &gUnknown_83ACAF8, gUnknown_8462F4C, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+static const struct SpriteTemplate sOakSpeech_GrassPlatformSpriteTemplates[3] = {
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1000, 0x1000, &gOamData_83ACAF8, sGrassPlatformAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
};
-static const union AnimCmd gUnknown_8462F98[] = {
+static const union AnimCmd sPikaAnim1[] = {
ANIMCMD_FRAME( 0, 30),
ANIMCMD_FRAME(16, 30),
ANIMCMD_JUMP(0)
};
-static const union AnimCmd gUnknown_8462FA4[] = {
+static const union AnimCmd sPikaAnim2[] = {
ANIMCMD_FRAME(0, 60),
ANIMCMD_FRAME(0, 60),
ANIMCMD_FRAME(0, 60),
@@ -362,7 +363,7 @@ static const union AnimCmd gUnknown_8462FA4[] = {
ANIMCMD_JUMP(0)
};
-static const union AnimCmd gUnknown_8462FE4[] = {
+static const union AnimCmd sPikaAnim3[] = {
ANIMCMD_FRAME(0, 60),
ANIMCMD_FRAME(0, 60),
ANIMCMD_FRAME(0, 60),
@@ -380,94 +381,90 @@ static const union AnimCmd gUnknown_8462FE4[] = {
ANIMCMD_JUMP(0)
};
-static const union AnimCmd *const gUnknown_8463020[] = {
- gUnknown_8462F98
+static const union AnimCmd *const sPikaAnims1[] = {
+ sPikaAnim1
};
-static const union AnimCmd *const gUnknown_8463024[] = {
- gUnknown_8462FA4
+static const union AnimCmd *const sPikaAnims2[] = {
+ sPikaAnim2
};
-static const union AnimCmd *const gUnknown_8463028[] = {
- gUnknown_8462FE4
+static const union AnimCmd *const sPikaAnims3[] = {
+ sPikaAnim3
};
-extern const struct OamData gUnknown_83AC9D8;
-extern const struct OamData gUnknown_83AC9F8;
-extern const struct OamData gUnknown_83AC9E8;
+extern const struct OamData gOamData_83AC9D8;
+extern const struct OamData gOamData_83AC9F8;
+extern const struct OamData gOamData_83AC9E8;
-static const struct SpriteTemplate gUnknown_846302C[3] = {
- { 0x1001, 0x1001, &gUnknown_83AC9D8, gUnknown_8463020, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
- { 0x1002, 0x1001, &gUnknown_83AC9F8, gUnknown_8463024, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
- { 0x1003, 0x1001, &gUnknown_83AC9E8, gUnknown_8463028, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }
+static const struct SpriteTemplate sOakSpeech_PikaSpriteTemplates[3] = {
+ { 0x1001, 0x1001, &gOamData_83AC9D8, sPikaAnims1, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1002, 0x1001, &gOamData_83AC9F8, sPikaAnims2, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy },
+ { 0x1003, 0x1001, &gOamData_83AC9E8, sPikaAnims3, NULL, gDummySpriteAffineAnimTable, SpriteCallbackDummy }
};
-static const u8 *const gUnknown_8463074[] = {
- gUnknown_81C5875,
- gUnknown_81C58BA,
- gUnknown_81C58F9,
- gUnknown_81C592B,
- gUnknown_81C594F,
- gUnknown_81C5981
+static const u8 *const sHelpDocsPtrs[] = {
+ gNewGame_HelpDocs2, gNewGame_HelpDocs3, gNewGame_HelpDocs4,
+ gNewGame_HelpDocs5, gNewGame_HelpDocs6, gNewGame_HelpDocs7
};
-static const u8 *const gUnknown_846308C[] = {
- gUnknown_81C575E,
- gUnknown_81C5767,
- gUnknown_81C577A,
- gUnknown_81C577E,
- gUnknown_81C5783,
- gUnknown_81C5788,
- gUnknown_81C578C,
- gUnknown_81C5792,
- gUnknown_81C5797,
- gUnknown_81C579D,
- gUnknown_81C57A2,
- gUnknown_81C57A9,
- gUnknown_81C57AF,
- gUnknown_81C57B4,
- gUnknown_81C57B8,
- gUnknown_81C57BC,
- gUnknown_81C57C2,
- gUnknown_81C57C6,
- gUnknown_81C57CB
+static const u8 *const sMaleNameChoices[] = {
+ gNameChoice_Red,
+ gNameChoice_Fire,
+ gNameChoice_Ash,
+ gNameChoice_Kene,
+ gNameChoice_Geki,
+ gNameChoice_Jak,
+ gNameChoice_Janne,
+ gNameChoice_Jonn,
+ gNameChoice_Kamon,
+ gNameChoice_Karl,
+ gNameChoice_Taylor,
+ gNameChoice_Oscar,
+ gNameChoice_Hiro,
+ gNameChoice_Max,
+ gNameChoice_Jon,
+ gNameChoice_Ralph,
+ gNameChoice_Kay,
+ gNameChoice_Tosh,
+ gNameChoice_Roak
};
-static const u8 *const gUnknown_84630D8[] = {
- gUnknown_81C575E,
- gUnknown_81C5767,
- gUnknown_81C57D0,
- gUnknown_81C57D4,
- gUnknown_81C57D9,
- gUnknown_81C57E0,
- gUnknown_81C57E8,
- gUnknown_81C57EE,
- gUnknown_81C57F4,
- gUnknown_81C57FA,
- gUnknown_81C57FF,
- gUnknown_81C5806,
- gUnknown_81C580A,
- gUnknown_81C580F,
- gUnknown_81C5814,
- gUnknown_81C5819,
- gUnknown_81C581F,
- gUnknown_81C5823,
- gUnknown_81C5828
+static const u8 *const sFemaleNameChoices[] = {
+ gNameChoice_Red,
+ gNameChoice_Fire,
+ gNameChoice_Omi,
+ gNameChoice_Jodi,
+ gNameChoice_Amanda,
+ gNameChoice_Hillary,
+ gNameChoice_Makey,
+ gNameChoice_Michi,
+ gNameChoice_Paula,
+ gNameChoice_June,
+ gNameChoice_Cassie,
+ gNameChoice_Rey,
+ gNameChoice_Seda,
+ gNameChoice_Kiko,
+ gNameChoice_Mina,
+ gNameChoice_Norie,
+ gNameChoice_Sai,
+ gNameChoice_Momo,
+ gNameChoice_Suzi
};
-static const u8 *const gUnknown_8463124[] = {
- gUnknown_81C5758,
- gUnknown_81C576C,
- gUnknown_81C5771,
- gUnknown_81C5775
+static const u8 *const sRivalNameChoices[] = {
+ gNameChoice_Green,
+ gNameChoice_Gary,
+ gNameChoice_Kaz,
+ gNameChoice_Toru
};
-static void sub_812EAFC(void)
+static void VBlankCB_NewGameOaksSpeech(void)
{
LoadOam();
ProcessSpriteCopyRequests();
TransferPlttBuffer();
}
-static void sub_812EB10(void)
+static void CB2_NewGameOaksSpeech(void)
{
RunTasks();
RunTextPrinters();
@@ -476,15 +473,15 @@ static void sub_812EB10(void)
UpdatePaletteFade();
}
-void sub_812EB2C(void)
+void StartNewGameScene(void)
{
gPlttBufferUnfaded[0] = RGB_BLACK;
gPlttBufferFaded[0] = RGB_BLACK;
- CreateTask(sub_812EB58, 0);
- SetMainCallback2(sub_812EB10);
+ CreateTask(Task_OaksSpeech1, 0);
+ SetMainCallback2(CB2_NewGameOaksSpeech);
}
-static void sub_812EB58(u8 taskId)
+static void Task_OaksSpeech1(u8 taskId)
{
switch (gMain.state)
{
@@ -499,11 +496,11 @@ static void sub_812EB58(u8 taskId)
ResetSpriteData();
FreeAllSpritePalettes();
reset_temp_tile_data_buffers();
- sub_812B1F0(2);
+ HelpSystem_SetSomeVariable2(2);
break;
case 1:
sOakSpeechResources = AllocZeroed(sizeof(*sOakSpeechResources));
- sub_8044AF0(1, 1);
+ SetUpMonSpriteManagerMaybe(1, 1);
break;
case 2:
SetGpuReg(REG_OFFSET_WIN0H, 0);
@@ -518,7 +515,7 @@ static void sub_812EB58(u8 taskId)
break;
case 3:
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(1, gUnknown_8462E58, NELEMS(gUnknown_8462E58));
+ InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates));
SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer);
SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer);
ChangeBgX(1, 0, 0);
@@ -530,32 +527,32 @@ static void sub_812EB58(u8 taskId)
break;
case 4:
gPaletteFade.bufferTransferDisabled = TRUE;
- sub_80F6C6C();
- sub_80F6C98();
- sub_80F77CC(0xD0);
- LoadPalette(gUnknown_8460568, 0x000, 0x080);
+ InitStandardTextBoxWindows();
+ ResetBg0();
+ Menu_LoadStdPalAt(0xD0);
+ LoadPalette(sHelpDocsPalette, 0x000, 0x080);
LoadPalette(stdpal_get(2) + 15, 0x000, 0x002);
break;
case 5:
- sOakSpeechResources->unk_001F = sub_80F78A8();
+ sOakSpeechResources->textSpeed = GetTextSpeedSetting();
gTextFlags.flag_0 = TRUE;
- decompress_and_copy_tile_data_to_vram(1, gUnknown_84605E8, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_GameStartHelpUI, 0, 0, 0);
break;
case 6:
if (free_temp_tile_data_buffers_if_possible())
return;
- sub_80F6F54(0, 1);
+ ClearDialogWindowAndFrame(0, 1);
FillBgTilemapBufferRect_Palette0(1, 0x0000, 0, 0, 32, 32);
CopyBgTilemapBufferToVram(1);
break;
case 7:
- sub_810F558(0, 30, 0, 13, 0x1C4);
+ CreateWindow_SnapRight_StdPal(0, 30, 0, 13, 0x1C4);
FillBgTilemapBufferRect_Palette0(1, 0xD00F, 0, 0, 30, 2);
FillBgTilemapBufferRect_Palette0(1, 0xD002, 0, 2, 30, 1);
FillBgTilemapBufferRect_Palette0(1, 0xD00E, 0, 19, 30, 1);
- sub_812EEB0();
+ CreateHelpDocsPage1();
gPaletteFade.bufferTransferDisabled = FALSE;
- gTasks[taskId].data[5] = sub_8006300(0, 0xE6, 0x95, 0, 0);
+ gTasks[taskId].data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xE6, 0x95, 0, 0);
BlendPalettes(0xFFFFFFFF, 0x10, 0x00);
break;
case 10:
@@ -563,9 +560,9 @@ static void sub_812EB58(u8 taskId)
SetGpuReg(REG_OFFSET_DISPCNT, DISPCNT_MODE_0 | DISPCNT_OBJ_1D_MAP | DISPCNT_OBJ_ON);
ShowBg(0);
ShowBg(1);
- SetVBlankCallback(sub_812EAFC);
+ SetVBlankCallback(VBlankCB_NewGameOaksSpeech);
PlayBGM(323);
- gTasks[taskId].func = sub_812F0B0;
+ gTasks[taskId].func = Task_OaksSpeech2;
gMain.state = 0;
return;
}
@@ -573,53 +570,53 @@ static void sub_812EB58(u8 taskId)
gMain.state++;
}
-static void sub_812EEB0(void)
+static void CreateHelpDocsPage1(void)
{
- sub_810F650(gUnknown_8415D2C, gUnknown_8415D48, 0, 0, 1);
- sOakSpeechResources->unk_0014[0] = AddWindow(gUnknown_8462EB4[sOakSpeechResources->unk_0012]);
+ Menu_PrintHelpSystemUIHeader(gText_Controls, gText_ABUTTONNext, 0, 0, 1);
+ sOakSpeechResources->unk_0014[0] = AddWindow(sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012]);
PutWindowTilemap(sOakSpeechResources->unk_0014[0]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[0], 0x00);
- AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, &gUnknown_8462EE8, 0, gUnknown_81C582D);
+ AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[0], 2, 2, 0, 1, 1, &sTextColor_HelpSystem, 0, gNewGame_HelpDocs1);
CopyWindowToVram(sOakSpeechResources->unk_0014[0], 3);
FillBgTilemapBufferRect_Palette0(1, 0x3000, 1, 3, 5, 16);
CopyBgTilemapBufferToVram(1);
}
-static void sub_812EF50(u8 taskId)
+static void Task_OakSpeech4(u8 taskId)
{
u8 i = 0;
u8 r7 = sOakSpeechResources->unk_0012 - 1;
if (sOakSpeechResources->unk_0012 == 0)
{
- sub_812EEB0();
+ CreateHelpDocsPage1();
}
else
{
- sub_810F5E8(gUnknown_8415D50, 0, 1);
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1);
for (i = 0; i < 3; i++)
{
- sOakSpeechResources->unk_0014[i] = AddWindow(&gUnknown_8462EB4[sOakSpeechResources->unk_0012][i]);
+ sOakSpeechResources->unk_0014[i] = AddWindow(&sHelpDocsWindowTemplatePtrs[sOakSpeechResources->unk_0012][i]);
PutWindowTilemap(sOakSpeechResources->unk_0014[i]);
FillWindowPixelBuffer(sOakSpeechResources->unk_0014[i], 0x00);
- AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, &gUnknown_8462EE8, 0, gUnknown_8463074[i + r7 * 3]);
+ AddTextPrinterParametrized2(sOakSpeechResources->unk_0014[i], 2, 6, 0, 1, 1, &sTextColor_HelpSystem, 0, sHelpDocsPtrs[i + r7 * 3]);
CopyWindowToVram(sOakSpeechResources->unk_0014[i], 3);
}
if (sOakSpeechResources->unk_0012 == 1)
{
- CopyToBgTilemapBufferRect(1, gUnknown_8460D94, 1, 3, 5, 16);
+ CopyToBgTilemapBufferRect(1, sHelpDocsPage2Tilemap, 1, 3, 5, 16);
}
else
{
- CopyToBgTilemapBufferRect(1, gUnknown_8460E34, 1, 3, 5, 16);
+ CopyToBgTilemapBufferRect(1, sHelpDocsPage3Tilemap, 1, 3, 5, 16);
}
CopyBgTilemapBufferToVram(1);
}
BeginNormalPaletteFade(0xFFFFDFFF, -1, 16, 0, stdpal_get(2)[15]);
- gTasks[taskId].func = sub_812F0B0;
+ gTasks[taskId].func = Task_OaksSpeech2;
}
-static void sub_812F0B0(u8 taskId)
+static void Task_OaksSpeech2(u8 taskId)
{
if (!gPaletteFade.active && JOY_NEW((A_BUTTON | B_BUTTON)))
{
@@ -645,10 +642,10 @@ static void sub_812F0B0(u8 taskId)
else
return;
PlaySE(SE_SELECT);
- gTasks[taskId].func = sub_812F180;
+ gTasks[taskId].func = Task_OakSpeech3;
}
-static void sub_812F180(u8 taskId)
+static void Task_OakSpeech3(u8 taskId)
{
u8 r8 = 0;
u8 i;
@@ -675,17 +672,17 @@ static void sub_812F180(u8 taskId)
RemoveWindow(sOakSpeechResources->unk_0014[i]);
sOakSpeechResources->unk_0014[i] = 0;
}
- gTasks[taskId].func = sub_812EF50;
+ gTasks[taskId].func = Task_OakSpeech4;
}
else
{
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, 0);
- gTasks[taskId].func = sub_812F274;
+ gTasks[taskId].func = Task_OakSpeech5;
}
}
}
-static void sub_812F274(u8 taskId)
+static void Task_OakSpeech5(u8 taskId)
{
u8 i = 0;
@@ -705,11 +702,11 @@ static void sub_812F274(u8 taskId)
sOakSpeechResources->unk_0014[0] = RGB_BLACK;
LoadPalette(sOakSpeechResources->unk_0014, 0, 2);
gTasks[taskId].data[3] = 32;
- gTasks[taskId].func = sub_812F33C;
+ gTasks[taskId].func = Task_OakSpeech6;
}
}
-static void sub_812F33C(u8 taskId)
+static void Task_OakSpeech6(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u32 sp14 = 0;
@@ -720,30 +717,30 @@ static void sub_812F33C(u8 taskId)
{
PlayBGM(324);
sub_810F71C();
- sub_810F5E8(gUnknown_8415D48, 0, 1);
- sOakSpeechResources->unk_0008 = malloc_and_decompress(gUnknown_8460BA8, &sp14);
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1);
+ sOakSpeechResources->unk_0008 = malloc_and_decompress(sNewGameAdventureIntroTilemap, &sp14);
CopyToBgTilemapBufferRect(1, sOakSpeechResources->unk_0008, 0, 2, 30, 19);
CopyBgTilemapBufferToVram(1);
Free(sOakSpeechResources->unk_0008);
sOakSpeechResources->unk_0008 = NULL;
- data[14] = AddWindow(&gUnknown_8462EC0[0]);
+ data[14] = AddWindow(&sNewGameAdventureIntroWindowTemplates[0]);
PutWindowTilemap(data[14]);
FillWindowPixelBuffer(data[14], 0x00);
CopyWindowToVram(data[14], 3);
sOakSpeechResources->unk_0012 = 0;
gMain.state = 0;
data[15] = 16;
- AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &gUnknown_8462EEC, 0, gUnknown_8462EF0[0]);
- data[5] = sub_8006300(0, 0xe2, 0x91, 0, 0);
+ AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[0]);
+ data[5] = CreateTextCursorSpriteForOakSpeech(0, 0xe2, 0x91, 0, 0);
gSprites[data[5]].oam.objMode = ST_OAM_OBJ_BLEND;
gSprites[data[5]].oam.priority = 0;
- sub_8130FD4(taskId, 0);
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 0);
BeginNormalPaletteFade(0xFFFFFFFF, 2, 16, 0, 0);
- gTasks[taskId].func = sub_812F4A8;
+ gTasks[taskId].func = Task_OakSpeech7;
}
}
-static void sub_812F4A8(u8 taskId)
+static void Task_OakSpeech7(u8 taskId)
{
s16 * data = gTasks[taskId].data;
switch (gMain.state)
@@ -793,16 +790,16 @@ static void sub_812F4A8(u8 taskId)
if (data[15] <= 0)
{
FillWindowPixelBuffer(data[14], 0x00);
- AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &gUnknown_8462EEC, 0, gUnknown_8462EF0[sOakSpeechResources->unk_0012]);
+ AddTextPrinterParametrized2(data[14], 2, 3, 5, 1, 0, &sTextColor_OakSpeech, 0, sNewGameAdventureIntroTextPointers[sOakSpeechResources->unk_0012]);
if (sOakSpeechResources->unk_0012 == 0)
{
sub_810F71C();
- sub_810F5E8(gUnknown_8415D48, 0, 1);
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext, 0, 1);
}
else
{
sub_810F71C();
- sub_810F5E8(gUnknown_8415D50, 0, 1);
+ PrintTextOnRightSnappedWindow(gText_ABUTTONNext_BBUTTONBack, 0, 1);
}
gMain.state++;
}
@@ -837,13 +834,13 @@ static void sub_812F4A8(u8 taskId)
SetGpuReg(REG_OFFSET_WINOUT, 0);
ClearGpuRegBits(REG_OFFSET_DISPCNT, DISPCNT_WIN0_ON);
BeginNormalPaletteFade(0xFFFFFFFF, 2, 0, 16, RGB_BLACK);
- gTasks[taskId].func = sub_812F72C;
+ gTasks[taskId].func = Task_OakSpeech8;
}
break;
}
}
-static void sub_812F72C(u8 taskId)
+static void Task_OakSpeech8(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -857,13 +854,13 @@ static void sub_812F72C(u8 taskId)
data[14] = 0;
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(1);
- sub_8131168(taskId, 0);
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 0);
data[3] = 80;
- gTasks[taskId].func = sub_812F7C0;
+ gTasks[taskId].func = Task_OakSpeech9;
}
}
-static void sub_812F7C0(u8 taskId)
+static void Task_OakSpeech9(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u32 size = 0;
@@ -872,23 +869,23 @@ static void sub_812F7C0(u8 taskId)
data[3]--;
else
{
- sOakSpeechResources->unk_0000 = malloc_and_decompress(gUnknown_8460CA4, &size);
- LoadBgTiles(1, sOakSpeechResources->unk_0000, size, 0);
- CopyToBgTilemapBuffer(1, gUnknown_8460CE8, 0, 0);
+ sOakSpeechResources->solidColorsGfx = malloc_and_decompress(sOakSpeechGfx_SolidColors, &size);
+ LoadBgTiles(1, sOakSpeechResources->solidColorsGfx, size, 0);
+ CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
CopyBgTilemapBufferToVram(1);
CreateNidoranFSprite(taskId);
- sub_81311F4(3, 0);
- sub_8130FD4(taskId, 1);
+ LoadOaksSpeechTrainerPic(3, 0);
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
PlayBGM(292);
BeginNormalPaletteFade(0xFFFFFFFF, 5, 16, 0, RGB_BLACK);
data[3] = 80;
ShowBg(2);
- gTasks[taskId].func = sub_812F880;
+ gTasks[taskId].func = Task_OakSpeech10;
}
}
#define OaksSpeechPrintMessage(str, speed) ({ \
- sub_80F6EE4(0, FALSE);\
+ DrawDialogueFrame(0, FALSE);\
if (str != gStringVar4) \
{ \
StringExpandPlaceholders(gStringVar4, str); \
@@ -901,7 +898,7 @@ static void sub_812F7C0(u8 taskId)
CopyWindowToVram(0, 3); \
})
-static void sub_812F880(u8 taskId)
+static void Task_OakSpeech10(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -911,23 +908,23 @@ static void sub_812F880(u8 taskId)
data[3]--;
else
{
- OaksSpeechPrintMessage(gUnknown_81C5C78, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_812F944;
+ OaksSpeechPrintMessage(gOakText_WelcomeToTheWorld, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech11;
}
}
}
-static void sub_812F944(u8 taskId)
+static void Task_OakSpeech11(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
- OaksSpeechPrintMessage(gUnknown_81C5D06, sOakSpeechResources->unk_001F);
+ OaksSpeechPrintMessage(gOakText_WorldInhabited1, sOakSpeechResources->textSpeed);
gTasks[taskId].data[3] = 30;
- gTasks[taskId].func = sub_812F9EC;
+ gTasks[taskId].func = Task_OakSpeech12;
}
}
-static void sub_812F9EC(u8 taskId)
+static void Task_OakSpeech12(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u8 spriteId;
@@ -941,55 +938,55 @@ static void sub_812F9EC(u8 taskId)
gSprites[spriteId].invisible = FALSE;
gSprites[spriteId].data[0] = 0;
CreatePokeballSpriteToReleaseMon(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1FFF);
- gTasks[taskId].func = sub_812FA78;
+ gTasks[taskId].func = Task_OakSpeech13;
gTasks[taskId].data[3] = 0;
// }
}
}
-static void sub_812FA78(u8 taskId)
+static void Task_OakSpeech13(u8 taskId)
{
if (IsCryFinished())
{
if (gTasks[taskId].data[3] >= 96)
- gTasks[taskId].func = sub_812FB4C;
+ gTasks[taskId].func = Task_OakSpeech14;
}
if (gTasks[taskId].data[3] < 0x4000)
{
gTasks[taskId].data[3]++;
if (gTasks[taskId].data[3] == 32)
{
- OaksSpeechPrintMessage(gUnknown_81C5D12, sOakSpeechResources->unk_001F);
+ OaksSpeechPrintMessage(gOakText_WorldInhabited2, sOakSpeechResources->textSpeed);
PlayCry1(SPECIES_NIDORAN_F, 0);
}
}
}
-static void sub_812FB4C(u8 taskId)
+static void Task_OakSpeech14(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
- OaksSpeechPrintMessage(gUnknown_81C5D4B, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_812FBF0;
+ OaksSpeechPrintMessage(gOakText_PetsBattlingStudy, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech15;
}
}
-static void sub_812FBF0(u8 taskId)
+static void Task_OakSpeech15(u8 taskId)
{
u8 spriteId;
if (!IsTextPrinterActive(0))
{
- sub_80F6F54(0, 1);
+ ClearDialogWindowAndFrame(0, 1);
spriteId = gTasks[taskId].data[4];
gTasks[taskId].data[6] = sub_804BB98(spriteId, gSprites[spriteId].oam.paletteNum, 0x64, 0x42, 0, 0, 32, 0xFFFF1F3F);
gTasks[taskId].data[3] = 48;
gTasks[taskId].data[0] = 64;
- gTasks[taskId].func = sub_812FC68;
+ gTasks[taskId].func = Task_OakSpeech16;
}
}
-static void sub_812FC68(u8 taskId)
+static void Task_OakSpeech16(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1014,26 +1011,26 @@ static void sub_812FC68(u8 taskId)
}
else
{
- OaksSpeechPrintMessage(gUnknown_81C5DBD, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_812FD78;
+ OaksSpeechPrintMessage(gOakText_TellMeALittleAboutYourself, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech17;
}
}
}
-static void sub_812FD78(u8 taskId)
+static void Task_OakSpeech17(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (!IsTextPrinterActive(0))
{
- sub_80F6F54(0, 1);
- sub_813144C(taskId, 2);
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
data[3] = 48;
- gTasks[taskId].func = sub_812FDC0;
+ gTasks[taskId].func = Task_OakSpeech18;
}
}
-static void sub_812FDC0(u8 taskId)
+static void Task_OakSpeech18(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1044,36 +1041,36 @@ static void sub_812FDC0(u8 taskId)
else
{
data[1] = -60;
- sub_8131310();
- OaksSpeechPrintMessage(gUnknown_81C59D5, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_812FE88;
+ DestroyOaksSpeechTrainerPic();
+ OaksSpeechPrintMessage(gOakText_AskPlayerGender, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech19;
}
}
}
-static void sub_812FE88(u8 taskId)
+static void Task_OakSpeech19(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
- gTasks[taskId].data[13] = AddWindow(&gUnknown_8462EC0[1]);
+ gTasks[taskId].data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[1]);
PutWindowTilemap(gTasks[taskId].data[13]);
SetWindowBorderStyle(gTasks[taskId].data[13], 1, sub_80F796C(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
sOakSpeechResources->unk_001C[0] = 1;
sOakSpeechResources->unk_001C[1] = 2;
sOakSpeechResources->unk_001C[2] = 3;
- box_print(gTasks[taskId].data[13], 2, 8, 1, sOakSpeechResources->unk_001C, 0, gUnknown_8415D93);
+ box_print(gTasks[taskId].data[13], 2, 8, 1, sOakSpeechResources->unk_001C, 0, gText_Boy);
sOakSpeechResources->unk_001C[0] = 1;
sOakSpeechResources->unk_001C[1] = 2;
sOakSpeechResources->unk_001C[2] = 3;
- box_print(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gUnknown_8415D97);
- sub_810F7D8(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
+ box_print(gTasks[taskId].data[13], 2, 8, 17, sOakSpeechResources->unk_001C, 0, gText_Girl);
+ ProgramAndPlaceMenuCursorOnWindow(gTasks[taskId].data[13], 2, 0, 1, GetFontAttribute(2, 1) + 2, 2, 0);
CopyWindowToVram(gTasks[taskId].data[13], 3);
- gTasks[taskId].func = sub_812FFA4;
+ gTasks[taskId].func = Task_OakSpeech20;
}
}
-static void sub_812FFA4(u8 taskId)
+static void Task_OakSpeech20(u8 taskId)
{
s8 input = ProcessMenuInputNoWrapAround();
switch (input)
@@ -1088,34 +1085,34 @@ static void sub_812FFA4(u8 taskId)
case -2:
return;
}
- gTasks[taskId].func = sub_812FFF0;
+ gTasks[taskId].func = Task_OakSpeech21;
}
-static void sub_812FFF0(u8 taskId)
+static void Task_OakSpeech21(u8 taskId)
{
s16 * data = gTasks[taskId].data;
sub_810F4D8(data[13], 1);
RemoveWindow(data[13]);
data[13] = 0;
- sub_80F6F54(0, 1);
+ ClearDialogWindowAndFrame(0, 1);
FillBgTilemapBufferRect_Palette0(0, 0, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(0);
- gTasks[taskId].func = sub_8130050;
+ gTasks[taskId].func = Task_OakSpeech22;
}
-static void sub_8130050(u8 taskId)
+static void Task_OakSpeech22(u8 taskId)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- sub_81311F4(MALE, 0);
+ LoadOaksSpeechTrainerPic(MALE, 0);
else
- sub_81311F4(FEMALE, 0);
- sub_81315CC(taskId, 2);
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
+ CreateFadeOutTask(taskId, 2);
gTasks[taskId].data[3] = 32;
- gTasks[taskId].func = sub_81300A0;
+ gTasks[taskId].func = Task_OakSpeech23;
}
-static void sub_81300A0(u8 taskId)
+static void Task_OakSpeech23(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1126,22 +1123,22 @@ static void sub_81300A0(u8 taskId)
else
{
data[1] = 0;
- OaksSpeechPrintMessage(gUnknown_81C5DEA, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_8130160;
+ OaksSpeechPrintMessage(gOakText_AskPlayerName, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech24;
}
}
}
-static void sub_8130160(u8 taskId)
+static void Task_OakSpeech24(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, RGB_BLACK);
sOakSpeechResources->unk_0010 = 0;
- gTasks[taskId].func = sub_81303B4;
+ gTasks[taskId].func = Task_OakSpeech25;
}
}
-static void sub_81301B0(u8 taskId)
+static void Task_OakSpeech35(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1156,27 +1153,27 @@ static void sub_81301B0(u8 taskId)
else
{
data[1] = -60;
- sub_8131660(taskId, sOakSpeechResources->unk_0010);
- gTasks[taskId].func = sub_8130324;
+ PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
+ gTasks[taskId].func = Task_OakSpeech29;
}
}
}
-static void sub_8130228(u8 taskId)
+static void Task_OakSpeech28(u8 taskId)
{
- sub_8131660(taskId, sOakSpeechResources->unk_0010);
+ PrintNameChoiceOptions(taskId, sOakSpeechResources->unk_0010);
if (sOakSpeechResources->unk_0010 == 0)
{
- OaksSpeechPrintMessage(gUnknown_81C5DEA, 0);
+ OaksSpeechPrintMessage(gOakText_AskPlayerName, 0);
}
else
{
- OaksSpeechPrintMessage(gUnknown_81C5E91, 0);
+ OaksSpeechPrintMessage(gOakText_AskRivalName, 0);
}
- gTasks[taskId].func = sub_8130324;
+ gTasks[taskId].func = Task_OakSpeech29;
}
-static void sub_8130324(u8 taskId)
+static void Task_OakSpeech29(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s8 input = ProcessMenuInput();
@@ -1189,25 +1186,25 @@ static void sub_8130324(u8 taskId)
PlaySE(SE_SELECT);
sub_810F4D8(data[13], TRUE);
RemoveWindow(data[13]);
- sub_8131754(sOakSpeechResources->unk_0010, input - 1);
+ GetDefaultName(sOakSpeechResources->unk_0010, input - 1);
data[15] = 1;
- gTasks[taskId].func = sub_8130464;
+ gTasks[taskId].func = Task_OakSpeech26;
break;
case 0:
PlaySE(SE_SELECT);
BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- gTasks[taskId].func = sub_81303B4;
+ gTasks[taskId].func = Task_OakSpeech25;
break;
case -1:
break;
}
}
-static void sub_81303B4(u8 taskId)
+static void Task_OakSpeech25(u8 taskId)
{
if (!gPaletteFade.active)
{
- sub_8131754(sOakSpeechResources->unk_0010, 0);
+ GetDefaultName(sOakSpeechResources->unk_0010, 0);
if (sOakSpeechResources->unk_0010 == 0)
{
DoNamingScreen(0, gSaveBlock2Ptr->playerName, gSaveBlock2Ptr->playerGender, 0, 0, CB2_ReturnFromNamingScreen);
@@ -1218,12 +1215,12 @@ static void sub_81303B4(u8 taskId)
RemoveWindow(gTasks[taskId].data[13]);
DoNamingScreen(4, gSaveBlock1Ptr->rivalName, 0, 0, 0, CB2_ReturnFromNamingScreen);
}
- sub_8131168(taskId, 1);
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1);
FreeAllWindowBuffers();
}
}
-static void sub_8130464(u8 taskId)
+static void Task_OakSpeech26(u8 taskId)
{
s16 * data = gTasks[taskId].data;
@@ -1233,13 +1230,13 @@ static void sub_8130464(u8 taskId)
{
if (sOakSpeechResources->unk_0010 == 0)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_81C5E13);
+ StringExpandPlaceholders(gStringVar4, gOakText_FinalizePlayerName);
}
else
{
- StringExpandPlaceholders(gStringVar4, gUnknown_81C5EB5);
+ StringExpandPlaceholders(gStringVar4, gOakText_ConfirmRivalName);
}
- OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->unk_001F);
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
data[15] = 0;
data[3] = 25;
}
@@ -1249,14 +1246,14 @@ static void sub_8130464(u8 taskId)
data[3]--;
else
{
- sub_810FF60(&gUnknown_8462EC0[2], 2, 0, 2, sub_80F796C(), 14, 0);
- gTasks[taskId].func = sub_8130554;
+ sub_810FF60(&sNewGameAdventureIntroWindowTemplates[2], 2, 0, 2, sub_80F796C(), 14, 0);
+ gTasks[taskId].func = Task_OakSpeech27;
}
}
}
}
-static void sub_8130554(u8 taskId)
+static void Task_OakSpeech27(u8 taskId)
{
s8 input = ProcessMenuInputNoWrap_();
switch (input)
@@ -1266,110 +1263,110 @@ static void sub_8130554(u8 taskId)
gTasks[taskId].data[3] = 40;
if (sOakSpeechResources->unk_0010 == 0)
{
- sub_80F6F54(0, 1);
- sub_813144C(taskId, 2);
- gTasks[taskId].func = sub_8130650;
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech30;
}
else
{
- StringExpandPlaceholders(gStringVar4, gUnknown_81C5EC5);
- OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->unk_001F);
- gTasks[taskId].func = sub_8130694;
+ StringExpandPlaceholders(gStringVar4, gOakText_RememberRivalName);
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
+ gTasks[taskId].func = Task_OakSpeech31;
}
break;
case 1:
case -1:
PlaySE(SE_SELECT);
if (sOakSpeechResources->unk_0010 == 0)
- gTasks[taskId].func = sub_8130160;
+ gTasks[taskId].func = Task_OakSpeech24;
else
- gTasks[taskId].func = sub_8130228;
+ gTasks[taskId].func = Task_OakSpeech28;
break;
}
}
-static void sub_8130650(u8 taskId)
+static void Task_OakSpeech30(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (data[2] != 0)
{
- sub_8131310();
+ DestroyOaksSpeechTrainerPic();
if (data[3] != 0)
data[3]--;
else
- gTasks[taskId].func = sub_81306D4;
+ gTasks[taskId].func = Task_OakSpeech32;
}
}
-static void sub_8130694(u8 taskId)
+static void Task_OakSpeech31(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
- sub_80F6F54(0, 1);
- sub_813144C(taskId, 2);
- gTasks[taskId].func = sub_81307D0;
+ ClearDialogWindowAndFrame(0, 1);
+ CreateFadeInTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech33;
}
}
-static void sub_81306D4(u8 taskId)
+static void Task_OakSpeech32(u8 taskId)
{
ChangeBgX(2, 0, 0);
gTasks[taskId].data[1] = 0;
gSpriteCoordOffsetX = 0;
- sub_81311F4(2, 0);
- sub_81315CC(taskId, 2);
- gTasks[taskId].func = sub_813071C;
+ LoadOaksSpeechTrainerPic(2, 0);
+ CreateFadeOutTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech34;
}
-static void sub_813071C(u8 taskId)
+static void Task_OakSpeech34(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (data[2] != 0)
{
- OaksSpeechPrintMessage(gUnknown_81C5E2E, sOakSpeechResources->unk_001F);
+ OaksSpeechPrintMessage(gOakText_IntroduceRival, sOakSpeechResources->textSpeed);
sOakSpeechResources->unk_0010 = 1;
- gTasks[taskId].func = sub_81301B0;
+ gTasks[taskId].func = Task_OakSpeech35;
}
}
-static void sub_81307D0(u8 taskId)
+static void Task_OakSpeech33(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (data[2] != 0)
{
- sub_8131310();
+ DestroyOaksSpeechTrainerPic();
if (data[3] != 0)
data[3]--;
else
{
if (gSaveBlock2Ptr->playerGender == MALE)
- sub_81311F4(MALE, 0);
+ LoadOaksSpeechTrainerPic(MALE, 0);
else
- sub_81311F4(FEMALE, 0);
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
gTasks[taskId].data[1] = 0;
gSpriteCoordOffsetX = 0;
ChangeBgX(2, 0, 0);
- sub_81315CC(taskId, 2);
- gTasks[taskId].func = sub_8130858;
+ CreateFadeOutTask(taskId, 2);
+ gTasks[taskId].func = Task_OakSpeech36;
}
}
}
-static void sub_8130858(u8 taskId)
+static void Task_OakSpeech36(u8 taskId)
{
if (gTasks[taskId].data[2] != 0)
{
- StringExpandPlaceholders(gStringVar4, gUnknown_81C5EF4);
- OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->unk_001F);
+ StringExpandPlaceholders(gStringVar4, gOakText_LegendAboutToUnfold);
+ OaksSpeechPrintMessage(gStringVar4, sOakSpeechResources->textSpeed);
gTasks[taskId].data[3] = 30;
- gTasks[taskId].func = sub_81308D0;
+ gTasks[taskId].func = Task_OakSpeech37;
}
}
-static void sub_81308D0(u8 taskId)
+static void Task_OakSpeech37(u8 taskId)
{
if (!IsTextPrinterActive(0))
{
@@ -1378,20 +1375,20 @@ static void sub_81308D0(u8 taskId)
else
{
FadeOutBGM(4);
- gTasks[taskId].func = sub_8130914;
+ gTasks[taskId].func = Task_OakSpeech38;
}
}
}
-static void sub_8130914(u8 taskId)
+static void Task_OakSpeech38(u8 taskId)
{
sOakSpeechResources->unk_0012 = 0;
- sub_8130A38(taskId);
- sub_8130ADC(taskId);
- sub_8130940(taskId);
+ Task_OakSpeech38_1(taskId);
+ Task_OakSpeech38_2(taskId);
+ Task_OakSpeech38_3(taskId);
}
-static void sub_8130940(u8 taskId)
+static void Task_OakSpeech38_3(u8 taskId)
{
s16 * data = gTasks[taskId].data;
SetBgAttribute(2, 6, 1);
@@ -1399,10 +1396,10 @@ static void sub_8130940(u8 taskId)
data[1] = 0;
data[2] = 256;
data[15] = 0;
- gTasks[taskId].func = sub_8130980;
+ gTasks[taskId].func = Task_OakSpeech39;
}
-static void sub_8130980(u8 taskId)
+static void Task_OakSpeech39(u8 taskId)
{
s16 * data = gTasks[taskId].data;
s16 x, y;
@@ -1422,14 +1419,14 @@ static void sub_8130980(u8 taskId)
{
data[15] = 1;
data[0] = 36;
- gTasks[taskId].func = sub_8130BA8;
+ gTasks[taskId].func = Task_OakSpeech40;
}
}
}
-static void sub_8130A38(u8 taskId)
+static void Task_OakSpeech38_1(u8 taskId)
{
- u8 taskId2 = CreateTask(sub_8130A80, 1);
+ u8 taskId2 = CreateTask(Task_OakSpeech38_sub1, 1);
s16 * data = gTasks[taskId2].data;
data[0] = 0;
data[1] = 0;
@@ -1438,7 +1435,7 @@ static void sub_8130A38(u8 taskId)
BeginNormalPaletteFade(0xFFFF0FCF, 4, 0, 16, RGB_BLACK);
}
-static void sub_8130A80(u8 taskId)
+static void Task_OakSpeech38_sub1(u8 taskId)
{
s16 * data = gTasks[taskId].data;
if (!gPaletteFade.active)
@@ -1446,7 +1443,7 @@ static void sub_8130A80(u8 taskId)
if (data[1] != 0)
{
DestroyTask(taskId);
- sub_8131168(taskId, 1);
+ DestroyLinkedPikaOrGrassPlatformSprites(taskId, 1);
}
else
{
@@ -1456,9 +1453,9 @@ static void sub_8130A80(u8 taskId)
}
}
-static void sub_8130ADC(u8 taskId)
+static void Task_OakSpeech38_2(u8 taskId)
{
- u8 taskId2 = CreateTask(sub_8130B10, 2);
+ u8 taskId2 = CreateTask(Task_OakSpeech38_sub2, 2);
s16 * data = gTasks[taskId2].data;
data[0] = 8;
data[1] = 0;
@@ -1467,7 +1464,7 @@ static void sub_8130ADC(u8 taskId)
data[15] = 0;
}
-static void sub_8130B10(u8 taskId)
+static void Task_OakSpeech38_sub2(u8 taskId)
{
s16 * data = gTasks[taskId].data;
u8 i;
@@ -1494,26 +1491,26 @@ static void sub_8130B10(u8 taskId)
}
}
-static void sub_8130BA8(u8 taskId)
+static void Task_OakSpeech40(u8 taskId)
{
if (gTasks[taskId].data[0] != 0)
gTasks[taskId].data[0]--;
else
{
BeginNormalPaletteFade(0x00000030, 2, 0, 16, RGB_BLACK);
- gTasks[taskId].func = sub_8130BF0;
+ gTasks[taskId].func = Task_OakSpeech41;
}
}
-static void sub_8130BF0(u8 taskId)
+static void Task_OakSpeech41(u8 taskId)
{
if (!gPaletteFade.active)
{
- gTasks[taskId].func = sub_8130C20;
+ gTasks[taskId].func = Task_OakSpeech42;
}
}
-static void sub_8130C20(u8 taskId)
+static void Task_OakSpeech42(u8 taskId)
{
FreeAllWindowBuffers();
sub_8044D80();
@@ -1543,7 +1540,7 @@ static void CB2_ReturnFromNamingScreen(void)
break;
case 1:
ResetBgsAndClearDma3BusyFlags(0);
- InitBgsFromTemplates(1, gUnknown_8462E58, NELEMS(gUnknown_8462E58));
+ InitBgsFromTemplates(1, sBgTemplates, NELEMS(sBgTemplates));
SetBgTilemapBuffer(1, sOakSpeechResources->bg1TilemapBuffer);
SetBgTilemapBuffer(2, sOakSpeechResources->bg2TilemapBuffer);
ChangeBgX(1, 0, 0);
@@ -1562,37 +1559,37 @@ static void CB2_ReturnFromNamingScreen(void)
break;
case 3:
FreeAllWindowBuffers();
- sub_80F6C6C();
- sub_80F6C98();
- LoadPalette(gUnknown_8460568, 0, 0xe0);
+ InitStandardTextBoxWindows();
+ ResetBg0();
+ LoadPalette(sHelpDocsPalette, 0, 0xe0);
break;
case 4:
- decompress_and_copy_tile_data_to_vram(1, gUnknown_8460CA4, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(1, sOakSpeechGfx_SolidColors, 0, 0, 0);
break;
case 5:
if (free_temp_tile_data_buffers_if_possible())
return;
FillBgTilemapBufferRect_Palette0(1, 0x000, 0, 0, 30, 20);
- CopyToBgTilemapBuffer(1, gUnknown_8460CE8, 0, 0);
+ CopyToBgTilemapBuffer(1, sOakSpeech_BackgroundTilemap, 0, 0);
FillBgTilemapBufferRect_Palette0(2, 0x000, 0, 0, 30, 20);
CopyBgTilemapBufferToVram(1);
CopyBgTilemapBufferToVram(2);
break;
case 6:
- taskId = CreateTask(sub_8130464, 0);
+ taskId = CreateTask(Task_OakSpeech26, 0);
if (sOakSpeechResources->unk_0010 == 0)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- sub_81311F4(MALE, 0);
+ LoadOaksSpeechTrainerPic(MALE, 0);
else
- sub_81311F4(FEMALE, 0);
+ LoadOaksSpeechTrainerPic(FEMALE, 0);
}
else
- sub_81311F4(2, 0);
+ LoadOaksSpeechTrainerPic(2, 0);
gTasks[taskId].data[1] = -60;
gSpriteCoordOffsetX += 60;
ChangeBgX(2, -0x3C00, 0);
- sub_8130FD4(taskId, 1);
+ CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(taskId, 1);
gTasks[taskId].data[15] = 1;
break;
case 7:
@@ -1602,9 +1599,9 @@ static void CB2_ReturnFromNamingScreen(void)
ShowBg(1);
ShowBg(2);
EnableInterrupts(INTR_FLAG_VBLANK);
- SetVBlankCallback(sub_812EAFC);
+ SetVBlankCallback(VBlankCB_NewGameOaksSpeech);
gTextFlags.flag_0 = TRUE;
- SetMainCallback2(sub_812EB10);
+ SetMainCallback2(CB2_NewGameOaksSpeech);
return;
}
@@ -1625,12 +1622,12 @@ static void CreateNidoranFSprite(u8 taskId)
gTasks[taskId].data[4] = spriteId;
}
-static void sub_8130FB8(struct Sprite * sprite)
+static void SpriteCB_PikaSync(struct Sprite * sprite)
{
sprite->pos2.y = gSprites[sprite->data[0]].animCmdIndex;
}
-static void sub_8130FD4(u8 taskId, u8 state)
+static void CreatePikaOrGrassPlatformSpriteAndLinkToCurrentTask(u8 taskId, u8 state)
{
u8 spriteId;
u8 i = 0;
@@ -1638,30 +1635,30 @@ static void sub_8130FD4(u8 taskId, u8 state)
switch (state)
{
case 0:
- LoadCompressedObjectPic(&gUnknown_8462EFC[0]);
- LoadCompressedObjectPic(&gUnknown_8462EFC[1]);
- LoadCompressedObjectPic(&gUnknown_8462EFC[2]);
- LoadSpritePalette(&gUnknown_8462F1C);
- spriteId = CreateSprite(&gUnknown_846302C[0], 0x10, 0x11, 2);
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[0]);
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[1]);
+ LoadCompressedObjectPic(&sOakSpeech_PikaSpriteSheets[2]);
+ LoadSpritePalette(&sOakSpeech_PikaSpritePal);
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[0], 0x10, 0x11, 2);
gSprites[spriteId].oam.priority = 0;
gTasks[taskId].data[7] = spriteId;
- spriteId = CreateSprite(&gUnknown_846302C[1], 0x10, 0x09, 3);
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[1], 0x10, 0x09, 3);
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].data[0] = gTasks[taskId].data[7];
- gSprites[spriteId].callback = sub_8130FB8;
+ gSprites[spriteId].callback = SpriteCB_PikaSync;
gTasks[taskId].data[8] = spriteId;
- spriteId = CreateSprite(&gUnknown_846302C[2], 0x18, 0x0D, 1);
+ spriteId = CreateSprite(&sOakSpeech_PikaSpriteTemplates[2], 0x18, 0x0D, 1);
gSprites[spriteId].oam.priority = 0;
gSprites[spriteId].data[0] = gTasks[taskId].data[7];
- gSprites[spriteId].callback = sub_8130FB8;
+ gSprites[spriteId].callback = SpriteCB_PikaSync;
gTasks[taskId].data[9] = spriteId;
break;
case 1:
- LoadCompressedObjectPic(&gUnknown_8462F14);
- LoadSpritePalette(&gUnknown_8462F24);
+ LoadCompressedObjectPic(&sOakSpeech_GrassPlatformSpriteSheet);
+ LoadSpritePalette(&sOakSpeech_GrassPlatformSpritePal);
for (i = 0; i < 3; i++)
{
- spriteId = CreateSprite(&gUnknown_8462F50[i], i * 32 + 88, 0x70, 1);
+ spriteId = CreateSprite(&sOakSpeech_GrassPlatformSpriteTemplates[i], i * 32 + 88, 0x70, 1);
gSprites[spriteId].oam.priority = 2;
gSprites[spriteId].animPaused = TRUE;
gSprites[spriteId].coordOffsetEnabled = TRUE;
@@ -1671,7 +1668,7 @@ static void sub_8130FD4(u8 taskId, u8 state)
}
}
-static void sub_8131168(u8 taskId, u8 state)
+static void DestroyLinkedPikaOrGrassPlatformSprites(u8 taskId, u8 state)
{
u8 i;
@@ -1695,49 +1692,49 @@ static void sub_8131168(u8 taskId, u8 state)
}
}
-static void sub_81311F4(u16 whichPic, u16 tileOffset)
+static void LoadOaksSpeechTrainerPic(u16 whichPic, u16 tileOffset)
{
u32 i;
switch (whichPic)
{
case 0: // FIRE
- LoadPalette(gUnknown_84615FC, 0x40, 0x40);
- LZ77UnCompVram(gUnknown_846163C, (void *)0x06000600 + tileOffset);
+ LoadPalette(sOakSpeechGfx_RedPal, 0x40, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_RedPic, (void *)0x06000600 + tileOffset);
break;
case 1: // LEAF
- LoadPalette(gUnknown_8460ED4, 0x40, 0x40);
- LZ77UnCompVram(gUnknown_8460F14, (void *)0x06000600 + tileOffset);
+ LoadPalette(sOakSpeechGfx_LeafPal, 0x40, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_LeafPic, (void *)0x06000600 + tileOffset);
break;
case 2: // BLUE
- LoadPalette(gUnknown_84623AC, 0x60, 0x40);
- LZ77UnCompVram(gUnknown_84623EC, (void *)0x06000600 + tileOffset);
+ LoadPalette(sOakSpeechGfx_RivalPal, 0x60, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_RivalPic, (void *)0x06000600 + tileOffset);
break;
case 3: // OAK
- LoadPalette(gUnknown_8461CD4, 0x60, 0x40);
- LZ77UnCompVram(gUnknown_8461D14, (void *)0x06000600 + tileOffset);
+ LoadPalette(sOakSpeechGfx_OakPal, 0x60, 0x40);
+ LZ77UnCompVram(sOakSpeechGfx_OakPic, (void *)0x06000600 + tileOffset);
break;
default:
return;
}
- sOakSpeechResources->unk_0004 = AllocZeroed(0x60);
+ sOakSpeechResources->trainerPicTilemapBuffer = AllocZeroed(0x60);
for (i = 0; i < 0x60; i++)
- ((u8 *)sOakSpeechResources->unk_0004)[i] = i;
+ ((u8 *)sOakSpeechResources->trainerPicTilemapBuffer)[i] = i;
FillBgTilemapBufferRect(2, 0x000, 0, 0, 32, 32, 0x10);
- CopyRectToBgTilemapBufferRect(2, sOakSpeechResources->unk_0004, 0, 0, 8, 12, 11, 2, 8, 12, 0x10, (tileOffset / 64) + 0x18, 0x00);
+ CopyRectToBgTilemapBufferRect(2, sOakSpeechResources->trainerPicTilemapBuffer, 0, 0, 8, 12, 11, 2, 8, 12, 0x10, (tileOffset / 64) + 0x18, 0x00);
CopyBgTilemapBufferToVram(2);
- Free(sOakSpeechResources->unk_0004);
- sOakSpeechResources->unk_0004 = 0;
+ Free(sOakSpeechResources->trainerPicTilemapBuffer);
+ sOakSpeechResources->trainerPicTilemapBuffer = 0;
}
-static void sub_8131310(void)
+static void DestroyOaksSpeechTrainerPic(void)
{
FillBgTilemapBufferRect(2, 0x000, 11, 1, 8, 12, 0x10);
CopyBgTilemapBufferToVram(2);
}
-static void sub_8131338(u8 taskId)
+static void Task_SlowFadeIn(u8 taskId)
{
u8 i = 0;
if (gTasks[taskId].data[1] == 0)
@@ -1770,7 +1767,7 @@ static void sub_8131338(u8 taskId)
}
}
-static void sub_813144C(u8 taskId, u8 state)
+static void CreateFadeInTask(u8 taskId, u8 state)
{
u8 taskId2;
u8 i = 0;
@@ -1779,7 +1776,7 @@ static void sub_813144C(u8 taskId, u8 state)
SetGpuReg(REG_OFFSET_BLDALPHA, 0x10);
SetGpuReg(REG_OFFSET_BLDY, 0);
gTasks[taskId].data[2] = 0;
- taskId2 = CreateTask(sub_8131338, 0);
+ taskId2 = CreateTask(Task_SlowFadeIn, 0);
gTasks[taskId2].data[0] = taskId;
gTasks[taskId2].data[1] = 16;
gTasks[taskId2].data[2] = 0;
@@ -1791,7 +1788,7 @@ static void sub_813144C(u8 taskId, u8 state)
}
}
-static void sub_81314DC(u8 taskId)
+static void Task_SlowFadeOut(u8 taskId)
{
u8 i = 0;
@@ -1824,7 +1821,7 @@ static void sub_81314DC(u8 taskId)
}
}
-static void sub_81315CC(u8 taskId, u8 state)
+static void CreateFadeOutTask(u8 taskId, u8 state)
{
u8 taskId2;
u8 i = 0;
@@ -1833,7 +1830,7 @@ static void sub_81315CC(u8 taskId, u8 state)
SetGpuReg(REG_OFFSET_BLDALPHA, 0x1000);
SetGpuReg(REG_OFFSET_BLDY, 0);
gTasks[taskId].data[2] = 0;
- taskId2 = CreateTask(sub_81314DC, 0);
+ taskId2 = CreateTask(Task_SlowFadeOut, 0);
gTasks[taskId2].data[0] = taskId;
gTasks[taskId2].data[1] = 0;
gTasks[taskId2].data[2] = 16;
@@ -1845,30 +1842,30 @@ static void sub_81315CC(u8 taskId, u8 state)
}
}
-static void sub_8131660(u8 taskId, u8 state)
+static void PrintNameChoiceOptions(u8 taskId, u8 state)
{
s16 * data = gTasks[taskId].data;
const u8 *const * textPtrs;
u8 i;
- data[13] = AddWindow(&gUnknown_8462EC0[3]);
+ data[13] = AddWindow(&sNewGameAdventureIntroWindowTemplates[3]);
PutWindowTilemap(data[13]);
SetWindowBorderStyle(data[13], 1, sub_80F796C(), 14);
FillWindowPixelBuffer(gTasks[taskId].data[13], 0x11);
- AddTextPrinterParameterized(data[13], 2, gUnknown_81C574F, 8, 1, 0, NULL);
+ AddTextPrinterParameterized(data[13], 2, gOtherText_NewName, 8, 1, 0, NULL);
if (state == 0)
- textPtrs = gSaveBlock2Ptr->playerGender == MALE ? gUnknown_846308C : gUnknown_84630D8;
+ textPtrs = gSaveBlock2Ptr->playerGender == MALE ? sMaleNameChoices : sFemaleNameChoices;
else
- textPtrs = gUnknown_8463124;
+ textPtrs = sRivalNameChoices;
for (i = 0; i < 4; i++)
{
AddTextPrinterParameterized(data[13], 2, textPtrs[i], 8, 16 * (i + 1) + 1, 0, NULL);
}
- sub_810F7D8(data[13], 2, 0, 1, 16, 5, 0);
+ ProgramAndPlaceMenuCursorOnWindow(data[13], 2, 0, 1, 16, 5, 0);
CopyWindowToVram(data[13], 3);
}
-static void sub_8131754(u8 arg0, u8 namePick)
+static void GetDefaultName(u8 arg0, u8 namePick)
{
const u8 * src;
u8 * dest;
@@ -1877,14 +1874,14 @@ static void sub_8131754(u8 arg0, u8 namePick)
if (arg0 == 0)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- src = gUnknown_846308C[Random() % 19];
+ src = sMaleNameChoices[Random() % 19];
else
- src = gUnknown_84630D8[Random() % 19];
+ src = sFemaleNameChoices[Random() % 19];
dest = gSaveBlock2Ptr->playerName;
}
else
{
- src = gUnknown_8463124[namePick];
+ src = sRivalNameChoices[namePick];
dest = gSaveBlock1Ptr->rivalName;
}
for (i = 0; i < PLAYER_NAME_LENGTH - 1 && src[i] != EOS; i++)
diff --git a/src/roamer.c b/src/roamer.c
new file mode 100644
index 000000000..6ad009e8b
--- /dev/null
+++ b/src/roamer.c
@@ -0,0 +1,238 @@
+#include "global.h"
+#include "roamer.h"
+#include "random.h"
+#include "overworld.h"
+#include "field_specials.h"
+#include "constants/species.h"
+
+EWRAM_DATA u8 sLocationHistory[3][2] = {};
+EWRAM_DATA u8 sRoamerLocation[2] = {};
+
+#define saveRoamer (*(&gSaveBlock1Ptr->roamer))
+
+enum
+{
+ MAP_GRP = 0, // map group
+ MAP_NUM = 1, // map number
+};
+
+const u8 sRoamerLocations[][7] = {
+ {0x13, 0x14, 0x27, 0x29, 0xff, 0xff, 0xff},
+ {0x14, 0x13, 0x15, 0x29, 0xff, 0xff, 0xff},
+ {0x15, 0x14, 0x16, 0xff, 0xff, 0xff, 0xff},
+ {0x16, 0x15, 0x17, 0x1b, 0x2b, 0xff, 0xff},
+ {0x17, 0x16, 0x18, 0x19, 0x1a, 0x1b, 0x2b},
+ {0x18, 0x17, 0x19, 0x1a, 0x1d, 0xff, 0xff},
+ {0x19, 0x17, 0x18, 0x1a, 0x22, 0xff, 0xff},
+ {0x1a, 0x17, 0x18, 0x19, 0x1c, 0x1e, 0xff},
+ {0x1b, 0x16, 0x17, 0x1c, 0x2b, 0xff, 0xff},
+ {0x1c, 0x1a, 0x1b, 0x1e, 0xff, 0xff, 0xff},
+ {0x1d, 0x18, 0x1e, 0xff, 0xff, 0xff, 0xff},
+ {0x1e, 0x1c, 0x1d, 0x1f, 0xff, 0xff, 0xff},
+ {0x1f, 0x1e, 0x20, 0xff, 0xff, 0xff, 0xff},
+ {0x20, 0x1f, 0x21, 0xff, 0xff, 0xff, 0xff},
+ {0x21, 0x20, 0x24, 0x25, 0xff, 0xff, 0xff},
+ {0x22, 0x19, 0x23, 0xff, 0xff, 0xff, 0xff},
+ {0x23, 0x22, 0x24, 0xff, 0xff, 0xff, 0xff},
+ {0x24, 0x21, 0x23, 0x25, 0xff, 0xff, 0xff},
+ {0x25, 0x21, 0x24, 0x26, 0xff, 0xff, 0xff},
+ {0x26, 0x25, 0x27, 0xff, 0xff, 0xff, 0xff},
+ {0x27, 0x13, 0x26, 0xff, 0xff, 0xff, 0xff},
+ {0x29, 0x13, 0x14, 0x2a, 0xff, 0xff, 0xff},
+ {0x2a, 0x29, 0x14, 0xff, 0xff, 0xff, 0xff},
+ {0x2b, 0x16, 0x17, 0x1b, 0xff, 0xff, 0xff},
+ {0x2c, 0x2b, 0x1b, 0xff, 0xff, 0xff, 0xff},
+ {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}
+};
+
+void ClearRoamerData(void)
+{
+ u32 i;
+ gSaveBlock1Ptr->roamer = (struct Roamer){};
+ sRoamerLocation[MAP_GRP] = 0;
+ sRoamerLocation[MAP_NUM] = 0;
+ for (i = 0; i < 3; i++)
+ {
+ sLocationHistory[i][MAP_GRP] = 0;
+ sLocationHistory[i][MAP_NUM] = 0;
+ }
+}
+
+#define GetRoamerSpecies() ({\
+ u16 a;\
+ switch (ScrSpecial_GetStarter())\
+ {\
+ default:\
+ a = SPECIES_RAIKOU;\
+ break;\
+ case SPECIES_BULBASAUR:\
+ a = SPECIES_ENTEI;\
+ break;\
+ case SPECIES_CHARMANDER:\
+ a = SPECIES_SUICUNE;\
+ break;\
+ }\
+ a;\
+})
+
+void CreateInitialRoamerMon(void)
+{
+ struct Pokemon * tmpMon = &gEnemyParty[0];
+ u16 roamerMon;
+
+ CreateMon(tmpMon, (roamerMon = GetRoamerSpecies()), 50, 0x20, 0, 0, 0, 0);
+ saveRoamer.species = roamerMon;
+ saveRoamer.level = 50;
+ saveRoamer.status = 0;
+ saveRoamer.active = TRUE;
+ saveRoamer.ivs = GetMonData(tmpMon, MON_DATA_IVS);
+ saveRoamer.personality = GetMonData(tmpMon, MON_DATA_PERSONALITY);
+ saveRoamer.hp = GetMonData(tmpMon, MON_DATA_MAX_HP);
+ saveRoamer.cool = GetMonData(tmpMon, MON_DATA_COOL);
+ saveRoamer.beauty = GetMonData(tmpMon, MON_DATA_BEAUTY);
+ saveRoamer.cute = GetMonData(tmpMon, MON_DATA_CUTE);
+ saveRoamer.smart = GetMonData(tmpMon, MON_DATA_SMART);
+ saveRoamer.tough = GetMonData(tmpMon, MON_DATA_TOUGH);
+ sRoamerLocation[MAP_GRP] = 3;
+ sRoamerLocation[MAP_NUM] = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+}
+
+void InitRoamer(void)
+{
+ ClearRoamerData();
+ CreateInitialRoamerMon();
+}
+
+void UpdateLocationHistoryForRoamer(void)
+{
+ sLocationHistory[2][MAP_GRP] = sLocationHistory[1][MAP_GRP];
+ sLocationHistory[2][MAP_NUM] = sLocationHistory[1][MAP_NUM];
+ sLocationHistory[1][MAP_GRP] = sLocationHistory[0][MAP_GRP];
+ sLocationHistory[1][MAP_NUM] = sLocationHistory[0][MAP_NUM];
+ sLocationHistory[0][MAP_GRP] = gSaveBlock1Ptr->location.mapGroup;
+ sLocationHistory[0][MAP_NUM] = gSaveBlock1Ptr->location.mapNum;
+}
+
+void RoamerMoveToOtherLocationSet(void)
+{
+ u8 mapNum = 0;
+ struct Roamer *roamer = &saveRoamer;
+
+ if (!roamer->active)
+ return;
+
+ sRoamerLocation[MAP_GRP] = 3;
+
+ while (1)
+ {
+ mapNum = sRoamerLocations[Random() % (ARRAY_COUNT(sRoamerLocations) - 1)][0];
+ if (sRoamerLocation[MAP_NUM] != mapNum)
+ {
+ sRoamerLocation[MAP_NUM] = mapNum;
+ return;
+ }
+ }
+}
+
+
+void RoamerMove(void)
+{
+ u8 locSet = 0;
+
+ if ((Random() % 16) == 0)
+ {
+ RoamerMoveToOtherLocationSet();
+ }
+ else
+ {
+ struct Roamer *roamer = &saveRoamer;
+
+ if (!roamer->active)
+ return;
+
+ while (locSet < (ARRAY_COUNT(sRoamerLocations) - 1))
+ {
+ if (sRoamerLocation[MAP_NUM] == sRoamerLocations[locSet][0])
+ {
+ u8 mapNum;
+ while (1)
+ {
+ mapNum = sRoamerLocations[locSet][(Random() % 6) + 1];
+ if (!(sLocationHistory[2][MAP_GRP] == 3 && sLocationHistory[2][MAP_NUM] == mapNum) && mapNum != 0xFF)
+ break;
+ }
+ sRoamerLocation[MAP_NUM] = mapNum;
+ return;
+ }
+ locSet++;
+ }
+ }
+}
+
+bool8 IsRoamerAt(u8 mapGroup, u8 mapNum)
+{
+ struct Roamer *roamer = &saveRoamer;
+
+ if (roamer->active && mapGroup == sRoamerLocation[MAP_GRP] && mapNum == sRoamerLocation[MAP_NUM])
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void CreateRoamerMonInstance(void)
+{
+ struct Pokemon *mon;
+ struct Roamer *roamer;
+
+ mon = &gEnemyParty[0];
+ ZeroEnemyPartyMons();
+ roamer = &saveRoamer;
+ CreateMonWithIVsPersonality(mon, roamer->species, roamer->level, roamer->ivs, roamer->personality);
+ SetMonData(mon, MON_DATA_STATUS, &gSaveBlock1Ptr->roamer.status);
+ SetMonData(mon, MON_DATA_HP, &gSaveBlock1Ptr->roamer.hp);
+ SetMonData(mon, MON_DATA_COOL, &gSaveBlock1Ptr->roamer.cool);
+ SetMonData(mon, MON_DATA_BEAUTY, &gSaveBlock1Ptr->roamer.beauty);
+ SetMonData(mon, MON_DATA_CUTE, &gSaveBlock1Ptr->roamer.cute);
+ SetMonData(mon, MON_DATA_SMART, &gSaveBlock1Ptr->roamer.smart);
+ SetMonData(mon, MON_DATA_TOUGH, &gSaveBlock1Ptr->roamer.tough);
+}
+
+bool8 TryStartRoamerEncounter(void)
+{
+ if (IsRoamerAt(gSaveBlock1Ptr->location.mapGroup, gSaveBlock1Ptr->location.mapNum) == TRUE && (Random() % 4) == 0)
+ {
+ CreateRoamerMonInstance();
+ return TRUE;
+ }
+ else
+ {
+ return FALSE;
+ }
+}
+void UpdateRoamerHPStatus(struct Pokemon *mon)
+{
+ saveRoamer.hp = GetMonData(mon, MON_DATA_HP);
+ saveRoamer.status = GetMonData(mon, MON_DATA_STATUS);
+
+ RoamerMoveToOtherLocationSet();
+}
+
+void SetRoamerInactive(void)
+{
+ struct Roamer *roamer = &saveRoamer;
+ roamer->active = FALSE;
+}
+
+void GetRoamerLocation(u8 *mapGroup, u8 *mapNum)
+{
+ *mapGroup = sRoamerLocation[MAP_GRP];
+ *mapNum = sRoamerLocation[MAP_NUM];
+}
+
+u16 GetRoamerLocationMapSectionId(void)
+{
+ struct Roamer *roamer = &saveRoamer;
+ if (!saveRoamer.active)
+ return 0xC5;
+ return get_mapheader_by_bank_and_number(sRoamerLocation[MAP_GRP], sRoamerLocation[MAP_NUM])->regionMapSectionId;
+}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index 12b35daa4..33859f8c6 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1567,7 +1567,7 @@ bool8 ScrCmd_braillemessage(struct ScriptContext *ctx)
ptr = (u8 *)ctx->data[0];
sub_80F6E9C();
- sub_80F6EE4(0, 1);
+ DrawDialogueFrame(0, 1);
AddTextPrinterParameterized(0, 6, ptr, 0, 1, 0, NULL);
return FALSE;
}
diff --git a/src/text.c b/src/text.c
index 874e12fd5..86b60485d 100644
--- a/src/text.c
+++ b/src/text.c
@@ -1791,7 +1791,7 @@ void sub_80062B0(struct Sprite *sprite)
}
}
-u8 sub_8006300(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority)
+u8 CreateTextCursorSpriteForOakSpeech(u8 sheetId, u16 x, u16 y, u8 priority, u8 subpriority)
{
u8 spriteId;
LoadSpriteSheet(&gUnknown_81EA68C[sheetId & 1]);
diff --git a/src/trainer_tower.c b/src/trainer_tower.c
index ef34c1629..e914d7ac6 100644
--- a/src/trainer_tower.c
+++ b/src/trainer_tower.c
@@ -1336,7 +1336,7 @@ void sub_815E720(void)
sub_815EC0C();
windowId = AddWindow(gUnknown_847A218);
sub_80F6E9C();
- sub_80F6F1C(windowId, FALSE);
+ DrawStdWindowFrame(windowId, FALSE);
AddTextPrinterParameterized(windowId, 2, gUnknown_83FE982, 0x4A, 0, 0xFF, NULL);
for (i = 0; i < 4; i++)
diff --git a/src/vs_seeker.c b/src/vs_seeker.c
index 579800576..9cf6a6e04 100644
--- a/src/vs_seeker.c
+++ b/src/vs_seeker.c
@@ -663,7 +663,7 @@ static void Task_VsSeeker_3(u8 taskId)
{
if (sVsSeeker->responseCode == 2)
StartAllRespondantIdleMovements();
- sub_80F6F54(0, 1);
+ ClearDialogWindowAndFrame(0, 1);
sub_80696C0();
ScriptContext2_Disable();
DestroyTask(taskId);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index b18406af2..36b7c991c 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -1638,10 +1638,10 @@ gUnknown_203F3A0: @ 203F3A0
gUnknown_203F3A4: @ 203F3A4
.space 0x4
-gUnknown_203F3A8: @ 203F3A8
+sLocationHistory: @ 203F3A8
.space 0x6
-gUnknown_203F3AE: @ 203F3AE
+sRoamerLocation: @ 203F3AE
.space 0x2
gUnknown_203F3B0: @ 203F3B0