diff options
author | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-25 13:23:46 -0400 |
---|---|---|
committer | PikalaxALT <pikalaxalt@gmail.com> | 2019-10-25 13:23:46 -0400 |
commit | 00675eaafba7605bdbf5c16984975e4ed6ad6bde (patch) | |
tree | 11256735c3a94000f56101ce0c5d3ff393ca8a2e | |
parent | 0a440d658b2d4a311381b1d297872e7eece7486f (diff) |
script_menu data
-rw-r--r-- | asm/overworld.s | 6 | ||||
-rw-r--r-- | data/data_835B488.s | 494 | ||||
-rw-r--r-- | data/event_scripts.s | 93 | ||||
-rw-r--r-- | data/script_menu/aerodactyl_fossil.png | bin | 0 -> 767 bytes | |||
-rw-r--r-- | data/script_menu/kabutops_fossil.png | bin | 0 -> 747 bytes | |||
-rw-r--r-- | data/specials.inc | 4 | ||||
-rw-r--r-- | include/constants/menu.h | 7 | ||||
-rw-r--r-- | include/constants/seagallop.h | 2 | ||||
-rw-r--r-- | include/event_scripts.h | 6 | ||||
-rw-r--r-- | include/quest_log.h | 2 | ||||
-rw-r--r-- | include/script_menu.h | 4 | ||||
-rw-r--r-- | include/strings.h | 156 | ||||
-rw-r--r-- | ld_script.txt | 2 | ||||
-rw-r--r-- | src/berry_powder.c | 2 | ||||
-rw-r--r-- | src/coins.c | 2 | ||||
-rw-r--r-- | src/fame_checker.c | 13 | ||||
-rw-r--r-- | src/field_specials.c | 4 | ||||
-rw-r--r-- | src/quest_log.c | 122 | ||||
-rw-r--r-- | src/scrcmd.c | 4 | ||||
-rw-r--r-- | src/script_menu.c | 744 |
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 Binary files differnew file mode 100644 index 000000000..067483d6e --- /dev/null +++ b/data/script_menu/aerodactyl_fossil.png diff --git a/data/script_menu/kabutops_fossil.png b/data/script_menu/kabutops_fossil.png Binary files differnew file mode 100644 index 000000000..e396b080a --- /dev/null +++ b/data/script_menu/kabutops_fossil.png 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; } |