From ccbc0ea6471daab196fff4366a5ad4c5721a693d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 29 Sep 2023 23:46:27 -0400 Subject: [PATCH 01/10] Split+data wonder_mail_3 and wonder_mail_2_1 --- include/adventure_log.h | 2 +- include/code_801B3C0.h | 2 +- include/code_801EE10.h | 3 +- include/code_8023144.h | 2 +- include/code_8024458.h | 2 +- include/code_802DB28.h | 2 +- include/code_802DE84.h | 4 +- include/code_802F204.h | 2 +- include/code_803B050.h | 3 +- include/code_803C1D0.h | 4 +- include/code_8094F88.h | 29 +- include/code_80958E8.h | 6 +- include/code_80958E8_1.h | 8 +- include/code_8096AF8.h | 4 + include/code_80972F4.h | 4 + include/code_8098BDC.h | 1 + include/friend_rescue.h | 4 +- include/hints_menu1.h | 2 +- include/hints_menu2.h | 2 +- include/input.h | 37 - include/kangaskhan_storage1.h | 2 +- include/kecleon_bros2.h | 2 +- include/kecleon_bros3.h | 2 +- include/kecleon_bros4.h | 2 +- include/mailbox.h | 3 +- include/mailbox_8095F8C.h | 2 +- include/makuhita_dojo2.h | 2 +- {src => include}/math.h | 0 include/personality_test.h | 2 +- include/pokemon_news1.h | 2 +- include/pokemon_news2.h | 2 +- include/pokemon_news3.h | 2 +- include/post_office_guide2.h | 2 +- include/save.h | 1 + include/structs/menu.h | 38 +- .../{code_802C39C.h => structs/str_802C39C.h} | 9 +- include/structs/str_wonder_mail.h | 82 ++ include/thank_you_wonder_mail.h | 42 + include/wigglytuff_shop2.h | 2 +- include/wonder_mail.h | 74 +- include/wonder_mail_2_1.h | 44 - include/wonder_mail_3.h | 79 -- include/wonder_mail_802C10C.h | 2 +- include/wonder_mail_802C4C8.h | 28 + include/wonder_mail_802C860.h | 30 + include/wonder_mail_802CDD4.h | 24 + include/wonder_mail_802D098.h | 46 + ld_script.txt | 12 +- src/adventure_log.c | 1 + src/bg_control.c | 1 - src/code_2.c | 1 - src/code_800C9CC.c | 1 - src/code_80118A4.c | 1 - src/code_8012A18.c | 1 - src/code_801602C.c | 1 + src/code_801B3C0.c | 1 + src/code_801B60C.c | 1 + src/code_801BEEC.c | 1 + src/code_801C244.c | 1 + src/code_801C620.c | 1 + src/code_801C8C4.c | 1 + src/code_801D014.c | 4 +- src/code_801D9E4.c | 1 + src/code_801EE10.c | 1 + src/code_801EE10_mid.c | 1 + src/code_80227B8.c | 1 + src/code_8023144.c | 1 + src/code_8024458.c | 1 + src/code_802DB28.c | 2 + src/code_802DE84.c | 1 + src/code_803B050.c | 1 - src/code_8040094.c | 1 - src/code_80958E8.c | 3 +- src/code_80958E8_1.c | 5 +- src/code_80972F4.c | 7 +- src/data/wonder_mail_802C4C8.h | 21 + src/data/wonder_mail_802C860.h | 31 + src/data/wonder_mail_802CDD4.h | 21 + src/data/wonder_mail_802D098.h | 88 ++ src/debug_menu1.c | 1 + src/debug_menu2.c | 1 + src/debug_menu3.c | 1 + src/debug_menu4.c | 1 + src/event_flag.c | 1 - src/felicity_bank.c | 1 + src/friend_area_action_menu.c | 1 + src/friend_list_menu.c | 1 + src/ground_main.c | 1 - src/gulpin_shop.c | 1 + src/gulpin_shop_801FB50.c | 1 + src/hints_menu1.c | 1 + src/hints_menu2.c | 1 + src/kangaskhan_storage1.c | 1 + src/kangaskhan_storage2.c | 1 + src/kecleon_bros1.c | 1 + src/kecleon_bros2.c | 1 + src/kecleon_bros3.c | 1 + src/kecleon_bros4.c | 1 + src/mailbox.c | 8 +- src/main_menu1.c | 1 + src/main_menu2.c | 1 + src/makuhita_dojo1.c | 1 + src/makuhita_dojo2.c | 1 + src/menu_input.c | 1 + src/options_menu1.c | 1 + src/options_menu2.c | 1 + src/other_menus2.c | 2 +- src/party_list_menu.c | 1 + src/pelipper_board.c | 8 +- src/personality_test.c | 1 + src/pokemon_news1.c | 1 + src/pokemon_news2.c | 1 + src/pokemon_news3.c | 3 +- src/post_office_guide1.c | 1 + src/post_office_guide2.c | 2 +- src/rescue_password_menu.c | 1 - src/save_menu.c | 1 + src/thank_you_wonder_mail.c | 3 +- src/trade_items_menu.c | 1 + src/unk_menu_203B360.c | 1 + src/wigglytuff_shop1.c | 1 + src/wigglytuff_shop2.c | 1 + src/wigglytuff_shop3.c | 1 + src/wonder_mail.c | 3 + src/wonder_mail_2.c | 2 +- src/wonder_mail_2_1.c | 450 ------- src/wonder_mail_3.c | 1050 ----------------- src/wonder_mail_3_mid.c | 20 +- src/wonder_mail_4.c | 4 +- src/wonder_mail_5.c | 2 +- src/wonder_mail_6.c | 1 + src/wonder_mail_802C10C.c | 1 + src/wonder_mail_802C4C8.c | 222 ++++ src/wonder_mail_802C860.c | 310 +++++ src/wonder_mail_802CDD4.c | 180 +++ src/wonder_mail_802D098.c | 579 +++++++++ src/wonder_mail_main_menu.c | 15 +- sym_ewram2.txt | 15 +- 138 files changed, 1900 insertions(+), 1883 deletions(-) rename {src => include}/math.h (100%) rename include/{code_802C39C.h => structs/str_802C39C.h} (83%) create mode 100644 include/structs/str_wonder_mail.h create mode 100644 include/thank_you_wonder_mail.h delete mode 100644 include/wonder_mail_2_1.h delete mode 100644 include/wonder_mail_3.h create mode 100644 include/wonder_mail_802C4C8.h create mode 100644 include/wonder_mail_802C860.h create mode 100644 include/wonder_mail_802CDD4.h create mode 100644 include/wonder_mail_802D098.h create mode 100644 src/data/wonder_mail_802C4C8.h create mode 100644 src/data/wonder_mail_802C860.h create mode 100644 src/data/wonder_mail_802CDD4.h create mode 100644 src/data/wonder_mail_802D098.h delete mode 100644 src/wonder_mail_2_1.c delete mode 100644 src/wonder_mail_3.c create mode 100644 src/wonder_mail_802C4C8.c create mode 100644 src/wonder_mail_802C860.c create mode 100644 src/wonder_mail_802CDD4.c create mode 100644 src/wonder_mail_802D098.c diff --git a/include/adventure_log.h b/include/adventure_log.h index a2fef9277..74b0eae9d 100644 --- a/include/adventure_log.h +++ b/include/adventure_log.h @@ -1,7 +1,7 @@ #ifndef GUARD_ADVENTURE_LOG_H #define GUARD_ADVENTURE_LOG_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA0 diff --git a/include/code_801B3C0.h b/include/code_801B3C0.h index 6ab0d10f7..33db72e14 100644 --- a/include/code_801B3C0.h +++ b/include/code_801B3C0.h @@ -1,8 +1,8 @@ #ifndef GUARD_CODE_801B3C0_H #define GUARD_CODE_801B3C0_H -#include "input.h" #include "items.h" +#include "structs/menu.h" #include "structs/subStruct_203B240.h" #include "structs/str_text.h" diff --git a/include/code_801EE10.h b/include/code_801EE10.h index c67fe4299..3201fc987 100644 --- a/include/code_801EE10.h +++ b/include/code_801EE10.h @@ -2,9 +2,8 @@ #define CODE_801EE10_H #include "constants/move.h" - -#include "input.h" #include "pokemon.h" +#include "structs/menu.h" #include "structs/str_text.h" // size 0xBC diff --git a/include/code_8023144.h b/include/code_8023144.h index 772b0fd2e..4edf3b47e 100644 --- a/include/code_8023144.h +++ b/include/code_8023144.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_8023144_H #define GUARD_CODE_8023144_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x3FC diff --git a/include/code_8024458.h b/include/code_8024458.h index 8cbf206c3..5718330e8 100644 --- a/include/code_8024458.h +++ b/include/code_8024458.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_8024458_H #define GUARD_CODE_8024458_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" struct unkStruct_203B2AC diff --git a/include/code_802DB28.h b/include/code_802DB28.h index f77b8328a..ebf7ad19e 100644 --- a/include/code_802DB28.h +++ b/include/code_802DB28.h @@ -2,8 +2,8 @@ #define GUARD_CODE_802DB28_H #include "file_system.h" -#include "wonder_mail.h" #include "structs/str_text.h" +#include "structs/str_wonder_mail.h" // size: 0xA8 struct unkStruct_203B2FC diff --git a/include/code_802DE84.h b/include/code_802DE84.h index 19b0e7a2f..cd553c082 100644 --- a/include/code_802DE84.h +++ b/include/code_802DE84.h @@ -1,8 +1,8 @@ #ifndef GUARD_CODE_802DE84_H #define GUARD_CODE_802DE84_H -#include "code_802C39C.h" -#include "input.h" +#include "structs/str_802C39C.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x7C diff --git a/include/code_802F204.h b/include/code_802F204.h index 5f3b3353f..8fcf239bd 100644 --- a/include/code_802F204.h +++ b/include/code_802F204.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_802F204_H #define GUARD_CODE_802F204_H -#include "wonder_mail.h" +#include "structs/str_wonder_mail.h" u32 sub_802F204(unkStruct_802F204 *, bool8 displayClientSprite); u32 sub_802F298(void); diff --git a/include/code_803B050.h b/include/code_803B050.h index 15575393f..cdb92a269 100644 --- a/include/code_803B050.h +++ b/include/code_803B050.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_803B050_H #define GUARD_CODE_803B050_H -#include "code_802C39C.h" +#include "structs/str_802C39C.h" // size: 0x8 typedef struct unkStruct_80E9920 @@ -26,6 +26,7 @@ void CreateRescueTitle(unkStruct_802C39C *); void sub_803B6B0(s32 x, s32 y, u8 index, u32); // code_803B050.s +extern unkStruct_803B344 *sub_803B344(u8); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); #endif // GUARD_CODE_803B050_H \ No newline at end of file diff --git a/include/code_803C1D0.h b/include/code_803C1D0.h index 453a16047..9a005f239 100644 --- a/include/code_803C1D0.h +++ b/include/code_803C1D0.h @@ -1,9 +1,9 @@ #ifndef GUARD_CODE_803C1D0_H #define GUARD_CODE_803C1D0_H -#include "wonder_mail.h" +#include "structs/str_wonder_mail.h" // code_803C1D0.s -extern void sub_803C21C(WonderMail *, unkStruct_802F204*); +extern void sub_803C21C(WonderMail *, unkStruct_802F204 *); #endif // GUARD_CODE_803C1D0_H \ No newline at end of file diff --git a/include/code_8094F88.h b/include/code_8094F88.h index 8a450601c..dd204cd53 100644 --- a/include/code_8094F88.h +++ b/include/code_8094F88.h @@ -5,34 +5,7 @@ #include "structs/str_dungeon.h" #include "items.h" #include "pokemon.h" - -// size: 0x8 -typedef struct WonderMailSub -{ - /* 0x0 */ DungeonLocation dungeon; - /* 0x4 */ u32 seed; -} WonderMailSub; - -// size: 0x30 -typedef struct unkStruct_203B480 -{ - /* 0x0 */ u8 mailType; - /* 0x1 */ u8 missionType; - WonderMailSub unk4; - /* 0xC */ s16 clientSpecies; - /* 0xE */ s16 targetSpecies; - union unk10_temp - { - u32 unk10; - u16 unk10_u16; - } unk10; - /* 0x14 */ u8 playerName[0x20 - 0x14]; - Item item; - u32 unk24; - u32 unk28; - /* 0x2C */ s8 rescuesAllowed; - u8 unk2D; -} unkStruct_203B480; +#include "structs/str_wonder_mail.h" // size: 0x5C typedef struct unkStruct_203B484 diff --git a/include/code_80958E8.h b/include/code_80958E8.h index 965c9b7f0..e5678a4e7 100644 --- a/include/code_80958E8.h +++ b/include/code_80958E8.h @@ -1,8 +1,8 @@ #ifndef GUARD_CODE_80958E8_H #define GUARD_CODE_80958E8_H -#include "wonder_mail.h" #include "constants/mailbox.h" +#include "structs/str_wonder_mail.h" // size: 0xC typedef struct subStruct_203B490 @@ -18,8 +18,8 @@ typedef struct unkStruct_203B490 /* 0x0 */ WonderMail mailboxSlots[NUM_MAILBOX_SLOTS]; /* 0x50 */ WonderMail pelipperBoardJobs[MAX_ACCEPTED_JOBS]; /* 0xF0 */ WonderMail jobSlots[MAX_ACCEPTED_JOBS]; - u8 unk190[0x28]; - u8 unk1B8[0x78]; + u8 unk190[40]; + u8 unk1B8[120]; subStruct_203B490 unk230[16]; /* 0x2F0 */ u8 PKMNNewsReceived[NUM_POKEMON_NEWS]; bool8 unk328; diff --git a/include/code_80958E8_1.h b/include/code_80958E8_1.h index 22b4b644d..4a6d6fb5a 100644 --- a/include/code_80958E8_1.h +++ b/include/code_80958E8_1.h @@ -1,7 +1,7 @@ #ifndef GUARD_CODE_80958E8_1_H #define GUARD_CODE_80958E8_1_H -#include "wonder_mail.h" +#include "structs/str_wonder_mail.h" // size: 0x8 struct unkStruct_8096AF8 @@ -11,11 +11,17 @@ struct unkStruct_8096AF8 /* 0x4 */ u16 targetSpecies; }; +bool8 AcceptJob(WonderMail *mail); s32 CountJobsinDungeon(u8 dungeon); WonderMail *GetJobSlotInfo(u8 index); +s32 GetNumAcceptedJobs(void); +bool8 IsJobSlotEmpty(u8 index); bool8 IsMailinJobSlot(WonderMail *mail); +void ResetJobSlot(u8 index); +bool8 sub_809693C(WonderMail *mail); void sub_8096AF8(struct unkStruct_8096AF8 *, u8 slotIndex, u8 dungeon); +bool8 sub_8096C08(u8 *jobIndex); // code_80958E8_1.s extern WonderMail *GetPelipperBoardSlotInfo(u8); diff --git a/include/code_8096AF8.h b/include/code_8096AF8.h index 8397553f5..4ebe2a7b5 100644 --- a/include/code_8096AF8.h +++ b/include/code_8096AF8.h @@ -3,6 +3,10 @@ // code_8096AF8.s extern u8 CheckPKMNNewsSlot(u8); +extern void sub_8096C80(void); +extern void sub_8096D24(void); +extern u8 *sub_8096DD8(void); +extern u8 *sub_8096DE8(void); extern bool8 sub_8096E2C(void); extern void sub_8096EEC(void); diff --git a/include/code_80972F4.h b/include/code_80972F4.h index 0df6cbe31..aed85c256 100644 --- a/include/code_80972F4.h +++ b/include/code_80972F4.h @@ -1,6 +1,8 @@ #ifndef GUARD_CODE_80972F4_H #define GUARD_CODE_80972F4_H +#include "structs/str_wonder_mail.h" + // size: 0x8 typedef struct MissionText { @@ -15,6 +17,8 @@ const u8 *GetCurrentMissionText(s16 index); // TODO: this should probably be bool8 but can't get a match just yet bool32 IsMazeCompleted(s16 mazeIndex); +bool8 sub_8096F50(WonderMail *mail); +void sub_8097418(s16 index, bool32); bool8 sub_8097504(s16 mazeIndex); const u8 *sub_80975DC(u32); diff --git a/include/code_8098BDC.h b/include/code_8098BDC.h index 1d1d3b591..c07e0bc33 100644 --- a/include/code_8098BDC.h +++ b/include/code_8098BDC.h @@ -3,6 +3,7 @@ // code_8098DBC.s extern void nullsub_104(void); +extern u8 sub_8099328(u8 *); extern void sub_80993D8(void); extern void sub_80993E4(void); extern void sub_8099690(u32); diff --git a/include/friend_rescue.h b/include/friend_rescue.h index 2c641cf26..2db0ba41f 100644 --- a/include/friend_rescue.h +++ b/include/friend_rescue.h @@ -4,8 +4,8 @@ #include "code_8094F88.h" #include "items.h" #include "pokemon.h" -#include "wonder_mail.h" #include "structs/menu.h" +#include "structs/str_wonder_mail.h" // size: 0x568 typedef struct WonderMailStruct_203B33C @@ -53,4 +53,4 @@ enum FriendRescueMenuStates { FRIEND_RESCUE_MENU_DEFAULT_FALLBACK = 0x7e, }; -#endif +#endif \ No newline at end of file diff --git a/include/hints_menu1.h b/include/hints_menu1.h index c41636e32..68dbd1225 100644 --- a/include/hints_menu1.h +++ b/include/hints_menu1.h @@ -1,7 +1,7 @@ #ifndef GUARD_HINTS_MENU1_H #define GUARD_HINTS_MENU1_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x9C diff --git a/include/hints_menu2.h b/include/hints_menu2.h index 203adb24d..d16682a48 100644 --- a/include/hints_menu2.h +++ b/include/hints_menu2.h @@ -1,7 +1,7 @@ #ifndef GUARD_HINTS_MENU2_H #define GUARD_HINTS_MENU2_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA0 diff --git a/include/input.h b/include/input.h index cc55909a0..1dba6adad 100644 --- a/include/input.h +++ b/include/input.h @@ -47,43 +47,6 @@ typedef struct UnusedInputStruct u8 unk29; } UnusedInputStruct; -// size: 0xC -typedef struct MenuInputStructSub -{ - u8 unk0; - /* 0x1 */ u8 a_button; - /* 0x2 */ u8 b_button; - /* 0x3 */ u8 dpad_right; - /* 0x4 */ u8 dpad_left; - u8 fill5[3]; - u16 unk8; - s16 unkA; -} MenuInputStructSub; - -// size: 0x34 -typedef struct MenuInputStruct -{ - s32 unk0; - u16 unk4; - s16 unk6; - s16 unk8; // Maybe Position - s16 unkA; - s16 unkC; // Maybe Position - s16 unkE; - u32 unk10; - s16 unk14; // Maybe Position - s16 unk16; - /* 0x18 */ s16 menuIndex; - s16 unk1A; - s16 unk1C; - s16 unk1E; - s16 unk20; - s16 unk22; - u16 unk24; - u16 unk26; - MenuInputStructSub unk28; -} MenuInputStruct; - extern Inputs gRealInputs; void InitInput(void); diff --git a/include/kangaskhan_storage1.h b/include/kangaskhan_storage1.h index 551af5a45..e8425dea6 100644 --- a/include/kangaskhan_storage1.h +++ b/include/kangaskhan_storage1.h @@ -2,8 +2,8 @@ #define GUARD_KANGASKHAN_STORAGE1_H #include "file_system.h" -#include "items.h" #include "structs/menu.h" +#include "structs/str_items.h" #include "structs/str_text.h" enum KangaskhanStorageStates diff --git a/include/kecleon_bros2.h b/include/kecleon_bros2.h index 12bafad76..6500558fa 100644 --- a/include/kecleon_bros2.h +++ b/include/kecleon_bros2.h @@ -1,7 +1,7 @@ #ifndef GUARD_KECLEON_BROS2_H #define GUARD_KECLEON_BROS2_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA0 diff --git a/include/kecleon_bros3.h b/include/kecleon_bros3.h index d4f6bb67c..c815b448e 100644 --- a/include/kecleon_bros3.h +++ b/include/kecleon_bros3.h @@ -1,7 +1,7 @@ #ifndef GUARD_KECLEON_BROS3_H #define GUARD_KECLEON_BROS3_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA0 diff --git a/include/kecleon_bros4.h b/include/kecleon_bros4.h index dd31848f7..f80f1caa2 100644 --- a/include/kecleon_bros4.h +++ b/include/kecleon_bros4.h @@ -2,7 +2,7 @@ #define GUARD_KECLEON_BROS4_H #include "constants/item.h" -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xF4 diff --git a/include/mailbox.h b/include/mailbox.h index 4ff13cf58..ea8ec6557 100644 --- a/include/mailbox.h +++ b/include/mailbox.h @@ -4,7 +4,7 @@ #include "structs/menu.h" #include "structs/str_text.h" #include "constants/mailbox.h" -#include "code_802C39C.h" +#include "structs/str_802C39C.h" struct unkStruct_203B304 { @@ -23,7 +23,6 @@ struct unkStruct_203B304 }; extern void SetMailboxState(u32); -extern s32 GetNumAcceptedJobs(void); enum MailBoxStates { diff --git a/include/mailbox_8095F8C.h b/include/mailbox_8095F8C.h index 2f692e9f8..fdd8d44db 100644 --- a/include/mailbox_8095F8C.h +++ b/include/mailbox_8095F8C.h @@ -1,7 +1,7 @@ #ifndef GUARD_MAILBOX_8095F8C_H #define GUARD_MAILBOX_8095F8C_H -#include "wonder_mail.h" +#include "structs/str_wonder_mail.h" WonderMail *GetMailboxSlotInfo(u8 index); bool8 IsMailSlotEmpty(u8 index); diff --git a/include/makuhita_dojo2.h b/include/makuhita_dojo2.h index e50c338fb..85636a9be 100644 --- a/include/makuhita_dojo2.h +++ b/include/makuhita_dojo2.h @@ -2,7 +2,7 @@ #define GUARD_MAKUHITA_DOJO2_H #include "constants/dungeon.h" -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xD0 diff --git a/src/math.h b/include/math.h similarity index 100% rename from src/math.h rename to include/math.h diff --git a/include/personality_test.h b/include/personality_test.h index d75755e07..c6abea68f 100644 --- a/include/personality_test.h +++ b/include/personality_test.h @@ -2,7 +2,7 @@ #define GUARD_PERSONALITY_TEST_H #include "constants/personality_test.h" -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // Definitely wrong but need to figure out better structure later diff --git a/include/pokemon_news1.h b/include/pokemon_news1.h index c8c113db7..89ace4596 100644 --- a/include/pokemon_news1.h +++ b/include/pokemon_news1.h @@ -2,7 +2,7 @@ #define GUARD_POKEMON_NEWS1_H #include "constants/wonder_mail.h" -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xD4; diff --git a/include/pokemon_news2.h b/include/pokemon_news2.h index 6a02b054c..03da4a4d0 100644 --- a/include/pokemon_news2.h +++ b/include/pokemon_news2.h @@ -1,7 +1,7 @@ #ifndef GUARD_POKEMON_NEWS2_H #define GUARD_POKEMON_NEWS2_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x94 diff --git a/include/pokemon_news3.h b/include/pokemon_news3.h index 72a7a2222..878833a73 100644 --- a/include/pokemon_news3.h +++ b/include/pokemon_news3.h @@ -1,7 +1,7 @@ #ifndef GUARD_POKEMON_NEWS3_H #define GUARD_POKEMON_NEWS3_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA4 diff --git a/include/post_office_guide2.h b/include/post_office_guide2.h index f06409d80..1f8a1b67c 100644 --- a/include/post_office_guide2.h +++ b/include/post_office_guide2.h @@ -1,7 +1,7 @@ #ifndef GUARD_POST_OFFICE_GUIDE2_H #define GUARD_POST_OFFICE_GUIDE2_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0x78 diff --git a/include/save.h b/include/save.h index 6ba2fe0e9..dfd000e0f 100644 --- a/include/save.h +++ b/include/save.h @@ -7,6 +7,7 @@ #include "rescue_team_info.h" #include "pokemon.h" #include "items.h" +#include "code_8094F88.h" #include "code_80958E8.h" enum diff --git a/include/structs/menu.h b/include/structs/menu.h index bd0de04cf..2322d40fe 100644 --- a/include/structs/menu.h +++ b/include/structs/menu.h @@ -1,10 +1,46 @@ #ifndef GUARD_MENU_H #define GUARD_MENU_H -#include "input.h" #include "sprite_oam.h" #include "structs/str_text.h" +// size: 0xC +typedef struct MenuInputStructSub +{ + u8 unk0; + /* 0x1 */ u8 a_button; + /* 0x2 */ u8 b_button; + /* 0x3 */ u8 dpad_right; + /* 0x4 */ u8 dpad_left; + u8 fill5[3]; + u16 unk8; + s16 unkA; +} MenuInputStructSub; + +// size: 0x34 +typedef struct MenuInputStruct +{ + s32 unk0; + u16 unk4; + s16 unk6; + s16 unk8; // Maybe Position + s16 unkA; + s16 unkC; // Maybe Position + s16 unkE; + u32 unk10; + s16 unk14; // Maybe Position + s16 unk16; + /* 0x18 */ s16 menuIndex; + s16 unk1A; + s16 unk1C; + s16 unk1E; + s16 unk20; + s16 unk22; + u16 unk24; + u16 unk26; + MenuInputStructSub unk28; +} MenuInputStruct; + // size: 0x8 typedef struct MenuItem { diff --git a/include/code_802C39C.h b/include/structs/str_802C39C.h similarity index 83% rename from include/code_802C39C.h rename to include/structs/str_802C39C.h index 0dc2053f1..c1c7f7a9b 100644 --- a/include/code_802C39C.h +++ b/include/structs/str_802C39C.h @@ -1,8 +1,7 @@ -#ifndef GUARD_CODE_802C39C_H -#define GUARD_CODE_802C39C_H +#ifndef GUARD_CODE_STR_802C39C_H +#define GUARD_CODE_STR_802C39C_H -#include "code_8094F88.h" -#include "wonder_mail.h" +#include "structs/str_wonder_mail.h" // size: 0x58 typedef struct unkStruct_802C39C @@ -30,4 +29,4 @@ typedef struct unkStruct_802C39C /* 0x54 */ WonderMail *mail; } unkStruct_802C39C; -#endif // GUARD_CODE_802C39C_H \ No newline at end of file +#endif // GUARD_CODE_STR_802C39C_H \ No newline at end of file diff --git a/include/structs/str_wonder_mail.h b/include/structs/str_wonder_mail.h new file mode 100644 index 000000000..fcf48db54 --- /dev/null +++ b/include/structs/str_wonder_mail.h @@ -0,0 +1,82 @@ +#ifndef GUARD_STR_WONDER_MAIL_H +#define GUARD_STR_WONDER_MAIL_H + +#include "constants/wonder_mail.h" +#include "structs/str_dungeon.h" +#include "structs/str_pokemon.h" + +// size: 0x8 +typedef struct WonderMailSub +{ + /* 0x0 */ DungeonLocation dungeon; + /* 0x4 */ u32 seed; +} WonderMailSub; + +// size: 0x14 +typedef struct WonderMail +{ + /* 0x0 */ u8 mailType; + /* 0x1 */ u8 missionType; + u8 unk2; + /* 0x4 */ WonderMailSub unk4; + /* 0xC */ s16 clientSpecies; + /* 0xE */ s16 targetSpecies; + /* 0x10 */ u8 targetItem; + /* 0x11 */ u8 rewardType; + /* 0x12 */ u8 itemReward; + /* 0x13 */ u8 friendAreaReward; +} WonderMail; + +// size: 0x28 +typedef struct unkStruct_802F204 +{ + /* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; + /* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name? + /* 0x14 */ s16 clientSpecies; + u8 unk16; + /* 0x18 */ s32 moneyReward; + /* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS]; + /* 0x1F */ u8 quantity; + /* 0x20 */ u8 friendAreaReward; + /* 0x24 */ u32 teamRankPtsReward; +} unkStruct_802F204; + +// size: 0xB4 +typedef struct unkStruct_803B344 +{ + /* 0x0 */ WonderMail mail; + u8 *unk14; + u8 *unk18; + u8 fill1C[0x3C - 0x1C]; + u8 unk3C[0xB4 - 0x3C]; +} unkStruct_803B344; + +// size: 0x30 +typedef struct unkStruct_203B480 +{ + /* 0x0 */ u8 mailType; + /* 0x1 */ u8 missionType; + WonderMailSub unk4; + /* 0xC */ s16 clientSpecies; + /* 0xE */ s16 targetSpecies; + union unk10_temp + { + u32 unk10; + u16 unk10_u16; + } unk10; + /* 0x14 */ u8 playerName[0x20 - 0x14]; + Item item; + u32 unk24; + u32 unk28; + /* 0x2C */ s8 rescuesAllowed; + u8 unk2D; +} unkStruct_203B480; + +// size: 0x88 +typedef struct WonderMailStruct_203B2C0_sub +{ + /* 0x0 */ unkStruct_203B480 mail; + /* 0x30 */ PokemonStruct1 pokemon; +} WonderMailStruct_203B2C0_sub; + +#endif // GUARD_STR_WONDER_MAIL_H \ No newline at end of file diff --git a/include/thank_you_wonder_mail.h b/include/thank_you_wonder_mail.h new file mode 100644 index 000000000..e16fe78b9 --- /dev/null +++ b/include/thank_you_wonder_mail.h @@ -0,0 +1,42 @@ +#ifndef GUARD_THANK_YOU_WONDER_MAIL_H +#define GUARD_THANK_YOU_WONDER_MAIL_H + +#include "constants/wonder_mail.h" +#include "file_system.h" +#include "structs/menu.h" +#include "structs/str_items.h" +#include "structs/str_text.h" +#include "structs/str_wonder_mail.h" + +// size: 0x564 +typedef struct WonderMailStruct_203B2C4 +{ + /* 0x0 */ u8 state; + /* 0x4 */ u32 fallbackState; // wonder mail link status?? + /* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE]; // Probably a buffer for entry + u8 unk3E; + u32 unk40; + /* 0x44 */ u32 linkError; // another link status + u8 filler48[0x1B8 - 0x48]; + unkStruct_203B480 unk1B8; + unkStruct_203B480 unk1E8; + /* 0x218 */ s8 mailIndex; + MenuStruct unk21C[4]; + UnkTextStruct2 unk35C[4]; + UnkTextStruct2 unk3BC[4]; + Item unk41C; + /* 0x420 */ OpenedFile *faceFile; + /* 0x424 */ u8 *faceData; + u16 unk428; + u16 unk42A; + u8 unk42C; + u8 unk42D; + u8 unk42E; + u32 unk430; + /* 0x434 */ u8 formattedString[0x100]; + /* 0x534 */ s32 wonderMailMethod; + /* 0x538 */ u32 wonderMailMode; + unkStruct_802F204 unk53C; +} WonderMailStruct_203B2C4; + +#endif // GUARD_THANK_YOU_WONDER_MAIL_H \ No newline at end of file diff --git a/include/wigglytuff_shop2.h b/include/wigglytuff_shop2.h index 68a73faa8..51e2790ab 100644 --- a/include/wigglytuff_shop2.h +++ b/include/wigglytuff_shop2.h @@ -1,7 +1,7 @@ #ifndef GUARD_WIGGLYTUFF_SHOP2_H #define GUARD_WIGGLYTUFF_SHOP2_H -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" typedef struct WigglytuffShop2Work diff --git a/include/wonder_mail.h b/include/wonder_mail.h index 467fd9470..e821bb0fb 100644 --- a/include/wonder_mail.h +++ b/include/wonder_mail.h @@ -1,49 +1,10 @@ #ifndef GUARD_WONDER_MAIL_H #define GUARD_WONDER_MAIL_H -#include "code_8094F88.h" #include "constants/wonder_mail.h" #include "file_system.h" -#include "items.h" #include "structs/menu.h" -#include "pokemon.h" -#include "structs/str_text.h" - -// size: 0x28 -typedef struct unkStruct_802F204 -{ - /* 0x0 */ u8 clientName[POKEMON_NAME_LENGTH]; - /* 0xA */ u8 name2[POKEMON_NAME_LENGTH]; // target name? - /* 0x14 */ s16 clientSpecies; - u8 unk16; - /* 0x18 */ s32 moneyReward; - /* 0x1C */ u8 itemRewards[MAX_ITEM_REWARDS]; - /* 0x1F */ u8 quantity; - /* 0x20 */ u8 friendAreaReward; - /* 0x24 */ u32 teamRankPtsReward; -} unkStruct_802F204; - -// size: 0x14 -typedef struct WonderMail -{ - /* 0x0 */ u8 mailType; // mail type - /* 0x1 */ u8 missionType; // mission type - u8 unk2; - /* 0x4 */ WonderMailSub unk4; - /* 0xC */ s16 clientSpecies; // client pokemon - /* 0xE */ s16 targetSpecies; // target - /* 0x10 */ u8 targetItem; // item to find/deliver - /* 0x11 */ u8 rewardType; // reward type - /* 0x12 */ u8 itemReward; // item reward - /* 0x13 */ u8 friendAreaReward; // friend area -} WonderMail; - -// size: 0x88 -typedef struct WonderMailStruct_203B2C0_sub -{ - /* 0x0 */ unkStruct_203B480 mail; - /* 0x30 */ PokemonStruct1 pokemon; -} WonderMailStruct_203B2C0_sub; +#include "structs/str_wonder_mail.h" // size: 0x548 typedef struct WonderMailStruct_203B2C0 @@ -79,37 +40,4 @@ typedef struct WonderMailStruct_203B2C0 /* 0x544 */ s16 speciesNum; } WonderMailStruct_203B2C0; -// size: 0x564 -typedef struct WonderMailStruct_203B2C4 -{ - /* 0x0 */ u8 state; - /* 0x4 */ u32 fallbackState; // wonder mail link status?? - /* 0x8 */ u8 passwordBuffer[PASSWORD_BUFFER_SIZE]; // Probably a buffer for entry - u8 unk3E; - u32 unk40; - /* 0x44 */ u32 linkError; // another link status - u8 filler48[0x1B8 - 0x48]; - unkStruct_203B480 unk1B8; - unkStruct_203B480 unk1E8; - /* 0x218 */ s8 mailIndex; - MenuStruct unk21C[4]; - UnkTextStruct2 unk35C[4]; - UnkTextStruct2 unk3BC[4]; - Item unk41C; - /* 0x420 */ OpenedFile *faceFile; - /* 0x424 */ u8 *faceData; - u16 unk428; - u16 unk42A; - u8 unk42C; - u8 unk42D; - u8 unk42E; - u32 unk430; - /* 0x434 */ u8 formattedString[0x100]; - /* 0x534 */ s32 wonderMailMethod; - /* 0x538 */ u32 wonderMailMode; - unkStruct_802F204 unk53C; -} WonderMailStruct_203B2C4; - -void SetFriendRescueCounterState(u32 r0); - #endif // GUARD_WONDER_MAIL_H \ No newline at end of file diff --git a/include/wonder_mail_2_1.h b/include/wonder_mail_2_1.h deleted file mode 100644 index b7e27dda3..000000000 --- a/include/wonder_mail_2_1.h +++ /dev/null @@ -1,44 +0,0 @@ -#ifndef GUARD_WONDER_MAIL_2_1_H -#define GUARD_WONDER_MAIL_2_1_H - -#include "code_802C39C.h" -#include "constants/mailbox.h" -#include "input.h" -#include "structs/menu.h" -#include "structs/str_text.h" - -// size: 0xA8 -struct unkStruct_203B2E8 -{ - u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS]; - MenuInputStruct input; - u32 unk3C; - UnkTextStruct2 *unk40; - UnkTextStruct2 unk44[4]; - u8 unkA4[4]; -}; - -// size: 0x1FC -struct unkStruct_203B2F0 -{ - u32 unk0; - u32 state; - u8 unk8[0xC - 0x8]; - u8 unkC; - unkStruct_802C39C unk10; - u32 menuAction; - MenuStruct unk6C; - MenuStruct unkBC; - MenuItem unk10C[8]; - MenuItem unk14C[8]; - u8 fill18C[0x19C - 0x18C]; - UnkTextStruct2 unk19C[4]; -}; - -bool8 HasNoAcceptedJobs(void); -bool8 InitializeJobListMenu(u32); - -u32 sub_802C898(void); -void sub_802C8F4(void); - -#endif // GUARD_WONDER_MAIL_2_1_H \ No newline at end of file diff --git a/include/wonder_mail_3.h b/include/wonder_mail_3.h deleted file mode 100644 index 9ea7a9dd6..000000000 --- a/include/wonder_mail_3.h +++ /dev/null @@ -1,79 +0,0 @@ -#ifndef GUARD_WONDER_MAIL_3_H -#define GUARD_WONDER_MAIL_3_H - -#include "code_802C39C.h" -#include "input.h" -#include "structs/menu.h" -#include "structs/str_text.h" -#include "wonder_mail.h" - -// size: 0xB4 -typedef struct unkStruct_803B344 -{ - /* 0x0 */ WonderMail mail; - u8 *unk14; - u8 *unk18; - u8 fill1C[0x3C - 0x1C]; - u8 unk3C[0xB4 - 0x3C]; -} unkStruct_803B344; - -// size: 0xA0 -typedef struct unkStruct_203B2F4 -{ - MenuInputStruct input; - u32 unk34; - UnkTextStruct2 *unk38; - UnkTextStruct2 unk3C[4]; - u8 unk9C[4]; -} unkStruct_203B2F4; - -// size: 0x1C -typedef struct unkSubStruct_203B2F8 -{ - /* 0x0 */ WonderMail wonderMail; - /* 0x14 */ u8 *unk14; - /* 0x18 */ u8 *unk18; -} unkSubStruct_203B2F8; - -// size: 0x208 -typedef struct unkStruct_203B2F8 -{ - /* 0x0 */ s32 state; - /* 0x4 */ s32 fallbackState; - /* 0x8 */ u8 wonderMailAccepted; - /* 0x9 */ bool8 unk9; - /* 0xA */ u8 dungeonID; - u8 unkB; - /* 0xC */ unkSubStruct_203B2F8 *mail; - /* 0x10 */ u8 jobSlotIndex; - unkStruct_802C39C unk14; - /* 0x6C */ u32 menuAction1; - /* 0x70 */ u32 menuAction2; - /* 0x74 */ u32 menuAction3; - /* 0x78 */ MenuStruct unk78; - /* 0xC8 */ MenuStruct unkC8; - MenuItem unk118[8]; - MenuItem unk158[8]; - u16 unk198[8]; - UnkTextStruct2 unk1A8[4]; -} unkStruct_203B2F8; - -enum WonderMailRescueStates -{ - INITIAL_WONDER_MAIL_CHECK = 0, - // 1 - WONDER_MAIL_EXIT = 2, - DUPLICATE_WONDER_MAIL, - DUPLICATE_WONDER_MAIL_1, - // 5 - 7 - RECEIVE_WONDER_MAIL = 8, - // 9 - JOB_LIST_FULL = 10, - DRAW_JOB_LIST, - DRAW_JOB_LIST_1, - // 13 - 16 -}; - -u32 sub_802D098(unkSubStruct_203B2F8 *mail); - -#endif // GUARD_WONDER_MAIL_3_H \ No newline at end of file diff --git a/include/wonder_mail_802C10C.h b/include/wonder_mail_802C10C.h index 538af7361..dd5606f2b 100644 --- a/include/wonder_mail_802C10C.h +++ b/include/wonder_mail_802C10C.h @@ -2,7 +2,7 @@ #define GUARD_WONDER_MAIL_802C10C_H #include "constants/mailbox.h" -#include "input.h" +#include "structs/menu.h" #include "structs/str_text.h" // size: 0xA8 diff --git a/include/wonder_mail_802C4C8.h b/include/wonder_mail_802C4C8.h new file mode 100644 index 000000000..9c3df04fe --- /dev/null +++ b/include/wonder_mail_802C4C8.h @@ -0,0 +1,28 @@ +#ifndef GUARD_WONDER_MAIL_802C4C8_H +#define GUARD_WONDER_MAIL_802C4C8_H + +#include "constants/mailbox.h" +#include "structs/menu.h" +#include "structs/str_text.h" + +// size: 0xA8 +struct unkStruct_203B2E8 +{ + /* 0x0 */ u8 pelipperBoardSlots[MAX_ACCEPTED_JOBS]; + /* 0x8 */ MenuInputStruct input; + u32 unk3C; + UnkTextStruct2 *unk40; + UnkTextStruct2 unk44[4]; + u8 unkA4[4]; +}; + +void DrawJobListMenu(void); +bool8 HasNoAcceptedJobs(void); +u8 GetPelipperBoardSlotIndex(void); + +bool8 sub_802C4C8(s32, UnkTextStruct2_sub *, u32); +u32 sub_802C598(bool8); +void sub_802C640(bool8 cursorSprite); +void sub_802C688(void); + +#endif // GUARD_WONDER_MAIL_802C4C8_H \ No newline at end of file diff --git a/include/wonder_mail_802C860.h b/include/wonder_mail_802C860.h new file mode 100644 index 000000000..572ad8420 --- /dev/null +++ b/include/wonder_mail_802C860.h @@ -0,0 +1,30 @@ +#ifndef GUARD_WONDER_MAIL_802C860_H +#define GUARD_WONDER_MAIL_802C860_H + +#include "structs/str_802C39C.h" +#include "structs/menu.h" +#include "structs/str_text.h" + +// size: 0x1FC +struct unkStruct_203B2F0 +{ + u32 unk0; + /* 0x4 */ u32 state; + u8 unk8[0xC - 0x8]; + u8 unkC; + unkStruct_802C39C unk10; + /* 0x68 */ u32 menuAction; + MenuStruct unk6C; + MenuStruct unkBC; + MenuItem unk10C[8]; + MenuItem unk14C[8]; + u8 fill18C[0x19C - 0x18C]; + UnkTextStruct2 unk19C[4]; +}; + +bool8 InitializeJobListMenu(u32); + +u32 sub_802C898(void); +void sub_802C8F4(void); + +#endif // GUARD_WONDER_MAIL_802C860_H \ No newline at end of file diff --git a/include/wonder_mail_802CDD4.h b/include/wonder_mail_802CDD4.h new file mode 100644 index 000000000..2c00d71d8 --- /dev/null +++ b/include/wonder_mail_802CDD4.h @@ -0,0 +1,24 @@ +#ifndef GUARD_WONDER_MAIL_802CDD4_H +#define GUARD_WONDER_MAIL_802CDD4_H + +#include "structs/menu.h" +#include "structs/str_text.h" + +// size: 0xA0 +typedef struct unkStruct_203B2F4 +{ + MenuInputStruct input; + u32 unk34; + UnkTextStruct2 *unk38; + UnkTextStruct2 unk3C[4]; + u8 unk9C[4]; +} unkStruct_203B2F4; + +bool8 sub_802CDD4(u32); +u32 sub_802CE5C(bool8); +u8 sub_802CEBC(void); +void sub_802CED8(bool8 cursorSprite); +void sub_802CF14(void); +void sub_802CFD0(void); + +#endif // GUARD_WONDER_MAIL_802CDD4_H \ No newline at end of file diff --git a/include/wonder_mail_802D098.h b/include/wonder_mail_802D098.h new file mode 100644 index 000000000..182128537 --- /dev/null +++ b/include/wonder_mail_802D098.h @@ -0,0 +1,46 @@ +#ifndef GUARD_WONDER_MAIL_802D098_H +#define GUARD_WONDER_MAIL_802D098_H + +#include "structs/str_802C39C.h" +#include "structs/menu.h" +#include "structs/str_text.h" +#include "structs/str_wonder_mail.h" + +// size: 0x1C +typedef struct unkSubStruct_203B2F8 +{ + /* 0x0 */ WonderMail wonderMail; + u8 *unk14; + u8 *unk18; +} unkSubStruct_203B2F8; + +// size: 0x208 +typedef struct unkStruct_203B2F8 +{ + /* 0x0 */ s32 state; + /* 0x4 */ s32 fallbackState; + /* 0x8 */ u8 wonderMailAccepted; + bool8 unk9; + /* 0xA */ u8 dungeonID; + u8 unkB; + /* 0xC */ unkSubStruct_203B2F8 *mail; + /* 0x10 */ u8 jobSlotIndex; + unkStruct_802C39C unk14; + /* 0x6C */ u32 menuAction1; + /* 0x70 */ u32 menuAction2; + /* 0x74 */ u32 menuAction3; + MenuStruct unk78; + MenuStruct unkC8; + MenuItem unk118[8]; + MenuItem unk158[8]; + u16 unk198[8]; + UnkTextStruct2 unk1A8[4]; +} unkStruct_203B2F8; + +bool8 GetWonderMailAccepted(void); + +bool8 sub_802D098(unkSubStruct_203B2F8 *mail); +u32 sub_802D0E0(void); +void sub_802D184(void); + +#endif // GUARD_WONDER_MAIL_802D098_H \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index e4c3670b7..a1491dd9a 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -141,8 +141,10 @@ SECTIONS { src/pokemon_news2.o(.text); src/pokemon_news3.o(.text); src/wonder_mail_802C10C.o(.text); - src/wonder_mail_2_1.o(.text); - src/wonder_mail_3.o(.text); + src/wonder_mail_802C4C8.o(.text); + src/wonder_mail_802C860.o(.text); + src/wonder_mail_802CDD4.o(.text); + src/wonder_mail_802D098.o(.text); src/code_802DB28.o(.text); src/code_802DE84.o(.text); src/mailbox.o(.text); @@ -461,8 +463,10 @@ SECTIONS { src/pokemon_news2.o(.rodata); src/pokemon_news3.o(.rodata); src/wonder_mail_802C10C.o(.rodata); - src/wonder_mail_2_1.o(.rodata); - src/wonder_mail_3.o(.rodata); + src/wonder_mail_802C4C8.o(.rodata); + src/wonder_mail_802C860.o(.rodata); + src/wonder_mail_802CDD4.o(.rodata); + src/wonder_mail_802D098.o(.rodata); src/code_802DB28.o(.rodata); src/code_802DE84.o(.rodata); src/mailbox.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index 52cc608b4..ae9fe8aec 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -4,6 +4,7 @@ #include "code_80130A8.h" #include "code_8097670.h" #include "constants/input.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/bg_control.c b/src/bg_control.c index be665382d..77bf4c7f6 100644 --- a/src/bg_control.c +++ b/src/bg_control.c @@ -1,6 +1,5 @@ #include "global.h" #include "bg_control.h" -#include "input.h" EWRAM_DATA BGControlStruct gBG0Control = {0}; EWRAM_DATA BGControlStruct gBG1Control = {0}; diff --git a/src/code_2.c b/src/code_2.c index db574aaca..2ed16fd56 100644 --- a/src/code_2.c +++ b/src/code_2.c @@ -17,7 +17,6 @@ #include "file_system.h" #include "friend_area.h" #include "game_options.h" -#include "input.h" #include "main_menu1.h" #include "main_menu2.h" #include "memory.h" diff --git a/src/code_800C9CC.c b/src/code_800C9CC.c index 562c0080a..1216320bb 100644 --- a/src/code_800C9CC.c +++ b/src/code_800C9CC.c @@ -1,6 +1,5 @@ #include "global.h" #include "code_800C9CC.h" -#include "input.h" #include "random.h" #include "reg_control.h" diff --git a/src/code_80118A4.c b/src/code_80118A4.c index 34abab9d8..475acf55e 100644 --- a/src/code_80118A4.c +++ b/src/code_80118A4.c @@ -11,7 +11,6 @@ #include "constants/bg_music.h" #include "play_time.h" #include "bg_control.h" -#include "input.h" #include "config.h" #include "game_options.h" #include "sprite.h" diff --git a/src/code_8012A18.c b/src/code_8012A18.c index 1db9fd69f..50f3e28df 100644 --- a/src/code_8012A18.c +++ b/src/code_8012A18.c @@ -6,7 +6,6 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "game_options.h" -#include "input.h" #include "sprite.h" extern void nullsub_8(u8); diff --git a/src/code_801602C.c b/src/code_801602C.c index 1bc00f44e..6b70e55e9 100644 --- a/src/code_801602C.c +++ b/src/code_801602C.c @@ -3,6 +3,7 @@ #include "code_80130A8.h" #include "code_801602C.h" #include "common_strings.h" +#include "input.h" #include "memory.h" #include "text_util.h" #include "text1.h" diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 878db80b4..74d321c65 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" +#include "input.h" #include "items.h" #include "memory.h" #include "menu_input.h" diff --git a/src/code_801B60C.c b/src/code_801B60C.c index ab906ebed..bd1c30c42 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -6,6 +6,7 @@ #include "code_8098BDC.h" #include "common_strings.h" #include "constants/colors.h" +#include "input.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/code_801BEEC.c b/src/code_801BEEC.c index 9d9f99233..d292a9ae8 100644 --- a/src/code_801BEEC.c +++ b/src/code_801BEEC.c @@ -4,6 +4,7 @@ #include "code_801C244.h" #include "code_801C620.h" #include "common_strings.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon_3.h" diff --git a/src/code_801C244.c b/src/code_801C244.c index 4ef9fe4bb..012555c0a 100644 --- a/src/code_801C244.c +++ b/src/code_801C244.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801C244.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon_3.h" diff --git a/src/code_801C620.c b/src/code_801C620.c index 8f105ecf0..2bd24e7d2 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -3,6 +3,7 @@ #include "code_80130A8.h" #include "code_801C620.h" #include "code_8097DD0.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon_3.h" diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index 5f8deebef..e385f0f2c 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_80118A4.h" #include "code_801C8C4.h" +#include "input.h" #include "items.h" #include "memory.h" #include "menu_input.h" diff --git a/src/code_801D014.c b/src/code_801D014.c index 6d46daf2e..47467a646 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -17,6 +17,7 @@ #include "ground_lives.h" #include "ground_main.h" #include "ground_map_1.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "options_menu1.h" @@ -25,7 +26,8 @@ #include "text1.h" #include "text2.h" #include "wigglytuff_shop2.h" -#include "wonder_mail_2_1.h" +#include "wonder_mail_802C4C8.h" +#include "wonder_mail_802C860.h" extern u8 gAvailablePokemonNames[]; // 202DF98 diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c index e3ab6b38a..ea72611da 100644 --- a/src/code_801D9E4.c +++ b/src/code_801D9E4.c @@ -3,6 +3,7 @@ #include "code_801D9E4.h" #include "constants/input.h" #include "ground_main.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/code_801EE10.c b/src/code_801EE10.c index 00f8881da..92a14e6bc 100644 --- a/src/code_801EE10.c +++ b/src/code_801EE10.c @@ -1,4 +1,5 @@ #include "global.h" +#include "input.h" #include "text1.h" #include "text2.h" #include "memory.h" diff --git a/src/code_801EE10_mid.c b/src/code_801EE10_mid.c index a90c4dbb5..be1d62bd5 100644 --- a/src/code_801EE10_mid.c +++ b/src/code_801EE10_mid.c @@ -12,6 +12,7 @@ #include "code_80130A8.h" #include "code_801EE10_mid.h" #include "code_80118A4.h" +#include "input.h" extern unkStruct_203B270 *gUnknown_203B270; diff --git a/src/code_80227B8.c b/src/code_80227B8.c index ebdc1628e..ac1e5acff 100644 --- a/src/code_80227B8.c +++ b/src/code_80227B8.c @@ -6,6 +6,7 @@ #include "code_8098BDC.h" #include "common_strings.h" #include "constants/colors.h" +#include "input.h" #include "kecleon_bros4.h" #include "memory.h" #include "menu_input.h" diff --git a/src/code_8023144.c b/src/code_8023144.c index 831bd8733..9b4e29504 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -6,6 +6,7 @@ #include "constants/input.h" #include "exclusive_pokemon.h" #include "friend_area.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon_3.h" diff --git a/src/code_8024458.c b/src/code_8024458.c index 59ed7c2a5..36b0e0f95 100644 --- a/src/code_8024458.c +++ b/src/code_8024458.c @@ -3,6 +3,7 @@ #include "code_8024458.h" #include "constants/input.h" #include "event_flag.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" diff --git a/src/code_802DB28.c b/src/code_802DB28.c index 4dfd4a6b4..d9c12cfb5 100644 --- a/src/code_802DB28.c +++ b/src/code_802DB28.c @@ -6,8 +6,10 @@ #include "code_80958E8_1.h" #include "code_8096AF8.h" #include "exclusive_pokemon.h" +#include "input.h" #include "items.h" #include "memory.h" +#include "pokemon.h" #include "text1.h" #include "text2.h" diff --git a/src/code_802DE84.c b/src/code_802DE84.c index 3f3b47dd1..66faec3ec 100644 --- a/src/code_802DE84.c +++ b/src/code_802DE84.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_802DE84.h" #include "code_803B050.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/code_803B050.c b/src/code_803B050.c index 55a7d0df3..41dabb4b2 100644 --- a/src/code_803B050.c +++ b/src/code_803B050.c @@ -12,7 +12,6 @@ #include "text2.h" #include "code_800D090.h" #include "menu_input.h" -#include "wonder_mail.h" #include "dungeon.h" // This file was originally 7 files. Check data_80E7D40.s diff --git a/src/code_8040094.c b/src/code_8040094.c index 9e53e91be..85657d9ba 100644 --- a/src/code_8040094.c +++ b/src/code_8040094.c @@ -8,7 +8,6 @@ #include "dungeon_map_access.h" #include "dungeon_music.h" #include "file_system.h" -#include "input.h" #include "play_time.h" extern s32 gUnknown_80F6568[]; diff --git a/src/code_80958E8.c b/src/code_80958E8.c index ed72436ec..0adeb9811 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -3,10 +3,10 @@ #include "items.h" #include "friend_area.h" #include "constants/friend_area.h" -#include "wonder_mail.h" #include "constants/wonder_mail.h" #include "dungeon.h" #include "code_80958E8.h" +#include "code_80958E8_1.h" #include "pokemon.h" #include "pokemon_3.h" #include "code_8094F88.h" @@ -16,7 +16,6 @@ extern bool8 sub_809017C(DungeonLocation *); extern u8 sub_803C1D0(DungeonLocation *, u8); extern bool8 sub_803C0DC(s16); extern void ResetPelipperBoardSlot(u8); -extern void ResetJobSlot(u8); extern bool8 ValidateWonderMail(WonderMail *); static EWRAM_DATA unkStruct_203B490 sUnknown_2039448 = {0}; diff --git a/src/code_80958E8_1.c b/src/code_80958E8_1.c index c5125ad6b..8410815b2 100644 --- a/src/code_80958E8_1.c +++ b/src/code_80958E8_1.c @@ -8,13 +8,10 @@ #include "code_80958E8_1.h" #include "random.h" #include "pokemon.h" +#include "code_8096AF8.h" -extern u8 IsJobSlotEmpty(u8); extern bool8 IsValidWonderMail(WonderMail *WonderMailData); extern u8 sub_8095E38(WonderMail *, u8, u8, bool8); -extern void ResetJobSlot(u8); -extern void sub_8096C80(void); -extern void sub_8096D24(void); extern void sub_80965F4(); extern void SortPelipperJobs(); u8 sub_8097318(s16 param_1); diff --git a/src/code_80972F4.c b/src/code_80972F4.c index 0fe55f8f0..1a57ea86c 100644 --- a/src/code_80972F4.c +++ b/src/code_80972F4.c @@ -1,7 +1,6 @@ #include "global.h" #include "constants/dungeon.h" #include "pokemon.h" -#include "wonder_mail.h" #include "code_80958E8.h" #include "dungeon.h" #include "exclusive_pokemon.h" @@ -269,12 +268,12 @@ bool32 sub_80973F4(s16 param_1) return val; } -void sub_8097418(s16 index,u32 param_2) +void sub_8097418(s16 index,bool32 param_2) { int index_s32 = index; - u8 param_2_u8 = param_2; + bool8 param_2_u8 = param_2; if (index_s32 != 0xd) { - if ((param_2_u8 != 0) && (sub_800199C(0,0x2c,index_s32,0), index_s32 < 0x1f)) { + if ((param_2_u8) && (sub_800199C(0,0x2c,index_s32,0), index_s32 < 0x1f)) { MissionText *mt = &gStoryMissionText[index_s32]; if (mt->unk4 != 0xFF) { sub_8097FA8(mt->unk4); diff --git a/src/data/wonder_mail_802C4C8.h b/src/data/wonder_mail_802C4C8.h new file mode 100644 index 000000000..0103d14ae --- /dev/null +++ b/src/data/wonder_mail_802C4C8.h @@ -0,0 +1,21 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFCE4 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFCFC = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + NULL +}; + +ALIGNED(4) static const u8 sJobList[] = _("Job List"); \ No newline at end of file diff --git a/src/data/wonder_mail_802C860.h b/src/data/wonder_mail_802C860.h new file mode 100644 index 000000000..4a5873273 --- /dev/null +++ b/src/data/wonder_mail_802C860.h @@ -0,0 +1,31 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFD28 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFD40 = { + 0, 0, 0, 0, + 4, + 21, 6, + 7, 3, + 3, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFD58 = { + 0, 0, 0, 0, + 4, + 21, 15, + 6, 3, + 3, 0, + NULL +}; + +ALIGNED(4) static const u8 sTakeJob[] = _("Take Job"); +ALIGNED(4) static const u8 sSuspend[] = _("Suspend"); \ No newline at end of file diff --git a/src/data/wonder_mail_802CDD4.h b/src/data/wonder_mail_802CDD4.h new file mode 100644 index 000000000..9868d43e2 --- /dev/null +++ b/src/data/wonder_mail_802CDD4.h @@ -0,0 +1,21 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFD8C = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFDA4 = { + 0, 0, 0, 0, + 6, + 2, 2, + 24, 14, + 14, 0, + NULL +}; + +ALIGNED(4) static const u8 sRescueEvent[] = _("RESCUE EVENT"); \ No newline at end of file diff --git a/src/data/wonder_mail_802D098.h b/src/data/wonder_mail_802D098.h new file mode 100644 index 000000000..1bfdf8e1f --- /dev/null +++ b/src/data/wonder_mail_802D098.h @@ -0,0 +1,88 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80DFDD4 = { + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +UNUSED static const UnkTextStruct2 sUnknown_80DFDEC = { + 0, 0, 0, 0, + 3, + 3, 3, + 7, 3, + 3, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFE04 = { + 0, 0, 0, 0, + 3, + 21, 6, + 7, 3, + 3, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80DFE1C = { + 0, 0, 0, 0, + 3, + 21, 15, + 7, 3, + 3, 0, + NULL +}; + +UNUSED static const UnkTextStruct2 sUnknown_80DFE34 = { + 0, 0, 0, 0, + 3, + 21, 15, + 6, 3, + 3, 0, + NULL +}; + +ALIGNED(4) static const u8 sReplaceOldMailPrompt[] = _( + "Are you sure you want to replace the\n" + "old {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} with the new one?"); + +ALIGNED(4) static const u8 sMailAlreadyReceived[] = _( + "This {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} has already been\n" + "received."); + +ALIGNED(4) static const u8 sMailAlreadyReceivedMayNotReceiveAgain[] = _( + "This {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} has already been\n" + "received.\n" + "You may not receive the same one again."); + +ALIGNED(4) static const u8 sOnlyOneMailCanBeHeldPleaseCompleteFirst[] = _( + "Only {COLOR_1 LIGHT_BLUE}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" + "Please receive it after completing any\n" + "rescue mission in progress."); + +ALIGNED(4) static const u8 sTeamQuicksavedCompleteFirst[] = _( + "The rescue team has quicksaved in\n" + "a dungeon with a mission in progress.\n" + "Please complete the mission first."); + +ALIGNED(4) static const u8 sTeamQuicksavedCannotDelete[] = _( + "The rescue team has quicksaved in\n" + "a dungeon with a mission in progress.\n" + "Mail cannot be deleted now."); + +ALIGNED(4) static const u8 sReceivedWonderMail[] = _("Received the {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sOnlyOneMailCanBeHeldSoReplacePrompt[] = _( + "Only {COLOR_1 LIGHT_BLUE}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" + "Is it OK to replace the old {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1}\n" + "with the new one?"); + +ALIGNED(4) static const u8 sJobListFullPleaseDelete[] = _( + "Your {COLOR_1 LIGHT_BLUE}Job List{END_COLOR_TEXT_1} is full.\n" + "Please select and delete unwanted mail."); + +ALIGNED(4) static const u8 sNewMail[] = _("New Mail"); +ALIGNED(4) static const u8 sOldMail[] = _("Old Mail"); \ No newline at end of file diff --git a/src/debug_menu1.c b/src/debug_menu1.c index bc735f4a7..a2db5d945 100644 --- a/src/debug_menu1.c +++ b/src/debug_menu1.c @@ -4,6 +4,7 @@ #include "constants/main_menu.h" #include "debug_menu1.h" #include "friend_area.h" +#include "input.h" #include "main_menu1.h" #include "memory.h" #include "menu_input.h" diff --git a/src/debug_menu2.c b/src/debug_menu2.c index fec7a2e9f..aa603300d 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -4,6 +4,7 @@ #include "code_801C8C4.h" #include "common_strings.h" #include "debug_menu2.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/debug_menu3.c b/src/debug_menu3.c index 1e6859a25..cffd9d6a1 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -3,6 +3,7 @@ #include "common_strings.h" #include "debug_menu3.h" #include "friend_area.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" diff --git a/src/debug_menu4.c b/src/debug_menu4.c index f307074b5..561d66c3f 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -3,6 +3,7 @@ #include "code_801602C.h" #include "code_8023868.h" #include "debug_menu4.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/event_flag.c b/src/event_flag.c index 5f7738306..11734ce91 100644 --- a/src/event_flag.c +++ b/src/event_flag.c @@ -45,7 +45,6 @@ extern u8 gUnknown_80B7388[]; void FatalError(DebugLocation *, const char *, ...) __attribute__((noreturn)); extern bool8 HasCompletedAllMazes(void); -extern void sub_8097418(u32, u32); extern void sub_800160C(struct UnkEventStruct *r0, u32 r1, u32 r2); extern u8 sub_8002658(s16); extern void sub_80018D8(u32, u32, u32); diff --git a/src/felicity_bank.c b/src/felicity_bank.c index 4388c5794..bcfd661c6 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -3,6 +3,7 @@ #include "code_80130A8.h" #include "common_strings.h" #include "felicity_bank.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index 08cc76b55..ded576cdf 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -11,6 +11,7 @@ #include "constants/dungeon.h" #include "event_flag.h" #include "friend_area_action_menu.h" +#include "input.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 348922289..9462cd37d 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -13,6 +13,7 @@ #include "constants/dungeon.h" #include "event_flag.h" #include "ground_map_1.h" +#include "input.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/ground_main.c b/src/ground_main.c index 16275e998..8ef714d9c 100644 --- a/src/ground_main.c +++ b/src/ground_main.c @@ -7,7 +7,6 @@ #include "event_flag.h" #include "ground_main.h" #include "ground_map_2.h" -#include "input.h" #include "play_time.h" EWRAM_DATA u32 gUnknown_20398A8 = {0}; diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 481700205..91ea240cd 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -5,6 +5,7 @@ #include "code_80130A8.h" #include "common_strings.h" #include "gulpin_shop.h" +#include "input.h" #include "pokemon.h" #include "memory.h" #include "menu_input.h" diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index f3994a857..d8489dfa3 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -10,6 +10,7 @@ #include "felicity_bank.h" #include "gulpin_shop.h" #include "gulpin_shop_801FB50.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "moves.h" diff --git a/src/hints_menu1.c b/src/hints_menu1.c index beaa55de2..5153fa48e 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "common_strings.h" #include "hints_menu1.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/hints_menu2.c b/src/hints_menu2.c index 3efe8b018..7eb2e151f 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "common_strings.h" #include "hints_menu2.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index e6db2592b..84173b1f5 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -4,6 +4,7 @@ #include "code_801C8C4.h" #include "code_8098BDC.h" #include "common_strings.h" +#include "input.h" #include "kangaskhan_storage1.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index cd5631bc4..a97164d0a 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -4,6 +4,7 @@ #include "code_801C8C4.h" #include "code_8098BDC.h" #include "common_strings.h" +#include "input.h" #include "kangaskhan_storage2.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index 8f54aa6b7..970edcd2c 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -5,6 +5,7 @@ #include "code_8098BDC.h" #include "common_strings.h" #include "felicity_bank.h" +#include "input.h" #include "items.h" #include "kecleon_bros1.h" #include "kecleon_bros2.h" diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index 1aca68aaf..5d54bebc5 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -2,6 +2,7 @@ #include "code_800D090.h" #include "code_80118A4.h" #include "constants/input.h" +#include "input.h" #include "items.h" #include "kecleon_bros2.h" #include "memory.h" diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index eae57a0ae..e4eb0c16c 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -2,6 +2,7 @@ #include "code_800D090.h" #include "code_80118A4.h" #include "constants/input.h" +#include "input.h" #include "items.h" #include "kecleon_bros3.h" #include "memory.h" diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index eefd235df..a2580dc87 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -4,6 +4,7 @@ #include "code_80130A8.h" #include "code_8098BDC.h" #include "constants/input.h" +#include "input.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/mailbox.c b/src/mailbox.c index 2a771bfb3..7a863ba1d 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -7,16 +7,17 @@ #include "structs/menu.h" #include "input.h" #include "mailbox.h" -#include "wonder_mail.h" #include "menu_input.h" #include "code_80118A4.h" -#include "wonder_mail_2_1.h" #include "pokemon_news1.h" #include "pokemon_news2.h" #include "pokemon_news3.h" #include "mailbox_8095F8C.h" #include "code_803B050.h" #include "code_80958E8_1.h" +#include "wonder_mail_802C4C8.h" +#include "wonder_mail_802C860.h" +#include "code_8096AF8.h" EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0}; @@ -85,9 +86,6 @@ extern void sub_802E088(u32); extern void CreateMailboxMenu(void); extern void CreateMailActionMenu(void); extern void CreateMailAcceptedStatusBox(u32); -extern void AcceptJob(WonderMail *); -extern void sub_8096C80(void); -extern void sub_8096D24(void); extern void ReceivePKMNNews(u8); extern void sub_8096078(void); diff --git a/src/main_menu1.c b/src/main_menu1.c index 0ced9b756..f47134f02 100644 --- a/src/main_menu1.c +++ b/src/main_menu1.c @@ -7,6 +7,7 @@ #include "ds_menus.h" #include "friend_rescue.h" #include "game_options.h" +#include "input.h" #include "load_screen.h" #include "main_menu1.h" #include "main_menu2.h" diff --git a/src/main_menu2.c b/src/main_menu2.c index 578f9cc3e..2bc001b7a 100644 --- a/src/main_menu2.c +++ b/src/main_menu2.c @@ -2,6 +2,7 @@ #include "code_803D0D8.h" #include "constants/main_menu.h" #include "constants/wonder_mail.h" +#include "input.h" #include "main_menu1.h" #include "main_menu2.h" #include "memory.h" diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index 25285039c..d6990e08e 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -6,6 +6,7 @@ #include "common_strings.h" #include "constants/colors.h" #include "dungeon.h" +#include "input.h" #include "makuhita_dojo1.h" #include "makuhita_dojo2.h" #include "memory.h" diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index ff3416328..5ed76f593 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -6,6 +6,7 @@ #include "constants/colors.h" #include "constants/input.h" #include "dungeon.h" +#include "input.h" #include "makuhita_dojo2.h" #include "memory.h" #include "menu_input.h" diff --git a/src/menu_input.c b/src/menu_input.c index e18d91c0d..45152b9f8 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -5,6 +5,7 @@ #include "code_80130A8.h" #include "constants/colors.h" #include "constants/input.h" +#include "input.h" #include "menu_input.h" #include "sprite.h" #include "text_util.h" diff --git a/src/options_menu1.c b/src/options_menu1.c index d61fce4cc..d10f9cc9a 100644 --- a/src/options_menu1.c +++ b/src/options_menu1.c @@ -4,6 +4,7 @@ #include "common_strings.h" #include "hints_menu1.h" #include "hints_menu2.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "options_menu1.h" diff --git a/src/options_menu2.c b/src/options_menu2.c index c26517ca3..b48dea6a8 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "constants/colors.h" #include "constants/input.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "options_menu2.h" diff --git a/src/other_menus2.c b/src/other_menus2.c index e75c3c29c..8fc98d5fe 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -2,13 +2,13 @@ #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/dungeon.h" -#include "structs/str_dungeon.h" #include "main_menu1.h" #include "memory.h" #include "other_menus1.h" #include "other_menus2.h" #include "pokemon.h" #include "save.h" +#include "structs/str_dungeon.h" // rescue_password_menu.c extern s32 gCommsTimeout; // Counts to 100 and then errors if other player hasn't connected diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 6408e0d9b..56c44f7f3 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -12,6 +12,7 @@ #include "common_strings.h" #include "constants/dungeon.h" #include "event_flag.h" +#include "input.h" #include "items.h" #include "kecleon_bros4.h" #include "memory.h" diff --git a/src/pelipper_board.c b/src/pelipper_board.c index 18a948af1..b9d90c1a1 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -8,15 +8,16 @@ #include "text2.h" #include "structs/menu.h" #include "input.h" -#include "wonder_mail.h" #include "menu_input.h" #include "common_strings.h" #include "pelipper_board.h" #include "code_80118A4.h" -#include "wonder_mail_2_1.h" #include "wonder_mail_802C10C.h" #include "code_80958E8_1.h" #include "code_803B050.h" +#include "wonder_mail_802C4C8.h" +#include "wonder_mail_802C860.h" +#include "code_8096AF8.h" EWRAM_DATA_2 struct unkStruct_203B308 *gPelipperBoard = {0}; @@ -79,9 +80,6 @@ extern void sub_802EC10(void); extern void CreatePelipperAcceptedStatusBox(u32); -extern void sub_8096C80(void); -extern void sub_8096D24(void); -extern void AcceptJob(WonderMail*); extern void ResetPelipperBoardSlot(u8); extern void sub_80965F4(void); diff --git a/src/personality_test.c b/src/personality_test.c index 734c7b434..f08287de8 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -8,6 +8,7 @@ #include "constants/input.h" #include "constants/type.h" #include "game_options.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "personality_test.h" diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index 7e1e548ca..224bca31e 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -4,6 +4,7 @@ #include "code_803B050.h" #include "code_8096AF8.h" #include "constants/input.h" +#include "input.h" #include "pokemon_mail.h" #include "pokemon_news1.h" #include "pokemon_news2.h" diff --git a/src/pokemon_news2.c b/src/pokemon_news2.c index e0c62ac93..caf043373 100644 --- a/src/pokemon_news2.c +++ b/src/pokemon_news2.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "game_options.h" +#include "input.h" #include "pokemon_mail.h" #include "pokemon_mid.h" #include "pokemon_news2.h" diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index 98072d7ee..0014a464d 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -1,17 +1,18 @@ #include "global.h" #include "code_800D090.h" #include "code_80118A4.h" -#include "code_802C39C.h" #include "code_803B050.h" #include "code_80958E8_1.h" #include "constants/input.h" #include "constants/mailbox.h" +#include "input.h" #include "mailbox_8095F8C.h" #include "memory.h" #include "menu_input.h" #include "pokemon_mail.h" #include "pokemon_mid.h" #include "pokemon_news3.h" +#include "structs/str_802C39C.h" #include "text1.h" #include "text2.h" diff --git a/src/post_office_guide1.c b/src/post_office_guide1.c index be5529960..c7c24fba5 100644 --- a/src/post_office_guide1.c +++ b/src/post_office_guide1.c @@ -1,5 +1,6 @@ #include "global.h" #include "code_80130A8.h" +#include "input.h" #include "memory.h" #include "structs/menu.h" #include "pokemon.h" diff --git a/src/post_office_guide2.c b/src/post_office_guide2.c index 6a9f8b34c..490d1a23a 100644 --- a/src/post_office_guide2.c +++ b/src/post_office_guide2.c @@ -8,13 +8,13 @@ #include "code_80A26CC.h" #include "constants/mailbox.h" #include "constants/wonder_mail.h" +#include "input.h" #include "items.h" #include "memory.h" #include "menu_input.h" #include "post_office_guide2.h" #include "text1.h" #include "text2.h" -#include "wonder_mail.h" extern u8 gUnknown_202DE58[]; diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index 289324b36..fec4c24d8 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -13,7 +13,6 @@ #include "save.h" #include "text1.h" #include "text2.h" -#include "wonder_mail.h" #define RESCUE_PASSWORD_SIZE 0x36 diff --git a/src/save_menu.c b/src/save_menu.c index eec52d552..e1faf246e 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -1,6 +1,7 @@ #include "global.h" #include "code_80130A8.h" #include "constants/main_menu.h" +#include "input.h" #include "main_menu1.h" #include "memory.h" #include "menu_input.h" diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index cd13f81b9..229ac4155 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -8,6 +8,7 @@ #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "cpu.h" +#include "input.h" #include "items.h" #include "main_menu1.h" #include "memory.h" @@ -20,7 +21,7 @@ #include "text_util.h" #include "text1.h" #include "text2.h" -#include "wonder_mail.h" +#include "thank_you_wonder_mail.h" static EWRAM_DATA_2 WonderMailStruct_203B2C4 *sUnknown_203B2C4 = {0}; diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 65dddd35a..7d9912766 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -5,6 +5,7 @@ #include "code_801C8C4.h" #include "constants/communication_error_codes.h" #include "cpu.h" +#include "input.h" #include "items.h" #include "main_menu1.h" #include "memory.h" diff --git a/src/unk_menu_203B360.c b/src/unk_menu_203B360.c index 54c61c9e0..b3d0378fc 100644 --- a/src/unk_menu_203B360.c +++ b/src/unk_menu_203B360.c @@ -1,5 +1,6 @@ #include "global.h" #include "constants/main_menu.h" +#include "input.h" #include "main_menu1.h" #include "memory.h" #include "menu_input.h" diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index 3122cb8bc..ebbb358bc 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -4,6 +4,7 @@ #include "constants/input.h" #include "event_flag.h" #include "friend_area.h" +#include "input.h" #include "items.h" #include "memory.h" #include "menu_input.h" diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index 49ba357df..fd1750b75 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -4,6 +4,7 @@ #include "common_strings.h" #include "exclusive_pokemon.h" #include "friend_area.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index 4b0ea5b83..119b16952 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -7,6 +7,7 @@ #include "event_flag.h" #include "felicity_bank.h" #include "friend_area.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 15cb54cd8..8d42c5252 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -7,6 +7,7 @@ #include "code_80A26CC.h" #include "constants/communication_error_codes.h" #include "cpu.h" +#include "input.h" #include "items.h" #include "main_menu1.h" #include "memory.h" @@ -268,6 +269,8 @@ ALIGNED(4) const u8 SendPokemon_80DDB98[] = _("Send Pokémon"); #include "data/wonder_mail_1.h" +void SetFriendRescueCounterState(u32 r0); + u32 sub_8027F88(void) { char *monName; diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index c8ef8a84c..85a4f6c38 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -8,6 +8,7 @@ #include "constants/wonder_mail.h" #include "event_flag.h" #include "game_options.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "pokemon.h" @@ -15,7 +16,6 @@ #include "save.h" #include "save_write.h" #include "text1.h" -#include "wonder_mail.h" struct unkStruct_203B2C8 { diff --git a/src/wonder_mail_2_1.c b/src/wonder_mail_2_1.c deleted file mode 100644 index 807a019fd..000000000 --- a/src/wonder_mail_2_1.c +++ /dev/null @@ -1,450 +0,0 @@ -#include "global.h" -#include "code_802DE84.h" -#include "constants/input.h" -#include "constants/mailbox.h" -#include "input.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "structs/menu.h" -#include "code_802C39C.h" -#include "menu_input.h" -#include "wonder_mail_2_1.h" -#include "code_80118A4.h" -#include "code_80958E8_1.h" -#include "code_803B050.h" - -static EWRAM_DATA_2 struct unkStruct_203B2E8* gUnknown_203B2E8 = {0}; -static EWRAM_DATA_2 u16 gUnknown_203B2EC = {0}; - -extern struct unkStruct_203B2F0 *gUnknown_203B2F0; - -ALIGNED(4) static const char wonder_mail_2_fill4[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFCE4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFCFC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x18, 0x0E, - 0x0E, 0x00, - NULL -}; - -const u8 gUnknown_80DFD14[] = "Job List"; -static const u8 wonder_mail_fill[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFD28 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFD40 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x04, - 0x15, 0x06, - 0x07, 0x03, - 0x03, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFD58 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x04, - 0x15, 0x0f, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; - -const u8 gUnknown_80DFD70[] = "Take Job"; -const u8 gUnknown_80DFD7C[] = "Suspend"; -static const u8 wonder_mail_fill0[] = "pksdir0"; - -const UnkTextStruct2 gUnknown_80DFD8C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFDA4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x18, 0x0e, - 0x0e, 0x00, - NULL -}; - -const u8 gUnknown_80DFDBC[] = "RESCUE EVENT"; -static const u8 wonder_mail_fill1[] = "pksdir0"; - -extern void sub_802CAA4(void); -extern u8 IsJobSlotEmpty(u8); - -extern void sub_802C6DC(void); -extern void DrawJobListMenu(void); -extern void SetJobListState(u32); -extern void sub_802CC00(void); -extern void sub_802CC70(void); -extern void sub_802CD38(void); -extern void sub_802CDB8(void); -extern void sub_802C928(void); -extern void sub_802C9D8(void); -extern void sub_802CBAC(void); - -s32 CountAcceptedJobs(void); - - - - - -bool8 sub_802C4C8(int param_1,UnkTextStruct2_sub *param_2,u32 param_3) -{ - if (HasNoAcceptedJobs()) { - return FALSE; - } - else - { - gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E8), 8); - gUnknown_203B2E8->unk3C = param_1; - gUnknown_203B2E8->unk40 = &gUnknown_203B2E8->unk44[param_1]; - sub_8006518(gUnknown_203B2E8->unk44); - - gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCFC; - - gUnknown_203B2E8->unk40->unk14 = gUnknown_203B2E8->unkA4; - - if (param_2 != NULL) - gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C].unk8 = *param_2; - - sub_8012D34(gUnknown_203B2E8->unk40,param_3); - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E8->unk44, TRUE, TRUE); - sub_8013848(&gUnknown_203B2E8->input,CountAcceptedJobs(),param_3,param_1); - gUnknown_203B2E8->input.menuIndex = gUnknown_203B2EC; - sub_8013984(&gUnknown_203B2E8->input); - sub_802C6DC(); - DrawJobListMenu(); - return TRUE; - } -} - -u32 sub_802C598(u8 param_1) -{ - if (param_1 == '\0') { - sub_8013660(&gUnknown_203B2E8->input); - return 0; - } - else { - switch(GetKeyPress(&gUnknown_203B2E8->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - PlayMenuSoundEffect(0); - return 3; - case INPUT_START_BUTTON: - PlayMenuSoundEffect(4); - return 4; - } - if (sub_80138B8(&gUnknown_203B2E8->input, 1) != '\0') { - sub_802C6DC(); - DrawJobListMenu(); - return 1; - } - else { - return 0; - } - } -} - -u8 GetPelipperBoardSlotIndex(void) -{ - return gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C + gUnknown_203B2E8->input.menuIndex]; -} - -void sub_802C640(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E8->unk44, FALSE, FALSE); - gUnknown_203B2E8->input.unk22 = CountAcceptedJobs(); - sub_8013984(&gUnknown_203B2E8->input); - sub_802C6DC(); - DrawJobListMenu(); - if(r0) - AddMenuCursorSprite(&gUnknown_203B2E8->input); -} - -void sub_802C688(void) -{ - if(gUnknown_203B2E8 != NULL) - { - gUnknown_203B2EC = gUnknown_203B2E8->input.menuIndex; - gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = gUnknown_80DFCE4; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2E8->unk44, TRUE, TRUE); - MemoryFree(gUnknown_203B2E8); - gUnknown_203B2E8 = NULL; - } -} - -NAKED -void sub_802C6DC(void) -{ - asm_unified("\tpush {r4,lr}\n" - "\tldr r4, _0802C74C\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x28]\n" - "\tadds r0, 0xA4\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x26]\n" - "\tadds r0, 0xA5\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA6\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0xA7\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x22\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0x18\n" - "\tbl sub_8009614\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x3C]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x52\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x3C]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x54\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x44\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0802C74C: .4byte gUnknown_203B2E8"); - -} - -void DrawJobListMenu(void) -{ - WonderMail *mail; - int index; - s32 r4; - s32 r5; - unkStruct_802C39C local; - - sub_8008C54(gUnknown_203B2E8->unk3C); - sub_80073B8(gUnknown_203B2E8->unk3C); - r4 = gUnknown_203B2E8->input.unk1E * 8; - r5 = r4; - r5 += 10; - xxx_call_draw_string(r5,0,gUnknown_80DFD14,gUnknown_203B2E8->unk3C,0); // "Job List" - r4 += 4; - r5 = r4 + gUnknown_203B2E8->unkA4[2] * 8; - sub_8012BC4(r5,0,gUnknown_203B2E8->input.unk1E + 1,2,7,gUnknown_203B2E8->unk3C); - - for(index = 0; index < gUnknown_203B2E8->input.unk1A; index++) - { - mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C + index]); - local.unk0[0] = gUnknown_203B2E8->unk3C; - local.y = sub_8013800(&gUnknown_203B2E8->input,index); - sub_803B35C(mail,&local); - CreateRescueTitle(&local); - } - sub_80073E0(gUnknown_203B2E8->unk3C); -} - -s32 CountAcceptedJobs(void) -{ - s32 index; - s32 counter = 0; - for(index = 0; index < MAX_ACCEPTED_JOBS; index++) - { - if(!IsJobSlotEmpty(index)) - { - gUnknown_203B2E8->pelipperBoardSlots[counter] = index; - counter++; - } - } - return counter; -} - -bool8 HasNoAcceptedJobs(void) -{ - s32 index; - for(index = 0; index < MAX_ACCEPTED_JOBS; index++) - { - if(!IsJobSlotEmpty(index)) - return FALSE; - } - return TRUE; -} - - - - -// THIS IS A NEW FILE: - - - - - -bool8 InitializeJobListMenu(u32 r0) -{ - if(HasNoAcceptedJobs()) - { - return FALSE; - } - else - { - gUnknown_203B2F0 = MemoryAlloc(sizeof(struct unkStruct_203B2F0), 0x8); - gUnknown_203B2F0->menuAction = 0; - gUnknown_203B2F0->unk0 = r0; - SetJobListState(0); - return TRUE; - } -} - -u32 sub_802C898(void) -{ - switch(gUnknown_203B2F0->state) - { - case 0: - case 1: - sub_802CC00(); - break; - case 2: - sub_802CC70(); - break; - case 3: - sub_802CD38(); - break; - case 4: - sub_802CDB8(); - break; - case 5: - default: - return 3; - } - return 0; -} - -void sub_802C8F4(void) -{ - if(gUnknown_203B2F0 != NULL) - { - MemoryFree(gUnknown_203B2F0); - gUnknown_203B2F0 = NULL; - } -} - -void SetJobListState(u32 newState) -{ - gUnknown_203B2F0->state = newState; - sub_802C928(); - sub_802C9D8(); -} - -void sub_802C928(void) -{ - s32 index; - sub_8006518(gUnknown_203B2F0->unk19C); - switch(gUnknown_203B2F0->state) - { - case 2: - sub_802CAA4(); - gUnknown_203B2F0->unk19C[2] = gUnknown_80DFD40; - sub_8012CAC(&gUnknown_203B2F0->unk19C[2], gUnknown_203B2F0->unk10C); - break; - case 3: - gUnknown_203B2F0->unk19C[3] = gUnknown_80DFD58; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B2F0->unk19C[index] = gUnknown_80DFD28; - } - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2F0->unk19C, TRUE, TRUE); -} - -void sub_802C9D8(void) -{ - switch(gUnknown_203B2F0->state) - { - case 0: - sub_802C4C8(0, 0, 4); - break; - case 1: - sub_802C640(1); - break; - case 2: - DrawJobListMenu(); - sub_8012D60(&gUnknown_203B2F0->unk6C, gUnknown_203B2F0->unk10C, 0, 0, gUnknown_203B2F0->menuAction, 2); - break; - case 3: - sub_802CBAC(); - DrawJobListMenu(); - sub_8012EA4(&gUnknown_203B2F0->unk6C, 0); - sub_8012D60(&gUnknown_203B2F0->unkBC, gUnknown_203B2F0->unk14C, 0, 0, 6, 3); - break; - case 4: - sub_803B35C(GetJobSlotInfo(gUnknown_203B2F0->unkC), &gUnknown_203B2F0->unk10); - gUnknown_203B2F0->unk10.unk0[0] = 3; - sub_802DE84(&gUnknown_203B2F0->unk10); - break; - case 5: - default: - break; - } -} - diff --git a/src/wonder_mail_3.c b/src/wonder_mail_3.c deleted file mode 100644 index feb6d39ac..000000000 --- a/src/wonder_mail_3.c +++ /dev/null @@ -1,1050 +0,0 @@ -#include "global.h" -#include "constants/mailbox.h" -#include "code_802DE84.h" -#include "common_strings.h" -#include "constants/dungeon.h" -#include "constants/input.h" -#include "memory.h" -#include "text1.h" -#include "text2.h" -#include "mailbox.h" -#include "wonder_mail.h" -#include "wonder_mail_3.h" -#include "menu_input.h" -#include "code_80958E8.h" -#include "wonder_mail_2_1.h" -#include "code_80130A8.h" -#include "code_80118A4.h" -#include "code_80A26CC.h" -#include "code_80958E8_1.h" -#include "code_803B050.h" - -static EWRAM_DATA_2 unkStruct_203B2F4 *sUnknown_203B2F4 = {0}; - -extern unkStruct_203B2F8 *gUnknown_203B2F8; - -const UnkTextStruct2 gUnknown_80DFDD4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -// Unused -const UnkTextStruct2 gUnknown_80DFDEC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x03, 0x03, - 0x07, 0x03, - 0x03, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DFE04 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x06, - 0x07, 0x03, - 0x03, 0x00, - NULL -}; -const UnkTextStruct2 gUnknown_80DFE1C = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x0f, - 0x07, 0x03, - 0x03, 0x00, - NULL -}; - -// Unused -const UnkTextStruct2 gUnknown_80DFE34 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x15, 0x0f, - 0x06, 0x03, - 0x03, 0x00, - NULL -}; - -ALIGNED(4) const u8 gUnknown_80DFE4C[] = _( - "Are you sure you want to replace the\n" - "old {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} with the new one?"); - -ALIGNED(4) const u8 gUnknown_80DFE9C[] = _( - "This {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} has already been\n" - "received."); - -ALIGNED(4) const u8 gUnknown_80DFED0[] = _( - "This {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} has already been\n" - "received.\n" - "You may not receive the same one again."); - -ALIGNED(4) const u8 gUnknown_80DFF2C[] = _( - "Only {COLOR_1 LIGHT_BLUE}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" - "Please receive it after completing any\n" - "rescue mission in progress."); - -ALIGNED(4) const u8 gUnknown_80DFFA4[] = - "The rescue team has quicksaved in\n" - "a dungeon with a mission in progress.\n" - "Please complete the mission first."; - -ALIGNED(4) const u8 gUnknown_80E0010[] = - "The rescue team has quicksaved in\n" - "a dungeon with a mission in progress.\n" - "Mail cannot be deleted now."; - -ALIGNED(4) const u8 gReceivedWonderMail[] = _( - "Received the {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1}!"); - -ALIGNED(4) const u8 gUnknown_80E0094[] = _( - "Only {COLOR_1 LIGHT_BLUE}one piece{END_COLOR_TEXT_1} of {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1} can be held.\n" - "Is it OK to replace the old {COLOR_1 LIGHT_BLUE}Wonder Mail{END_COLOR_TEXT_1}\n" - "with the new one?"); - -ALIGNED(4) const u8 gUnknown_80E0108[] = _( - "Your {COLOR_1 LIGHT_BLUE}Job List{END_COLOR_TEXT_1} is full.\n" - "Please select and delete unwanted mail."); - -ALIGNED(4) const u8 gUnknown_80E014C[] = "New Mail"; -ALIGNED(4) const u8 gUnknown_80E0158[] = "Old Mail"; - -extern void sub_802D63C(void); -extern void sub_802D5A4(void); - -extern u8 sub_8099328(u8 *); -extern u32 sub_8011C1C(); -extern void sub_802D1A0(u32); - -extern void sub_802D7D0(); -extern void sub_802D8CC(); -extern void sub_802D940(); -extern void sub_802D9F0(); -extern void sub_802DA60(); -extern void sub_802D82C(); -extern void AdvancetoFallbackWonderMailRescueState(); -extern void sub_802D1B8(); -extern void sub_802D2A8(); - - -extern u8 sub_8096F50(WonderMail *); -extern u8 sub_802DAA8(void); -extern u8 sub_802DADC(void); -extern u8 *sub_8096DD8(void); -extern u8 sub_8096C08(u8 *); -extern void DrawJobListMenu(void); -extern void sub_802D73C(void); -extern void sub_802C640(u32); -extern void sub_802C4C8(u32, u32, u32); -extern void sub_8097418(u32, u32); -extern void sub_802D690(void); -extern void sub_8096C80(void); -extern void sub_8096D24(void); -extern u8 *sub_8096DE8(void); -extern void AcceptJob(unkSubStruct_203B2F8 *); -unkStruct_803B344 *sub_803B344(u8); -extern u8 gUnknown_80DFDBC[]; -extern void sub_802CF5C(void); -extern void sub_802CFD0(void); - -extern void SetJobListState(u32); -extern void ResetJobSlot(u8); -u32 sub_802C598(u8 param_1); -extern void sub_802C688(void); -extern u8 GetPelipperBoardSlotIndex(void); - -extern UnkTextStruct2 gUnknown_80DFD8C; -extern UnkTextStruct2 gUnknown_80DFDA4; - -extern struct unkStruct_203B2F0 *gUnknown_203B2F0; - -extern u8 gUnknown_80DFD70[]; -extern u8 gUnknown_80DFD7C[]; - -extern bool8 sub_809693C(WonderMail *); - -void sub_802CAA4(void) { - s32 loopMax; - WonderMail *mail; - s32 index; - - loopMax = 0; - mail = GetJobSlotInfo(gUnknown_203B2F0->unkC); - if(gUnknown_203B2F0->unk0 == 0) - { - switch(mail->mailType) - { - case 5: - gUnknown_203B2F0->unk10C[loopMax].text = gUnknown_80DFD70; // Take Job - if(sub_809693C(mail) || !sub_80A2824(mail->unk4.dungeon.id)) - { - gUnknown_203B2F0->unk10C[loopMax].menuAction = -1; - } - else - { - gUnknown_203B2F0->unk10C[loopMax].menuAction = 2; - } - loopMax += 1; - break; - case 6: - gUnknown_203B2F0->unk10C[loopMax].text = gUnknown_80DFD7C; // Suspend - gUnknown_203B2F0->unk10C[loopMax].menuAction = 3; - loopMax += 1; - break; - } - } - gUnknown_203B2F0->unk10C[loopMax].text = gCommonDelete[0]; - gUnknown_203B2F0->unk10C[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B2F0->unk10C[loopMax].text = gCommonInfo[0]; - gUnknown_203B2F0->unk10C[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B2F0->unk10C[loopMax].text = NULL; - gUnknown_203B2F0->unk10C[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B2F0->unk10C[index].menuAction != -1) - { - if(gUnknown_203B2F0->unk10C[index].menuAction == gUnknown_203B2F0->menuAction) - return; - } - } - gUnknown_203B2F0->menuAction = 7; -} - -void sub_802CBAC(void) -{ - s32 loopMax; - loopMax = 0; - - gUnknown_203B2F0->unk14C[loopMax].text = gCommonYes[0]; - gUnknown_203B2F0->unk14C[loopMax].menuAction = 5; - loopMax += 1; - gUnknown_203B2F0->unk14C[loopMax].text = gCommonNo[0]; - gUnknown_203B2F0->unk14C[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B2F0->unk14C[loopMax].text = NULL; - gUnknown_203B2F0->unk14C[loopMax].menuAction = 1; -} - -void sub_802CC00(void) -{ - switch(sub_802C598(1)) - { - case 3: - gUnknown_203B2F0->unkC = GetPelipperBoardSlotIndex(); - SetJobListState(2); - break; - case 4: - gUnknown_203B2F0->unkC = GetPelipperBoardSlotIndex(); - SetJobListState(4); - break; - case 0: - case 1: - break; - case 2: - sub_802C688(); - SetJobListState(5); - break; - } -} - -void sub_802CC70(void) -{ - s32 menuAction; - WonderMail *mail; - WonderMail *mail2; - - menuAction = 0; - sub_802C598(0); - if (!sub_8012FD8(&gUnknown_203B2F0->unk6C)) { - sub_8013114(&gUnknown_203B2F0->unk6C,&menuAction); - if(menuAction != 1) gUnknown_203B2F0->menuAction = menuAction; - } - switch(menuAction) - { - case 2: - PlaySound(0x133); - mail = GetJobSlotInfo(gUnknown_203B2F0->unkC); - mail->mailType = MAIL_TYPE_TAKEN_JOB; - SetJobListState(1); - break; - case 3: - PlaySound(0x133); - mail2 = GetJobSlotInfo(gUnknown_203B2F0->unkC); - mail2->mailType = MAIL_TYPE_SUSPENDED_JOB; - SetJobListState(1); - break; - case 4: - SetJobListState(3); - break; - case 7: - SetJobListState(4); - break; - case 1: - SetJobListState(1); - break; - } -} - -void sub_802CD38(void) -{ - s32 menuAction; - - menuAction = 0; - sub_802C598(0); - sub_8012FD8(&gUnknown_203B2F0->unk6C); - if (!sub_8012FD8(&gUnknown_203B2F0->unkBC)) { - sub_8013114(&gUnknown_203B2F0->unkBC,&menuAction); - } - switch(menuAction) - { - case 1: - case 6: - SetJobListState(1); - break; - case 5: - ResetJobSlot(gUnknown_203B2F0->unkC); - sub_8096C80(); - if (HasNoAcceptedJobs()) { - sub_802C688(); - SetJobListState(5); - } - else { - SetJobListState(1); - } - break; - } -} - -void sub_802CDB8(void) -{ - switch(sub_802DEE0()) - { - case 2: - case 3: - sub_802DF24(); - SetJobListState(1); - break; - case 0: - case 1: - break; - } -} - - - - -// THIS IS A NEW FILE: - - - - - -bool8 sub_802CDD4(u32 r0) -{ - if(sUnknown_203B2F4 == NULL) - { - sUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8); - } - sUnknown_203B2F4->unk34 = r0; - sUnknown_203B2F4->unk38 = &sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34]; - sub_8006518(sUnknown_203B2F4->unk3C); - sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFDA4; - sUnknown_203B2F4->unk38->unk14 = sUnknown_203B2F4->unk9C; - sub_8012D34(sUnknown_203B2F4->unk38, 4); - ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); - sub_8013848(&sUnknown_203B2F4->input, 5, 4, r0); - sub_802CF5C(); - sub_802CFD0(); - return TRUE; -} - -u32 sub_802CE5C(u8 r0) -{ - if(r0 == 0) - { - sub_8013660(&sUnknown_203B2F4->input); - return 0; - } - else - { - switch(GetKeyPress(&sUnknown_203B2F4->input)) - { - case INPUT_B_BUTTON: - PlayMenuSoundEffect(1); - return 2; - case INPUT_A_BUTTON: - return 3; - default: - if(sub_80138B8(&sUnknown_203B2F4->input, 1) != 0) - { - sub_802CF5C(); - sub_802CFD0(); - return 1; - } - else - { - return 0; - } - } - } -} - -u8 sub_802CEBC(void) -{ - return (sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C) + sUnknown_203B2F4->input.menuIndex; -} - -void sub_802CED8(u8 r0) -{ - ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B2F4->unk3C, FALSE, FALSE); - sub_8013984(&sUnknown_203B2F4->input); - sub_802CF5C(); - sub_802CFD0(); - if(r0) - AddMenuCursorSprite(&sUnknown_203B2F4->input); -} - -void sub_802CF14(void) -{ - if(sUnknown_203B2F4) - { - sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = gUnknown_80DFD8C; - ResetUnusedInputStruct(); - sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); - MemoryFree(sUnknown_203B2F4); - sUnknown_203B2F4 = NULL; - } -} - -NAKED -void sub_802CF5C(void) -{ - asm_unified( - "\tpush {r4,lr}\n" - "\tldr r4, _0802CFCC\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x20]\n" - "\tadds r0, 0x9C\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x1E]\n" - "\tadds r0, 0x9D\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9E\n" - "\tmovs r1, 0xC\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9F\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0x18\n" - "\tbl sub_8009614\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0802CFCC: .4byte sUnknown_203B2F4"); -} - - -void sub_802CFD0(void) -{ - unkStruct_802C39C local; - unkStruct_803B344 *iVar1; - s32 r5; - s32 r4; - - sub_8008C54(sUnknown_203B2F4->unk34); - sub_80073B8(sUnknown_203B2F4->unk34); - r5 = r4 = sUnknown_203B2F4->input.unk1E * 8 + 10; - xxx_call_draw_string(r5,0,gUnknown_80DFDBC,sUnknown_203B2F4->unk34,0); // RESCUE EVENT - r4 -= 6; - r5 = r4 + (sUnknown_203B2F4->unk9C[2] * 8); - sub_8012BC4(r5,0,sUnknown_203B2F4->input.unk1E + 1,2,7,sUnknown_203B2F4->unk34); - - for(r5 = 0; r5 < sUnknown_203B2F4->input.unk1A; r5++) - { - iVar1 = sub_803B344(sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C + r5); - local.unk0[0] = sUnknown_203B2F4->unk34; - local.y = sub_8013800(&sUnknown_203B2F4->input, r5); - sub_803B35C(&iVar1->mail,&local); - local.unk43 = 1; - local.unk4C = iVar1->unk14; - CreateRescueTitle(&local); - } - sub_80073E0(sUnknown_203B2F4->unk34); -} - - - - - - -// THIS IS A NEW FILE: - - - - -u32 sub_802D098(unkSubStruct_203B2F8 *mail) -{ - gUnknown_203B2F8 = MemoryAlloc(sizeof(unkStruct_203B2F8),8); - gUnknown_203B2F8->menuAction1 = 0; - gUnknown_203B2F8->menuAction2 = 0; - gUnknown_203B2F8->menuAction3 = 0; - gUnknown_203B2F8->mail = mail; - gUnknown_203B2F8->wonderMailAccepted = FALSE; - gUnknown_203B2F8->unk9 = sub_8099328(&gUnknown_203B2F8->dungeonID); - if (sub_8011C1C() != 2) { - gUnknown_203B2F8->unk9 = FALSE; - } - sub_802D1A0(INITIAL_WONDER_MAIL_CHECK); - return 1; -} - -u32 sub_802D0E0(void) -{ - switch(gUnknown_203B2F8->state) { - case INITIAL_WONDER_MAIL_CHECK: - break; - case 1: - sub_802D7D0(); - break; - case DRAW_JOB_LIST: - case DRAW_JOB_LIST_1: - sub_802D8CC(); - break; - case 0xd: - sub_802D940(); - break; - case 0xe: - sub_802D9F0(); - break; - case 0xf: - case 0x10: - sub_802DA60(); - break; - case 9: - sub_802D82C(); - break; - case WONDER_MAIL_EXIT: - return 3; - default: - AdvancetoFallbackWonderMailRescueState(); - break; - } - return 0; -} - -bool8 GetWonderMailAccepted(void) -{ - return gUnknown_203B2F8->wonderMailAccepted; -} - -void sub_802D184(void) -{ - if(gUnknown_203B2F8 != NULL) - { - MemoryFree(gUnknown_203B2F8); - gUnknown_203B2F8 = NULL; - } -} - -void sub_802D1A0(u32 newState) -{ - gUnknown_203B2F8->state = newState; - sub_802D1B8(); - sub_802D2A8(); -} - -void sub_802D1B8(void) -{ - s32 index; - sub_8006518(gUnknown_203B2F8->unk1A8); - switch(gUnknown_203B2F8->state) - { - case 0xD: - sub_802D5A4(); - gUnknown_203B2F8->unk1A8[2] = gUnknown_80DFE04; - sub_8012CAC(&gUnknown_203B2F8->unk1A8[2], gUnknown_203B2F8->unk118); - gUnknown_203B2F8->unk1A8[2].unkC = 6; - break; - case 0xE: - sub_802D63C(); - gUnknown_203B2F8->unk1A8[3] = gUnknown_80DFE1C; - sub_8012CAC(&gUnknown_203B2F8->unk1A8[3], gUnknown_203B2F8->unk158); - gUnknown_203B2F8->unk1A8[3].unkC = 6; - break; - default: - for(index = 0; index < 4; index++) - { - gUnknown_203B2F8->unk1A8[index] = gUnknown_80DFDD4; - } - break; - case WONDER_MAIL_EXIT: - break; - } - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B2F8->unk1A8, TRUE, TRUE); -} - -void sub_802D2A8(void) -{ - - switch(gUnknown_203B2F8->state) { - case INITIAL_WONDER_MAIL_CHECK: - if (IsMailinJobSlot(&gUnknown_203B2F8->mail->wonderMail)) { - sub_802D1A0(DUPLICATE_WONDER_MAIL); - } - else if (sub_8096F50(&gUnknown_203B2F8->mail->wonderMail) != 0) { - sub_802D1A0(DUPLICATE_WONDER_MAIL_1); - } - else if ((gUnknown_203B2F8->mail->wonderMail.unk2 == 4) && (sub_8096C08(&gUnknown_203B2F8->jobSlotIndex) != 0)) { - if (sub_802DAA8() != 0) { - sub_802D1A0(9); - } - else { - sub_802D1A0(5); - } - } - else if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) { - if (sub_802DADC() != 0) { - sub_802D1A0(JOB_LIST_FULL); - } - else { - sub_802D1A0(6); - } - } - else - sub_802D1A0(RECEIVE_WONDER_MAIL); - break; - case 1: - sub_802D73C(); - sub_8014248(gUnknown_80DFE4C,0,gUnknown_203B2F8->menuAction2,gUnknown_203B2F8->unk158,0,4,0,0,0); - break; - case DUPLICATE_WONDER_MAIL: - gUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; - sub_80141B4(gUnknown_80DFE9C,0,0,0x101); - break; - case DUPLICATE_WONDER_MAIL_1: - gUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; - sub_80141B4(gUnknown_80DFED0,0,0,0x101); - break; - case 5: - gUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; - sub_80141B4(gUnknown_80DFF2C,0,0,0x101); - break; - case 6: - gUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; - sub_80141B4(gUnknown_80DFFA4,0,0,0x101); - break; - case 7: - gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; - sub_80141B4(gUnknown_80E0010,0,0,0x101); - break; - case RECEIVE_WONDER_MAIL: - gUnknown_203B2F8->wonderMailAccepted = TRUE; - AcceptJob(gUnknown_203B2F8->mail); - sub_8096C80(); - sub_8096D24(); - if (gUnknown_203B2F8->mail->wonderMail.unk2 == 4) { - MemoryCopy8(sub_8096DD8(),gUnknown_203B2F8->mail->unk14,0x28); - MemoryCopy8(sub_8096DE8(),gUnknown_203B2F8->mail->unk18,0x78); - } - switch(gUnknown_203B2F8->mail->wonderMail.unk4.dungeon.id) - { - // NOTE: subtract 1 from each of the case as the input?? - case DUNGEON_ODDITY_CAVE: // 0x2B - sub_8097418(0x2A, 1); - break; - case DUNGEON_REMAINS_ISLAND: - sub_8097418(0x2B, 1); - break; - case DUNGEON_MARVELOUS_SEA: - sub_8097418(0x2C, 1); - break; - case DUNGEON_FANTASY_STRAIT: // 0x2E - sub_8097418(0x2D, 1); - break; - } - gUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; - sub_80141B4(gReceivedWonderMail,0,0,0x101); - break; - case 9: - sub_802D690(); - sub_8014248(gUnknown_80E0094,0,gUnknown_203B2F8->menuAction3,gUnknown_203B2F8->unk158,0,4,0,0,0); - break; - case JOB_LIST_FULL: - gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST; - sub_80141B4(gUnknown_80E0108,0,0,0x101); - break; - case DRAW_JOB_LIST: - sub_802C4C8(0,0,4); - break; - case DRAW_JOB_LIST_1: - sub_802C640(1); - break; - case 0xd: - DrawJobListMenu(); - sub_8012D60(&gUnknown_203B2F8->unk78,gUnknown_203B2F8->unk118,0,gUnknown_203B2F8->unk198, - gUnknown_203B2F8->menuAction1,2); - break; - case 0xe: - DrawJobListMenu(); - sub_8012EA4(&gUnknown_203B2F8->unk78,0); - sub_8012D60(&gUnknown_203B2F8->unkC8,gUnknown_203B2F8->unk158,0,0,4,3); - break; - case 0xf: - sub_803B35C(GetJobSlotInfo(gUnknown_203B2F8->jobSlotIndex),&gUnknown_203B2F8->unk14); - gUnknown_203B2F8->unk14.unk0[0] = 3; - sub_802DE84(&gUnknown_203B2F8->unk14); - break; - case 0x10: - sub_803B35C(&gUnknown_203B2F8->mail->wonderMail,&gUnknown_203B2F8->unk14); - gUnknown_203B2F8->unk14.unk0[0] = 3; - gUnknown_203B2F8->unk14.mailStatus = MAIL_STATUS_SUSPENDED; - gUnknown_203B2F8->unk14.unk50 = gUnknown_203B2F8->mail->unk18; - sub_802DE84(&gUnknown_203B2F8->unk14); - break; - } -} - -void sub_802D5A4(void) { - s32 loopMax; - s32 index; - - loopMax = 0; - MemoryFill16(gUnknown_203B2F8->unk198, 0, sizeof(gUnknown_203B2F8->unk198)); - gUnknown_203B2F8->unk118[loopMax].text = gCommonDelete[0]; - gUnknown_203B2F8->unk118[loopMax].menuAction = 2; - loopMax += 1; - gUnknown_203B2F8->unk118[loopMax].text = gCommonInfo[0]; - gUnknown_203B2F8->unk118[loopMax].menuAction = 5; - loopMax += 1; - gUnknown_203B2F8->unk118[loopMax].text = NULL; - gUnknown_203B2F8->unk118[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if (gUnknown_203B2F8->unk198[index] == 0) { - if(gUnknown_203B2F8->unk118[index].menuAction == gUnknown_203B2F8->menuAction1) - return; - } - } - gUnknown_203B2F8->menuAction1 = 2; -} - -void sub_802D63C(void) { - s32 loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = NULL; - gUnknown_203B2F8->unk158[loopMax].menuAction = 1; -} - -void sub_802D690(void) { - s32 loopMax; - s32 index; - - loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; - gUnknown_203B2F8->unk158[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E0158; - gUnknown_203B2F8->unk158[loopMax].menuAction = 7; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = NULL; - gUnknown_203B2F8->unk158[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B2F8->unk158[index].menuAction == gUnknown_203B2F8->menuAction3) - return; - } - gUnknown_203B2F8->menuAction3 = 4; -} - -void sub_802D73C(void) { - s32 loopMax; - s32 index; - - loopMax = 0; - gUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 3; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; - gUnknown_203B2F8->unk158[loopMax].menuAction = 4; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = gUnknown_80E014C; - gUnknown_203B2F8->unk158[loopMax].menuAction = 6; - loopMax += 1; - gUnknown_203B2F8->unk158[loopMax].text = NULL; - gUnknown_203B2F8->unk158[loopMax].menuAction = 1; - - for(index = 0; index < loopMax; index++) - { - if(gUnknown_203B2F8->unk158[index].menuAction == gUnknown_203B2F8->menuAction2) - return; - } - gUnknown_203B2F8->menuAction2 = 4; -} - -void sub_802D7D0(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - if (menuAction != 1) { - gUnknown_203B2F8->menuAction2 = menuAction; - } - switch(menuAction) { - // Yes - case 3: - sub_802D1A0(WONDER_MAIL_EXIT); - break; - // New Mail - case 6: - gUnknown_203B2F8->fallbackState = 1; - sub_802D1A0(0x10); - break; - // No - case 4: - case 2: - default: - sub_802D1A0(INITIAL_WONDER_MAIL_CHECK); - break; - } - } -} - -void sub_802D82C(void) -{ - s32 menuAction; - - if (sub_80144A4(&menuAction) == 0) { - if (menuAction != 1) { - gUnknown_203B2F8->menuAction3 = menuAction; - } - switch(menuAction) { - // Yes - case 3: - ResetJobSlot(gUnknown_203B2F8->jobSlotIndex); - sub_8096C80(); - sub_802D1A0(RECEIVE_WONDER_MAIL); - break; - // New Mail - case 6: - gUnknown_203B2F8->fallbackState = 9; - sub_802D1A0(0x10); - break; - // Old Mail - case 7: - gUnknown_203B2F8->fallbackState = 9; - sub_802D1A0(0xf); - break; - // No - default: - case 1: - case 2: - case 4: - sub_802D1A0(1); - break; - } - } -} - -void sub_802D8CC(void) -{ - switch(sub_802C598(1)) { - case 0: - case 1: - break; - case 3: - gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex(); - sub_802D1A0(0xd); - break; - case 4: - gUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex(); - gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; - sub_802D1A0(0xf); - break; - case 2: - sub_802C688(); - sub_802D1A0(1); - break; - } -} - -void sub_802D940(void) -{ - WonderMail *mail; - s32 menuAction; - - menuAction = 0; - sub_802C598(0); - if ((sub_8012FD8(&gUnknown_203B2F8->unk78) == 0) && (sub_8013114(&gUnknown_203B2F8->unk78,&menuAction), menuAction != 1)) { - gUnknown_203B2F8->menuAction1 = menuAction; - } - - switch(menuAction) - { - // Delete - case 2: - if ((gUnknown_203B2F8->unk9) && (((mail = &gUnknown_203B490->jobSlots[gUnknown_203B2F8->jobSlotIndex]), mail->mailType > MAIL_TYPE_SUSPENDED_JOB) && (gUnknown_203B2F8->dungeonID == mail->unk4.dungeon.id))) - { - sub_802D1A0(7); - } - else { - sub_802D1A0(0xE); - } - break; - // Info - case 5: - gUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; - sub_802D1A0(0xf); - break; - case 1: - sub_802D1A0(DRAW_JOB_LIST_1); - break; - } -} - -void sub_802D9F0(void) -{ - s32 menuAction; - - menuAction = 0; - sub_802C598(0); - sub_8012FD8(&gUnknown_203B2F8->unk78); - if (sub_8012FD8(&gUnknown_203B2F8->unkC8) == 0) { - sub_8013114(&gUnknown_203B2F8->unkC8,&menuAction); - } - - switch(menuAction) - { - // No - case 1: - case 4: - sub_802D1A0(DRAW_JOB_LIST_1); - break; - // Yes - case 3: - sub_802C688(); - ResetJobSlot(gUnknown_203B2F8->jobSlotIndex); - sub_8096C80(); - sub_802D1A0(RECEIVE_WONDER_MAIL); - break; - } -} - -void sub_802DA60(void) -{ - switch(sub_802DEE0()) - { - case 2: - case 3: - sub_802DF24(); - sub_802D1A0(gUnknown_203B2F8->fallbackState); - break; - case 0: - case 1: - break; - } -} - -void AdvancetoFallbackWonderMailRescueState(void) -{ - s32 temp; - if(sub_80144A4(&temp) == 0) - { - sub_802D1A0(gUnknown_203B2F8->fallbackState); - } -} - -bool8 sub_802DAA8(void) -{ - WonderMail *mail; - - mail = GetJobSlotInfo(gUnknown_203B2F8->jobSlotIndex); - if (!gUnknown_203B2F8->unk9) { - return TRUE; - } - else { - if ( (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU) && (gUnknown_203B2F8->dungeonID == mail->unk4.dungeon.id)) return FALSE; - return TRUE; - } -} - -bool8 sub_802DADC(void) -{ - u8 mailType; - WonderMail *mail; - s32 counter; - - if (!gUnknown_203B2F8->unk9) { -_0802DAE8: - return TRUE; - } - else { - for( mail = &gUnknown_203B490->jobSlots[0], counter = 0; counter < MAX_ACCEPTED_JOBS; mail++, counter++) - { - mailType = mail->mailType; - if (((mailType == 0) || (mailType == WONDER_MAIL_TYPE_THANK_YOU)) || - ((WONDER_MAIL_TYPE_THANK_YOU < mailType && (gUnknown_203B2F8->dungeonID != mail->unk4.dungeon.id)))) goto _0802DAE8; - } - return FALSE; - } -} - diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index 061c8abdc..a9253656c 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -5,22 +5,20 @@ #include "memory.h" #include "text1.h" #include "text2.h" -#include "wonder_mail.h" #include "pokemon.h" #include "pokemon_mid.h" #include "rescue_team_info.h" #include "friend_area.h" #include "items.h" #include "menu_input.h" -#include "code_802C39C.h" +#include "structs/str_802C39C.h" #include "code_80130A8.h" #include "code_80118A4.h" -#include "wonder_mail_3.h" #include "code_801B60C.h" #include "common_strings.h" #include "code_803B050.h" - -extern unkStruct_803B344 *sub_803B344(u8); +#include "wonder_mail_802CDD4.h" +#include "input.h" struct unkStruct_203B30C { @@ -104,12 +102,6 @@ extern void sub_802F1E8(void); extern void sub_802F004(); extern void sub_802F088(); extern void sub_802F108(void); -extern void sub_802CDD4(u32); -extern void sub_802CED8(u32); -extern void sub_802CFD0(void); -extern u8 sub_802CEBC(void); -extern u32 sub_802CE5C(u32); -extern void sub_802CF14(void); extern void sub_802F6FC(void); extern void ProceedToNextRewardSceneState(void); extern void sub_802F300(void); @@ -325,7 +317,7 @@ void sub_802F088(void) sub_802CDD4(0); break; case 1: - sub_802CED8(1); + sub_802CED8(TRUE); break; case 2: sub_802CFD0(); @@ -357,7 +349,7 @@ void sub_802F108(void) void sub_802F148(void) { - switch(sub_802CE5C(1)) + switch(sub_802CE5C(TRUE)) { case 0: case 1: @@ -378,7 +370,7 @@ void sub_802F184(void) s32 menuAction; menuAction = 0; - sub_802CE5C(0); + sub_802CE5C(FALSE); if (sub_8012FD8(&gUnknown_203B30C->unk60) == 0) { sub_8013114(&gUnknown_203B30C->unk60, &menuAction); diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 31dc0a24a..f0acccb29 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -2,13 +2,13 @@ #include "global.h" #include "text1.h" #include "text2.h" -#include "input.h" #include "memory.h" +#include "input.h" #include "items.h" #include "pokemon.h" #include "code_8094F88.h" #include "constants/wonder_mail.h" -#include "code_802C39C.h" +#include "structs/str_802C39C.h" #include "menu_input.h" #include "code_80118A4.h" #include "code_803B050.h" diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index 363e5b1c5..337c35bb8 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -8,7 +8,7 @@ #include "pokemon.h" #include "code_8094F88.h" #include "code_800D090.h" -#include "code_802C39C.h" +#include "structs/str_802C39C.h" #include "menu_input.h" #include "code_80118A4.h" diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index 58f430f35..b82d8e7af 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -1,4 +1,5 @@ #include "global.h" +#include "input.h" #include "memory.h" #include "text1.h" #include "text2.h" diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 9d3044d98..81b4534b6 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -3,6 +3,7 @@ #include "code_803B050.h" #include "code_80958E8_1.h" #include "constants/input.h" +#include "input.h" #include "memory.h" #include "menu_input.h" #include "text1.h" diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c new file mode 100644 index 000000000..3f3c9178a --- /dev/null +++ b/src/wonder_mail_802C4C8.c @@ -0,0 +1,222 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_803B050.h" +#include "code_80958E8_1.h" +#include "constants/input.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "structs/str_802C39C.h" +#include "structs/str_wonder_mail.h" +#include "text1.h" +#include "text2.h" +#include "wonder_mail_802C4C8.h" + +static EWRAM_DATA_2 struct unkStruct_203B2E8* gUnknown_203B2E8 = {0}; +static EWRAM_DATA_2 u16 gUnknown_203B2EC = {0}; + +#include "data/wonder_mail_802C4C8.h" + +static s32 CountAcceptedJobs(void); + +static void sub_802C6DC(void); + +bool8 sub_802C4C8(s32 a0, UnkTextStruct2_sub *a1, u32 a2) +{ + if (HasNoAcceptedJobs()) + return FALSE; + + gUnknown_203B2E8 = MemoryAlloc(sizeof(struct unkStruct_203B2E8), 8); + gUnknown_203B2E8->unk3C = a0; + gUnknown_203B2E8->unk40 = &gUnknown_203B2E8->unk44[a0]; + sub_8006518(gUnknown_203B2E8->unk44); + + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = sUnknown_80DFCFC; + gUnknown_203B2E8->unk40->unk14 = gUnknown_203B2E8->unkA4; + + if (a1 != NULL) + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C].unk8 = *a1; + + sub_8012D34(gUnknown_203B2E8->unk40, a2); + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44, TRUE, TRUE); + sub_8013848(&gUnknown_203B2E8->input, CountAcceptedJobs(), a2, a0); + gUnknown_203B2E8->input.menuIndex = gUnknown_203B2EC; + sub_8013984(&gUnknown_203B2E8->input); + sub_802C6DC(); + DrawJobListMenu(); + return TRUE; +} + +u32 sub_802C598(bool8 a0) +{ + if (!a0) { + sub_8013660(&gUnknown_203B2E8->input); + return 0; + } + + switch (GetKeyPress(&gUnknown_203B2E8->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + PlayMenuSoundEffect(0); + return 3; + case INPUT_START_BUTTON: + PlayMenuSoundEffect(4); + return 4; + } + + if (sub_80138B8(&gUnknown_203B2E8->input, 1)) { + sub_802C6DC(); + DrawJobListMenu(); + return 1; + } + return 0; +} + +u8 GetPelipperBoardSlotIndex(void) +{ + return gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C) + gUnknown_203B2E8->input.menuIndex]; +} + +void sub_802C640(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44, FALSE, FALSE); + gUnknown_203B2E8->input.unk22 = CountAcceptedJobs(); + sub_8013984(&gUnknown_203B2E8->input); + sub_802C6DC(); + DrawJobListMenu(); + + if (cursorSprite) + AddMenuCursorSprite(&gUnknown_203B2E8->input); +} + +void sub_802C688(void) +{ + if (gUnknown_203B2E8 != NULL) { + gUnknown_203B2EC = gUnknown_203B2E8->input.menuIndex; + gUnknown_203B2E8->unk44[gUnknown_203B2E8->unk3C] = sUnknown_80DFCE4; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B2E8->unk44, TRUE, TRUE); + MemoryFree(gUnknown_203B2E8); + gUnknown_203B2E8 = NULL; + } +} + +NAKED +static void sub_802C6DC(void) +{ + asm_unified("\tpush {r4,lr}\n" + "\tldr r4, _0802C74C\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x28]\n" + "\tadds r0, 0xA4\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x26]\n" + "\tadds r0, 0xA5\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA6\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0xA7\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x22\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0x18\n" + "\tbl sub_8009614\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x3C]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x52\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x3C]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x54\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x44\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0802C74C: .4byte gUnknown_203B2E8"); +} + +void DrawJobListMenu(void) +{ + WonderMail *mail; + s32 i; + s32 r4; + s32 x; + unkStruct_802C39C local; + + sub_8008C54(gUnknown_203B2E8->unk3C); + sub_80073B8(gUnknown_203B2E8->unk3C); + r4 = gUnknown_203B2E8->input.unk1E * 8; + x = r4; + x += 10; + xxx_call_draw_string(x, 0, sJobList, gUnknown_203B2E8->unk3C, 0); + + r4 += 4; + x = r4 + (gUnknown_203B2E8->unkA4[2] * 8); + sub_8012BC4(x, 0, gUnknown_203B2E8->input.unk1E + 1, 2, 7, gUnknown_203B2E8->unk3C); + + for (i = 0; i < gUnknown_203B2E8->input.unk1A; i++) { + mail = GetJobSlotInfo(gUnknown_203B2E8->pelipperBoardSlots[(gUnknown_203B2E8->input.unk1E * gUnknown_203B2E8->input.unk1C) + i]); + local.unk0[0] = gUnknown_203B2E8->unk3C; + local.y = sub_8013800(&gUnknown_203B2E8->input, i); + sub_803B35C(mail, &local); + CreateRescueTitle(&local); + } + + sub_80073E0(gUnknown_203B2E8->unk3C); +} + +static s32 CountAcceptedJobs(void) +{ + s32 i; + s32 sum = 0; + + for (i = 0; i < MAX_ACCEPTED_JOBS; i++) { + if (!IsJobSlotEmpty(i)) { + gUnknown_203B2E8->pelipperBoardSlots[sum] = i; + sum++; + } + } + + return sum; +} + +bool8 HasNoAcceptedJobs(void) +{ + s32 i; + + for (i = 0; i < MAX_ACCEPTED_JOBS; i++) { + if (!IsJobSlotEmpty(i)) + return FALSE; + } + + return TRUE; +} \ No newline at end of file diff --git a/src/wonder_mail_802C860.c b/src/wonder_mail_802C860.c new file mode 100644 index 000000000..95c69b0ae --- /dev/null +++ b/src/wonder_mail_802C860.c @@ -0,0 +1,310 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_803B050.h" +#include "code_802DE84.h" +#include "code_80958E8_1.h" +#include "code_8096AF8.h" +#include "code_80A26CC.h" +#include "common_strings.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "wonder_mail_802C4C8.h" +#include "wonder_mail_802C860.h" +#include "text1.h" +#include "text2.h" + +static EWRAM_DATA_2 struct unkStruct_203B2F0 *sUnknown_203B2F0 = {0}; + +#include "data/wonder_mail_802C860.h" + +static void SetJobListState(u32 newState); + +static void sub_802C928(void); +static void sub_802C9D8(void); +static void sub_802CAA4(void); +static void sub_802CBAC(void); +static void sub_802CC00(void); +static void sub_802CC70(void); +static void sub_802CD38(void); +static void sub_802CDB8(void); + +bool8 InitializeJobListMenu(u32 a0) +{ + if (HasNoAcceptedJobs()) + return FALSE; + + sUnknown_203B2F0 = MemoryAlloc(sizeof(struct unkStruct_203B2F0), 8); + sUnknown_203B2F0->menuAction = 0; + sUnknown_203B2F0->unk0 = a0; + SetJobListState(0); + return TRUE; +} + +u32 sub_802C898(void) +{ + switch (sUnknown_203B2F0->state) { + case 0: + case 1: + sub_802CC00(); + break; + case 2: + sub_802CC70(); + break; + case 3: + sub_802CD38(); + break; + case 4: + sub_802CDB8(); + break; + case 5: + default: + return 3; + } + return 0; +} + +void sub_802C8F4(void) +{ + if (sUnknown_203B2F0 != NULL) { + MemoryFree(sUnknown_203B2F0); + sUnknown_203B2F0 = NULL; + } +} + +static void SetJobListState(u32 newState) +{ + sUnknown_203B2F0->state = newState; + sub_802C928(); + sub_802C9D8(); +} + +static void sub_802C928(void) +{ + s32 i; + + sub_8006518(sUnknown_203B2F0->unk19C); + + switch (sUnknown_203B2F0->state) { + case 2: + sub_802CAA4(); + sUnknown_203B2F0->unk19C[2] = sUnknown_80DFD40; + sub_8012CAC(&sUnknown_203B2F0->unk19C[2], sUnknown_203B2F0->unk10C); + break; + case 3: + sUnknown_203B2F0->unk19C[3] = sUnknown_80DFD58; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B2F0->unk19C[i] = sUnknown_80DFD28; + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2F0->unk19C, TRUE, TRUE); +} + +static void sub_802C9D8(void) +{ + switch (sUnknown_203B2F0->state) { + case 0: + sub_802C4C8(0, NULL, 4); + break; + case 1: + sub_802C640(TRUE); + break; + case 2: + DrawJobListMenu(); + sub_8012D60(&sUnknown_203B2F0->unk6C, sUnknown_203B2F0->unk10C, 0, 0, sUnknown_203B2F0->menuAction, 2); + break; + case 3: + sub_802CBAC(); + DrawJobListMenu(); + sub_8012EA4(&sUnknown_203B2F0->unk6C, 0); + sub_8012D60(&sUnknown_203B2F0->unkBC, sUnknown_203B2F0->unk14C, 0, 0, 6, 3); + break; + case 4: + sub_803B35C(GetJobSlotInfo(sUnknown_203B2F0->unkC), &sUnknown_203B2F0->unk10); + sUnknown_203B2F0->unk10.unk0[0] = 3; + sub_802DE84(&sUnknown_203B2F0->unk10); + break; + case 5: + default: + break; + } +} + +static void sub_802CAA4(void) +{ + s32 loopMax; + WonderMail *mail; + s32 i; + + loopMax = 0; + mail = GetJobSlotInfo(sUnknown_203B2F0->unkC); + + if (sUnknown_203B2F0->unk0 == 0) { + switch (mail->mailType) { + case 5: + sUnknown_203B2F0->unk10C[loopMax].text = sTakeJob; + + if (sub_809693C(mail) || !sub_80A2824(mail->unk4.dungeon.id)) + sUnknown_203B2F0->unk10C[loopMax].menuAction = -1; + else + sUnknown_203B2F0->unk10C[loopMax].menuAction = 2; + + loopMax++; + break; + case 6: + sUnknown_203B2F0->unk10C[loopMax].text = sSuspend; + sUnknown_203B2F0->unk10C[loopMax].menuAction = 3; + loopMax++; + break; + } + } + + sUnknown_203B2F0->unk10C[loopMax].text = gCommonDelete[0]; + sUnknown_203B2F0->unk10C[loopMax].menuAction = 4; + + loopMax++; + sUnknown_203B2F0->unk10C[loopMax].text = gCommonInfo[0]; + sUnknown_203B2F0->unk10C[loopMax].menuAction = 7; + + loopMax++; + sUnknown_203B2F0->unk10C[loopMax].text = NULL; + sUnknown_203B2F0->unk10C[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (sUnknown_203B2F0->unk10C[i].menuAction != -1) { + if (sUnknown_203B2F0->unk10C[i].menuAction == sUnknown_203B2F0->menuAction) + return; + } + } + + sUnknown_203B2F0->menuAction = 7; +} + +static void sub_802CBAC(void) +{ + s32 loopMax; + + loopMax = 0; + sUnknown_203B2F0->unk14C[loopMax].text = gCommonYes[0]; + sUnknown_203B2F0->unk14C[loopMax].menuAction = 5; + + loopMax++; + sUnknown_203B2F0->unk14C[loopMax].text = gCommonNo[0]; + sUnknown_203B2F0->unk14C[loopMax].menuAction = 6; + + loopMax++; + sUnknown_203B2F0->unk14C[loopMax].text = NULL; + sUnknown_203B2F0->unk14C[loopMax].menuAction = 1; +} + +static void sub_802CC00(void) +{ + switch (sub_802C598(TRUE)) { + case 3: + sUnknown_203B2F0->unkC = GetPelipperBoardSlotIndex(); + SetJobListState(2); + break; + case 4: + sUnknown_203B2F0->unkC = GetPelipperBoardSlotIndex(); + SetJobListState(4); + break; + case 0: + case 1: + break; + case 2: + sub_802C688(); + SetJobListState(5); + break; + } +} + +static void sub_802CC70(void) +{ + s32 menuAction; + WonderMail *mail; + WonderMail *mail2; + + menuAction = 0; + + sub_802C598(FALSE); + + if (!sub_8012FD8(&sUnknown_203B2F0->unk6C)) { + sub_8013114(&sUnknown_203B2F0->unk6C, &menuAction); + + if (menuAction != 1) + sUnknown_203B2F0->menuAction = menuAction; + } + + switch (menuAction) { + case 2: + PlaySound(307); + mail = GetJobSlotInfo(sUnknown_203B2F0->unkC); + mail->mailType = MAIL_TYPE_TAKEN_JOB; + SetJobListState(1); + break; + case 3: + PlaySound(307); + mail2 = GetJobSlotInfo(sUnknown_203B2F0->unkC); + mail2->mailType = MAIL_TYPE_SUSPENDED_JOB; + SetJobListState(1); + break; + case 4: + SetJobListState(3); + break; + case 7: + SetJobListState(4); + break; + case 1: + SetJobListState(1); + break; + } +} + +static void sub_802CD38(void) +{ + s32 menuAction; + + menuAction = 0; + + sub_802C598(FALSE); + sub_8012FD8(&sUnknown_203B2F0->unk6C); + + if (!sub_8012FD8(&sUnknown_203B2F0->unkBC)) + sub_8013114(&sUnknown_203B2F0->unkBC, &menuAction); + + switch (menuAction) { + case 1: + case 6: + SetJobListState(1); + break; + case 5: + ResetJobSlot(sUnknown_203B2F0->unkC); + sub_8096C80(); + + if (HasNoAcceptedJobs()) { + sub_802C688(); + SetJobListState(5); + } + else + SetJobListState(1); + break; + } +} + +static void sub_802CDB8(void) +{ + switch (sub_802DEE0()) { + case 2: + case 3: + sub_802DF24(); + SetJobListState(1); + break; + case 0: + case 1: + break; + } +} \ No newline at end of file diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c new file mode 100644 index 000000000..b3bda2362 --- /dev/null +++ b/src/wonder_mail_802CDD4.c @@ -0,0 +1,180 @@ +#include "global.h" +#include "code_80118A4.h" +#include "code_803B050.h" +#include "constants/input.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "structs/str_802C39C.h" +#include "structs/str_wonder_mail.h" +#include "text1.h" +#include "text2.h" +#include "wonder_mail_802CDD4.h" + +static EWRAM_DATA_2 unkStruct_203B2F4 *sUnknown_203B2F4 = {0}; + +#include "data/wonder_mail_802CDD4.h" + +static void sub_802CF5C(void); + +bool8 sub_802CDD4(u32 a0) +{ + if (sUnknown_203B2F4 == NULL) + sUnknown_203B2F4 = MemoryAlloc(sizeof(unkStruct_203B2F4), 8); + + sUnknown_203B2F4->unk34 = a0; + sUnknown_203B2F4->unk38 = &sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34]; + sub_8006518(sUnknown_203B2F4->unk3C); + sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = sUnknown_80DFDA4; + sUnknown_203B2F4->unk38->unk14 = sUnknown_203B2F4->unk9C; + sub_8012D34(sUnknown_203B2F4->unk38, 4); + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); + sub_8013848(&sUnknown_203B2F4->input, 5, 4, a0); + sub_802CF5C(); + sub_802CFD0(); + return TRUE; +} + +u32 sub_802CE5C(bool8 a0) +{ + if (!a0) { + sub_8013660(&sUnknown_203B2F4->input); + return 0; + } + + switch (GetKeyPress(&sUnknown_203B2F4->input)) { + case INPUT_B_BUTTON: + PlayMenuSoundEffect(1); + return 2; + case INPUT_A_BUTTON: + return 3; + default: + if (sub_80138B8(&sUnknown_203B2F4->input, TRUE)) { + sub_802CF5C(); + sub_802CFD0(); + return 1; + } + return 0; + } +} + +u8 sub_802CEBC(void) +{ + return (sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C) + sUnknown_203B2F4->input.menuIndex; +} + +void sub_802CED8(bool8 cursorSprite) +{ + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2F4->unk3C, FALSE, FALSE); + sub_8013984(&sUnknown_203B2F4->input); + sub_802CF5C(); + sub_802CFD0(); + + if (cursorSprite) + AddMenuCursorSprite(&sUnknown_203B2F4->input); +} + +void sub_802CF14(void) +{ + if (sUnknown_203B2F4 != NULL) { + sUnknown_203B2F4->unk3C[sUnknown_203B2F4->unk34] = sUnknown_80DFD8C; + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2F4->unk3C, TRUE, TRUE); + MemoryFree(sUnknown_203B2F4); + sUnknown_203B2F4 = NULL; + } +} + +NAKED +static void sub_802CF5C(void) +{ + asm_unified( + "\tpush {r4,lr}\n" + "\tldr r4, _0802CFCC\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x20]\n" + "\tadds r0, 0x9C\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x1E]\n" + "\tadds r0, 0x9D\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9E\n" + "\tmovs r1, 0xC\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9F\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0x18\n" + "\tbl sub_8009614\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0802CFCC: .4byte sUnknown_203B2F4"); +} + +void sub_802CFD0(void) +{ + unkStruct_802C39C local; + unkStruct_803B344 *iVar1; + s32 r5; + s32 r4; + + sub_8008C54(sUnknown_203B2F4->unk34); + sub_80073B8(sUnknown_203B2F4->unk34); + + r5 = r4 = (sUnknown_203B2F4->input.unk1E * 8) + 10; + xxx_call_draw_string(r5, 0, sRescueEvent, sUnknown_203B2F4->unk34, 0); + + r4 -= 6; + r5 = r4 + (sUnknown_203B2F4->unk9C[2] * 8); + sub_8012BC4(r5, 0, sUnknown_203B2F4->input.unk1E + 1, 2, 7, sUnknown_203B2F4->unk34); + + for (r5 = 0; r5 < sUnknown_203B2F4->input.unk1A; r5++) { + iVar1 = sub_803B344((sUnknown_203B2F4->input.unk1E * sUnknown_203B2F4->input.unk1C) + r5); + + local.unk0[0] = sUnknown_203B2F4->unk34; + local.y = sub_8013800(&sUnknown_203B2F4->input, r5); + sub_803B35C(&iVar1->mail, &local); + + local.unk43 = 1; + local.unk4C = iVar1->unk14; + CreateRescueTitle(&local); + } + + sub_80073E0(sUnknown_203B2F4->unk34); +} \ No newline at end of file diff --git a/src/wonder_mail_802D098.c b/src/wonder_mail_802D098.c new file mode 100644 index 000000000..9c74965b0 --- /dev/null +++ b/src/wonder_mail_802D098.c @@ -0,0 +1,579 @@ +#include "global.h" +#include "code_80130A8.h" +#include "code_802DE84.h" +#include "code_803B050.h" +#include "code_80958E8_1.h" +#include "code_8096AF8.h" +#include "code_80972F4.h" +#include "code_8098BDC.h" +#include "common_strings.h" +#include "constants/dungeon.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "save.h" +#include "text1.h" +#include "text2.h" +#include "wonder_mail_802C4C8.h" +#include "wonder_mail_802D098.h" + +enum WonderMailRescueStates +{ + INITIAL_WONDER_MAIL_CHECK = 0, + // 1 + WONDER_MAIL_EXIT = 2, + DUPLICATE_WONDER_MAIL, + DUPLICATE_WONDER_MAIL_1, + // 5 - 7 + RECEIVE_WONDER_MAIL = 8, + // 9 + JOB_LIST_FULL = 10, + DRAW_JOB_LIST, + DRAW_JOB_LIST_1, + // 13 - 16 +}; + +static EWRAM_DATA_2 unkStruct_203B2F8 *sUnknown_203B2F8 = {0}; + +#include "data/wonder_mail_802D098.h" + +static void AdvancetoFallbackWonderMailRescueState(void); + +static void sub_802D1A0(u32 newState); +static void sub_802D1B8(void); +static void sub_802D2A8(void); +static void sub_802D5A4(void); +static void sub_802D63C(void); +static void sub_802D690(void); +static void sub_802D73C(void); +static void sub_802D7D0(void); +static void sub_802D82C(void); +static void sub_802D8CC(void); +static void sub_802D940(void); +static void sub_802D9F0(void); +static void sub_802DA60(void); +static bool8 sub_802DAA8(void); +static bool8 sub_802DADC(void); + +bool8 sub_802D098(unkSubStruct_203B2F8 *mail) +{ + sUnknown_203B2F8 = MemoryAlloc(sizeof(unkStruct_203B2F8), 8); + sUnknown_203B2F8->menuAction1 = 0; + sUnknown_203B2F8->menuAction2 = 0; + sUnknown_203B2F8->menuAction3 = 0; + sUnknown_203B2F8->mail = mail; + sUnknown_203B2F8->wonderMailAccepted = FALSE; + sUnknown_203B2F8->unk9 = sub_8099328(&sUnknown_203B2F8->dungeonID); + + if (sub_8011C1C() != 2) + sUnknown_203B2F8->unk9 = FALSE; + + sub_802D1A0(INITIAL_WONDER_MAIL_CHECK); + return TRUE; +} + +u32 sub_802D0E0(void) +{ + switch (sUnknown_203B2F8->state) { + case INITIAL_WONDER_MAIL_CHECK: + break; + case 1: + sub_802D7D0(); + break; + case DRAW_JOB_LIST: + case DRAW_JOB_LIST_1: + sub_802D8CC(); + break; + case 13: + sub_802D940(); + break; + case 14: + sub_802D9F0(); + break; + case 15: + case 16: + sub_802DA60(); + break; + case 9: + sub_802D82C(); + break; + case WONDER_MAIL_EXIT: + return 3; + default: + AdvancetoFallbackWonderMailRescueState(); + break; + } + return 0; +} + +bool8 GetWonderMailAccepted(void) +{ + return sUnknown_203B2F8->wonderMailAccepted; +} + +void sub_802D184(void) +{ + if (sUnknown_203B2F8 != NULL) { + MemoryFree(sUnknown_203B2F8); + sUnknown_203B2F8 = NULL; + } +} + +static void sub_802D1A0(u32 newState) +{ + sUnknown_203B2F8->state = newState; + sub_802D1B8(); + sub_802D2A8(); +} + +static void sub_802D1B8(void) +{ + s32 i; + + sub_8006518(sUnknown_203B2F8->unk1A8); + + switch (sUnknown_203B2F8->state) { + case 13: + sub_802D5A4(); + sUnknown_203B2F8->unk1A8[2] = sUnknown_80DFE04; + sub_8012CAC(&sUnknown_203B2F8->unk1A8[2], sUnknown_203B2F8->unk118); + sUnknown_203B2F8->unk1A8[2].unkC = 6; + break; + case 14: + sub_802D63C(); + sUnknown_203B2F8->unk1A8[3] = sUnknown_80DFE1C; + sub_8012CAC(&sUnknown_203B2F8->unk1A8[3], sUnknown_203B2F8->unk158); + sUnknown_203B2F8->unk1A8[3].unkC = 6; + break; + default: + for (i = 0; i < 4; i++) + sUnknown_203B2F8->unk1A8[i] = sUnknown_80DFDD4; + break; + case WONDER_MAIL_EXIT: + break; + } + + ResetUnusedInputStruct(); + sub_800641C(sUnknown_203B2F8->unk1A8, TRUE, TRUE); +} + +static void sub_802D2A8(void) +{ + switch (sUnknown_203B2F8->state) { + case INITIAL_WONDER_MAIL_CHECK: + if (IsMailinJobSlot(&sUnknown_203B2F8->mail->wonderMail)) + sub_802D1A0(DUPLICATE_WONDER_MAIL); + else if (sub_8096F50(&sUnknown_203B2F8->mail->wonderMail)) + sub_802D1A0(DUPLICATE_WONDER_MAIL_1); + else if (sUnknown_203B2F8->mail->wonderMail.unk2 == 4 && sub_8096C08(&sUnknown_203B2F8->jobSlotIndex)) { + if (sub_802DAA8()) + sub_802D1A0(9); + else + sub_802D1A0(5); + } + else if (GetNumAcceptedJobs() >= MAX_ACCEPTED_JOBS) { + if (sub_802DADC()) + sub_802D1A0(JOB_LIST_FULL); + else + sub_802D1A0(6); + } + else + sub_802D1A0(RECEIVE_WONDER_MAIL); + break; + case 1: + sub_802D73C(); + sub_8014248(sReplaceOldMailPrompt, 0, sUnknown_203B2F8->menuAction2, sUnknown_203B2F8->unk158, 0, 4, 0, NULL, 0); + break; + case DUPLICATE_WONDER_MAIL: + sUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; + sub_80141B4(sMailAlreadyReceived, 0, NULL, 0x101); + break; + case DUPLICATE_WONDER_MAIL_1: + sUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; + sub_80141B4(sMailAlreadyReceivedMayNotReceiveAgain, 0, NULL, 0x101); + break; + case 5: + sUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; + sub_80141B4(sOnlyOneMailCanBeHeldPleaseCompleteFirst, 0, NULL, 0x101); + break; + case 6: + sUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; + sub_80141B4(sTeamQuicksavedCompleteFirst, 0, NULL, 0x101); + break; + case 7: + sUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; + sub_80141B4(sTeamQuicksavedCannotDelete, 0, NULL, 0x101); + break; + case RECEIVE_WONDER_MAIL: + sUnknown_203B2F8->wonderMailAccepted = TRUE; + AcceptJob(&sUnknown_203B2F8->mail->wonderMail); + sub_8096C80(); + sub_8096D24(); + + if (sUnknown_203B2F8->mail->wonderMail.unk2 == 4) { + MemoryCopy8(sub_8096DD8(), sUnknown_203B2F8->mail->unk14, 40); + MemoryCopy8(sub_8096DE8(), sUnknown_203B2F8->mail->unk18, 120); + } + + switch (sUnknown_203B2F8->mail->wonderMail.unk4.dungeon.id) { + case DUNGEON_ODDITY_CAVE: + sub_8097418(DUNGEON_ODDITY_CAVE - 1, 1); + break; + case DUNGEON_REMAINS_ISLAND: + sub_8097418(DUNGEON_REMAINS_ISLAND - 1, 1); + break; + case DUNGEON_MARVELOUS_SEA: + sub_8097418(DUNGEON_MARVELOUS_SEA - 1, 1); + break; + case DUNGEON_FANTASY_STRAIT: + sub_8097418(DUNGEON_FANTASY_STRAIT - 1, 1); + break; + } + + sUnknown_203B2F8->fallbackState = WONDER_MAIL_EXIT; + sub_80141B4(sReceivedWonderMail, 0, NULL, 0x101); + break; + case 9: + sub_802D690(); + sub_8014248(sOnlyOneMailCanBeHeldSoReplacePrompt,0,sUnknown_203B2F8->menuAction3,sUnknown_203B2F8->unk158,0,4,0,0,0); + break; + case JOB_LIST_FULL: + sUnknown_203B2F8->fallbackState = DRAW_JOB_LIST; + sub_80141B4(sJobListFullPleaseDelete, 0, NULL, 0x101); + break; + case DRAW_JOB_LIST: + sub_802C4C8(0, NULL, 4); + break; + case DRAW_JOB_LIST_1: + sub_802C640(TRUE); + break; + case 0xd: + DrawJobListMenu(); + sub_8012D60(&sUnknown_203B2F8->unk78, sUnknown_203B2F8->unk118, NULL, sUnknown_203B2F8->unk198, sUnknown_203B2F8->menuAction1, 2); + break; + case 0xe: + DrawJobListMenu(); + sub_8012EA4(&sUnknown_203B2F8->unk78, 0); + sub_8012D60(&sUnknown_203B2F8->unkC8, sUnknown_203B2F8->unk158, NULL, NULL, 4, 3); + break; + case 0xf: + sub_803B35C(GetJobSlotInfo(sUnknown_203B2F8->jobSlotIndex), &sUnknown_203B2F8->unk14); + sUnknown_203B2F8->unk14.unk0[0] = 3; + sub_802DE84(&sUnknown_203B2F8->unk14); + break; + case 0x10: + sub_803B35C(&sUnknown_203B2F8->mail->wonderMail, &sUnknown_203B2F8->unk14); + sUnknown_203B2F8->unk14.unk0[0] = 3; + sUnknown_203B2F8->unk14.mailStatus = MAIL_STATUS_SUSPENDED; + sUnknown_203B2F8->unk14.unk50 = sUnknown_203B2F8->mail->unk18; + sub_802DE84(&sUnknown_203B2F8->unk14); + break; + } +} + +static void sub_802D5A4(void) +{ + s32 loopMax; + s32 i; + + loopMax = 0; + MemoryFill16(sUnknown_203B2F8->unk198, 0, sizeof(sUnknown_203B2F8->unk198)); + sUnknown_203B2F8->unk118[loopMax].text = gCommonDelete[0]; + sUnknown_203B2F8->unk118[loopMax].menuAction = 2; + + loopMax++; + sUnknown_203B2F8->unk118[loopMax].text = gCommonInfo[0]; + sUnknown_203B2F8->unk118[loopMax].menuAction = 5; + + loopMax++; + sUnknown_203B2F8->unk118[loopMax].text = NULL; + sUnknown_203B2F8->unk118[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (sUnknown_203B2F8->unk198[i] == 0) { + if (sUnknown_203B2F8->unk118[i].menuAction == sUnknown_203B2F8->menuAction1) + return; + } + } + + sUnknown_203B2F8->menuAction1 = 2; +} + +static void sub_802D63C(void) +{ + s32 loopMax; + + loopMax = 0; + sUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 3; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 4; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = NULL; + sUnknown_203B2F8->unk158[loopMax].menuAction = 1; +} + +static void sub_802D690(void) +{ + s32 loopMax; + s32 i; + + loopMax = 0; + sUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 3; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 4; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = sNewMail; + sUnknown_203B2F8->unk158[loopMax].menuAction = 6; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = sOldMail; + sUnknown_203B2F8->unk158[loopMax].menuAction = 7; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = NULL; + sUnknown_203B2F8->unk158[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (sUnknown_203B2F8->unk158[i].menuAction == sUnknown_203B2F8->menuAction3) + return; + } + + sUnknown_203B2F8->menuAction3 = 4; +} + +static void sub_802D73C(void) +{ + s32 loopMax; + s32 i; + + loopMax = 0; + sUnknown_203B2F8->unk158[loopMax].text = gCommonYes[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 3; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = gCommonNo[0]; + sUnknown_203B2F8->unk158[loopMax].menuAction = 4; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = sNewMail; + sUnknown_203B2F8->unk158[loopMax].menuAction = 6; + + loopMax++; + sUnknown_203B2F8->unk158[loopMax].text = NULL; + sUnknown_203B2F8->unk158[loopMax].menuAction = 1; + + for (i = 0; i < loopMax; i++) { + if (sUnknown_203B2F8->unk158[i].menuAction == sUnknown_203B2F8->menuAction2) + return; + } + + sUnknown_203B2F8->menuAction2 = 4; +} + +static void sub_802D7D0(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction)) + return; + + if (menuAction != 1) + sUnknown_203B2F8->menuAction2 = menuAction; + + switch (menuAction) { + case 3: // Yes + sub_802D1A0(WONDER_MAIL_EXIT); + break; + case 6: // New Mail + sUnknown_203B2F8->fallbackState = 1; + sub_802D1A0(0x10); + break; + case 4: // No + case 2: + default: + sub_802D1A0(INITIAL_WONDER_MAIL_CHECK); + break; + } +} + +static void sub_802D82C(void) +{ + s32 menuAction; + + if (sub_80144A4(&menuAction)) + return; + + if (menuAction != 1) + sUnknown_203B2F8->menuAction3 = menuAction; + + switch (menuAction) { + case 3: // Yes + ResetJobSlot(sUnknown_203B2F8->jobSlotIndex); + sub_8096C80(); + sub_802D1A0(RECEIVE_WONDER_MAIL); + break; + case 6: // New Mail + sUnknown_203B2F8->fallbackState = 9; + sub_802D1A0(16); + break; + case 7: // Old Mail + sUnknown_203B2F8->fallbackState = 9; + sub_802D1A0(15); + break; + default: // No + case 1: + case 2: + case 4: + sub_802D1A0(1); + break; + } +} + +static void sub_802D8CC(void) +{ + switch (sub_802C598(TRUE)) { + case 0: + case 1: + break; + case 3: + sUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex(); + sub_802D1A0(13); + break; + case 4: + sUnknown_203B2F8->jobSlotIndex = GetPelipperBoardSlotIndex(); + sUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; + sub_802D1A0(15); + break; + case 2: + sub_802C688(); + sub_802D1A0(1); + break; + } +} + +static void sub_802D940(void) +{ + WonderMail *mail; + s32 menuAction; + + menuAction = 0; + sub_802C598(FALSE); + + if (!sub_8012FD8(&sUnknown_203B2F8->unk78)) { + sub_8013114(&sUnknown_203B2F8->unk78, &menuAction); + if (menuAction != 1) + sUnknown_203B2F8->menuAction1 = menuAction; + } + + switch (menuAction) { + case 2: // Delete + if (sUnknown_203B2F8->unk9) { + mail = &gUnknown_203B490->jobSlots[sUnknown_203B2F8->jobSlotIndex]; + if (mail->mailType > MAIL_TYPE_SUSPENDED_JOB && sUnknown_203B2F8->dungeonID == mail->unk4.dungeon.id) { + sub_802D1A0(7); + break; + } + } + + sub_802D1A0(14); + break; + case 5: // Info + sUnknown_203B2F8->fallbackState = DRAW_JOB_LIST_1; + sub_802D1A0(15); + break; + case 1: + sub_802D1A0(DRAW_JOB_LIST_1); + break; + } +} + +static void sub_802D9F0(void) +{ + s32 menuAction; + + menuAction = 0; + sub_802C598(FALSE); + sub_8012FD8(&sUnknown_203B2F8->unk78); + if (!sub_8012FD8(&sUnknown_203B2F8->unkC8)) + sub_8013114(&sUnknown_203B2F8->unkC8, &menuAction); + + switch (menuAction) { + case 1: // No + case 4: + sub_802D1A0(DRAW_JOB_LIST_1); + break; + + case 3: // Yes + sub_802C688(); + ResetJobSlot(sUnknown_203B2F8->jobSlotIndex); + sub_8096C80(); + sub_802D1A0(RECEIVE_WONDER_MAIL); + break; + } +} + +static void sub_802DA60(void) +{ + switch (sub_802DEE0()) { + case 2: + case 3: + sub_802DF24(); + sub_802D1A0(sUnknown_203B2F8->fallbackState); + break; + case 0: + case 1: + break; + } +} + +static void AdvancetoFallbackWonderMailRescueState(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sub_802D1A0(sUnknown_203B2F8->fallbackState); +} + +static bool8 sub_802DAA8(void) +{ + WonderMail *mail; + + mail = GetJobSlotInfo(sUnknown_203B2F8->jobSlotIndex); + + if (!sUnknown_203B2F8->unk9) + return TRUE; + + if (mail->mailType != WONDER_MAIL_TYPE_THANK_YOU && sUnknown_203B2F8->dungeonID == mail->unk4.dungeon.id) + return FALSE; + return TRUE; +} + +static bool8 sub_802DADC(void) +{ + u8 mailType; + WonderMail *mail; + s32 i; + + if (!sUnknown_203B2F8->unk9) + return TRUE; + + for (mail = &gUnknown_203B490->jobSlots[0], i = 0; i < MAX_ACCEPTED_JOBS; mail++, i++) { + mailType = mail->mailType; + if (mailType == 0) + return TRUE; + if (mailType == WONDER_MAIL_TYPE_THANK_YOU) + return TRUE; + if (WONDER_MAIL_TYPE_THANK_YOU < mailType && sUnknown_203B2F8->dungeonID != mail->unk4.dungeon.id) + return TRUE; + } + + return FALSE; +} \ No newline at end of file diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 0423c188c..14bee125e 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -2,6 +2,7 @@ #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" +#include "code_803B050.h" #include "code_801C8C4.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" @@ -10,11 +11,11 @@ #include "input.h" #include "memory.h" #include "other_menus2.h" +#include "save.h" #include "save_write.h" #include "text1.h" #include "text2.h" -#include "wonder_mail.h" -#include "wonder_mail_3.h" +#include "wonder_mail_802D098.h" #include "wonder_mail_main_menu.h" #define SELECT_WONDER_MAIL_MODE_MAIN_SCREEN 0 @@ -116,7 +117,6 @@ struct unkStruct_203B3E8 EWRAM_DATA_2 struct unkStruct_203B3E8 *gUnknown_203B3E8 = {0}; -extern u32 sub_8011C1C(void); extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_803084C(void); @@ -125,17 +125,8 @@ extern void sub_8031E10(void); extern u8 sub_800D588(void); extern void sub_802EF48(void); - -extern unkStruct_803B344 *sub_803B344(u8); - - - extern s32 sub_8037B28(u32); -extern u32 sub_802D0E0(); -extern bool8 GetWonderMailAccepted(); -extern void sub_802D184(); - extern bool8 DecodeWonderMailPassword(u8 *, WonderMail *); extern bool8 IsValidWonderMail(WonderMail *WonderMailData); diff --git a/sym_ewram2.txt b/sym_ewram2.txt index abf9b877b..282ed6a73 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -186,17 +186,10 @@ gUnknown_203B2AA: /* 203B2AA (sub_8023868 - sub_8023C60) */ .include "src/pokemon_news2.o" .include "src/pokemon_news3.o" .include "src/wonder_mail_802C10C.o" -.include "src/wonder_mail_2_1.o" - .space 0x2 - -gUnknown_203B2F0: /* 203B2F0 (InitializeJobListMenu - sub_802CD38) */ - .space 0x4 - -.include "src/wonder_mail_3.o" - -gUnknown_203B2F8: /* 203B2F8 (sub_802D098 - sub_802DADC) */ - .space 0x4 - +.include "src/wonder_mail_802C4C8.o" +.include "src/wonder_mail_802C860.o" +.include "src/wonder_mail_802CDD4.o" +.include "src/wonder_mail_802D098.o" .include "src/code_802DB28.o" .include "src/code_802DE84.o" .include "src/mailbox.o" From 4bf6afa1440117e65ed0232ca41a75ed8912b516 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 29 Sep 2023 23:56:15 -0400 Subject: [PATCH 02/10] Data for adventure_log --- charmap.txt | 1 + data/friend_rescue.s | 3 +- include/adventure_log.h | 4 +- include/structs/str_802C39C.h | 6 +- src/adventure_log.c | 170 +++++++++++++++------------------- src/adventure_log_menu.c | 2 +- src/code_8031D70.c | 1 - src/data/adventure_log.h | 24 +++++ 8 files changed, 107 insertions(+), 104 deletions(-) create mode 100644 src/data/adventure_log.h diff --git a/charmap.txt b/charmap.txt index f82649885..1a0f11334 100644 --- a/charmap.txt +++ b/charmap.txt @@ -266,6 +266,7 @@ APOSTROPHE = 7E 32 37 @ ~27 COMMA = 7E 32 63 @ ~2c QUOTE_START = 7E 39 33 @ ~93 QUOTE_END = 7E 39 34 @ ~94 +UNK_95 = 7E 39 35 @ ~95 - Seems to be a special (?) symbol @ Placeholders for message arguments to swap out for names within strings. ARG_VALUE_0 = 24 64 30 @ $d0 diff --git a/data/friend_rescue.s b/data/friend_rescue.s index d42b65fb0..4b6ed2227 100644 --- a/data/friend_rescue.s +++ b/data/friend_rescue.s @@ -1,6 +1,7 @@ .section .rodata -@ friend_rescue.c + .align 2,0 + .string "pksdir0\0" .global gUnknown_80E2068 gUnknown_80E2068: @ 80E2068 diff --git a/include/adventure_log.h b/include/adventure_log.h index 74b0eae9d..f1c33815a 100644 --- a/include/adventure_log.h +++ b/include/adventure_log.h @@ -7,7 +7,7 @@ // size: 0xA0 typedef struct AdventureLog { - MenuInputStruct input; + /* 0x0 */ MenuInputStruct input; u32 unk34; UnkTextStruct2 *unk38; UnkTextStruct2 unk3C[4]; @@ -16,6 +16,6 @@ typedef struct AdventureLog void CleanAdventureLogScreen(void); bool8 CreateAdventureLogScreen(u32 kind); -u32 HandleAdventureLogInput(u8); +u32 HandleAdventureLogInput(bool8); #endif // GUARD_ADVENTURE_LOG_H \ No newline at end of file diff --git a/include/structs/str_802C39C.h b/include/structs/str_802C39C.h index c1c7f7a9b..c52f61d3d 100644 --- a/include/structs/str_802C39C.h +++ b/include/structs/str_802C39C.h @@ -1,5 +1,5 @@ -#ifndef GUARD_CODE_STR_802C39C_H -#define GUARD_CODE_STR_802C39C_H +#ifndef GUARD_STR_802C39C_H +#define GUARD_STR_802C39C_H #include "structs/str_wonder_mail.h" @@ -29,4 +29,4 @@ typedef struct unkStruct_802C39C /* 0x54 */ WonderMail *mail; } unkStruct_802C39C; -#endif // GUARD_CODE_STR_802C39C_H \ No newline at end of file +#endif // GUARD_STR_802C39C_H \ No newline at end of file diff --git a/src/adventure_log.c b/src/adventure_log.c index ae9fe8aec..5cc46126b 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -10,33 +10,14 @@ #include "text1.h" #include "text2.h" -static EWRAM_DATA_2 AdventureLog *sAdventureLog = {0}; - -static const UnkTextStruct2 sUnknown_80E1FF0 = { - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; -static const UnkTextStruct2 sUnknown_80E2008 = { - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x1A, 0x04, - 0x06, 0x00, - NULL -}; - -static const u8 sAdventureLogHeaderText[] = "Adventure Log"; -static const u8 sAdventureLogTextPlaceholder[] = "~95~95~95~95~95~95~95~95~95~95~95~95~95~95~95 "; // string of ??????? -static const u8 sFill1[] = "pksdir0"; - -// ??? extern u32 gUnknown_202DE30; +static EWRAM_DATA_2 AdventureLog *sAdventureLog = {0}; + +#include "data/adventure_log.h" + static void DisplayAdventureLog(); + static void sub_8032084(); bool8 CreateAdventureLogScreen(u32 kind) @@ -56,9 +37,9 @@ bool8 CreateAdventureLogScreen(u32 kind) return TRUE; } -u32 HandleAdventureLogInput(u8 param_1) +u32 HandleAdventureLogInput(bool8 a0) { - if (param_1 == 0) { + if (!a0) { sub_8013660(&sAdventureLog->input); return 0; } @@ -114,66 +95,66 @@ static void sub_8032084(void) NAKED static void sub_8032084(void) { - asm_unified("\tpush {r4,lr}\n" - "\tldr r4, _080320F4\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x20]\n" - "\tadds r0, 0x9C\n" - "\tmovs r2, 0\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tldrh r1, [r0, 0x1E]\n" - "\tadds r0, 0x9D\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9E\n" - "\tmovs r1, 0xB\n" - "\tstrb r1, [r0]\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x9F\n" - "\tstrb r2, [r0]\n" - "\tldr r0, [r4]\n" - "\tmovs r1, 0x1A\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r4]\n" - "\tldr r3, [r2, 0x34]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x4A\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x34]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x4C\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r4]\n" - "\tadds r0, 0x3C\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tpop {r4}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" + asm_unified("\tpush {r4,lr}\n" + "\tldr r4, _080320F4\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x20]\n" + "\tadds r0, 0x9C\n" + "\tmovs r2, 0\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tldrh r1, [r0, 0x1E]\n" + "\tadds r0, 0x9D\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9E\n" + "\tmovs r1, 0xB\n" + "\tstrb r1, [r0]\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x9F\n" + "\tstrb r2, [r0]\n" + "\tldr r0, [r4]\n" + "\tmovs r1, 0x1A\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r4]\n" + "\tldr r3, [r2, 0x34]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x4A\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x34]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x4C\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r4]\n" + "\tadds r0, 0x3C\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tpop {r4}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" "_080320F4: .4byte sAdventureLog"); } #endif static void DisplayAdventureLog(void) { - s32 counter; + s32 i; s32 r4; // r4 s32 r6; // r6 u8 temp; @@ -184,56 +165,53 @@ static void DisplayAdventureLog(void) r4 = sAdventureLog->input.unk1E * 8; r6 = r4; r6 += 10; - // Draw Header - xxx_call_draw_string(r6, 0, sAdventureLogHeaderText, sAdventureLog->unk34, 0); + xxx_call_draw_string(r6, 0, sAdventureLogText, sAdventureLog->unk34, 0); + r4 += 4; - r6 = r4 + sAdventureLog->unk9C[2] * 8; - // Draw Page # + r6 = r4 + (sAdventureLog->unk9C[2] * 8); sub_8012BC4(r6, 0, sAdventureLog->input.unk1E + 1, 1, 7, sAdventureLog->unk34); - for (counter = 0; counter < sAdventureLog->input.unk1A; counter++) { - temp = sAdventureLog->input.unk1E * sAdventureLog->input.unk1C + counter; + for (i = 0; i < sAdventureLog->input.unk1A; i++) { + temp = (sAdventureLog->input.unk1E * sAdventureLog->input.unk1C) + i; if (sub_8097710(temp)) { switch (temp) { case 12: v1 = sub_80978B8(); gUnknown_202DE30 = (s16)v1; - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; case 7: v2 = sub_8097880(); gUnknown_202DE30 = (s16)v2; - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; case 11: v3 = sub_8097838(); gUnknown_202DE30 = (s16)v3; - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; case 8: v4 = sub_80977B8(); gUnknown_202DE30 = v4; - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; case 9: v5 = sub_80977F8(); gUnknown_202DE30 = v5; - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; case 10: v6 = sub_8097870(); gUnknown_202DE30 = (s16)v6; // fallthrough default: - xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, counter), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); + xxx_format_and_draw(8, sub_8013800(&sAdventureLog->input, i), GetAdventureLogLine(temp), sAdventureLog->unk34, 0); break; } } - else { - // Draw the ?????????? across the row - xxx_call_draw_string(8, sub_8013800(&sAdventureLog->input, counter), sAdventureLogTextPlaceholder, sAdventureLog->unk34, 0); - } + else + xxx_call_draw_string(8, sub_8013800(&sAdventureLog->input, i), sPlaceholder, sAdventureLog->unk34, 0); } sub_80073E0(sAdventureLog->unk34); diff --git a/src/adventure_log_menu.c b/src/adventure_log_menu.c index 523c9da43..dc103b024 100644 --- a/src/adventure_log_menu.c +++ b/src/adventure_log_menu.c @@ -21,7 +21,7 @@ u32 UpdateAdventureLogMenu(void) u32 nextMenu; nextMenu = MENU_NO_SCREEN_CHANGE; - switch (HandleAdventureLogInput(1)) { + switch (HandleAdventureLogInput(TRUE)) { case 0: case 1: break; diff --git a/src/code_8031D70.c b/src/code_8031D70.c index 918172eb1..de4544ff9 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -46,7 +46,6 @@ const UnkTextStruct2 gUnknown_80E1FC4 = { }; ALIGNED(4) const u8 gUnknown_80E1FDC[] = "Password"; -ALIGNED(4) static const u8 fill0[] = "pksdir0"; extern void sub_803D2C0(u8 *, unkStruct_203B480 *); diff --git a/src/data/adventure_log.h b/src/data/adventure_log.h new file mode 100644 index 000000000..036970198 --- /dev/null +++ b/src/data/adventure_log.h @@ -0,0 +1,24 @@ +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); + +static const UnkTextStruct2 sUnknown_80E1FF0 = +{ + 0, 0, 0, 0, + 3, + 0, 0, + 0, 0, + 0, 0, + NULL +}; + +static const UnkTextStruct2 sUnknown_80E2008 = +{ + 0, 0, 0, 0, + 6, + 2, 2, + 26, 4, + 6, 0, + NULL +}; + +ALIGNED(4) static const u8 sAdventureLogText[] = _("Adventure Log"); +ALIGNED(4) static const u8 sPlaceholder[] = _("{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95}{UNK_95} "); \ No newline at end of file From 67c58e6dcad938d8c4042bccc8c06edaf3a2078d Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Sat, 30 Sep 2023 01:00:35 -0400 Subject: [PATCH 03/10] Use globaldata.h to clean "pksdir0" in source --- data/data_8106A4C.s | 40 ++++++++--- include/globaldata.h | 8 +++ ld_script.txt | 1 + src/adventure_log.c | 1 + src/charge_move.c | 2 - src/code_801602C.c | 1 + src/code_801AFA4.c | 1 + src/code_801B3C0.c | 1 + src/code_801B60C.c | 1 + src/code_801BEEC.c | 1 + src/code_801C244.c | 1 + src/code_801C620.c | 1 + src/code_801C8C4.c | 1 + src/code_801D014.c | 1 + src/code_801D9E4.c | 1 + src/code_80227B8.c | 1 + src/code_8023144.c | 1 + src/code_8023868.c | 1 + src/code_8024458.c | 1 + src/code_802DB28.c | 1 + src/code_802DE84.c | 1 + src/code_8031D70.c | 1 + src/code_803C1B4.c | 1 + src/code_803D0D8.c | 1 + src/common_strings.c | 3 +- src/credits2.c | 1 + src/data/adventure_log.h | 2 - src/data/code_801602C.h | 2 - src/data/code_801AFA4.h | 4 +- src/data/code_801B3C0.h | 2 - src/data/code_801B60C.h | 15 ++++- src/data/code_801BEEC.h | 3 +- src/data/code_801C244.h | 3 +- src/data/code_801C620.h | 2 - src/data/code_801C8C4.h | 3 +- src/data/code_801D014.h | 2 - src/data/code_801D9E4.h | 3 +- src/data/code_80227B8.h | 2 - src/data/code_8023144.h | 3 +- src/data/code_8023868.h | 2 - src/data/code_8024458.h | 2 - src/data/code_802DB28.h | 2 - src/data/code_802DE84.h | 2 - src/data/code_803D0D8.h | 74 ++++++++++----------- src/data/credits2.h | 2 - src/data/debug_menu2.h | 4 +- src/data/debug_menu3.h | 3 +- src/data/debug_menu4.h | 4 +- src/data/decompress.h | 3 - src/data/felicity_bank.h | 2 - src/data/friend_area_action_menu.h | 3 +- src/data/friend_list_menu.h | 3 +- src/data/gulpin_shop.h | 2 - src/data/gulpin_shop_801FB50.h | 2 - src/data/hints_menu1.h | 2 - src/data/hints_menu2.h | 2 - src/data/kangaskhan_storage1.h | 2 - src/data/kangaskhan_storage2.h | 2 - src/data/kecleon_bros1.h | 2 - src/data/kecleon_bros2.h | 2 - src/data/kecleon_bros3.h | 2 - src/data/kecleon_bros4.h | 2 - src/data/luminous_cave.h | 7 +- src/data/main_menu1.h | 2 - src/data/main_menu2.h | 2 - src/data/makuhita_dojo1.h | 4 +- src/data/makuhita_dojo2.h | 3 +- src/data/options_menu1.h | 2 - src/data/options_menu2.h | 2 - src/data/other_menus1.h | 2 - src/data/other_menus2.h | 11 ++-- src/data/party_list_menu.h | 3 +- src/data/pokemon_mail.h | 4 +- src/data/pokemon_news1.h | 2 - src/data/pokemon_news2.h | 2 - src/data/pokemon_news3.h | 2 - src/data/post_office_guide1.h | 4 +- src/data/post_office_guide2.h | 3 +- src/data/quick_save_read.h | 2 - src/data/quick_save_write.h | 12 ++-- src/data/save_read.h | 2 - src/data/save_write.h | 2 - src/data/thank_you_wonder_mail.h | 4 +- src/data/trade_items_menu.h | 2 - src/data/wigglytuff_shop1.h | 2 - src/data/wigglytuff_shop2.h | 2 - src/data/wigglytuff_shop3.h | 2 - src/data/wonder_mail_1.h | 102 ++++++++++++++++++++++++++++- src/data/wonder_mail_802C10C.h | 2 - src/data/wonder_mail_802C4C8.h | 2 - src/data/wonder_mail_802C860.h | 2 - src/data/wonder_mail_802CDD4.h | 2 - src/data/wonder_mail_802D098.h | 2 - src/data/wonder_mail_main_menu.h | 52 +++++++++++++++ src/debug_menu2.c | 1 + src/debug_menu3.c | 1 + src/debug_menu4.c | 1 + src/decompress.c | 1 + src/felicity_bank.c | 1 + src/friend_area_action_menu.c | 1 + src/friend_list_menu.c | 1 + src/gulpin_shop.c | 1 + src/gulpin_shop_801FB50.c | 1 + src/hints_menu1.c | 1 + src/hints_menu2.c | 1 + src/kangaskhan_storage1.c | 1 + src/kangaskhan_storage2.c | 1 + src/kecleon_bros1.c | 1 + src/kecleon_bros2.c | 1 + src/kecleon_bros3.c | 1 + src/kecleon_bros4.c | 1 + src/load_screen.c | 7 +- src/luminous_cave.c | 1 + src/mailbox.c | 4 +- src/main_menu1.c | 1 + src/main_menu2.c | 1 + src/makuhita_dojo1.c | 1 + src/makuhita_dojo2.c | 1 + src/menu_input.c | 2 +- src/options_menu1.c | 1 + src/options_menu2.c | 1 + src/other_menus1.c | 1 + src/other_menus2.c | 1 + src/party_list_menu.c | 1 + src/pelipper_board.c | 2 +- src/personality_test.c | 21 +++++- src/pokemon_news1.c | 1 + src/pokemon_news2.c | 1 + src/pokemon_news3.c | 1 + src/post_office_guide1.c | 1 + src/post_office_guide2.c | 1 + src/quick_save_read.c | 1 + src/quick_save_write.c | 13 ++-- src/rescue_password_menu.c | 3 +- src/save_menu.c | 2 - src/save_read.c | 1 + src/save_write.c | 1 + src/thank_you_wonder_mail.c | 1 + src/trade_items_menu.c | 1 + src/wigglytuff_shop1.c | 1 + src/wigglytuff_shop2.c | 1 + src/wigglytuff_shop3.c | 1 + src/wonder_mail.c | 97 +-------------------------- src/wonder_mail_2.c | 1 + src/wonder_mail_3_mid.c | 2 +- src/wonder_mail_4.c | 4 +- src/wonder_mail_5.c | 2 +- src/wonder_mail_6.c | 2 +- src/wonder_mail_802C10C.c | 1 + src/wonder_mail_802C4C8.c | 1 + src/wonder_mail_802C860.c | 1 + src/wonder_mail_802CDD4.c | 1 + src/wonder_mail_802D098.c | 1 + src/wonder_mail_main_menu.c | 76 +++------------------ 154 files changed, 395 insertions(+), 384 deletions(-) create mode 100644 include/globaldata.h diff --git a/data/data_8106A4C.s b/data/data_8106A4C.s index 9fd1b62f3..6f4fb6082 100644 --- a/data/data_8106A4C.s +++ b/data/data_8106A4C.s @@ -1,5 +1,10 @@ .section .rodata +@ sub_8048E04 - sub_805FC30 + .align 2,0 + .string "pksdir0\0" + + .global gUnknown_8106A4C gUnknown_8106A4C: @ 8106A4C .4byte 0 @@ -10,7 +15,6 @@ gUnknown_8106A50: @ 8106A50 .global gUnknown_8106A54 gUnknown_8106A54: @ 8106A54 -@ replacing .incbin "baserom.gba", 0x106A54, 0x38 .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x80, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00 .byte 0x80, 0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x80, 0x03, 0x00, 0x00, 0x00, 0x04, 0x00, 0x00 .byte 0x80, 0x04, 0x00, 0x00, 0x00, 0x05, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 @@ -18,7 +22,6 @@ gUnknown_8106A54: @ 8106A54 .global gUnknown_8106A8C gUnknown_8106A8C: @ 8106A8C -@ replacing .incbin "baserom.gba", 0x106A8C, 0x3C .byte 0x06, 0x00, 0x00, 0x00, 0x0c, 0x00, 0x00, 0x00, 0x12, 0x00, 0x00, 0x00, 0x14, 0x00, 0x00, 0x00 .byte 0x18, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x1e, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64 .byte 0x69, 0x72, 0x30, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00, 0x70, 0x6b, 0x73, 0x64 @@ -26,7 +29,6 @@ gUnknown_8106A8C: @ 8106A8C .global gUnknown_8106AC8 gUnknown_8106AC8: @ 8106AC8 -@ replacing .incbin "baserom.gba", 0x106AC8, 0x20 .byte 0xff, 0xff, 0xff, 0xff, 0x01, 0x00, 0x00, 0x00, 0xff, 0xff, 0x01, 0x00, 0x01, 0x01, 0x00, 0x00 .byte 0x01, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0xff, 0xff, 0x00, 0x00, 0x00, 0x00 @@ -36,7 +38,6 @@ gUnknown_8106AE8: @ 8106AE8 .global gUnknown_8106AEC gUnknown_8106AEC: @ 8106AEC -@ replacing .incbin "baserom.gba", 0x106AEC, 0x64 .byte 0x12, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x13, 0x02, 0x00, 0x00 .byte 0x00, 0x01, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x14, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x01, 0x00, 0xff, 0xff, 0x13, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0xff @@ -48,6 +49,10 @@ gUnknown_8106AEC: @ 8106AEC .global gUnknown_8106B50 gUnknown_8106B50: @ 8106B50 .string "{COLOR_1}%c%s\0" + + + +@ CreateFieldItemMenu - sub_8062CA8 .align 2,0 .string "pksdir0\0" .align 2,0 @@ -58,13 +63,11 @@ gUnknown_8106B60: @ 8106B60 .global gUnknown_8106B6C gUnknown_8106B6C: @ 8106B6C -@ replacing .incbin "baserom.gba", 0x106B6C, 0x20 .byte 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x02, 0x00, 0x04, 0x00, 0x06, 0x00, 0x02, 0x00 .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 .global gUnknown_8106B8C gUnknown_8106B8C: @ 8106B8C -@ replacing .incbin "baserom.gba", 0x106B8C, 0x24 .byte 0x01, 0x00, 0x38, 0x00, 0x00, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x02, 0x00, 0x38, 0x00 .byte 0x68, 0x00, 0x18, 0x00, 0x18, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 @@ -180,6 +183,9 @@ gUnknown_8106C98: @ 8106C98 .global gUnknown_8106C9C gUnknown_8106C9C: @ 8106C9C .string "None\0" + + +@ sub_80633E4 - sub_80639E4 .align 2,0 .string "pksdir0\0" .align 2,0 @@ -205,12 +211,19 @@ gUnknown_8106CC8: @ 8106CC8 .global gUnknown_8106CCC gUnknown_8106CCC: @ 8106CCC .string "{ARG_POKEMON_0}\0" + +@ ??? .align 2,0 .string "pksdir0\0" + +@ ??? .align 2,0 .string "pksdir0\0" + +@ CreateFieldDungeonMenu - CreateFieldOthersMenu .align 2,0 .string "pksdir0\0" + .align 2,0 .global gUnknown_8106CE8 @@ -224,6 +237,8 @@ gUnknown_8106CF4: @ 8106CF4 .byte 0x13, 0x00, 0x00, 0x00 .byte 0x11, 0x00, 0x00, 0x00 .byte 0x19, 0x00, 0x00, 0x00 + +@ sub_8065FB4 - sub_8066358 .string "pksdir0\0" .align 2,0 @@ -241,8 +256,12 @@ gUnknown_8106D68: @ 8106D68 .global gUnknown_8106D8C gUnknown_8106D8C: @ 8106D8C .string "{COLOR_2}%d{ARG_POKEMON_0}\0" + +@ ??? .align 2,0 .string "pksdir0\0" + +@ sub_8067A80 - sub_806806C .align 2,0 .string "pksdir0\0" .align 2,0 @@ -299,6 +318,8 @@ gUnknown_8106E80: @ 8106E80 .byte 0x03, 0x00, 0x00, 0x00 .byte 0x04, 0x00, 0x00, 0x00 .byte 0x05, 0x00, 0x00, 0x00 + +@ sub_8068614 - sub_806A3D4 .string "pksdir0\0" .align 2,0 @@ -320,22 +341,24 @@ gUnknown_8106EA8: @ 8106EA8 .global gUnknown_8106EB0 gUnknown_8106EB0: @ 8106EB0 .string "talk%d\0" + +@ ??? .align 2,0 .string "pksdir0\0" + +@ sub_806C51C - sub_806E100 .align 2,0 .string "pksdir0\0" .align 2,0 .global gUnknown_8106EC8 gUnknown_8106EC8: @ 8106EC8 -@ replacing .incbin "baserom.gba", 0x106EC8, 0x27 .byte 0x00, 0x01, 0x07, 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07 .byte 0x07, 0x07, 0x05, 0x06, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x07, 0x05 .byte 0x06, 0x07, 0x07, 0x07, 0x07, 0x0b, 0x07 .global gUnknown_8106EEF gUnknown_8106EEF: @ 8106EEF -@ replacing .incbin "baserom.gba", 0x106EEF, 0xD .byte 0x03, 0x04, 0x05, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00 .global gUnknown_8106EFC @@ -365,7 +388,6 @@ gUnknown_8106F1C: @ 8106F1C .global gUnknown_8106F24 gUnknown_8106F24: @ 8106F24 -@ replacing .incbin "baserom.gba", 0x106F24, 0x30 .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00, 0xfe, 0x7f, 0x01, 0x00 .global gUnknown_8106F3C diff --git a/include/globaldata.h b/include/globaldata.h new file mode 100644 index 000000000..7f385c214 --- /dev/null +++ b/include/globaldata.h @@ -0,0 +1,8 @@ +// This file exists because every file introduces this string into the (.rodata). +// There was no #ifdef guard in this file in the source, which is why it happens for every source file. +// Luckily, this tells us where file boundaries are exactly. +// This file gets included by each source file, just like in Chunsoft's original source, so we can have this string easily just like they did. + +// Later, we can move this into "global.h" before the #ifdef guard. But we can only do this if "global.h" isn't included outside of .c files... + +ALIGNED(4) static const u8 sFill[] = _("pksdir0"); \ No newline at end of file diff --git a/ld_script.txt b/ld_script.txt index a1491dd9a..ba014be66 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -500,6 +500,7 @@ SECTIONS { src/debug_menu4.o(.rodata); data/data_80E7D40.o(.rodata); src/pokemon_mail.o(.rodata); + src/code_803C1B4.o(.rodata); data/personality_test.o(.rodata); src/personality_test.o(.rodata); src/code_803D0D8.o(.rodata); diff --git a/src/adventure_log.c b/src/adventure_log.c index 5cc46126b..ff97dfc24 100644 --- a/src/adventure_log.c +++ b/src/adventure_log.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "adventure_log.h" #include "code_80118A4.h" #include "code_80130A8.h" diff --git a/src/charge_move.c b/src/charge_move.c index b765a6a28..279074de5 100644 --- a/src/charge_move.c +++ b/src/charge_move.c @@ -39,8 +39,6 @@ const u32 gMultiTurnChargingStatuses[10] = { STATUS_NONE }; -ALIGNED(4) const char chargingStatusFill[] = "pksdir0"; - u32 sub_8057070(Move *move) { u32 numberOfChainedHits; diff --git a/src/code_801602C.c b/src/code_801602C.c index 6b70e55e9..85822e4aa 100644 --- a/src/code_801602C.c +++ b/src/code_801602C.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_8012A18_1.h" #include "code_80130A8.h" #include "code_801602C.h" diff --git a/src/code_801AFA4.c b/src/code_801AFA4.c index 594475d5e..16c743a34 100644 --- a/src/code_801AFA4.c +++ b/src/code_801AFA4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801AFA4.h" diff --git a/src/code_801B3C0.c b/src/code_801B3C0.c index 74d321c65..f05dcba83 100644 --- a/src/code_801B3C0.c +++ b/src/code_801B3C0.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" diff --git a/src/code_801B60C.c b/src/code_801B60C.c index bd1c30c42..3870ba291 100644 --- a/src/code_801B60C.c +++ b/src/code_801B60C.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" diff --git a/src/code_801BEEC.c b/src/code_801BEEC.c index d292a9ae8..6452482a5 100644 --- a/src/code_801BEEC.c +++ b/src/code_801BEEC.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_801BEEC.h" #include "code_801C244.h" diff --git a/src/code_801C244.c b/src/code_801C244.c index 012555c0a..32f694a72 100644 --- a/src/code_801C244.c +++ b/src/code_801C244.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801C244.h" diff --git a/src/code_801C620.c b/src/code_801C620.c index 2bd24e7d2..b45b3c7d5 100644 --- a/src/code_801C620.c +++ b/src/code_801C620.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801C620.h" diff --git a/src/code_801C8C4.c b/src/code_801C8C4.c index e385f0f2c..c144dc597 100644 --- a/src/code_801C8C4.c +++ b/src/code_801C8C4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_801C8C4.h" #include "input.h" diff --git a/src/code_801D014.c b/src/code_801D014.c index 47467a646..e21592520 100644 --- a/src/code_801D014.c +++ b/src/code_801D014.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "bg_palette_buffer.h" #include "code_800D090.h" #include "code_80130A8.h" diff --git a/src/code_801D9E4.c b/src/code_801D9E4.c index ea72611da..6d891cdbf 100644 --- a/src/code_801D9E4.c +++ b/src/code_801D9E4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_801D9E4.h" #include "constants/input.h" diff --git a/src/code_80227B8.c b/src/code_80227B8.c index ac1e5acff..c40da70a4 100644 --- a/src/code_80227B8.c +++ b/src/code_80227B8.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801AFA4.h" #include "code_801B3C0.h" diff --git a/src/code_8023144.c b/src/code_8023144.c index 9b4e29504..cd2291d4b 100644 --- a/src/code_8023144.c +++ b/src/code_8023144.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_8023144.h" diff --git a/src/code_8023868.c b/src/code_8023868.c index bb7468d0f..4e8a88d17 100644 --- a/src/code_8023868.c +++ b/src/code_8023868.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_8023868.h" #include "pokemon.h" diff --git a/src/code_8024458.c b/src/code_8024458.c index 36b0e0f95..fe989c791 100644 --- a/src/code_8024458.c +++ b/src/code_8024458.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_8024458.h" #include "constants/input.h" diff --git a/src/code_802DB28.c b/src/code_802DB28.c index d9c12cfb5..89303a9d5 100644 --- a/src/code_802DB28.c +++ b/src/code_802DB28.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_802DB28.h" #include "code_802F204.h" diff --git a/src/code_802DE84.c b/src/code_802DE84.c index 66faec3ec..e3f476a98 100644 --- a/src/code_802DE84.c +++ b/src/code_802DE84.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_802DE84.h" #include "code_803B050.h" diff --git a/src/code_8031D70.c b/src/code_8031D70.c index de4544ff9..ce33fc6b2 100644 --- a/src/code_8031D70.c +++ b/src/code_8031D70.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "constants/wonder_mail.h" #include "constants/colors.h" #include "input.h" diff --git a/src/code_803C1B4.c b/src/code_803C1B4.c index 9a2c89a9a..acc46a63f 100644 --- a/src/code_803C1B4.c +++ b/src/code_803C1B4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "dungeon.h" u32 sub_803C1B4(DungeonLocation *dungeon, u8 r1) diff --git a/src/code_803D0D8.c b/src/code_803D0D8.c index 9234514c9..f699ae50c 100644 --- a/src/code_803D0D8.c +++ b/src/code_803D0D8.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_803D0D8.h" static EWRAM_DATA_2 u8 sUnknown_203B408 = {0}; diff --git a/src/common_strings.c b/src/common_strings.c index 344112513..f31059c59 100644 --- a/src/common_strings.c +++ b/src/common_strings.c @@ -1,8 +1,7 @@ #include "global.h" +#include "globaldata.h" #include "common_strings.h" -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - // Probably had many entries per ptr because of languages, but USA release is english-only. Check other roms ALIGNED(4) static const u8 sYes0[] = _("Yes"); diff --git a/src/credits2.c b/src/credits2.c index 903402818..17ebcfb16 100644 --- a/src/credits2.c +++ b/src/credits2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "credits2.h" #include "event_flag.h" #include "input.h" diff --git a/src/data/adventure_log.h b/src/data/adventure_log.h index 036970198..c7a8c49d2 100644 --- a/src/data/adventure_log.h +++ b/src/data/adventure_log.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E1FF0 = { 0, 0, 0, 0, diff --git a/src/data/code_801602C.h b/src/data/code_801602C.h index 629283012..8e0cd8453 100644 --- a/src/data/code_801602C.h +++ b/src/data/code_801602C.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - enum { MENU_ACTION_DEFAULT = 1, diff --git a/src/data/code_801AFA4.h b/src/data/code_801AFA4.h index 26ba514ab..9ca462aa5 100644 --- a/src/data/code_801AFA4.h +++ b/src/data/code_801AFA4.h @@ -1,11 +1,11 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sFmtWhoWillLearnTheMove[] = _( "{CENTER_ALIGN}Who will learn the move\n" "{CENTER_ALIGN}{COLOR_1 CYAN}{ARG_POKEMON_7}{END_COLOR_TEXT_1}?"); + ALIGNED(4) static const u8 sFmtLearnedTheMove[] = _( "{CENTER_ALIGN}{COLOR_1 CYAN_3}{ARG_POKEMON_8}{END_COLOR_TEXT_1} learned\n" "{CENTER_ALIGN}the move {COLOR_1 CYAN}{ARG_POKEMON_7}{END_COLOR_TEXT_1}!"); + ALIGNED(4) static const u8 sFmtNoOneCanLearnThisMove[] = _( "{CENTER_ALIGN}No one in the current team\n" "{CENTER_ALIGN}can learn this move. "); \ No newline at end of file diff --git a/src/data/code_801B3C0.h b/src/data/code_801B3C0.h index 33df79e43..153be787f 100644 --- a/src/data/code_801B3C0.h +++ b/src/data/code_801B3C0.h @@ -1,3 +1 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sFmtPkmn0[] = _("{ARG_POKEMON_0}"); \ No newline at end of file diff --git a/src/data/code_801B60C.h b/src/data/code_801B60C.h index 5c38c4e73..cfbb439f6 100644 --- a/src/data/code_801B60C.h +++ b/src/data/code_801B60C.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBA58 = { 0, 0, 0, 0, 3, @@ -8,6 +6,7 @@ static const UnkTextStruct2 sUnknown_80DBA58 = { 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBA70 = { 0, 0, 0, 0, 3, @@ -16,6 +15,7 @@ static const UnkTextStruct2 sUnknown_80DBA70 = { 3, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBA88 = { 0, 0, 0, 0, 3, @@ -28,37 +28,48 @@ static const UnkTextStruct2 sUnknown_80DBA88 = { ALIGNED(4) static const u8 sFmtReceivedThePromised[] = _( "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1} received\n" "{CENTER_ALIGN}the promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}. "); + ALIGNED(4) static const u8 sFmtTeamReceivedThePromised[] = _( "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{APOSTROPHE}s team received\n" "{CENTER_ALIGN}the promised {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}."); + ALIGNED(4) static const u8 sFmtTeamAlsoReceived[] = _( "{CENTER_ALIGN}The team also received\n" "{CENTER_ALIGN}the item {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}."); + ALIGNED(4) static const u8 sFmtReceivedStatue[] = _( "{CENTER_ALIGN}Received the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}!{EXTRA_MSG}{CENTER_ALIGN}A very rare statue. It has been placed\n" "{CENTER_ALIGN}outside your rescue team base."); + ALIGNED(4) static const u8 sFmtReceive1000Instead[] = _( "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}...\n" "{CENTER_ALIGN}You{APOSTROPHE}ve already acquired it.{EXTRA_MSG}{CENTER_ALIGN}Sorry to see that...{EXTRA_MSG}{CENTER_ALIGN}In its place{COMMA} {COLOR_1 YELLOW_5}{ARG_POKEMON_0}{END_COLOR_TEXT_1}{COMMA}\n" "{CENTER_ALIGN}you can have {COLOR_1 LIGHT_BLUE}1{COMMA}000{END_COLOR_TEXT_1} {POKE}."); + ALIGNED(4) static const u8 sFmtFullSoSentToStorage[] = _( "{CENTER_ALIGN}Your Toolbox is full.\n" "{CENTER_ALIGN}The item was sent to storage."); + ALIGNED(4) static const u8 sFmtFullSoPrompt[] = _( "{CENTER_ALIGN}Your Toolbox is full.\n" "{CENTER_ALIGN}What would you like to do?"); + ALIGNED(4) static const u8 sFmtConfirmThrowAway[] = _( "{CENTER_ALIGN}Is it OK to throw away\n" "{CENTER_ALIGN}this {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}?"); + ALIGNED(4) static const u8 sFmtThrownAway[] = _( "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN}was thrown away."); + ALIGNED(4) static const u8 sFmtPutInStorageForReceive[] = _( "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was put in\n" "{CENTER_ALIGN}storage to get the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}."); + ALIGNED(4) static const u8 sFmtDiscardedForReceive[] = _( "{CENTER_ALIGN}The {COLOR_1 GREEN}{ARG_MOVE_ITEM_1}{END_COLOR_TEXT_1} was discarded\n" "{CENTER_ALIGN}to get the {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1}."); + ALIGNED(4) static const u8 sTrashToolboxItem[] = _("Trash Toolbox Item"); ALIGNED(4) static const u8 sTrashReceivedItem[] = _("Trash Received Item"); ALIGNED(4) static const u8 sStorage[] = _("Storage"); diff --git a/src/data/code_801BEEC.h b/src/data/code_801BEEC.h index 013457906..585bdf665 100644 --- a/src/data/code_801BEEC.h +++ b/src/data/code_801BEEC.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBD98 = { 0, 0, 0, 0, 3, @@ -8,6 +6,7 @@ static const UnkTextStruct2 sUnknown_80DBD98 = { 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBDB0 = { 0, 0, 0, 0, 3, diff --git a/src/data/code_801C244.h b/src/data/code_801C244.h index 38a258e5e..fd25289f1 100644 --- a/src/data/code_801C244.h +++ b/src/data/code_801C244.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBDD8 = { 0, 0, 0, 0, 3, @@ -8,6 +6,7 @@ static const UnkTextStruct2 sUnknown_80DBDD8 = { 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBDF0 = { 0, 0, 0, 0, 6, diff --git a/src/data/code_801C620.h b/src/data/code_801C620.h index e7bff4a3f..3cf8c3ba9 100644 --- a/src/data/code_801C620.h +++ b/src/data/code_801C620.h @@ -1,4 +1,2 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sFmtMoveItem0[] = _("{ARG_MOVE_ITEM_0}"); ALIGNED(4) static const u8 sFmtPkmn0[] = _("{ARG_POKEMON_0}"); \ No newline at end of file diff --git a/src/data/code_801C8C4.h b/src/data/code_801C8C4.h index 477519fc1..b38d32b13 100644 --- a/src/data/code_801C8C4.h +++ b/src/data/code_801C8C4.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBE3C = { 0, 0, 0, 0, 3, @@ -8,6 +6,7 @@ static const UnkTextStruct2 sUnknown_80DBE3C = { 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBE54 = { 0, 0, 0, 0, 6, diff --git a/src/data/code_801D014.h b/src/data/code_801D014.h index d189cf115..57f378590 100644 --- a/src/data/code_801D014.h +++ b/src/data/code_801D014.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBE7C = { 0, 0, 0, 0, 3, diff --git a/src/data/code_801D9E4.h b/src/data/code_801D9E4.h index 637948c1f..96f83413f 100644 --- a/src/data/code_801D9E4.h +++ b/src/data/code_801D9E4.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBF70 = { 0, 0, 0, 0, 3, @@ -8,6 +6,7 @@ static const UnkTextStruct2 sUnknown_80DBF70 = { 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DBF88 = { 0, 0, 0, 0, 6, diff --git a/src/data/code_80227B8.h b/src/data/code_80227B8.h index e62ee24a9..c3fe35287 100644 --- a/src/data/code_80227B8.h +++ b/src/data/code_80227B8.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const MenuItem sUnknown_80DC584[3] = { {"Yes", 2}, diff --git a/src/data/code_8023144.h b/src/data/code_8023144.h index 49276ee82..4f54cb236 100644 --- a/src/data/code_8023144.h +++ b/src/data/code_8023144.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC904 = { 0, 0, 0, 0, @@ -9,6 +7,7 @@ static const UnkTextStruct2 sUnknown_80DC904 = 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80DC91C = { 0, 0, 0, 0, diff --git a/src/data/code_8023868.h b/src/data/code_8023868.h index 0b23b586f..34ff50334 100644 --- a/src/data/code_8023868.h +++ b/src/data/code_8023868.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - //static // MAKE STATIC WHEN code_8023868.s IS DONE const UnkTextStruct2 sUnknown_80DC950 = { 0, 0, 0, 0, diff --git a/src/data/code_8024458.h b/src/data/code_8024458.h index 0686a44a6..87bb678fa 100644 --- a/src/data/code_8024458.h +++ b/src/data/code_8024458.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC9B0 = { 0, 0, 0, 0, 3, diff --git a/src/data/code_802DB28.h b/src/data/code_802DB28.h index c3af8c6c2..7b43cf9d3 100644 --- a/src/data/code_802DB28.h +++ b/src/data/code_802DB28.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E016C = { 0, 0, 0, 0, 3, diff --git a/src/data/code_802DE84.h b/src/data/code_802DE84.h index 8c667b1c1..736868b42 100644 --- a/src/data/code_802DE84.h +++ b/src/data/code_802DE84.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E0248 = { 0, 0, 0, 0, 3, diff --git a/src/data/code_803D0D8.h b/src/data/code_803D0D8.h index 6926d45d1..25719fad4 100644 --- a/src/data/code_803D0D8.h +++ b/src/data/code_803D0D8.h @@ -1,43 +1,41 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const u8 sUnknown_80F42D0[32] = { - 0x3f, 0x36, 0x37, 0x4e, 0x50, 0x52, 0x38, 0x39, - 0x46, 0x30, 0x2b, 0x85, 0x53, 0x54, 0x58, 0x59, - 0x34, 0x35, 0x4d, 0x43, 0x48, 0x4a, 0x2d, 0x4b, - 0x31, 0x32, 0x21, 0xbe, 0x33, 0x51, 0xbd, 0x57 + 0x3f, 0x36, 0x37, 0x4e, 0x50, 0x52, 0x38, 0x39, + 0x46, 0x30, 0x2b, 0x85, 0x53, 0x54, 0x58, 0x59, + 0x34, 0x35, 0x4d, 0x43, 0x48, 0x4a, 0x2d, 0x4b, + 0x31, 0x32, 0x21, 0xbe, 0x33, 0x51, 0xbd, 0x57 }; static const u8 sUnknown_80F42F0[256] = { - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0x0a, 0xff, 0x16, 0xff, 0xff, - 0x09, 0x18, 0x19, 0x1c, 0x10, 0x11, 0x01, 0x02, - 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, - 0xff, 0xff, 0xff, 0x13, 0xff, 0xff, 0x08, 0xff, - 0x14, 0xff, 0x15, 0x17, 0xff, 0x12, 0x03, 0xff, - 0x04, 0x1d, 0x05, 0x0c, 0x0d, 0xff, 0xff, 0x1f, - 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x1b, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, - 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0x1a, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0x0a, 0xff, 0x16, 0xff, 0xff, + 0x09, 0x18, 0x19, 0x1c, 0x10, 0x11, 0x01, 0x02, + 0x06, 0x07, 0xff, 0xff, 0xff, 0xff, 0xff, 0x00, + 0xff, 0xff, 0xff, 0x13, 0xff, 0xff, 0x08, 0xff, + 0x14, 0xff, 0x15, 0x17, 0xff, 0x12, 0x03, 0xff, + 0x04, 0x1d, 0x05, 0x0c, 0x0d, 0xff, 0xff, 0x1f, + 0x0e, 0x0f, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x0b, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0x1e, 0x1b, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, + 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff }; \ No newline at end of file diff --git a/src/data/credits2.h b/src/data/credits2.h index 1c92393b0..7d8558ec2 100644 --- a/src/data/credits2.h +++ b/src/data/credits2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - // Inputs related. These are probably buttons OR'd together static const u16 sUnknown_80E5990[8] = { diff --git a/src/data/debug_menu2.h b/src/data/debug_menu2.h index 99eb11fcd..f0e808633 100644 --- a/src/data/debug_menu2.h +++ b/src/data/debug_menu2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E7E34 = { 0, 0, 0, 0, @@ -9,6 +7,7 @@ static const UnkTextStruct2 sUnknown_80E7E34 = 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80E7E4C = { 0, 0, 0, 0, @@ -18,6 +17,7 @@ static const UnkTextStruct2 sUnknown_80E7E4C = 3, 0, NULL }; + static const UnkTextStruct2 sUnknown_80E7E64 = { 0, 0, 0, 0, diff --git a/src/data/debug_menu3.h b/src/data/debug_menu3.h index fbe3b94dc..8a55acedf 100644 --- a/src/data/debug_menu3.h +++ b/src/data/debug_menu3.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E7E8C = { 0, 0, 0, 0, @@ -9,6 +7,7 @@ static const UnkTextStruct2 sUnknown_80E7E8C = 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80E7EA4 = { 0, 0, 0, 0, diff --git a/src/data/debug_menu4.h b/src/data/debug_menu4.h index f9de94427..c802c5293 100644 --- a/src/data/debug_menu4.h +++ b/src/data/debug_menu4.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E7ED4 = { 0, 0, 0, 0, @@ -9,6 +7,7 @@ static const UnkTextStruct2 sUnknown_80E7ED4 = 0, 0, NULL }; + static const UnkTextStruct2 sUnknown_80E7EEC = { 0, 0, 0, 0, @@ -18,6 +17,7 @@ static const UnkTextStruct2 sUnknown_80E7EEC = 3, 0, NULL }; + static const UnkTextStruct2 sUnknown_80E7F04 = { 0, 0, 0, 0, diff --git a/src/data/decompress.h b/src/data/decompress.h index fd7c602b9..30dadcf53 100644 --- a/src/data/decompress.h +++ b/src/data/decompress.h @@ -1,4 +1 @@ - -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const u32 gByteShiftLookup[4] = {0, 8, 16, 24}; \ No newline at end of file diff --git a/src/data/felicity_bank.h b/src/data/felicity_bank.h index 1f7860457..7e1056981 100644 --- a/src/data/felicity_bank.h +++ b/src/data/felicity_bank.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB6DC = { 0, 0, 0, 0, 3, diff --git a/src/data/friend_area_action_menu.h b/src/data/friend_area_action_menu.h index 74ebabdaf..8706913e0 100644 --- a/src/data/friend_area_action_menu.h +++ b/src/data/friend_area_action_menu.h @@ -79,5 +79,4 @@ ALIGNED(4) static const u8 sSummary[] = "Summary"; ALIGNED(4) static const u8 sMoves[] = "Moves"; ALIGNED(4) static const u8 sCheckIQ[] = "Check IQ"; -ALIGNED(4) static const u8 sItemBuffered[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); -static const u8 sFill1[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 sItemBuffered[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); \ No newline at end of file diff --git a/src/data/friend_list_menu.h b/src/data/friend_list_menu.h index d28adabc7..363270202 100644 --- a/src/data/friend_list_menu.h +++ b/src/data/friend_list_menu.h @@ -62,5 +62,4 @@ ALIGNED(4) static const u8 sName[] = "Name"; ALIGNED(4) static const u8 sSummary[] = "Summary"; ALIGNED(4) static const u8 sMoves[] = "Moves"; ALIGNED(4) static const u8 sCheckIQ[] = "Check IQ"; -ALIGNED(4) static const u8 sItemBuffered[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); -ALIGNED(4) static const u8 sFill[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 sItemBuffered[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); \ No newline at end of file diff --git a/src/data/gulpin_shop.h b/src/data/gulpin_shop.h index aac130482..4e8df4187 100644 --- a/src/data/gulpin_shop.h +++ b/src/data/gulpin_shop.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 gUnknown_80DC11C = { 0, 0, 0, 0, 3, diff --git a/src/data/gulpin_shop_801FB50.h b/src/data/gulpin_shop_801FB50.h index 6ae53cc91..6570573f9 100644 --- a/src/data/gulpin_shop_801FB50.h +++ b/src/data/gulpin_shop_801FB50.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 gUnknown_80DC31C = { 0, 0, 0, 0, 3, diff --git a/src/data/hints_menu1.h b/src/data/hints_menu1.h index 1150dfddf..df74c6d5c 100644 --- a/src/data/hints_menu1.h +++ b/src/data/hints_menu1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC0A0 = { 0, 0, 0, 0, 3, diff --git a/src/data/hints_menu2.h b/src/data/hints_menu2.h index 3d0fb16d8..23c79a5fd 100644 --- a/src/data/hints_menu2.h +++ b/src/data/hints_menu2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC0E4 = { 0, 0, 0, 0, 3, diff --git a/src/data/kangaskhan_storage1.h b/src/data/kangaskhan_storage1.h index 41cae7738..b8aafcf99 100644 --- a/src/data/kangaskhan_storage1.h +++ b/src/data/kangaskhan_storage1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB748 = { 0, 0, 0, 0, 3, diff --git a/src/data/kangaskhan_storage2.h b/src/data/kangaskhan_storage2.h index 6a0114c57..2ea9e895d 100644 --- a/src/data/kangaskhan_storage2.h +++ b/src/data/kangaskhan_storage2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB7B8 = { 0, 0, 0, 0, 3, diff --git a/src/data/kecleon_bros1.h b/src/data/kecleon_bros1.h index f86fee175..fa762ce11 100644 --- a/src/data/kecleon_bros1.h +++ b/src/data/kecleon_bros1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB840 = { 0, 0, 0, 0, 3, diff --git a/src/data/kecleon_bros2.h b/src/data/kecleon_bros2.h index 7dba00499..1265c2f4b 100644 --- a/src/data/kecleon_bros2.h +++ b/src/data/kecleon_bros2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB8B4 = { 0, 0, 0, 0, 3, diff --git a/src/data/kecleon_bros3.h b/src/data/kecleon_bros3.h index a08d462ef..6e5f32ca0 100644 --- a/src/data/kecleon_bros3.h +++ b/src/data/kecleon_bros3.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB8FC = { 0, 0, 0, 0, 3, diff --git a/src/data/kecleon_bros4.h b/src/data/kecleon_bros4.h index 6d94f94e6..2338493fd 100644 --- a/src/data/kecleon_bros4.h +++ b/src/data/kecleon_bros4.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DB944 = { 0, 0, 0, 0, 3, diff --git a/src/data/luminous_cave.h b/src/data/luminous_cave.h index ef06964eb..237136305 100644 --- a/src/data/luminous_cave.h +++ b/src/data/luminous_cave.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC9E8 = { 0, 0, 0, 0, 3, @@ -130,6 +128,5 @@ ALIGNED(4) static const u8 sMustGiveName[] = _( "{CENTER_ALIGN}Ye must give a name to\n" "{CENTER_ALIGN}the evolved Pokémon. "); -// TODO: These are for 2 files after, which have no data -ALIGNED(4) static const u8 sFill1[] = _("pksdir0"); -ALIGNED(4) static const u8 sFill2[] = _("pksdir0"); \ No newline at end of file +// TODO: This for a file after which had no data +ALIGNED(4) static const u8 sFill1[] = _("pksdir0"); \ No newline at end of file diff --git a/src/data/main_menu1.h b/src/data/main_menu1.h index 4b36df5c7..44dd27688 100644 --- a/src/data/main_menu1.h +++ b/src/data/main_menu1.h @@ -1,5 +1,3 @@ -static const u8 sFill[] = "pksdir0"; - static const UnkTextStruct2 sUnknown_80E59A8 = { 0, 0, 0, 0, 3, diff --git a/src/data/main_menu2.h b/src/data/main_menu2.h index 710f7c54b..83a8d2ddd 100644 --- a/src/data/main_menu2.h +++ b/src/data/main_menu2.h @@ -1,5 +1,3 @@ -static const u8 sFill[] = "pksdir0"; - static const UnkTextStruct2 sUnknown_80E59C8 = { 0, 0, 0, 0, 3, diff --git a/src/data/makuhita_dojo1.h b/src/data/makuhita_dojo1.h index f8f9ca7d2..f2b10cc53 100644 --- a/src/data/makuhita_dojo1.h +++ b/src/data/makuhita_dojo1.h @@ -11,5 +11,5 @@ ALIGNED(4) static const u8 sReceivedBonslyDoll[] = _( "{CENTER_ALIGN}{COLOR_1 YELLOW_5}{ARG_NICKNAME_0}{END_COLOR_TEXT_1} received the {COLOR_1 GREEN_2}Bonsly Doll{END_COLOR_TEXT_1}!\n" "{CENTER_ALIGN}It has been placed outside your\n" "{CENTER_ALIGN}rescue team base."); -ALIGNED(4) static const u8 sGoTrain[] = _("Go Train"); -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); \ No newline at end of file + +ALIGNED(4) static const u8 sGoTrain[] = _("Go Train"); \ No newline at end of file diff --git a/src/data/makuhita_dojo2.h b/src/data/makuhita_dojo2.h index 891530439..80f12b767 100644 --- a/src/data/makuhita_dojo2.h +++ b/src/data/makuhita_dojo2.h @@ -18,5 +18,4 @@ static const UnkTextStruct2 sUnknown_80E0804 = { ALIGNED(4) static const u8 sCourses[] = _("Courses"); ALIGNED(4) static const u8 sStarBullet[] = _("{STAR_BULLET}"); -ALIGNED(4) static const u8 sFmtColor[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}"); -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); \ No newline at end of file +ALIGNED(4) static const u8 sFmtColor[] = _("{COLOR_2}%c%s{END_COLOR_TEXT_2}"); \ No newline at end of file diff --git a/src/data/options_menu1.h b/src/data/options_menu1.h index 3e3e461ad..ade15c98d 100644 --- a/src/data/options_menu1.h +++ b/src/data/options_menu1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DBFB0 = { 0, 0, 0, 0, 3, diff --git a/src/data/options_menu2.h b/src/data/options_menu2.h index cd386040c..5d02cdb71 100644 --- a/src/data/options_menu2.h +++ b/src/data/options_menu2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC020 = { 0, 0, 0, 0, 3, diff --git a/src/data/other_menus1.h b/src/data/other_menus1.h index 99cae4f1d..95714d76b 100644 --- a/src/data/other_menus1.h +++ b/src/data/other_menus1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80E653C = { 0, 0, 0, 0, 3, diff --git a/src/data/other_menus2.h b/src/data/other_menus2.h index 3dd91762d..a57e02e7c 100644 --- a/src/data/other_menus2.h +++ b/src/data/other_menus2.h @@ -1,8 +1,7 @@ -ALIGNED(4) static const u8 sFill[] = "pksdir0"; -ALIGNED(4) const u8 gUnknown_80E6E50[] = "CHUNSOFT"; // TODO: MAKE STATIC WHEN other_menus2.s IS DED +ALIGNED(4) const u8 gUnknown_80E6E50[] = _("CHUNSOFT"); // TODO: MAKE STATIC WHEN other_menus2.s IS DED // TODO: These belongs to files after -ALIGNED(4) static const u8 fill1[] = "pksdir0"; -ALIGNED(4) static const u8 fill2[] = "pksdir0"; -ALIGNED(4) static const u8 fill3[] = "pksdir0"; -ALIGNED(4) static const u8 fill4[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 fill1[] = _("pksdir0"); +ALIGNED(4) static const u8 fill2[] = _("pksdir0"); +ALIGNED(4) static const u8 fill3[] = _("pksdir0"); +ALIGNED(4) static const u8 fill4[] = _("pksdir0"); \ No newline at end of file diff --git a/src/data/party_list_menu.h b/src/data/party_list_menu.h index 686584a63..2225a2a11 100644 --- a/src/data/party_list_menu.h +++ b/src/data/party_list_menu.h @@ -103,5 +103,4 @@ ALIGNED(4) static const u8 sPartyMenuSummary[] = "Summary"; ALIGNED(4) static const u8 sPartyMenuMoves[] = "Moves"; ALIGNED(4) static const u8 sPartyMenuCheckIQ[] = "Check IQ"; ALIGNED(4) static const u8 sPartyMenuItemPlaceholder[] = _("Item: {COLOR_1 GREEN}{ARG_MOVE_ITEM_0}{END_COLOR_TEXT_1} "); -ALIGNED(4) static const u8 sUnknown_80DD6E0[] = "%s"; -ALIGNED(4) static const u8 sFill[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 sUnknown_80DD6E0[] = "%s"; \ No newline at end of file diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index 38b711cf2..df4202625 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -1173,6 +1173,4 @@ ALIGNED(4) const u8 gMail_WelcomeText[] = _( "ranking. Aim for the Bronze Rank for now!\n" " - Pokémon Rescue Organization -"); -ALIGNED(4) const u8 gMail_WelcomeHeadline[] = "#1 Welcome to a Rescue Team!"; - -static const u8 pokemon_mail_fill[] = "pksdir0"; +ALIGNED(4) const u8 gMail_WelcomeHeadline[] = "#1 Welcome to a Rescue Team!"; \ No newline at end of file diff --git a/src/data/pokemon_news1.h b/src/data/pokemon_news1.h index 6b0a78a77..7e1c374be 100644 --- a/src/data/pokemon_news1.h +++ b/src/data/pokemon_news1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFBD0 = { 0, 0, 0, 0, 3, diff --git a/src/data/pokemon_news2.h b/src/data/pokemon_news2.h index 14531203a..8d113803f 100644 --- a/src/data/pokemon_news2.h +++ b/src/data/pokemon_news2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFC18 = { 0, 0, 0, 0, 3, diff --git a/src/data/pokemon_news3.h b/src/data/pokemon_news3.h index 037ceff99..9025cce23 100644 --- a/src/data/pokemon_news3.h +++ b/src/data/pokemon_news3.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFC5C = { 0, 0, 0, 0, 3, diff --git a/src/data/post_office_guide1.h b/src/data/post_office_guide1.h index 0db013b7f..bdc69da7f 100644 --- a/src/data/post_office_guide1.h +++ b/src/data/post_office_guide1.h @@ -272,6 +272,4 @@ ALIGNED(4) static const u8 sDeletingMailExplanation[] = "you won{APOSTROPHE}t be able to receive more mail.\n" "That{APOSTROPHE}s why you{APOSTROPHE}ll need to delete old mail.{EXTRA_MSG}" " You can look through old\n" - "mail at the {COLOR_1 LIGHT_BLUE}left counter{END_COLOR_TEXT_1} over there."); - -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); \ No newline at end of file + "mail at the {COLOR_1 LIGHT_BLUE}left counter{END_COLOR_TEXT_1} over there."); \ No newline at end of file diff --git a/src/data/post_office_guide2.h b/src/data/post_office_guide2.h index 18eddb061..23a3d32e5 100644 --- a/src/data/post_office_guide2.h +++ b/src/data/post_office_guide2.h @@ -27,5 +27,4 @@ ALIGNED(4) static const u8 sJustGo[] = "Just go!"; ALIGNED(4) static const u8 sFmtBring[] = _(" Bring {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); ALIGNED(4) static const u8 sFmtFind[] = _(" Find {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); ALIGNED(4) static const u8 sFmtEscort[] = _(" Escort to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}"); -ALIGNED(4) static const u8 sRedQuestionMarks[] = _("{COLOR_1 RED_2}???{END_COLOR_TEXT_1}"); -ALIGNED(4) static const u8 sFill[] = "pksdir0"; \ No newline at end of file +ALIGNED(4) static const u8 sRedQuestionMarks[] = _("{COLOR_1 RED_2}???{END_COLOR_TEXT_1}"); \ No newline at end of file diff --git a/src/data/quick_save_read.h b/src/data/quick_save_read.h index 83bf84e6a..4ea679523 100644 --- a/src/data/quick_save_read.h +++ b/src/data/quick_save_read.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sSaveFailedExplanation[] = _( "{CENTER_ALIGN}Your data was not properly saved{COMMA}\n" "{CENTER_ALIGN}so your game cannot be resumed\n" diff --git a/src/data/quick_save_write.h b/src/data/quick_save_write.h index 9e6ce1dd7..2e52fe03f 100644 --- a/src/data/quick_save_write.h +++ b/src/data/quick_save_write.h @@ -1,15 +1,13 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - -ALIGNED(4) static const u8 gUnknown_80D45AC[] = _( +ALIGNED(4) static const u8 sUnknown_80D45AC[] = _( "{CENTER_ALIGN}Quicksaving your adventure...\n" "{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power."); -ALIGNED(4) static const u8 gUnknown_80D45F4[] = _( +ALIGNED(4) static const u8 sUnknown_80D45F4[] = _( "{CENTER_ALIGN}Your adventure has been saved.\n" "{CENTER_ALIGN}When you are in a dungeon{COMMA} quicksave\n" "{CENTER_ALIGN}your progress before ending the game."); -ALIGNED(4) static const u8 gUnknown_80D4668[] = _( +ALIGNED(4) static const u8 sUnknown_80D4668[] = _( "{CENTER_ALIGN}Your adventure has been saved.\n" "{CENTER_ALIGN}When you resume play{COMMA} the quicksave\n" "{CENTER_ALIGN}data will be deleted.{EXTRA_MSG}" @@ -17,9 +15,9 @@ ALIGNED(4) static const u8 gUnknown_80D4668[] = _( "{CENTER_ALIGN}save your progress in your team base{COMMA}\n" "{CENTER_ALIGN}or quicksave in a dungeon."); -ALIGNED(4) static const u8 gSaveNotWritten2[] = _( +ALIGNED(4) static const u8 sSaveNotWritten[] = _( "{CENTER_ALIGN}The data could not be written.\n" "{CENTER_ALIGN}Please turn off the power and remove\n" "{CENTER_ALIGN}and reinsert the DS Card."); -ALIGNED(4) static const u8 gSaveFailed2[] = _("{CENTER_ALIGN}Save failed."); \ No newline at end of file +ALIGNED(4) static const u8 sSaveFailed[] = _("{CENTER_ALIGN}Save failed."); \ No newline at end of file diff --git a/src/data/save_read.h b/src/data/save_read.h index ed1f4604a..645847562 100644 --- a/src/data/save_read.h +++ b/src/data/save_read.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sSaveCorrupted[] = _( "{CENTER_ALIGN}The game data is corrupted.\n" "{CENTER_ALIGN}Your data will be erased."); \ No newline at end of file diff --git a/src/data/save_write.h b/src/data/save_write.h index 438c3042c..e81d79ba1 100644 --- a/src/data/save_write.h +++ b/src/data/save_write.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - ALIGNED(4) static const u8 sSavingAdventure[] = _( "{CENTER_ALIGN}Saving your adventure...\n" "{CENTER_ALIGN}Please don{APOSTROPHE}t turn off the power."); diff --git a/src/data/thank_you_wonder_mail.h b/src/data/thank_you_wonder_mail.h index 16004ae6b..8071f3fcf 100644 --- a/src/data/thank_you_wonder_mail.h +++ b/src/data/thank_you_wonder_mail.h @@ -172,6 +172,4 @@ ALIGNED(4) const u8 gUnknown_80DF96C[] = _( ALIGNED(4) const u8 gUnknown_80DF9A4[]= _( " How would you like to\n" - "receive your friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?"); - -ALIGNED(4) const u8 thank_you_fill[] = "pksdir0"; + "receive your friend{APOSTROPHE}s {COLOR_1 LIGHT_BLUE}Thank-You Mail{END_COLOR_TEXT_1}?"); \ No newline at end of file diff --git a/src/data/trade_items_menu.h b/src/data/trade_items_menu.h index bd6fe0e13..ff7010996 100644 --- a/src/data/trade_items_menu.h +++ b/src/data/trade_items_menu.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const MenuItem sUnknown_80E60A0[3] = { {"Send item", 1}, {"Receive item", 2}, diff --git a/src/data/wigglytuff_shop1.h b/src/data/wigglytuff_shop1.h index baa530295..7a1f6663a 100644 --- a/src/data/wigglytuff_shop1.h +++ b/src/data/wigglytuff_shop1.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC464 = { 0, 0, 0, 0, 3, diff --git a/src/data/wigglytuff_shop2.h b/src/data/wigglytuff_shop2.h index c686529ac..dadbeaaeb 100644 --- a/src/data/wigglytuff_shop2.h +++ b/src/data/wigglytuff_shop2.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC4BC = { 0, 0, 0, 0, 3, diff --git a/src/data/wigglytuff_shop3.h b/src/data/wigglytuff_shop3.h index be6359c7c..39ad2944c 100644 --- a/src/data/wigglytuff_shop3.h +++ b/src/data/wigglytuff_shop3.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DC534 = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_1.h b/src/data/wonder_mail_1.h index 330de9ca0..e5d9dd688 100644 --- a/src/data/wonder_mail_1.h +++ b/src/data/wonder_mail_1.h @@ -1,3 +1,101 @@ + + +const MenuItem gUnknown_80DD970[] = +{ + {"Receive SOS Mail", 0x0}, + {"Leave for Rescue", 0x1}, + {"Send A-OK Mail", 0x2}, + {"Delete Mail", 0x3}, + {"Cancel", 0xA}, + {NULL, 0xA} +}; + +const MenuItem gUnknown_80DD9EC[] = +{ + {"Delete SOS Mail", 0x5}, + {"Delete A-OK Mail", 0x6}, + {"Delete All Mail", 0x7}, + {"Cancel", 0xA}, + {NULL, 0xA} +}; + +const MenuItem gUnknown_80DDA48[] = +{ + {"Yes", 0x8}, + {"Cancel", 0xA}, + {NULL, 0xA} +}; + +const MenuItem gUnknown_80DDA64[] = +{ + {"Yes", 0x8}, + {"No", 0x9}, + {NULL, 0xA} +}; + +const MenuItem gUnknown_80DDA80[] = +{ + {"Yes", 0x8}, + {"No", 0x9}, + {"Cancel", 0xA}, + {NULL, 0xA} +}; + +const MenuItem gUnknown_80DDAA0[] = +{ + {SendWOPokemon, 0x12}, + {"Cancel", 0xA}, + {NULL, 0xA}, +}; + +ALIGNED(4) const u8 SendWOPokemon[] = _("Send w/o Pokémon"); + +const UnkTextStruct2 gUnknown_80DDACC = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x16, 0x07, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; + +const UnkTextStruct2 gUnknown_80DDAE4 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x16, 0x06, + 0x06, 0x04, + 0x04, 0x00, + NULL +}; + +const MenuItem gUnknown_80DDAFC[] = +{ + {"Confirm", 0xB}, + {"Info", 0xC}, + {NULL, 0xA}, +}; + +const MenuItem gUnknown_80DDB24[] = +{ + {"Game Link cable", 0xD}, + {"Password", 0xF}, + {"Cancel", 0xA}, + {NULL, 0xA}, +}; + +const MenuItem gUnknown_80DDB60[] = +{ + {SendPokemon_80DDB98, 0x11}, + {DontSendPokemon_80DDB80, 0x12}, + {"Cancel", 0xA}, + {NULL, 0xA}, +}; + +ALIGNED(4) const u8 DontSendPokemon_80DDB80[] = _("Don{APOSTROPHE}t Send Pokémon"); +ALIGNED(4) const u8 SendPokemon_80DDB98[] = _("Send Pokémon"); + ALIGNED(4) const char gUnknown_80DDBA8[] = _( " What you need to do is\n" "tell your friend--the one you rescued--\n" @@ -254,6 +352,4 @@ ALIGNED(4) const char gWonderMailSOSPasswordIncorrectText[] = _( ALIGNED(4) const char gWonderMailAOKMailReceivedText[] = _( ": I received the {COLOR_1 LIGHT_BLUE}SOS Mail{END_COLOR_TEXT_1}.\n" - "Your adventure will be saved."); - -ALIGNED(4) const char mail_filler[] = _("pksdir0"); + "Your adventure will be saved."); \ No newline at end of file diff --git a/src/data/wonder_mail_802C10C.h b/src/data/wonder_mail_802C10C.h index df90236a3..7aa4081fa 100644 --- a/src/data/wonder_mail_802C10C.h +++ b/src/data/wonder_mail_802C10C.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFC9C = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_802C4C8.h b/src/data/wonder_mail_802C4C8.h index 0103d14ae..0f34b3b24 100644 --- a/src/data/wonder_mail_802C4C8.h +++ b/src/data/wonder_mail_802C4C8.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFCE4 = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_802C860.h b/src/data/wonder_mail_802C860.h index 4a5873273..4b8e71810 100644 --- a/src/data/wonder_mail_802C860.h +++ b/src/data/wonder_mail_802C860.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFD28 = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_802CDD4.h b/src/data/wonder_mail_802CDD4.h index 9868d43e2..7c1f58c7b 100644 --- a/src/data/wonder_mail_802CDD4.h +++ b/src/data/wonder_mail_802CDD4.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFD8C = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_802D098.h b/src/data/wonder_mail_802D098.h index 1bfdf8e1f..f7ccd9f76 100644 --- a/src/data/wonder_mail_802D098.h +++ b/src/data/wonder_mail_802D098.h @@ -1,5 +1,3 @@ -ALIGNED(4) static const u8 sFill[] = _("pksdir0"); - static const UnkTextStruct2 sUnknown_80DFDD4 = { 0, 0, 0, 0, 3, diff --git a/src/data/wonder_mail_main_menu.h b/src/data/wonder_mail_main_menu.h index 51ee17c5a..5cf3e723c 100644 --- a/src/data/wonder_mail_main_menu.h +++ b/src/data/wonder_mail_main_menu.h @@ -1,3 +1,36 @@ + + +const MenuItem gSelectWonderMailModeMainMenuItems[3] = +{ + {"Send", WONDER_MAIL_MODE_SEND}, + {"Receive", WONDER_MAIL_MODE_RECEIVE}, + {NULL, 0} +}; + +const MenuItem gSendWonderMailMainMenuItems[4] = +{ + {"Game Link cable", WONDER_MAIL_GAME_LINK}, + {"Password", -1}, + {"Cancel", 8}, + {NULL, 0} + +}; + +const MenuItem gReceiveWonderMailMainMenuItems[4] = +{ + {"Game Link cable", WONDER_MAIL_GAME_LINK}, + {"Password", WONDER_MAIL_PASSWORD}, + {"Cancel", 8}, + {NULL, 0} +}; + +const MenuItem gUnknown_80E78F8[3] = +{ + {"Yes", 6}, + {"Cancel", 0}, + {NULL, 0} +}; + ALIGNED(4) const char gUnknown_80E7914[] = "There was a communication error."; ALIGNED(4) const char gUnknown_80E7938[] = "An incorrect number of GBA systems are\n" @@ -46,4 +79,23 @@ ALIGNED(4) const char gUnknown_80E7C98[] = _("Please enter the\n" ALIGNED(4) const char gUnknown_80E7CC4[] = "This password is incorrect.\n" "Would you like to enter it again?"; +// UNUSED DEBUG MENU DUMMY A: + ALIGNED(4) const char wonder_mail_main_fill0[] = "pksdir0"; + +extern const char Cancel_80E7D24[]; +extern const char Yes_80E7D2C[]; + +const MenuItem WonderMailMainUnused[3] = +{ + {Yes_80E7D2C, 1}, + {Cancel_80E7D24, 0}, + {NULL, 0}, +}; + +ALIGNED(4) const char Cancel_80E7D24[] = "Cancel"; +ALIGNED(4) const char Yes_80E7D2C[] = "Yes"; + +// UNUSED DEBUG MENU DUMMY B: + +ALIGNED(4) const char wonder_mail_main_fill1[] = "pksdir0"; \ No newline at end of file diff --git a/src/debug_menu2.c b/src/debug_menu2.c index aa603300d..f629bc9cb 100644 --- a/src/debug_menu2.c +++ b/src/debug_menu2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C8C4.h" diff --git a/src/debug_menu3.c b/src/debug_menu3.c index cffd9d6a1..0acc28ab0 100644 --- a/src/debug_menu3.c +++ b/src/debug_menu3.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_801EE10_mid.h" #include "common_strings.h" #include "debug_menu3.h" diff --git a/src/debug_menu4.c b/src/debug_menu4.c index 561d66c3f..b9c2138ff 100644 --- a/src/debug_menu4.c +++ b/src/debug_menu4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801602C.h" #include "code_8023868.h" diff --git a/src/decompress.c b/src/decompress.c index 2eda26f8f..79c046ec0 100644 --- a/src/decompress.c +++ b/src/decompress.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "decompress.h" #define MAGIC_SIR0 0x30524953 diff --git a/src/felicity_bank.c b/src/felicity_bank.c index bcfd661c6..c368359fa 100644 --- a/src/felicity_bank.c +++ b/src/felicity_bank.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "common_strings.h" diff --git a/src/friend_area_action_menu.c b/src/friend_area_action_menu.c index ded576cdf..00de20d80 100644 --- a/src/friend_area_action_menu.c +++ b/src/friend_area_action_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801BEEC.h" diff --git a/src/friend_list_menu.c b/src/friend_list_menu.c index 9462cd37d..0f64938ed 100644 --- a/src/friend_list_menu.c +++ b/src/friend_list_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801602C.h" diff --git a/src/gulpin_shop.c b/src/gulpin_shop.c index 91ea240cd..40d6f5724 100644 --- a/src/gulpin_shop.c +++ b/src/gulpin_shop.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_801EE10.h" #include "code_801EE10_mid.h" diff --git a/src/gulpin_shop_801FB50.c b/src/gulpin_shop_801FB50.c index d8489dfa3..f3bf8a0a5 100644 --- a/src/gulpin_shop_801FB50.c +++ b/src/gulpin_shop_801FB50.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801BEEC.h" diff --git a/src/hints_menu1.c b/src/hints_menu1.c index 5153fa48e..2f6e13d0e 100644 --- a/src/hints_menu1.c +++ b/src/hints_menu1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "common_strings.h" #include "hints_menu1.h" diff --git a/src/hints_menu2.c b/src/hints_menu2.c index 7eb2e151f..c87a1172e 100644 --- a/src/hints_menu2.c +++ b/src/hints_menu2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "common_strings.h" #include "hints_menu2.h" diff --git a/src/kangaskhan_storage1.c b/src/kangaskhan_storage1.c index 84173b1f5..35c3f0e17 100644 --- a/src/kangaskhan_storage1.c +++ b/src/kangaskhan_storage1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C8C4.h" diff --git a/src/kangaskhan_storage2.c b/src/kangaskhan_storage2.c index a97164d0a..0b8440ea9 100644 --- a/src/kangaskhan_storage2.c +++ b/src/kangaskhan_storage2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_801B3C0.h" #include "code_801C8C4.h" diff --git a/src/kecleon_bros1.c b/src/kecleon_bros1.c index 970edcd2c..b2f29c428 100644 --- a/src/kecleon_bros1.c +++ b/src/kecleon_bros1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" diff --git a/src/kecleon_bros2.c b/src/kecleon_bros2.c index 5d54bebc5..707beedc0 100644 --- a/src/kecleon_bros2.c +++ b/src/kecleon_bros2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "constants/input.h" diff --git a/src/kecleon_bros3.c b/src/kecleon_bros3.c index e4eb0c16c..9d7d8eb2e 100644 --- a/src/kecleon_bros3.c +++ b/src/kecleon_bros3.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "constants/input.h" diff --git a/src/kecleon_bros4.c b/src/kecleon_bros4.c index a2580dc87..97ebf7af0 100644 --- a/src/kecleon_bros4.c +++ b/src/kecleon_bros4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_80130A8.h" diff --git a/src/load_screen.c b/src/load_screen.c index 6f714b1c1..96240de2b 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "bg_palette_buffer.h" #include "code_800D090.h" #include "code_80130A8.h" @@ -148,7 +149,6 @@ ALIGNED(4) const char gNumAdventurePlaceholder[] = "%d"; ALIGNED(4) const char gHelperInfoPlaceholder[] = "%s (%s)"; ALIGNED(4) const char gNoHelperText[] = "-----"; ALIGNED(4) const char gClmkpatFileName[] = "clmkpat"; // clmkpat -ALIGNED(4) const char load_screen_fill[] = "pksdir0"; void CreateLoadScreen(u32 currMenu) { @@ -411,3 +411,8 @@ bool8 IsQuickSave(void) isQuicksave = TRUE; return isQuicksave; } + +bool8 sub_8039880(void) +{ + return (CountMailType(WONDER_MAIL_TYPE_SOS) != 0 || CountMailType(WONDER_MAIL_TYPE_OKD) != 0 || sub_8011C1C() == 2); +} \ No newline at end of file diff --git a/src/luminous_cave.c b/src/luminous_cave.c index f50a9d827..2d1efaf56 100644 --- a/src/luminous_cave.c +++ b/src/luminous_cave.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_80130A8.h" diff --git a/src/mailbox.c b/src/mailbox.c index 7a863ba1d..37d1029f6 100644 --- a/src/mailbox.c +++ b/src/mailbox.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_802DE84.h" #include "common_strings.h" #include "memory.h" @@ -21,8 +22,6 @@ EWRAM_DATA_2 struct unkStruct_203B304 *gUnknown_203B304 = {0}; -static const u8 wonder_mail_802DF88_fill1[] = "pksdir0"; - const UnkTextStruct2 gUnknown_80E0284 = { 0x00, 0x00, 0x00, 0x00, @@ -70,7 +69,6 @@ const u8 gMailActionStore[] = "Store"; const u8 gMailActionRead[] = "Read"; const u8 gMailAccepted[] = "Accepted"; const u8 gUnknown_80E0324[] = "/"; -static const u8 mailbox_fill[] = "pksdir0"; void sub_802E578(void); void HandleMailActionMenu(void); diff --git a/src/main_menu1.c b/src/main_menu1.c index f47134f02..68b02dd34 100644 --- a/src/main_menu1.c +++ b/src/main_menu1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "adventure_log_menu.h" #include "code_8098BDC.h" #include "constants/item.h" diff --git a/src/main_menu2.c b/src/main_menu2.c index 2bc001b7a..0baa02aa1 100644 --- a/src/main_menu2.c +++ b/src/main_menu2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_803D0D8.h" #include "constants/main_menu.h" #include "constants/wonder_mail.h" diff --git a/src/makuhita_dojo1.c b/src/makuhita_dojo1.c index d6990e08e..715711d70 100644 --- a/src/makuhita_dojo1.c +++ b/src/makuhita_dojo1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B60C.h" diff --git a/src/makuhita_dojo2.c b/src/makuhita_dojo2.c index 5ed76f593..27564c5f8 100644 --- a/src/makuhita_dojo2.c +++ b/src/makuhita_dojo2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_80972F4.h" diff --git a/src/menu_input.c b/src/menu_input.c index 45152b9f8..89713e9a6 100644 --- a/src/menu_input.c +++ b/src/menu_input.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800558C.h" #include "code_800D090.h" #include "code_80118A4.h" @@ -25,7 +26,6 @@ static void sub_801332C(s16 *); static void sub_8013470(MenuInputStruct *); static bool8 sub_8013DD0(unkStructFor8013AA0 *); -ALIGNED(4) static const char fill_save7[] = _("pksdir0"); const u32 gDefaultMenuTextColors[3] = { COLOR_WHITE_2, COLOR_RED, COLOR_RED }; u32 sub_8012A64(MenuInputStructSub *r0, s32 r1) diff --git a/src/options_menu1.c b/src/options_menu1.c index d10f9cc9a..6caf7f12a 100644 --- a/src/options_menu1.c +++ b/src/options_menu1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_8098BDC.h" #include "common_strings.h" diff --git a/src/options_menu2.c b/src/options_menu2.c index b48dea6a8..6e151e31f 100644 --- a/src/options_menu2.c +++ b/src/options_menu2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "constants/colors.h" #include "constants/input.h" diff --git a/src/other_menus1.c b/src/other_menus1.c index 225fbf54d..5d0940a26 100644 --- a/src/other_menus1.c +++ b/src/other_menus1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "bg_palette_buffer.h" #include "code_800558C.h" #include "code_8009804.h" diff --git a/src/other_menus2.c b/src/other_menus2.c index 8fc98d5fe..682631fc9 100644 --- a/src/other_menus2.c +++ b/src/other_menus2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_8094F88.h" #include "constants/communication_error_codes.h" #include "constants/dungeon.h" diff --git a/src/party_list_menu.c b/src/party_list_menu.c index 56c44f7f3..7497d475c 100644 --- a/src/party_list_menu.c +++ b/src/party_list_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_80130A8.h" diff --git a/src/pelipper_board.c b/src/pelipper_board.c index b9d90c1a1..cd0f11967 100644 --- a/src/pelipper_board.c +++ b/src/pelipper_board.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_802DE84.h" #include "mailbox.h" #include "pokemon.h" @@ -65,7 +66,6 @@ const u8 gPelipperBoard_BulletinBoard[] = "Bulletin Board"; const u8 gPelipperBoard_JobList[] = "Job List"; const u8 gPelipperBoard_Accepted[] = "Accepted"; const u8 gPelipperStatusSlash[] = "/"; -static const u8 sPelipperfill[] = "pksdir0"; extern void sub_802ECB4(void); extern void nullsub_134(void); diff --git a/src/personality_test.c b/src/personality_test.c index f08287de8..bf4b128e6 100644 --- a/src/personality_test.c +++ b/src/personality_test.c @@ -336,7 +336,14 @@ const UnkTextStruct2 gUnknown_80F4244 = NULL }; -const char filler[] = "pksdir0"; // CHUNSOFT inserted for aligning data + + + +// FILE 2: + + + +const char filler[] = "pksdir0"; const s16 gPartners[NUM_PARTNERS] = { @@ -813,6 +820,18 @@ void sub_803CE6C() sub_803CECC(); // Free 203B404 } + + + + + + +// THIS IS A NEW FILE: + + + + + void sub_803CEAC(void) { gUnknown_203B404 = MemoryAlloc(sizeof(struct PersonalityStruct_203B404), 8); diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index 224bca31e..ba266bb36 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_803B050.h" diff --git a/src/pokemon_news2.c b/src/pokemon_news2.c index caf043373..be189360d 100644 --- a/src/pokemon_news2.c +++ b/src/pokemon_news2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "game_options.h" diff --git a/src/pokemon_news3.c b/src/pokemon_news3.c index 0014a464d..3da672b0f 100644 --- a/src/pokemon_news3.c +++ b/src/pokemon_news3.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_803B050.h" diff --git a/src/post_office_guide1.c b/src/post_office_guide1.c index c7c24fba5..7dbd9abf5 100644 --- a/src/post_office_guide1.c +++ b/src/post_office_guide1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "input.h" #include "memory.h" diff --git a/src/post_office_guide2.c b/src/post_office_guide2.c index 490d1a23a..7a32401ea 100644 --- a/src/post_office_guide2.c +++ b/src/post_office_guide2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_803B050.h" diff --git a/src/quick_save_read.c b/src/quick_save_read.c index 39c0a4fd1..01c805493 100644 --- a/src/quick_save_read.c +++ b/src/quick_save_read.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "memory.h" #include "quick_save_read.h" diff --git a/src/quick_save_write.c b/src/quick_save_write.c index a429cb3ed..3e1535ac8 100644 --- a/src/quick_save_write.c +++ b/src/quick_save_write.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "memory.h" #include "quick_save_write.h" @@ -17,9 +18,9 @@ void PrepareQuickSaveWrite(u8 *r0, u32 r1, u8 r2) sQuickSaveWrite->state = 0; if (sQuickSaveWrite->unkC != 0) - sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20); + sub_80141B4(sUnknown_80D45AC, 0, 0, 0x20); else - sub_80141B4(gUnknown_80D45AC, 0, 0, 0x20); + sub_80141B4(sUnknown_80D45AC, 0, 0, 0x20); } u32 WriteQuickSave(void) @@ -48,19 +49,19 @@ u32 WriteQuickSave(void) sub_80121E0(987655); if (sQuickSaveWrite->unkC != 0) - sub_80141B4(gUnknown_80D45F4, 0, 0, 0x301); + sub_80141B4(sUnknown_80D45F4, 0, 0, 0x301); else - sub_80141B4(gUnknown_80D4668, 0, 0, 0x301); + sub_80141B4(sUnknown_80D4668, 0, 0, 0x301); sQuickSaveWrite->state = 3; break; case SAVE_NOT_WRTTEN: - sub_80141B4(gSaveNotWritten2, 0, 0, 0); + sub_80141B4(sSaveNotWritten, 0, 0, 0); sQuickSaveWrite->state = 4; break; default: sub_80121E0(987657); - sub_80141B4(gSaveFailed2, 0, 0, 0x301); + sub_80141B4(sSaveFailed, 0, 0, 0x301); sQuickSaveWrite->state = 3; break; } diff --git a/src/rescue_password_menu.c b/src/rescue_password_menu.c index fec4c24d8..1ca574b68 100644 --- a/src/rescue_password_menu.c +++ b/src/rescue_password_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_8094F88.h" #include "constants/main_menu.h" @@ -240,8 +241,6 @@ const MenuItem gUnknown_80E75A0[4] = { ALIGNED(4) const u8 sUnknown_80E75C0[] = _("{CENTER_ALIGN}new mail."); ALIGNED(4) const u8 sUnknown_80E75CC[] = _("{CENTER_ALIGN}There is no space for receiving"); -static const u8 fill0[] = "pksdir0"; - extern void sub_8031D70(u32, u32); extern void sub_8031E10(void); extern u32 sub_8031DCC(void); diff --git a/src/save_menu.c b/src/save_menu.c index e1faf246e..3df2b042e 100644 --- a/src/save_menu.c +++ b/src/save_menu.c @@ -114,8 +114,6 @@ ALIGNED(4) const u8 gUnknown_80E7178[] = _("{CENTER_ALIGN}The data could not be "{CENTER_ALIGN}Please turn off the power and remove\n" "{CENTER_ALIGN}and reinsert the DS Card."); -ALIGNED(4) static const u8 save_menu_fill0[] = "pksdir0"; - extern void sub_8038440(); extern void sub_80384D0(); extern void sub_8038830(); diff --git a/src/save_read.c b/src/save_read.c index a5f1a8111..3f37afdb3 100644 --- a/src/save_read.c +++ b/src/save_read.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "memory.h" #include "save.h" diff --git a/src/save_write.c b/src/save_write.c index aa27ce6f4..cc8fd70b0 100644 --- a/src/save_write.c +++ b/src/save_write.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_8098BDC.h" #include "memory.h" diff --git a/src/thank_you_wonder_mail.c b/src/thank_you_wonder_mail.c index 229ac4155..a4455fcc9 100644 --- a/src/thank_you_wonder_mail.c +++ b/src/thank_you_wonder_mail.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "code_80130A8.h" diff --git a/src/trade_items_menu.c b/src/trade_items_menu.c index 7d9912766..0313994ed 100644 --- a/src/trade_items_menu.c +++ b/src/trade_items_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" diff --git a/src/wigglytuff_shop1.c b/src/wigglytuff_shop1.c index ebbb358bc..daebb1f83 100644 --- a/src/wigglytuff_shop1.c +++ b/src/wigglytuff_shop1.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "constants/input.h" diff --git a/src/wigglytuff_shop2.c b/src/wigglytuff_shop2.c index fd1750b75..0325869fb 100644 --- a/src/wigglytuff_shop2.c +++ b/src/wigglytuff_shop2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" #include "common_strings.h" diff --git a/src/wigglytuff_shop3.c b/src/wigglytuff_shop3.c index 119b16952..089075c9c 100644 --- a/src/wigglytuff_shop3.c +++ b/src/wigglytuff_shop3.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_8023144.h" diff --git a/src/wonder_mail.c b/src/wonder_mail.c index 8d42c5252..bf0cfcd91 100644 --- a/src/wonder_mail.c +++ b/src/wonder_mail.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_8023868.h" @@ -170,102 +171,6 @@ enum FriendRescueStates DEFAULT_FALLBACK_STATE = 61 }; -const MenuItem gUnknown_80DD970[] = -{ - {"Receive SOS Mail", 0x0}, - {"Leave for Rescue", 0x1}, - {"Send A-OK Mail", 0x2}, - {"Delete Mail", 0x3}, - {"Cancel", 0xA}, - {NULL, 0xA} -}; - -const MenuItem gUnknown_80DD9EC[] = -{ - {"Delete SOS Mail", 0x5}, - {"Delete A-OK Mail", 0x6}, - {"Delete All Mail", 0x7}, - {"Cancel", 0xA}, - {NULL, 0xA} -}; - -const MenuItem gUnknown_80DDA48[] = -{ - {"Yes", 0x8}, - {"Cancel", 0xA}, - {NULL, 0xA} -}; - -const MenuItem gUnknown_80DDA64[] = -{ - {"Yes", 0x8}, - {"No", 0x9}, - {NULL, 0xA} -}; - -const MenuItem gUnknown_80DDA80[] = -{ - {"Yes", 0x8}, - {"No", 0x9}, - {"Cancel", 0xA}, - {NULL, 0xA} -}; - -const MenuItem gUnknown_80DDAA0[] = -{ - {SendWOPokemon, 0x12}, - {"Cancel", 0xA}, - {NULL, 0xA}, -}; - -ALIGNED(4) const u8 SendWOPokemon[] = _("Send w/o Pokémon"); - -const UnkTextStruct2 gUnknown_80DDACC = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x16, 0x07, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80DDAE4 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x16, 0x06, - 0x06, 0x04, - 0x04, 0x00, - NULL -}; - -const MenuItem gUnknown_80DDAFC[] = -{ - {"Confirm", 0xB}, - {"Info", 0xC}, - {NULL, 0xA}, -}; - -const MenuItem gUnknown_80DDB24[] = -{ - {"Game Link cable", 0xD}, - {"Password", 0xF}, - {"Cancel", 0xA}, - {NULL, 0xA}, -}; - -const MenuItem gUnknown_80DDB60[] = -{ - {SendPokemon_80DDB98, 0x11}, - {DontSendPokemon_80DDB80, 0x12}, - {"Cancel", 0xA}, - {NULL, 0xA}, -}; - -ALIGNED(4) const u8 DontSendPokemon_80DDB80[] = _("Don{APOSTROPHE}t Send Pokémon"); -ALIGNED(4) const u8 SendPokemon_80DDB98[] = _("Send Pokémon"); - #include "data/wonder_mail_1.h" diff --git a/src/wonder_mail_2.c b/src/wonder_mail_2.c index 85a4f6c38..9c35b2f80 100644 --- a/src/wonder_mail_2.c +++ b/src/wonder_mail_2.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_800D090.h" #include "code_80130A8.h" #include "code_802F204.h" diff --git a/src/wonder_mail_3_mid.c b/src/wonder_mail_3_mid.c index a9253656c..657b89c58 100644 --- a/src/wonder_mail_3_mid.c +++ b/src/wonder_mail_3_mid.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_802DE84.h" #include "code_802F204.h" #include "constants/input.h" @@ -232,7 +233,6 @@ const UnkTextStruct2 gUnknown_80E072C = { ALIGNED(4) const u8 gUnknown_80E0744[] = "Dungeons"; ALIGNED(4) const u8 gUnknown_80E0750[] = {0x83, 0xC2}; ALIGNED(4) const u8 gUnknown_80E0754[] = {0x83, 0xC0}; -ALIGNED(4) static const u8 sFill1[] = "pksdir0"; u32 sub_802EF48(void) { diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index f0acccb29..6fe5af693 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -1,5 +1,6 @@ -#include "constants/input.h" #include "global.h" +#include "globaldata.h" +#include "constants/input.h" #include "text1.h" #include "text2.h" #include "memory.h" @@ -75,7 +76,6 @@ ALIGNED(4) const u8 ToDoList[] = "To-Do List"; ALIGNED(4) const u8 SOSMail[] = "SOS Mail"; ALIGNED(4) const u8 RequestList[] = "Request List"; ALIGNED(4) const u8 SOSList[] = "SOS List"; -static const u8 wonder_mail_fill[] = "pksdir0"; extern bool8 HasNoWonderMailType(u32); extern s32 sub_8030A74(void); diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index 337c35bb8..b4b204f46 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "constants/wonder_mail.h" #include "memory.h" #include "text1.h" @@ -48,7 +49,6 @@ const UnkTextStruct2 gUnknown_80E091C = { const u8 gUnknown_80E0934[] = "ID:"; const u8 gUnknown_80E0938[] = "%-4d"; -static const u8 wonder_mail_fill[] = "pksdir0"; extern void sub_8030DD4(void); extern void CreateRescueDescription(unkStruct_802C39C *); diff --git a/src/wonder_mail_6.c b/src/wonder_mail_6.c index b82d8e7af..a23a3e62e 100644 --- a/src/wonder_mail_6.c +++ b/src/wonder_mail_6.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "input.h" #include "memory.h" #include "text1.h" @@ -77,7 +78,6 @@ ALIGNED(4) const u8 gUnknown_80E09D8[] = _( ALIGNED(4) const u8 gUnknown_80E0A0C[] = _( " ...Uh{COMMA} no?\n" "You don{APOSTROPHE}t have any {COLOR_1 LIGHT_BLUE}A-OK Mail{END_COLOR_TEXT_1}."); -const u8 wonder_mail_6_fill[] = "pksdir0"; extern void sub_80306A8(s32, u32, u32, u32); extern void sub_8031300(void); diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index 81b4534b6..fd8e11a59 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_803B050.h" #include "code_80958E8_1.h" diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index 3f3c9178a..66aad1d6c 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_803B050.h" #include "code_80958E8_1.h" diff --git a/src/wonder_mail_802C860.c b/src/wonder_mail_802C860.c index 95c69b0ae..ac732cb28 100644 --- a/src/wonder_mail_802C860.c +++ b/src/wonder_mail_802C860.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_803B050.h" #include "code_802DE84.h" diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index b3bda2362..a8c42da0c 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_803B050.h" #include "constants/input.h" diff --git a/src/wonder_mail_802D098.c b/src/wonder_mail_802D098.c index 9c74965b0..3efa8a008 100644 --- a/src/wonder_mail_802D098.c +++ b/src/wonder_mail_802D098.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80130A8.h" #include "code_802DE84.h" #include "code_803B050.h" diff --git a/src/wonder_mail_main_menu.c b/src/wonder_mail_main_menu.c index 14bee125e..31f809d34 100644 --- a/src/wonder_mail_main_menu.c +++ b/src/wonder_mail_main_menu.c @@ -1,4 +1,5 @@ #include "global.h" +#include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" #include "code_801B3C0.h" @@ -35,60 +36,11 @@ #define PASSWORD_INVALID 19 #define PASSWORD_ENTRY_SCREEN 18 -extern const char Cancel_80E7D24[]; -extern const char Yes_80E7D2C[]; - -const MenuItem gSelectWonderMailModeMainMenuItems[3] = -{ - {"Send", WONDER_MAIL_MODE_SEND}, - {"Receive", WONDER_MAIL_MODE_RECEIVE}, - {NULL, 0} -}; - -const MenuItem gSendWonderMailMainMenuItems[4] = -{ - {"Game Link cable", WONDER_MAIL_GAME_LINK}, - {"Password", -1}, - {"Cancel", 8}, - {NULL, 0} - -}; - -const MenuItem gReceiveWonderMailMainMenuItems[4] = -{ - {"Game Link cable", WONDER_MAIL_GAME_LINK}, - {"Password", WONDER_MAIL_PASSWORD}, - {"Cancel", 8}, - {NULL, 0} -}; - -const MenuItem gUnknown_80E78F8[3] = -{ - {"Yes", 6}, - {"Cancel", 0}, - {NULL, 0} -}; - - -#include "data/wonder_mail_main_menu.h" - -const MenuItem WonderMailMainUnused[3] = -{ - {Yes_80E7D2C, 1}, - {Cancel_80E7D24, 0}, - {NULL, 0}, -}; - -ALIGNED(4) const char Cancel_80E7D24[] = "Cancel"; -ALIGNED(4) const char Yes_80E7D2C[] = "Yes"; - -ALIGNED(4) const char wonder_mail_main_fill1[] = "pksdir0"; - +// size: 0x49C struct unkStruct_203B3E8 { - // size: 0x49C - u8 state; // state variable? - u8 PasswordEntryBuffer[PASSWORD_BUFFER_SIZE]; // Wonder Mail Buffer... + /* 0x0 */ u8 state; + /* 0x1 */ u8 PasswordEntryBuffer[PASSWORD_BUFFER_SIZE]; // Wonder Mail Buffer... union UNK38 { WonderMail decodedMail; // 0x14 @@ -97,26 +49,24 @@ struct unkStruct_203B3E8 u8 fill68[0x1EC - 0x68]; UnkTextStruct2 unk1EC[4]; u32 unk24C; - u32 wonderMailStatus; - + /* 0x250 */ u32 wonderMailStatus; unkStruct_803B344 unk254; - unkStruct_803B344 unk308; u8 unk3BC; u8 fill3BD[0x3C0 - 0x3BD]; - unkStruct_803B344 unk3C0; - WonderMail unk474; u8 **unk488; u8 *unk48C; - s32 wonderMailMethod; - u32 wonderMailMode; - bool8 wonderMailAccepted; + /* 0x490 */ s32 wonderMailMethod; + /* 0x494 */ u32 wonderMailMode; + /* 0x498 */ bool8 wonderMailAccepted; }; EWRAM_DATA_2 struct unkStruct_203B3E8 *gUnknown_203B3E8 = {0}; +#include "data/wonder_mail_main_menu.h" + extern void SetWonderMailMainMenuState(u8); extern void sub_8030DE4(void); extern void sub_803084C(void); @@ -146,12 +96,6 @@ void AdvanceToPasswordEntryScreen(void); void HandlePasswordEntryScreen(void); void HandleInvalidPasswordMenu(void); - -bool8 sub_8039880(void) -{ - return (CountMailType(WONDER_MAIL_TYPE_SOS) != 0 || CountMailType(WONDER_MAIL_TYPE_OKD) != 0 || sub_8011C1C() == 2); -} - bool8 CreateWonderMailMenu(void) { s32 index; From 47a8644af87410fa59a1efa36e55cc80747bc87a Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Tue, 3 Oct 2023 11:31:03 -0400 Subject: [PATCH 04/10] Update data_8115F5C.s --- data/data_8115F5C.s | 242 ++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 235 insertions(+), 7 deletions(-) diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index 9268dbcd5..1a0dfabc1 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -116,171 +116,333 @@ gUnknown_8116190: @ 8116190 .global gUnknown_81161A8 gUnknown_81161A8: @ 81161A8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_809C39C .4byte sub_801D0DC +======= + .4byte 1 + .4byte 0 + .4byte sub_809C39C + .4byte sub_801D0DC +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161B8 gUnknown_81161B8: @ 81161B8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_809C3D8 .4byte sub_801D0DC +======= + .4byte 1 + .4byte 0 + .4byte sub_809C3D8 + .4byte sub_801D0DC +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161C8 gUnknown_81161C8: @ 81161C8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte DeleteKangaskhanStorage .4byte KangaskhanStorageCallback +======= + .4byte 1 + .4byte 0 + .4byte DeleteKangaskhanStorage + .4byte KangaskhanStorageCallback +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161D8 gUnknown_81161D8: @ 81161D8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte sub_8017E1C .4byte sub_8017EF4 .4byte sub_8017E54 +======= + .4byte 1 + .4byte sub_8017E1C + .4byte sub_8017EF4 + .4byte sub_8017E54 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161E8 gUnknown_81161E8: @ 81161E8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte DestroyFelicityBank .4byte FelicityBankCallback +======= + .4byte 1 + .4byte 0 + .4byte DestroyFelicityBank + .4byte FelicityBankCallback +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161F8 gUnknown_81161F8: @ 81161F8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte DeleteKecleonBros .4byte KecleonBrosCallback +======= + .4byte 1 + .4byte 0 + .4byte DeleteKecleonBros + .4byte KecleonBrosCallback +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116208 gUnknown_8116208: @ 8116208 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_801FD7C .4byte sub_801FC40 +======= + .4byte 1 + .4byte 0 + .4byte sub_801FD7C + .4byte sub_801FC40 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116218 gUnknown_8116218: @ 8116218 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_8021D1C .4byte sub_8021C5C +======= + .4byte 1 + .4byte 0 + .4byte sub_8021D1C + .4byte sub_8021C5C +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116228 gUnknown_8116228: @ 8116228 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte sub_8027F88 .4byte sub_809C504 .4byte sub_8028078 +======= + .4byte 1 + .4byte sub_8027F88 + .4byte sub_809C504 + .4byte sub_8028078 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116238 gUnknown_8116238: @ 8116238 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte sub_802B2D4 .4byte sub_802B3B8 .4byte sub_802B358 +======= + .4byte 1 + .4byte sub_802B2D4 + .4byte sub_802B3B8 + .4byte sub_802B358 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116248 gUnknown_8116248: @ 8116248 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte CreateThankYouMailPelipper .4byte CleanThankYouMailPelipper .4byte ThankYouMailPelipperCallback +======= + .4byte 1 + .4byte CreateThankYouMailPelipper + .4byte CleanThankYouMailPelipper + .4byte ThankYouMailPelipperCallback +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116258 gUnknown_8116258: @ 8116258 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte CleanHelperPelipper .4byte HelperPelipperCallback +======= + .4byte 1 + .4byte 0 + .4byte CleanHelperPelipper + .4byte HelperPelipperCallback +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116268 gUnknown_8116268: @ 8116268 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte sub_802E864 .4byte sub_809C550 .4byte sub_802E890 +======= + .4byte 1 + .4byte sub_802E864 + .4byte sub_809C550 + .4byte sub_802E890 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116278 gUnknown_8116278: @ 8116278 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .4byte sub_802DFB0 .4byte sub_802E06C .4byte sub_802DFD8 +======= + .4byte 1 + .4byte sub_802DFB0 + .4byte sub_802E06C + .4byte sub_802DFD8 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116288 gUnknown_8116288: @ 8116288 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_802DC00 .4byte sub_802DBD4 +======= + .4byte 1 + .4byte 0 + .4byte sub_802DC00 + .4byte sub_802DBD4 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116298 gUnknown_8116298: @ 8116298 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 +======= + .4byte 1 + .4byte 0 + .4byte MakuhitaDojo_Delete + .4byte sub_802FE58 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162A8 gUnknown_81162A8: @ 81162A8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 +======= + .4byte 1 + .4byte 0 + .4byte MakuhitaDojo_Delete + .4byte sub_802FE58 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162B8 gUnknown_81162B8: @ 81162B8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 +======= + .4byte 1 + .4byte 0 + .4byte MakuhitaDojo_Delete + .4byte sub_802FE58 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162C8 gUnknown_81162C8: @ 81162C8 +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .4byte CreateTestTracker .4byte sub_809C464 .4byte HandleTestTrackerState +======= + .4byte 0 + .4byte CreateTestTracker + .4byte sub_809C464 + .4byte HandleTestTrackerState +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162D8 gUnknown_81162D8: @ 81162D8 +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_8035678 .4byte sub_809C478 .4byte sub_80356A0 +======= + .4byte 0 + .4byte sub_8035678 + .4byte sub_809C478 + .4byte sub_80356A0 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162E8 gUnknown_81162E8: @ 81162E8 +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_809C4B0 .4byte sub_803B120 +======= + .4byte 0 + .4byte 0 + .4byte sub_809C4B0 + .4byte sub_803B120 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162F8 gUnknown_81162F8: @ 81162F8 +<<<<<<< HEAD .byte 0x01, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_809C414 .4byte sub_8025354 +======= + .4byte 1 + .4byte 0 + .4byte sub_809C414 + .4byte sub_8025354 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116308 gUnknown_8116308: @ 8116308 +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .4byte sub_809CD48 +======= + .4byte 0 + .4byte 0 + .4byte 0 + .4byte sub_809CD48 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116318 gUnknown_8116318: @ 8116318 -@ replacing .incbin "baserom.gba", 0x116318, 0xA4 -.byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 -.4byte sub_801B72C -.4byte sub_801B6AC + .4byte 1 + .4byte 0 + .4byte sub_801B72C + .4byte sub_801B6AC + .byte 0x70, 0x6b, 0x73, 0x64, 0x69, 0x72, 0x30, 0x00, 0x00, 0x00, 0x00, 0x00, 0x70, 0x6b, 0x73, 0x64 .byte 0x69, 0x72, 0x30, 0x00 @@ -305,9 +467,16 @@ gUnknown_8116390: @ 8116390 .global gUnknown_81163BC gUnknown_81163BC: @ 81163BC @ replacing .incbin "baserom.gba", 0x1163BC, 0x28 -.byte 0x37, 0x00, 0x00, 0x00, 0x42, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x69, 0x00, 0xf4, 0x01 -.byte 0x3a, 0x00, 0x00, 0x00, 0x3f, 0x00, 0x00, 0x00, 0x69, 0x00, 0xf4, 0x01, 0x14, 0x00, 0x00, 0x00 -.byte 0x3f, 0x00, 0x00, 0x00, 0x69, 0x00, 0x10, 0x27 +.byte 0x37, 0x00, 0x00, 0x00 +.byte 0x42, 0x00, 0x00, 0x00 +.byte 0x3f, 0x00, 0x00, 0x00 +.byte 0x69, 0x00, 0xf4, 0x01 +.byte 0x3a, 0x00, 0x00, 0x00 +.byte 0x3f, 0x00, 0x00, 0x00 +.byte 0x69, 0x00, 0xf4, 0x01 +.byte 0x14, 0x00, 0x00, 0x00 +.byte 0x3f, 0x00, 0x00, 0x00 +.byte 0x69, 0x00, 0x10, 0x27 .global gUnknown_81163E4 gUnknown_81163E4: @ 81163E4 @@ -322,6 +491,7 @@ gUnknown_81163F0: @ 81163F0 .global gUnknown_811642C gUnknown_811642C: @ 811642C +<<<<<<< HEAD .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" .string "{CENTER_ALIGN}had too many items already...\0" .align 2,0 @@ -329,13 +499,32 @@ gUnknown_811642C: @ 811642C .align 2,0 .string "pksdir0\0" .align 2,0 +======= + .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" + .string "{CENTER_ALIGN}had too many items already...\0" + + .align 2,0 + .string "pksdir0\0" + + .align 2,0 + .string "pksdir0\0" + .align 2,0 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116478 gUnknown_8116478: @ 8116478 +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .string "pksdir0\0" .align 2,0 +======= + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .string "pksdir0\0" + .align 2,0 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116488 gUnknown_8116488: @ 8116488 @@ -565,7 +754,21 @@ SearchScriptLabelText: .string "pksdir0\0" .align 2,0 +<<<<<<< HEAD .global gUnknown_81168A8 +======= + .4byte GroundScriptFile_Text + .byte 0xbe, 0x16, 0x00, 0x00 + .4byte SearchScriptLabelText + + .string "Script label search error %d\0" + + .align 2,0 + .string "pksdir0\0" + .align 2,0 + + .global gUnknown_81168A8 +>>>>>>> 1d73365a (Update data_8115F5C.s) gUnknown_81168A8: @ 81168A8 @ replacing .incbin "baserom.gba", 0x1168A8, 0x67C .byte 0xb2, 0x00, 0xb2, 0x00, 0xb2, 0x00, 0xff, 0xff, 0xff, 0xff, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00 @@ -1127,11 +1330,20 @@ GroundMap_Action_Text: @ Action .global gUnknown_8117770 gUnknown_8117770: @ 8117770 +<<<<<<< HEAD .4byte GroundMap_FileText .byte 0x7f, 0x05, 0x00, 0x00 .4byte GroundMap_Action_Text .string "pksdir0\0" .align 2,0 +======= + .4byte GroundMap_FileText + .byte 0x7f, 0x05, 0x00, 0x00 + .4byte GroundMap_Action_Text + + .string "pksdir0\0" + .align 2,0 +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8117784 gUnknown_8117784: @ 8117784 @@ -1144,9 +1356,16 @@ gGroundWeatherSelect: @ 811779C .global gUnknown_81177BC gUnknown_81177BC: @ 81177BC +<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .string "pksdir0\0" +======= + .byte 0x00, 0x00, 0x00, 0x00 + .byte 0x00, 0x00, 0x00, 0x00 + + .string "pksdir0\0" +>>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81177CC gUnknown_81177CC: @ 81177CC @@ -2229,10 +2448,19 @@ GroundLink_SelectText: @ SelectText .global gUnknown_8118798 gUnknown_8118798: @ 8118798 +<<<<<<< HEAD .4byte GroundLink_FileText .byte 0x4D, 0x00, 0x00, 0x00 .4byte GroundLink_SelectText .string "pksdir0\0" +======= + .4byte GroundLink_FileText + .byte 0x4D, 0x00, 0x00, 0x00 + .4byte GroundLink_SelectText + + .string "pksdir0\0" + +>>>>>>> 1d73365a (Update data_8115F5C.s) @ Ground Event .global GroundEventFile_Text From 14a15254a5526a9dc1c36d8e4b83224b4e7403a3 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Thu, 5 Oct 2023 03:51:13 -0400 Subject: [PATCH 05/10] Some charmap stuff --- charmap.txt | 19 +-- data/data_80E7D40.s | 4 +- data/data_8107010.s | 8 +- data/data_8115F5C.s | 280 +++++--------------------------------------- 4 files changed, 44 insertions(+), 267 deletions(-) diff --git a/charmap.txt b/charmap.txt index 1a0f11334..5b0b96af6 100644 --- a/charmap.txt +++ b/charmap.txt @@ -239,26 +239,31 @@ 'カ' = 83 4A 'ナ' = 83 69 - RIGHT_ARROW = 81 A8 LEFT_ARROW = 81 A9 UP_ARROW = 81 AA POKE = 83 BF 83 C4 @ This is actually two characters which can render separately; may need to be split eventually. +UNK_ICON_83_C0 = 83 C0 +UNK_ICON_83_C1 = 83 C1 +UNK_ICON_83_C2 = 83 C2 +UNK_ICON_83_C3 = 83 C3 +NDS_Y_BUTTON = 83 C7 + +R_BUTTON = 84 86 +UNK_ICON_84_87 = 84 87 + UNK_ICON_40 = 87 40 STAR_BULLET = 87 42 SPEECH_BUBBLE = 87 45 TM = 87 4E ORB = 87 4F - A_BUTTON = 87 50 B_BUTTON = 87 51 -L_BUTTON = 87 74 -R_BUTTON = 84 86 -SELECT_BUTTON = 87 72 87 73 -START_BUTTON = 87 53 87 71 DPAD = 87 52 -NDS_Y_BUTTON = 83 c7 +START_BUTTON = 87 53 87 71 +SELECT_BUTTON = 87 72 87 73 +L_BUTTON = 87 74 @ Character codes escaped with a '~'. DOUBLE_QUOTE = 7E 32 32 @ ~22 - double quote (") is a best guess until we find it in strings that are actually rendered diff --git a/data/data_80E7D40.s b/data/data_80E7D40.s index ff413ec93..1665d2092 100644 --- a/data/data_80E7D40.s +++ b/data/data_80E7D40.s @@ -1077,9 +1077,7 @@ gSmeargleMissionDescription: @ 80E88C8 .global gMedichamMissionDescription gMedichamMissionDescription: @ 80E8920 .string "This is {COLOR_1 YELLOW}Medicham{END_COLOR_TEXT_1}. Rescue me{COMMA} please!\n" - .string "The reward is a secret" - .byte 0x81, 0x60 - .string "♪ " + .string "The reward is a secret〜♪ " .align 2,0 .global gUnknown_80E8968 diff --git a/data/data_8107010.s b/data/data_8107010.s index 532ce377f..fb383eac7 100644 --- a/data/data_8107010.s +++ b/data/data_8107010.s @@ -1227,16 +1227,12 @@ gUnknown_8108F10: @ 8108F10 .global gUnknown_8108F18 gUnknown_8108F18: @ 8108F18 -.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2}" -.byte 0x81, 0x40 -.string "{COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0" +.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} {COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0" .align 2,0 .global gUnknown_8108F2C gUnknown_8108F2C: @ 8108F2C -.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2}" -.byte 0x81, 0x40 -.string "B{COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0" +.string "{COLOR_2 YELLOW_4}%s{END_COLOR_TEXT_2} B{COLOR_2 CYAN}%d{END_COLOR_TEXT_2}F\0" .align 2,0 .global gUnknown_8108F40 diff --git a/data/data_8115F5C.s b/data/data_8115F5C.s index 1a0dfabc1..d09e85868 100644 --- a/data/data_8115F5C.s +++ b/data/data_8115F5C.s @@ -100,9 +100,7 @@ gUnknown_811617C: @ 811617C .global gUnknown_8116180 gUnknown_8116180: @ 8116180 -.string "{COLOR_1 YELLOW_5}" -.byte 0x87, 0x45 -.string "{END_COLOR_TEXT_1}\0" +.string "{COLOR_1 YELLOW_5}{SPEECH_BUBBLE}{END_COLOR_TEXT_1}\0" .global gUnknown_8116188 gUnknown_8116188: @ 8116188 @@ -116,325 +114,164 @@ gUnknown_8116190: @ 8116190 .global gUnknown_81161A8 gUnknown_81161A8: @ 81161A8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte sub_809C39C .4byte sub_801D0DC -======= - .4byte 1 - .4byte 0 - .4byte sub_809C39C - .4byte sub_801D0DC ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161B8 gUnknown_81161B8: @ 81161B8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte sub_809C3D8 .4byte sub_801D0DC -======= - .4byte 1 - .4byte 0 - .4byte sub_809C3D8 - .4byte sub_801D0DC ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161C8 gUnknown_81161C8: @ 81161C8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte DeleteKangaskhanStorage .4byte KangaskhanStorageCallback -======= - .4byte 1 - .4byte 0 - .4byte DeleteKangaskhanStorage - .4byte KangaskhanStorageCallback ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161D8 gUnknown_81161D8: @ 81161D8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte sub_8017E1C .4byte sub_8017EF4 .4byte sub_8017E54 -======= - .4byte 1 - .4byte sub_8017E1C - .4byte sub_8017EF4 - .4byte sub_8017E54 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161E8 gUnknown_81161E8: @ 81161E8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte DestroyFelicityBank .4byte FelicityBankCallback -======= - .4byte 1 - .4byte 0 - .4byte DestroyFelicityBank - .4byte FelicityBankCallback ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81161F8 gUnknown_81161F8: @ 81161F8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte DeleteKecleonBros .4byte KecleonBrosCallback -======= - .4byte 1 - .4byte 0 - .4byte DeleteKecleonBros - .4byte KecleonBrosCallback ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116208 gUnknown_8116208: @ 8116208 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte sub_801FD7C .4byte sub_801FC40 -======= - .4byte 1 - .4byte 0 - .4byte sub_801FD7C - .4byte sub_801FC40 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116218 gUnknown_8116218: @ 8116218 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte sub_8021D1C .4byte sub_8021C5C -======= - .4byte 1 - .4byte 0 - .4byte sub_8021D1C - .4byte sub_8021C5C ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116228 gUnknown_8116228: @ 8116228 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte sub_8027F88 .4byte sub_809C504 .4byte sub_8028078 -======= - .4byte 1 - .4byte sub_8027F88 - .4byte sub_809C504 - .4byte sub_8028078 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116238 gUnknown_8116238: @ 8116238 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte sub_802B2D4 .4byte sub_802B3B8 .4byte sub_802B358 -======= - .4byte 1 - .4byte sub_802B2D4 - .4byte sub_802B3B8 - .4byte sub_802B358 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116248 gUnknown_8116248: @ 8116248 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte CreateThankYouMailPelipper .4byte CleanThankYouMailPelipper .4byte ThankYouMailPelipperCallback -======= - .4byte 1 - .4byte CreateThankYouMailPelipper - .4byte CleanThankYouMailPelipper - .4byte ThankYouMailPelipperCallback ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116258 gUnknown_8116258: @ 8116258 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte CleanHelperPelipper .4byte HelperPelipperCallback -======= - .4byte 1 - .4byte 0 - .4byte CleanHelperPelipper - .4byte HelperPelipperCallback ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116268 gUnknown_8116268: @ 8116268 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte sub_802E864 .4byte sub_809C550 .4byte sub_802E890 -======= - .4byte 1 - .4byte sub_802E864 - .4byte sub_809C550 - .4byte sub_802E890 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116278 gUnknown_8116278: @ 8116278 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 +.4byte 1 .4byte sub_802DFB0 .4byte sub_802E06C .4byte sub_802DFD8 -======= - .4byte 1 - .4byte sub_802DFB0 - .4byte sub_802E06C - .4byte sub_802DFD8 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116288 gUnknown_8116288: @ 8116288 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte sub_802DC00 .4byte sub_802DBD4 -======= - .4byte 1 - .4byte 0 - .4byte sub_802DC00 - .4byte sub_802DBD4 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116298 gUnknown_8116298: @ 8116298 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 -======= - .4byte 1 - .4byte 0 - .4byte MakuhitaDojo_Delete - .4byte sub_802FE58 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162A8 gUnknown_81162A8: @ 81162A8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 +.4byte 1 +.4byte 0 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 -======= - .4byte 1 - .4byte 0 - .4byte MakuhitaDojo_Delete - .4byte sub_802FE58 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162B8 gUnknown_81162B8: @ 81162B8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 -.4byte MakuhitaDojo_Delete -.4byte sub_802FE58 -======= .4byte 1 .4byte 0 .4byte MakuhitaDojo_Delete .4byte sub_802FE58 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162C8 gUnknown_81162C8: @ 81162C8 -<<<<<<< HEAD -.byte 0x00, 0x00, 0x00, 0x00 -.4byte CreateTestTracker -.4byte sub_809C464 -.4byte HandleTestTrackerState -======= .4byte 0 .4byte CreateTestTracker .4byte sub_809C464 .4byte HandleTestTrackerState ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162D8 gUnknown_81162D8: @ 81162D8 -<<<<<<< HEAD -.byte 0x00, 0x00, 0x00, 0x00 -.4byte sub_8035678 -.4byte sub_809C478 -.4byte sub_80356A0 -======= .4byte 0 .4byte sub_8035678 .4byte sub_809C478 .4byte sub_80356A0 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162E8 gUnknown_81162E8: @ 81162E8 -<<<<<<< HEAD -.byte 0x00, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 -.4byte sub_809C4B0 -.4byte sub_803B120 -======= .4byte 0 .4byte 0 .4byte sub_809C4B0 .4byte sub_803B120 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81162F8 gUnknown_81162F8: @ 81162F8 -<<<<<<< HEAD -.byte 0x01, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 -.4byte sub_809C414 -.4byte sub_8025354 -======= .4byte 1 .4byte 0 .4byte sub_809C414 .4byte sub_8025354 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116308 gUnknown_8116308: @ 8116308 -<<<<<<< HEAD -.byte 0x00, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 -.byte 0x00, 0x00, 0x00, 0x00 -.4byte sub_809CD48 -======= .4byte 0 .4byte 0 .4byte 0 .4byte sub_809CD48 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116318 gUnknown_8116318: @ 8116318 @@ -491,7 +328,6 @@ gUnknown_81163F0: @ 81163F0 .global gUnknown_811642C gUnknown_811642C: @ 811642C -<<<<<<< HEAD .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" .string "{CENTER_ALIGN}had too many items already...\0" .align 2,0 @@ -499,32 +335,13 @@ gUnknown_811642C: @ 811642C .align 2,0 .string "pksdir0\0" .align 2,0 -======= - .string "{CENTER_ALIGN}However{COMMA} {ARG_NICKNAME_0}{APOSTROPHE}s team\n" - .string "{CENTER_ALIGN}had too many items already...\0" - - .align 2,0 - .string "pksdir0\0" - - .align 2,0 - .string "pksdir0\0" - .align 2,0 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116478 gUnknown_8116478: @ 8116478 -<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .string "pksdir0\0" .align 2,0 -======= - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .string "pksdir0\0" - .align 2,0 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8116488 gUnknown_8116488: @ 8116488 @@ -754,21 +571,7 @@ SearchScriptLabelText: .string "pksdir0\0" .align 2,0 -<<<<<<< HEAD .global gUnknown_81168A8 -======= - .4byte GroundScriptFile_Text - .byte 0xbe, 0x16, 0x00, 0x00 - .4byte SearchScriptLabelText - - .string "Script label search error %d\0" - - .align 2,0 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_81168A8 ->>>>>>> 1d73365a (Update data_8115F5C.s) gUnknown_81168A8: @ 81168A8 @ replacing .incbin "baserom.gba", 0x1168A8, 0x67C .byte 0xb2, 0x00, 0xb2, 0x00, 0xb2, 0x00, 0xff, 0xff, 0xff, 0xff, 0x67, 0x01, 0x00, 0x00, 0x00, 0x00 @@ -1330,20 +1133,11 @@ GroundMap_Action_Text: @ Action .global gUnknown_8117770 gUnknown_8117770: @ 8117770 -<<<<<<< HEAD .4byte GroundMap_FileText .byte 0x7f, 0x05, 0x00, 0x00 .4byte GroundMap_Action_Text .string "pksdir0\0" .align 2,0 -======= - .4byte GroundMap_FileText - .byte 0x7f, 0x05, 0x00, 0x00 - .4byte GroundMap_Action_Text - - .string "pksdir0\0" - .align 2,0 ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_8117784 gUnknown_8117784: @ 8117784 @@ -1356,16 +1150,9 @@ gGroundWeatherSelect: @ 811779C .global gUnknown_81177BC gUnknown_81177BC: @ 81177BC -<<<<<<< HEAD .byte 0x00, 0x00, 0x00, 0x00 .byte 0x00, 0x00, 0x00, 0x00 .string "pksdir0\0" -======= - .byte 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - - .string "pksdir0\0" ->>>>>>> 1d73365a (Update data_8115F5C.s) .global gUnknown_81177CC gUnknown_81177CC: @ 81177CC @@ -2448,19 +2235,10 @@ GroundLink_SelectText: @ SelectText .global gUnknown_8118798 gUnknown_8118798: @ 8118798 -<<<<<<< HEAD .4byte GroundLink_FileText .byte 0x4D, 0x00, 0x00, 0x00 .4byte GroundLink_SelectText .string "pksdir0\0" -======= - .4byte GroundLink_FileText - .byte 0x4D, 0x00, 0x00, 0x00 - .4byte GroundLink_SelectText - - .string "pksdir0\0" - ->>>>>>> 1d73365a (Update data_8115F5C.s) @ Ground Event .global GroundEventFile_Text From 276fa5ad0a92381e2f08b69e9b2082c1f461065b Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Mon, 9 Oct 2023 18:55:45 -0400 Subject: [PATCH 06/10] Dec item constants --- include/constants/item.h | 480 +++++++++++++++++++-------------------- 1 file changed, 240 insertions(+), 240 deletions(-) diff --git a/include/constants/item.h b/include/constants/item.h index 104c3d441..239500337 100644 --- a/include/constants/item.h +++ b/include/constants/item.h @@ -37,246 +37,246 @@ #define ITEM_ACTION_TYPE_ORBS 13 // see https://bulbapedia.bulbagarden.net/wiki/List_of_items_by_index_number_(Rescue_Team) -#define ITEM_NOTHING 0x0 -#define ITEM_STICK 0x1 -#define ITEM_IRON_THORN 0x2 -#define ITEM_SILVER_SPIKE 0x3 -#define ITEM_GOLD_FANG 0x4 -#define ITEM_CACNEA_SPIKE 0x5 -#define ITEM_CORSOLA_TWIG 0x6 -#define ITEM_GRAVELEROCK 0x7 -#define ITEM_GEO_PEBBLE 0x8 -#define ITEM_MOBILE_SCARF 0x9 -#define ITEM_HEAL_RIBBON 0xA -#define ITEM_TWIST_BAND 0xB -#define ITEM_SCOPE_LENS 0xC -#define ITEM_PATSY_BAND 0xD -#define ITEM_NOSTICK_CAP 0xE -#define ITEM_PIERCE_BAND 0xF -#define ITEM_JOY_RIBBON 0x10 -#define ITEM_X_RAY_SPECS 0x11 -#define ITEM_PERSIM_BAND 0x12 -#define ITEM_POWER_BAND 0x13 -#define ITEM_PECHA_SCARF 0x14 -#define ITEM_INSOMNISCOPE 0x15 -#define ITEM_WARP_SCARF 0x16 -#define ITEM_TIGHT_BELT 0x17 -#define ITEM_SNEAK_SCARF 0x18 -#define ITEM_GOLD_RIBBON 0x19 -#define ITEM_GOGGLE_SPECS 0x1A -#define ITEM_DIET_RIBBON 0x1B -#define ITEM_TRAP_SCARF 0x1C -#define ITEM_RACKET_BAND 0x1D -#define ITEM_DEF_SCARF 0x1E -#define ITEM_STAMINA_BAND 0x1F -#define ITEM_PLAIN_RIBBON 0x20 -#define ITEM_SPECIAL_BAND 0x21 -#define ITEM_ZINC_BAND 0x22 -#define ITEM_DETECT_BAND 0x23 -#define ITEM_ALERT_SPECS 0x24 -#define ITEM_DODGE_SCARF 0x25 -#define ITEM_BOUNCE_BAND 0x26 -#define ITEM_CURVE_BAND 0x27 -#define ITEM_WHIFF_SPECS 0x28 -#define ITEM_NO_AIM_SCOPE 0x29 -#define ITEM_LOCKON_SPECS 0x2A -#define ITEM_MUNCH_BELT 0x2B -#define ITEM_PASS_SCARF 0x2C -#define ITEM_WEATHER_BAND 0x2D -#define ITEM_FRIEND_BOW 0x2E -#define ITEM_BEAUTY_SCARF 0x2F -#define ITEM_SUN_RIBBON 0x30 -#define ITEM_LUNAR_RIBBON 0x31 -#define ITEM_RING_D 0x32 -#define ITEM_RING_E 0x33 -#define ITEM_RING_F 0x34 -#define ITEM_HEAL_SEED 0x35 -#define ITEM_WISH_STONE 0x36 -#define ITEM_ORAN_BERRY 0x37 -#define ITEM_SITRUS_BERRY 0x38 -#define ITEM_EYEDROP_SEED 0x39 -#define ITEM_REVIVER_SEED 0x3A -#define ITEM_BLINKER_SEED 0x3B -#define ITEM_DOOM_SEED 0x3C -#define ITEM_ALLURE_SEED 0x3D -#define ITEM_LIFE_SEED 0x3E -#define ITEM_RAWST_BERRY 0x3F -#define ITEM_HUNGER_SEED 0x40 -#define ITEM_QUICK_SEED 0x41 -#define ITEM_PECHA_BERRY 0x42 -#define ITEM_CHERI_BERRY 0x43 -#define ITEM_TOTTER_SEED 0x44 -#define ITEM_SLEEP_SEED 0x45 -#define ITEM_PLAIN_SEED 0x46 -#define ITEM_WARP_SEED 0x47 -#define ITEM_BLAST_SEED 0x48 -#define ITEM_GINSENG 0x49 -#define ITEM_JOY_SEED 0x4A -#define ITEM_CHESTO_BERRY 0x4B -#define ITEM_STUN_SEED 0x4C -#define ITEM_MAX_ELIXIR 0x4D -#define ITEM_PROTEIN 0x4E -#define ITEM_CALCIUM 0x4F -#define ITEM_IRON 0x50 -#define ITEM_ZINC 0x51 -#define ITEM_APPLE 0x52 -#define ITEM_BIG_APPLE 0x53 -#define ITEM_GRIMY_FOOD 0x54 -#define ITEM_HUGE_APPLE 0x55 -#define ITEM_WHITE_GUMMI 0x56 -#define ITEM_RED_GUMMI 0x57 -#define ITEM_BLUE_GUMMI 0x58 -#define ITEM_GRASS_GUMMI 0x59 -#define ITEM_YELLOW_GUMMI 0x5A -#define ITEM_CLEAR_GUMMI 0x5B -#define ITEM_ORANGE_GUMMI 0x5C -#define ITEM_PINK_GUMMI 0x5D -#define ITEM_BROWN_GUMMI 0x5E -#define ITEM_SKY_GUMMI 0x5F -#define ITEM_GOLD_GUMMI 0x60 -#define ITEM_GREEN_GUMMI 0x61 -#define ITEM_GRAY_GUMMI 0x62 -#define ITEM_PURPLE_GUMMI 0x63 -#define ITEM_ROYAL_GUMMI 0x64 -#define ITEM_BLACK_GUMMI 0x65 -#define ITEM_SILVER_GUMMI 0x66 -#define ITEM_BANANA 0x67 -#define ITEM_CHESTNUT 0x68 -#define ITEM_POKE 0x69 // 105 (0x69) -#define ITEM_UPGRADE 0x6A -#define ITEM_KINGS_ROCK 0x6B -#define ITEM_THUNDERSTONE 0x6C -#define ITEM_DEEPSEASCALE 0x6D -#define ITEM_DEEPSEATOOTH 0x6E -#define ITEM_SUN_STONE 0x6F -#define ITEM_MOON_STONE 0x70 -#define ITEM_FIRE_STONE 0x71 -#define ITEM_WATER_STONE 0x72 -#define ITEM_METAL_COAT 0x73 -#define ITEM_LEAF_STONE 0x74 -#define ITEM_DRAGON_SCALE 0x75 -#define ITEM_LINK_CABLE 0x76 -#define ITEM_ICE_PART 0x77 -#define ITEM_STEEL_PART 0x78 -#define ITEM_ROCK_PART 0x79 -#define ITEM_MUSIC_BOX 0x7A -#define ITEM_KEY 0x7B -#define ITEM_TM_USED_TM 0x7C -#define ITEM_TM_FOCUS_PUNCH 0x7D -#define ITEM_TM_DRAGON_CLAW 0x7E -#define ITEM_TM_WATER_PULSE 0x7F -#define ITEM_TM_CALM_MIND 0x80 -#define ITEM_TM_ROAR 0x81 -#define ITEM_TM_TOXIC 0x82 -#define ITEM_TM_HAIL 0x83 -#define ITEM_TM_BULK_UP 0x84 -#define ITEM_TM_BULLET_SEED 0x85 -#define ITEM_TM_HIDDEN_POWER 0x86 -#define ITEM_TM_SUNNY_DAY 0x87 -#define ITEM_TM_TAUNT 0x88 -#define ITEM_TM_ICE_BEAM 0x89 -#define ITEM_TM_BLIZZARD 0x8A -#define ITEM_TM_HYPER_BEAM 0x8B -#define ITEM_TM_LIGHT_SCREEN 0x8C -#define ITEM_TM_PROTECT 0x8D -#define ITEM_TM_RAIN_DANCE 0x8E -#define ITEM_TM_GIGA_DRAIN 0x8F -#define ITEM_TM_SAFEGUARD 0x90 -#define ITEM_TM_FRUSTRATION 0x91 -#define ITEM_TM_SOLARBEAM 0x92 -#define ITEM_TM_IRON_TAIL 0x93 -#define ITEM_TM_THUNDERBOLT 0x94 -#define ITEM_TM_THUNDER 0x95 -#define ITEM_TM_EARTHQUAKE 0x96 -#define ITEM_TM_RETURN 0x97 -#define ITEM_TM_DIG 0x98 -#define ITEM_TM_PSYCHIC 0x99 -#define ITEM_TM_SHADOW_BALL 0x9A -#define ITEM_TM_BRICK_BREAK 0x9B -#define ITEM_TM_DOUBLE_TEAM 0x9C -#define ITEM_TM_REFLECT 0x9D -#define ITEM_TM_SHOCK_WAVE 0x9E -#define ITEM_TM_FLAMETHROWER 0x9F -#define ITEM_TM_SLUDGE_BOMB 0xA0 -#define ITEM_TM_SANDSTORM 0xA1 -#define ITEM_TM_FIRE_BLAST 0xA2 -#define ITEM_TM_ROCK_TOMB 0xA3 -#define ITEM_TM_AERIAL_ACE 0xA4 -#define ITEM_TM_TORMENT 0xA5 -#define ITEM_TM_FACADE 0xA6 -#define ITEM_TM_SECRET_POWER 0xA7 -#define ITEM_TM_REST 0xA8 -#define ITEM_TM_ATTRACT 0xA9 -#define ITEM_TM_THIEF 0xAA -#define ITEM_TM_STEEL_WING 0xAB -#define ITEM_TM_SKILL_SWAP 0xAC -#define ITEM_TM_SNATCH 0xAD -#define ITEM_TM_OVERHEAT 0xAE -#define ITEM_TM_WIDE_SLASH 0xAF -#define ITEM_TM_EXCAVATE 0xB0 -#define ITEM_TM_SPIN_SLASH 0xB1 -#define ITEM_SEE_TRAP_ORB 0xB2 -#define ITEM_MUG_ORB 0xB3 -#define ITEM_REBOUND_ORB 0xB4 -#define ITEM_LOB_ORB 0xB5 -#define ITEM_SWITCHER_ORB 0xB6 -#define ITEM_BLOWBACK_ORB 0xB7 -#define ITEM_WARP_ORB 0xB8 -#define ITEM_TRANSFER_ORB 0xB9 -#define ITEM_SLOW_ORB 0xBA -#define ITEM_QUICK_ORB 0xBB -#define ITEM_LUMINOUS_ORB 0xBC -#define ITEM_PETRIFY_ORB 0xBD -#define ITEM_STAYAWAY_ORB 0xBE -#define ITEM_POUNCE_ORB 0xBF -#define ITEM_TRAWL_ORB 0xC0 -#define ITEM_CLEANSE_ORB 0xC1 -#define ITEM_OBSERVER_ORB 0xC2 -#define ITEM_DECOY_ORB 0xC3 -#define ITEM_SLUMBER_ORB 0xC4 -#define ITEM_TOTTER_ORB 0xC5 -#define ITEM_TWO_EDGE_ORB 0xC6 -#define ITEM_SILENCE_ORB 0xC7 -#define ITEM_ESCAPE_ORB 0xC8 -#define ITEM_SCANNER_ORB 0xC9 -#define ITEM_RADAR_ORB 0xCA -#define ITEM_DROUGHT_ORB 0xCB -#define ITEM_TRAPBUST_ORB 0xCC -#define ITEM_ROLLCALL_ORB 0xCD -#define ITEM_INVISIFY_ORB 0xCE -#define ITEM_ONE_SHOT_ORB 0xCF -#define ITEM_IDENTIFY_ORB 0xD0 -#define ITEM_VACUUM_CUT 0xD1 -#define ITEM_REVIVER_ORB 0xD2 -#define ITEM_SHOCKER_ORB 0xD3 -#define ITEM_SIZEBUST_ORB 0xD4 -#define ITEM_ONE_ROOM_ORB 0xD5 -#define ITEM_FILL_IN_ORB 0xD6 -#define ITEM_TRAPPER_ORB 0xD7 -#define ITEM_POSSESS_ORB 0xD8 -#define ITEM_ITEMIZER_ORB 0xD9 -#define ITEM_HURL_ORB 0xDA -#define ITEM_MOBILE_ORB 0xDB -#define ITEM_TOSS_ORB 0xDC -#define ITEM_STAIRS_ORB 0xDD -#define ITEM_LONGTOSS_ORB 0xDE -#define ITEM_PIERCE_ORB 0xDF -#define ITEM_HM_CUT 0xE0 -#define ITEM_HM_FLY 0xE1 -#define ITEM_HM_SURF 0xE2 -#define ITEM_HM_STRENGTH 0xE3 -#define ITEM_HM_FLASH 0xE4 -#define ITEM_HM_ROCK_SMASH 0xE5 -#define ITEM_HM_WATERFALL 0xE6 -#define ITEM_HM_DIVE 0xE7 -#define ITEM_LINK_BOX 0xE8 -#define ITEM_SWITCH_BOX 0xE9 -#define ITEM_WEAVILE_FIG 0xEA -#define ITEM_MIME_JR_FIG 0xEB -#define ITEM_BEATUP_ORB 0xEC -#define ITEM_G_MACHINE_6 0xED -#define ITEM_G_MACHINE_7 0xEE -#define ITEM_G_MACHINE_8 0xEF +#define ITEM_NOTHING 0 +#define ITEM_STICK 1 +#define ITEM_IRON_THORN 2 +#define ITEM_SILVER_SPIKE 3 +#define ITEM_GOLD_FANG 4 +#define ITEM_CACNEA_SPIKE 5 +#define ITEM_CORSOLA_TWIG 6 +#define ITEM_GRAVELEROCK 7 +#define ITEM_GEO_PEBBLE 8 +#define ITEM_MOBILE_SCARF 9 +#define ITEM_HEAL_RIBBON 10 +#define ITEM_TWIST_BAND 11 +#define ITEM_SCOPE_LENS 12 +#define ITEM_PATSY_BAND 13 +#define ITEM_NOSTICK_CAP 14 +#define ITEM_PIERCE_BAND 15 +#define ITEM_JOY_RIBBON 16 +#define ITEM_X_RAY_SPECS 17 +#define ITEM_PERSIM_BAND 18 +#define ITEM_POWER_BAND 19 +#define ITEM_PECHA_SCARF 20 +#define ITEM_INSOMNISCOPE 21 +#define ITEM_WARP_SCARF 22 +#define ITEM_TIGHT_BELT 23 +#define ITEM_SNEAK_SCARF 24 +#define ITEM_GOLD_RIBBON 25 +#define ITEM_GOGGLE_SPECS 26 +#define ITEM_DIET_RIBBON 27 +#define ITEM_TRAP_SCARF 28 +#define ITEM_RACKET_BAND 29 +#define ITEM_DEF_SCARF 30 +#define ITEM_STAMINA_BAND 31 +#define ITEM_PLAIN_RIBBON 32 +#define ITEM_SPECIAL_BAND 33 +#define ITEM_ZINC_BAND 34 +#define ITEM_DETECT_BAND 35 +#define ITEM_ALERT_SPECS 36 +#define ITEM_DODGE_SCARF 37 +#define ITEM_BOUNCE_BAND 38 +#define ITEM_CURVE_BAND 39 +#define ITEM_WHIFF_SPECS 40 +#define ITEM_NO_AIM_SCOPE 41 +#define ITEM_LOCKON_SPECS 42 +#define ITEM_MUNCH_BELT 43 +#define ITEM_PASS_SCARF 44 +#define ITEM_WEATHER_BAND 45 +#define ITEM_FRIEND_BOW 46 +#define ITEM_BEAUTY_SCARF 47 +#define ITEM_SUN_RIBBON 48 +#define ITEM_LUNAR_RIBBON 49 +#define ITEM_RING_D 50 +#define ITEM_RING_E 51 +#define ITEM_RING_F 52 +#define ITEM_HEAL_SEED 53 +#define ITEM_WISH_STONE 54 +#define ITEM_ORAN_BERRY 55 +#define ITEM_SITRUS_BERRY 56 +#define ITEM_EYEDROP_SEED 57 +#define ITEM_REVIVER_SEED 58 +#define ITEM_BLINKER_SEED 59 +#define ITEM_DOOM_SEED 60 +#define ITEM_ALLURE_SEED 61 +#define ITEM_LIFE_SEED 62 +#define ITEM_RAWST_BERRY 63 +#define ITEM_HUNGER_SEED 64 +#define ITEM_QUICK_SEED 65 +#define ITEM_PECHA_BERRY 66 +#define ITEM_CHERI_BERRY 67 +#define ITEM_TOTTER_SEED 68 +#define ITEM_SLEEP_SEED 69 +#define ITEM_PLAIN_SEED 70 +#define ITEM_WARP_SEED 71 +#define ITEM_BLAST_SEED 72 +#define ITEM_GINSENG 73 +#define ITEM_JOY_SEED 74 +#define ITEM_CHESTO_BERRY 75 +#define ITEM_STUN_SEED 76 +#define ITEM_MAX_ELIXIR 77 +#define ITEM_PROTEIN 78 +#define ITEM_CALCIUM 79 +#define ITEM_IRON 80 +#define ITEM_ZINC 81 +#define ITEM_APPLE 82 +#define ITEM_BIG_APPLE 83 +#define ITEM_GRIMY_FOOD 84 +#define ITEM_HUGE_APPLE 85 +#define ITEM_WHITE_GUMMI 86 +#define ITEM_RED_GUMMI 87 +#define ITEM_BLUE_GUMMI 88 +#define ITEM_GRASS_GUMMI 89 +#define ITEM_YELLOW_GUMMI 90 +#define ITEM_CLEAR_GUMMI 91 +#define ITEM_ORANGE_GUMMI 92 +#define ITEM_PINK_GUMMI 93 +#define ITEM_BROWN_GUMMI 94 +#define ITEM_SKY_GUMMI 95 +#define ITEM_GOLD_GUMMI 96 +#define ITEM_GREEN_GUMMI 97 +#define ITEM_GRAY_GUMMI 98 +#define ITEM_PURPLE_GUMMI 99 +#define ITEM_ROYAL_GUMMI 100 +#define ITEM_BLACK_GUMMI 101 +#define ITEM_SILVER_GUMMI 102 +#define ITEM_BANANA 103 +#define ITEM_CHESTNUT 104 +#define ITEM_POKE 105 +#define ITEM_UPGRADE 106 +#define ITEM_KINGS_ROCK 107 +#define ITEM_THUNDERSTONE 108 +#define ITEM_DEEPSEASCALE 109 +#define ITEM_DEEPSEATOOTH 110 +#define ITEM_SUN_STONE 111 +#define ITEM_MOON_STONE 112 +#define ITEM_FIRE_STONE 113 +#define ITEM_WATER_STONE 114 +#define ITEM_METAL_COAT 115 +#define ITEM_LEAF_STONE 116 +#define ITEM_DRAGON_SCALE 117 +#define ITEM_LINK_CABLE 118 +#define ITEM_ICE_PART 119 +#define ITEM_STEEL_PART 120 +#define ITEM_ROCK_PART 121 +#define ITEM_MUSIC_BOX 122 +#define ITEM_KEY 123 +#define ITEM_TM_USED_TM 124 +#define ITEM_TM_FOCUS_PUNCH 125 +#define ITEM_TM_DRAGON_CLAW 126 +#define ITEM_TM_WATER_PULSE 127 +#define ITEM_TM_CALM_MIND 128 +#define ITEM_TM_ROAR 129 +#define ITEM_TM_TOXIC 130 +#define ITEM_TM_HAIL 131 +#define ITEM_TM_BULK_UP 132 +#define ITEM_TM_BULLET_SEED 133 +#define ITEM_TM_HIDDEN_POWER 134 +#define ITEM_TM_SUNNY_DAY 135 +#define ITEM_TM_TAUNT 136 +#define ITEM_TM_ICE_BEAM 137 +#define ITEM_TM_BLIZZARD 138 +#define ITEM_TM_HYPER_BEAM 139 +#define ITEM_TM_LIGHT_SCREEN 140 +#define ITEM_TM_PROTECT 141 +#define ITEM_TM_RAIN_DANCE 142 +#define ITEM_TM_GIGA_DRAIN 143 +#define ITEM_TM_SAFEGUARD 144 +#define ITEM_TM_FRUSTRATION 145 +#define ITEM_TM_SOLARBEAM 146 +#define ITEM_TM_IRON_TAIL 147 +#define ITEM_TM_THUNDERBOLT 148 +#define ITEM_TM_THUNDER 149 +#define ITEM_TM_EARTHQUAKE 150 +#define ITEM_TM_RETURN 151 +#define ITEM_TM_DIG 152 +#define ITEM_TM_PSYCHIC 153 +#define ITEM_TM_SHADOW_BALL 154 +#define ITEM_TM_BRICK_BREAK 155 +#define ITEM_TM_DOUBLE_TEAM 156 +#define ITEM_TM_REFLECT 157 +#define ITEM_TM_SHOCK_WAVE 158 +#define ITEM_TM_FLAMETHROWER 159 +#define ITEM_TM_SLUDGE_BOMB 160 +#define ITEM_TM_SANDSTORM 161 +#define ITEM_TM_FIRE_BLAST 162 +#define ITEM_TM_ROCK_TOMB 163 +#define ITEM_TM_AERIAL_ACE 164 +#define ITEM_TM_TORMENT 165 +#define ITEM_TM_FACADE 166 +#define ITEM_TM_SECRET_POWER 167 +#define ITEM_TM_REST 168 +#define ITEM_TM_ATTRACT 169 +#define ITEM_TM_THIEF 170 +#define ITEM_TM_STEEL_WING 171 +#define ITEM_TM_SKILL_SWAP 172 +#define ITEM_TM_SNATCH 173 +#define ITEM_TM_OVERHEAT 174 +#define ITEM_TM_WIDE_SLASH 175 +#define ITEM_TM_EXCAVATE 176 +#define ITEM_TM_SPIN_SLASH 177 +#define ITEM_SEE_TRAP_ORB 178 +#define ITEM_MUG_ORB 179 +#define ITEM_REBOUND_ORB 180 +#define ITEM_LOB_ORB 181 +#define ITEM_SWITCHER_ORB 182 +#define ITEM_BLOWBACK_ORB 183 +#define ITEM_WARP_ORB 184 +#define ITEM_TRANSFER_ORB 185 +#define ITEM_SLOW_ORB 186 +#define ITEM_QUICK_ORB 187 +#define ITEM_LUMINOUS_ORB 188 +#define ITEM_PETRIFY_ORB 189 +#define ITEM_STAYAWAY_ORB 190 +#define ITEM_POUNCE_ORB 191 +#define ITEM_TRAWL_ORB 192 +#define ITEM_CLEANSE_ORB 193 +#define ITEM_OBSERVER_ORB 194 +#define ITEM_DECOY_ORB 195 +#define ITEM_SLUMBER_ORB 196 +#define ITEM_TOTTER_ORB 197 +#define ITEM_TWO_EDGE_ORB 198 +#define ITEM_SILENCE_ORB 199 +#define ITEM_ESCAPE_ORB 200 +#define ITEM_SCANNER_ORB 201 +#define ITEM_RADAR_ORB 202 +#define ITEM_DROUGHT_ORB 203 +#define ITEM_TRAPBUST_ORB 204 +#define ITEM_ROLLCALL_ORB 205 +#define ITEM_INVISIFY_ORB 206 +#define ITEM_ONE_SHOT_ORB 207 +#define ITEM_IDENTIFY_ORB 208 +#define ITEM_VACUUM_CUT 209 +#define ITEM_REVIVER_ORB 210 +#define ITEM_SHOCKER_ORB 211 +#define ITEM_SIZEBUST_ORB 212 +#define ITEM_ONE_ROOM_ORB 213 +#define ITEM_FILL_IN_ORB 214 +#define ITEM_TRAPPER_ORB 215 +#define ITEM_POSSESS_ORB 216 +#define ITEM_ITEMIZER_ORB 217 +#define ITEM_HURL_ORB 218 +#define ITEM_MOBILE_ORB 219 +#define ITEM_TOSS_ORB 220 +#define ITEM_STAIRS_ORB 221 +#define ITEM_LONGTOSS_ORB 222 +#define ITEM_PIERCE_ORB 223 +#define ITEM_HM_CUT 224 +#define ITEM_HM_FLY 225 +#define ITEM_HM_SURF 226 +#define ITEM_HM_STRENGTH 227 +#define ITEM_HM_FLASH 228 +#define ITEM_HM_ROCK_SMASH 229 +#define ITEM_HM_WATERFALL 230 +#define ITEM_HM_DIVE 231 +#define ITEM_LINK_BOX 232 +#define ITEM_SWITCH_BOX 233 +#define ITEM_WEAVILE_FIG 234 +#define ITEM_MIME_JR_FIG 235 +#define ITEM_BEATUP_ORB 236 +#define ITEM_G_MACHINE_6 237 +#define ITEM_G_MACHINE_7 238 +#define ITEM_G_MACHINE_8 239 #define NUMBER_OF_ITEM_IDS (ITEM_G_MACHINE_8 + 1) From 4c41a29719260ea9e319e124a2a005188fe8753c Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 20 Oct 2023 01:35:32 -0400 Subject: [PATCH 07/10] Clean/split pokemon_mail and personality_test --- charmap.txt | 2 + data/data_80E7D40.s | 2682 +----------------- data/dungeon/D51/pokemon_found.json | 2 +- data/dungeon/LapisCave/pokemon_found.json | 2 +- data/dungeon/PurityForest/pokemon_found.json | 8 +- data/dungeon/WishCave/pokemon_found.json | 6 +- data/personality_test.s | 1948 ------------- include/code_2.h | 8 + include/code_803B050.h | 22 - include/code_803C1D0.h | 2 + include/code_803D110.h | 9 + include/code_8094D28.h | 8 + include/constants/monster.h | 2 +- include/constants/personality_test.h | 5 +- include/dungeon.h | 1 + include/personality_test.h | 87 - include/personality_test1.h | 37 + include/personality_test2.h | 26 + include/pokemon.h | 1 + include/pokemon_mail.h | 30 +- include/pokemon_mail_pre.h | 38 + include/structs/str_pokemon.h | 6 + include/text2.h | 1 + ld_script.txt | 10 +- src/code_802DE84.c | 2 +- src/code_803B050.c | 484 ---- src/code_803C1B4.c | 1 - src/code_8094F88.c | 4 +- src/code_80958E8.c | 18 +- src/data/nature_description.h | 233 -- src/data/personality_test1.h | 1509 ++++++++++ src/data/personality_test2.h | 45 + src/data/pokemon_mail.h | 2019 +++++++++---- src/data/pokemon_mail_pre.h | 573 ++++ src/load_screen.c | 2 +- src/personality_test.c | 1037 ------- src/personality_test1.c | 412 +++ src/personality_test2.c | 303 ++ src/pokemon_mail.c | 443 ++- src/pokemon_mail_pre.c | 6 + src/pokemon_news1.c | 1 - src/post_office_guide2.c | 2 +- src/wonder_mail_4.c | 18 +- src/wonder_mail_5.c | 19 +- src/wonder_mail_802C10C.c | 1 + src/wonder_mail_802C4C8.c | 1 + src/wonder_mail_802CDD4.c | 1 + sym_ewram2.txt | 3 +- 48 files changed, 4927 insertions(+), 7153 deletions(-) delete mode 100644 data/personality_test.s create mode 100644 include/code_2.h create mode 100644 include/code_803D110.h create mode 100644 include/code_8094D28.h delete mode 100644 include/personality_test.h create mode 100644 include/personality_test1.h create mode 100644 include/personality_test2.h create mode 100644 include/pokemon_mail_pre.h delete mode 100644 src/code_803B050.c delete mode 100644 src/data/nature_description.h create mode 100644 src/data/personality_test1.h create mode 100644 src/data/personality_test2.h create mode 100644 src/data/pokemon_mail_pre.h delete mode 100644 src/personality_test.c create mode 100644 src/personality_test1.c create mode 100644 src/personality_test2.c create mode 100644 src/pokemon_mail_pre.c diff --git a/charmap.txt b/charmap.txt index 5b0b96af6..f13fab1bd 100644 --- a/charmap.txt +++ b/charmap.txt @@ -239,6 +239,8 @@ 'カ' = 83 4A 'ナ' = 83 69 +UNK_ICON_81_69 = 81 69 +UNK_ICON_81_6A = 81 6A RIGHT_ARROW = 81 A8 LEFT_ARROW = 81 A9 UP_ARROW = 81 AA diff --git a/data/data_80E7D40.s b/data/data_80E7D40.s index 1665d2092..6ddf8c91d 100644 --- a/data/data_80E7D40.s +++ b/data/data_80E7D40.s @@ -56,8 +56,8 @@ gUnknown_80E7F94: @ 80E7F94 st_80E7F94 5, 1, 4, 0xC2B, 0x123456, 0x19, 0x182, 0x38, 8, 0x3A, sUnknown_80E8088, sUnknown_80E8070 st_80E7F94 5, 1, 4, 0x112C, 0x123456, 4, 0x115, 0x38, 8, 0x3A, sUnknown_80E8060, sUnknown_80E8048 st_80E7F94 5, 1, 4, 0x112D, 0x123456, 1, 0x118, 0x38, 8, 0x3A, sUnknown_80E8038, sUnknown_80E8020 - st_80E7F94 5, 1, 0, 0x1B2E, 0x123456, 7, 0x9B, 0x38, 8, 0x3A, 0, 0 - st_80E7F94 5, 1, 0, 0x903, 0x123456, 0x98, 0x9E, 0x38, 8, 0x3A, 0, 0 + st_80E7F94 5, 1, 0, 0x1B2E, 0x123456, 7, 0x9B, 0x38, 8, 0x3A, 0, 0 + st_80E7F94 5, 1, 0, 0x903, 0x123456, 0x98, 0x9E, 0x38, 8, 0x3A, 0, 0 sUnknown_80E8020: @ 80E8020 .string "SHOW RESCUE 00\n" @@ -84,2680 +84,4 @@ sUnknown_80E8070: @ 80E8070 sUnknown_80E8088: @ 80E8088 .string "SHOW TITLE00\0" - .align 2, 0 - -@ code_803B050 #6 (code_803C1D0) - .string "pksdir0\0" - .align 2, 0 - - .global gUnknown_80E80A0 -gUnknown_80E80A0: @ 80E80A0 - .4byte 1 - .4byte 5 - .4byte 10 - .4byte 20 - .4byte 40 - .4byte 60 - .4byte 80 - .4byte 100 - .4byte 150 - .4byte 200 - .4byte 300 - .4byte 500 - .4byte 700 - .4byte 1000 - .4byte 1500 - .4byte 2000 - - .global gUnknown_80E80E0 -gUnknown_80E80E0: @ 80E80E0 - .2byte 201 - .2byte 376 - .2byte 380 - .2byte 291 - .2byte 293 - .2byte 14 - .2byte 81 - .2byte 82 - .2byte 307 - .2byte 94 - .2byte 145 - .2byte 146 - .2byte 144 - .2byte 412 - .2byte 269 - .2byte 268 - .2byte 270 - .2byte 275 - .2byte 150 - .2byte 409 - .2byte 408 - .2byte 413 - .2byte 274 - .2byte 276 - .2byte 405 - .2byte 406 - .2byte 407 - .2byte 151 - .2byte 411 - .2byte 410 - .2byte 414 - .2byte 420 - .2byte 421 - .2byte 422 - .2byte 0 - - .global gUnknown_80E8126 -gUnknown_80E8126: @ 80E8126 - .2byte 380 - .2byte 53 - .2byte 40 - .2byte 115 - .2byte 341 - .2byte 304 - .2byte 296 - .2byte 69 - .2byte 234 - .2byte 365 - .2byte 387 - .2byte 10 - .2byte 11 - .2byte 12 - .2byte 51 - .2byte 50 - .2byte 252 - .2byte 189 - .2byte 300 - .2byte 65 - .2byte 6 - .2byte 273 - .2byte 23 - .2byte 333 - .2byte 178 - .2byte 38 - .2byte 9 - .2byte 249 - .2byte 76 - .2byte 388 - .2byte 227 - .2byte 56 - .2byte 0 - - .global gUnknown_80E8168 -gUnknown_80E8168: @ 80E8168 - .2byte 32 - .2byte 29 - .2byte 33 - .2byte 30 - .2byte 34 - .2byte 31 - .2byte 128 - .2byte 266 - .2byte 338 - .2byte 339 - .2byte 337 - .2byte 336 - - .global gUnknown_80E8180 -gUnknown_80E8180: @ 80E8180 - .2byte 44 - .2byte 116 - .2byte 70 - .2byte 116 - .2byte 102 - .2byte 116 - .2byte 299 - .2byte 116 - .2byte 44 - .2byte 111 - .2byte 191 - .2byte 111 - .2byte 25 - .2byte 108 - .2byte 133 - .2byte 108 - .2byte 37 - .2byte 113 - .2byte 58 - .2byte 113 - .2byte 133 - .2byte 113 - .2byte 61 - .2byte 114 - .2byte 90 - .2byte 114 - .2byte 120 - .2byte 114 - .2byte 133 - .2byte 114 - .2byte 296 - .2byte 114 - .2byte 30 - .2byte 112 - .2byte 33 - .2byte 112 - .2byte 35 - .2byte 112 - .2byte 39 - .2byte 112 - .2byte 325 - .2byte 112 - - .global gUnknown_80E81D4 -gUnknown_80E81D4: @ 80E81D4 - .2byte 23 - .2byte 93 - .2byte 24 - .2byte 93 - .2byte 373 - .2byte 98 - .2byte 292 - .2byte 97 - .2byte 332 - .2byte 92 - .2byte 119 - .2byte 88 - .2byte 280 - .2byte 87 - .2byte 372 - .2byte 98 - .2byte 387 - .2byte 101 - .2byte 308 - .2byte 97 - .2byte 309 - .2byte 97 - .2byte 168 - .2byte 97 - .2byte 159 - .2byte 88 - .2byte 416 - .2byte 96 - .2byte 133 - .2byte 86 - .2byte 74 - .2byte 98 - .2byte 167 - .2byte 97 - .2byte 246 - .2byte 91 - .2byte 339 - .2byte 97 - .2byte 95 - .2byte 98 - .2byte 59 - .2byte 87 - .2byte 185 - .2byte 98 - .2byte 70 - .2byte 89 - .2byte 71 - .2byte 89 - .2byte 194 - .2byte 88 - .2byte 245 - .2byte 91 - .2byte 252 - .2byte 102 - .2byte 190 - .2byte 86 - .2byte 196 - .2byte 96 - .2byte 325 - .2byte 86 - .2byte 326 - .2byte 86 - .2byte 107 - .2byte 92 - .2byte 264 - .2byte 90 - .2byte 125 - .2byte 90 - .2byte 269 - .2byte 87 - .2byte 302 - .2byte 86 - .2byte 160 - .2byte 88 - .2byte 162 - .2byte 86 - .2byte 249 - .2byte 88 - .2byte 57 - .2byte 92 - .2byte 161 - .2byte 86 - .2byte 259 - .2byte 86 - .2byte 390 - .2byte 91 - .2byte 21 - .2byte 86 - .2byte 22 - .2byte 86 - .2byte 139 - .2byte 98 - .2byte 138 - .2byte 98 - .2byte 58 - .2byte 87 - .2byte 410 - .2byte 88 - .2byte 68 - .2byte 92 - .2byte 149 - .2byte 100 - .2byte 127 - .2byte 97 - .2byte 380 - .2byte 86 - .2byte 381 - .2byte 99 - .2byte 143 - .2byte 86 - .2byte 140 - .2byte 98 - .2byte 141 - .2byte 98 - .2byte 262 - .2byte 92 - .2byte 8 - .2byte 88 - .2byte 9 - .2byte 88 - .2byte 83 - .2byte 86 - .2byte 104 - .2byte 94 - .2byte 105 - .2byte 94 - .2byte 291 - .2byte 97 - .2byte 115 - .2byte 86 - .2byte 311 - .2byte 89 - .2byte 310 - .2byte 89 - .2byte 343 - .2byte 88 - .2byte 192 - .2byte 89 - .2byte 277 - .2byte 89 - .2byte 10 - .2byte 97 - .2byte 303 - .2byte 88 - .2byte 130 - .2byte 88 - .2byte 78 - .2byte 87 - .2byte 38 - .2byte 87 - .2byte 228 - .2byte 86 - .2byte 306 - .2byte 96 - .2byte 182 - .2byte 89 - .2byte 255 - .2byte 88 - .2byte 99 - .2byte 88 - .2byte 44 - .2byte 89 - .2byte 328 - .2byte 102 - .2byte 229 - .2byte 97 - .2byte 411 - .2byte 94 - .2byte 232 - .2byte 94 - .2byte 287 - .2byte 101 - .2byte 98 - .2byte 88 - .2byte 235 - .2byte 86 - .2byte 169 - .2byte 93 - .2byte 63 - .2byte 96 - .2byte 314 - .2byte 86 - .2byte 290 - .2byte 97 - .2byte 94 - .2byte 99 - .2byte 128 - .2byte 86 - .2byte 129 - .2byte 88 - .2byte 81 - .2byte 90 - .2byte 92 - .2byte 99 - .2byte 93 - .2byte 99 - .2byte 349 - .2byte 87 - .2byte 67 - .2byte 92 - .2byte 14 - .2byte 97 - .2byte 341 - .2byte 93 - .2byte 329 - .2byte 102 - .2byte 54 - .2byte 88 - .2byte 330 - .2byte 102 - .2byte 318 - .2byte 86 - .2byte 299 - .2byte 89 - .2byte 256 - .2byte 94 - .2byte 400 - .2byte 100 - .2byte 19 - .2byte 86 - .2byte 55 - .2byte 88 - .2byte 42 - .2byte 93 - .2byte 76 - .2byte 98 - .2byte 75 - .2byte 98 - .2byte 48 - .2byte 97 - .2byte 307 - .2byte 96 - .2byte 112 - .2byte 94 - .2byte 111 - .2byte 94 - .2byte 396 - .2byte 88 - .2byte 272 - .2byte 98 - .2byte 247 - .2byte 88 - .2byte 356 - .2byte 89 - .2byte 384 - .2byte 99 - .2byte 344 - .2byte 88 - .2byte 106 - .2byte 92 - .2byte 360 - .2byte 86 - .2byte 145 - .2byte 90 - .2byte 135 - .2byte 90 - .2byte 27 - .2byte 94 - .2byte 28 - .2byte 94 - .2byte 117 - .2byte 88 - .2byte 397 - .2byte 88 - .2byte 90 - .2byte 88 - .2byte 288 - .2byte 86 - .2byte 367 - .2byte 88 - .2byte 134 - .2byte 88 - .2byte 279 - .2byte 89 - .2byte 87 - .2byte 88 - .2byte 278 - .2byte 89 - .2byte 382 - .2byte 99 - .2byte 413 - .2byte 102 - .2byte 270 - .2byte 88 - .2byte 121 - .2byte 88 - .2byte 123 - .2byte 97 - .2byte 41 - .2byte 93 - .2byte 301 - .2byte 86 - .2byte 15 - .2byte 97 - .2byte 97 - .2byte 96 - .2byte 96 - .2byte 96 - .2byte 7 - .2byte 88 - .2byte 276 - .2byte 96 - .2byte 388 - .2byte 96 - .2byte 227 - .2byte 96 - .2byte 363 - .2byte 98 - .2byte 300 - .2byte 89 - .2byte 51 - .2byte 94 - .2byte 116 - .2byte 88 - .2byte 399 - .2byte 100 - .2byte 298 - .2byte 89 - .2byte 391 - .2byte 91 - .2byte 102 - .2byte 89 - .2byte 402 - .2byte 102 - .2byte 152 - .2byte 89 - .2byte 333 - .2byte 92 - .2byte 170 - .2byte 88 - .2byte 386 - .2byte 96 - .2byte 359 - .2byte 100 - .2byte 358 - .2byte 86 - .2byte 315 - .2byte 97 - .2byte 238 - .2byte 97 - .2byte 50 - .2byte 94 - .2byte 419 - .2byte 96 - .2byte 316 - .2byte 97 - .2byte 248 - .2byte 88 - .2byte 250 - .2byte 91 - .2byte 253 - .2byte 101 - .2byte 181 - .2byte 90 - .2byte 84 - .2byte 86 - .2byte 85 - .2byte 86 - .2byte 260 - .2byte 86 - .2byte 109 - .2byte 93 - .2byte 73 - .2byte 88 - .2byte 294 - .2byte 97 - .2byte 176 - .2byte 86 - .2byte 175 - .2byte 86 - .2byte 319 - .2byte 86 - .2byte 118 - .2byte 88 - .2byte 364 - .2byte 88 - .2byte 392 - .2byte 91 - .2byte 393 - .2byte 91 - .2byte 11 - .2byte 97 - .2byte 385 - .2byte 89 - .2byte 257 - .2byte 94 - .2byte 347 - .2byte 87 - .2byte 43 - .2byte 89 - .2byte 353 - .2byte 94 - .2byte 103 - .2byte 89 - .2byte 312 - .2byte 86 - .2byte 365 - .2byte 88 - .2byte 34 - .2byte 93 - .2byte 31 - .2byte 93 - .2byte 29 - .2byte 93 - .2byte 32 - .2byte 93 - .2byte 30 - .2byte 93 - .2byte 33 - .2byte 93 - .2byte 52 - .2byte 86 - .2byte 240 - .2byte 101 - .2byte 61 - .2byte 88 - .2byte 186 - .2byte 88 - .2byte 62 - .2byte 88 - .2byte 60 - .2byte 88 - .2byte 195 - .2byte 88 - .2byte 317 - .2byte 97 - .2byte 284 - .2byte 88 - .2byte 177 - .2byte 96 - .2byte 178 - .2byte 96 - .2byte 369 - .2byte 94 - .2byte 357 - .2byte 89 - .2byte 231 - .2byte 86 - .2byte 324 - .2byte 98 - .2byte 394 - .2byte 88 - .2byte 86 - .2byte 88 - .2byte 233 - .2byte 102 - .2byte 348 - .2byte 87 - .2byte 320 - .2byte 86 - .2byte 157 - .2byte 87 - .2byte 148 - .2byte 100 - .2byte 282 - .2byte 87 - .2byte 296 - .2byte 88 - .2byte 295 - .2byte 88 - .2byte 12 - .2byte 97 - .2byte 237 - .2byte 97 - .2byte 352 - .2byte 86 - .2byte 187 - .2byte 89 - .2byte 350 - .2byte 96 - .2byte 267 - .2byte 86 - .2byte 361 - .2byte 93 - .2byte 46 - .2byte 97 - .2byte 47 - .2byte 97 - .2byte 236 - .2byte 88 - .2byte 322 - .2byte 92 - .2byte 122 - .2byte 96 - .2byte 261 - .2byte 92 - .2byte 91 - .2byte 88 - .2byte 338 - .2byte 97 - .2byte 273 - .2byte 98 - .2byte 395 - .2byte 88 - .2byte 173 - .2byte 86 - .2byte 13 - .2byte 97 - .2byte 25 - .2byte 90 - .2byte 36 - .2byte 86 - .2byte 18 - .2byte 86 - .2byte 17 - .2byte 86 - .2byte 172 - .2byte 90 - .2byte 35 - .2byte 86 - .2byte 4 - .2byte 87 - .2byte 120 - .2byte 88 - .2byte 155 - .2byte 87 - .2byte 354 - .2byte 94 - .2byte 191 - .2byte 89 - .2byte 241 - .2byte 86 - .2byte 100 - .2byte 90 - .2byte 374 - .2byte 88 - .2byte 146 - .2byte 87 - .2byte 136 - .2byte 87 - .2byte 65 - .2byte 96 - .2byte 126 - .2byte 87 - .2byte 351 - .2byte 96 - .2byte 230 - .2byte 97 - .2byte 40 - .2byte 86 - .2byte 2 - .2byte 89 - .2byte 1 - .2byte 89 - .2byte 3 - .2byte 89 - .2byte 142 - .2byte 98 - .2byte 265 - .2byte 87 - .2byte 174 - .2byte 86 - .2byte 355 - .2byte 94 - .2byte 336 - .2byte 90 - .2byte 197 - .2byte 101 - .2byte 144 - .2byte 91 - .2byte 39 - .2byte 86 - .2byte 234 - .2byte 86 - .2byte 366 - .2byte 88 - .2byte 153 - .2byte 89 - .2byte 88 - .2byte 93 - .2byte 89 - .2byte 93 - .2byte 239 - .2byte 97 - .2byte 304 - .2byte 88 - .2byte 254 - .2byte 101 - .2byte 53 - .2byte 86 - .2byte 108 - .2byte 86 - .2byte 275 - .2byte 87 - .2byte 346 - .2byte 88 - .2byte 345 - .2byte 88 - .2byte 163 - .2byte 86 - .2byte 401 - .2byte 100 - .2byte 331 - .2byte 102 - .2byte 286 - .2byte 101 - .2byte 16 - .2byte 86 - .2byte 77 - .2byte 87 - .2byte 188 - .2byte 89 - .2byte 137 - .2byte 86 - .2byte 258 - .2byte 86 - .2byte 379 - .2byte 86 - .2byte 337 - .2byte 90 - .2byte 244 - .2byte 87 - .2byte 321 - .2byte 92 - .2byte 243 - .2byte 87 - .2byte 156 - .2byte 87 - .2byte 69 - .2byte 89 - .2byte 110 - .2byte 93 - .2byte 289 - .2byte 86 - .2byte 293 - .2byte 97 - .2byte 183 - .2byte 88 - .2byte 184 - .2byte 88 - .2byte 342 - .2byte 93 - .2byte 101 - .2byte 90 - .2byte 56 - .2byte 92 - .2byte 251 - .2byte 88 - .2byte 283 - .2byte 88 - .2byte 147 - .2byte 100 - .2byte 151 - .2byte 96 - .2byte 150 - .2byte 96 - .2byte 266 - .2byte 86 - .2byte 375 - .2byte 88 - .2byte 200 - .2byte 99 - .2byte 263 - .2byte 91 - .2byte 154 - .2byte 89 - .2byte 404 - .2byte 102 - .2byte 132 - .2byte 86 - .2byte 403 - .2byte 102 - .2byte 72 - .2byte 88 - .2byte 179 - .2byte 90 - .2byte 180 - .2byte 90 - .2byte 49 - .2byte 97 - .2byte 114 - .2byte 89 - .2byte 368 - .2byte 94 - .2byte 199 - .2byte 88 - .2byte 80 - .2byte 88 - .2byte 79 - .2byte 88 - .2byte 198 - .2byte 101 - .2byte 327 - .2byte 101 - .2byte 313 - .2byte 86 - .2byte 193 - .2byte 97 - .2byte 389 - .2byte 91 - .2byte 371 - .2byte 98 - .2byte 64 - .2byte 96 - .2byte 271 - .2byte 98 - .2byte 383 - .2byte 99 - .2byte 164 - .2byte 86 - .2byte 268 - .2byte 90 - .2byte 26 - .2byte 90 - .2byte 335 - .2byte 90 - .2byte 285 - .2byte 88 - .2byte 334 - .2byte 90 - .2byte 113 - .2byte 86 - .2byte 20 - .2byte 86 - .2byte 408 - .2byte 100 - .2byte 409 - .2byte 100 - .2byte 398 - .2byte 88 - .2byte 131 - .2byte 88 - .2byte 45 - .2byte 89 - .2byte 305 - .2byte 96 - .2byte 171 - .2byte 88 - .2byte 5 - .2byte 87 - .2byte 6 - .2byte 87 - .2byte 370 - .2byte 98 - .2byte 242 - .2byte 86 - .2byte 124 - .2byte 91 - .2byte 274 - .2byte 96 - .2byte 362 - .2byte 98 - .2byte 323 - .2byte 86 - .2byte 297 - .2byte 88 - .2byte 82 - .2byte 90 - .2byte 406 - .2byte 91 - .2byte 407 - .2byte 102 - .2byte 405 - .2byte 98 - .2byte 412 - .2byte 100 - .2byte 166 - .2byte 97 - .2byte 165 - .2byte 97 - .2byte 37 - .2byte 87 - .2byte 340 - .2byte 89 - .2byte 281 - .2byte 87 - .2byte 189 - .2byte 89 - .2byte 158 - .2byte 88 - .2byte 66 - .2byte 92 - - .global gMankeyMission -gMankeyMission: @ 80E87DC - .string "Punish bad {COLOR_1 YELLOW}Mankey{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global gSmeargleMission -gSmeargleMission: @ 80E87F4 - .string "{COLOR_1 YELLOW}Smeargle{END_COLOR_TEXT_1}{APOSTROPHE}s desperate plea!\0" - .align 2,0 - - .global gMedichamMission -gMedichamMission: @ 80E8818 - .string "{COLOR_1 YELLOW}Medicham{END_COLOR_TEXT_1}: Help me!\0" - .align 2,0 - - .global gUnknown_80E8830 -gUnknown_80E8830: @ 80E8830 - .string "Deliver one {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E8848 -gUnknown_80E8848: @ 80E8848 - .string "One {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted!\0" - .align 2,0 - - .global gUnknown_80E885C -gUnknown_80E885C: @ 80E885C - .string "Save my child!\0" - .align 2,0 - - .global gUnknown_80E886C -gUnknown_80E886C: @ 80E886C - .string "Escort me to my love!\0" - .align 2,0 - - .global gUnknown_80E8884 -gUnknown_80E8884: @ 80E8884 - .string "Near %s\0" - .align 2,0 - - .global gUnknown_80E888C -gUnknown_80E888C: @ 80E888C - .string "Rescue Description\0" - .align 2,0 - - .global gMankeyMissionDescription -gMankeyMissionDescription: @ 80E88A0 - .string "Please punish bad {COLOR_1 YELLOW}Mankey{END_COLOR_TEXT_1}{APOSTROPHE}s gang.\0" - .align 2,0 - - .global gSmeargleMissionDescription -gSmeargleMissionDescription: @ 80E88C8 - .string "I didn{APOSTROPHE}t want to become a grown-up{COMMA} so I\n" - .string "fled{COMMA} but now I{APOSTROPHE}ve lost my way! Help!\0" - .align 2,0 - - .global gMedichamMissionDescription -gMedichamMissionDescription: @ 80E8920 - .string "This is {COLOR_1 YELLOW}Medicham{END_COLOR_TEXT_1}. Rescue me{COMMA} please!\n" - .string "The reward is a secret〜♪ " - .align 2,0 - - .global gUnknown_80E8968 -gUnknown_80E8968: @ 80E8968 - .string "With the item {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}{COMMA} I can\n" - .string "evolve! I{APOSTROPHE}m yearning to evolve! Help!\0" - .align 2,0 - - .global gUnknown_80E89B0 -gUnknown_80E89B0: @ 80E89B0 - .string "The {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}! What I love to eat\n" - .string "and can{APOSTROPHE}t live without! Please get one!\0" - .align 2,0 - - .global gUnknown_80E89FC -gUnknown_80E89FC: @ 80E89FC - .string "This is a rescue through communication.\n" - .string "Get a friend to help you!\0" - .align 2,0 - - .global gUnknown_80E8A40 -gUnknown_80E8A40: @ 80E8A40 - .string "This is a rescue through communication.\n" - .string "Rescue a friend!\0" - .align 2,0 - - .global gUnknown_80E8A7C -gUnknown_80E8A7C: @ 80E8A7C - .string "This is a rescue through communication.\n" - .string "Send your thanks to your friend!\0" - .align 2,0 - - .global gUnknown_80E8AC8 -gUnknown_80E8AC8: @ 80E8AC8 - .string "Client:\0" - .align 2,0 - - .global gUnknown_80E8AD0 -gUnknown_80E8AD0: @ 80E8AD0 - .string "%s{COLOR_1 GREEN}" - .byte 0x81 - .string "i%s" - .byte 0x81 - .string "j{END_COLOR_TEXT_1}\0" - .align 2,0 - - .global gUnknown_80E8AE0 -gUnknown_80E8AE0: @ 80E8AE0 - .string "Objective:\0" - .align 2,0 - - .global gUnknown_80E8AEC -gUnknown_80E8AEC: @ 80E8AEC - .string "Friend Rescue\0" - .align 2,0 - - .global gUnknown_80E8AFC -gUnknown_80E8AFC: @ 80E8AFC - .string "Deliver {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E8B10 -gUnknown_80E8B10: @ 80E8B10 - .string "Find {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E8B20 -gUnknown_80E8B20: @ 80E8B20 - .string "Help me.\0" - .align 2,0 - - .global gUnknown_80E8B2C -gUnknown_80E8B2C: @ 80E8B2C - .string "Escort to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gUnknown_80E8B40 -gUnknown_80E8B40: @ 80E8B40 - .string "Find {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global gSpecialMissionText -gSpecialMissionText: @ 80E8B50 - .string "Special mission\0" - .align 2,0 - - .global gPlaceText -gPlaceText: @ 80E8B60 - .string "Place:\0" - .align 2,0 - - .global gDifficultyText -gDifficultyText: @ 80E8B68 - .string "Difficulty:\0" - .align 2,0 - - .global gRewardText -gRewardText: @ 80E8B74 - .string "Reward:\0" - .align 2,0 - - .global gUnknown_80E8B7C -gUnknown_80E8B7C: @ 80E8B7C - .string "Wonder Mail:\0" - .align 2,0 - -@ code_803B050 #7 - .string "pksdir0\0" - .align 2,0 - - .global gUnknown_80E8B94 -gUnknown_80E8B94: @ 80E8B94 - .4byte UnkData_80E8BC8 - .4byte UnkData_80E8BC4 - .4byte UnkData_80E8BC0 - .4byte UnkData_80E8BBC - .4byte UnkData_80E8BB8 - .4byte UnkData_80E8BB4 - .4byte UnkData_80E8BB0 - - .global UnkData_80E8BB0 - UnkData_80E8BB0: - .byte 0x83, 0xc3, 0x00, 0x00 - - .global UnkData_80E8BB4 - UnkData_80E8BB4: - .byte 0x83, 0xc2, 0x00, 0x00 - - .global UnkData_80E8BB8 - UnkData_80E8BB8: - .byte 0x83, 0xc1, 0x00, 0x00 - - .global UnkData_80E8BBC - UnkData_80E8BBC: - .byte 0x83, 0xc0, 0x00, 0x00 - - .global UnkData_80E8BC0 - UnkData_80E8BC0: - .byte 0x87, 0x40, 0x00, 0x00 - - .global UnkData_80E8BC4 - UnkData_80E8BC4: - .byte 0x84, 0x87, 0x00, 0x00 - - .global UnkData_80E8BC8 - UnkData_80E8BC8: - .byte 0x81, 0x40, 0x00, 0x00 - - - .global gUnknown_80E8BCC -gUnknown_80E8BCC: @ 80E8BCC - .4byte UnkData_80E8BC8 - .4byte SuspendText - .4byte TakeJobText - .4byte DoneText - - .global DoneText - DoneText: - .string "Done\0" - .align 2,0 - - .global TakeJobText - TakeJobText: - .string "Take Job\0" - .align 2,0 - - .global SuspendText - SuspendText: - .string "Suspend\0" - .align 2,0 - - .global gUnknown_80E8BF8 -gUnknown_80E8BF8: @ 80E8BF8 - .4byte sUnknown_80E8C40 - .4byte sUnknown_80E8C38 - .4byte sUnknown_80E8C30 - .4byte sUnknown_80E8C28 - .4byte sUnknown_80E8C20 - .4byte sUnknown_80E8C18 - .4byte sUnknown_80E8C14 - -sUnknown_80E8C14: @ 80E8C14 - .string "{STAR_BULLET}\0" - .align 2, 0 - -sUnknown_80E8C18: @ 80E8C18 - .string "{COLOR_1 RED}S{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C20: @ 80E8C20 - .string "{COLOR_1 CYAN}A{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C28: @ 80E8C28 - .string "{COLOR_1 CYAN}B{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C30: @ 80E8C30 - .string "{COLOR_1 GREEN}C{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C38: @ 80E8C38 - .string "{COLOR_1 GREEN}D{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C40: @ 80E8C40 - .string "{COLOR_1 WHITE}E{END_COLOR_TEXT_1}\0" - .align 2, 0 - - .global gMissionRewardText -gMissionRewardText: @ 80E8C48 - .4byte sUnknown_80E8C90 - .4byte sUnknown_80E8C84 - .4byte sUnknown_80E8C7C - .4byte sUnknown_80E8C70 - .4byte sUnknown_80E8C64 - .4byte sUnknown_80E8C60 - -sUnknown_80E8C60: @ 80E8C60 - .string "???\0" - .align 2, 0 - -sUnknown_80E8C64: @ 80E8C64 - .string "Friend Area\0" - .align 2, 0 - -sUnknown_80E8C70: @ 80E8C70 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} + ?\0" - .align 2, 0 - -sUnknown_80E8C7C: @ 80E8C7C - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}\0" - .align 2, 0 - -sUnknown_80E8C84: @ 80E8C84 - .string "%d {POKE} + ?\0" - .align 2, 0 - -sUnknown_80E8C90: @ 80E8C90 - .string "%d {POKE}\0" - .align 2, 0 - - .global gUnknown_80E8C98 -gUnknown_80E8C98: @ 80E8C98 - .4byte sUnknown_80E8DDC - .4byte sUnknown_80E8DC8 - .4byte sUnknown_80E8DB4 - .4byte sUnknown_80E8DA4 - .4byte sUnknown_80E8D88 - .4byte sUnknown_80E8D7C - .4byte sUnknown_80E8D6C - .4byte sUnknown_80E8D5C - .4byte sUnknown_80E8D44 - .4byte sUnknown_80E8D28 - .4byte sUnknown_80E8D18 - .4byte sUnknown_80E8D0C - .4byte sUnknown_80E8CF4 - .4byte sUnknown_80E8CE0 - .4byte sUnknown_80E8CD4 - -sUnknown_80E8CD4: @ 80E8CD4 - .string "Help me!\0" - .align 2, 0 - -sUnknown_80E8CE0: @ 80E8CE0 - .string "I can{APOSTROPHE}t get home!\0" - .align 2, 0 - -sUnknown_80E8CF4: @ 80E8CF4 - .string "I{APOSTROPHE}m sad and lonely.\0" - .align 2, 0 - -sUnknown_80E8D0C: @ 80E8D0C - .string "Where am I?\0" - .align 2, 0 - -sUnknown_80E8D18: @ 80E8D18 - .string "I was KO{APOSTROPHE}d...\0" - .align 2, 0 - -sUnknown_80E8D28: @ 80E8D28 - .string "I{APOSTROPHE}m too tired to move.\0" - .align 2, 0 - -sUnknown_80E8D44: @ 80E8D44 - .string "I{APOSTROPHE}m not a fighter...\0" - .align 2, 0 - -sUnknown_80E8D5C: @ 80E8D5C - .string "I fainted...\0" - .align 2, 0 - -sUnknown_80E8D6C: @ 80E8D6C - .string "I was attacked!\0" - .align 2, 0 - -sUnknown_80E8D7C: @ 80E8D7C - .string "I{APOSTROPHE}m lost.\0" - .align 2, 0 - -sUnknown_80E8D88: @ 80E8D88 - .string "I can{APOSTROPHE}t seem to get out.\0" - .align 2, 0 - -sUnknown_80E8DA4: @ 80E8DA4 - .string "I{APOSTROPHE}m scared!\0" - .align 2, 0 - -sUnknown_80E8DB4: @ 80E8DB4 - .string "I{APOSTROPHE}m in trouble...\0" - .align 2, 0 - -sUnknown_80E8DC8: @ 80E8DC8 - .string "I can{APOSTROPHE}t get out!\0" - .align 2, 0 - -sUnknown_80E8DDC: @ 80E8DDC - .string "Help!\0" - .align 2, 0 - - .global gUnknown_80E8DE4 -gUnknown_80E8DE4: @ 80E8DE4 - .4byte sUnknown_80E8F7C - .4byte sUnknown_80E8F50 - .4byte sUnknown_80E8F2C - .4byte sUnknown_80E8F10 - .4byte sUnknown_80E8EF8 - .4byte sUnknown_80E8ED0 - .4byte sUnknown_80E8EB4 - .4byte sUnknown_80E8E98 - .4byte sUnknown_80E8E80 - .4byte sUnknown_80E8E6C - .4byte sUnknown_80E8E4C - .4byte sUnknown_80E8E2C - .4byte sUnknown_80E8E18 - -sUnknown_80E8E18: @ 80E8E18 - .string "I{APOSTROPHE}m famished...\0" - .align 2, 0 - -sUnknown_80E8E2C: @ 80E8E2C - .string "I can{APOSTROPHE}t move another step.\0" - .align 2, 0 - -sUnknown_80E8E4C: @ 80E8E4C - .string "Whoa! It{APOSTROPHE}s too rough here...\0" - .align 2, 0 - -sUnknown_80E8E6C: @ 80E8E6C - .string "I was done in...\0" - .align 2, 0 - -sUnknown_80E8E80: @ 80E8E80 - .string "I lost in a battle...\0" - .align 2, 0 - -sUnknown_80E8E98: @ 80E8E98 - .string "I{APOSTROPHE}m close to fainting...\0" - .align 2, 0 - -sUnknown_80E8EB4: @ 80E8EB4 - .string "I{APOSTROPHE}ve reached my limit...\0" - .align 2, 0 - -sUnknown_80E8ED0: @ 80E8ED0 - .string "Fighting the tough foe was a mistake...\0" - .align 2, 0 - -sUnknown_80E8EF8: @ 80E8EF8 - .string "This dungeon is scary!\0" - .align 2, 0 - -sUnknown_80E8F10: @ 80E8F10 - .string "I got lost in this dungeon!\0" - .align 2, 0 - -sUnknown_80E8F2C: @ 80E8F2C - .string "I{APOSTROPHE}m simply no good at fighting.\0" - .align 2, 0 - -sUnknown_80E8F50: @ 80E8F50 - .string "I was attacked when I was sitting still!\0" - .align 2, 0 - -sUnknown_80E8F7C: @ 80E8F7C - .string "I don{APOSTROPHE}t know how I did it{COMMA} but I can{APOSTROPHE}t exit!\0" - .align 2, 0 - - .global gUnknown_80E8FB0 -gUnknown_80E8FB0: @ 80E8FB0 - .4byte sUnknown_80E90F4 - .4byte sUnknown_80E90E8 - .4byte sUnknown_80E90D4 - .4byte sUnknown_80E90B4 - .4byte sUnknown_80E9090 - .4byte sUnknown_80E907C - .4byte sUnknown_80E9064 - .4byte sUnknown_80E903C - .4byte sUnknown_80E9024 - .4byte sUnknown_80E900C - .4byte sUnknown_80E8DDC - .4byte sUnknown_80E8FF4 - .4byte sUnknown_80E8FE4 - -sUnknown_80E8FE4: @ 80E8FE4 - .string "Aiyeeeeeeeeh!\0" - .align 2, 0 - -sUnknown_80E8FF4: @ 80E8FF4 - .string "...Gasp! Waaaaaaaah!\0" - .align 2, 0 - -sUnknown_80E900C: @ 80E900C - .string "Someone{COMMA} please help!\0" - .align 2, 0 - -sUnknown_80E9024: @ 80E9024 - .string "Rescue is requested!\0" - .align 2, 0 - -sUnknown_80E903C: @ 80E903C - .string "My consciousness is slipping... Help...\0" - .align 2, 0 - -sUnknown_80E9064: @ 80E9064 - .string "Wroooooaaar! Someone!\0" - .align 2, 0 - -sUnknown_80E907C: @ 80E907C - .string "Where am I? Help!\0" - .align 2, 0 - -sUnknown_80E9090: @ 80E9090 - .string "Why? Why is everyone attacking me?\0" - .align 2, 0 - -sUnknown_80E90B4: @ 80E90B4 - .string "I feel faint... Please help...\0" - .align 2, 0 - -sUnknown_80E90D4: @ 80E90D4 - .string "Someone{COMMA} help!\0" - .align 2, 0 - -sUnknown_80E90E8: @ 80E90E8 - .string "Someone!\0" - .align 2, 0 - -sUnknown_80E90F4: @ 80E90F4 - .string "Please{COMMA} I need help!\0" - .align 2, 0 - - .global gUnknown_80E910C -gUnknown_80E910C: @ 80E910C - .4byte sUnknown_80E91BC - .4byte sUnknown_80E91A8 - .4byte sUnknown_80E9190 - .4byte sUnknown_80E917C - .4byte sUnknown_80E8DDC - .4byte sUnknown_80E9170 - .4byte sUnknown_80E9160 - .4byte sUnknown_80E914C - .4byte sUnknown_80E9144 - .4byte sUnknown_80E9134 - -sUnknown_80E9134: @ 80E9134 - .string "Disappearance!\0" - .align 2, 0 - -sUnknown_80E9144: @ 80E9144 - .string "Hurry!\0" - .align 2, 0 - -sUnknown_80E914C: @ 80E914C - .string "Hasn{APOSTROPHE}t come back.\0" - .align 2, 0 - -sUnknown_80E9160: @ 80E9160 - .string "I{APOSTROPHE}m worried.\0" - .align 2, 0 - -sUnknown_80E9170: @ 80E9170 - .string "Somebody!\0" - .align 2, 0 - -sUnknown_80E917C: @ 80E917C - .string "Failed to return.\0" - .align 2, 0 - -sUnknown_80E9190: @ 80E9190 - .string "Hurry{COMMA} save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E91A8: @ 80E91A8 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} needs help!\0" - .align 2, 0 - -sUnknown_80E91BC: @ 80E91BC - .string "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - - .global gUnknown_80E91D4 -gUnknown_80E91D4: @ 80E91D4 - .4byte sUnknown_80E97FC - .4byte sUnknown_80E97E0 - .4byte sUnknown_80E97C4 - .4byte sUnknown_80E97A0 - .4byte sUnknown_80E9788 - .4byte sUnknown_80E976C - .4byte sUnknown_80E9748 - .4byte sUnknown_80E9728 - .4byte sUnknown_80E9708 - .4byte sUnknown_80E96E4 - .4byte sUnknown_80E96C4 - .4byte sUnknown_80E96A8 - .4byte sUnknown_80E9688 - .4byte sUnknown_80E9668 - .4byte sUnknown_80E9650 - .4byte sUnknown_80E9628 - .4byte sUnknown_80E9608 - .4byte sUnknown_80E95EC - .4byte sUnknown_80E95C8 - .4byte sUnknown_80E95AC - .4byte sUnknown_80E9588 - .4byte sUnknown_80E955C - .4byte sUnknown_80E9538 - .4byte sUnknown_80E951C - .4byte sUnknown_80E94FC - .4byte sUnknown_80E94E0 - .4byte sUnknown_80E94C0 - .4byte sUnknown_80E94A0 - .4byte sUnknown_80E9480 - .4byte sUnknown_80E9460 - .4byte sUnknown_80E9440 - .4byte sUnknown_80E9420 - .4byte sUnknown_80E9400 - .4byte sUnknown_80E93E0 - .4byte sUnknown_80E93B8 - .4byte sUnknown_80E9394 - .4byte sUnknown_80E9378 - .4byte sUnknown_80E9358 - .4byte sUnknown_80E9344 - .4byte sUnknown_80E9328 - .4byte sUnknown_80E9300 - .4byte sUnknown_80E92E0 - .4byte sUnknown_80E92C4 - .4byte sUnknown_80E92A4 - .4byte sUnknown_80E9288 - -sUnknown_80E9288: @ 80E9288 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} fell into a trap!\0" - .align 2, 0 - -sUnknown_80E92A4: @ 80E92A4 - .string "I lost contact with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E92C4: @ 80E92C4 - .string "I can{APOSTROPHE}t contact {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E92E0: @ 80E92E0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t walk anymore!\0" - .align 2, 0 - -sUnknown_80E9300: @ 80E9300 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s been missing three days!\0" - .align 2, 0 - -sUnknown_80E9328: @ 80E9328 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} went the wrong way!\0" - .align 2, 0 - -sUnknown_80E9344: @ 80E9344 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is lost!\0" - .align 2, 0 - -sUnknown_80E9358: @ 80E9358 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be stuck!\0" - .align 2, 0 - -sUnknown_80E9378: @ 80E9378 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be lost!\0" - .align 2, 0 - -sUnknown_80E9394: @ 80E9394 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have had an accident!\0" - .align 2, 0 - -sUnknown_80E93B8: @ 80E93B8 - .string "I{APOSTROPHE}m worried for {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s safety!\0" - .align 2, 0 - -sUnknown_80E93E0: @ 80E93E0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is fighting all alone!\0" - .align 2, 0 - -sUnknown_80E9400: @ 80E9400 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is too hungry to move!\0" - .align 2, 0 - -sUnknown_80E9420: @ 80E9420 - .string "Hurry{COMMA} bring back {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80E9440: @ 80E9440 - .string "I got separated from {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80E9460: @ 80E9460 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is running out of time!\0" - .align 2, 0 - -sUnknown_80E9480: @ 80E9480 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was attacked{COMMA} maybe!\0" - .align 2, 0 - -sUnknown_80E94A0: @ 80E94A0 - .string "Something happened to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E94C0: @ 80E94C0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be trapped!\0" - .align 2, 0 - -sUnknown_80E94E0: @ 80E94E0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is stuck in a cave!\0" - .align 2, 0 - -sUnknown_80E94FC: @ 80E94FC - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be helpless!\0" - .align 2, 0 - -sUnknown_80E951C: @ 80E951C - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t reemerged!\0" - .align 2, 0 - -sUnknown_80E9538: @ 80E9538 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was attacked by assailants!\0" - .align 2, 0 - -sUnknown_80E955C: @ 80E955C - .string "It appears as if {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t escape!\0" - .align 2, 0 - -sUnknown_80E9588: @ 80E9588 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have fainted already!\0" - .align 2, 0 - -sUnknown_80E95AC: @ 80E95AC - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is about to faint!\0" - .align 2, 0 - -sUnknown_80E95C8: @ 80E95C8 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s been gone a long time!\0" - .align 2, 0 - -sUnknown_80E95EC: @ 80E95EC - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been cornered!\0" - .align 2, 0 - -sUnknown_80E9608: @ 80E9608 - .string "I{APOSTROPHE}m worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E9628: @ 80E9628 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s whereabouts are unknown!\0" - .align 2, 0 - -sUnknown_80E9650: @ 80E9650 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was paralyzed!\0" - .align 2, 0 - -sUnknown_80E9668: @ 80E9668 - .string "Trouble may have found {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80E9688: @ 80E9688 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be freezing!\0" - .align 2, 0 - -sUnknown_80E96A8: @ 80E96A8 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be confused!\0" - .align 2, 0 - -sUnknown_80E96C4: @ 80E96C4 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is too scared to move!\0" - .align 2, 0 - -sUnknown_80E96E4: @ 80E96E4 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} went missing this morning!\0" - .align 2, 0 - -sUnknown_80E9708: @ 80E9708 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be injured!\0" - .align 2, 0 - -sUnknown_80E9728: @ 80E9728 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be facing danger!\0" - .align 2, 0 - -sUnknown_80E9748: @ 80E9748 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} might be unable to return.\0" - .align 2, 0 - -sUnknown_80E976C: @ 80E976C - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t come back!\0" - .align 2, 0 - -sUnknown_80E9788: @ 80E9788 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t swim!\0" - .align 2, 0 - -sUnknown_80E97A0: @ 80E97A0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t been heard from!\0" - .align 2, 0 - -sUnknown_80E97C4: @ 80E97C4 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is still missing.\0" - .align 2, 0 - -sUnknown_80E97E0: @ 80E97E0 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be endangered!\0" - .align 2, 0 - -sUnknown_80E97FC: @ 80E97FC - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} passed out from the heat!\0" - .align 2, 0 - - .global gUnknown_80E9820 -gUnknown_80E9820: @ 80E9820 - .4byte sUnknown_80E9908 - .4byte sUnknown_80E98F0 - .4byte sUnknown_80E98DC - .4byte sUnknown_80E98B4 - .4byte sUnknown_80E8CD4 - .4byte sUnknown_80E9898 - .4byte sUnknown_80E90D4 - .4byte sUnknown_80E987C - .4byte sUnknown_80E985C - .4byte sUnknown_80E9848 - -sUnknown_80E9848: @ 80E9848 - .string "Reward upon rescue!\0" - .align 2, 0 - -sUnknown_80E985C: @ 80E985C - .string "A rescue is urgently needed!\0" - .align 2, 0 - -sUnknown_80E987C: @ 80E987C - .string "Please send a rescue team!\0" - .align 2, 0 - -sUnknown_80E9898: @ 80E9898 - .string "I{APOSTROPHE}m pleading for help!\0" - .align 2, 0 - -sUnknown_80E98B4: @ 80E98B4 - .string "I don{APOSTROPHE}t care who it is! Please help!\0" - .align 2, 0 - -sUnknown_80E98DC: @ 80E98DC - .string "Someone! Anyone?\0" - .align 2, 0 - -sUnknown_80E98F0: @ 80E98F0 - .string "Please! I need help!\0" - .align 2, 0 - -sUnknown_80E9908: @ 80E9908 - .string "Please! Someone help!\0" - .align 2, 0 - - .global gUnknown_80E9920 -gUnknown_80E9920: @ 80E9920 -.macro st_80E9920 a, b, c - .2byte \a, \b - .4byte \c -.endm - st_80E9920 15, 13, sUnknown_80E9F5C - st_80E9920 18, 16, sUnknown_80E9F24 - st_80E9920 20, 19, sUnknown_80E9ED8 - st_80E9920 26, 172, sUnknown_80E9E80 - st_80E9920 36, 173, sUnknown_80E9E40 - st_80E9920 40, 174, sUnknown_80E9DFC - st_80E9920 169, 41, sUnknown_80E9DA4 - st_80E9920 45, 43, sUnknown_80E9D50 - st_80E9920 62, 60, sUnknown_80E9D04 - st_80E9920 176, 175, sUnknown_80E9CC4 - st_80E9920 184, 323, sUnknown_80E9C80 - st_80E9920 242, 241, sUnknown_80E9C38 - st_80E9920 257, 256, sUnknown_80E9BFC - st_80E9920 125, 264, sUnknown_80E9BAC - st_80E9920 126, 265, sUnknown_80E9B58 - st_80E9920 273, 271, sUnknown_80E9B18 - st_80E9920 292, 290, sUnknown_80E9ACC - st_80E9920 331, 329, sUnknown_80E9A94 - st_80E9920 355, 353, sUnknown_80E9A54 - st_80E9920 393, 391, sUnknown_80E9A0C - st_80E9920 302, 301, sUnknown_80E99C8 - -sUnknown_80E99C8: @ 80E99C8 - .string "Please look for Taillow!\n" - .string "My baby is very timid{COMMA} so I{APOSTROPHE}m worried!\0" - .align 2, 0 - -sUnknown_80E9A0C: @ 80E9A0C - .string "Save my baby Spheal! My baby is easy to\n" - .string "spot because she likes to roll!\0" - .align 2, 0 - -sUnknown_80E9A54: @ 80E9A54 - .string "Please find my little Trapinch!\n" - .string "My baby is probably lying low!\0" - .align 2, 0 - -sUnknown_80E9A94: @ 80E9A94 - .string "Please find my Aron!\n" - .string "He{APOSTROPHE}s my only child! Please help!\0" - .align 2, 0 - -sUnknown_80E9ACC: @ 80E9ACC - .string "My Wurmple went missing! Please look\n" - .string "for the cute spikes on his rear end!\0" - .align 2, 0 - -sUnknown_80E9B18: @ 80E9B18 - .string "Please search for Larvitar!\n" - .string "He loves to eat dirt! I need help!\0" - .align 2, 0 - -sUnknown_80E9B58: @ 80E9B58 - .string "My baby Magby is lost. I{APOSTROPHE}m worried sick.\n" - .string "She{APOSTROPHE}s a cheerful child who loves fire.\0" - .align 2, 0 - -sUnknown_80E9BAC: @ 80E9BAC - .string "My son can be wild with thunderbolts{COMMA}\n" - .string "but he{APOSTROPHE}s kindhearted. Please help!\0" - .align 2, 0 - -sUnknown_80E9BFC: @ 80E9BFC - .string "Please look for Phanpy!\n" - .string "My son has a distinctive long nose!\0" - .align 2, 0 - -sUnknown_80E9C38: @ 80E9C38 - .string "Please find Teddiursa! My baby{APOSTROPHE}s head\n" - .string "has a cute crescent mark! Help!\0" - .align 2, 0 - -sUnknown_80E9C80: @ 80E9C80 - .string "Please save my adorable Azurill!\n" - .string "Watch for a round and bouncy tail!\0" - .align 2, 0 - -sUnknown_80E9CC4: @ 80E9CC4 - .string "Help! Togepi{APOSTROPHE}s just a baby!\n" - .string "I{APOSTROPHE}m worried sick! Please help!\0" - .align 2, 0 - -sUnknown_80E9D04: @ 80E9D04 - .string "My baby Poliwag! He wandered off...\n" - .string "He only just learned how to walk! Help!\0" - .align 2, 0 - -sUnknown_80E9D50: @ 80E9D50 - .string "Oddish disappeared from sight! She may be\n" - .string "buried somewhere! Someone{COMMA} please help!\0" - .align 2, 0 - -sUnknown_80E9DA4: @ 80E9DA4 - .string "Please rescue Zubat! He{APOSTROPHE}s so young he\n" - .string "can{APOSTROPHE}t even hang from cavern ceilings well!\0" - .align 2, 0 - -sUnknown_80E9DFC: @ 80E9DFC - .string "Please find Igglybuff! Oh{COMMA} where did that\n" - .string "child roll off to?! Oh!\0" - .align 2, 0 - -sUnknown_80E9E40: @ 80E9E40 - .string "Cleffa disappeared! Please let me know\n" - .string "if you find my child!\0" - .align 2, 0 - -sUnknown_80E9E80: @ 80E9E80 - .string "Please rescue Pichu! He{APOSTROPHE}s a little cutie\n" - .string "who can{APOSTROPHE}t charge power well yet. Please!\0" - .align 2, 0 - -sUnknown_80E9ED8: @ 80E9ED8 - .string "Rattata is missing! My precious child!\n" - .string "Please{COMMA} won{APOSTROPHE}t someone help me?\0" - .align 2, 0 - -sUnknown_80E9F24: @ 80E9F24 - .string "Oh{COMMA} my cute little Pidgey!\n" - .string "Please{COMMA} someone help!\0" - .align 2, 0 - -sUnknown_80E9F5C: @ 80E9F5C - .string "Please rescue Weedle!\n" - .string "He{APOSTROPHE}s my son! Please!\0" - .align 2, 0 - - .global gUnknown_80E9F8C -gUnknown_80E9F8C: @ 80E9F8C -.macro st_80E9F8C a, b, c, d - .2byte \a, \b - .4byte \c, \d -.endm - st_80E9F8C 103, 85, sUnknown_80EAE44, sUnknown_80EADFC - st_80E9F8C 22, 112, sUnknown_80EAE44, sUnknown_80EADD0 - st_80E9F8C 90, 394, sUnknown_80EAE44, sUnknown_80EAD94 - st_80E9F8C 89, 342, sUnknown_80EAE44, sUnknown_80EAD50 - st_80E9F8C 52, 325, sUnknown_80EAE44, sUnknown_80EAD20 - st_80E9F8C 129, 374, sUnknown_80EAE44, sUnknown_80EACD4 - st_80E9F8C 13, 290, sUnknown_80EAE44, sUnknown_80EAC88 - st_80E9F8C 293, 291, sUnknown_80EAE44, sUnknown_80EAC38 - st_80E9F8C 301, 16, sUnknown_80EAE44, sUnknown_80EABE8 - st_80E9F8C 37, 347, sUnknown_80EAE44, sUnknown_80EABA8 - st_80E9F8C 174, 173, sUnknown_80EAE44, sUnknown_80EAB68 - st_80E9F8C 49, 294, sUnknown_80EAE44, sUnknown_80EAB10 - st_80E9F8C 313, 57, sUnknown_80EAE44, sUnknown_80EAAC8 - st_80E9F8C 286, 58, sUnknown_80EAE44, sUnknown_80EAA84 - st_80E9F8C 69, 238, sUnknown_80EAE44, sUnknown_80EAA34 - st_80E9F8C 86, 392, sUnknown_80EAE44, sUnknown_80EA9F8 - st_80E9F8C 97, 122, sUnknown_80EAE44, sUnknown_80EA9A4 - st_80E9F8C 98, 366, sUnknown_80EAE44, sUnknown_80EA968 - st_80E9F8C 143, 314, sUnknown_80EAE44, sUnknown_80EA914 - st_80E9F8C 127, 239, sUnknown_80EAE44, sUnknown_80EA8D0 - st_80E9F8C 240, 360, sUnknown_80EAE44, sUnknown_80EA880 - st_80E9F8C 323, 175, sUnknown_80EAE44, sUnknown_80EA84C - st_80E9F8C 132, 185, sUnknown_80EAE44, sUnknown_80EA7FC - st_80E9F8C 241, 352, sUnknown_80EAE44, sUnknown_80EA7A8 - st_80E9F8C 79, 312, sUnknown_80EAE44, sUnknown_80EA784 - st_80E9F8C 164, 198, sUnknown_80EAE44, sUnknown_80EA730 - st_80E9F8C 340, 182, sUnknown_80EAE44, sUnknown_80EA6E4 - st_80E9F8C 250, 304, sUnknown_80EAE44, sUnknown_80EA698 - st_80E9F8C 397, 38, sUnknown_80EAE44, sUnknown_80EA650 - st_80E9F8C 187, 386, sUnknown_80EAE44, sUnknown_80EA614 - st_80E9F8C 200, 381, sUnknown_80EAE44, sUnknown_80EA5C4 - st_80E9F8C 247, 398, sUnknown_80EAE44, sUnknown_80EA57C - st_80E9F8C 176, 267, sUnknown_80EAE44, sUnknown_80EA534 - st_80E9F8C 32, 29, sUnknown_80EA51C, sUnknown_80EA4E4 - st_80E9F8C 33, 30, sUnknown_80EA51C, sUnknown_80EA4A0 - st_80E9F8C 34, 31, sUnknown_80EA51C, sUnknown_80EA45C - st_80E9F8C 128, 266, sUnknown_80EA51C, sUnknown_80EA41C - st_80E9F8C 338, 339, sUnknown_80EA51C, sUnknown_80EA3DC - st_80E9F8C 337, 336, sUnknown_80EA51C, sUnknown_80EA398 - st_80E9F8C 360, 361, sUnknown_80EA384, sUnknown_80EA33C - st_80E9F8C 106, 107, sUnknown_80EA384, sUnknown_80EA30C - st_80E9F8C 362, 363, sUnknown_80EA384, sUnknown_80EA2BC - st_80E9F8C 138, 140, sUnknown_80EA384, sUnknown_80EA26C - st_80E9F8C 370, 372, sUnknown_80EA384, sUnknown_80EA214 - st_80E9F8C 172, 172, sUnknown_80EA1FC, sUnknown_80EA1A8 - -sUnknown_80EA1A8: @ 80EA1A8 - .string "My little brother Pichu disappeared!\n" - .string "I{APOSTROPHE}m really worried! Someone{COMMA} please help!\0" - .align 2, 0 - -sUnknown_80EA1FC: @ 80EA1FC - .string "Please help my brother!\0" - .align 2, 0 - -sUnknown_80EA214: @ 80EA214 - .string "We{APOSTROPHE}ve been rivals with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} for\n" - .string "generations. It can{APOSTROPHE}t suddenly end like this!\0" - .align 2, 0 - -sUnknown_80EA26C: @ 80EA26C - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been a rival since my\n" - .string "ancestors{APOSTROPHE} time. The rivalry can{APOSTROPHE}t end!\0" - .align 2, 0 - -sUnknown_80EA2BC: @ 80EA2BC - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t leave without settling\n" - .string "which one of us is better. Please help!\0" - .align 2, 0 - -sUnknown_80EA30C: @ 80EA30C - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\n" - .string "We owe each other a game!\0" - .align 2, 0 - -sUnknown_80EA33C: @ 80EA33C - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We detest\n" - .string "each other{COMMA} but we need each other!\0" - .align 2, 0 - -sUnknown_80EA384: @ 80EA384 - .string "Rescue my rival!\0" - .align 2, 0 - -sUnknown_80EA398: @ 80EA398 - .string "I can{APOSTROPHE}t live without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "My heart is breaking! Please! Help!\0" - .align 2, 0 - -sUnknown_80EA3DC: @ 80EA3DC - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We{APOSTROPHE}re no good if we{APOSTROPHE}re not together!\0" - .align 2, 0 - -sUnknown_80EA41C: @ 80EA41C - .string "Please save my {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Now I\n" - .string "know what {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} means to me...\0" - .align 2, 0 - -sUnknown_80EA45C: @ 80EA45C - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We\n" - .string "promised our futures together! Please!\0" - .align 2, 0 - -sUnknown_80EA4A0: @ 80EA4A0 - .string "Please rescue my precious {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We{APOSTROPHE}re in love! Please help!\0" - .align 2, 0 - -sUnknown_80EA4E4: @ 80EA4E4 - .string "Please! Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We{APOSTROPHE}re madly in love!\0" - .align 2, 0 - -sUnknown_80EA51C: @ 80EA51C - .string "Please save my love!\0" - .align 2, 0 - -sUnknown_80EA534: @ 80EA534 - .string "We make each other happy--it{APOSTROPHE}s in our\n" - .string "nature. Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2, 0 - -sUnknown_80EA57C: @ 80EA57C - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! The beach\n" - .string "feels empty without my usual friend...\0" - .align 2, 0 - -sUnknown_80EA5C4: @ 80EA5C4 - .string "I feel lonely without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} to pull\n" - .string "pranks and mess around with. Please help!\0" - .align 2, 0 - -sUnknown_80EA614: @ 80EA614 - .string "Help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} please!\n" - .string "We often took strolls on the wind!\0" - .align 2, 0 - -sUnknown_80EA650: @ 80EA650 - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We{APOSTROPHE}re both\n" - .string "old-timers who are longtime friends!\0" - .align 2, 0 - -sUnknown_80EA698: @ 80EA698 - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}. We{APOSTROPHE}ve been in\n" - .string "the delivery business for many years!\0" - .align 2, 0 - -sUnknown_80EA6E4: @ 80EA6E4 - .string "I{APOSTROPHE}m sad without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s company.\n" - .string "We showed flowers to each other...\0" - .align 2, 0 - -sUnknown_80EA730: @ 80EA730 - .string "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} there{APOSTROPHE}s no one for\n" - .string "me to play with in the dark! Please help!\0" - .align 2, 0 - -sUnknown_80EA784: @ 80EA784 - .string "...Help... Please...\n" - .string "Who was it?\0" - .align 2, 0 - -sUnknown_80EA7A8: @ 80EA7A8 - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}. We{APOSTROPHE}re both alike\n" - .string "in being kind of vacant and unpredictable!\0" - .align 2, 0 - -sUnknown_80EA7FC: @ 80EA7FC - .string "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} around{COMMA} there{APOSTROPHE}s no\n" - .string "one to heckle! Please break my boredom!\0" - .align 2, 0 - -sUnknown_80EA84C: @ 80EA84C - .string "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "My tiny and round best friend!\0" - .align 2, 0 - -sUnknown_80EA880: @ 80EA880 - .string "We promised to show each other how\n" - .string "sharp our claws could be... Someone{COMMA} help!\0" - .align 2, 0 - -sUnknown_80EA8D0: @ 80EA8D0 - .string "I lock horns with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} for fun.\n" - .string "I terribly miss doing that...\0" - .align 2, 0 - -sUnknown_80EA914: @ 80EA914 - .string "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We{APOSTROPHE}re both lazy{COMMA}\n" - .string "so we{APOSTROPHE}re comfortable around each other!\0" - .align 2, 0 - -sUnknown_80EA968: @ 80EA968 - .string "I want to help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We both have a thing for pincers!\0" - .align 2, 0 - -sUnknown_80EA9A4: @ 80EA9A4 - .string "We promised each other to perform magic\n" - .string "and hypnosis shows together. Please help!\0" - .align 2, 0 - -sUnknown_80EA9F8: @ 80EA9F8 - .string "Someone save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}--my friend\n" - .string "and rival at ball juggling!\0" - .align 2, 0 - -sUnknown_80EAA34: @ 80EAA34 - .string "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Our cries are\n" - .string "identical! We can tell each other anything!\0" - .align 2, 0 - -sUnknown_80EAA84: @ 80EAA84 - .string "I can{APOSTROPHE}t play the biting game without my pal\n" - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Please help!\0" - .align 2, 0 - -sUnknown_80EAAC8: @ 80EAAC8 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is really noisy.\n" - .string "But it{APOSTROPHE}s lonely without the racket... Sob...\0" - .align 2, 0 - -sUnknown_80EAB10: @ 80EAB10 - .string "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} it{APOSTROPHE}s no fun playing\n" - .string "with toxic powders! Someone{COMMA} please help!\0" - .align 2, 0 - -sUnknown_80EAB68: @ 80EAB68 - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We{APOSTROPHE}ve been friends since we were eggs!\0" - .align 2, 0 - -sUnknown_80EABA8: @ 80EABA8 - .string "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}--a good\n" - .string "friend who shares my love of fire!\0" - .align 2, 0 - -sUnknown_80EABE8: @ 80EABE8 - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} and I are of the same height.\n" - .string "We{APOSTROPHE}re lifelong friends! Please help!\0" - .align 2, 0 - -sUnknown_80EAC38: @ 80EAC38 - .string "We identify with each other because we\n" - .string "both evolved from Wurmple. Please help!\0" - .align 2, 0 - -sUnknown_80EAC88: @ 80EAC88 - .string "Help! I{APOSTROPHE}m friends with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}\n" - .string "because we both evolve fast! Please help!\0" - .align 2, 0 - -sUnknown_80EACD4: @ 80EACD4 - .string "Help! {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} isn{APOSTROPHE}t much now{COMMA} but\n" - .string "my friend is amazing after evolution!\0" - .align 2, 0 - -sUnknown_80EAD20: @ 80EAD20 - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We always play together!\0" - .align 2, 0 - -sUnknown_80EAD50: @ 80EAD50 - .string "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\n" - .string "I can{APOSTROPHE}t stand to see a sludge buddy hurt!\0" - .align 2, 0 - -sUnknown_80EAD94: @ 80EAD94 - .string "Please save my best friend {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" - .string "We{APOSTROPHE}re both bivalves!\0" - .align 2, 0 - -sUnknown_80EADD0: @ 80EADD0 - .string "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA}\n" - .string "my drilling buddy!\0" - .align 2, 0 - -sUnknown_80EADFC: @ 80EADFC - .string "This precious friend can chat separately\n" - .string "with three heads. Please help!\0" - .align 2, 0 - -sUnknown_80EAE44: @ 80EAE44 - .string "Please save my friend!\0" - .align 2, 0 - -@ Escort Mission Text - .global gUnknown_80EAE5C -gUnknown_80EAE5C: @ 80EAE5C - .4byte TakeMe_Text - .4byte WantToSee_Text - .4byte TakeMeWith_Text - .4byte EscortMe_Text - - - .global EscortMe_Text - EscortMe_Text: - .asciz "Escort me!" - .align 2,0 - - .global TakeMeWith_Text - TakeMeWith_Text: - .asciz "Please take me with you!" - .align 2,0 - - .global WantToSee_Text - WantToSee_Text: - .string "I want to see {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}." - .align 2,0 - - .global TakeMe_Text - TakeMe_Text: - .asciz "Take me!" - .align 2,0 - - .global gUnknown_80EAEB8 -gUnknown_80EAEB8: @ 80EAEB8 -@ replacing .incbin "baserom.gba", 0x000eaeb8, 0x2e0 - .4byte WaitingForMe_80EB17C - .4byte PromisedMeet_80EB158 - .4byte WantMeet_80EB138 - .4byte WorriedAbout_80EB118 - .4byte GoMyself_80EB0FC - .4byte OwnPower_80EB0DC - .4byte TooWeak_80EB0B4 - .4byte WaitingInDungeon_80EB090 - .4byte WaitingForever_80EB06C - .4byte InTrouble_80EB048 - .4byte WantToHelp_80EB030 - .4byte HasntReturned_80EB014 - .4byte FaintedInside_80EAFF0 - .4byte SickWorry_80EAFD4 - .4byte LongTime_80EAFA4 - .4byte HaveToGo_80EAF94 - .4byte HaveToMeet_80EAF70 - .4byte MustMeet_80EAF4C - .4byte Apologize_80EAF2C - .4byte CloseFriends_80EAF08 - - .global CloseFriends_80EAF08 - CloseFriends_80EAF08: - .string "I{APOSTROPHE}m close friends with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!" - .align 2,0 - - .global Apologize_80EAF2C - Apologize_80EAF2C: - .string "I want to apologize to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}." - .align 2,0 - - .global MustMeet_80EAF4C - MustMeet_80EAF4C: - .string "I don{APOSTROPHE}t care how--we must meet!\0" - .align 2,0 - - .global HaveToMeet_80EAF70 - HaveToMeet_80EAF70: - .asciz "We have to meet--whatever it takes!" - .align 2,0 - - .global HaveToGo_80EAF94 - HaveToGo_80EAF94: - .asciz "I have to go!" - .align 2,0 - - .global LongTime_80EAFA4 - LongTime_80EAFA4: - .string "We haven{APOSTROPHE}t seen each other in a long time.\0" - .align 2,0 - - .global SickWorry_80EAFD4 - SickWorry_80EAFD4: - .string "I{APOSTROPHE}m sick with worry...\0" - .align 2,0 - - .global FaintedInside_80EAFF0 - FaintedInside_80EAFF0: - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have fainted inside..." - .align 2,0 - - .global HasntReturned_80EB014 - HasntReturned_80EB014: - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t returned!\0" - .align 2,0 - - .global WantToHelp_80EB030 - WantToHelp_80EB030: - .string "I want to help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global InTrouble_80EB048 - InTrouble_80EB048: - .string "Hurry{COMMA} {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is in trouble...\0" - .align 2,0 - - .global WaitingForever_80EB06C - WaitingForever_80EB06C: - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been waiting forever...\0" - .align 2,0 - - .global WaitingInDungeon_80EB090 - WaitingInDungeon_80EB090: - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is waiting in the dungeon.\0" - .align 2,0 - - .global TooWeak_80EB0B4 - TooWeak_80EB0B4: - .string "I{APOSTROPHE}m too weak. It{APOSTROPHE}s not possible.\0" - .align 2,0 - - .global OwnPower_80EB0DC - OwnPower_80EB0DC: - .string "I can{APOSTROPHE}t go on my own power...\0" - .align 2,0 - - .global GoMyself_80EB0FC - GoMyself_80EB0FC: - .string "I can{APOSTROPHE}t go by myself...\0" - .align 2,0 - - .global WorriedAbout_80EB118 - WorriedAbout_80EB118: - .string "I{APOSTROPHE}m worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}...\0" - .align 2,0 - - .global WantMeet_80EB138 - WantMeet_80EB138: - .string "I want to meet with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\0" - .align 2,0 - - .global PromisedMeet_80EB158 - PromisedMeet_80EB158: - .asciz "We promised to meet in the dungeon!" - .align 2,0 - - .global WaitingForMe_80EB17C - WaitingForMe_80EB17C: - .string "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is waiting for me!\0" - .align 2,0 - - - .global gUnknown_80EB198 -gUnknown_80EB198: @ 80EB198 - .4byte PleaseTakeMeToSee - .4byte PleaseTakeMeThere - .4byte PleaseEscortMe - .4byte SomeonePleaseEscort - - .global SomeonePleaseEscort - SomeonePleaseEscort: - .string "Someone{COMMA} please escort me!\0" - .align 2,0 - - .global PleaseEscortMe - PleaseEscortMe: - .asciz "Please escort me there!" - .align 2,0 - - .global PleaseTakeMeThere - PleaseTakeMeThere: - .asciz "Please take me there with you!" - .align 2,0 - - .global PleaseTakeMeToSee - PleaseTakeMeToSee: - .string "Please take me to see {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global gUnknown_80EB220 -gUnknown_80EB220: @ 80EB220 -@ replacing .incbin "baserom.gba", 0x000eb220, 0xd0 - .4byte TakeMeet_80EB2CC - .4byte Escort_80EB2AC - .4byte HelpMeet_80EB294 - .4byte WantMeet_80EB274 - .4byte Worried_80EB250 - .4byte Without_80EB238 - - .global Without_80EB238 - Without_80EB238: - .string "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} I...\0" - .align 2,0 - - .global Worried_80EB250 - Worried_80EB250: - .string "I{APOSTROPHE}m so worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}...\0" - .align 2,0 - - .global WantMeet_80EB274 - WantMeet_80EB274: - .string "I really want to meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global HelpMeet_80EB294 - HelpMeet_80EB294: - .string "Help me meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global Escort_80EB2AC - Escort_80EB2AC: - .string "Please escort me to my {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global TakeMeet_80EB2CC - TakeMeet_80EB2CC: - .string "Please! Take me to meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\0" - .align 2,0 - - .global gUnknown_80EB2F0 -gUnknown_80EB2F0: @ 80EB2F0 -@ replacing .incbin "baserom.gba", 0x000eb2f0, 0x108 - .4byte WeInLove_80EB3CC - .4byte WeBelong_80EB3A4 - .4byte WePromised_80EB37C - .4byte MeansEverything_80EB35C - .4byte NoGood_80EB334 - .4byte Lonely_80EB308 - - .global Lonely_80EB308 - Lonely_80EB308: - .string "I{APOSTROPHE}m very lonely! Please take me with you!\0" - .align 2,0 - - .global NoGood_80EB334 - NoGood_80EB334: - .string "It{APOSTROPHE}s no good if we{APOSTROPHE}re not together!\0" - .align 2,0 - - .global MeansEverything_80EB35C - MeansEverything_80EB35C: - .asciz "This means everything to me!" - .align 2,0 - - .global WePromised_80EB37C - WePromised_80EB37C: - .string "We{APOSTROPHE}ve promised our futures together.\0" - .align 2,0 - - .global WeBelong_80EB3A4 - WeBelong_80EB3A4: - .string "We belong together! Please escort me!\0" - .align 2,0 - - .global WeInLove_80EB3CC - WeInLove_80EB3CC: - .string "We{APOSTROPHE}re in love! Please{COMMA} take me there!\0" - .align 2,0 - -@ Item Delivery Mission Text - .global gUnknown_80EB3F8 -gUnknown_80EB3F8: @ 80EB3F8 - .4byte sUnknown_80EB708 - .4byte sUnknown_80EB6E4 - .4byte sUnknown_80EB6C0 - .4byte sUnknown_80EB6A0 - .4byte sUnknown_80EB67C - .4byte sUnknown_80EB654 - .4byte sUnknown_80EB638 - .4byte sUnknown_80EB618 - .4byte sUnknown_80EB5F8 - .4byte sUnknown_80EB5D4 - .4byte sUnknown_80EB5B4 - .4byte sUnknown_80EB590 - .4byte sUnknown_80EB568 - .4byte sUnknown_80EB54C - .4byte sUnknown_80EB524 - .4byte sUnknown_80EB500 - .4byte sUnknown_80EB4E0 - .4byte sUnknown_80EB4C0 - .4byte sUnknown_80EB4AC - .4byte sUnknown_80EB494 - .4byte sUnknown_80EB470 - .4byte sUnknown_80EB450 - -sUnknown_80EB450: @ 80EB450 - .string "Is it true about the {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}?\0" - .align 2, 0 - -sUnknown_80EB470: @ 80EB470 - .string "The item {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} is the in thing!\0" - .align 2, 0 - -sUnknown_80EB494: @ 80EB494 - .string "Wanted: my own {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80EB4AC: @ 80EB4AC - .string "I lost my {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80EB4C0: @ 80EB4C0 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted for nostalgia.\0" - .align 2, 0 - -sUnknown_80EB4E0: @ 80EB4E0 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted to test effects.\0" - .align 2, 0 - -sUnknown_80EB500: @ 80EB500 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}{APOSTROPHE}s texture is comforting.\0" - .align 2, 0 - -sUnknown_80EB524: @ 80EB524 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--it{APOSTROPHE}s my mom{APOSTROPHE}s favorite.\0" - .align 2, 0 - -sUnknown_80EB54C: @ 80EB54C - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} makes me strong.\0" - .align 2, 0 - -sUnknown_80EB568: @ 80EB568 - .string "I can{APOSTROPHE}t sleep without it: {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80EB590: @ 80EB590 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I get scared without it!\0" - .align 2, 0 - -sUnknown_80EB5B4: @ 80EB5B4 - .string "Hard-to-find {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} sought.\0" - .align 2, 0 - -sUnknown_80EB5D4: @ 80EB5D4 - .string "I can{APOSTROPHE}t find one more {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}.\0" - .align 2, 0 - -sUnknown_80EB5F8: @ 80EB5F8 - .string "Help this {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} collector!\0" - .align 2, 0 - -sUnknown_80EB618: @ 80EB618 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}! Seeking in quantity!\0" - .align 2, 0 - -sUnknown_80EB638: @ 80EB638 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted as a charm.\0" - .align 2, 0 - -sUnknown_80EB654: @ 80EB654 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I can{APOSTROPHE}t leave without it.\0" - .align 2, 0 - -sUnknown_80EB67C: @ 80EB67C - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I{APOSTROPHE}d love to utilize one!\0" - .align 2, 0 - -sUnknown_80EB6A0: @ 80EB6A0 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted for exploration.\0" - .align 2, 0 - -sUnknown_80EB6C0: @ 80EB6C0 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted after long search.\0" - .align 2, 0 - -sUnknown_80EB6E4: @ 80EB6E4 - .string "{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--it{APOSTROPHE}s convenient to have.\0" - .align 2, 0 - -sUnknown_80EB708: @ 80EB708 - .string "Having one {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} is reassuring.\0" - .align 2, 0 - - .global gUnknown_80EB72C -gUnknown_80EB72C: @ 80EB72C - .4byte sUnknown_80EBA00 - .4byte sUnknown_80EB9E8 - .4byte sUnknown_80EB9D0 - .4byte sUnknown_80EB9BC - .4byte sUnknown_80EB9A0 - .4byte sUnknown_80EB97C - .4byte sUnknown_80EB95C - .4byte sUnknown_80EB930 - .4byte sUnknown_80EB90C - .4byte sUnknown_80EB8E8 - .4byte sUnknown_80EB8D0 - .4byte sUnknown_80EB8AC - .4byte sUnknown_80EB890 - .4byte sUnknown_80EB86C - .4byte sUnknown_80EB850 - .4byte sUnknown_80EB9A0 - .4byte sUnknown_80EB82C - .4byte sUnknown_80EB818 - .4byte sUnknown_80EB800 - .4byte sUnknown_80EB7D8 - .4byte sUnknown_80EB7A8 - .4byte sUnknown_80EB784 - -sUnknown_80EB784: @ 80EB784 - .string "Please contact me if you find it!\0" - .align 2, 0 - -sUnknown_80EB7A8: @ 80EB7A8 - .string "Please help! I{APOSTROPHE}ll make it worth your time!\0" - .align 2, 0 - -sUnknown_80EB7D8: @ 80EB7D8 - .string "Please help! I{APOSTROPHE}m offering a reward!\0" - .align 2, 0 - -sUnknown_80EB800: @ 80EB800 - .string "Please! Please help me!\0" - .align 2, 0 - -sUnknown_80EB818: @ 80EB818 - .string "Please help me out!\0" - .align 2, 0 - -sUnknown_80EB82C: @ 80EB82C - .string "Please! I need some cooperation!\0" - .align 2, 0 - -sUnknown_80EB850: @ 80EB850 - .string "Please share a little bit!\0" - .align 2, 0 - -sUnknown_80EB86C: @ 80EB86C - .string "Please help! You{APOSTROPHE}re my only hope!\0" - .align 2, 0 - -sUnknown_80EB890: @ 80EB890 - .string "Please! I need your help!\0" - .align 2, 0 - -sUnknown_80EB8AC: @ 80EB8AC - .string "Please help! I{APOSTROPHE}m counting on you!\0" - .align 2, 0 - -sUnknown_80EB8D0: @ 80EB8D0 - .string "Please search for it!\0" - .align 2, 0 - -sUnknown_80EB8E8: @ 80EB8E8 - .string "Please let me know if you find one!\0" - .align 2, 0 - -sUnknown_80EB90C: @ 80EB90C - .string "I{APOSTROPHE}m looking forward to your help!\0" - .align 2, 0 - -sUnknown_80EB930: @ 80EB930 - .string "Please! I{APOSTROPHE}m offering a generous reward!\0" - .align 2, 0 - -sUnknown_80EB95C: @ 80EB95C - .string "Please help! Reward offered!\0" - .align 2, 0 - -sUnknown_80EB97C: @ 80EB97C - .string "Please! I must have one delivered!\0" - .align 2, 0 - -sUnknown_80EB9A0: @ 80EB9A0 - .string "Please share one with me!\0" - .align 2, 0 - -sUnknown_80EB9BC: @ 80EB9BC - .string "Please give me one!\0" - .align 2, 0 - -sUnknown_80EB9D0: @ 80EB9D0 - .string "Please find one for me!\0" - .align 2, 0 - -sUnknown_80EB9E8: @ 80EB9E8 - .string "Please trade me one!\0" - .align 2, 0 - -sUnknown_80EBA00: @ 80EBA00 - .string "Please! May I have one?\0" - .align 2, 0 + .align 2, 0 \ No newline at end of file diff --git a/data/dungeon/D51/pokemon_found.json b/data/dungeon/D51/pokemon_found.json index 444f85d48..e7f7b2207 100644 --- a/data/dungeon/D51/pokemon_found.json +++ b/data/dungeon/D51/pokemon_found.json @@ -664,7 +664,7 @@ "probability": 2000 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 15, "probability": 2000 }, diff --git a/data/dungeon/LapisCave/pokemon_found.json b/data/dungeon/LapisCave/pokemon_found.json index 69f4e841f..82c5224f8 100644 --- a/data/dungeon/LapisCave/pokemon_found.json +++ b/data/dungeon/LapisCave/pokemon_found.json @@ -63,7 +63,7 @@ "probability": 3334 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 15, "probability": 3333 }, diff --git a/data/dungeon/PurityForest/pokemon_found.json b/data/dungeon/PurityForest/pokemon_found.json index 4c97ded10..3e264a1b1 100644 --- a/data/dungeon/PurityForest/pokemon_found.json +++ b/data/dungeon/PurityForest/pokemon_found.json @@ -2299,7 +2299,7 @@ "probability": 800 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1200 }, @@ -2349,7 +2349,7 @@ "probability": 2105 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1579 }, @@ -2404,7 +2404,7 @@ "probability": 1333 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1000 }, @@ -2459,7 +2459,7 @@ "probability": 1380 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1034 }, diff --git a/data/dungeon/WishCave/pokemon_found.json b/data/dungeon/WishCave/pokemon_found.json index 8100f1b58..887bb3ceb 100644 --- a/data/dungeon/WishCave/pokemon_found.json +++ b/data/dungeon/WishCave/pokemon_found.json @@ -969,7 +969,7 @@ "probability": 816 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1224 }, @@ -1029,7 +1029,7 @@ "probability": 1510 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1132 }, @@ -1074,7 +1074,7 @@ "probability": 1861 }, { - "species": "MONSTER_ILLIMISE", + "species": "MONSTER_ILLUMISE", "level": 20, "probability": 1395 }, diff --git a/data/personality_test.s b/data/personality_test.s deleted file mode 100644 index cb4765fab..000000000 --- a/data/personality_test.s +++ /dev/null @@ -1,1948 +0,0 @@ - .section .rodata - - @ Start of Personality Questions - 80F0054 - @ Question 1, Category 1 (Hardy) - - HardyQuest1Points: - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - HardyQuest1Answers: - .4byte HardyQuest1_StudyHard - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest1_LastSecond - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HardyQuest1_Ignore - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - HardyQuest1_Ignore: - .string "Ignore it and play.\0" - HardyQuest1_LastSecond: - .string "At the last second.\0" - HardyQuest1_StudyHard: - .string "Study hard.\0" - - .global HardyQuest1 - HardyQuest1: - .4byte HardyQuest1Question - .4byte HardyQuest1Answers - .4byte HardyQuest1Points - - HardyQuest1Question: - .string "A test is coming up.\n" - .string "How do you study for it?\0" - .align 2,0 - - @ Question 2, Category 1 (Hardy) - HardyQuest2Points: - .byte 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - HardyQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest2_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - HardyQuest2_No: - .string "No. \0" - .align 2,0 - HardyQuest2_Yes: - .string "Yes.\0" - .align 2,0 - - .global HardyQuest2 - HardyQuest2: - .4byte HardyQuest2Question - .4byte HardyQuest2Answers - .4byte HardyQuest2Points - - HardyQuest2Question: - .string "Can you focus on something you like?\0" - .align 2,0 - - @ Question 3, Category 1 (Hardy) - HardyQuest3Points: - .byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - HardyQuest3Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - HardyQuest3_No: - .string "No.\0" - - .global HardyQuest3 - HardyQuest3: - .4byte HardyQuest3Question - .4byte HardyQuest3Answers - .4byte HardyQuest3Points - - HardyQuest3Question: - .string "When the going gets tough{COMMA} do you get\n" - .string "going?\0" - .align 2,0 - - @ Question 4, Category 1 (Hardy) - HardyQuest4Points: - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - HardyQuest4Answers: - .4byte HardyQuest4_Full - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest4_Half - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HardyQuest4_Little - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - HardyQuest4_Little: - .string "A little.\0" - .align 2,0 - - HardyQuest4_Half: - .string "Half.\0" - .align 2,0 - - HardyQuest4_Full: - .string "Full.\0" - .align 2,0 - - .global HardyQuest4 - HardyQuest4: - .4byte HardyQuest4Question - .4byte HardyQuest4Answers - .4byte HardyQuest4Points - - HardyQuest4Question: - .string "There is a bucket. If you put\n" - .string "water in it{COMMA} how high will you fill it?\0" - .align 2,0 - - @ Question 1, Category 2 (Docile) - DocileQuest1Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - DocileQuest1Answers: - .4byte DocileQuest1_Big - .byte 0x00, 0x00, 0x00, 0x00 - .4byte DocileQuest1_Small - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - DocileQuest1_Small: - .string "Small box.\0" - .align 2,0 - - DocileQuest1_Big: - .string "Big box.\0" - .align 2,0 - - .global DocileQuest1 - DocileQuest1: - .4byte DocileQuest1Question - .4byte DocileQuest1Answers - .4byte DocileQuest1Points - - DocileQuest1Question: - .string "You are offered a choice of two gifts.\n" - .string "Which one will you take?\0" - .align 2,0 - - @ Question 2, Category 2 (Docile) - DocileQuest2Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - - DocileQuest2Answers: - .4byte DocileQuest2_Window - .byte 0x00, 0x00, 0x00, 0x00 - .4byte DocileQuest2_Sniff - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - DocileQuest2_Sniff: - .string "Take a sniff first.\0" - .align 2,0 - - DocileQuest2_Window: - .string "Open a window right away.\0" - .align 2,0 - - .global DocileQuest2 - DocileQuest2: - .4byte DocileQuest2Question - .4byte DocileQuest2Answers - .4byte DocileQuest2Points - - DocileQuest2Question: - .string "You broke a rotten egg in your room!\n" - .string "What will you do?\0" - .align 2,0 - - @ Question 3, Category 2 (Docile) - DocileQuest3Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - DocileQuest3Answers: - .4byte DocileQuest3_Regular - .byte 0x00, 0x00, 0x00, 0x00 - .4byte DocileQuest3_Joke - .byte 0x01, 0x00, 0x00, 0x00 - .4byte DocileQuest3_Cool - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - DocileQuest3_Cool: - .string "Say thanks{COMMA} but be cool.\0" - .align 2,0 - - DocileQuest3_Joke: - .string "Say thanks with a joke.\0" - .align 2,0 - - DocileQuest3_Regular: - .string "Say thank you regularly.\0" - .align 2,0 - - .global DocileQuest3 - DocileQuest3: - .4byte DocileQuest3Question - .4byte DocileQuest3Answers - .4byte DocileQuest3Points - - DocileQuest3Question: - .string "A friend brought over something you{APOSTROPHE}d\n" - .string "forgotten.{WAIT_PRESS}\n" - .string "How do you thank your friend?\0" - .align 2,0 - - @ Question 4, Category 2 (Docile) - DocileQuest4Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - DocileQuest4Answers: - .4byte DocileQuest4_Police - .byte 0x00, 0x00, 0x00, 0x00 - .4byte DocileQuest4_Yay - .byte 0x01, 0x00, 0x00, 0x00 - .4byte DocileQuest4_Watching - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - DocileQuest4_Watching: - .string "Is anyone watching...?\0" - .align 2,0 - - DocileQuest4_Yay: - .string "Yay! Yay!\0" - .align 2,0 - - DocileQuest4_Police: - .string "Turn it in to the police!\0" - .align 2,0 - - .global DocileQuest4 - DocileQuest4: - .4byte DocileQuest4Question - .4byte DocileQuest4Answers - .4byte DocileQuest4Points - - DocileQuest4Question: - .string "There is a wallet at the side of a road.\0" - .align 2,0 - - @ Question 1, Category 3 (Brave) - BraveQuest1Points: - .byte 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - BraveQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global BraveQuest1 - BraveQuest1: - .4byte BraveQuest1Question - .4byte BraveQuest1Answers - .4byte BraveQuest1Points - - BraveQuest1Question: - .string "You{APOSTROPHE}re going bungee jumping for the first\n" - .string "time.{EXTRA_MSG}Since it{APOSTROPHE}s scary{COMMA} you decide to test the\n" - .string "jump with a doll...{WAIT_PRESS}\n" - .string "And the bungee cord snaps!{EXTRA_MSG}" - .string "Will you still try to make a jump anyway?\0" - .align 2,0 - - @ Question 2, Category 3 (Brave) - BraveQuest2APoints: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - - BraveQuest2AAnswers: - .4byte BraveQuest2A_Fight - .byte 0x63, 0x00, 0x00, 0x00 - .4byte BraveQuest2A_Run - .byte 0x01, 0x00, 0x00, 0x00 - .4byte BraveQuest2A_Ignore - .byte 0x02, 0x00, 0x00, 0x0 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - BraveQuest2A_Ignore: - .string "Ignore it.\0" - .align 2,0 - - BraveQuest2A_Run: - .string "Run.\0" - .align 2,0 - - BraveQuest2A_Fight: - .string "Fight.\0" - .align 2,0 - - .global BraveQuest2A - BraveQuest2A: - .4byte BraveQuest2AQuestion - .4byte BraveQuest2AAnswers - .4byte BraveQuest2APoints - - BraveQuest2AQuestion: - .string "There is an alien invasion!\n" - .string "What will you do?\0" - .align 2,0 - - BraveQuest2BPoints: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - BraveQuest2BAnswers: - .4byte BraveQuest2B_Rule - .byte 0x00, 0x00, 0x00, 0x00 - .4byte BraveQuest2B_Refuse - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - BraveQuest2B_Refuse: - .string "Refuse.\0" - .align 2,0 - - BraveQuest2B_Rule: - .string "Rule with the aliens.\0" - .align 2,0 - - .global BraveQuest2B - BraveQuest2B: - .4byte BraveQuest2BQuestion - .4byte BraveQuest2BAnswers - .4byte BraveQuest2BPoints - - BraveQuest2BQuestion: - .string "You valiantly fight the aliens...{WAIT_PRESS}\n" - .string "But{COMMA} you are defeated...{EXTRA_MSG}An alien says to you...{EXTRA_MSG}{QUOTE_START}YOU HAVE IMPRESSED US.\n" - .string "IT WAS A PLEASURE TO SEE.{EXTRA_MSG}JOIN US{COMMA} AND TOGETHER WE SHALL\n" - .string "RULE THE WORLD.{QUOTE_END}{WAIT_PRESS}\n" - .string "What will you do?\0" - .align 2,0 - - @ Question 3, Category 3 (Brave) - BraveQuest3Points: - .byte 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - BraveQuest3Answers: - .4byte BraveQuest3_Yank - .byte 0x00, 0x00, 0x00, 0x00 - .4byte BraveQuest3_Scream - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - BraveQuest3_Scream: - .string "Scream in unison.\0" - .align 2,0 - - BraveQuest3_Yank: - .string "Yank open the door.\0" - .align 2,0 - - .global BraveQuest3 - BraveQuest3: - .4byte BraveQuest3Question - .4byte BraveQuest3Answers - .4byte BraveQuest3Points - - BraveQuest3Question: - .string "There is a scream from behind a door!{WAIT_PRESS}\n" - .string "How will you react?\0" - .align 2,0 - - @ Question 4, Category 3 (Brave) - BraveQuest4Points: - .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - BraveQuest4Answers: - .4byte BraveQuest4_Hesitation - .byte 0x00, 0x00, 0x00, 0x00 - .4byte BraveQuest4_Scared - .byte 0x01, 0x00, 0x00, 0x00 - .4byte BraveQuest4_Police - .byte 0x02, 0x00, 0x00, 0x00 - .4byte BraveQuest4_Nothing - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - BraveQuest4_Nothing: - .string "Do nothing out of fear.\0" - .align 2,0 - - BraveQuest4_Police: - .string "Call the police.\0" - .align 2,0 - - BraveQuest4_Scared: - .string "Help{COMMA} even if scared.\0" - .align 2,0 - - BraveQuest4_Hesitation: - .string "Help without hesitation.\0" - .align 2,0 - - .global BraveQuest4 - BraveQuest4: - .4byte BraveQuest4Question - .4byte BraveQuest4Answers - .4byte BraveQuest4Points - - BraveQuest4Question: - .string "A delinquent is hassling a girl on\n" - .string "a busy city street!{WAIT_PRESS}\n" - .string "What will you do?\0" - .align 2,0 - - @ Question 1, Category 4 (Jolly) - JollyQuest1Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - - JollyQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global JollyQuest1 - JollyQuest1: - .4byte JollyQuest1Question - .4byte JollyQuest1Answers - .4byte JollyQuest1Points - - @ Question 2, Category 4 (Jolly) - JollyQuest1Question: - .string "Are you a cheerful personality?\0" - .align 2,0 - - JollyQuest2Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - JollyQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global JollyQuest2 - JollyQuest2: - .4byte JollyQuest2Question - .4byte JollyQuest2Answers - .4byte JollyQuest2Points - - JollyQuest2Question: - .string "Do you like to noisily enjoy yourself\n" - .string "with others?\0" - .align 2,0 - - @ Question 3, Category 4 (Jolly) - JollyQuest3Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - JollyQuest3Answers: - .4byte JollyQuest3_Beach - .byte 0x00, 0x00, 0x00, 0x00 - .4byte JollyQuest3_Spas - .byte 0x01, 0x00, 0x00, 0x00 - .4byte JollyQuest3_Anywhere - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - JollyQuest3_Anywhere: - .string "Anywhere.\0" - .align 2,0 - - JollyQuest3_Spas: - .string "Spas.\0" - .align 2,0 - - JollyQuest3_Beach: - .string "The beach!\0" - .align 2,0 - - .global JollyQuest3 - JollyQuest3: - .4byte JollyQuest3Question - .4byte JollyQuest3Answers - .4byte JollyQuest3Points - - JollyQuest3Question: - .string "It{APOSTROPHE}s the summer holidays!\n" - .string "Where would you like to go?\0" - .align 2,0 - - @ Question 4, Category 4 (Jolly) - JollyQuest4Points: - .byte 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - JollyQuest4Answers: - .4byte JollyQuest4_Funny - .byte 0x00, 0x00, 0x00, 0x00 - .4byte JollyQuest4_Again - .byte 0x01, 0x00, 0x00, 0x00 - .4byte JollyQuest4_Go - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - JollyQuest4_Go: - .string "Right... Well{COMMA} I gotta go.\0" - .align 2,0 - - JollyQuest4_Again: - .string "Um... Could you say that again?\0" - .align 2,0 - - JollyQuest4_Funny: - .string "Haha! Yes. Very funny!\0" - .align 2,0 - - .global JollyQuest4 - JollyQuest4: - .4byte JollyQuest4Question - .4byte JollyQuest4Answers - .4byte JollyQuest4Points - - JollyQuest4Question: - .string "A foreign person has started up a\n" - .string "conversation with you.{EXTRA_MSG}" - .string "To be honest{COMMA} you don{APOSTROPHE}t have a clue what\n" - .string "this fellow is saying.{WAIT_PRESS}\n" - .string "How do you reply?\0" - .align 2,0 - - @ Question 1, Category 5 (Impish) - ImpishQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - ImpishQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global ImpishQuest1 - ImpishQuest1: - .4byte ImpishQuest1Question - .4byte ImpishQuest1Answers - .4byte ImpishQuest1Points - - ImpishQuest1Question: - .string "Have you ever made a pitfall trap?\0" - .align 2,0 - - @ Question 2, Category 5 (Impish) - ImpishQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - - ImpishQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global ImpishQuest2 - ImpishQuest2: - .4byte ImpishQuest2Question - .4byte ImpishQuest2Answers - .4byte ImpishQuest2Points - - ImpishQuest2Question: - .string "Do you like pranks?\0" - .align 2,0 - - @ Question 3, Category 5 (Impish) - ImpishQuest3Points: - .byte 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - ImpishQuest3Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global ImpishQuest3 - ImpishQuest3: - .4byte ImpishQuest3Question - .4byte ImpishQuest3Answers - .4byte ImpishQuest3Points - - ImpishQuest3Question: - .string "Are there many things that you would like\nto do?\0" - .align 2,0 - - @ Question 4, Category 5 (Impish) - ImpishQuest4Points: - .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - ImpishQuest4Answers: - .4byte ImpishQuest4_Face - .byte 0x00, 0x00, 0x00, 0x00 - .4byte ImpishQuest4_Caution - .byte 0x01, 0x00, 0x00, 0x00 - .4byte ImpishQuest4_Heckle - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - ImpishQuest4_Heckle: - .string "Heckle the bully from behind.\0" - .align 2,0 - - ImpishQuest4_Caution: - .string "Caution the bully from afar.\0" - .align 2,0 - - ImpishQuest4_Face: - .string "Face up to the bully.\0" - .align 2,0 - - .global ImpishQuest4 - ImpishQuest4: - .4byte ImpishQuest4Question - .4byte ImpishQuest4Answers - .4byte ImpishQuest4Points - - ImpishQuest4Question: - .string "Your friend is being bullied!\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 1, Category 6 (Naive) - NaiveQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - NaiveQuest1Answers: - .4byte NaiveQuest1_Love - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest4_Little - .byte 0x01, 0x00, 0x00, 0x00 - .4byte NaiveQuest1_Spare - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - NaiveQuest1_Spare: - .string "Spare me.\0" - .align 2,0 - - NaiveQuest1_Love: - .string "Love them!\0" - .align 2,0 - - .global NaiveQuest1 - NaiveQuest1: - .4byte NaiveQuest1Question - .4byte NaiveQuest1Answers - .4byte NaiveQuest1Points - - NaiveQuest1Question: - .string "Do you like groan-inducing puns?\0" - .align 2,0 - - @ Question 2, Category 6 (Naive) - .global NaiveQuest2Points - NaiveQuest2Points: - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global NaiveQuest2Answers - NaiveQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global NaiveQuest2 - NaiveQuest2: - .4byte NaiveQuest2Question - .4byte NaiveQuest2Answers - .4byte NaiveQuest2Points - - .global NaiveQuest2Question - NaiveQuest2Question: - .string "Do you tend to laugh a lot?\0" - .align 2,0 - - @ Question 3, Category 6 (Naive) - .global NaiveQuest3Points - NaiveQuest3Points: - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global NaiveQuest3Answers - NaiveQuest3Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global NaiveQuest3 - NaiveQuest3: - .4byte NaiveQuest3Question - .4byte NaiveQuest3Answers - .4byte NaiveQuest3Points - - .global NaiveQuest3Question - NaiveQuest3Question: - .string "Do others often call you childish?\0" - .align 2,0 - - @ Question 4, Category 6 (Naive) - .global NaiveQuest4Points - NaiveQuest4Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global NaiveQuest4Answers - NaiveQuest4Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global NaiveQuest4 - NaiveQuest4: - .4byte NaiveQuest4Question - .4byte NaiveQuest4Answers - .4byte NaiveQuest4Points - - .global NaiveQuest4Question - NaiveQuest4Question: - .string "Do you like to imagine things for your\n" - .string "amusement?\0" - .align 2,0 - - @ Question 1, Category 7 (Timid) - .global TimidQuest1Points - TimidQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global TimidQuest1Answers - TimidQuest1Answers: - .4byte TimidQuest1_Scream - .byte 0x00, 0x00, 0x00, 0x00 - .4byte TimidQuest1_Close - .byte 0x01, 0x00, 0x00, 0x00 - .4byte TimidQuest1_Shake - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global TimidQuest1_Shake - TimidQuest1_Shake: - .string "Shake hands with it.\0" - .align 2,0 - - .global TimidQuest1_Close - TimidQuest1_Close: - .string "Close the lid without a word.\0" - .align 2,0 - - .global TimidQuest1_Scream - TimidQuest1_Scream: - .string "Scream and run.\0" - .align 2,0 - - .global TimidQuest1 - TimidQuest1: - .4byte TimidQuest1Question - .4byte TimidQuest1Answers - .4byte TimidQuest1Points - - .global TimidQuest1Question - TimidQuest1Question: - .string "A human hand extends out of a toilet!\n" - .string "What would you do?\0" - .align 2,0 - - @ Question 2, Category 7 (Timid) - .global TimidQuest2Points - TimidQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - - .global TimidQuest2Answers - TimidQuest2Answers: - .4byte TimidQuest2_Thumb - .byte 0x00, 0x00, 0x00, 0x00 - .4byte TimidQuest2_Index - .byte 0x01, 0x00, 0x00, 0x00 - .4byte TimidQuest2_Middle - .byte 0x02, 0x00, 0x00, 0x00 - .4byte TimidQuest2_Ring - .byte 0x03, 0x00, 0x00, 0x00 - .4byte TimidQuest2_Little - .byte 0x04, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global TimidQuest2_Little - TimidQuest2_Little: - .string "Little finger.\0" - .align 2,0 - - .global TimidQuest2_Ring - TimidQuest2_Ring: - .string "Ring finger.\0" - .align 2,0 - - .global TimidQuest2_Middle - TimidQuest2_Middle: - .string "Middle finger.\0" - .align 2,0 - - .global TimidQuest2_Index - TimidQuest2_Index: - .string "Index finger.\0" - .align 2,0 - - .global TimidQuest2_Thumb - TimidQuest2_Thumb: - .string "Thumb.\0" - .align 2,0 - - .global TimidQuest2 - TimidQuest2: - .4byte TimidQuest2Question - .4byte TimidQuest2Answers - .4byte TimidQuest2Points - - .global TimidQuest2Question - TimidQuest2Question: - .string "Grab any digit on your left hand with your\n" - .string "right hand.{WAIT_PRESS}\n" - .string "Which digit did you grab?\0" - .align 2,0 - - @ Question 3, Category 7 (Timid) - .global TimidQuest3Points - TimidQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - - .global TimidQuest3Answers - TimidQuest3Answers: - .4byte TimidQuest3_Kick - .byte 0x00, 0x00, 0x00, 0x00 - .4byte TimidQuest3_Cry - .byte 0x01, 0x00, 0x00, 0x00 - .4byte TimidQuest3_Clean - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - TimidQuest3_Clean: - .string "Clean it.\0" - .align 2,0 - - TimidQuest3_Cry: - .string "Cry.\0" - .align 2,0 - - TimidQuest3_Kick: - .string "Kick the door.\0" - .align 2,0 - - .global TimidQuest3 - TimidQuest3: - .4byte TimidQuest3Question - .4byte TimidQuest3Answers - .4byte TimidQuest3Points - - .global TimidQuest3Question - TimidQuest3Question: - .string "You are suddenly locked inside a\n" - .string "pitch-black room!{WAIT_PRESS}\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 4, Category 7 (Timid) - .global TimidQuest4Points - TimidQuest4Points: - .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global TimidQuest4Answers - TimidQuest4Answers: - .4byte TimidQuest4_NoProb - .byte 0x00, 0x00, 0x00, 0x00 - .4byte TimidQuest4_Scared - .byte 0x01, 0x00, 0x00, 0x00 - .4byte TimidQuest4_Someone - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global TimidQuest4_Someone - TimidQuest4_Someone: - .string "With someone I like.\0" - .align 2,0 - - .global TimidQuest4_Scared - TimidQuest4_Scared: - .string "Uh... N-no...\0" - .align 2,0 - - .global TimidQuest4_NoProb - TimidQuest4_NoProb: - .string "No problem!\0" - .align 2,0 - - .global TimidQuest4 - TimidQuest4: - .4byte TimidQuest4Question - .4byte TimidQuest4Answers - .4byte TimidQuest4Points - - .global TimidQuest4Question - TimidQuest4Question: - .string "Can you go into a haunted house?\0" - .align 2,0 - - @ Question 1, Category 8 (Hasty) - .global HastyQuest1Points - HastyQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global HastyQuest1Answers - HastyQuest1Answers: - .4byte HastyQuest1_Now - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HastyQuest1_Later - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HastyQuest1_Someone - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global HastyQuest1_Someone - HastyQuest1_Someone: - .string "Get someone to open it.\0" - .align 2,0 - - .global HastyQuest1_Later - HastyQuest1_Later: - .string "Open it later.\0" - .align 2,0 - - .global HastyQuest1_Now - HastyQuest1_Now: - .string "Open it now.\0" - .align 2,0 - - .global HastyQuest1 - HastyQuest1: - .4byte HastyQuest1Question - .4byte HastyQuest1Answers - .4byte HastyQuest1Points - - .global HastyQuest1Question - HastyQuest1Question: - .string "You receive a gift!{WAIT_PRESS}\n" - .string "But you don{APOSTROPHE}t know what{APOSTROPHE}s in it.{WAIT_PRESS}\n" - .string "You{APOSTROPHE}re curious{COMMA} so what do you do?\0" - .align 2,0 - - @ Question 2, Category 8 (Hasty) - .global HastyQuest2Points - HastyQuest2Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - - .global HastyQuest2Answers - HastyQuest2Answers: - .4byte HastyQuest2_Spend - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HastyQuest2_Save - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HastyQuest2_Give - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global HastyQuest2_Give - HastyQuest2_Give: - .string "Give it away.\0" - .align 2,0 - - .global HastyQuest2_Save - HastyQuest2_Save: - .string "Save it.\0" - .align 2,0 - - .global HastyQuest2_Spend - HastyQuest2_Spend: - .string "Spend it now.\0" - .align 2,0 - - .global HastyQuest2 - HastyQuest2: - .4byte HastyQuest2Question - .4byte HastyQuest2Answers - .4byte HastyQuest2Points - - .global HastyQuest2Question - HastyQuest2Question: - .string "You win a lottery!{WAIT_PRESS}\n" - .string "What do you do with the money?\0" - .align 2,0 - - @ Question 3, Category 8 (Hasty) - .global HastyQuest3Points - HastyQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global HastyQuest3Answers - HastyQuest3Answers: - .4byte HastyQuest3_Open - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HastyQuest3_Trap - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HastyQuest3_Empty - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global HastyQuest3_Empty - HastyQuest3_Empty: - .string "It{APOSTROPHE}s going to be empty...\0" - .align 2,0 - - .global HastyQuest3_Trap - HastyQuest3_Trap: - .string "No... Could be a trap...\0" - .align 2,0 - - .global HastyQuest3_Open - HastyQuest3_Open: - .string "Open it right away!\0" - .align 2,0 - - .global HastyQuest3 - HastyQuest3: - .4byte HastyQuest3Question - .4byte HastyQuest3Answers - .4byte HastyQuest3Points - - .global HastyQuest3Question - HastyQuest3Question: - .string "You come across a treasure chest!\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 4, Category 8 (Hasty) - .global HastyQuest4Points - HastyQuest4Points: - .byte 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global HastyQuest4Answers - HastyQuest4Answers: - .4byte HastyQuest4_Irritate - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HastyQuest4_Wait - .byte 0x01, 0x00, 0x00, 0x00 - .4byte HastyQuest4_Bail - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global HastyQuest4_Bail - HastyQuest4_Bail: - .string "Get angry and bail.\0" - .align 2,0 - - .global HastyQuest4_Wait - HastyQuest4_Wait: - .string "Wait patiently.\0" - .align 2,0 - - .global HastyQuest4_Irritate - HastyQuest4_Irritate: - .string "Become irritated.\0" - .align 2,0 - - .global HastyQuest4 - HastyQuest4: - .4byte HastyQuest4Question - .4byte HastyQuest4Answers - .4byte HastyQuest4Points - - .global HastyQuest4Question - HastyQuest4Question: - .string "Your friend fails to show up for a meeting\n" - .string "at the promised time.\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 1, Category 9 (Sassy) - .global SassyQuest1Points - SassyQuest1Points: - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global SassyQuest1Answers - SassyQuest1Answers: - .4byte SassyQuest1_Calmly - .byte 0x00, 0x00, 0x00, 0x00 - .4byte SassyQuest1_Nervous - .byte 0x01, 0x00, 0x00, 0x00 - .4byte SassyQuest1_Whatever - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global SassyQuest1_Whatever - SassyQuest1_Whatever: - .string "WHATEVER!!\0" - .align 2,0 - - .global SassyQuest1_Nervous - SassyQuest1_Nervous: - .string "Speak nervously.\0" - .align 2,0 - - .global SassyQuest1_Calmly - SassyQuest1_Calmly: - .string "Speak calmly.\0" - .align 2,0 - - .global SassyQuest1 - SassyQuest1: - .4byte SassyQuest1Question - .4byte SassyQuest1Answers - .4byte SassyQuest1Points - - .global SassyQuest1Question - SassyQuest1Question: - .string "Your country{APOSTROPHE}s leader is in front of you.\n" - .string "How do you speak to him or her?\0" - .align 2,0 - - @ Question 2, Category 9 (Sassy) - .global SassyQuest2Points - SassyQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global SassyQuest2Answers - SassyQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global SassyQuest2 - SassyQuest2: - .4byte SassyQuest2Question - .4byte SassyQuest2Answers - .4byte SassyQuest2Points - - .global SassyQuest2Question - SassyQuest2Question: - .string "Do others tell you to watch what you say?\0" - .align 2,0 - - @ Question 3, Category 9 (Sassy) - .global SassyQuest3Points - SassyQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global SassyQuest3Answers - SassyQuest3Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global SassyQuest3 - SassyQuest3: - .4byte SassyQuest3Question - .4byte SassyQuest3Answers - .4byte SassyQuest3Points - - .global SassyQuest3Question - SassyQuest3Question: - .string "Do you think you are cool?\n" - .string "Be honest.\0" - .align 2,0 - - @ Question 4, Category 9 (Sassy) - .global SassyQuest4Points - SassyQuest4Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 - - .global SassyQuest4Answers - SassyQuest4Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global SassyQuest4 - SassyQuest4: - .4byte SassyQuest4Question - .4byte SassyQuest4Answers - .4byte SassyQuest4Points - - .global SassyQuest4Question - SassyQuest4Question: - .string "Can you sincerely thank someone when you\n" - .string "feel grateful?\0" - .align 2,0 - - @ Question 1, Category 10 (Calm) - .global CalmQuest1Points - CalmQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global CalmQuest1Answers - CalmQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global CalmQuest1 - CalmQuest1: - .4byte CalmQuest1Question - .4byte CalmQuest1Answers - .4byte CalmQuest1Points - - .global CalmQuest1Question - CalmQuest1Question: - .string "Do you occasionally consider yourself\n" - .string "dull and overly cautious?\0" - .align 2,0 - - @ Question 2, Category 10 (Calm) - .global CalmQuest2Points - CalmQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global CalmQuest2Answers - CalmQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global CalmQuest2 - CalmQuest2: - .4byte CalmQuest2Question - .4byte CalmQuest2Answers - .4byte CalmQuest2Points - - .global CalmQuest2Question - CalmQuest2Question: - .string "Do you dream of lounging around idly\n" - .string "without much excitement?\0" - .align 2,0 - - @ Question 3, Category 10 (Calm) - .global CalmQuest3Points - CalmQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - - .global CalmQuest3Answers - CalmQuest3Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global CalmQuest3 - CalmQuest3: - .4byte CalmQuest3Question - .4byte CalmQuest3Answers - .4byte CalmQuest3Points - - .global CalmQuest3Question - CalmQuest3Question: - .string "Do you like to fight?\0" - .align 2,0 - - @ Question 4, Category 10 (Calm) - .global CalmQuest4Points - CalmQuest4Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global CalmQuest4Answers - CalmQuest4Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global CalmQuest4 - CalmQuest4: - .4byte CalmQuest4Question - .4byte CalmQuest4Answers - .4byte CalmQuest4Points - - .global CalmQuest4Question - CalmQuest4Question: - .string "Do you often yawn?\0" - .align 2,0 - - @ Question 1, Category 11 (Relaxed) - .global RelaxedQuest1Points - RelaxedQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global RelaxedQuest1Answers - RelaxedQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global RelaxedQuest1 - RelaxedQuest1: - .4byte RelaxedQuest1Question - .4byte RelaxedQuest1Answers - .4byte RelaxedQuest1Points - - .global RelaxedQuest1Question - RelaxedQuest1Question: - .string "Are you often late for school or meetings?\0" - .align 2,0 - - @ Question 2, Category 11 (Relaxed) - .global RelaxedQuest2Points - RelaxedQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global RelaxedQuest2Answers - RelaxedQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global RelaxedQuest2 - RelaxedQuest2: - .4byte RelaxedQuest2Question - .4byte RelaxedQuest2Answers - .4byte RelaxedQuest2Points - - .global RelaxedQuest2Question - RelaxedQuest2Question: - .string "Do you get the feeling that you{APOSTROPHE}ve slowed\n" - .string "down lately?\0" - .align 2,0 - - @ Question 3, Category 11 (Relaxed) - .global RelaxedQuest3Points - RelaxedQuest3Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global RelaxedQuest3Answers - RelaxedQuest3Answers: - .4byte RelaxedQuest3_Great - .byte 0x00, 0x00, 0x00, 0x00 - .4byte RelaxedQuest3_Snore - .byte 0x01, 0x00, 0x00, 0x00 - .4byte RelaxedQuest3_Home - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global RelaxedQuest3_Home - RelaxedQuest3_Home: - .string "I want to go home soon!\0" - .align 2,0 - - .global RelaxedQuest3_Snore - RelaxedQuest3_Snore: - .string "Snore...\0" - .align 2,0 - - .global RelaxedQuest3_Great - RelaxedQuest3_Great: - .string "This feels great!\0" - .align 2,0 - - .global RelaxedQuest3 - RelaxedQuest3: - .4byte RelaxedQuest3Question - .4byte RelaxedQuest3Answers - .4byte RelaxedQuest3Points - - .global RelaxedQuest3Question - RelaxedQuest3Question: - .string "It is a pleasant day at the beach.\n" - .string "How do you feel?\0" - .align 2,0 - - - @ Question 4, Category 11 (Relaxed) - .global RelaxedQuest4Points - RelaxedQuest4Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global RelaxedQuest4Answers - RelaxedQuest4Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global RelaxedQuest4 - RelaxedQuest4: - .4byte RelaxedQuest4Question - .4byte RelaxedQuest4Answers - .4byte RelaxedQuest4Points - - .global RelaxedQuest4Question - RelaxedQuest4Question: - .string "Do you fall asleep without noticing?\0" - .align 2,0 - - @ Question 1, Category 12 (Lonely) - .global LonelyQuest1Points - LonelyQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global LonelyQuest1Answers - LonelyQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global LonelyQuest1 - LonelyQuest1: - .4byte LonelyQuest1Question - .4byte LonelyQuest1Answers - .4byte LonelyQuest1Points - - .global LonelyQuest1Question - LonelyQuest1Question: - .string "Do you feel lonesome when you are alone?\0" - .align 2,0 - - @ Question 2, Category 12 (Lonely) - .global LonelyQuest2Points - LonelyQuest2Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global LonelyQuest2Answers - LonelyQuest2Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global LonelyQuest2 - LonelyQuest2: - .4byte LonelyQuest2Question - .4byte LonelyQuest2Answers - .4byte LonelyQuest2Points - - .global LonelyQuest2Question - LonelyQuest2Question: - .string "Do you hate to be the last person to leave\n" - .string "class at the end of a school day?\0" - .align 2,0 - - @ Question 3, Category 12 (Lonely) - .global LonelyQuest3Points - LonelyQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global LonelyQuest3Answers - LonelyQuest3Answers: - .4byte LonelyQuest3_On - .byte 0x00, 0x00, 0x00, 0x00 - .4byte LonelyQuest3_Off - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global LonelyQuest3_Off - LonelyQuest3_Off: - .string "Turn it off.\0" - .align 2,0 - - .global LonelyQuest3_On - LonelyQuest3_On: - .string "Leave it on.\0" - .align 2,0 - - - .global LonelyQuest3 - LonelyQuest3: - .4byte LonelyQuest3Question - .4byte LonelyQuest3Answers - .4byte LonelyQuest3Points - - .global LonelyQuest3Question - LonelyQuest3Question: - .string "What do you do with your room{APOSTROPHE}s light\n" - .string "when you{APOSTROPHE}re going to bed at night?\0" - .align 2,0 - - @ Question 4, Category 12 (Lonely) - .global LonelyQuest4Points - LonelyQuest4Points: - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00 - - .global LonelyQuest4Answers - LonelyQuest4Answers: - .4byte LonelyQuest4_Trip - .byte 0x00, 0x00, 0x00, 0x00 - .4byte LonelyQuest4_Hang - .byte 0x01, 0x00, 0x00, 0x00 - .4byte LonelyQuest4_Huddle - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global LonelyQuest4_Huddle - LonelyQuest4_Huddle: - .string "Huddle in a corner.\0" - .align 2,0 - - .global LonelyQuest4_Hang - LonelyQuest4_Hang: - .string "Hang around vacantly.\0" - .align 2,0 - - .global LonelyQuest4_Trip - LonelyQuest4_Trip: - .string "Go on a trip.\0" - .align 2,0 - - .global LonelyQuest4 - LonelyQuest4: - .4byte LonelyQuest4Question - .4byte LonelyQuest4Answers - .4byte LonelyQuest4Points - - .global LonelyQuest4Question - LonelyQuest4Question: - .string "It{APOSTROPHE}s a weekend{COMMA} but no one will play\n" - .string "with you...\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 1, Category 13 (Quirky) - .global QuirkyQuest1Points - QuirkyQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global QuirkyQuest1Answers - QuirkyQuest1Answers: - .4byte HardyQuest2_Yes - .byte 0x00, 0x00, 0x00, 0x00 - .4byte HardyQuest3_No - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global QuirkyQuest1 - QuirkyQuest1: - .4byte QuirkyQuest1Question - .4byte QuirkyQuest1Answers - .4byte QuirkyQuest1Points - - .global QuirkyQuest1Question - QuirkyQuest1Question: - .string "Do you sometimes run out of things to do\n" - .string "all of a sudden?\0" - .align 2,0 - - @ Question 2, Category 13 (Quirky) - .global QuirkyQuest2Points - QuirkyQuest2Points: - .byte 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global QuirkyQuest2Answers - QuirkyQuest2Answers: - .4byte QuirkyQuest2_Reply - .byte 0x00, 0x00, 0x00, 0x00 - .4byte QuirkyQuest2_MayMayNot - .byte 0x01, 0x00, 0x00, 0x00 - .4byte QuirkyQuest2_Trouble - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global QuirkyQuest2_Trouble - QuirkyQuest2_Trouble: - .string "Too much trouble.\0" - .align 2,0 - - .global QuirkyQuest2_MayMayNot - QuirkyQuest2_MayMayNot: - .string "May reply{COMMA} may not.\0" - .align 2,0 - - .global QuirkyQuest2_Reply - QuirkyQuest2_Reply: - .string "Reply right away.\0" - .align 2,0 - - .global QuirkyQuest2 - QuirkyQuest2: - .4byte QuirkyQuest2Question - .4byte QuirkyQuest2Answers - .4byte QuirkyQuest2Points - - .global QuirkyQuest2Question - QuirkyQuest2Question: - .string "How quickly do you respond to an e-mail?\0" - .align 2,0 - - @ Question 3, Category 13 (Quirky) - .global QuirkyQuest3Points - QuirkyQuest3Points: - .byte 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 - - .global QuirkyQuest3Answers - QuirkyQuest3Answers: - .4byte QuirkyQuest3_Declare - .byte 0x00, 0x00, 0x00, 0x00 - .4byte QuirkyQuest3_Hello - .byte 0x01, 0x00, 0x00, 0x00 - .4byte QuirkyQuest3_Prank - .byte 0x02, 0x00, 0x00, 0x00 - .4byte QuirkyQuest3_Afar - .byte 0x03, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global QuirkyQuest3_Afar - QuirkyQuest3_Afar: - .string "Look from afar.\0" - .align 2,0 - - .global QuirkyQuest3_Prank - QuirkyQuest3_Prank: - .string "Pull a prank to get attention.\0" - .align 2,0 - - .global QuirkyQuest3_Hello - QuirkyQuest3_Hello: - .string "Might say hello...\0" - .align 2,0 - - .global QuirkyQuest3_Declare - QuirkyQuest3_Declare: - .string "Bravely declare my love.\0" - .align 2,0 - - .global QuirkyQuest3 - QuirkyQuest3: - .4byte QuirkyQuest3Question - .4byte QuirkyQuest3Answers - .4byte QuirkyQuest3Points - - .global QuirkyQuest3Question - QuirkyQuest3Question: - .string "There is a person you like...{WAIT_PRESS}\n" - .string "But there{APOSTROPHE}s no opportunity to get close.\n" - .string "What do you do?\0" - .align 2,0 - - @ Question 4, Category 13 (Quirky) - .global QuirkyQuest4Points - QuirkyQuest4Points: - .byte 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +2 Docile - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +2 Sassy - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 @ +2 Quirky - - .global QuirkyQuest4Answers - QuirkyQuest4Answers: - .4byte QuirkyQuest4_GoRight - .byte 0x00, 0x00, 0x00, 0x00 - .4byte QuirkyQuest4_GoLeft - .byte 0x01, 0x00, 0x00, 0x00 - .4byte QuirkyQuest4_EitherSide - .byte 0x02, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global QuirkyQuest4_EitherSide - QuirkyQuest4_EitherSide: - .string "Choose either side.\0" - .align 2,0 - - .global QuirkyQuest4_GoLeft - QuirkyQuest4_GoLeft: - .string "It{APOSTROPHE}s a trap! Go left.\0" - .align 2,0 - - .global QuirkyQuest4_GoRight - QuirkyQuest4_GoRight: - .string "Instantly go right.\0" - .align 2,0 - - .global QuirkyQuest4 - QuirkyQuest4: - .4byte QuirkyQuest4Question - .4byte QuirkyQuest4Answers - .4byte QuirkyQuest4Points - - .global QuirkyQuest4Question - QuirkyQuest4Question: - .string "The road forks to the right and left.\n" - .string "You are told there is a treasure on the\n" - .string "right side. What do you do?\0" - .align 2,0 - - @ Question 1, Category 14 (Miscellaneous) - .global MiscQuest1Points - MiscQuest1Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 @ +1 Hasty, +1 Quirky - .byte 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 @ +1 Jolly, +1 Lonely - - .global MiscQuest1Answers - MiscQuest1Answers: - .4byte MiscQuest1_Alone - .byte 0x00, 0x00, 0x00, 0x00 - .4byte MiscQuest1_Others - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global MiscQuest1_Others - MiscQuest1_Others: - .string "Go with others.\0" - .align 2,0 - - .global MiscQuest1_Alone - MiscQuest1_Alone: - .string "Go alone.\0" - .align 2,0 - - .global MiscQuest1 - MiscQuest1: - .4byte MiscQuest1Question - .4byte MiscQuest1Answers - .4byte MiscQuest1Points - - .global MiscQuest1Question - MiscQuest1Question: - .string "On vacation outings{COMMA} you want to...\0" - .align 2,0 - - @ Question 2, Category 14 (Miscellaneous) - .global MiscQuest2Points - MiscQuest2Points: - .byte 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +2 Jolly - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 @ +1 Sassy, +1 Quirky - - .global MiscQuest2Answers - MiscQuest2Answers: - .4byte NaiveQuest1_Love - .byte 0x00, 0x00, 0x00, 0x00 - .4byte MiscQuest2_DontCare - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global MiscQuest2_DontCare - MiscQuest2_DontCare: - .string "Don{APOSTROPHE}t care.\0" - .align 2,0 - - .global MiscQuest2 - MiscQuest2: - .4byte MiscQuest2Question - .4byte MiscQuest2Answers - .4byte MiscQuest2Points - - .global MiscQuest2Question - MiscQuest2Question: - .string "It{APOSTROPHE}s the summer festival!\n" - .string "Do you like carnivals?\0" - .align 2,0 - - @ Question 3, Category 14 (Miscellaneous) - .global MiscQuest3Points - MiscQuest3Points: - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 @ +1 Naive, +1 Lonely - .byte 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 @ +1 Sassy, +1 Hasty - - .global MiscQuest3Answers - MiscQuest3Answers: - .4byte MiscQuest3Happy @ Happy pointer - .byte 0x00, 0x00, 0x00, 0x00 - .4byte MiscQuest3NotHappy @ Not happy pointer - .byte 0x01, 0x00, 0x00, 0x00 - .byte 0x00, 0x00, 0x00, 0x00 - .4byte -1 - - .global MiscQuest3NotHappy - MiscQuest3NotHappy: - .string "Not happy.\0" - .align 2,0 - - .global MiscQuest3Happy - MiscQuest3Happy: - .string "Happy!\0" - .align 2,0 - - .global MiscQuest3 - MiscQuest3: - .4byte MiscQuest3Question - .4byte MiscQuest3Answers - .4byte MiscQuest3Points - - .global MiscQuest3Question - MiscQuest3Question: - .string "Somebody calls you {QUOTE_START}weird but funny.{QUOTE_END}\n" - .string "How does that make you feel?\0" - .align 2,0 diff --git a/include/code_2.h b/include/code_2.h new file mode 100644 index 000000000..658fe3cc0 --- /dev/null +++ b/include/code_2.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CODE_2_H +#define GUARD_CODE_2_H + +// code_2.s +extern void sub_8001024(u32 *); +extern void sub_8001044(u32 *); + +#endif // GUARD_CODE_2_H \ No newline at end of file diff --git a/include/code_803B050.h b/include/code_803B050.h index cdb92a269..a0e14ff16 100644 --- a/include/code_803B050.h +++ b/include/code_803B050.h @@ -3,28 +3,6 @@ #include "structs/str_802C39C.h" -// size: 0x8 -typedef struct unkStruct_80E9920 -{ - /* 0x0 */ s16 unkA; - /* 0x2 */ s16 unkB; - /* 0x4 */ u8 *text; -} unkStruct_80E9920; - -// size: 0xC -typedef struct unkStruct_80E9F8C -{ - /* 0x0 */ s16 unkA; - /* 0x2 */ s16 unkB; - /* 0x4 */ u8 *text1; - /* 0x8 */ u8 *text2; -} unkStruct_80E9F8C; - -void CreateRescueDescription(unkStruct_802C39C *); -void CreateRescueTitle(unkStruct_802C39C *); - -void sub_803B6B0(s32 x, s32 y, u8 index, u32); - // code_803B050.s extern unkStruct_803B344 *sub_803B344(u8); extern void sub_803B35C(WonderMail *, unkStruct_802C39C *); diff --git a/include/code_803C1D0.h b/include/code_803C1D0.h index 9a005f239..35bc31b59 100644 --- a/include/code_803C1D0.h +++ b/include/code_803C1D0.h @@ -4,6 +4,8 @@ #include "structs/str_wonder_mail.h" // code_803C1D0.s +extern u8 sub_803C1D0(DungeonLocation *, u8); +extern u8 *sub_803C1F0(u8); extern void sub_803C21C(WonderMail *, unkStruct_802F204 *); #endif // GUARD_CODE_803C1D0_H \ No newline at end of file diff --git a/include/code_803D110.h b/include/code_803D110.h new file mode 100644 index 000000000..7c41b343a --- /dev/null +++ b/include/code_803D110.h @@ -0,0 +1,9 @@ +#ifndef GUARD_CODE_803D110_H +#define GUARD_CODE_803D110_H + +#include "structs/str_wonder_mail.h" + +// code_803D110.s +extern void sub_803D414(u8 *, WonderMail *); + +#endif // GUARD_CODE_803D110_H \ No newline at end of file diff --git a/include/code_8094D28.h b/include/code_8094D28.h new file mode 100644 index 000000000..7ed781611 --- /dev/null +++ b/include/code_8094D28.h @@ -0,0 +1,8 @@ +#ifndef GUARD_CODE_8094D28_H +#define GUARD_CODE_8094D28_H + +// code_8094D28.s +extern void sub_8094D28(s32); +extern s32 sub_8094E4C(void); + +#endif // GUARD_CODE_8094D28_H \ No newline at end of file diff --git a/include/constants/monster.h b/include/constants/monster.h index 9664c990a..6bf63ff90 100644 --- a/include/constants/monster.h +++ b/include/constants/monster.h @@ -341,7 +341,7 @@ #define MONSTER_PLUSLE 336 #define MONSTER_MINUN 337 #define MONSTER_VOLBEAT 338 -#define MONSTER_ILLIMISE 339 +#define MONSTER_ILLUMISE 339 #define MONSTER_ROSELIA 340 #define MONSTER_GULPIN 341 #define MONSTER_SWALOT 342 diff --git a/include/constants/personality_test.h b/include/constants/personality_test.h index b2c9a92d5..b6b9e0a1c 100644 --- a/include/constants/personality_test.h +++ b/include/constants/personality_test.h @@ -1,7 +1,8 @@ #ifndef GUARD_CONSTANTS_PERSONALITY_TEST_H #define GUARD_CONSTANTS_PERSONALITY_TEST_H -enum NaturePersonalities { +enum NaturePersonalities +{ HARDY, DOCILE, BRAVE, @@ -25,4 +26,4 @@ enum NaturePersonalities { #define BRAVE_2B_TRIGGER 99 -#endif +#endif // GUARD_CONSTANTS_PERSONALITY_TEST_H \ No newline at end of file diff --git a/include/dungeon.h b/include/dungeon.h index e88ff9324..58b6bef5d 100644 --- a/include/dungeon.h +++ b/include/dungeon.h @@ -42,6 +42,7 @@ u32 GetMaxItemsAllowed(u8 dungeon); s8 GetRescuesAllowed(u8 dungeon); bool8 HasCheckpoint(u8 dungeon); void PrintYellowDungeonNametoBuffer(u8 *buffer, DungeonLocation *dungeonLocation); +void PrintDungeonLocationtoBuffer(u8 *buffer, DungeonLocation *dungeonLocation); u32 sub_80908D8(DungeonLocation *dungeon); u8 sub_8090910(DungeonLocation *dungeon, u32 param_2); diff --git a/include/personality_test.h b/include/personality_test.h deleted file mode 100644 index c6abea68f..000000000 --- a/include/personality_test.h +++ /dev/null @@ -1,87 +0,0 @@ -#ifndef GUARD_PERSONALITY_TEST_H -#define GUARD_PERSONALITY_TEST_H - -#include "constants/personality_test.h" -#include "structs/menu.h" -#include "structs/str_text.h" - -// Definitely wrong but need to figure out better structure later -struct FaceData -{ - /* 0x0 */ u8 *unk0[5]; -}; - -struct PersonalityAnswer -{ - const char * text; - int effect; -}; - -struct PersonalityQuestion -{ - const char * question; - const struct PersonalityAnswer * answers; - const u8 (*effects); -}; - -struct PersonalityTestTracker -{ - /* 0x0 */ s32 FrameCounter; - /* 0x4 */ u32 unk4; - /* 0x8 */ s16 StarterID; - /* 0xA */ s16 PartnerID; - u8 padding[0x20 - 0xC]; - /* 0x20 */ char PartnerNick[0x14]; - /* 0x34 */ u32 TestState; - /* 0x38 */ s32 QuestionCounter; - /* 0x3C */ u32 currQuestionIndex; - /* 0x40 */ u8 playerNature; - /* 0x44 */ s32 NatureTotals[NUM_PERSONALITIES]; - /* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS]; - /* 0xB0 */ u32 playerGender; // 1 = Female, 0 = Male - /* 0xB4 */ MenuInputStructSub input; -}; - -struct PersonalityStruct_203B404 -{ - // Size: 0xB8 - /* 0x0 */ s16 StarterID; - /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; - u8 unk16; - /* 0x18 */ MenuInputStruct input; - u32 unk4C; - /* 0x50 */ UnkTextStruct2 *unk50; - /* 0x54 */ UnkTextStruct2 unk54[4]; - /* 0xB4 */ u8 unkb4[4]; -}; - -void InitializeTestStats(void); -void GenerateNewQuestionOrGender(void); -void CallPromptNewQuestion(void); -void PrintPersonalityTypeDescription(void); -void SetPlayerGender(void); -void RevealPersonality(void); -void RevealStarter(void); -void AdvanceToPickPartnerPrompt(void); -void PromptPickPartner(void); -void AdvanceToPartnerSelection(void); -void CallCreatePartnerSelectionMenu(void); -void PromptForPartnerNickname(void); -void AdvanceToPartnerNickhameScreen(void); -void NicknamePartner(void); -void PrintEndIntroText(void); -void AdvanceToTestEnd(void); -s32 GetValidPartners(void); -void UpdateNatureTotals(void); -void PromptNewQuestion(void); -void PersonalityTest_DisplayPartnerSprite(void); -u16 HandlePartnerSelectionInput(void); -void PersonalityTest_DisplayStarterSprite(void); -void CreatePartnerSelectionMenu(s16); -void sub_803CE6C(void); -void sub_803CEAC(void); -void sub_803CECC(void); -void nullsub_135(void); - - -#endif diff --git a/include/personality_test1.h b/include/personality_test1.h new file mode 100644 index 000000000..d0d2a4b05 --- /dev/null +++ b/include/personality_test1.h @@ -0,0 +1,37 @@ +#ifndef GUARD_PERSONALITY_TEST1_H +#define GUARD_PERSONALITY_TEST1_H + +#include "constants/personality_test.h" +#include "structs/menu.h" + +// size: 0xC +typedef struct PersonalityQuestion +{ + /* 0x0 */ const u8 *question; + /* 0x4 */ const MenuItem *answers; + /* 0x8 */ const u8 *effects; +} PersonalityQuestion; + +struct PersonalityTestTracker +{ + /* 0x0 */ s32 FrameCounter; + u32 unk4; + /* 0x8 */ s16 StarterID; + /* 0xA */ s16 PartnerID; + u8 fillC[0x20 - 0xC]; + /* 0x20 */ u8 PartnerNick[20]; + /* 0x34 */ u32 TestState; + /* 0x38 */ s32 QuestionCounter; + /* 0x3C */ u32 currQuestionIndex; + /* 0x40 */ u8 playerNature; + /* 0x44 */ s32 NatureTotals[NUM_PERSONALITIES]; + /* 0x78 */ u8 QuestionTracker[NUM_QUIZ_QUESTIONS]; + /* 0xB0 */ u32 playerGender; // 1 = Female, 0 = Male + /* 0xB4 */ MenuInputStructSub input; +}; + +bool8 CreateTestTracker(void); +void DeleteTestTracker(void); +u8 HandleTestTrackerState(void); + +#endif // GUARD_PERSONALITY_TEST1_H \ No newline at end of file diff --git a/include/personality_test2.h b/include/personality_test2.h new file mode 100644 index 000000000..43c8b654b --- /dev/null +++ b/include/personality_test2.h @@ -0,0 +1,26 @@ +#ifndef GUARD_PERSONALITY_TEST2_H +#define GUARD_PERSONALITY_TEST2_H + +#include "constants/personality_test.h" +#include "structs/menu.h" +#include "structs/str_text.h" + +// Size: 0xB8 +struct PersonalityStruct_203B404 +{ + /* 0x0 */ s16 StarterID; + /* 0x2 */ s16 PartnerArray[NUM_PARTNERS]; + u8 unk16; + /* 0x18 */ MenuInputStruct input; + u32 unk4C; + UnkTextStruct2 *unk50; + UnkTextStruct2 unk54[4]; + u8 unkb4[4]; +}; + +void CreatePartnerSelectionMenu(s16 starterID); +u16 HandlePartnerSelectionInput(void); + +void sub_803CE6C(void); + +#endif // GUARD_PERSONALITY_TEST2_H \ No newline at end of file diff --git a/include/pokemon.h b/include/pokemon.h index 6d49ca3bd..5cf9fd65e 100644 --- a/include/pokemon.h +++ b/include/pokemon.h @@ -92,6 +92,7 @@ s32 sub_808E218(unkStruct_808E218_arg *, PokemonStruct1 *pokemon); extern PokemonStruct1 *GetPlayerPokemonStruct(void); extern void sub_808CFD0(u8 *, s16, u8 *, u8, u32 *, u16 *); extern u32 sub_808D1DC(u8 *); +extern PokemonStruct1 *sub_808D378(void); extern PokemonStruct1 *sub_808D3BC(void); extern PokemonStruct1 *sub_808D3F8(void); extern s32 sub_808D544(u32); diff --git a/include/pokemon_mail.h b/include/pokemon_mail.h index 8af868d76..d12f2517c 100644 --- a/include/pokemon_mail.h +++ b/include/pokemon_mail.h @@ -1,15 +1,41 @@ #ifndef POKEMON_MAIL_H #define POKEMON_MAIL_H -struct PokemonMail +#include "structs/str_802C39C.h" + +// size: 0x8 +typedef struct PokemonMail { const u8 *headline; const u8 *text; -}; +} PokemonMail; + +// size: 0x8 +typedef struct unkStruct_80E9920 +{ + /* 0x0 */ s16 parentSpecies; + /* 0x2 */ s16 childSpecies; + /* 0x4 */ const u8 *text; +} unkStruct_80E9920; + +// size: 0xC +typedef struct unkStruct_80E9F8C +{ + /* 0x0 */ s16 speciesA; + /* 0x2 */ s16 speciesB; + /* 0x4 */ const u8 *headline; + /* 0x8 */ const u8 *text; +} unkStruct_80E9F8C; #define NUM_POKEMON_MAIL 56 +void CreateRescueDescription(unkStruct_802C39C *); +void CreateRescueTitle(unkStruct_802C39C *); const u8 *GetPokemonMailHeadline(u8 index); const u8 *GetPokemonMailText(u8 index); +void sub_803B6B0(s32 x, s32 y, u8 index, u32); +bool8 sub_803C0DC(s16 species); +bool8 sub_803C110(s16 index); + #endif // POKEMON_MAIL_H diff --git a/include/pokemon_mail_pre.h b/include/pokemon_mail_pre.h new file mode 100644 index 000000000..1d44fc592 --- /dev/null +++ b/include/pokemon_mail_pre.h @@ -0,0 +1,38 @@ +#ifndef POKEMON_MAIL_PRE_H +#define POKEMON_MAIL_PRE_H + +extern const s16 gUnknown_80E80E0[35]; +extern const s16 gUnknown_80E8126[33]; +extern const u8 gMankeyMission[]; +extern const u8 gSmeargleMission[]; +extern const u8 gMedichamMission[]; +extern const u8 gUnknown_80E8830[]; +extern const u8 gUnknown_80E8848[]; +extern const u8 gUnknown_80E885C[]; +extern const u8 gUnknown_80E886C[]; +extern const u8 gUnknown_80E8884[]; +extern const u8 gUnknown_80E888C[]; +extern const u8 gMankeyMissionDescription[]; +extern const u8 gSmeargleMissionDescription[]; +extern const u8 gMedichamMissionDescription[]; +extern const u8 gUnknown_80E8968[]; +extern const u8 gUnknown_80E89B0[]; +extern const u8 gUnknown_80E89FC[]; +extern const u8 gUnknown_80E8A40[]; +extern const u8 gUnknown_80E8A7C[]; +extern const u8 gUnknown_80E8AC8[]; +extern const u8 gUnknown_80E8AD0[]; +extern const u8 gUnknown_80E8AE0[]; +extern const u8 gUnknown_80E8AEC[]; +extern const u8 gUnknown_80E8AFC[]; +extern const u8 gUnknown_80E8B10[]; +extern const u8 gUnknown_80E8B20[]; +extern const u8 gUnknown_80E8B2C[]; +extern const u8 gUnknown_80E8B40[]; +extern const u8 gSpecialMissionText[]; +extern const u8 gPlaceText[]; +extern const u8 gDifficultyText[]; +extern const u8 gRewardText[]; +extern const u8 gUnknown_80E8B7C[]; + +#endif // POKEMON_MAIL_PRE_H \ No newline at end of file diff --git a/include/structs/str_pokemon.h b/include/structs/str_pokemon.h index b09029254..6a7eb6f6c 100644 --- a/include/structs/str_pokemon.h +++ b/include/structs/str_pokemon.h @@ -164,4 +164,10 @@ typedef struct LevelData u16 fillA; } LevelData; +// Definitely wrong but need to figure out better structure later +struct FaceData +{ + u8 *unk0[5]; +}; + #endif // GUARD_STR_POKEMON_H \ No newline at end of file diff --git a/include/text2.h b/include/text2.h index 2b526dbed..c7fa2f8e2 100644 --- a/include/text2.h +++ b/include/text2.h @@ -44,6 +44,7 @@ void sub_8007E20(u32, u32, u32, u32, u32, u8 *, u32); // text.s extern struct unkChar *GetCharacter(u32); extern void InitGraphics(void); +extern void sub_800836C(u32, u8 *, u32); extern void sub_800898C(void); extern void sub_80089AC(const UnkTextStruct2 *, UnkTextStruct2_sub *); extern void sub_8008C54(u32); diff --git a/ld_script.txt b/ld_script.txt index ba014be66..0cf487770 100755 --- a/ld_script.txt +++ b/ld_script.txt @@ -183,11 +183,11 @@ SECTIONS { src/debug_menu3.o(.text); src/debug_menu4.o(.text); asm/code_803B050.o(.text); - src/code_803B050.o(.text); src/pokemon_mail.o(.text); src/code_803C1B4.o(.text); asm/code_803C1D0.o(.text); - src/personality_test.o(.text); + src/personality_test1.o(.text); + src/personality_test2.o(.text); src/code_803D0D8.o(.text); asm/code_803D110.o(.text); src/code_8040094.o(.text); @@ -499,10 +499,10 @@ SECTIONS { src/debug_menu3.o(.rodata); src/debug_menu4.o(.rodata); data/data_80E7D40.o(.rodata); + src/pokemon_mail_pre.o(.rodata); src/pokemon_mail.o(.rodata); - src/code_803C1B4.o(.rodata); - data/personality_test.o(.rodata); - src/personality_test.o(.rodata); + src/personality_test1.o(.rodata); + src/personality_test2.o(.rodata); src/code_803D0D8.o(.rodata); data/data_80F4278.o(.rodata); src/dungeon_util.o(.rodata); diff --git a/src/code_802DE84.c b/src/code_802DE84.c index e3f476a98..d9a059d51 100644 --- a/src/code_802DE84.c +++ b/src/code_802DE84.c @@ -2,10 +2,10 @@ #include "globaldata.h" #include "code_80118A4.h" #include "code_802DE84.h" -#include "code_803B050.h" #include "input.h" #include "memory.h" #include "menu_input.h" +#include "pokemon_mail.h" #include "text1.h" #include "text2.h" diff --git a/src/code_803B050.c b/src/code_803B050.c deleted file mode 100644 index 41dabb4b2..000000000 --- a/src/code_803B050.c +++ /dev/null @@ -1,484 +0,0 @@ -#include "global.h" -#include "code_8012A18_1.h" -#include "code_803B050.h" -#include "constants/colors.h" -#include "constants/wonder_mail.h" -#include "pokemon.h" -#include "pokemon_3.h" -#include "event_flag.h" -#include "exclusive_pokemon.h" -#include "code_8094F88.h" -#include "text_util.h" -#include "text2.h" -#include "code_800D090.h" -#include "menu_input.h" -#include "dungeon.h" - -// This file was originally 7 files. Check data_80E7D40.s - -extern s16 gUnknown_80E80E0[]; -extern s16 gUnknown_80E8126[]; -extern u8 gUnknown_80E888C[]; -extern u8 *gUnknown_80E8BCC[]; -extern u8 gMankeyMissionDescription[]; -extern u8 gSmeargleMissionDescription[]; -extern u8 gMedichamMissionDescription[]; -extern u8 gUnknown_202DE58[]; -extern u8 gUnknown_80E8968[]; -extern u8 gUnknown_80E89B0[]; -extern u8 gAvailablePokemonNames[]; -extern u8 gDifficultyText[]; -extern u8 gPlaceText[]; -extern u8 gUnknown_80E8AD0[]; -extern u8 gUnknown_80E8AE0[]; -extern u8 gUnknown_80E8AEC[]; -extern u8 gUnknown_80E8B10[]; -extern u8 gUnknown_80E8AFC[]; -extern u8 gUnknown_80E8B20[]; -extern u8 gUnknown_80E8B40[]; -extern u8 gUnknown_80E8B2C[]; -extern u8 *gUnknown_80EB220[]; -extern u8 gRewardText[]; -extern u8 *gMissionRewardText[]; -extern u8 gUnknown_80E8B7C[]; -extern u8 *gUnknown_80EB2F0[]; -extern u8 gUnknown_80E89FC[]; -extern u8 gUnknown_80E8A40[]; -extern u8 gUnknown_80E8A7C[]; -extern u8 *gUnknown_80E8DE4[]; -extern u8 *gUnknown_80E8FB0[]; -extern u8 *gUnknown_80E91D4[]; -extern u8 *gUnknown_80E9820[10]; -extern u8 *gUnknown_80EAEB8[]; -extern u8 gSpecialMissionText[]; -extern u8 *gUnknown_80EB198[]; -extern u8 *gUnknown_80EB3F8[]; -extern u8 *gUnknown_80EB72C[22]; -extern u8 gUnknown_80E8AC8[]; -extern u8 gUnknown_80E8884[]; -extern u8 gMankeyMission[]; -extern u8 gSmeargleMission[]; -extern u8 gMedichamMission[]; -extern u8 gUnknown_80E8830[]; -extern u8 gUnknown_80E8848[]; -extern u8 gUnknown_80E885C[]; -extern u8 gUnknown_80E8AC8[]; -extern u8 *gUnknown_80E910C[]; -extern u8 *gUnknown_80E8C98[]; -extern u8 gUnknown_80E886C[]; -extern u8 *gUnknown_80EAE5C[]; -extern unkStruct_80E9F8C gUnknown_80E9F8C[10]; -extern unkStruct_80E9920 gUnknown_80E9920[10]; -extern u8 *gUnknown_80E8B94[]; - -extern PokemonStruct1 *sub_808D378(void); - -extern void PrintDungeonLocationtoBuffer(u8 *, void *); -extern u8 sub_803C1D0(WonderMailSub *, u8); -extern u8 *sub_803C1F0(u8); -void sub_803D414(u8 *, WonderMail *); - -void sub_803B6B0(s32 x, s32 y, u8 index, u32 param_4) -{ - xxx_call_draw_string(x,y,gUnknown_80E8B94[index],param_4,0); -} - -void CreateRescueTitle(unkStruct_802C39C *param_1) -{ - u8 buf_1[200]; - u8 buf_2[20]; - u8 buf_3[100]; - u8 *monName; - u8 uVar1; - - sub_803B6B0(10,param_1->y,param_1->unk43,param_1->unk0[0]); - switch(param_1->mailTitleType) { - case 3: - xxx_call_draw_string(0x15,param_1->y,param_1->unk4C,param_1->unk0[0],0); - break; - case 0: - xxx_call_draw_string(0x15,param_1->y,gMankeyMission,param_1->unk0[0],0); - break; - case 1: - xxx_call_draw_string(0x15,param_1->y,gSmeargleMission,param_1->unk0[0],0); - break; - case 2: - xxx_call_draw_string(0x15,param_1->y,gMedichamMission,param_1->unk0[0],0); - break; - case 7: - PrintYellowDungeonNametoBuffer(buf_1, ¶m_1->unk8->dungeon); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - case 12: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E8830,gUnknown_202DE58); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - case 11: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E8848,gUnknown_202DE58); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - case 4: - xxx_call_draw_string(0x15,param_1->y,gUnknown_80E885C,param_1->unk0[0],0); - break; - case 5: - xxx_call_draw_string(0x15,param_1->y,gUnknown_80E9F8C[param_1->unk0[1]].text1,param_1->unk0[0],0); - break; - case 6: - xxx_call_draw_string(0x15,param_1->y,gUnknown_80E886C,param_1->unk0[0],0); - break; - case 10: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80EAE5C[(bVar2 & 3)],gAvailablePokemonNames); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - } - case 9: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E910C[(bVar2 % 0xA)],gAvailablePokemonNames); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - } - default: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E8C98[(bVar2 % 0xf)],gAvailablePokemonNames); - xxx_call_draw_string(0x15,param_1->y,buf_1,param_1->unk0[0],0); - break; - } - } - - if (param_1->mailTitleType == 7) { - if (param_1->playerName == NULL) { - xxx_call_draw_string(0xb2 - sub_8016028(),param_1->y,GetMonSpecies(param_1->clientSpecies),param_1->unk0[0],0); - } - else { - sub_80922B4(buf_2,param_1->playerName,POKEMON_NAME_LENGTH); - xxx_call_draw_string(0xb2 - sub_8016028(),param_1->y,buf_2,param_1->unk0[0],0); - } - } - else { - if (param_1->mailMissionType == MISSION_TYPE_FIND_ITEM) { - PrintDungeonLocationtoBuffer(buf_3, param_1->unk8); - sprintfStatic(buf_1,gUnknown_80E8884,buf_3); // Near %s - } - else { - PrintDungeonLocationtoBuffer(buf_1, param_1->unk8); - } - xxx_call_draw_string(0x1d,param_1->y + 0xc,buf_1,param_1->unk0[0],0); - } - if (param_1->mailTitleType == 7) { - uVar1 = sub_803C1D0(param_1->unk8,0); - } - else { - uVar1 = sub_803C1D0(param_1->unk8,param_1->mail->missionType); - } - xxx_call_draw_string(0xb4,param_1->y,sub_803C1F0(uVar1),param_1->unk0[0],0); -} - -void CreateRescueDescription(unkStruct_802C39C *param_1) -{ - u8 uVar3; - int x; - int counter; - u32 color; - s32 y; - char buf_1 [300]; - char buf_2 [40]; - char buf_3 [20]; - char buf_4 [20]; - char buf_5 [100]; - u8 local_34 [24]; - u8 *monName; - - y = 0; - - xxx_call_draw_string(10,y,gUnknown_80E888C,param_1->unk0[0],0); - xxx_call_draw_string(0x6c,y,gUnknown_80E8BCC[param_1->mailStatus],param_1->unk0[0],0); - y += 0x10; - switch(param_1->mailDescriptionType) { - case 3: - xxx_call_draw_string(10,y,param_1->unk50,param_1->unk0[0],0); - break; - case 0: - xxx_call_draw_string(10,y,gMankeyMissionDescription,param_1->unk0[0],0); - break; - case 1: - xxx_call_draw_string(10,y,gSmeargleMissionDescription,param_1->unk0[0],0); - break; - case 2: - xxx_call_draw_string(10,y,gMedichamMissionDescription,param_1->unk0[0],0); - break; - case 4: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E8968,gUnknown_202DE58); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - break; - case 5: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E89B0,gUnknown_202DE58); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - break; - case 6: - xxx_call_draw_string(10,y,gUnknown_80E9920[param_1->unk0[1]].text,param_1->unk0[0],0); - break; - case 7: - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E9F8C[param_1->unk0[1]].text2,gAvailablePokemonNames,gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - break; - case 9: - xxx_call_draw_string(10,y,gUnknown_80E89FC,param_1->unk0[0],0); // This is a rescue through communication. Get a friend to help you! - break; - case 10: - xxx_call_draw_string(10,y,gUnknown_80E8A40,param_1->unk0[0],0); // This is a rescue through communication. Rescue a friend! - break; - case 11: - xxx_call_draw_string(10,y,gUnknown_80E8A7C,param_1->unk0[0],0); // This is a rescue through communication. Send your thanks to a friend! - break; - case 15: - case 16: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80EB3F8[(bVar2 % 0x16)],gUnknown_202DE58); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y += 0xC; - sprintfStatic(buf_1,gUnknown_80EB72C[(bVar3 % 0x16)],gUnknown_202DE58); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y -= 0xC; - break; - } - case 14: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80EAEB8[(bVar2 % 0x14)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y += 0xC; - sprintfStatic(buf_1,(gUnknown_80EB198)[(bVar3 & 3)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y -= 0xC; - break; - } - case 8: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80EB220[(bVar2 % 6)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y += 0xC; - sprintfStatic(buf_1,gUnknown_80EB2F0[(bVar3 % 0x6)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y -= 0xC; - break; - } - case 13: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E91D4[(bVar2 % 0x2d)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y += 0xC; - sprintfStatic(buf_1,gUnknown_80E9820[(bVar3 % 10)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y -= 0xC; - break; - } - default: { - u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; - u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; - monName = GetMonSpecies(param_1->clientSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E8DE4[(bVar2 % 0xd)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y += 0xC; - sprintfStatic(buf_1,gUnknown_80E8FB0[(bVar3 % 0xd)],gAvailablePokemonNames); - xxx_call_draw_string(10,y,buf_1,param_1->unk0[0],0); - y -= 0xC; - break; - } - } - y += 0x1C; - xxx_call_draw_string(10,y,gUnknown_80E8AC8,param_1->unk0[0],0); - if (param_1->playerName == NULL) { - xxx_call_draw_string(0x44,y,GetMonSpecies(param_1->clientSpecies),param_1->unk0[0],0); - } - else { - sub_80922B4(buf_3,param_1->playerName,POKEMON_NAME_LENGTH); - sub_808D930(buf_4,param_1->clientSpecies); - sprintfStatic(buf_2,gUnknown_80E8AD0,buf_3,buf_4); - xxx_call_draw_string(0x44,y,buf_2,param_1->unk0[0],0); - } - - y += 0xC; - xxx_call_draw_string(10,y,gUnknown_80E8AE0,param_1->unk0[0],0); - switch(param_1->mailMissionType) { - case MISSION_TYPE_FRIEND_RESCUE: - xxx_call_draw_string(0x44,y,gUnknown_80E8AEC,param_1->unk0[0],0); // Friend Rescue - break; - case MISSION_TYPE_DELIVER_ITEM: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E8AFC,gUnknown_202DE58); // Deliver #C4%s#R. - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case MISSION_TYPE_FIND_ITEM: - BufferItemName(gUnknown_202DE58,param_1->targetItem,NULL); - sprintfStatic(buf_1,gUnknown_80E8B10,gUnknown_202DE58); // Find #C4%s#R. - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case MISSION_TYPE_RESCUE_CLIENT: - xxx_call_draw_string(0x44,y,gUnknown_80E8B20,param_1->unk0[0],0); // Help me. - break; - case MISSION_TYPE_ESCORT_CLIENT: - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E8B2C,gAvailablePokemonNames); // Escort to #C6%s#R. - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case MISSION_TYPE_RESCUE_TARGET: - monName = GetMonSpecies(param_1->targetSpecies); - strcpy(gAvailablePokemonNames,monName); - sprintfStatic(buf_1,gUnknown_80E8B40,gAvailablePokemonNames); - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case MISSION_TYPE_SPECIAL_MISSION: - default: - xxx_call_draw_string(0x44,y,gSpecialMissionText,param_1->unk0[0],0); - break; - } - y += 0xC; - xxx_call_draw_string(10,y,gPlaceText,param_1->unk0[0],0); - - // NOTE: check with TRUE is needed to match - if (param_1->mailMissionType == MISSION_TYPE_FIND_ITEM) { - PrintDungeonLocationtoBuffer(buf_5,param_1->unk8); - sprintfStatic(buf_1,gUnknown_80E8884,buf_5); // Near %s - } - else { - PrintDungeonLocationtoBuffer(buf_1,param_1->unk8); - } - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - if (param_1->mailMissionType == MISSION_TYPE_FRIEND_RESCUE) { - uVar3 = sub_803C1D0(param_1->unk8, 0); - } - else { - uVar3 = sub_803C1D0(param_1->unk8,param_1->mail->missionType); - } - - y += 0xC; - xxx_call_draw_string(10,y,gDifficultyText,param_1->unk0[0],0); - xxx_call_draw_string(0x44,y,sub_803C1F0(uVar3),param_1->unk0[0],0); - y += 0xC; - xxx_call_draw_string(10,y,gRewardText,param_1->unk0[0],0); - - switch(param_1->rewardType) { - case 0: - sprintfStatic(buf_1,gMissionRewardText[param_1->rewardType],param_1->unk30); - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case 1: - sprintfStatic(buf_1,gMissionRewardText[param_1->rewardType],param_1->unk30); - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case 2: // Item - case 3: // Item + ? - BufferItemName(gUnknown_202DE58,param_1->rewardItem,NULL); - sprintfStatic(buf_1,gMissionRewardText[param_1->rewardType],gUnknown_202DE58); - xxx_call_draw_string(0x44,y,buf_1,param_1->unk0[0],0); - break; - case 4: // Friend Area - xxx_call_draw_string(0x44,y,gMissionRewardText[param_1->rewardType],param_1->unk0[0],0); - break; - default: - xxx_call_draw_string(0x44,y,gMissionRewardText[param_1->rewardType],param_1->unk0[0],0); - break; - } - - // Draw the Password - y += 0xC; - if (((2 < (u8)(param_1->mailDescriptionType - 9)) && (param_1->mailDescriptionType != 3)) && (param_1->mail->mailType == 5)) - { - xxx_call_draw_string(10,y,gUnknown_80E8B7C,param_1->unk0[0],0); // Wonder Mail: - sub_803D414(local_34,param_1->mail); - for(counter = 0; counter < 24; counter++) - { - if (counter == 12) { - y += 12; - } - color = COLOR_WHITE_2; - if (((3 < counter) && (color = COLOR_YELLOW, 7 < counter)) && ((color = COLOR_WHITE_2))) - { - if(counter > 15) - { - if(counter < 20) - { - color = COLOR_YELLOW; - } - } - - } - x = counter % 12; - sub_8012C60(x * 10 + 0x54,y,local_34[counter],color,param_1->unk0[0]); - } - } -} - -bool8 sub_803C0DC(s16 species) -{ - s32 baseSpecies; - s32 index; - - baseSpecies = GetBaseSpecies(species); - index = 0; - if (gUnknown_80E80E0[index] != MONSTER_NONE) - { - while(gUnknown_80E80E0[index] != MONSTER_NONE) { - if (gUnknown_80E80E0[index] == baseSpecies) { - return FALSE; - } - index++; - } - } - return TRUE; -} - -bool8 sub_803C110(s16 index) -{ - PokemonStruct1 *pokeStruct; - s16 *psVar5; - s16 *psVar6; - s32 species_s32; - - species_s32 = (s32)index; - if ((!sub_8098134(index)) || (index != GetBaseSpecies(index)) || (!sub_803C0DC(index))) { - return FALSE; - } - else { - if (!sub_80023E4(6)) { - psVar5 = &gUnknown_80E8126[0]; - if (*psVar5 != 0) { - psVar6 = &gUnknown_80E8126[0]; - do { - if (*psVar6 == species_s32) return FALSE; - psVar5++; - psVar6++; - } while (*psVar5 != MONSTER_NONE); - } - pokeStruct = GetPlayerPokemonStruct(); - if ((pokeStruct->speciesNum == species_s32) || - (pokeStruct = sub_808D378(), pokeStruct->speciesNum == species_s32)) return FALSE; - } - return TRUE; - } -} diff --git a/src/code_803C1B4.c b/src/code_803C1B4.c index acc46a63f..9a2c89a9a 100644 --- a/src/code_803C1B4.c +++ b/src/code_803C1B4.c @@ -1,5 +1,4 @@ #include "global.h" -#include "globaldata.h" #include "dungeon.h" u32 sub_803C1B4(DungeonLocation *dungeon, u8 r1) diff --git a/src/code_8094F88.c b/src/code_8094F88.c index a3f4d2408..082100e43 100644 --- a/src/code_8094F88.c +++ b/src/code_8094F88.c @@ -1,4 +1,5 @@ #include "global.h" +#include "code_8094D28.h" #include "code_8094F88.h" #include "constants/wonder_mail.h" #include "dungeon.h" @@ -25,9 +26,6 @@ extern void RestoreDungeonLocation(struct unkStruct_8094924*, DungeonLocation*); extern void xxx_save_poke_sub_c_808F41C(struct unkStruct_8094924* a1, struct unkPokeSubStruct_C* unkC); extern void xxx_restore_poke_sub_c_808F410(struct unkStruct_8094924*, struct unkPokeSubStruct_C*); -extern s32 sub_8094E4C(void); -extern void sub_8094D28(s32); - void sub_80950BC(void) { gUnknown_203B480 = gUnknown_2038C88; diff --git a/src/code_80958E8.c b/src/code_80958E8.c index 0adeb9811..7b8d7281c 100644 --- a/src/code_80958E8.c +++ b/src/code_80958E8.c @@ -1,20 +1,20 @@ #include "global.h" -#include "memory.h" -#include "items.h" -#include "friend_area.h" +#include "code_803C1D0.h" +#include "code_8094F88.h" +#include "code_80958E8.h" +#include "code_80958E8_1.h" #include "constants/friend_area.h" #include "constants/wonder_mail.h" #include "dungeon.h" -#include "code_80958E8.h" -#include "code_80958E8_1.h" +#include "friend_area.h" +#include "items.h" +#include "mailbox_8095F8C.h" +#include "memory.h" #include "pokemon.h" #include "pokemon_3.h" -#include "code_8094F88.h" -#include "mailbox_8095F8C.h" +#include "pokemon_mail.h" extern bool8 sub_809017C(DungeonLocation *); -extern u8 sub_803C1D0(DungeonLocation *, u8); -extern bool8 sub_803C0DC(s16); extern void ResetPelipperBoardSlot(u8); extern bool8 ValidateWonderMail(WonderMail *); diff --git a/src/data/nature_description.h b/src/data/nature_description.h deleted file mode 100644 index 8ee5d45bd..000000000 --- a/src/data/nature_description.h +++ /dev/null @@ -1,233 +0,0 @@ -ALIGNED(4) const char gQuirkyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The quirky type.{EXTRA_MSG}" - "{CENTER_ALIGN}People consider you an eccentric\n" - "{CENTER_ALIGN}who does things at your own pace.{EXTRA_MSG}" - "{CENTER_ALIGN}You never break tempo.{EXTRA_MSG}" - "{CENTER_ALIGN}Your carefree nature makes you\n" - "{CENTER_ALIGN}attractive. But you also happen\n" - "{CENTER_ALIGN}to be somewhat childish...{EXTRA_MSG}" - "{CENTER_ALIGN}You are fickle and cause problems for the\n" - "{CENTER_ALIGN}people who have to go along with you.{EXTRA_MSG}" - "{CENTER_ALIGN}Maybe people are even upset\n" - "{CENTER_ALIGN}with you for being so fickle?{EXTRA_MSG}" - "{CENTER_ALIGN}If you realize how selfishly\n" - "{CENTER_ALIGN}you{APOSTROPHE}re behaving{COMMA} try to think\n" - "{CENTER_ALIGN}before you do anything rash.{EXTRA_MSG}" - "{CENTER_ALIGN}A quirky person like you should be..."); - -ALIGNED(4) const char gLonelyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The lonely type.{EXTRA_MSG}" - "{CENTER_ALIGN}You always act cheerful and\n" - "{CENTER_ALIGN}jocular around other people.{EXTRA_MSG}" - "{CENTER_ALIGN}But that{APOSTROPHE}s only because\n" - "{CENTER_ALIGN}you are with other people.{EXTRA_MSG}" - "{CENTER_ALIGN}However{COMMA} when you get alone...{EXTRA_MSG}" - "{CENTER_ALIGN}Do you find yourself\n" - "{CENTER_ALIGN}feeling oddly depressed?{EXTRA_MSG}" - "{CENTER_ALIGN}That{APOSTROPHE}s why you always\n" - "{CENTER_ALIGN}want to be with others.{EXTRA_MSG}" - "{CENTER_ALIGN}But if you go around feeling\n" - "{CENTER_ALIGN}depressed too much...{EXTRA_MSG}" - "{CENTER_ALIGN}Your nutritional balance goes out\n" - "{CENTER_ALIGN}of wack. Eat more vegetables!{EXTRA_MSG}" - "{CENTER_ALIGN}However...{WAIT_PRESS}\n" - "{CENTER_ALIGN}It{APOSTROPHE}s not a bad thing\n" - "{CENTER_ALIGN}to feel lonely.{EXTRA_MSG}" - "{CENTER_ALIGN}You know what it{APOSTROPHE}s like when you aren{APOSTROPHE}t\n" - "{CENTER_ALIGN}alone{COMMA} so that{APOSTROPHE}s why you feel lonesome.{EXTRA_MSG}" - "{CENTER_ALIGN}And that{APOSTROPHE}s why you aren{APOSTROPHE}t really alone.{EXTRA_MSG}" - "{CENTER_ALIGN}A lonely person like you should be..."); - -ALIGNED(4) const char gRelaxedDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The relaxed type.{EXTRA_MSG}" - "{CENTER_ALIGN}Do you occasionally\n" - "{CENTER_ALIGN}zone out and miss a bus?{EXTRA_MSG}" - "{CENTER_ALIGN}Or do you find yourself dozing off?{EXTRA_MSG}" - "{CENTER_ALIGN}Or is your reaction time\n" - "{CENTER_ALIGN}a little slower than others?{EXTRA_MSG}" - "{CENTER_ALIGN}But that{APOSTROPHE}s not necessarily\n" - "{CENTER_ALIGN}a bad thing.{EXTRA_MSG}" - "{CENTER_ALIGN}You can do things at your own\n" - "{CENTER_ALIGN}tempo without feeling pressured.{EXTRA_MSG}" - "{CENTER_ALIGN}You can live in a relaxed and\n" - "{CENTER_ALIGN}unhurried manner without worries.{EXTRA_MSG}" - "{CENTER_ALIGN}I think that{APOSTROPHE}s a happy\n" - "{CENTER_ALIGN}lifestyle to be envied{COMMA} even.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re also surprisingly popular.{EXTRA_MSG}" - "{CENTER_ALIGN}The way you vacantly stare\n" - "{CENTER_ALIGN}off into the distance...{EXTRA_MSG}" - "{CENTER_ALIGN}It should make that someone\n" - "{CENTER_ALIGN}special{APOSTROPHE}s pulse race.{EXTRA_MSG}" - "{CENTER_ALIGN}A relaxed person like you should be..."); - -ALIGNED(4) const char gCalmDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The calm type.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re capable of giving advice\n" - "{CENTER_ALIGN}to friends with worries.{EXTRA_MSG}" - "{CENTER_ALIGN}You don{APOSTROPHE}t like to fight.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re a warm{COMMA} kindhearted\n" - "{CENTER_ALIGN}person who cares.{EXTRA_MSG}" - "{CENTER_ALIGN}You must have many friends\n" - "{CENTER_ALIGN}who look up to you.{EXTRA_MSG}" - "{CENTER_ALIGN}However...{WAIT_PRESS}\n" - "{CENTER_ALIGN}You may also be somewhat gullible...{EXTRA_MSG}" - "{CENTER_ALIGN}As well as a little careless...{EXTRA_MSG}" - "{CENTER_ALIGN}And even a little sloppy.{EXTRA_MSG}" - "{CENTER_ALIGN}You might want to keep\n" - "{CENTER_ALIGN}those points in mind.{EXTRA_MSG}" - "{CENTER_ALIGN}A calm person like you should be..."); - -ALIGNED(4) const char gSassyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The sassy type.{EXTRA_MSG}" - "{CENTER_ALIGN}You tend to be somewhat cynical.{EXTRA_MSG}" - "{CENTER_ALIGN}Despite that{COMMA} there is something\n" - "{CENTER_ALIGN}appealing and lovable about you.{EXTRA_MSG}" - "{CENTER_ALIGN}But do you occasionally say something\n" - "{CENTER_ALIGN}arrogant that angers others?{EXTRA_MSG}" - "{CENTER_ALIGN}Do you make that mistake?{EXTRA_MSG}" - "{CENTER_ALIGN}Or have people called you\n" - "{CENTER_ALIGN}conceited{COMMA} vain{COMMA} or selfish?{EXTRA_MSG}" - "{CENTER_ALIGN}Have people said that about you?{EXTRA_MSG}" - "{CENTER_ALIGN}Huh?{WAIT_PRESS} You{APOSTROPHE}re telling me to get lost?{EXTRA_MSG}" - "{CENTER_ALIGN}Why{COMMA} you... Come here and say that!{WAIT_PRESS}\n" - "{CENTER_ALIGN}......Gasp!{EXTRA_MSG}" - "{CENTER_ALIGN}...I{APOSTROPHE}m sorry.\n" - "{CENTER_ALIGN}I let my feelings run away.\n" - "{CENTER_ALIGN}I truly regret this{COMMA} really.{EXTRA_MSG}" - "{CENTER_ALIGN}Anyway{COMMA} your cool and aloof\n" - "{CENTER_ALIGN}attitude is what defines you.{EXTRA_MSG}" - "{CENTER_ALIGN}It makes you exasperating and\n" - "{CENTER_ALIGN}appealing at the same time.{EXTRA_MSG}" - "{CENTER_ALIGN}A sassy person like you should be..."); - -ALIGNED(4) const char gHastyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The hasty type.{EXTRA_MSG}" - "{CENTER_ALIGN}You like to take charge\n" - "{CENTER_ALIGN}and get things done.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re a real go-getter.{EXTRA_MSG}" - "{CENTER_ALIGN}But are you also stressed out?{EXTRA_MSG}" - "{CENTER_ALIGN}You get irritated when your\n" - "{CENTER_ALIGN}friends don{APOSTROPHE}t show up on time.{EXTRA_MSG}" - "{CENTER_ALIGN}You get frustrated when things\n" - "{CENTER_ALIGN}don{APOSTROPHE}t turn out the way you expect.{EXTRA_MSG}" - "{CENTER_ALIGN}Maybe you jab the elevator button\n" - "{CENTER_ALIGN}if the elevator is slow to arrive.{EXTRA_MSG}" - "{CENTER_ALIGN}...Maybe you{APOSTROPHE}re already jabbing\n" - "{CENTER_ALIGN}the A Button repeatedly now.{EXTRA_MSG}" - "{CENTER_ALIGN}Beware--getting too easily irritated\n" - "{CENTER_ALIGN}just isn{APOSTROPHE}t good for your well-being.{EXTRA_MSG}" - "{CENTER_ALIGN}A hasty person like you should be..."); - -ALIGNED(4) const char gTimidDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The timid type.{EXTRA_MSG}" - "{CENTER_ALIGN}You may find it hard to go\n" - "{CENTER_ALIGN}to the washroom at night.{EXTRA_MSG}" - "{CENTER_ALIGN}You may also find it too frightening\n" - "{CENTER_ALIGN}to go back to school to get something\n" - "{CENTER_ALIGN}you left behind in class.{EXTRA_MSG}" - "{CENTER_ALIGN}If you{APOSTROPHE}re ever walking on a dark\n" - "{CENTER_ALIGN}street at night{COMMA} you probably turn\n" - "{CENTER_ALIGN}around often to check behind you.{EXTRA_MSG}" - "{CENTER_ALIGN}But your timid nature is\n" - "{CENTER_ALIGN}also your good point!{EXTRA_MSG}" - "{CENTER_ALIGN}Because those who know fear are\n" - "{CENTER_ALIGN}those who know true courage.{EXTRA_MSG}" - "{CENTER_ALIGN}A timid person like you should be..."); - -ALIGNED(4) const char gNaiveDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The naive type.{EXTRA_MSG}" - "{CENTER_ALIGN}You are highly curious{COMMA}\n" - "{CENTER_ALIGN}and you love rare things.{EXTRA_MSG}" - "{CENTER_ALIGN}Your cheerful and carefree\n" - "{CENTER_ALIGN}attitude should make things fun\n" - "{CENTER_ALIGN}for the people around you.{EXTRA_MSG}" - "{CENTER_ALIGN}But you do have one flaw.\n" - "{CENTER_ALIGN}You can be childish.{EXTRA_MSG}" - "{CENTER_ALIGN}You can never sit still.\n" - "{CENTER_ALIGN}You{APOSTROPHE}re always on the move.{EXTRA_MSG}" - "{CENTER_ALIGN}You can also be selfish{COMMA}\n" - "{CENTER_ALIGN}so you should watch yourself.{EXTRA_MSG}" - "{CENTER_ALIGN}A naive person like you should be..."); - -ALIGNED(4) const char gImpishDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The impish type.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re playful{COMMA} cheerful{COMMA}\n" - "{CENTER_ALIGN}and you love pranks.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re also kindhearted.{EXTRA_MSG}" - "{CENTER_ALIGN}That{APOSTROPHE}s why the people around\n" - "{CENTER_ALIGN}you find you so irresistible.{EXTRA_MSG}" - "{CENTER_ALIGN}You must be the most\n" - "{CENTER_ALIGN}popular person around!{EXTRA_MSG}" - "{CENTER_ALIGN}Oh?{WAIT_PRESS} You{APOSTROPHE}re not that popular?{WAIT_PRESS}\n" - "{CENTER_ALIGN}You{APOSTROPHE}re either being modest...\n" - "{CENTER_ALIGN}or you just don{APOSTROPHE}t notice it.{EXTRA_MSG}" - "{CENTER_ALIGN}I bet people are just too shy\n" - "{CENTER_ALIGN}to let their feelings be known.{EXTRA_MSG}" - "{CENTER_ALIGN}There{APOSTROPHE}s someone out there who{APOSTROPHE}s\n" - "{CENTER_ALIGN}afraid to declare their love for you!{EXTRA_MSG}" - "{CENTER_ALIGN}An impish person like you should be..."); - -ALIGNED(4) const char gJollyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The jolly type.{EXTRA_MSG}" - "{CENTER_ALIGN}Always laughing and smiling{COMMA}\n" - "{CENTER_ALIGN}you uplift everyone around you.{EXTRA_MSG}" - "{CENTER_ALIGN}You love jokes!{EXTRA_MSG}" - "{CENTER_ALIGN}You have lots of friends{COMMA} and\n" - "{CENTER_ALIGN}you{APOSTROPHE}re popular wherever you go.{EXTRA_MSG}" - "{CENTER_ALIGN}But sometimes you get carried away\n" - "{CENTER_ALIGN}and say things that get you in trouble.{EXTRA_MSG}" - "{CENTER_ALIGN}You should learn to think before\n" - "{CENTER_ALIGN}saying or doing anything.{EXTRA_MSG}" - "{CENTER_ALIGN}A jolly person like you should be..."); - -ALIGNED(4) const char gBraveDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The brave type.{EXTRA_MSG}" - "{CENTER_ALIGN}You have a strong sense of justice.{WAIT_PRESS}\n" - "{CENTER_ALIGN}You hate evil.{WAIT_PRESS}\n" - "{CENTER_ALIGN}You will take on any opponent.{EXTRA_MSG}" - "{CENTER_ALIGN}You are truly a hero!{EXTRA_MSG}" - "{CENTER_ALIGN}Go forth!{EXTRA_MSG}" - "{CENTER_ALIGN}For justice...{WAIT_PRESS}\n" - "{CENTER_ALIGN}For peace on earth...{WAIT_PRESS}\n" - "{CENTER_ALIGN}Fight the forces of evil!{EXTRA_MSG}" - "{CENTER_ALIGN}......{WAIT_PRESS}If I{APOSTROPHE}m wrong...{WAIT_PRESS}\n" - "{CENTER_ALIGN}Work at becoming a true hero!{EXTRA_MSG}" - "{CENTER_ALIGN}A brave person like you should be..."); - -ALIGNED(4) const char gDocileDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The docile type.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re very kindhearted.{WAIT_PRESS}\n" - "{CENTER_ALIGN}Very helpful.{WAIT_PRESS}\n" - "{CENTER_ALIGN}You can make friends with anyone.{EXTRA_MSG}" - "{CENTER_ALIGN}You{APOSTROPHE}re a wonderful person.{EXTRA_MSG}" - "{CENTER_ALIGN}......{WAIT_PRESS}Is that going overboard?{WAIT_PRESS}\n" - "{CENTER_ALIGN}I don{APOSTROPHE}t think so.{EXTRA_MSG}" - "{CENTER_ALIGN}You yourself should be\n" - "{CENTER_ALIGN}the best judge of that.{EXTRA_MSG}" - "{CENTER_ALIGN}A docile person like you should be..."); - - -ALIGNED(4) const char gHardyDescription[] = _( - "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" - "{CENTER_ALIGN}The hardy type.{EXTRA_MSG}" - "{CENTER_ALIGN}You do your homework diligently{COMMA}\n" - "{CENTER_ALIGN}and you know to eat properly.{EXTRA_MSG}" - "{CENTER_ALIGN}You have strong willpower that lets\n" - "{CENTER_ALIGN}you complete tasks{COMMA} however tough.{EXTRA_MSG}" - "{CENTER_ALIGN}But{COMMA} you can also be stubborn to the\n" - "{CENTER_ALIGN}point of even feuding with friends...{EXTRA_MSG}" - "{CENTER_ALIGN}Nothing will go right for you when you{APOSTROPHE}re\n" - "{CENTER_ALIGN}irritated{COMMA} so learn to laugh it off.{EXTRA_MSG}" - "{CENTER_ALIGN}A hardy person like you should be..."); diff --git a/src/data/personality_test1.h b/src/data/personality_test1.h new file mode 100644 index 000000000..3fe9dc1e7 --- /dev/null +++ b/src/data/personality_test1.h @@ -0,0 +1,1509 @@ +ALIGNED(4) static const u8 HardyQuest1Points[48] = +{ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem HardyQuest1Answers[] = +{ + {"Study hard.", 0}, + {"At the last second.", 1}, + {"Ignore it and play.", 2}, + {NULL, -1}, +}; + +static const u8 HardyQuest1Question[]; +static const PersonalityQuestion HardyQuest1 = { HardyQuest1Question, HardyQuest1Answers, HardyQuest1Points }; +ALIGNED(4) static const u8 HardyQuest1Question[] = _( + "A test is coming up.\n" + "How do you study for it?"); + +ALIGNED(4) static const u8 HardyQuest2Points[32] = +{ + 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem HardyQuest2Answers[] = +{ + {"Yes.", 0}, + {"No. ", 1}, + {NULL, -1}, +}; + +static const u8 HardyQuest2Question[]; +static const PersonalityQuestion HardyQuest2 = { HardyQuest2Question, HardyQuest2Answers, HardyQuest2Points }; +ALIGNED(4) static const u8 HardyQuest2Question[] = _("Can you focus on something you like?"); + +ALIGNED(4) static const u8 HardyQuest3Points[32] = +{ + 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem HardyQuest3Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 HardyQuest3Question[]; +static const PersonalityQuestion HardyQuest3 = { HardyQuest3Question, HardyQuest3Answers, HardyQuest3Points }; +ALIGNED(4) static const u8 HardyQuest3Question[] = _( + "When the going gets tough{COMMA} do you get\n" + "going?"); + +ALIGNED(4) static const u8 HardyQuest4Points[48] = +{ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem HardyQuest4Answers[] = +{ + {"Full.", 0}, + {"Half.", 1}, + {"A little.", 2}, + {NULL, -1}, +}; + +static const u8 HardyQuest4Question[]; +static const PersonalityQuestion HardyQuest4 = { HardyQuest4Question, HardyQuest4Answers, HardyQuest4Points }; +ALIGNED(4) static const u8 HardyQuest4Question[] = _( + "There is a bucket. If you put\n" + "water in it{COMMA} how high will you fill it?"); + +ALIGNED(4) static const u8 DocileQuest1Points[32] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem DocileQuest1Answers[] = +{ + {"Big box.", 0}, + {"Small box.", 1}, + {NULL, -1}, +}; + +static const u8 DocileQuest1Question[]; +static const PersonalityQuestion DocileQuest1 = { DocileQuest1Question, DocileQuest1Answers, DocileQuest1Points }; +ALIGNED(4) static const u8 DocileQuest1Question[] = _( + "You are offered a choice of two gifts.\n" + "Which one will you take?"); + +ALIGNED(4) static const u8 DocileQuest2Points[32] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem DocileQuest2Answers[] = +{ + {"Open a window right away.", 0}, + {"Take a sniff first.", 1}, + {NULL, -1}, +}; + +static const u8 DocileQuest2Question[]; +static const PersonalityQuestion DocileQuest2 = { DocileQuest2Question, DocileQuest2Answers, DocileQuest2Points }; +ALIGNED(4) static const u8 DocileQuest2Question[] = _( + "You broke a rotten egg in your room!\n" + "What will you do?"); + +ALIGNED(4) static const u8 DocileQuest3Points[48] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const u8 DocileQuest3_Regular[]; +static const u8 DocileQuest3_Joke[]; +static const u8 DocileQuest3_Cool[]; +static const MenuItem DocileQuest3Answers[] = +{ + {DocileQuest3_Regular, 0}, + {DocileQuest3_Joke, 1}, + {DocileQuest3_Cool, 2}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 DocileQuest3_Cool[] = _("Say thanks{COMMA} but be cool."); +ALIGNED(4) static const u8 DocileQuest3_Joke[] = _("Say thanks with a joke."); +ALIGNED(4) static const u8 DocileQuest3_Regular[] = _("Say thank you regularly."); + +static const u8 DocileQuest3Question[]; +static const PersonalityQuestion DocileQuest3 = { DocileQuest3Question, DocileQuest3Answers, DocileQuest3Points }; +ALIGNED(4) static const u8 DocileQuest3Question[] = _( + "A friend brought over something you{APOSTROPHE}d\n" + "forgotten.{WAIT_PRESS}\n" + "How do you thank your friend?"); + +ALIGNED(4) static const u8 DocileQuest4Points[48] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem DocileQuest4Answers[] = +{ + {"Turn it in to the police!", 0}, + {"Yay! Yay!", 1}, + {"Is anyone watching...?", 2}, + {NULL, -1}, +}; + +static const u8 DocileQuest4Question[]; +static const PersonalityQuestion DocileQuest4 = { DocileQuest4Question, DocileQuest4Answers, DocileQuest4Points }; +ALIGNED(4) static const u8 DocileQuest4Question[] = _("There is a wallet at the side of a road."); + +ALIGNED(4) static const u8 BraveQuest1Points[32] = +{ + 0x00, 0x00, 0x03, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem BraveQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 BraveQuest1Question[]; +static const PersonalityQuestion BraveQuest1 = { BraveQuest1Question, BraveQuest1Answers, BraveQuest1Points }; +ALIGNED(4) static const u8 BraveQuest1Question[] = _( + "You{APOSTROPHE}re going bungee jumping for the first\n" + "time.{EXTRA_MSG}Since it{APOSTROPHE}s scary{COMMA} you decide to test the\n" + "jump with a doll...{WAIT_PRESS}\n" + "And the bungee cord snaps!{EXTRA_MSG}" + "Will you still try to make a jump anyway?"); + +ALIGNED(4) static const u8 BraveQuest2APoints[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem BraveQuest2AAnswers[] = +{ + {"Fight.", 99}, + {"Run.", 1}, + {"Ignore it.", 2}, + {NULL, -1}, +}; + +static const u8 BraveQuest2AQuestion[]; +static const PersonalityQuestion BraveQuest2A = { BraveQuest2AQuestion, BraveQuest2AAnswers, BraveQuest2APoints }; +ALIGNED(4) static const u8 BraveQuest2AQuestion[] = _( + "There is an alien invasion!\n" + "What will you do?"); + +ALIGNED(4) static const u8 BraveQuest2BPoints[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x04, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem BraveQuest2BAnswers[] = +{ + {"Rule with the aliens.", 0}, + {"Refuse.", 1}, + {NULL, -1}, +}; + +static const u8 BraveQuest2BQuestion[]; +static const PersonalityQuestion BraveQuest2B = { BraveQuest2BQuestion, BraveQuest2BAnswers, BraveQuest2BPoints }; +ALIGNED(4) static const u8 BraveQuest2BQuestion[] = _( + "You valiantly fight the aliens...{WAIT_PRESS}\n" + "But{COMMA} you are defeated...{EXTRA_MSG}An alien says to you...{EXTRA_MSG}{QUOTE_START}YOU HAVE IMPRESSED US.\n" + "IT WAS A PLEASURE TO SEE.{EXTRA_MSG}JOIN US{COMMA} AND TOGETHER WE SHALL\n" + "RULE THE WORLD.{QUOTE_END}{WAIT_PRESS}\n" + "What will you do?"); + +ALIGNED(4) static const u8 BraveQuest3Points[32] = +{ + 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem BraveQuest3Answers[] = +{ + {"Yank open the door.", 0}, + {"Scream in unison.", 1}, + {NULL, -1}, +}; + +static const u8 BraveQuest3Question[]; +static const PersonalityQuestion BraveQuest3 = { BraveQuest3Question, BraveQuest3Answers, BraveQuest3Points }; +ALIGNED(4) static const u8 BraveQuest3Question[] = _( + "There is a scream from behind a door!{WAIT_PRESS}\n" + "How will you react?"); + +ALIGNED(4) static const u8 BraveQuest4Points[64] = +{ + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const u8 BraveQuest4_Hesitation[]; +static const u8 BraveQuest4_Scared[]; +static const u8 BraveQuest4_Police[]; +static const u8 BraveQuest4_Nothing[]; +static const MenuItem BraveQuest4Answers[] = +{ + {BraveQuest4_Hesitation, 0}, + {BraveQuest4_Scared, 1}, + {BraveQuest4_Police, 2}, + {BraveQuest4_Nothing, 3}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 BraveQuest4_Nothing[] = _("Do nothing out of fear."); +ALIGNED(4) static const u8 BraveQuest4_Police[] = _("Call the police."); +ALIGNED(4) static const u8 BraveQuest4_Scared[] = _("Help{COMMA} even if scared."); +ALIGNED(4) static const u8 BraveQuest4_Hesitation[] = _("Help without hesitation."); + +static const u8 BraveQuest4Question[]; +static const PersonalityQuestion BraveQuest4 = { BraveQuest4Question, BraveQuest4Answers, BraveQuest4Points }; +ALIGNED(4) static const u8 BraveQuest4Question[] = _( + "A delinquent is hassling a girl on\n" + "a busy city street!{WAIT_PRESS}\n" + "What will you do?"); + +ALIGNED(4) static const u8 JollyQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; + +static const MenuItem JollyQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 JollyQuest1Question[]; +static const PersonalityQuestion JollyQuest1 = { JollyQuest1Question, JollyQuest1Answers, JollyQuest1Points }; +ALIGNED(4) static const u8 JollyQuest1Question[] = _("Are you a cheerful personality?"); + +ALIGNED(4) static const u8 JollyQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem JollyQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 JollyQuest2Question[]; +static const PersonalityQuestion JollyQuest2 = { JollyQuest2Question, JollyQuest2Answers, JollyQuest2Points }; +ALIGNED(4) static const u8 JollyQuest2Question[] = _( + "Do you like to noisily enjoy yourself\n" + "with others?"); + +ALIGNED(4) static const u8 JollyQuest3Points[48] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem JollyQuest3Answers[] = +{ + {"The beach!", 0}, + {"Spas.", 1}, + {"Anywhere.", 2}, + {NULL, -1}, +}; + +static const u8 JollyQuest3Question[]; +static const PersonalityQuestion JollyQuest3 = { JollyQuest3Question, JollyQuest3Answers, JollyQuest3Points }; +ALIGNED(4) static const u8 JollyQuest3Question[] = _( + "It{APOSTROPHE}s the summer holidays!\n" + "Where would you like to go?"); + +ALIGNED(4) static const u8 JollyQuest4Points[48] = +{ + 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const u8 JollyQuest4_Funny[]; +static const u8 JollyQuest4_Again[]; +static const u8 JollyQuest4_Go[]; +static const MenuItem JollyQuest4Answers[] = +{ + {JollyQuest4_Funny, 0}, + {JollyQuest4_Again, 1}, + {JollyQuest4_Go, 2}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 JollyQuest4_Go[] = _("Right... Well{COMMA} I gotta go."); +ALIGNED(4) static const u8 JollyQuest4_Again[] = _("Um... Could you say that again?"); +ALIGNED(4) static const u8 JollyQuest4_Funny[] = _("Haha! Yes. Very funny!"); + +static const u8 JollyQuest4Question[]; +static const PersonalityQuestion JollyQuest4 = { JollyQuest4Question, JollyQuest4Answers, JollyQuest4Points }; +ALIGNED(4) static const u8 JollyQuest4Question[] = _( + "A foreign person has started up a\n" + "conversation with you.{EXTRA_MSG}" + "To be honest{COMMA} you don{APOSTROPHE}t have a clue what\n" + "this fellow is saying.{WAIT_PRESS}\n" + "How do you reply?"); + +ALIGNED(4) static const u8 ImpishQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem ImpishQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 ImpishQuest1Question[]; +static const PersonalityQuestion ImpishQuest1 = { ImpishQuest1Question, ImpishQuest1Answers, ImpishQuest1Points }; +ALIGNED(4) static const u8 ImpishQuest1Question[] = _("Have you ever made a pitfall trap?"); + +ALIGNED(4) static const u8 ImpishQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem ImpishQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 ImpishQuest2Question[]; +static const PersonalityQuestion ImpishQuest2 = { ImpishQuest2Question, ImpishQuest2Answers, ImpishQuest2Points }; +ALIGNED(4) static const u8 ImpishQuest2Question[] = _("Do you like pranks?"); + +ALIGNED(4) static const u8 ImpishQuest3Points[32] = +{ + 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem ImpishQuest3Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 ImpishQuest3Question[]; +static const PersonalityQuestion ImpishQuest3 = { ImpishQuest3Question, ImpishQuest3Answers, ImpishQuest3Points }; +ALIGNED(4) static const u8 ImpishQuest3Question[] = _("Are there many things that you would like\nto do?"); + +ALIGNED(4) static const u8 ImpishQuest4Points[48] = +{ + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem ImpishQuest4Answers[] = +{ + {"Face up to the bully.", 0}, + {"Caution the bully from afar.", 1}, + {"Heckle the bully from behind.", 2}, + {NULL, -1}, +}; + +static const u8 ImpishQuest4Question[]; +static const PersonalityQuestion ImpishQuest4 = { ImpishQuest4Question, ImpishQuest4Answers, ImpishQuest4Points }; +ALIGNED(4) static const u8 ImpishQuest4Question[] = _( + "Your friend is being bullied!\n" + "What do you do?"); + +ALIGNED(4) static const u8 NaiveQuest1Points[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem NaiveQuest1Answers[] = +{ + {"Love them!", 0}, + {"A little.", 1}, + {"Spare me.", 2}, + {NULL, -1}, +}; + +static const u8 NaiveQuest1Question[]; +static const PersonalityQuestion NaiveQuest1 = { NaiveQuest1Question, NaiveQuest1Answers, NaiveQuest1Points }; +ALIGNED(4) static const u8 NaiveQuest1Question[] = _("Do you like groan-inducing puns?"); + +ALIGNED(4) static const u8 NaiveQuest2Points[32] = +{ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem NaiveQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 NaiveQuest2Question[]; +static const PersonalityQuestion NaiveQuest2 = { NaiveQuest2Question, NaiveQuest2Answers, NaiveQuest2Points }; +ALIGNED(4) static const u8 NaiveQuest2Question[] = _("Do you tend to laugh a lot?"); + +ALIGNED(4) static const u8 NaiveQuest3Points[32] = +{ + 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem NaiveQuest3Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 NaiveQuest3Question[]; +static const PersonalityQuestion NaiveQuest3 = { NaiveQuest3Question, NaiveQuest3Answers, NaiveQuest3Points }; +ALIGNED(4) static const u8 NaiveQuest3Question[] = _("Do others often call you childish?"); + +ALIGNED(4) static const u8 NaiveQuest4Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem NaiveQuest4Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 NaiveQuest4Question[]; +static const PersonalityQuestion NaiveQuest4 = { NaiveQuest4Question, NaiveQuest4Answers, NaiveQuest4Points }; +ALIGNED(4) static const u8 NaiveQuest4Question[] = _( + "Do you like to imagine things for your\n" + "amusement?"); + +ALIGNED(4) static const u8 TimidQuest1Points[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem TimidQuest1Answers[] = +{ + {"Scream and run.", 0}, + {"Close the lid without a word.", 1}, + {"Shake hands with it.", 2}, + {NULL, -1}, +}; + +static const u8 TimidQuest1Question[]; +static const PersonalityQuestion TimidQuest1 = { TimidQuest1Question, TimidQuest1Answers, TimidQuest1Points }; +ALIGNED(4) static const u8 TimidQuest1Question[] = _( + "A human hand extends out of a toilet!\n" + "What would you do?"); + +ALIGNED(4) static const u8 TimidQuest2Points[80] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem TimidQuest2Answers[] = +{ + {"Thumb.", 0}, + {"Index finger.", 1}, + {"Middle finger.", 2}, + {"Ring finger.", 3}, + {"Little finger.", 4}, + {NULL, -1}, +}; + +static const u8 TimidQuest2Question[]; +static const PersonalityQuestion TimidQuest2 = { TimidQuest2Question, TimidQuest2Answers, TimidQuest2Points }; +ALIGNED(4) static const u8 TimidQuest2Question[] = _( + "Grab any digit on your left hand with your\n" + "right hand.{WAIT_PRESS}\n" + "Which digit did you grab?"); + +ALIGNED(4) static const u8 TimidQuest3Points[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; + +static const MenuItem TimidQuest3Answers[] = +{ + {"Kick the door.", 0}, + {"Cry.", 1}, + {"Clean it.", 2}, + {NULL, -1}, +}; + +static const u8 TimidQuest3Question[]; +static const PersonalityQuestion TimidQuest3 = { TimidQuest3Question, TimidQuest3Answers, TimidQuest3Points }; +ALIGNED(4) static const u8 TimidQuest3Question[] = _( + "You are suddenly locked inside a\n" + "pitch-black room!{WAIT_PRESS}\n" + "What do you do?"); + +ALIGNED(4) static const u8 TimidQuest4Points[48] = +{ + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem TimidQuest4Answers[] = +{ + {"No problem!", 0}, + {"Uh... N-no...", 1}, + {"With someone I like.", 2}, + {NULL, -1}, +}; + +static const u8 TimidQuest4Question[]; +static const PersonalityQuestion TimidQuest4 = { TimidQuest4Question, TimidQuest4Answers, TimidQuest4Points }; +ALIGNED(4) static const u8 TimidQuest4Question[] = _("Can you go into a haunted house?"); + +ALIGNED(4) static const u8 HastyQuest1Points[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem HastyQuest1Answers[] = +{ + {"Open it now.", 0}, + {"Open it later.", 1}, + {"Get someone to open it.", 2}, + {NULL, -1}, +}; + +static const u8 HastyQuest1Question[]; +static const PersonalityQuestion HastyQuest1 = { HastyQuest1Question, HastyQuest1Answers, HastyQuest1Points }; +ALIGNED(4) static const u8 HastyQuest1Question[] = _( + "You receive a gift!{WAIT_PRESS}\n" + "But you don{APOSTROPHE}t know what{APOSTROPHE}s in it.{WAIT_PRESS}\n" + "You{APOSTROPHE}re curious{COMMA} so what do you do?"); + +ALIGNED(4) static const u8 HastyQuest2Points[48] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const MenuItem HastyQuest2Answers[] = +{ + {"Spend it now.", 0}, + {"Save it.", 1}, + {"Give it away.", 2}, + {NULL, -1}, +}; + +static const u8 HastyQuest2Question[]; +static const PersonalityQuestion HastyQuest2 = { HastyQuest2Question, HastyQuest2Answers, HastyQuest2Points }; +ALIGNED(4) static const u8 HastyQuest2Question[] = _( + "You win a lottery!{WAIT_PRESS}\n" + "What do you do with the money?"); + +ALIGNED(4) static const u8 HastyQuest3Points[48] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const u8 HastyQuest3_Open[]; +static const u8 HastyQuest3_Trap[]; +static const u8 HastyQuest3_Empty[]; +static const MenuItem HastyQuest3Answers[] = +{ + {HastyQuest3_Open, 0}, + {HastyQuest3_Trap, 1}, + {HastyQuest3_Empty, 2}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 HastyQuest3_Empty[] = _("It{APOSTROPHE}s going to be empty..."); +ALIGNED(4) static const u8 HastyQuest3_Trap[] = _("No... Could be a trap..."); +ALIGNED(4) static const u8 HastyQuest3_Open[] = _("Open it right away!"); + +static const u8 HastyQuest3Question[]; +static const PersonalityQuestion HastyQuest3 = { HastyQuest3Question, HastyQuest3Answers, HastyQuest3Points }; +ALIGNED(4) static const u8 HastyQuest3Question[] = _( + "You come across a treasure chest!\n" + "What do you do?"); + +ALIGNED(4) static const u8 HastyQuest4Points[48] = +{ + 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem HastyQuest4Answers[] = +{ + {"Become irritated.", 0}, + {"Wait patiently.", 1}, + {"Get angry and bail.", 2}, + {NULL, -1}, +}; + +static const u8 HastyQuest4Question[]; +static const PersonalityQuestion HastyQuest4 = { HastyQuest4Question, HastyQuest4Answers, HastyQuest4Points }; +ALIGNED(4) static const u8 HastyQuest4Question[] = _( + "Your friend fails to show up for a meeting\n" + "at the promised time.\n" + "What do you do?"); + +ALIGNED(4) static const u8 SassyQuest1Points[48] = +{ + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem SassyQuest1Answers[] = +{ + {"Speak calmly.", 0}, + {"Speak nervously.", 1}, + {"WHATEVER!!", 2}, + {NULL, -1}, +}; + +static const u8 SassyQuest1Question[]; +static const PersonalityQuestion SassyQuest1 = { SassyQuest1Question, SassyQuest1Answers, SassyQuest1Points }; +ALIGNED(4) static const u8 SassyQuest1Question[] = _( + "Your country{APOSTROPHE}s leader is in front of you.\n" + "How do you speak to him or her?"); + +ALIGNED(4) static const u8 SassyQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem SassyQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 SassyQuest2Question[]; +static const PersonalityQuestion SassyQuest2 = { SassyQuest2Question, SassyQuest2Answers, SassyQuest2Points }; +ALIGNED(4) static const u8 SassyQuest2Question[] = _("Do others tell you to watch what you say?"); + +ALIGNED(4) static const u8 SassyQuest3Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem SassyQuest3Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 SassyQuest3Question[]; +static const PersonalityQuestion SassyQuest3 = { SassyQuest3Question, SassyQuest3Answers, SassyQuest3Points }; +ALIGNED(4) static const u8 SassyQuest3Question[] = _( + "Do you think you are cool?\n" + "Be honest."); + +ALIGNED(4) static const u8 SassyQuest4Points[32] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; + +static const MenuItem SassyQuest4Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 SassyQuest4Question[]; +static const PersonalityQuestion SassyQuest4 = { SassyQuest4Question, SassyQuest4Answers, SassyQuest4Points }; +ALIGNED(4) static const u8 SassyQuest4Question[] = _( + "Can you sincerely thank someone when you\n" + "feel grateful?"); + +ALIGNED(4) static const u8 CalmQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem CalmQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 CalmQuest1Question[]; +static const PersonalityQuestion CalmQuest1 = { CalmQuest1Question, CalmQuest1Answers, CalmQuest1Points }; +ALIGNED(4) static const u8 CalmQuest1Question[] = _( + "Do you occasionally consider yourself\n" + "dull and overly cautious?"); + +ALIGNED(4) static const u8 CalmQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem CalmQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 CalmQuest2Question[]; +static const PersonalityQuestion CalmQuest2 = { CalmQuest2Question, CalmQuest2Answers, CalmQuest2Points }; +ALIGNED(4) static const u8 CalmQuest2Question[] = _( + "Do you dream of lounging around idly\n" + "without much excitement?"); + +ALIGNED(4) static const u8 CalmQuest3Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem CalmQuest3Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 CalmQuest3Question[]; +static const PersonalityQuestion CalmQuest3 = { CalmQuest3Question, CalmQuest3Answers, CalmQuest3Points }; +ALIGNED(4) static const u8 CalmQuest3Question[] = _("Do you like to fight?"); + +ALIGNED(4) static const u8 CalmQuest4Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem CalmQuest4Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 CalmQuest4Question[]; +static const PersonalityQuestion CalmQuest4 = { CalmQuest4Question, CalmQuest4Answers, CalmQuest4Points }; +ALIGNED(4) static const u8 CalmQuest4Question[] = _("Do you often yawn?"); + +ALIGNED(4) static const u8 RelaxedQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem RelaxedQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 RelaxedQuest1Question[]; +static const PersonalityQuestion RelaxedQuest1 = { RelaxedQuest1Question, RelaxedQuest1Answers, RelaxedQuest1Points }; +ALIGNED(4) static const u8 RelaxedQuest1Question[] = _("Are you often late for school or meetings?"); + +ALIGNED(4) static const u8 RelaxedQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem RelaxedQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 RelaxedQuest2Question[]; +static const PersonalityQuestion RelaxedQuest2 = { RelaxedQuest2Question, RelaxedQuest2Answers, RelaxedQuest2Points }; +ALIGNED(4) static const u8 RelaxedQuest2Question[] = _( + "Do you get the feeling that you{APOSTROPHE}ve slowed\n" + "down lately?"); + +ALIGNED(4) static const u8 RelaxedQuest3Points[48] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem RelaxedQuest3Answers[] = +{ + {"This feels great!", 0}, + {"Snore...", 1}, + {"I want to go home soon!", 2}, + {NULL, -1}, +}; + +static const u8 RelaxedQuest3Question[]; +static const PersonalityQuestion RelaxedQuest3 = { RelaxedQuest3Question, RelaxedQuest3Answers, RelaxedQuest3Points }; +ALIGNED(4) static const u8 RelaxedQuest3Question[] = _( + "It is a pleasant day at the beach.\n" + "How do you feel?"); + +ALIGNED(4) static const u8 RelaxedQuest4Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem RelaxedQuest4Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 RelaxedQuest4Question[]; +static const PersonalityQuestion RelaxedQuest4 = { RelaxedQuest4Question, RelaxedQuest4Answers, RelaxedQuest4Points }; +ALIGNED(4) static const u8 RelaxedQuest4Question[] = _("Do you fall asleep without noticing?"); + +ALIGNED(4) static const u8 LonelyQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem LonelyQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 LonelyQuest1Question[]; +static const PersonalityQuestion LonelyQuest1 = { LonelyQuest1Question, LonelyQuest1Answers, LonelyQuest1Points }; +ALIGNED(4) static const u8 LonelyQuest1Question[] = _("Do you feel lonesome when you are alone?"); + +ALIGNED(4) static const u8 LonelyQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem LonelyQuest2Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 LonelyQuest2Question[]; +static const PersonalityQuestion LonelyQuest2 = { LonelyQuest2Question, LonelyQuest2Answers, LonelyQuest2Points }; +ALIGNED(4) static const u8 LonelyQuest2Question[] = _( + "Do you hate to be the last person to leave\n" + "class at the end of a school day?"); + +ALIGNED(4) static const u8 LonelyQuest3Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem LonelyQuest3Answers[] = +{ + {"Leave it on.", 0}, + {"Turn it off.", 1}, + {NULL, -1}, +}; + +static const u8 LonelyQuest3Question[]; +static const PersonalityQuestion LonelyQuest3 = { LonelyQuest3Question, LonelyQuest3Answers, LonelyQuest3Points }; +ALIGNED(4) static const u8 LonelyQuest3Question[] = _( + "What do you do with your room{APOSTROPHE}s light\n" + "when you{APOSTROPHE}re going to bed at night?"); + +ALIGNED(4) static const u8 LonelyQuest4Points[48] = +{ + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem LonelyQuest4Answers[] = +{ + {"Go on a trip.", 0}, + {"Hang around vacantly.", 1}, + {"Huddle in a corner.", 2}, + {NULL, -1}, +}; + +static const u8 LonelyQuest4Question[]; +static const PersonalityQuestion LonelyQuest4 = { LonelyQuest4Question, LonelyQuest4Answers, LonelyQuest4Points }; +ALIGNED(4) static const u8 LonelyQuest4Question[] = _( + "It{APOSTROPHE}s a weekend{COMMA} but no one will play\n" + "with you...\n" + "What do you do?"); + +ALIGNED(4) static const u8 QuirkyQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem QuirkyQuest1Answers[] = +{ + {"Yes.", 0}, + {"No.", 1}, + {NULL, -1}, +}; + +static const u8 QuirkyQuest1Question[]; +static const PersonalityQuestion QuirkyQuest1 = { QuirkyQuest1Question, QuirkyQuest1Answers, QuirkyQuest1Points }; +ALIGNED(4) static const u8 QuirkyQuest1Question[] = _( + "Do you sometimes run out of things to do\n" + "all of a sudden?"); + +ALIGNED(4) static const u8 QuirkyQuest2Points[48] = +{ + 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const u8 QuirkyQuest2_Reply[]; +static const u8 QuirkyQuest2_MayMayNot[]; +static const u8 QuirkyQuest2_Trouble[]; +static const MenuItem QuirkyQuest2Answers[] = +{ + {QuirkyQuest2_Reply, 0}, + {QuirkyQuest2_MayMayNot, 1}, + {QuirkyQuest2_Trouble, 2}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 QuirkyQuest2_Trouble[] = _("Too much trouble."); +ALIGNED(4) static const u8 QuirkyQuest2_MayMayNot[] = _("May reply{COMMA} may not."); +ALIGNED(4) static const u8 QuirkyQuest2_Reply[] = _("Reply right away."); + +static const u8 QuirkyQuest2Question[]; +static const PersonalityQuestion QuirkyQuest2 = { QuirkyQuest2Question, QuirkyQuest2Answers, QuirkyQuest2Points }; +ALIGNED(4) static const u8 QuirkyQuest2Question[] = _("How quickly do you respond to an e-mail?"); + +ALIGNED(4) static const u8 QuirkyQuest3Points[64] = +{ + 0x01, 0x00, 0x03, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem QuirkyQuest3Answers[] = +{ + {"Bravely declare my love.", 0}, + {"Might say hello...", 1}, + {"Pull a prank to get attention.", 2}, + {"Look from afar.", 3}, + {NULL, -1}, +}; + +static const u8 QuirkyQuest3Question[]; +static const PersonalityQuestion QuirkyQuest3 = { QuirkyQuest3Question, QuirkyQuest3Answers, QuirkyQuest3Points }; +ALIGNED(4) static const u8 QuirkyQuest3Question[] = _( + "There is a person you like...{WAIT_PRESS}\n" + "But there{APOSTROPHE}s no opportunity to get close.\n" + "What do you do?"); + +ALIGNED(4) static const u8 QuirkyQuest4Points[48] = +{ + 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00 +}; + +static const u8 QuirkyQuest4_GoRight[]; +static const u8 QuirkyQuest4_GoLeft[]; +static const u8 QuirkyQuest4_EitherSide[]; +static const MenuItem QuirkyQuest4Answers[] = +{ + {QuirkyQuest4_GoRight, 0}, + {QuirkyQuest4_GoLeft, 1}, + {QuirkyQuest4_EitherSide, 2}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 QuirkyQuest4_EitherSide[] = _("Choose either side."); +ALIGNED(4) static const u8 QuirkyQuest4_GoLeft[] = _("It{APOSTROPHE}s a trap! Go left."); +ALIGNED(4) static const u8 QuirkyQuest4_GoRight[] = _("Instantly go right."); + +static const u8 QuirkyQuest4Question[]; +static const PersonalityQuestion QuirkyQuest4 = { QuirkyQuest4Question, QuirkyQuest4Answers, QuirkyQuest4Points }; +ALIGNED(4) static const u8 QuirkyQuest4Question[] = _( + "The road forks to the right and left.\n" + "You are told there is a treasure on the\n" + "right side. What do you do?"); + +ALIGNED(4) static const u8 MiscQuest1Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem MiscQuest1Answers[] = +{ + {"Go alone.", 0}, + {"Go with others.", 1}, + {NULL, -1}, +}; + +static const u8 MiscQuest1Question[]; +static const PersonalityQuestion MiscQuest1 = { MiscQuest1Question, MiscQuest1Answers, MiscQuest1Points }; +ALIGNED(4) static const u8 MiscQuest1Question[] = _("On vacation outings{COMMA} you want to..."); + +ALIGNED(4) static const u8 MiscQuest2Points[32] = +{ + 0x00, 0x00, 0x00, 0x02, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00 +}; + +static const u8 MiscQuest2_DontCare[]; +static const MenuItem MiscQuest2Answers[] = +{ + {"Love them!", 0}, + {MiscQuest2_DontCare, 1}, + {NULL, -1}, +}; +ALIGNED(4) static const u8 MiscQuest2_DontCare[] = _("Don{APOSTROPHE}t care."); + +static const u8 MiscQuest2Question[]; +static const PersonalityQuestion MiscQuest2 = { MiscQuest2Question, MiscQuest2Answers, MiscQuest2Points }; +ALIGNED(4) static const u8 MiscQuest2Question[] = _( + "It{APOSTROPHE}s the summer festival!\n" + "Do you like carnivals?"); + +ALIGNED(4) static const u8 MiscQuest3Points[32] = +{ + 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x00, 0x00, 0x00, 0x00, + 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 +}; + +static const MenuItem MiscQuest3Answers[] = +{ + {"Happy!", 0}, + {"Not happy.", 1}, + {NULL, -1}, +}; + +static const u8 MiscQuest3Question[]; +static const PersonalityQuestion MiscQuest3 = { MiscQuest3Question, MiscQuest3Answers, MiscQuest3Points }; +ALIGNED(4) static const u8 MiscQuest3Question[] = _( + "Somebody calls you {QUOTE_START}weird but funny.{QUOTE_END}\n" + "How does that make you feel?"); + +static const PersonalityQuestion* const gPersonalityQuestionPointerTable[NUM_QUIZ_QUESTIONS + 1] = +{ + &HardyQuest1, &HardyQuest2, &HardyQuest3, &HardyQuest4, + &DocileQuest1, &DocileQuest2, &DocileQuest3, &DocileQuest4, + &BraveQuest1, &BraveQuest2A, &BraveQuest3, &BraveQuest4, + &JollyQuest1, &JollyQuest2, &JollyQuest3, &JollyQuest4, + &ImpishQuest1, &ImpishQuest2, &ImpishQuest3, &ImpishQuest4, + &NaiveQuest1, &NaiveQuest2, &NaiveQuest3, &NaiveQuest4, + &TimidQuest1, &TimidQuest2, &TimidQuest3, &TimidQuest4, + &HastyQuest1, &HastyQuest2, &HastyQuest3, &HastyQuest4, + &SassyQuest1, &SassyQuest2, &SassyQuest3, &SassyQuest4, + &CalmQuest1, &CalmQuest2, &CalmQuest3, &CalmQuest4, + &RelaxedQuest1, &RelaxedQuest2, &RelaxedQuest3, &RelaxedQuest4, + &LonelyQuest1, &LonelyQuest2, &LonelyQuest3, &LonelyQuest4, + &QuirkyQuest1, &QuirkyQuest2, &QuirkyQuest3, &QuirkyQuest4, + &MiscQuest1, &MiscQuest2, &MiscQuest3, + &BraveQuest2B +}; + +// NOTE: 2nd Part of Brave is included at the end so it isn't actually chosen +static const u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS + 1] = +{ + HARDY, HARDY, HARDY, HARDY, + DOCILE, DOCILE, DOCILE, DOCILE, + BRAVE, BRAVE, BRAVE, BRAVE, + JOLLY, JOLLY, JOLLY, JOLLY, + IMPISH, IMPISH, IMPISH, IMPISH, + NAIVE, NAIVE, NAIVE, NAIVE, + TIMID, TIMID, TIMID, TIMID, + HASTY, HASTY, HASTY, HASTY, + SASSY, SASSY, SASSY, SASSY, + CALM, CALM, CALM, CALM, + RELAXED, RELAXED, RELAXED, RELAXED, + LONELY, LONELY, LONELY, LONELY, + QUIRKY, QUIRKY, QUIRKY, QUIRKY, + MISC, MISC, MISC, + BRAVE +}; + +ALIGNED(4) static const u8 gGenderText[] = _("Are you a boy or a girl?"); +UNUSED ALIGNED(4) static const u8* const gGenderTextPtr[] = { gGenderText }; + +static const MenuItem gGenderMenu[] = +{ + {"Boy.", 0}, + {"Girl.", 1}, + {NULL, -1}, +}; + +UNUSED static const u8 unknownPersonality[13] = +{ + 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13 +}; + +static const s16 gStarters[NUM_PERSONALITIES][2] = +{ + // MALE / FEMALE + [HARDY] = {MONSTER_CHARMANDER, MONSTER_PIKACHU}, + [DOCILE] = {MONSTER_BULBASAUR, MONSTER_CHIKORITA}, + [BRAVE] = {MONSTER_MACHOP, MONSTER_CHARMANDER}, + [JOLLY] = {MONSTER_SQUIRTLE, MONSTER_TOTODILE}, + [IMPISH] = {MONSTER_PIKACHU, MONSTER_CUBONE}, + [NAIVE] = {MONSTER_TOTODILE, MONSTER_EEVEE}, + [TIMID] = {MONSTER_CYNDAQUIL, MONSTER_MUDKIP}, + [HASTY] = {MONSTER_TORCHIC, MONSTER_SKITTY}, + [SASSY] = {MONSTER_TREECKO, MONSTER_TORCHIC}, + [CALM] = {MONSTER_MUDKIP, MONSTER_BULBASAUR}, + [RELAXED] = {MONSTER_PSYDUCK, MONSTER_SQUIRTLE}, + [LONELY] = {MONSTER_CUBONE, MONSTER_PSYDUCK}, + [QUIRKY] = {MONSTER_MEOWTH, MONSTER_TREECKO} +}; + +ALIGNED(4) static const u8 gStarterReveal[] = _( + "\n" + "{CENTER_ALIGN}The Pokémon {ARG_POKEMON_0}!"); +UNUSED ALIGNED(4) static const u8* const gStarterRevealPtr[] = { gStarterReveal }; + +ALIGNED(4) static const u8 gPartnerPrompt[] = _( + "{CENTER_ALIGN}This is the final step.{WAIT_PRESS}\n" + "{CENTER_ALIGN}Who would you like to have as a partner?{EXTRA_MSG}" + "{CENTER_ALIGN}Choose the Pokémon you want\n" + "{CENTER_ALIGN}as your partner from this group."); +UNUSED ALIGNED(4) static const u8* const gPartnerPromptPtr = gPartnerPrompt; + +ALIGNED(4) static const u8 gPartnerNickPrompt[] = _("{CENTER_ALIGN}What is your partner{APOSTROPHE}s nickname?"); +UNUSED ALIGNED(4) static const u8* const gPartnerNickPromptPtr[] = { gPartnerNickPrompt }; + +ALIGNED(4) static const u8 gEndIntroText[] = _( + "{CENTER_ALIGN}OK! We{APOSTROPHE}re all set!{EXTRA_MSG}" + "{CENTER_ALIGN}Let{APOSTROPHE}s get you into the\n" + "{CENTER_ALIGN}world of Pokémon!{EXTRA_MSG}" + "{CENTER_ALIGN}Go for it!"); +UNUSED ALIGNED(4) static const u8* const gEndIntroTextPtr[] = { gEndIntroText }; + +static const u8 gHardyDescription[]; +static const u8 gDocileDescription[]; +static const u8 gBraveDescription[]; +static const u8 gJollyDescription[]; +static const u8 gImpishDescription[]; +static const u8 gNaiveDescription[]; +static const u8 gTimidDescription[]; +static const u8 gHastyDescription[]; +static const u8 gSassyDescription[]; +static const u8 gCalmDescription[]; +static const u8 gRelaxedDescription[]; +static const u8 gLonelyDescription[]; +static const u8 gQuirkyDescription[]; + +static const u8* const sPersonalityTypeDescriptionTable[NUM_PERSONALITIES] = +{ + [HARDY] = gHardyDescription, + [DOCILE] = gDocileDescription, + [BRAVE] = gBraveDescription, + [JOLLY] = gJollyDescription, + [IMPISH] = gImpishDescription, + [NAIVE] = gNaiveDescription, + [TIMID] = gTimidDescription, + [HASTY] = gHastyDescription, + [SASSY] = gSassyDescription, + [CALM] = gCalmDescription, + [RELAXED] = gRelaxedDescription, + [LONELY] = gLonelyDescription, + [QUIRKY] = gQuirkyDescription +}; + +ALIGNED(4) static const u8 gQuirkyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The quirky type.{EXTRA_MSG}" + "{CENTER_ALIGN}People consider you an eccentric\n" + "{CENTER_ALIGN}who does things at your own pace.{EXTRA_MSG}" + "{CENTER_ALIGN}You never break tempo.{EXTRA_MSG}" + "{CENTER_ALIGN}Your carefree nature makes you\n" + "{CENTER_ALIGN}attractive. But you also happen\n" + "{CENTER_ALIGN}to be somewhat childish...{EXTRA_MSG}" + "{CENTER_ALIGN}You are fickle and cause problems for the\n" + "{CENTER_ALIGN}people who have to go along with you.{EXTRA_MSG}" + "{CENTER_ALIGN}Maybe people are even upset\n" + "{CENTER_ALIGN}with you for being so fickle?{EXTRA_MSG}" + "{CENTER_ALIGN}If you realize how selfishly\n" + "{CENTER_ALIGN}you{APOSTROPHE}re behaving{COMMA} try to think\n" + "{CENTER_ALIGN}before you do anything rash.{EXTRA_MSG}" + "{CENTER_ALIGN}A quirky person like you should be..."); + +ALIGNED(4) static const u8 gLonelyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The lonely type.{EXTRA_MSG}" + "{CENTER_ALIGN}You always act cheerful and\n" + "{CENTER_ALIGN}jocular around other people.{EXTRA_MSG}" + "{CENTER_ALIGN}But that{APOSTROPHE}s only because\n" + "{CENTER_ALIGN}you are with other people.{EXTRA_MSG}" + "{CENTER_ALIGN}However{COMMA} when you get alone...{EXTRA_MSG}" + "{CENTER_ALIGN}Do you find yourself\n" + "{CENTER_ALIGN}feeling oddly depressed?{EXTRA_MSG}" + "{CENTER_ALIGN}That{APOSTROPHE}s why you always\n" + "{CENTER_ALIGN}want to be with others.{EXTRA_MSG}" + "{CENTER_ALIGN}But if you go around feeling\n" + "{CENTER_ALIGN}depressed too much...{EXTRA_MSG}" + "{CENTER_ALIGN}Your nutritional balance goes out\n" + "{CENTER_ALIGN}of wack. Eat more vegetables!{EXTRA_MSG}" + "{CENTER_ALIGN}However...{WAIT_PRESS}\n" + "{CENTER_ALIGN}It{APOSTROPHE}s not a bad thing\n" + "{CENTER_ALIGN}to feel lonely.{EXTRA_MSG}" + "{CENTER_ALIGN}You know what it{APOSTROPHE}s like when you aren{APOSTROPHE}t\n" + "{CENTER_ALIGN}alone{COMMA} so that{APOSTROPHE}s why you feel lonesome.{EXTRA_MSG}" + "{CENTER_ALIGN}And that{APOSTROPHE}s why you aren{APOSTROPHE}t really alone.{EXTRA_MSG}" + "{CENTER_ALIGN}A lonely person like you should be..."); + +ALIGNED(4) static const u8 gRelaxedDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The relaxed type.{EXTRA_MSG}" + "{CENTER_ALIGN}Do you occasionally\n" + "{CENTER_ALIGN}zone out and miss a bus?{EXTRA_MSG}" + "{CENTER_ALIGN}Or do you find yourself dozing off?{EXTRA_MSG}" + "{CENTER_ALIGN}Or is your reaction time\n" + "{CENTER_ALIGN}a little slower than others?{EXTRA_MSG}" + "{CENTER_ALIGN}But that{APOSTROPHE}s not necessarily\n" + "{CENTER_ALIGN}a bad thing.{EXTRA_MSG}" + "{CENTER_ALIGN}You can do things at your own\n" + "{CENTER_ALIGN}tempo without feeling pressured.{EXTRA_MSG}" + "{CENTER_ALIGN}You can live in a relaxed and\n" + "{CENTER_ALIGN}unhurried manner without worries.{EXTRA_MSG}" + "{CENTER_ALIGN}I think that{APOSTROPHE}s a happy\n" + "{CENTER_ALIGN}lifestyle to be envied{COMMA} even.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re also surprisingly popular.{EXTRA_MSG}" + "{CENTER_ALIGN}The way you vacantly stare\n" + "{CENTER_ALIGN}off into the distance...{EXTRA_MSG}" + "{CENTER_ALIGN}It should make that someone\n" + "{CENTER_ALIGN}special{APOSTROPHE}s pulse race.{EXTRA_MSG}" + "{CENTER_ALIGN}A relaxed person like you should be..."); + +ALIGNED(4) static const u8 gCalmDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The calm type.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re capable of giving advice\n" + "{CENTER_ALIGN}to friends with worries.{EXTRA_MSG}" + "{CENTER_ALIGN}You don{APOSTROPHE}t like to fight.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re a warm{COMMA} kindhearted\n" + "{CENTER_ALIGN}person who cares.{EXTRA_MSG}" + "{CENTER_ALIGN}You must have many friends\n" + "{CENTER_ALIGN}who look up to you.{EXTRA_MSG}" + "{CENTER_ALIGN}However...{WAIT_PRESS}\n" + "{CENTER_ALIGN}You may also be somewhat gullible...{EXTRA_MSG}" + "{CENTER_ALIGN}As well as a little careless...{EXTRA_MSG}" + "{CENTER_ALIGN}And even a little sloppy.{EXTRA_MSG}" + "{CENTER_ALIGN}You might want to keep\n" + "{CENTER_ALIGN}those points in mind.{EXTRA_MSG}" + "{CENTER_ALIGN}A calm person like you should be..."); + +ALIGNED(4) static const u8 gSassyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The sassy type.{EXTRA_MSG}" + "{CENTER_ALIGN}You tend to be somewhat cynical.{EXTRA_MSG}" + "{CENTER_ALIGN}Despite that{COMMA} there is something\n" + "{CENTER_ALIGN}appealing and lovable about you.{EXTRA_MSG}" + "{CENTER_ALIGN}But do you occasionally say something\n" + "{CENTER_ALIGN}arrogant that angers others?{EXTRA_MSG}" + "{CENTER_ALIGN}Do you make that mistake?{EXTRA_MSG}" + "{CENTER_ALIGN}Or have people called you\n" + "{CENTER_ALIGN}conceited{COMMA} vain{COMMA} or selfish?{EXTRA_MSG}" + "{CENTER_ALIGN}Have people said that about you?{EXTRA_MSG}" + "{CENTER_ALIGN}Huh?{WAIT_PRESS} You{APOSTROPHE}re telling me to get lost?{EXTRA_MSG}" + "{CENTER_ALIGN}Why{COMMA} you... Come here and say that!{WAIT_PRESS}\n" + "{CENTER_ALIGN}......Gasp!{EXTRA_MSG}" + "{CENTER_ALIGN}...I{APOSTROPHE}m sorry.\n" + "{CENTER_ALIGN}I let my feelings run away.\n" + "{CENTER_ALIGN}I truly regret this{COMMA} really.{EXTRA_MSG}" + "{CENTER_ALIGN}Anyway{COMMA} your cool and aloof\n" + "{CENTER_ALIGN}attitude is what defines you.{EXTRA_MSG}" + "{CENTER_ALIGN}It makes you exasperating and\n" + "{CENTER_ALIGN}appealing at the same time.{EXTRA_MSG}" + "{CENTER_ALIGN}A sassy person like you should be..."); + +ALIGNED(4) static const u8 gHastyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The hasty type.{EXTRA_MSG}" + "{CENTER_ALIGN}You like to take charge\n" + "{CENTER_ALIGN}and get things done.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re a real go-getter.{EXTRA_MSG}" + "{CENTER_ALIGN}But are you also stressed out?{EXTRA_MSG}" + "{CENTER_ALIGN}You get irritated when your\n" + "{CENTER_ALIGN}friends don{APOSTROPHE}t show up on time.{EXTRA_MSG}" + "{CENTER_ALIGN}You get frustrated when things\n" + "{CENTER_ALIGN}don{APOSTROPHE}t turn out the way you expect.{EXTRA_MSG}" + "{CENTER_ALIGN}Maybe you jab the elevator button\n" + "{CENTER_ALIGN}if the elevator is slow to arrive.{EXTRA_MSG}" + "{CENTER_ALIGN}...Maybe you{APOSTROPHE}re already jabbing\n" + "{CENTER_ALIGN}the A Button repeatedly now.{EXTRA_MSG}" + "{CENTER_ALIGN}Beware--getting too easily irritated\n" + "{CENTER_ALIGN}just isn{APOSTROPHE}t good for your well-being.{EXTRA_MSG}" + "{CENTER_ALIGN}A hasty person like you should be..."); + +ALIGNED(4) static const u8 gTimidDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The timid type.{EXTRA_MSG}" + "{CENTER_ALIGN}You may find it hard to go\n" + "{CENTER_ALIGN}to the washroom at night.{EXTRA_MSG}" + "{CENTER_ALIGN}You may also find it too frightening\n" + "{CENTER_ALIGN}to go back to school to get something\n" + "{CENTER_ALIGN}you left behind in class.{EXTRA_MSG}" + "{CENTER_ALIGN}If you{APOSTROPHE}re ever walking on a dark\n" + "{CENTER_ALIGN}street at night{COMMA} you probably turn\n" + "{CENTER_ALIGN}around often to check behind you.{EXTRA_MSG}" + "{CENTER_ALIGN}But your timid nature is\n" + "{CENTER_ALIGN}also your good point!{EXTRA_MSG}" + "{CENTER_ALIGN}Because those who know fear are\n" + "{CENTER_ALIGN}those who know true courage.{EXTRA_MSG}" + "{CENTER_ALIGN}A timid person like you should be..."); + +ALIGNED(4) static const u8 gNaiveDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The naive type.{EXTRA_MSG}" + "{CENTER_ALIGN}You are highly curious{COMMA}\n" + "{CENTER_ALIGN}and you love rare things.{EXTRA_MSG}" + "{CENTER_ALIGN}Your cheerful and carefree\n" + "{CENTER_ALIGN}attitude should make things fun\n" + "{CENTER_ALIGN}for the people around you.{EXTRA_MSG}" + "{CENTER_ALIGN}But you do have one flaw.\n" + "{CENTER_ALIGN}You can be childish.{EXTRA_MSG}" + "{CENTER_ALIGN}You can never sit still.\n" + "{CENTER_ALIGN}You{APOSTROPHE}re always on the move.{EXTRA_MSG}" + "{CENTER_ALIGN}You can also be selfish{COMMA}\n" + "{CENTER_ALIGN}so you should watch yourself.{EXTRA_MSG}" + "{CENTER_ALIGN}A naive person like you should be..."); + +ALIGNED(4) static const u8 gImpishDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The impish type.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re playful{COMMA} cheerful{COMMA}\n" + "{CENTER_ALIGN}and you love pranks.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re also kindhearted.{EXTRA_MSG}" + "{CENTER_ALIGN}That{APOSTROPHE}s why the people around\n" + "{CENTER_ALIGN}you find you so irresistible.{EXTRA_MSG}" + "{CENTER_ALIGN}You must be the most\n" + "{CENTER_ALIGN}popular person around!{EXTRA_MSG}" + "{CENTER_ALIGN}Oh?{WAIT_PRESS} You{APOSTROPHE}re not that popular?{WAIT_PRESS}\n" + "{CENTER_ALIGN}You{APOSTROPHE}re either being modest...\n" + "{CENTER_ALIGN}or you just don{APOSTROPHE}t notice it.{EXTRA_MSG}" + "{CENTER_ALIGN}I bet people are just too shy\n" + "{CENTER_ALIGN}to let their feelings be known.{EXTRA_MSG}" + "{CENTER_ALIGN}There{APOSTROPHE}s someone out there who{APOSTROPHE}s\n" + "{CENTER_ALIGN}afraid to declare their love for you!{EXTRA_MSG}" + "{CENTER_ALIGN}An impish person like you should be..."); + +ALIGNED(4) static const u8 gJollyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The jolly type.{EXTRA_MSG}" + "{CENTER_ALIGN}Always laughing and smiling{COMMA}\n" + "{CENTER_ALIGN}you uplift everyone around you.{EXTRA_MSG}" + "{CENTER_ALIGN}You love jokes!{EXTRA_MSG}" + "{CENTER_ALIGN}You have lots of friends{COMMA} and\n" + "{CENTER_ALIGN}you{APOSTROPHE}re popular wherever you go.{EXTRA_MSG}" + "{CENTER_ALIGN}But sometimes you get carried away\n" + "{CENTER_ALIGN}and say things that get you in trouble.{EXTRA_MSG}" + "{CENTER_ALIGN}You should learn to think before\n" + "{CENTER_ALIGN}saying or doing anything.{EXTRA_MSG}" + "{CENTER_ALIGN}A jolly person like you should be..."); + +ALIGNED(4) static const u8 gBraveDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The brave type.{EXTRA_MSG}" + "{CENTER_ALIGN}You have a strong sense of justice.{WAIT_PRESS}\n" + "{CENTER_ALIGN}You hate evil.{WAIT_PRESS}\n" + "{CENTER_ALIGN}You will take on any opponent.{EXTRA_MSG}" + "{CENTER_ALIGN}You are truly a hero!{EXTRA_MSG}" + "{CENTER_ALIGN}Go forth!{EXTRA_MSG}" + "{CENTER_ALIGN}For justice...{WAIT_PRESS}\n" + "{CENTER_ALIGN}For peace on earth...{WAIT_PRESS}\n" + "{CENTER_ALIGN}Fight the forces of evil!{EXTRA_MSG}" + "{CENTER_ALIGN}......{WAIT_PRESS}If I{APOSTROPHE}m wrong...{WAIT_PRESS}\n" + "{CENTER_ALIGN}Work at becoming a true hero!{EXTRA_MSG}" + "{CENTER_ALIGN}A brave person like you should be..."); + +ALIGNED(4) static const u8 gDocileDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The docile type.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re very kindhearted.{WAIT_PRESS}\n" + "{CENTER_ALIGN}Very helpful.{WAIT_PRESS}\n" + "{CENTER_ALIGN}You can make friends with anyone.{EXTRA_MSG}" + "{CENTER_ALIGN}You{APOSTROPHE}re a wonderful person.{EXTRA_MSG}" + "{CENTER_ALIGN}......{WAIT_PRESS}Is that going overboard?{WAIT_PRESS}\n" + "{CENTER_ALIGN}I don{APOSTROPHE}t think so.{EXTRA_MSG}" + "{CENTER_ALIGN}You yourself should be\n" + "{CENTER_ALIGN}the best judge of that.{EXTRA_MSG}" + "{CENTER_ALIGN}A docile person like you should be..."); + +ALIGNED(4) static const u8 gHardyDescription[] = _( + "{CENTER_ALIGN}You appear to be...{WAIT_PRESS}\n" + "{CENTER_ALIGN}The hardy type.{EXTRA_MSG}" + "{CENTER_ALIGN}You do your homework diligently{COMMA}\n" + "{CENTER_ALIGN}and you know to eat properly.{EXTRA_MSG}" + "{CENTER_ALIGN}You have strong willpower that lets\n" + "{CENTER_ALIGN}you complete tasks{COMMA} however tough.{EXTRA_MSG}" + "{CENTER_ALIGN}But{COMMA} you can also be stubborn to the\n" + "{CENTER_ALIGN}point of even feuding with friends...{EXTRA_MSG}" + "{CENTER_ALIGN}Nothing will go right for you when you{APOSTROPHE}re\n" + "{CENTER_ALIGN}irritated{COMMA} so learn to laugh it off.{EXTRA_MSG}" + "{CENTER_ALIGN}A hardy person like you should be..."); + +static const UnkTextStruct2 sUnknown_80F4244 = +{ + 0, 0, 0, 0, + 5, + 12, 6, + 5, 5, + 5, 0, + NULL +}; \ No newline at end of file diff --git a/src/data/personality_test2.h b/src/data/personality_test2.h new file mode 100644 index 000000000..5f329d14f --- /dev/null +++ b/src/data/personality_test2.h @@ -0,0 +1,45 @@ +const s16 gPartners[NUM_PARTNERS] = +{ + MONSTER_CHARMANDER, + MONSTER_BULBASAUR, + MONSTER_SQUIRTLE, + MONSTER_PIKACHU, + MONSTER_CHIKORITA, + MONSTER_TOTODILE, + MONSTER_CYNDAQUIL, + MONSTER_TORCHIC, + MONSTER_TREECKO, + MONSTER_MUDKIP +}; + +const UnkTextStruct2 gUnknown_80F4278 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x03, + 0x00, 0x00, + 0x00, 0x00, + 0x00, 0x00, + NULL +}; + +const UnkTextStruct2 gUnknown_80F4290 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x06, + 0x02, 0x02, + 0x09, 0x0B, + 0x0D, 0x00, + NULL +}; + +const UnkTextStruct2 gUnknown_80F42A8 = +{ + 0x00, 0x00, 0x00, 0x00, + 0x05, + 0x0E, 0x04, + 0x05, 0x05, + 0x05, 0x00, + NULL +}; + +const char gPartnerSelectionHeaderText[] = _("Pokémon"); \ No newline at end of file diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index df4202625..1903a0433 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -1,347 +1,1311 @@ -// Forward declaration for the array of Mail -extern const u8 gMail_WelcomeHeadline[]; -extern const u8 gMail_WelcomeText[]; -extern const u8 gMail_BasicsHeadline[]; -extern const u8 gMail_BasicsText[]; -extern const u8 gMail_JobHeadline[]; -extern const u8 gMail_JobText[]; -extern const u8 gMail_HungerHeadline[]; -extern const u8 gMail_HungerText[]; -extern const u8 gMail_SeedHeadline[]; -extern const u8 gMail_SeedText[]; -extern const u8 gMail_DisasterHeadline[]; -extern const u8 gMail_DisasterText[]; -extern const u8 gMail_OptionsHeadline[]; -extern const u8 gMail_OptionsText[]; -extern const u8 gMail_MoveHeadline[]; -extern const u8 gMail_MoveText[]; -extern const u8 gMail_WonderHeadline[]; -extern const u8 gMail_WonderText[]; -extern const u8 gMail_DungeonHeadline[]; -extern const u8 gMail_DungeonText[]; -extern const u8 gMail_TypeHeadline[]; -extern const u8 gMail_TypeText[]; -extern const u8 gMail_LinkedEntryHeadline1[]; -extern const u8 gMail_LinkedEntryText1[]; -extern const u8 gMail_LinkedEntryHeadline2[]; -extern const u8 gMail_LinkedEntryText2[]; -extern const u8 gMail_LinkedEntryHeadline3[]; -extern const u8 gMail_LinkedEntryText3[]; -extern const u8 gMail_PollHeadline[]; -extern const u8 gMail_PollText[]; -extern const u8 gMail_WondersHeadline[]; -extern const u8 gMail_WondersText[]; -extern const u8 gMail_TeamMoveHeadline[]; -extern const u8 gMail_TeamMoveText[]; -extern const u8 gMail_AddMembersHeadline[]; -extern const u8 gMail_AddMembersText[]; -extern const u8 gMail_MoveTipsHeadline[]; -extern const u8 gMail_MoveTipsText[]; -extern const u8 gMail_GummiHeadline[]; -extern const u8 gMail_GummiText[]; -extern const u8 gMail_UltimateHeadline[]; -extern const u8 gMail_UltimateText[]; -extern const u8 gMail_MachineHeadline[]; -extern const u8 gMail_MachineText[]; -extern const u8 gMail_MakuhitaHeadline[]; -extern const u8 gMail_MakuhitaText[]; -extern const u8 gMail_TrapTileHeadline[]; -extern const u8 gMail_TrapTileText[]; -extern const u8 gMail_IQHeadline[]; -extern const u8 gMail_IQText[]; -extern const u8 gMail_RangeHeadline[]; -extern const u8 gMail_RangeText[]; -extern const u8 gMail_SweetHeadline[]; -extern const u8 gMail_SweetText[]; -extern const u8 gMail_KeyHeadline[]; -extern const u8 gMail_KeyText[]; -extern const u8 gMail_AzurillHeadline[]; -extern const u8 gMail_AzurillText[]; -extern const u8 gMail_WeatherHeadline1[]; -extern const u8 gMail_WeatherText1[]; -extern const u8 gMail_PechaHeadline[]; -extern const u8 gMail_PechaText[]; -extern const u8 gMail_WobbuffetHeadline[]; -extern const u8 gMail_WobbuffetText[]; -extern const u8 gMail_WeatherHeadline2[]; -extern const u8 gMail_WeatherText2[]; -extern const u8 gMail_KecleonHeadline[]; -extern const u8 gMail_KecleonText[]; -extern const u8 gMail_SwitchHeadline[]; -extern const u8 gMail_SwitchText[]; -extern const u8 gMail_KeyItemHeadline1[]; -extern const u8 gMail_KeyItemText1[]; -extern const u8 gMail_KeyItemHeadline2[]; -extern const u8 gMail_KeyItemText2[]; -extern const u8 gMail_GasHeadline[]; -extern const u8 gMail_GasText[]; -extern const u8 gMail_CastformHeadline[]; -extern const u8 gMail_CastformText[]; -extern const u8 gMail_SmeargleHeadline[]; -extern const u8 gMail_SmeargleText[]; -extern const u8 gMail_KabutoHeadline[]; -extern const u8 gMail_KabutoText[]; -extern const u8 gMail_ChanseyHeadline[]; -extern const u8 gMail_ChanseyText[]; -extern const u8 gMail_ClubHeadline[]; -extern const u8 gMail_ClubText[]; -extern const u8 gMail_RawstHeadline[]; -extern const u8 gMail_RawstText[]; -extern const u8 gMail_VileplumeHeadline[]; -extern const u8 gMail_VileplumeText[]; -extern const u8 gMail_SeaRescueHeadline[]; -extern const u8 gMail_SeaRescueText[]; -extern const u8 gMail_PitfallHeadline[]; -extern const u8 gMail_PitfallText[]; -extern const u8 gMail_SlakothHeadline[]; -extern const u8 gMail_SlakothText[]; -extern const u8 gMail_LinkedProHeadline1[]; -extern const u8 gMail_LinkedProText1[]; -extern const u8 gMail_LinkedProHeadline2[]; -extern const u8 gMail_LinkedProText2[]; -extern const u8 gMail_PelipperHeadline[]; -extern const u8 gMail_PelipperText[]; -extern const u8 gMail_NewsHeadline1[]; -extern const u8 gMail_NewsText1[]; -extern const u8 gMail_NewsHeadline2[]; -extern const u8 gMail_NewsText2[]; -extern const u8 gMail_BuriedRelicHeadline[]; -extern const u8 gMail_BuriedRelicText[]; -extern const u8 gMail_LucarioRankHeadline[]; -extern const u8 gMail_LucarioRankText[]; -extern const u8 gMail_NewFriendAreasHeadline[]; -extern const u8 gMail_NewFriendAreasText[]; +// TODO: Find a way to #define the text and insert them in arrays without declarations +static const u8 sUnknown_80E8BB0[]; +static const u8 sUnknown_80E8BB4[]; +static const u8 sUnknown_80E8BB8[]; +static const u8 sUnknown_80E8BBC[]; +static const u8 sUnknown_80E8BC0[]; +static const u8 sUnknown_80E8BC4[]; +static const u8 sUnknown_80E8BC8[]; -const struct PokemonMail gPokemonMail[NUM_POKEMON_MAIL] = -{ - { - .headline = gMail_WelcomeHeadline, - .text = gMail_WelcomeText, - }, - { - .headline = gMail_BasicsHeadline, - .text = gMail_BasicsText, - }, - { - .headline = gMail_JobHeadline, - .text = gMail_JobText, - }, - { - .headline = gMail_HungerHeadline, - .text = gMail_HungerText, - }, - { - .headline = gMail_SeedHeadline, - .text = gMail_SeedText, - }, - { - .headline = gMail_DisasterHeadline, - .text = gMail_DisasterText, - }, - { - .headline = gMail_OptionsHeadline, - .text = gMail_OptionsText, - }, - { - .headline = gMail_MoveHeadline, - .text = gMail_MoveText, - }, - { - .headline = gMail_WonderHeadline, - .text = gMail_WonderText, - }, - { - .headline = gMail_DungeonHeadline, - .text = gMail_DungeonText, - }, - { - .headline = gMail_TypeHeadline, - .text = gMail_TypeText, - }, - { - .headline = gMail_LinkedEntryHeadline1, - .text = gMail_LinkedEntryText1, - }, - { - .headline = gMail_LinkedEntryHeadline2, - .text = gMail_LinkedEntryText2, - }, - { - .headline = gMail_LinkedEntryHeadline3, - .text = gMail_LinkedEntryText3, - }, - { - .headline = gMail_PollHeadline, - .text = gMail_PollText, - }, - { - .headline = gMail_WondersHeadline, - .text = gMail_WondersText, - }, - { - .headline = gMail_TeamMoveHeadline, - .text = gMail_TeamMoveText, - }, - { - .headline = gMail_AddMembersHeadline, - .text = gMail_AddMembersText, - }, - { - .headline = gMail_MoveTipsHeadline, - .text = gMail_MoveTipsText, - }, - { - .headline = gMail_GummiHeadline, - .text = gMail_GummiText, - }, - { - .headline = gMail_UltimateHeadline, - .text = gMail_UltimateText, - }, - { - .headline = gMail_MachineHeadline, - .text = gMail_MachineText, - }, - { - .headline = gMail_MakuhitaHeadline, - .text = gMail_MakuhitaText, - }, - { - .headline = gMail_TrapTileHeadline, - .text = gMail_TrapTileText, - }, - { - .headline = gMail_IQHeadline, - .text = gMail_IQText, - }, - { - .headline = gMail_RangeHeadline, - .text = gMail_RangeText, - }, - { - .headline = gMail_SweetHeadline, - .text = gMail_SweetText, - }, - { - .headline = gMail_KeyHeadline, - .text = gMail_KeyText, - }, - { - .headline = gMail_AzurillHeadline, - .text = gMail_AzurillText, - }, - { - .headline = gMail_WeatherHeadline1, - .text = gMail_WeatherText1, - }, - { - .headline = gMail_PechaHeadline, - .text = gMail_PechaText, - }, - { - .headline = gMail_WobbuffetHeadline, - .text = gMail_WobbuffetText, - }, - { - .headline = gMail_WeatherHeadline2, - .text = gMail_WeatherText2, - }, - { - .headline = gMail_KecleonHeadline, - .text = gMail_KecleonText, - }, - { - .headline = gMail_SwitchHeadline, - .text = gMail_SwitchText, - }, - { - .headline = gMail_KeyItemHeadline1, - .text = gMail_KeyItemText1, - }, - { - .headline = gMail_KeyItemHeadline2, - .text = gMail_KeyItemText2, - }, - { - .headline = gMail_GasHeadline, - .text = gMail_GasText, - }, - { - .headline = gMail_CastformHeadline, - .text = gMail_CastformText, - }, - { - .headline = gMail_SmeargleHeadline, - .text = gMail_SmeargleText, - }, - { - .headline = gMail_KabutoHeadline, - .text = gMail_KabutoText, - }, - { - .headline = gMail_ChanseyHeadline, - .text = gMail_ChanseyText, - }, - { - .headline = gMail_ClubHeadline, - .text = gMail_ClubText, - }, - { - .headline = gMail_RawstHeadline, - .text = gMail_RawstText, - }, - { - .headline = gMail_VileplumeHeadline, - .text = gMail_VileplumeText, - }, - { - .headline = gMail_SeaRescueHeadline, - .text = gMail_SeaRescueText, - }, - { - .headline = gMail_PitfallHeadline, - .text = gMail_PitfallText, - }, - { - .headline = gMail_SlakothHeadline, - .text = gMail_SlakothText, - }, - { - .headline = gMail_LinkedProHeadline1, - .text = gMail_LinkedProText1, - }, - { - .headline = gMail_LinkedProHeadline2, - .text = gMail_LinkedProText2, - }, - { - .headline = gMail_PelipperHeadline, - .text = gMail_PelipperText, - }, - { - .headline = gMail_NewsHeadline1, - .text = gMail_NewsText1, - }, - { - .headline = gMail_NewsHeadline2, - .text = gMail_NewsText2, - }, - { - .headline = gMail_BuriedRelicHeadline, - .text = gMail_BuriedRelicText, - }, - { - .headline = gMail_LucarioRankHeadline, - .text = gMail_LucarioRankText, - }, - { - .headline = gMail_NewFriendAreasHeadline, - .text = gMail_NewFriendAreasText - } +static const u8 * const sUnknown_80E8B94[7] = { + sUnknown_80E8BC8, + sUnknown_80E8BC4, + sUnknown_80E8BC0, + sUnknown_80E8BBC, + sUnknown_80E8BB8, + sUnknown_80E8BB4, + sUnknown_80E8BB0 }; -ALIGNED(4) const u8 gMail_NewFriendAreasText[] = _( +ALIGNED(4) static const u8 sUnknown_80E8BB0[] = _("{UNK_ICON_83_C3}"); +ALIGNED(4) static const u8 sUnknown_80E8BB4[] = _("{UNK_ICON_83_C2}"); +ALIGNED(4) static const u8 sUnknown_80E8BB8[] = _("{UNK_ICON_83_C1}"); +ALIGNED(4) static const u8 sUnknown_80E8BBC[] = _("{UNK_ICON_83_C0}"); +ALIGNED(4) static const u8 sUnknown_80E8BC0[] = _("{UNK_ICON_40}"); +ALIGNED(4) static const u8 sUnknown_80E8BC4[] = _("{UNK_ICON_84_87}"); +ALIGNED(4) static const u8 sUnknown_80E8BC8[] = _(" "); + +static const u8 * const sUnknown_80E8BCC[4] = { + sUnknown_80E8BC8, + "Suspend", + "Take Job", + "Done" +}; + +static const u8 sUnknown_80E8C14[]; +static const u8 sUnknown_80E8C18[]; +static const u8 sUnknown_80E8C20[]; +static const u8 sUnknown_80E8C28[]; +static const u8 sUnknown_80E8C30[]; +static const u8 sUnknown_80E8C38[]; +static const u8 sUnknown_80E8C40[]; + +// Used in sub_803C1F0 for some reason +const u8 * const gUnknown_80E8BF8[7] = { + sUnknown_80E8C40, + sUnknown_80E8C38, + sUnknown_80E8C30, + sUnknown_80E8C28, + sUnknown_80E8C20, + sUnknown_80E8C18, + sUnknown_80E8C14 +}; + +ALIGNED(4) static const u8 sUnknown_80E8C14[] = _("{STAR_BULLET}"); +ALIGNED(4) static const u8 sUnknown_80E8C18[] = _("{COLOR_1 RED}S{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C20[] = _("{COLOR_1 CYAN}A{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C28[] = _("{COLOR_1 CYAN}B{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C30[] = _("{COLOR_1 GREEN}C{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C38[] = _("{COLOR_1 GREEN}D{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C40[] = _("{COLOR_1 WHITE}E{END_COLOR_TEXT_1}"); + +static const u8 sUnknown_80E8C60[]; +static const u8 sUnknown_80E8C64[]; +static const u8 sUnknown_80E8C70[]; +static const u8 sUnknown_80E8C7C[]; +static const u8 sUnknown_80E8C84[]; +static const u8 sUnknown_80E8C90[]; + +static const u8 * const gMissionRewardText[6] = { + sUnknown_80E8C90, + sUnknown_80E8C84, + sUnknown_80E8C7C, + sUnknown_80E8C70, + sUnknown_80E8C64, + sUnknown_80E8C60 +}; + +ALIGNED(4) static const u8 sUnknown_80E8C60[] = _("???"); +ALIGNED(4) static const u8 sUnknown_80E8C64[] = _("Friend Area"); +ALIGNED(4) static const u8 sUnknown_80E8C70[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} + ?"); +ALIGNED(4) static const u8 sUnknown_80E8C7C[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sUnknown_80E8C84[] = _("%d {POKE} + ?"); +ALIGNED(4) static const u8 sUnknown_80E8C90[] = _("%d {POKE}"); + +static const u8 sUnknown_80E8CD4[]; +static const u8 sUnknown_80E8CE0[]; +static const u8 sUnknown_80E8CF4[]; +static const u8 sUnknown_80E8D0C[]; +static const u8 sUnknown_80E8D18[]; +static const u8 sUnknown_80E8D28[]; +static const u8 sUnknown_80E8D44[]; +static const u8 sUnknown_80E8D5C[]; +static const u8 sUnknown_80E8D6C[]; +static const u8 sUnknown_80E8D7C[]; +static const u8 sUnknown_80E8D88[]; +static const u8 sUnknown_80E8DA4[]; +static const u8 sUnknown_80E8DB4[]; +static const u8 sUnknown_80E8DC8[]; +static const u8 sUnknown_80E8DDC[]; + +static const u8 * const gUnknown_80E8C98[15] = { + sUnknown_80E8DDC, + sUnknown_80E8DC8, + sUnknown_80E8DB4, + sUnknown_80E8DA4, + sUnknown_80E8D88, + sUnknown_80E8D7C, + sUnknown_80E8D6C, + sUnknown_80E8D5C, + sUnknown_80E8D44, + sUnknown_80E8D28, + sUnknown_80E8D18, + sUnknown_80E8D0C, + sUnknown_80E8CF4, + sUnknown_80E8CE0, + sUnknown_80E8CD4 +}; + +ALIGNED(4) static const u8 sUnknown_80E8CD4[] = _("Help me!"); +ALIGNED(4) static const u8 sUnknown_80E8CE0[] = _("I can{APOSTROPHE}t get home!"); +ALIGNED(4) static const u8 sUnknown_80E8CF4[] = _("I{APOSTROPHE}m sad and lonely."); +ALIGNED(4) static const u8 sUnknown_80E8D0C[] = _("Where am I?"); +ALIGNED(4) static const u8 sUnknown_80E8D18[] = _("I was KO{APOSTROPHE}d..."); +ALIGNED(4) static const u8 sUnknown_80E8D28[] = _("I{APOSTROPHE}m too tired to move."); +ALIGNED(4) static const u8 sUnknown_80E8D44[] = _("I{APOSTROPHE}m not a fighter..."); +ALIGNED(4) static const u8 sUnknown_80E8D5C[] = _("I fainted..."); +ALIGNED(4) static const u8 sUnknown_80E8D6C[] = _("I was attacked!"); +ALIGNED(4) static const u8 sUnknown_80E8D7C[] = _("I{APOSTROPHE}m lost."); +ALIGNED(4) static const u8 sUnknown_80E8D88[] = _("I can{APOSTROPHE}t seem to get out."); +ALIGNED(4) static const u8 sUnknown_80E8DA4[] = _("I{APOSTROPHE}m scared!"); +ALIGNED(4) static const u8 sUnknown_80E8DB4[] = _("I{APOSTROPHE}m in trouble..."); +ALIGNED(4) static const u8 sUnknown_80E8DC8[] = _("I can{APOSTROPHE}t get out!"); +ALIGNED(4) static const u8 sUnknown_80E8DDC[] = _("Help!"); + +static const u8 sUnknown_80E8E18[]; +static const u8 sUnknown_80E8E2C[]; +static const u8 sUnknown_80E8E4C[]; +static const u8 sUnknown_80E8E6C[]; +static const u8 sUnknown_80E8E80[]; +static const u8 sUnknown_80E8E98[]; +static const u8 sUnknown_80E8EB4[]; +static const u8 sUnknown_80E8ED0[]; +static const u8 sUnknown_80E8EF8[]; +static const u8 sUnknown_80E8F10[]; +static const u8 sUnknown_80E8F2C[]; +static const u8 sUnknown_80E8F50[]; +static const u8 sUnknown_80E8F7C[]; + +static const u8 * const gUnknown_80E8DE4[13] = { + sUnknown_80E8F7C, + sUnknown_80E8F50, + sUnknown_80E8F2C, + sUnknown_80E8F10, + sUnknown_80E8EF8, + sUnknown_80E8ED0, + sUnknown_80E8EB4, + sUnknown_80E8E98, + sUnknown_80E8E80, + sUnknown_80E8E6C, + sUnknown_80E8E4C, + sUnknown_80E8E2C, + sUnknown_80E8E18 +}; + +ALIGNED(4) static const u8 sUnknown_80E8E18[] = _("I{APOSTROPHE}m famished..."); +ALIGNED(4) static const u8 sUnknown_80E8E2C[] = _("I can{APOSTROPHE}t move another step."); +ALIGNED(4) static const u8 sUnknown_80E8E4C[] = _("Whoa! It{APOSTROPHE}s too rough here..."); +ALIGNED(4) static const u8 sUnknown_80E8E6C[] = _("I was done in..."); +ALIGNED(4) static const u8 sUnknown_80E8E80[] = _("I lost in a battle..."); +ALIGNED(4) static const u8 sUnknown_80E8E98[] = _("I{APOSTROPHE}m close to fainting..."); +ALIGNED(4) static const u8 sUnknown_80E8EB4[] = _("I{APOSTROPHE}ve reached my limit..."); +ALIGNED(4) static const u8 sUnknown_80E8ED0[] = _("Fighting the tough foe was a mistake..."); +ALIGNED(4) static const u8 sUnknown_80E8EF8[] = _("This dungeon is scary!"); +ALIGNED(4) static const u8 sUnknown_80E8F10[] = _("I got lost in this dungeon!"); +ALIGNED(4) static const u8 sUnknown_80E8F2C[] = _("I{APOSTROPHE}m simply no good at fighting."); +ALIGNED(4) static const u8 sUnknown_80E8F50[] = _("I was attacked when I was sitting still!"); +ALIGNED(4) static const u8 sUnknown_80E8F7C[] = _("I don{APOSTROPHE}t know how I did it{COMMA} but I can{APOSTROPHE}t exit!"); + +static const u8 sUnknown_80E8FE4[]; +static const u8 sUnknown_80E8FF4[]; +static const u8 sUnknown_80E900C[]; +static const u8 sUnknown_80E9024[]; +static const u8 sUnknown_80E903C[]; +static const u8 sUnknown_80E9064[]; +static const u8 sUnknown_80E907C[]; +static const u8 sUnknown_80E9090[]; +static const u8 sUnknown_80E90B4[]; +static const u8 sUnknown_80E90D4[]; +static const u8 sUnknown_80E90E8[]; +static const u8 sUnknown_80E90F4[]; + +static const u8 * const gUnknown_80E8FB0[13] = { + sUnknown_80E90F4, + sUnknown_80E90E8, + sUnknown_80E90D4, + sUnknown_80E90B4, + sUnknown_80E9090, + sUnknown_80E907C, + sUnknown_80E9064, + sUnknown_80E903C, + sUnknown_80E9024, + sUnknown_80E900C, + sUnknown_80E8DDC, + sUnknown_80E8FF4, + sUnknown_80E8FE4 +}; + +ALIGNED(4) static const u8 sUnknown_80E8FE4[] = _("Aiyeeeeeeeeh!"); +ALIGNED(4) static const u8 sUnknown_80E8FF4[] = _("...Gasp! Waaaaaaaah!"); +ALIGNED(4) static const u8 sUnknown_80E900C[] = _("Someone{COMMA} please help!"); +ALIGNED(4) static const u8 sUnknown_80E9024[] = _("Rescue is requested!"); +ALIGNED(4) static const u8 sUnknown_80E903C[] = _("My consciousness is slipping... Help..."); +ALIGNED(4) static const u8 sUnknown_80E9064[] = _("Wroooooaaar! Someone!"); +ALIGNED(4) static const u8 sUnknown_80E907C[] = _("Where am I? Help!"); +ALIGNED(4) static const u8 sUnknown_80E9090[] = _("Why? Why is everyone attacking me?"); +ALIGNED(4) static const u8 sUnknown_80E90B4[] = _("I feel faint... Please help..."); +ALIGNED(4) static const u8 sUnknown_80E90D4[] = _("Someone{COMMA} help!"); +ALIGNED(4) static const u8 sUnknown_80E90E8[] = _("Someone!"); +ALIGNED(4) static const u8 sUnknown_80E90F4[] = _("Please{COMMA} I need help!"); + +static const u8 sUnknown_80E9134[]; +static const u8 sUnknown_80E9144[]; +static const u8 sUnknown_80E914C[]; +static const u8 sUnknown_80E9160[]; +static const u8 sUnknown_80E9170[]; +static const u8 sUnknown_80E917C[]; +static const u8 sUnknown_80E9190[]; +static const u8 sUnknown_80E91A8[]; +static const u8 sUnknown_80E91BC[]; + +static const u8 * const gUnknown_80E910C[10] = { + sUnknown_80E91BC, + sUnknown_80E91A8, + sUnknown_80E9190, + sUnknown_80E917C, + sUnknown_80E8DDC, + sUnknown_80E9170, + sUnknown_80E9160, + sUnknown_80E914C, + sUnknown_80E9144, + sUnknown_80E9134 +}; + +ALIGNED(4) static const u8 sUnknown_80E9134[] = _("Disappearance!"); +ALIGNED(4) static const u8 sUnknown_80E9144[] = _("Hurry!"); +ALIGNED(4) static const u8 sUnknown_80E914C[] = _("Hasn{APOSTROPHE}t come back."); +ALIGNED(4) static const u8 sUnknown_80E9160[] = _("I{APOSTROPHE}m worried."); +ALIGNED(4) static const u8 sUnknown_80E9170[] = _("Somebody!"); +ALIGNED(4) static const u8 sUnknown_80E917C[] = _("Failed to return."); +ALIGNED(4) static const u8 sUnknown_80E9190[] = _("Hurry{COMMA} save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E91A8[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} needs help!"); +ALIGNED(4) static const u8 sUnknown_80E91BC[] = _("Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); + +static const u8 sUnknown_80E9288[]; +static const u8 sUnknown_80E92A4[]; +static const u8 sUnknown_80E92C4[]; +static const u8 sUnknown_80E92E0[]; +static const u8 sUnknown_80E9300[]; +static const u8 sUnknown_80E9328[]; +static const u8 sUnknown_80E9344[]; +static const u8 sUnknown_80E9358[]; +static const u8 sUnknown_80E9378[]; +static const u8 sUnknown_80E9394[]; +static const u8 sUnknown_80E93B8[]; +static const u8 sUnknown_80E93E0[]; +static const u8 sUnknown_80E9400[]; +static const u8 sUnknown_80E9420[]; +static const u8 sUnknown_80E9440[]; +static const u8 sUnknown_80E9460[]; +static const u8 sUnknown_80E9480[]; +static const u8 sUnknown_80E94A0[]; +static const u8 sUnknown_80E94C0[]; +static const u8 sUnknown_80E94E0[]; +static const u8 sUnknown_80E94FC[]; +static const u8 sUnknown_80E951C[]; +static const u8 sUnknown_80E9538[]; +static const u8 sUnknown_80E955C[]; +static const u8 sUnknown_80E9588[]; +static const u8 sUnknown_80E95AC[]; +static const u8 sUnknown_80E95C8[]; +static const u8 sUnknown_80E95EC[]; +static const u8 sUnknown_80E9608[]; +static const u8 sUnknown_80E9628[]; +static const u8 sUnknown_80E9650[]; +static const u8 sUnknown_80E9668[]; +static const u8 sUnknown_80E9688[]; +static const u8 sUnknown_80E96A8[]; +static const u8 sUnknown_80E96C4[]; +static const u8 sUnknown_80E96E4[]; +static const u8 sUnknown_80E9708[]; +static const u8 sUnknown_80E9728[]; +static const u8 sUnknown_80E9748[]; +static const u8 sUnknown_80E976C[]; +static const u8 sUnknown_80E9788[]; +static const u8 sUnknown_80E97A0[]; +static const u8 sUnknown_80E97C4[]; +static const u8 sUnknown_80E97E0[]; +static const u8 sUnknown_80E97FC[]; + +static const u8 * const gUnknown_80E91D4[45] = { + sUnknown_80E97FC, + sUnknown_80E97E0, + sUnknown_80E97C4, + sUnknown_80E97A0, + sUnknown_80E9788, + sUnknown_80E976C, + sUnknown_80E9748, + sUnknown_80E9728, + sUnknown_80E9708, + sUnknown_80E96E4, + sUnknown_80E96C4, + sUnknown_80E96A8, + sUnknown_80E9688, + sUnknown_80E9668, + sUnknown_80E9650, + sUnknown_80E9628, + sUnknown_80E9608, + sUnknown_80E95EC, + sUnknown_80E95C8, + sUnknown_80E95AC, + sUnknown_80E9588, + sUnknown_80E955C, + sUnknown_80E9538, + sUnknown_80E951C, + sUnknown_80E94FC, + sUnknown_80E94E0, + sUnknown_80E94C0, + sUnknown_80E94A0, + sUnknown_80E9480, + sUnknown_80E9460, + sUnknown_80E9440, + sUnknown_80E9420, + sUnknown_80E9400, + sUnknown_80E93E0, + sUnknown_80E93B8, + sUnknown_80E9394, + sUnknown_80E9378, + sUnknown_80E9358, + sUnknown_80E9344, + sUnknown_80E9328, + sUnknown_80E9300, + sUnknown_80E92E0, + sUnknown_80E92C4, + sUnknown_80E92A4, + sUnknown_80E9288 +}; + +ALIGNED(4) static const u8 sUnknown_80E9288[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} fell into a trap!"); +ALIGNED(4) static const u8 sUnknown_80E92A4[] = _("I lost contact with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E92C4[] = _("I can{APOSTROPHE}t contact {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E92E0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t walk anymore!"); +ALIGNED(4) static const u8 sUnknown_80E9300[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s been missing three days!"); +ALIGNED(4) static const u8 sUnknown_80E9328[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} went the wrong way!"); +ALIGNED(4) static const u8 sUnknown_80E9344[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is lost!"); +ALIGNED(4) static const u8 sUnknown_80E9358[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be stuck!"); +ALIGNED(4) static const u8 sUnknown_80E9378[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be lost!"); +ALIGNED(4) static const u8 sUnknown_80E9394[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have had an accident!"); +ALIGNED(4) static const u8 sUnknown_80E93B8[] = _("I{APOSTROPHE}m worried for {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s safety!"); +ALIGNED(4) static const u8 sUnknown_80E93E0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is fighting all alone!"); +ALIGNED(4) static const u8 sUnknown_80E9400[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is too hungry to move!"); +ALIGNED(4) static const u8 sUnknown_80E9420[] = _("Hurry{COMMA} bring back {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80E9440[] = _("I got separated from {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80E9460[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is running out of time!"); +ALIGNED(4) static const u8 sUnknown_80E9480[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was attacked{COMMA} maybe!"); +ALIGNED(4) static const u8 sUnknown_80E94A0[] = _("Something happened to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E94C0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be trapped!"); +ALIGNED(4) static const u8 sUnknown_80E94E0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is stuck in a cave!"); +ALIGNED(4) static const u8 sUnknown_80E94FC[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be helpless!"); +ALIGNED(4) static const u8 sUnknown_80E951C[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t reemerged!"); +ALIGNED(4) static const u8 sUnknown_80E9538[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was attacked by assailants!"); +ALIGNED(4) static const u8 sUnknown_80E955C[] = _("It appears as if {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t escape!"); +ALIGNED(4) static const u8 sUnknown_80E9588[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have fainted already!"); +ALIGNED(4) static const u8 sUnknown_80E95AC[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is about to faint!"); +ALIGNED(4) static const u8 sUnknown_80E95C8[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s been gone a long time!"); +ALIGNED(4) static const u8 sUnknown_80E95EC[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been cornered!"); +ALIGNED(4) static const u8 sUnknown_80E9608[] = _("I{APOSTROPHE}m worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E9628[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s whereabouts are unknown!"); +ALIGNED(4) static const u8 sUnknown_80E9650[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} was paralyzed!"); +ALIGNED(4) static const u8 sUnknown_80E9668[] = _("Trouble may have found {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 sUnknown_80E9688[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be freezing!"); +ALIGNED(4) static const u8 sUnknown_80E96A8[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be confused!"); +ALIGNED(4) static const u8 sUnknown_80E96C4[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is too scared to move!"); +ALIGNED(4) static const u8 sUnknown_80E96E4[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} went missing this morning!"); +ALIGNED(4) static const u8 sUnknown_80E9708[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} appears to be injured!"); +ALIGNED(4) static const u8 sUnknown_80E9728[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be facing danger!"); +ALIGNED(4) static const u8 sUnknown_80E9748[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} might be unable to return."); +ALIGNED(4) static const u8 sUnknown_80E976C[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t come back!"); +ALIGNED(4) static const u8 sUnknown_80E9788[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t swim!"); +ALIGNED(4) static const u8 sUnknown_80E97A0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t been heard from!"); +ALIGNED(4) static const u8 sUnknown_80E97C4[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is still missing."); +ALIGNED(4) static const u8 sUnknown_80E97E0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may be endangered!"); +ALIGNED(4) static const u8 sUnknown_80E97FC[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} passed out from the heat!"); + +static const u8 sUnknown_80E9848[]; +static const u8 sUnknown_80E985C[]; +static const u8 sUnknown_80E987C[]; +static const u8 sUnknown_80E9898[]; +static const u8 sUnknown_80E98B4[]; +static const u8 sUnknown_80E98DC[]; +static const u8 sUnknown_80E98F0[]; +static const u8 sUnknown_80E9908[]; + +static const u8 * const gUnknown_80E9820[10] = { + sUnknown_80E9908, + sUnknown_80E98F0, + sUnknown_80E98DC, + sUnknown_80E98B4, + sUnknown_80E8CD4, + sUnknown_80E9898, + sUnknown_80E90D4, + sUnknown_80E987C, + sUnknown_80E985C, + sUnknown_80E9848 +}; + +ALIGNED(4) static const u8 sUnknown_80E9848[] = _("Reward upon rescue!"); +ALIGNED(4) static const u8 sUnknown_80E985C[] = _("A rescue is urgently needed!"); +ALIGNED(4) static const u8 sUnknown_80E987C[] = _("Please send a rescue team!"); +ALIGNED(4) static const u8 sUnknown_80E9898[] = _("I{APOSTROPHE}m pleading for help!"); +ALIGNED(4) static const u8 sUnknown_80E98B4[] = _("I don{APOSTROPHE}t care who it is! Please help!"); +ALIGNED(4) static const u8 sUnknown_80E98DC[] = _("Someone! Anyone?"); +ALIGNED(4) static const u8 sUnknown_80E98F0[] = _("Please! I need help!"); +ALIGNED(4) static const u8 sUnknown_80E9908[] = _("Please! Someone help!"); + +static const u8 sUnknown_80E99C8[]; +static const u8 sUnknown_80E9A0C[]; +static const u8 sUnknown_80E9A54[]; +static const u8 sUnknown_80E9A94[]; +static const u8 sUnknown_80E9ACC[]; +static const u8 sUnknown_80E9B18[]; +static const u8 sUnknown_80E9B58[]; +static const u8 sUnknown_80E9BAC[]; +static const u8 sUnknown_80E9BFC[]; +static const u8 sUnknown_80E9C38[]; +static const u8 sUnknown_80E9C80[]; +static const u8 sUnknown_80E9CC4[]; +static const u8 sUnknown_80E9D04[]; +static const u8 sUnknown_80E9D50[]; +static const u8 sUnknown_80E9DA4[]; +static const u8 sUnknown_80E9DFC[]; +static const u8 sUnknown_80E9E40[]; +static const u8 sUnknown_80E9E80[]; +static const u8 sUnknown_80E9ED8[]; +static const u8 sUnknown_80E9F24[]; +static const u8 sUnknown_80E9F5C[]; + +// Also used in sub_803B600 and sub_803C3E0 +const unkStruct_80E9920 gUnknown_80E9920[21] = { + { MONSTER_BEEDRILL, MONSTER_WEEDLE, sUnknown_80E9F5C }, + { MONSTER_PIDGEOT, MONSTER_PIDGEY, sUnknown_80E9F24 }, + { MONSTER_RATICATE, MONSTER_RATTATA, sUnknown_80E9ED8 }, + { MONSTER_RAICHU, MONSTER_PICHU, sUnknown_80E9E80 }, + { MONSTER_CLEFABLE, MONSTER_CLEFFA, sUnknown_80E9E40 }, + { MONSTER_WIGGLYTUFF, MONSTER_IGGLYBUFF, sUnknown_80E9DFC }, + { MONSTER_CROBAT, MONSTER_ZUBAT, sUnknown_80E9DA4 }, + { MONSTER_VILEPLUME, MONSTER_ODDISH, sUnknown_80E9D50 }, + { MONSTER_POLIWRATH, MONSTER_POLIWAG, sUnknown_80E9D04 }, + { MONSTER_TOGETIC, MONSTER_TOGEPI, sUnknown_80E9CC4 }, + { MONSTER_AZUMARILL, MONSTER_AZURILL, sUnknown_80E9C80 }, + { MONSTER_URSARING, MONSTER_TEDDIURSA, sUnknown_80E9C38 }, + { MONSTER_DONPHAN, MONSTER_PHANPY, sUnknown_80E9BFC }, + { MONSTER_ELECTABUZZ, MONSTER_ELEKID, sUnknown_80E9BAC }, + { MONSTER_MAGMAR, MONSTER_MAGBY, sUnknown_80E9B58 }, + { MONSTER_TYRANITAR, MONSTER_LARVITAR, sUnknown_80E9B18 }, + { MONSTER_BEAUTIFLY, MONSTER_WURMPLE, sUnknown_80E9ACC }, + { MONSTER_AGGRON, MONSTER_ARON, sUnknown_80E9A94 }, + { MONSTER_FLYGON, MONSTER_TRAPINCH, sUnknown_80E9A54 }, + { MONSTER_WALREIN, MONSTER_SPHEAL, sUnknown_80E9A0C }, + { MONSTER_SWELLOW, MONSTER_TAILLOW, sUnknown_80E99C8 } +}; + +ALIGNED(4) static const u8 sUnknown_80E99C8[] = _( + "Please look for Taillow!\n" + "My baby is very timid{COMMA} so I{APOSTROPHE}m worried!"); + +ALIGNED(4) static const u8 sUnknown_80E9A0C[] = _( + "Save my baby Spheal! My baby is easy to\n" + "spot because she likes to roll!"); + +ALIGNED(4) static const u8 sUnknown_80E9A54[] = _( + "Please find my little Trapinch!\n" + "My baby is probably lying low!"); + +ALIGNED(4) static const u8 sUnknown_80E9A94[] = _( + "Please find my Aron!\n" + "He{APOSTROPHE}s my only child! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80E9ACC[] = _( + "My Wurmple went missing! Please look\n" + "for the cute spikes on his rear end!"); + +ALIGNED(4) static const u8 sUnknown_80E9B18[] = _( + "Please search for Larvitar!\n" + "He loves to eat dirt! I need help!"); + +ALIGNED(4) static const u8 sUnknown_80E9B58[] = _( + "My baby Magby is lost. I{APOSTROPHE}m worried sick.\n" + "She{APOSTROPHE}s a cheerful child who loves fire."); + +ALIGNED(4) static const u8 sUnknown_80E9BAC[] = _( + "My son can be wild with thunderbolts{COMMA}\n" + "but he{APOSTROPHE}s kindhearted. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80E9BFC[] = _( + "Please look for Phanpy!\n" + "My son has a distinctive long nose!"); + +ALIGNED(4) static const u8 sUnknown_80E9C38[] = _( + "Please find Teddiursa! My baby{APOSTROPHE}s head\n" + "has a cute crescent mark! Help!"); + +ALIGNED(4) static const u8 sUnknown_80E9C80[] = _( + "Please save my adorable Azurill!\n" + "Watch for a round and bouncy tail!"); + +ALIGNED(4) static const u8 sUnknown_80E9CC4[] = _( + "Help! Togepi{APOSTROPHE}s just a baby!\n" + "I{APOSTROPHE}m worried sick! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80E9D04[] = _( + "My baby Poliwag! He wandered off...\n" + "He only just learned how to walk! Help!"); + +ALIGNED(4) static const u8 sUnknown_80E9D50[] = _( + "Oddish disappeared from sight! She may be\n" + "buried somewhere! Someone{COMMA} please help!"); + +ALIGNED(4) static const u8 sUnknown_80E9DA4[] = _( + "Please rescue Zubat! He{APOSTROPHE}s so young he\n" + "can{APOSTROPHE}t even hang from cavern ceilings well!"); + +ALIGNED(4) static const u8 sUnknown_80E9DFC[] = _( + "Please find Igglybuff! Oh{COMMA} where did that\n" + "child roll off to?! Oh!"); + +ALIGNED(4) static const u8 sUnknown_80E9E40[] = _( + "Cleffa disappeared! Please let me know\n" + "if you find my child!"); + +ALIGNED(4) static const u8 sUnknown_80E9E80[] = _( + "Please rescue Pichu! He{APOSTROPHE}s a little cutie\n" + "who can{APOSTROPHE}t charge power well yet. Please!"); + +ALIGNED(4) static const u8 sUnknown_80E9ED8[] = _( + "Rattata is missing! My precious child!\n" + "Please{COMMA} won{APOSTROPHE}t someone help me?"); + +ALIGNED(4) static const u8 sUnknown_80E9F24[] = _( + "Oh{COMMA} my cute little Pidgey!\n" + "Please{COMMA} someone help!"); + +ALIGNED(4) static const u8 sUnknown_80E9F5C[] = _( + "Please rescue Weedle!\n" + "He{APOSTROPHE}s my son! Please!"); + +static const u8 sUnknown_80EA1A8[]; +static const u8 sUnknown_80EA1FC[]; +static const u8 sUnknown_80EA214[]; +static const u8 sUnknown_80EA26C[]; +static const u8 sUnknown_80EA2BC[]; +static const u8 sUnknown_80EA30C[]; +static const u8 sUnknown_80EA33C[]; +static const u8 sUnknown_80EA384[]; +static const u8 sUnknown_80EA398[]; +static const u8 sUnknown_80EA3DC[]; +static const u8 sUnknown_80EA41C[]; +static const u8 sUnknown_80EA45C[]; +static const u8 sUnknown_80EA4A0[]; +static const u8 sUnknown_80EA4E4[]; +static const u8 sUnknown_80EA51C[]; +static const u8 sUnknown_80EA534[]; +static const u8 sUnknown_80EA57C[]; +static const u8 sUnknown_80EA5C4[]; +static const u8 sUnknown_80EA614[]; +static const u8 sUnknown_80EA650[]; +static const u8 sUnknown_80EA698[]; +static const u8 sUnknown_80EA6E4[]; +static const u8 sUnknown_80EA730[]; +static const u8 sUnknown_80EA784[]; +static const u8 sUnknown_80EA7A8[]; +static const u8 sUnknown_80EA7FC[]; +static const u8 sUnknown_80EA84C[]; +static const u8 sUnknown_80EA880[]; +static const u8 sUnknown_80EA8D0[]; +static const u8 sUnknown_80EA914[]; +static const u8 sUnknown_80EA968[]; +static const u8 sUnknown_80EA9A4[]; +static const u8 sUnknown_80EA9F8[]; +static const u8 sUnknown_80EAA34[]; +static const u8 sUnknown_80EAA84[]; +static const u8 sUnknown_80EAAC8[]; +static const u8 sUnknown_80EAB10[]; +static const u8 sUnknown_80EAB68[]; +static const u8 sUnknown_80EABA8[]; +static const u8 sUnknown_80EABE8[]; +static const u8 sUnknown_80EAC38[]; +static const u8 sUnknown_80EAC88[]; +static const u8 sUnknown_80EACD4[]; +static const u8 sUnknown_80EAD20[]; +static const u8 sUnknown_80EAD50[]; +static const u8 sUnknown_80EAD94[]; +static const u8 sUnknown_80EADD0[]; +static const u8 sUnknown_80EADFC[]; +static const u8 sUnknown_80EAE44[]; + +// Also used in sub_803B628 and sub_803C45C +const unkStruct_80E9F8C gUnknown_80E9F8C[45] = { + // Save my friend + { MONSTER_EXEGGUTOR, MONSTER_DODRIO, sUnknown_80EAE44, sUnknown_80EADFC }, + { MONSTER_FEAROW, MONSTER_RHYDON, sUnknown_80EAE44, sUnknown_80EADD0 }, + { MONSTER_SHELLDER, MONSTER_CLAMPERL, sUnknown_80EAE44, sUnknown_80EAD94 }, + { MONSTER_MUK, MONSTER_SWALOT, sUnknown_80EAE44, sUnknown_80EAD50 }, + { MONSTER_MEOWTH, MONSTER_SKITTY, sUnknown_80EAE44, sUnknown_80EAD20 }, + { MONSTER_MAGIKARP, MONSTER_FEEBAS, sUnknown_80EAE44, sUnknown_80EACD4 }, + { MONSTER_WEEDLE, MONSTER_WURMPLE, sUnknown_80EAE44, sUnknown_80EAC88 }, + { MONSTER_CASCOON, MONSTER_SILCOON, sUnknown_80EAE44, sUnknown_80EAC38 }, + { MONSTER_TAILLOW, MONSTER_PIDGEY, sUnknown_80EAE44, sUnknown_80EABE8 }, + { MONSTER_VULPIX, MONSTER_NUMEL, sUnknown_80EAE44, sUnknown_80EABA8 }, + { MONSTER_IGGLYBUFF, MONSTER_CLEFFA, sUnknown_80EAE44, sUnknown_80EAB68 }, + { MONSTER_VENOMOTH, MONSTER_DUSTOX, sUnknown_80EAE44, sUnknown_80EAB10 }, + { MONSTER_VIGOROTH, MONSTER_PRIMEAPE, sUnknown_80EAE44, sUnknown_80EAAC8 }, + { MONSTER_POOCHYENA, MONSTER_GROWLITHE, sUnknown_80EAE44, sUnknown_80EAA84 }, + { MONSTER_BELLSPROUT, MONSTER_SHUCKLE, sUnknown_80EAE44, sUnknown_80EAA34 }, + { MONSTER_SEEL, MONSTER_SEALEO, sUnknown_80EAE44, sUnknown_80EA9F8 }, + { MONSTER_HYPNO, MONSTER_MR_MIME, sUnknown_80EAE44, sUnknown_80EA9A4 }, + { MONSTER_KRABBY, MONSTER_CORPHISH, sUnknown_80EAE44, sUnknown_80EA968 }, + { MONSTER_SNORLAX, MONSTER_SLAKING, sUnknown_80EAE44, sUnknown_80EA914 }, + { MONSTER_PINSIR, MONSTER_HERACROSS, sUnknown_80EAE44, sUnknown_80EA8D0 }, + { MONSTER_SNEASEL, MONSTER_ZANGOOSE, sUnknown_80EAE44, sUnknown_80EA880 }, + { MONSTER_AZURILL, MONSTER_TOGEPI, sUnknown_80EAE44, sUnknown_80EA84C }, + { MONSTER_DITTO, MONSTER_SUDOWOODO, sUnknown_80EAE44, sUnknown_80EA7FC }, + { MONSTER_TEDDIURSA, MONSTER_SPINDA, sUnknown_80EAE44, sUnknown_80EA7A8 }, + { MONSTER_SLOWPOKE, MONSTER_SLAKOTH, sUnknown_80EAE44, sUnknown_80EA784 }, + { MONSTER_NOCTOWL, MONSTER_MURKROW, sUnknown_80EAE44, sUnknown_80EA730 }, + { MONSTER_ROSELIA, MONSTER_BELLOSSOM, sUnknown_80EAE44, sUnknown_80EA6E4 }, + { MONSTER_DELIBIRD, MONSTER_PELIPPER, sUnknown_80EAE44, sUnknown_80EA698 }, + { MONSTER_RELICANTH, MONSTER_NINETALES, sUnknown_80EAE44, sUnknown_80EA650 }, + { MONSTER_HOPPIP, MONSTER_CHIMECHO, sUnknown_80EAE44, sUnknown_80EA614 }, + { MONSTER_MISDREAVUS, MONSTER_SHUPPET, sUnknown_80EAE44, sUnknown_80EA5C4 }, + { MONSTER_CORSOLA, MONSTER_LUVDISC, sUnknown_80EAE44, sUnknown_80EA57C }, + { MONSTER_TOGETIC, MONSTER_BLISSEY, sUnknown_80EAE44, sUnknown_80EA534 }, + // Save my love + { MONSTER_NIDORAN_M, MONSTER_NIDORAN_F, sUnknown_80EA51C, sUnknown_80EA4E4 }, + { MONSTER_NIDORINO, MONSTER_NIDORINA, sUnknown_80EA51C, sUnknown_80EA4A0 }, + { MONSTER_NIDOKING, MONSTER_NIDOQUEEN, sUnknown_80EA51C, sUnknown_80EA45C }, + { MONSTER_TAUROS, MONSTER_MILTANK, sUnknown_80EA51C, sUnknown_80EA41C }, + { MONSTER_VOLBEAT, MONSTER_ILLUMISE, sUnknown_80EA51C, sUnknown_80EA3DC }, + { MONSTER_MINUN, MONSTER_PLUSLE, sUnknown_80EA51C, sUnknown_80EA398 }, + // Rescue my rival + { MONSTER_ZANGOOSE, MONSTER_SEVIPER, sUnknown_80EA384, sUnknown_80EA33C }, + { MONSTER_HITMONLEE, MONSTER_HITMONCHAN, sUnknown_80EA384, sUnknown_80EA30C }, + { MONSTER_LUNATONE, MONSTER_SOLROCK, sUnknown_80EA384, sUnknown_80EA2BC }, + { MONSTER_OMANYTE, MONSTER_KABUTO, sUnknown_80EA384, sUnknown_80EA26C }, + { MONSTER_LILEEP, MONSTER_ANORITH, sUnknown_80EA384, sUnknown_80EA214 }, + // Help my brother + { MONSTER_PICHU, MONSTER_PICHU, sUnknown_80EA1FC, sUnknown_80EA1A8 } +}; + +ALIGNED(4) static const u8 sUnknown_80EA1A8[] = _( + "My little brother Pichu disappeared!\n" + "I{APOSTROPHE}m really worried! Someone{COMMA} please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA1FC[] = _("Please help my brother!"); + +ALIGNED(4) static const u8 sUnknown_80EA214[] = _( + "We{APOSTROPHE}ve been rivals with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} for\n" + "generations. It can{APOSTROPHE}t suddenly end like this!"); + +ALIGNED(4) static const u8 sUnknown_80EA26C[] = _( + "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been a rival since my\n" + "ancestors{APOSTROPHE} time. The rivalry can{APOSTROPHE}t end!"); + +ALIGNED(4) static const u8 sUnknown_80EA2BC[] = _( + "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} can{APOSTROPHE}t leave without settling\n" + "which one of us is better. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA30C[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\n" + "We owe each other a game!"); + +ALIGNED(4) static const u8 sUnknown_80EA33C[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We detest\n" + "each other{COMMA} but we need each other!"); + +ALIGNED(4) static const u8 sUnknown_80EA384[] = _("Rescue my rival!"); + +ALIGNED(4) static const u8 sUnknown_80EA398[] = _( + "I can{APOSTROPHE}t live without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "My heart is breaking! Please! Help!"); + +ALIGNED(4) static const u8 sUnknown_80EA3DC[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We{APOSTROPHE}re no good if we{APOSTROPHE}re not together!"); + +ALIGNED(4) static const u8 sUnknown_80EA41C[] = _( + "Please save my {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Now I\n" + "know what {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} means to me..."); + +ALIGNED(4) static const u8 sUnknown_80EA45C[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We\n" + "promised our futures together! Please!"); + +ALIGNED(4) static const u8 sUnknown_80EA4A0[] = _( + "Please rescue my precious {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We{APOSTROPHE}re in love! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA4E4[] = _( + "Please! Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We{APOSTROPHE}re madly in love!"); + +ALIGNED(4) static const u8 sUnknown_80EA51C[] = _("Please save my love!"); + +ALIGNED(4) static const u8 sUnknown_80EA534[] = _( + "We make each other happy--it{APOSTROPHE}s in our\n" + "nature. Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); + +ALIGNED(4) static const u8 sUnknown_80EA57C[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! The beach\n" + "feels empty without my usual friend..."); + +ALIGNED(4) static const u8 sUnknown_80EA5C4[] = _( + "I feel lonely without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} to pull\n" + "pranks and mess around with. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA614[] = _( + "Help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} please!\n" + "We often took strolls on the wind!"); + +ALIGNED(4) static const u8 sUnknown_80EA650[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We{APOSTROPHE}re both\n" + "old-timers who are longtime friends!"); + +ALIGNED(4) static const u8 sUnknown_80EA698[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}. We{APOSTROPHE}ve been in\n" + "the delivery business for many years!"); + +ALIGNED(4) static const u8 sUnknown_80EA6E4[] = _( + "I{APOSTROPHE}m sad without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{APOSTROPHE}s company.\n" + "We showed flowers to each other..."); + +ALIGNED(4) static const u8 sUnknown_80EA730[] = _( + "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} there{APOSTROPHE}s no one for\n" + "me to play with in the dark! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA784[] = _( + "...Help... Please...\n" + "Who was it?"); + +ALIGNED(4) static const u8 sUnknown_80EA7A8[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}. We{APOSTROPHE}re both alike\n" + "in being kind of vacant and unpredictable!"); + +ALIGNED(4) static const u8 sUnknown_80EA7FC[] = _( + "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} around{COMMA} there{APOSTROPHE}s no\n" + "one to heckle! Please break my boredom!"); + +ALIGNED(4) static const u8 sUnknown_80EA84C[] = _( + "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "My tiny and round best friend!"); + +ALIGNED(4) static const u8 sUnknown_80EA880[] = _( + "We promised to show each other how\n" + "sharp our claws could be... Someone{COMMA} help!"); + +ALIGNED(4) static const u8 sUnknown_80EA8D0[] = _( + "I lock horns with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} for fun.\n" + "I terribly miss doing that..."); + +ALIGNED(4) static const u8 sUnknown_80EA914[] = _( + "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! We{APOSTROPHE}re both lazy{COMMA}\n" + "so we{APOSTROPHE}re comfortable around each other!"); + +ALIGNED(4) static const u8 sUnknown_80EA968[] = _( + "I want to help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We both have a thing for pincers!"); + +ALIGNED(4) static const u8 sUnknown_80EA9A4[] = _( + "We promised each other to perform magic\n" + "and hypnosis shows together. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EA9F8[] = _( + "Someone save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}--my friend\n" + "and rival at ball juggling!"); + +ALIGNED(4) static const u8 sUnknown_80EAA34[] = _( + "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Our cries are\n" + "identical! We can tell each other anything!"); + +ALIGNED(4) static const u8 sUnknown_80EAA84[] = _( + "I can{APOSTROPHE}t play the biting game without my pal\n" + "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EAAC8[] = _( + "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is really noisy.\n" + "But it{APOSTROPHE}s lonely without the racket... Sob..."); + +ALIGNED(4) static const u8 sUnknown_80EAB10[] = _( + "Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} it{APOSTROPHE}s no fun playing\n" + "with toxic powders! Someone{COMMA} please help!"); + +ALIGNED(4) static const u8 sUnknown_80EAB68[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We{APOSTROPHE}ve been friends since we were eggs!"); + +ALIGNED(4) static const u8 sUnknown_80EABA8[] = _( + "Please help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}--a good\n" + "friend who shares my love of fire!"); + +ALIGNED(4) static const u8 sUnknown_80EABE8[] = _( + "{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} and I are of the same height.\n" + "We{APOSTROPHE}re lifelong friends! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EAC38[] = _( + "We identify with each other because we\n" + "both evolved from Wurmple. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EAC88[] = _( + "Help! I{APOSTROPHE}m friends with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}\n" + "because we both evolve fast! Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EACD4[] = _( + "Help! {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} isn{APOSTROPHE}t much now{COMMA} but\n" + "my friend is amazing after evolution!"); + +ALIGNED(4) static const u8 sUnknown_80EAD20[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We always play together!"); + +ALIGNED(4) static const u8 sUnknown_80EAD50[] = _( + "Please rescue {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}.\n" + "I can{APOSTROPHE}t stand to see a sludge buddy hurt!"); + +ALIGNED(4) static const u8 sUnknown_80EAD94[] = _( + "Please save my best friend {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!\n" + "We{APOSTROPHE}re both bivalves!"); + +ALIGNED(4) static const u8 sUnknown_80EADD0[] = _( + "Please save {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA}\n" + "my drilling buddy!"); + +ALIGNED(4) static const u8 sUnknown_80EADFC[] = _( + "This precious friend can chat separately\n" + "with three heads. Please help!"); + +ALIGNED(4) static const u8 sUnknown_80EAE44[] = _("Please save my friend!"); + +static const u8 EscortMe_Text[]; +static const u8 TakeMeWith_Text[]; +static const u8 WantToSee_Text[]; +static const u8 TakeMe_Text[]; + +// Escort Mission Text +static const u8 * const gUnknown_80EAE5C[4] = { + TakeMe_Text, + WantToSee_Text, + TakeMeWith_Text, + EscortMe_Text +}; + +ALIGNED(4) static const u8 EscortMe_Text[] = _("Escort me!"); +ALIGNED(4) static const u8 TakeMeWith_Text[] = _("Please take me with you!"); +ALIGNED(4) static const u8 WantToSee_Text[] = _("I want to see {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 TakeMe_Text[] = _("Take me!"); + +static const u8 CloseFriends_80EAF08[]; +static const u8 Apologize_80EAF2C[]; +static const u8 MustMeet_80EAF4C[]; +static const u8 HaveToMeet_80EAF70[]; +static const u8 HaveToGo_80EAF94[]; +static const u8 LongTime_80EAFA4[]; +static const u8 SickWorry_80EAFD4[]; +static const u8 FaintedInside_80EAFF0[]; +static const u8 HasntReturned_80EB014[]; +static const u8 WantToHelp_80EB030[]; +static const u8 InTrouble_80EB048[]; +static const u8 WaitingForever_80EB06C[]; +static const u8 WaitingInDungeon_80EB090[]; +static const u8 TooWeak_80EB0B4[]; +static const u8 OwnPower_80EB0DC[]; +static const u8 GoMyself_80EB0FC[]; +static const u8 WorriedAbout_80EB118[]; +static const u8 WantMeet_80EB138[]; +static const u8 PromisedMeet_80EB158[]; +static const u8 WaitingForMe_80EB17C[]; + +static const u8 * const gUnknown_80EAEB8[20] = { + WaitingForMe_80EB17C, + PromisedMeet_80EB158, + WantMeet_80EB138, + WorriedAbout_80EB118, + GoMyself_80EB0FC, + OwnPower_80EB0DC, + TooWeak_80EB0B4, + WaitingInDungeon_80EB090, + WaitingForever_80EB06C, + InTrouble_80EB048, + WantToHelp_80EB030, + HasntReturned_80EB014, + FaintedInside_80EAFF0, + SickWorry_80EAFD4, + LongTime_80EAFA4, + HaveToGo_80EAF94, + HaveToMeet_80EAF70, + MustMeet_80EAF4C, + Apologize_80EAF2C, + CloseFriends_80EAF08 +}; + +ALIGNED(4) static const u8 CloseFriends_80EAF08[] = _("I{APOSTROPHE}m close friends with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 Apologize_80EAF2C[] = _("I want to apologize to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 MustMeet_80EAF4C[] = _("I don{APOSTROPHE}t care how--we must meet!"); +ALIGNED(4) static const u8 HaveToMeet_80EAF70[] = _("We have to meet--whatever it takes!"); +ALIGNED(4) static const u8 HaveToGo_80EAF94[] = _("I have to go!"); +ALIGNED(4) static const u8 LongTime_80EAFA4[] = _("We haven{APOSTROPHE}t seen each other in a long time."); +ALIGNED(4) static const u8 SickWorry_80EAFD4[] = _("I{APOSTROPHE}m sick with worry..."); +ALIGNED(4) static const u8 FaintedInside_80EAFF0[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} may have fainted inside..."); +ALIGNED(4) static const u8 HasntReturned_80EB014[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} hasn{APOSTROPHE}t returned!"); +ALIGNED(4) static const u8 WantToHelp_80EB030[] = _("I want to help {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 InTrouble_80EB048[] = _("Hurry{COMMA} {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is in trouble..."); +ALIGNED(4) static const u8 WaitingForever_80EB06C[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} has been waiting forever..."); +ALIGNED(4) static const u8 WaitingInDungeon_80EB090[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is waiting in the dungeon."); +ALIGNED(4) static const u8 TooWeak_80EB0B4[] = _("I{APOSTROPHE}m too weak. It{APOSTROPHE}s not possible."); +ALIGNED(4) static const u8 OwnPower_80EB0DC[] = _("I can{APOSTROPHE}t go on my own power..."); +ALIGNED(4) static const u8 GoMyself_80EB0FC[] = _("I can{APOSTROPHE}t go by myself..."); +ALIGNED(4) static const u8 WorriedAbout_80EB118[] = _("I{APOSTROPHE}m worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}..."); +ALIGNED(4) static const u8 WantMeet_80EB138[] = _("I want to meet with {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 PromisedMeet_80EB158[] = _("We promised to meet in the dungeon!"); +ALIGNED(4) static const u8 WaitingForMe_80EB17C[] = _("{COLOR_1 YELLOW}%s{END_COLOR_TEXT_1} is waiting for me!"); + +static const u8 SomeonePleaseEscort[]; +static const u8 PleaseEscortMe[]; +static const u8 PleaseTakeMeThere[]; +static const u8 PleaseTakeMeToSee[]; + +static const u8 * const gUnknown_80EB198[4] = { + PleaseTakeMeToSee, + PleaseTakeMeThere, + PleaseEscortMe, + SomeonePleaseEscort +}; + +ALIGNED(4) static const u8 SomeonePleaseEscort[] = _("Someone{COMMA} please escort me!"); +ALIGNED(4) static const u8 PleaseEscortMe[] = _("Please escort me there!"); +ALIGNED(4) static const u8 PleaseTakeMeThere[] = _("Please take me there with you!"); +ALIGNED(4) static const u8 PleaseTakeMeToSee[] = _("Please take me to see {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); + +static const u8 Without_80EB238[]; +static const u8 Worried_80EB250[]; +static const u8 WantMeet_80EB274[]; +static const u8 HelpMeet_80EB294[]; +static const u8 Escort_80EB2AC[]; +static const u8 TakeMeet_80EB2CC[]; + +static const u8 * const gUnknown_80EB220[6] = { + TakeMeet_80EB2CC, + Escort_80EB2AC, + HelpMeet_80EB294, + WantMeet_80EB274, + Worried_80EB250, + Without_80EB238 +}; + +ALIGNED(4) static const u8 Without_80EB238[] = _("Without {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}{COMMA} I..."); +ALIGNED(4) static const u8 Worried_80EB250[] = _("I{APOSTROPHE}m so worried about {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}..."); +ALIGNED(4) static const u8 WantMeet_80EB274[] = _("I really want to meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 HelpMeet_80EB294[] = _("Help me meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 Escort_80EB2AC[] = _("Please escort me to my {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); +ALIGNED(4) static const u8 TakeMeet_80EB2CC[] = _("Please! Take me to meet {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}!"); + +static const u8 Lonely_80EB308[]; +static const u8 NoGood_80EB334[]; +static const u8 MeansEverything_80EB35C[]; +static const u8 WePromised_80EB37C[]; +static const u8 WeBelong_80EB3A4[]; +static const u8 WeInLove_80EB3CC[]; + +static const u8 * const gUnknown_80EB2F0[6] = { + WeInLove_80EB3CC, + WeBelong_80EB3A4, + WePromised_80EB37C, + MeansEverything_80EB35C, + NoGood_80EB334, + Lonely_80EB308 +}; + +ALIGNED(4) static const u8 Lonely_80EB308[] = _("I{APOSTROPHE}m very lonely! Please take me with you!"); +ALIGNED(4) static const u8 NoGood_80EB334[] = _("It{APOSTROPHE}s no good if we{APOSTROPHE}re not together!"); +ALIGNED(4) static const u8 MeansEverything_80EB35C[] = _("This means everything to me!"); +ALIGNED(4) static const u8 WePromised_80EB37C[] = _("We{APOSTROPHE}ve promised our futures together."); +ALIGNED(4) static const u8 WeBelong_80EB3A4[] = _("We belong together! Please escort me!"); +ALIGNED(4) static const u8 WeInLove_80EB3CC[] = _("We{APOSTROPHE}re in love! Please{COMMA} take me there!"); + +static const u8 sUnknown_80EB450[]; +static const u8 sUnknown_80EB470[]; +static const u8 sUnknown_80EB494[]; +static const u8 sUnknown_80EB4AC[]; +static const u8 sUnknown_80EB4C0[]; +static const u8 sUnknown_80EB4E0[]; +static const u8 sUnknown_80EB500[]; +static const u8 sUnknown_80EB524[]; +static const u8 sUnknown_80EB54C[]; +static const u8 sUnknown_80EB568[]; +static const u8 sUnknown_80EB590[]; +static const u8 sUnknown_80EB5B4[]; +static const u8 sUnknown_80EB5D4[]; +static const u8 sUnknown_80EB5F8[]; +static const u8 sUnknown_80EB618[]; +static const u8 sUnknown_80EB638[]; +static const u8 sUnknown_80EB654[]; +static const u8 sUnknown_80EB67C[]; +static const u8 sUnknown_80EB6A0[]; +static const u8 sUnknown_80EB6C0[]; +static const u8 sUnknown_80EB6E4[]; +static const u8 sUnknown_80EB708[]; + +// Item Delivery Mission Text +static const u8 * const gUnknown_80EB3F8[22] = { + sUnknown_80EB708, + sUnknown_80EB6E4, + sUnknown_80EB6C0, + sUnknown_80EB6A0, + sUnknown_80EB67C, + sUnknown_80EB654, + sUnknown_80EB638, + sUnknown_80EB618, + sUnknown_80EB5F8, + sUnknown_80EB5D4, + sUnknown_80EB5B4, + sUnknown_80EB590, + sUnknown_80EB568, + sUnknown_80EB54C, + sUnknown_80EB524, + sUnknown_80EB500, + sUnknown_80EB4E0, + sUnknown_80EB4C0, + sUnknown_80EB4AC, + sUnknown_80EB494, + sUnknown_80EB470, + sUnknown_80EB450 +}; + +ALIGNED(4) static const u8 sUnknown_80EB450[] = _("Is it true about the {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}?"); +ALIGNED(4) static const u8 sUnknown_80EB470[] = _("The item {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} is the in thing!"); +ALIGNED(4) static const u8 sUnknown_80EB494[] = _("Wanted: my own {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80EB4AC[] = _("I lost my {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80EB4C0[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted for nostalgia."); +ALIGNED(4) static const u8 sUnknown_80EB4E0[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted to test effects."); +ALIGNED(4) static const u8 sUnknown_80EB500[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}{APOSTROPHE}s texture is comforting."); +ALIGNED(4) static const u8 sUnknown_80EB524[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--it{APOSTROPHE}s my mom{APOSTROPHE}s favorite."); +ALIGNED(4) static const u8 sUnknown_80EB54C[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} makes me strong."); +ALIGNED(4) static const u8 sUnknown_80EB568[] = _("I can{APOSTROPHE}t sleep without it: {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80EB590[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I get scared without it!"); +ALIGNED(4) static const u8 sUnknown_80EB5B4[] = _("Hard-to-find {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} sought."); +ALIGNED(4) static const u8 sUnknown_80EB5D4[] = _("I can{APOSTROPHE}t find one more {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sUnknown_80EB5F8[] = _("Help this {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} collector!"); +ALIGNED(4) static const u8 sUnknown_80EB618[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}! Seeking in quantity!"); +ALIGNED(4) static const u8 sUnknown_80EB638[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted as a charm."); +ALIGNED(4) static const u8 sUnknown_80EB654[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I can{APOSTROPHE}t leave without it."); +ALIGNED(4) static const u8 sUnknown_80EB67C[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--I{APOSTROPHE}d love to utilize one!"); +ALIGNED(4) static const u8 sUnknown_80EB6A0[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted for exploration."); +ALIGNED(4) static const u8 sUnknown_80EB6C0[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted after long search."); +ALIGNED(4) static const u8 sUnknown_80EB6E4[] = _("{COLOR_1 GREEN}%s{END_COLOR_TEXT_1}--it{APOSTROPHE}s convenient to have."); +ALIGNED(4) static const u8 sUnknown_80EB708[] = _("Having one {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} is reassuring."); + +static const u8 sUnknown_80EB784[]; +static const u8 sUnknown_80EB7A8[]; +static const u8 sUnknown_80EB7D8[]; +static const u8 sUnknown_80EB800[]; +static const u8 sUnknown_80EB818[]; +static const u8 sUnknown_80EB82C[]; +static const u8 sUnknown_80EB850[]; +static const u8 sUnknown_80EB86C[]; +static const u8 sUnknown_80EB890[]; +static const u8 sUnknown_80EB8AC[]; +static const u8 sUnknown_80EB8D0[]; +static const u8 sUnknown_80EB8E8[]; +static const u8 sUnknown_80EB90C[]; +static const u8 sUnknown_80EB930[]; +static const u8 sUnknown_80EB95C[]; +static const u8 sUnknown_80EB97C[]; +static const u8 sUnknown_80EB9A0[]; +static const u8 sUnknown_80EB9BC[]; +static const u8 sUnknown_80EB9D0[]; +static const u8 sUnknown_80EB9E8[]; +static const u8 sUnknown_80EBA00[]; + +static const u8 * const gUnknown_80EB72C[22] = { + sUnknown_80EBA00, + sUnknown_80EB9E8, + sUnknown_80EB9D0, + sUnknown_80EB9BC, + sUnknown_80EB9A0, + sUnknown_80EB97C, + sUnknown_80EB95C, + sUnknown_80EB930, + sUnknown_80EB90C, + sUnknown_80EB8E8, + sUnknown_80EB8D0, + sUnknown_80EB8AC, + sUnknown_80EB890, + sUnknown_80EB86C, + sUnknown_80EB850, + sUnknown_80EB9A0, + sUnknown_80EB82C, + sUnknown_80EB818, + sUnknown_80EB800, + sUnknown_80EB7D8, + sUnknown_80EB7A8, + sUnknown_80EB784 +}; + +ALIGNED(4) static const u8 sUnknown_80EB784[] = _("Please contact me if you find it!"); +ALIGNED(4) static const u8 sUnknown_80EB7A8[] = _("Please help! I{APOSTROPHE}ll make it worth your time!"); +ALIGNED(4) static const u8 sUnknown_80EB7D8[] = _("Please help! I{APOSTROPHE}m offering a reward!"); +ALIGNED(4) static const u8 sUnknown_80EB800[] = _("Please! Please help me!"); +ALIGNED(4) static const u8 sUnknown_80EB818[] = _("Please help me out!"); +ALIGNED(4) static const u8 sUnknown_80EB82C[] = _("Please! I need some cooperation!"); +ALIGNED(4) static const u8 sUnknown_80EB850[] = _("Please share a little bit!"); +ALIGNED(4) static const u8 sUnknown_80EB86C[] = _("Please help! You{APOSTROPHE}re my only hope!"); +ALIGNED(4) static const u8 sUnknown_80EB890[] = _("Please! I need your help!"); +ALIGNED(4) static const u8 sUnknown_80EB8AC[] = _("Please help! I{APOSTROPHE}m counting on you!"); +ALIGNED(4) static const u8 sUnknown_80EB8D0[] = _("Please search for it!"); +ALIGNED(4) static const u8 sUnknown_80EB8E8[] = _("Please let me know if you find one!"); +ALIGNED(4) static const u8 sUnknown_80EB90C[] = _("I{APOSTROPHE}m looking forward to your help!"); +ALIGNED(4) static const u8 sUnknown_80EB930[] = _("Please! I{APOSTROPHE}m offering a generous reward!"); +ALIGNED(4) static const u8 sUnknown_80EB95C[] = _("Please help! Reward offered!"); +ALIGNED(4) static const u8 sUnknown_80EB97C[] = _("Please! I must have one delivered!"); +ALIGNED(4) static const u8 sUnknown_80EB9A0[] = _("Please share one with me!"); +ALIGNED(4) static const u8 sUnknown_80EB9BC[] = _("Please give me one!"); +ALIGNED(4) static const u8 sUnknown_80EB9D0[] = _("Please find one for me!"); +ALIGNED(4) static const u8 sUnknown_80EB9E8[] = _("Please trade me one!"); +ALIGNED(4) static const u8 sUnknown_80EBA00[] = _("Please! May I have one?"); + +static const u8 sNewFriendAreasText[]; +static const u8 sNewFriendAreasHeadline[]; +static const u8 sLucarioRankText[]; +static const u8 sLucarioRankHeadline[]; +static const u8 sBuriedRelicText[]; +static const u8 sBuriedRelicHeadline[]; +static const u8 sNewsText2[]; +static const u8 sNewsHeadline2[]; +static const u8 sNewsText1[]; +static const u8 sNewsHeadline1[]; +static const u8 sPelipperText[]; +static const u8 sPelipperHeadline[]; +static const u8 sLinkedProText2[]; +static const u8 sLinkedProHeadline2[]; +static const u8 sLinkedProText1[]; +static const u8 sLinkedProHeadline1[]; +static const u8 sSlakothText[]; +static const u8 sSlakothHeadline[]; +static const u8 sPitfallText[]; +static const u8 sPitfallHeadline[]; +static const u8 sSeaRescueText[]; +static const u8 sSeaRescueHeadline[]; +static const u8 sVileplumeText[]; +static const u8 sVileplumeHeadline[]; +static const u8 sRawstText[]; +static const u8 sRawstHeadline[]; +static const u8 sClubText[]; +static const u8 sClubHeadline[]; +static const u8 sChanseyText[]; +static const u8 sChanseyHeadline[]; +static const u8 sKabutoText[]; +static const u8 sKabutoHeadline[]; +static const u8 sSmeargleText[]; +static const u8 sSmeargleHeadline[]; +static const u8 sCastformText[]; +static const u8 sCastformHeadline[]; +static const u8 sGasText[]; +static const u8 sGasHeadline[]; +static const u8 sKeyItemText2[]; +static const u8 sKeyItemHeadline2[]; +static const u8 sKeyItemText1[]; +static const u8 sKeyItemHeadline1[]; +static const u8 sSwitchText[]; +static const u8 sSwitchHeadline[]; +static const u8 sKecleonText[]; +static const u8 sKecleonHeadline[]; +static const u8 sWeatherText2[]; +static const u8 sWeatherHeadline2[]; +static const u8 sWobbuffetText[]; +static const u8 sWobbuffetHeadline[]; +static const u8 sPechaText[]; +static const u8 sPechaHeadline[]; +static const u8 sWeatherText1[]; +static const u8 sWeatherHeadline1[]; +static const u8 sAzurillText[]; +static const u8 sAzurillHeadline[]; +static const u8 sKeyText[]; +static const u8 sKeyHeadline[]; +static const u8 sSweetText[]; +static const u8 sSweetHeadline[]; +static const u8 sRangeText[]; +static const u8 sRangeHeadline[]; +static const u8 sIQText[]; +static const u8 sIQHeadline[]; +static const u8 sTrapTileText[]; +static const u8 sTrapTileHeadline[]; +static const u8 sMakuhitaText[]; +static const u8 sMakuhitaHeadline[]; +static const u8 sMachineText[]; +static const u8 sMachineHeadline[]; +static const u8 sUltimateText[]; +static const u8 sUltimateHeadline[]; +static const u8 sGummiText[]; +static const u8 sGummiHeadline[]; +static const u8 sMoveTipsText[]; +static const u8 sMoveTipsHeadline[]; +static const u8 sAddMembersText[]; +static const u8 sAddMembersHeadline[]; +static const u8 sTeamMoveText[]; +static const u8 sTeamMoveHeadline[]; +static const u8 sWondersText[]; +static const u8 sWondersHeadline[]; +static const u8 sPollText[]; +static const u8 sPollHeadline[]; +static const u8 sLinkedEntryText3[]; +static const u8 sLinkedEntryHeadline3[]; +static const u8 sLinkedEntryText2[]; +static const u8 sLinkedEntryHeadline2[]; +static const u8 sLinkedEntryText1[]; +static const u8 sLinkedEntryHeadline1[]; +static const u8 sTypeText[]; +static const u8 sTypeHeadline[]; +static const u8 sDungeonText[]; +static const u8 sDungeonHeadline[]; +static const u8 sWonderText[]; +static const u8 sWonderHeadline[]; +static const u8 sMoveText[]; +static const u8 sMoveHeadline[]; +static const u8 sOptionsText[]; +static const u8 sOptionsHeadline[]; +static const u8 sDisasterText[]; +static const u8 sDisasterHeadline[]; +static const u8 sSeedText[]; +static const u8 sSeedHeadline[]; +static const u8 sHungerText[]; +static const u8 sHungerHeadline[]; +static const u8 sJobText[]; +static const u8 sJobHeadline[]; +static const u8 sBasicsText[]; +static const u8 sBasicsHeadline[]; +static const u8 sWelcomeText[]; +static const u8 sWelcomeHeadline[]; + +static const PokemonMail sPokemonMail[NUM_POKEMON_MAIL] = +{ + [0] = { sWelcomeHeadline, sWelcomeText }, + [1] = { sBasicsHeadline, sBasicsText }, + [2] = { sJobHeadline, sJobText }, + [3] = { sHungerHeadline, sHungerText }, + [4] = { sSeedHeadline, sSeedText }, + [5] = { sDisasterHeadline, sDisasterText }, + [6] = { sOptionsHeadline, sOptionsText }, + [7] = { sMoveHeadline, sMoveText }, + [8] = { sWonderHeadline, sWonderText }, + [9] = { sDungeonHeadline, sDungeonText }, + [10] = { sTypeHeadline, sTypeText }, + [11] = { sLinkedEntryHeadline1, sLinkedEntryText1 }, + [12] = { sLinkedEntryHeadline2, sLinkedEntryText2 }, + [13] = { sLinkedEntryHeadline3, sLinkedEntryText3 }, + [14] = { sPollHeadline, sPollText }, + [15] = { sWondersHeadline, sWondersText }, + [16] = { sTeamMoveHeadline, sTeamMoveText }, + [17] = { sAddMembersHeadline, sAddMembersText }, + [18] = { sMoveTipsHeadline, sMoveTipsText }, + [19] = { sGummiHeadline, sGummiText }, + [20] = { sUltimateHeadline, sUltimateText }, + [21] = { sMachineHeadline, sMachineText }, + [22] = { sMakuhitaHeadline, sMakuhitaText }, + [23] = { sTrapTileHeadline, sTrapTileText }, + [24] = { sIQHeadline, sIQText }, + [25] = { sRangeHeadline, sRangeText }, + [26] = { sSweetHeadline, sSweetText }, + [27] = { sKeyHeadline, sKeyText }, + [28] = { sAzurillHeadline, sAzurillText }, + [29] = { sWeatherHeadline1, sWeatherText1 }, + [30] = { sPechaHeadline, sPechaText }, + [31] = { sWobbuffetHeadline, sWobbuffetText }, + [32] = { sWeatherHeadline2, sWeatherText2 }, + [33] = { sKecleonHeadline, sKecleonText }, + [34] = { sSwitchHeadline, sSwitchText }, + [35] = { sKeyItemHeadline1, sKeyItemText1 }, + [36] = { sKeyItemHeadline2, sKeyItemText2 }, + [37] = { sGasHeadline, sGasText }, + [38] = { sCastformHeadline, sCastformText }, + [39] = { sSmeargleHeadline, sSmeargleText }, + [40] = { sKabutoHeadline, sKabutoText }, + [41] = { sChanseyHeadline, sChanseyText }, + [42] = { sClubHeadline, sClubText }, + [43] = { sRawstHeadline, sRawstText }, + [44] = { sVileplumeHeadline, sVileplumeText }, + [45] = { sSeaRescueHeadline, sSeaRescueText }, + [46] = { sPitfallHeadline, sPitfallText }, + [47] = { sSlakothHeadline, sSlakothText }, + [48] = { sLinkedProHeadline1, sLinkedProText1 }, + [49] = { sLinkedProHeadline2, sLinkedProText2 }, + [50] = { sPelipperHeadline, sPelipperText }, + [51] = { sNewsHeadline1, sNewsText1 }, + [52] = { sNewsHeadline2, sNewsText2 }, + [53] = { sBuriedRelicHeadline, sBuriedRelicText }, + [54] = { sLucarioRankHeadline, sLucarioRankText }, + [55] = { sNewFriendAreasHeadline, sNewFriendAreasText } +}; + +ALIGNED(4) static const u8 sNewFriendAreasText[] = _( "The Wigglytuff Club has added new Friend\n" "Areas for sale!\n" "Rescue Teams are urged to check with\n" @@ -350,9 +1314,9 @@ ALIGNED(4) const u8 gMail_NewFriendAreasText[] = _( "recruit Pokémon that wouldn{APOSTROPHE}t join your\n" "rescue team before!"); -ALIGNED(4) const u8 gMail_NewFriendAreasHeadline[] = "New Friend Areas!"; +ALIGNED(4) static const u8 sNewFriendAreasHeadline[] = _("New Friend Areas!"); -ALIGNED(4) const u8 gMail_LucarioRankText[] = _( +ALIGNED(4) static const u8 sLucarioRankText[] = _( "Congratulations! Your team has attained\n" "the Lucario Rank--the top rank among\n" "rescue teams! In commemoration of your\n" @@ -362,10 +1326,9 @@ ALIGNED(4) const u8 gMail_LucarioRankText[] = _( "Keep working for world peace!\n" " - Pokémon Rescue Organization -"); +ALIGNED(4) static const u8 sLucarioRankHeadline[] = _("Congratulations - Lucario Rank!"); -ALIGNED(4) const u8 gMail_LucarioRankHeadline[] = "Congratulations - Lucario Rank!"; - -ALIGNED(4) const u8 gMail_BuriedRelicText[] = _( +ALIGNED(4) static const u8 sBuriedRelicText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Mystery Ruin Found Underground!{END_COLOR_TEXT_1}\n" "Its site had been hidden by the crater of a\n" "meteor strike in ancient times. The Buried\n" @@ -375,12 +1338,9 @@ ALIGNED(4) const u8 gMail_BuriedRelicText[] = _( "that lived in ancient times. The Buried\n" "Relic is the main topic in Pokémon Square."); +ALIGNED(4) static const u8 sBuriedRelicHeadline[] = _("Buried Relic Discovered!"); -ALIGNED(4) const u8 gMail_BuriedRelicHeadline[] = - "Buried Relic Discovered!"; - - -ALIGNED(4) const u8 gMail_NewsText2[] = _( +ALIGNED(4) static const u8 sNewsText2[] = _( "{CENTER_ALIGN}{COLOR_1 CYAN}{ARG_POKEMON_0} Innocent! Part 2{END_COLOR_TEXT_1}\n" "{COLOR_1 GREEN}Quote from Charizard on the scene:{END_COLOR_TEXT_1}\n" "{QUOTE_START}That{APOSTROPHE}s what I thought right from\n" @@ -390,12 +1350,9 @@ ALIGNED(4) const u8 gMail_NewsText2[] = _( "He{APOSTROPHE}s not getting away with this!\n" "He{APOSTROPHE}d better be ready for it!{QUOTE_END}"); +ALIGNED(4) static const u8 sNewsHeadline2[] = _("Pokémon News Extra 2"); -ALIGNED(4) const u8 gMail_NewsHeadline2[] = _( - "Pokémon News Extra 2"); - - -ALIGNED(4) const u8 gMail_NewsText1[] = _( +ALIGNED(4) static const u8 sNewsText1[] = _( "{CENTER_ALIGN}{COLOR_1 CYAN}{ARG_POKEMON_0} Innocent! Part 1{END_COLOR_TEXT_1}\n" "{ARG_POKEMON_1} met with Ninetales on {COLOR_1 RED}Mt. Freeze{END_COLOR_TEXT_1}.\n" "Ninetales testified that {ARG_POKEMON_0} was\n" @@ -405,12 +1362,9 @@ ALIGNED(4) const u8 gMail_NewsText1[] = _( "{COLOR_1 GREEN}The clearly dismayed Gengar{APOSTROPHE}s quote:{END_COLOR_TEXT_1}\n" "{QUOTE_START}Ugegegegegegegegegegegeh!{QUOTE_END}"); +ALIGNED(4) static const u8 sNewsHeadline1[] = _("Pokémon News Extra 1"); -ALIGNED(4) const u8 gMail_NewsHeadline1[] = _( - "Pokémon News Extra 1"); - - -ALIGNED(4) const u8 gMail_PelipperText[] = _( +ALIGNED(4) static const u8 sPelipperText[] = _( "Yo! Amigo! It{APOSTROPHE}s awesome you{APOSTROPHE}re back!\n" "I{APOSTROPHE}ll be delivering mail to you again!\n" "I{APOSTROPHE}ve been looking forward to this with\n" @@ -419,12 +1373,9 @@ ALIGNED(4) const u8 gMail_PelipperText[] = _( "be ready{COMMA} amigo!\n\n" " - The wandering postal carrier{COMMA} Pelipper -"); +ALIGNED(4) static const u8 sPelipperHeadline[] =_("A Letter from Pelipper"); -ALIGNED(4) const u8 gMail_PelipperHeadline[] = - "A Letter from Pelipper"; - - -ALIGNED(4) const u8 gMail_LinkedProText2[] = _( +ALIGNED(4) static const u8 sLinkedProText2[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Try These Linked Moves to KO Foes!{END_COLOR_TEXT_1}\n\n" "Psyduck\n" "{COLOR_1 GREEN}Confusion{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Disable{END_COLOR_TEXT_1}\n" @@ -437,12 +1388,9 @@ ALIGNED(4) const u8 gMail_LinkedProText2[] = _( "Skitty\n" "{COLOR_1 GREEN}Tail Whip{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Doubleslap{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sLinkedProHeadline2[] =_("#50 Linked Moves Pro Level 2"); -ALIGNED(4) const u8 gMail_LinkedProHeadline2[] = - "#50 Linked Moves Pro Level 2"; - - -ALIGNED(4) const u8 gMail_LinkedProText1[] = _( +ALIGNED(4) static const u8 sLinkedProText1[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}These Linked Move Combinations{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Can Be Devastating!{END_COLOR_TEXT_1}\n\n" "Bulbasaur\n" @@ -456,12 +1404,9 @@ ALIGNED(4) const u8 gMail_LinkedProText1[] = _( "Cubone\n" "{COLOR_1 GREEN}Tail Whip{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Bonemerang{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sLinkedProHeadline1[] = _("#49 Linked Moves Pro Level 1"); -ALIGNED(4) const u8 gMail_LinkedProHeadline1[] = - "#49 Linked Moves Pro Level 1"; - - -ALIGNED(4) const u8 gMail_SlakothText[] = _( +ALIGNED(4) static const u8 sSlakothText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Relief for Delicate Souls Who Can{APOSTROPHE}t{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Sleep with Different Pillows!{END_COLOR_TEXT_1}\n" "Insomniacs rejoiced over the announcement\n" @@ -471,12 +1416,9 @@ ALIGNED(4) const u8 gMail_SlakothText[] = _( "inquiries from all over. However{COMMA}\n" "production is said to be not yet ready."); +ALIGNED(4) static const u8 sSlakothHeadline[] = _("#48 Slakoth Pillows for Insomnia!"); -ALIGNED(4) const u8 gMail_SlakothHeadline[] = - "#48 Slakoth Pillows for Insomnia!"; - - -ALIGNED(4) const u8 gMail_PitfallText[] = _( +ALIGNED(4) static const u8 sPitfallText[] = _( "As a result of the natural disasters{COMMA}\n" "there have been many reports of Pitfall\n" "Traps appearing in dungeons.\n" @@ -486,12 +1428,9 @@ ALIGNED(4) const u8 gMail_PitfallText[] = _( "foraging Swinub. Some even turn out to\n" "be hot springs that erupt occasionally."); +ALIGNED(4) static const u8 sPitfallHeadline[] = _("#47 Beware of Pitfalls"); -ALIGNED(4) const u8 gMail_PitfallHeadline[] = - "#47 Beware of Pitfalls"; - - -ALIGNED(4) const u8 gMail_SeaRescueText[] = _( +ALIGNED(4) static const u8 sSeaRescueText[] = _( "A high-seas rescue in the {COLOR_1 RED}Stormy Sea{END_COLOR_TEXT_1} by\n" "{COLOR_1 CYAN}Team Sea Dragons{END_COLOR_TEXT_1} ended yesterday with\n" "the successful recovery of Tentacool.\n" @@ -501,12 +1440,9 @@ ALIGNED(4) const u8 gMail_SeaRescueText[] = _( "I{APOSTROPHE}d been washed out to sea.{QUOTE_END}\n" "The {COLOR_1 RED}Stormy Sea{END_COLOR_TEXT_1} is unforgiving!"); +ALIGNED(4) static const u8 sSeaRescueHeadline[] = _("#46 Sea Rescue a Success!"); -ALIGNED(4) const u8 gMail_SeaRescueHeadline[] = - "#46 Sea Rescue a Success!"; - - -ALIGNED(4) const u8 gMail_VileplumeText[] = _( +ALIGNED(4) static const u8 sVileplumeText[] = _( "Vileplume are widely recognized for \n" "their massive flower. However{COMMA} few dare\n" "to approach Vileplume because they\n" @@ -515,12 +1451,9 @@ ALIGNED(4) const u8 gMail_VileplumeText[] = _( "very easily because the flower{APOSTROPHE}s weight\n" "makes their head heavy."); +ALIGNED(4) static const u8 sVileplumeHeadline[] = _("#45 Vileplume{APOSTROPHE}s Weighty Problem"); -ALIGNED(4) const u8 gMail_VileplumeHeadline[] = _( - "#45 Vileplume{APOSTROPHE}s Weighty Problem"); - - -ALIGNED(4) const u8 gMail_RawstText[] = _( +ALIGNED(4) static const u8 sRawstText[] = _( "Research has revealed that {COLOR_1 GREEN}Rawst Berries{END_COLOR_TEXT_1}\n" "found in dungeons are usually unripened\n" "and colored green. When ripe{COMMA} they turn a\n" @@ -529,12 +1462,9 @@ ALIGNED(4) const u8 gMail_RawstText[] = _( "turned bitter. It is known to heal all\n" "burns."); +ALIGNED(4) static const u8 sRawstHeadline[] = _("#44 Rawst Berry{APOSTROPHE}s Effect"); -ALIGNED(4) const u8 gMail_RawstHeadline[] = _( - "#44 Rawst Berry{APOSTROPHE}s Effect"); - - -ALIGNED(4) const u8 gMail_ClubText[] = _( +ALIGNED(4) static const u8 sClubText[] = _( "We proudly announce the foundation of\n" "the Red & Blue Fan Club{COMMA} an organization\n" "for supporting Pokémon rescue teams.\n" @@ -543,12 +1473,9 @@ ALIGNED(4) const u8 gMail_ClubText[] = _( "behind our hard-working rescue heroes?\n\n" " - Plusle and Minun -"); +ALIGNED(4) static const u8 sClubHeadline[] = _("#43 Fan Club Seeks Members!"); -ALIGNED(4) const u8 gMail_ClubHeadline[] = - "#43 Fan Club Seeks Members!"; - - -ALIGNED(4) const u8 gMail_ChanseyText[] = _( +ALIGNED(4) static const u8 sChanseyText[] = _( "As a special treat{COMMA} I{APOSTROPHE}ll share a simple\n" "way to tell fortunes with you!\n" "The key is the first thing you find in the\n" @@ -558,12 +1485,9 @@ ALIGNED(4) const u8 gMail_ChanseyText[] = _( "If it{APOSTROPHE}s an Apple{COMMA} you{APOSTROPHE}re super lucky!\n" " - Chansey -"); +ALIGNED(4) static const u8 sChanseyHeadline[] = _("#42 Chansey{APOSTROPHE}s Fortune-Telling"); -ALIGNED(4) const u8 gMail_ChanseyHeadline[] = _( - "#42 Chansey{APOSTROPHE}s Fortune-Telling"); - - -ALIGNED(4) const u8 gMail_KabutoText[] = _( +ALIGNED(4) static const u8 sKabutoText[] = _( "One of our oldest residents claims to feel\n" "rejuvenated. Kabuto reportedly had an\n" "encounter with Relicanth in which both\n" @@ -573,12 +1497,9 @@ ALIGNED(4) const u8 gMail_KabutoText[] = _( "million years ago. Kabuto stated{COMMA} {QUOTE_START}It\n" "made me feel young talking to Relicanth.{QUOTE_END}"); +ALIGNED(4) static const u8 sKabutoHeadline[] = _("#41 Kabuto Feels Young Again!"); -ALIGNED(4) const u8 gMail_KabutoHeadline[] = - "#41 Kabuto Feels Young Again!"; - - -ALIGNED(4) const u8 gMail_SmeargleText[] = _( +ALIGNED(4) static const u8 sSmeargleText[] = _( "Smeargle{COMMA} the artist known for his unique\n" "artistic vision{COMMA} had a windfall day as one\n" "of his paintings was auctioned for 300\n" @@ -586,12 +1507,9 @@ ALIGNED(4) const u8 gMail_SmeargleText[] = _( "artwork was one of Smeargle{APOSTROPHE}s signature\n" "works from early in his career."); +ALIGNED(4) static const u8 sSmeargleHeadline[] = _("#40 Smeargle Painting Auctioned!"); -ALIGNED(4) const u8 gMail_SmeargleHeadline[] = - "#40 Smeargle Painting Auctioned!"; - - -ALIGNED(4) const u8 gMail_CastformText[] = _( +ALIGNED(4) static const u8 sCastformText[] = _( "Today{COMMA} the weather over Pokémon\n" "Square promises to be clear with no\n" "chance of showers.\n" @@ -599,12 +1517,9 @@ ALIGNED(4) const u8 gMail_CastformText[] = _( "by clouds. There may be sun breaks\n" "depending on the day{APOSTROPHE}s moods."); +ALIGNED(4) static const u8 sCastformHeadline[] = _("#39 Castform{APOSTROPHE}s Daily Weather"); -ALIGNED(4) const u8 gMail_CastformHeadline[] = _( - "#39 Castform{APOSTROPHE}s Daily Weather"); - - -ALIGNED(4) const u8 gMail_GasText[] = _( +ALIGNED(4) static const u8 sGasText[] = _( "Reports of a noxious gas leak caused\n" "widespread chaos in the {COLOR_1 YELLOW_4}Sinister Woods{END_COLOR_TEXT_1}.\n" "Specialists speculate that the recent\n" @@ -614,12 +1529,9 @@ ALIGNED(4) const u8 gMail_GasText[] = _( "The answer{COMMA} apparently{COMMA} is blowing in the\n" "wind."); +ALIGNED(4) static const u8 sGasHeadline[] = _("#38 Noxious Gas Leak?!"); -ALIGNED(4) const u8 gMail_GasHeadline[] = - "#38 Noxious Gas Leak?!"; - - -ALIGNED(4) const u8 gMail_KeyItemText2[] = _( +ALIGNED(4) static const u8 sKeyItemText2[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}When Used Somewhere Special...{END_COLOR_TEXT_1}\n" "Eevee and Water Stone{COMMA} Fire Stone{COMMA}\n" "Thunderstone{COMMA} or...\n" @@ -627,12 +1539,9 @@ ALIGNED(4) const u8 gMail_KeyItemText2[] = _( "Onix{COMMA} Metal Coat{COMMA} and Link Cable...\n" "There appear to be many others!"); +ALIGNED(4) static const u8 sKeyItemHeadline2[] = _("#37 Key Items for Pokémon 2"); -ALIGNED(4) const u8 gMail_KeyItemHeadline2[] = _( - "#37 Key Items for Pokémon 2"); - - -ALIGNED(4) const u8 gMail_KeyItemText1[] = _( +ALIGNED(4) static const u8 sKeyItemText1[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}When Used Somewhere Special...{END_COLOR_TEXT_1}\n" "Sunkern and Sun Stone...\n" "Skitty and Moon Stone...\n" @@ -641,12 +1550,9 @@ ALIGNED(4) const u8 gMail_KeyItemText1[] = _( "Clamperl and Deepseatooth...\n" "There appear to be many others!"); +ALIGNED(4) static const u8 sKeyItemHeadline1[] = _("#36 Key Items for Pokémon 1"); -ALIGNED(4) const u8 gMail_KeyItemHeadline1[] = _( - "#36 Key Items for Pokémon 1"); - - -ALIGNED(4) const u8 gMail_SwitchText[] = _( +ALIGNED(4) static const u8 sSwitchText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Power Up Combination Attacks!{END_COLOR_TEXT_1}\n" "Some dungeons allow rescue teams to\n" "switch leaders on the spot for doing\n" @@ -656,12 +1562,9 @@ ALIGNED(4) const u8 gMail_SwitchText[] = _( "leader under {COLOR_1 YELLOW}Team{END_COLOR_TEXT_1}{COMMA} then select the\n" "command {COLOR_1 YELLOW}Leader{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sSwitchHeadline[] = _("#35 Switching Leaders"); -ALIGNED(4) const u8 gMail_SwitchHeadline[] = - "#35 Switching Leaders"; - - -ALIGNED(4) const u8 gMail_KecleonText[] = _( +ALIGNED(4) static const u8 sKecleonText[] = _( "There have been numerous reports that\n" "the older of the Kecleon merchants in\n" "Pokémon Square occasionally goes\n" @@ -671,12 +1574,9 @@ ALIGNED(4) const u8 gMail_KecleonText[] = _( "such claims: {QUOTE_START}He wouldn{APOSTROPHE}t get free items\n" "in dungeons and try to sell them...{QUOTE_END}"); +ALIGNED(4) static const u8 sKecleonHeadline[] = _("#34 Where Is Kecleon?"); -ALIGNED(4) const u8 gMail_KecleonHeadline[] = - "#34 Where Is Kecleon?"; - - -ALIGNED(4) const u8 gMail_WeatherText2[] = _( +ALIGNED(4) static const u8 sWeatherText2[] = _( "Clear: Pleasant weather.\n" "Hail: Regularly inflicts damage{COMMA}\n" "except on the Ice type.\n" @@ -685,12 +1585,9 @@ ALIGNED(4) const u8 gMail_WeatherText2[] = _( "Blizzard: Boosts the movement speed of\n" "Ice-type Pokémon by one level."); +ALIGNED(4) static const u8 sWeatherHeadline2[] = _("#33 Dungeons and Weather 2"); -ALIGNED(4) const u8 gMail_WeatherHeadline2[] = - "#33 Dungeons and Weather 2"; - - -ALIGNED(4) const u8 gMail_WobbuffetText[] = _( +ALIGNED(4) static const u8 sWobbuffetText[] = _( "Earlier today{COMMA} Wobbuffet reportedly\n" "wobbled the wrong way and wandered off.\n" "It had to be rescued by the famous\n" @@ -699,12 +1596,9 @@ ALIGNED(4) const u8 gMail_WobbuffetText[] = _( "Wobbuffet was only wobbly and otherwise\n" "unharmed."); +ALIGNED(4) static const u8 sWobbuffetHeadline[] = _("#32 Wobbly Wobbuffet Wanders!"); -ALIGNED(4) const u8 gMail_WobbuffetHeadline[] = - "#32 Wobbly Wobbuffet Wanders!"; - - -ALIGNED(4) const u8 gMail_PechaText[] = _( +ALIGNED(4) static const u8 sPechaText[] = _( "Among rescue teams{COMMA} there is growing\n" "demand for equipment that is not only\n" "practical{COMMA} but also fashionably appealing.\n" @@ -714,12 +1608,9 @@ ALIGNED(4) const u8 gMail_PechaText[] = _( "If you{APOSTROPHE}re lucky enough to spot one{COMMA} make a\n" "beeline for it!"); +ALIGNED(4) static const u8 sPechaHeadline[] = _("#31 Pecha Scarf--Top Popularity!"); -ALIGNED(4) const u8 gMail_PechaHeadline[] = - "#31 Pecha Scarf--Top Popularity!"; - - -ALIGNED(4) const u8 gMail_WeatherText1[] = _( +ALIGNED(4) static const u8 sWeatherText1[] = _( "Sunny: Boosts Fire-type moves{COMMA} and\n" "weakens Water-type moves.\n" "Sandstorm: Regularly inflicts damage\n" @@ -729,12 +1620,9 @@ ALIGNED(4) const u8 gMail_WeatherText1[] = _( "Rain: Boosts Water-type moves{COMMA} and\n" "weakens Fire. Prevents explosions."); +ALIGNED(4) static const u8 sWeatherHeadline1[] = _("#30 Dungeons and Weather 1"); -ALIGNED(4) const u8 gMail_WeatherHeadline1[] = - "#30 Dungeons and Weather 1"; - - -ALIGNED(4) const u8 gMail_AzurillText[] = _( +ALIGNED(4) static const u8 sAzurillText[] = _( "With a simple act of courage{COMMA} Azurill\n" "became a hero despite being small in size.\n" "Azurill came across Slowpoke{COMMA} who had\n" @@ -744,12 +1632,9 @@ ALIGNED(4) const u8 gMail_AzurillText[] = _( "entirely forgotten having the ability to\n" "swim capably."); +ALIGNED(4) static const u8 sAzurillHeadline[] = _("#29 Azurill--the Little Hero!"); -ALIGNED(4) const u8 gMail_AzurillHeadline[] = - "#29 Azurill--the Little Hero!"; - - -ALIGNED(4) const u8 gMail_KeyText[] = _( +ALIGNED(4) static const u8 sKeyText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Head Out to the Desert Region!{END_COLOR_TEXT_1}\n" "If you{APOSTROPHE}ve been wondering what lies behind\n" "the mysterious locked doors of the {COLOR_1 YELLOW_4}Solar\n" @@ -759,12 +1644,9 @@ ALIGNED(4) const u8 gMail_KeyText[] = _( "advised to compose teams with Pokémon\n" "adapted to the desert environment."); +ALIGNED(4) static const u8 sKeyHeadline[] = _("#28 The Key"); -ALIGNED(4) const u8 gMail_KeyHeadline[] = - "#28 The Key"; - - -ALIGNED(4) const u8 gMail_SweetText[] = _( +ALIGNED(4) static const u8 sSweetText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Feel a Little Envious?{END_COLOR_TEXT_1}\n" "Teddiursa is often seen licking its paws\n" "that have soaked up sweet honey. While it\n" @@ -772,11 +1654,9 @@ ALIGNED(4) const u8 gMail_SweetText[] = _( "Teddiursa{COMMA} one can{APOSTROPHE}t help but feel a\n" "twinge of envy."); -ALIGNED(4) const u8 gMail_SweetHeadline[] = - "#27 Sweet Hands!"; +ALIGNED(4) static const u8 sSweetHeadline[] = _("#27 Sweet Hands!"); - -ALIGNED(4) const u8 gMail_RangeText[] = _( +ALIGNED(4) static const u8 sRangeText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}All Moves Have Effective Ranges{END_COLOR_TEXT_1}\n" "Moves that affect an entire room have a\n" "range of two tiles in a corridor. The move\n" @@ -786,12 +1666,9 @@ ALIGNED(4) const u8 gMail_RangeText[] = _( "the visibility is limited to just one tile{COMMA}\n" "the range of moves will also be limited."); +ALIGNED(4) static const u8 sRangeHeadline[] = _("#26 The Range of Moves"); -ALIGNED(4) const u8 gMail_RangeHeadline[] = - "#26 The Range of Moves"; - - -ALIGNED(4) const u8 gMail_IQText[] = _( +ALIGNED(4) static const u8 sIQText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Make Your Explorations Easier by{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Boosting the IQ of Team Members!{END_COLOR_TEXT_1}\n" "Eating Gummis boosts the IQ of Pokémon.\n" @@ -801,12 +1678,9 @@ ALIGNED(4) const u8 gMail_IQText[] = _( "with type disadvantages). Check\n" "the IQ Skills of your team members!"); +ALIGNED(4) static const u8 sIQHeadline[] = _("#25 IQ"); -ALIGNED(4) const u8 gMail_IQHeadline[] = - "#25 IQ"; - - -ALIGNED(4) const u8 gMail_TrapTileText[] = _( +ALIGNED(4) static const u8 sTrapTileText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}New Types of Floor Tiles?{END_COLOR_TEXT_1}\n" "There have been numerous reports of new\n" "floor tiles other than Wonder Tiles.\n" @@ -816,12 +1690,9 @@ ALIGNED(4) const u8 gMail_TrapTileText[] = _( "trigger a variety of traps. Rescue teams\n" "are urged to use extreme caution."); +ALIGNED(4) static const u8 sTrapTileHeadline[] = _("#24 New Floor Tiles?"); -ALIGNED(4) const u8 gMail_TrapTileHeadline[] = - "#24 New Floor Tiles?"; - - -ALIGNED(4) const u8 gMail_MakuhitaText[] = _( +ALIGNED(4) static const u8 sMakuhitaText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Study Type Matchups{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}at the Makuhita Dojo!{END_COLOR_TEXT_1}\n" "At the Makuhita Dojo{COMMA} one can learn how\n" @@ -831,12 +1702,9 @@ ALIGNED(4) const u8 gMail_MakuhitaText[] = _( "Maze{END_COLOR_TEXT_1}{COMMA} there are only Fire-type Pokémon.\n" "Try move types to see what works best!"); +ALIGNED(4) static const u8 sMakuhitaHeadline[] = _("#23 Train at the Makuhita Dojo!"); -ALIGNED(4) const u8 gMail_MakuhitaHeadline[] = - "#23 Train at the Makuhita Dojo!"; - - -ALIGNED(4) const u8 gMail_MachineText[] = _( +ALIGNED(4) static const u8 sMachineText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}New Types of Machines Discovered?{END_COLOR_TEXT_1}\n" "In a recently discovered cave{COMMA} explorers\n" "found unique types of Technical Machines.\n" @@ -846,12 +1714,9 @@ ALIGNED(4) const u8 gMail_MachineText[] = _( "In related news{COMMA} the cave is to be named\n" "the {COLOR_1 YELLOW_4}Solar Cave{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sMachineHeadline[] = _("#22 New Types of Machines?"); -ALIGNED(4) const u8 gMail_MachineHeadline[] = - "#22 New Types of Machines?"; - - -ALIGNED(4) const u8 gMail_UltimateText[] = _( +ALIGNED(4) static const u8 sUltimateText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}The Ultimate Dungeon{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Challenges You to Do Your Best!{END_COLOR_TEXT_1}\n" "Somewhere in the world{COMMA} there supposedly\n" @@ -861,12 +1726,9 @@ ALIGNED(4) const u8 gMail_UltimateText[] = _( "challenge. It is considered a test not of\n" "power{COMMA} but of intelligence and wits."); +ALIGNED(4) static const u8 sUltimateHeadline[] = _("#21 The Ultimate Dungeon"); -ALIGNED(4) const u8 gMail_UltimateHeadline[] = - "#21 The Ultimate Dungeon"; - - -ALIGNED(4) const u8 gMail_GummiText[] = _( +ALIGNED(4) static const u8 sGummiText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Gummis That Make You Smart{END_COLOR_TEXT_1}\n" "Research has revealed that popular Gummi\n" "treats not only enhance intelligence{COMMA} they\n" @@ -876,12 +1738,9 @@ ALIGNED(4) const u8 gMail_GummiText[] = _( "dungeons{COMMA} throw them at your friends.\n" "Use them in Friend Areas and...?"); +ALIGNED(4) static const u8 sGummiHeadline[] = _("#20 Secrets of the Gummi"); -ALIGNED(4) const u8 gMail_GummiHeadline[] = - "#20 Secrets of the Gummi"; - - -ALIGNED(4) const u8 gMail_MoveTipsText[] = _( +ALIGNED(4) static const u8 sMoveTipsText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Moving Diagonally{END_COLOR_TEXT_1}\n" "Move diagonally to avoid foes!\n" "Keeping {R_BUTTON}" @@ -892,12 +1751,9 @@ ALIGNED(4) const u8 gMail_MoveTipsText[] = _( "directions without moving. Check Hints to\n" "see how you can do this maneuver!"); +ALIGNED(4) static const u8 sMoveTipsHeadline[] = _("#19 Important Moving Tips"); -ALIGNED(4) const u8 gMail_MoveTipsHeadline[] = - "#19 Important Moving Tips"; - - -ALIGNED(4) const u8 gMail_AddMembersText[] = _( +ALIGNED(4) static const u8 sAddMembersText[] = _( "If you want to enlarge your rescue team{COMMA}\n" "you must first get Friend Areas. When\n" "a Pokémon that can live in an obtained\n" @@ -907,12 +1763,9 @@ ALIGNED(4) const u8 gMail_AddMembersText[] = _( "members! Incidentally{COMMA} you may take no\n" "more than three friends into a dungeon."); +ALIGNED(4) static const u8 sAddMembersHeadline[] = _("#18 Adding Team Members"); -ALIGNED(4) const u8 gMail_AddMembersHeadline[] = - "#18 Adding Team Members"; - - -ALIGNED(4) const u8 gMail_TeamMoveText[] = _( +ALIGNED(4) static const u8 sTeamMoveText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Use Team Members Effectively!{END_COLOR_TEXT_1}\n" "When you{APOSTROPHE}re fighting in a dungeon{COMMA} it{APOSTROPHE}s\n" "important to use your team members. If\n" @@ -922,12 +1775,9 @@ ALIGNED(4) const u8 gMail_TeamMoveText[] = _( "Pokémon fighting a single foe. Change\n" "Tactics if members don{APOSTROPHE}t move properly."); +ALIGNED(4) static const u8 sTeamMoveHeadline[] = _("#17 Moving as a Team"); -ALIGNED(4) const u8 gMail_TeamMoveHeadline[] = - "#17 Moving as a Team"; - - -ALIGNED(4) const u8 gMail_WondersText[] = _( +ALIGNED(4) static const u8 sWondersText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}The Seven Wonders of Pokémon?{END_COLOR_TEXT_1}\n" "The mysterious feet of Diglett.\n" "What is inside Forretress{APOSTROPHE}s shell.\n" @@ -937,6 +1787,7 @@ ALIGNED(4) const u8 gMail_WondersText[] = _( "other Pokémon mysteries!\n" " - Mystery Hunter Team -"); +ALIGNED(4) static const u8 sWondersHeadline[] = _("#16 Seven Wonders of Pokémon"); ALIGNED(4) const u8 gMail_WondersHeadline[] = _( "#16 Seven Wonders of Pokémon"); @@ -954,12 +1805,9 @@ ALIGNED(4) const u8 gMail_PollText[] = _( "from far away. It{APOSTROPHE}s invaluable.{QUOTE_END} The next\n" "most popular item was {COLOR_1 GREEN}Oran Berries{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sPollHeadline[] = _("#15 Poll: Top Two Items"); -ALIGNED(4) const u8 gMail_PollHeadline[] = - "#15 Poll: Top Two Items"; - - -ALIGNED(4) const u8 gMail_LinkedEntryText3[] = _( +ALIGNED(4) static const u8 sLinkedEntryText3[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}These Are the Final Linked Moves{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}We Recommend in the Entry Level!{END_COLOR_TEXT_1}\n" "{COLOR_1 RED}Electric and Water Types{END_COLOR_TEXT_1}\n" @@ -973,12 +1821,9 @@ ALIGNED(4) const u8 gMail_LinkedEntryText3[] = _( "Psyduck\n" "{COLOR_1 GREEN}Tail Whip{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Scratch{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sLinkedEntryHeadline3[] = _("#14 Linked Moves Entry Level 3"); -ALIGNED(4) const u8 gMail_LinkedEntryHeadline3[] = - "#14 Linked Moves Entry Level 3"; - - -ALIGNED(4) const u8 gMail_LinkedEntryText2[] = _( +ALIGNED(4) static const u8 sLinkedEntryText2[] = _( "{COLOR_1 RED}Fire and Normal Types{END_COLOR_TEXT_1}\n" "Charmander\n" "{COLOR_1 GREEN}Ember{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Growl{END_COLOR_TEXT_1}\n" @@ -992,12 +1837,9 @@ ALIGNED(4) const u8 gMail_LinkedEntryText2[] = _( "Skitty\n" "{COLOR_1 GREEN}Tail Whip{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Tackle{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sLinkedEntryHeadline2[] = _("#13 Linked Moves Entry Level 2"); -ALIGNED(4) const u8 gMail_LinkedEntryHeadline2[] = - "#13 Linked Moves Entry Level 2"; - - -ALIGNED(4) const u8 gMail_LinkedEntryText1[] = _( +ALIGNED(4) static const u8 sLinkedEntryText1[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}These Are the Recommended{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Linked Moves for Beginners!{END_COLOR_TEXT_1}\n" "{COLOR_1 RED}Grass{COMMA} Fighting{COMMA} and Ground Types{END_COLOR_TEXT_1}\n" @@ -1011,12 +1853,9 @@ ALIGNED(4) const u8 gMail_LinkedEntryText1[] = _( "Cubone\n" "{COLOR_1 GREEN}Tail Whip{END_COLOR_TEXT_1} + {COLOR_1 GREEN}Bone Club{END_COLOR_TEXT_1}"); +ALIGNED(4) static const u8 sLinkedEntryHeadline1[] = _("#12 Linked Moves Entry Level 1"); -ALIGNED(4) const u8 gMail_LinkedEntryHeadline1[] = - "#12 Linked Moves Entry Level 1"; - - -ALIGNED(4) const u8 gMail_TypeText[] = _( +ALIGNED(4) static const u8 sTypeText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Learn How Types Match Up!{END_COLOR_TEXT_1}\n" "All Pokémon are of certain types{COMMA} such as\n" "{COLOR_1 RED}Fire{END_COLOR_TEXT_1} and {COLOR_1 CYAN}Water{END_COLOR_TEXT_1}. In a battle{COMMA} the damage\n" @@ -1026,12 +1865,9 @@ ALIGNED(4) const u8 gMail_TypeText[] = _( "weak against {COLOR_1 CYAN}Water{END_COLOR_TEXT_1}-type moves.\n" "Exploit type matchups to win battles!"); +ALIGNED(4) static const u8 sTypeHeadline[] = _("#11 Types and Matchups"); -ALIGNED(4) const u8 gMail_TypeHeadline[] = - "#11 Types and Matchups"; - - -ALIGNED(4) const u8 gMail_DungeonText[] = _( +ALIGNED(4) static const u8 sDungeonText[] = _( "If your rescue team is defeated in a\n" "dungeon{COMMA} you lose several items and\n" "all the money you are carrying.\n" @@ -1041,12 +1877,9 @@ ALIGNED(4) const u8 gMail_DungeonText[] = _( "invaluable items safely stored.\n" " - Pokémon Rescue Organization -"); +ALIGNED(4) static const u8 sDungeonHeadline[] = _("#10 Mysterious Dungeons?"); -ALIGNED(4) const u8 gMail_DungeonHeadline[] = - "#10 Mysterious Dungeons?"; - - -ALIGNED(4) const u8 gMail_WonderText[] = _( +ALIGNED(4) static const u8 sWonderText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Wonder Tiles Reset Attack and Defense!{END_COLOR_TEXT_1}\n" "If your Attack is lowered by a foe{APOSTROPHE}s\n" "{COLOR_1 GREEN}Growl{END_COLOR_TEXT_1}{COMMA} or your Defense is lowered\n" @@ -1056,12 +1889,9 @@ ALIGNED(4) const u8 gMail_WonderText[] = _( "next floor. Beware{COMMA} enhanced stats are\n" "also reset to normal!"); +ALIGNED(4) static const u8 sWonderHeadline[] = _("#9 Wonder Tiles"); -ALIGNED(4) const u8 gMail_WonderHeadline[] = - "#9 Wonder Tiles"; - - -ALIGNED(4) const u8 gMail_MoveText[] = _( +ALIGNED(4) static const u8 sMoveText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}The Benefits of Using Moves{END_COLOR_TEXT_1}\n" "If a move is used on a foe{COMMA} when it is\n" "defeated{COMMA} {COLOR_1 CYAN}you earn more Exp. Points{END_COLOR_TEXT_1}!\n" @@ -1071,12 +1901,9 @@ ALIGNED(4) const u8 gMail_MoveText[] = _( "Moves are also more likely to become\n" "{COLOR_1 CYAN}critical hits{END_COLOR_TEXT_1}! Don{APOSTROPHE}t overuse them{COMMA} though!"); +ALIGNED(4) static const u8 sMoveHeadline[] = _("#8 Let{APOSTROPHE}s Use Moves!"); -ALIGNED(4) const u8 gMail_MoveHeadline[] = _( - "#8 Let{APOSTROPHE}s Use Moves!"); - - -ALIGNED(4) const u8 gMail_OptionsText[] = _( +ALIGNED(4) static const u8 sOptionsText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Change Your Option Settings{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}to Suit Your Play Style!{END_COLOR_TEXT_1}\n" "Press {B_BUTTON} to open the menu{COMMA} then\n" @@ -1084,12 +1911,9 @@ ALIGNED(4) const u8 gMail_OptionsText[] = _( "You can change settings to suit the way\n" "you play."); +ALIGNED(4) static const u8 sOptionsHeadline[] = _("#7 Game Options"); -ALIGNED(4) const u8 gMail_OptionsHeadline[] = - "#7 Game Options"; - - -ALIGNED(4) const u8 gMail_DisasterText[] = _( +ALIGNED(4) static const u8 sDisasterText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Investigations Under Way into{END_COLOR_TEXT_1}\n" "{CENTER_ALIGN COLOR_1 YELLOW}Recent Rash of Natural Disasters{END_COLOR_TEXT_1}\n" "Pokémon in affected areas attack any\n" @@ -1099,12 +1923,9 @@ ALIGNED(4) const u8 gMail_DisasterText[] = _( "for triggering earthquakes{COMMA} but the\n" "investigative team is skeptical."); +ALIGNED(4) static const u8 sDisasterHeadline[] = _("#6 Recent Natural Disasters"); -ALIGNED(4) const u8 gMail_DisasterHeadline[] = - "#6 Recent Natural Disasters"; - - -ALIGNED(4) const u8 gMail_SeedText[] = _( +ALIGNED(4) static const u8 sSeedText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Seeds Can Be Thrown{COMMA} Too!{END_COLOR_TEXT_1}\n" "Seeds are usually meant to be eaten.\n" "But did you know? They can also be thrown\n" @@ -1113,12 +1934,9 @@ ALIGNED(4) const u8 gMail_SeedText[] = _( "Throw good seeds at friends!\n" "Don{APOSTROPHE}t be afraid to throw your seeds!"); +ALIGNED(4) static const u8 sSeedHeadline[] = _("#5 Throw Seeds!"); -ALIGNED(4) const u8 gMail_SeedHeadline[] = - "#5 Throw Seeds!"; - - -ALIGNED(4) const u8 gMail_HungerText[] = _( +ALIGNED(4) static const u8 sHungerText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Eat Something When You Get Hungry!{END_COLOR_TEXT_1}\n" "While you{APOSTROPHE}re exploring a dungeon{COMMA} you will\n" "get progressively hungry (your Belly goes\n" @@ -1128,12 +1946,9 @@ ALIGNED(4) const u8 gMail_HungerText[] = _( "your Belly! You can always buy food at the\n" "{COLOR_1 CYAN}Kecleon Shop{END_COLOR_TEXT_1}."); +ALIGNED(4) static const u8 sHungerHeadline[] = _("#4 Getting Hungry"); -ALIGNED(4) const u8 gMail_HungerHeadline[] = - "#4 Getting Hungry"; - - -ALIGNED(4) const u8 gMail_JobText[] = _( +ALIGNED(4) static const u8 sJobText[] = _( "If you want to go on a rescue job listed\n" "on the Bulletin Board at the Pelipper Post\n" "Office{COMMA} or one that{APOSTROPHE}s delivered to your\n" @@ -1143,12 +1958,9 @@ ALIGNED(4) const u8 gMail_JobText[] = _( "Try to do accepted jobs quickly!\n" " - Pokémon Rescue Organization -"); +ALIGNED(4) static const u8 sJobHeadline[] = _("#3 Accepting Rescue Jobs"); -ALIGNED(4) const u8 gMail_JobHeadline[] = - "#3 Accepting Rescue Jobs"; - - -ALIGNED(4) const u8 gMail_BasicsText[] = _( +ALIGNED(4) static const u8 sBasicsText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}Saving Your Adventure and Pokémon News{END_COLOR_TEXT_1}\n" "You can save your adventure by going to\n" "your bed. Get in the habit of saving often.\n" @@ -1158,12 +1970,9 @@ ALIGNED(4) const u8 gMail_BasicsText[] = _( "Check the Mailbox and store old news!\n" " - Pokémon Rescue Organization -"); +ALIGNED(4) static const u8 sBasicsHeadline[] = _("#2 Rescue Team Basics"); -ALIGNED(4) const u8 gMail_BasicsHeadline[] = - "#2 Rescue Team Basics"; - - -ALIGNED(4) const u8 gMail_WelcomeText[] = _( +ALIGNED(4) static const u8 sWelcomeText[] = _( "{CENTER_ALIGN COLOR_1 YELLOW}To All New Members!{END_COLOR_TEXT_1}\n" "Your badge has the power to send back\n" "to town any Pokémon you{APOSTROPHE}ve rescued. Just\n" @@ -1173,4 +1982,4 @@ ALIGNED(4) const u8 gMail_WelcomeText[] = _( "ranking. Aim for the Bronze Rank for now!\n" " - Pokémon Rescue Organization -"); -ALIGNED(4) const u8 gMail_WelcomeHeadline[] = "#1 Welcome to a Rescue Team!"; \ No newline at end of file +ALIGNED(4) static const u8 sWelcomeHeadline[] = _("#1 Welcome to a Rescue Team!"); diff --git a/src/data/pokemon_mail_pre.h b/src/data/pokemon_mail_pre.h new file mode 100644 index 000000000..7ea76ac06 --- /dev/null +++ b/src/data/pokemon_mail_pre.h @@ -0,0 +1,573 @@ +// TODO: Make things static once the code is moved out of asm + +const s32 gUnknown_80E80A0[16] = { + 1, + 5, + 10, + 20, + 40, + 60, + 80, + 100, + 150, + 200, + 300, + 500, + 700, + 1000, + 1500, + 2000 +}; + +// A list of Pokémon that are banned from appearing in rescue mail regardless of game progress +const s16 gUnknown_80E80E0[35] = { + MONSTER_UNOWN_A, + MONSTER_CASTFORM, + MONSTER_KECLEON, + MONSTER_SILCOON, + MONSTER_CASCOON, + MONSTER_KAKUNA, + MONSTER_MAGNEMITE, + MONSTER_MAGNETON, + MONSTER_GARDEVOIR, + MONSTER_GENGAR, + MONSTER_ZAPDOS, + MONSTER_MOLTRES, + MONSTER_ARTICUNO, + MONSTER_RAYQUAZA, + MONSTER_ENTEI, + MONSTER_RAIKOU, + MONSTER_SUICUNE, + MONSTER_HO_OH, + MONSTER_MEWTWO, + MONSTER_LATIOS, + MONSTER_LATIAS, + MONSTER_JIRACHI, + MONSTER_LUGIA, + MONSTER_CELEBI, + MONSTER_REGIROCK, + MONSTER_REGICE, + MONSTER_REGISTEEL, + MONSTER_MEW, + MONSTER_GROUDON, + MONSTER_KYOGRE, + MONSTER_DEOXYS_NORMAL, + MONSTER_MUNCHLAX, + MONSTER_DECOY, + MONSTER_STATUE, + MONSTER_NONE +}; + +// A list of Pokémon that are banned from appearing in rescue mail before the post-game +const s16 gUnknown_80E8126[33] = { + MONSTER_KECLEON, + MONSTER_PERSIAN, + MONSTER_WIGGLYTUFF, + MONSTER_KANGASKHAN, + MONSTER_GULPIN, + MONSTER_PELIPPER, + MONSTER_LOMBRE, + MONSTER_BELLSPROUT, + MONSTER_SNUBBULL, + MONSTER_WHISCASH, + MONSTER_ABSOL, + MONSTER_CATERPIE, + MONSTER_METAPOD, + MONSTER_BUTTERFREE, + MONSTER_DUGTRIO, + MONSTER_DIGLETT, + MONSTER_SKARMORY, + MONSTER_JUMPLUFF, + MONSTER_SHIFTRY, + MONSTER_ALAKAZAM, + MONSTER_CHARIZARD, + MONSTER_TYRANITAR, + MONSTER_EKANS, + MONSTER_MEDICHAM, + MONSTER_XATU, + MONSTER_NINETALES, + MONSTER_BLASTOISE, + MONSTER_OCTILLERY, + MONSTER_GOLEM, + MONSTER_WYNAUT, + MONSTER_WOBBUFFET, + MONSTER_MANKEY, + MONSTER_NONE +}; + +const s16 gUnknown_80E8168[6][2] = { + { MONSTER_NIDORAN_M, MONSTER_NIDORAN_F }, + { MONSTER_NIDORINO, MONSTER_NIDORINA }, + { MONSTER_NIDOKING, MONSTER_NIDOQUEEN }, + { MONSTER_TAUROS, MONSTER_MILTANK }, + { MONSTER_VOLBEAT, MONSTER_ILLUMISE }, + { MONSTER_MINUN, MONSTER_PLUSLE } +}; + +const s16 gUnknown_80E8180[21][2] = { + { MONSTER_GLOOM, ITEM_LEAF_STONE }, + { MONSTER_WEEPINBELL, ITEM_LEAF_STONE }, + { MONSTER_EXEGGCUTE, ITEM_LEAF_STONE }, + { MONSTER_NUZLEAF, ITEM_LEAF_STONE }, + { MONSTER_GLOOM, ITEM_SUN_STONE }, + { MONSTER_SUNKERN, ITEM_SUN_STONE }, + { MONSTER_PIKACHU, ITEM_THUNDERSTONE }, + { MONSTER_EEVEE, ITEM_THUNDERSTONE }, + { MONSTER_VULPIX, ITEM_FIRE_STONE }, + { MONSTER_GROWLITHE, ITEM_FIRE_STONE }, + { MONSTER_EEVEE, ITEM_FIRE_STONE }, + { MONSTER_POLIWHIRL, ITEM_WATER_STONE }, + { MONSTER_SHELLDER, ITEM_WATER_STONE }, + { MONSTER_STARYU, ITEM_WATER_STONE }, + { MONSTER_EEVEE, ITEM_WATER_STONE }, + { MONSTER_LOMBRE, ITEM_WATER_STONE }, + { MONSTER_NIDORINA, ITEM_MOON_STONE }, + { MONSTER_NIDORINO, ITEM_MOON_STONE }, + { MONSTER_CLEFAIRY, ITEM_MOON_STONE }, + { MONSTER_JIGGLYPUFF, ITEM_MOON_STONE }, + { MONSTER_SKITTY, ITEM_MOON_STONE } +}; + +// List of preferred gummis +const s16 gUnknown_80E81D4[386][2] = { + { MONSTER_EKANS, ITEM_PINK_GUMMI }, + { MONSTER_ARBOK, ITEM_PINK_GUMMI }, + { MONSTER_ARMALDO, ITEM_GRAY_GUMMI }, + { MONSTER_BEAUTIFLY, ITEM_GREEN_GUMMI }, + { MONSTER_MEDITITE, ITEM_ORANGE_GUMMI }, + { MONSTER_SEAKING, ITEM_BLUE_GUMMI }, + { MONSTER_TORCHIC, ITEM_RED_GUMMI }, + { MONSTER_ANORITH, ITEM_GRAY_GUMMI }, + { MONSTER_ABSOL, ITEM_BLACK_GUMMI }, + { MONSTER_SURSKIT, ITEM_GREEN_GUMMI }, + { MONSTER_MASQUERAIN, ITEM_GREEN_GUMMI }, + { MONSTER_ARIADOS, ITEM_GREEN_GUMMI }, + { MONSTER_CROCONAW, ITEM_BLUE_GUMMI }, + { MONSTER_UNOWN_QMARK, ITEM_GOLD_GUMMI }, + { MONSTER_EEVEE, ITEM_WHITE_GUMMI }, + { MONSTER_GEODUDE, ITEM_GRAY_GUMMI }, + { MONSTER_SPINARAK, ITEM_GREEN_GUMMI }, + { MONSTER_PILOSWINE, ITEM_CLEAR_GUMMI }, + { MONSTER_ILLUMISE, ITEM_GREEN_GUMMI }, + { MONSTER_ONIX, ITEM_GRAY_GUMMI }, + { MONSTER_ARCANINE, ITEM_RED_GUMMI }, + { MONSTER_SUDOWOODO, ITEM_GRAY_GUMMI }, + { MONSTER_WEEPINBELL, ITEM_GRASS_GUMMI }, + { MONSTER_VICTREEBEL, ITEM_GRASS_GUMMI }, + { MONSTER_WOOPER, ITEM_BLUE_GUMMI }, + { MONSTER_SWINUB, ITEM_CLEAR_GUMMI }, + { MONSTER_SKARMORY, ITEM_SILVER_GUMMI }, + { MONSTER_AIPOM, ITEM_WHITE_GUMMI }, + { MONSTER_ESPEON, ITEM_GOLD_GUMMI }, + { MONSTER_SKITTY, ITEM_WHITE_GUMMI }, + { MONSTER_DELCATTY, ITEM_WHITE_GUMMI }, + { MONSTER_HITMONCHAN, ITEM_ORANGE_GUMMI }, + { MONSTER_ELEKID, ITEM_YELLOW_GUMMI }, + { MONSTER_ELECTABUZZ, ITEM_YELLOW_GUMMI }, + { MONSTER_ENTEI, ITEM_RED_GUMMI }, + { MONSTER_SWELLOW, ITEM_WHITE_GUMMI }, + { MONSTER_FERALIGATR, ITEM_BLUE_GUMMI }, + { MONSTER_FURRET, ITEM_WHITE_GUMMI }, + { MONSTER_OCTILLERY, ITEM_BLUE_GUMMI }, + { MONSTER_PRIMEAPE, ITEM_ORANGE_GUMMI }, + { MONSTER_SENTRET, ITEM_WHITE_GUMMI }, + { MONSTER_STANTLER, ITEM_WHITE_GUMMI }, + { MONSTER_GLALIE, ITEM_CLEAR_GUMMI }, + { MONSTER_SPEAROW, ITEM_WHITE_GUMMI }, + { MONSTER_FEAROW, ITEM_WHITE_GUMMI }, + { MONSTER_OMASTAR, ITEM_GRAY_GUMMI }, + { MONSTER_OMANYTE, ITEM_GRAY_GUMMI }, + { MONSTER_GROWLITHE, ITEM_RED_GUMMI }, + { MONSTER_KYOGRE, ITEM_BLUE_GUMMI }, + { MONSTER_MACHAMP, ITEM_ORANGE_GUMMI }, + { MONSTER_DRAGONITE, ITEM_ROYAL_GUMMI }, + { MONSTER_PINSIR, ITEM_GREEN_GUMMI }, + { MONSTER_KECLEON, ITEM_WHITE_GUMMI }, + { MONSTER_SHUPPET, ITEM_PURPLE_GUMMI }, + { MONSTER_SNORLAX, ITEM_WHITE_GUMMI }, + { MONSTER_KABUTO, ITEM_GRAY_GUMMI }, + { MONSTER_KABUTOPS, ITEM_GRAY_GUMMI }, + { MONSTER_HITMONTOP, ITEM_ORANGE_GUMMI }, + { MONSTER_WARTORTLE, ITEM_BLUE_GUMMI }, + { MONSTER_BLASTOISE, ITEM_BLUE_GUMMI }, + { MONSTER_FARFETCHD, ITEM_WHITE_GUMMI }, + { MONSTER_CUBONE, ITEM_BROWN_GUMMI }, + { MONSTER_MAROWAK, ITEM_BROWN_GUMMI }, + { MONSTER_SILCOON, ITEM_GREEN_GUMMI }, + { MONSTER_KANGASKHAN, ITEM_WHITE_GUMMI }, + { MONSTER_BRELOOM, ITEM_GRASS_GUMMI }, + { MONSTER_SHROOMISH, ITEM_GRASS_GUMMI }, + { MONSTER_CARVANHA, ITEM_BLUE_GUMMI }, + { MONSTER_SUNFLORA, ITEM_GRASS_GUMMI }, + { MONSTER_TREECKO, ITEM_GRASS_GUMMI }, + { MONSTER_CATERPIE, ITEM_GREEN_GUMMI }, + { MONSTER_WINGULL, ITEM_BLUE_GUMMI }, + { MONSTER_GYARADOS, ITEM_BLUE_GUMMI }, + { MONSTER_RAPIDASH, ITEM_RED_GUMMI }, + { MONSTER_NINETALES, ITEM_RED_GUMMI }, + { MONSTER_GIRAFARIG, ITEM_WHITE_GUMMI }, + { MONSTER_KIRLIA, ITEM_GOLD_GUMMI }, + { MONSTER_BELLOSSOM, ITEM_GRASS_GUMMI }, + { MONSTER_KINGDRA, ITEM_BLUE_GUMMI }, + { MONSTER_KINGLER, ITEM_BLUE_GUMMI }, + { MONSTER_GLOOM, ITEM_GRASS_GUMMI }, + { MONSTER_MAWILE, ITEM_SILVER_GUMMI }, + { MONSTER_PINECO, ITEM_GREEN_GUMMI }, + { MONSTER_GROUDON, ITEM_BROWN_GUMMI }, + { MONSTER_GLIGAR, ITEM_BROWN_GUMMI }, + { MONSTER_MIGHTYENA, ITEM_BLACK_GUMMI }, + { MONSTER_KRABBY, ITEM_BLUE_GUMMI }, + { MONSTER_GRANBULL, ITEM_WHITE_GUMMI }, + { MONSTER_CROBAT, ITEM_PINK_GUMMI }, + { MONSTER_ABRA, ITEM_GOLD_GUMMI }, + { MONSTER_SLAKING, ITEM_WHITE_GUMMI }, + { MONSTER_WURMPLE, ITEM_GREEN_GUMMI }, + { MONSTER_GENGAR, ITEM_PURPLE_GUMMI }, + { MONSTER_TAUROS, ITEM_WHITE_GUMMI }, + { MONSTER_MAGIKARP, ITEM_BLUE_GUMMI }, + { MONSTER_MAGNEMITE, ITEM_YELLOW_GUMMI }, + { MONSTER_GASTLY, ITEM_PURPLE_GUMMI }, + { MONSTER_HAUNTER, ITEM_PURPLE_GUMMI }, + { MONSTER_TORKOAL, ITEM_RED_GUMMI }, + { MONSTER_MACHOKE, ITEM_ORANGE_GUMMI }, + { MONSTER_KAKUNA, ITEM_GREEN_GUMMI }, + { MONSTER_GULPIN, ITEM_PINK_GUMMI }, + { MONSTER_ARON, ITEM_SILVER_GUMMI }, + { MONSTER_PSYDUCK, ITEM_BLUE_GUMMI }, + { MONSTER_LAIRON, ITEM_SILVER_GUMMI }, + { MONSTER_WHISMUR, ITEM_WHITE_GUMMI }, + { MONSTER_NUZLEAF, ITEM_GRASS_GUMMI }, + { MONSTER_PHANPY, ITEM_BROWN_GUMMI }, + { MONSTER_SHELGON, ITEM_ROYAL_GUMMI }, + { MONSTER_RATTATA, ITEM_WHITE_GUMMI }, + { MONSTER_GOLDUCK, ITEM_BLUE_GUMMI }, + { MONSTER_GOLBAT, ITEM_PINK_GUMMI }, + { MONSTER_GOLEM, ITEM_GRAY_GUMMI }, + { MONSTER_GRAVELER, ITEM_GRAY_GUMMI }, + { MONSTER_VENONAT, ITEM_GREEN_GUMMI }, + { MONSTER_GARDEVOIR, ITEM_GOLD_GUMMI }, + { MONSTER_RHYDON, ITEM_BROWN_GUMMI }, + { MONSTER_RHYHORN, ITEM_BROWN_GUMMI }, + { MONSTER_GOREBYSS, ITEM_BLUE_GUMMI }, + { MONSTER_PUPITAR, ITEM_GRAY_GUMMI }, + { MONSTER_CORSOLA, ITEM_BLUE_GUMMI }, + { MONSTER_CACNEA, ITEM_GRASS_GUMMI }, + { MONSTER_DUSCLOPS, ITEM_PURPLE_GUMMI }, + { MONSTER_SHARPEDO, ITEM_BLUE_GUMMI }, + { MONSTER_HITMONLEE, ITEM_ORANGE_GUMMI }, + { MONSTER_ZANGOOSE, ITEM_WHITE_GUMMI }, + { MONSTER_ZAPDOS, ITEM_YELLOW_GUMMI }, + { MONSTER_JOLTEON, ITEM_YELLOW_GUMMI }, + { MONSTER_SANDSHREW, ITEM_BROWN_GUMMI }, + { MONSTER_SANDSLASH, ITEM_BROWN_GUMMI }, + { MONSTER_SEADRA, ITEM_BLUE_GUMMI }, + { MONSTER_RELICANTH, ITEM_BLUE_GUMMI }, + { MONSTER_SHELLDER, ITEM_BLUE_GUMMI }, + { MONSTER_ZIGZAGOON, ITEM_WHITE_GUMMI }, + { MONSTER_CRAWDAUNT, ITEM_BLUE_GUMMI }, + { MONSTER_VAPOREON, ITEM_BLUE_GUMMI }, + { MONSTER_SCEPTILE, ITEM_GRASS_GUMMI }, + { MONSTER_DEWGONG, ITEM_BLUE_GUMMI }, + { MONSTER_GROVYLE, ITEM_GRASS_GUMMI }, + { MONSTER_BANETTE, ITEM_PURPLE_GUMMI }, + { MONSTER_JIRACHI, ITEM_SILVER_GUMMI }, + { MONSTER_SUICUNE, ITEM_BLUE_GUMMI }, + { MONSTER_STARMIE, ITEM_BLUE_GUMMI }, + { MONSTER_SCYTHER, ITEM_GREEN_GUMMI }, + { MONSTER_ZUBAT, ITEM_PINK_GUMMI }, + { MONSTER_TAILLOW, ITEM_WHITE_GUMMI }, + { MONSTER_BEEDRILL, ITEM_GREEN_GUMMI }, + { MONSTER_HYPNO, ITEM_GOLD_GUMMI }, + { MONSTER_DROWZEE, ITEM_GOLD_GUMMI }, + { MONSTER_SQUIRTLE, ITEM_BLUE_GUMMI }, + { MONSTER_CELEBI, ITEM_GOLD_GUMMI }, + { MONSTER_WYNAUT, ITEM_GOLD_GUMMI }, + { MONSTER_WOBBUFFET, ITEM_GOLD_GUMMI }, + { MONSTER_SOLROCK, ITEM_GRAY_GUMMI }, + { MONSTER_SHIFTRY, ITEM_GRASS_GUMMI }, + { MONSTER_DUGTRIO, ITEM_BROWN_GUMMI }, + { MONSTER_HORSEA, ITEM_BLUE_GUMMI }, + { MONSTER_BAGON, ITEM_ROYAL_GUMMI }, + { MONSTER_SEEDOT, ITEM_GRASS_GUMMI }, + { MONSTER_SPHEAL, ITEM_CLEAR_GUMMI }, + { MONSTER_EXEGGCUTE, ITEM_GRASS_GUMMI }, + { MONSTER_BELDUM, ITEM_SILVER_GUMMI }, + { MONSTER_CHIKORITA, ITEM_GRASS_GUMMI }, + { MONSTER_MEDICHAM, ITEM_ORANGE_GUMMI }, + { MONSTER_CHINCHOU, ITEM_BLUE_GUMMI }, + { MONSTER_CHIMECHO, ITEM_GOLD_GUMMI }, + { MONSTER_ALTARIA, ITEM_ROYAL_GUMMI }, + { MONSTER_SWABLU, ITEM_WHITE_GUMMI }, + { MONSTER_NINCADA, ITEM_GREEN_GUMMI }, + { MONSTER_SHUCKLE, ITEM_GREEN_GUMMI }, + { MONSTER_DIGLETT, ITEM_BROWN_GUMMI }, + { MONSTER_DEOXYS_SPEED, ITEM_GOLD_GUMMI }, + { MONSTER_NINJASK, ITEM_GREEN_GUMMI }, + { MONSTER_REMORAID, ITEM_BLUE_GUMMI }, + { MONSTER_DELIBIRD, ITEM_CLEAR_GUMMI }, + { MONSTER_HOUNDOUR, ITEM_BLACK_GUMMI }, + { MONSTER_AMPHAROS, ITEM_YELLOW_GUMMI }, + { MONSTER_DODUO, ITEM_WHITE_GUMMI }, + { MONSTER_DODRIO, ITEM_WHITE_GUMMI }, + { MONSTER_SMEARGLE, ITEM_WHITE_GUMMI }, + { MONSTER_KOFFING, ITEM_PINK_GUMMI }, + { MONSTER_TENTACRUEL, ITEM_BLUE_GUMMI }, + { MONSTER_DUSTOX, ITEM_GREEN_GUMMI }, + { MONSTER_TOGETIC, ITEM_WHITE_GUMMI }, + { MONSTER_TOGEPI, ITEM_WHITE_GUMMI }, + { MONSTER_LOUDRED, ITEM_WHITE_GUMMI }, + { MONSTER_GOLDEEN, ITEM_BLUE_GUMMI }, + { MONSTER_BARBOACH, ITEM_BLUE_GUMMI }, + { MONSTER_SEALEO, ITEM_CLEAR_GUMMI }, + { MONSTER_WALREIN, ITEM_CLEAR_GUMMI }, + { MONSTER_METAPOD, ITEM_GREEN_GUMMI }, + { MONSTER_TROPIUS, ITEM_GRASS_GUMMI }, + { MONSTER_DONPHAN, ITEM_BROWN_GUMMI }, + { MONSTER_NUMEL, ITEM_RED_GUMMI }, + { MONSTER_ODDISH, ITEM_GRASS_GUMMI }, + { MONSTER_TRAPINCH, ITEM_BROWN_GUMMI }, + { MONSTER_EXEGGUTOR, ITEM_GRASS_GUMMI }, + { MONSTER_SLAKOTH, ITEM_WHITE_GUMMI }, + { MONSTER_WHISCASH, ITEM_BLUE_GUMMI }, + { MONSTER_NIDOKING, ITEM_PINK_GUMMI }, + { MONSTER_NIDOQUEEN, ITEM_PINK_GUMMI }, + { MONSTER_NIDORAN_F, ITEM_PINK_GUMMI }, + { MONSTER_NIDORAN_M, ITEM_PINK_GUMMI }, + { MONSTER_NIDORINA, ITEM_PINK_GUMMI }, + { MONSTER_NIDORINO, ITEM_PINK_GUMMI }, + { MONSTER_MEOWTH, ITEM_WHITE_GUMMI }, + { MONSTER_SNEASEL, ITEM_BLACK_GUMMI }, + { MONSTER_POLIWHIRL, ITEM_BLUE_GUMMI }, + { MONSTER_POLITOED, ITEM_BLUE_GUMMI }, + { MONSTER_POLIWRATH, ITEM_BLUE_GUMMI }, + { MONSTER_POLIWAG, ITEM_BLUE_GUMMI }, + { MONSTER_QUAGSIRE, ITEM_BLUE_GUMMI }, + { MONSTER_SHEDINJA, ITEM_GREEN_GUMMI }, + { MONSTER_MARSHTOMP, ITEM_BLUE_GUMMI }, + { MONSTER_NATU, ITEM_GOLD_GUMMI }, + { MONSTER_XATU, ITEM_GOLD_GUMMI }, + { MONSTER_CLAYDOL, ITEM_BROWN_GUMMI }, + { MONSTER_CACTURNE, ITEM_GRASS_GUMMI }, + { MONSTER_DUNSPARCE, ITEM_WHITE_GUMMI }, + { MONSTER_NOSEPASS, ITEM_GRAY_GUMMI }, + { MONSTER_CLAMPERL, ITEM_BLUE_GUMMI }, + { MONSTER_SEEL, ITEM_BLUE_GUMMI }, + { MONSTER_STEELIX, ITEM_SILVER_GUMMI }, + { MONSTER_CAMERUPT, ITEM_RED_GUMMI }, + { MONSTER_EXPLOUD, ITEM_WHITE_GUMMI }, + { MONSTER_TYPHLOSION, ITEM_RED_GUMMI }, + { MONSTER_DRAGONAIR, ITEM_ROYAL_GUMMI }, + { MONSTER_BLAZIKEN, ITEM_RED_GUMMI }, + { MONSTER_LOMBRE, ITEM_BLUE_GUMMI }, + { MONSTER_LOTAD, ITEM_BLUE_GUMMI }, + { MONSTER_BUTTERFREE, ITEM_GREEN_GUMMI }, + { MONSTER_SCIZOR, ITEM_GREEN_GUMMI }, + { MONSTER_SPINDA, ITEM_WHITE_GUMMI }, + { MONSTER_HOPPIP, ITEM_GRASS_GUMMI }, + { MONSTER_SPOINK, ITEM_GOLD_GUMMI }, + { MONSTER_BLISSEY, ITEM_WHITE_GUMMI }, + { MONSTER_SEVIPER, ITEM_PINK_GUMMI }, + { MONSTER_PARAS, ITEM_GREEN_GUMMI }, + { MONSTER_PARASECT, ITEM_GREEN_GUMMI }, + { MONSTER_QWILFISH, ITEM_BLUE_GUMMI }, + { MONSTER_HARIYAMA, ITEM_ORANGE_GUMMI }, + { MONSTER_MR_MIME, ITEM_GOLD_GUMMI }, + { MONSTER_TYROGUE, ITEM_ORANGE_GUMMI }, + { MONSTER_CLOYSTER, ITEM_BLUE_GUMMI }, + { MONSTER_VOLBEAT, ITEM_GREEN_GUMMI }, + { MONSTER_TYRANITAR, ITEM_GRAY_GUMMI }, + { MONSTER_HUNTAIL, ITEM_BLUE_GUMMI }, + { MONSTER_CLEFFA, ITEM_WHITE_GUMMI }, + { MONSTER_WEEDLE, ITEM_GREEN_GUMMI }, + { MONSTER_PIKACHU, ITEM_YELLOW_GUMMI }, + { MONSTER_CLEFABLE, ITEM_WHITE_GUMMI }, + { MONSTER_PIDGEOT, ITEM_WHITE_GUMMI }, + { MONSTER_PIDGEOTTO, ITEM_WHITE_GUMMI }, + { MONSTER_PICHU, ITEM_YELLOW_GUMMI }, + { MONSTER_CLEFAIRY, ITEM_WHITE_GUMMI }, + { MONSTER_CHARMANDER, ITEM_RED_GUMMI }, + { MONSTER_STARYU, ITEM_BLUE_GUMMI }, + { MONSTER_CYNDAQUIL, ITEM_RED_GUMMI }, + { MONSTER_VIBRAVA, ITEM_BROWN_GUMMI }, + { MONSTER_SUNKERN, ITEM_GRASS_GUMMI }, + { MONSTER_TEDDIURSA, ITEM_WHITE_GUMMI }, + { MONSTER_VOLTORB, ITEM_YELLOW_GUMMI }, + { MONSTER_FEEBAS, ITEM_BLUE_GUMMI }, + { MONSTER_MOLTRES, ITEM_RED_GUMMI }, + { MONSTER_FLAREON, ITEM_RED_GUMMI }, + { MONSTER_ALAKAZAM, ITEM_GOLD_GUMMI }, + { MONSTER_MAGMAR, ITEM_RED_GUMMI }, + { MONSTER_GRUMPIG, ITEM_GOLD_GUMMI }, + { MONSTER_FORRETRESS, ITEM_GREEN_GUMMI }, + { MONSTER_WIGGLYTUFF, ITEM_WHITE_GUMMI }, + { MONSTER_IVYSAUR, ITEM_GRASS_GUMMI }, + { MONSTER_BULBASAUR, ITEM_GRASS_GUMMI }, + { MONSTER_VENUSAUR, ITEM_GRASS_GUMMI }, + { MONSTER_AERODACTYL, ITEM_GRAY_GUMMI }, + { MONSTER_MAGBY, ITEM_RED_GUMMI }, + { MONSTER_IGGLYBUFF, ITEM_WHITE_GUMMI }, + { MONSTER_FLYGON, ITEM_BROWN_GUMMI }, + { MONSTER_PLUSLE, ITEM_YELLOW_GUMMI }, + { MONSTER_UMBREON, ITEM_BLACK_GUMMI }, + { MONSTER_ARTICUNO, ITEM_CLEAR_GUMMI }, + { MONSTER_JIGGLYPUFF, ITEM_WHITE_GUMMI }, + { MONSTER_SNUBBULL, ITEM_WHITE_GUMMI }, + { MONSTER_CORPHISH, ITEM_BLUE_GUMMI }, + { MONSTER_BAYLEEF, ITEM_GRASS_GUMMI }, + { MONSTER_GRIMER, ITEM_PINK_GUMMI }, + { MONSTER_MUK, ITEM_PINK_GUMMI }, + { MONSTER_HERACROSS, ITEM_GREEN_GUMMI }, + { MONSTER_PELIPPER, ITEM_BLUE_GUMMI }, + { MONSTER_HOUNDOOM, ITEM_BLACK_GUMMI }, + { MONSTER_PERSIAN, ITEM_WHITE_GUMMI }, + { MONSTER_LICKITUNG, ITEM_WHITE_GUMMI }, + { MONSTER_HO_OH, ITEM_RED_GUMMI }, + { MONSTER_WAILORD, ITEM_BLUE_GUMMI }, + { MONSTER_WAILMER, ITEM_BLUE_GUMMI }, + { MONSTER_HOOTHOOT, ITEM_WHITE_GUMMI }, + { MONSTER_SALAMENCE, ITEM_ROYAL_GUMMI }, + { MONSTER_AGGRON, ITEM_SILVER_GUMMI }, + { MONSTER_POOCHYENA, ITEM_BLACK_GUMMI }, + { MONSTER_PIDGEY, ITEM_WHITE_GUMMI }, + { MONSTER_PONYTA, ITEM_RED_GUMMI }, + { MONSTER_SKIPLOOM, ITEM_GRASS_GUMMI }, + { MONSTER_PORYGON, ITEM_WHITE_GUMMI }, + { MONSTER_PORYGON2, ITEM_WHITE_GUMMI }, + { MONSTER_CASTFORM_RAINY, ITEM_WHITE_GUMMI }, + { MONSTER_MINUN, ITEM_YELLOW_GUMMI }, + { MONSTER_MAGCARGO, ITEM_RED_GUMMI }, + { MONSTER_MAKUHITA, ITEM_ORANGE_GUMMI }, + { MONSTER_SLUGMA, ITEM_RED_GUMMI }, + { MONSTER_QUILAVA, ITEM_RED_GUMMI }, + { MONSTER_BELLSPROUT, ITEM_GRASS_GUMMI }, + { MONSTER_WEEZING, ITEM_PINK_GUMMI }, + { MONSTER_LINOONE, ITEM_WHITE_GUMMI }, + { MONSTER_CASCOON, ITEM_GREEN_GUMMI }, + { MONSTER_MARILL, ITEM_BLUE_GUMMI }, + { MONSTER_AZUMARILL, ITEM_BLUE_GUMMI }, + { MONSTER_SWALOT, ITEM_PINK_GUMMI }, + { MONSTER_ELECTRODE, ITEM_YELLOW_GUMMI }, + { MONSTER_MANKEY, ITEM_ORANGE_GUMMI }, + { MONSTER_MANTINE, ITEM_BLUE_GUMMI }, + { MONSTER_MUDKIP, ITEM_BLUE_GUMMI }, + { MONSTER_DRATINI, ITEM_ROYAL_GUMMI }, + { MONSTER_MEW, ITEM_GOLD_GUMMI }, + { MONSTER_MEWTWO, ITEM_GOLD_GUMMI }, + { MONSTER_MILTANK, ITEM_WHITE_GUMMI }, + { MONSTER_MILOTIC, ITEM_BLUE_GUMMI }, + { MONSTER_MISDREAVUS, ITEM_PURPLE_GUMMI }, + { MONSTER_SMOOCHUM, ITEM_CLEAR_GUMMI }, + { MONSTER_MEGANIUM, ITEM_GRASS_GUMMI }, + { MONSTER_METAGROSS, ITEM_SILVER_GUMMI }, + { MONSTER_DITTO, ITEM_WHITE_GUMMI }, + { MONSTER_METANG, ITEM_SILVER_GUMMI }, + { MONSTER_TENTACOOL, ITEM_BLUE_GUMMI }, + { MONSTER_MAREEP, ITEM_YELLOW_GUMMI }, + { MONSTER_FLAAFFY, ITEM_YELLOW_GUMMI }, + { MONSTER_VENOMOTH, ITEM_GREEN_GUMMI }, + { MONSTER_TANGELA, ITEM_GRASS_GUMMI }, + { MONSTER_BALTOY, ITEM_BROWN_GUMMI }, + { MONSTER_SLOWKING, ITEM_BLUE_GUMMI }, + { MONSTER_SLOWBRO, ITEM_BLUE_GUMMI }, + { MONSTER_SLOWPOKE, ITEM_BLUE_GUMMI }, + { MONSTER_MURKROW, ITEM_BLACK_GUMMI }, + { MONSTER_SABLEYE, ITEM_BLACK_GUMMI }, + { MONSTER_VIGOROTH, ITEM_WHITE_GUMMI }, + { MONSTER_YANMA, ITEM_GREEN_GUMMI }, + { MONSTER_SNORUNT, ITEM_CLEAR_GUMMI }, + { MONSTER_CRADILY, ITEM_GRAY_GUMMI }, + { MONSTER_KADABRA, ITEM_GOLD_GUMMI }, + { MONSTER_LARVITAR, ITEM_GRAY_GUMMI }, + { MONSTER_DUSKULL, ITEM_PURPLE_GUMMI }, + { MONSTER_NOCTOWL, ITEM_WHITE_GUMMI }, + { MONSTER_RAIKOU, ITEM_YELLOW_GUMMI }, + { MONSTER_RAICHU, ITEM_YELLOW_GUMMI }, + { MONSTER_MANECTRIC, ITEM_YELLOW_GUMMI }, + { MONSTER_SWAMPERT, ITEM_BLUE_GUMMI }, + { MONSTER_ELECTRIKE, ITEM_YELLOW_GUMMI }, + { MONSTER_CHANSEY, ITEM_WHITE_GUMMI }, + { MONSTER_RATICATE, ITEM_WHITE_GUMMI }, + { MONSTER_LATIAS, ITEM_ROYAL_GUMMI }, + { MONSTER_LATIOS, ITEM_ROYAL_GUMMI }, + { MONSTER_LUVDISC, ITEM_BLUE_GUMMI }, + { MONSTER_LAPRAS, ITEM_BLUE_GUMMI }, + { MONSTER_VILEPLUME, ITEM_GRASS_GUMMI }, + { MONSTER_RALTS, ITEM_GOLD_GUMMI }, + { MONSTER_LANTURN, ITEM_BLUE_GUMMI }, + { MONSTER_CHARMELEON, ITEM_RED_GUMMI }, + { MONSTER_CHARIZARD, ITEM_RED_GUMMI }, + { MONSTER_LILEEP, ITEM_GRAY_GUMMI }, + { MONSTER_URSARING, ITEM_WHITE_GUMMI }, + { MONSTER_JYNX, ITEM_CLEAR_GUMMI }, + { MONSTER_LUGIA, ITEM_GOLD_GUMMI }, + { MONSTER_LUNATONE, ITEM_GRAY_GUMMI }, + { MONSTER_AZURILL, ITEM_WHITE_GUMMI }, + { MONSTER_LUDICOLO, ITEM_BLUE_GUMMI }, + { MONSTER_MAGNETON, ITEM_YELLOW_GUMMI }, + { MONSTER_REGICE, ITEM_CLEAR_GUMMI }, + { MONSTER_REGISTEEL, ITEM_SILVER_GUMMI }, + { MONSTER_REGIROCK, ITEM_GRAY_GUMMI }, + { MONSTER_RAYQUAZA, ITEM_ROYAL_GUMMI }, + { MONSTER_LEDIAN, ITEM_GREEN_GUMMI }, + { MONSTER_LEDYBA, ITEM_GREEN_GUMMI }, + { MONSTER_VULPIX, ITEM_RED_GUMMI }, + { MONSTER_ROSELIA, ITEM_GRASS_GUMMI }, + { MONSTER_COMBUSKEN, ITEM_RED_GUMMI }, + { MONSTER_JUMPLUFF, ITEM_GRASS_GUMMI }, + { MONSTER_TOTODILE, ITEM_BLUE_GUMMI }, + { MONSTER_MACHOP, ITEM_ORANGE_GUMMI } +}; + +ALIGNED(4) const u8 gMankeyMission[] = _("Punish bad {COLOR_1 YELLOW}Mankey{END_COLOR_TEXT_1}!"); +ALIGNED(4) const u8 gSmeargleMission[] = _("{COLOR_1 YELLOW}Smeargle{END_COLOR_TEXT_1}{APOSTROPHE}s desperate plea!"); +ALIGNED(4) const u8 gMedichamMission[] = _("{COLOR_1 YELLOW}Medicham{END_COLOR_TEXT_1}: Help me!"); +ALIGNED(4) const u8 gUnknown_80E8830[] = _("Deliver one {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) const u8 gUnknown_80E8848[] = _("One {COLOR_1 GREEN}%s{END_COLOR_TEXT_1} wanted!"); +ALIGNED(4) const u8 gUnknown_80E885C[] = _("Save my child!"); +ALIGNED(4) const u8 gUnknown_80E886C[] = _("Escort me to my love!"); +ALIGNED(4) const u8 gUnknown_80E8884[] = _("Near %s"); +ALIGNED(4) const u8 gUnknown_80E888C[] = _("Rescue Description"); +ALIGNED(4) const u8 gMankeyMissionDescription[] = _("Please punish bad {COLOR_1 YELLOW}Mankey{END_COLOR_TEXT_1}{APOSTROPHE}s gang."); + +ALIGNED(4) const u8 gSmeargleMissionDescription[] = _( + "I didn{APOSTROPHE}t want to become a grown-up{COMMA} so I\n" + "fled{COMMA} but now I{APOSTROPHE}ve lost my way! Help!"); + +ALIGNED(4) const u8 gMedichamMissionDescription[] = _( + "This is {COLOR_1 YELLOW}Medicham{END_COLOR_TEXT_1}. Rescue me{COMMA} please!\n" + "The reward is a secret〜♪ "); + +ALIGNED(4) const u8 gUnknown_80E8968[] = _( + "With the item {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}{COMMA} I can\n" + "evolve! I{APOSTROPHE}m yearning to evolve! Help!"); + +ALIGNED(4) const u8 gUnknown_80E89B0[] = _( + "The {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}! What I love to eat\n" + "and can{APOSTROPHE}t live without! Please get one!"); + +ALIGNED(4) const u8 gUnknown_80E89FC[] = _( + "This is a rescue through communication.\n" + "Get a friend to help you!"); + +ALIGNED(4) const u8 gUnknown_80E8A40[] = _( + "This is a rescue through communication.\n" + "Rescue a friend!"); + +ALIGNED(4) const u8 gUnknown_80E8A7C[] = _( + "This is a rescue through communication.\n" + "Send your thanks to your friend!"); + +ALIGNED(4) const u8 gUnknown_80E8AC8[] = _("Client:"); +ALIGNED(4) const u8 gUnknown_80E8AD0[] = _("%s{COLOR_1 GREEN}{UNK_ICON_81_69}%s{UNK_ICON_81_6A}{END_COLOR_TEXT_1}"); +ALIGNED(4) const u8 gUnknown_80E8AE0[] = _("Objective:"); +ALIGNED(4) const u8 gUnknown_80E8AEC[] = _("Friend Rescue"); +ALIGNED(4) const u8 gUnknown_80E8AFC[] = _("Deliver {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) const u8 gUnknown_80E8B10[] = _("Find {COLOR_1 GREEN}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) const u8 gUnknown_80E8B20[] = _("Help me."); +ALIGNED(4) const u8 gUnknown_80E8B2C[] = _("Escort to {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) const u8 gUnknown_80E8B40[] = _("Find {COLOR_1 YELLOW}%s{END_COLOR_TEXT_1}."); +ALIGNED(4) const u8 gSpecialMissionText[] = _("Special mission"); +ALIGNED(4) const u8 gPlaceText[] = _("Place:"); +ALIGNED(4) const u8 gDifficultyText[] = _("Difficulty:"); +ALIGNED(4) const u8 gRewardText[] = _("Reward:"); +ALIGNED(4) const u8 gUnknown_80E8B7C[] = _("Wonder Mail:"); \ No newline at end of file diff --git a/src/load_screen.c b/src/load_screen.c index 96240de2b..b2a6c09f9 100644 --- a/src/load_screen.c +++ b/src/load_screen.c @@ -7,6 +7,7 @@ #include "code_8097670.h" #include "constants/main_menu.h" #include "constants/wonder_mail.h" +#include "dungeon.h" #include "event_flag.h" #include "file_system.h" #include "ground_main.h" @@ -50,7 +51,6 @@ void DrawLoadScreenText(void); void sub_80397B4(void); extern void sub_80920D8(u8 *); -extern void PrintDungeonLocationtoBuffer(u8 *, DungeonLocation *); const UnkTextStruct2 gUnknown_80E75F8 = { 0x00, 0x00, 0x00, 0x00, diff --git a/src/personality_test.c b/src/personality_test.c deleted file mode 100644 index bf4b128e6..000000000 --- a/src/personality_test.c +++ /dev/null @@ -1,1037 +0,0 @@ -#include "global.h" -#include "bg_palette_buffer.h" -#include "code_80118A4.h" -#include "code_80130A8.h" -#include "code_801602C.h" -#include "code_8098BDC.h" -#include "constants/emotions.h" -#include "constants/input.h" -#include "constants/type.h" -#include "game_options.h" -#include "input.h" -#include "memory.h" -#include "menu_input.h" -#include "personality_test.h" -#include "pokemon.h" -#include "random.h" -#include "save.h" -#include "text1.h" -#include "text2.h" -#include "text_util.h" - -enum -{ - PERSONALITY_GENERATE_NEW_QUESTION, - PERSONALITY_ASK_QUESTION, - PERSONALITY_UPDATE_TOTALS, - PERSONALITY_PLAYER_GENDER, - PERSONALITY_REVEAL, - PERSONALITY_STARTER_REVEAL, - PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1, - PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2, - PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3, - PERSONALITY_PARTNER_SELECTION, - PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1, - PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2, - PERSONALITY_PARTNER_NICKNAME, - PERSONALITY_END_INTRO, - PERSONALITY_ADVANCE_TO_TEST_END, - PERSONALITY_TEST_END, -}; - -EWRAM_DATA_2 struct PersonalityTestTracker *gPersonalityTestTracker = {0}; -EWRAM_DATA_2 struct PersonalityStruct_203B404 *gUnknown_203B404 = {0}; - -extern void sub_8001024(u32 *); -extern s32 sub_8094E4C(void); -extern void sub_8094D28(s32); -extern void sub_8001044(u32 *); - -extern void sub_800836C(u32, u8 *r0, u32); - -extern void RedrawPartnerSelectionMenu(void); - -extern u32 sub_80095E4(s16, u32); - -extern const char gStarterReveal[]; - -extern u8 gAvailablePokemonNames[0x50]; - -extern const char gHardyDescription[]; -extern const char gDocileDescription[]; -extern const char gBraveDescription[]; -extern const char gJollyDescription[]; -extern const char gImpishDescription[]; -extern const char gNaiveDescription[]; -extern const char gTimidDescription[]; -extern const char gHastyDescription[]; -extern const char gSassyDescription[]; -extern const char gCalmDescription[]; -extern const char gRelaxedDescription[]; -extern const char gLonelyDescription[]; -extern const char gQuirkyDescription[]; -extern const u8 GirlText[]; -extern const u8 BoyText[]; - -extern const struct PersonalityQuestion HardyQuest1; -extern const struct PersonalityQuestion HardyQuest2; -extern const struct PersonalityQuestion HardyQuest3; -extern const struct PersonalityQuestion HardyQuest4; -extern const struct PersonalityQuestion DocileQuest1; -extern const struct PersonalityQuestion DocileQuest2; -extern const struct PersonalityQuestion DocileQuest3; -extern const struct PersonalityQuestion DocileQuest4; -extern const struct PersonalityQuestion BraveQuest1; -extern const struct PersonalityQuestion BraveQuest2A; -extern const struct PersonalityQuestion BraveQuest3; -extern const struct PersonalityQuestion BraveQuest4; -extern const struct PersonalityQuestion JollyQuest1; -extern const struct PersonalityQuestion JollyQuest2; -extern const struct PersonalityQuestion JollyQuest3; -extern const struct PersonalityQuestion JollyQuest4; -extern const struct PersonalityQuestion ImpishQuest1; -extern const struct PersonalityQuestion ImpishQuest2; -extern const struct PersonalityQuestion ImpishQuest3; -extern const struct PersonalityQuestion ImpishQuest4; -extern const struct PersonalityQuestion NaiveQuest1; -extern const struct PersonalityQuestion NaiveQuest2; -extern const struct PersonalityQuestion NaiveQuest3; -extern const struct PersonalityQuestion NaiveQuest4; -extern const struct PersonalityQuestion TimidQuest1; -extern const struct PersonalityQuestion TimidQuest2; -extern const struct PersonalityQuestion TimidQuest3; -extern const struct PersonalityQuestion TimidQuest4; -extern const struct PersonalityQuestion HastyQuest1; -extern const struct PersonalityQuestion HastyQuest2; -extern const struct PersonalityQuestion HastyQuest3; -extern const struct PersonalityQuestion HastyQuest4; -extern const struct PersonalityQuestion SassyQuest1; -extern const struct PersonalityQuestion SassyQuest2; -extern const struct PersonalityQuestion SassyQuest3; -extern const struct PersonalityQuestion SassyQuest4; -extern const struct PersonalityQuestion CalmQuest1; -extern const struct PersonalityQuestion CalmQuest2; -extern const struct PersonalityQuestion CalmQuest3; -extern const struct PersonalityQuestion CalmQuest4; -extern const struct PersonalityQuestion RelaxedQuest1; -extern const struct PersonalityQuestion RelaxedQuest2; -extern const struct PersonalityQuestion RelaxedQuest3; -extern const struct PersonalityQuestion RelaxedQuest4; -extern const struct PersonalityQuestion LonelyQuest1; -extern const struct PersonalityQuestion LonelyQuest2; -extern const struct PersonalityQuestion LonelyQuest3; -extern const struct PersonalityQuestion LonelyQuest4; -extern const struct PersonalityQuestion QuirkyQuest1; -extern const struct PersonalityQuestion QuirkyQuest2; -extern const struct PersonalityQuestion QuirkyQuest3; -extern const struct PersonalityQuestion QuirkyQuest4; -extern const struct PersonalityQuestion MiscQuest1; -extern const struct PersonalityQuestion MiscQuest2; -extern const struct PersonalityQuestion MiscQuest3; -extern const struct PersonalityQuestion BraveQuest2B; - -const struct PersonalityQuestion * const gPersonalityQuestionPointerTable[NUM_QUIZ_QUESTIONS + 1] = -{ - &HardyQuest1, - &HardyQuest2, - &HardyQuest3, - &HardyQuest4, - &DocileQuest1, - &DocileQuest2, - &DocileQuest3, - &DocileQuest4, - &BraveQuest1, - &BraveQuest2A, - &BraveQuest3, - &BraveQuest4, - &JollyQuest1, - &JollyQuest2, - &JollyQuest3, - &JollyQuest4, - &ImpishQuest1, - &ImpishQuest2, - &ImpishQuest3, - &ImpishQuest4, - &NaiveQuest1, - &NaiveQuest2, - &NaiveQuest3, - &NaiveQuest4, - &TimidQuest1, - &TimidQuest2, - &TimidQuest3, - &TimidQuest4, - &HastyQuest1, - &HastyQuest2, - &HastyQuest3, - &HastyQuest4, - &SassyQuest1, - &SassyQuest2, - &SassyQuest3, - &SassyQuest4, - &CalmQuest1, - &CalmQuest2, - &CalmQuest3, - &CalmQuest4, - &RelaxedQuest1, - &RelaxedQuest2, - &RelaxedQuest3, - &RelaxedQuest4, - &LonelyQuest1, - &LonelyQuest2, - &LonelyQuest3, - &LonelyQuest4, - &QuirkyQuest1, - &QuirkyQuest2, - &QuirkyQuest3, - &QuirkyQuest4, - &MiscQuest1, - &MiscQuest2, - &MiscQuest3, - &BraveQuest2B -}; - -// NOTE: 2nd Part of Brave is included at the end so it isn't actually chosen -const u8 gNatureQuestionTable[NUM_QUIZ_QUESTIONS + 1] = -{ - HARDY, - HARDY, - HARDY, - HARDY, - DOCILE, - DOCILE, - DOCILE, - DOCILE, - BRAVE, - BRAVE, - BRAVE, - BRAVE, - JOLLY, - JOLLY, - JOLLY, - JOLLY, - IMPISH, - IMPISH, - IMPISH, - IMPISH, - NAIVE, - NAIVE, - NAIVE, - NAIVE, - TIMID, - TIMID, - TIMID, - TIMID, - HASTY, - HASTY, - HASTY, - HASTY, - SASSY, - SASSY, - SASSY, - SASSY, - CALM, - CALM, - CALM, - CALM, - RELAXED, - RELAXED, - RELAXED, - RELAXED, - LONELY, - LONELY, - LONELY, - LONELY, - QUIRKY, - QUIRKY, - QUIRKY, - QUIRKY, - MISC, - MISC, - MISC, - BRAVE -}; - -ALIGNED(4) const u8 gGenderText[] = "Are you a boy or a girl?"; -const char * const gGenderTextPtr = gGenderText; - -const MenuItem gGenderMenu[] = -{ - {BoyText, 0}, - {GirlText, 1}, - {NULL, -1}, -}; - -ALIGNED(4) const u8 GirlText[] = "Girl."; -ALIGNED(4) const u8 BoyText[] = "Boy."; - -const u8 unknownPersonality[] = -{ - 1, 2, 3, 4, 5, 6, 7, 8, 9, 0xA, 0xB, 0xC, 0xD -}; - -const s16 gStarters[NUM_PERSONALITIES][2] = -{ - // MALE / FEMALE - [HARDY] = {MONSTER_CHARMANDER, MONSTER_PIKACHU}, - [DOCILE] = {MONSTER_BULBASAUR, MONSTER_CHIKORITA}, - [BRAVE] = {MONSTER_MACHOP, MONSTER_CHARMANDER}, - [JOLLY] = {MONSTER_SQUIRTLE, MONSTER_TOTODILE}, - [IMPISH] = {MONSTER_PIKACHU, MONSTER_CUBONE}, - [NAIVE] = {MONSTER_TOTODILE, MONSTER_EEVEE}, - [TIMID] = {MONSTER_CYNDAQUIL, MONSTER_MUDKIP}, - [HASTY] = {MONSTER_TORCHIC, MONSTER_SKITTY}, - [SASSY] = {MONSTER_TREECKO, MONSTER_TORCHIC}, - [CALM] = {MONSTER_MUDKIP, MONSTER_BULBASAUR}, - [RELAXED] = {MONSTER_PSYDUCK, MONSTER_SQUIRTLE}, - [LONELY] = {MONSTER_CUBONE, MONSTER_PSYDUCK}, - [QUIRKY] = {MONSTER_MEOWTH, MONSTER_TREECKO} -}; - -ALIGNED(4) const char gStarterReveal[] = _("\n{CENTER_ALIGN}The Pokémon {ARG_POKEMON_0}!"); -const char * const gStarterRevealPtr = gStarterReveal; - -ALIGNED(4) const char gPartnerPrompt[] = _( - "{CENTER_ALIGN}This is the final step.{WAIT_PRESS}\n" - "{CENTER_ALIGN}Who would you like to have as a partner?{EXTRA_MSG}" - "{CENTER_ALIGN}Choose the Pokémon you want\n" - "{CENTER_ALIGN}as your partner from this group."); -const char * const gPartnerPromptPtr = gPartnerPrompt; - -ALIGNED(4) const char gPartnerNickPrompt[] = _("{CENTER_ALIGN}What is your partner{APOSTROPHE}s nickname?"); -const char * const gPartnerNickPromptPtr = gPartnerNickPrompt; - -ALIGNED(4) const char gEndIntroText[] = _( - "{CENTER_ALIGN}OK! We{APOSTROPHE}re all set!{EXTRA_MSG}" - "{CENTER_ALIGN}Let{APOSTROPHE}s get you into the\n" - "{CENTER_ALIGN}world of Pokémon!{EXTRA_MSG}" - "{CENTER_ALIGN}Go for it!"); -const char * const gEndIntroTextPtr = gEndIntroText; - -const char * const gPersonalityTypeDescriptionTable[NUM_PERSONALITIES] = -{ - [HARDY] = gHardyDescription, - [DOCILE] = gDocileDescription, - [BRAVE] = gBraveDescription, - [JOLLY] = gJollyDescription, - [IMPISH] = gImpishDescription, - [NAIVE] = gNaiveDescription, - [TIMID] = gTimidDescription, - [HASTY] = gHastyDescription, - [SASSY] = gSassyDescription, - [CALM] = gCalmDescription, - [RELAXED] = gRelaxedDescription, - [LONELY] = gLonelyDescription, - [QUIRKY] = gQuirkyDescription -}; - -#include "data/nature_description.h" - -const UnkTextStruct2 gUnknown_80F4244 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x05, - 0x0C, 0x06, - 0x05, 0x05, - 0x05, 0x00, - NULL -}; - - - - -// FILE 2: - - - -const char filler[] = "pksdir0"; - -const s16 gPartners[NUM_PARTNERS] = -{ - MONSTER_CHARMANDER, - MONSTER_BULBASAUR, - MONSTER_SQUIRTLE, - MONSTER_PIKACHU, - MONSTER_CHIKORITA, - MONSTER_TOTODILE, - MONSTER_CYNDAQUIL, - MONSTER_TORCHIC, - MONSTER_TREECKO, - MONSTER_MUDKIP -}; - -const UnkTextStruct2 gUnknown_80F4278 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x03, - 0x00, 0x00, - 0x00, 0x00, - 0x00, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80F4290 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x06, - 0x02, 0x02, - 0x09, 0x0B, - 0x0D, 0x00, - NULL -}; - -const UnkTextStruct2 gUnknown_80F42A8 = -{ - 0x00, 0x00, 0x00, 0x00, - 0x05, - 0x0E, 0x04, - 0x05, 0x05, - 0x05, 0x00, - NULL -}; - -const char gPartnerSelectionHeaderText[] = _("Pokémon"); - -u8 CreateTestTracker(void) -{ - gPersonalityTestTracker = MemoryAlloc(sizeof(struct PersonalityTestTracker),8); - sub_801317C(&gPersonalityTestTracker->input); - InitializeTestStats(); - sub_8099690(1); - return 1; -} - -void InitializeTestStats(void) -{ - s32 counter; - - sub_8001024(&gPersonalityTestTracker->unk4); - gPersonalityTestTracker->FrameCounter = 0; - gPersonalityTestTracker->TestState = 0; - gPersonalityTestTracker->QuestionCounter = 0; - for(counter = 0; counter < NUM_PERSONALITIES; counter++){ - gPersonalityTestTracker->NatureTotals[counter] = 0; - } - gPersonalityTestTracker->currQuestionIndex = 0; - for(counter = 0; counter < NUM_QUIZ_QUESTIONS; counter++){ - gPersonalityTestTracker->QuestionTracker[counter] = 0; - } - gPersonalityTestTracker->playerNature = 0; - gPersonalityTestTracker->playerGender = 0; -} - -u8 HandleTestTrackerState(void) -{ - s32 counter; - - s32 iVar1; - - gPersonalityTestTracker->FrameCounter++; - switch(gPersonalityTestTracker->TestState) - { - case PERSONALITY_GENERATE_NEW_QUESTION: - GenerateNewQuestionOrGender(); - break; - case PERSONALITY_ASK_QUESTION: - CallPromptNewQuestion(); - break; - case PERSONALITY_UPDATE_TOTALS: - UpdateNatureTotals(); - break; - case PERSONALITY_PLAYER_GENDER: - SetPlayerGender(); - break; - case PERSONALITY_REVEAL: - RevealPersonality(); - break; - case PERSONALITY_STARTER_REVEAL: - RevealStarter(); - break; - case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1: - AdvanceToPickPartnerPrompt(); - break; - case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2: - PromptPickPartner(); - break; - case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3: - AdvanceToPartnerSelection(); - break; - case PERSONALITY_PARTNER_SELECTION: - CallCreatePartnerSelectionMenu(); - break; - case PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1: - PromptForPartnerNickname(); - break; - case PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2: - AdvanceToPartnerNickhameScreen(); - break; - case PERSONALITY_PARTNER_NICKNAME: - NicknamePartner(); - break; - case PERSONALITY_END_INTRO: - PrintEndIntroText(); - break; - case PERSONALITY_ADVANCE_TO_TEST_END: - AdvanceToTestEnd(); - break; - case PERSONALITY_TEST_END: - iVar1 = Rand32Bit() * gPersonalityTestTracker->FrameCounter; - sub_8094D28(Rand32Bit()); - - for(counter = 0; counter < NUM_PERSONALITIES; counter++){ - iVar1 *= (gPersonalityTestTracker->NatureTotals[counter] + counter + 3); - } - - iVar1 += sub_8094E4C(); - while (iVar1 == -1) { - iVar1 += sub_8094E4C(); - } - sub_8011C40(iVar1); - return 3; - default: - break; - } - return 0; -} - -void DeleteTestTracker(void) -{ - sub_8001044(&gPersonalityTestTracker->unk4); - MemoryFree(gPersonalityTestTracker); - gPersonalityTestTracker = NULL; -} - -void GenerateNewQuestionOrGender(void) -{ - u8 category; - int counter; - int newQuestion; - - gPersonalityTestTracker->QuestionCounter++; - if (gPersonalityTestTracker->QuestionCounter > MAX_ASKED_QUESTIONS) { - // We've asked enough questions - sub_8014248(gGenderText, 0, 0, gGenderMenu, 0, 3, 0, 0, 257); - gPersonalityTestTracker->TestState = PERSONALITY_PLAYER_GENDER; - } - else - { - do { - // Generate new question number and make sure we haven't done it - newQuestion = RandInt(NUM_QUIZ_QUESTIONS); - gPersonalityTestTracker->currQuestionIndex = newQuestion; - } while (gPersonalityTestTracker->QuestionTracker[newQuestion] == 1); - - // Found one so let's get the category - category = gNatureQuestionTable[gPersonalityTestTracker->currQuestionIndex]; - - // Mark all of the questions in the category as used - for(counter = 0; counter < NUM_QUIZ_QUESTIONS; counter++){ - if (gNatureQuestionTable[counter] == category) - gPersonalityTestTracker->QuestionTracker[counter] = 1; - } - gPersonalityTestTracker->TestState = PERSONALITY_ASK_QUESTION; - } -} - -void CallPromptNewQuestion(void) -{ - PromptNewQuestion(); - gPersonalityTestTracker->TestState = PERSONALITY_UPDATE_TOTALS; -} - -void UpdateNatureTotals() -{ - s32 answerIndex; - s32 natureIndex; - const u8 *pointArray; - - if (!sub_80144A4(&answerIndex)) - { - // This is for the second part of Brave 2 Question if you fight.. - if (answerIndex == BRAVE_2B_TRIGGER) - { - // Set question to BRAVE_2B and ask the question.. - gPersonalityTestTracker->currQuestionIndex = NUM_QUIZ_QUESTIONS; - gPersonalityTestTracker->TestState = PERSONALITY_ASK_QUESTION; - } - else - { - pointArray = gPersonalityQuestionPointerTable[gPersonalityTestTracker->currQuestionIndex]->effects; - // Skip until we get to the one for our answer - // Each Answer has 16 bytes. 13 are currently used with 3 remaining - pointArray += (NUM_PERSONALITIES + 3) * answerIndex; - for (natureIndex = 0; natureIndex < NUM_PERSONALITIES; natureIndex++) - { - gPersonalityTestTracker->NatureTotals[natureIndex] += pointArray[natureIndex]; - } - gPersonalityTestTracker->TestState = PERSONALITY_GENERATE_NEW_QUESTION; - } - } -} - -void SetPlayerGender(void) -{ - - int gender; - - if (sub_80144A4(&gender) == 0) { - if (gender == MALE) { - gPersonalityTestTracker->playerGender = MALE; - gGameOptionsRef->playerGender = MALE; - } - else - { - gPersonalityTestTracker->playerGender = FEMALE; - gGameOptionsRef->playerGender = FEMALE; - } - sub_8099690(0); - gPersonalityTestTracker->TestState = PERSONALITY_REVEAL; - } -} - -void RevealPersonality(void) -{ - s32 currentNature; - s32 counter; - - gPersonalityTestTracker->playerNature = RandInt(NUM_PERSONALITIES); - currentNature = gPersonalityTestTracker->playerNature; - - for(counter = 0; counter < NUM_PERSONALITIES - 1; counter++){ - currentNature++; - - // Wraparound check - if (currentNature > QUIRKY) { - currentNature = HARDY; - } - - if (gPersonalityTestTracker->NatureTotals[currentNature] > gPersonalityTestTracker->NatureTotals[gPersonalityTestTracker->playerNature]) { - gPersonalityTestTracker->playerNature = currentNature; - } - } - gPersonalityTestTracker->StarterID = gStarters[gPersonalityTestTracker->playerNature][gPersonalityTestTracker->playerGender]; - PrintPersonalityTypeDescription(); - gPersonalityTestTracker->TestState = PERSONALITY_STARTER_REVEAL; -} - -void RevealStarter(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - sub_80141B4(gStarterReveal,0,0,0x101); - PersonalityTest_DisplayStarterSprite(); - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1; - } -} - -void AdvanceToPickPartnerPrompt(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2; - } -} - -void PromptPickPartner(void) -{ - sub_80141B4(gPartnerPrompt, 0, 0, 0x301); - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3; -} - -void AdvanceToPartnerSelection(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - gPersonalityTestTracker->TestState = PERSONALITY_PARTNER_SELECTION; - } -} - -void CallCreatePartnerSelectionMenu(void) -{ - CreatePartnerSelectionMenu(gPersonalityTestTracker->StarterID); - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1; -} - -void PromptForPartnerNickname(void) -{ - u16 selectedPartner; - - selectedPartner = HandlePartnerSelectionInput(); - if (selectedPartner != 0xffff) - { - if(selectedPartner != 0xfffe) { - sub_803CE6C(); - gPersonalityTestTracker->PartnerID = selectedPartner; - sub_80141B4(gPartnerNickPrompt, 0, 0, 0x301); - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2; - } - } -} - -void AdvanceToPartnerNickhameScreen(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - gPersonalityTestTracker->TestState = PERSONALITY_PARTNER_NICKNAME; - } -} - -void NicknamePartner(void) -{ - CopyStringtoBuffer(gPersonalityTestTracker->PartnerNick, GetMonSpecies(gPersonalityTestTracker->PartnerID)); - sub_801602C(3, gPersonalityTestTracker->PartnerNick); - gPersonalityTestTracker->TestState = PERSONALITY_END_INTRO; -} - -void PrintEndIntroText(void) -{ - if (sub_8016080()) { - sub_80160D8(); - sub_80141B4(gEndIntroText, 0, 0, 0x301); - gPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_TEST_END; - } -} - -void AdvanceToTestEnd(void) -{ - s32 temp; - - if (sub_80144A4(&temp) == 0) { - gPersonalityTestTracker->TestState = PERSONALITY_TEST_END; - } -} - -void PromptNewQuestion(void) -{ - sub_8014248(gPersonalityQuestionPointerTable[gPersonalityTestTracker->currQuestionIndex]->question, - 0, 0, - (MenuItem *)gPersonalityQuestionPointerTable[gPersonalityTestTracker->currQuestionIndex]->answers, - 0, 3, 0, 0, 0x101); -} - -void PrintPersonalityTypeDescription(void) -{ - CopyMonsterNametoBuffer(gAvailablePokemonNames, gPersonalityTestTracker->StarterID); - sub_80141B4(gPersonalityTypeDescriptionTable[gPersonalityTestTracker->playerNature],0, - 0,0x101); -} - -void PersonalityTest_DisplayStarterSprite(void) -{ - s32 starterID; - OpenedFile *faceFile; - int palleteIndex; - u8 *r6; - u32 faceIndex; - UnkTextStruct2 stackArray[4]; - - starterID = gPersonalityTestTracker->StarterID; - sub_8006518(stackArray); - stackArray[1] = gUnknown_80F4244; - ResetUnusedInputStruct(); - sub_800641C(stackArray, TRUE, FALSE); - sub_8008C54(1); - sub_80073B8(1); - faceFile = GetDialogueSpriteDataPtr(starterID); - r6 = ((struct FaceData *)(faceFile->data))->unk0[1 + EMOTION_HAPPY]; - faceIndex = EMOTION_HAPPY; - for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ - SetBGPaletteBufferColorArray(palleteIndex + 224, &((struct FaceData *)(faceFile->data))->unk0[faceIndex][palleteIndex << 2]); - } - sub_800836C(1, r6, 0xe); - CloseFile(faceFile); - sub_80073E0(1); -} - -void CreatePartnerSelectionMenu(s16 starterID) -{ - s32 starterID_s32; - starterID_s32 = starterID; // force an asr shift.. does lsr without it - - sub_803CEAC(); // creates 203B404 - gUnknown_203B404->StarterID = starterID_s32; - gUnknown_203B404->unk4C = 0; - gUnknown_203B404->unk50 = gUnknown_203B404->unk54; - - gUnknown_203B404->unk54[0] = gUnknown_80F4290; - gUnknown_203B404->unk54[1] = gUnknown_80F42A8; - gUnknown_203B404->unk54[2] = gUnknown_80F4278; - gUnknown_203B404->unk54[3] = gUnknown_80F4278; - - gUnknown_203B404->unk50->unk14 = gUnknown_203B404->unkb4; - - gUnknown_203B404->unkb4[0] = 1; - gUnknown_203B404->unkb4[1] = 0; - gUnknown_203B404->unkb4[2] = 6; - gUnknown_203B404->unkb4[3] = 0; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); - sub_8013818(&gUnknown_203B404->input, GetValidPartners(), 0xA, gUnknown_203B404->unk4C); - RedrawPartnerSelectionMenu(); - PersonalityTest_DisplayPartnerSprite(); -} - - -u16 HandlePartnerSelectionInput(void) -{ - s32 partnerID; - - partnerID = gUnknown_203B404->input.menuIndex; - gUnknown_203B404->unk16 = 0; - if (GetKeyPress(&gUnknown_203B404->input) == INPUT_A_BUTTON) { - PlayMenuSoundEffect(0); - return gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex]; - } - else { - if (sub_80138B8(&gUnknown_203B404->input, 1) != '\0') { - RedrawPartnerSelectionMenu(); - } - if (partnerID != gUnknown_203B404->input.menuIndex) { - PersonalityTest_DisplayPartnerSprite(); - } - if (gUnknown_203B404->unk16 != '\0') { - return -2; - } - else { - return -1; - } - } -} - -void sub_803CE34(u8 param_1) -{ - gUnknown_203B404->input.unk22 = GetValidPartners(); - sub_8013984(&gUnknown_203B404->input); - RedrawPartnerSelectionMenu(); - PersonalityTest_DisplayPartnerSprite(); - if (param_1 != 0) { - AddMenuCursorSprite(&gUnknown_203B404->input); - } -} - -void sub_803CE6C() -{ - gUnknown_203B404->unk54[gUnknown_203B404->unk4C] = gUnknown_80F4278; - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); - sub_803CECC(); // Free 203B404 -} - - - - - - - -// THIS IS A NEW FILE: - - - - - -void sub_803CEAC(void) -{ - gUnknown_203B404 = MemoryAlloc(sizeof(struct PersonalityStruct_203B404), 8); - nullsub_135(); -} - -void nullsub_135(void) -{ -} - - -void sub_803CECC(void) -{ - if(gUnknown_203B404 != NULL){ - nullsub_135(); - MemoryFree(gUnknown_203B404); - gUnknown_203B404 = NULL; - } -} - -#ifdef NONMATCHING // sub_80095E4 memes -void RedrawPartnerSelectionMenu(void) -{ - s32 sVar1; - u32 yCoord; - const char *monName; - s32 monCounter; - - sVar1 = sub_80095E4(gUnknown_203B404->unk32, 0xc); - - // Have a feeling this is some graphical thing but - // still not sure structure so it's not matching yet bc of that - // and some casting stuff - sVar1 += 2; - sVar1 <<= 16; - gUnknown_203B404->unk54[gUnknown_203B404->unk4C].unk0[7] = sVar1; - gUnknown_203B404->unk54[gUnknown_203B404->unk4C].unk0[8] = sVar1 + 2; - - // Everything after this matches - ResetUnusedInputStruct(); - sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); - sub_8008C54(gUnknown_203B404->unk4C); - sub_80073B8(gUnknown_203B404->unk4C); - xxx_call_draw_string(0xc, 0, gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0); - - monCounter = 0; - while (monCounter < gUnknown_203B404->unk32) { - yCoord = sub_8013800(&gUnknown_203B404->unk18, monCounter); - monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]); - xxx_call_draw_string(8, yCoord, monName, gUnknown_203B404->unk4C, 0); - monCounter++; - } - sub_80073E0(gUnknown_203B404->unk4C); - gUnknown_203B404->unk16 = 1; -} -#else -NAKED -void RedrawPartnerSelectionMenu(void) -{ - asm_unified("\tpush {r4-r6,lr}\n" - "\tsub sp, 0x4\n" - "\tldr r6, _0803CF60\n" - "\tldr r0, [r6]\n" - "\tmovs r1, 0x32\n" - "\tldrsh r0, [r0, r1]\n" - "\tmovs r1, 0xC\n" - "\tbl sub_80095E4\n" - "\tadds r0, 0x2\n" - "\tlsls r0, 16\n" - "\tldr r2, [r6]\n" - "\tldr r3, [r2, 0x4C]\n" - "\tlsls r1, r3, 1\n" - "\tadds r1, r3\n" - "\tlsls r1, 3\n" - "\tadds r1, r2, r1\n" - "\tadds r1, 0x62\n" - "\tmovs r4, 0\n" - "\tasrs r3, r0, 16\n" - "\tlsrs r0, 16\n" - "\tstrh r0, [r1]\n" - "\tldr r1, [r2, 0x4C]\n" - "\tlsls r0, r1, 1\n" - "\tadds r0, r1\n" - "\tlsls r0, 3\n" - "\tadds r2, r0\n" - "\tadds r3, 0x2\n" - "\tadds r2, 0x64\n" - "\tstrh r3, [r2]\n" - "\tbl ResetUnusedInputStruct\n" - "\tldr r0, [r6]\n" - "\tadds r0, 0x54\n" - "\tmovs r1, 0x1\n" - "\tmovs r2, 0x1\n" - "\tbl sub_800641C\n" - "\tldr r0, [r6]\n" - "\tldr r0, [r0, 0x4C]\n" - "\tbl sub_8008C54\n" - "\tldr r0, [r6]\n" - "\tldr r0, [r0, 0x4C]\n" - "\tbl sub_80073B8\n" - "\tldr r2, _0803CF64\n" - "\tldr r0, [r6]\n" - "\tldr r3, [r0, 0x4C]\n" - "\tstr r4, [sp]\n" - "\tmovs r0, 0xC\n" - "\tmovs r1, 0\n" - "\tbl xxx_call_draw_string\n" - "\tmovs r5, 0\n" - "\tb _0803CF98\n" - "\t.align 2, 0\n" -"_0803CF60: .4byte gUnknown_203B404\n" -"_0803CF64: .4byte gPartnerSelectionHeaderText\n" -"_0803CF68:\n" - "\tldr r0, [r6]\n" - "\tadds r0, 0x18\n" - "\tadds r1, r5, 0\n" - "\tbl sub_8013800\n" - "\tadds r4, r0, 0\n" - "\tldr r0, [r6]\n" - "\tlsls r1, r5, 1\n" - "\tadds r0, 0x2\n" - "\tadds r0, r1\n" - "\tmovs r1, 0\n" - "\tldrsh r0, [r0, r1]\n" - "\tbl GetMonSpecies\n" - "\tadds r2, r0, 0\n" - "\tldr r0, [r6]\n" - "\tldr r3, [r0, 0x4C]\n" - "\tmovs r0, 0\n" - "\tstr r0, [sp]\n" - "\tmovs r0, 0x8\n" - "\tadds r1, r4, 0\n" - "\tbl xxx_call_draw_string\n" - "\tadds r5, 0x1\n" -"_0803CF98:\n" - "\tldr r0, [r6]\n" - "\tmovs r1, 0x32\n" - "\tldrsh r0, [r0, r1]\n" - "\tcmp r5, r0\n" - "\tblt _0803CF68\n" - "\tldr r4, _0803CFBC\n" - "\tldr r0, [r4]\n" - "\tldr r0, [r0, 0x4C]\n" - "\tbl sub_80073E0\n" - "\tldr r1, [r4]\n" - "\tmovs r0, 0x1\n" - "\tstrb r0, [r1, 0x16]\n" - "\tadd sp, 0x4\n" - "\tpop {r4-r6}\n" - "\tpop {r0}\n" - "\tbx r0\n" - "\t.align 2, 0\n" -"_0803CFBC: .4byte gUnknown_203B404"); -} -#endif - -void PersonalityTest_DisplayPartnerSprite(void) -{ - s32 partnerID; - OpenedFile *faceFile; - int palleteIndex; - u8 *r6; - u32 faceIndex; - - partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex]; - sub_8008C54(1); - sub_80073B8(1); - faceFile = GetDialogueSpriteDataPtr(partnerID); - r6 = ((struct FaceData *)(faceFile->data))->unk0[1 + EMOTION_NORMAL]; - faceIndex = EMOTION_NORMAL; - for(palleteIndex = 0; palleteIndex < 16; palleteIndex++){ - SetBGPaletteBufferColorArray(palleteIndex + 224,&((struct FaceData *)(faceFile->data))->unk0[faceIndex][palleteIndex << 2]); - } - sub_800836C(1,r6,0xe); - CloseFile(faceFile); - sub_80073E0(1); - gUnknown_203B404->unk16 = 1; -} - -s32 GetValidPartners(void) -{ - u8 PlayerType[2]; - u8 currentPartnerTypes[2]; - s32 counter; - s32 ValidPartnerCounter; - s32 CurrentPartnerID; - - ValidPartnerCounter = 0; - PlayerType[0] = GetPokemonType(gUnknown_203B404->StarterID, 0); - PlayerType[1] = GetPokemonType(gUnknown_203B404->StarterID, 1); - for(counter = 0; counter < NUM_PARTNERS; counter++){ - CurrentPartnerID = gPartners[counter]; - currentPartnerTypes[0] = GetPokemonType(CurrentPartnerID, 0); - currentPartnerTypes[1] = GetPokemonType(CurrentPartnerID, 1); - if (((currentPartnerTypes[0] == TYPE_NONE) || ((currentPartnerTypes[0] != PlayerType[0] && (currentPartnerTypes[0] != PlayerType[1])))) - && ((currentPartnerTypes[1] == TYPE_NONE || ((currentPartnerTypes[1] != PlayerType[0] && (currentPartnerTypes[1] != PlayerType[1]))) - ))) { - gUnknown_203B404->PartnerArray[ValidPartnerCounter] = CurrentPartnerID; - ValidPartnerCounter++; - } - } - return ValidPartnerCounter; -} diff --git a/src/personality_test1.c b/src/personality_test1.c new file mode 100644 index 000000000..0e27266bd --- /dev/null +++ b/src/personality_test1.c @@ -0,0 +1,412 @@ +#include "global.h" +#include "globaldata.h" +#include "bg_palette_buffer.h" +#include "code_2.h" +#include "code_80130A8.h" +#include "code_801602C.h" +#include "code_8094D28.h" +#include "code_8098BDC.h" +#include "constants/emotions.h" +#include "game_options.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "personality_test1.h" +#include "personality_test2.h" +#include "random.h" +#include "save.h" +#include "text_util.h" +#include "text1.h" +#include "text2.h" + +enum +{ + PERSONALITY_GENERATE_NEW_QUESTION, + PERSONALITY_ASK_QUESTION, + PERSONALITY_UPDATE_TOTALS, + PERSONALITY_PLAYER_GENDER, + PERSONALITY_REVEAL, + PERSONALITY_STARTER_REVEAL, + PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1, + PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2, + PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3, + PERSONALITY_PARTNER_SELECTION, + PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1, + PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2, + PERSONALITY_PARTNER_NICKNAME, + PERSONALITY_END_INTRO, + PERSONALITY_ADVANCE_TO_TEST_END, + PERSONALITY_TEST_END, +}; + +extern u8 gAvailablePokemonNames[]; // 202DF98 + +static EWRAM_DATA_2 struct PersonalityTestTracker *sPersonalityTestTracker = {0}; + +#include "data/personality_test1.h" + +static void AdvanceToPartnerNicknameScreen(void); +static void AdvanceToPartnerSelection(void); +static void AdvanceToPickPartnerPrompt(void); +static void AdvanceToTestEnd(void); +static void CallCreatePartnerSelectionMenu(void); +static void CallPromptNewQuestion(void); +static void GenerateNewQuestionOrGender(void); +static void InitializeTestStats(void); +static void NicknamePartner(void); +static void PersonalityTest_DisplayStarterSprite(void); +static void PrintEndIntroText(void); +static void PrintPersonalityTypeDescription(void); +static void PromptForPartnerNickname(void); +static void PromptNewQuestion(void); +static void PromptPickPartner(void); +static void RevealPersonality(void); +static void RevealStarter(void); +static void SetPlayerGender(void); +static void UpdateNatureTotals(void); + +bool8 CreateTestTracker(void) +{ + sPersonalityTestTracker = MemoryAlloc(sizeof(struct PersonalityTestTracker), 8); + sub_801317C(&sPersonalityTestTracker->input); + InitializeTestStats(); + sub_8099690(1); + return TRUE; +} + +static void InitializeTestStats(void) +{ + s32 i; + + sub_8001024(&sPersonalityTestTracker->unk4); + sPersonalityTestTracker->FrameCounter = 0; + sPersonalityTestTracker->TestState = 0; + sPersonalityTestTracker->QuestionCounter = 0; + + for (i = 0; i < NUM_PERSONALITIES; i++) + sPersonalityTestTracker->NatureTotals[i] = 0; + + sPersonalityTestTracker->currQuestionIndex = 0; + + for (i = 0; i < NUM_QUIZ_QUESTIONS; i++) + sPersonalityTestTracker->QuestionTracker[i] = 0; + + sPersonalityTestTracker->playerNature = 0; + sPersonalityTestTracker->playerGender = 0; +} + +u8 HandleTestTrackerState(void) +{ + s32 counter; + s32 iVar1; + + sPersonalityTestTracker->FrameCounter++; + + switch (sPersonalityTestTracker->TestState) { + case PERSONALITY_GENERATE_NEW_QUESTION: + GenerateNewQuestionOrGender(); + break; + case PERSONALITY_ASK_QUESTION: + CallPromptNewQuestion(); + break; + case PERSONALITY_UPDATE_TOTALS: + UpdateNatureTotals(); + break; + case PERSONALITY_PLAYER_GENDER: + SetPlayerGender(); + break; + case PERSONALITY_REVEAL: + RevealPersonality(); + break; + case PERSONALITY_STARTER_REVEAL: + RevealStarter(); + break; + case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1: + AdvanceToPickPartnerPrompt(); + break; + case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2: + PromptPickPartner(); + break; + case PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3: + AdvanceToPartnerSelection(); + break; + case PERSONALITY_PARTNER_SELECTION: + CallCreatePartnerSelectionMenu(); + break; + case PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1: + PromptForPartnerNickname(); + break; + case PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2: + AdvanceToPartnerNicknameScreen(); + break; + case PERSONALITY_PARTNER_NICKNAME: + NicknamePartner(); + break; + case PERSONALITY_END_INTRO: + PrintEndIntroText(); + break; + case PERSONALITY_ADVANCE_TO_TEST_END: + AdvanceToTestEnd(); + break; + case PERSONALITY_TEST_END: + iVar1 = Rand32Bit() * sPersonalityTestTracker->FrameCounter; + sub_8094D28(Rand32Bit()); + + for (counter = 0; counter < NUM_PERSONALITIES; counter++) + iVar1 *= sPersonalityTestTracker->NatureTotals[counter] + counter + 3; + + iVar1 += sub_8094E4C(); + while (iVar1 == -1) + iVar1 += sub_8094E4C(); + + sub_8011C40(iVar1); + return 3; + default: + break; + } + return 0; +} + +void DeleteTestTracker(void) +{ + sub_8001044(&sPersonalityTestTracker->unk4); + MemoryFree(sPersonalityTestTracker); + sPersonalityTestTracker = NULL; +} + +static void GenerateNewQuestionOrGender(void) +{ + u8 category; + s32 i; + s32 newQuestion; + + sPersonalityTestTracker->QuestionCounter++; + + if (sPersonalityTestTracker->QuestionCounter > MAX_ASKED_QUESTIONS) { + sub_8014248(gGenderText, 0, 0, gGenderMenu, 0, 3, 0, 0, 257); + sPersonalityTestTracker->TestState = PERSONALITY_PLAYER_GENDER; + } + else { + do { + // Generate new question number and make sure we haven't done it + newQuestion = RandInt(NUM_QUIZ_QUESTIONS); + sPersonalityTestTracker->currQuestionIndex = newQuestion; + } while (sPersonalityTestTracker->QuestionTracker[newQuestion] == 1); + + // Found one so let's get the category + category = gNatureQuestionTable[sPersonalityTestTracker->currQuestionIndex]; + + // Mark all of the questions in the category as used + for (i = 0; i < NUM_QUIZ_QUESTIONS; i++) { + if (gNatureQuestionTable[i] == category) + sPersonalityTestTracker->QuestionTracker[i] = 1; + } + sPersonalityTestTracker->TestState = PERSONALITY_ASK_QUESTION; + } +} + +static void CallPromptNewQuestion(void) +{ + PromptNewQuestion(); + sPersonalityTestTracker->TestState = PERSONALITY_UPDATE_TOTALS; +} + +static void UpdateNatureTotals(void) +{ + s32 answerIndex; + s32 natureIndex; + const u8 *pointArray; + + if (sub_80144A4(&answerIndex)) + return; + + // This is for the second part of Brave 2 Question if you fight.. + if (answerIndex == BRAVE_2B_TRIGGER) { + // Set question to BRAVE_2B and ask the question.. + sPersonalityTestTracker->currQuestionIndex = NUM_QUIZ_QUESTIONS; + sPersonalityTestTracker->TestState = PERSONALITY_ASK_QUESTION; + } + else { + pointArray = gPersonalityQuestionPointerTable[sPersonalityTestTracker->currQuestionIndex]->effects; + // Skip until we get to the one for our answer + // Each Answer has 16 bytes. 13 are currently used with 3 remaining + pointArray += (NUM_PERSONALITIES + 3) * answerIndex; + for (natureIndex = 0; natureIndex < NUM_PERSONALITIES; natureIndex++) + sPersonalityTestTracker->NatureTotals[natureIndex] += pointArray[natureIndex]; + + sPersonalityTestTracker->TestState = PERSONALITY_GENERATE_NEW_QUESTION; + } +} + +static void SetPlayerGender(void) +{ + s32 gender; + + if (sub_80144A4(&gender) != 0) + return; + + if (gender == MALE) { + sPersonalityTestTracker->playerGender = MALE; + gGameOptionsRef->playerGender = MALE; + } + else { + sPersonalityTestTracker->playerGender = FEMALE; + gGameOptionsRef->playerGender = FEMALE; + } + + sub_8099690(0); + sPersonalityTestTracker->TestState = PERSONALITY_REVEAL; +} + +static void RevealPersonality(void) +{ + s32 currentNature; + s32 i; + + sPersonalityTestTracker->playerNature = RandInt(NUM_PERSONALITIES); + currentNature = sPersonalityTestTracker->playerNature; + + for (i = 0; i < NUM_PERSONALITIES - 1; i++) { + currentNature++; + + // Wraparound check + if (currentNature > QUIRKY) + currentNature = HARDY; + + if (sPersonalityTestTracker->NatureTotals[currentNature] > sPersonalityTestTracker->NatureTotals[sPersonalityTestTracker->playerNature]) + sPersonalityTestTracker->playerNature = currentNature; + } + + sPersonalityTestTracker->StarterID = gStarters[sPersonalityTestTracker->playerNature][sPersonalityTestTracker->playerGender]; + PrintPersonalityTypeDescription(); + sPersonalityTestTracker->TestState = PERSONALITY_STARTER_REVEAL; +} + +static void RevealStarter(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) { + sub_80141B4(gStarterReveal, 0, 0, 0x101); + PersonalityTest_DisplayStarterSprite(); + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_1; + } +} + +static void AdvanceToPickPartnerPrompt(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_2; +} + +static void PromptPickPartner(void) +{ + sub_80141B4(gPartnerPrompt, 0, 0, 0x301); + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_SELECTION_3; +} + +static void AdvanceToPartnerSelection(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sPersonalityTestTracker->TestState = PERSONALITY_PARTNER_SELECTION; +} + +static void CallCreatePartnerSelectionMenu(void) +{ + CreatePartnerSelectionMenu(sPersonalityTestTracker->StarterID); + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_1; +} + +static void PromptForPartnerNickname(void) +{ + u16 selectedPartner; + + selectedPartner = HandlePartnerSelectionInput(); + + if (selectedPartner != 0xFFFF) { + if (selectedPartner != 0xFFFE) { + sub_803CE6C(); + sPersonalityTestTracker->PartnerID = selectedPartner; + sub_80141B4(gPartnerNickPrompt, 0, 0, 0x301); + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_PARTNER_NICKNAME_2; + } + } +} + +static void AdvanceToPartnerNicknameScreen(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sPersonalityTestTracker->TestState = PERSONALITY_PARTNER_NICKNAME; +} + +static void NicknamePartner(void) +{ + CopyStringtoBuffer(sPersonalityTestTracker->PartnerNick, GetMonSpecies(sPersonalityTestTracker->PartnerID)); + sub_801602C(3, sPersonalityTestTracker->PartnerNick); + sPersonalityTestTracker->TestState = PERSONALITY_END_INTRO; +} + +static void PrintEndIntroText(void) +{ + if (sub_8016080()) { + sub_80160D8(); + sub_80141B4(gEndIntroText, 0, 0, 0x301); + sPersonalityTestTracker->TestState = PERSONALITY_ADVANCE_TO_TEST_END; + } +} + +static void AdvanceToTestEnd(void) +{ + s32 temp; + + if (sub_80144A4(&temp) == 0) + sPersonalityTestTracker->TestState = PERSONALITY_TEST_END; +} + +static void PromptNewQuestion(void) +{ + sub_8014248(gPersonalityQuestionPointerTable[sPersonalityTestTracker->currQuestionIndex]->question, + 0, 0, + gPersonalityQuestionPointerTable[sPersonalityTestTracker->currQuestionIndex]->answers, + 0, 3, 0, 0, 0x101); +} + +static void PrintPersonalityTypeDescription(void) +{ + CopyMonsterNametoBuffer(gAvailablePokemonNames, sPersonalityTestTracker->StarterID); + sub_80141B4(sPersonalityTypeDescriptionTable[sPersonalityTestTracker->playerNature], 0, 0, 0x101); +} + +static void PersonalityTest_DisplayStarterSprite(void) +{ + s32 starterID; + OpenedFile *faceFile; + s32 palleteIndex; + u8 *r6; + u32 faceIndex; + UnkTextStruct2 stackArray[4]; + + starterID = sPersonalityTestTracker->StarterID; + sub_8006518(stackArray); + stackArray[1] = sUnknown_80F4244; + ResetUnusedInputStruct(); + sub_800641C(stackArray, TRUE, FALSE); + sub_8008C54(1); + sub_80073B8(1); + + faceFile = GetDialogueSpriteDataPtr(starterID); + r6 = ((struct FaceData *)faceFile->data)->unk0[1 + EMOTION_HAPPY]; + faceIndex = EMOTION_HAPPY; + for (palleteIndex = 0; palleteIndex < 0x10; palleteIndex++) + SetBGPaletteBufferColorArray(palleteIndex + 0xE0, &((struct FaceData *)faceFile->data)->unk0[faceIndex][palleteIndex * 4]); + + sub_800836C(1, r6, 14); + CloseFile(faceFile); + sub_80073E0(1); +} \ No newline at end of file diff --git a/src/personality_test2.c b/src/personality_test2.c new file mode 100644 index 000000000..658026da1 --- /dev/null +++ b/src/personality_test2.c @@ -0,0 +1,303 @@ +#include "global.h" +#include "globaldata.h" +#include "bg_palette_buffer.h" +#include "code_80118A4.h" +#include "constants/emotions.h" +#include "constants/input.h" +#include "constants/type.h" +#include "input.h" +#include "memory.h" +#include "menu_input.h" +#include "personality_test2.h" +#include "pokemon.h" +#include "text1.h" +#include "text2.h" + +EWRAM_DATA_2 struct PersonalityStruct_203B404 *gUnknown_203B404 = {0}; + +#include "data/personality_test2.h" + +static s32 GetValidPartners(void); +static void nullsub_135(void); +static void PersonalityTest_DisplayPartnerSprite(void); +static void RedrawPartnerSelectionMenu(void); + +static void sub_803CEAC(void); +static void sub_803CECC(void); + +void CreatePartnerSelectionMenu(s16 starterID) +{ + s32 starterID_s32; + starterID_s32 = starterID; // force an asr shift.. does lsr without it + + sub_803CEAC(); + gUnknown_203B404->StarterID = starterID_s32; + gUnknown_203B404->unk4C = 0; + gUnknown_203B404->unk50 = gUnknown_203B404->unk54; + + gUnknown_203B404->unk54[0] = gUnknown_80F4290; + gUnknown_203B404->unk54[1] = gUnknown_80F42A8; + gUnknown_203B404->unk54[2] = gUnknown_80F4278; + gUnknown_203B404->unk54[3] = gUnknown_80F4278; + + gUnknown_203B404->unk50->unk14 = gUnknown_203B404->unkb4; + + gUnknown_203B404->unkb4[0] = 1; + gUnknown_203B404->unkb4[1] = 0; + gUnknown_203B404->unkb4[2] = 6; + gUnknown_203B404->unkb4[3] = 0; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); + sub_8013818(&gUnknown_203B404->input, GetValidPartners(), 10, gUnknown_203B404->unk4C); + RedrawPartnerSelectionMenu(); + PersonalityTest_DisplayPartnerSprite(); +} + +u16 HandlePartnerSelectionInput(void) +{ + s32 partnerID; + + partnerID = gUnknown_203B404->input.menuIndex; + gUnknown_203B404->unk16 = 0; + + if (GetKeyPress(&gUnknown_203B404->input) == INPUT_A_BUTTON) { + PlayMenuSoundEffect(0); + return gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex]; + } + + if (sub_80138B8(&gUnknown_203B404->input, TRUE)) + RedrawPartnerSelectionMenu(); + + if (partnerID != gUnknown_203B404->input.menuIndex) + PersonalityTest_DisplayPartnerSprite(); + + if (gUnknown_203B404->unk16 != 0) { + return -2; + } + return -1; +} + +UNUSED static void sub_803CE34(bool8 cursorSprite) +{ + gUnknown_203B404->input.unk22 = GetValidPartners(); + sub_8013984(&gUnknown_203B404->input); + RedrawPartnerSelectionMenu(); + PersonalityTest_DisplayPartnerSprite(); + + if (cursorSprite) + AddMenuCursorSprite(&gUnknown_203B404->input); +} + +void sub_803CE6C(void) +{ + gUnknown_203B404->unk54[gUnknown_203B404->unk4C] = gUnknown_80F4278; + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); + sub_803CECC(); +} + +static void sub_803CEAC(void) +{ + gUnknown_203B404 = MemoryAlloc(sizeof(struct PersonalityStruct_203B404), 8); + nullsub_135(); +} + +static void nullsub_135(void) +{ +} + +static void sub_803CECC(void) +{ + if (gUnknown_203B404 != NULL) { + nullsub_135(); + MemoryFree(gUnknown_203B404); + gUnknown_203B404 = NULL; + } +} + +#ifdef NONMATCHING // sub_80095E4 memes +static void RedrawPartnerSelectionMenu(void) +{ + s32 sVar1; + u32 yCoord; + const u8 *monName; + s32 monCounter; + + sVar1 = sub_80095E4(gUnknown_203B404->unk32, 12); + + // Have a feeling this is some graphical thing but + // still not sure structure so it's not matching yet bc of that + // and some casting stuff + sVar1 += 2; + sVar1 <<= 16; + gUnknown_203B404->unk54[gUnknown_203B404->unk4C].unk0[7] = sVar1; + gUnknown_203B404->unk54[gUnknown_203B404->unk4C].unk0[8] = sVar1 + 2; + + // Everything after this matches + ResetUnusedInputStruct(); + sub_800641C(gUnknown_203B404->unk54, TRUE, TRUE); + sub_8008C54(gUnknown_203B404->unk4C); + sub_80073B8(gUnknown_203B404->unk4C); + xxx_call_draw_string(12, 0, gPartnerSelectionHeaderText, gUnknown_203B404->unk4C, 0); + + monCounter = 0; + while (monCounter < gUnknown_203B404->unk32) { + yCoord = sub_8013800(&gUnknown_203B404->unk18, monCounter); + monName = GetMonSpecies(gUnknown_203B404->PartnerArray[monCounter]); + xxx_call_draw_string(8, yCoord, monName, gUnknown_203B404->unk4C, 0); + monCounter++; + } + sub_80073E0(gUnknown_203B404->unk4C); + gUnknown_203B404->unk16 = 1; +} +#else +NAKED +static void RedrawPartnerSelectionMenu(void) +{ + asm_unified("\tpush {r4-r6,lr}\n" + "\tsub sp, 0x4\n" + "\tldr r6, _0803CF60\n" + "\tldr r0, [r6]\n" + "\tmovs r1, 0x32\n" + "\tldrsh r0, [r0, r1]\n" + "\tmovs r1, 0xC\n" + "\tbl sub_80095E4\n" + "\tadds r0, 0x2\n" + "\tlsls r0, 16\n" + "\tldr r2, [r6]\n" + "\tldr r3, [r2, 0x4C]\n" + "\tlsls r1, r3, 1\n" + "\tadds r1, r3\n" + "\tlsls r1, 3\n" + "\tadds r1, r2, r1\n" + "\tadds r1, 0x62\n" + "\tmovs r4, 0\n" + "\tasrs r3, r0, 16\n" + "\tlsrs r0, 16\n" + "\tstrh r0, [r1]\n" + "\tldr r1, [r2, 0x4C]\n" + "\tlsls r0, r1, 1\n" + "\tadds r0, r1\n" + "\tlsls r0, 3\n" + "\tadds r2, r0\n" + "\tadds r3, 0x2\n" + "\tadds r2, 0x64\n" + "\tstrh r3, [r2]\n" + "\tbl ResetUnusedInputStruct\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x54\n" + "\tmovs r1, 0x1\n" + "\tmovs r2, 0x1\n" + "\tbl sub_800641C\n" + "\tldr r0, [r6]\n" + "\tldr r0, [r0, 0x4C]\n" + "\tbl sub_8008C54\n" + "\tldr r0, [r6]\n" + "\tldr r0, [r0, 0x4C]\n" + "\tbl sub_80073B8\n" + "\tldr r2, _0803CF64\n" + "\tldr r0, [r6]\n" + "\tldr r3, [r0, 0x4C]\n" + "\tstr r4, [sp]\n" + "\tmovs r0, 0xC\n" + "\tmovs r1, 0\n" + "\tbl xxx_call_draw_string\n" + "\tmovs r5, 0\n" + "\tb _0803CF98\n" + "\t.align 2, 0\n" +"_0803CF60: .4byte gUnknown_203B404\n" +"_0803CF64: .4byte gPartnerSelectionHeaderText\n" +"_0803CF68:\n" + "\tldr r0, [r6]\n" + "\tadds r0, 0x18\n" + "\tadds r1, r5, 0\n" + "\tbl sub_8013800\n" + "\tadds r4, r0, 0\n" + "\tldr r0, [r6]\n" + "\tlsls r1, r5, 1\n" + "\tadds r0, 0x2\n" + "\tadds r0, r1\n" + "\tmovs r1, 0\n" + "\tldrsh r0, [r0, r1]\n" + "\tbl GetMonSpecies\n" + "\tadds r2, r0, 0\n" + "\tldr r0, [r6]\n" + "\tldr r3, [r0, 0x4C]\n" + "\tmovs r0, 0\n" + "\tstr r0, [sp]\n" + "\tmovs r0, 0x8\n" + "\tadds r1, r4, 0\n" + "\tbl xxx_call_draw_string\n" + "\tadds r5, 0x1\n" +"_0803CF98:\n" + "\tldr r0, [r6]\n" + "\tmovs r1, 0x32\n" + "\tldrsh r0, [r0, r1]\n" + "\tcmp r5, r0\n" + "\tblt _0803CF68\n" + "\tldr r4, _0803CFBC\n" + "\tldr r0, [r4]\n" + "\tldr r0, [r0, 0x4C]\n" + "\tbl sub_80073E0\n" + "\tldr r1, [r4]\n" + "\tmovs r0, 0x1\n" + "\tstrb r0, [r1, 0x16]\n" + "\tadd sp, 0x4\n" + "\tpop {r4-r6}\n" + "\tpop {r0}\n" + "\tbx r0\n" + "\t.align 2, 0\n" +"_0803CFBC: .4byte gUnknown_203B404"); +} +#endif + +static void PersonalityTest_DisplayPartnerSprite(void) +{ + s32 partnerID; + OpenedFile *faceFile; + s32 palleteIndex; + u8 *r6; + u32 faceIndex; + + partnerID = gUnknown_203B404->PartnerArray[gUnknown_203B404->input.menuIndex]; + sub_8008C54(1); + sub_80073B8(1); + faceFile = GetDialogueSpriteDataPtr(partnerID); + r6 = ((struct FaceData *)faceFile->data)->unk0[1 + EMOTION_NORMAL]; + faceIndex = EMOTION_NORMAL; + + for (palleteIndex = 0; palleteIndex < 0x10; palleteIndex++) + SetBGPaletteBufferColorArray(palleteIndex + 0xE0, &((struct FaceData *)faceFile->data)->unk0[faceIndex][palleteIndex * 4]); + + sub_800836C(1, r6, 14); + CloseFile(faceFile); + sub_80073E0(1); + gUnknown_203B404->unk16 = 1; +} + +static s32 GetValidPartners(void) +{ + u8 PlayerType[2]; + u8 currentPartnerTypes[2]; + s32 i; + s32 ValidPartnerCounter; + s32 CurrentPartnerID; + + ValidPartnerCounter = 0; + PlayerType[0] = GetPokemonType(gUnknown_203B404->StarterID, 0); + PlayerType[1] = GetPokemonType(gUnknown_203B404->StarterID, 1); + + for (i = 0; i < NUM_PARTNERS; i++) { + CurrentPartnerID = gPartners[i]; + currentPartnerTypes[0] = GetPokemonType(CurrentPartnerID, 0); + currentPartnerTypes[1] = GetPokemonType(CurrentPartnerID, 1); + + if ((currentPartnerTypes[0] == TYPE_NONE || (currentPartnerTypes[0] != PlayerType[0] && currentPartnerTypes[0] != PlayerType[1])) + && ((currentPartnerTypes[1] == TYPE_NONE || (currentPartnerTypes[1] != PlayerType[0] && currentPartnerTypes[1] != PlayerType[1])))) { + gUnknown_203B404->PartnerArray[ValidPartnerCounter] = CurrentPartnerID; + ValidPartnerCounter++; + } + } + + return ValidPartnerCounter; +} \ No newline at end of file diff --git a/src/pokemon_mail.c b/src/pokemon_mail.c index c6caa28ee..820570ea3 100644 --- a/src/pokemon_mail.c +++ b/src/pokemon_mail.c @@ -1,14 +1,451 @@ #include "global.h" +#include "globaldata.h" +#include "code_800D090.h" +#include "code_8012A18_1.h" +#include "code_803C1D0.h" +#include "code_803D110.h" +#include "constants/colors.h" +#include "dungeon.h" +#include "event_flag.h" +#include "exclusive_pokemon.h" +#include "items.h" +#include "menu_input.h" +#include "pokemon.h" +#include "pokemon_3.h" #include "pokemon_mail.h" +#include "pokemon_mail_pre.h" +#include "text_util.h" +#include "text2.h" + +extern u8 gUnknown_202DE58[]; +extern u8 gAvailablePokemonNames[]; // 202DF98 #include "data/pokemon_mail.h" +// There are possibly more funcs in asm currently that belong to this file... + +void sub_803B6B0(s32 x, s32 y, u8 index, u32 a3) +{ + xxx_call_draw_string(x, y, sUnknown_80E8B94[index], a3, 0); +} + +void CreateRescueTitle(unkStruct_802C39C *param_1) +{ + u8 buf_1[200]; + u8 buf_2[20]; + u8 buf_3[100]; + u8 *monName; + u8 uVar1; + + sub_803B6B0(10, param_1->y, param_1->unk43, param_1->unk0[0]); + + switch (param_1->mailTitleType) { + case 3: + xxx_call_draw_string(21, param_1->y, param_1->unk4C, param_1->unk0[0], 0); + break; + case 0: + xxx_call_draw_string(21, param_1->y, gMankeyMission, param_1->unk0[0], 0); + break; + case 1: + xxx_call_draw_string(21, param_1->y, gSmeargleMission, param_1->unk0[0], 0); + break; + case 2: + xxx_call_draw_string(21, param_1->y, gMedichamMission, param_1->unk0[0], 0); + break; + case 7: + PrintYellowDungeonNametoBuffer(buf_1, ¶m_1->unk8->dungeon); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + case 12: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E8830, gUnknown_202DE58); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + case 11: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E8848, gUnknown_202DE58); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + case 4: + xxx_call_draw_string(21, param_1->y, gUnknown_80E885C, param_1->unk0[0], 0); + break; + case 5: + xxx_call_draw_string(21, param_1->y, gUnknown_80E9F8C[param_1->unk0[1]].headline, param_1->unk0[0], 0); + break; + case 6: + xxx_call_draw_string(21, param_1->y, gUnknown_80E886C, param_1->unk0[0],0); + break; + case 10: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80EAE5C[bVar2 % 4], gAvailablePokemonNames); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + } + case 9: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E910C[bVar2 % 10], gAvailablePokemonNames); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + } + default: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E8C98[bVar2 % 15], gAvailablePokemonNames); + xxx_call_draw_string(21, param_1->y, buf_1, param_1->unk0[0], 0); + break; + } + } + + if (param_1->mailTitleType == 7) { + if (param_1->playerName == NULL) + xxx_call_draw_string(178 - sub_8016028(), param_1->y, GetMonSpecies(param_1->clientSpecies), param_1->unk0[0], 0); + else { + sub_80922B4(buf_2, param_1->playerName, POKEMON_NAME_LENGTH); + xxx_call_draw_string(178 - sub_8016028(), param_1->y, buf_2, param_1->unk0[0], 0); + } + } + else { + if (param_1->mailMissionType == MISSION_TYPE_FIND_ITEM) { + PrintDungeonLocationtoBuffer(buf_3, ¶m_1->unk8->dungeon); + sprintfStatic(buf_1, gUnknown_80E8884, buf_3); + } + else + PrintDungeonLocationtoBuffer(buf_1, ¶m_1->unk8->dungeon); + + xxx_call_draw_string(29, param_1->y + 12, buf_1, param_1->unk0[0], 0); + } + + if (param_1->mailTitleType == 7) + uVar1 = sub_803C1D0(¶m_1->unk8->dungeon, 0); + else + uVar1 = sub_803C1D0(¶m_1->unk8->dungeon, param_1->mail->missionType); + + xxx_call_draw_string(180, param_1->y, sub_803C1F0(uVar1), param_1->unk0[0], 0); +} + +void CreateRescueDescription(unkStruct_802C39C *param_1) +{ + u8 uVar3; + s32 x; + s32 counter; + u32 color; + s32 y; + u8 buf_1[300]; + u8 buf_2[40]; + u8 buf_3[20]; + u8 buf_4[20]; + u8 buf_5[100]; + u8 local_34[24]; + u8 *monName; + + y = 0; + + xxx_call_draw_string(10, y, gUnknown_80E888C, param_1->unk0[0], 0); + xxx_call_draw_string(108, y, sUnknown_80E8BCC[param_1->mailStatus], param_1->unk0[0], 0); + y += 16; + + switch (param_1->mailDescriptionType) { + case 3: + xxx_call_draw_string(10, y, param_1->unk50, param_1->unk0[0], 0); + break; + case 0: + xxx_call_draw_string(10, y, gMankeyMissionDescription, param_1->unk0[0], 0); + break; + case 1: + xxx_call_draw_string(10, y, gSmeargleMissionDescription, param_1->unk0[0], 0); + break; + case 2: + xxx_call_draw_string(10, y, gMedichamMissionDescription, param_1->unk0[0], 0); + break; + case 4: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E8968, gUnknown_202DE58); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + break; + case 5: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E89B0, gUnknown_202DE58); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + break; + case 6: + xxx_call_draw_string(10, y, gUnknown_80E9920[param_1->unk0[1]].text, param_1->unk0[0], 0); + break; + case 7: + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E9F8C[param_1->unk0[1]].text, gAvailablePokemonNames, gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + break; + case 9: + xxx_call_draw_string(10, y, gUnknown_80E89FC, param_1->unk0[0], 0); + break; + case 10: + xxx_call_draw_string(10, y, gUnknown_80E8A40, param_1->unk0[0], 0); + break; + case 11: + xxx_call_draw_string(10, y, gUnknown_80E8A7C, param_1->unk0[0], 0); + break; + case 15: + case 16: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80EB3F8[bVar2 % 22], gUnknown_202DE58); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y += 12; + + sprintfStatic(buf_1, gUnknown_80EB72C[bVar3 % 22], gUnknown_202DE58); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y -= 12; + break; + } + case 14: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80EAEB8[bVar2 % 20], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y += 12; + + sprintfStatic(buf_1, gUnknown_80EB198[bVar3 % 4], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y -= 12; + break; + } + case 8: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80EB220[bVar2 % 6], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y += 12; + + sprintfStatic(buf_1, gUnknown_80EB2F0[bVar3 % 6], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y -= 12; + break; + } + case 13: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E91D4[bVar2 % 45], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y += 12; + + sprintfStatic(buf_1, gUnknown_80E9820[bVar3 % 10], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y -= 12; + break; + } + default: { + u8 bVar2 = param_1->unk8->seed + param_1->unk8->dungeon.id; + u8 bVar3 = param_1->unk8->seed + param_1->unk8->dungeon.floor; + monName = GetMonSpecies(param_1->clientSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E8DE4[bVar2 % 13], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y += 12; + + sprintfStatic(buf_1, gUnknown_80E8FB0[bVar3 % 13], gAvailablePokemonNames); + xxx_call_draw_string(10, y, buf_1, param_1->unk0[0], 0); + y -= 12; + break; + } + } + + y += 28; + xxx_call_draw_string(10, y, gUnknown_80E8AC8, param_1->unk0[0], 0); + + if (param_1->playerName == NULL) + xxx_call_draw_string(68, y, GetMonSpecies(param_1->clientSpecies), param_1->unk0[0], 0); + else { + sub_80922B4(buf_3, param_1->playerName, POKEMON_NAME_LENGTH); + sub_808D930(buf_4, param_1->clientSpecies); + sprintfStatic(buf_2, gUnknown_80E8AD0, buf_3, buf_4); + xxx_call_draw_string(68, y, buf_2, param_1->unk0[0], 0); + } + + y += 12; + xxx_call_draw_string(10, y, gUnknown_80E8AE0, param_1->unk0[0], 0); + + switch (param_1->mailMissionType) { + case MISSION_TYPE_FRIEND_RESCUE: + xxx_call_draw_string(68, y, gUnknown_80E8AEC, param_1->unk0[0], 0); + break; + case MISSION_TYPE_DELIVER_ITEM: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E8AFC, gUnknown_202DE58); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case MISSION_TYPE_FIND_ITEM: + BufferItemName(gUnknown_202DE58, param_1->targetItem, NULL); + sprintfStatic(buf_1, gUnknown_80E8B10, gUnknown_202DE58); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case MISSION_TYPE_RESCUE_CLIENT: + xxx_call_draw_string(68, y, gUnknown_80E8B20, param_1->unk0[0], 0); + break; + case MISSION_TYPE_ESCORT_CLIENT: + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E8B2C, gAvailablePokemonNames); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case MISSION_TYPE_RESCUE_TARGET: + monName = GetMonSpecies(param_1->targetSpecies); + strcpy(gAvailablePokemonNames, monName); + sprintfStatic(buf_1, gUnknown_80E8B40, gAvailablePokemonNames); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case MISSION_TYPE_SPECIAL_MISSION: + default: + xxx_call_draw_string(68, y, gSpecialMissionText, param_1->unk0[0], 0); + break; + } + + y += 12; + xxx_call_draw_string(10, y, gPlaceText, param_1->unk0[0], 0); + + if (param_1->mailMissionType == MISSION_TYPE_FIND_ITEM) { + PrintDungeonLocationtoBuffer(buf_5, ¶m_1->unk8->dungeon); + sprintfStatic(buf_1, gUnknown_80E8884, buf_5); + } + else + PrintDungeonLocationtoBuffer(buf_1, ¶m_1->unk8->dungeon); + + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + + if (param_1->mailMissionType == MISSION_TYPE_FRIEND_RESCUE) + uVar3 = sub_803C1D0(¶m_1->unk8->dungeon, 0); + else + uVar3 = sub_803C1D0(¶m_1->unk8->dungeon, param_1->mail->missionType); + + y += 12; + xxx_call_draw_string(10, y, gDifficultyText, param_1->unk0[0], 0); + xxx_call_draw_string(68, y, sub_803C1F0(uVar3), param_1->unk0[0], 0); + + y += 12; + xxx_call_draw_string(10, y, gRewardText, param_1->unk0[0], 0); + + switch (param_1->rewardType) { + case 0: + sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], param_1->unk30); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case 1: + sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], param_1->unk30); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case 2: // Item + case 3: // Item + ? + BufferItemName(gUnknown_202DE58, param_1->rewardItem, NULL); + sprintfStatic(buf_1, gMissionRewardText[param_1->rewardType], gUnknown_202DE58); + xxx_call_draw_string(68, y, buf_1, param_1->unk0[0], 0); + break; + case 4: // Friend Area + xxx_call_draw_string(68, y, gMissionRewardText[param_1->rewardType], param_1->unk0[0], 0); + break; + default: + xxx_call_draw_string(68, y, gMissionRewardText[param_1->rewardType], param_1->unk0[0], 0); + break; + } + + // Draw the Password + y += 12; + if ((2 < (u8)(param_1->mailDescriptionType - 9)) && param_1->mailDescriptionType != 3 && param_1->mail->mailType == 5) { + xxx_call_draw_string(10, y, gUnknown_80E8B7C, param_1->unk0[0], 0); + sub_803D414(local_34, param_1->mail); + + for (counter = 0; counter < 24; counter++) { + if (counter == 12) + y += 12; + + color = COLOR_WHITE_2; + if (counter > 3) { + color = COLOR_YELLOW; + if (counter > 7 && (color = COLOR_WHITE_2)) { // ? + if (counter > 15) { + if (counter < 20) + color = COLOR_YELLOW; + } + } + } + + x = counter % 12; + sub_8012C60((x * 10) + 84, y, local_34[counter], color, param_1->unk0[0]); + } + } +} + +bool8 sub_803C0DC(s16 species) +{ + s32 baseSpecies; + s32 index; + + baseSpecies = GetBaseSpecies(species); + index = 0; + + //if (gUnknown_80E80E0[index] != MONSTER_NONE) { + while (gUnknown_80E80E0[index] != MONSTER_NONE) { + if (gUnknown_80E80E0[index] == baseSpecies) + return FALSE; + + index++; + } + //} + + return TRUE; +} + +bool8 sub_803C110(s16 index) +{ + PokemonStruct1 *pokeStruct; + const s16 *psVar5; + const s16 *psVar6; + s32 species_s32; + + species_s32 = (s32)index; + + if (!sub_8098134(index) || index != GetBaseSpecies(index) || !sub_803C0DC(index)) + return FALSE; + + if (!sub_80023E4(6)) { + psVar5 = &gUnknown_80E8126[0]; // TODO: Un-ugly this + if (*psVar5 != MONSTER_NONE) { + psVar6 = &gUnknown_80E8126[0]; + do { + if (*psVar6 == species_s32) + return FALSE; + psVar5++; + psVar6++; + } while (*psVar5 != MONSTER_NONE); + } + + pokeStruct = GetPlayerPokemonStruct(); + if (pokeStruct->speciesNum == species_s32) + return FALSE; + pokeStruct = sub_808D378(); + if (pokeStruct->speciesNum == species_s32) + return FALSE; + } + return TRUE; +} + const u8 *GetPokemonMailHeadline(u8 index) { - return gPokemonMail[index].headline; + return sPokemonMail[index].headline; } const u8 *GetPokemonMailText(u8 index) { - return gPokemonMail[index].text; -} + return sPokemonMail[index].text; +} \ No newline at end of file diff --git a/src/pokemon_mail_pre.c b/src/pokemon_mail_pre.c new file mode 100644 index 000000000..158debc4e --- /dev/null +++ b/src/pokemon_mail_pre.c @@ -0,0 +1,6 @@ +#include "global.h" +#include "globaldata.h" +#include "constants/item.h" +#include "pokemon_mail_pre.h" + +#include "data/pokemon_mail_pre.h" \ No newline at end of file diff --git a/src/pokemon_news1.c b/src/pokemon_news1.c index ba266bb36..95414e7ff 100644 --- a/src/pokemon_news1.c +++ b/src/pokemon_news1.c @@ -2,7 +2,6 @@ #include "globaldata.h" #include "code_80118A4.h" #include "code_80130A8.h" -#include "code_803B050.h" #include "code_8096AF8.h" #include "constants/input.h" #include "input.h" diff --git a/src/post_office_guide2.c b/src/post_office_guide2.c index 7a32401ea..cf18165ad 100644 --- a/src/post_office_guide2.c +++ b/src/post_office_guide2.c @@ -2,7 +2,6 @@ #include "globaldata.h" #include "code_800D090.h" #include "code_80118A4.h" -#include "code_803B050.h" #include "code_8094F88.h" #include "code_80958E8_1.h" #include "code_80972F4.h" @@ -13,6 +12,7 @@ #include "items.h" #include "memory.h" #include "menu_input.h" +#include "pokemon_mail.h" #include "post_office_guide2.h" #include "text1.h" #include "text2.h" diff --git a/src/wonder_mail_4.c b/src/wonder_mail_4.c index 6fe5af693..59adb3da5 100644 --- a/src/wonder_mail_4.c +++ b/src/wonder_mail_4.c @@ -1,18 +1,18 @@ #include "global.h" #include "globaldata.h" +#include "code_80118A4.h" +#include "code_8094F88.h" #include "constants/input.h" -#include "text1.h" -#include "text2.h" -#include "memory.h" +#include "constants/wonder_mail.h" #include "input.h" #include "items.h" -#include "pokemon.h" -#include "code_8094F88.h" -#include "constants/wonder_mail.h" -#include "structs/str_802C39C.h" +#include "memory.h" #include "menu_input.h" -#include "code_80118A4.h" -#include "code_803B050.h" +#include "pokemon.h" +#include "pokemon_mail.h" +#include "structs/str_802C39C.h" +#include "text1.h" +#include "text2.h" struct unkStruct_203B320 { diff --git a/src/wonder_mail_5.c b/src/wonder_mail_5.c index b4b204f46..389cebcca 100644 --- a/src/wonder_mail_5.c +++ b/src/wonder_mail_5.c @@ -1,17 +1,18 @@ #include "global.h" #include "globaldata.h" +#include "code_800D090.h" +#include "code_80118A4.h" +#include "code_8094F88.h" #include "constants/wonder_mail.h" +#include "dungeon.h" +#include "input.h" #include "memory.h" +#include "menu_input.h" +#include "pokemon.h" +#include "pokemon_mail.h" +#include "structs/str_802C39C.h" #include "text1.h" #include "text2.h" -#include "input.h" -#include "dungeon.h" -#include "pokemon.h" -#include "code_8094F88.h" -#include "code_800D090.h" -#include "structs/str_802C39C.h" -#include "menu_input.h" -#include "code_80118A4.h" struct unkStruct_203B324 { @@ -22,6 +23,7 @@ struct unkStruct_203B324 UnkTextStruct2 *unk14; UnkTextStruct2 unk18[4]; }; + static EWRAM_DATA_2 struct unkStruct_203B324 *gUnknown_203B324 = {0}; extern unkStruct_203B480 *gUnknown_203B480; @@ -51,7 +53,6 @@ const u8 gUnknown_80E0934[] = "ID:"; const u8 gUnknown_80E0938[] = "%-4d"; extern void sub_8030DD4(void); -extern void CreateRescueDescription(unkStruct_802C39C *); void sub_8030E2C(void); void sub_8030E48(void); diff --git a/src/wonder_mail_802C10C.c b/src/wonder_mail_802C10C.c index fd8e11a59..199803c9a 100644 --- a/src/wonder_mail_802C10C.c +++ b/src/wonder_mail_802C10C.c @@ -7,6 +7,7 @@ #include "input.h" #include "memory.h" #include "menu_input.h" +#include "pokemon_mail.h" #include "text1.h" #include "text2.h" #include "wonder_mail_802C10C.h" diff --git a/src/wonder_mail_802C4C8.c b/src/wonder_mail_802C4C8.c index 66aad1d6c..923dbea75 100644 --- a/src/wonder_mail_802C4C8.c +++ b/src/wonder_mail_802C4C8.c @@ -7,6 +7,7 @@ #include "input.h" #include "memory.h" #include "menu_input.h" +#include "pokemon_mail.h" #include "structs/str_802C39C.h" #include "structs/str_wonder_mail.h" #include "text1.h" diff --git a/src/wonder_mail_802CDD4.c b/src/wonder_mail_802CDD4.c index a8c42da0c..c45160f19 100644 --- a/src/wonder_mail_802CDD4.c +++ b/src/wonder_mail_802CDD4.c @@ -6,6 +6,7 @@ #include "input.h" #include "memory.h" #include "menu_input.h" +#include "pokemon_mail.h" #include "structs/str_802C39C.h" #include "structs/str_wonder_mail.h" #include "text1.h" diff --git a/sym_ewram2.txt b/sym_ewram2.txt index 282ed6a73..8f0018f3c 100644 --- a/sym_ewram2.txt +++ b/sym_ewram2.txt @@ -231,7 +231,8 @@ gUnknown_203B314: /* 203B314 (sub_802F73C - sub_802FA50) */ gUnknown_203B3FC: /* 203B3FC (sub_803B050 - sub_803B284) */ .space 0x4 -.include "src/personality_test.o" +.include "src/personality_test1.o" +.include "src/personality_test2.o" .include "src/code_803D0D8.o" .space 0x3 From 7f0ad0c963e78e99d4793e2db1ee68582cd4c936 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 20 Oct 2023 01:50:21 -0400 Subject: [PATCH 08/10] Resolve pokemon_mail.h ? --- src/data/pokemon_mail.h | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index 1903a0433..fde672b16 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -1789,11 +1789,7 @@ ALIGNED(4) static const u8 sWondersText[] = _( ALIGNED(4) static const u8 sWondersHeadline[] = _("#16 Seven Wonders of Pokémon"); -ALIGNED(4) const u8 gMail_WondersHeadline[] = _( - "#16 Seven Wonders of Pokémon"); - - -ALIGNED(4) const u8 gMail_PollText[] = _( +ALIGNED(4) static const u8 sPollText[] = _( // {UNK_MACRO_3D_50} expands to "#=2". The intent may have been "#=2.", // which is how all other instances of UNK_MACRO_3D are used. "{COLOR_1 YELLOW}First{UNK_MACRO_3D_50}Gravelerock{END_COLOR_TEXT_1}\n" From 6281e3610c89a3b2aaa78daae96a97ad6f490467 Mon Sep 17 00:00:00 2001 From: Kermalis <29823718+Kermalis@users.noreply.github.com> Date: Fri, 20 Oct 2023 01:51:59 -0400 Subject: [PATCH 09/10] Nevermind --- src/data/pokemon_mail.h | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index fde672b16..792de0133 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -1790,10 +1790,8 @@ ALIGNED(4) static const u8 sWondersText[] = _( ALIGNED(4) static const u8 sWondersHeadline[] = _("#16 Seven Wonders of Pokémon"); ALIGNED(4) static const u8 sPollText[] = _( - // {UNK_MACRO_3D_50} expands to "#=2". The intent may have been "#=2.", - // which is how all other instances of UNK_MACRO_3D are used. - "{COLOR_1 YELLOW}First{UNK_MACRO_3D_50}Gravelerock{END_COLOR_TEXT_1}\n" - "{COLOR_1 YELLOW}Second{UNK_MACRO_3D_50}Oran Berry{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}First{UNK_MACRO_3D M3D_50}Gravelerock{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}Second{UNK_MACRO_3D M3D_50}Oran Berry{END_COLOR_TEXT_1}\n" "In a nationwide survey involving rescue\n" "teams{COMMA} the most popular item was found to\n" "be {COLOR_1 GREEN}Gravelerocks{END_COLOR_TEXT_1}. According to Sudowoodo\n" From 686f5d27232ec9a9e33ba3a653aa9149c30a42ee Mon Sep 17 00:00:00 2001 From: Roshan Padaki Date: Sun, 22 Oct 2023 00:05:41 -0400 Subject: [PATCH 10/10] fix unk macro 3d --- src/data/pokemon_mail.h | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/data/pokemon_mail.h b/src/data/pokemon_mail.h index 792de0133..90fb4a6a0 100644 --- a/src/data/pokemon_mail.h +++ b/src/data/pokemon_mail.h @@ -1790,8 +1790,8 @@ ALIGNED(4) static const u8 sWondersText[] = _( ALIGNED(4) static const u8 sWondersHeadline[] = _("#16 Seven Wonders of Pokémon"); ALIGNED(4) static const u8 sPollText[] = _( - "{COLOR_1 YELLOW}First{UNK_MACRO_3D M3D_50}Gravelerock{END_COLOR_TEXT_1}\n" - "{COLOR_1 YELLOW}Second{UNK_MACRO_3D M3D_50}Oran Berry{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}First{UNK_MACRO_3D_50}Gravelerock{END_COLOR_TEXT_1}\n" + "{COLOR_1 YELLOW}Second{UNK_MACRO_3D_50}Oran Berry{END_COLOR_TEXT_1}\n" "In a nationwide survey involving rescue\n" "teams{COMMA} the most popular item was found to\n" "be {COLOR_1 GREEN}Gravelerocks{END_COLOR_TEXT_1}. According to Sudowoodo\n"