summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPikalaxALT <pikalaxalt@gmail.com>2019-10-25 13:23:46 -0400
committerPikalaxALT <pikalaxalt@gmail.com>2019-10-25 13:23:46 -0400
commit00675eaafba7605bdbf5c16984975e4ed6ad6bde (patch)
tree11256735c3a94000f56101ce0c5d3ff393ca8a2e
parent0a440d658b2d4a311381b1d297872e7eece7486f (diff)
script_menu data
-rw-r--r--asm/overworld.s6
-rw-r--r--data/data_835B488.s494
-rw-r--r--data/event_scripts.s93
-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.inc4
-rw-r--r--include/constants/menu.h7
-rw-r--r--include/constants/seagallop.h2
-rw-r--r--include/event_scripts.h6
-rw-r--r--include/quest_log.h2
-rw-r--r--include/script_menu.h4
-rw-r--r--include/strings.h156
-rw-r--r--ld_script.txt2
-rw-r--r--src/berry_powder.c2
-rw-r--r--src/coins.c2
-rw-r--r--src/fame_checker.c13
-rw-r--r--src/field_specials.c4
-rw-r--r--src/quest_log.c122
-rw-r--r--src/scrcmd.c4
-rw-r--r--src/script_menu.c744
20 files changed, 958 insertions, 709 deletions
diff --git a/asm/overworld.s b/asm/overworld.s
index 3fecdfa5c..553ad6aef 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/data/data_835B488.s b/data/data_835B488.s
index a909cfbff..61e8e3cfd 100644
--- a/data/data_835B488.s
+++ b/data/data_835B488.s
@@ -564,498 +564,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
-
-sMuseumFossilSprTemplate:: @ 83E0768
- .incbin "baserom.gba", 0x3E0768, 0x18
-
-gUnknown_83E7080::
- .incbin "baserom.gba", 0x3E0780, 0x800
-
-sMuseumAerodactylSprPalette:: @ 83E0F80
- .incbin "baserom.gba", 0x3E0F80, 0x20
-
-gUnknown_83E0FA0::
- .incbin "baserom.gba", 0x3E0FA0, 0x800
-
-sMuseumKabutopsSprPalette:: @ 83E17A0
- .incbin "baserom.gba", 0x3E17A0, 0x20
-
-sMuseumKabutopsSprSheets:: @ 83E17C0
- .incbin "baserom.gba", 0x3E17C0, 0x10
-
-sMuseumAerodactylSprSheets:: @ 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 da56bcf96..ccb9c9446 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 "asm/macros.inc"
.include "asm/macros/event.inc"
.set FALSE, 0
@@ -1596,7 +1597,7 @@ EventScript_1A6578:: @ 81A6578
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
@@ -1949,7 +1950,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
@@ -4164,7 +4165,7 @@ EventScript_1A8EC5:: @ 81A8EC5
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
@@ -4174,7 +4175,7 @@ EventScript_1A8F12:: @ 81A8F12
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
@@ -4187,7 +4188,7 @@ EventScript_1A8F54:: @ 81A8F54
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
@@ -4197,7 +4198,7 @@ EventScript_1A8FA1:: @ 81A8FA1
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
@@ -4230,7 +4231,7 @@ EventScript_1A900F:: @ 81A900F
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
@@ -4240,7 +4241,7 @@ EventScript_1A905C:: @ 81A905C
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
@@ -4295,31 +4296,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
@@ -8006,7 +8007,7 @@ EventScript_1B2A23:: @ 81B2A23
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
@@ -8014,7 +8015,7 @@ EventScript_1B2A4F:: @ 81B2A4F
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
@@ -8022,7 +8023,7 @@ EventScript_1B2A7B:: @ 81B2A7B
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
@@ -8031,7 +8032,7 @@ EventScript_1B2AA7:: @ 81B2AA7
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
@@ -8040,7 +8041,7 @@ EventScript_1B2ADE:: @ 81B2ADE
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
@@ -8049,7 +8050,7 @@ EventScript_1B2B15:: @ 81B2B15
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
@@ -8059,7 +8060,7 @@ EventScript_1B2B4C:: @ 81B2B4C
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
@@ -8612,7 +8613,7 @@ EventScript_1BB467:: @ 81BB467
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
@@ -8632,7 +8633,7 @@ EventScript_1BB4AE:: @ 81BB4AE
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
@@ -9203,7 +9204,7 @@ EventScript_1BBA51:: @ 81BBA51
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
@@ -9328,7 +9329,7 @@ EventScript_1BBBE7:: @ 81BBBE7
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
@@ -9337,7 +9338,7 @@ EventScript_1BBC32:: @ 81BBC32
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
@@ -9363,7 +9364,7 @@ EventScript_1BBC97:: @ 81BBC97
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
@@ -9446,7 +9447,7 @@ EventScript_1BBDBC:: @ 81BBDBC
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
@@ -9481,7 +9482,7 @@ EventScript_1BBE50:: @ 81BBE50
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
@@ -9516,7 +9517,7 @@ EventScript_1BBEE4:: @ 81BBEE4
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
@@ -9663,7 +9664,7 @@ EventScript_1BC060:: @ 81BC060
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
@@ -9702,7 +9703,7 @@ EventScript_1BC0CE:: @ 81BC0CE
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
@@ -9755,7 +9756,7 @@ EventScript_1BC1CE:: @ 81BC1CE
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
@@ -11307,7 +11308,7 @@ EventScript_1BEE44:: @ 81BEE44
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
@@ -11354,7 +11355,7 @@ EventScript_1BEEDB:: @ 81BEEDB
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
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 ac15812e3..1e38298a2 100644
--- a/data/specials.inc
+++ b/data/specials.inc
@@ -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/include/constants/menu.h b/include/constants/menu.h
new file mode 100644
index 000000000..b981cca9e
--- /dev/null
+++ b/include/constants/menu.h
@@ -0,0 +1,7 @@
+#ifndef GUARD_CONSTANTS_MENU_H
+#define GUARD_CONSTANTS_MENU_H
+
+#define SCR_MENU_CANCEL 127
+#define SCR_MENU_UNSET 255
+
+#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 28058af81..c61e51f04 100644
--- a/include/event_scripts.h
+++ b/include/event_scripts.h
@@ -1170,5 +1170,11 @@ 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/quest_log.h b/include/quest_log.h
index b7dcec871..adfe27e1b 100644
--- a/include/quest_log.h
+++ b/include/quest_log.h
@@ -25,7 +25,7 @@ void sub_8113550(u16, const u16 *);
void sub_811539C(void);
void sub_8115748(u16);
u8 sub_8112CAC(void);
-bool8 QuestLog_ScheduleRoutineIfNotInPlaybackMode(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 95eb30d74..d19e6d14d 100644
--- a/include/script_menu.h
+++ b/include/script_menu.h
@@ -3,7 +3,7 @@
#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);
@@ -14,7 +14,7 @@ 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/strings.h b/include/strings.h
index 121a577a2..d4507b41f 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[];
@@ -344,14 +348,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[];
@@ -381,7 +377,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[];
@@ -448,7 +443,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[];
@@ -459,7 +453,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[];
@@ -530,5 +523,134 @@ extern const u8 gUnknown_8417BCB[];
extern const u8 gUnknown_8417BD3[];
extern const u8 gUnknown_8417DED[];
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 gUnknown_84178E6[];
+extern const u8 gUnknown_84178EB[];
+extern const u8 gUnknown_84178F0[];
+extern const u8 gUnknown_84178FD[];
+extern const u8 gUnknown_8417907[];
+extern const u8 gUnknown_841790C[];
+extern const u8 gUnknown_8417910[];
+extern const u8 gUnknown_8417914[];
+extern const u8 gUnknown_8417918[];
+extern const u8 gUnknown_841791C[];
+extern const u8 gUnknown_8417938[];
+extern const u8 gUnknown_841793C[];
+extern const u8 gUnknown_8417944[];
+extern const u8 gUnknown_8417952[];
+extern const u8 gUnknown_8417960[];
+extern const u8 gUnknown_841796D[];
+extern const u8 gUnknown_841797F[];
+extern const u8 gUnknown_8417984[];
+extern const u8 gUnknown_841799A[];
+extern const u8 gUnknown_84179AD[];
+extern const u8 gUnknown_84179C0[];
+extern const u8 gUnknown_84179D6[];
+extern const u8 gUnknown_84179ED[];
+extern const u8 gUnknown_84179F7[];
+extern const u8 gUnknown_8417A02[];
+extern const u8 gUnknown_8417A0C[];
+extern const u8 gUnknown_8417A19[];
+extern const u8 gUnknown_8417A24[];
+extern const u8 gUnknown_8417A37[];
+extern const u8 gUnknown_8417A3D[];
+extern const u8 gUnknown_8417A42[];
+extern const u8 gUnknown_8417A58[];
+extern const u8 gUnknown_8417A6E[];
+extern const u8 gUnknown_8417A84[];
+extern const u8 gUnknown_8417A9A[];
+extern const u8 gUnknown_8417AB0[];
+extern const u8 gUnknown_8417AB3[];
+extern const u8 gUnknown_8417AB6[];
+extern const u8 gUnknown_8417AB9[];
+extern const u8 gUnknown_8417ABC[];
+extern const u8 gUnknown_8417ADC[];
+extern const u8 gUnknown_8417AE3[];
+extern const u8 gUnknown_8417AE9[];
+extern const u8 gUnknown_8417AEE[];
+extern const u8 gUnknown_8417BE2[];
+extern const u8 gUnknown_8417BE8[];
+extern const u8 gUnknown_8417BF0[];
+extern const u8 gUnknown_8417BF8[];
+extern const u8 gUnknown_8417C01[];
+extern const u8 gUnknown_8417C0F[];
+extern const u8 gUnknown_8417C1B[];
+extern const u8 gUnknown_8417C24[];
+extern const u8 gUnknown_8417C33[];
+extern const u8 gUnknown_8417C4B[];
+extern const u8 gUnknown_8417C55[];
+extern const u8 gUnknown_8417C6A[];
+extern const u8 gUnknown_8417C83[];
+extern const u8 gUnknown_8417C9D[];
+extern const u8 gUnknown_8417CB7[];
+extern const u8 gUnknown_8417D4C[];
+extern const u8 gUnknown_8417D56[];
+extern const u8 gUnknown_8417D63[];
+extern const u8 gUnknown_8417D6F[];
+extern const u8 gUnknown_8417D79[];
+extern const u8 gUnknown_8417D86[];
+extern const u8 gUnknown_8417D90[];
+extern const u8 gUnknown_8417DA0[];
+extern const u8 gUnknown_8417DF3[];
+extern const u8 gUnknown_8417DFE[];
+extern const u8 gUnknown_8417E09[];
+extern const u8 gUnknown_8417E46[];
+extern const u8 gUnknown_8417E50[];
+extern const u8 gUnknown_8417E5A[];
+extern const u8 gUnknown_8417E66[];
+extern const u8 gUnknown_8417E67[];
+extern const u8 gUnknown_8417E71[];
+extern const u8 gUnknown_8417E72[];
+extern const u8 gUnknown_8417E7F[];
+extern const u8 gUnknown_8417E94[];
+extern const u8 gUnknown_8417EA4[];
+extern const u8 gUnknown_8417EB3[];
+extern const u8 gUnknown_8417EC1[];
+extern const u8 gUnknown_8417ECC[];
+extern const u8 gUnknown_8417ED9[];
+extern const u8 gUnknown_8417EF7[];
+extern const u8 gUnknown_8417F11[];
+extern const u8 gUnknown_8417F2F[];
+extern const u8 gUnknown_8417F4D[];
+extern const u8 gUnknown_8417F67[];
+extern const u8 gUnknown_8417F68[];
+extern const u8 gUnknown_8417F69[];
+extern const u8 gUnknown_8417F77[];
+extern const u8 gUnknown_8417ABF[];
+extern const u8 gUnknown_8417AC4[];
+extern const u8 gUnknown_8417ACB[];
+extern const u8 gUnknown_8417AD0[];
+extern const u8 gUnknown_8417AD6[];
+extern const u8 gUnknown_8417AF4[];
+extern const u8 gUnknown_8417AF9[];
+extern const u8 gUnknown_8417B00[];
+extern const u8 gUnknown_8417B05[];
+extern const u8 gUnknown_8417B0B[];
+extern const u8 gUnknown_8417B11[];
+extern const u8 gUnknown_8417B17[];
+extern const u8 gUnknown_8417B21[];
+extern const u8 gUnknown_8417B2C[];
+extern const u8 gUnknown_8417B36[];
+extern const u8 gUnknown_8417B3E[];
+extern const u8 gUnknown_8417B4B[];
+extern const u8 gUnknown_8417B58[];
+extern const u8 gUnknown_8417B65[];
+extern const u8 gUnknown_8417B72[];
+extern const u8 gUnknown_8417B7C[];
+extern const u8 gUnknown_8417B87[];
+extern const u8 gUnknown_8417B94[];
+extern const u8 gUnknown_8417C2D[];
+extern const u8 gUnknown_8417DA9[];
+extern const u8 gUnknown_8417DB6[];
+extern const u8 gUnknown_8417DC7[];
+extern const u8 gUnknown_8417DD9[];
+extern const u8 gUnknown_8417DE1[];
+extern const u8 gUnknown_8417E16[];
+extern const u8 gUnknown_8417E22[];
+extern const u8 gUnknown_8417E2E[];
+extern const u8 gUnknown_8417E39[];
#endif //GUARD_STRINGS_H
diff --git a/ld_script.txt b/ld_script.txt
index 5c3c5ccb7..63c435a2f 100644
--- a/ld_script.txt
+++ b/ld_script.txt
@@ -428,6 +428,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 6adf4a4f9..f9d9f7dbb 100644
--- a/src/berry_powder.c
+++ b/src/berry_powder.c
@@ -111,7 +111,7 @@ void sub_815F094(void)
{
struct WindowTemplate template;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(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..e989bac88 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
diff --git a/src/fame_checker.c b/src/fame_checker.c
index e803a9700..de555b682 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"
#define SPRITETAG_SELECTOR_CURSOR 1000
#define SPRITETAG_QUESTION_MARK 1001
@@ -123,18 +124,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 d701a9145..3c482e5bc 100644
--- a/src/field_specials.c
+++ b/src/field_specials.c
@@ -1064,7 +1064,7 @@ void Special_DrawElevatorCurrentFloorWindow(void)
{
const u8 *floorname;
u32 strwidth;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
sElevatorCurrentFloorWindowId = AddWindow(&sElevatorCurrentFloorWindowTemplate);
TextWindow_SetStdFrame0_WithPal(sElevatorCurrentFloorWindowId, 0x21D, 0xD0);
@@ -1137,7 +1137,7 @@ void Special_ListMenu(void)
{
u8 taskId;
struct Task * task;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) != TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
taskId = CreateTask(Task_CreateScriptListMenu, 8);
task = &gTasks[taskId];
diff --git a/src/quest_log.c b/src/quest_log.c
index b5e333688..a51def1b9 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 = 0;
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)
+ 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;
}
}
@@ -1194,7 +1195,7 @@ static void sub_811175C(u8 a0, struct UnkStruct_203AE98 * a1)
r6++;
break;
default:
- r4 = sub_8113A78(r4, &gUnknown_203AE0C[r9]);
+ r4 = QuestLog_SkipCommand(r4, &gUnknown_203AE0C[r9]);
if (r9 == 0)
sub_8113ABC(gUnknown_203AE0C[0]);
r9++;
@@ -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 QuestLog_ScheduleRoutineIfNotInPlaybackMode(void (*a0)(void))
+bool8 QuestLog_SchedulePlaybackCB(void (*callback)(void))
{
u8 taskId;
@@ -1257,16 +1258,16 @@ bool8 QuestLog_ScheduleRoutineIfNotInPlaybackMode(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, (uintptr_t)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;
@@ -1289,7 +1290,7 @@ static void sub_8111A34(u8 taskId)
if (routine != NULL)
routine();
DestroyTask(taskId);
- gUnknown_203AE8C = sub_8111914;
+ 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);
}
}
}
@@ -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();
}
}
@@ -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;
@@ -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)
@@ -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;
@@ -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;
diff --git a/src/scrcmd.c b/src/scrcmd.c
index b54e08faa..be8e328db 100644
--- a/src/scrcmd.c
+++ b/src/scrcmd.c
@@ -1835,7 +1835,7 @@ bool8 ScrCmd_showmoneybox(struct ScriptContext *ctx)
u8 y = ScriptReadByte(ctx);
u8 ignore = ScriptReadByte(ctx);
- if (!ignore && QuestLog_ScheduleRoutineIfNotInPlaybackMode(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 (QuestLog_ScheduleRoutineIfNotInPlaybackMode(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
index 4bc7bfec9..a06d80bb1 100644
--- a/src/script_menu.c
+++ b/src/script_menu.c
@@ -16,6 +16,8 @@
#include "event_scripts.h"
#include "constants/songs.h"
#include "constants/species.h"
+#include "constants/seagallop.h"
+#include "constants/menu.h"
struct MultichoiceListStruct
{
@@ -33,20 +35,628 @@ void sub_809CD48(u8 mcId);
void task_yes_no_maybe(u8 taskId);
void sub_809CFDC(u8 taskId);
void sub_809D070(void);
-bool8 sub_809D404(void);
+bool8 PicboxWait(void);
void sub_809D6B0(u8 windowId);
u8 CreateWindowFromRect(u8 left, u8 top, u8 width, u8 height);
-extern const u8 *const gUnknown_83E072C[];
-extern const u8 *const gUnknown_83E0738[];
-extern const u8 *const gUnknown_83E0748[];
-extern const struct MultichoiceListStruct gUnknown_83E04B0[];
-extern const struct SpriteSheet sMuseumKabutopsSprSheets[];
-extern const u16 sMuseumKabutopsSprPalette[];
-extern const struct SpriteSheet sMuseumAerodactylSprSheets[];
-extern const u16 sMuseumAerodactylSprPalette[];
-extern const struct SpriteTemplate sMuseumFossilSprTemplate;
-extern const u8 *const gUnknown_83E17E0[];
+
+static const struct MenuAction sScriptMultiChoiceMenu_0[] = {
+ { gUnknown_8417938 },
+ { gUnknown_841793C }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_2[] = {
+ { gUnknown_8417ADC },
+ { gUnknown_8417AE3 },
+ { gUnknown_8417AE9 },
+ { gUnknown_8417AEE }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_3[] = {
+ { gUnknown_84178F0 },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_4[] = {
+ { gUnknown_84178EB },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_5[] = {
+ { gUnknown_84178FD },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_6[] = {
+ { gUnknown_84178F0 },
+ { gUnknown_84178EB },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_7[] = {
+ { gUnknown_84178F0 },
+ { gUnknown_84178FD },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_8[] = {
+ { gUnknown_84178EB },
+ { gUnknown_84178FD },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_9[] = {
+ { gUnknown_84178F0 },
+ { gUnknown_84178EB },
+ { gUnknown_84178FD },
+ { gUnknown_8417907 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_15[] = {
+ { gUnknown_8417914 },
+ { gUnknown_841790C },
+ { gUnknown_8417910 },
+ { gUnknown_8417918 },
+ { gUnknown_841791C },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_16[] = {
+ { gUnknown_8417938 },
+ { gUnknown_841793C },
+ { gUnknown_84178E6 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_17[] = {
+ { gUnknown_8417944 },
+ { gUnknown_8417952 },
+ { gUnknown_8417960 },
+ { gUnknown_84178E6 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_18[] = {
+ { gUnknown_8417938 },
+ { gUnknown_841793C },
+ { gUnknown_84178E6 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_19[] = {
+ { gUnknown_841796D },
+ { gUnknown_841797F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_20[] = {
+ { gUnknown_841806D },
+ { gUnknown_841805D },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_21[] = {
+ { gUnknown_8417D56 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_22[] = {
+ { gUnknown_8417D63 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_23[] = {
+ { gUnknown_8417D6F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_24[] = {
+ { gUnknown_8417D56 },
+ { gUnknown_8417D6F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_25[] = {
+ { gUnknown_8417D63 },
+ { gUnknown_8417D6F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_26[] = {
+ { gUnknown_8417984 },
+ { gUnknown_841799A },
+ { gUnknown_84179AD },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_30[] = {
+ { gUnknown_8417A42 },
+ { gUnknown_8417A58 },
+ { gUnknown_8417A6E },
+ { gUnknown_8417A84 },
+ { gUnknown_8417A9A },
+ { gUnknown_8417D4C }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_41[] = {
+ { gUnknown_8417F4D },
+ { gUnknown_8417ED9 },
+ { gUnknown_8417EF7 },
+ { gUnknown_8417F11 },
+ { gUnknown_8417F2F },
+ { gUnknown_8417D4C }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_27[] = {
+ { gUnknown_84179C0 },
+ { gUnknown_84179D6 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_28[] = {
+ { gUnknown_84179ED },
+ { gUnknown_84179F7 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_29[] = {
+ { gUnknown_8417A37 },
+ { gUnknown_8417A3D }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_31[] = {
+ { gUnknown_8417ABC },
+ { gUnknown_8417AB9 },
+ { gUnknown_8417AB6 },
+ { gUnknown_8417AB3 },
+ { gUnknown_8417AB0 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_32[] = {
+ { gUnknown_8417C0F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_33[] = {
+ { gUnknown_8417C1B },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_34[] = {
+ { gUnknown_8417C0F },
+ { gUnknown_8417C1B },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_35[] = {
+ { gUnknown_8417C24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_36[] = {
+ { gUnknown_8417C0F },
+ { gUnknown_8417C24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_37[] = {
+ { gUnknown_8417C1B },
+ { gUnknown_8417C24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_38[] = {
+ { gUnknown_8417C0F },
+ { gUnknown_8417C1B },
+ { gUnknown_8417C24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_0[] = {
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_1[] = {
+ { gUnknown_8417A02 },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_2[] = {
+ { gUnknown_8417A0C },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_3[] = {
+ { gUnknown_8417A02 },
+ { gUnknown_8417A0C },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_4[] = {
+ { gUnknown_8417A19 },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_5[] = {
+ { gUnknown_8417A02 },
+ { gUnknown_8417A19 },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_6[] = {
+ { gUnknown_8417A0C },
+ { gUnknown_8417A19 },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_Unref_Shards_7[] = {
+ { gUnknown_8417A02 },
+ { gUnknown_8417A0C },
+ { gUnknown_8417A19 },
+ { gUnknown_8417A24 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_1[] = {
+ { gUnknown_8417BE2 },
+ { gUnknown_8417BE8 },
+ { gUnknown_8417BF0 },
+ { gUnknown_8417BF8 },
+ { gUnknown_8417C01 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_13[] = {
+ { gUnknown_8417C33 },
+ { gUnknown_8417C4B }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_14[] = {
+ { gUnknown_8417C55 },
+ { gUnknown_8417C6A },
+ { gUnknown_8417C83 },
+ { gUnknown_8417C9D },
+ { gUnknown_8417CB7 },
+ { gUnknown_8417D4C }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_39[] = {
+ { gUnknown_8417D79 },
+ { gUnknown_8417D86 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_40[] = {
+ { gUnknown_8417D90 },
+ { gUnknown_8417DA0 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_42[] = {
+ { gUnknown_841805D },
+ { gUnknown_8418061 },
+ { gUnknown_8418069 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_43[] = {
+ { gUnknown_841807D },
+ { gUnknown_841808E },
+ { gUnknown_841809C },
+ { gOtherText_Quit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_44[] = {
+ { gUnknown_8417DFE },
+ { gUnknown_8417E09 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_45[] = {
+ { gUnknown_8417DF3 },
+ { gUnknown_8417E09 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_46[] = {
+ { gUnknown_8417DF3 },
+ { gUnknown_8417DFE },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_47[] = {
+ { gUnknown_8417D79 },
+ { gUnknown_8417E50 },
+ { gUnknown_8417E5A },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_48[] = {
+ { gUnknown_8417E66 },
+ { gUnknown_8417E67 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_50[] = {
+ { gUnknown_8417D79 },
+ { gUnknown_8417E50 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_49[] = {
+ { gUnknown_8417E72 },
+ { gUnknown_8417E7F },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_51[] = {
+ { gUnknown_8417E94 },
+ { gUnknown_8417EA4 }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_52[] = {
+ { gUnknown_8417D79 },
+ { gUnknown_8417E50 },
+ { gUnknown_8417E71 },
+ { gUnknown_8417E5A },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_53[] = {
+ { gUnknown_8417D79 },
+ { gUnknown_8417E50 },
+ { gUnknown_8417E71 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_54[] = {
+ { gUnknown_8417EB3 },
+ { gUnknown_8417EC1 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_55[] = {
+ { gUnknown_8417EB3 },
+ { gUnknown_8417ECC },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_56[] = {
+ { gUnknown_8417EB3 },
+ { gUnknown_8417EC1 },
+ { gUnknown_8417ECC },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_57[] = {
+ { gUnknown_8417DF3 },
+ { gUnknown_8417DFE },
+ { gUnknown_8417E09 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_58[] = {
+ { gUnknown_8417E46 },
+ { gUnknown_8417DFE },
+ { gUnknown_8417E09 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_59[] = {
+ { gUnknown_8417E46 },
+ { gUnknown_8417DF3 },
+ { gUnknown_8417E09 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_60[] = {
+ { gUnknown_8417E46 },
+ { gUnknown_8417DF3 },
+ { gUnknown_8417DFE },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_61[] = {
+ { gUnknown_8417E46 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_62[] = {
+ { gUnknown_8417F68 },
+ { gUnknown_8417F67 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_63[] = {
+ { gUnknown_8417F77 },
+ { gUnknown_8417F69 },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_64[] = {
+ { gOtherText_Single },
+ { gOtherText_Double },
+ { gOtherText_Knockout },
+ { gOtherText_Mixed },
+ { gOtherText_Exit }
+};
+
+static const struct MenuAction sScriptMultiChoiceMenu_10[] = {
+ { gOtherText_Exit }
+};
+
+const struct MultichoiceListStruct gScriptMultiChoiceMenus[] = {
+ { sScriptMultiChoiceMenu_0, NELEMS(sScriptMultiChoiceMenu_0) },
+ { sScriptMultiChoiceMenu_1, NELEMS(sScriptMultiChoiceMenu_1) },
+ { sScriptMultiChoiceMenu_2, NELEMS(sScriptMultiChoiceMenu_2) },
+ { sScriptMultiChoiceMenu_3, NELEMS(sScriptMultiChoiceMenu_3) },
+ { sScriptMultiChoiceMenu_4, NELEMS(sScriptMultiChoiceMenu_4) },
+ { sScriptMultiChoiceMenu_5, NELEMS(sScriptMultiChoiceMenu_5) },
+ { sScriptMultiChoiceMenu_6, NELEMS(sScriptMultiChoiceMenu_6) },
+ { sScriptMultiChoiceMenu_7, NELEMS(sScriptMultiChoiceMenu_7) },
+ { sScriptMultiChoiceMenu_8, NELEMS(sScriptMultiChoiceMenu_8) },
+ { sScriptMultiChoiceMenu_9, NELEMS(sScriptMultiChoiceMenu_9) },
+ { sScriptMultiChoiceMenu_10, NELEMS(sScriptMultiChoiceMenu_10) },
+ { sScriptMultiChoiceMenu_10, NELEMS(sScriptMultiChoiceMenu_10) },
+ { sScriptMultiChoiceMenu_10, NELEMS(sScriptMultiChoiceMenu_10) },
+ { sScriptMultiChoiceMenu_13, NELEMS(sScriptMultiChoiceMenu_13) },
+ { sScriptMultiChoiceMenu_14, NELEMS(sScriptMultiChoiceMenu_14) },
+ { sScriptMultiChoiceMenu_15, NELEMS(sScriptMultiChoiceMenu_15) },
+ { sScriptMultiChoiceMenu_16, NELEMS(sScriptMultiChoiceMenu_16) },
+ { sScriptMultiChoiceMenu_17, NELEMS(sScriptMultiChoiceMenu_17) },
+ { sScriptMultiChoiceMenu_18, NELEMS(sScriptMultiChoiceMenu_18) },
+ { sScriptMultiChoiceMenu_19, NELEMS(sScriptMultiChoiceMenu_19) },
+ { sScriptMultiChoiceMenu_20, NELEMS(sScriptMultiChoiceMenu_20) },
+ { sScriptMultiChoiceMenu_21, NELEMS(sScriptMultiChoiceMenu_21) },
+ { sScriptMultiChoiceMenu_22, NELEMS(sScriptMultiChoiceMenu_22) },
+ { sScriptMultiChoiceMenu_23, NELEMS(sScriptMultiChoiceMenu_23) },
+ { sScriptMultiChoiceMenu_24, NELEMS(sScriptMultiChoiceMenu_24) },
+ { sScriptMultiChoiceMenu_25, NELEMS(sScriptMultiChoiceMenu_25) },
+ { sScriptMultiChoiceMenu_26, NELEMS(sScriptMultiChoiceMenu_26) },
+ { sScriptMultiChoiceMenu_27, NELEMS(sScriptMultiChoiceMenu_27) },
+ { sScriptMultiChoiceMenu_28, NELEMS(sScriptMultiChoiceMenu_28) },
+ { sScriptMultiChoiceMenu_29, NELEMS(sScriptMultiChoiceMenu_29) },
+ { sScriptMultiChoiceMenu_30, NELEMS(sScriptMultiChoiceMenu_30) },
+ { sScriptMultiChoiceMenu_31, NELEMS(sScriptMultiChoiceMenu_31) },
+ { sScriptMultiChoiceMenu_32, NELEMS(sScriptMultiChoiceMenu_32) },
+ { sScriptMultiChoiceMenu_33, NELEMS(sScriptMultiChoiceMenu_33) },
+ { sScriptMultiChoiceMenu_34, NELEMS(sScriptMultiChoiceMenu_34) },
+ { sScriptMultiChoiceMenu_35, NELEMS(sScriptMultiChoiceMenu_35) },
+ { sScriptMultiChoiceMenu_36, NELEMS(sScriptMultiChoiceMenu_36) },
+ { sScriptMultiChoiceMenu_37, NELEMS(sScriptMultiChoiceMenu_37) },
+ { sScriptMultiChoiceMenu_38, NELEMS(sScriptMultiChoiceMenu_38) },
+ { sScriptMultiChoiceMenu_39, NELEMS(sScriptMultiChoiceMenu_39) },
+ { sScriptMultiChoiceMenu_40, NELEMS(sScriptMultiChoiceMenu_40) },
+ { sScriptMultiChoiceMenu_41, NELEMS(sScriptMultiChoiceMenu_41) },
+ { sScriptMultiChoiceMenu_42, NELEMS(sScriptMultiChoiceMenu_42) },
+ { sScriptMultiChoiceMenu_43, NELEMS(sScriptMultiChoiceMenu_43) },
+ { sScriptMultiChoiceMenu_44, NELEMS(sScriptMultiChoiceMenu_44) },
+ { sScriptMultiChoiceMenu_45, NELEMS(sScriptMultiChoiceMenu_45) },
+ { sScriptMultiChoiceMenu_46, NELEMS(sScriptMultiChoiceMenu_46) },
+ { sScriptMultiChoiceMenu_47, NELEMS(sScriptMultiChoiceMenu_47) },
+ { sScriptMultiChoiceMenu_48, NELEMS(sScriptMultiChoiceMenu_48) },
+ { sScriptMultiChoiceMenu_49, NELEMS(sScriptMultiChoiceMenu_49) },
+ { sScriptMultiChoiceMenu_50, NELEMS(sScriptMultiChoiceMenu_50) },
+ { sScriptMultiChoiceMenu_51, NELEMS(sScriptMultiChoiceMenu_51) },
+ { sScriptMultiChoiceMenu_52, NELEMS(sScriptMultiChoiceMenu_52) },
+ { sScriptMultiChoiceMenu_53, NELEMS(sScriptMultiChoiceMenu_53) },
+ { sScriptMultiChoiceMenu_54, NELEMS(sScriptMultiChoiceMenu_54) },
+ { sScriptMultiChoiceMenu_55, NELEMS(sScriptMultiChoiceMenu_55) },
+ { sScriptMultiChoiceMenu_56, NELEMS(sScriptMultiChoiceMenu_56) },
+ { sScriptMultiChoiceMenu_57, NELEMS(sScriptMultiChoiceMenu_57) },
+ { sScriptMultiChoiceMenu_58, NELEMS(sScriptMultiChoiceMenu_58) },
+ { sScriptMultiChoiceMenu_59, NELEMS(sScriptMultiChoiceMenu_59) },
+ { sScriptMultiChoiceMenu_60, NELEMS(sScriptMultiChoiceMenu_60) },
+ { sScriptMultiChoiceMenu_61, NELEMS(sScriptMultiChoiceMenu_61) },
+ { sScriptMultiChoiceMenu_62, NELEMS(sScriptMultiChoiceMenu_62) },
+ { sScriptMultiChoiceMenu_63, NELEMS(sScriptMultiChoiceMenu_63) },
+ { sScriptMultiChoiceMenu_64, NELEMS(sScriptMultiChoiceMenu_64) }
+};
+
+const u8 *const gStdStringPtrs[] = {
+ gUnknown_8417ABF,
+ gUnknown_8417AC4,
+ gUnknown_8417ACB,
+ gUnknown_8417AD0,
+ gUnknown_8417AD6,
+ gUnknown_8417AF4,
+ gUnknown_8417AF9,
+ gUnknown_8417B00,
+ gUnknown_8417B05,
+ gUnknown_8417B0B,
+ gUnknown_8417B11,
+ gUnknown_8417B17,
+ gUnknown_8417B21,
+ gUnknown_8417B2C,
+ gUnknown_8417B36,
+ gUnknown_8417B3E,
+ gUnknown_8417B4B,
+ gUnknown_8417B58,
+ gUnknown_8417B65,
+ gUnknown_8417B72,
+ gUnknown_8417B7C,
+ gUnknown_8417B87,
+ gUnknown_8417B94,
+ gUnknown_8417C2D,
+ gUnknown_8417DA9,
+ gUnknown_8417DB6,
+ gUnknown_8417DC7,
+ gUnknown_8417DD9,
+ gUnknown_8417DE1
+};
+
+static const u8 *const gUnknown_83E072C[] = {
+ Text_1BC388,
+ Text_1BC3C7,
+ Text_1BCB42
+};
+
+static const u8 *const gUnknown_83E0738[] = {
+ Text_1BCA95,
+ Text_1BCACB,
+ Text_1BCAF2,
+ Text_1BCB42
+};
+
+static const u8 *const gUnknown_83E0748[] = {
+ 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[] = {
+ gUnknown_8417E46,
+ gUnknown_8417DF3,
+ gUnknown_8417DFE,
+ gUnknown_8417E09,
+ gUnknown_8417E16,
+ gUnknown_8417E22,
+ gUnknown_8417E2E,
+ gUnknown_8417E39
+};
u16 sub_809C954(const u8 *str)
{
@@ -72,7 +682,7 @@ bool8 ScriptMenu_Multichoice(u8 left, u8 top, u8 mcId, u8 ignoreBpress)
{
if (FuncIsActiveTask(sub_809CC98) == TRUE)
return FALSE;
- gSpecialVar_Result = 0xFF;
+ gSpecialVar_Result = SCR_MENU_UNSET;
sub_809CA64(left, top, mcId, ignoreBpress, 0);
return TRUE;
}
@@ -81,7 +691,7 @@ bool8 ScriptMenu_MultichoiceWithDefault(u8 left, u8 top, u8 mcId, u8 ignoreBpres
{
if (FuncIsActiveTask(sub_809CC98) == TRUE)
return FALSE;
- gSpecialVar_Result = 0xFF;
+ gSpecialVar_Result = SCR_MENU_UNSET;
sub_809CA64(left, top, mcId, ignoreBpress, cursorPos);
return TRUE;
}
@@ -97,11 +707,11 @@ void sub_809CA64(u8 left, u8 top, u8 mcId, u8 ignoreBpress, u8 initPos)
u8 windowId;
const struct MenuAction * list;
- if ((ignoreBpress & 2) || QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) != TRUE)
+ if ((ignoreBpress & 2) || QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
ignoreBpress &= 1;
- count = gUnknown_83E04B0[mcId].count;
- list = gUnknown_83E04B0[mcId].list;
+ count = gScriptMultiChoiceMenus[mcId].count;
+ list = gScriptMultiChoiceMenus[mcId].list;
strWidth = 0;
for (i = 0; i < count; i++)
{
@@ -194,7 +804,7 @@ void sub_809CC98(u8 taskId)
if (data[4])
return;
PlaySE(SE_SELECT);
- gSpecialVar_Result = 127;
+ gSpecialVar_Result = SCR_MENU_CANCEL;
break;
default:
gSpecialVar_Result = input;
@@ -230,8 +840,8 @@ bool8 ScriptMenu_YesNo(u8 unused, u8 stuff)
{
if (FuncIsActiveTask(task_yes_no_maybe) == TRUE)
return FALSE;
- gSpecialVar_Result = 255;
- if (!QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4))
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (!QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites))
{
DisplayYesNoMenuDefaultYes();
CreateTask(task_yes_no_maybe, 80);
@@ -241,7 +851,7 @@ bool8 ScriptMenu_YesNo(u8 unused, u8 stuff)
bool8 sub_809CE38(void)
{
- if (gSpecialVar_Result == 255)
+ if (gSpecialVar_Result == SCR_MENU_UNSET)
return FALSE;
else
return TRUE;
@@ -284,11 +894,11 @@ bool8 ScriptMenu_MultichoiceGrid(u8 left, u8 top, u8 multichoiceId, u8 a4, u8 co
u8 taskId;
if (FuncIsActiveTask(sub_809CFDC) == TRUE)
return FALSE;
- gSpecialVar_Result = 255;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) != TRUE)
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
- list = gUnknown_83E04B0[multichoiceId].list;
- count = gUnknown_83E04B0[multichoiceId].count;
+ list = gScriptMultiChoiceMenus[multichoiceId].list;
+ count = gScriptMultiChoiceMenus[multichoiceId].count;
width = sub_809C974(list, count) + 1;
rowCount = count / columnCount;
taskId = CreateTask(sub_809CFDC, 80);
@@ -314,7 +924,7 @@ void sub_809CFDC(u8 taskId)
if (data[4])
return;
PlaySE(SE_SELECT);
- gSpecialVar_Result = 127;
+ gSpecialVar_Result = SCR_MENU_CANCEL;
break;
default:
gSpecialVar_Result = input;
@@ -329,7 +939,7 @@ bool8 ScrSpecial_CreatePCMenu(void)
{
if (FuncIsActiveTask(sub_809CC98) == TRUE)
return FALSE;
- gSpecialVar_Result = 255;
+ gSpecialVar_Result = SCR_MENU_UNSET;
sub_809D070();
return TRUE;
}
@@ -392,7 +1002,7 @@ void ScriptMenu_DisplayPCStartupPrompt(void)
AddTextPrinterParameterized2(0, 2, gUnknown_81A508A, 0, NULL, 2, 1, 3);
}
-void sub_809D288(u8 taskId)
+static void Task_ScriptShowMonPic(u8 taskId)
{
struct Task * task = &gTasks[taskId];
switch (task->data[0])
@@ -417,12 +1027,12 @@ bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
{
u8 spriteId;
u8 taskId;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) == TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) == TRUE)
return TRUE;
- if (FindTaskIdByFunc(sub_809D288) != 0xFF)
+ if (FindTaskIdByFunc(Task_ScriptShowMonPic) != 0xFF)
return FALSE;
spriteId = sub_8083970(species, 8 * x + 40, 8 * y + 40, FALSE);
- taskId = CreateTask(sub_809D288, 80);
+ taskId = CreateTask(Task_ScriptShowMonPic, 80);
gTasks[taskId].data[5] = CreateWindowFromRect(x, y, 8, 8);
gTasks[taskId].data[0] = 0;
gTasks[taskId].data[1] = species;
@@ -436,16 +1046,16 @@ bool8 ScriptMenu_ShowPokemonPic(u16 species, u8 x, u8 y)
bool8 (*ScriptMenu_GetPicboxWaitFunc(void))(void)
{
- u8 taskId = FindTaskIdByFunc(sub_809D288);
+ u8 taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
if (taskId == 0xFF)
return NULL;
gTasks[taskId].data[0]++;
- return sub_809D404;
+ return PicboxWait;
}
-bool8 sub_809D404(void)
+bool8 PicboxWait(void)
{
- if (FindTaskIdByFunc(sub_809D288) == 0xFF)
+ if (FindTaskIdByFunc(Task_ScriptShowMonPic) == 0xFF)
return TRUE;
else
return FALSE;
@@ -453,7 +1063,7 @@ bool8 sub_809D404(void)
void sub_809D424(void)
{
- u8 taskId = FindTaskIdByFunc(sub_809D288);
+ u8 taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
struct Task * task;
if (taskId != 0xFF)
{
@@ -501,7 +1111,7 @@ bool8 Special_OpenMuseumFossilPic(void)
{
u8 spriteId;
u8 taskId;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) == TRUE)
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) == TRUE)
return TRUE;
if (FindTaskIdByFunc(sub_809D494) != 0xFF)
return FALSE;
@@ -554,12 +1164,12 @@ void sub_809D6B0(u8 windowId)
RemoveWindow(windowId);
}
-void sub_809D6D4(void)
+void QLPlaybackCB_DestroyScriptMenuMonPicSprites(void)
{
u8 taskId;
s16 *data;
ScriptContext1_SetupScript(EventScript_1A7AE0);
- taskId = FindTaskIdByFunc(sub_809D288);
+ taskId = FindTaskIdByFunc(Task_ScriptShowMonPic);
if (taskId != 0xFF)
{
data = gTasks[taskId].data;
@@ -578,8 +1188,10 @@ void sub_809D6D4(void)
}
}
-void sub_809D764(void)
+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;
@@ -587,21 +1199,21 @@ void sub_809D764(void)
u8 fontHeight;
u8 windowId;
u8 i;
- gSpecialVar_Result = 255;
- if (QuestLog_ScheduleRoutineIfNotInPlaybackMode(sub_809D6D4) != TRUE)
+ gSpecialVar_Result = SCR_MENU_UNSET;
+ if (QuestLog_SchedulePlaybackCB(QLPlaybackCB_DestroyScriptMenuMonPicSprites) != TRUE)
{
if (gSpecialVar_0x8005 == 1)
{
- if (gSpecialVar_0x8004 < 5)
- r4 = 5;
+ if (gSpecialVar_0x8004 < SEAGALLOP_FIVE_ISLAND)
+ r4 = SEAGALLOP_FIVE_ISLAND;
else
- r4 = 4;
+ r4 = SEAGALLOP_FOUR_ISLAND;
nitems = 5;
top = 2;
}
else
{
- r4 = 0;
+ r4 = SEAGALLOP_VERMILION_CITY;
nitems = 6;
top = 0;
}
@@ -612,12 +1224,12 @@ void sub_809D764(void)
for (i = 0; i < nitems - 2; i++)
{
if (r4 != gSpecialVar_0x8004)
- AddTextPrinterParameterized(windowId, 2, gUnknown_83E17E0[r4], cursorWidth, i * 16 + 2, 0xFF, NULL);
+ AddTextPrinterParameterized(windowId, 2, sSeaGallopDestStrings[r4], cursorWidth, i * 16 + 2, 0xFF, NULL);
else
i--;
r4++;
- if (r4 == 8)
- r4 = 0;
+ if (r4 == SEAGALLOP_CINNABAR_ISLAND)
+ r4 = SEAGALLOP_VERMILION_CITY;
}
AddTextPrinterParameterized(windowId, 2, gUnknown_8417DED, cursorWidth, i * 16 + 2, 0xFF, NULL);
i++;
@@ -628,52 +1240,54 @@ void sub_809D764(void)
}
}
-u16 sub_809D8C0(void)
+u16 Special_GetSelectedSeaGallopDestination(void)
{
- if (gSpecialVar_Result == 127)
- return 127;
+ // 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 254;
+ return SEAGALLOP_MORE;
}
else if (gSpecialVar_Result == 4)
{
- return 127;
+ return SCR_MENU_CANCEL;
}
else if (gSpecialVar_Result == 0)
{
- if (gSpecialVar_0x8004 > 4)
- return 4;
+ if (gSpecialVar_0x8004 > SEAGALLOP_FOUR_ISLAND)
+ return SEAGALLOP_FOUR_ISLAND;
else
- return 5;
+ return SEAGALLOP_FIVE_ISLAND;
}
else if (gSpecialVar_Result == 1)
{
- if (gSpecialVar_0x8004 > 5)
- return 5;
+ if (gSpecialVar_0x8004 > SEAGALLOP_FIVE_ISLAND)
+ return SEAGALLOP_FIVE_ISLAND;
else
- return 6;
+ return SEAGALLOP_SIX_ISLAND;
}
else if (gSpecialVar_Result == 2)
{
- if (gSpecialVar_0x8004 > 6)
- return 6;
+ if (gSpecialVar_0x8004 > SEAGALLOP_SIX_ISLAND)
+ return SEAGALLOP_SIX_ISLAND;
else
- return 7;
+ return SEAGALLOP_SEVEN_ISLAND;
}
}
else
{
if (gSpecialVar_Result == 4)
- return 254;
+ return SEAGALLOP_MORE;
else if (gSpecialVar_Result == 5)
- return 127;
+ return SCR_MENU_CANCEL;
else if (gSpecialVar_Result >= gSpecialVar_0x8004)
return gSpecialVar_Result + 1;
else
return gSpecialVar_Result;
}
- return 0;
+ return SEAGALLOP_VERMILION_CITY;
}