summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/easy_chat.s8
-rw-r--r--asm/party_menu.s24
-rw-r--r--asm/pokemon_storage_system.s8
-rw-r--r--asm/rom_8011DC0.s16
-rw-r--r--asm/roulette.s4
-rw-r--r--asm/script_menu.s1883
-rw-r--r--asm/trade.s6
-rw-r--r--asm/use_pokeblock.s2
-rw-r--r--data/event_scripts.s4
-rw-r--r--data/script_menu.s780
-rw-r--r--include/field_effect.h2
-rw-r--r--include/field_specials.h1
-rw-r--r--include/menu.h11
-rw-r--r--include/script_menu.h8
-rw-r--r--include/strings.h261
-rw-r--r--ld_script.txt4
-rw-r--r--src/apprentice.c4
-rw-r--r--src/battle_pyramid_bag.c2
-rw-r--r--src/berry_blender.c2
-rw-r--r--src/clear_save_data_screen.c2
-rw-r--r--src/decoration.c14
-rw-r--r--src/egg_hatch.c2
-rw-r--r--src/evolution_scene.c2
-rw-r--r--src/field_effect.c6
-rwxr-xr-xsrc/item_menu.c2
-rw-r--r--src/learn_move.c8
-rw-r--r--src/main_menu.c4
-rw-r--r--src/mauville_old_man.c2
-rw-r--r--src/menu.c12
-rw-r--r--src/menu_helpers.c2
-rw-r--r--src/overworld.c2
-rw-r--r--src/player_pc.c10
-rw-r--r--src/pokeblock.c2
-rw-r--r--src/pokemon_storage_system.c2
-rw-r--r--src/post_battle_event_funcs.c1
-rw-r--r--src/script_menu.c1925
-rw-r--r--src/secret_base.c4
-rwxr-xr-xsrc/shop.c2
-rw-r--r--src/slot_machine.c2
-rw-r--r--src/start_menu.c10
-rw-r--r--src/starter_choose.c2
-rw-r--r--src/trader.c2
-rw-r--r--src/wallclock.c2
-rw-r--r--sym_ewram.txt6
44 files changed, 2283 insertions, 2775 deletions
diff --git a/asm/easy_chat.s b/asm/easy_chat.s
index c73224807..70786ab65 100644
--- a/asm/easy_chat.s
+++ b/asm/easy_chat.s
@@ -369,7 +369,7 @@ _0811AF86:
thumb_func_start sub_811AF8C
sub_811AF8C: @ 811AF8C
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -418,7 +418,7 @@ _0811AFE6:
thumb_func_start sub_811AFEC
sub_811AFEC: @ 811AFEC
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -461,7 +461,7 @@ _0811B03A:
thumb_func_start sub_811B040
sub_811B040: @ 811B040
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -566,7 +566,7 @@ sub_811B0E8: @ 811B0E8
thumb_func_start sub_811B0F8
sub_811B0F8: @ 811B0F8
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/party_menu.s b/asm/party_menu.s
index cb5b1c712..231cb72d7 100644
--- a/asm/party_menu.s
+++ b/asm/party_menu.s
@@ -2740,7 +2740,7 @@ sub_81B1708: @ 81B1708
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -4196,7 +4196,7 @@ sub_81B227C: @ 81B227C
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -8138,7 +8138,7 @@ sub_81B43DC: @ 81B43DC
push {r4-r6,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -8671,7 +8671,7 @@ sub_81B48DC: @ 81B48DC
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -8963,7 +8963,7 @@ sub_81B4BA0: @ 81B4BA0
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -9069,7 +9069,7 @@ sub_81B4C94: @ 81B4C94
push {r7}
lsls r0, 24
lsrs r5, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -9877,7 +9877,7 @@ sub_81B5430: @ 81B5430
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -10171,7 +10171,7 @@ sub_81B56D8: @ 81B56D8
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -12543,7 +12543,7 @@ ether_effect_related_3: @ 81B6AB4
lsls r0, 24
lsrs r4, r0, 24
adds r5, r4, 0
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r1, r0, 24
movs r0, 0x2
@@ -13156,7 +13156,7 @@ sub_81B7028: @ 81B7028
push {r4,lr}
lsls r0, 24
lsrs r4, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -13458,7 +13458,7 @@ sub_81B72C8: @ 81B72C8
muls r1, r0
ldr r0, =gPlayerParty
adds r4, r1, r0
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r5, r0, 24
cmp r5, 0
@@ -15240,7 +15240,7 @@ sub_81B82D4: @ 81B82D4
push {r4-r7,lr}
lsls r0, 24
lsrs r5, r0, 24
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/pokemon_storage_system.s b/asm/pokemon_storage_system.s
index 9d5603085..3fefdd530 100644
--- a/asm/pokemon_storage_system.s
+++ b/asm/pokemon_storage_system.s
@@ -1904,7 +1904,7 @@ _080C8F0C:
adds r0, 0x1
strb r0, [r1]
_080C8F22:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -2628,7 +2628,7 @@ _080C9584:
b _080C9664
.pool
_080C95A4:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3422,7 +3422,7 @@ _080C9C78:
b _080C9CAA
.pool
_080C9C8C:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3553,7 +3553,7 @@ _080C9DAC:
b _080C9DE0
.pool
_080C9DC0:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/rom_8011DC0.s b/asm/rom_8011DC0.s
index b45639c13..6103785da 100644
--- a/asm/rom_8011DC0.s
+++ b/asm/rom_8011DC0.s
@@ -2905,7 +2905,7 @@ _080170CA:
negs r0, r0
b _08017110
_080170D4:
- bl sub_8197930
+ bl DisplayYesNoMenu
ldrb r0, [r4]
adds r0, 0x1
strb r0, [r4]
@@ -2920,7 +2920,7 @@ _080170E0:
negs r0, r0
b _08017110
_080170F2:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
movs r2, 0x80
@@ -6278,7 +6278,7 @@ _08018BD6:
b _08018C3E
.pool
_08018BE4:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r6, r0, 24
movs r1, 0x80
@@ -16904,7 +16904,7 @@ _0801E16A:
b _0801E23A
.pool
_0801E17C:
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 8
lsrs r6, r0, 16
@@ -20614,7 +20614,7 @@ _0801FEFE:
thumb_func_start sub_801FF08
sub_801FF08: @ 801FF08
push {lr}
- bl ProcessMenuInput
+ bl Menu_ProcessInput
lsls r0, 24
asrs r0, 24
pop {r1}
@@ -28887,10 +28887,10 @@ _08024246:
strb r0, [r5, 0xC]
b _080242D8
_0802426A:
- bl sub_8197930
+ bl DisplayYesNoMenu
b _080242D0
_08024270:
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r4, r0, 24
movs r0, 0x2
@@ -47811,7 +47811,7 @@ _0802DA84:
thumb_func_start sub_802DA8C
sub_802DA8C: @ 802DA8C
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r0, 24
pop {r1}
diff --git a/asm/roulette.s b/asm/roulette.s
index f5d2dc372..1552ba4fe 100644
--- a/asm/roulette.s
+++ b/asm/roulette.s
@@ -736,7 +736,7 @@ sub_8140914: @ 8140914
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8197930
+ bl DisplayYesNoMenu
ldr r5, =gUnknown_0203AB8C
ldrb r0, [r5]
movs r1, 0
@@ -4502,7 +4502,7 @@ sub_81428C4: @ 81428C4
adds r4, r0, 0
lsls r4, 24
lsrs r4, 24
- bl sub_8197930
+ bl DisplayYesNoMenu
ldr r1, =gUnknown_085B6408
adds r0, r4, 0
bl sub_8121F68
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index 703c052f3..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,1883 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start ScriptMenu_Multichoice
-@ bool8 ScriptMenu_Multichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-ScriptMenu_Multichoice: @ 80E1E08
- push {r4-r7,lr}
- sub sp, 0x4
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r6, r1, 24
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1E4C
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r0, 0
- str r0, [sp]
- adds r0, r7, 0
- adds r1, r6, 0
- adds r2, r5, 0
- adds r3, r4, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1E4E
- .pool
-_080E1E4C:
- movs r0, 0
-_080E1E4E:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_Multichoice
-
- thumb_func_start ScriptMenu_MultichoiceWithDefault
-ScriptMenu_MultichoiceWithDefault: @ 80E1E58
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0x4
- ldr r4, [sp, 0x1C]
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- lsls r3, 24
- lsrs r5, r3, 24
- lsls r4, 24
- lsrs r4, 24
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E1EA8
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- str r4, [sp]
- mov r0, r8
- adds r1, r7, 0
- adds r2, r6, 0
- adds r3, r5, 0
- bl DoMultichoice
- movs r0, 0x1
- b _080E1EAA
- .pool
-_080E1EA8:
- movs r0, 0
-_080E1EAA:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_MultichoiceWithDefault
-
- thumb_func_start sub_80E1EB8
-sub_80E1EB8: @ 80E1EB8
- push {r4,r5,lr}
- adds r4, r0, 0
- movs r5, 0
- b _080E1EEC
-_080E1EC0:
- cmp r1, 0xFD
- bne _080E1EE4
- adds r4, 0x1
- ldrb r0, [r4]
- cmp r0, 0x1
- bne _080E1EEC
- ldr r0, =gSaveBlock2Ptr
- ldr r0, [r0]
- bl StringLength
- adds r0, r5, r0
- lsls r0, 16
- lsrs r5, r0, 16
- adds r4, 0x1
- b _080E1EEC
- .pool
-_080E1EE4:
- adds r4, 0x1
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
-_080E1EEC:
- ldrb r1, [r4]
- adds r0, r1, 0
- cmp r0, 0xFF
- bne _080E1EC0
- adds r0, r5, 0
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end sub_80E1EB8
-
- thumb_func_start DoMultichoice
-@ void DoMultichoice(u8 x, u8 y, u8 menuId, bool8 noCancelling)
-DoMultichoice: @ 80E1EFC
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x8
- ldr r4, [sp, 0x28]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- mov r9, r1
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x4]
- ldr r1, =gUnknown_0858B760
- lsls r0, r2, 3
- adds r0, r1
- ldrb r6, [r0, 0x4]
- ldr r0, [r0]
- mov r8, r0
- movs r1, 0
- cmp r1, r6
- bge _080E1F4C
- mov r5, r8
- adds r4, r6, 0
-_080E1F3C:
- ldr r0, [r5]
- bl display_text_and_get_width
- adds r1, r0, 0
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _080E1F3C
-_080E1F4C:
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r4, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- mov r1, r9
- adds r2, r4, 0
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- adds r0, r4, 0
- adds r1, r6, 0
- mov r2, r8
- bl PrintMenuTable
- adds r0, r4, 0
- adds r1, r6, 0
- ldr r2, [sp, 0x4]
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- ldr r0, [sp]
- adds r1, r6, 0
- adds r2, r4, 0
- mov r3, r10
- bl sub_80E1FBC
- add sp, 0x8
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end DoMultichoice
-
- thumb_func_start sub_80E1FBC
-sub_80E1FBC: @ 80E1FBC
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r2, 24
- mov r9, r2
- lsls r3, 24
- lsrs r4, r3, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- movs r2, 0
- ldr r6, =sub_80E2058
- ldr r5, =gUnknown_0858BB68
- movs r3, 0xC
-_080E1FE6:
- adds r0, r2, r5
- ldrb r0, [r0]
- cmp r0, r4
- bne _080E1FF0
- strb r3, [r1]
-_080E1FF0:
- adds r0, r2, 0x1
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0x5
- bls _080E1FE6
- adds r0, r6, 0
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- mov r0, r8
- strh r0, [r1, 0x10]
- cmp r7, 0x3
- bls _080E202C
- movs r0, 0x1
- b _080E202E
- .pool
-_080E202C:
- movs r0, 0
-_080E202E:
- strh r0, [r1, 0x12]
- ldr r1, =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- mov r1, r9
- strh r1, [r0, 0x14]
- strh r4, [r0, 0x16]
- adds r0, r4, 0
- bl sub_80E2A94
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E1FBC
-
- thumb_func_start sub_80E2058
-sub_80E2058: @ 80E2058
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- ldr r0, =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _080E20FC
- ldr r1, =gUnknown_02039F90
- ldrb r0, [r1]
- cmp r0, 0
- beq _080E2090
- subs r0, 0x1
- strb r0, [r1]
- b _080E20FC
- .pool
-_080E2090:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E209E
- bl Menu_ProcessInputNoWrapAround
- b _080E20A2
-_080E209E:
- bl ProcessMenuInput
-_080E20A2:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _080E20B8
- ldrb r0, [r5, 0xE]
- bl sub_80E2A94
-_080E20B8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E20FC
- adds r0, 0x1
- cmp r1, r0
- bne _080E20E8
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E20FC
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E20EC
- .pool
-_080E20E8:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E20EC:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E20FC:
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2058
-
- thumb_func_start ScriptMenu_YesNo
-ScriptMenu_YesNo: @ 80E2108
- push {r4,lr}
- ldr r4, =task_yes_no_maybe
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2138
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_8197930
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- movs r0, 0x1
- b _080E213A
- .pool
-_080E2138:
- movs r0, 0
-_080E213A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_YesNo
-
- thumb_func_start sub_80E2140
-sub_80E2140: @ 80E2140
- push {lr}
- ldr r0, =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _080E2154
- movs r0, 0x1
- b _080E2156
- .pool
-_080E2154:
- movs r0, 0
-_080E2156:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2140
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 80E215C
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, =gTasks
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- adds r1, r0, r1
- ldrh r2, [r1, 0xC]
- movs r3, 0xC
- ldrsh r0, [r1, r3]
- cmp r0, 0x4
- bgt _080E2180
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _080E21C4
- .pool
-_080E2180:
- bl Menu_ProcessInputNoWrap_
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _080E21A4
- cmp r1, r0
- bgt _080E219C
- subs r0, 0x1
- cmp r1, r0
- beq _080E21C4
- b _080E21BA
-_080E219C:
- cmp r1, 0
- beq _080E21B4
- cmp r1, 0x1
- bne _080E21BA
-_080E21A4:
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0
- b _080E21B8
- .pool
-_080E21B4:
- ldr r1, =gSpecialVar_Result
- movs r0, 0x1
-_080E21B8:
- strh r0, [r1]
-_080E21BA:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E21C4:
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start ScriptMenu_MultichoiceGrid
-ScriptMenu_MultichoiceGrid: @ 80E21D0
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x10
- ldr r4, [sp, 0x30]
- lsls r0, 24
- lsrs r7, r0, 24
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x4]
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x8]
- lsls r4, 24
- lsrs r4, 24
- mov r10, r4
- ldr r0, =sub_80E2308
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2210
- movs r0, 0
- b _080E22E8
- .pool
-_080E2210:
- ldr r0, =gSpecialVar_Result
- movs r1, 0xFF
- strh r1, [r0]
- movs r2, 0
- movs r6, 0
- ldr r1, =gUnknown_0858B760
- lsls r5, 3
- adds r0, r5, r1
- str r5, [sp, 0xC]
- ldrb r0, [r0, 0x4]
- cmp r2, r0
- bge _080E2246
- mov r8, r1
-_080E222A:
- mov r0, r8
- adds r4, r5, r0
- ldr r1, [r4]
- lsls r0, r6, 3
- adds r0, r1
- ldr r0, [r0]
- adds r1, r2, 0
- bl display_text_and_get_width
- adds r2, r0, 0
- adds r6, 0x1
- ldrb r4, [r4, 0x4]
- cmp r6, r4
- blt _080E222A
-_080E2246:
- adds r0, r2, 0
- bl convert_pixel_width_to_tile_width
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- mov r1, r10
- muls r1, r5
- mov r8, r1
- adds r0, r7, 0
- bl sub_80E2D5C
- lsls r0, 24
- lsrs r7, r0, 24
- ldr r2, =gUnknown_0858B760
- mov r9, r2
- ldr r0, [sp, 0xC]
- add r9, r0
- mov r1, r9
- ldrb r0, [r1, 0x4]
- mov r1, r10
- bl __udivsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- ldr r0, =sub_80E2308
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- mov r2, sp
- ldrh r2, [r2, 0x8]
- strh r2, [r4, 0x10]
- mov r0, r8
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- lsls r3, r6, 25
- lsrs r3, 24
- adds r0, r7, 0
- ldr r1, [sp, 0x4]
- mov r2, r8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldrb r0, [r4, 0x14]
- lsls r5, 27
- lsrs r5, 24
- mov r2, r9
- ldr r1, [r2]
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_81997AC
- ldrb r0, [r4, 0x14]
- movs r1, 0
- str r1, [sp]
- adds r1, r5, 0
- mov r2, r10
- adds r3, r6, 0
- bl sub_8199944
- ldrb r0, [r4, 0x14]
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0x1
-_080E22E8:
- add sp, 0x10
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .pool
- thumb_func_end ScriptMenu_MultichoiceGrid
-
- thumb_func_start sub_80E2308
-sub_80E2308: @ 80E2308
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, =gTasks + 0x8
- adds r5, r0, r1
- bl sub_8199334
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _080E2360
- adds r0, 0x1
- cmp r1, r0
- bne _080E234C
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _080E2360
- movs r0, 0x5
- bl PlaySE
- ldr r1, =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _080E2350
- .pool
-_080E234C:
- ldr r0, =gSpecialVar_Result
- strh r1, [r0]
-_080E2350:
- ldrb r0, [r5, 0xC]
- bl sub_80E2A78
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_080E2360:
- pop {r4,r5}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2308
-
- thumb_func_start ScrSpecial_CreatePCMenu
-@ bool ScrSpecial_CreatePCMenu()
-ScrSpecial_CreatePCMenu: @ 80E236C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2394
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreatePCMenu
- movs r0, 0x1
- b _080E2396
- .pool
-_080E2394:
- movs r0, 0
-_080E2396:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_CreatePCMenu
-
- thumb_func_start CreatePCMenu
-CreatePCMenu: @ 80E239C
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- sub sp, 0xC
- movs r7, 0x8
- movs r5, 0
- movs r4, 0
- ldr r6, =gUnknown_0858BB70
-_080E23AC:
- ldm r6!, {r0}
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
- adds r4, 0x1
- cmp r4, 0x3
- bls _080E23AC
- ldr r6, =0x00000864 @ = FLAG_SYS_GAME_CLEAR
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _080E23D4
- ldr r0, =gText_HallOfFame
- adds r1, r5, 0
- bl display_text_and_get_width
- adds r5, r0, 0
-_080E23D4:
- adds r0, r5, 0
- bl convert_pixel_width_to_tile_width
- lsls r0, 24
- lsrs r4, r0, 24
- adds r0, r6, 0
- bl FlagGet
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _080E2448
- movs r0, 0x4
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x8
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_HallOfFame
- movs r0, 0x21
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, =gText_LogOff
- movs r0, 0x31
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E247A
- .pool
-_080E2448:
- movs r0, 0x3
- mov r8, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0x6
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_LogOff
- movs r0, 0x21
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E247A:
- ldr r0, =0x000008ab
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _080E24B0
- ldr r2, =gText_LanettesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _080E24C6
- .pool
-_080E24B0:
- ldr r2, =gText_SomeonesPC
- movs r0, 0x1
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_080E24C6:
- ldr r4, =gStringVar4
- ldr r1, =gText_PlayersPC
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- movs r3, 0x11
- bl PrintPlayerNameOnWindow
- adds r0, r6, 0
- mov r1, r8
- movs r2, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- mov r1, r8
- adds r2, r6, 0
- movs r3, 0x1
- bl sub_80E1FBC
- add sp, 0xC
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreatePCMenu
-
- thumb_func_start ScriptMenu_DisplayPCStartupPrompt
-ScriptMenu_DisplayPCStartupPrompt: @ 80E2514
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x1
- bl sub_819786C
- ldr r2, =gUnknown_0827266F
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r0}
- bx r0
- .pool
- thumb_func_end ScriptMenu_DisplayPCStartupPrompt
-
- thumb_func_start sub_80E2548
-sub_80E2548: @ 80E2548
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2570
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_80E2578
- movs r0, 0x1
- b _080E2572
- .pool
-_080E2570:
- movs r0, 0
-_080E2572:
- pop {r1}
- bx r1
- thumb_func_end sub_80E2548
-
- thumb_func_start sub_80E2578
-sub_80E2578: @ 80E2578
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r5, 0
- movs r4, 0
- ldr r3, =gUnknown_03001124
- movs r2, 0xFF
-_080E258A:
- adds r0, r4, r3
- ldrb r1, [r0]
- orrs r1, r2
- strb r1, [r0]
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E258A
- movs r0, 0x1
- movs r1, 0
- bl GetFontAttribute
- ldr r0, =gSpecialVar_0x8004
- ldrh r1, [r0]
- cmp r1, 0
- bne _080E25D2
- ldr r4, =gUnknown_03001124
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0x1
- bne _080E25D2
- adds r0, r5, r4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E25D2:
- ldr r0, =0x00000113
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r0, =0x000008b3
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2630
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2606
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2606:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2630
- movs r4, 0xD7
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2630
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x2
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2630:
- movs r0, 0xB9
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- movs r0, 0x8E
- lsls r0, 4
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E2690
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2668
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2668:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E2690
- ldr r4, =0x000001db
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E2690
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x3
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E2690:
- ldr r0, =0x00000173
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r0, =0x000008d5
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E26EC
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E26C4
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E26C4:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E26EC
- ldr r4, =0x000001af
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E26EC
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x4
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E26EC:
- movs r0, 0xBC
- lsls r0, 1
- movs r1, 0x1
- bl CheckBagHasItem
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r0, =0x000008d6
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _080E274C
- ldr r2, =gSpecialVar_0x8004
- ldrh r0, [r2]
- cmp r0, 0
- bne _080E2722
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2722:
- ldrh r0, [r2]
- cmp r0, 0x1
- bne _080E274C
- movs r4, 0xD8
- lsls r4, 1
- adds r0, r4, 0
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- bne _080E274C
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x5
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r4, 0
- bl FlagSet
-_080E274C:
- ldr r0, =gUnknown_03001124
- adds r0, r5, r0
- movs r1, 0x6
- strb r1, [r0]
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- ldr r0, =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0
- bne _080E276E
- movs r0, 0xE8
- lsls r0, 1
- bl FlagGet
- lsls r0, 24
- lsrs r0, 24
-_080E276E:
- adds r7, r5, 0
- cmp r7, 0x7
- bne _080E27A4
- ldr r1, =gSpecialVar_0x8004
- movs r0, 0xB
- strh r0, [r1]
- bl sub_813A128
- b _080E2860
- .pool
-_080E27A4:
- movs r1, 0
- movs r4, 0
- lsls r6, r7, 25
- subs r0, r7, 0x1
- mov r9, r0
- ldr r5, =gUnknown_0858BB80
-_080E27B0:
- ldr r0, =gUnknown_03001124
- adds r0, r4, r0
- ldrb r0, [r0]
- cmp r0, 0xFF
- beq _080E27C6
- lsls r0, 2
- adds r0, r5
- ldr r0, [r0]
- bl display_text_and_get_width
- adds r1, r0, 0
-_080E27C6:
- adds r4, 0x1
- cmp r4, 0x6
- bls _080E27B0
- adds r0, r1, 0
- bl convert_pixel_width_to_tile_width
- adds r2, r0, 0
- lsls r2, 24
- lsrs r2, 24
- movs r0, 0x1C
- subs r0, r2
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0x6
- subs r1, r7
- lsls r1, 25
- lsrs r1, 24
- lsrs r3, r6, 24
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- movs r5, 0
- movs r4, 0
- ldr r0, =gUnknown_0858BB80
- mov r8, r0
-_080E2802:
- ldr r0, =gUnknown_03001124
- adds r1, r4, r0
- ldrb r0, [r1]
- cmp r0, 0xFF
- beq _080E2834
- lsls r0, 2
- add r0, r8
- ldr r2, [r0]
- lsls r0, r5, 4
- adds r0, 0x1
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- adds r0, r5, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
-_080E2834:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x6
- bls _080E2802
- mov r0, r9
- lsls r2, r0, 24
- lsrs r2, 24
- adds r0, r6, 0
- adds r1, r7, 0
- bl InitMenuInUpperLeftCornerPlaySoundWhenAPressed
- adds r0, r6, 0
- movs r1, 0x3
- bl CopyWindowToVram
- movs r0, 0
- adds r1, r7, 0
- adds r2, r6, 0
- movs r3, 0x8
- bl sub_80E1FBC
-_080E2860:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2578
-
- thumb_func_start sub_80E2878
-sub_80E2878: @ 80E2878
- push {lr}
- ldr r2, =gSpecialVar_Result
- ldrh r0, [r2]
- cmp r0, 0x7F
- beq _080E288C
- ldr r0, =gUnknown_03001124
- ldrh r1, [r2]
- adds r1, r0
- ldrb r0, [r1]
- strh r0, [r2]
-_080E288C:
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2878
-
- thumb_func_start task_picbox
-task_picbox: @ 80E2898
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _080E28F8
- cmp r0, 0x1
- bgt _080E28C0
- cmp r0, 0
- beq _080E28DE
- b _080E28F8
- .pool
-_080E28C0:
- cmp r0, 0x2
- beq _080E28CA
- cmp r0, 0x3
- beq _080E28EC
- b _080E28F8
-_080E28CA:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl FreeResourcesAndDestroySprite
-_080E28DE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _080E28F8
- .pool
-_080E28EC:
- ldrb r0, [r4, 0x12]
- bl sub_80E2A78
- adds r0, r5, 0
- bl DestroyTask
-_080E28F8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end task_picbox
-
- thumb_func_start ScriptMenu_ShowPokemonPic
-ScriptMenu_ShowPokemonPic: @ 80E2900
- push {r4-r7,lr}
- mov r7, r8
- push {r7}
- lsls r0, 16
- lsrs r0, 16
- mov r8, r0
- lsls r1, 24
- lsrs r7, r1, 24
- lsls r2, 24
- lsrs r6, r2, 24
- ldr r4, =task_picbox
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _080E29B8
- lsls r1, r7, 19
- movs r0, 0xA0
- lsls r0, 14
- adds r1, r0
- asrs r1, 16
- lsls r2, r6, 19
- adds r2, r0
- asrs r2, 16
- mov r0, r8
- movs r3, 0
- bl CreateMonSprite_PicBox
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r7, 0
- adds r1, r6, 0
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r1, =gTasks
- lsls r3, r4, 2
- adds r3, r4
- lsls r3, 3
- adds r3, r1
- lsls r0, 24
- lsrs r0, 24
- movs r1, 0
- strh r0, [r3, 0x12]
- strh r1, [r3, 0x8]
- mov r0, r8
- strh r0, [r3, 0xA]
- strh r5, [r3, 0xC]
- ldr r4, =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, =SpriteCallbackDummy
- str r2, [r0]
- adds r1, r4
- ldrb r2, [r1, 0x5]
- movs r0, 0xD
- negs r0, r0
- ands r0, r2
- strb r0, [r1, 0x5]
- ldrb r0, [r3, 0x12]
- movs r1, 0x1
- bl SetStandardWindowBorderStyle
- movs r0, 0
- bl schedule_bg_copy_tilemap_to_vram
- movs r0, 0x1
- b _080E29BA
- .pool
-_080E29B8:
- movs r0, 0
-_080E29BA:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_ShowPokemonPic
-
- thumb_func_start ScriptMenu_GetPicboxWaitFunc
-ScriptMenu_GetPicboxWaitFunc: @ 80E29C4
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _080E29F4
- ldr r0, =gTasks
- lsls r1, r2, 2
- adds r1, r2
- lsls r1, 3
- adds r1, r0
- ldrh r0, [r1, 0x8]
- adds r0, 0x1
- strh r0, [r1, 0x8]
- ldr r0, =sub_80E29FC
- b _080E29F6
- .pool
-_080E29F4:
- movs r0, 0
-_080E29F6:
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_GetPicboxWaitFunc
-
- thumb_func_start sub_80E29FC
-sub_80E29FC: @ 80E29FC
- push {lr}
- ldr r0, =task_picbox
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _080E2A14
- movs r0, 0
- b _080E2A16
- .pool
-_080E2A14:
- movs r0, 0x1
-_080E2A16:
- pop {r1}
- bx r1
- thumb_func_end sub_80E29FC
-
- thumb_func_start CreateWindowFromRect
-CreateWindowFromRect: @ 80E2A1C
- push {r4,r5,lr}
- sub sp, 0x20
- adds r4, r0, 0
- adds r5, r1, 0
- lsls r4, 24
- lsls r5, 24
- lsls r2, 24
- lsrs r2, 24
- lsls r3, 24
- lsrs r3, 24
- movs r0, 0x80
- lsls r0, 17
- adds r4, r0
- lsrs r4, 24
- adds r5, r0
- lsrs r5, 24
- str r2, [sp]
- str r3, [sp, 0x4]
- movs r0, 0xF
- str r0, [sp, 0x8]
- movs r0, 0x64
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl CreateWindowTemplate
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- str r0, [sp, 0x18]
- str r1, [sp, 0x1C]
- add r0, sp, 0x18
- bl AddWindow
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl PutWindowTilemap
- adds r0, r4, 0
- add sp, 0x20
- pop {r4,r5}
- pop {r1}
- bx r1
- thumb_func_end CreateWindowFromRect
-
- thumb_func_start sub_80E2A78
-sub_80E2A78: @ 80E2A78
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0x1
- bl sub_8198070
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_80E2A78
-
- thumb_func_start sub_80E2A94
-sub_80E2A94: @ 80E2A94
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- subs r0, 0x4A
- cmp r0, 0x5
- bhi _080E2B70
- lsls r0, 2
- ldr r1, =_080E2AB0
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .pool
- .align 2, 0
-_080E2AB0:
- .4byte _080E2B40
- .4byte _080E2B08
- .4byte _080E2AD8
- .4byte _080E2AC8
- .4byte _080E2AE8
- .4byte _080E2AF8
-_080E2AC8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBAC
- b _080E2B12
- .pool
-_080E2AD8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BB9C
- b _080E2B12
- .pool
-_080E2AE8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBBC
- b _080E2B12
- .pool
-_080E2AF8:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBCC
- b _080E2B12
- .pool
-_080E2B08:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBEC
-_080E2B12:
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
- b _080E2B70
- .pool
-_080E2B40:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, =gUnknown_0858BBE0
- bl GetMenuCursorPos
- lsls r0, 24
- lsrs r0, 22
- adds r0, r4
- ldr r2, [r0]
- movs r0, 0
- str r0, [sp]
- movs r0, 0x2
- str r0, [sp, 0x4]
- movs r0, 0x1
- str r0, [sp, 0x8]
- movs r0, 0x3
- str r0, [sp, 0xC]
- movs r0, 0
- movs r1, 0x1
- movs r3, 0
- bl AddTextPrinterParameterized2
-_080E2B70:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2A94
-
- thumb_func_start sp106_CreateStartMenu
-sp106_CreateStartMenu: @ 80E2B7C
- push {lr}
- ldr r0, =sub_80E2058
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _080E2BA4
- ldr r1, =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl CreateStartMenu
- movs r0, 0x1
- b _080E2BA6
- .pool
-_080E2BA4:
- movs r0, 0
-_080E2BA6:
- pop {r1}
- bx r1
- thumb_func_end sp106_CreateStartMenu
-
- thumb_func_start CreateStartMenu
-CreateStartMenu: @ 80E2BAC
- push {r4-r6,lr}
- sub sp, 0xC
- movs r0, 0x15
- movs r1, 0
- movs r2, 0x7
- movs r3, 0x12
- bl CreateWindowFromRect
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- movs r1, 0
- bl SetStandardWindowBorderStyle
- ldr r2, =gText_MenuOptionPokedex
- movs r0, 0x9
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r6, 0
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokemon
- movs r0, 0x19
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionBag
- movs r0, 0x29
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionPokenav
- movs r0, 0x39
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r0, =gSaveBlock2Ptr
- ldr r2, [r0]
- movs r0, 0x49
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionSave
- movs r0, 0x59
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionOption
- movs r0, 0x69
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- ldr r2, =gText_MenuOptionExit
- movs r0, 0x79
- str r0, [sp]
- str r5, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r3, 0x8
- bl AddTextPrinterParameterized
- movs r0, 0x10
- str r0, [sp]
- movs r0, 0x8
- str r0, [sp, 0x4]
- str r6, [sp, 0x8]
- adds r0, r4, 0
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x9
- bl sub_81983AC
- movs r0, 0
- movs r1, 0x8
- adds r2, r4, 0
- movs r3, 0x56
- bl sub_80E2CC4
- adds r0, r4, 0
- movs r1, 0x3
- bl CopyWindowToVram
- add sp, 0xC
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end CreateStartMenu
-
- thumb_func_start sub_80E2CC4
-sub_80E2CC4: @ 80E2CC4
- push {r4-r6,lr}
- adds r4, r0, 0
- adds r5, r2, 0
- adds r6, r3, 0
- lsls r4, 24
- lsrs r4, 24
- lsls r5, 24
- lsrs r5, 24
- lsls r6, 24
- lsrs r6, 24
- ldr r1, =gUnknown_02039F90
- movs r0, 0x2
- strb r0, [r1]
- ldr r0, =sub_80E2058
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r2, =gTasks
- lsls r1, r0, 2
- adds r1, r0
- lsls r1, 3
- adds r1, r2
- movs r0, 0
- strh r4, [r1, 0x10]
- strh r0, [r1, 0x12]
- strh r5, [r1, 0x14]
- strh r6, [r1, 0x16]
- pop {r4-r6}
- pop {r0}
- bx r0
- .pool
- thumb_func_end sub_80E2CC4
-
- thumb_func_start display_text_and_get_width_internal
-display_text_and_get_width_internal: @ 80E2D10
- push {lr}
- sub sp, 0x40
- adds r1, r0, 0
- mov r0, sp
- bl StringExpandPlaceholders
- movs r0, 0x1
- mov r1, sp
- movs r2, 0
- bl GetStringWidth
- add sp, 0x40
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width_internal
-
- thumb_func_start display_text_and_get_width
-display_text_and_get_width: @ 80E2D2C
- push {r4,lr}
- adds r4, r1, 0
- bl display_text_and_get_width_internal
- cmp r0, r4
- bge _080E2D3A
- adds r0, r4, 0
-_080E2D3A:
- pop {r4}
- pop {r1}
- bx r1
- thumb_func_end display_text_and_get_width
-
- thumb_func_start convert_pixel_width_to_tile_width
-convert_pixel_width_to_tile_width: @ 80E2D40
- push {lr}
- adds r1, r0, 0
- adds r0, 0x9
- cmp r0, 0
- bge _080E2D4C
- adds r0, 0x7
-_080E2D4C:
- asrs r0, 3
- adds r0, 0x1
- cmp r0, 0x1C
- ble _080E2D56
- movs r0, 0x1C
-_080E2D56:
- pop {r1}
- bx r1
- thumb_func_end convert_pixel_width_to_tile_width
-
- thumb_func_start sub_80E2D5C
-sub_80E2D5C: @ 80E2D5C
- push {lr}
- adds r2, r0, 0
- adds r0, r2, r1
- cmp r0, 0x1C
- ble _080E2D70
- movs r0, 0x1C
- subs r2, r0, r1
- cmp r2, 0
- bge _080E2D70
- movs r2, 0
-_080E2D70:
- adds r0, r2, 0
- pop {r1}
- bx r1
- thumb_func_end sub_80E2D5C
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/trade.s b/asm/trade.s
index f81d8c6b2..341aa0869 100644
--- a/asm/trade.s
+++ b/asm/trade.s
@@ -3349,7 +3349,7 @@ sub_8078EF8: @ 8078EF8
sub_8078F50: @ 8078F50
push {lr}
sub sp, 0x4
- bl Menu_ProcessInputNoWrapAround
+ bl Menu_ProcessInputNoWrap
lsls r0, 24
asrs r0, 24
movs r1, 0x1
@@ -3695,7 +3695,7 @@ _0807920E:
thumb_func_start sub_8079218
sub_8079218: @ 8079218
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
@@ -3797,7 +3797,7 @@ _080792D8:
thumb_func_start sub_80792E4
sub_80792E4: @ 80792E4
push {lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
asrs r1, r0, 24
cmp r1, 0
diff --git a/asm/use_pokeblock.s b/asm/use_pokeblock.s
index e04dedd9e..d294a2fae 100644
--- a/asm/use_pokeblock.s
+++ b/asm/use_pokeblock.s
@@ -900,7 +900,7 @@ sub_8166D44: @ 8166D44
thumb_func_start sub_8166DE4
sub_8166DE4: @ 8166DE4
push {r4,lr}
- bl Menu_ProcessInputNoWrap_
+ bl Menu_ProcessInputNoWrapClearOnChoose
lsls r0, 24
lsrs r4, r0, 24
asrs r1, r0, 24
diff --git a/data/event_scripts.s b/data/event_scripts.s
index d35feb111..8fb50a92b 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -1772,7 +1772,7 @@ EventScript_PC:: @ 8271D92
end
EventScript_271DAC:: @ 8271DAC
- message gUnknown_0827266F
+ message gText_WhichPCShouldBeAccessed
waitmessage
special ScrSpecial_CreatePCMenu
waitstate
@@ -3113,7 +3113,7 @@ Text_272640: @ 8272640
Text_27265A: @ 827265A
.string "{PLAYER} booted up the PC.$"
-gUnknown_0827266F:: @ 827266F
+gText_WhichPCShouldBeAccessed:: @ 827266F
.string "Which PC should be accessed?$"
gUnknown_0827268C:: @ 827268C
diff --git a/data/script_menu.s b/data/script_menu.s
deleted file mode 100644
index dbfb05621..000000000
--- a/data/script_menu.s
+++ /dev/null
@@ -1,780 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .section .rodata
-
-gUnknown_0858ABD8:: @ 858ABD8
- .4byte gUnknown_085EAD37, 0
- .4byte gUnknown_085EAD41, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858ABF0:: @ 58ABF0
- .4byte gUnknown_085EAD67, 0
- .4byte gUnknown_085EAD6D, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AC08:: @ 58AC08
- .4byte gUnknown_085EAD72, 0
- .4byte gUnknown_085EAD84, 0
- .4byte gUnknown_085EAD96, 0
- .4byte gText_Cancel2, 0
-
-gUnknown_0858AC28:: @ 58AC28
- .4byte gUnknown_085EADA4, 0
- .4byte gUnknown_085EADB5, 0
- .4byte gUnknown_085EADC4, 0
- .4byte gUnknown_085EADD5, 0
- .4byte gUnknown_085EADE7, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AC58:: @ 58AC58
- .4byte gUnknown_085EADF9, 0
- .4byte gUnknown_085EAE04, 0
- .4byte gUnknown_085EAE12, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AC78:: @ 58AC78
- .4byte gUnknown_085EADF9, 0
- .4byte gUnknown_085EAE04, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AC90:: @ 58AC90
- .4byte gMenuText_Register, 0
- .4byte gUnknown_085EAE12, 0
- .4byte gUnknown_085EAE1B, 0
- .4byte gText_Cancel2, 0
-
-gUnknown_0858ACB0:: @ 58ACB0
- .4byte gUnknown_085EAE27, 0
- .4byte gUnknown_085EAE2C, 0
-
-gUnknown_0858ACC0:: @ 58ACC0
- .4byte gUnknown_085EAE31, 0
- .4byte gUnknown_085EAE35, 0
- .4byte gUnknown_085EAE39, 0
- .4byte gUnknown_085EAE3D, 0
- .4byte gUnknown_085EAE41, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858ACF0:: @ 58ACF0
- .4byte gUnknown_085EAD5F, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AD00:: @ 58AD00
- .4byte gUnknown_085EAE53, 0
- .4byte gUnknown_085EAE5A, 0
-
-gUnknown_0858AD10:: @ 58AD10
- .4byte gText_Yes, 0
- .4byte gText_No, 0
- .4byte gUnknown_085EAD6D, 0
-
-gUnknown_0858AD28:: @ 58AD28
- .4byte gUnknown_085EAEA2, 0
- .4byte gUnknown_085EAEAC, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AD40:: @ 58AD40
- .4byte gText_Lv50, 0
- .4byte gText_OpenLevel, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AD58:: @ 58AD58
- .4byte gUnknown_0827ECBC, 0
- .4byte gUnknown_0827ECC3, 0
- .4byte gUnknown_0827ECCD, 0
-
-gUnknown_0858AD70:: @ 58AD70
- .4byte gUnknown_0827ECD5, 0
- .4byte gUnknown_0827ECDD, 0
- .4byte gUnknown_0827ECE3, 0
-
-gUnknown_0858AD88:: @ 58AD88
- .4byte gUnknown_0827ECEB, 0
- .4byte gUnknown_0827ECF2, 0
- .4byte gUnknown_0827ECF8, 0
-
-gUnknown_0858ADA0:: @ 58ADA0
- .4byte gUnknown_0827ED00, 0
- .4byte gUnknown_0827ED06, 0
- .4byte gUnknown_0827ED10, 0
-
-gUnknown_0858ADB8:: @ 58ADB8
- .4byte gUnknown_0827ED18, 0
- .4byte gUnknown_0827ED22, 0
- .4byte gUnknown_0827ED2C, 0
-
-gUnknown_0858ADD0:: @ 58ADD0
- .4byte gUnknown_0827ED36, 0
- .4byte gUnknown_0827ED40, 0
- .4byte gUnknown_0827ED46, 0
-
-gUnknown_0858ADE8:: @ 58ADE8
- .4byte gUnknown_0827ED4F, 0
- .4byte gUnknown_0827ED59, 0
- .4byte gUnknown_0827ED65, 0
-
-gUnknown_0858AE00:: @ 58AE00
- .4byte gUnknown_0827ED70, 0
- .4byte gUnknown_0827ED74, 0
- .4byte gUnknown_0827ED78, 0
-
-gUnknown_0858AE18:: @ 58AE18
- .4byte gUnknown_0827ED80, 0
- .4byte gUnknown_0827ED95, 0
- .4byte gUnknown_0827EDAA, 0
-
-gUnknown_0858AE30:: @ 58AE30
- .4byte gUnknown_0827EDB5, 0
- .4byte gUnknown_0827EDBA, 0
- .4byte gUnknown_0827EDC1, 0
-
-gUnknown_0858AE48:: @ 58AE48
- .4byte gUnknown_0827EDC9, 0
- .4byte gUnknown_0827EDD5, 0
- .4byte gUnknown_0827EDE4, 0
-
-gUnknown_0858AE60:: @ 58AE60
- .4byte gUnknown_0827EDF0, 0
- .4byte gUnknown_0827EDF5, 0
- .4byte gUnknown_0827EDF7, 0
-
-gUnknown_0858AE78:: @ 58AE78
- .4byte gUnknown_0827EDF9, 0
- .4byte gUnknown_0827EDFB, 0
- .4byte gUnknown_0827EDFD, 0
-
-gUnknown_0858AE90:: @ 58AE90
- .4byte gUnknown_0827EDFF, 0
- .4byte gUnknown_0827EE01, 0
- .4byte gUnknown_0827EE03, 0
-
-gUnknown_0858AEA8:: @ 58AEA8
- .4byte gUnknown_0827EE05, 0
- .4byte gUnknown_0827EE07, 0
- .4byte gUnknown_0827EE09, 0
-
-gUnknown_0858AEC0:: @ 58AEC0
- .4byte gUnknown_085EAEC3, 0
- .4byte gUnknown_085EAED6, 0
- .4byte gUnknown_085EAEE6, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AEE0:: @ 58AEE0
- .4byte gUnknown_085EAEF6, 0
- .4byte gUnknown_085EAF02, 0
- .4byte gUnknown_085EAF0E, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AF00:: @ 58AF00
- .4byte gUnknown_085EAF1B, 0
- .4byte gUnknown_085EAF24, 0
- .4byte gUnknown_085EAF2F, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AF20:: @ 58AF20
- .4byte gUnknown_085EAF34, 0
- .4byte gUnknown_085EAF3E, 0
-
-gUnknown_0858AF30:: @ 58AF30
- .4byte gUnknown_085EAF4B, 0
- .4byte gUnknown_085EAF58, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AF48:: @ 58AF48
- .4byte gUnknown_085EAF65, 0
- .4byte gUnknown_085EAF70, 0
- .4byte gUnknown_085EAF7D, 0
- .4byte gUnknown_085EAF87, 0
- .4byte gUnknown_085EAF93, 0
- .4byte gUnknown_085EAF9F, 0
- .4byte gUnknown_085EAFAB, 0
- .4byte gText_Cancel2, 0
-
-gUnknown_0858AF88:: @ 58AF88
- .4byte gUnknown_085EAFB6, 0
- .4byte gUnknown_085EAFCF, 0
- .4byte gUnknown_085EAFE8, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AFA8:: @ 58AFA8
- .4byte gUnknown_085EB089, 0
- .4byte gUnknown_085EB09C, 0
- .4byte gUnknown_085EB0AF, 0
- .4byte gUnknown_085EB0C2, 0
- .4byte gUnknown_085EB0D5, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AFD8:: @ 58AFD8
- .4byte gUnknown_085EB002, 0
- .4byte gUnknown_085EB017, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858AFF0:: @ 58AFF0
- .4byte gUnknown_085EB02A, 0
- .4byte gUnknown_085EB034, 0
-
-gUnknown_0858B000:: @ 58B000
- .4byte gText_LilycoveCity, 0
- .4byte gText_BattleFrontier, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B018:: @ 58B018
- .4byte gText_SlateportCity, 0
- .4byte gText_LilycoveCity, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B030:: @ 58B030
- .4byte gUnknown_085EB07E, 0
- .4byte gUnknown_085EB084, 0
-
-gUnknown_0858B040:: @ 58B040
- .4byte gText_LilycoveCity, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B050:: @ 58B050
- .4byte gText_5F, 0
- .4byte gText_4F, 0
- .4byte gText_3F, 0
- .4byte gText_2F, 0
- .4byte gText_1F, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B080:: @ 58B080
- .4byte gUnknown_085EB040, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B090:: @ 58B090
- .4byte gUnknown_085EB04A, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B0A0:: @ 58B0A0
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB04A, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B0B8:: @ 58B0B8
- .4byte gUnknown_085EB057, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B0C8:: @ 58B0C8
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB057, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B0E0:: @ 58B0E0
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB057, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B0F8:: @ 58B0F8
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB057, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B118:: @ 58B118
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B128:: @ 58B128
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B140:: @ 58B140
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B158:: @ 58B158
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B178:: @ 58B178
- .4byte gUnknown_085EB057, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B190:: @ 58B190
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB057, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B1B0:: @ 58B1B0
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB057, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B1D0:: @ 58B1D0
- .4byte gUnknown_085EB040, 0
- .4byte gUnknown_085EB04A, 0
- .4byte gUnknown_085EB057, 0
- .4byte gUnknown_085EB062, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B1F8:: @ 58B1F8
- .4byte gText_Opponent, 0
- .4byte gText_Tourney_Tree, 0
- .4byte gText_ReadyToStart, 0
- .4byte gUnknown_085EB5BC, 0
- .4byte gUnknown_085EB5C3, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B228:: @ 58B228
- .4byte gText_Opponent, 0
- .4byte gText_Tourney_Tree, 0
- .4byte gText_ReadyToStart, 0
- .4byte gUnknown_085EB5C3, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B250:: @ 58B250
- .4byte gUnknown_085EB29A, 0
- .4byte gUnknown_085EB2A3, 0
-
-gUnknown_0858B260:: @ 58B260
- .4byte gUnknown_085EB372, 0
- .4byte gUnknown_085EB37F, 0
- .4byte gUnknown_085EB389, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B280:: @ 58B280
- .4byte gText_Yes, 0
- .4byte gText_No, 0
- .4byte gUnknown_085EAD6D, 0
-
-gUnknown_0858B298:: @ 58B298
- .4byte gUnknown_085EAE6E, 0
- .4byte gUnknown_085EAE7C, 0
- .4byte gUnknown_085EAE8A, 0
- .4byte gUnknown_085EAD6D, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B2C0:: @ 58B2C0
- .4byte gUnknown_085EB372, 0
- .4byte gUnknown_085EB37F, 0
- .4byte gUnknown_085EB397, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B2E0:: @ 58B2E0
- .4byte gUnknown_085EB372, 0
- .4byte gUnknown_085EB37F, 0
- .4byte gUnknown_085EB389, 0
- .4byte gUnknown_085EB397, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B308:: @ 58B308
- .4byte gUnknown_085EB372, 0
- .4byte gUnknown_085EB37F, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B320:: @ 58B320
- .4byte gUnknown_085EB3A4, 0
- .4byte gUnknown_085EB3B1, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B338:: @ 58B338
- .4byte gUnknown_085EB3D4, 0
- .4byte gUnknown_085EB3C6, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B350:: @ 58B350
- .4byte gText_NormalRank, 0
- .4byte gText_SuperRank, 0
- .4byte gText_HyperRank, 0
- .4byte gText_MasterRank, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B378:: @ 58B378
- .4byte gText_BattleBag, 0
- .4byte gText_HeldItem, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B390:: @ 58B390
- .4byte gText_LinkContest, 0
- .4byte gText_AboutE_Mode, 0
- .4byte gText_AboutG_Mode, 0
- .4byte gText_Cancel2, 0
-
-gUnknown_0858B3B0:: @ 58B3B0
- .4byte gText_E_Mode, 0
- .4byte gText_G_Mode, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B3C8:: @ 58B3C8
- .4byte gText_MenuOptionPokedex, 0
- .4byte gText_MenuOptionPokemon, 0
- .4byte gText_MenuOptionBag, 0
- .4byte gText_MenuOptionPokenav, 0
- .4byte gUnknown_085EB278, 0
- .4byte gText_MenuOptionSave, 0
- .4byte gText_MenuOptionOption, 0
- .4byte gText_MenuOptionExit, 0
-
-gUnknown_0858B408:: @ 58B408
- .4byte gUnknown_085EB28A, 0
- .4byte gUnknown_085EB290, 0
- .4byte gUnknown_085EB295, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B428:: @ 58B428
- .4byte gText_SouthernIsland, 0
- .4byte gText_BirthIsland, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B440:: @ 58B440
- .4byte gText_SouthernIsland, 0
- .4byte gText_FarawayIsland, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B458:: @ 58B458
- .4byte gText_BirthIsland, 0
- .4byte gText_FarawayIsland, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B470:: @ 58B470
- .4byte gText_SouthernIsland, 0
- .4byte gText_BirthIsland, 0
- .4byte gText_FarawayIsland, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B490:: @ 58B490
- .4byte gUnknown_085EB2E4, 0
- .4byte gUnknown_085EB2F0, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B4A8:: @ 58B4A8
- .4byte gText_Yes, 0
- .4byte gUnknown_085EB2FC, 0
-
-gUnknown_0858B4B8:: @ 58B4B8
- .4byte gUnknown_085EB3DF, 0
- .4byte gUnknown_085EB3EA, 0
- .4byte gUnknown_085EB3F1, 0
- .4byte gUnknown_085EB3FC, 0
- .4byte gUnknown_085EB40A, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B4E8:: @ 58B4E8
- .4byte gUnknown_085EB415, 0
- .4byte gUnknown_085EB41D, 0
- .4byte gUnknown_085EB424, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B508:: @ 58B508
- .4byte gUnknown_085EB45C, 0
- .4byte gUnknown_085EB469, 0
- .4byte gUnknown_085EB475, 0
- .4byte gUnknown_085EB482, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B530:: @ 58B530
- .4byte gUnknown_085EB42F, 0
- .4byte gUnknown_085EB43A, 0
- .4byte gUnknown_085EB444, 0
- .4byte gUnknown_085EB451, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B558:: @ 58B558
- .4byte gUnknown_085EB48E, 0
- .4byte gUnknown_085EB496, 0
- .4byte gUnknown_085EB4A3, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B578:: @ 58B578
- .4byte gUnknown_085EB4AD, 0
- .4byte gUnknown_085EB4B9, 0
- .4byte gUnknown_085EB4C7, 0
- .4byte gUnknown_085EB4D4, 0
- .4byte gUnknown_085EB4E0, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B5A8:: @ 58B5A8
- .4byte gText_BattleBasics, 0
- .4byte gText_PokemonNature, 0
- .4byte gText_PokemonMoves, 0
- .4byte gText_Underpowered, 0
- .4byte gText_WhenInDanger, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B5D8:: @ 58B5D8
- .4byte gUnknown_085EB532, 0
- .4byte gUnknown_085EB543, 0
- .4byte gUnknown_085EB555, 0
- .4byte gUnknown_085EB563, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B600:: @ 58B600
- .4byte gUnknown_085EB56E, 0
- .4byte gUnknown_085EB57E, 0
- .4byte gUnknown_085EB589, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B620:: @ 58B620
- .4byte gUnknown_085EB5B6, 0
- .4byte gUnknown_085EB5BC, 0
- .4byte gUnknown_085EB5C3, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B640:: @ 58B640
- .4byte gUnknown_085EB5B6, 0
- .4byte gUnknown_085EB5C3, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B658:: @ 58B658
- .4byte gUnknown_085EB5B6, 0
- .4byte gUnknown_085EB5BC, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B670:: @ 58B670
- .4byte gUnknown_085EB5B6, 0
- .4byte gUnknown_085EB5C8, 0
-
-gUnknown_0858B680:: @ 58B680
- .4byte gUnknown_085EE14B, 0
- .4byte gUnknown_085EE14F, 0
-
-gUnknown_0858B690:: @ 58B690
- .4byte gUnknown_085EB2FF, 0
- .4byte gUnknown_085EB310, 0
- .4byte gUnknown_085EB317, 0
- .4byte gUnknown_085EB31F, 0
-
-gUnknown_0858B6B0:: @ 58B6B0
- .4byte gText_CaveOfOrigin, 0
- .4byte gText_MtPyre, 0
- .4byte gText_SkyPillar, 0
- .4byte gText_DontRemember, 0
-
-gUnknown_0858B6D0:: @ 58B6D0
- .4byte gUnknown_085EB4AD, 0
- .4byte gUnknown_085EB4B9, 0
- .4byte gUnknown_085EB4C7, 0
- .4byte gUnknown_085EB4D4, 0
- .4byte gUnknown_085EB597, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B700:: @ 58B700
- .4byte gText_BattleTrainers, 0
- .4byte gUnknown_085EB45C, 0
- .4byte gUnknown_085EB469, 0
- .4byte gUnknown_085EB475, 0
- .4byte gUnknown_085EB482, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B730:: @ 58B730
- .4byte gUnknown_085EB32D, 0
- .4byte gUnknown_085EB33E, 0
- .4byte gUnknown_085EB350, 0
- .4byte gUnknown_085EB361, 0
- .4byte gText_Exit, 0
-
-gUnknown_0858B758:: @ 58B758
- .4byte gText_Exit, 0
-
-
-gUnknown_0858B760:: @ 858B760
- .4byte gUnknown_0858ABD8, 3
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858ABF0, 3
- .4byte gUnknown_0858AC08, 4
- .4byte gUnknown_0858AC28, 6
- .4byte gUnknown_0858AC78, 3
- .4byte gUnknown_0858AC58, 4
- .4byte gUnknown_0858AC90, 4
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B4E8, 4
- .4byte gUnknown_0858ACB0, 2
- .4byte gUnknown_0858ACC0, 6
- .4byte gUnknown_0858ACF0, 2
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858AD00, 2
- .4byte gUnknown_0858B280, 3
- .4byte gUnknown_0858B298, 5
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858AD10, 3
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858AD28, 3
- .4byte gUnknown_0858AD40, 3
- .4byte gUnknown_0858AD58, 3
- .4byte gUnknown_0858AD70, 3
- .4byte gUnknown_0858AD88, 3
- .4byte gUnknown_0858ADA0, 3
- .4byte gUnknown_0858ADB8, 3
- .4byte gUnknown_0858ADD0, 3
- .4byte gUnknown_0858ADE8, 3
- .4byte gUnknown_0858AE00, 3
- .4byte gUnknown_0858AE18, 3
- .4byte gUnknown_0858AE30, 3
- .4byte gUnknown_0858AE48, 3
- .4byte gUnknown_0858AE60, 3
- .4byte gUnknown_0858AE78, 3
- .4byte gUnknown_0858AE90, 3
- .4byte gUnknown_0858AEA8, 3
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858AEC0, 4
- .4byte gUnknown_0858AEE0, 4
- .4byte gUnknown_0858AF00, 4
- .4byte gUnknown_0858AF20, 2
- .4byte gUnknown_0858AF30, 3
- .4byte gUnknown_0858AF48, 8
- .4byte gUnknown_0858AF88, 4
- .4byte gUnknown_0858AFD8, 3
- .4byte gUnknown_0858AFF0, 2
- .4byte gUnknown_0858B758, 1
- .4byte gUnknown_0858B000, 3
- .4byte gUnknown_0858B018, 3
- .4byte gUnknown_0858B030, 2
- .4byte gUnknown_0858AFA8, 6
- .4byte gUnknown_0858B040, 2
- .4byte gUnknown_0858B050, 6
- .4byte gUnknown_0858B080, 2
- .4byte gUnknown_0858B090, 2
- .4byte gUnknown_0858B0A0, 3
- .4byte gUnknown_0858B0B8, 2
- .4byte gUnknown_0858B0C8, 3
- .4byte gUnknown_0858B0E0, 3
- .4byte gUnknown_0858B0F8, 4
- .4byte gUnknown_0858B118, 2
- .4byte gUnknown_0858B128, 3
- .4byte gUnknown_0858B140, 3
- .4byte gUnknown_0858B158, 4
- .4byte gUnknown_0858B178, 3
- .4byte gUnknown_0858B190, 4
- .4byte gUnknown_0858B1B0, 4
- .4byte gUnknown_0858B1D0, 5
- .4byte gUnknown_0858B1F8, 6
- .4byte gUnknown_0858B308, 3
- .4byte gUnknown_0858B308, 3
- .4byte gUnknown_0858B260, 4
- .4byte gUnknown_0858B260, 4
- .4byte gUnknown_0858B2C0, 4
- .4byte gUnknown_0858B2E0, 5
- .4byte gUnknown_0858B320, 3
- .4byte gUnknown_0858B338, 3
- .4byte gUnknown_0858B350, 5
- .4byte gUnknown_0858B378, 3
- .4byte gUnknown_0858B390, 4
- .4byte gUnknown_0858B3B0, 3
- .4byte gUnknown_0858B3C8, 8
- .4byte gUnknown_0858B408, 4
- .4byte gUnknown_0858B250, 2
- .4byte gUnknown_0858B428, 3
- .4byte gUnknown_0858B440, 3
- .4byte gUnknown_0858B458, 3
- .4byte gUnknown_0858B470, 4
- .4byte gUnknown_0858B490, 3
- .4byte gUnknown_0858B4A8, 2
- .4byte gUnknown_0858B4B8, 6
- .4byte gUnknown_0858B508, 5
- .4byte gUnknown_0858B530, 5
- .4byte gUnknown_0858B558, 4
- .4byte gUnknown_0858B578, 6
- .4byte gUnknown_0858B5A8, 6
- .4byte gUnknown_0858B5D8, 5
- .4byte gUnknown_0858B600, 4
- .4byte gUnknown_0858B620, 4
- .4byte gUnknown_0858B640, 3
- .4byte gUnknown_0858B658, 3
- .4byte gUnknown_0858B670, 2
- .4byte gUnknown_0858B228, 5
- .4byte gUnknown_0858B680, 2
- .4byte gUnknown_0858B690, 4
- .4byte gUnknown_0858B6B0, 4
- .4byte gUnknown_0858B6D0, 6
- .4byte gUnknown_0858B700, 6
- .4byte gUnknown_0858B730, 5
-
-gUnknown_0858BAF0:: @ 858BAF0
- .4byte gText_Cool
- .4byte gText_Beauty
- .4byte gText_Cute
- .4byte gText_Smart
- .4byte gText_Tough
- .4byte gText_Normal
- .4byte gText_Super
- .4byte gText_Hyper
- .4byte gText_Master
- .4byte gText_Cool2
- .4byte gText_Beauty2
- .4byte gText_Cute2
- .4byte gText_Smart2
- .4byte gText_Tough2
- .4byte gText_Items
- .4byte gText_Key_Items
- .4byte gText_Poke_Balls
- .4byte gText_TMs_Hms
- .4byte gText_Berries2
- .4byte gText_Single2
- .4byte gText_Double2
- .4byte gText_Multi
- .4byte gText_MultiLink
- .4byte gText_BattleTower2
- .4byte gText_BattleDome
- .4byte gText_BattleFactory
- .4byte gText_BattlePalace
- .4byte gText_BattleArena
- .4byte gText_BattlePike
- .4byte gText_BattlePyramid
-
-gUnknown_0858BB68:: @ 858BB68
- .byte 0x4A, 0x4B, 0x4C, 0x4D, 0x4E, 0x4F
-
- .align 2
-gUnknown_0858BB70:: @ 858BB70
- .4byte gText_SomeonesPC
- .4byte gText_LanettesPC
- .4byte gText_PlayersPC
- .4byte gText_LogOff
-
-gUnknown_0858BB80:: @ 858BB80
- .4byte gText_SlateportCity
- .4byte gText_BattleFrontier
- .4byte gText_SouthernIsland
- .4byte gText_NavelRock
- .4byte gText_BirthIsland
- .4byte gText_FarawayIsland
- .4byte gText_Exit
-
-gUnknown_0858BB9C:: @ 858BB9C
- .4byte OldaleTown_PokemonCenter_2F_Text_277F1B
- .4byte OldaleTown_PokemonCenter_2F_Text_277F5A
- .4byte OldaleTown_PokemonCenter_2F_Text_277F96
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
-
-gUnknown_0858BBAC:: @ 858BBAC
- .4byte OldaleTown_PokemonCenter_2F_Text_27879F
- .4byte OldaleTown_PokemonCenter_2F_Text_2787D5
- .4byte OldaleTown_PokemonCenter_2F_Text_278831
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
-
-gUnknown_0858BBBC:: @ 858BBBC
- .4byte OldaleTown_PokemonCenter_2F_Text_27879F
- .4byte OldaleTown_PokemonCenter_2F_Text_2787D5
- .4byte OldaleTown_PokemonCenter_2F_Text_2787FC
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
-
-gUnknown_0858BBCC:: @ 858BBCC
- .4byte OldaleTown_PokemonCenter_2F_Text_27879F
- .4byte OldaleTown_PokemonCenter_2F_Text_2787D5
- .4byte OldaleTown_PokemonCenter_2F_Text_278831
- .4byte OldaleTown_PokemonCenter_2F_Text_2787FC
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
-
-gUnknown_0858BBE0:: @ 858BBE0
- .4byte OldaleTown_PokemonCenter_2F_Text_277F1B
- .4byte OldaleTown_PokemonCenter_2F_Text_277F5A
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
-
-gUnknown_0858BBEC:: @ 858BBEC
- .4byte OldaleTown_PokemonCenter_2F_Text_27879F
- .4byte OldaleTown_PokemonCenter_2F_Text_2787D5
- .4byte OldaleTown_PokemonCenter_2F_Text_27889C
diff --git a/include/field_effect.h b/include/field_effect.h
index e05ded621..3fa39aae0 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -237,5 +237,7 @@ void sub_80B7CAC(struct Sprite*);
void sub_80B7A58(struct Sprite*);
void MultiplyPaletteRGBComponents(u16 i, u8 r, u8 g, u8 b);
+void FreeResourcesAndDestroySprite(struct Sprite *sprite, u8 spriteId);
+u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/field_specials.h b/include/field_specials.h
index 50823ba7d..5adc7f3cb 100644
--- a/include/field_specials.h
+++ b/include/field_specials.h
@@ -15,6 +15,7 @@ bool32 sub_8138168(void);
bool32 sub_81381B0(void);
bool32 sub_81381F8(void);
bool32 CountSSTidalStep(u16 delta);
+void sub_813A128(void);
void sub_813A878(u8 a0);
#endif // GUARD_FIELD_SPECIALS_H
diff --git a/include/menu.h b/include/menu.h
index 842f33c0b..eb525efe9 100644
--- a/include/menu.h
+++ b/include/menu.h
@@ -31,7 +31,8 @@ void PrintPlayerNameOnWindow(u8, const u8*, u16, u16);
void DisplayItemMessageOnField(u8 taskId, const u8 *src, TaskFunc callback);
void sub_8197434(u8 windowId, bool8 copyToVram);
void SetStandardWindowBorderStyle(u8 a0, u8 a1);
-void sub_8197930(void);
+void DisplayYesNoMenu(void);
+u32 GetPlayerTextSpeed(void);
u8 GetPlayerTextSpeedDelay(void);
void sub_81978B0(u16 arg0);
void AddTextPrinterWithCallbackForMessage(bool8 a1, void (*callback)(struct TextPrinterTemplate *, u16));
@@ -43,8 +44,8 @@ void schedule_bg_copy_tilemap_to_vram(u8 bgNum);
void PrintMenuTable(u8 windowId, u8 itemCount, const struct MenuAction *strs);
u8 InitMenuInUpperLeftCornerPlaySoundWhenAPressed(u8 windowId, u8 numItems, u8 initialCursorPos);
u8 GetMenuCursorPos(void);
-s8 ProcessMenuInput(void);
-s8 Menu_ProcessInputNoWrapAround(void);
+s8 Menu_ProcessInput(void);
+s8 Menu_ProcessInputNoWrap(void);
void blit_move_info_icon(u8 winId, u8 a2, u16 x, u16 y);
void reset_temp_tile_data_buffers(void);
void *decompress_and_copy_tile_data_to_vram(u8 bgId, const void *src, int size, u16 offset, u8 mode);
@@ -52,7 +53,7 @@ bool8 free_temp_tile_data_buffers_if_possible(void);
struct WindowTemplate CreateWindowTemplate(u8 bg, u8 left, u8 top, u8 width, u8 height, u8 paletteNum, u16 baseBlock);
void CreateYesNoMenu(const struct WindowTemplate *windowTemplate, u16 borderFirstTileNum, u8 borderPalette, u8 initialCursorPos);
void DecompressAndLoadBgGfxUsingHeap(u8 bgId, const void *src, int size, u16 offset, u8 mode);
-s8 Menu_ProcessInputNoWrap_(void);
+s8 Menu_ProcessInputNoWrapClearOnChoose(void);
s8 ProcessMenuInput_other(void);
void do_scheduled_bg_tilemap_copies_to_vram(void);
void clear_scheduled_bg_copies_to_vram(void);
@@ -87,5 +88,7 @@ void sub_8199C30(u8 bgId, u8 left, u8 top, u8 width, u8 height, u8 palette);
void sub_8199D3C(void *ptr, int delta, int width, int height, bool32 is8BPP);
void sub_8198204(const u8 *string, const u8 *string2, u8 a3, u8 a4, bool8 copyToVram);
void sub_8197AE8(bool8 copyToVram);
+void sub_81997AC(u8 windowId, u8 a4, u8 a6, u8 a7, const struct MenuAction *strs);
+s8 Menu_ProcessInputGridLayout(void);
#endif // GUARD_MENU_H
diff --git a/include/script_menu.h b/include/script_menu.h
index 8870e80b9..a6d52c31e 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -1,7 +1,7 @@
#ifndef GUARD_SCRIPT_MENU_H
#define GUARD_SCRIPT_MENU_H
-extern const u8 *const gUnknown_0858BAF0[9];
+extern const u8 *const gUnknown_0858BAF0[];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
@@ -9,10 +9,10 @@ bool8 ScriptMenu_YesNo(u8 var1, u8 var2);
bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount);
bool8 ScriptMenu_ShowPokemonPic(u16 var1, u8 var2, u8 var3);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
-s32 convert_pixel_width_to_tile_width(s32);
+int convert_pixel_width_to_tile_width(int);
u8 CreateWindowFromRect(u8, u8, u8, u8);
void sub_80E2A78(u8);
-u32 display_text_and_get_width(const u8*, u32);
-u8 sub_80E2D5C(u8 arg0, u8 tileWidth);
+int display_text_and_get_width(const u8*, int);
+int sub_80E2D5C(int arg0, int tileWidth);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/strings.h b/include/strings.h
index 9338ae624..3746e459a 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -15,6 +15,28 @@ extern const u8 gText_Cute[];
extern const u8 gText_Smart[];
extern const u8 gText_Tough[];
+extern const u8 gText_Normal[];
+extern const u8 gText_Super[];
+extern const u8 gText_Hyper[];
+extern const u8 gText_Master[];
+
+extern const u8 gText_Cool2[];
+extern const u8 gText_Beauty2[];
+extern const u8 gText_Cute2[];
+extern const u8 gText_Smart2[];
+extern const u8 gText_Tough2[];
+
+extern const u8 gText_Items[];
+extern const u8 gText_Key_Items[];
+extern const u8 gText_Poke_Balls[];
+extern const u8 gText_TMs_Hms[];
+extern const u8 gText_Berries2[];
+
+extern const u8 gText_Single2[];
+extern const u8 gText_Double2[];
+extern const u8 gText_Multi[];
+extern const u8 gText_MultiLink[];
+
extern const u8 gText_Single[];
extern const u8 gText_Double[];
@@ -201,6 +223,14 @@ extern const u8 gText_Peak[];
extern const u8 gText_SafariBallStock[];
extern const u8 gText_BattlePyramidFloor[];
+extern const u8 gText_MenuOptionPokedex[];
+extern const u8 gText_MenuOptionPokemon[];
+extern const u8 gText_MenuOptionBag[];
+extern const u8 gText_MenuOptionPokenav[];
+extern const u8 gText_MenuOptionSave[];
+extern const u8 gText_MenuOptionOption[];
+extern const u8 gText_MenuOptionExit[];
+
// save menu texts
extern const u8 gText_ConfirmSave[];
extern const u8 gText_DifferentSaveFile[];
@@ -877,6 +907,237 @@ extern const u8 gText_PokemonOnHook[];
extern const u8 gText_NotEvenANibble[];
extern const u8 gText_ItGotAway[];
+extern const u8 gText_HallOfFame[];
+extern const u8 gText_LogOff[];
+extern const u8 gText_LanettesPC[];
+extern const u8 gText_SomeonesPC[];
+extern const u8 gText_PlayersPC[];
+extern const u8 gText_WhichPCShouldBeAccessed[];
+
+extern const u8 gUnknown_085EAD37[];
+extern const u8 gUnknown_085EAD41[];
+extern const u8 gUnknown_085EAD67[];
+extern const u8 gUnknown_085EAD6D[];
+extern const u8 gUnknown_085EAD72[];
+extern const u8 gUnknown_085EAD84[];
+extern const u8 gUnknown_085EAD96[];
+extern const u8 gUnknown_085EADA4[];
+extern const u8 gUnknown_085EADB5[];
+extern const u8 gUnknown_085EADC4[];
+extern const u8 gUnknown_085EADD5[];
+extern const u8 gUnknown_085EADE7[];
+extern const u8 gUnknown_085EADF9[];
+extern const u8 gUnknown_085EAE04[];
+extern const u8 gUnknown_085EAE12[];
+extern const u8 gUnknown_085EAE1B[];
+extern const u8 gUnknown_085EAE27[];
+extern const u8 gUnknown_085EAE2C[];
+extern const u8 gUnknown_085EAE31[];
+extern const u8 gUnknown_085EAE35[];
+extern const u8 gUnknown_085EAE39[];
+extern const u8 gUnknown_085EAE3D[];
+extern const u8 gUnknown_085EAE41[];
+extern const u8 gUnknown_085EAD5F[];
+extern const u8 gUnknown_085EAE53[];
+extern const u8 gUnknown_085EAE5A[];
+extern const u8 gText_Yes[];
+extern const u8 gText_No[];
+extern const u8 gUnknown_085EAEA2[];
+extern const u8 gUnknown_085EAEAC[];
+extern const u8 gUnknown_0827ECBC[];
+extern const u8 gUnknown_0827ECC3[];
+extern const u8 gUnknown_0827ECCD[];
+extern const u8 gUnknown_0827ECD5[];
+extern const u8 gUnknown_0827ECDD[];
+extern const u8 gUnknown_0827ECE3[];
+extern const u8 gUnknown_0827ECEB[];
+extern const u8 gUnknown_0827ECF2[];
+extern const u8 gUnknown_0827ECF8[];
+extern const u8 gUnknown_0827ED00[];
+extern const u8 gUnknown_0827ED06[];
+extern const u8 gUnknown_0827ED10[];
+extern const u8 gUnknown_0827ED18[];
+extern const u8 gUnknown_0827ED22[];
+extern const u8 gUnknown_0827ED2C[];
+extern const u8 gUnknown_0827ED36[];
+extern const u8 gUnknown_0827ED40[];
+extern const u8 gUnknown_0827ED46[];
+extern const u8 gUnknown_0827ED4F[];
+extern const u8 gUnknown_0827ED59[];
+extern const u8 gUnknown_0827ED65[];
+extern const u8 gUnknown_0827ED70[];
+extern const u8 gUnknown_0827ED74[];
+extern const u8 gUnknown_0827ED78[];
+extern const u8 gUnknown_0827ED80[];
+extern const u8 gUnknown_0827ED95[];
+extern const u8 gUnknown_0827EDAA[];
+extern const u8 gUnknown_0827EDB5[];
+extern const u8 gUnknown_0827EDBA[];
+extern const u8 gUnknown_0827EDC1[];
+extern const u8 gUnknown_0827EDC9[];
+extern const u8 gUnknown_0827EDD5[];
+extern const u8 gUnknown_0827EDE4[];
+extern const u8 gUnknown_0827EDF0[];
+extern const u8 gUnknown_0827EDF5[];
+extern const u8 gUnknown_0827EDF7[];
+extern const u8 gUnknown_0827EDF9[];
+extern const u8 gUnknown_0827EDFB[];
+extern const u8 gUnknown_0827EDFD[];
+extern const u8 gUnknown_0827EDFF[];
+extern const u8 gUnknown_0827EE01[];
+extern const u8 gUnknown_0827EE03[];
+extern const u8 gUnknown_0827EE05[];
+extern const u8 gUnknown_0827EE07[];
+extern const u8 gUnknown_0827EE09[];
+extern const u8 gUnknown_085EAEC3[];
+extern const u8 gUnknown_085EAED6[];
+extern const u8 gUnknown_085EAEE6[];
+extern const u8 gUnknown_085EAEF6[];
+extern const u8 gUnknown_085EAF02[];
+extern const u8 gUnknown_085EAF0E[];
+extern const u8 gUnknown_085EAF1B[];
+extern const u8 gUnknown_085EAF24[];
+extern const u8 gUnknown_085EAF2F[];
+extern const u8 gUnknown_085EAF34[];
+extern const u8 gUnknown_085EAF3E[];
+extern const u8 gUnknown_085EAF4B[];
+extern const u8 gUnknown_085EAF58[];
+extern const u8 gUnknown_085EAF65[];
+extern const u8 gUnknown_085EAF70[];
+extern const u8 gUnknown_085EAF7D[];
+extern const u8 gUnknown_085EAF87[];
+extern const u8 gUnknown_085EAF93[];
+extern const u8 gUnknown_085EAF9F[];
+extern const u8 gUnknown_085EAFAB[];
+extern const u8 gUnknown_085EAFB6[];
+extern const u8 gUnknown_085EAFCF[];
+extern const u8 gUnknown_085EAFE8[];
+extern const u8 gUnknown_085EB089[];
+extern const u8 gUnknown_085EB09C[];
+extern const u8 gUnknown_085EB0AF[];
+extern const u8 gUnknown_085EB0C2[];
+extern const u8 gUnknown_085EB0D5[];
+extern const u8 gUnknown_085EB002[];
+extern const u8 gUnknown_085EB017[];
+extern const u8 gUnknown_085EB02A[];
+extern const u8 gUnknown_085EB034[];
+extern const u8 gText_LilycoveCity[];
+extern const u8 gUnknown_085EB07E[];
+extern const u8 gUnknown_085EB084[];
+extern const u8 gUnknown_085EB040[];
+extern const u8 gUnknown_085EB04A[];
+extern const u8 gUnknown_085EB057[];
+extern const u8 gUnknown_085EB062[];
+extern const u8 gText_Opponent[];
+extern const u8 gText_Tourney_Tree[];
+extern const u8 gText_ReadyToStart[];
+extern const u8 gUnknown_085EB5BC[];
+extern const u8 gUnknown_085EB5C3[];
+extern const u8 gUnknown_085EB5C8[];
+extern const u8 gUnknown_085EB29A[];
+extern const u8 gUnknown_085EB2A3[];
+extern const u8 gUnknown_085EB372[];
+extern const u8 gUnknown_085EB37F[];
+extern const u8 gUnknown_085EB389[];
+extern const u8 gUnknown_085EAE6E[];
+extern const u8 gUnknown_085EAE7C[];
+extern const u8 gUnknown_085EAE8A[];
+extern const u8 gUnknown_085EAD6D[];
+extern const u8 gUnknown_085EB397[];
+extern const u8 gUnknown_085EB3A4[];
+extern const u8 gUnknown_085EB3B1[];
+extern const u8 gUnknown_085EB3D4[];
+extern const u8 gUnknown_085EB3C6[];
+extern const u8 gText_NormalRank[];
+extern const u8 gText_SuperRank[];
+extern const u8 gText_HyperRank[];
+extern const u8 gText_MasterRank[];
+extern const u8 gText_BattleBag[];
+extern const u8 gText_HeldItem[];
+extern const u8 gText_LinkContest[];
+extern const u8 gText_AboutE_Mode[];
+extern const u8 gText_AboutG_Mode[];
+extern const u8 gText_E_Mode[];
+extern const u8 gText_G_Mode[];
+extern const u8 gUnknown_085EB278[];
+extern const u8 gUnknown_085EB28A[];
+extern const u8 gUnknown_085EB290[];
+extern const u8 gUnknown_085EB295[];
+extern const u8 gUnknown_085EB2E4[];
+extern const u8 gUnknown_085EB2F0[];
+extern const u8 gUnknown_085EB2FC[];
+extern const u8 gUnknown_085EB3DF[];
+extern const u8 gUnknown_085EB3EA[];
+extern const u8 gUnknown_085EB3F1[];
+extern const u8 gUnknown_085EB3FC[];
+extern const u8 gUnknown_085EB40A[];
+extern const u8 gUnknown_085EB415[];
+extern const u8 gUnknown_085EB41D[];
+extern const u8 gUnknown_085EB424[];
+extern const u8 gUnknown_085EB45C[];
+extern const u8 gUnknown_085EB469[];
+extern const u8 gUnknown_085EB475[];
+extern const u8 gUnknown_085EB482[];
+extern const u8 gUnknown_085EB42F[];
+extern const u8 gUnknown_085EB43A[];
+extern const u8 gUnknown_085EB444[];
+extern const u8 gUnknown_085EB451[];
+extern const u8 gUnknown_085EB48E[];
+extern const u8 gUnknown_085EB496[];
+extern const u8 gUnknown_085EB4A3[];
+extern const u8 gUnknown_085EB4AD[];
+extern const u8 gUnknown_085EB4B9[];
+extern const u8 gUnknown_085EB4C7[];
+extern const u8 gUnknown_085EB4D4[];
+extern const u8 gUnknown_085EB4E0[];
+extern const u8 gUnknown_085EB532[];
+extern const u8 gUnknown_085EB543[];
+extern const u8 gUnknown_085EB555[];
+extern const u8 gUnknown_085EB563[];
+extern const u8 gUnknown_085EB56E[];
+extern const u8 gUnknown_085EB57E[];
+extern const u8 gUnknown_085EB589[];
+extern const u8 gUnknown_085EB5B6[];
+extern const u8 gUnknown_085EE14B[];
+extern const u8 gUnknown_085EE14F[];
+extern const u8 gUnknown_085EB2FF[];
+extern const u8 gUnknown_085EB310[];
+extern const u8 gUnknown_085EB317[];
+extern const u8 gUnknown_085EB31F[];
+extern const u8 gText_CaveOfOrigin[];
+extern const u8 gText_MtPyre[];
+extern const u8 gText_SkyPillar[];
+extern const u8 gText_DontRemember[];
+extern const u8 gUnknown_085EB597[];
+extern const u8 gUnknown_085EB32D[];
+extern const u8 gUnknown_085EB33E[];
+extern const u8 gUnknown_085EB350[];
+extern const u8 gUnknown_085EB361[];
+
+extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_277F96[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_278831[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787FC[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_277F1B[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_277F5A[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27879F[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_2787D5[];
+extern const u8 OldaleTown_PokemonCenter_2F_Text_27889C[];
+
// Frontier records.
extern const u8 gText_WinStreak[];
extern const u8 gText_Record[];
diff --git a/ld_script.txt b/ld_script.txt
index ae0e53e04..4177268bf 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -139,7 +139,7 @@ SECTIONS {
src/shop.o(.text);
src/fldeff_escalator.o(.text);
src/berry.o(.text);
- asm/script_menu.o(.text);
+ src/script_menu.o(.text);
src/naming_screen.o(.text);
src/money.o(.text);
src/contest_effect.o(.text);
@@ -462,7 +462,7 @@ SECTIONS {
src/shop.o(.rodata);
src/fldeff_escalator.o(.rodata);
src/berry.o(.rodata);
- data/script_menu.o(.rodata);
+ src/script_menu.o(.rodata);
src/naming_screen.o(.rodata);
src/money.o(.rodata);
src/contest_effect.o(.rodata);
diff --git a/src/apprentice.c b/src/apprentice.c
index 2feac49a7..fa4e08385 100644
--- a/src/apprentice.c
+++ b/src/apprentice.c
@@ -1579,9 +1579,9 @@ static void Task_ChooseAnswer(u8 taskId)
s16 *data = gTasks[taskId].data;
if (!tWrapAround)
- input = Menu_ProcessInputNoWrapAround();
+ input = Menu_ProcessInputNoWrap();
else
- input = ProcessMenuInput();
+ input = Menu_ProcessInput();
switch (input)
{
diff --git a/src/battle_pyramid_bag.c b/src/battle_pyramid_bag.c
index 98b7639bb..e0e35a69f 100644
--- a/src/battle_pyramid_bag.c
+++ b/src/battle_pyramid_bag.c
@@ -942,7 +942,7 @@ static void HandleFewMenuActionsInput(u8 taskId)
{
if (sub_81221EC() != TRUE)
{
- s32 id = Menu_ProcessInputNoWrapAround();
+ s32 id = Menu_ProcessInputNoWrap();
switch (id)
{
case -2:
diff --git a/src/berry_blender.c b/src/berry_blender.c
index f4ea78521..951c68bd1 100644
--- a/src/berry_blender.c
+++ b/src/berry_blender.c
@@ -2499,7 +2499,7 @@ static void CB2_HandleBlenderEndGame(void)
sBerryBlenderData->gameEndState++;
break;
case 10:
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 1:
case -1:
diff --git a/src/clear_save_data_screen.c b/src/clear_save_data_screen.c
index 51f3bd291..8da8502b3 100644
--- a/src/clear_save_data_screen.c
+++ b/src/clear_save_data_screen.c
@@ -86,7 +86,7 @@ static void Task_DoClearSaveDataScreenYesNo(u8 taskId)
static void Task_ClearSaveDataScreenYesNoChoice(u8 taskId)
{
- switch(Menu_ProcessInputNoWrap_())
+ switch(Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
FillWindowPixelBuffer(0, 17);
diff --git a/src/decoration.c b/src/decoration.c
index 8bbe11039..de85df968 100644
--- a/src/decoration.c
+++ b/src/decoration.c
@@ -520,7 +520,7 @@ void sub_8126B80(u8 taskId)
if (!gPaletteFade.active)
{
menuPos = GetMenuCursorPos();
- switch (ProcessMenuInput())
+ switch (Menu_ProcessInput())
{
default:
PlaySE(SE_SELECT);
@@ -710,7 +710,7 @@ void sub_8127088(u8 taskId)
if (!gPaletteFade.active)
{
- input = ProcessMenuInput();
+ input = Menu_ProcessInput();
switch (input)
{
case -1:
@@ -1628,7 +1628,7 @@ void sub_8128950(u8 taskId)
void sub_81289D0(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A72C4);
}
@@ -1693,7 +1693,7 @@ void sub_8128AAC(u8 taskId)
void sub_8128B80(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A72CC);
}
@@ -2588,7 +2588,7 @@ void sub_812A0E8(u8 taskId)
void sub_812A1A0(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A7348);
}
@@ -2601,7 +2601,7 @@ void sub_812A1C0(u8 taskId)
void sub_812A1F0(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A7350);
}
@@ -2725,7 +2725,7 @@ void sub_812A3D4(u8 taskId)
void sub_812A458(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_085A741C);
}
diff --git a/src/egg_hatch.c b/src/egg_hatch.c
index eeae72f36..43beef442 100644
--- a/src/egg_hatch.c
+++ b/src/egg_hatch.c
@@ -671,7 +671,7 @@ static void CB2_EggHatch_1(void)
}
break;
case 10:
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
GetMonNick(&gPlayerParty[sEggHatchData->eggPartyID], gStringVar3);
diff --git a/src/evolution_scene.c b/src/evolution_scene.c
index 87866df5c..c1d2ce59e 100644
--- a/src/evolution_scene.c
+++ b/src/evolution_scene.c
@@ -1218,7 +1218,7 @@ static void Task_TradeEvolutionScene(u8 taskID)
}
break;
case 4:
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
sEvoCursorPos = 0;
diff --git a/src/field_effect.c b/src/field_effect.c
index e7ecca183..467acb367 100644
--- a/src/field_effect.c
+++ b/src/field_effect.c
@@ -553,18 +553,18 @@ u8 AddNewGameBirchObject(s16 x, s16 y, u8 subpriority)
}
#ifdef NONMATCHING
-u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
+u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
{
u16 spriteId = CreateMonPicSprite_HandleDeoxys(species, 0, 0x8000, 1, x, y, 0, gMonPaletteTable[species].tag);
PreservePaletteInWeather(IndexOfSpritePaletteTag(gMonPaletteTable[species].tag) + 0x10);
if (spriteId == 0xFFFF)
- return 0x40;
+ return MAX_SPRITES;
return spriteId;
}
#else
NAKED
-u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y)
+u8 CreateMonSprite_PicBox(u16 species, s16 x, s16 y, u8 subpriority)
{
asm_unified("push {r4,r5,lr}\n\
sub sp, 0x10\n\
diff --git a/src/item_menu.c b/src/item_menu.c
index 0c3e26354..0cbcc13d0 100755
--- a/src/item_menu.c
+++ b/src/item_menu.c
@@ -1545,7 +1545,7 @@ void Task_HandleInBattleItemMenuInput(u8 taskId)
{
if (sub_81221EC() != TRUE)
{
- s8 r4 = Menu_ProcessInputNoWrapAround();
+ s8 r4 = Menu_ProcessInputNoWrap();
switch (r4)
{
case -2:
diff --git a/src/learn_move.c b/src/learn_move.c
index ff23cb3dc..7717a5193 100644
--- a/src/learn_move.c
+++ b/src/learn_move.c
@@ -377,7 +377,7 @@ static void LearnMoveMain(void)
break;
case 9:
{
- s8 selection = Menu_ProcessInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrapClearOnChoose();
if (selection == 0)
{
@@ -414,7 +414,7 @@ static void LearnMoveMain(void)
break;
case 13:
{
- s8 selection = Menu_ProcessInputNoWrap_();
+ s8 selection = Menu_ProcessInputNoWrapClearOnChoose();
if (selection == 0)
{
@@ -447,7 +447,7 @@ static void LearnMoveMain(void)
break;
case 18:
{
- s8 var = Menu_ProcessInputNoWrap_();
+ s8 var = Menu_ProcessInputNoWrapClearOnChoose();
if (var == 0)
{
@@ -474,7 +474,7 @@ static void LearnMoveMain(void)
break;
case 26:
{
- s8 var = Menu_ProcessInputNoWrap_();
+ s8 var = Menu_ProcessInputNoWrapClearOnChoose();
if (var == 0)
{
diff --git a/src/main_menu.c b/src/main_menu.c
index 224958bd9..a8383cd0c 100644
--- a/src/main_menu.c
+++ b/src/main_menu.c
@@ -1501,7 +1501,7 @@ static void Task_NewGameBirchSpeech_CreateNameYesNo(u8 taskId)
static void Task_NewGameBirchSpeech_ProcessNameYesNoMenu(u8 taskId)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
PlaySE(SE_SELECT);
@@ -1976,7 +1976,7 @@ static void NewGameBirchSpeech_ShowGenderMenu(void)
static s8 NewGameBirchSpeech_ProcessGenderMenuInput(void)
{
- return Menu_ProcessInputNoWrapAround();
+ return Menu_ProcessInputNoWrap();
}
static void NewGameBirchSpeech_SetDefaultPlayerName(u8 nameId)
diff --git a/src/mauville_old_man.c b/src/mauville_old_man.c
index cc4228949..110ec068e 100644
--- a/src/mauville_old_man.c
+++ b/src/mauville_old_man.c
@@ -1179,7 +1179,7 @@ static void Task_StoryListMenu(u8 taskId) // Task_StoryListMenu
task->data[0]++;
break;
case 1:
- selection = ProcessMenuInput();
+ selection = Menu_ProcessInput();
if (selection == -2)
break;
if (selection == -1 || selection == GetFreeStorySlot())
diff --git a/src/menu.c b/src/menu.c
index 6687ff2a2..dde0e0a1a 100644
--- a/src/menu.c
+++ b/src/menu.c
@@ -458,7 +458,7 @@ void DisplayItemMessageOnField(u8 taskId, const u8 *string, TaskFunc callback)
CopyWindowToVram(0, 3);
}
-void sub_8197930(void)
+void DisplayYesNoMenu(void)
{
CreateYesNoMenu(&gUnknown_0860F0A8, STD_WINDOW_BASE_TILE_NUM, STD_WINDOW_PALETTE_NUM, 0);
}
@@ -972,7 +972,7 @@ u8 GetMenuCursorPos(void)
return gUnknown_0203CD90.cursorPos;
}
-s8 ProcessMenuInput(void)
+s8 Menu_ProcessInput(void)
{
if (gMain.newKeys & A_BUTTON)
{
@@ -1000,7 +1000,7 @@ s8 ProcessMenuInput(void)
return MENU_NOTHING_CHOSEN;
}
-s8 Menu_ProcessInputNoWrapAround(void)
+s8 Menu_ProcessInputNoWrap(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
@@ -1201,9 +1201,9 @@ void sub_8198C34(const struct WindowTemplate *window, u8 fontId, u16 baseTileNum
sub_8198AF8(window, fontId, 0, 1, baseTileNum, paletteNum, 0);
}
-s8 Menu_ProcessInputNoWrap_(void)
+s8 Menu_ProcessInputNoWrapClearOnChoose(void)
{
- s8 result = Menu_ProcessInputNoWrapAround();
+ s8 result = Menu_ProcessInputNoWrap();
if (result != MENU_NOTHING_CHOSEN)
sub_8198C78();
return result;
@@ -1447,7 +1447,7 @@ s8 sub_8199284(void)
return MENU_NOTHING_CHOSEN;
}
-s8 sub_8199334(void)
+s8 Menu_ProcessInputGridLayout(void)
{
u8 oldPos = gUnknown_0203CD90.cursorPos;
diff --git a/src/menu_helpers.c b/src/menu_helpers.c
index 8bd53ab85..a3c0be36a 100644
--- a/src/menu_helpers.c
+++ b/src/menu_helpers.c
@@ -167,7 +167,7 @@ void CreateYesNoMenuWithCallbacks(u8 taskId, const struct WindowTemplate *templa
static void Task_CallYesOrNoCallback(u8 taskId)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
PlaySE(SE_SELECT);
diff --git a/src/overworld.c b/src/overworld.c
index cc945dea2..4787a4344 100644
--- a/src/overworld.c
+++ b/src/overworld.c
@@ -3144,7 +3144,7 @@ static void CreateLinkPlayerSprite(u8 linkPlayerId, u8 gameVersion)
eventObj->spriteId = AddPseudoEventObject(GetRSAvatarGraphicsIdByGender(eventObj->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
break;
case VERSION_EMERALD:
- eventObj->spriteId = AddPseudoEventObject(GetRivalAvatarGraphicsIdByStateIdAndGender(0, eventObj->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
+ eventObj->spriteId = AddPseudoEventObject(GetRivalAvatarGraphicsIdByStateIdAndGender(PLAYER_AVATAR_STATE_NORMAL, eventObj->singleMovementActive), SpriteCB_LinkPlayer, 0, 0, 0);
break;
}
diff --git a/src/player_pc.c b/src/player_pc.c
index 7a8b4192b..d21ffdb62 100644
--- a/src/player_pc.c
+++ b/src/player_pc.c
@@ -352,9 +352,9 @@ static void PlayerPCProcessMenuInput(u8 taskId)
data = gTasks[taskId].data;
if(gPcItemMenuOptionsNum > 3)
- inputOptionId = ProcessMenuInput();
+ inputOptionId = Menu_ProcessInput();
else
- inputOptionId = Menu_ProcessInputNoWrapAround();
+ inputOptionId = Menu_ProcessInputNoWrap();
switch(inputOptionId)
{
@@ -463,7 +463,7 @@ static void ItemStorageMenuProcessInput(u8 taskId)
s8 inputOptionId;
r5 = GetMenuCursorPos();
- inputOptionId = ProcessMenuInput();
+ inputOptionId = Menu_ProcessInput();
r2 = GetMenuCursorPos();
switch(inputOptionId)
{
@@ -762,13 +762,13 @@ static void Mailbox_MoveToBag(u8 taskId)
static void Mailbox_DrawYesNoBeforeMove(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
gTasks[taskId].func = Mailbox_MoveToBagYesNoPrompt;
}
static void Mailbox_MoveToBagYesNoPrompt(u8 taskId)
{
- switch(Menu_ProcessInputNoWrap_())
+ switch(Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
Mailbox_DoMailMoveToBag(taskId);
diff --git a/src/pokeblock.c b/src/pokeblock.c
index 1ca89d5de..c8f2c67ed 100644
--- a/src/pokeblock.c
+++ b/src/pokeblock.c
@@ -1139,7 +1139,7 @@ static void Task_HandlePokeblockOptionsInput(u8 taskId)
if (sub_81221EC() == TRUE)
return;
- itemId = Menu_ProcessInputNoWrapAround();
+ itemId = Menu_ProcessInputNoWrap();
if (itemId == MENU_NOTHING_CHOSEN)
{
return;
diff --git a/src/pokemon_storage_system.c b/src/pokemon_storage_system.c
index 031f704a4..c102b570a 100644
--- a/src/pokemon_storage_system.c
+++ b/src/pokemon_storage_system.c
@@ -270,7 +270,7 @@ void Task_PokemonStorageSystem(u8 taskId)
}
break;
case 2:
- task->data[2] = ProcessMenuInput();
+ task->data[2] = Menu_ProcessInput();
switch(task->data[2])
{
case -2:
diff --git a/src/post_battle_event_funcs.c b/src/post_battle_event_funcs.c
index f15396102..9765ef5b6 100644
--- a/src/post_battle_event_funcs.c
+++ b/src/post_battle_event_funcs.c
@@ -18,7 +18,6 @@ int GameClear(void)
u8 partyIndex;
u8 count;
} ribbonCounts[6];
- s8 val;
HealPlayerParty();
diff --git a/src/script_menu.c b/src/script_menu.c
index 04f1e82b7..14682af2b 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -1,16 +1,1925 @@
-
-// Includes
#include "global.h"
+#include "main.h"
+#include "event_data.h"
+#include "field_effect.h"
+#include "field_specials.h"
+#include "item.h"
+#include "menu.h"
+#include "palette.h"
+#include "script.h"
+#include "script_menu.h"
+#include "sound.h"
+#include "string_util.h"
+#include "strings.h"
+#include "task.h"
+#include "text.h"
+#include "constants/items.h"
+#include "constants/songs.h"
+
+// multichoice lists
+const struct MenuAction MultichoiceList_000[] =
+{
+ {gUnknown_085EAD37, NULL},
+ {gUnknown_085EAD41, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_002[] =
+{
+ {gUnknown_085EAD67, NULL},
+ {gUnknown_085EAD6D, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_003[] =
+{
+ {gUnknown_085EAD72, NULL},
+ {gUnknown_085EAD84, NULL},
+ {gUnknown_085EAD96, NULL},
+ {gText_Cancel2, NULL},
+};
+
+const struct MenuAction MultichoiceList_004[] =
+{
+ {gUnknown_085EADA4, NULL},
+ {gUnknown_085EADB5, NULL},
+ {gUnknown_085EADC4, NULL},
+ {gUnknown_085EADD5, NULL},
+ {gUnknown_085EADE7, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_006[] =
+{
+ {gUnknown_085EADF9, NULL},
+ {gUnknown_085EAE04, NULL},
+ {gUnknown_085EAE12, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_005[] =
+{
+ {gUnknown_085EADF9, NULL},
+ {gUnknown_085EAE04, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_007[] =
+{
+ {gMenuText_Register, NULL},
+ {gUnknown_085EAE12, NULL},
+ {gUnknown_085EAE1B, NULL},
+ {gText_Cancel2, NULL},
+};
+
+const struct MenuAction MultichoiceList_012[] =
+{
+ {gUnknown_085EAE27, NULL},
+ {gUnknown_085EAE2C, NULL},
+};
+
+const struct MenuAction MultichoiceList_013[] =
+{
+ {gUnknown_085EAE31, NULL},
+ {gUnknown_085EAE35, NULL},
+ {gUnknown_085EAE39, NULL},
+ {gUnknown_085EAE3D, NULL},
+ {gUnknown_085EAE41, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_014[] =
+{
+ {gUnknown_085EAD5F, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_016[] =
+{
+ {gUnknown_085EAE53, NULL},
+ {gUnknown_085EAE5A, NULL},
+};
+
+const struct MenuAction MultichoiceList_020[] =
+{
+ {gText_Yes, NULL},
+ {gText_No, NULL},
+ {gUnknown_085EAD6D, NULL},
+};
+
+const struct MenuAction MultichoiceList_023[] =
+{
+ {gUnknown_085EAEA2, NULL},
+ {gUnknown_085EAEAC, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_024[] =
+{
+ {gText_Lv50, NULL},
+ {gText_OpenLevel, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_025[] =
+{
+ {gUnknown_0827ECBC, NULL},
+ {gUnknown_0827ECC3, NULL},
+ {gUnknown_0827ECCD, NULL},
+};
+
+const struct MenuAction MultichoiceList_026[] =
+{
+ {gUnknown_0827ECD5, NULL},
+ {gUnknown_0827ECDD, NULL},
+ {gUnknown_0827ECE3, NULL},
+};
+
+const struct MenuAction MultichoiceList_027[] =
+{
+ {gUnknown_0827ECEB, NULL},
+ {gUnknown_0827ECF2, NULL},
+ {gUnknown_0827ECF8, NULL},
+};
+
+const struct MenuAction MultichoiceList_028[] =
+{
+ {gUnknown_0827ED00, NULL},
+ {gUnknown_0827ED06, NULL},
+ {gUnknown_0827ED10, NULL},
+};
+
+const struct MenuAction MultichoiceList_029[] =
+{
+ {gUnknown_0827ED18, NULL},
+ {gUnknown_0827ED22, NULL},
+ {gUnknown_0827ED2C, NULL},
+};
+
+const struct MenuAction MultichoiceList_030[] =
+{
+ {gUnknown_0827ED36, NULL},
+ {gUnknown_0827ED40, NULL},
+ {gUnknown_0827ED46, NULL},
+};
+
+const struct MenuAction MultichoiceList_031[] =
+{
+ {gUnknown_0827ED4F, NULL},
+ {gUnknown_0827ED59, NULL},
+ {gUnknown_0827ED65, NULL},
+};
+
+const struct MenuAction MultichoiceList_032[] =
+{
+ {gUnknown_0827ED70, NULL},
+ {gUnknown_0827ED74, NULL},
+ {gUnknown_0827ED78, NULL},
+};
+
+const struct MenuAction MultichoiceList_033[] =
+{
+ {gUnknown_0827ED80, NULL},
+ {gUnknown_0827ED95, NULL},
+ {gUnknown_0827EDAA, NULL},
+};
+
+const struct MenuAction MultichoiceList_034[] =
+{
+ {gUnknown_0827EDB5, NULL},
+ {gUnknown_0827EDBA, NULL},
+ {gUnknown_0827EDC1, NULL},
+};
+
+const struct MenuAction MultichoiceList_035[] =
+{
+ {gUnknown_0827EDC9, NULL},
+ {gUnknown_0827EDD5, NULL},
+ {gUnknown_0827EDE4, NULL},
+};
+
+const struct MenuAction MultichoiceList_036[] =
+{
+ {gUnknown_0827EDF0, NULL},
+ {gUnknown_0827EDF5, NULL},
+ {gUnknown_0827EDF7, NULL},
+};
+
+const struct MenuAction MultichoiceList_037[] =
+{
+ {gUnknown_0827EDF9, NULL},
+ {gUnknown_0827EDFB, NULL},
+ {gUnknown_0827EDFD, NULL},
+};
+
+const struct MenuAction MultichoiceList_038[] =
+{
+ {gUnknown_0827EDFF, NULL},
+ {gUnknown_0827EE01, NULL},
+ {gUnknown_0827EE03, NULL},
+};
+
+const struct MenuAction MultichoiceList_039[] =
+{
+ {gUnknown_0827EE05, NULL},
+ {gUnknown_0827EE07, NULL},
+ {gUnknown_0827EE09, NULL},
+};
+
+const struct MenuAction MultichoiceList_042[] =
+{
+ {gUnknown_085EAEC3, NULL},
+ {gUnknown_085EAED6, NULL},
+ {gUnknown_085EAEE6, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_043[] =
+{
+ {gUnknown_085EAEF6, NULL},
+ {gUnknown_085EAF02, NULL},
+ {gUnknown_085EAF0E, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_044[] =
+{
+ {gUnknown_085EAF1B, NULL},
+ {gUnknown_085EAF24, NULL},
+ {gUnknown_085EAF2F, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_045[] =
+{
+ {gUnknown_085EAF34, NULL},
+ {gUnknown_085EAF3E, NULL},
+};
+
+const struct MenuAction MultichoiceList_046[] =
+{
+ {gUnknown_085EAF4B, NULL},
+ {gUnknown_085EAF58, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_047[] =
+{
+ {gUnknown_085EAF65, NULL},
+ {gUnknown_085EAF70, NULL},
+ {gUnknown_085EAF7D, NULL},
+ {gUnknown_085EAF87, NULL},
+ {gUnknown_085EAF93, NULL},
+ {gUnknown_085EAF9F, NULL},
+ {gUnknown_085EAFAB, NULL},
+ {gText_Cancel2, NULL},
+};
+
+const struct MenuAction MultichoiceList_048[] =
+{
+ {gUnknown_085EAFB6, NULL},
+ {gUnknown_085EAFCF, NULL},
+ {gUnknown_085EAFE8, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_055[] =
+{
+ {gUnknown_085EB089, NULL},
+ {gUnknown_085EB09C, NULL},
+ {gUnknown_085EB0AF, NULL},
+ {gUnknown_085EB0C2, NULL},
+ {gUnknown_085EB0D5, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_049[] =
+{
+ {gUnknown_085EB002, NULL},
+ {gUnknown_085EB017, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_050[] =
+{
+ {gUnknown_085EB02A, NULL},
+ {gUnknown_085EB034, NULL},
+};
+
+const struct MenuAction MultichoiceList_052[] =
+{
+ {gText_LilycoveCity, NULL},
+ {gText_BattleFrontier, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_053[] =
+{
+ {gText_SlateportCity, NULL},
+ {gText_LilycoveCity, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_054[] =
+{
+ {gUnknown_085EB07E, NULL},
+ {gUnknown_085EB084, NULL},
+};
+
+const struct MenuAction MultichoiceList_056[] =
+{
+ {gText_LilycoveCity, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_057[] =
+{
+ {gText_5F, NULL},
+ {gText_4F, NULL},
+ {gText_3F, NULL},
+ {gText_2F, NULL},
+ {gText_1F, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_058[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_059[] =
+{
+ {gUnknown_085EB04A, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_060[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB04A, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_061[] =
+{
+ {gUnknown_085EB057, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_062[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB057, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_063[] =
+{
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB057, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_064[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB057, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_065[] =
+{
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_066[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_067[] =
+{
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_068[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_069[] =
+{
+ {gUnknown_085EB057, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_070[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB057, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_071[] =
+{
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB057, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_072[] =
+{
+ {gUnknown_085EB040, NULL},
+ {gUnknown_085EB04A, NULL},
+ {gUnknown_085EB057, NULL},
+ {gUnknown_085EB062, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_073[] =
+{
+ {gText_Opponent, NULL},
+ {gText_Tourney_Tree, NULL},
+ {gText_ReadyToStart, NULL},
+ {gUnknown_085EB5BC, NULL},
+ {gUnknown_085EB5C3, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_107[] =
+{
+ {gText_Opponent, NULL},
+ {gText_Tourney_Tree, NULL},
+ {gText_ReadyToStart, NULL},
+ {gUnknown_085EB5C3, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_088[] =
+{
+ {gUnknown_085EB29A, NULL},
+ {gUnknown_085EB2A3, NULL},
+};
+
+const struct MenuAction MultichoiceList_076[] =
+{
+ {gUnknown_085EB372, NULL},
+ {gUnknown_085EB37F, NULL},
+ {gUnknown_085EB389, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_017[] =
+{
+ {gText_Yes, NULL},
+ {gText_No, NULL},
+ {gUnknown_085EAD6D, NULL},
+};
+
+const struct MenuAction MultichoiceList_018[] =
+{
+ {gUnknown_085EAE6E, NULL},
+ {gUnknown_085EAE7C, NULL},
+ {gUnknown_085EAE8A, NULL},
+ {gUnknown_085EAD6D, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_078[] =
+{
+ {gUnknown_085EB372, NULL},
+ {gUnknown_085EB37F, NULL},
+ {gUnknown_085EB397, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_079[] =
+{
+ {gUnknown_085EB372, NULL},
+ {gUnknown_085EB37F, NULL},
+ {gUnknown_085EB389, NULL},
+ {gUnknown_085EB397, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_074[] =
+{
+ {gUnknown_085EB372, NULL},
+ {gUnknown_085EB37F, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_080[] =
+{
+ {gUnknown_085EB3A4, NULL},
+ {gUnknown_085EB3B1, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_081[] =
+{
+ {gUnknown_085EB3D4, NULL},
+ {gUnknown_085EB3C6, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_082[] =
+{
+ {gText_NormalRank, NULL},
+ {gText_SuperRank, NULL},
+ {gText_HyperRank, NULL},
+ {gText_MasterRank, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_083[] =
+{
+ {gText_BattleBag, NULL},
+ {gText_HeldItem, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_084[] =
+{
+ {gText_LinkContest, NULL},
+ {gText_AboutE_Mode, NULL},
+ {gText_AboutG_Mode, NULL},
+ {gText_Cancel2, NULL},
+};
+
+const struct MenuAction MultichoiceList_085[] =
+{
+ {gText_E_Mode, NULL},
+ {gText_G_Mode, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_086[] =
+{
+ {gText_MenuOptionPokedex, NULL},
+ {gText_MenuOptionPokemon, NULL},
+ {gText_MenuOptionBag, NULL},
+ {gText_MenuOptionPokenav, NULL},
+ {gUnknown_085EB278, NULL},
+ {gText_MenuOptionSave, NULL},
+ {gText_MenuOptionOption, NULL},
+ {gText_MenuOptionExit, NULL},
+};
+
+const struct MenuAction MultichoiceList_087[] =
+{
+ {gUnknown_085EB28A, NULL},
+ {gUnknown_085EB290, NULL},
+ {gUnknown_085EB295, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_089[] =
+{
+ {gText_SouthernIsland, NULL},
+ {gText_BirthIsland, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_090[] =
+{
+ {gText_SouthernIsland, NULL},
+ {gText_FarawayIsland, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_091[] =
+{
+ {gText_BirthIsland, NULL},
+ {gText_FarawayIsland, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_092[] =
+{
+ {gText_SouthernIsland, NULL},
+ {gText_BirthIsland, NULL},
+ {gText_FarawayIsland, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_093[] =
+{
+ {gUnknown_085EB2E4, NULL},
+ {gUnknown_085EB2F0, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_094[] =
+{
+ {gText_Yes, NULL},
+ {gUnknown_085EB2FC, NULL},
+};
+
+const struct MenuAction MultichoiceList_095[] =
+{
+ {gUnknown_085EB3DF, NULL},
+ {gUnknown_085EB3EA, NULL},
+ {gUnknown_085EB3F1, NULL},
+ {gUnknown_085EB3FC, NULL},
+ {gUnknown_085EB40A, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_011[] =
+{
+ {gUnknown_085EB415, NULL},
+ {gUnknown_085EB41D, NULL},
+ {gUnknown_085EB424, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_096[] =
+{
+ {gUnknown_085EB45C, NULL},
+ {gUnknown_085EB469, NULL},
+ {gUnknown_085EB475, NULL},
+ {gUnknown_085EB482, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_097[] =
+{
+ {gUnknown_085EB42F, NULL},
+ {gUnknown_085EB43A, NULL},
+ {gUnknown_085EB444, NULL},
+ {gUnknown_085EB451, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_098[] =
+{
+ {gUnknown_085EB48E, NULL},
+ {gUnknown_085EB496, NULL},
+ {gUnknown_085EB4A3, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_099[] =
+{
+ {gUnknown_085EB4AD, NULL},
+ {gUnknown_085EB4B9, NULL},
+ {gUnknown_085EB4C7, NULL},
+ {gUnknown_085EB4D4, NULL},
+ {gUnknown_085EB4E0, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_100[] =
+{
+ {gText_BattleBasics, NULL},
+ {gText_PokemonNature, NULL},
+ {gText_PokemonMoves, NULL},
+ {gText_Underpowered, NULL},
+ {gText_WhenInDanger, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_101[] =
+{
+ {gUnknown_085EB532, NULL},
+ {gUnknown_085EB543, NULL},
+ {gUnknown_085EB555, NULL},
+ {gUnknown_085EB563, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_102[] =
+{
+ {gUnknown_085EB56E, NULL},
+ {gUnknown_085EB57E, NULL},
+ {gUnknown_085EB589, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_103[] =
+{
+ {gUnknown_085EB5B6, NULL},
+ {gUnknown_085EB5BC, NULL},
+ {gUnknown_085EB5C3, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_104[] =
+{
+ {gUnknown_085EB5B6, NULL},
+ {gUnknown_085EB5C3, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_105[] =
+{
+ {gUnknown_085EB5B6, NULL},
+ {gUnknown_085EB5BC, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_106[] =
+{
+ {gUnknown_085EB5B6, NULL},
+ {gUnknown_085EB5C8, NULL},
+};
+
+const struct MenuAction MultichoiceList_108[] =
+{
+ {gUnknown_085EE14B, NULL},
+ {gUnknown_085EE14F, NULL},
+};
+
+const struct MenuAction MultichoiceList_109[] =
+{
+ {gUnknown_085EB2FF, NULL},
+ {gUnknown_085EB310, NULL},
+ {gUnknown_085EB317, NULL},
+ {gUnknown_085EB31F, NULL},
+};
-// Static type declarations
+const struct MenuAction MultichoiceList_110[] =
+{
+ {gText_CaveOfOrigin, NULL},
+ {gText_MtPyre, NULL},
+ {gText_SkyPillar, NULL},
+ {gText_DontRemember, NULL},
+};
-// Static RAM declarations
+const struct MenuAction MultichoiceList_111[] =
+{
+ {gUnknown_085EB4AD, NULL},
+ {gUnknown_085EB4B9, NULL},
+ {gUnknown_085EB4C7, NULL},
+ {gUnknown_085EB4D4, NULL},
+ {gUnknown_085EB597, NULL},
+ {gText_Exit, NULL},
+};
-IWRAM_DATA u8 gUnknown_03001124[6];
+const struct MenuAction MultichoiceList_112[] =
+{
+ {gText_BattleTrainers, NULL},
+ {gUnknown_085EB45C, NULL},
+ {gUnknown_085EB469, NULL},
+ {gUnknown_085EB475, NULL},
+ {gUnknown_085EB482, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_113[] =
+{
+ {gUnknown_085EB32D, NULL},
+ {gUnknown_085EB33E, NULL},
+ {gUnknown_085EB350, NULL},
+ {gUnknown_085EB361, NULL},
+ {gText_Exit, NULL},
+};
+
+const struct MenuAction MultichoiceList_001[] =
+{
+ {gText_Exit, NULL},
+};
+
+struct MultichoiceListStruct
+{
+ const struct MenuAction *list;
+ u8 count;
+};
+
+const struct MultichoiceListStruct gMultichoiceLists[] =
+{
+ {MultichoiceList_000, ARRAY_COUNT(MultichoiceList_000)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_002, ARRAY_COUNT(MultichoiceList_002)},
+ {MultichoiceList_003, ARRAY_COUNT(MultichoiceList_003)},
+ {MultichoiceList_004, ARRAY_COUNT(MultichoiceList_004)},
+ {MultichoiceList_005, ARRAY_COUNT(MultichoiceList_005)},
+ {MultichoiceList_006, ARRAY_COUNT(MultichoiceList_006)},
+ {MultichoiceList_007, ARRAY_COUNT(MultichoiceList_007)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_011, ARRAY_COUNT(MultichoiceList_011)},
+ {MultichoiceList_012, ARRAY_COUNT(MultichoiceList_012)},
+ {MultichoiceList_013, ARRAY_COUNT(MultichoiceList_013)},
+ {MultichoiceList_014, ARRAY_COUNT(MultichoiceList_014)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_016, ARRAY_COUNT(MultichoiceList_016)},
+ {MultichoiceList_017, ARRAY_COUNT(MultichoiceList_017)},
+ {MultichoiceList_018, ARRAY_COUNT(MultichoiceList_018)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_020, ARRAY_COUNT(MultichoiceList_020)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_023, ARRAY_COUNT(MultichoiceList_023)},
+ {MultichoiceList_024, ARRAY_COUNT(MultichoiceList_024)},
+ {MultichoiceList_025, ARRAY_COUNT(MultichoiceList_025)},
+ {MultichoiceList_026, ARRAY_COUNT(MultichoiceList_026)},
+ {MultichoiceList_027, ARRAY_COUNT(MultichoiceList_027)},
+ {MultichoiceList_028, ARRAY_COUNT(MultichoiceList_028)},
+ {MultichoiceList_029, ARRAY_COUNT(MultichoiceList_029)},
+ {MultichoiceList_030, ARRAY_COUNT(MultichoiceList_030)},
+ {MultichoiceList_031, ARRAY_COUNT(MultichoiceList_031)},
+ {MultichoiceList_032, ARRAY_COUNT(MultichoiceList_032)},
+ {MultichoiceList_033, ARRAY_COUNT(MultichoiceList_033)},
+ {MultichoiceList_034, ARRAY_COUNT(MultichoiceList_034)},
+ {MultichoiceList_035, ARRAY_COUNT(MultichoiceList_035)},
+ {MultichoiceList_036, ARRAY_COUNT(MultichoiceList_036)},
+ {MultichoiceList_037, ARRAY_COUNT(MultichoiceList_037)},
+ {MultichoiceList_038, ARRAY_COUNT(MultichoiceList_038)},
+ {MultichoiceList_039, ARRAY_COUNT(MultichoiceList_039)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_042, ARRAY_COUNT(MultichoiceList_042)},
+ {MultichoiceList_043, ARRAY_COUNT(MultichoiceList_043)},
+ {MultichoiceList_044, ARRAY_COUNT(MultichoiceList_044)},
+ {MultichoiceList_045, ARRAY_COUNT(MultichoiceList_045)},
+ {MultichoiceList_046, ARRAY_COUNT(MultichoiceList_046)},
+ {MultichoiceList_047, ARRAY_COUNT(MultichoiceList_047)},
+ {MultichoiceList_048, ARRAY_COUNT(MultichoiceList_048)},
+ {MultichoiceList_049, ARRAY_COUNT(MultichoiceList_049)},
+ {MultichoiceList_050, ARRAY_COUNT(MultichoiceList_050)},
+ {MultichoiceList_001, ARRAY_COUNT(MultichoiceList_001)},
+ {MultichoiceList_052, ARRAY_COUNT(MultichoiceList_052)},
+ {MultichoiceList_053, ARRAY_COUNT(MultichoiceList_053)},
+ {MultichoiceList_054, ARRAY_COUNT(MultichoiceList_054)},
+ {MultichoiceList_055, ARRAY_COUNT(MultichoiceList_055)},
+ {MultichoiceList_056, ARRAY_COUNT(MultichoiceList_056)},
+ {MultichoiceList_057, ARRAY_COUNT(MultichoiceList_057)},
+ {MultichoiceList_058, ARRAY_COUNT(MultichoiceList_058)},
+ {MultichoiceList_059, ARRAY_COUNT(MultichoiceList_059)},
+ {MultichoiceList_060, ARRAY_COUNT(MultichoiceList_060)},
+ {MultichoiceList_061, ARRAY_COUNT(MultichoiceList_061)},
+ {MultichoiceList_062, ARRAY_COUNT(MultichoiceList_062)},
+ {MultichoiceList_063, ARRAY_COUNT(MultichoiceList_063)},
+ {MultichoiceList_064, ARRAY_COUNT(MultichoiceList_064)},
+ {MultichoiceList_065, ARRAY_COUNT(MultichoiceList_065)},
+ {MultichoiceList_066, ARRAY_COUNT(MultichoiceList_066)},
+ {MultichoiceList_067, ARRAY_COUNT(MultichoiceList_067)},
+ {MultichoiceList_068, ARRAY_COUNT(MultichoiceList_068)},
+ {MultichoiceList_069, ARRAY_COUNT(MultichoiceList_069)},
+ {MultichoiceList_070, ARRAY_COUNT(MultichoiceList_070)},
+ {MultichoiceList_071, ARRAY_COUNT(MultichoiceList_071)},
+ {MultichoiceList_072, ARRAY_COUNT(MultichoiceList_072)},
+ {MultichoiceList_073, ARRAY_COUNT(MultichoiceList_073)},
+ {MultichoiceList_074, ARRAY_COUNT(MultichoiceList_074)},
+ {MultichoiceList_074, ARRAY_COUNT(MultichoiceList_074)},
+ {MultichoiceList_076, ARRAY_COUNT(MultichoiceList_076)},
+ {MultichoiceList_076, ARRAY_COUNT(MultichoiceList_076)},
+ {MultichoiceList_078, ARRAY_COUNT(MultichoiceList_078)},
+ {MultichoiceList_079, ARRAY_COUNT(MultichoiceList_079)},
+ {MultichoiceList_080, ARRAY_COUNT(MultichoiceList_080)},
+ {MultichoiceList_081, ARRAY_COUNT(MultichoiceList_081)},
+ {MultichoiceList_082, ARRAY_COUNT(MultichoiceList_082)},
+ {MultichoiceList_083, ARRAY_COUNT(MultichoiceList_083)},
+ {MultichoiceList_084, ARRAY_COUNT(MultichoiceList_084)},
+ {MultichoiceList_085, ARRAY_COUNT(MultichoiceList_085)},
+ {MultichoiceList_086, ARRAY_COUNT(MultichoiceList_086)},
+ {MultichoiceList_087, ARRAY_COUNT(MultichoiceList_087)},
+ {MultichoiceList_088, ARRAY_COUNT(MultichoiceList_088)},
+ {MultichoiceList_089, ARRAY_COUNT(MultichoiceList_089)},
+ {MultichoiceList_090, ARRAY_COUNT(MultichoiceList_090)},
+ {MultichoiceList_091, ARRAY_COUNT(MultichoiceList_091)},
+ {MultichoiceList_092, ARRAY_COUNT(MultichoiceList_092)},
+ {MultichoiceList_093, ARRAY_COUNT(MultichoiceList_093)},
+ {MultichoiceList_094, ARRAY_COUNT(MultichoiceList_094)},
+ {MultichoiceList_095, ARRAY_COUNT(MultichoiceList_095)},
+ {MultichoiceList_096, ARRAY_COUNT(MultichoiceList_096)},
+ {MultichoiceList_097, ARRAY_COUNT(MultichoiceList_097)},
+ {MultichoiceList_098, ARRAY_COUNT(MultichoiceList_098)},
+ {MultichoiceList_099, ARRAY_COUNT(MultichoiceList_099)},
+ {MultichoiceList_100, ARRAY_COUNT(MultichoiceList_100)},
+ {MultichoiceList_101, ARRAY_COUNT(MultichoiceList_101)},
+ {MultichoiceList_102, ARRAY_COUNT(MultichoiceList_102)},
+ {MultichoiceList_103, ARRAY_COUNT(MultichoiceList_103)},
+ {MultichoiceList_104, ARRAY_COUNT(MultichoiceList_104)},
+ {MultichoiceList_105, ARRAY_COUNT(MultichoiceList_105)},
+ {MultichoiceList_106, ARRAY_COUNT(MultichoiceList_106)},
+ {MultichoiceList_107, ARRAY_COUNT(MultichoiceList_107)},
+ {MultichoiceList_108, ARRAY_COUNT(MultichoiceList_108)},
+ {MultichoiceList_109, ARRAY_COUNT(MultichoiceList_109)},
+ {MultichoiceList_110, ARRAY_COUNT(MultichoiceList_110)},
+ {MultichoiceList_111, ARRAY_COUNT(MultichoiceList_111)},
+ {MultichoiceList_112, ARRAY_COUNT(MultichoiceList_112)},
+ {MultichoiceList_113, ARRAY_COUNT(MultichoiceList_113)},
+};
+
+const u8 *const gUnknown_0858BAF0[] =
+{
+ gText_Cool,
+ gText_Beauty,
+ gText_Cute,
+ gText_Smart,
+ gText_Tough,
+ gText_Normal,
+ gText_Super,
+ gText_Hyper,
+ gText_Master,
+ gText_Cool2,
+ gText_Beauty2,
+ gText_Cute2,
+ gText_Smart2,
+ gText_Tough2,
+ gText_Items,
+ gText_Key_Items,
+ gText_Poke_Balls,
+ gText_TMs_Hms,
+ gText_Berries2,
+ gText_Single2,
+ gText_Double2,
+ gText_Multi,
+ gText_MultiLink,
+ gText_BattleTower2,
+ gText_BattleDome,
+ gText_BattleFactory,
+ gText_BattlePalace,
+ gText_BattleArena,
+ gText_BattlePike,
+ gText_BattlePyramid,
+};
+
+const u8 gUnknown_0858BB68[] = { 74, 75, 76, 77, 78, 79 };
+
+const u8 *const sPCNameStrings[] =
+{
+ gText_SomeonesPC,
+ gText_LanettesPC,
+ gText_PlayersPC,
+ gText_LogOff,
+};
+
+const u8 *const gUnknown_0858BB80[] =
+{
+ gText_SlateportCity,
+ gText_BattleFrontier,
+ gText_SouthernIsland,
+ gText_NavelRock,
+ gText_BirthIsland,
+ gText_FarawayIsland,
+ gText_Exit,
+};
+
+const u8 *const gUnknown_0858BB9C[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_277F1B,
+ OldaleTown_PokemonCenter_2F_Text_277F5A,
+ OldaleTown_PokemonCenter_2F_Text_277F96,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+const u8 *const gUnknown_0858BBAC[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_27879F,
+ OldaleTown_PokemonCenter_2F_Text_2787D5,
+ OldaleTown_PokemonCenter_2F_Text_278831,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+const u8 *const gUnknown_0858BBBC[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_27879F,
+ OldaleTown_PokemonCenter_2F_Text_2787D5,
+ OldaleTown_PokemonCenter_2F_Text_2787FC,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+const u8 *const gUnknown_0858BBCC[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_27879F,
+ OldaleTown_PokemonCenter_2F_Text_2787D5,
+ OldaleTown_PokemonCenter_2F_Text_278831,
+ OldaleTown_PokemonCenter_2F_Text_2787FC,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+const u8 *const gUnknown_0858BBE0[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_277F1B,
+ OldaleTown_PokemonCenter_2F_Text_277F5A,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+const u8 *const gUnknown_0858BBEC[] =
+{
+ OldaleTown_PokemonCenter_2F_Text_27879F,
+ OldaleTown_PokemonCenter_2F_Text_2787D5,
+ OldaleTown_PokemonCenter_2F_Text_27889C,
+};
+
+EWRAM_DATA u8 gUnknown_02039F90 = 0;
+
+IWRAM_DATA u8 gUnknown_03001124[7];
IWRAM_DATA u32 filler_0300112c;
-// Static ROM declarations
+static void Task_HandleMultichoiceInput(u8);
+static void Task_HandleYesNoInput(u8);
+static void Task_HandleMultichoiceGridInput(u8);
+static void DrawMultichoiceMenu(u8, u8, u8, bool8, u8);
+static void sub_80E1FBC(u8, u8, u8, u8);
+static void sub_80E2A94(u8);
+static void CreatePCMenu(void);
+static void sub_80E2578(void);
+static bool8 IsPicboxClosed(void);
+static void CreateStartMenu(void);
+static void sub_80E2CC4(u8, u8, u8, u8);
+
+bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress)
+{
+ if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = 0xFF;
+ DrawMultichoiceMenu(left, top, multichoiceId, ignoreBPress, 0);
+ return TRUE;
+ }
+}
+
+bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 multichoiceId, bool8 ignoreBPress, u8 defaultChoice)
+{
+ if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = 0xFF;
+ DrawMultichoiceMenu(left, top, multichoiceId, ignoreBPress, defaultChoice);
+ return TRUE;
+ }
+}
+
+static u16 sub_80E1EB8(const u8 *str)
+{
+ u16 length = 0;
+
+ while (*str != EOS)
+ {
+ if (*str == PLACEHOLDER_BEGIN)
+ {
+ str++;
+ if (*str == 1)
+ {
+ length += StringLength(gSaveBlock2Ptr->playerName);
+ str++;
+ }
+ }
+ else
+ {
+ str++;
+ length++;
+ }
+ }
+
+ return length;
+}
+
+static void DrawMultichoiceMenu(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress, u8 cursorPos)
+{
+ int i;
+ u8 right;
+ u8 bottom;
+ u8 windowId;
+ u8 count = gMultichoiceLists[multichoiceId].count;
+ const struct MenuAction *actions = gMultichoiceLists[multichoiceId].list;
+ const struct MenuAction *action;
+ int width = 0;
+ u8 newWidth;
+
+ // Must be a fakematch because come on, seriously
+ if (width < count)
+ {
+ action = &actions[0];
+ i = count;
+ do
+ {
+ width = display_text_and_get_width(action->text, width);
+ action++;
+ i--;
+ } while (i != 0);
+ }
+
+ newWidth = convert_pixel_width_to_tile_width(width);
+ left = sub_80E2D5C(left, newWidth);
+ windowId = CreateWindowFromRect(left, top, newWidth, count * 2);
+ SetStandardWindowBorderStyle(windowId, 0);
+ PrintMenuTable(windowId, count, actions);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, cursorPos);
+ schedule_bg_copy_tilemap_to_vram(0);
+ sub_80E1FBC(ignoreBPress, count, windowId, multichoiceId);
+}
+
+#define tLeft data[0]
+#define tTop data[1]
+#define tRight data[2]
+#define tBottom data[3]
+#define tIgnoreBPress data[4]
+#define tDoWrap data[5]
+#define tWindowId data[6]
+#define tMultichoiceId data[7]
+
+static void sub_80E1FBC(u8 ignoreBPress, u8 count, u8 windowId, u8 multichoiceId)
+{
+ u8 i;
+ u8 taskId;
+ gUnknown_02039F90 = 2;
+
+ for (i = 0; i < 6; i++)
+ {
+ if (gUnknown_0858BB68[i] == multichoiceId)
+ {
+ gUnknown_02039F90 = 12;
+ }
+ }
+
+ taskId = CreateTask(Task_HandleMultichoiceInput, 80);
+
+ gTasks[taskId].tIgnoreBPress = ignoreBPress;
+
+ if (count > 3)
+ gTasks[taskId].tDoWrap = TRUE;
+ else
+ gTasks[taskId].tDoWrap = FALSE;
+
+ gTasks[taskId].tWindowId = windowId;
+ gTasks[taskId].tMultichoiceId = multichoiceId;
+
+ sub_80E2A94(multichoiceId);
+}
+
+static void Task_HandleMultichoiceInput(u8 taskId)
+{
+ s8 selection;
+ s16 *data = gTasks[taskId].data;
+
+ if (!gPaletteFade.active)
+ {
+ if (gUnknown_02039F90)
+ {
+ gUnknown_02039F90--;
+ }
+ else
+ {
+ if (!tDoWrap)
+ selection = Menu_ProcessInputNoWrap();
+ else
+ selection = Menu_ProcessInput();
+
+ if (gMain.newKeys & (DPAD_UP | DPAD_DOWN))
+ {
+ sub_80E2A94(tMultichoiceId);
+ }
+
+ if (selection != -2)
+ {
+ if (selection == -1)
+ {
+ if (tIgnoreBPress)
+ return;
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = 127;
+ }
+ else
+ {
+ gSpecialVar_Result = selection;
+ }
+ sub_80E2A78(tWindowId);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+ }
+}
+
+bool8 ScriptMenu_YesNo(u8 left, u8 top)
+{
+ u8 taskId;
+
+ if (FuncIsActiveTask(Task_HandleYesNoInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = 0xFF;
+ DisplayYesNoMenu();
+ taskId = CreateTask(Task_HandleYesNoInput, 0x50);
+ return TRUE;
+ }
+}
+
+// unused
+bool8 IsScriptActive(void)
+{
+ if (gSpecialVar_Result == 0xFF)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static void Task_HandleYesNoInput(u8 taskId)
+{
+ u8 left, top;
+
+ if (gTasks[taskId].tRight < 5)
+ {
+ gTasks[taskId].tRight++;
+ return;
+ }
+
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
+ {
+ case -2:
+ return;
+ case -1:
+ case 1:
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = 0;
+ break;
+ case 0:
+ gSpecialVar_Result = 1;
+ break;
+ }
+
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+#ifdef NONMATCHING
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress, u8 columnCount)
+{
+ u8 bottom = 0;
+
+ if (FuncIsActiveTask(Task_HandleMultichoiceGridInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ u8 taskId;
+ u8 unk2;
+ int width;
+ int i;
+ u8 newWidth;
+
+ gSpecialVar_Result = 0xFF;
+ width = 0;
+ i = 0;
+
+ if (width < gMultichoiceLists[multichoiceId].count)
+ {
+ do
+ {
+ width = display_text_and_get_width(gMultichoiceLists[multichoiceId].list[i].text, width);
+ i++;
+ } while (i < gMultichoiceLists[multichoiceId].count);
+ }
+
+ newWidth = convert_pixel_width_to_tile_width(width);
+
+ left = sub_80E2D5C(left, columnCount * newWidth);
+ unk2 = gMultichoiceLists[multichoiceId].count / columnCount;
+
+ taskId = CreateTask(Task_HandleMultichoiceGridInput, 80);
+
+ gTasks[taskId].tIgnoreBPress = ignoreBPress;
+ gTasks[taskId].tWindowId = CreateWindowFromRect(left, top, columnCount * newWidth, unk2 * 2);
+ SetStandardWindowBorderStyle(gTasks[taskId].tWindowId, 0);
+ sub_81997AC(gTasks[taskId].tWindowId, newWidth * 8, columnCount, unk2, gMultichoiceLists[multichoiceId].list);
+ sub_8199944(gTasks[taskId].tWindowId, newWidth * 8, columnCount, unk2, 0);
+ CopyWindowToVram(gTasks[taskId].tWindowId, 3);
+ return TRUE;
+ }
+}
+#else
+NAKED
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 ignoreBPress, u8 columnCount)
+{
+ asm_unified(" push {r4-r7,lr}\n\
+ mov r7, r10\n\
+ mov r6, r9\n\
+ mov r5, r8\n\
+ push {r5-r7}\n\
+ sub sp, 0x10\n\
+ ldr r4, [sp, 0x30]\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ lsls r1, 24\n\
+ lsrs r1, 24\n\
+ str r1, [sp, 0x4]\n\
+ lsls r2, 24\n\
+ lsrs r5, r2, 24\n\
+ lsls r3, 24\n\
+ lsrs r3, 24\n\
+ str r3, [sp, 0x8]\n\
+ lsls r4, 24\n\
+ lsrs r4, 24\n\
+ mov r10, r4\n\
+ ldr r0, =Task_HandleMultichoiceGridInput\n\
+ bl FuncIsActiveTask\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ cmp r0, 0x1\n\
+ bne _080E2210\n\
+ movs r0, 0\n\
+ b _080E22E8\n\
+ .pool\n\
+_080E2210:\n\
+ ldr r0, =gSpecialVar_Result\n\
+ movs r1, 0xFF\n\
+ strh r1, [r0]\n\
+ movs r2, 0\n\
+ movs r6, 0\n\
+ ldr r1, =gMultichoiceLists\n\
+ lsls r5, 3\n\
+ adds r0, r5, r1\n\
+ str r5, [sp, 0xC]\n\
+ ldrb r0, [r0, 0x4]\n\
+ cmp r2, r0\n\
+ bge _080E2246\n\
+ mov r8, r1\n\
+_080E222A:\n\
+ mov r0, r8\n\
+ adds r4, r5, r0\n\
+ ldr r1, [r4]\n\
+ lsls r0, r6, 3\n\
+ adds r0, r1\n\
+ ldr r0, [r0]\n\
+ adds r1, r2, 0\n\
+ bl display_text_and_get_width\n\
+ adds r2, r0, 0\n\
+ adds r6, 0x1\n\
+ ldrb r4, [r4, 0x4]\n\
+ cmp r6, r4\n\
+ blt _080E222A\n\
+_080E2246:\n\
+ adds r0, r2, 0\n\
+ bl convert_pixel_width_to_tile_width\n\
+ adds r5, r0, 0\n\
+ lsls r5, 24\n\
+ lsrs r5, 24\n\
+ mov r1, r10\n\
+ muls r1, r5\n\
+ mov r8, r1\n\
+ adds r0, r7, 0\n\
+ bl sub_80E2D5C\n\
+ lsls r0, 24\n\
+ lsrs r7, r0, 24\n\
+ ldr r2, =gMultichoiceLists\n\
+ mov r9, r2\n\
+ ldr r0, [sp, 0xC]\n\
+ add r9, r0\n\
+ mov r1, r9\n\
+ ldrb r0, [r1, 0x4]\n\
+ mov r1, r10\n\
+ bl __udivsi3\n\
+ adds r6, r0, 0\n\
+ lsls r6, 24\n\
+ lsrs r6, 24\n\
+ ldr r0, =Task_HandleMultichoiceGridInput\n\
+ movs r1, 0x50\n\
+ bl CreateTask\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ ldr r1, =gTasks\n\
+ lsls r4, r0, 2\n\
+ adds r4, r0\n\
+ lsls r4, 3\n\
+ adds r4, r1\n\
+ mov r2, sp\n\
+ ldrh r2, [r2, 0x8]\n\
+ strh r2, [r4, 0x10]\n\
+ mov r0, r8\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ mov r8, r0\n\
+ lsls r3, r6, 25\n\
+ lsrs r3, 24\n\
+ adds r0, r7, 0\n\
+ ldr r1, [sp, 0x4]\n\
+ mov r2, r8\n\
+ bl CreateWindowFromRect\n\
+ lsls r0, 24\n\
+ lsrs r0, 24\n\
+ strh r0, [r4, 0x14]\n\
+ movs r1, 0\n\
+ bl SetStandardWindowBorderStyle\n\
+ ldrb r0, [r4, 0x14]\n\
+ lsls r5, 27\n\
+ lsrs r5, 24\n\
+ mov r2, r9\n\
+ ldr r1, [r2]\n\
+ str r1, [sp]\n\
+ adds r1, r5, 0\n\
+ mov r2, r10\n\
+ adds r3, r6, 0\n\
+ bl sub_81997AC\n\
+ ldrb r0, [r4, 0x14]\n\
+ movs r1, 0\n\
+ str r1, [sp]\n\
+ adds r1, r5, 0\n\
+ mov r2, r10\n\
+ adds r3, r6, 0\n\
+ bl sub_8199944\n\
+ ldrb r0, [r4, 0x14]\n\
+ movs r1, 0x3\n\
+ bl CopyWindowToVram\n\
+ movs r0, 0x1\n\
+_080E22E8:\n\
+ add sp, 0x10\n\
+ pop {r3-r5}\n\
+ mov r8, r3\n\
+ mov r9, r4\n\
+ mov r10, r5\n\
+ pop {r4-r7}\n\
+ pop {r1}\n\
+ bx r1\n\
+ .pool");
+}
+#endif
+
+static void Task_HandleMultichoiceGridInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s8 selection = Menu_ProcessInputGridLayout();
+
+ if (selection != -2)
+ {
+ if (selection == -1)
+ {
+ if (tIgnoreBPress)
+ return;
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = 0x7F;
+ }
+ else
+ {
+ gSpecialVar_Result = selection;
+ }
+ sub_80E2A78(tWindowId);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+}
+
+#undef tWindowId
+
+bool8 ScrSpecial_CreatePCMenu(void)
+{
+ if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = 0xFF;
+ CreatePCMenu();
+ return TRUE;
+ }
+}
+
+static void CreatePCMenu(void)
+{
+ u8 y = 8;
+ u32 pixelWidth = 0;
+ u8 width;
+ u8 numChoices;
+ u8 windowId;
+ int i;
+
+ for (i = 0; i < ARRAY_COUNT(sPCNameStrings); i++)
+ {
+ pixelWidth = display_text_and_get_width(sPCNameStrings[i], pixelWidth);
+ }
+
+ if (FlagGet(FLAG_SYS_GAME_CLEAR))
+ {
+ pixelWidth = display_text_and_get_width(gText_HallOfFame, pixelWidth);
+ }
+
+ width = convert_pixel_width_to_tile_width(pixelWidth);
+
+ if (FlagGet(FLAG_SYS_GAME_CLEAR)) // player has cleared game?
+ {
+ numChoices = 4;
+ windowId = CreateWindowFromRect(0, 0, width, 8);
+ SetStandardWindowBorderStyle(windowId, 0);
+ AddTextPrinterParameterized(windowId, 1, gText_HallOfFame, y, 33, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_LogOff, y, 49, TEXT_SPEED_FF, NULL);
+ }
+ else
+ {
+ numChoices = 3;
+ windowId = CreateWindowFromRect(0, 0, width, 6);
+ SetStandardWindowBorderStyle(windowId, 0);
+ AddTextPrinterParameterized(windowId, 1, gText_LogOff, y, 33, TEXT_SPEED_FF, NULL);
+ }
+
+ if (FlagGet(FLAG_SYS_PC_LANETTE)) // player met lanette?
+ AddTextPrinterParameterized(windowId, 1, gText_LanettesPC, y, 1, TEXT_SPEED_FF, NULL);
+ else
+ AddTextPrinterParameterized(windowId, 1, gText_SomeonesPC, y, 1, TEXT_SPEED_FF, NULL);
+
+ StringExpandPlaceholders(gStringVar4, gText_PlayersPC);
+ PrintPlayerNameOnWindow(windowId, gStringVar4, y, 17);
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, numChoices, 0);
+ CopyWindowToVram(windowId, 3);
+ sub_80E1FBC(FALSE, numChoices, windowId, 1);
+}
+
+void ScriptMenu_DisplayPCStartupPrompt(void)
+{
+ sub_819786C(0, TRUE);
+ AddTextPrinterParameterized2(0, 1, gText_WhichPCShouldBeAccessed, 0, NULL, 2, 1, 3);
+}
+
+bool8 sub_80E2548(void)
+{
+ if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
+ {
+ return FALSE;
+ }
+ else
+ {
+ gSpecialVar_Result = 0xFF;
+ sub_80E2578();
+ return TRUE;
+ }
+}
+
+static void sub_80E2578(void)
+{
+ u8 temp = 0;
+ u8 count;
+ u32 pixelWidth;
+ u8 width;
+ u8 windowId;
+ u8 i;
+ u32 j;
+
+ for (i = 0; i < ARRAY_COUNT(gUnknown_03001124); i++)
+ {
+ gUnknown_03001124[i] |= 0xFF;
+ }
+
+ GetFontAttribute(1, FONTATTR_MAX_LETTER_WIDTH);
+
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gUnknown_03001124[temp] = 0;
+ temp++;
+ if (FlagGet(FLAG_0x1D0) == TRUE)
+ {
+ gUnknown_03001124[temp] = 1;
+ temp++;
+ }
+ }
+
+ if (CheckBagHasItem(ITEM_EON_TICKET, 1) == TRUE && FlagGet(FLAG_SYS_HAS_EON_TICKET) == TRUE)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gUnknown_03001124[temp] = 2;
+ temp++;
+ }
+
+ if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1AE) == FALSE)
+ {
+ gUnknown_03001124[temp] = 2;
+ temp++;
+ FlagSet(FLAG_0x1AE);
+ }
+ }
+
+ if (CheckBagHasItem(ITEM_MYSTIC_TICKET, 1) == TRUE && FlagGet(FLAG_0x8E0) == TRUE)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gUnknown_03001124[temp] = 3;
+ temp++;
+ }
+
+ if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1DB) == FALSE)
+ {
+ gUnknown_03001124[temp] = 3;
+ temp++;
+ FlagSet(FLAG_0x1DB);
+ }
+ }
+
+ if (CheckBagHasItem(ITEM_AURORA_TICKET, 1) == TRUE && FlagGet(FLAG_0x8D5) == TRUE)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gUnknown_03001124[temp] = 4;
+ temp++;
+ }
+
+ if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1AF) == FALSE)
+ {
+ gUnknown_03001124[temp] = 4;
+ temp++;
+ FlagSet(FLAG_0x1AF);
+ }
+ }
+
+ if (CheckBagHasItem(ITEM_OLD_SEA_MAP, 1) == TRUE && FlagGet(FLAG_0x8D6) == TRUE)
+ {
+ if (gSpecialVar_0x8004 == 0)
+ {
+ gUnknown_03001124[temp] = 5;
+ temp++;
+ }
+
+ if (gSpecialVar_0x8004 == 1 && FlagGet(FLAG_0x1B0) == FALSE)
+ {
+ gUnknown_03001124[temp] = 5;
+ temp++;
+ FlagSet(FLAG_0x1B0);
+ }
+ }
+
+ gUnknown_03001124[temp] = 6;
+ temp++;
+
+ if (gSpecialVar_0x8004 == 0 && FlagGet(FLAG_0x1D0) == TRUE)
+ {
+ count = temp;
+ }
+
+ count = temp;
+ if (count == 7)
+ {
+ gSpecialVar_0x8004 = 11;
+ sub_813A128();
+ }
+ else
+ {
+ pixelWidth = 0;
+
+ for (j = 0; j < ARRAY_COUNT(gUnknown_0858BB80); j++)
+ {
+ u8 test = gUnknown_03001124[j];
+ if (test != 0xFF)
+ {
+ pixelWidth = display_text_and_get_width(gUnknown_0858BB80[test], pixelWidth);
+ }
+ }
+
+ width = convert_pixel_width_to_tile_width(pixelWidth);
+ windowId = CreateWindowFromRect(28 - width, (6 - count) * 2, width, count * 2);
+ SetStandardWindowBorderStyle(windowId, 0);
+
+ for (temp = 0, i = 0; i < ARRAY_COUNT(gUnknown_0858BB80); i++)
+ {
+ if (gUnknown_03001124[i] != 0xFF)
+ {
+ AddTextPrinterParameterized(windowId, 1, gUnknown_0858BB80[gUnknown_03001124[i]], 8, temp * 16 + 1, TEXT_SPEED_FF, NULL);
+ temp++;
+ }
+ }
+
+ InitMenuInUpperLeftCornerPlaySoundWhenAPressed(windowId, count, count - 1);
+ CopyWindowToVram(windowId, 3);
+ sub_80E1FBC(FALSE, count, windowId, 8);
+ }
+}
+
+void sub_80E2878(void)
+{
+ if (gSpecialVar_Result != 0x7F)
+ {
+ gSpecialVar_Result = gUnknown_03001124[gSpecialVar_Result];
+ }
+}
+
+#define tState data[0]
+#define tMonSpecies data[1]
+#define tMonSpriteId data[2]
+#define tWindowX data[3]
+#define tWindowY data[4]
+#define tWindowId data[5]
+
+static void Task_PokemonPicWindow(u8 taskId)
+{
+ struct Task *task = &gTasks[taskId];
+
+ switch (task->tState)
+ {
+ case 0:
+ task->tState++;
+ break;
+ case 1:
+ break;
+ case 2:
+ FreeResourcesAndDestroySprite(&gSprites[task->tMonSpriteId], task->tMonSpriteId);
+ task->tState++;
+ break;
+ case 3:
+ sub_80E2A78(task->tWindowId);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
+{
+ u8 taskId;
+ u8 spriteId;
+
+ if (FindTaskIdByFunc(Task_PokemonPicWindow) != 0xFF)
+ {
+ return FALSE;
+ }
+ else
+ {
+ spriteId = CreateMonSprite_PicBox(species, x * 8 + 40, y * 8 + 40, 0);
+ taskId = CreateTask(Task_PokemonPicWindow, 0x50);
+ gTasks[taskId].tWindowId = CreateWindowFromRect(x, y, 8, 8);
+ gTasks[taskId].tState = 0;
+ gTasks[taskId].tMonSpecies = species;
+ gTasks[taskId].tMonSpriteId = spriteId;
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ gSprites[spriteId].oam.priority = 0;
+ SetStandardWindowBorderStyle(gTasks[taskId].tWindowId, 1);
+ schedule_bg_copy_tilemap_to_vram(0);
+ return TRUE;
+ }
+}
+
+bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void)
+{
+ u8 taskId = FindTaskIdByFunc(Task_PokemonPicWindow);
+
+ if (taskId == 0xFF)
+ return NULL;
+ gTasks[taskId].tState++;
+ return IsPicboxClosed;
+}
+
+static bool8 IsPicboxClosed(void)
+{
+ if (FindTaskIdByFunc(Task_PokemonPicWindow) == 0xFF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+#undef tState
+#undef tMonSpecies
+#undef tMonSpriteId
+#undef tWindowX
+#undef tWindowY
+#undef tWindowId
+
+u8 CreateWindowFromRect(u8 x, u8 y, u8 width, u8 height)
+{
+ struct WindowTemplate template = CreateWindowTemplate(0, x + 1, y + 1, width, height, 15, 100);
+ u8 windowId = AddWindow(&template);
+ PutWindowTilemap(windowId);
+ return windowId;
+}
+
+void sub_80E2A78(u8 windowId)
+{
+ sub_8198070(windowId, TRUE);
+ RemoveWindow(windowId);
+}
+
+static void sub_80E2A94(u8 multichoiceId)
+{
+ switch (multichoiceId)
+ {
+ case 77:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BBAC[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 76:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BB9C[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 78:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BBBC[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 79:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BBCC[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 75:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BBEC[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 74:
+ FillWindowPixelBuffer(0, 0x11);
+ AddTextPrinterParameterized2(0, 1, gUnknown_0858BBE0[GetMenuCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ }
+}
+
+bool16 sp106_CreateStartMenu(void)
+{
+ if (FuncIsActiveTask(Task_HandleMultichoiceInput) == TRUE)
+ {
+ return FALSE;
+ }
+
+ gSpecialVar_Result = 0xFF;
+ CreateStartMenu();
+ return TRUE;
+}
+
+static void CreateStartMenu(void)
+{
+ u8 windowId = CreateWindowFromRect(21, 0, 7, 18);
+ SetStandardWindowBorderStyle(windowId, 0);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionPokedex, 8, 9, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionPokemon, 8, 25, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionBag, 8, 41, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionPokenav, 8, 57, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gSaveBlock2Ptr->playerName, 8, 73, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionSave, 8, 89, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionOption, 8, 105, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(windowId, 1, gText_MenuOptionExit, 8, 121, TEXT_SPEED_FF, NULL);
+ sub_81983AC(windowId, 1, 0, 9, 16, 8, 0);
+ sub_80E2CC4(0, 8, windowId, 86);
+ CopyWindowToVram(windowId, 3);
+}
+
+#define tWindowId data[6]
+
+static void sub_80E2CC4(bool8 ignoreBPress, u8 unused, u8 windowId, u8 multichoiceId)
+{
+ u8 taskId;
+ gUnknown_02039F90 = 2;
+ taskId = CreateTask(Task_HandleMultichoiceInput, 80);
+ gTasks[taskId].tIgnoreBPress = ignoreBPress;
+ gTasks[taskId].tDoWrap = 0;
+ gTasks[taskId].tWindowId = windowId;
+ gTasks[taskId].tMultichoiceId = multichoiceId;
+}
+
+#undef tLeft
+#undef tTop
+#undef tRight
+#undef tBottom
+#undef tIgnoreBPress
+#undef tDoWrap
+#undef tWindowId
+#undef tMultichoiceId
+
+static int display_text_and_get_width_internal(const u8 *str)
+{
+ u8 temp[64];
+ StringExpandPlaceholders(temp, str);
+ return GetStringWidth(1, temp, 0);
+}
+
+int display_text_and_get_width(const u8 *str, int prevMaxWidth)
+{
+ int len = display_text_and_get_width_internal(str);
+ if (len < prevMaxWidth)
+ {
+ len = prevMaxWidth;
+ }
+ return len;
+}
+
+int convert_pixel_width_to_tile_width(int width)
+{
+ return (((width + 9) / 8) + 1) > 28 ? 28 : (((width + 9) / 8) + 1);
+}
+
+int sub_80E2D5C(int a0, int a1)
+{
+ int ret = a0;
-// .rodata
+ if (a0 + a1 > 28)
+ {
+ if (28 - a1 < 0)
+ {
+ ret = 0;
+ }
+ else
+ {
+ ret = 28 - a1;
+ }
+ }
+ else
+ {
+ ret = a0;
+ }
-// .text
+ return ret;
+}
diff --git a/src/secret_base.c b/src/secret_base.c
index 87d44fb17..8436d8520 100644
--- a/src/secret_base.c
+++ b/src/secret_base.c
@@ -998,7 +998,7 @@ void sub_80E9FB0(u8 taskId)
{
s8 input;
- input = Menu_ProcessInputNoWrapAround();
+ input = Menu_ProcessInputNoWrap();
switch (input)
{
case -1:
@@ -1032,7 +1032,7 @@ void sub_80E9FFC(u8 taskId)
void sub_80EA06C(u8 taskId)
{
- sub_8197930();
+ DisplayYesNoMenu();
sub_8121F68(taskId, &gUnknown_0858D058);
}
diff --git a/src/shop.c b/src/shop.c
index e9c26cdf3..a0eddee01 100755
--- a/src/shop.c
+++ b/src/shop.c
@@ -325,7 +325,7 @@ static void SetShopItemsForSale(const u16 *items)
static void Task_ShopMenu(u8 taskId)
{
- s8 inputCode = Menu_ProcessInputNoWrapAround();
+ s8 inputCode = Menu_ProcessInputNoWrap();
switch (inputCode)
{
case LIST_B_PRESSED:
diff --git a/src/slot_machine.c b/src/slot_machine.c
index f92ebd168..d7557af95 100644
--- a/src/slot_machine.c
+++ b/src/slot_machine.c
@@ -1269,7 +1269,7 @@ void PlaySlotMachine(u8 arg0, MainCallback cb)
/*static */bool8 sub_8102344(struct Task *task)
{
- s8 input = Menu_ProcessInputNoWrap_();
+ s8 input = Menu_ProcessInputNoWrapClearOnChoose();
if (input == 0)
{
sub_8197434(0, TRUE);
diff --git a/src/start_menu.c b/src/start_menu.c
index 81c4213e7..217d7be6a 100644
--- a/src/start_menu.c
+++ b/src/start_menu.c
@@ -979,14 +979,14 @@ static u8 SaveConfirmSaveCallback(void)
static u8 SaveYesNoCallback(void)
{
- sub_8197930(); // Show Yes/No menu
+ DisplayYesNoMenu(); // Show Yes/No menu
sSaveDialogCallback = SaveConfirmInputCallback;
return SAVE_IN_PROGRESS;
}
static u8 SaveConfirmInputCallback(void)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0: // Yes
switch (gSaveFileStatus)
@@ -1039,14 +1039,14 @@ static u8 SaveConfirmOverwriteNoCallback(void)
static u8 SaveConfirmOverwriteCallback(void)
{
- sub_8197930(); // Show Yes/No menu
+ DisplayYesNoMenu(); // Show Yes/No menu
sSaveDialogCallback = SaveOverwriteInputCallback;
return SAVE_IN_PROGRESS;
}
static u8 SaveOverwriteInputCallback(void)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0: // Yes
sSaveDialogCallback = SaveSavingMessageCallback;
@@ -1170,7 +1170,7 @@ static u8 BattlePyramidRetireYesNoCallback(void)
static u8 BattlePyramidRetireInputCallback(void)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0: // Yes
return SAVE_CANCELED;
diff --git a/src/starter_choose.c b/src/starter_choose.c
index 298c74db0..46aac5590 100644
--- a/src/starter_choose.c
+++ b/src/starter_choose.c
@@ -534,7 +534,7 @@ static void Task_StarterChoose5(u8 taskId)
{
u8 spriteId;
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0: // YES
// Return the starter choice and exit.
diff --git a/src/trader.c b/src/trader.c
index f081d7e95..e23efb4ce 100644
--- a/src/trader.c
+++ b/src/trader.c
@@ -109,7 +109,7 @@ void sub_8133BE4(u8 taskId, u8 decorationId)
void Task_HandleGetDecorationMenuInput(u8 taskId)
{
struct MauvilleOldManTrader *trader = &gSaveBlock1Ptr->oldMan.trader;
- s8 input = ProcessMenuInput();
+ s8 input = Menu_ProcessInput();
switch (input)
{
diff --git a/src/wallclock.c b/src/wallclock.c
index 947b7f103..60a5fae07 100644
--- a/src/wallclock.c
+++ b/src/wallclock.c
@@ -792,7 +792,7 @@ static void Task_SetClock3(u8 taskId)
static void Task_SetClock4(u8 taskId)
{
- switch (Menu_ProcessInputNoWrap_())
+ switch (Menu_ProcessInputNoWrapClearOnChoose())
{
case 0:
PlaySE(SE_SELECT);
diff --git a/sym_ewram.txt b/sym_ewram.txt
index aeeb4148f..85028bc54 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -359,11 +359,7 @@ gUnknown_02039F5D: @ 2039F5D
.include "src/shop.o"
.include "src/fldeff_escalator.o"
-
- .align 2
-gUnknown_02039F90: @ 2039F90
- .space 0x4
-
+ .include "src/script_menu.o"
.include "src/naming_screen.o"
.include "src/money.o"
.include "src/record_mixing.o"