summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--asm/dodrio_berry_picking.s16
-rw-r--r--asm/overworld.s6
-rw-r--r--asm/script_menu.s2058
-rw-r--r--asm/union_room_chat.s8
-rw-r--r--baserom.ipsbin635220 -> 625796 bytes
-rw-r--r--common_syms/scrcmd.txt1
-rw-r--r--data/data_835B488.s488
-rw-r--r--data/event_scripts.s211
-rw-r--r--data/maps/BirthIsland_Harbor/scripts.inc2
-rw-r--r--data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc4
-rw-r--r--data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc10
-rw-r--r--data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc16
-rw-r--r--data/maps/CeladonCity_GameCorner/scripts.inc2
-rw-r--r--data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc6
-rw-r--r--data/maps/CeruleanCity_BikeShop/scripts.inc2
-rw-r--r--data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc10
-rw-r--r--data/maps/NavelRock_Harbor/scripts.inc2
-rw-r--r--data/maps/PewterCity_Museum_1F/scripts.inc8
-rw-r--r--data/maps/RocketHideout_Elevator/scripts.inc6
-rw-r--r--data/maps/Route25_SeaCottage/scripts.inc2
-rw-r--r--data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc4
-rw-r--r--data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc4
-rw-r--r--data/maps/TwoIsland_House/scripts.inc2
-rw-r--r--data/maps/VermilionCity/scripts.inc8
-rw-r--r--data/maps/ViridianCity_House2/scripts.inc2
-rw-r--r--data/script_menu/aerodactyl_fossil.pngbin0 -> 767 bytes
-rw-r--r--data/script_menu/kabutops_fossil.pngbin0 -> 747 bytes
-rw-r--r--data/specials.inc10
-rw-r--r--data/strings.s360
-rw-r--r--include/constants/menu.h73
-rw-r--r--include/constants/seagallop.h2
-rw-r--r--include/event_scripts.h9
-rw-r--r--include/field_effect.h2
-rw-r--r--include/quest_log.h2
-rw-r--r--include/script_menu.h6
-rw-r--r--include/seagallop.h2
-rw-r--r--include/strings.h247
-rw-r--r--ld_script.txt4
-rw-r--r--src/berry_powder.c2
-rw-r--r--src/coins.c6
-rw-r--r--src/fame_checker.c13
-rw-r--r--src/field_specials.c132
-rw-r--r--src/quest_log.c788
-rw-r--r--src/scrcmd.c20
-rw-r--r--src/script_menu.c1293
-rw-r--r--src/seagallop.c38
-rw-r--r--sym_common.txt3
-rw-r--r--sym_ewram.txt5
48 files changed, 2423 insertions, 3472 deletions
diff --git a/asm/dodrio_berry_picking.s b/asm/dodrio_berry_picking.s
index 8b2797dc8..ceccf74ff 100644
--- a/asm/dodrio_berry_picking.s
+++ b/asm/dodrio_berry_picking.s
@@ -10324,7 +10324,7 @@ _0815579C:
ldr r0, [r3]
adds r0, r7
ldrb r0, [r0]
- ldr r2, _08155858 @ =gUnknown_8417938
+ ldr r2, _08155858 @ =gText_Yes
movs r1, 0x2
mov r9, r1
str r1, [sp]
@@ -10336,7 +10336,7 @@ _0815579C:
ldr r0, [r2]
adds r0, r7
ldrb r0, [r0]
- ldr r2, _0815585C @ =gUnknown_841793C
+ ldr r2, _0815585C @ =gText_No
movs r1, 0x10
str r1, [sp]
str r5, [sp, 0x4]
@@ -10377,8 +10377,8 @@ _0815579C:
_0815584C: .4byte 0x00003008
_08155850: .4byte 0x00003009
_08155854: .4byte gUnknown_841CDD7
-_08155858: .4byte gUnknown_8417938
-_0815585C: .4byte gUnknown_841793C
+_08155858: .4byte gText_Yes
+_0815585C: .4byte gText_No
_08155860: .4byte gFameCheckerText_ListMenuCursor
_08155864: .4byte 0x00003014
_08155868:
@@ -10425,7 +10425,7 @@ _081558B0:
ldr r0, [r2]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155914 @ =gUnknown_8417938
+ ldr r2, _08155914 @ =gText_Yes
movs r3, 0x2
mov r8, r3
str r3, [sp]
@@ -10440,7 +10440,7 @@ _081558B0:
ldr r0, [r2]
adds r0, r4
ldrb r0, [r0]
- ldr r2, _08155918 @ =gUnknown_841793C
+ ldr r2, _08155918 @ =gText_No
movs r6, 0x10
str r6, [sp]
movs r3, 0xFF
@@ -10462,8 +10462,8 @@ _081558B0:
.align 2, 0
_0815590C: .4byte 0x00003020
_08155910: .4byte 0x00003009
-_08155914: .4byte gUnknown_8417938
-_08155918: .4byte gUnknown_841793C
+_08155914: .4byte gText_Yes
+_08155918: .4byte gText_No
_0815591C: .4byte gFameCheckerText_ListMenuCursor
_08155920:
str r6, [sp]
diff --git a/asm/overworld.s b/asm/overworld.s
index 2afe349ce..9b9fe037f 100644
--- a/asm/overworld.s
+++ b/asm/overworld.s
@@ -3293,7 +3293,7 @@ _080564B0:
adds r2, r4, 0
bl sub_805B3E0
_080564BA:
- bl sub_811092C
+ bl RunQuestLogCB
add sp, 0x4
pop {r4-r6}
pop {r0}
@@ -3328,7 +3328,7 @@ sub_80564C8: @ 80564C8
.align 2, 0
_08056508: .4byte gUnknown_3005E90
_0805650C:
- bl sub_811092C
+ bl RunQuestLogCB
b _08056522
_08056512:
bl sub_8111CD0
@@ -3336,7 +3336,7 @@ _08056512:
lsrs r0, 24
cmp r0, 0x1
bne _08056522
- bl sub_811092C
+ bl RunQuestLogCB
_08056522:
ldr r0, _08056530 @ =gUnknown_3005E90
bl sub_806C888
diff --git a/asm/script_menu.s b/asm/script_menu.s
deleted file mode 100644
index 56781a953..000000000
--- a/asm/script_menu.s
+++ /dev/null
@@ -1,2058 +0,0 @@
- .include "asm/macros.inc"
- .include "constants/constants.inc"
-
- .syntax unified
-
- .text
-
- thumb_func_start sub_809C954
-sub_809C954: @ 809C954
- push {lr}
- adds r1, r0, 0
- movs r0, 0x1
- movs r2, 0
- bl GetStringWidth
- adds r1, r0, 0
- adds r0, r1, 0x7
- cmp r0, 0
- bge _0809C96A
- adds r0, 0x7
-_0809C96A:
- lsls r0, 13
- lsrs r0, 16
- pop {r1}
- bx r1
- thumb_func_end sub_809C954
-
- thumb_func_start sub_809C974
-sub_809C974: @ 809C974
- push {r4-r7,lr}
- adds r7, r0, 0
- lsls r4, r1, 24
- lsrs r4, 24
- ldr r0, [r7]
- bl sub_809C954
- lsls r0, 24
- lsrs r6, r0, 24
- movs r5, 0x1
- cmp r5, r4
- bcs _0809C9AA
-_0809C98C:
- lsls r0, r5, 3
- adds r0, r7
- ldr r0, [r0]
- bl sub_809C954
- lsls r0, 24
- lsrs r0, 24
- cmp r6, r0
- bcs _0809C9A0
- adds r6, r0, 0
-_0809C9A0:
- adds r0, r5, 0x1
- lsls r0, 16
- lsrs r5, r0, 16
- cmp r5, r4
- bcc _0809C98C
-_0809C9AA:
- adds r0, r6, 0
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end sub_809C974
-
- thumb_func_start ScriptMenu_Multichoice
-ScriptMenu_Multichoice: @ 809C9B4
- 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, _0809C9F0 @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809C9F8
- ldr r0, _0809C9F4 @ =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 sub_809CA64
- movs r0, 0x1
- b _0809C9FA
- .align 2, 0
-_0809C9F0: .4byte sub_809CC98
-_0809C9F4: .4byte gSpecialVar_Result
-_0809C9F8:
- movs r0, 0
-_0809C9FA:
- add sp, 0x4
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_Multichoice
-
- thumb_func_start ScriptMenu_MultichoiceWithDefault
-ScriptMenu_MultichoiceWithDefault: @ 809CA04
- 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, _0809CA4C @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CA54
- ldr r1, _0809CA50 @ =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 sub_809CA64
- movs r0, 0x1
- b _0809CA56
- .align 2, 0
-_0809CA4C: .4byte sub_809CC98
-_0809CA50: .4byte gSpecialVar_Result
-_0809CA54:
- movs r0, 0
-_0809CA56:
- add sp, 0x4
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_MultichoiceWithDefault
-
- thumb_func_start sub_809CA64
-sub_809CA64: @ 809CA64
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x20
- ldr r4, [sp, 0x40]
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r2, 24
- mov r10, r2
- lsls r3, 24
- lsrs r3, 24
- str r3, [sp, 0x18]
- lsls r4, 24
- lsrs r4, 24
- str r4, [sp, 0x1C]
- movs r0, 0x2
- ands r0, r3
- cmp r0, 0
- bne _0809CAA6
- ldr r0, _0809CB54 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CBA2
-_0809CAA6:
- movs r0, 0x1
- ldr r1, [sp, 0x18]
- ands r1, r0
- str r1, [sp, 0x18]
- ldr r1, _0809CB58 @ =gUnknown_83E04B0
- mov r2, r10
- lsls r0, r2, 3
- adds r0, r1
- ldrb r7, [r0, 0x4]
- ldr r0, [r0]
- mov r8, r0
- movs r6, 0
- cmp r6, r7
- bge _0809CADE
- mov r5, r8
- adds r4, r7, 0
-_0809CAC6:
- ldr r1, [r5]
- movs r0, 0x2
- movs r2, 0
- bl GetStringWidth
- cmp r0, r6
- ble _0809CAD6
- adds r6, r0, 0
-_0809CAD6:
- adds r5, 0x8
- subs r4, 0x1
- cmp r4, 0
- bne _0809CAC6
-_0809CADE:
- adds r0, r6, 0
- adds r0, 0x9
- cmp r0, 0
- bge _0809CAE8
- adds r0, 0x7
-_0809CAE8:
- asrs r0, 3
- adds r0, 0x1
- lsls r0, 24
- lsrs r5, r0, 24
- mov r1, r9
- adds r0, r1, r5
- cmp r0, 0x1C
- ble _0809CB02
- movs r0, 0x1C
- subs r0, r5
- lsls r0, 24
- lsrs r0, 24
- mov r9, r0
-_0809CB02:
- adds r0, r7, 0
- bl sub_809CBB4
- adds r3, r0, 0
- lsls r3, 24
- lsrs r3, 24
- mov r0, r9
- ldr r1, [sp, 0x14]
- adds r2, r5, 0
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r5, r0, 24
- adds r0, r5, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- mov r2, r10
- cmp r2, 0x1E
- beq _0809CB32
- cmp r2, 0xD
- beq _0809CB32
- cmp r2, 0x29
- bne _0809CB5C
-_0809CB32:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r0, r8
- str r0, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl MultichoiceList_PrintItems
- b _0809CB7A
- .align 2, 0
-_0809CB54: .4byte sub_809D6D4
-_0809CB58: .4byte gUnknown_83E04B0
-_0809CB5C:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r0, 0
- str r0, [sp, 0xC]
- movs r0, 0x2
- str r0, [sp, 0x10]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0x8
- movs r3, 0x2
- bl MultichoiceList_PrintItems
-_0809CB7A:
- movs r0, 0xE
- str r0, [sp]
- str r7, [sp, 0x4]
- ldr r2, [sp, 0x1C]
- str r2, [sp, 0x8]
- adds r0, r5, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- ldr r0, [sp, 0x18]
- adds r1, r7, 0
- adds r2, r5, 0
- mov r3, r10
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809CBA2:
- add sp, 0x20
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r0}
- bx r0
- thumb_func_end sub_809CA64
-
- thumb_func_start sub_809CBB4
-sub_809CBB4: @ 809CBB4
- push {lr}
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x8
- bhi _0809CC10
- lsls r0, 2
- ldr r1, _0809CBC8 @ =_0809CBCC
- adds r0, r1
- ldr r0, [r0]
- mov pc, r0
- .align 2, 0
-_0809CBC8: .4byte _0809CBCC
- .align 2, 0
-_0809CBCC:
- .4byte _0809CC10
- .4byte _0809CBF0
- .4byte _0809CBF4
- .4byte _0809CBF8
- .4byte _0809CBFC
- .4byte _0809CC00
- .4byte _0809CC04
- .4byte _0809CC08
- .4byte _0809CC0C
-_0809CBF0:
- movs r0, 0x2
- b _0809CC12
-_0809CBF4:
- movs r0, 0x4
- b _0809CC12
-_0809CBF8:
- movs r0, 0x6
- b _0809CC12
-_0809CBFC:
- movs r0, 0x7
- b _0809CC12
-_0809CC00:
- movs r0, 0x9
- b _0809CC12
-_0809CC04:
- movs r0, 0xB
- b _0809CC12
-_0809CC08:
- movs r0, 0xD
- b _0809CC12
-_0809CC0C:
- movs r0, 0xE
- b _0809CC12
-_0809CC10:
- movs r0, 0x1
-_0809CC12:
- pop {r1}
- bx r1
- thumb_func_end sub_809CBB4
-
- thumb_func_start sub_809CC18
-sub_809CC18: @ 809CC18
- push {r4-r7,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r1, 24
- lsrs r5, r1, 24
- lsls r2, 24
- lsrs r7, r2, 24
- lsls r3, 24
- lsrs r4, r3, 24
- cmp r4, 0x27
- beq _0809CC36
- cmp r4, 0x2F
- beq _0809CC36
- cmp r4, 0x32
- bne _0809CC40
-_0809CC36:
- ldr r1, _0809CC3C @ =gUnknown_2039988
- movs r0, 0xC
- b _0809CC44
- .align 2, 0
-_0809CC3C: .4byte gUnknown_2039988
-_0809CC40:
- ldr r1, _0809CC68 @ =gUnknown_2039988
- movs r0, 0
-_0809CC44:
- strb r0, [r1]
- ldr r0, _0809CC6C @ =sub_809CC98
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r2, r0, 24
- ldr r1, _0809CC70 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r1, r0, r1
- strh r6, [r1, 0x10]
- cmp r5, 0x3
- bls _0809CC74
- movs r0, 0x1
- b _0809CC76
- .align 2, 0
-_0809CC68: .4byte gUnknown_2039988
-_0809CC6C: .4byte sub_809CC98
-_0809CC70: .4byte gTasks
-_0809CC74:
- movs r0, 0
-_0809CC76:
- strh r0, [r1, 0x12]
- ldr r1, _0809CC94 @ =gTasks
- lsls r0, r2, 2
- adds r0, r2
- lsls r0, 3
- adds r0, r1
- strh r7, [r0, 0x14]
- strh r4, [r0, 0x16]
- adds r0, r4, 0
- bl sub_809CD48
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CC94: .4byte gTasks
- thumb_func_end sub_809CC18
-
- thumb_func_start sub_809CC98
-sub_809CC98: @ 809CC98
- push {r4-r6,lr}
- lsls r0, 24
- lsrs r6, r0, 24
- lsls r0, r6, 2
- adds r0, r6
- lsls r0, 3
- ldr r1, _0809CCC4 @ =gTasks+0x8
- adds r5, r0, r1
- ldr r0, _0809CCC8 @ =gPaletteFade
- ldrb r1, [r0, 0x7]
- movs r0, 0x80
- ands r0, r1
- cmp r0, 0
- bne _0809CD3C
- ldr r1, _0809CCCC @ =gUnknown_2039988
- ldrb r0, [r1]
- cmp r0, 0
- beq _0809CCD0
- subs r0, 0x1
- strb r0, [r1]
- b _0809CD3C
- .align 2, 0
-_0809CCC4: .4byte gTasks+0x8
-_0809CCC8: .4byte gPaletteFade
-_0809CCCC: .4byte gUnknown_2039988
-_0809CCD0:
- movs r1, 0xA
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809CCDE
- bl Menu_ProcessInputNoWrapAround
- b _0809CCE2
-_0809CCDE:
- bl Menu_ProcessInput
-_0809CCE2:
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r0, _0809CD20 @ =gMain
- ldrh r1, [r0, 0x2E]
- movs r0, 0xC0
- ands r0, r1
- cmp r0, 0
- beq _0809CCF8
- ldrb r0, [r5, 0xE]
- bl sub_809CD48
-_0809CCF8:
- lsls r0, r4, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _0809CD3C
- adds r0, 0x1
- cmp r1, r0
- bne _0809CD28
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809CD3C
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809CD24 @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _0809CD2C
- .align 2, 0
-_0809CD20: .4byte gMain
-_0809CD24: .4byte gSpecialVar_Result
-_0809CD28:
- ldr r0, _0809CD44 @ =gSpecialVar_Result
- strh r1, [r0]
-_0809CD2C:
- ldrb r0, [r5, 0xC]
- bl sub_809D6B0
- adds r0, r6, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809CD3C:
- pop {r4-r6}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CD44: .4byte gSpecialVar_Result
- thumb_func_end sub_809CC98
-
- thumb_func_start sub_809CD48
-sub_809CD48: @ 809CD48
- push {r4,lr}
- sub sp, 0x10
- lsls r0, 24
- lsrs r0, 24
- adds r1, r0, 0
- cmp r0, 0x2F
- beq _0809CD78
- cmp r0, 0x2F
- bgt _0809CD60
- cmp r0, 0x27
- beq _0809CD66
- b _0809CDE0
-_0809CD60:
- cmp r1, 0x32
- beq _0809CDB0
- b _0809CDE0
-_0809CD66:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CD74 @ =gUnknown_83E072C
- b _0809CD82
- .align 2, 0
-_0809CD74: .4byte gUnknown_83E072C
-_0809CD78:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CDAC @ =gUnknown_83E0738
-_0809CD82:
- bl Menu_GetCursorPos
- 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, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
- b _0809CDE0
- .align 2, 0
-_0809CDAC: .4byte gUnknown_83E0738
-_0809CDB0:
- movs r0, 0
- movs r1, 0x11
- bl FillWindowPixelBuffer
- ldr r4, _0809CDE8 @ =gUnknown_83E0748
- bl Menu_GetCursorPos
- 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, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
-_0809CDE0:
- add sp, 0x10
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CDE8: .4byte gUnknown_83E0748
- thumb_func_end sub_809CD48
-
- thumb_func_start ScriptMenu_YesNo
-ScriptMenu_YesNo: @ 809CDEC
- push {r4,lr}
- ldr r4, _0809CE04 @ =task_yes_no_maybe
- adds r0, r4, 0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CE08
- movs r0, 0
- b _0809CE28
- .align 2, 0
-_0809CE04: .4byte task_yes_no_maybe
-_0809CE08:
- ldr r1, _0809CE30 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809CE34 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- cmp r0, 0
- bne _0809CE26
- bl DisplayYesNoMenuDefaultYes
- adds r0, r4, 0
- movs r1, 0x50
- bl CreateTask
-_0809CE26:
- movs r0, 0x1
-_0809CE28:
- pop {r4}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CE30: .4byte gSpecialVar_Result
-_0809CE34: .4byte sub_809D6D4
- thumb_func_end ScriptMenu_YesNo
-
- thumb_func_start sub_809CE38
-sub_809CE38: @ 809CE38
- push {lr}
- ldr r0, _0809CE48 @ =gSpecialVar_Result
- ldrh r0, [r0]
- cmp r0, 0xFF
- beq _0809CE4C
- movs r0, 0x1
- b _0809CE4E
- .align 2, 0
-_0809CE48: .4byte gSpecialVar_Result
-_0809CE4C:
- movs r0, 0
-_0809CE4E:
- pop {r1}
- bx r1
- thumb_func_end sub_809CE38
-
- thumb_func_start task_yes_no_maybe
-task_yes_no_maybe: @ 809CE54
- push {r4,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- ldr r1, _0809CE74 @ =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 _0809CE78
- adds r0, r2, 0x1
- strh r0, [r1, 0xC]
- b _0809CEBC
- .align 2, 0
-_0809CE74: .4byte gTasks
-_0809CE78:
- bl Menu_ProcessInputNoWrapClearOnChoose
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x1
- negs r0, r0
- cmp r1, r0
- beq _0809CE9C
- cmp r1, r0
- bgt _0809CE94
- subs r0, 0x1
- cmp r1, r0
- beq _0809CEBC
- b _0809CEB2
-_0809CE94:
- cmp r1, 0
- beq _0809CEAC
- cmp r1, 0x1
- bne _0809CEB2
-_0809CE9C:
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809CEA8 @ =gSpecialVar_Result
- movs r0, 0
- b _0809CEB0
- .align 2, 0
-_0809CEA8: .4byte gSpecialVar_Result
-_0809CEAC:
- ldr r1, _0809CEC4 @ =gSpecialVar_Result
- movs r0, 0x1
-_0809CEB0:
- strh r0, [r1]
-_0809CEB2:
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809CEBC:
- pop {r4}
- pop {r0}
- bx r0
- .align 2, 0
-_0809CEC4: .4byte gSpecialVar_Result
- thumb_func_end task_yes_no_maybe
-
- thumb_func_start ScriptMenu_MultichoiceGrid
-ScriptMenu_MultichoiceGrid: @ 809CEC8
- push {r4-r7,lr}
- mov r7, r10
- mov r6, r9
- mov r5, r8
- push {r5-r7}
- sub sp, 0x18
- ldr r4, [sp, 0x38]
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp, 0x10]
- lsls r1, 24
- lsrs r1, 24
- str r1, [sp, 0x14]
- lsls r2, 24
- lsrs r5, r2, 24
- lsls r3, 24
- lsrs r3, 24
- mov r10, r3
- lsls r4, 24
- lsrs r7, r4, 24
- ldr r0, _0809CF04 @ =sub_809CFDC
- mov r9, r0
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809CF08
- movs r0, 0
- b _0809CFBA
- .align 2, 0
-_0809CF04: .4byte sub_809CFDC
-_0809CF08:
- ldr r1, _0809CFCC @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809CFD0 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809CFB8
- ldr r1, _0809CFD4 @ =gUnknown_83E04B0
- lsls r0, r5, 3
- adds r0, r1
- ldr r1, [r0]
- mov r8, r1
- ldrb r4, [r0, 0x4]
- mov r0, r8
- adds r1, r4, 0
- bl sub_809C974
- adds r5, r0, 0
- adds r5, 0x1
- lsls r5, 24
- lsrs r5, 24
- adds r0, r4, 0
- adds r1, r7, 0
- bl __udivsi3
- adds r6, r0, 0
- lsls r6, 24
- lsrs r6, 24
- mov r0, r9
- movs r1, 0x50
- bl CreateTask
- lsls r0, 24
- lsrs r0, 24
- ldr r1, _0809CFD8 @ =gTasks
- lsls r4, r0, 2
- adds r4, r0
- lsls r4, 3
- adds r4, r1
- movs r0, 0
- mov r9, r0
- mov r1, r10
- strh r1, [r4, 0x10]
- adds r2, r5, 0
- muls r2, r7
- lsls r2, 24
- lsrs r2, 24
- lsls r3, r6, 25
- lsrs r3, 24
- ldr r0, [sp, 0x10]
- ldr r1, [sp, 0x14]
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r0, 24
- strh r0, [r4, 0x14]
- movs r1, 0
- bl SetStdWindowBorderStyle
- ldrb r0, [r4, 0x14]
- lsls r5, 27
- lsrs r5, 24
- str r7, [sp]
- str r6, [sp, 0x4]
- mov r1, r8
- str r1, [sp, 0x8]
- movs r1, 0x1
- adds r2, r5, 0
- movs r3, 0x10
- bl MultichoiceGrid_PrintItems
- ldrb r0, [r4, 0x14]
- str r5, [sp]
- str r7, [sp, 0x4]
- str r6, [sp, 0x8]
- mov r1, r9
- str r1, [sp, 0xC]
- movs r1, 0x1
- movs r2, 0
- movs r3, 0x1
- bl MultichoiceGrid_InitCursor
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809CFB8:
- movs r0, 0x1
-_0809CFBA:
- add sp, 0x18
- pop {r3-r5}
- mov r8, r3
- mov r9, r4
- mov r10, r5
- pop {r4-r7}
- pop {r1}
- bx r1
- .align 2, 0
-_0809CFCC: .4byte gSpecialVar_Result
-_0809CFD0: .4byte sub_809D6D4
-_0809CFD4: .4byte gUnknown_83E04B0
-_0809CFD8: .4byte gTasks
- thumb_func_end ScriptMenu_MultichoiceGrid
-
- thumb_func_start sub_809CFDC
-sub_809CFDC: @ 809CFDC
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r4, r0, 24
- lsls r0, r4, 2
- adds r0, r4
- lsls r0, 3
- ldr r1, _0809D018 @ =gTasks+0x8
- adds r5, r0, r1
- bl Menu_ProcessInputGridLayout
- lsls r0, 24
- asrs r1, r0, 24
- movs r0, 0x2
- negs r0, r0
- cmp r1, r0
- beq _0809D034
- adds r0, 0x1
- cmp r1, r0
- bne _0809D020
- movs r1, 0x8
- ldrsh r0, [r5, r1]
- cmp r0, 0
- bne _0809D034
- movs r0, 0x5
- bl PlaySE
- ldr r1, _0809D01C @ =gSpecialVar_Result
- movs r0, 0x7F
- strh r0, [r1]
- b _0809D024
- .align 2, 0
-_0809D018: .4byte gTasks+0x8
-_0809D01C: .4byte gSpecialVar_Result
-_0809D020:
- ldr r0, _0809D03C @ =gSpecialVar_Result
- strh r1, [r0]
-_0809D024:
- ldrb r0, [r5, 0xC]
- bl sub_809D6B0
- adds r0, r4, 0
- bl DestroyTask
- bl EnableBothScriptContexts
-_0809D034:
- pop {r4,r5}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D03C: .4byte gSpecialVar_Result
- thumb_func_end sub_809CFDC
-
- thumb_func_start ScrSpecial_CreatePCMenu
-ScrSpecial_CreatePCMenu: @ 809D040
- push {lr}
- ldr r0, _0809D060 @ =sub_809CC98
- bl FuncIsActiveTask
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809D068
- ldr r1, _0809D064 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- bl sub_809D070
- movs r0, 0x1
- b _0809D06A
- .align 2, 0
-_0809D060: .4byte sub_809CC98
-_0809D064: .4byte gSpecialVar_Result
-_0809D068:
- movs r0, 0
-_0809D06A:
- pop {r1}
- bx r1
- thumb_func_end ScrSpecial_CreatePCMenu
-
- thumb_func_start sub_809D070
-sub_809D070: @ 809D070
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r7, r0, 24
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- ldr r0, _0809D11C @ =gUnknown_8417BB6
- bl sub_809C954
- lsls r0, 16
- lsrs r0, 16
- cmp r0, 0xA
- bgt _0809D0A0
- cmp r0, 0x9
- bge _0809D0AE
-_0809D0A0:
- ldr r0, _0809D120 @ =0x00000829
- bl FlagGet
- lsls r0, 24
- movs r4, 0xD
- cmp r0, 0
- beq _0809D0B0
-_0809D0AE:
- movs r4, 0xE
-_0809D0B0:
- ldr r0, _0809D124 @ =0x0000082c
- bl FlagGet
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0
- beq _0809D134
- movs r0, 0x5
- mov r9, r0
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- movs r3, 0xA
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- ldr r2, _0809D128 @ =gUnknown_8417BD3
- movs r0, 0x22
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, _0809D12C @ =gUnknown_8417BBE
- movs r0, 0x32
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- ldr r2, _0809D130 @ =gUnknown_8417BCB
- movs r0, 0x42
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _0809D1A8
- .align 2, 0
-_0809D11C: .4byte gUnknown_8417BB6
-_0809D120: .4byte 0x00000829
-_0809D124: .4byte 0x0000082c
-_0809D128: .4byte gUnknown_8417BD3
-_0809D12C: .4byte gUnknown_8417BBE
-_0809D130: .4byte gUnknown_8417BCB
-_0809D134:
- ldr r1, _0809D1D0 @ =0x00000829
- mov r8, r1
- mov r0, r8
- bl FlagGet
- lsls r0, 24
- movs r1, 0x3
- mov r9, r1
- cmp r0, 0
- beq _0809D14C
- movs r0, 0x4
- mov r9, r0
-_0809D14C:
- mov r1, r9
- lsls r3, r1, 1
- movs r0, 0
- movs r1, 0
- adds r2, r4, 0
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r6, r0, 24
- adds r0, r6, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- mov r0, r8
- bl FlagGet
- lsls r0, 24
- cmp r0, 0
- beq _0809D188
- ldr r2, _0809D1D4 @ =gUnknown_8417BD3
- movs r0, 0x22
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D188:
- ldr r2, _0809D1D8 @ =gUnknown_8417BCB
- mov r0, r9
- subs r0, 0x1
- lsls r0, 4
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r5, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D1A8:
- ldr r0, _0809D1DC @ =0x00000834
- bl FlagGet
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0
- beq _0809D1E4
- ldr r2, _0809D1E0 @ =gUnknown_8417BAC
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
- b _0809D1FA
- .align 2, 0
-_0809D1D0: .4byte 0x00000829
-_0809D1D4: .4byte gUnknown_8417BD3
-_0809D1D8: .4byte gUnknown_8417BCB
-_0809D1DC: .4byte 0x00000834
-_0809D1E0: .4byte gUnknown_8417BAC
-_0809D1E4:
- ldr r2, _0809D248 @ =gUnknown_8417B9F
- movs r0, 0x2
- str r0, [sp]
- movs r0, 0xFF
- str r0, [sp, 0x4]
- str r1, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- adds r3, r7, 0
- bl AddTextPrinterParameterized
-_0809D1FA:
- ldr r4, _0809D24C @ =gStringVar4
- ldr r1, _0809D250 @ =gUnknown_8417BB6
- adds r0, r4, 0
- bl StringExpandPlaceholders
- adds r0, r6, 0
- adds r1, r4, 0
- adds r2, r7, 0
- movs r3, 0x12
- bl Menu_PrintFormatIntlPlayerName
- movs r0, 0x10
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- movs r0, 0
- str r0, [sp, 0x8]
- adds r0, r6, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- movs r0, 0
- mov r1, r9
- adds r2, r6, 0
- movs r3, 0xFF
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D248: .4byte gUnknown_8417B9F
-_0809D24C: .4byte gStringVar4
-_0809D250: .4byte gUnknown_8417BB6
- thumb_func_end sub_809D070
-
- thumb_func_start ScriptMenu_DisplayPCStartupPrompt
-ScriptMenu_DisplayPCStartupPrompt: @ 809D254
- push {lr}
- sub sp, 0x10
- movs r0, 0
- movs r1, 0x1
- bl sub_80F7768
- ldr r2, _0809D284 @ =gUnknown_81A508A
- 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, 0x2
- movs r3, 0
- bl AddTextPrinterParameterized2
- add sp, 0x10
- pop {r0}
- bx r0
- .align 2, 0
-_0809D284: .4byte gUnknown_81A508A
- thumb_func_end ScriptMenu_DisplayPCStartupPrompt
-
- thumb_func_start sub_809D288
-sub_809D288: @ 809D288
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D2AC @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0809D2E8
- cmp r0, 0x1
- bgt _0809D2B0
- cmp r0, 0
- beq _0809D2CE
- b _0809D2E8
- .align 2, 0
-_0809D2AC: .4byte gTasks
-_0809D2B0:
- cmp r0, 0x2
- beq _0809D2BA
- cmp r0, 0x3
- beq _0809D2DC
- b _0809D2E8
-_0809D2BA:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D2D8 @ =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl sub_8083A5C
-_0809D2CE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0809D2E8
- .align 2, 0
-_0809D2D8: .4byte gSprites
-_0809D2DC:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D2E8:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D288
-
- thumb_func_start ScriptMenu_ShowPokemonPic
-ScriptMenu_ShowPokemonPic: @ 809D2F0
- 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 r0, _0809D318 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D31C
- movs r0, 0x1
- b _0809D3C2
- .align 2, 0
-_0809D318: .4byte sub_809D6D4
-_0809D31C:
- ldr r4, _0809D3B0 @ =sub_809D288
- adds r0, r4, 0
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D3C0
- 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 sub_8083970
- 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, _0809D3B4 @ =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, _0809D3B8 @ =gSprites
- lsls r1, r5, 4
- adds r1, r5
- lsls r1, 2
- adds r0, r4, 0
- adds r0, 0x1C
- adds r0, r1, r0
- ldr r2, _0809D3BC @ =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 SetStdWindowBorderStyle
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
- movs r0, 0x1
- b _0809D3C2
- .align 2, 0
-_0809D3B0: .4byte sub_809D288
-_0809D3B4: .4byte gTasks
-_0809D3B8: .4byte gSprites
-_0809D3BC: .4byte SpriteCallbackDummy
-_0809D3C0:
- movs r0, 0
-_0809D3C2:
- pop {r3}
- mov r8, r3
- pop {r4-r7}
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_ShowPokemonPic
-
- thumb_func_start ScriptMenu_GetPicboxWaitFunc
-ScriptMenu_GetPicboxWaitFunc: @ 809D3CC
- push {lr}
- ldr r0, _0809D3F0 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _0809D3FC
- ldr r0, _0809D3F4 @ =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, _0809D3F8 @ =sub_809D404
- b _0809D3FE
- .align 2, 0
-_0809D3F0: .4byte sub_809D288
-_0809D3F4: .4byte gTasks
-_0809D3F8: .4byte sub_809D404
-_0809D3FC:
- movs r0, 0
-_0809D3FE:
- pop {r1}
- bx r1
- thumb_func_end ScriptMenu_GetPicboxWaitFunc
-
- thumb_func_start sub_809D404
-sub_809D404: @ 809D404
- push {lr}
- ldr r0, _0809D418 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- beq _0809D41C
- movs r0, 0
- b _0809D41E
- .align 2, 0
-_0809D418: .4byte sub_809D288
-_0809D41C:
- movs r0, 0x1
-_0809D41E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D404
-
- thumb_func_start sub_809D424
-sub_809D424: @ 809D424
- push {r4,r5,lr}
- ldr r0, _0809D450 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r5, r0, 24
- cmp r5, 0xFF
- beq _0809D48C
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D454 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0
- blt _0809D48C
- cmp r0, 0x2
- ble _0809D458
- cmp r0, 0x3
- beq _0809D480
- b _0809D48C
- .align 2, 0
-_0809D450: .4byte sub_809D288
-_0809D454: .4byte gTasks
-_0809D458:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D47C @ =gSprites
- adds r0, r1
- ldrb r1, [r4, 0xC]
- bl sub_8083A5C
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
- b _0809D48C
- .align 2, 0
-_0809D47C: .4byte gSprites
-_0809D480:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D48C:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D424
-
- thumb_func_start sub_809D494
-sub_809D494: @ 809D494
- push {r4,r5,lr}
- lsls r0, 24
- lsrs r5, r0, 24
- lsls r0, r5, 2
- adds r0, r5
- lsls r0, 3
- ldr r1, _0809D4B8 @ =gTasks
- adds r4, r0, r1
- movs r1, 0x8
- ldrsh r0, [r4, r1]
- cmp r0, 0x1
- beq _0809D4FC
- cmp r0, 0x1
- bgt _0809D4BC
- cmp r0, 0
- beq _0809D4DE
- b _0809D4FC
- .align 2, 0
-_0809D4B8: .4byte gTasks
-_0809D4BC:
- cmp r0, 0x2
- beq _0809D4C6
- cmp r0, 0x3
- beq _0809D4F0
- b _0809D4FC
-_0809D4C6:
- movs r0, 0xC
- ldrsh r1, [r4, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D4E8 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _0809D4EC @ =0x00001b58
- bl FreeSpriteTilesByTag
-_0809D4DE:
- ldrh r0, [r4, 0x8]
- adds r0, 0x1
- strh r0, [r4, 0x8]
- b _0809D4FC
- .align 2, 0
-_0809D4E8: .4byte gSprites
-_0809D4EC: .4byte 0x00001b58
-_0809D4F0:
- ldrb r0, [r4, 0x12]
- bl sub_809D6B0
- adds r0, r5, 0
- bl DestroyTask
-_0809D4FC:
- pop {r4,r5}
- pop {r0}
- bx r0
- thumb_func_end sub_809D494
-
- thumb_func_start sub_809D504
-sub_809D504: @ 809D504
- push {r4-r6,lr}
- mov r6, r8
- push {r6}
- ldr r0, _0809D544 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- beq _0809D5F2
- ldr r0, _0809D548 @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0xFF
- bne _0809D55C
- ldr r0, _0809D54C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x8D
- bne _0809D558
- ldr r0, _0809D550 @ =gUnknown_83E17C0
- bl LoadSpriteSheets
- ldr r0, _0809D554 @ =gUnknown_83E17A0
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
- b _0809D572
- .align 2, 0
-_0809D544: .4byte sub_809D6D4
-_0809D548: .4byte sub_809D494
-_0809D54C: .4byte gSpecialVar_0x8004
-_0809D550: .4byte gUnknown_83E17C0
-_0809D554: .4byte gUnknown_83E17A0
-_0809D558:
- cmp r0, 0x8E
- beq _0809D560
-_0809D55C:
- movs r0, 0
- b _0809D5F4
-_0809D560:
- ldr r0, _0809D600 @ =gUnknown_83E17D0
- bl LoadSpriteSheets
- ldr r0, _0809D604 @ =gUnknown_83E0F80
- movs r1, 0xE8
- lsls r1, 1
- movs r2, 0x20
- bl LoadPalette
-_0809D572:
- ldr r0, _0809D608 @ =gUnknown_83E0768
- ldr r1, _0809D60C @ =gSpecialVar_0x8005
- mov r8, r1
- ldrh r1, [r1]
- lsls r1, 19
- movs r2, 0xA0
- lsls r2, 14
- adds r1, r2
- asrs r1, 16
- ldr r6, _0809D610 @ =gSpecialVar_0x8006
- ldrh r2, [r6]
- lsls r2, 19
- movs r3, 0xA0
- lsls r3, 14
- adds r2, r3
- asrs r2, 16
- movs r3, 0
- bl CreateSprite
- adds r5, r0, 0
- lsls r5, 24
- lsrs r5, 24
- ldr r1, _0809D614 @ =gSprites
- lsls r0, r5, 4
- adds r0, r5
- lsls r0, 2
- adds r0, r1
- ldrb r2, [r0, 0x5]
- movs r1, 0xF
- ands r1, r2
- movs r2, 0xD0
- orrs r1, r2
- strb r1, [r0, 0x5]
- ldr r0, _0809D618 @ =sub_809D494
- movs r1, 0x50
- bl CreateTask
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- mov r1, r8
- ldrb r0, [r1]
- ldrb r1, [r6]
- movs r2, 0x8
- movs r3, 0x8
- bl CreateWindowFromRect
- ldr r2, _0809D61C @ =gTasks
- lsls r1, r4, 2
- adds r1, r4
- lsls r1, 3
- adds r1, r2
- lsls r0, 24
- lsrs r0, 24
- movs r2, 0
- strh r0, [r1, 0x12]
- strh r2, [r1, 0x8]
- strh r5, [r1, 0xC]
- movs r1, 0x1
- bl SetStdWindowBorderStyle
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809D5F2:
- movs r0, 0x1
-_0809D5F4:
- pop {r3}
- mov r8, r3
- pop {r4-r6}
- pop {r1}
- bx r1
- .align 2, 0
-_0809D600: .4byte gUnknown_83E17D0
-_0809D604: .4byte gUnknown_83E0F80
-_0809D608: .4byte gUnknown_83E0768
-_0809D60C: .4byte gSpecialVar_0x8005
-_0809D610: .4byte gSpecialVar_0x8006
-_0809D614: .4byte gSprites
-_0809D618: .4byte sub_809D494
-_0809D61C: .4byte gTasks
- thumb_func_end sub_809D504
-
- thumb_func_start sub_809D620
-sub_809D620: @ 809D620
- push {lr}
- ldr r0, _0809D644 @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r2, r0, 24
- cmp r2, 0xFF
- beq _0809D64C
- ldr r0, _0809D648 @ =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]
- movs r0, 0x1
- b _0809D64E
- .align 2, 0
-_0809D644: .4byte sub_809D494
-_0809D648: .4byte gTasks
-_0809D64C:
- movs r0, 0
-_0809D64E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D620
-
- thumb_func_start CreateWindowFromRect
-CreateWindowFromRect: @ 809D654
- 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, 0x38
- str r0, [sp, 0xC]
- add r0, sp, 0x10
- movs r1, 0
- adds r2, r4, 0
- adds r3, r5, 0
- bl SetWindowTemplateFields
- 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_809D6B0
-sub_809D6B0: @ 809D6B0
- push {r4,lr}
- adds r4, r0, 0
- lsls r4, 24
- lsrs r4, 24
- adds r0, r4, 0
- bl ClearWindowTilemap
- adds r0, r4, 0
- movs r1, 0x1
- bl ClearStdWindowAndFrameToTransparent
- adds r0, r4, 0
- bl RemoveWindow
- pop {r4}
- pop {r0}
- bx r0
- thumb_func_end sub_809D6B0
-
- thumb_func_start sub_809D6D4
-sub_809D6D4: @ 809D6D4
- push {lr}
- ldr r0, _0809D74C @ =EventScript_1A7AE0
- bl ScriptContext1_SetupScript
- ldr r0, _0809D750 @ =sub_809D288
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D710
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0809D754 @ =gTasks+0x8
- adds r2, r0, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bgt _0809D710
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D758 @ =gSprites
- adds r0, r1
- ldrb r1, [r2, 0x4]
- bl sub_8083A5C
-_0809D710:
- ldr r0, _0809D75C @ =sub_809D494
- bl FindTaskIdByFunc
- lsls r0, 24
- lsrs r1, r0, 24
- cmp r1, 0xFF
- beq _0809D748
- lsls r0, r1, 2
- adds r0, r1
- lsls r0, 3
- ldr r1, _0809D754 @ =gTasks+0x8
- adds r2, r0, r1
- movs r1, 0
- ldrsh r0, [r2, r1]
- cmp r0, 0x1
- bgt _0809D748
- movs r0, 0x4
- ldrsh r1, [r2, r0]
- lsls r0, r1, 4
- adds r0, r1
- lsls r0, 2
- ldr r1, _0809D758 @ =gSprites
- adds r0, r1
- bl DestroySprite
- ldr r0, _0809D760 @ =0x00001b58
- bl FreeSpriteTilesByTag
-_0809D748:
- pop {r0}
- bx r0
- .align 2, 0
-_0809D74C: .4byte EventScript_1A7AE0
-_0809D750: .4byte sub_809D288
-_0809D754: .4byte gTasks+0x8
-_0809D758: .4byte gSprites
-_0809D75C: .4byte sub_809D494
-_0809D760: .4byte 0x00001b58
- thumb_func_end sub_809D6D4
-
- thumb_func_start sub_809D764
-sub_809D764: @ 809D764
- push {r4-r7,lr}
- mov r7, r9
- mov r6, r8
- push {r6,r7}
- sub sp, 0xC
- ldr r1, _0809D7A0 @ =gSpecialVar_Result
- movs r0, 0xFF
- strh r0, [r1]
- ldr r0, _0809D7A4 @ =sub_809D6D4
- bl sub_81119D4
- lsls r0, 24
- lsrs r0, 24
- cmp r0, 0x1
- bne _0809D784
- b _0809D8A8
-_0809D784:
- ldr r0, _0809D7A8 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0809D7B0
- ldr r0, _0809D7AC @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- movs r4, 0x4
- cmp r0, 0x4
- bhi _0809D798
- movs r4, 0x5
-_0809D798:
- movs r0, 0x5
- mov r9, r0
- movs r5, 0x2
- b _0809D7B8
- .align 2, 0
-_0809D7A0: .4byte gSpecialVar_Result
-_0809D7A4: .4byte sub_809D6D4
-_0809D7A8: .4byte gSpecialVar_0x8005
-_0809D7AC: .4byte gSpecialVar_0x8004
-_0809D7B0:
- movs r4, 0
- movs r0, 0x6
- mov r9, r0
- movs r5, 0
-_0809D7B8:
- movs r0, 0x2
- movs r1, 0
- bl GetMenuCursorDimensionByFont
- lsls r0, 24
- lsrs r0, 24
- mov r8, r0
- movs r0, 0x2
- movs r1, 0x1
- bl GetFontAttribute
- mov r0, r9
- lsls r3, r0, 1
- movs r0, 0x11
- adds r1, r5, 0
- movs r2, 0xB
- bl CreateWindowFromRect
- lsls r0, 24
- lsrs r7, r0, 24
- adds r0, r7, 0
- movs r1, 0
- bl SetStdWindowBorderStyle
- movs r6, 0
- mov r5, r9
- subs r5, 0x2
- cmp r6, r5
- bge _0809D844
-_0809D7F2:
- ldr r0, _0809D820 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r4, r0
- beq _0809D828
- ldr r1, _0809D824 @ =gUnknown_83E17E0
- lsls r0, r4, 2
- adds r0, r1
- ldr r2, [r0]
- lsls r0, r6, 4
- adds r0, 0x2
- 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, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- b _0809D82E
- .align 2, 0
-_0809D820: .4byte gSpecialVar_0x8004
-_0809D824: .4byte gUnknown_83E17E0
-_0809D828:
- subs r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
-_0809D82E:
- adds r0, r4, 0x1
- lsls r0, 24
- lsrs r4, r0, 24
- cmp r4, 0x8
- bne _0809D83A
- movs r4, 0
-_0809D83A:
- adds r0, r6, 0x1
- lsls r0, 24
- lsrs r6, r0, 24
- cmp r6, r5
- blt _0809D7F2
-_0809D844:
- ldr r2, _0809D8B8 @ =gUnknown_8417DED
- lsls r0, r6, 4
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- movs r5, 0xFF
- str r5, [sp, 0x4]
- movs r4, 0
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- adds r0, r6, 0x1
- lsls r0, 24
- ldr r2, _0809D8BC @ =gOtherText_Exit
- lsrs r0, 20
- adds r0, 0x2
- lsls r0, 24
- lsrs r0, 24
- str r0, [sp]
- str r5, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- mov r3, r8
- bl AddTextPrinterParameterized
- movs r0, 0x10
- str r0, [sp]
- mov r0, r9
- str r0, [sp, 0x4]
- str r4, [sp, 0x8]
- adds r0, r7, 0
- movs r1, 0x2
- movs r2, 0
- movs r3, 0x2
- bl Menu_InitCursor
- movs r0, 0
- mov r1, r9
- adds r2, r7, 0
- movs r3, 0xFF
- bl sub_809CC18
- movs r0, 0
- bl ScheduleBgCopyTilemapToVram
-_0809D8A8:
- add sp, 0xC
- pop {r3,r4}
- mov r8, r3
- mov r9, r4
- pop {r4-r7}
- pop {r0}
- bx r0
- .align 2, 0
-_0809D8B8: .4byte gUnknown_8417DED
-_0809D8BC: .4byte gOtherText_Exit
- thumb_func_end sub_809D764
-
- thumb_func_start sub_809D8C0
-sub_809D8C0: @ 809D8C0
- push {lr}
- ldr r3, _0809D8EC @ =gSpecialVar_Result
- ldrh r2, [r3]
- adds r1, r2, 0
- cmp r1, 0x7F
- beq _0809D930
- ldr r0, _0809D8F0 @ =gSpecialVar_0x8005
- ldrh r0, [r0]
- cmp r0, 0x1
- bne _0809D924
- cmp r1, 0x3
- beq _0809D928
- cmp r1, 0x4
- beq _0809D930
- cmp r1, 0
- bne _0809D8F8
- ldr r0, _0809D8F4 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x4
- bls _0809D904
- movs r0, 0x4
- b _0809D94E
- .align 2, 0
-_0809D8EC: .4byte gSpecialVar_Result
-_0809D8F0: .4byte gSpecialVar_0x8005
-_0809D8F4: .4byte gSpecialVar_0x8004
-_0809D8F8:
- cmp r1, 0x1
- bne _0809D90C
- ldr r0, _0809D908 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x5
- bls _0809D918
-_0809D904:
- movs r0, 0x5
- b _0809D94E
- .align 2, 0
-_0809D908: .4byte gSpecialVar_0x8004
-_0809D90C:
- cmp r1, 0x2
- bne _0809D94C
- ldr r0, _0809D91C @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r0, 0x6
- bls _0809D920
-_0809D918:
- movs r0, 0x6
- b _0809D94E
- .align 2, 0
-_0809D91C: .4byte gSpecialVar_0x8004
-_0809D920:
- movs r0, 0x7
- b _0809D94E
-_0809D924:
- cmp r1, 0x4
- bne _0809D92C
-_0809D928:
- movs r0, 0xFE
- b _0809D94E
-_0809D92C:
- cmp r1, 0x5
- bne _0809D934
-_0809D930:
- movs r0, 0x7F
- b _0809D94E
-_0809D934:
- ldr r0, _0809D944 @ =gSpecialVar_0x8004
- ldrh r0, [r0]
- cmp r1, r0
- bcc _0809D948
- adds r0, r2, 0x1
- lsls r0, 16
- lsrs r0, 16
- b _0809D94E
- .align 2, 0
-_0809D944: .4byte gSpecialVar_0x8004
-_0809D948:
- ldrh r0, [r3]
- b _0809D94E
-_0809D94C:
- movs r0, 0
-_0809D94E:
- pop {r1}
- bx r1
- thumb_func_end sub_809D8C0
-
- .align 2, 0 @ Don't pad with nop.
diff --git a/asm/union_room_chat.s b/asm/union_room_chat.s
index 64cc9aa9f..0d1640699 100644
--- a/asm/union_room_chat.s
+++ b/asm/union_room_chat.s
@@ -4265,7 +4265,7 @@ sub_812A424: @ 812A424
bl PutWindowTilemap
ldr r0, [r6]
ldrb r0, [r0, 0x18]
- ldr r2, _0812A514 @ =gUnknown_8417938
+ ldr r2, _0812A514 @ =gText_Yes
movs r5, 0x2
str r5, [sp]
movs r4, 0xFF
@@ -4276,7 +4276,7 @@ sub_812A424: @ 812A424
bl AddTextPrinterParameterized
ldr r0, [r6]
ldrb r0, [r0, 0x18]
- ldr r2, _0812A518 @ =gUnknown_841793C
+ ldr r2, _0812A518 @ =gText_No
movs r1, 0x10
str r1, [sp]
str r4, [sp, 0x4]
@@ -4314,8 +4314,8 @@ _0812A504: .4byte 0xff00ffff
_0812A508: .4byte 0x00ffffff
_0812A50C: .4byte 0x0000ffff
_0812A510: .4byte gUnknown_203B0E4
-_0812A514: .4byte gUnknown_8417938
-_0812A518: .4byte gUnknown_841793C
+_0812A514: .4byte gText_Yes
+_0812A518: .4byte gText_No
thumb_func_end sub_812A424
thumb_func_start sub_812A51C
diff --git a/baserom.ips b/baserom.ips
index f619a0841..42cccca6c 100644
--- a/baserom.ips
+++ b/baserom.ips
Binary files differ
diff --git a/common_syms/scrcmd.txt b/common_syms/scrcmd.txt
new file mode 100644
index 000000000..7fb0245af
--- /dev/null
+++ b/common_syms/scrcmd.txt
@@ -0,0 +1 @@
+gUnknown_3005070
diff --git a/data/data_835B488.s b/data/data_835B488.s
index e5e7b9e90..88c12b035 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -542,492 +542,8 @@ sBerries:: @ 83DF7E8
gUnknown_83DFC9C:: @ 83DFC9C
.incbin "baserom.gba", 0x3DFC9C, 0xB4
-gUnknown_83DFD50:: @ 83DFD50
- .4byte gUnknown_8417938, NULL
- .4byte gUnknown_841793C, NULL
-
-gUnknown_83DFD60:: @ 83DFD60
- .4byte gUnknown_8417ADC, NULL
- .4byte gUnknown_8417AE3, NULL
- .4byte gUnknown_8417AE9, NULL
- .4byte gUnknown_8417AEE, NULL
-
-gUnknown_83DFD80:: @ 83DFD80
- .4byte gUnknown_84178F0, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFD90:: @ 83DFD90
- .4byte gUnknown_84178EB, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFDA0:: @ 83DFDA0
- .4byte gUnknown_84178FD, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFDB0:: @ 83DFDB0
- .4byte gUnknown_84178F0, NULL
- .4byte gUnknown_84178EB, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFDC8:: @ 83DFDC8
- .4byte gUnknown_84178F0, NULL
- .4byte gUnknown_84178FD, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFDE0:: @ 83DFDE0
- .4byte gUnknown_84178EB, NULL
- .4byte gUnknown_84178FD, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFDF8:: @ 83DFDF8
- .4byte gUnknown_84178F0, NULL
- .4byte gUnknown_84178EB, NULL
- .4byte gUnknown_84178FD, NULL
- .4byte gUnknown_8417907, NULL
-
-gUnknown_83DFE18:: @ 83DFE18
- .4byte gUnknown_8417914, NULL
- .4byte gUnknown_841790C, NULL
- .4byte gUnknown_8417910, NULL
- .4byte gUnknown_8417918, NULL
- .4byte gUnknown_841791C, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFE48:: @ 83DFE48
- .4byte gUnknown_8417938, NULL
- .4byte gUnknown_841793C, NULL
- .4byte gUnknown_84178E6, NULL
-
-gUnknown_83DFE60:: @ 83DFE60
- .4byte gUnknown_8417944, NULL
- .4byte gUnknown_8417952, NULL
- .4byte gUnknown_8417960, NULL
- .4byte gUnknown_84178E6, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFE88:: @ 83DFE88
- .4byte gUnknown_8417938, NULL
- .4byte gUnknown_841793C, NULL
- .4byte gUnknown_84178E6, NULL
-
-gUnknown_83DFEA0:: @ 83DFEA0
- .4byte gUnknown_841796D, NULL
- .4byte gUnknown_841797F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFEB8:: @ 83DFEB8
- .4byte gUnknown_841806D, NULL
- .4byte gUnknown_841805D, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFED0:: @ 83DFED0
- .4byte gUnknown_8417D56, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFEE0:: @ 83DFEE0
- .4byte gUnknown_8417D63, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFEF0:: @ 83DFEF0
- .4byte gUnknown_8417D6F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFF00:: @ 83DFF00
- .4byte gUnknown_8417D56, NULL
- .4byte gUnknown_8417D6F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFF18:: @ 83DFF18
- .4byte gUnknown_8417D63, NULL
- .4byte gUnknown_8417D6F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFF30:: @ 83DFF30
- .4byte gUnknown_8417984, NULL
- .4byte gUnknown_841799A, NULL
- .4byte gUnknown_84179AD, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFF50:: @ 83DFF50
- .4byte gUnknown_8417A42, NULL
- .4byte gUnknown_8417A58, NULL
- .4byte gUnknown_8417A6E, NULL
- .4byte gUnknown_8417A84, NULL
- .4byte gUnknown_8417A9A, NULL
- .4byte gUnknown_8417D4C, NULL
-
-gUnknown_83DFF80:: @ 83DFF80
- .4byte gUnknown_8417F4D, NULL
- .4byte gUnknown_8417ED9, NULL
- .4byte gUnknown_8417EF7, NULL
- .4byte gUnknown_8417F11, NULL
- .4byte gUnknown_8417F2F, NULL
- .4byte gUnknown_8417D4C, NULL
-
-gUnknown_83DFFB0:: @ 83DFFB0
- .4byte gUnknown_84179C0, NULL
- .4byte gUnknown_84179D6, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83DFFC8:: @ 83DFFC8
- .4byte gUnknown_84179ED, NULL
- .4byte gUnknown_84179F7, NULL
-
-gUnknown_83DFFD8:: @ 83DFFD8
- .4byte gUnknown_8417A37, NULL
- .4byte gUnknown_8417A3D, NULL
-
-gUnknown_83DFFE8:: @ 83DFFE8
- .4byte gUnknown_8417ABC, NULL
- .4byte gUnknown_8417AB9, NULL
- .4byte gUnknown_8417AB6, NULL
- .4byte gUnknown_8417AB3, NULL
- .4byte gUnknown_8417AB0, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0018:: @ 83E0018
- .4byte gUnknown_8417C0F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0028:: @ 83E0028
- .4byte gUnknown_8417C1B, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0038:: @ 83E0038
- .4byte gUnknown_8417C0F, NULL
- .4byte gUnknown_8417C1B, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0050:: @ 83E0050
- .4byte gUnknown_8417C24, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0060:: @ 83E0060
- .4byte gUnknown_8417C0F, NULL
- .4byte gUnknown_8417C24, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0078:: @ 83E0078
- .4byte gUnknown_8417C1B, NULL
- .4byte gUnknown_8417C24, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0090:: @ 83E0090
- .4byte gUnknown_8417C0F, NULL
- .4byte gUnknown_8417C1B, NULL
- .4byte gUnknown_8417C24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A02, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A0C, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A02, NULL
- .4byte gUnknown_8417A0C, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A19, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A02, NULL
- .4byte gUnknown_8417A19, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A0C, NULL
- .4byte gUnknown_8417A19, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
- .4byte gUnknown_8417A02, NULL
- .4byte gUnknown_8417A0C, NULL
- .4byte gUnknown_8417A19, NULL
- .4byte gUnknown_8417A24, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0190:: @ 83E0190
- .4byte gUnknown_8417BE2, NULL
- .4byte gUnknown_8417BE8, NULL
- .4byte gUnknown_8417BF0, NULL
- .4byte gUnknown_8417BF8, NULL
- .4byte gUnknown_8417C01, NULL
-
-gUnknown_83E01B8:: @ 83E01B8
- .4byte gUnknown_8417C33, NULL
- .4byte gUnknown_8417C4B, NULL
-
-gUnknown_83E01C8:: @ 83E01C8
- .4byte gUnknown_8417C55, NULL
- .4byte gUnknown_8417C6A, NULL
- .4byte gUnknown_8417C83, NULL
- .4byte gUnknown_8417C9D, NULL
- .4byte gUnknown_8417CB7, NULL
- .4byte gUnknown_8417D4C, NULL
-
-gUnknown_83E01F8:: @ 83E01F8
- .4byte gUnknown_8417D79, NULL
- .4byte gUnknown_8417D86, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0210:: @ 83E0210
- .4byte gUnknown_8417D90, NULL
- .4byte gUnknown_8417DA0, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0228:: @ 83E0228
- .4byte gUnknown_841805D, NULL
- .4byte gUnknown_8418061, NULL
- .4byte gUnknown_8418069, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0248:: @ 83E0248
- .4byte gUnknown_841807D, NULL
- .4byte gUnknown_841808E, NULL
- .4byte gUnknown_841809C, NULL
- .4byte gOtherText_Quit, NULL
-
-gUnknown_83E0268:: @ 83E0268
- .4byte gUnknown_8417DFE, NULL
- .4byte gUnknown_8417E09, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0280:: @ 83E0280
- .4byte gUnknown_8417DF3, NULL
- .4byte gUnknown_8417E09, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0298:: @ 83E0298
- .4byte gUnknown_8417DF3, NULL
- .4byte gUnknown_8417DFE, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E02B0:: @ 83E02B0
- .4byte gUnknown_8417D79, NULL
- .4byte gUnknown_8417E50, NULL
- .4byte gUnknown_8417E5A, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E02D0:: @ 83E02D0
- .4byte gUnknown_8417E66, NULL
- .4byte gUnknown_8417E67, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E02E8:: @ 83E02E8
- .4byte gUnknown_8417D79, NULL
- .4byte gUnknown_8417E50, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0300:: @ 83E0300
- .4byte gUnknown_8417E72, NULL
- .4byte gUnknown_8417E7F, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0318:: @ 83E0318
- .4byte gUnknown_8417E94, NULL
- .4byte gUnknown_8417EA4, NULL
-
-gUnknown_83E0328:: @ 83E0328
- .4byte gUnknown_8417D79, NULL
- .4byte gUnknown_8417E50, NULL
- .4byte gUnknown_8417E71, NULL
- .4byte gUnknown_8417E5A, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0350:: @ 83E0350
- .4byte gUnknown_8417D79, NULL
- .4byte gUnknown_8417E50, NULL
- .4byte gUnknown_8417E71, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0370:: @ 83E0370
- .4byte gUnknown_8417EB3, NULL
- .4byte gUnknown_8417EC1, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0388:: @ 83E0388
- .4byte gUnknown_8417EB3, NULL
- .4byte gUnknown_8417ECC, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E03A0:: @ 83E03A0
- .4byte gUnknown_8417EB3, NULL
- .4byte gUnknown_8417EC1, NULL
- .4byte gUnknown_8417ECC, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E03C0:: @ 83E03C0
- .4byte gUnknown_8417DF3, NULL
- .4byte gUnknown_8417DFE, NULL
- .4byte gUnknown_8417E09, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E03E0:: @ 83E03E0
- .4byte gUnknown_8417E46, NULL
- .4byte gUnknown_8417DFE, NULL
- .4byte gUnknown_8417E09, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0400:: @ 83E0400
- .4byte gUnknown_8417E46, NULL
- .4byte gUnknown_8417DF3, NULL
- .4byte gUnknown_8417E09, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0420:: @ 83E0420
- .4byte gUnknown_8417E46, NULL
- .4byte gUnknown_8417DF3, NULL
- .4byte gUnknown_8417DFE, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0440:: @ 83E0440
- .4byte gUnknown_8417E46, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0450:: @ 83E0450
- .4byte gUnknown_8417F68, NULL
- .4byte gUnknown_8417F67, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0468:: @ 83E0468
- .4byte gUnknown_8417F77, NULL
- .4byte gUnknown_8417F69, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E0480:: @ 83E0480
- .4byte gOtherText_Single, NULL
- .4byte gOtherText_Double, NULL
- .4byte gOtherText_Knockout, NULL
- .4byte gOtherText_Mixed, NULL
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E04A8:: @ 83E04A8
- .4byte gOtherText_Exit, NULL
-
-gUnknown_83E04B0:: @ 83E04B0
- .4byte gUnknown_83DFD50, 2
- .4byte gUnknown_83E0190, 5
- .4byte gUnknown_83DFD60, 4
- .4byte gUnknown_83DFD80, 2
- .4byte gUnknown_83DFD90, 2
- .4byte gUnknown_83DFDA0, 2
- .4byte gUnknown_83DFDB0, 3
- .4byte gUnknown_83DFDC8, 3
- .4byte gUnknown_83DFDE0, 3
- .4byte gUnknown_83DFDF8, 4
- .4byte gUnknown_83E04A8, 1
- .4byte gUnknown_83E04A8, 1
- .4byte gUnknown_83E04A8, 1
- .4byte gUnknown_83E01B8, 2
- .4byte gUnknown_83E01C8, 6
- .4byte gUnknown_83DFE18, 6
- .4byte gUnknown_83DFE48, 3
- .4byte gUnknown_83DFE60, 5
- .4byte gUnknown_83DFE88, 3
- .4byte gUnknown_83DFEA0, 3
- .4byte gUnknown_83DFEB8, 3
- .4byte gUnknown_83DFED0, 2
- .4byte gUnknown_83DFEE0, 2
- .4byte gUnknown_83DFEF0, 2
- .4byte gUnknown_83DFF00, 3
- .4byte gUnknown_83DFF18, 3
- .4byte gUnknown_83DFF30, 4
- .4byte gUnknown_83DFFB0, 3
- .4byte gUnknown_83DFFC8, 2
- .4byte gUnknown_83DFFD8, 2
- .4byte gUnknown_83DFF50, 6
- .4byte gUnknown_83DFFE8, 6
- .4byte gUnknown_83E0018, 2
- .4byte gUnknown_83E0028, 2
- .4byte gUnknown_83E0038, 3
- .4byte gUnknown_83E0050, 2
- .4byte gUnknown_83E0060, 3
- .4byte gUnknown_83E0078, 3
- .4byte gUnknown_83E0090, 4
- .4byte gUnknown_83E01F8, 3
- .4byte gUnknown_83E0210, 3
- .4byte gUnknown_83DFF80, 6
- .4byte gUnknown_83E0228, 4
- .4byte gUnknown_83E0248, 4
- .4byte gUnknown_83E0268, 3
- .4byte gUnknown_83E0280, 3
- .4byte gUnknown_83E0298, 3
- .4byte gUnknown_83E02B0, 4
- .4byte gUnknown_83E02D0, 3
- .4byte gUnknown_83E0300, 3
- .4byte gUnknown_83E02E8, 3
- .4byte gUnknown_83E0318, 2
- .4byte gUnknown_83E0328, 5
- .4byte gUnknown_83E0350, 4
- .4byte gUnknown_83E0370, 3
- .4byte gUnknown_83E0388, 3
- .4byte gUnknown_83E03A0, 4
- .4byte gUnknown_83E03C0, 4
- .4byte gUnknown_83E03E0, 4
- .4byte gUnknown_83E0400, 4
- .4byte gUnknown_83E0420, 4
- .4byte gUnknown_83E0440, 2
- .4byte gUnknown_83E0450, 3
- .4byte gUnknown_83E0468, 3
- .4byte gUnknown_83E0480, 5
-
-gStdStringPtrs:: @ 83E06B8
- .4byte gUnknown_8417ABF
- .4byte gUnknown_8417AC4
- .4byte gUnknown_8417ACB
- .4byte gUnknown_8417AD0
- .4byte gUnknown_8417AD6
- .4byte gUnknown_8417AF4
- .4byte gUnknown_8417AF9
- .4byte gUnknown_8417B00
- .4byte gUnknown_8417B05
- .4byte gUnknown_8417B0B
- .4byte gUnknown_8417B11
- .4byte gUnknown_8417B17
- .4byte gUnknown_8417B21
- .4byte gUnknown_8417B2C
- .4byte gUnknown_8417B36
- .4byte gUnknown_8417B3E
- .4byte gUnknown_8417B4B
- .4byte gUnknown_8417B58
- .4byte gUnknown_8417B65
- .4byte gUnknown_8417B72
- .4byte gUnknown_8417B7C
- .4byte gUnknown_8417B87
- .4byte gUnknown_8417B94
- .4byte gUnknown_8417C2D
- .4byte gUnknown_8417DA9
- .4byte gUnknown_8417DB6
- .4byte gUnknown_8417DC7
- .4byte gUnknown_8417DD9
- .4byte gUnknown_8417DE1
-
-gUnknown_83E072C:: @ 83E072C
- .incbin "baserom.gba", 0x3E072C, 0xC
-
-gUnknown_83E0738:: @ 83E0738
- .incbin "baserom.gba", 0x3E0738, 0x10
-
-gUnknown_83E0748:: @ 83E0748
- .incbin "baserom.gba", 0x3E0748, 0x20
-
-gUnknown_83E0768:: @ 83E0768
- .incbin "baserom.gba", 0x3E0768, 0x818
-
-gUnknown_83E0F80:: @ 83E0F80
- .incbin "baserom.gba", 0x3E0F80, 0x820
-
-gUnknown_83E17A0:: @ 83E17A0
- .incbin "baserom.gba", 0x3E17A0, 0x20
-
-gUnknown_83E17C0:: @ 83E17C0
- .incbin "baserom.gba", 0x3E17C0, 0x10
-
-gUnknown_83E17D0:: @ 83E17D0
- .incbin "baserom.gba", 0x3E17D0, 0x10
-
-gUnknown_83E17E0:: @ 83E17E0
- .incbin "baserom.gba", 0x3E17E0, 0xAA0
+ .section .rodata.83E2280
+ .incbin "baserom.gba", 0x3E1800, 0xA80
gUnknown_83E2280:: @ 83E2280
.incbin "baserom.gba", 0x3E2280, 0x10
diff --git a/data/event_scripts.s b/data/event_scripts.s
index 928d920f2..a3943d494 100644
--- a/data/event_scripts.s
+++ b/data/event_scripts.s
@@ -16,6 +16,7 @@
#include "constants/fame_checker.h"
#include "constants/seagallop.h"
#include "constants/game_stat.h"
+#include "constants/menu.h"
#include "constants/battle_setup.h"
.include "asm/macros.inc"
.include "asm/macros/event.inc"
@@ -24,9 +25,9 @@
.section script_data, "aw", %progbits
- .include "data/script_cmd_table.inc"
+ .include "data/script_cmd_table.inc"
- .align 2
+ .align 2
gSpecialVars:: @ 815FD0C
.4byte gSpecialVar_0x8000
.4byte gSpecialVar_0x8001
@@ -50,9 +51,9 @@ gSpecialVars:: @ 815FD0C
.4byte gSpecialVar_PrevTextColor
.4byte gUnknown_20370DE
- .include "data/specials.inc"
+ .include "data/specials.inc"
- .align 2
+ .align 2
gStdScripts:: @ 8160450
.4byte gStdScript_0
.4byte gStdScript_1
@@ -1593,11 +1594,11 @@ EventScript_1A6578:: @ 81A6578
goto_if eq, EventScript_1A7AE0
message Text_1A5483
waitmessage
- multichoice 19, 8, 0, 2
+ multichoice 19, 8, MULTICHOICE_YES_NO, FALSE | (TRUE << 1)
switch VAR_RESULT
case 0, EventScript_1A65B8
case 1 EventScript_1A6663
- case 127, EventScript_1A6663
+ case SCR_MENU_CANCEL, EventScript_1A6663
end
EventScript_1A65B8:: @ 81A65B8
@@ -1950,7 +1951,7 @@ EventScript_1A69A8:: @ 81A69A8
case 2, EventScript_1A6A7A
case 3, EventScript_1A6A56
case 4, EventScript_1A6A46
- case 127, EventScript_1A6A46
+ case SCR_MENU_CANCEL, EventScript_1A6A46
end
EventScript_1A69F0:: @ 81A69F0
@@ -4160,22 +4161,22 @@ EventScript_1A8EC5:: @ 81A8EC5
goto_if ge, EventScript_1A911E
compare_var_to_value VAR_MAP_SCENE_CINNABAR_ISLAND, 4
goto_if ge, EventScript_1A8F12
- multichoice 19, 6, 44, 0
+ multichoice 19, 6, MULTICHOICE_ISLAND_23, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FF9
case 1, EventScript_1A9004
case 2, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A8F12:: @ 81A8F12
- multichoice 19, 5, 58, 0
+ multichoice 19, 5, MULTICHOICE_SEAGALLOP_V23, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FE3
case 1, EventScript_1A8FF9
case 2, EventScript_1A9004
case 3, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A8F54:: @ 81A8F54
@@ -4183,22 +4184,22 @@ EventScript_1A8F54:: @ 81A8F54
goto_if ge, EventScript_1A911E
compare_var_to_value VAR_MAP_SCENE_CINNABAR_ISLAND, 4
goto_if ge, EventScript_1A8FA1
- multichoice 19, 6, 45, 0
+ multichoice 19, 6, MULTICHOICE_ISLAND_13, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FEE
case 1, EventScript_1A9004
case 2, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A8FA1:: @ 81A8FA1
- multichoice 19, 5, 59, 0
+ multichoice 19, 5, MULTICHOICE_SEAGALLOP_V13, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FE3
case 1, EventScript_1A8FEE
case 2, EventScript_1A9004
case 3, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A8FE3:: @ 81A8FE3
@@ -4226,22 +4227,22 @@ EventScript_1A900F:: @ 81A900F
goto_if ge, EventScript_1A911E
compare_var_to_value VAR_MAP_SCENE_CINNABAR_ISLAND, 4
goto_if ge, EventScript_1A905C
- multichoice 19, 6, 46, 0
+ multichoice 19, 6, MULTICHOICE_ISLAND_12, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FEE
case 1, EventScript_1A8FF9
case 2, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A905C:: @ 81A905C
- multichoice 19, 5, 60, 0
+ multichoice 19, 5, MULTICHOICE_SEAGALLOP_V12, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FE3
case 1, EventScript_1A8FEE
case 2, EventScript_1A8FF9
case 3, EventScript_1A90F6
- case 127, EventScript_1A90F6
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A909E:: @ 81A909E
@@ -4271,7 +4272,7 @@ EventScript_1A90DA:: @ 81A90DA
goto_if eq, EventScript_1A7AE0
special sub_8112364
fadescreen 1
- special ScrSpecial_SeaGallopFerry
+ special ScrSpecial_SeagallopFerry
waitstate
end
@@ -4296,31 +4297,31 @@ Movement_1A911C:: @ 81A911C
EventScript_1A911E:: @ 81A911E
setvar VAR_0x8005, 0
- special sub_809D764
+ special Special_DrawSeagallopDestinationMenu
waitstate
- specialvar VAR_0x8006, sub_809D8C0
+ specialvar VAR_0x8006, Special_GetSelectedSeagallopDestination
switch VAR_0x8006
- case 0, EventScript_1A91D5
- case 1, EventScript_1A91E0
- case 2, EventScript_1A91EB
- case 3, EventScript_1A91F6
- case 4, EventScript_1A9201
- case 254, EventScript_1A917F
- case 127, EventScript_1A90F6
+ case SEAGALLOP_VERMILION_CITY, EventScript_1A91D5
+ case SEAGALLOP_ONE_ISLAND, EventScript_1A91E0
+ case SEAGALLOP_TWO_ISLAND, EventScript_1A91EB
+ case SEAGALLOP_THREE_ISLAND, EventScript_1A91F6
+ case SEAGALLOP_FOUR_ISLAND, EventScript_1A9201
+ case SEAGALLOP_MORE, EventScript_1A917F
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A917F:: @ 81A917F
setvar VAR_0x8005, 1
- special sub_809D764
+ special Special_DrawSeagallopDestinationMenu
waitstate
- specialvar VAR_0x8006, sub_809D8C0
+ specialvar VAR_0x8006, Special_GetSelectedSeagallopDestination
switch VAR_0x8006
- case 4, EventScript_1A9201
- case 5, EventScript_1A920C
- case 6, EventScript_1A9217
- case 7, EventScript_1A9222
- case 254, EventScript_1A911E
- case 127, EventScript_1A90F6
+ case SEAGALLOP_FOUR_ISLAND, EventScript_1A9201
+ case SEAGALLOP_FIVE_ISLAND, EventScript_1A920C
+ case SEAGALLOP_SIX_ISLAND, EventScript_1A9217
+ case SEAGALLOP_SEVEN_ISLAND, EventScript_1A9222
+ case SEAGALLOP_MORE, EventScript_1A911E
+ case SCR_MENU_CANCEL, EventScript_1A90F6
end
EventScript_1A91D5:: @ 81A91D5
@@ -7877,7 +7878,7 @@ CeladonCity_GameCorner_EventScript_1B2867:: @ 81B2867
waitse
message gUnknown_81B1E24
waitmessage
- multichoice 21, 0, 2, 1
+ multichoice 21, 0, MULTICHOICE_TRAINER_CARD_ICON_TINT, TRUE
switch VAR_RESULT
case 0, EventScript_1B28DB
case 1, EventScript_1B28E6
@@ -8003,64 +8004,64 @@ EventScript_1B29D0:: @ 81B29D0
end
EventScript_1B2A23:: @ 81B2A23
- multichoice 15, 8, 3, 0
+ multichoice 15, 8, MULTICHOICE_HOF_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2B98
case 1, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2A4F:: @ 81B2A4F
- multichoice 16, 8, 4, 0
+ multichoice 16, 8, MULTICHOICE_EGGS_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2C62
case 1, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2A7B:: @ 81B2A7B
- multichoice 15, 8, 5, 0
+ multichoice 15, 8, MULTICHOICE_VICTORIES_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2D2C
case 1, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2AA7:: @ 81B2AA7
- multichoice 15, 6, 6, 0
+ multichoice 15, 6, MULTICHOICE_HOF_EGGS_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2B98
case 1, EventScript_1B2C62
case 2, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2ADE:: @ 81B2ADE
- multichoice 15, 6, 7, 0
+ multichoice 15, 6, MULTICHOICE_HOF_VICTORIES_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2B98
case 1, EventScript_1B2D2C
case 2, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2B15:: @ 81B2B15
- multichoice 15, 6, 8, 0
+ multichoice 15, 6, MULTICHOICE_EGGS_VICTORIES_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2C62
case 1, EventScript_1B2D2C
case 2, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2B4C:: @ 81B2B4C
- multichoice 15, 5, 9, 0
+ multichoice 15, 5, MULTICHOICE_HOF_EGGS_VICTORIES_QUIT, FALSE
switch VAR_RESULT
case 0, EventScript_1B2B98
case 1, EventScript_1B2C62
case 2, EventScript_1B2D2C
case 3, EventScript_1B2DF6
- case 127, EventScript_1B2DF6
+ case SCR_MENU_CANCEL, EventScript_1B2DF6
end
EventScript_1B2B8E:: @ 81B2B8E
@@ -8369,16 +8370,14 @@ ThreeIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED
TwoIsland_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED
VermilionCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED
ViridianCity_PokemonCenter_2F_MapScript2_1BB1ED:: @ 81BB1ED
- multichoice 64, 1, 0, 39
- showelevmenu
- compare_local_to_local 8, 111
- setdivewarp MAP_NAVEL_ROCK_EXTERIOR, 39, 7090, 28424
- setdivewarp MAP_VIRIDIAN_CITY_HOUSE1, 39, 7090, 28424
- setdivewarp MAP_PALLET_TOWN, 39, 7090, 28424
- setdivewarp MAP_PEWTER_CITY_MUSEUM_1F, 39, 7090, 28424
- setdivewarp MAP_CERULEAN_CITY_HOUSE1, 39, 7090, 28424
- setdivewarp MAP_LAVENDER_TOWN_POKEMON_CENTER_1F, 39, 7090, 8
- nop
+ map_script_2 VAR_0x406F, 1, EventScript_1BB227
+ map_script_2 VAR_0x406F, 2, EventScript_1BB227
+ map_script_2 VAR_0x406F, 5, EventScript_1BB227
+ map_script_2 VAR_0x406F, 3, EventScript_1BB227
+ map_script_2 VAR_0x406F, 6, EventScript_1BB227
+ map_script_2 VAR_0x406F, 7, EventScript_1BB227
+ map_script_2 VAR_0x406F, 8, EventScript_1BB227
+ .2byte 0
EventScript_1BB227:: @ 81BB227
compare_var_to_value VAR_0x8007, 0
@@ -8608,12 +8607,12 @@ EventScript_1BB459:: @ 81BB459
EventScript_1BB467:: @ 81BB467
setvar VAR_0x8004, 0
- multichoice 0, 0, 39, 0
+ multichoice 0, 0, MULTICHOICE_TRADE_CENTER_COLOSSEUM, FALSE
switch VAR_RESULT
case 0, EventScript_1BB6AB
case 1, EventScript_1BB4A3
case 2, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BB4A3:: @ 81BB4A3
@@ -8626,14 +8625,14 @@ EventScript_1BB4AD:: @ 81BB4AD
EventScript_1BB4AE:: @ 81BB4AE
message Text_1BD338
waitmessage
- multichoice 0, 0, 17, 0
+ multichoice 0, 0, MULTICHOICE_SINGLE_DOUBLE_MULTI_INFO_EXIT, FALSE
switch VAR_RESULT
case 0, EventScript_1BB50F
case 1, EventScript_1BB51A
case 2, EventScript_1BB541
case 3, EventScript_1BB501
case 4, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BB501:: @ 81BB501
@@ -9199,12 +9198,12 @@ EventScript_1BBA50:: @ 81BBA50
end
EventScript_1BBA51:: @ 81BBA51
- multichoice 18, 6, 16, 0
+ multichoice 18, 6, MULTICHOICE_YES_NO_INFO, FALSE
switch VAR_RESULT
case 0, EventScript_1BBA94
case 1, EventScript_1BB82F
case 2, EventScript_1BBA88
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBA88:: @ 81BBA88
@@ -9323,22 +9322,22 @@ EventScript_1BBBE6:: @ 81BBBE6
EventScript_1BBBE7:: @ 81BBBE7
checkflag FLAG_GOT_POWDER_JAR
goto_if FALSE, EventScript_1BBC32
- multichoice 0, 0, 47, 0
+ multichoice 0, 0, MULTICHOICE_TRADE_COLOSSEUM_CRUSH, FALSE
switch VAR_RESULT
case 0, EventScript_1BBC69
case 1, EventScript_1BBC97
case 2, EventScript_1BBD35
case 3, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBC32:: @ 81BBC32
- multichoice 0, 0, 50, 0
+ multichoice 0, 0, MULTICHOICE_TRADE_COLOSSEUM_2, FALSE
switch VAR_RESULT
case 0, EventScript_1BBC69
case 1, EventScript_1BBC97
case 2, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBC69:: @ 81BBC69
@@ -9357,14 +9356,14 @@ EventScript_1BBC96:: @ 81BBC96
EventScript_1BBC97:: @ 81BBC97
message Text_1BD338
waitmessage
- multichoice 0, 0, 17, 0
+ multichoice 0, 0, MULTICHOICE_SINGLE_DOUBLE_MULTI_INFO_EXIT, FALSE
switch VAR_RESULT
case 0, EventScript_1BBCEA
case 1, EventScript_1BBCF5
case 2, EventScript_1BBD1C
case 3, EventScript_1BBD27
case 4, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBCEA:: @ 81BBCEA
@@ -9442,12 +9441,12 @@ EventScript_1BBDBC:: @ 81BBDBC
message Text_1BD51B
waitmessage
call EventScript_1A6675
- multichoice 13, 6, 63, 0
+ multichoice 13, 6, MULTICHOICE_JOIN_OR_LEAD, FALSE
switch VAR_RESULT
case 0, EventScript_1BBE28
case 1, EventScript_1BBE00
case 2, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBE00:: @ 81BBE00
@@ -9477,12 +9476,12 @@ EventScript_1BBE50:: @ 81BBE50
message Text_1BD582
waitmessage
call EventScript_1A6675
- multichoice 13, 6, 63, 0
+ multichoice 13, 6, MULTICHOICE_JOIN_OR_LEAD, FALSE
switch VAR_RESULT
case 0, EventScript_1BBEBC
case 1, EventScript_1BBE94
case 2, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBE94:: @ 81BBE94
@@ -9512,12 +9511,12 @@ EventScript_1BBEE4:: @ 81BBEE4
message Text_1BD5F1
waitmessage
call EventScript_1A6675
- multichoice 13, 6, 63, 0
+ multichoice 13, 6, MULTICHOICE_JOIN_OR_LEAD, FALSE
switch VAR_RESULT
case 0, EventScript_1BBF50
case 1, EventScript_1BBF28
case 2, EventScript_1BB82F
- case 127, EventScript_1BB82F
+ case SCR_MENU_CANCEL, EventScript_1BB82F
end
EventScript_1BBF28:: @ 81BBF28
@@ -9659,12 +9658,12 @@ EventScript_1BC060:: @ 81BC060
faceplayer
message Text_1BCCFF
waitmessage
- multichoice 0, 0, 49, 0
+ multichoice 0, 0, MULTICHOICE_POKEJUMP_DODRIO, FALSE
switch VAR_RESULT
case 0, EventScript_1BC0B0
case 1, EventScript_1BC0BA
case 2, EventScript_1BC0C4
- case 127, EventScript_1BC0C4
+ case SCR_MENU_CANCEL, EventScript_1BC0C4
end
EventScript_1BC0B0:: @ 81BC0B0
@@ -9698,12 +9697,12 @@ EventScript_1BC0CE:: @ 81BC0CE
special HelpSystem_Disable
message Text_1BD02D
waitmessage
- multichoice 0, 0, 49, 0
+ multichoice 0, 0, MULTICHOICE_POKEJUMP_DODRIO, FALSE
switch VAR_RESULT
case 0, EventScript_1BC13A
case 1, EventScript_1BC184
case 2, EventScript_1BB83F
- case 127, EventScript_1BB83F
+ case SCR_MENU_CANCEL, EventScript_1BB83F
end
EventScript_1BC13A:: @ 81BC13A
@@ -9751,12 +9750,12 @@ EventScript_1BC1CE:: @ 81BC1CE
message Text_1BD5F1
waitmessage
call EventScript_1A6675
- multichoice 13, 6, 63, 0
+ multichoice 13, 6, MULTICHOICE_JOIN_OR_LEAD, FALSE
switch VAR_RESULT
case 0, EventScript_1BC23A
case 1, EventScript_1BC212
case 2, EventScript_1BB83F
- case 127, EventScript_1BB83F
+ case SCR_MENU_CANCEL, EventScript_1BB83F
end
EventScript_1BC212:: @ 81BC212
@@ -11303,12 +11302,12 @@ EventScript_1BEE3A:: @ 81BEE3A
EventScript_1BEE44:: @ 81BEE44
message Text_1BF017
waitmessage
- multichoice 18, 6, 18, 0
+ multichoice 18, 6, MULTICHOICE_YES_NO_INFO_2, FALSE
switch VAR_RESULT
case 0, EventScript_1BEE8F
case 1, EventScript_1BEEC3
case 2, EventScript_1BEE81
- case 127, EventScript_1BEEC3
+ case SCR_MENU_CANCEL, EventScript_1BEEC3
end
EventScript_1BEE81:: @ 81BEE81
@@ -11350,12 +11349,12 @@ EventScript_1BEECD:: @ 81BEECD
EventScript_1BEEDB:: @ 81BEEDB
message Text_1BF1FB
waitmessage
- multichoice 18, 6, 18, 0
+ multichoice 18, 6, MULTICHOICE_YES_NO_INFO_2, FALSE
switch VAR_RESULT
case 0, EventScript_1BEF26
case 1, EventScript_1BEF35
case 2, EventScript_1BEF18
- case 127, EventScript_1BEF35
+ case SCR_MENU_CANCEL, EventScript_1BEF35
end
EventScript_1BEF18:: @ 81BEF18
@@ -13429,7 +13428,7 @@ VictoryRoad_2F_EventScript_1C47AE:: @ 81C47AE
goto_if eq, EventScript_1C4802
setflag FLAG_TUTOR_DOUBLE_EDGE
goto EventScript_1C480C
- end
+ end
EventScript_1C4802:: @ 81C4802
msgbox Text_174ABC
@@ -13459,7 +13458,7 @@ EventScript_1C4816:: @ 81C4816
goto_if eq, EventScript_1C486A
setflag FLAG_TUTOR_THUNDER_WAVE
goto EventScript_1C4874
- end
+ end
EventScript_1C486A:: @ 81C486A
msgbox Text_17579D
@@ -13489,7 +13488,7 @@ RockTunnel_B1F_EventScript_1C487E:: @ 81C487E
goto_if eq, EventScript_1C48D2
setflag FLAG_TUTOR_ROCK_SLIDE
goto EventScript_1C48DC
- end
+ end
EventScript_1C48D2:: @ 81C48D2
msgbox Text_179AC0
@@ -13519,7 +13518,7 @@ MtEmber_Exterior_EventScript_1C48E6:: @ 81C48E6
goto_if eq, EventScript_1C493A
setflag FLAG_TUTOR_EXPLOSION
goto EventScript_1C4944
- end
+ end
EventScript_1C493A:: @ 81C493A
msgbox Text_17A6ED
@@ -13549,7 +13548,7 @@ Route4_EventScript_1C494E:: @ 81C494E
goto_if eq, EventScript_1C49A2
setflag FLAG_TUTOR_META_PUNCH
goto EventScript_1C49AC
- end
+ end
EventScript_1C49A2:: @ 81C49A2
msgbox Text_183A83
@@ -13579,7 +13578,7 @@ Route4_EventScript_1C49B6:: @ 81C49B6
goto_if eq, EventScript_1C4A0A
setflag FLAG_TUTOR_MEGA_KICK
goto EventScript_1C4A14
- end
+ end
EventScript_1C4A0A:: @ 81C4A0A
msgbox Text_183C25
@@ -13609,7 +13608,7 @@ EventScript_1C4A1E:: @ 81C4A1E
goto_if eq, EventScript_1C4A72
setflag FLAG_TUTOR_DREAM_EATER
goto EventScript_1C4A7C
- end
+ end
EventScript_1C4A72:: @ 81C4A72
msgbox Text_17E3E9
@@ -13639,7 +13638,7 @@ EventScript_1C4A86:: @ 81C4A86
goto_if eq, EventScript_1C4ADA
setflag FLAG_TUTOR_SOFT_BOILED
goto EventScript_1C4AE4
- end
+ end
EventScript_1C4ADA:: @ 81C4ADA
msgbox Text_18043F
@@ -13669,7 +13668,7 @@ FuchsiaCity_EventScript_1C4AEE:: @ 81C4AEE
goto_if eq, EventScript_1C4B42
setflag FLAG_TUTOR_SUBSTITUTE
goto EventScript_1C4B4C
- end
+ end
EventScript_1C4B42:: @ 81C4B42
msgbox Text_180A32
@@ -13699,7 +13698,7 @@ SevenIsland_EventScript_1C4B56:: @ 81C4B56
goto_if eq, EventScript_1C4BAA
setflag FLAG_TUTOR_SWORDS_DANCE
goto EventScript_1C4BB4
- end
+ end
EventScript_1C4BAA:: @ 81C4BAA
msgbox Text_182FC1
@@ -13729,7 +13728,7 @@ PewterCity_Museum_1F_EventScript_1C4BBE:: @ 81C4BBE
goto_if eq, EventScript_1C4C12
setflag FLAG_TUTOR_SEISMIC_TOSS
goto EventScript_1C4C1C
- end
+ end
EventScript_1C4C12:: @ 81C4C12
msgbox Text_190AA9
@@ -13759,7 +13758,7 @@ EventScript_1C4C26:: @ 81C4C26
goto_if eq, EventScript_1C4C7A
setflag FLAG_TUTOR_COUNTER
goto EventScript_1C4C84
- end
+ end
EventScript_1C4C7A:: @ 81C4C7A
msgbox Text_1959CC
@@ -13789,7 +13788,7 @@ EventScript_1C4C8E:: @ 81C4C8E
goto_if eq, EventScript_1C4CE2
setflag FLAG_TUTOR_METRONOME
goto EventScript_1C4CEC
- end
+ end
EventScript_1C4CE2:: @ 81C4CE2
msgbox Text_19A1CB
@@ -13820,7 +13819,7 @@ EventScript_1C4CF6:: @ 81C4CF6
removeitem ITEM_POKE_DOLL, 1
setflag FLAG_TUTOR_MIMIC
goto EventScript_1C4D59
- end
+ end
EventScript_1C4D4F:: @ 81C4D4F
msgbox Text_19ADD8
@@ -13862,7 +13861,7 @@ FourIsland_House1_EventScript_1C4D84:: @ 81C4D84
goto_if eq, EventScript_1C4DD8
setflag FLAG_TUTOR_BODY_SLAM
goto EventScript_1C4DE2
- end
+ end
EventScript_1C4DD8:: @ 81C4DD8
msgbox Text_1A35C7
@@ -14503,7 +14502,7 @@ gText_PlayerSavedTheGame:: @ 81C5647
.string "{PLAYER} saved the game.$"
gUnknown_81C565A::
- .string "セーブに しっぱい しました‥$"
+ .string "セーブに しっぱい しました‥$"
gText_DifferentGameFile:: @ 81C566A
.string "WARNING!\p"
diff --git a/data/maps/BirthIsland_Harbor/scripts.inc b/data/maps/BirthIsland_Harbor/scripts.inc
index ea213a771..6df635f1a 100644
--- a/data/maps/BirthIsland_Harbor/scripts.inc
+++ b/data/maps/BirthIsland_Harbor/scripts.inc
@@ -7,7 +7,7 @@ BirthIsland_Harbor_EventScript_1653E7:: @ 81653E7
message Text_181726
waitmessage
setvar VAR_0x8004, SEAGALLOP_BIRTH_ISLAND
- multichoice 20, 8, 61, 0
+ multichoice 20, 8, MULTICHOICE_SEAGALLOP_VERMILION, FALSE
switch VAR_RESULT
case 0, EventScript_1A91D5
case 1, EventScript_1A90F6
diff --git a/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc b/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc
index 3ffdd24f6..a18215910 100644
--- a/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc
+++ b/data/maps/CeladonCity_Condominiums_RoofRoom/scripts.inc
@@ -68,7 +68,7 @@ CeladonCity_Condominiums_RoofRoom_EventScript_16C522:: @ 816C522
message Text_1965F4
waitmessage
setvar VAR_0x8004, 4
- multichoice 0, 0, 43, 0
+ multichoice 0, 0, MULTICHOICE_LINKED_DIRECT_UNION, FALSE
switch VAR_RESULT
case 0, EventScript_16C5C0
case 1, EventScript_16C5CE
@@ -80,7 +80,7 @@ CeladonCity_Condominiums_RoofRoom_EventScript_16C522:: @ 816C522
EventScript_16C578:: @ 816C578
message Text_1965F4
waitmessage
- multichoice 0, 0, 43, 0
+ multichoice 0, 0, MULTICHOICE_LINKED_DIRECT_UNION, FALSE
switch VAR_RESULT
case 0, EventScript_16C5C0
case 1, EventScript_16C5CE
diff --git a/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc
index 0e2673614..3fcd14e8a 100644
--- a/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc
+++ b/data/maps/CeladonCity_DepartmentStore_Elevator/scripts.inc
@@ -21,29 +21,29 @@ CeladonCity_DepartmentStore_Elevator_EventScript_16C153:: @ 816C153
end
EventScript_16C1B7:: @ 816C1B7
- multichoicedefault 0, 0, 31, 0, 0
+ multichoicedefault 0, 0, MULTICHOICE_DEPT_STORE_ELEVATOR, 0, FALSE
goto EventScript_16C1F3
EventScript_16C1C2:: @ 816C1C2
end
EventScript_16C1C3:: @ 816C1C3
- multichoicedefault 0, 0, 31, 1, 0
+ multichoicedefault 0, 0, MULTICHOICE_DEPT_STORE_ELEVATOR, 1, FALSE
goto EventScript_16C1F3
end
EventScript_16C1CF:: @ 816C1CF
- multichoicedefault 0, 0, 31, 2, 0
+ multichoicedefault 0, 0, MULTICHOICE_DEPT_STORE_ELEVATOR, 2, FALSE
goto EventScript_16C1F3
end
EventScript_16C1DB:: @ 816C1DB
- multichoicedefault 0, 0, 31, 3, 0
+ multichoicedefault 0, 0, MULTICHOICE_DEPT_STORE_ELEVATOR, 3, FALSE
goto EventScript_16C1F3
end
EventScript_16C1E7:: @ 816C1E7
- multichoicedefault 0, 0, 31, 4, 0
+ multichoicedefault 0, 0, MULTICHOICE_DEPT_STORE_ELEVATOR, 4, FALSE
goto EventScript_16C1F3
end
diff --git a/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc
index 805775505..6e5c8a284 100644
--- a/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc
+++ b/data/maps/CeladonCity_DepartmentStore_Roof/scripts.inc
@@ -58,7 +58,7 @@ EventScript_16BD3E:: @ 816BD3E
end
EventScript_16BDAE:: @ 816BDAE
- multichoice 0, 0, 32, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_FRESH_WATER, FALSE
switch VAR_RESULT
case 0, EventScript_16BF19
case 1, EventScript_16C00C
@@ -66,7 +66,7 @@ EventScript_16BDAE:: @ 816BDAE
end
EventScript_16BDDA:: @ 816BDDA
- multichoice 0, 0, 33, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_SODA_POP, FALSE
switch VAR_RESULT
case 0, EventScript_16BF3A
case 1, EventScript_16C00C
@@ -74,7 +74,7 @@ EventScript_16BDDA:: @ 816BDDA
end
EventScript_16BE06:: @ 816BE06
- multichoice 0, 0, 34, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_SODA_POP, FALSE
switch VAR_RESULT
case 0, EventScript_16BF19
case 1, EventScript_16BF3A
@@ -83,7 +83,7 @@ EventScript_16BE06:: @ 816BE06
end
EventScript_16BE3D:: @ 816BE3D
- multichoice 0, 0, 35, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_LEMONADE, FALSE
switch VAR_RESULT
case 0, EventScript_16BF5B
case 1, EventScript_16C00C
@@ -91,7 +91,7 @@ EventScript_16BE3D:: @ 816BE3D
end
EventScript_16BE69:: @ 816BE69
- multichoice 0, 0, 36, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_LEMONADE, FALSE
switch VAR_RESULT
case 0, EventScript_16BF19
case 1, EventScript_16BF5B
@@ -100,7 +100,7 @@ EventScript_16BE69:: @ 816BE69
end
EventScript_16BEA0:: @ 816BEA0
- multichoice 0, 0, 37, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_SODA_POP_LEMONADE, FALSE
switch VAR_RESULT
case 0, EventScript_16BF3A
case 1, EventScript_16BF5B
@@ -109,7 +109,7 @@ EventScript_16BEA0:: @ 816BEA0
end
EventScript_16BED7:: @ 816BED7
- multichoice 0, 0, 38, 0
+ multichoice 0, 0, MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_SODA_POP_LEMONADE, FALSE
switch VAR_RESULT
case 0, EventScript_16BF19
case 1, EventScript_16BF3A
@@ -220,7 +220,7 @@ CeladonCity_DepartmentStore_Roof_EventScript_16C034:: @ 816C034
end
EventScript_16C045:: @ 816C045
- multichoice 12, 0, 26, 0
+ multichoice 12, 0, MULTICHOICE_CELADON_VENDING_MACHINE, FALSE
copyvar VAR_0x4001, VAR_RESULT
switch VAR_0x4001
case 0, EventScript_16C083
diff --git a/data/maps/CeladonCity_GameCorner/scripts.inc b/data/maps/CeladonCity_GameCorner/scripts.inc
index dd528c1ec..487d9fa64 100644
--- a/data/maps/CeladonCity_GameCorner/scripts.inc
+++ b/data/maps/CeladonCity_GameCorner/scripts.inc
@@ -29,7 +29,7 @@ CeladonCity_GameCorner_EventScript_16C68D:: @ 816C68D
showcoinsbox 0, 5
message Text_196984
waitmessage
- multichoice 13, 0, 27, 0
+ multichoice 13, 0, MULTICHOICE_GAME_CORNER_COIN_PURCHASE_COUNTER, FALSE
copyvar VAR_0x8009, VAR_RESULT
switch VAR_RESULT
case 0, EventScript_16C6E6
diff --git a/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc
index 70d9121eb..01ad2b414 100644
--- a/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc
+++ b/data/maps/CeladonCity_GameCorner_PrizeRoom/scripts.inc
@@ -25,7 +25,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CB88:: @ 816CB88
EventScript_16CBB2:: @ 816CBB2
message Text_19707A
waitmessage
- multichoice 11, 0, 14, 0
+ multichoice 11, 0, MULTICHOICE_GAME_CORNER_POKEMON_PRIZES, FALSE
switch VAR_RESULT
case 0, EventScript_16CC15
case 1, EventScript_16CC25
@@ -204,7 +204,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CE1D:: @ 816CE1D
EventScript_16CE47:: @ 816CE47
message Text_19707A
waitmessage
- multichoice 11, 0, 30, 0
+ multichoice 11, 0, MULTICHOICE_GAME_CORNER_TMPRIZES, FALSE
switch VAR_RESULT
case 0, EventScript_16CEA5
case 1, EventScript_16CEB9
@@ -302,7 +302,7 @@ CeladonCity_GameCorner_PrizeRoom_EventScript_16CF88:: @ 816CF88
EventScript_16CFB2:: @ 816CFB2
message Text_19707A
waitmessage
- multichoice 10, 0, 41, 0
+ multichoice 10, 0, MULTICHOICE_GAME_CORNER_BATTLE_ITEM_PRIZES, FALSE
switch VAR_RESULT
case 0, EventScript_16D010
case 1, EventScript_16D020
diff --git a/data/maps/CeruleanCity_BikeShop/scripts.inc b/data/maps/CeruleanCity_BikeShop/scripts.inc
index 1091e75cb..40302e25f 100644
--- a/data/maps/CeruleanCity_BikeShop/scripts.inc
+++ b/data/maps/CeruleanCity_BikeShop/scripts.inc
@@ -11,7 +11,7 @@ CeruleanCity_BikeShop_EventScript_16ABBD:: @ 816ABBD
showmoneybox 0, 0, 0
message Text_192755
waitmessage
- multichoice 11, 0, 13, 0
+ multichoice 11, 0, MULTICHOICE_BIKE_SHOP, FALSE
switch VAR_RESULT
case 0, EventScript_16AC07
case 1, EventScript_16AC15
diff --git a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc
index ad8b416cd..27fb47f63 100644
--- a/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc
+++ b/data/maps/CinnabarIsland_PokemonLab_ExperimentRoom/scripts.inc
@@ -103,7 +103,7 @@ EventScript_16E544:: @ 816E544
call EventScript_16E51C
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_16E5FA
- multichoice 0, 0, 21, 0
+ multichoice 0, 0, MULTICHOICE_HELIX, FALSE
switch VAR_RESULT
case 0, EventScript_16E668
case 1, EventScript_16E53A
@@ -116,7 +116,7 @@ EventScript_16E586:: @ 816E586
call EventScript_16E51C
compare_var_to_value VAR_RESULT, 1
goto_if eq, EventScript_16E631
- multichoice 0, 0, 22, 0
+ multichoice 0, 0, MULTICHOICE_DOME, FALSE
switch VAR_RESULT
case 0, EventScript_16E6A6
case 1, EventScript_16E53A
@@ -126,7 +126,7 @@ EventScript_16E586:: @ 816E586
EventScript_16E5C8:: @ 816E5C8
message Text_19A282
waitmessage
- multichoice 0, 0, 23, 0
+ multichoice 0, 0, MULTICHOICE_AMBER, FALSE
switch VAR_RESULT
case 0, EventScript_16E6E4
case 1, EventScript_16E53A
@@ -134,7 +134,7 @@ EventScript_16E5C8:: @ 816E5C8
end
EventScript_16E5FA:: @ 816E5FA
- multichoice 0, 0, 24, 0
+ multichoice 0, 0, MULTICHOICE_HELIX_AMBER, FALSE
switch VAR_RESULT
case 0, EventScript_16E668
case 1, EventScript_16E6E4
@@ -143,7 +143,7 @@ EventScript_16E5FA:: @ 816E5FA
end
EventScript_16E631:: @ 816E631
- multichoice 0, 0, 25, 0
+ multichoice 0, 0, MULTICHOICE_DOME_AMBER, FALSE
switch VAR_RESULT
case 0, EventScript_16E6A6
case 1, EventScript_16E6E4
diff --git a/data/maps/NavelRock_Harbor/scripts.inc b/data/maps/NavelRock_Harbor/scripts.inc
index 8cb8dd796..60832d168 100644
--- a/data/maps/NavelRock_Harbor/scripts.inc
+++ b/data/maps/NavelRock_Harbor/scripts.inc
@@ -8,7 +8,7 @@ NavelRock_Harbor_EventScript_165421:: @ 8165421
message Text_181726
waitmessage
setvar VAR_0x8004, SEAGALLOP_NAVEL_ROCK
- multichoice 20, 8, 61, 0
+ multichoice 20, 8, MULTICHOICE_SEAGALLOP_VERMILION, FALSE
switch VAR_RESULT
case 0, EventScript_1A91D5
case 1, EventScript_1A90F6
diff --git a/data/maps/PewterCity_Museum_1F/scripts.inc b/data/maps/PewterCity_Museum_1F/scripts.inc
index 8a3bdd640..8d4f9dc6d 100644
--- a/data/maps/PewterCity_Museum_1F/scripts.inc
+++ b/data/maps/PewterCity_Museum_1F/scripts.inc
@@ -190,9 +190,9 @@ PewterCity_Museum_1F_EventScript_16A512:: @ 816A512
setvar VAR_0x8004, SPECIES_AERODACTYL
setvar VAR_0x8005, 10
setvar VAR_0x8006, 3
- special sub_809D504
+ special Special_OpenMuseumFossilPic
msgbox gUnknown_8190945
- special sub_809D620
+ special Special_CloseMuseumFossilPic
releaseall
end
@@ -201,8 +201,8 @@ PewterCity_Museum_1F_EventScript_16A532:: @ 816A532
setvar VAR_0x8004, SPECIES_KABUTOPS
setvar VAR_0x8005, 10
setvar VAR_0x8006, 3
- special sub_809D504
+ special Special_OpenMuseumFossilPic
msgbox gUnknown_8190975
- special sub_809D620
+ special Special_CloseMuseumFossilPic
releaseall
end
diff --git a/data/maps/RocketHideout_Elevator/scripts.inc b/data/maps/RocketHideout_Elevator/scripts.inc
index c6a199a52..2b593b1bb 100644
--- a/data/maps/RocketHideout_Elevator/scripts.inc
+++ b/data/maps/RocketHideout_Elevator/scripts.inc
@@ -21,21 +21,21 @@ RocketHideout_Elevator_EventScript_1614D9:: @ 81614D9
end
EventScript_161530:: @ 8161530
- multichoicedefault 0, 0, 42, 0, 0
+ multichoicedefault 0, 0, MULTICHOICE_ROCKET_HIDEOUT_ELEVATOR, 0, FALSE
goto EventScript_161554
EventScript_16153B:: @ 816153B
end
EventScript_16153C:: @ 816153C
- multichoicedefault 0, 0, 42, 1, 0
+ multichoicedefault 0, 0, MULTICHOICE_ROCKET_HIDEOUT_ELEVATOR, 1, FALSE
goto EventScript_161554
EventScript_161547:: @ 8161547
end
EventScript_161548:: @ 8161548
- multichoicedefault 0, 0, 42, 2, 0
+ multichoicedefault 0, 0, MULTICHOICE_ROCKET_HIDEOUT_ELEVATOR, 2, FALSE
goto EventScript_161554
EventScript_161553:: @ 8161553
diff --git a/data/maps/Route25_SeaCottage/scripts.inc b/data/maps/Route25_SeaCottage/scripts.inc
index 76be366f2..e8d016a02 100644
--- a/data/maps/Route25_SeaCottage/scripts.inc
+++ b/data/maps/Route25_SeaCottage/scripts.inc
@@ -248,7 +248,7 @@ EventScript_1707CA:: @ 81707CA
EventScript_1707D8:: @ 81707D8
message Text_1A0479
waitmessage
- multichoice 0, 0, 1, 0
+ multichoice 0, 0, MULTICHOICE_EEVEELUTIONS, FALSE
switch VAR_RESULT
case 0, EventScript_17082B
case 1, EventScript_170840
diff --git a/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc
index a415190da..e8ee2450f 100644
--- a/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc
+++ b/data/maps/SevenIsland_TrainerTower_Elevator/scripts.inc
@@ -20,12 +20,12 @@ SevenIsland_TrainerTower_Elevator_EventScript_164B03:: @ 8164B03
end
EventScript_164B46:: @ 8164B46
- multichoicedefault 0, 0, 20, 0, 0
+ multichoicedefault 0, 0, MULTICHOICE_ROOFTOP_B1F, 0, FALSE
goto EventScript_164B5E
end
EventScript_164B52:: @ 8164B52
- multichoicedefault 0, 0, 20, 1, 0
+ multichoicedefault 0, 0, MULTICHOICE_ROOFTOP_B1F, 1, FALSE
goto EventScript_164B5E
end
diff --git a/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc
index 24f2fd622..142f33ee3 100644
--- a/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc
+++ b/data/maps/SevenIsland_TrainerTower_Lobby/scripts.inc
@@ -169,7 +169,7 @@ EventScript_164A00:: @ 8164A00
EventScript_164A08:: @ 8164A08
message Text_17C88D
waitmessage
- multichoice 18, 6, 16, 0
+ multichoice 18, 6, MULTICHOICE_YES_NO_INFO, FALSE
switch VAR_RESULT
case 0, EventScript_164A53
case 1, EventScript_164ABF
@@ -183,7 +183,7 @@ EventScript_164A45:: @ 8164A45
end
EventScript_164A53:: @ 8164A53
- multichoice 13, 3, 64, 0
+ multichoice 13, 3, MULTICHOICE_TRAINER_TOWER_MODE, FALSE
switch VAR_RESULT
case 0, EventScript_164AA0
case 1, EventScript_164AA0
diff --git a/data/maps/TwoIsland_House/scripts.inc b/data/maps/TwoIsland_House/scripts.inc
index 33f6d42fd..40c68cb7e 100644
--- a/data/maps/TwoIsland_House/scripts.inc
+++ b/data/maps/TwoIsland_House/scripts.inc
@@ -98,7 +98,7 @@ EventScript_171741:: @ 8171741
EventScript_17175B:: @ 817175B
message Text_1A2D43
waitmessage
- multichoice 0, 0, 51, 1
+ multichoice 0, 0, MULTICHOICE_MUSHROOMS, TRUE
switch VAR_RESULT
case 0, EventScript_171741
case 1, EventScript_171727
diff --git a/data/maps/VermilionCity/scripts.inc b/data/maps/VermilionCity/scripts.inc
index d1d312add..fcacff2e3 100644
--- a/data/maps/VermilionCity/scripts.inc
+++ b/data/maps/VermilionCity/scripts.inc
@@ -110,7 +110,7 @@ EventScript_1669FD:: @ 81669FD
call_if FALSE, EventScript_166A53
message Text_17FCC1
waitmessage
- multichoice 17, 6, 54, 0
+ multichoice 17, 6, MULTICHOICE_SEVII_NAVEL, FALSE
switch VAR_RESULT
case 0, EventScript_1A911E
case 1, EventScript_166B0B
@@ -128,7 +128,7 @@ EventScript_166A5F:: @ 8166A5F
call_if FALSE, EventScript_166AA5
message Text_17FCC1
waitmessage
- multichoice 13, 6, 55, 0
+ multichoice 13, 6, MULTICHOICE_SEVII_BIRTH, FALSE
switch VAR_RESULT
case 0, EventScript_1A911E
case 1, EventScript_166B23
@@ -148,7 +148,7 @@ EventScript_166AB1:: @ 8166AB1
call_if FALSE, EventScript_166AA5
message Text_17FCC1
waitmessage
- multichoice 13, 5, 56, 0
+ multichoice 13, 5, MULTICHOICE_SEVII_NAVEL_BIRTH, FALSE
switch VAR_RESULT
case 0, EventScript_1A911E
case 1, EventScript_166B0B
@@ -175,7 +175,7 @@ EventScript_166B3B:: @ 8166B3B
message Text_17FB23
waitmessage
setvar VAR_0x8004, SEAGALLOP_VERMILION_CITY
- multichoice 19, 5, 57, 0
+ multichoice 19, 5, MULTICHOICE_SEAGALLOP_123, FALSE
switch VAR_RESULT
case 0, EventScript_1A8FEE
case 1, EventScript_1A8FF9
diff --git a/data/maps/ViridianCity_House2/scripts.inc b/data/maps/ViridianCity_House2/scripts.inc
index a31719b55..1c25dd3e4 100644
--- a/data/maps/ViridianCity_House2/scripts.inc
+++ b/data/maps/ViridianCity_House2/scripts.inc
@@ -56,7 +56,7 @@ ViridianCity_House2_EventScript_16A11D:: @ 816A11D
EventScript_16A12C:: @ 816A12C
message Text_18FF88
waitmessage
- multichoicegrid 7, 1, 15, 3, 0
+ multichoicegrid 7, 1, MULTICHOICE_TRAINER_SCHOOL_WHITEBOARD, 3, FALSE
switch VAR_RESULT
case 0, EventScript_16A18B
case 1, EventScript_16A1A7
diff --git a/data/script_menu/aerodactyl_fossil.png b/data/script_menu/aerodactyl_fossil.png
new file mode 100644
index 000000000..067483d6e
--- /dev/null
+++ b/data/script_menu/aerodactyl_fossil.png
Binary files differ
diff --git a/data/script_menu/kabutops_fossil.png b/data/script_menu/kabutops_fossil.png
new file mode 100644
index 000000000..e396b080a
--- /dev/null
+++ b/data/script_menu/kabutops_fossil.png
Binary files differ
diff --git a/data/specials.inc b/data/specials.inc
index 44d906656..516b5f768 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -387,7 +387,7 @@ gSpecials:: @ 815FD60
def_special IsThereMonInRoute5Daycare
def_special GetNumLevelsGainedForRoute5DaycareMon
def_special TakePokemonFromRoute5Daycare
- def_special ScrSpecial_SeaGallopFerry
+ def_special ScrSpecial_SeagallopFerry
def_special Special_PlayerPartyContainsSpecies
def_special Special_SetSomeVariable
def_special HelpSystem_BackupSomeVariable
@@ -403,8 +403,8 @@ gSpecials:: @ 815FD60
def_special sub_8112364
def_special Special_GetMENewsJisanItemAndState
def_special get_unknown_box_id
- def_special sub_809D504
- def_special sub_809D620
+ def_special Special_OpenMuseumFossilPic
+ def_special Special_CloseMuseumFossilPic
def_special sub_812781C
def_special sub_8127888
def_special SetBattledTrainerFlag
@@ -431,8 +431,8 @@ gSpecials:: @ 815FD60
def_special Special_HasLearnedAllMovesFromCapeBrinkTutor
def_special Special_Credits
def_special sub_8153810
- def_special sub_809D764
- def_special sub_809D8C0
+ def_special Special_DrawSeagallopDestinationMenu
+ def_special Special_GetSelectedSeagallopDestination
def_special sub_8147500
def_special GetPlayerFacingDirection
def_special Special_DeoxysSound
diff --git a/data/strings.s b/data/strings.s
index 546f40899..16666410c 100644
--- a/data/strings.s
+++ b/data/strings.s
@@ -1358,34 +1358,34 @@ gUnknown_84178DA:: @ 84178DA
gUnknown_84178DF:: @ 0x84178DF
.string "さんか する$"
-gUnknown_84178E6:: @ 0x84178E6
+gText_Info:: @ 0x84178E6
.string "INFO$"
-gUnknown_84178EB:: @ 0x84178EB
+gText_Eggs:: @ 0x84178EB
.string "EGGS$"
-gUnknown_84178F0:: @ 0x84178F0
+gText_HallOfFame:: @ 0x84178F0
.string "HALL OF FAME$"
-gUnknown_84178FD:: @ 0x84178FD
+gText_Victories:: @ 0x84178FD
.string "VICTORIES$"
-gUnknown_8417907:: @ 0x8417907
+gText_Quit:: @ 0x8417907
.string "QUIT$"
-gUnknown_841790C:: @ 0x841790C
+gText_Psn:: @ 0x841790C
.string "PSN$"
-gUnknown_8417910:: @ 0x8417910
+gText_Par:: @ 0x8417910
.string "PAR$"
-gUnknown_8417914:: @ 0x8417914
+gText_Slp:: @ 0x8417914
.string "SLP$"
-gUnknown_8417918:: @ 0x8417918
+gText_Brn:: @ 0x8417918
.string "BRN$"
-gUnknown_841791C:: @ 0x841791C
+gText_Frz:: @ 0x841791C
.string "FRZ$"
gUnknown_8417920:: @ 0x8417920
@@ -1403,394 +1403,394 @@ gUnknown_841792E:: @ 0x841792E
gUnknown_8417933:: @ 0x8417933
.string "これから$"
-gUnknown_8417938:: @ 8417938
+gText_Yes:: @ 8417938
.string "YES$"
-gUnknown_841793C:: @ 841793C
+gText_No:: @ 841793C
.string "NO$"
gUnknown_841793F:: @ 0x841793F
.string "せつめい$"
-gUnknown_8417944:: @ 0x8417944
+gText_SingleBattle:: @ 0x8417944
.string "SINGLE BATTLE$"
-gUnknown_8417952:: @ 0x8417952
+gText_DoubleBattle:: @ 0x8417952
.string "DOUBLE BATTLE$"
-gUnknown_8417960:: @ 0x8417960
+gText_MultiBattle:: @ 0x8417960
.string "MULTI BATTLE$"
-gUnknown_841796D:: @ 0x841796D
+gText_MakeAChallenge:: @ 0x841796D
.string "Make a challenge.$"
-gUnknown_841797F:: @ 0x841797F
+gText_Info_2:: @ 0x841797F
.string "INFO$"
-gUnknown_8417984:: @ 0x8417984
+gText_FreshWater_200:: @ 0x8417984
.string "FRESH WATER{CLEAR_TO 0x57}{SMALL}¥200$"
-gUnknown_841799A:: @ 0x841799A
+gText_SodaPop_300:: @ 0x841799A
.string "SODA POP{CLEAR_TO 0x57}{SMALL}¥300$"
-gUnknown_84179AD:: @ 0x84179AD
+gText_Lemonade_350:: @ 0x84179AD
.string "LEMONADE{CLEAR_TO 0x57}{SMALL}¥350$"
-gUnknown_84179C0:: @ 0x84179C0
+gText_50Coins_1000:: @ 0x84179C0
.string "{SMALL} 50 COINS{CLEAR_TO 0x45}¥1,000$"
-gUnknown_84179D6:: @ 0x84179D6
+gText_500Coins_10000:: @ 0x84179D6
.string "{SMALL}500 COINS{CLEAR_TO 0x40}¥10,000$"
-gUnknown_84179ED:: @ 0x84179ED
+gText_Excellent:: @ 0x84179ED
.string "Excellent$"
-gUnknown_84179F7:: @ 0x84179F7
+gText_NotSoBad:: @ 0x84179F7
.string "Not so bad$"
-gUnknown_8417A02:: @ 0x8417A02
+gText_RedShard:: @ 0x8417A02
.string "RED SHARD$"
-gUnknown_8417A0C:: @ 0x8417A0C
+gText_YellowShard:: @ 0x8417A0C
.string "YELLOW SHARD$"
-gUnknown_8417A19:: @ 0x8417A19
+gText_BlueShard:: @ 0x8417A19
.string "BLUE SHARD$"
-gUnknown_8417A24:: @ 0x8417A24
+gText_GreenShard:: @ 0x8417A24
.string "GREEN SHARD$"
gUnknown_8417A30:: @ 0x8417A30
.string "バトルタワ-$"
-gUnknown_8417A37:: @ 0x8417A37
+gText_Right:: @ 0x8417A37
.string "Right$"
-gUnknown_8417A3D:: @ 0x8417A3D
+gText_Left:: @ 0x8417A3D
.string "Left$"
-gUnknown_8417A42:: @ 0x8417A42
+gText_Tm13_4000Coins:: @ 0x8417A42
.string "TM13{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
-gUnknown_8417A58:: @ 0x8417A58
+gText_Tm23_3500Coins:: @ 0x8417A58
.string "TM23{CLEAR_TO 0x48}{SMALL}3,500 COINS$"
-gUnknown_8417A6E:: @ 0x8417A6E
+gText_Tm24_4000Coins:: @ 0x8417A6E
.string "TM24{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
-gUnknown_8417A84:: @ 0x8417A84
+gText_Tm30_4500Coins:: @ 0x8417A84
.string "TM30{CLEAR_TO 0x48}{SMALL}4,500 COINS$"
-gUnknown_8417A9A:: @ 0x8417A9A
+gText_Tm35_4000Coins:: @ 0x8417A9A
.string "TM35{CLEAR_TO 0x48}{SMALL}4,000 COINS$"
-gUnknown_8417AB0:: @ 0x8417AB0
+gText_1F_2:: @ 0x8417AB0
.string "1F$"
-gUnknown_8417AB3:: @ 0x8417AB3
+gText_2F_2:: @ 0x8417AB3
.string "2F$"
-gUnknown_8417AB6:: @ 0x8417AB6
+gText_3F_2:: @ 0x8417AB6
.string "3F$"
-gUnknown_8417AB9:: @ 0x8417AB9
+gText_4F_2:: @ 0x8417AB9
.string "4F$"
-gUnknown_8417ABC:: @ 0x8417ABC
+gText_5F_2:: @ 0x8417ABC
.string "5F$"
-gUnknown_8417ABF:: @ 0x8417ABF
+gText_Cool:: @ 0x8417ABF
.string "COOL$"
-gUnknown_8417AC4:: @ 0x8417AC4
+gText_Beauty:: @ 0x8417AC4
.string "BEAUTY$"
-gUnknown_8417ACB:: @ 0x8417ACB
+gText_Cute:: @ 0x8417ACB
.string "CUTE$"
-gUnknown_8417AD0:: @ 0x8417AD0
+gText_Smart:: @ 0x8417AD0
.string "SMART$"
-gUnknown_8417AD6:: @ 0x8417AD6
+gText_Tough:: @ 0x8417AD6
.string "TOUGH$"
-gUnknown_8417ADC:: @ 0x8417ADC
+gText_Normal:: @ 0x8417ADC
.string "NORMAL$"
-gUnknown_8417AE3:: @ 0x8417AE3
+gText_Black:: @ 0x8417AE3
.string "BLACK$"
-gUnknown_8417AE9:: @ 0x8417AE9
+gText_Pink:: @ 0x8417AE9
.string "PINK$"
-gUnknown_8417AEE:: @ 0x8417AEE
+gText_Sepia:: @ 0x8417AEE
.string "SEPIA$"
-gUnknown_8417AF4:: @ 0x8417AF4
+gText_Cool_2:: @ 0x8417AF4
.string "COOL$"
-gUnknown_8417AF9:: @ 0x8417AF9
+gText_Beauty_2:: @ 0x8417AF9
.string "BEAUTY$"
-gUnknown_8417B00:: @ 0x8417B00
+gText_Cute_2:: @ 0x8417B00
.string "CUTE$"
-gUnknown_8417B05:: @ 0x8417B05
+gText_Smart_2:: @ 0x8417B05
.string "SMART$"
-gUnknown_8417B0B:: @ 0x8417B0B
+gText_Tough_2:: @ 0x8417B0B
.string "TOUGH$"
-gUnknown_8417B11:: @ 0x8417B11
+gText_Items:: @ 0x8417B11
.string "ITEMS$"
-gUnknown_8417B17:: @ 0x8417B17
+gText_KeyItems:: @ 0x8417B17
.string "KEY ITEMS$"
-gUnknown_8417B21:: @ 0x8417B21
+gText_PokeBalls:: @ 0x8417B21
.string "POKé BALLS$"
-gUnknown_8417B2C:: @ 0x8417B2C
+gText_TmsgUnknown_8417B2CHms:: @ 0x8417B2C
.string "TMs & HMs$"
-gUnknown_8417B36:: @ 0x8417B36
+gText_Berries:: @ 0x8417B36
.string "BERRIES$"
-gUnknown_8417B3E:: @ 0x8417B3E
+gText_Boulderbadge:: @ 0x8417B3E
.string "BOULDERBADGE$"
-gUnknown_8417B4B:: @ 0x8417B4B
+gText_Cascadebadge:: @ 0x8417B4B
.string "CASCADEBADGE$"
-gUnknown_8417B58:: @ 0x8417B58
+gText_Thunderbadge:: @ 0x8417B58
.string "THUNDERBADGE$"
-gUnknown_8417B65:: @ 0x8417B65
+gText_Rainbowbadge:: @ 0x8417B65
.string "RAINBOWBADGE$"
-gUnknown_8417B72:: @ 0x8417B72
+gText_Soulbadge:: @ 0x8417B72
.string "SOULBADGE$"
-gUnknown_8417B7C:: @ 0x8417B7C
+gText_Marshbadge:: @ 0x8417B7C
.string "MARSHBADGE$"
-gUnknown_8417B87:: @ 0x8417B87
+gText_Volcanobadge:: @ 0x8417B87
.string "VOLCANOBADGE$"
-gUnknown_8417B94:: @ 0x8417B94
+gText_Earthbadge:: @ 0x8417B94
.string "EARTHBADGE$"
-gUnknown_8417B9F:: @ 8417B9F
+gText_SomeoneSPc:: @ 8417B9F
.string "SOMEONE'S PC$"
-gUnknown_8417BAC:: @ 8417BAC
+gText_BillSPc:: @ 8417BAC
.string "BILL'S PC$"
-gUnknown_8417BB6:: @ 8417BB6
+gText_SPc:: @ 8417BB6
.string "{PLAYER}'s PC$"
-gUnknown_8417BBE:: @ 8417BBE
+gText_HallOfFame_2:: @ 8417BBE
.string "HALL OF FAME$"
-gUnknown_8417BCB:: @ 8417BCB
+gText_LogOff:: @ 8417BCB
.string "LOG OFF$"
-gUnknown_8417BD3:: @ 8417BD3
+gText_ProfOakSPc:: @ 8417BD3
.string "PROF. OAK's PC$"
-gUnknown_8417BE2:: @ 0x8417BE2
+gText_Eevee:: @ 0x8417BE2
.string "EEVEE$"
-gUnknown_8417BE8:: @ 0x8417BE8
+gText_Flareon:: @ 0x8417BE8
.string "FLAREON$"
-gUnknown_8417BF0:: @ 0x8417BF0
+gText_Jolteon:: @ 0x8417BF0
.string "JOLTEON$"
-gUnknown_8417BF8:: @ 0x8417BF8
+gText_Vaporeon:: @ 0x8417BF8
.string "VAPOREON$"
-gUnknown_8417C01:: @ 0x8417C01
+gText_QuitLooking:: @ 0x8417C01
.string "Quit looking.$"
-gUnknown_8417C0F:: @ 0x8417C0F
+gText_FreshWater:: @ 0x8417C0F
.string "FRESH WATER$"
-gUnknown_8417C1B:: @ 0x8417C1B
+gText_SodaPop:: @ 0x8417C1B
.string "SODA POP$"
-gUnknown_8417C24:: @ 0x8417C24
+gText_Lemonade:: @ 0x8417C24
.string "LEMONADE$"
-gUnknown_8417C2D:: @ 8417C2D
+gText_Coins_2:: @ 8417C2D
.string "COINS$"
-gUnknown_8417C33:: @ 0x8417C33
+gText_Bicycle_1000000:: @ 0x8417C33
.string "BICYCLE{CLEAR_TO 0x49}{SMALL}¥1,000,000$"
-gUnknown_8417C4B:: @ 0x8417C4B
+gText_NoThanks:: @ 0x8417C4B
.string "NO THANKS$"
-gUnknown_8417C55:: @ 0x8417C55
+gText_Abra_180Coins:: @ 0x8417C55
.string "ABRA{CLEAR_TO 0x55}{SMALL} 180 COINS$"
-gUnknown_8417C6A:: @ 0x8417C6A
+gText_Clefairy_500Coins:: @ 0x8417C6A
.string "CLEFAIRY{CLEAR_TO 0x55}{SMALL} 500 COINS$"
-gUnknown_8417C83:: @ 0x8417C83
+gText_Dratini_2800Coins:: @ 0x8417C83
.string "DRATINI{CLEAR_TO 0x4B}{SMALL} 2,800 COINS$"
-gUnknown_8417C9D:: @ 0x8417C9D
+gText_Scyther_5500Coins:: @ 0x8417C9D
.string "SCYTHER{CLEAR_TO 0x4B}{SMALL} 5,500 COINS$"
-gUnknown_8417CB7:: @ 0x8417CB7
+gText_Porygon_9999Coins:: @ 0x8417CB7
.string "PORYGON{CLEAR_TO 0x4B}{SMALL} 9,999 COINS$"
-gUnknown_8417CD1:: @ 0x8417CD1
+gText_Abra_120Coins:: @ 0x8417CD1
.string "ABRA{CLEAR_TO 0x55}{SMALL} 120 COINS$"
-gUnknown_8417CE6:: @ 0x8417CE6
+gText_Clefairy_750Coins:: @ 0x8417CE6
.string "CLEFAIRY{CLEAR_TO 0x55}{SMALL} 750 COINS$"
-gUnknown_8417CFF:: @ 0x8417CFF
+gText_Pinsir_2500Coins:: @ 0x8417CFF
.string "PINSIR{CLEAR_TO 0x4B}{SMALL} 2,500 COINS$"
-gUnknown_8417D18:: @ 0x8417D18
+gText_Dratini_4600Coins:: @ 0x8417D18
.string "DRATINI{CLEAR_TO 0x4B}{SMALL} 4,600 COINS$"
-gUnknown_8417D32:: @ 0x8417D32
+gText_Porygon_6500Coins:: @ 0x8417D32
.string "PORYGON{CLEAR_TO 0x4B}{SMALL} 6,500 COINS$"
-gUnknown_8417D4C:: @ 0x8417D4C
+gText_NoThanks_2:: @ 0x8417D4C
.string "NO THANKS$"
-gUnknown_8417D56:: @ 0x8417D56
+gText_HelixFossil:: @ 0x8417D56
.string "HELIX FOSSIL$"
-gUnknown_8417D63:: @ 0x8417D63
+gText_DomeFossil:: @ 0x8417D63
.string "DOME FOSSIL$"
-gUnknown_8417D6F:: @ 0x8417D6F
+gText_OldAmber:: @ 0x8417D6F
.string "OLD AMBER$"
-gUnknown_8417D79:: @ 0x8417D79
+gText_TradeCenter:: @ 0x8417D79
.string "TRADE CENTER$"
-gUnknown_8417D86:: @ 0x8417D86
+gText_Colosseum:: @ 0x8417D86
.string "COLOSSEUM$"
-gUnknown_8417D90:: @ 0x8417D90
+gText_GameLinkCable:: @ 0x8417D90
.string "Game Link cable$"
-gUnknown_8417DA0:: @ 0x8417DA0
+gText_Wireless:: @ 0x8417DA0
.string "Wireless$"
-gUnknown_8417DA9:: @ 0x8417DA9
+gText_ItemsPocket:: @ 0x8417DA9
.string "ITEMS POCKET$"
-gUnknown_8417DB6:: @ 0x8417DB6
+gText_KeyItemsPocket:: @ 0x8417DB6
.string "KEY ITEMS POCKET$"
-gUnknown_8417DC7:: @ 0x8417DC7
+gText_PokeBallsPocket:: @ 0x8417DC7
.string "POKé BALLS POCKET$"
-gUnknown_8417DD9:: @ 0x8417DD9
+gText_TmCase:: @ 0x8417DD9
.string "TM CASE$"
-gUnknown_8417DE1:: @ 0x8417DE1
+gText_BerryPouch_2:: @ 0x8417DE1
.string "BERRY POUCH$"
-gUnknown_8417DED:: @ 8417DED
+gText_Other:: @ 8417DED
.string "OTHER$"
-gUnknown_8417DF3:: @ 0x8417DF3
+gText_OneIsland:: @ 0x8417DF3
.string "ONE ISLAND$"
-gUnknown_8417DFE:: @ 0x8417DFE
+gText_TwoIsland:: @ 0x8417DFE
.string "TWO ISLAND$"
-gUnknown_8417E09:: @ 0x8417E09
+gText_ThreeIsland:: @ 0x8417E09
.string "THREE ISLAND$"
-gUnknown_8417E16:: @ 0x8417E16
+gText_FourIsland:: @ 0x8417E16
.string "FOUR ISLAND$"
-gUnknown_8417E22:: @ 0x8417E22
+gText_FiveIsland:: @ 0x8417E22
.string "FIVE ISLAND$"
-gUnknown_8417E2E:: @ 0x8417E2E
+gText_SixIsland:: @ 0x8417E2E
.string "SIX ISLAND$"
-gUnknown_8417E39:: @ 0x8417E39
+gText_SevenIsland:: @ 0x8417E39
.string "SEVEN ISLAND$"
-gUnknown_8417E46:: @ 0x8417E46
+gText_Vermilion:: @ 0x8417E46
.string "VERMILION$"
-gUnknown_8417E50:: @ 0x8417E50
+gText_Colosseum_2:: @ 0x8417E50
.string "COLOSSEUM$"
-gUnknown_8417E5A:: @ 0x8417E5A
+gText_BerryCrush:: @ 0x8417E5A
.string "BERRY CRUSH$"
-gUnknown_8417E66:: @ 0x8417E66
+gText_Dummy_8417E66:: @ 0x8417E66
.string "$"
-gUnknown_8417E67:: @ 0x8417E67
+gText_Dummy_8417E67:: @ 0x8417E67
.string "$"
gUnknown_8417E68:: @ 0x8417E68
.string "せつめいを きく$"
-gUnknown_8417E71:: @ 0x8417E71
+gText_Dummy_8417E71:: @ 0x8417E71
.string "$"
-gUnknown_8417E72:: @ 0x8417E72
+gText_PokemonJump:: @ 0x8417E72
.string "POKéMON JUMP$"
-gUnknown_8417E7F:: @ 0x8417E7F
+gText_DodrioBerryPicking:: @ 0x8417E7F
.string "DODRIO BERRY-PICKING$"
-gUnknown_8417E94:: @ 0x8417E94
+gText_2Tinymushrooms:: @ 0x8417E94
.string "2 TINYMUSHROOMS$"
-gUnknown_8417EA4:: @ 0x8417EA4
+gText_1BigMushroom:: @ 0x8417EA4
.string "1 BIG MUSHROOM$"
-gUnknown_8417EB3:: @ 0x8417EB3
+gText_SeviiIslands:: @ 0x8417EB3
.string "SEVII ISLANDS$"
-gUnknown_8417EC1:: @ 0x8417EC1
+gText_NavelRock:: @ 0x8417EC1
.string "NAVEL ROCK$"
-gUnknown_8417ECC:: @ 0x8417ECC
+gText_BirthIsland:: @ 0x8417ECC
.string "BIRTH ISLAND$"
-gUnknown_8417ED9:: @ 0x8417ED9
+gText_MiracleSeed_1000Coins:: @ 0x8417ED9
.string "MIRACLE SEED{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
-gUnknown_8417EF7:: @ 0x8417EF7
+gText_Charcoal_1000Coins:: @ 0x8417EF7
.string "CHARCOAL{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
-gUnknown_8417F11:: @ 0x8417F11
+gText_MysticWater_1000Coins:: @ 0x8417F11
.string "MYSTIC WATER{CLEAR_TO 0x50}{SMALL}1,000 COINS$"
-gUnknown_8417F2F:: @ 0x8417F2F
+gText_YellowFlute_1600Coins:: @ 0x8417F2F
.string "YELLOW FLUTE{CLEAR_TO 0x50}{SMALL}1,600 COINS$"
-gUnknown_8417F4D:: @ 0x8417F4D
+gText_SmokeBall_800Coins:: @ 0x8417F4D
.string "SMOKE BALL{CLEAR_TO 0x5A}{SMALL}800 COINS$"
-gUnknown_8417F67:: @ 0x8417F67
+gText_Dummy_8417F67:: @ 0x8417F67
.string "$"
-gUnknown_8417F68:: @ 0x8417F68
+gText_Dummy_8417F68:: @ 0x8417F68
.string "$"
-gUnknown_8417F69:: @ 0x8417F69
+gText_BecomeLeader:: @ 0x8417F69
.string "BECOME LEADER$"
-gUnknown_8417F77:: @ 0x8417F77
+gText_JoinGroup:: @ 0x8417F77
.string "JOIN GROUP$"
gOtherText_Single:: @ 0x8417F82
@@ -1820,133 +1820,133 @@ gUnknown_8417FB6:: @ 0x8417FB6
gUnknown_8417FB9:: @ 8417FB9
.string ".$"
-gUnknown_8417FBB:: @ 8417FBB
+gText_BigGuy:: @ 8417FBB
.string "Big guy$"
-gUnknown_8417FC3:: @ 8417FC3
+gText_BigGirl:: @ 8417FC3
.string "Big girl$"
-gUnknown_8417FCC:: @ 8417FCC
+gText_Daughter:: @ 8417FCC
.string "son$"
-gUnknown_8417FD0:: @ 8417FD0
+gText_Son:: @ 8417FD0
.string "daughter$"
-gUnknown_8417FD9:: @ 0x8417FD9
+gText_BoulderBadge:: @ 0x8417FD9
.string "BOULDERBADGE$"
-gUnknown_8417FE6:: @ 0x8417FE6
+gText_CascadeBadge:: @ 0x8417FE6
.string "CASCADEBADGE$"
-gUnknown_8417FF3:: @ 0x8417FF3
+gText_ThunderBadge:: @ 0x8417FF3
.string "THUNDERBADGE$"
-gUnknown_8418000:: @ 0x8418000
+gText_RainbowBadge:: @ 0x8418000
.string "RAINBOWBADGE$"
-gUnknown_841800D:: @ 0x841800D
+gText_SoulBadge:: @ 0x841800D
.string "SOULBADGE$"
-gUnknown_8418017:: @ 0x8418017
+gText_MarshBadge:: @ 0x8418017
.string "MARSHBADGE$"
-gUnknown_8418022:: @ 0x8418022
+gText_VolcanoBadge:: @ 0x8418022
.string "VOLCANOBADGE$"
-gUnknown_841802F:: @ 0x841802F
+gText_EarthBadge:: @ 0x841802F
.string "EARTHBADGE$"
-gUnknown_841803A:: @ 0x841803A
+gText_1F:: @ 0x841803A
.string "1F$"
-gUnknown_841803D:: @ 0x841803D
+gText_2F:: @ 0x841803D
.string "2F$"
-gUnknown_8418040:: @ 0x8418040
+gText_3F:: @ 0x8418040
.string "3F$"
-gUnknown_8418043:: @ 0x8418043
+gText_4F:: @ 0x8418043
.string "4F$"
-gUnknown_8418046:: @ 0x8418046
+gText_5F:: @ 0x8418046
.string "5F$"
-gUnknown_8418049:: @ 0x8418049
+gText_6F:: @ 0x8418049
.string "6F$"
-gUnknown_841804C:: @ 0x841804C
+gText_7F:: @ 0x841804C
.string "7F$"
-gUnknown_841804F:: @ 0x841804F
+gText_8F:: @ 0x841804F
.string "8F$"
-gUnknown_8418052:: @ 0x8418052
+gText_9F:: @ 0x8418052
.string "9F$"
-gUnknown_8418055:: @ 0x8418055
+gText_10F:: @ 0x8418055
.string "10F$"
-gUnknown_8418059:: @ 0x8418059
+gText_11F:: @ 0x8418059
.string "11F$"
-gUnknown_841805D:: @ 0x841805D
+gText_B1F:: @ 0x841805D
.string "B1F$"
-gUnknown_8418061:: @ 0x8418061
+gText_B2F:: @ 0x8418061
.string "B2F$"
-gUnknown_8418065:: @ 0x8418065
+gText_B3F:: @ 0x8418065
.string "B3F$"
-gUnknown_8418069:: @ 0x8418069
+gText_B4F:: @ 0x8418069
.string "B4F$"
-gUnknown_841806D:: @ 0x841806D
+gText_Rooftop:: @ 0x841806D
.string "ROOFTOP$"
-gUnknown_8418075:: @ 8418075
+gText_NowOn:: @ 8418075
.string "Now on:$"
-gUnknown_841807D:: @ 0x841807D
+gText_LinkedGamePlay:: @ 0x841807D
.string "LINKED GAME PLAY$"
-gUnknown_841808E:: @ 0x841808E
+gText_DirectCorner:: @ 0x841808E
.string "DIRECT CORNER$"
-gUnknown_841809C:: @ 0x841809C
+gText_UnionRoom:: @ 0x841809C
.string "UNION ROOM$"
-gUnknown_84180A7:: @ 0x84180A7
+gText_Energypowder_50:: @ 0x84180A7
.string "ENERGYPOWDER{CLEAR_TO 0x74}{SMALL}50$"
-gUnknown_84180BC:: @ 0x84180BC
+gText_EnergyRoot_80:: @ 0x84180BC
.string "ENERGY ROOT{CLEAR_TO 0x74}{SMALL}80$"
-gUnknown_84180D0:: @ 0x84180D0
+gText_HealPowder_50:: @ 0x84180D0
.string "HEAL POWDER{CLEAR_TO 0x74}{SMALL}50$"
-gUnknown_84180E4:: @ 0x84180E4
+gText_RevivalHerb_300:: @ 0x84180E4
.string "REVIVAL HERB{CLEAR_TO 0x6F}{SMALL}300$"
-gUnknown_84180FA:: @ 0x84180FA
+gText_Protein_1000:: @ 0x84180FA
.string "PROTEIN{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_841810D:: @ 0x841810D
+gText_Iron_1000:: @ 0x841810D
.string "IRON{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_841811D:: @ 0x841811D
+gText_Carbos_1000:: @ 0x841811D
.string "CARBOS{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_841812F:: @ 0x841812F
+gText_Calcium_1000:: @ 0x841812F
.string "CALCIUM{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_8418142:: @ 0x8418142
+gText_Zinc_1000:: @ 0x8418142
.string "ZINC{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_8418152:: @ 0x8418152
+gText_HpUp_1000:: @ 0x8418152
.string "HP UP{CLEAR_TO 0x65}{SMALL}1,000$"
-gUnknown_8418163:: @ 0x8418163
+gText_PpUp_3000:: @ 0x8418163
.string "PP UP{CLEAR_TO 0x65}{SMALL}3,000$"
gString_BattleRecords_PlayersBattleResults:: @ 8418174
diff --git a/include/constants/menu.h b/include/constants/menu.h
new file mode 100644
index 000000000..44df246d9
--- /dev/null
+++ b/include/constants/menu.h
@@ -0,0 +1,73 @@
+#ifndef GUARD_CONSTANTS_MENU_H
+#define GUARD_CONSTANTS_MENU_H
+
+#define SCR_MENU_CANCEL 127
+#define SCR_MENU_UNSET 255
+
+#define MULTICHOICE_YES_NO 0
+#define MULTICHOICE_EEVEELUTIONS 1
+#define MULTICHOICE_TRAINER_CARD_ICON_TINT 2
+#define MULTICHOICE_HOF_QUIT 3
+#define MULTICHOICE_EGGS_QUIT 4
+#define MULTICHOICE_VICTORIES_QUIT 5
+#define MULTICHOICE_HOF_EGGS_QUIT 6
+#define MULTICHOICE_HOF_VICTORIES_QUIT 7
+#define MULTICHOICE_EGGS_VICTORIES_QUIT 8
+#define MULTICHOICE_HOF_EGGS_VICTORIES_QUIT 9
+#define MULTICHOICE_EXIT 10
+#define MULTICHOICE_EXIT_2 11
+#define MULTICHOICE_EXIT_3 12
+#define MULTICHOICE_BIKE_SHOP 13
+#define MULTICHOICE_GAME_CORNER_POKEMON_PRIZES 14
+#define MULTICHOICE_TRAINER_SCHOOL_WHITEBOARD 15
+#define MULTICHOICE_YES_NO_INFO 16
+#define MULTICHOICE_SINGLE_DOUBLE_MULTI_INFO_EXIT 17
+#define MULTICHOICE_YES_NO_INFO_2 18
+#define MULTICHOICE_CHALLENGE_INFO_EXIT 19
+#define MULTICHOICE_ROOFTOP_B1F 20
+#define MULTICHOICE_HELIX 21
+#define MULTICHOICE_DOME 22
+#define MULTICHOICE_AMBER 23
+#define MULTICHOICE_HELIX_AMBER 24
+#define MULTICHOICE_DOME_AMBER 25
+#define MULTICHOICE_CELADON_VENDING_MACHINE 26
+#define MULTICHOICE_GAME_CORNER_COIN_PURCHASE_COUNTER 27
+#define MULTICHOICE_EXCELLENT_NOT_SO_BAD 28
+#define MULTICHOICE_RIGHT_LEFT 29
+#define MULTICHOICE_GAME_CORNER_TMPRIZES 30
+#define MULTICHOICE_DEPT_STORE_ELEVATOR 31
+#define MULTICHOICE_THIRSTY_GIRL_FRESH_WATER 32
+#define MULTICHOICE_THIRSTY_GIRL_SODA_POP 33
+#define MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_SODA_POP 34
+#define MULTICHOICE_THIRSTY_GIRL_LEMONADE 35
+#define MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_LEMONADE 36
+#define MULTICHOICE_THIRSTY_GIRL_SODA_POP_LEMONADE 37
+#define MULTICHOICE_THIRSTY_GIRL_FRESH_WATER_SODA_POP_LEMONADE 38
+#define MULTICHOICE_TRADE_CENTER_COLOSSEUM 39
+#define MULTICHOICE_LINK_WIRELESS 40
+#define MULTICHOICE_GAME_CORNER_BATTLE_ITEM_PRIZES 41
+#define MULTICHOICE_ROCKET_HIDEOUT_ELEVATOR 42
+#define MULTICHOICE_LINKED_DIRECT_UNION 43
+#define MULTICHOICE_ISLAND_23 44
+#define MULTICHOICE_ISLAND_13 45
+#define MULTICHOICE_ISLAND_12 46
+#define MULTICHOICE_TRADE_COLOSSEUM_CRUSH 47
+#define MULTICHOICE_48 48
+#define MULTICHOICE_POKEJUMP_DODRIO 49
+#define MULTICHOICE_TRADE_COLOSSEUM_2 50
+#define MULTICHOICE_MUSHROOMS 51
+#define MULTICHOICE_TRADE_COLOSSEUM_BLANK_CRUSH 52
+#define MULTICHOICE_TRADE_COLOSSEUM_BLANK 53
+#define MULTICHOICE_SEVII_NAVEL 54
+#define MULTICHOICE_SEVII_BIRTH 55
+#define MULTICHOICE_SEVII_NAVEL_BIRTH 56
+#define MULTICHOICE_SEAGALLOP_123 57
+#define MULTICHOICE_SEAGALLOP_V23 58
+#define MULTICHOICE_SEAGALLOP_V13 59
+#define MULTICHOICE_SEAGALLOP_V12 60
+#define MULTICHOICE_SEAGALLOP_VERMILION 61
+#define MULTICHOICE_62 62
+#define MULTICHOICE_JOIN_OR_LEAD 63
+#define MULTICHOICE_TRAINER_TOWER_MODE 64
+
+#endif //GUARD_CONSTANTS_MENU_H
diff --git a/include/constants/seagallop.h b/include/constants/seagallop.h
index eff4eb7a5..68e847445 100644
--- a/include/constants/seagallop.h
+++ b/include/constants/seagallop.h
@@ -13,4 +13,6 @@
#define SEAGALLOP_NAVEL_ROCK 9
#define SEAGALLOP_BIRTH_ISLAND 10
+#define SEAGALLOP_MORE 254
+
#endif //GUARD_CONSTANTS_SEAGALLOP_H
diff --git a/include/event_scripts.h b/include/event_scripts.h
index 500dd8069..c0f0300b1 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1177,4 +1177,13 @@ extern const u8 gText_SavingDontTurnOffThePower[];
extern const u8 gText_PlayerSavedTheGame[];
extern const u8 gText_DifferentGameFile[];
+// script_menu
+extern const u8 EventScript_1A7AE0[];
+extern const u8 Text_1BC388[];
+extern const u8 Text_1BC3C7[];
+extern const u8 Text_1BCB42[];
+extern const u8 Text_1BCA95[];
+extern const u8 Text_1BCACB[];
+extern const u8 Text_1BCAF2[];
+
#endif //GUARD_EVENT_SCRIPTS_H
diff --git a/include/field_effect.h b/include/field_effect.h
index 70398313b..4afc5cace 100644
--- a/include/field_effect.h
+++ b/include/field_effect.h
@@ -21,5 +21,7 @@ void sub_8084784(u8 a0, u8 a1);
void sub_8084F2C(u8 a0);
void sub_80853CC(u8 a0);
void sub_8083598(u8 a0);
+void sub_8083A5C(struct Sprite * sprite, u8 spriteId);
+u8 sub_8083970(u16 species, s16 x, s16 y, bool8 unused);
#endif //GUARD_FIELD_EFFECTS_H
diff --git a/include/quest_log.h b/include/quest_log.h
index adab57526..8165486ce 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -27,7 +27,7 @@ void sub_8113550(u16, const u16 *);
void sub_811539C(void);
void sub_8115748(u16);
u8 sub_8112CAC(void);
-bool8 sub_81119D4(void (*func)(void));
+bool8 QuestLog_SchedulePlaybackCB(void (*func)(void));
void sub_8111F38(u16, u16);
void sub_8111134(void);
void DestroyHelpMessageWindow(u8 a0);
diff --git a/include/script_menu.h b/include/script_menu.h
index d3d04c65d..d19e6d14d 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -3,18 +3,18 @@
#include "global.h"
-extern const u8 *const gStdStringPtrs[9];
+extern const u8 *const gStdStringPtrs[];
bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 var3, u8 var4);
bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 var3, u8 var4, u8 var5);
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);
-bool32 ScrSpecial_CreatePCMenu(void);
+bool8 ScrSpecial_CreatePCMenu(void);
void ScriptMenu_DisplayPCStartupPrompt(void);
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void);
-void sub_809D6D4(void);
+void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void);
void sub_809D424(void);
#endif //GUARD_SCRIPT_MENU_H
diff --git a/include/seagallop.h b/include/seagallop.h
index a8eaa6c88..50b128185 100644
--- a/include/seagallop.h
+++ b/include/seagallop.h
@@ -3,6 +3,6 @@
#include "constants/seagallop.h"
-void ScrSpecial_SeaGallopFerry(void);
+void ScrSpecial_SeagallopFerry(void);
#endif //GUARD_SEAGALLOP_H
diff --git a/include/strings.h b/include/strings.h
index 2021a0e99..9304b225d 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -91,7 +91,6 @@ extern const u8 gText_PkmnFainted3[];
extern const u8 gText_Coins[];
extern const u8 gText_EggNickname[];
extern const u8 gStartMenuText_Pokemon[];
-extern const u8 gText_PkmnFainted3[];
extern const u8 gOtherText_Use[];
extern const u8 gOtherText_Toss[];
@@ -99,7 +98,6 @@ extern const u8 gOtherText_Give[];
extern const u8 gOtherText_Exit[];
extern const u8 gText_ThreeHyphens[];
extern const u8 gOtherText_UnkF9_08_Clear_01[];
-extern const u8 gFameCheckerText_ListMenuCursor[];
extern const u8 gText_TimesStrVar1[];
extern const u8 gText_IsSelected[];
extern const u8 gText_ThereIsNoPokemon[];
@@ -116,6 +114,16 @@ extern const u8 gText_TurnedOverItemsWorthYen[];
extern const u8 gPokeDudeText_TMTypes[];
extern const u8 gPokeDudeText_ReadTMDescription[];
extern const u8 gFameCheckerText_Cancel[];
+extern const u8 gFameCheckerText_ListMenuCursor[];
+extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
+extern const u8 gFameCheckerText_ClearTextbox[];
+extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$"
+extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$"
+extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$"
+extern const u8 gFameCheckerOakName[]; // "OAK$"
+extern const u8 gFameCheckerDaisyName[]; // "DAISY$"
+extern const u8 gFameCheckerBillName[]; // "BILL$"
+extern const u8 gFameCheckerMrFujiName[]; // "FUJI$"
// teachy_tv
extern const u8 gTeachyTvString_TeachBattle[];
@@ -151,8 +159,6 @@ extern const u8 gString_Someone[];
extern const u8 gString_Help[];
extern const u8 gString_HelpSystem_ClearTo8[];
-extern const u8 gOtherText_Give[];
-extern const u8 gFameCheckerText_Cancel[];
extern const u8 gOtherText_StrVar1[];
extern const u8 gOtherText_WhereShouldTheStrVar1BePlaced[];
extern const u8 gOtherText_Powder[];
@@ -185,7 +191,6 @@ extern const u8 BattleText_Rose[];
extern const u8 BattleText_UnknownString3[];
extern const u8 BattleText_GetPumped[];
extern const u8 BattleText_MistShroud[];
-extern const u8 gText_EggNickname[];
extern const u8 gText_BadEgg[];
extern const u8 gText_PkmnsXPreventsSwitching[];
extern u8 *gUnknown_83FD5D0[];
@@ -218,7 +223,6 @@ extern const u8 gUnknown_83FE6E6[];
extern const u8 gText_BattleSwitchWhich[];
extern const u8 gUnknown_83FE770[];
extern const u8 gText_MoveInterfacePP[];
-extern const u8 gUnknown_83FE770[];
extern const u8 gText_MoveInterfaceType[];
extern const u8 gText_LinkStandby[];
extern const u8 gUnknown_83FE725[];
@@ -356,14 +360,6 @@ extern const u8 gText_NewGame[];
extern const u8 gText_Continue[];
extern const u8 gText_MysteryGift[];
extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
-extern const u8 gText_WirelessAdapterIsNotConnected[];
extern const u8 gText_MysteryGiftCantBeUsedWhileWirelessAdapterIsAttached[];
extern const u8 gText_Player[];
extern const u8 gText_Time[];
@@ -393,7 +389,6 @@ extern const u8 gText_WonderNews[];
extern const u8 gText_Exit3[];
extern const u8 gText_WirelessCommunication[];
extern const u8 gText_Friend2[];
-extern const u8 gFameCheckerText_Cancel[];
extern const u8 gText_Receive[];
extern const u8 gText_Send[];
extern const u8 gText_Toss[];
@@ -460,7 +455,6 @@ extern const u8 gText_MailReturnedToBagMessageErased[];
// start_menu
extern const u8 gStartMenuText_Pokedex[];
-extern const u8 gStartMenuText_Pokemon[];
extern const u8 gStartMenuText_Bag[];
extern const u8 gStartMenuText_Player[];
extern const u8 gStartMenuText_Save[];
@@ -471,7 +465,6 @@ extern const u8 gUnknown_84162A9[];
extern const u8 gStartMenuDesc_Pokedex[];
extern const u8 gStartMenuDesc_Pokemon[];
extern const u8 gStartMenuDesc_Bag[];
-extern const u8 gStartMenuDesc_Player[];
extern const u8 gStartMenuDesc_Save[];
extern const u8 gStartMenuDesc_Option[];
extern const u8 gStartMenuDesc_Exit[];
@@ -488,49 +481,183 @@ extern const u8 gSaveStatName_Time[];
extern const u8 gText_From[];
// field_specials
-extern const u8 gUnknown_8417FBB[];
-extern const u8 gUnknown_8417FC3[];
-extern const u8 gUnknown_8417FD0[];
-extern const u8 gUnknown_8417FCC[];
-extern const u8 gUnknown_8418075[];
-extern const u8 gUnknown_8418069[];
-extern const u8 gUnknown_8418065[];
-extern const u8 gUnknown_8418061[];
-extern const u8 gUnknown_841805D[];
-extern const u8 gUnknown_841803A[];
-extern const u8 gUnknown_841803D[];
-extern const u8 gUnknown_8418040[];
-extern const u8 gUnknown_8418043[];
-extern const u8 gUnknown_8418046[];
-extern const u8 gUnknown_8418049[];
-extern const u8 gUnknown_841804C[];
-extern const u8 gUnknown_841804F[];
-extern const u8 gUnknown_8418052[];
-extern const u8 gUnknown_8418055[];
-extern const u8 gUnknown_8418059[];
-extern const u8 gUnknown_841806D[];
-extern const u8 gUnknown_8417FD9[];
-extern const u8 gUnknown_8417FE6[];
-extern const u8 gUnknown_8417FF3[];
-extern const u8 gUnknown_8418000[];
-extern const u8 gUnknown_841800D[];
-extern const u8 gUnknown_8418017[];
-extern const u8 gUnknown_8418022[];
-extern const u8 gUnknown_841802F[];
-extern const u8 gUnknown_841807D[];
-extern const u8 gUnknown_841808E[];
-extern const u8 gUnknown_841809C[];
+extern const u8 gText_BigGuy[];
+extern const u8 gText_BigGirl[];
+extern const u8 gText_Son[];
+extern const u8 gText_Daughter[];
+extern const u8 gText_NowOn[];
+extern const u8 gText_B4F[];
+extern const u8 gText_B3F[];
+extern const u8 gText_B2F[];
+extern const u8 gText_B1F[];
+extern const u8 gText_1F[];
+extern const u8 gText_2F[];
+extern const u8 gText_3F[];
+extern const u8 gText_4F[];
+extern const u8 gText_5F[];
+extern const u8 gText_6F[];
+extern const u8 gText_7F[];
+extern const u8 gText_8F[];
+extern const u8 gText_9F[];
+extern const u8 gText_10F[];
+extern const u8 gText_11F[];
+extern const u8 gText_Rooftop[];
+extern const u8 gText_BoulderBadge[];
+extern const u8 gText_CascadeBadge[];
+extern const u8 gText_ThunderBadge[];
+extern const u8 gText_RainbowBadge[];
+extern const u8 gText_SoulBadge[];
+extern const u8 gText_MarshBadge[];
+extern const u8 gText_VolcanoBadge[];
+extern const u8 gText_EarthBadge[];
+extern const u8 gText_LinkedGamePlay[];
+extern const u8 gText_DirectCorner[];
+extern const u8 gText_UnionRoom[];
extern const u8 gOtherText_Quit[];
-extern const u8 gUnknown_84180A7[];
-extern const u8 gUnknown_84180BC[];
-extern const u8 gUnknown_84180D0[];
-extern const u8 gUnknown_84180E4[];
-extern const u8 gUnknown_84180FA[];
-extern const u8 gUnknown_841810D[];
-extern const u8 gUnknown_841811D[];
-extern const u8 gUnknown_841812F[];
-extern const u8 gUnknown_8418142[];
-extern const u8 gUnknown_8418152[];
-extern const u8 gUnknown_8418163[];
+extern const u8 gText_Energypowder_50[];
+extern const u8 gText_EnergyRoot_80[];
+extern const u8 gText_HealPowder_50[];
+extern const u8 gText_RevivalHerb_300[];
+extern const u8 gText_Protein_1000[];
+extern const u8 gText_Iron_1000[];
+extern const u8 gText_Carbos_1000[];
+extern const u8 gText_Calcium_1000[];
+extern const u8 gText_Zinc_1000[];
+extern const u8 gText_HpUp_1000[];
+extern const u8 gText_PpUp_3000[];
+
+// script_menu
+extern const u8 gText_SomeoneSPc[];
+extern const u8 gText_BillSPc[];
+extern const u8 gText_SPc[];
+extern const u8 gText_HallOfFame_2[];
+extern const u8 gText_LogOff[];
+extern const u8 gText_ProfOakSPc[];
+extern const u8 gText_Other[];
+extern const u8 gUnknown_81A508A[];
+extern const u8 gOtherText_Double[];
+extern const u8 gOtherText_Knockout[];
+extern const u8 gOtherText_Mixed[];
+extern const u8 gOtherText_Single[];
+extern const u8 gText_Info[];
+extern const u8 gText_Eggs[];
+extern const u8 gText_HallOfFame[];
+extern const u8 gText_Victories[];
+extern const u8 gText_Quit[];
+extern const u8 gText_Psn[];
+extern const u8 gText_Par[];
+extern const u8 gText_Slp[];
+extern const u8 gText_Brn[];
+extern const u8 gText_Frz[];
+extern const u8 gText_Yes[];
+extern const u8 gText_No[];
+extern const u8 gText_SingleBattle[];
+extern const u8 gText_DoubleBattle[];
+extern const u8 gText_MultiBattle[];
+extern const u8 gText_MakeAChallenge[];
+extern const u8 gText_Info_2[];
+extern const u8 gText_FreshWater_200[];
+extern const u8 gText_SodaPop_300[];
+extern const u8 gText_Lemonade_350[];
+extern const u8 gText_50Coins_1000[];
+extern const u8 gText_500Coins_10000[];
+extern const u8 gText_Excellent[];
+extern const u8 gText_NotSoBad[];
+extern const u8 gText_RedShard[];
+extern const u8 gText_YellowShard[];
+extern const u8 gText_BlueShard[];
+extern const u8 gText_GreenShard[];
+extern const u8 gText_Right[];
+extern const u8 gText_Left[];
+extern const u8 gText_Tm13_4000Coins[];
+extern const u8 gText_Tm23_3500Coins[];
+extern const u8 gText_Tm24_4000Coins[];
+extern const u8 gText_Tm30_4500Coins[];
+extern const u8 gText_Tm35_4000Coins[];
+extern const u8 gText_1F_2[];
+extern const u8 gText_2F_2[];
+extern const u8 gText_3F_2[];
+extern const u8 gText_4F_2[];
+extern const u8 gText_5F_2[];
+extern const u8 gText_Normal[];
+extern const u8 gText_Black[];
+extern const u8 gText_Pink[];
+extern const u8 gText_Sepia[];
+extern const u8 gText_Eevee[];
+extern const u8 gText_Flareon[];
+extern const u8 gText_Jolteon[];
+extern const u8 gText_Vaporeon[];
+extern const u8 gText_QuitLooking[];
+extern const u8 gText_FreshWater[];
+extern const u8 gText_SodaPop[];
+extern const u8 gText_Lemonade[];
+extern const u8 gText_Bicycle_1000000[];
+extern const u8 gText_NoThanks[];
+extern const u8 gText_Abra_180Coins[];
+extern const u8 gText_Clefairy_500Coins[];
+extern const u8 gText_Dratini_2800Coins[];
+extern const u8 gText_Scyther_5500Coins[];
+extern const u8 gText_Porygon_9999Coins[];
+extern const u8 gText_NoThanks_2[];
+extern const u8 gText_HelixFossil[];
+extern const u8 gText_DomeFossil[];
+extern const u8 gText_OldAmber[];
+extern const u8 gText_TradeCenter[];
+extern const u8 gText_Colosseum[];
+extern const u8 gText_GameLinkCable[];
+extern const u8 gText_Wireless[];
+extern const u8 gText_OneIsland[];
+extern const u8 gText_TwoIsland[];
+extern const u8 gText_ThreeIsland[];
+extern const u8 gText_Vermilion[];
+extern const u8 gText_Colosseum_2[];
+extern const u8 gText_BerryCrush[];
+extern const u8 gText_Dummy_8417E66[];
+extern const u8 gText_Dummy_8417E67[];
+extern const u8 gText_Dummy_8417E71[];
+extern const u8 gText_PokemonJump[];
+extern const u8 gText_DodrioBerryPicking[];
+extern const u8 gText_2Tinymushrooms[];
+extern const u8 gText_1BigMushroom[];
+extern const u8 gText_SeviiIslands[];
+extern const u8 gText_NavelRock[];
+extern const u8 gText_BirthIsland[];
+extern const u8 gText_MiracleSeed_1000Coins[];
+extern const u8 gText_Charcoal_1000Coins[];
+extern const u8 gText_MysticWater_1000Coins[];
+extern const u8 gText_YellowFlute_1600Coins[];
+extern const u8 gText_SmokeBall_800Coins[];
+extern const u8 gText_Dummy_8417F67[];
+extern const u8 gText_Dummy_8417F68[];
+extern const u8 gText_BecomeLeader[];
+extern const u8 gText_JoinGroup[];
+extern const u8 gText_Cool_2[];
+extern const u8 gText_Beauty_2[];
+extern const u8 gText_Cute_2[];
+extern const u8 gText_Smart_2[];
+extern const u8 gText_Tough_2[];
+extern const u8 gText_Items[];
+extern const u8 gText_KeyItems[];
+extern const u8 gText_PokeBalls[];
+extern const u8 gText_TmsgUnknown_8417B2CHms[];
+extern const u8 gText_Berries[];
+extern const u8 gText_Boulderbadge[];
+extern const u8 gText_Cascadebadge[];
+extern const u8 gText_Thunderbadge[];
+extern const u8 gText_Rainbowbadge[];
+extern const u8 gText_Soulbadge[];
+extern const u8 gText_Marshbadge[];
+extern const u8 gText_Volcanobadge[];
+extern const u8 gText_Earthbadge[];
+extern const u8 gText_Coins_2[];
+extern const u8 gText_ItemsPocket[];
+extern const u8 gText_KeyItemsPocket[];
+extern const u8 gText_PokeBallsPocket[];
+extern const u8 gText_TmCase[];
+extern const u8 gText_BerryPouch_2[];
+extern const u8 gText_FourIsland[];
+extern const u8 gText_FiveIsland[];
+extern const u8 gText_SixIsland[];
+extern const u8 gText_SevenIsland[];
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 120ff1b98..676bdc911 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -141,7 +141,7 @@ SECTIONS {
src/item.o(.text);
asm/shop.o(.text);
src/berry.o(.text);
- asm/script_menu.o(.text);
+ src/script_menu.o(.text);
asm/naming_screen.o(.text);
src/money.o(.text);
asm/script_pokemon_util_80A0058.o(.text);
@@ -431,6 +431,8 @@ SECTIONS {
src/battle_anim_mon_movement.o(.rodata);
src/item.o(.rodata);
data/data_835B488.o(.rodata.83DF09C);
+ src/script_menu.o(.rodata);
+ data/data_835B488.o(.rodata.83E2280);
src/flying.o(.rodata);
src/psychic.o(.rodata);
src/bug.o(.rodata);
diff --git a/src/berry_powder.c b/src/berry_powder.c
index 992e82522..f9d9f7dbb 100644
--- a/src/berry_powder.c
+++ b/src/berry_powder.c
@@ -111,7 +111,7 @@ void sub_815F094(void)
{
struct WindowTemplate template;
- if (sub_81119D4(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
template = SetWindowTemplateFields(0, 1, 1, 8, 3, 15, 32);
gUnknown_203F464 = AddWindow(&template);
diff --git a/src/coins.c b/src/coins.c
index 9de600e7f..2eaa31b2c 100644
--- a/src/coins.c
+++ b/src/coins.c
@@ -5,8 +5,6 @@
#include "text_window.h"
#include "strings.h"
-extern const u8 gUnknown_8417C2D[];
-
EWRAM_DATA static u8 sCoinsWindowId = 0;
#define MAX_COINS 9999
@@ -62,7 +60,7 @@ void PrintCoinsString_Parameterized(u8 windowId, u32 coinAmount, u8 x, u8 y, u8
void sub_80D0674(u8 windowId, u16 tileStart, u8 palette, u32 coinAmount)
{
DrawStdFrameWithCustomTileAndPalette(windowId, FALSE, tileStart, palette);
- AddTextPrinterParameterized(windowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0);
+ AddTextPrinterParameterized(windowId, 2, gText_Coins_2, 0, 0, 0xFF, 0);
PrintCoinsString_Parameterized(windowId, coinAmount, 0x10, 0xC, 0);
}
@@ -88,7 +86,7 @@ void ShowCoinsWindow(u32 coinAmount, u8 x, u8 y)
PutWindowTilemap(sCoinsWindowId);
TextWindow_SetStdFrame0_WithPal(sCoinsWindowId, 0x21D, 0xD0);
DrawStdFrameWithCustomTileAndPalette(sCoinsWindowId, FALSE, 0x21D, 0xD);
- AddTextPrinterParameterized(sCoinsWindowId, 2, gUnknown_8417C2D, 0, 0, 0xFF, 0);
+ AddTextPrinterParameterized(sCoinsWindowId, 2, gText_Coins_2, 0, 0, 0xFF, 0);
PrintCoinsString(coinAmount);
}
diff --git a/src/fame_checker.c b/src/fame_checker.c
index 50a8aa0bc..8c8f5b4ea 100644
--- a/src/fame_checker.c
+++ b/src/fame_checker.c
@@ -26,6 +26,7 @@
#include "menu_indicators.h"
#include "text_window.h"
#include "fame_checker.h"
+#include "strings.h"
#include "constants/trainers.h"
#define SPRITETAG_SELECTOR_CURSOR 1000
@@ -124,18 +125,6 @@ static void Task_FCOpenOrCloseInfoBox(u8 taskId);
static void UpdateInfoBoxTilemap(u8 bg, s16 state);
static void PlaceListMenuCursor(bool8 isActive);
-extern const u8 gFameCheckerText_Cancel[];
-extern const u8 gFameCheckerText_ListMenuCursor[];
-extern const u8 gFameCheckerText_FameCheckerWillBeClosed[];
-extern const u8 gFameCheckerText_ClearTextbox[];
-extern const u8 gFameCheckerText_MainScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_A_BUTTON}OK$"
-extern const u8 gFameCheckerText_PickScreenUI[]; // "{KEYGFX_DPAD_ANY}PICK {KEYGFX_DPAD_UP_DOWN}SELECT {KEYGFX_B_BUTTON}CANCEL$"
-extern const u8 gFameCheckerText_FlavorTextUI[]; // "{KEYGFX_START_BUTTON}PICK {KEYGFX_A_BUTTON}READ {KEYGFX_B_BUTTON}CANCEL$"
-extern const u8 gFameCheckerOakName[]; // "OAK$"
-extern const u8 gFameCheckerDaisyName[]; // "DAISY$"
-extern const u8 gFameCheckerBillName[]; // "BILL$"
-extern const u8 gFameCheckerMrFujiName[]; // "FUJI$"
-
static const u16 sFameCheckerTilemap[] = INCBIN_U16("data/fame_checker/tilemap_845c600.bin");
static const u8 sQuestionMarkSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845ce00.4bpp");
static const u8 sSpinningPokeballSpriteGfx[] = INCBIN_U8("data/fame_checker/img_845cf00.4bpp");
diff --git a/src/field_specials.c b/src/field_specials.c
index 867df4b94..617faa017 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -141,17 +141,17 @@ u8 Special_GetPlayerTrainerIdOnesDigit(void)
void Special_BufferBigGuyOrBigGirlString(void)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- StringCopy(gStringVar1, gUnknown_8417FBB);
+ StringCopy(gStringVar1, gText_BigGuy);
else
- StringCopy(gStringVar1, gUnknown_8417FC3);
+ StringCopy(gStringVar1, gText_BigGirl);
}
void Special_BufferSonOrDaughterString(void)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- StringCopy(gStringVar1, gUnknown_8417FD0);
+ StringCopy(gStringVar1, gText_Son);
else
- StringCopy(gStringVar1, gUnknown_8417FCC);
+ StringCopy(gStringVar1, gText_Daughter);
}
u8 Special_GetBattleOutcome(void)
@@ -729,22 +729,22 @@ static const struct WindowTemplate sElevatorCurrentFloorWindowTemplate = {
};
static const u8 *const sFloorNamePointers[] = {
- gUnknown_8418069,
- gUnknown_8418065,
- gUnknown_8418061,
- gUnknown_841805D,
- gUnknown_841803A,
- gUnknown_841803D,
- gUnknown_8418040,
- gUnknown_8418043,
- gUnknown_8418046,
- gUnknown_8418049,
- gUnknown_841804C,
- gUnknown_841804F,
- gUnknown_8418052,
- gUnknown_8418055,
- gUnknown_8418059,
- gUnknown_841806D
+ gText_B4F,
+ gText_B3F,
+ gText_B2F,
+ gText_B1F,
+ gText_1F,
+ gText_2F,
+ gText_3F,
+ gText_4F,
+ gText_5F,
+ gText_6F,
+ gText_7F,
+ gText_8F,
+ gText_9F,
+ gText_10F,
+ gText_11F,
+ gText_Rooftop
};
static const u8 sUnused_83F5B84[] = {
@@ -1064,12 +1064,12 @@ void Special_DrawElevatorCurrentFloorWindow(void)
{
const u8 *floorname;
u32 strwidth;
- if (sub_81119D4(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate);
TextWindow_SetStdFrame0_WithPal(sElevatorCurrentFloorWindowId, 0x21D, 0xD0);
DrawStdFrameWithCustomTileAndPalette(sElevatorCurrentFloorWindowId, FALSE, 0x21D, 0xD);
- AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, gUnknown_8418075, 0, 2, 0xFF, NULL);
+ AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, gText_NowOn, 0, 2, 0xFF, NULL);
floorname = sFloorNamePointers[gSpecialVar_0x8005];
strwidth = GetStringWidth(2, floorname, 0);
AddTextPrinterParameterized(sElevatorCurrentFloorWindowId, 2, floorname, 56 - strwidth, 16, 0xFF, NULL);
@@ -1137,7 +1137,7 @@ void Special_ListMenu(void)
{
u8 taskId;
struct Task * task;
- if (sub_81119D4(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
taskId = CreateTask(Task_CreateScriptListMenu, 8);
task = &gTasks[taskId];
@@ -1227,61 +1227,61 @@ void Special_ListMenu(void)
static const u8 *const sListMenuLabels[][12] = {
{
- gUnknown_8417FD9,
- gUnknown_8417FE6,
- gUnknown_8417FF3,
- gUnknown_8418000,
- gUnknown_841800D,
- gUnknown_8418017,
- gUnknown_8418022,
- gUnknown_841802F,
+ gText_BoulderBadge,
+ gText_CascadeBadge,
+ gText_ThunderBadge,
+ gText_RainbowBadge,
+ gText_SoulBadge,
+ gText_MarshBadge,
+ gText_VolcanoBadge,
+ gText_EarthBadge,
gOtherText_Exit,
}, {
- gUnknown_8418059,
- gUnknown_8418055,
- gUnknown_8418052,
- gUnknown_841804F,
- gUnknown_841804C,
- gUnknown_8418049,
- gUnknown_8418046,
- gUnknown_8418043,
- gUnknown_8418040,
- gUnknown_841803D,
- gUnknown_841803A,
+ gText_11F,
+ gText_10F,
+ gText_9F,
+ gText_8F,
+ gText_7F,
+ gText_6F,
+ gText_5F,
+ gText_4F,
+ gText_3F,
+ gText_2F,
+ gText_1F,
gOtherText_Exit,
}, {
- gUnknown_841805D,
- gUnknown_8418061,
- gUnknown_8418069,
+ gText_B1F,
+ gText_B2F,
+ gText_B4F,
gOtherText_Exit,
}, {
- gUnknown_8418046,
- gUnknown_8418043,
- gUnknown_8418040,
- gUnknown_841803D,
- gUnknown_841803A,
+ gText_5F,
+ gText_4F,
+ gText_3F,
+ gText_2F,
+ gText_1F,
gOtherText_Exit,
}, {
- gUnknown_841807D,
- gUnknown_841808E,
- gUnknown_841809C,
+ gText_LinkedGamePlay,
+ gText_DirectCorner,
+ gText_UnionRoom,
gOtherText_Quit,
}, {
- gUnknown_84180A7,
- gUnknown_84180BC,
- gUnknown_84180D0,
- gUnknown_84180E4,
- gUnknown_84180FA,
- gUnknown_841810D,
- gUnknown_841811D,
- gUnknown_841812F,
- gUnknown_8418142,
- gUnknown_8418152,
- gUnknown_8418163,
+ gText_Energypowder_50,
+ gText_EnergyRoot_80,
+ gText_HealPowder_50,
+ gText_RevivalHerb_300,
+ gText_Protein_1000,
+ gText_Iron_1000,
+ gText_Carbos_1000,
+ gText_Calcium_1000,
+ gText_Zinc_1000,
+ gText_HpUp_1000,
+ gText_PpUp_3000,
gOtherText_Exit,
}, {
- gUnknown_841806D,
- gUnknown_841805D,
+ gText_Rooftop,
+ gText_B1F,
gOtherText_Exit,
}
};
diff --git a/src/quest_log.c b/src/quest_log.c
index e1226c0b3..896a44d17 100644
--- a/src/quest_log.c
+++ b/src/quest_log.c
@@ -38,6 +38,7 @@
#include "quest_log_8150454.h"
#include "quest_log.h"
#include "new_menu_helpers.h"
+#include "strings.h"
u8 gUnknown_3005E88;
@@ -100,7 +101,7 @@ static EWRAM_DATA u8 gUnknown_203ADFE[3] = {0};
static EWRAM_DATA u16 *gUnknown_203AE04 = NULL;
static EWRAM_DATA u16 *gUnknown_203AE08 = NULL;
static EWRAM_DATA u16 *gUnknown_203AE0C[32] = {NULL};
-static EWRAM_DATA void (* gUnknown_203AE8C)(void) = NULL;
+static EWRAM_DATA void (* sQuestLogCB)(void) = NULL;
static EWRAM_DATA u16 *gUnknown_203AE90 = NULL;
static EWRAM_DATA struct UnkStruct_203AE94 gUnknown_203AE94 = {0};
static EWRAM_DATA struct UnkStruct_203AE98 gUnknown_203AE98[32] = {0};
@@ -135,17 +136,17 @@ static u16 QuestLog_GetSaneBoxCount(void);
static void sub_8111688(void);
static void sub_811175C(u8, struct UnkStruct_203AE98 *);
static void sub_81118F4(s8);
-static void sub_8111914(void);
-static void sub_8111984(void);
-static void sub_8111A34(u8);
+static void QuestLog_AdvancePlayhead(void);
+static void QuestLog_EndPlayback(void);
+static void Task_RunPlaybackCB(u8);
static void sub_8111AD8(void);
static void sub_8111B80(void);
static u8 sub_8111BD4(void);
static void sub_8111D10(void);
static void sub_8111D90(u8);
static void sub_8111E20(void);
-static void sub_8111E64(s8);
-static void sub_8111E84(void);
+static void QuestLog_SkipToEndOfPlayback(s8);
+static void QuestLog_WaitFadeAndCancelPlayback(void);
static bool8 sub_8111F60(void);
static void sub_8111F8C(u8);
static void sub_8111FCC(u8);
@@ -177,7 +178,7 @@ static bool8 sub_8113954(u16, u16 *);
static void sub_8113A1C(u16);
static void sub_811381C(void);
static bool8 sub_8113A44(u16, u16 *);
-static u16 *sub_8113A78(u16 *, u16 **);
+static u16 *QuestLog_SkipCommand(u16 *, u16 **);
static void sub_8113ABC(u16 *);
static bool8 sub_8113AE8(u16 *);
static bool8 sub_8113B44(u16 *);
@@ -437,9 +438,9 @@ void sub_811089C(void)
memset(gSaveBlock1Ptr->questLog, 0, sizeof(gSaveBlock1Ptr->questLog));
gUnknown_203ADF8 = 0;
gUnknown_203ADFA = 0;
- gUnknown_203AE8C = 0;
+ sQuestLogCB = NULL;
gUnknown_203AE08 = NULL;
- gUnknown_203AE04 = 0;
+ gUnknown_203AE04 = NULL;
sub_8113BD8();
sub_81138F8();
}
@@ -455,10 +456,10 @@ void sub_8110920(void)
gUnknown_203AE04 = NULL;
}
-void sub_811092C(void)
+void RunQuestLogCB(void)
{
- if (gUnknown_203AE8C)
- gUnknown_203AE8C();
+ if (sQuestLogCB != NULL)
+ sQuestLogCB();
}
bool8 sub_8110944(const void * a0, size_t a1)
@@ -485,9 +486,9 @@ void sub_81109CC(u8 a0)
{
gUnknown_203ADFA = a0;
if (a0 == 1)
- gUnknown_203AE8C = sub_8110A00;
+ sQuestLogCB = sub_8110A00;
else
- gUnknown_203AE8C = sub_8110A3C;
+ sQuestLogCB = sub_8110A3C;
}
static void sub_8110A00(void)
@@ -497,7 +498,7 @@ static void sub_8110A00(void)
gUnknown_3005E88 = 0;
sub_8110E3C();
gUnknown_203ADFA = 0;
- gUnknown_203AE8C = NULL;
+ sQuestLogCB = NULL;
}
}
@@ -813,13 +814,13 @@ static bool8 sub_8110E68(struct UnkStruct_203AE98 * a0)
return FALSE;
switch (a0[i].unk_6)
{
- case 0:
- case 1:
- gUnknown_203AE08 = sub_8113D48(gUnknown_203AE08, &a0[i]);
- break;
- default:
- gUnknown_203AE08 = sub_8113CC8(gUnknown_203AE08, &a0[i]);
- break;
+ case 0:
+ case 1:
+ gUnknown_203AE08 = sub_8113D48(gUnknown_203AE08, &a0[i]);
+ break;
+ default:
+ gUnknown_203AE08 = sub_8113CC8(gUnknown_203AE08, &a0[i]);
+ break;
}
if (gUnknown_203AE08 == NULL)
{
@@ -1176,29 +1177,29 @@ static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
{
switch (r4[0] & 0xFFF)
{
- case 0:
- r4 = sub_8113D08(r4, &a1[r6]);
- r6++;
- break;
- case 1:
- case 2:
- r4 = sub_8113D94(r4, &a1[r6]);
- r6++;
- break;
- case 39:
- r4 = sub_8113C20(r4, &a1[r6]);
- r6++;
- break;
- case 41:
- r4 = sub_8113C8C(r4, &a1[r6]);
- r6++;
- break;
- default:
- r4 = sub_8113A78(r4, &gUnknown_203AE0C[r9]);
- if (r9 == 0)
- sub_8113ABC(gUnknown_203AE0C[0]);
- r9++;
- break;
+ case 0:
+ r4 = sub_8113D08(r4, &a1[r6]);
+ r6++;
+ break;
+ case 1:
+ case 2:
+ r4 = sub_8113D94(r4, &a1[r6]);
+ r6++;
+ break;
+ case 39:
+ r4 = sub_8113C20(r4, &a1[r6]);
+ r6++;
+ break;
+ case 41:
+ r4 = sub_8113C8C(r4, &a1[r6]);
+ r6++;
+ break;
+ default:
+ r4 = QuestLog_SkipCommand(r4, &gUnknown_203AE0C[r9]);
+ if (r9 == 0)
+ sub_8113ABC(gUnknown_203AE0C[0]);
+ r9++;
+ break;
}
if (r4 == NULL)
break;
@@ -1208,10 +1209,10 @@ static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
static void sub_81118F4(s8 a0)
{
fade_screen(1, a0);
- gUnknown_203AE8C = sub_8111914;
+ sQuestLogCB = QuestLog_AdvancePlayhead;
}
-static void sub_8111914(void)
+static void QuestLog_AdvancePlayhead(void)
{
if (!gPaletteFade.active)
{
@@ -1224,12 +1225,12 @@ static void sub_8111914(void)
else
{
gUnknown_3005E88 = 0;
- sub_8111984();
+ QuestLog_EndPlayback();
}
}
}
-static void sub_8111984(void)
+static void QuestLog_EndPlayback(void)
{
ResetSpecialVars();
Save_ResetSaveCounters();
@@ -1238,15 +1239,15 @@ static void sub_8111984(void)
gFieldCallback2 = sub_8111F60;
FreeAllWindowBuffers();
gUnknown_203ADFA = 3;
- gUnknown_203AE8C = NULL;
+ sQuestLogCB = NULL;
}
void sub_81119C8(void)
{
- sub_8111914();
+ QuestLog_AdvancePlayhead();
}
-bool8 sub_81119D4(void (*a0)(void))
+bool8 QuestLog_SchedulePlaybackCB(void (*callback)(void))
{
u8 taskId;
@@ -1257,41 +1258,41 @@ bool8 sub_81119D4(void (*a0)(void))
break;
case 2:
gUnknown_3005E88 = 3;
- taskId = CreateTask(sub_8111A34, 80);
+ taskId = CreateTask(Task_RunPlaybackCB, 80);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = 0;
- SetWordTaskArg(taskId, 14, (u32)a0);
+ SetWordTaskArg(taskId, 14, (uintptr_t)callback);
return TRUE;
}
return FALSE;
}
-static void sub_8111A34(u8 taskId)
+static void Task_RunPlaybackCB(u8 taskId)
{
void (*routine)(void);
s16 *data = gTasks[taskId].data;
switch (data[1])
{
- case 0:
- if (++data[0] == 0x7F)
- {
- BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
- gUnknown_203AE94.unk_0_6 = 2;
- data[1]++;
- }
- break;
- case 1:
- if (!gPaletteFade.active)
- {
- gUnknown_3005E88 = 0;
- routine = (void (*)(void)) GetWordTaskArg(taskId, 14);
- if (routine != NULL)
- routine();
- DestroyTask(taskId);
- gUnknown_203AE8C = sub_8111914;
- }
- break;
+ case 0:
+ if (++data[0] == 0x7F)
+ {
+ BeginNormalPaletteFade(0xFFFFFFFF, 0, 0, 16, 0);
+ gUnknown_203AE94.unk_0_6 = 2;
+ data[1]++;
+ }
+ break;
+ case 1:
+ if (!gPaletteFade.active)
+ {
+ gUnknown_3005E88 = 0;
+ routine = (void (*)(void)) GetWordTaskArg(taskId, 14);
+ if (routine != NULL)
+ routine();
+ DestroyTask(taskId);
+ sQuestLogCB = QuestLog_AdvancePlayhead;
+ }
+ break;
}
}
@@ -1384,7 +1385,7 @@ void sub_8111C68(void)
{
gUnknown_203AE94.unk_0_6 = 1;
gUnknown_3005E88 = 0;
- sub_8111E64(-3);
+ QuestLog_SkipToEndOfPlayback(-3);
}
}
}
@@ -1431,15 +1432,15 @@ static void sub_8111D90(u8 a0)
{
switch (i)
{
- default:
- y = 1;
- break;
- case 0:
- y = 0;
- break;
- case 5:
- y = 2;
- break;
+ default:
+ y = 1;
+ break;
+ case 0:
+ y = 0;
+ break;
+ case 5:
+ y = 2;
+ break;
}
// r6 = y * 32
@@ -1465,13 +1466,13 @@ static void sub_8111E20(void)
CopyWindowToVram(gUnknown_203ADFE[1], 1);
}
-static void sub_8111E64(s8 a0)
+static void QuestLog_SkipToEndOfPlayback(s8 a0)
{
fade_screen(1, a0);
- gUnknown_203AE8C = sub_8111E84;
+ sQuestLogCB = QuestLog_WaitFadeAndCancelPlayback;
}
-static void sub_8111E84(void)
+static void QuestLog_WaitFadeAndCancelPlayback(void)
{
if (!gPaletteFade.active)
{
@@ -1483,7 +1484,7 @@ static void sub_8111E84(void)
sub_811175C(gUnknown_203ADF8, gUnknown_203AE98);
}
gUnknown_3005E88 = 0;
- sub_8111984();
+ QuestLog_EndPlayback();
}
}
@@ -1563,46 +1564,46 @@ static void sub_81120AC(u8 taskId)
switch (data[0])
{
- case 0:
- gDisableMapMusicChangeOnMapLoad = 0;
- Overworld_PlaySpecialMapMusic();
- sub_811229C();
- FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8);
- data[0]++;
- break;
- case 1:
- if (sub_81121D8(taskId))
+ case 0:
+ gDisableMapMusicChangeOnMapLoad = 0;
+ Overworld_PlaySpecialMapMusic();
+ sub_811229C();
+ FillWindowPixelRect(gUnknown_203ADFE[0], 0xF, 0, 0, gUnknown_845661C[0].width * 8, gUnknown_845661C[0].height * 8);
+ data[0]++;
+ break;
+ case 1:
+ if (sub_81121D8(taskId))
+ {
+ for (i = 0; i < 3; i++)
{
- for (i = 0; i < 3; i++)
- {
- ClearWindowTilemap(gUnknown_203ADFE[i]);
- CopyWindowToVram(gUnknown_203ADFE[i], 1);
- RemoveWindow(gUnknown_203ADFE[i]);
- }
- data[1] = 0;
- data[0]++;
+ ClearWindowTilemap(gUnknown_203ADFE[i]);
+ CopyWindowToVram(gUnknown_203ADFE[i], 1);
+ RemoveWindow(gUnknown_203ADFE[i]);
}
- break;
- case 2:
- if (data[1] < 32)
- data[1]++;
- else
- data[0]++;
- break;
- default:
- if (gUnknown_203AE94.unk_0_6 == 1)
- sub_8098110(1);
- CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400);
- Free(gUnknown_203AE90);
- gUnknown_203AE94 = (struct UnkStruct_203AE94){};
- sub_80696C0();
- ScriptContext2_Disable();
- gTextFlags.autoScroll = FALSE;
- gUnknown_2036E28 = 0;
- sub_8082740(0);
- gHelpSystemEnabled = TRUE;
- DestroyTask(taskId);
- break;
+ data[1] = 0;
+ data[0]++;
+ }
+ break;
+ case 2:
+ if (data[1] < 32)
+ data[1]++;
+ else
+ data[0]++;
+ break;
+ default:
+ if (gUnknown_203AE94.unk_0_6 == 1)
+ sub_8098110(1);
+ CpuCopy16(gUnknown_203AE90, gPlttBufferUnfaded, 0x400);
+ Free(gUnknown_203AE90);
+ gUnknown_203AE94 = (struct UnkStruct_203AE94){};
+ sub_80696C0();
+ ScriptContext2_Disable();
+ gTextFlags.autoScroll = FALSE;
+ gUnknown_2036E28 = 0;
+ sub_8082740(0);
+ gHelpSystemEnabled = TRUE;
+ DestroyTask(taskId);
+ break;
}
}
@@ -1643,7 +1644,7 @@ void sub_811231C(void)
sub_8110E68(gUnknown_203AE98);
sub_8110E3C();
gUnknown_203ADFA = 0;
- gUnknown_203AE8C = NULL;
+ sQuestLogCB = NULL;
gUnknown_203AE04 = NULL;
gUnknown_203AE08 = NULL;
gUnknown_3005E88 = 0;
@@ -1659,7 +1660,7 @@ void sub_8112364(void)
sub_8110E3C();
gUnknown_3005E88 = 0;
gUnknown_203ADFA = 0;
- gUnknown_203AE8C = NULL;
+ sQuestLogCB = NULL;
}
gUnknown_203AE04 = NULL;
gUnknown_203AE08 = NULL;
@@ -1834,14 +1835,14 @@ static void sub_8112888(u8 a0)
{
switch (a0)
{
- case 1:
- if (gUnknown_3005E88 == 1)
- gUnknown_3005E88 = 3;
- break;
- case 2:
- if (gUnknown_3005E88 == 3)
- gUnknown_3005E88 = 1;
- break;
+ case 1:
+ if (gUnknown_3005E88 == 1)
+ gUnknown_3005E88 = 3;
+ break;
+ case 2:
+ if (gUnknown_3005E88 == 3)
+ gUnknown_3005E88 = 1;
+ break;
}
}
@@ -1851,24 +1852,24 @@ void sub_81128BC(u8 a0)
switch (a0)
{
- case 1:
- if (r1 == 1)
- gUnknown_3005E88 = 3;
- else if (r1 == 2)
- {
- gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
- gUnknown_3005E94[sQuestLogIdx].unk_6 = 3;
- sQuestLogIdx++;
- gUnknown_203B01A = 0;
- gUnknown_3005E88 = 4;
- }
- break;
- case 2:
- if (r1 == 1)
- gUnknown_3005E88 = 1;
- else if (r1 == 2)
- gUnknown_3005E88 = 2;
- break;
+ case 1:
+ if (r1 == 1)
+ gUnknown_3005E88 = 3;
+ else if (r1 == 2)
+ {
+ gUnknown_3005E94[sQuestLogIdx].unk_4 = gUnknown_203B01A;
+ gUnknown_3005E94[sQuestLogIdx].unk_6 = 3;
+ sQuestLogIdx++;
+ gUnknown_203B01A = 0;
+ gUnknown_3005E88 = 4;
+ }
+ break;
+ case 2:
+ if (r1 == 1)
+ gUnknown_3005E88 = 1;
+ else if (r1 == 2)
+ gUnknown_3005E88 = 2;
+ break;
}
}
@@ -1878,64 +1879,64 @@ static void sub_8112940(u8 a0, struct UnkStruct_203AE98 *a1, u16 a2)
switch (a0)
{
- default:
- gUnknown_3005E88 = 0;
- break;
+ default:
+ gUnknown_3005E88 = 0;
+ break;
+ case 1:
+ gUnknown_3005E94 = a1;
+ sNumQuestLogs = a2 / 8;
+ for (i = 0; i < 0x40; i++)
+ {
+ gUnknown_203AF9A[i][0] |= 0xFF;
+ gUnknown_203AF9A[i][1] |= 0xFF;
+ }
+ sQuestLogIdx = 0;
+ gUnknown_203B01C = 0;
+ gUnknown_3005E90 = (struct UnkStruct_3005E90){};
+ gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
+ gUnknown_203AF9A[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ gUnknown_203AF9A[0][1] = 0xFF;
+ gUnknown_3005E88 = 1;
+ break;
+ case 2:
+ gUnknown_3005E94 = a1;
+ sNumQuestLogs = a2 / 8;
+ for (i = 0; i < sNumQuestLogs; i++)
+ {
+ gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF };
+ }
+ sQuestLogIdx = 0;
+ gUnknown_203B01A = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
+ switch (GetPlayerFacingDirection())
+ {
+ case 0:
case 1:
- gUnknown_3005E94 = a1;
- sNumQuestLogs = a2 / 8;
- for (i = 0; i < 0x40; i++)
- {
- gUnknown_203AF9A[i][0] |= 0xFF;
- gUnknown_203AF9A[i][1] |= 0xFF;
- }
- sQuestLogIdx = 0;
- gUnknown_203B01C = 0;
- gUnknown_3005E90 = (struct UnkStruct_3005E90){};
- gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
- gUnknown_203AF9A[0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
- gUnknown_203AF9A[0][1] = 0xFF;
- gUnknown_3005E88 = 1;
+ gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
+ break;
+ case 4:
+ gUnknown_3005E94[sQuestLogIdx].unk_3 = 3;
break;
case 2:
- gUnknown_3005E94 = a1;
- sNumQuestLogs = a2 / 8;
- for (i = 0; i < sNumQuestLogs; i++)
- {
- gUnknown_3005E94[i] = (struct UnkStruct_203AE98){ 0, 0, 0, 0, 0xFFFF, 0xFF };
- }
- sQuestLogIdx = 0;
- gUnknown_203B01A = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_6 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
- switch (GetPlayerFacingDirection())
- {
- case 0:
- case 1:
- gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
- break;
- case 4:
- gUnknown_3005E94[sQuestLogIdx].unk_3 = 3;
- break;
- case 2:
- gUnknown_3005E94[sQuestLogIdx].unk_3 = 1;
- break;
- case 3:
- gUnknown_3005E94[sQuestLogIdx].unk_3 = 2;
- break;
- }
- gUnknown_203B01C = 0;
- sQuestLogIdx++;
- gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_6 = 2;
- gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_1 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_2 = 0;
- gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
- sQuestLogIdx++;
- gUnknown_3005E88 = 2;
+ gUnknown_3005E94[sQuestLogIdx].unk_3 = 1;
+ break;
+ case 3:
+ gUnknown_3005E94[sQuestLogIdx].unk_3 = 2;
break;
+ }
+ gUnknown_203B01C = 0;
+ sQuestLogIdx++;
+ gUnknown_3005E94[sQuestLogIdx].unk_4 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_6 = 2;
+ gUnknown_3005E94[sQuestLogIdx].unk_0 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_1 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_2 = 0;
+ gUnknown_3005E94[sQuestLogIdx].unk_3 = 0;
+ sQuestLogIdx++;
+ gUnknown_3005E88 = 2;
+ break;
}
}
@@ -1944,67 +1945,67 @@ void sub_8112B3C(void)
{
switch (gUnknown_3005E88)
{
- case 0:
- break;
- case 1:
- if (sub_8112CEC())
+ case 0:
+ break;
+ case 1:
+ if (sub_8112CEC())
+ {
+ if (gUnknown_203B01A != 0)
+ gUnknown_203B01A--;
+ else
{
- if (gUnknown_203B01A != 0)
- gUnknown_203B01A--;
- else
+ while (1)
{
- while (1)
+ switch (gUnknown_3005E94[sQuestLogIdx].unk_6)
{
- switch (gUnknown_3005E94[sQuestLogIdx].unk_6)
- {
- case 0:
- gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
- break;
- case 1:
- gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3;
- break;
- case 2:
- *(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[sQuestLogIdx].unk_3 << 24) | (gUnknown_3005E94[sQuestLogIdx].unk_2 << 16) | (gUnknown_3005E94[sQuestLogIdx].unk_1 << 8) | (gUnknown_3005E94[sQuestLogIdx].unk_0 << 0));
- break;
- case 3:
- gUnknown_3005E88 = 3;
- break;
- case 0xFE:
- break;
- case 0xFF:
- gUnknown_3005E88 = 0;
- break;
- }
- if (gUnknown_3005E88 == 0)
- break;
- if (++sQuestLogIdx >= sNumQuestLogs)
- {
- gUnknown_3005E88 = 0;
- break;
- }
- gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
- if (gUnknown_3005E88 == 3)
- break;
- if (gUnknown_203B01A == 0)
- continue;
- if (gUnknown_203B01A == 0xFFFF)
- break;
- }
+ case 0:
+ gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][0] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ break;
+ case 1:
+ gUnknown_203AF9A[gUnknown_3005E94[sQuestLogIdx].unk_0][1] = gUnknown_3005E94[sQuestLogIdx].unk_3;
+ break;
+ case 2:
+ *(u32 *)&gUnknown_3005E90 = ((gUnknown_3005E94[sQuestLogIdx].unk_3 << 24) | (gUnknown_3005E94[sQuestLogIdx].unk_2 << 16) | (gUnknown_3005E94[sQuestLogIdx].unk_1 << 8) | (gUnknown_3005E94[sQuestLogIdx].unk_0 << 0));
+ break;
+ case 3:
+ gUnknown_3005E88 = 3;
+ break;
+ case 0xFE:
+ break;
+ case 0xFF:
+ gUnknown_3005E88 = 0;
+ break;
+ }
+ if (gUnknown_3005E88 == 0)
+ break;
+ if (++sQuestLogIdx >= sNumQuestLogs)
+ {
+ gUnknown_3005E88 = 0;
+ break;
+ }
+ gUnknown_203B01A = gUnknown_3005E94[sQuestLogIdx].unk_4;
+ if (gUnknown_3005E88 == 3)
+ break;
+ if (gUnknown_203B01A == 0)
+ continue;
+ if (gUnknown_203B01A == 0xFFFF)
+ break;
}
}
- else if (sQuestLogIdx >= sNumQuestLogs)
- gUnknown_3005E88 = 0;
- break;
- case 2:
- if (ScriptContext2_IsEnabled() != 1)
- gUnknown_203B01A++;
- if (sQuestLogIdx >= sNumQuestLogs)
- gUnknown_3005E88 = 0;
- break;
- case 3:
- break;
- case 4:
- break;
+ }
+ else if (sQuestLogIdx >= sNumQuestLogs)
+ gUnknown_3005E88 = 0;
+ break;
+ case 2:
+ if (ScriptContext2_IsEnabled() != 1)
+ gUnknown_203B01A++;
+ if (sQuestLogIdx >= sNumQuestLogs)
+ gUnknown_3005E88 = 0;
+ break;
+ case 3:
+ break;
+ case 4:
+ break;
}
}
#else
@@ -2203,15 +2204,15 @@ u8 sub_8112CAC(void)
{
switch (gUnknown_3005E88)
{
- case 0:
- default:
- return 0;
- case 1:
- case 3:
- return 1;
- case 2:
- case 4:
- return 2;
+ case 0:
+ default:
+ return 0;
+ case 1:
+ case 3:
+ return 1;
+ case 2:
+ case 4:
+ return 2;
}
}
@@ -2669,27 +2670,27 @@ void BufferStreakTrainerText(void)
switch (gSpecialVar_0x8004)
{
- case 0:
- r2 = 0;
- r3 = 0;
- break;
- case 1:
- case 2:
- case 3:
- case 7:
- break;
- case 4:
- r2 = 1;
- r3 = 0;
- break;
- case 5:
- r2 = 0;
- r3 = 1;
- break;
- case 6:
- r2 = 2;
- r3 = 1;
- break;
+ case 0:
+ r2 = 0;
+ r3 = 0;
+ break;
+ case 1:
+ case 2:
+ case 3:
+ case 7:
+ break;
+ case 4:
+ r2 = 1;
+ r3 = 0;
+ break;
+ case 5:
+ r2 = 0;
+ r3 = 1;
+ break;
+ case 6:
+ r2 = 2;
+ r3 = 1;
+ break;
}
sub_8113414(&gSaveBlock2Ptr->linkBattleRecords, r3, r2);
}
@@ -2702,18 +2703,18 @@ static void sub_8113414(struct LinkBattleRecords * a0, u8 a1, u8 a2)
{
switch (a2)
{
- case 0:
- StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
- break;
- case 1:
- StringCopy(gStringVar1, gUnknown_84178D0); // LT. SURGE
- break;
- case 2:
- StringCopy(gStringVar1, gUnknown_84178DA); // KOGA
- break;
- default:
- StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
- break;
+ case 0:
+ StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
+ break;
+ case 1:
+ StringCopy(gStringVar1, gUnknown_84178D0); // LT. SURGE
+ break;
+ case 2:
+ StringCopy(gStringVar1, gUnknown_84178DA); // KOGA
+ break;
+ default:
+ StringCopy(gStringVar1, gSaveBlock1Ptr->rivalName);
+ break;
}
}
else
@@ -3313,7 +3314,7 @@ static const u16 *(*const sQuestLogScriptParsingCBs[])(const u16 *) = {
sub_8115800
};
-static const u8 gUnknown_8456AA0[] = {
+static const u8 sQuestLogEventCmdSizes[] = {
0x08,
0x08,
0x08,
@@ -3359,16 +3360,16 @@ static const u8 gUnknown_8456AA0[] = {
0x06
};
-static u16 *sub_8113A78(u16 *a0, u16 **a1)
+static u16 *QuestLog_SkipCommand(u16 *curPtr, u16 **prevPtr_p)
{
- u16 r2 = a0[0] & 0xfff;
- u16 r4 = a0[0] >> 12;
- if (r2 == 33)
- r4 = 0;
- if (r2 < 3 || r2 > 42)
+ u16 idx = curPtr[0] & 0xfff;
+ u16 cnt = curPtr[0] >> 12;
+ if (idx == 33)
+ cnt = 0;
+ if (idx < 3 || idx > 42)
return NULL;
- *a1 = a0;
- return gUnknown_8456AA0[r2] + (gUnknown_8456AA0[r2] - 4) * r4 + (void *)a0;
+ *prevPtr_p = curPtr;
+ return sQuestLogEventCmdSizes[idx] + (sQuestLogEventCmdSizes[idx] - 4) * cnt + (void *)curPtr;
}
static void sub_8113ABC(u16 *a0)
@@ -3484,7 +3485,7 @@ static void sub_8113BD8(void)
static u16 *sub_8113BF4(u16 *a0)
{
- if (!sub_8110988(a0, gUnknown_8456AA0[39]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[39]))
return NULL;
a0[0] = 39;
return a0 + 1;
@@ -3492,7 +3493,7 @@ static u16 *sub_8113BF4(u16 *a0)
static u16 *sub_8113C20(u16 *a0, struct UnkStruct_203AE98 * a1)
{
- if (!sub_8110988(a0, gUnknown_8456AA0[39]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[39]))
return NULL;
a1->unk_6 = 0xFF;
a1->unk_4 = 0;
@@ -3505,7 +3506,7 @@ static u16 *sub_8113C20(u16 *a0, struct UnkStruct_203AE98 * a1)
static u16 *sub_8113C5C(u16 *a0, u16 a1)
{
- if (!sub_8110988(a0, gUnknown_8456AA0[41]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[41]))
return NULL;
a0[0] = 41;
a0[1] = a1;
@@ -3514,7 +3515,7 @@ static u16 *sub_8113C5C(u16 *a0, u16 a1)
static u16 *sub_8113C8C(u16 *a0, struct UnkStruct_203AE98 * a1)
{
- if (!sub_8110988(a0, gUnknown_8456AA0[41]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[41]))
return NULL;
a1->unk_6 = 0xFE;
a1->unk_4 = a0[1];
@@ -3529,7 +3530,7 @@ static u16 *sub_8113CC8(u16 *a0, struct UnkStruct_203AE98 * a1)
{
u8 *r6 = (u8 *)a0 + 4;
- if (!sub_8110988(a0, gUnknown_8456AA0[0]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[0]))
return NULL;
a0[0] = 0;
a0[1] = a1->unk_4;
@@ -3544,7 +3545,7 @@ static u16 *sub_8113D08(u16 *a0, struct UnkStruct_203AE98 * a1)
{
u8 *r6 = (u8 *)a0 + 4;
- if (!sub_8110988(a0, gUnknown_8456AA0[0]))
+ if (!sub_8110988(a0, sQuestLogEventCmdSizes[0]))
return NULL;
a1->unk_6 = 2;
a1->unk_4 = a0[1];
@@ -3560,7 +3561,7 @@ static u16 *sub_8113D48(u16 *a0, struct UnkStruct_203AE98 * a1)
u16 *r4 = a0;
u8 *r6 = (u8 *)a0 + 4;
- if (!sub_8110988(r4, gUnknown_8456AA0[2]))
+ if (!sub_8110988(r4, sQuestLogEventCmdSizes[2]))
return NULL;
if (a1->unk_6 == 0)
r4[0] = 2;
@@ -3579,7 +3580,7 @@ static u16 *sub_8113D94(u16 *a0, struct UnkStruct_203AE98 * a1)
u16 *r5 = a0;
u8 *r6 = (u8 *)a0 + 4;
- if (!sub_8110988(r5, gUnknown_8456AA0[2]))
+ if (!sub_8110988(r5, sQuestLogEventCmdSizes[2]))
return NULL;
if (r5[0] == 2)
a1->unk_6 = 0;
@@ -3601,9 +3602,9 @@ u16 *sub_8113DE0(u16 a0, u16 *a1)
u8 r1;
if (gUnknown_203B044.unk_1 == 0)
- r6 = gUnknown_8456AA0[a0];
+ r6 = sQuestLogEventCmdSizes[a0];
else
- r6 = gUnknown_8456AA0[a0] - 4;
+ r6 = sQuestLogEventCmdSizes[a0] - 4;
if (!sub_8110944(a1, r6))
return NULL;
@@ -3635,13 +3636,10 @@ u16 *sub_8113DE0(u16 a0, u16 *a1)
static const u16 *sub_8113E88(u16 a0, const u16 *a1)
{
- a1 = (const void *)a1 + (gUnknown_203B044.unk_2 * (gUnknown_8456AA0[a0] - 4) + 4);
+ a1 = (const void *)a1 + (gUnknown_203B044.unk_2 * (sQuestLogEventCmdSizes[a0] - 4) + 4);
return a1;
}
-// TODO: delete this declaration once data_83FECCC.s is decompiled
-extern const u8 gText_EggNickname[];
-
void QuestLog_AutoGetSpeciesName(u16 a0, u8 *a1, u8 a2)
{
if (a1 != NULL)
@@ -3703,48 +3701,48 @@ static const u16 *sub_8113FBC(const u16 *a0)
switch (ItemId_GetPocket(r5[0]))
{
- case POCKET_ITEMS:
- case POCKET_POKE_BALLS:
- case POCKET_BERRY_POUCH:
- StringCopy(gStringVar1, ItemId_GetName(r5[0]));
- if (r5[0] == ITEM_ESCAPE_ROPE)
- {
- sub_80C4DF8(gStringVar2, r5[2]);
- StringExpandPlaceholders(gStringVar4, gUnknown_841AFA6);
- }
- else if (r5[1] != 0xFFFF)
- {
- QuestLog_AutoGetSpeciesName(r5[1], gStringVar2, 0);
- StringExpandPlaceholders(gStringVar4, gUnknown_841A1E7);
- }
+ case POCKET_ITEMS:
+ case POCKET_POKE_BALLS:
+ case POCKET_BERRY_POUCH:
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
+ if (r5[0] == ITEM_ESCAPE_ROPE)
+ {
+ sub_80C4DF8(gStringVar2, r5[2]);
+ StringExpandPlaceholders(gStringVar4, gUnknown_841AFA6);
+ }
+ else if (r5[1] != 0xFFFF)
+ {
+ QuestLog_AutoGetSpeciesName(r5[1], gStringVar2, 0);
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A1E7);
+ }
+ else
+ {
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A210);
+ }
+ break;
+ case POCKET_KEY_ITEMS:
+ StringCopy(gStringVar1, ItemId_GetName(r5[0]));
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A220);
+ break;
+ case POCKET_TM_CASE:
+ QuestLog_AutoGetSpeciesName(r5[1], gStringVar1, 0);
+ StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(r5[0])]);
+ if (r5[2] != 0xFFFF)
+ {
+ StringCopy(gStringVar3, gMoveNames[r5[2]]);
+ if (r5[0] > ITEM_TM50)
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A965);
else
- {
- StringExpandPlaceholders(gStringVar4, gUnknown_841A210);
- }
- break;
- case POCKET_KEY_ITEMS:
- StringCopy(gStringVar1, ItemId_GetName(r5[0]));
- StringExpandPlaceholders(gStringVar4, gUnknown_841A220);
- break;
- case POCKET_TM_CASE:
- QuestLog_AutoGetSpeciesName(r5[1], gStringVar1, 0);
- StringCopy(gStringVar2, gMoveNames[ItemIdToBattleMoveId(r5[0])]);
- if (r5[2] != 0xFFFF)
- {
- StringCopy(gStringVar3, gMoveNames[r5[2]]);
- if (r5[0] > ITEM_TM50)
- StringExpandPlaceholders(gStringVar4, gUnknown_841A965);
- else
- StringExpandPlaceholders(gStringVar4, gUnknown_841A277);
- }
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A277);
+ }
+ else
+ {
+ if (r5[0] > ITEM_TM50)
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A938);
else
- {
- if (r5[0] > ITEM_TM50)
- StringExpandPlaceholders(gStringVar4, gUnknown_841A938);
- else
- StringExpandPlaceholders(gStringVar4, gUnknown_841A255);
- }
- break;
+ StringExpandPlaceholders(gStringVar4, gUnknown_841A255);
+ }
+ break;
}
return r5 + 3;
}
@@ -3873,7 +3871,7 @@ static u16 *sub_81143F0(u16 *a0, const u16 *a1)
if (gUnknown_203B044.unk_0 == 11 && gUnknown_203B044.unk_1 != 0)
return r4;
- if (!sub_8110944(a0, gUnknown_8456AA0[11]))
+ if (!sub_8110944(a0, sQuestLogEventCmdSizes[11]))
return NULL;
r4[0] = 11;
@@ -4371,7 +4369,7 @@ static u16 *sub_8114DE8(u16 *a0, const u16 *a1)
{
u16 *r4 = a0;
u8 *r5 = (u8 *)a0 + 8;
- if (!sub_8110944(r4, gUnknown_8456AA0[31]))
+ if (!sub_8110944(r4, sQuestLogEventCmdSizes[31]))
return NULL;
if (r5[0] == 0 && r5[1] == 0)
{
@@ -4393,7 +4391,7 @@ static u16 *sub_8114DE8(u16 *a0, const u16 *a1)
static const u16 *sub_8114E68(const u16 *a0)
{
const u8 *r6;
- if (!sub_8110944(a0, gUnknown_8456AA0[31]))
+ if (!sub_8110944(a0, sQuestLogEventCmdSizes[31]))
return NULL;
r6 = (const u8 *)a0 + 8;
@@ -4442,11 +4440,11 @@ static bool8 sub_8114FBC(u16 a0)
{
switch (a0)
{
- case 0x96:
- case 0x8F ... 0x92:
- case 0xF9 ... 0xFA:
- case 0x19A:
- return TRUE;
+ case 0x96:
+ case 0x8F ... 0x92:
+ case 0xF9 ... 0xFA:
+ case 0x19A:
+ return TRUE;
}
return FALSE;
}
@@ -4473,7 +4471,7 @@ static const u16 *sub_811500C(const u16 *a0)
static u16 *sub_8115078(u16 *a0, const u16 *a1)
{
- if (!sub_8110944(a0, gUnknown_8456AA0[33]))
+ if (!sub_8110944(a0, sQuestLogEventCmdSizes[33]))
return NULL;
a0[0] = 0x2021;
a0[1] = sQuestLogIdx;
@@ -4487,7 +4485,7 @@ static u16 *sub_8115078(u16 *a0, const u16 *a1)
static const u16 *sub_81150CC(const u16 *a0)
{
const u8 *r5;
- if (!sub_8110944(a0, gUnknown_8456AA0[33]))
+ if (!sub_8110944(a0, sQuestLogEventCmdSizes[33]))
return NULL;
r5 = (const u8 *)a0 + 8;
@@ -4495,22 +4493,22 @@ static const u16 *sub_81150CC(const u16 *a0)
switch (gUnknown_203B044.unk_2)
{
- case 0:
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName);
- DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
- break;
- case 1:
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName);
- QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName);
- QuestLog_AutoGetSpeciesName(a0[3], NULL, 3);
- DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312);
- break;
- case 2:
- DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]);
- DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349);
- break;
+ case 0:
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock2Ptr->playerName);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(1, gSaveBlock1Ptr->rivalName);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A2E1);
+ break;
+ case 1:
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gSaveBlock1Ptr->rivalName);
+ QuestLog_AutoGetSpeciesName(a0[2], NULL, 1);
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(2, gSaveBlock2Ptr->playerName);
+ QuestLog_AutoGetSpeciesName(a0[3], NULL, 3);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A312);
+ break;
+ case 2:
+ DynamicPlaceholderTextUtil_SetPlaceholderPtr(0, gUnknown_8456AD8[r5[0]]);
+ DynamicPlaceholderTextUtil_ExpandPlaceholders(gStringVar4, gUnknown_841A349);
+ break;
}
return (const u16 *)(r5 + 2);
}
diff --git a/src/scrcmd.c b/src/scrcmd.c
index b59f97420..9675a132e 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -50,15 +50,15 @@ extern const u8 *const gStdScriptsEnd[];
static bool8 sub_806B93C(struct ScriptContext * ctx);
static u8 sub_806B96C(struct ScriptContext * ctx);
-EWRAM_DATA ptrdiff_t gVScriptOffset = 0;
-EWRAM_DATA u8 gUnknown_20370AC = 0;
-EWRAM_DATA u16 sPauseCounter = 0;
-EWRAM_DATA u16 sMovingNpcId = 0;
-EWRAM_DATA u16 sMovingNpcMapBank = 0;
-EWRAM_DATA u16 sMovingNpcMapId = 0;
-EWRAM_DATA u16 sFieldEffectScriptId = 0;
+static EWRAM_DATA ptrdiff_t gVScriptOffset = 0;
+static EWRAM_DATA u8 gUnknown_20370AC = 0;
+static EWRAM_DATA u16 sPauseCounter = 0;
+static EWRAM_DATA u16 sMovingNpcId = 0;
+static EWRAM_DATA u16 sMovingNpcMapBank = 0;
+static EWRAM_DATA u16 sMovingNpcMapId = 0;
+static EWRAM_DATA u16 sFieldEffectScriptId = 0;
-IWRAM_DATA struct ScriptContext * gUnknown_3005070;
+struct ScriptContext * gUnknown_3005070;
extern u8 gSelectedEventObject;
@@ -1835,7 +1835,7 @@ bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx)
u8 y = ScriptReadByte(ctx);
u8 ignore = ScriptReadByte(ctx);
- if (!ignore && sub_81119D4(sub_809D6D4) != TRUE)
+ if (!ignore && QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
DrawMoneyBox(GetMoney(&gSaveBlock1Ptr->money), x, y);
return FALSE;
}
@@ -1865,7 +1865,7 @@ bool8 ScrCmd_showcoinsbox(struct ScriptContext *ctx)
u8 x = ScriptReadByte(ctx);
u8 y = ScriptReadByte(ctx);
- if (sub_81119D4(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
ShowCoinsWindow(GetCoins(), x, y);
return FALSE;
}
diff --git a/src/script_menu.c b/src/script_menu.c
new file mode 100644
index 000000000..b3826322b
--- /dev/null
+++ b/src/script_menu.c
@@ -0,0 +1,1293 @@
+#include "global.h"
+#include "palette.h"
+#include "text.h"
+#include "menu.h"
+#include "task.h"
+#include "sound.h"
+#include "script_menu.h"
+#include "quest_log.h"
+#include "window.h"
+#include "new_menu_helpers.h"
+#include "event_data.h"
+#include "script.h"
+#include "strings.h"
+#include "string_util.h"
+#include "field_effect.h"
+#include "event_scripts.h"
+#include "constants/songs.h"
+#include "constants/species.h"
+#include "constants/seagallop.h"
+#include "constants/menu.h"
+
+struct MultichoiceListStruct
+{
+ const struct MenuAction * list;
+ u8 count;
+};
+
+static EWRAM_DATA u8 sDelay = 0;
+
+static void DrawVerticalMultichoiceMenu(u8 left, u8 top, u8 mcId, u8 ignoreBpress, u8 initPos);
+static u8 GetMCWindowHeight(u8 count);
+static void CreateMCMenuInputHandlerTask(u8 ignoreBpress, u8 count, u8 windowId, u8 mcId);
+static void Task_MultichoiceMenu_HandleInput(u8 taskId);
+static void MultiChoicePrintHelpDescription(u8 mcId);
+static void Task_YesNoMenu_HandleInput(u8 taskId);
+static void Hask_MultichoiceGridMenu_HandleInput(u8 taskId);
+static void CreatePCMenuWindow(void);
+static bool8 PicboxWait(void);
+static void DestroyScriptMenuWindow(u8 windowId);
+static u8 CreateWindowFromRect(u8 left, u8 top, u8 width, u8 height);
+
+
+static const struct MenuAction sScriptMultiChoiceMenu_YesNo[] = {
+ { gText_Yes },
+ { gText_No }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TrainerCardIconTint[] = {
+ { gText_Normal },
+ { gText_Black },
+ { gText_Pink },
+ { gText_Sepia }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_HOF_Quit[] = {
+ { gText_HallOfFame },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Eggs_Quit[] = {
+ { gText_Eggs },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Victories_Quit[] = {
+ { gText_Victories },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_HOF_Eggs_Quit[] = {
+ { gText_HallOfFame },
+ { gText_Eggs },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_HOF_Victories_Quit[] = {
+ { gText_HallOfFame },
+ { gText_Victories },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Eggs_Victories_Quit[] = {
+ { gText_Eggs },
+ { gText_Victories },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_HOF_Eggs_Victories_Quit[] = {
+ { gText_HallOfFame },
+ { gText_Eggs },
+ { gText_Victories },
+ { gText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TrainerSchoolWhiteboard[] = {
+ { gText_Slp },
+ { gText_Psn },
+ { gText_Par },
+ { gText_Brn },
+ { gText_Frz },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_YesNoInfo[] = {
+ { gText_Yes },
+ { gText_No },
+ { gText_Info }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SingleDoubleMultiInfoExit[] = {
+ { gText_SingleBattle },
+ { gText_DoubleBattle },
+ { gText_MultiBattle },
+ { gText_Info },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_YesNoInfo2[] = {
+ { gText_Yes },
+ { gText_No },
+ { gText_Info }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ChallengeInfoExit[] = {
+ { gText_MakeAChallenge },
+ { gText_Info_2 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_RooftopB1F[] = {
+ { gText_Rooftop },
+ { gText_B1F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Helix[] = {
+ { gText_HelixFossil },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Dome[] = {
+ { gText_DomeFossil },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Amber[] = {
+ { gText_OldAmber },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_HelixAmber[] = {
+ { gText_HelixFossil },
+ { gText_OldAmber },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_DomeAmber[] = {
+ { gText_DomeFossil },
+ { gText_OldAmber },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_CeladonVendingMachine[] = {
+ { gText_FreshWater_200 },
+ { gText_SodaPop_300 },
+ { gText_Lemonade_350 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_GameCornerTMPrizes[] = {
+ { gText_Tm13_4000Coins },
+ { gText_Tm23_3500Coins },
+ { gText_Tm24_4000Coins },
+ { gText_Tm30_4500Coins },
+ { gText_Tm35_4000Coins },
+ { gText_NoThanks_2 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_GameCornerBattleItemPrizes[] = {
+ { gText_SmokeBall_800Coins },
+ { gText_MiracleSeed_1000Coins },
+ { gText_Charcoal_1000Coins },
+ { gText_MysticWater_1000Coins },
+ { gText_YellowFlute_1600Coins },
+ { gText_NoThanks_2 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_GameCornerCoinPurchaseCounter[] = {
+ { gText_50Coins_1000 },
+ { gText_500Coins_10000 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Excellent_NotSoBad[] = {
+ { gText_Excellent },
+ { gText_NotSoBad }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_RightLeft[] = {
+ { gText_Right },
+ { gText_Left }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_DeptStoreElevator[] = {
+ { gText_5F_2 },
+ { gText_4F_2 },
+ { gText_3F_2 },
+ { gText_2F_2 },
+ { gText_1F_2 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlFreshWater[] = {
+ { gText_FreshWater },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlSodaPop[] = {
+ { gText_SodaPop },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPop[] = {
+ { gText_FreshWater },
+ { gText_SodaPop },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlLemonade[] = {
+ { gText_Lemonade },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlFreshWaterLemonade[] = {
+ { gText_FreshWater },
+ { gText_Lemonade },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlSodaPopLemonade[] = {
+ { gText_SodaPop },
+ { gText_Lemonade },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPopLemonade[] = {
+ { gText_FreshWater },
+ { gText_SodaPop },
+ { gText_Lemonade },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_0[] = {
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_1[] = {
+ { gText_RedShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_2[] = {
+ { gText_YellowShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_3[] = {
+ { gText_RedShard },
+ { gText_YellowShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_4[] = {
+ { gText_BlueShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_5[] = {
+ { gText_RedShard },
+ { gText_BlueShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_6[] = {
+ { gText_YellowShard },
+ { gText_BlueShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_7[] = {
+ { gText_RedShard },
+ { gText_YellowShard },
+ { gText_BlueShard },
+ { gText_GreenShard },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Eeveelutions[] = {
+ { gText_Eevee },
+ { gText_Flareon },
+ { gText_Jolteon },
+ { gText_Vaporeon },
+ { gText_QuitLooking }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_BikeShop[] = {
+ { gText_Bicycle_1000000 },
+ { gText_NoThanks }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_GameCornerPokemonPrizes[] = {
+ { gText_Abra_180Coins },
+ { gText_Clefairy_500Coins },
+ { gText_Dratini_2800Coins },
+ { gText_Scyther_5500Coins },
+ { gText_Porygon_9999Coins },
+ { gText_NoThanks_2 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TradeCenter_Colosseum[] = {
+ { gText_TradeCenter },
+ { gText_Colosseum },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Link_Wireless[] = {
+ { gText_GameLinkCable },
+ { gText_Wireless },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_RocketHideoutElevator[] = {
+ { gText_B1F },
+ { gText_B2F },
+ { gText_B4F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_LinkedDirectUnion[] = {
+ { gText_LinkedGamePlay },
+ { gText_DirectCorner },
+ { gText_UnionRoom },
+ { gOtherText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Island23[] = {
+ { gText_TwoIsland },
+ { gText_ThreeIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Island13[] = {
+ { gText_OneIsland },
+ { gText_ThreeIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Island12[] = {
+ { gText_OneIsland },
+ { gText_TwoIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumCrush[] = {
+ { gText_TradeCenter },
+ { gText_Colosseum_2 },
+ { gText_BerryCrush },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_48[] = {
+ { gText_Dummy_8417E66 },
+ { gText_Dummy_8417E67 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseum_2[] = {
+ { gText_TradeCenter },
+ { gText_Colosseum_2 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_PokejumpDodrio[] = {
+ { gText_PokemonJump },
+ { gText_DodrioBerryPicking },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Mushrooms[] = {
+ { gText_2Tinymushrooms },
+ { gText_1BigMushroom }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlankCrush[] = {
+ { gText_TradeCenter },
+ { gText_Colosseum_2 },
+ { gText_Dummy_8417E71 },
+ { gText_BerryCrush },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TradeColosseumBlank[] = {
+ { gText_TradeCenter },
+ { gText_Colosseum_2 },
+ { gText_Dummy_8417E71 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeviiNavel[] = {
+ { gText_SeviiIslands },
+ { gText_NavelRock },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeviiBirth[] = {
+ { gText_SeviiIslands },
+ { gText_BirthIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeviiNavelBirth[] = {
+ { gText_SeviiIslands },
+ { gText_NavelRock },
+ { gText_BirthIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Seagallop123[] = {
+ { gText_OneIsland },
+ { gText_TwoIsland },
+ { gText_ThreeIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeagallopV23[] = {
+ { gText_Vermilion },
+ { gText_TwoIsland },
+ { gText_ThreeIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeagallopV13[] = {
+ { gText_Vermilion },
+ { gText_OneIsland },
+ { gText_ThreeIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeagallopV12[] = {
+ { gText_Vermilion },
+ { gText_OneIsland },
+ { gText_TwoIsland },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_SeagallopVermilion[] = {
+ { gText_Vermilion },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_62[] = {
+ { gText_Dummy_8417F68 },
+ { gText_Dummy_8417F67 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_JoinOrLead[] = {
+ { gText_JoinGroup },
+ { gText_BecomeLeader },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_TrainerTowerMode[] = {
+ { gOtherText_Single },
+ { gOtherText_Double },
+ { gOtherText_Knockout },
+ { gOtherText_Mixed },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Exit[] = {
+ { gOtherText_Exit }
+};
+
+const struct MultichoiceListStruct gScriptMultiChoiceMenus[] = {
+ { sScriptMultiChoiceMenu_YesNo, NELEMS(sScriptMultiChoiceMenu_YesNo) },
+ { sScriptMultiChoiceMenu_Eeveelutions, NELEMS(sScriptMultiChoiceMenu_Eeveelutions) },
+ { sScriptMultiChoiceMenu_TrainerCardIconTint, NELEMS(sScriptMultiChoiceMenu_TrainerCardIconTint) },
+ { sScriptMultiChoiceMenu_HOF_Quit, NELEMS(sScriptMultiChoiceMenu_HOF_Quit) },
+ { sScriptMultiChoiceMenu_Eggs_Quit, NELEMS(sScriptMultiChoiceMenu_Eggs_Quit) },
+ { sScriptMultiChoiceMenu_Victories_Quit, NELEMS(sScriptMultiChoiceMenu_Victories_Quit) },
+ { sScriptMultiChoiceMenu_HOF_Eggs_Quit, NELEMS(sScriptMultiChoiceMenu_HOF_Eggs_Quit) },
+ { sScriptMultiChoiceMenu_HOF_Victories_Quit, NELEMS(sScriptMultiChoiceMenu_HOF_Victories_Quit) },
+ { sScriptMultiChoiceMenu_Eggs_Victories_Quit, NELEMS(sScriptMultiChoiceMenu_Eggs_Victories_Quit) },
+ { sScriptMultiChoiceMenu_HOF_Eggs_Victories_Quit, NELEMS(sScriptMultiChoiceMenu_HOF_Eggs_Victories_Quit) },
+ { sScriptMultiChoiceMenu_Exit, NELEMS(sScriptMultiChoiceMenu_Exit) },
+ { sScriptMultiChoiceMenu_Exit, NELEMS(sScriptMultiChoiceMenu_Exit) },
+ { sScriptMultiChoiceMenu_Exit, NELEMS(sScriptMultiChoiceMenu_Exit) },
+ { sScriptMultiChoiceMenu_BikeShop, NELEMS(sScriptMultiChoiceMenu_BikeShop) },
+ { sScriptMultiChoiceMenu_GameCornerPokemonPrizes, NELEMS(sScriptMultiChoiceMenu_GameCornerPokemonPrizes) },
+ { sScriptMultiChoiceMenu_TrainerSchoolWhiteboard, NELEMS(sScriptMultiChoiceMenu_TrainerSchoolWhiteboard) },
+ { sScriptMultiChoiceMenu_YesNoInfo, NELEMS(sScriptMultiChoiceMenu_YesNoInfo) },
+ { sScriptMultiChoiceMenu_SingleDoubleMultiInfoExit, NELEMS(sScriptMultiChoiceMenu_SingleDoubleMultiInfoExit) },
+ { sScriptMultiChoiceMenu_YesNoInfo2, NELEMS(sScriptMultiChoiceMenu_YesNoInfo2) },
+ { sScriptMultiChoiceMenu_ChallengeInfoExit, NELEMS(sScriptMultiChoiceMenu_ChallengeInfoExit) },
+ { sScriptMultiChoiceMenu_RooftopB1F, NELEMS(sScriptMultiChoiceMenu_RooftopB1F) },
+ { sScriptMultiChoiceMenu_Helix, NELEMS(sScriptMultiChoiceMenu_Helix) },
+ { sScriptMultiChoiceMenu_Dome, NELEMS(sScriptMultiChoiceMenu_Dome) },
+ { sScriptMultiChoiceMenu_Amber, NELEMS(sScriptMultiChoiceMenu_Amber) },
+ { sScriptMultiChoiceMenu_HelixAmber, NELEMS(sScriptMultiChoiceMenu_HelixAmber) },
+ { sScriptMultiChoiceMenu_DomeAmber, NELEMS(sScriptMultiChoiceMenu_DomeAmber) },
+ { sScriptMultiChoiceMenu_CeladonVendingMachine, NELEMS(sScriptMultiChoiceMenu_CeladonVendingMachine) },
+ { sScriptMultiChoiceMenu_GameCornerCoinPurchaseCounter, NELEMS(sScriptMultiChoiceMenu_GameCornerCoinPurchaseCounter) },
+ { sScriptMultiChoiceMenu_Excellent_NotSoBad, NELEMS(sScriptMultiChoiceMenu_Excellent_NotSoBad) },
+ { sScriptMultiChoiceMenu_RightLeft, NELEMS(sScriptMultiChoiceMenu_RightLeft) },
+ { sScriptMultiChoiceMenu_GameCornerTMPrizes, NELEMS(sScriptMultiChoiceMenu_GameCornerTMPrizes) },
+ { sScriptMultiChoiceMenu_DeptStoreElevator, NELEMS(sScriptMultiChoiceMenu_DeptStoreElevator) },
+ { sScriptMultiChoiceMenu_ThirstyGirlFreshWater, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlFreshWater) },
+ { sScriptMultiChoiceMenu_ThirstyGirlSodaPop, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlSodaPop) },
+ { sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPop, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPop) },
+ { sScriptMultiChoiceMenu_ThirstyGirlLemonade, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlLemonade) },
+ { sScriptMultiChoiceMenu_ThirstyGirlFreshWaterLemonade, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlFreshWaterLemonade) },
+ { sScriptMultiChoiceMenu_ThirstyGirlSodaPopLemonade, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlSodaPopLemonade) },
+ { sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPopLemonade, NELEMS(sScriptMultiChoiceMenu_ThirstyGirlFreshWaterSodaPopLemonade) },
+ { sScriptMultiChoiceMenu_TradeCenter_Colosseum, NELEMS(sScriptMultiChoiceMenu_TradeCenter_Colosseum) },
+ { sScriptMultiChoiceMenu_Link_Wireless, NELEMS(sScriptMultiChoiceMenu_Link_Wireless) },
+ { sScriptMultiChoiceMenu_GameCornerBattleItemPrizes, NELEMS(sScriptMultiChoiceMenu_GameCornerBattleItemPrizes) },
+ { sScriptMultiChoiceMenu_RocketHideoutElevator, NELEMS(sScriptMultiChoiceMenu_RocketHideoutElevator) },
+ { sScriptMultiChoiceMenu_LinkedDirectUnion, NELEMS(sScriptMultiChoiceMenu_LinkedDirectUnion) },
+ { sScriptMultiChoiceMenu_Island23, NELEMS(sScriptMultiChoiceMenu_Island23) },
+ { sScriptMultiChoiceMenu_Island13, NELEMS(sScriptMultiChoiceMenu_Island13) },
+ { sScriptMultiChoiceMenu_Island12, NELEMS(sScriptMultiChoiceMenu_Island12) },
+ { sScriptMultiChoiceMenu_TradeColosseumCrush, NELEMS(sScriptMultiChoiceMenu_TradeColosseumCrush) },
+ { sScriptMultiChoiceMenu_48, NELEMS(sScriptMultiChoiceMenu_48) },
+ { sScriptMultiChoiceMenu_PokejumpDodrio, NELEMS(sScriptMultiChoiceMenu_PokejumpDodrio) },
+ { sScriptMultiChoiceMenu_TradeColosseum_2, NELEMS(sScriptMultiChoiceMenu_TradeColosseum_2) },
+ { sScriptMultiChoiceMenu_Mushrooms, NELEMS(sScriptMultiChoiceMenu_Mushrooms) },
+ { sScriptMultiChoiceMenu_TradeColosseumBlankCrush, NELEMS(sScriptMultiChoiceMenu_TradeColosseumBlankCrush) },
+ { sScriptMultiChoiceMenu_TradeColosseumBlank, NELEMS(sScriptMultiChoiceMenu_TradeColosseumBlank) },
+ { sScriptMultiChoiceMenu_SeviiNavel, NELEMS(sScriptMultiChoiceMenu_SeviiNavel) },
+ { sScriptMultiChoiceMenu_SeviiBirth, NELEMS(sScriptMultiChoiceMenu_SeviiBirth) },
+ { sScriptMultiChoiceMenu_SeviiNavelBirth, NELEMS(sScriptMultiChoiceMenu_SeviiNavelBirth) },
+ { sScriptMultiChoiceMenu_Seagallop123, NELEMS(sScriptMultiChoiceMenu_Seagallop123) },
+ { sScriptMultiChoiceMenu_SeagallopV23, NELEMS(sScriptMultiChoiceMenu_SeagallopV23) },
+ { sScriptMultiChoiceMenu_SeagallopV13, NELEMS(sScriptMultiChoiceMenu_SeagallopV13) },
+ { sScriptMultiChoiceMenu_SeagallopV12, NELEMS(sScriptMultiChoiceMenu_SeagallopV12) },
+ { sScriptMultiChoiceMenu_SeagallopVermilion, NELEMS(sScriptMultiChoiceMenu_SeagallopVermilion) },
+ { sScriptMultiChoiceMenu_62, NELEMS(sScriptMultiChoiceMenu_62) },
+ { sScriptMultiChoiceMenu_JoinOrLead, NELEMS(sScriptMultiChoiceMenu_JoinOrLead) },
+ { sScriptMultiChoiceMenu_TrainerTowerMode, NELEMS(sScriptMultiChoiceMenu_TrainerTowerMode) }
+};
+
+const u8 *const gStdStringPtrs[] = {
+ gText_Cool,
+ gText_Beauty,
+ gText_Cute,
+ gText_Smart,
+ gText_Tough,
+ gText_Cool_2,
+ gText_Beauty_2,
+ gText_Cute_2,
+ gText_Smart_2,
+ gText_Tough_2,
+ gText_Items,
+ gText_KeyItems,
+ gText_PokeBalls,
+ gText_TmsgUnknown_8417B2CHms,
+ gText_Berries,
+ gText_Boulderbadge,
+ gText_Cascadebadge,
+ gText_Thunderbadge,
+ gText_Rainbowbadge,
+ gText_Soulbadge,
+ gText_Marshbadge,
+ gText_Volcanobadge,
+ gText_Earthbadge,
+ gText_Coins_2,
+ gText_ItemsPocket,
+ gText_KeyItemsPocket,
+ gText_PokeBallsPocket,
+ gText_TmCase,
+ gText_BerryPouch_2
+};
+
+static const u8 *const sDescriptionPtrs_CableClub_TradeBattleCancel[] = {
+ Text_1BC388,
+ Text_1BC3C7,
+ Text_1BCB42
+};
+
+static const u8 *const sDescriptionPtrs_WirelessCenter_TradeBattleCrushCancel[] = {
+ Text_1BCA95,
+ Text_1BCACB,
+ Text_1BCAF2,
+ Text_1BCB42
+};
+
+static const u8 *const sDescriptionPtrs_WirelessCenter_TradeBattleCancel[] = {
+ Text_1BCA95,
+ Text_1BCACB,
+ Text_1BCB42
+};
+
+static const union AnimCmd sMuseumFossilAnim0[] = {
+ ANIMCMD_FRAME(0, 10),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sMuseumFossilAnimCmdTable[] = {
+ sMuseumFossilAnim0
+};
+
+static const struct OamData sMuseumFossilOamData = {
+ .shape = SPRITE_SHAPE(64x64),
+ .size = SPRITE_SIZE(64x64)
+};
+
+static const struct SpriteTemplate sMuseumFossilSprTemplate = {
+ .tileTag = 7000,
+ .paletteTag = 0xFFFF,
+ .oam = &sMuseumFossilOamData,
+ .anims = sMuseumFossilAnimCmdTable,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy
+};
+
+static const u16 sMuseumAerodactylSprTiles[] = INCBIN_U16("data/script_menu/aerodactyl_fossil.4bpp");
+static const u16 sMuseumAerodactylSprPalette[] = INCBIN_U16("data/script_menu/aerodactyl_fossil.gbapal");
+static const u16 sMuseumKabutopsSprTiles[] = INCBIN_U16("data/script_menu/kabutops_fossil.4bpp");
+static const u16 sMuseumKabutopsSprPalette[] = INCBIN_U16("data/script_menu/kabutops_fossil.gbapal");
+
+static const struct SpriteSheet sMuseumKabutopsSprSheets[] = {
+ {sMuseumKabutopsSprTiles, 0x800, 7000},
+ {}
+};
+
+static const struct SpriteSheet sMuseumAerodactylSprSheets[] = {
+ {sMuseumAerodactylSprTiles, 0x800, 7000},
+ {}
+};
+
+
+static const u8 *const sSeagallopDestStrings[] = {
+ gText_Vermilion,
+ gText_OneIsland,
+ gText_TwoIsland,
+ gText_ThreeIsland,
+ gText_FourIsland,
+ gText_FiveIsland,
+ gText_SixIsland,
+ gText_SevenIsland
+};
+
+static u16 GetStringTilesWide(const u8 *str)
+{
+ return (GetStringWidth(1, str, 0) + 7) / 8;
+}
+
+static u8 GetMenuWidthFromList(const struct MenuAction * items, u8 count)
+{
+ u16 i;
+ u8 width = GetStringTilesWide(items[0].text);
+ u8 tmp;
+
+ for (i = 1; i < count; i++)
+ {
+ tmp = GetStringTilesWide(items[i].text);
+ if (width < tmp)
+ width = tmp;
+ }
+ return width;
+}
+
+bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 mcId, u8 ignoreBpress)
+{
+ if (FuncIsActiveTask(Task_MultichoiceMenu_HandleInput) == TRUE)
+ return FALSE;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ DrawVerticalMultichoiceMenu(left, top, mcId, ignoreBpress, 0);
+ return TRUE;
+}
+
+bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 mcId, u8 ignoreBpress, u8 cursorPos)
+{
+ if (FuncIsActiveTask(Task_MultichoiceMenu_HandleInput) == TRUE)
+ return FALSE;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ DrawVerticalMultichoiceMenu(left, top, mcId, ignoreBpress, cursorPos);
+ return TRUE;
+}
+
+static void DrawVerticalMultichoiceMenu(u8 left, u8 top, u8 mcId, u8 ignoreBpress, u8 initPos)
+{
+ s32 i;
+ s32 strWidth;
+ s32 tmp;
+ u8 width;
+ u8 height;
+ u8 count;
+ u8 windowId;
+ const struct MenuAction * list;
+
+ if ((ignoreBpress & 2) || QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
+ {
+ ignoreBpress &= 1;
+ count = gScriptMultiChoiceMenus[mcId].count;
+ list = gScriptMultiChoiceMenus[mcId].list;
+ strWidth = 0;
+ for (i = 0; i < count; i++)
+ {
+ tmp = GetStringWidth(2, list[i].text, 0);
+ if (tmp > strWidth)
+ strWidth = tmp;
+ }
+ width = (strWidth + 9) / 8 + 1;
+ if (left + width > 28)
+ left = 28 - width;
+ height = GetMCWindowHeight(count);
+ windowId = CreateWindowFromRect(left, top, width, height);
+ SetStdWindowBorderStyle(windowId, FALSE);
+ if (mcId == 30 || mcId == 13 || mcId == 41)
+ MultichoiceList_PrintItems(windowId, 2, 8, 2, 14, count, list, 0, 2);
+ else
+ MultichoiceList_PrintItems(windowId, 2, 8, 2, 14, count, list, 0, 2);
+ Menu_InitCursor(windowId, 2, 0, 2, 14, count, initPos);
+ CreateMCMenuInputHandlerTask(ignoreBpress, count, windowId, mcId);
+ ScheduleBgCopyTilemapToVram(0);
+ }
+}
+
+static u8 GetMCWindowHeight(u8 count)
+{
+ switch (count)
+ {
+ case 0:
+ return 1;
+ case 1:
+ return 2;
+ case 2:
+ return 4;
+ case 3:
+ return 6;
+ case 4:
+ return 7;
+ case 5:
+ return 9;
+ case 6:
+ return 11;
+ case 7:
+ return 13;
+ case 8:
+ return 14;
+ default:
+ return 1;
+ }
+}
+
+static void CreateMCMenuInputHandlerTask(u8 ignoreBpress, u8 count, u8 windowId, u8 mcId)
+{
+ u8 taskId;
+ if (mcId == 39 || mcId == 47 || mcId == 50)
+ sDelay = 12;
+ else
+ sDelay = 0;
+ taskId = CreateTask(Task_MultichoiceMenu_HandleInput, 80);
+ gTasks[taskId].data[4] = ignoreBpress;
+ if (count > 3)
+ gTasks[taskId].data[5] = TRUE;
+ else
+ gTasks[taskId].data[5] = FALSE;
+ gTasks[taskId].data[6] = windowId;
+ gTasks[taskId].data[7] = mcId;
+ MultiChoicePrintHelpDescription(mcId);
+}
+
+static void Task_MultichoiceMenu_HandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s8 input;
+ if (!gPaletteFade.active)
+ {
+ if (sDelay != 0)
+ sDelay--;
+ else
+ {
+ if (data[5] == FALSE)
+ input = Menu_ProcessInputNoWrapAround();
+ else
+ input = Menu_ProcessInput();
+ if (JOY_NEW(DPAD_UP | DPAD_DOWN))
+ MultiChoicePrintHelpDescription(data[7]);
+ switch (input)
+ {
+ case -2:
+ return;
+ case -1:
+ if (data[4])
+ return;
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = SCR_MENU_CANCEL;
+ break;
+ default:
+ gSpecialVar_Result = input;
+ break;
+ }
+ DestroyScriptMenuWindow(data[6]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+ }
+}
+
+static void MultiChoicePrintHelpDescription(u8 mcId)
+{
+ switch (mcId)
+ {
+ case 39:
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ AddTextPrinterParameterized2(0, 2, sDescriptionPtrs_CableClub_TradeBattleCancel[Menu_GetCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 47:
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ AddTextPrinterParameterized2(0, 2, sDescriptionPtrs_WirelessCenter_TradeBattleCrushCancel[Menu_GetCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ case 50:
+ FillWindowPixelBuffer(0, PIXEL_FILL(1));
+ AddTextPrinterParameterized2(0, 2, sDescriptionPtrs_WirelessCenter_TradeBattleCancel[Menu_GetCursorPos()], 0, NULL, 2, 1, 3);
+ break;
+ }
+}
+
+bool8 ScriptMenu_YesNo(u8 unused, u8 stuff)
+{
+ if (FuncIsActiveTask(Task_YesNoMenu_HandleInput) == TRUE)
+ return FALSE;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (!QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites))
+ {
+ DisplayYesNoMenuDefaultYes();
+ CreateTask(Task_YesNoMenu_HandleInput, 80);
+ }
+ return TRUE;
+}
+
+bool8 sub_809CE38(void)
+{
+ if (gSpecialVar_Result == SCR_MENU_UNSET)
+ return FALSE;
+ else
+ return TRUE;
+}
+
+static void Task_YesNoMenu_HandleInput(u8 taskId)
+{
+ s8 input;
+ if (gTasks[taskId].data[2] < 5)
+ {
+ gTasks[taskId].data[2]++;
+ }
+ else
+ {
+ input = Menu_ProcessInputNoWrapClearOnChoose();
+ switch (input)
+ {
+ case -2:
+ return;
+ case -1:
+ case 1:
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = FALSE;
+ break;
+ case 0:
+ gSpecialVar_Result = TRUE;
+ break;
+ }
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+ }
+}
+
+bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 columnCount)
+{
+ const struct MenuAction * list;
+ u8 count;
+ u8 width;
+ u8 rowCount;
+ u8 taskId;
+ if (FuncIsActiveTask(Hask_MultichoiceGridMenu_HandleInput) == TRUE)
+ return FALSE;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
+ {
+ list = gScriptMultiChoiceMenus[multichoiceId].list;
+ count = gScriptMultiChoiceMenus[multichoiceId].count;
+ width = GetMenuWidthFromList(list, count) + 1;
+ rowCount = count / columnCount;
+ taskId = CreateTask(Hask_MultichoiceGridMenu_HandleInput, 80);
+ gTasks[taskId].data[4] = a4;
+ gTasks[taskId].data[6] = CreateWindowFromRect(left, top, width * columnCount, rowCount * 2);
+ SetStdWindowBorderStyle(gTasks[taskId].data[6], FALSE);
+ MultichoiceGrid_PrintItems(gTasks[taskId].data[6], 1, width * 8, 16, columnCount, rowCount, list);
+ MultichoiceGrid_InitCursor(gTasks[taskId].data[6], 1, 0, 1, width * 8, columnCount, rowCount, 0);
+ ScheduleBgCopyTilemapToVram(0);
+ }
+ return TRUE;
+}
+
+static void Hask_MultichoiceGridMenu_HandleInput(u8 taskId)
+{
+ s16 *data = gTasks[taskId].data;
+ s8 input = Menu_ProcessInputGridLayout();
+ switch (input)
+ {
+ case -2:
+ return;
+ case -1:
+ if (data[4])
+ return;
+ PlaySE(SE_SELECT);
+ gSpecialVar_Result = SCR_MENU_CANCEL;
+ break;
+ default:
+ gSpecialVar_Result = input;
+ break;
+ }
+ DestroyScriptMenuWindow(data[6]);
+ DestroyTask(taskId);
+ EnableBothScriptContexts();
+}
+
+bool8 ScrSpecial_CreatePCMenu(void)
+{
+ if (FuncIsActiveTask(Task_MultichoiceMenu_HandleInput) == TRUE)
+ return FALSE;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ CreatePCMenuWindow();
+ return TRUE;
+}
+
+static void CreatePCMenuWindow(void)
+{
+ u8 cursorWidth = GetMenuCursorDimensionByFont(2, 0);
+ u8 height = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
+ u8 windowWidth;
+ u8 nitems;
+ u8 windowId;
+ switch (GetStringTilesWide(gText_SPc))
+ {
+ default:
+ if (FlagGet(FLAG_SYS_POKEDEX_GET))
+ windowWidth = 14;
+ else
+ windowWidth = 13;
+ break;
+ case 9:
+ case 10:
+ windowWidth = 14;
+ break;
+ }
+ if (FlagGet(FLAG_SYS_GAME_CLEAR))
+ {
+ nitems = 5;
+ windowId = CreateWindowFromRect(0, 0, windowWidth, 10);
+ SetStdWindowBorderStyle(windowId, FALSE);
+ AddTextPrinterParameterized(windowId, 2, gText_ProfOakSPc, cursorWidth, 34, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gText_HallOfFame_2, cursorWidth, 50, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gText_LogOff, cursorWidth, 66, 0xFF, NULL);
+ }
+ else
+ {
+ if (FlagGet(FLAG_SYS_POKEDEX_GET))
+ nitems = 4;
+ else
+ nitems = 3;
+ windowId = CreateWindowFromRect(0, 0, windowWidth, nitems * 2);
+ SetStdWindowBorderStyle(windowId, FALSE);
+ if (FlagGet(FLAG_SYS_POKEDEX_GET))
+ AddTextPrinterParameterized(windowId, 2, gText_ProfOakSPc, cursorWidth, 34, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, gText_LogOff, cursorWidth, 2 + 16 * (nitems - 1), 0xFF, NULL);
+ }
+ if (FlagGet(FLAG_SYS_NOT_SOMEONES_PC))
+ AddTextPrinterParameterized(windowId, 2, gText_BillSPc, cursorWidth, 2 , 0xFF, NULL);
+ else
+ AddTextPrinterParameterized(windowId, 2, gText_SomeoneSPc, cursorWidth, 2 , 0xFF, NULL);
+ StringExpandPlaceholders(gStringVar4, gText_SPc);
+ Menu_PrintFormatIntlPlayerName(windowId, gStringVar4, cursorWidth, 18);
+ Menu_InitCursor(windowId, 2, 0, 2, 16, nitems, 0);
+ CreateMCMenuInputHandlerTask(FALSE, nitems, windowId, 0xFF);
+ ScheduleBgCopyTilemapToVram(0);
+}
+
+void ScriptMenu_DisplayPCStartupPrompt(void)
+{
+ sub_80F7768(0, TRUE);
+ AddTextPrinterParameterized2(0, 2, gUnknown_81A508A, 0, NULL, 2, 1, 3);
+}
+
+static void Task_ScriptShowMonPic(u8 taskId)
+{
+ struct Task * task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[0]++;
+ break;
+ case 1:
+ break;
+ case 2:
+ sub_8083A5C(&gSprites[task->data[2]], task->data[2]);
+ task->data[0]++;
+ break;
+ case 3:
+ DestroyScriptMenuWindow(task->data[5]);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
+{
+ u8 spriteId;
+ u8 taskId;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) == TRUE)
+ return TRUE;
+ if (FindTaskIdByFunc(Task_ScriptShowMonPic) != 0xFF)
+ return FALSE;
+ spriteId = sub_8083970(species, 8 * x + 40, 8 * y + 40, FALSE);
+ taskId = CreateTask(Task_ScriptShowMonPic, 80);
+ gTasks[taskId].data[5] = CreateWindowFromRect(x, y, 8, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[1] = species;
+ gTasks[taskId].data[2] = spriteId;
+ gSprites[spriteId].callback = SpriteCallbackDummy;
+ gSprites[spriteId].oam.priority = 0;
+ SetStdWindowBorderStyle(gTasks[taskId].data[5], TRUE);
+ ScheduleBgCopyTilemapToVram(0);
+ return TRUE;
+}
+
+bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void)
+{
+ u8 taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
+ if (taskId == 0xFF)
+ return NULL;
+ gTasks[taskId].data[0]++;
+ return PicboxWait;
+}
+
+static bool8 PicboxWait(void)
+{
+ if (FindTaskIdByFunc(Task_ScriptShowMonPic) == 0xFF)
+ return TRUE;
+ else
+ return FALSE;
+}
+
+void sub_809D424(void)
+{
+ u8 taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
+ struct Task * task;
+ if (taskId != 0xFF)
+ {
+ task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ case 1:
+ case 2:
+ sub_8083A5C(&gSprites[task->data[2]], task->data[2]);
+ DestroyScriptMenuWindow(task->data[5]);
+ DestroyTask(taskId);
+ break;
+ case 3:
+ DestroyScriptMenuWindow(task->data[5]);
+ DestroyTask(taskId);
+ break;
+ }
+ }
+}
+
+void Task_WaitMuseumFossilPic(u8 taskId)
+{
+ struct Task * task = &gTasks[taskId];
+ switch (task->data[0])
+ {
+ case 0:
+ task->data[0]++;
+ break;
+ case 1:
+ break;
+ case 2:
+ DestroySprite(&gSprites[task->data[2]]);
+ FreeSpriteTilesByTag(7000);
+ task->data[0]++;
+ break;
+ case 3:
+ DestroyScriptMenuWindow(task->data[5]);
+ DestroyTask(taskId);
+ break;
+ }
+}
+
+bool8 Special_OpenMuseumFossilPic(void)
+{
+ u8 spriteId;
+ u8 taskId;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) == TRUE)
+ return TRUE;
+ if (FindTaskIdByFunc(Task_WaitMuseumFossilPic) != 0xFF)
+ return FALSE;
+ if (gSpecialVar_0x8004 == SPECIES_KABUTOPS)
+ {
+ LoadSpriteSheets(sMuseumKabutopsSprSheets);
+ LoadPalette(sMuseumKabutopsSprPalette, 0x1D0, 0x20);
+ }
+ else if (gSpecialVar_0x8004 == SPECIES_AERODACTYL)
+ {
+ LoadSpriteSheets(sMuseumAerodactylSprSheets);
+ LoadPalette(sMuseumAerodactylSprPalette, 0x1D0, 0x20);
+ }
+ else
+ {
+ return FALSE;
+ }
+ spriteId = CreateSprite(&sMuseumFossilSprTemplate, gSpecialVar_0x8005 * 8 + 40, gSpecialVar_0x8006 * 8 + 40, 0);
+ gSprites[spriteId].oam.paletteNum = 13;
+ taskId = CreateTask(Task_WaitMuseumFossilPic, 80);
+ gTasks[taskId].data[5] = CreateWindowFromRect(gSpecialVar_0x8005, gSpecialVar_0x8006, 8, 8);
+ gTasks[taskId].data[0] = 0;
+ gTasks[taskId].data[2] = spriteId;
+ SetStdWindowBorderStyle(gTasks[taskId].data[5], TRUE);
+ ScheduleBgCopyTilemapToVram(0);
+ return TRUE;
+}
+
+bool8 Special_CloseMuseumFossilPic(void)
+{
+ u8 taskId = FindTaskIdByFunc(Task_WaitMuseumFossilPic);
+ if (taskId == 0xFF)
+ return FALSE;
+ gTasks[taskId].data[0]++;
+ return TRUE;
+}
+
+static u8 CreateWindowFromRect(u8 left, u8 top, u8 width, u8 height)
+{
+ struct WindowTemplate template = SetWindowTemplateFields(0, left + 1, top + 1, width, height, 15, 0x038);
+ u8 windowId = AddWindow(&template);
+ PutWindowTilemap(windowId);
+ return windowId;
+}
+
+static void DestroyScriptMenuWindow(u8 windowId)
+{
+ ClearWindowTilemap(windowId);
+ ClearStdWindowAndFrameToTransparent(windowId, TRUE);
+ RemoveWindow(windowId);
+}
+
+void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void)
+{
+ u8 taskId;
+ s16 *data;
+ ScriptContext1_SetupScript(EventScript_1A7AE0);
+ taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
+ if (taskId != 0xFF)
+ {
+ data = gTasks[taskId].data;
+ if (data[0] < 2)
+ sub_8083A5C(&gSprites[data[2]], data[2]);
+ }
+ taskId = FindTaskIdByFunc(Task_WaitMuseumFossilPic);
+ if (taskId != 0xFF)
+ {
+ data = gTasks[taskId].data;
+ if (data[0] < 2)
+ {
+ DestroySprite(&gSprites[data[2]]);
+ FreeSpriteTilesByTag(7000);
+ }
+ }
+}
+
+void Special_DrawSeagallopDestinationMenu(void)
+{
+ // 8004 = Starting location
+ // 8005 = Page (0: Verm, One, Two, Three, Four, Other, Exit; 1: Four, Five, Six, Seven, Other, Exit)
+ u8 r4;
+ u8 top;
+ u8 nitems;
+ u8 cursorWidth;
+ u8 fontHeight;
+ u8 windowId;
+ u8 i;
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
+ {
+ if (gSpecialVar_0x8005 == 1)
+ {
+ if (gSpecialVar_0x8004 < SEAGALLOP_FIVE_ISLAND)
+ r4 = SEAGALLOP_FIVE_ISLAND;
+ else
+ r4 = SEAGALLOP_FOUR_ISLAND;
+ nitems = 5;
+ top = 2;
+ }
+ else
+ {
+ r4 = SEAGALLOP_VERMILION_CITY;
+ nitems = 6;
+ top = 0;
+ }
+ cursorWidth = GetMenuCursorDimensionByFont(2, 0);
+ fontHeight = GetFontAttribute(2, FONTATTR_MAX_LETTER_HEIGHT);
+ windowId = CreateWindowFromRect(17, top, 11, nitems * 2);
+ SetStdWindowBorderStyle(windowId, FALSE);
+ for (i = 0; i < nitems - 2; i++)
+ {
+ if (r4 != gSpecialVar_0x8004)
+ AddTextPrinterParameterized(windowId, 2, sSeagallopDestStrings[r4], cursorWidth, i * 16 + 2, 0xFF, NULL);
+ else
+ i--;
+ r4++;
+ if (r4 == SEAGALLOP_CINNABAR_ISLAND)
+ r4 = SEAGALLOP_VERMILION_CITY;
+ }
+ AddTextPrinterParameterized(windowId, 2, gText_Other, cursorWidth, i * 16 + 2, 0xFF, NULL);
+ i++;
+ AddTextPrinterParameterized(windowId, 2, gOtherText_Exit, cursorWidth, i * 16 + 2, 0xFF, NULL);
+ Menu_InitCursor(windowId, 2, 0, 2, 16, nitems, 0);
+ CreateMCMenuInputHandlerTask(FALSE, nitems, windowId, 0xFF);
+ ScheduleBgCopyTilemapToVram(0);
+ }
+}
+
+u16 Special_GetSelectedSeagallopDestination(void)
+{
+ // 8004 = Starting location
+ // 8005 = Page (0: Verm, One, Two, Three, Four, Other, Exit; 1: Four, Five, Six, Seven, Other, Exit)
+ if (gSpecialVar_Result == SCR_MENU_CANCEL)
+ return SCR_MENU_CANCEL;
+ if (gSpecialVar_0x8005 == 1)
+ {
+ if (gSpecialVar_Result == 3)
+ {
+ return SEAGALLOP_MORE;
+ }
+ else if (gSpecialVar_Result == 4)
+ {
+ return SCR_MENU_CANCEL;
+ }
+ else if (gSpecialVar_Result == 0)
+ {
+ if (gSpecialVar_0x8004 > SEAGALLOP_FOUR_ISLAND)
+ return SEAGALLOP_FOUR_ISLAND;
+ else
+ return SEAGALLOP_FIVE_ISLAND;
+ }
+ else if (gSpecialVar_Result == 1)
+ {
+ if (gSpecialVar_0x8004 > SEAGALLOP_FIVE_ISLAND)
+ return SEAGALLOP_FIVE_ISLAND;
+ else
+ return SEAGALLOP_SIX_ISLAND;
+ }
+ else if (gSpecialVar_Result == 2)
+ {
+ if (gSpecialVar_0x8004 > SEAGALLOP_SIX_ISLAND)
+ return SEAGALLOP_SIX_ISLAND;
+ else
+ return SEAGALLOP_SEVEN_ISLAND;
+ }
+ }
+ else
+ {
+ if (gSpecialVar_Result == 4)
+ return SEAGALLOP_MORE;
+ else if (gSpecialVar_Result == 5)
+ return SCR_MENU_CANCEL;
+ else if (gSpecialVar_Result >= gSpecialVar_0x8004)
+ return gSpecialVar_Result + 1;
+ else
+ return gSpecialVar_Result;
+ }
+ return SEAGALLOP_VERMILION_CITY;
+}
diff --git a/src/seagallop.c b/src/seagallop.c
index 006a356e4..cf07f9880 100644
--- a/src/seagallop.c
+++ b/src/seagallop.c
@@ -25,13 +25,13 @@
static EWRAM_DATA void * sBg3TilemapBuffer = NULL;
-static void CB2_SetUpSeaGallopScene(void);
+static void CB2_SetUpSeagallopScene(void);
static void VBlankCB_SeaGallop(void);
static void MainCB2_SeaGallop(void);
-static void Task_SeaGallop_0(u8 taskId);
-static void Task_SeaGallop_1(u8 taskId);
-static void Task_SeaGallop_2(u8 taskId);
-static void Task_SeaGallop_3(void);
+static void Task_Seagallop_0(u8 taskId);
+static void Task_Seagallop_1(u8 taskId);
+static void Task_Seagallop_2(u8 taskId);
+static void Task_Seagallop_3(void);
static void ResetGPU(void);
static void ResetAllAssets(void);
static void SetDispcnt(void);
@@ -64,7 +64,7 @@ static const struct BgTemplate sBGTemplates[] = {
}
};
-static const s8 sSeaGallopSpawnTable[][4] = {
+static const s8 sSeag[][4] = {
// Map X Y
[SEAGALLOP_VERMILION_CITY] = {MAP(VERMILION_CITY), 0x17, 0x20},
[SEAGALLOP_ONE_ISLAND] = {MAP(ONE_ISLAND_HARBOR), 0x08, 0x05},
@@ -176,14 +176,14 @@ static const struct SpriteTemplate sWakeSpriteTemplate = {
SpriteCB_Wake
};
-void ScrSpecial_SeaGallopFerry(void)
+void ScrSpecial_SeagallopFerry(void)
{
SetVBlankCallback(NULL);
HelpSystem_Disable();
- SetMainCallback2(CB2_SetUpSeaGallopScene);
+ SetMainCallback2(CB2_SetUpSeagallopScene);
}
-static void CB2_SetUpSeaGallopScene(void)
+static void CB2_SetUpSeagallopScene(void)
{
void ** ptr;
switch (gMain.state)
@@ -248,7 +248,7 @@ static void CB2_SetUpSeaGallopScene(void)
SetGpuReg(REG_OFFSET_WINOUT, 0x00);
SetGpuReg(REG_OFFSET_WIN0H, 0x00F0);
SetGpuReg(REG_OFFSET_WIN0V, 0x1888);
- CreateTask(Task_SeaGallop_0, 8);
+ CreateTask(Task_Seagallop_0, 8);
SetMainCallback2(MainCB2_SeaGallop);
gMain.state = 0;
break;
@@ -270,9 +270,9 @@ static void MainCB2_SeaGallop(void)
UpdatePaletteFade();
}
-static void Task_SeaGallop_0(u8 taskId)
+static void Task_Seagallop_0(u8 taskId)
{
- gTasks[taskId].func = Task_SeaGallop_1;
+ gTasks[taskId].func = Task_Seagallop_1;
}
static void ScrollBG(void)
@@ -287,7 +287,7 @@ static void ScrollBG(void)
}
}
-static void Task_SeaGallop_1(u8 taskId)
+static void Task_Seagallop_1(u8 taskId)
{
struct Task * task = &gTasks[taskId];
@@ -296,29 +296,29 @@ static void Task_SeaGallop_1(u8 taskId)
{
Overworld_FadeOutMapMusic();
sub_807DC18();
- task->func = Task_SeaGallop_2;
+ task->func = Task_Seagallop_2;
}
}
-static void Task_SeaGallop_2(u8 taskId)
+static void Task_Seagallop_2(u8 taskId)
{
ScrollBG();
if (sub_8055FC4() && !gPaletteFade.active)
{
- Task_SeaGallop_3();
+ Task_Seagallop_3();
HelpSystem_Enable();
DestroyTask(taskId);
}
}
-static void Task_SeaGallop_3(void)
+static void Task_Seagallop_3(void)
{
const s8 * warpInfo;
- if (gSpecialVar_0x8006 >= NELEMS(sSeaGallopSpawnTable))
+ if (gSpecialVar_0x8006 >= NELEMS(sSeag))
gSpecialVar_0x8006 = 0;
- warpInfo = sSeaGallopSpawnTable[gSpecialVar_0x8006];
+ warpInfo = sSeag[gSpecialVar_0x8006];
SetWarpDestination(warpInfo[0], warpInfo[1], -1, warpInfo[2], warpInfo[3]);
PlayRainStoppingSoundEffect();
PlaySE(SE_KAIDAN);
diff --git a/sym_common.txt b/sym_common.txt
index 188ee8c5b..79ccc190d 100644
--- a/sym_common.txt
+++ b/sym_common.txt
@@ -47,8 +47,7 @@ gUnknown_3005068: @ 3005068
gUnknown_300506C: @ 300506C
.space 0x4
-gUnknown_3005070: @ 3005070
- .space 0x4
+ .include "scrcmd.o"
gSelectedEventObject: @ 3005074
.space 0x4
diff --git a/sym_ewram.txt b/sym_ewram.txt
index 9845563d5..77acf5657 100644
--- a/sym_ewram.txt
+++ b/sym_ewram.txt
@@ -404,9 +404,10 @@ gUnknown_203996C: @ 203996C
gUnknown_2039984: @ 2039984
.space 0x4
-gUnknown_2039988: @ 2039988
- .space 0x4
+ .align 2
+ .include "src/script_menu.o"
+ .align 2
gUnknown_203998C: @ 203998C
.space 0x4