summaryrefslogtreecommitdiff
path: root/src/data
diff options
context:
space:
mode:
Diffstat (limited to 'src/data')
-rw-r--r--src/data/battle_frontier/apprentice.h982
-rw-r--r--src/data/battle_frontier/battle_frontier_exchange_corner.h60
-rw-r--r--src/data/battle_frontier/trainer_hill.h129
-rw-r--r--src/data/contest_text_tables.h765
-rwxr-xr-xsrc/data/field_event_obj/event_object_graphics_info_pointers.h14
-rw-r--r--src/data/party_menu.h1255
-rw-r--r--src/data/pokemon/level_up_learnsets.h1
-rw-r--r--src/data/trainer_parties.h106
-rw-r--r--src/data/trainers.h318
-rw-r--r--src/data/union_room.h236
10 files changed, 3075 insertions, 791 deletions
diff --git a/src/data/battle_frontier/apprentice.h b/src/data/battle_frontier/apprentice.h
new file mode 100644
index 000000000..0fdb87f96
--- /dev/null
+++ b/src/data/battle_frontier/apprentice.h
@@ -0,0 +1,982 @@
+// data/text/apprentice.inc
+extern const u8 gText_ApprenticePleaseTeach0[];
+extern const u8 gText_ApprenticePleaseTeach1[];
+extern const u8 gText_ApprenticePleaseTeach2[];
+extern const u8 gText_ApprenticePleaseTeach3[];
+extern const u8 gText_ApprenticePleaseTeach4[];
+extern const u8 gText_ApprenticePleaseTeach5[];
+extern const u8 gText_ApprenticePleaseTeach6[];
+extern const u8 gText_ApprenticePleaseTeach7[];
+extern const u8 gText_ApprenticePleaseTeach8[];
+extern const u8 gText_ApprenticePleaseTeach9[];
+extern const u8 gText_ApprenticePleaseTeach10[];
+extern const u8 gText_ApprenticePleaseTeach11[];
+extern const u8 gText_ApprenticePleaseTeach12[];
+extern const u8 gText_ApprenticePleaseTeach13[];
+extern const u8 gText_ApprenticePleaseTeach14[];
+extern const u8 gText_ApprenticePleaseTeach15[];
+extern const u8 gText_ApprenticeRejectTeaching0[];
+extern const u8 gText_ApprenticeRejectTeaching1[];
+extern const u8 gText_ApprenticeRejectTeaching2[];
+extern const u8 gText_ApprenticeRejectTeaching3[];
+extern const u8 gText_ApprenticeRejectTeaching4[];
+extern const u8 gText_ApprenticeRejectTeaching5[];
+extern const u8 gText_ApprenticeRejectTeaching6[];
+extern const u8 gText_ApprenticeRejectTeaching7[];
+extern const u8 gText_ApprenticeRejectTeaching8[];
+extern const u8 gText_ApprenticeRejectTeaching9[];
+extern const u8 gText_ApprenticeRejectTeaching10[];
+extern const u8 gText_ApprenticeRejectTeaching11[];
+extern const u8 gText_ApprenticeRejectTeaching12[];
+extern const u8 gText_ApprenticeRejectTeaching13[];
+extern const u8 gText_ApprenticeRejectTeaching14[];
+extern const u8 gText_ApprenticeRejectTeaching15[];
+extern const u8 gText_ApprenticeWhichLevelMode0[];
+extern const u8 gText_ApprenticeWhichLevelMode1[];
+extern const u8 gText_ApprenticeWhichLevelMode2[];
+extern const u8 gText_ApprenticeWhichLevelMode3[];
+extern const u8 gText_ApprenticeWhichLevelMode4[];
+extern const u8 gText_ApprenticeWhichLevelMode5[];
+extern const u8 gText_ApprenticeWhichLevelMode6[];
+extern const u8 gText_ApprenticeWhichLevelMode7[];
+extern const u8 gText_ApprenticeWhichLevelMode8[];
+extern const u8 gText_ApprenticeWhichLevelMode9[];
+extern const u8 gText_ApprenticeWhichLevelMode10[];
+extern const u8 gText_ApprenticeWhichLevelMode11[];
+extern const u8 gText_ApprenticeWhichLevelMode12[];
+extern const u8 gText_ApprenticeWhichLevelMode13[];
+extern const u8 gText_ApprenticeWhichLevelMode14[];
+extern const u8 gText_ApprenticeWhichLevelMode15[];
+extern const u8 gText_ApprenticeLevelModeThanks0[];
+extern const u8 gText_ApprenticeLevelModeThanks1[];
+extern const u8 gText_ApprenticeLevelModeThanks2[];
+extern const u8 gText_ApprenticeLevelModeThanks3[];
+extern const u8 gText_ApprenticeLevelModeThanks4[];
+extern const u8 gText_ApprenticeLevelModeThanks5[];
+extern const u8 gText_ApprenticeLevelModeThanks6[];
+extern const u8 gText_ApprenticeLevelModeThanks7[];
+extern const u8 gText_ApprenticeLevelModeThanks8[];
+extern const u8 gText_ApprenticeLevelModeThanks9[];
+extern const u8 gText_ApprenticeLevelModeThanks10[];
+extern const u8 gText_ApprenticeLevelModeThanks11[];
+extern const u8 gText_ApprenticeLevelModeThanks12[];
+extern const u8 gText_ApprenticeLevelModeThanks13[];
+extern const u8 gText_ApprenticeLevelModeThanks14[];
+extern const u8 gText_ApprenticeLevelModeThanks15[];
+
+extern const u8 gText_ApprenticeWhichMon0[];
+extern const u8 gText_ApprenticeWhichMon1[];
+extern const u8 gText_ApprenticeWhichMon2[];
+extern const u8 gText_ApprenticeWhichMon3[];
+extern const u8 gText_ApprenticeWhichMon4[];
+extern const u8 gText_ApprenticeWhichMon5[];
+extern const u8 gText_ApprenticeWhichMon6[];
+extern const u8 gText_ApprenticeWhichMon7[];
+extern const u8 gText_ApprenticeWhichMon8[];
+extern const u8 gText_ApprenticeWhichMon9[];
+extern const u8 gText_ApprenticeWhichMon10[];
+extern const u8 gText_ApprenticeWhichMon11[];
+extern const u8 gText_ApprenticeWhichMon12[];
+extern const u8 gText_ApprenticeWhichMon13[];
+extern const u8 gText_ApprenticeWhichMon14[];
+extern const u8 gText_ApprenticeWhichMon15[];
+extern const u8 gText_ApprenticeMonThanks0[];
+extern const u8 gText_ApprenticeMonThanks1[];
+extern const u8 gText_ApprenticeMonThanks2[];
+extern const u8 gText_ApprenticeMonThanks3[];
+extern const u8 gText_ApprenticeMonThanks4[];
+extern const u8 gText_ApprenticeMonThanks5[];
+extern const u8 gText_ApprenticeMonThanks6[];
+extern const u8 gText_ApprenticeMonThanks7[];
+extern const u8 gText_ApprenticeMonThanks8[];
+extern const u8 gText_ApprenticeMonThanks9[];
+extern const u8 gText_ApprenticeMonThanks10[];
+extern const u8 gText_ApprenticeMonThanks11[];
+extern const u8 gText_ApprenticeMonThanks12[];
+extern const u8 gText_ApprenticeMonThanks13[];
+extern const u8 gText_ApprenticeMonThanks14[];
+extern const u8 gText_ApprenticeMonThanks15[];
+
+extern const u8 gText_ApprenticeWhatHeldItem0[];
+extern const u8 gText_ApprenticeWhatHeldItem1[];
+extern const u8 gText_ApprenticeWhatHeldItem2[];
+extern const u8 gText_ApprenticeWhatHeldItem3[];
+extern const u8 gText_ApprenticeWhatHeldItem4[];
+extern const u8 gText_ApprenticeWhatHeldItem5[];
+extern const u8 gText_ApprenticeWhatHeldItem6[];
+extern const u8 gText_ApprenticeWhatHeldItem7[];
+extern const u8 gText_ApprenticeWhatHeldItem8[];
+extern const u8 gText_ApprenticeWhatHeldItem9[];
+extern const u8 gText_ApprenticeWhatHeldItem10[];
+extern const u8 gText_ApprenticeWhatHeldItem11[];
+extern const u8 gText_ApprenticeWhatHeldItem12[];
+extern const u8 gText_ApprenticeWhatHeldItem13[];
+extern const u8 gText_ApprenticeWhatHeldItem14[];
+extern const u8 gText_ApprenticeWhatHeldItem15[];
+extern const u8 gText_ApprenticeHoldNothing0[];
+extern const u8 gText_ApprenticeHoldNothing1[];
+extern const u8 gText_ApprenticeHoldNothing2[];
+extern const u8 gText_ApprenticeHoldNothing3[];
+extern const u8 gText_ApprenticeHoldNothing4[];
+extern const u8 gText_ApprenticeHoldNothing5[];
+extern const u8 gText_ApprenticeHoldNothing6[];
+extern const u8 gText_ApprenticeHoldNothing7[];
+extern const u8 gText_ApprenticeHoldNothing8[];
+extern const u8 gText_ApprenticeHoldNothing9[];
+extern const u8 gText_ApprenticeHoldNothing10[];
+extern const u8 gText_ApprenticeHoldNothing11[];
+extern const u8 gText_ApprenticeHoldNothing12[];
+extern const u8 gText_ApprenticeHoldNothing13[];
+extern const u8 gText_ApprenticeHoldNothing14[];
+extern const u8 gText_ApprenticeHoldNothing15[];
+extern const u8 gText_ApprenticeThanksNoHeldItem0[];
+extern const u8 gText_ApprenticeThanksNoHeldItem1[];
+extern const u8 gText_ApprenticeThanksNoHeldItem2[];
+extern const u8 gText_ApprenticeThanksNoHeldItem3[];
+extern const u8 gText_ApprenticeThanksNoHeldItem4[];
+extern const u8 gText_ApprenticeThanksNoHeldItem5[];
+extern const u8 gText_ApprenticeThanksNoHeldItem6[];
+extern const u8 gText_ApprenticeThanksNoHeldItem7[];
+extern const u8 gText_ApprenticeThanksNoHeldItem8[];
+extern const u8 gText_ApprenticeThanksNoHeldItem9[];
+extern const u8 gText_ApprenticeThanksNoHeldItem10[];
+extern const u8 gText_ApprenticeThanksNoHeldItem11[];
+extern const u8 gText_ApprenticeThanksNoHeldItem12[];
+extern const u8 gText_ApprenticeThanksNoHeldItem13[];
+extern const u8 gText_ApprenticeThanksNoHeldItem14[];
+extern const u8 gText_ApprenticeThanksNoHeldItem15[];
+extern const u8 gText_ApprenticeThanksHeldItem0[];
+extern const u8 gText_ApprenticeThanksHeldItem1[];
+extern const u8 gText_ApprenticeThanksHeldItem2[];
+extern const u8 gText_ApprenticeThanksHeldItem3[];
+extern const u8 gText_ApprenticeThanksHeldItem4[];
+extern const u8 gText_ApprenticeThanksHeldItem5[];
+extern const u8 gText_ApprenticeThanksHeldItem6[];
+extern const u8 gText_ApprenticeThanksHeldItem7[];
+extern const u8 gText_ApprenticeThanksHeldItem8[];
+extern const u8 gText_ApprenticeThanksHeldItem9[];
+extern const u8 gText_ApprenticeThanksHeldItem10[];
+extern const u8 gText_ApprenticeThanksHeldItem11[];
+extern const u8 gText_ApprenticeThanksHeldItem12[];
+extern const u8 gText_ApprenticeThanksHeldItem13[];
+extern const u8 gText_ApprenticeThanksHeldItem14[];
+extern const u8 gText_ApprenticeThanksHeldItem15[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended0[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended1[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended2[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended3[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended4[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended5[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended6[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended7[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended8[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended9[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended10[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended11[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended12[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended13[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended14[];
+extern const u8 gText_ApprenticeItemAlreadyRecommended15[];
+
+extern const u8 gText_ApprenticeWhichMove0[];
+extern const u8 gText_ApprenticeWhichMove1[];
+extern const u8 gText_ApprenticeWhichMove2[];
+extern const u8 gText_ApprenticeWhichMove3[];
+extern const u8 gText_ApprenticeWhichMove4[];
+extern const u8 gText_ApprenticeWhichMove5[];
+extern const u8 gText_ApprenticeWhichMove6[];
+extern const u8 gText_ApprenticeWhichMove7[];
+extern const u8 gText_ApprenticeWhichMove8[];
+extern const u8 gText_ApprenticeWhichMove9[];
+extern const u8 gText_ApprenticeWhichMove10[];
+extern const u8 gText_ApprenticeWhichMove11[];
+extern const u8 gText_ApprenticeWhichMove12[];
+extern const u8 gText_ApprenticeWhichMove13[];
+extern const u8 gText_ApprenticeWhichMove14[];
+extern const u8 gText_ApprenticeWhichMove15[];
+extern const u8 gText_ApprenticeMoveThanks0[];
+extern const u8 gText_ApprenticeMoveThanks1[];
+extern const u8 gText_ApprenticeMoveThanks2[];
+extern const u8 gText_ApprenticeMoveThanks3[];
+extern const u8 gText_ApprenticeMoveThanks4[];
+extern const u8 gText_ApprenticeMoveThanks5[];
+extern const u8 gText_ApprenticeMoveThanks6[];
+extern const u8 gText_ApprenticeMoveThanks7[];
+extern const u8 gText_ApprenticeMoveThanks8[];
+extern const u8 gText_ApprenticeMoveThanks9[];
+extern const u8 gText_ApprenticeMoveThanks10[];
+extern const u8 gText_ApprenticeMoveThanks11[];
+extern const u8 gText_ApprenticeMoveThanks12[];
+extern const u8 gText_ApprenticeMoveThanks13[];
+extern const u8 gText_ApprenticeMoveThanks14[];
+extern const u8 gText_ApprenticeMoveThanks15[];
+
+extern const u8 gText_ApprenticeWhichMonFirst0[];
+extern const u8 gText_ApprenticeWhichMonFirst1[];
+extern const u8 gText_ApprenticeWhichMonFirst2[];
+extern const u8 gText_ApprenticeWhichMonFirst3[];
+extern const u8 gText_ApprenticeWhichMonFirst4[];
+extern const u8 gText_ApprenticeWhichMonFirst5[];
+extern const u8 gText_ApprenticeWhichMonFirst6[];
+extern const u8 gText_ApprenticeWhichMonFirst7[];
+extern const u8 gText_ApprenticeWhichMonFirst8[];
+extern const u8 gText_ApprenticeWhichMonFirst9[];
+extern const u8 gText_ApprenticeWhichMonFirst10[];
+extern const u8 gText_ApprenticeWhichMonFirst11[];
+extern const u8 gText_ApprenticeWhichMonFirst12[];
+extern const u8 gText_ApprenticeWhichMonFirst13[];
+extern const u8 gText_ApprenticeWhichMonFirst14[];
+extern const u8 gText_ApprenticeWhichMonFirst15[];
+extern const u8 gText_ApprenticeMonFirstThanks0[];
+extern const u8 gText_ApprenticeMonFirstThanks1[];
+extern const u8 gText_ApprenticeMonFirstThanks2[];
+extern const u8 gText_ApprenticeMonFirstThanks3[];
+extern const u8 gText_ApprenticeMonFirstThanks4[];
+extern const u8 gText_ApprenticeMonFirstThanks5[];
+extern const u8 gText_ApprenticeMonFirstThanks6[];
+extern const u8 gText_ApprenticeMonFirstThanks7[];
+extern const u8 gText_ApprenticeMonFirstThanks8[];
+extern const u8 gText_ApprenticeMonFirstThanks9[];
+extern const u8 gText_ApprenticeMonFirstThanks10[];
+extern const u8 gText_ApprenticeMonFirstThanks11[];
+extern const u8 gText_ApprenticeMonFirstThanks12[];
+extern const u8 gText_ApprenticeMonFirstThanks13[];
+extern const u8 gText_ApprenticeMonFirstThanks14[];
+extern const u8 gText_ApprenticeMonFirstThanks15[];
+
+extern const u8 gText_ApprenticePickWinSpeech0[];
+extern const u8 gText_ApprenticePickWinSpeech1[];
+extern const u8 gText_ApprenticePickWinSpeech2[];
+extern const u8 gText_ApprenticePickWinSpeech3[];
+extern const u8 gText_ApprenticePickWinSpeech4[];
+extern const u8 gText_ApprenticePickWinSpeech5[];
+extern const u8 gText_ApprenticePickWinSpeech6[];
+extern const u8 gText_ApprenticePickWinSpeech7[];
+extern const u8 gText_ApprenticePickWinSpeech8[];
+extern const u8 gText_ApprenticePickWinSpeech9[];
+extern const u8 gText_ApprenticePickWinSpeech10[];
+extern const u8 gText_ApprenticePickWinSpeech11[];
+extern const u8 gText_ApprenticePickWinSpeech12[];
+extern const u8 gText_ApprenticePickWinSpeech13[];
+extern const u8 gText_ApprenticePickWinSpeech14[];
+extern const u8 gText_ApprenticePickWinSpeech15[];
+extern const u8 gText_ApprenticeWinSpeechThanks0[];
+extern const u8 gText_ApprenticeWinSpeechThanks1[];
+extern const u8 gText_ApprenticeWinSpeechThanks2[];
+extern const u8 gText_ApprenticeWinSpeechThanks3[];
+extern const u8 gText_ApprenticeWinSpeechThanks4[];
+extern const u8 gText_ApprenticeWinSpeechThanks5[];
+extern const u8 gText_ApprenticeWinSpeechThanks6[];
+extern const u8 gText_ApprenticeWinSpeechThanks7[];
+extern const u8 gText_ApprenticeWinSpeechThanks8[];
+extern const u8 gText_ApprenticeWinSpeechThanks9[];
+extern const u8 gText_ApprenticeWinSpeechThanks10[];
+extern const u8 gText_ApprenticeWinSpeechThanks11[];
+extern const u8 gText_ApprenticeWinSpeechThanks12[];
+extern const u8 gText_ApprenticeWinSpeechThanks13[];
+extern const u8 gText_ApprenticeWinSpeechThanks14[];
+extern const u8 gText_ApprenticeWinSpeechThanks15[];
+
+extern const u8 gText_ApprenticeChallenge0[];
+extern const u8 gText_ApprenticeChallenge1[];
+extern const u8 gText_ApprenticeChallenge2[];
+extern const u8 gText_ApprenticeChallenge3[];
+extern const u8 gText_ApprenticeChallenge4[];
+extern const u8 gText_ApprenticeChallenge5[];
+extern const u8 gText_ApprenticeChallenge6[];
+extern const u8 gText_ApprenticeChallenge7[];
+extern const u8 gText_ApprenticeChallenge8[];
+extern const u8 gText_ApprenticeChallenge9[];
+extern const u8 gText_ApprenticeChallenge10[];
+extern const u8 gText_ApprenticeChallenge11[];
+extern const u8 gText_ApprenticeChallenge12[];
+extern const u8 gText_ApprenticeChallenge13[];
+extern const u8 gText_ApprenticeChallenge14[];
+extern const u8 gText_ApprenticeChallenge15[];
+
+const struct ApprenticeTrainer gApprentices[NUM_APPRENTICES] =
+{
+ {
+ .name = {_("サダヒロ"), _("ALANN"), _("ALAIN"), _("ADELFO"), _("CLAUS"), _("TEO")},
+ .otId = 0xBDC9,
+ .facilityClass = FACILITY_CLASS_BUG_CATCHER,
+ .species = {SPECIES_BEAUTIFLY, SPECIES_DUSTOX, SPECIES_ILLUMISE, SPECIES_SHIFTRY, SPECIES_BRELOOM, SPECIES_NINJASK, SPECIES_SHEDINJA, SPECIES_PINSIR, SPECIES_HERACROSS, SPECIES_VOLBEAT},
+ .id = 0,
+ .speechLost = {EC_WORD_NO, EC_WORD_MISTAKE, EC_WORD_EXCL, EC_WORD_I, EC_WORD_LOST, EC_WORD_BADLY},
+ },
+ {
+ .name = {_("ヒロオ"), _("LIONEL"), _("LIONEL"), _("CAIO"), _("LUDWIG"), _("LEO")},
+ .otId = 0xCF09,
+ .facilityClass = FACILITY_CLASS_YOUNGSTER,
+ .species = {SPECIES_SWELLOW, SPECIES_SWALOT, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_TORKOAL, SPECIES_HARIYAMA, SPECIES_MIGHTYENA, SPECIES_LUDICOLO, SPECIES_CRAWDAUNT, SPECIES_WHISCASH},
+ .id = 1,
+ .speechLost = {EC_WORD_OKAY, EC_WORD_I, EC_WORD_LOST, EC_WORD_YOU_RE, EC_WORD_A, EC_WORD_MASTER},
+ },
+ {
+ .name = {_("ケイジ"), _("SONNY"), _("HERVE"), _("FEDRO"), _("WENZEL"), _("SANTI")},
+ .otId = 0x2E34,
+ .facilityClass = FACILITY_CLASS_SCHOOL_KID_M,
+ .species = {SPECIES_LINOONE, SPECIES_MIGHTYENA, SPECIES_WHISCASH, SPECIES_ZANGOOSE, SPECIES_SEVIPER, SPECIES_NINETALES, SPECIES_KECLEON, SPECIES_SHUCKLE, SPECIES_MANECTRIC, SPECIES_MACHAMP},
+ .id = 2,
+ .speechLost = {EC_WORD_I, EC_WORD_WENT, EC_WORD_AND, EC_WORD_LOST, EC_WORD_AWW, EC_WORD_ELLIPSIS},
+ },
+ {
+ .name = {_("ユラ"), _("LAYLA"), _("LAYLA"), _("ASTRID"), _("SONJA"), _("LOLA")},
+ .otId = 0x84EF,
+ .facilityClass = FACILITY_CLASS_LASS,
+ .species = {SPECIES_SWALOT, SPECIES_XATU, SPECIES_ALTARIA, SPECIES_GOLDUCK, SPECIES_FLYGON, SPECIES_ALAKAZAM, SPECIES_GARDEVOIR, SPECIES_WAILORD, SPECIES_GRUMPIG, SPECIES_MIGHTYENA},
+ .id = 3,
+ .speechLost = {EC_WORD_IS, EC_WORD_THIS, EC_WORD_TOO, EC_WORD_MUCH, EC_WORD_QUES, 0xFFFF},
+ },
+ {
+ .name = {_("ヨウカ"), _("MACY"), _("AMELIE"), _("CLEO"), _("MARIA"), _("ELISA")},
+ .otId = 0x1E43,
+ .facilityClass = FACILITY_CLASS_SCHOOL_KID_F,
+ .species = {SPECIES_WIGGLYTUFF, SPECIES_LINOONE, SPECIES_KINGDRA, SPECIES_DELCATTY, SPECIES_RAICHU, SPECIES_FEAROW, SPECIES_STARMIE, SPECIES_MEDICHAM, SPECIES_SHIFTRY, SPECIES_BEAUTIFLY},
+ .id = 4,
+ .speechLost = {EC_WORD_THIS, EC_WORD_WON_T, EC_WORD_BE, EC_WORD_HAPPENING, EC_WORD_NEXT, EC_WORD_TIME},
+ },
+ {
+ .name = {_("ヤスシ"), _("DONTE"), _("BRAHIM"), _("GLAUCO"), _("JOSEF"), _("ROQUE")},
+ .otId = 0x379F,
+ .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_M,
+ .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_AGGRON, SPECIES_MAGNETON, SPECIES_MACHAMP, SPECIES_ARMALDO, SPECIES_HERACROSS, SPECIES_NOSEPASS, SPECIES_EXPLOUD, SPECIES_MIGHTYENA},
+ .id = 5,
+ .speechLost = {EC_WORD_I_AM, EC_WORD_GOING, EC_WORD_TO, EC_WORD_RUN, EC_WORD_BYE_BYE, EC_WORD_EXCL},
+ },
+ {
+ .name = {_("ミサオ"), _("AMIRA"), _("LAURE"), _("DAFNE"), _("AMELIE"), _("LARA")},
+ .otId = 0xF555,
+ .facilityClass = FACILITY_CLASS_RUNNING_TRIATHLETE_F,
+ .species = {SPECIES_STARMIE, SPECIES_DODRIO, SPECIES_MAGNETON, SPECIES_MEDICHAM, SPECIES_MIGHTYENA, SPECIES_GLALIE, SPECIES_GOLEM, SPECIES_ELECTRODE, SPECIES_PELIPPER, SPECIES_SHARPEDO},
+ .id = 6,
+ .speechLost = {EC_WORD_AHAHA, EC_WORD_DEFEATED, EC_WORD_EXCL, EC_WORD_IT_S, EC_WORD_NOTHING, EC_WORD_EXCL},
+ },
+ {
+ .name = {_("カズサ"), _("KALI"), _("JODIE"), _("ILENIA"), _("KARO"), _("ELSA")},
+ .otId = 0x8D26,
+ .facilityClass = FACILITY_CLASS_BEAUTY,
+ .species = {SPECIES_NINETALES, SPECIES_ALAKAZAM, SPECIES_SCEPTILE, SPECIES_SALAMENCE, SPECIES_GOLDUCK, SPECIES_MAWILE, SPECIES_WEEZING, SPECIES_LANTURN, SPECIES_GARDEVOIR, SPECIES_MILOTIC},
+ .id = 7,
+ .speechLost = {EC_WORD_YOU_RE, EC_WORD_STRONG, EC_WORD_AREN_T, EC_WORD_YOU, EC_WORD_QUES, 0xFFFF},
+ },
+ {
+ .name = {_("スミレ"), _("ANNIE"), _("ANNIE"), _("IMELDA"), _("INES"), _("ROSA")},
+ .otId = 0x800C,
+ .facilityClass = FACILITY_CLASS_AROMA_LADY,
+ .species = {SPECIES_SCEPTILE, SPECIES_VILEPLUME, SPECIES_BELLOSSOM, SPECIES_ROSELIA, SPECIES_CORSOLA, SPECIES_FLYGON, SPECIES_BRELOOM, SPECIES_MILOTIC, SPECIES_ALTARIA, SPECIES_CRADILY},
+ .id = 8,
+ .speechLost = {EC_WORD_WHAT, EC_WORD_TOUGH, EC_WORD_POKEMON, EC_WORD_YOU, EC_WORD_HAVE, EC_WORD_EXCL},
+ },
+ {
+ .name = {_("アキノリ"), _("DILLEN"), _("RENE"), _("INDRO"), _("DETLEF"), _("PEDRO")},
+ .otId = 0x469f,
+ .facilityClass = FACILITY_CLASS_HIKER,
+ .species = {SPECIES_SKARMORY, SPECIES_GOLEM, SPECIES_BLAZIKEN, SPECIES_CAMERUPT, SPECIES_DONPHAN, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_TROPIUS, SPECIES_SOLROCK, SPECIES_RHYDON},
+ .id = 9,
+ .speechLost = {EC_WORD_WE, EC_WORD_WERE, EC_WORD_JUST, EC_WORD_SHREDDED, EC_WORD_ELLIPSIS, 0xFFFF},
+ },
+ {
+ .name = {_("トウゾウ"), _("DALLAS"), _("BRUNO"), _("LEARCO"), _("ANSGAR"), _("MANOLO")},
+ .otId = 0x71FC,
+ .facilityClass = FACILITY_CLASS_FISHERMAN,
+ .species = {SPECIES_SEAKING, SPECIES_STARMIE, SPECIES_GOLDUCK, SPECIES_TENTACRUEL, SPECIES_OCTILLERY, SPECIES_GOREBYSS, SPECIES_GLALIE, SPECIES_WAILORD, SPECIES_SHARPEDO, SPECIES_KINGDRA},
+ .id = 10,
+ .speechLost = {EC_WORD_YOUR, EC_WORD_WIN, EC_WORD_ANGERS, EC_WORD_ME, EC_WORD_EXCL, 0xFFFF},
+ },
+ {
+ .name = {_("セイヤ"), _("FRANK"), _("FRANK"), _("OLINDO"), _("FRANK"), _("MAURO")},
+ .otId = 0xA39E,
+ .facilityClass = FACILITY_CLASS_SAILOR,
+ .species = {SPECIES_QUAGSIRE, SPECIES_STARMIE, SPECIES_PELIPPER, SPECIES_CRAWDAUNT, SPECIES_WAILORD, SPECIES_GYARADOS, SPECIES_SWAMPERT, SPECIES_LANTURN, SPECIES_WHISCASH, SPECIES_SHUCKLE},
+ .id = 11,
+ .speechLost = {EC_WORD_LOSING, EC_WORD_DOESN_T, EC_MOVE(CUT), EC_WORD_ME, EC_WORD_DEEP, EC_WORD_OK_QUES},
+ },
+ {
+ .name = {_("リュウジ"), _("LAMONT"), _("XAV"), _("ORFEO"), _("JÜRGEN"), _("JORGE")},
+ .otId = 0xE590,
+ .facilityClass = FACILITY_CLASS_GUITARIST,
+ .species = {SPECIES_ABSOL, SPECIES_CROBAT, SPECIES_EXPLOUD, SPECIES_MAGNETON, SPECIES_SHARPEDO, SPECIES_MANECTRIC, SPECIES_METAGROSS, SPECIES_ELECTRODE, SPECIES_NOSEPASS, SPECIES_WEEZING},
+ .id = 12,
+ .speechLost = {EC_WORD_A, EC_WORD_LOSS, EC_WORD_IS, EC_WORD_WHAT, EC_WORD_THIS, EC_WORD_IS},
+ },
+ {
+ .name = {_("カツアキ"), _("TYRESE"), _("ANDY"), _("PARIDE"), _("DAVID"), _("CHICHO")},
+ .otId = 0xD018,
+ .facilityClass = FACILITY_CLASS_BLACK_BELT,
+ .species = {SPECIES_BLAZIKEN, SPECIES_GOLEM, SPECIES_MACHAMP, SPECIES_RHYDON, SPECIES_HARIYAMA, SPECIES_AGGRON, SPECIES_MEDICHAM, SPECIES_ZANGOOSE, SPECIES_VIGOROTH, SPECIES_SLAKING},
+ .id = 13,
+ .speechLost = {EC_WORD_I_AM, EC_WORD_TOO_WEAK, EC_WORD_AND, EC_WORD_LOW, EC_WORD_OF, EC_WORD_POWER},
+ },
+ {
+ .name = {_("トシミツ"), _("DANTE"), _("DANTE"), _("RAOUL"), _("LOTHAR"), _("PABLO")},
+ .otId = 0xBC75,
+ .facilityClass = FACILITY_CLASS_RUIN_MANIAC,
+ .species = {SPECIES_SCEPTILE, SPECIES_SANDSLASH, SPECIES_FLYGON, SPECIES_CLAYDOL, SPECIES_ARMALDO, SPECIES_CROBAT, SPECIES_CRADILY, SPECIES_SOLROCK, SPECIES_LUNATONE, SPECIES_GOLEM},
+ .id = 14,
+ .speechLost = {EC_WORD_I, EC_WORD_DON_T, EC_WORD_UNDERSTAND, EC_WORD_WHAT, EC_WORD_IS, EC_WORD_HAPPENING},
+ },
+ {
+ .name = {_("ローウェン"), _("ARTURO"), _("ARTURO"), _("ROMOLO"), _("BRIAN"), _("ARTURO")},
+ .otId = 0xFA02,
+ .facilityClass = FACILITY_CLASS_GENTLEMAN,
+ .species = {SPECIES_ABSOL, SPECIES_MIGHTYENA, SPECIES_ALAKAZAM, SPECIES_BANETTE, SPECIES_NINETALES, SPECIES_CLAYDOL, SPECIES_MUK, SPECIES_SALAMENCE, SPECIES_WALREIN, SPECIES_DUSCLOPS},
+ .id = 15,
+ .speechLost = {EC_WORD_THIS, EC_WORD_HAS, EC_WORD_TO, EC_WORD_BE, EC_WORD_A, EC_WORD_LIE},
+ },
+};
+
+// Sequence of 4 messages for the first meeting with the apprentice
+static const u8 *const sApprenticeFirstMeetingTexts[NUM_APPRENTICES][4] =
+{
+ {gText_ApprenticePleaseTeach0, gText_ApprenticeRejectTeaching0, gText_ApprenticeWhichLevelMode0, gText_ApprenticeLevelModeThanks0},
+ {gText_ApprenticePleaseTeach1, gText_ApprenticeRejectTeaching1, gText_ApprenticeWhichLevelMode1, gText_ApprenticeLevelModeThanks1},
+ {gText_ApprenticePleaseTeach2, gText_ApprenticeRejectTeaching2, gText_ApprenticeWhichLevelMode2, gText_ApprenticeLevelModeThanks2},
+ {gText_ApprenticePleaseTeach3, gText_ApprenticeRejectTeaching3, gText_ApprenticeWhichLevelMode3, gText_ApprenticeLevelModeThanks3},
+ {gText_ApprenticePleaseTeach4, gText_ApprenticeRejectTeaching4, gText_ApprenticeWhichLevelMode4, gText_ApprenticeLevelModeThanks4},
+ {gText_ApprenticePleaseTeach5, gText_ApprenticeRejectTeaching5, gText_ApprenticeWhichLevelMode5, gText_ApprenticeLevelModeThanks5},
+ {gText_ApprenticePleaseTeach6, gText_ApprenticeRejectTeaching6, gText_ApprenticeWhichLevelMode6, gText_ApprenticeLevelModeThanks6},
+ {gText_ApprenticePleaseTeach7, gText_ApprenticeRejectTeaching7, gText_ApprenticeWhichLevelMode7, gText_ApprenticeLevelModeThanks7},
+ {gText_ApprenticePleaseTeach8, gText_ApprenticeRejectTeaching8, gText_ApprenticeWhichLevelMode8, gText_ApprenticeLevelModeThanks8},
+ {gText_ApprenticePleaseTeach9, gText_ApprenticeRejectTeaching9, gText_ApprenticeWhichLevelMode9, gText_ApprenticeLevelModeThanks9},
+ {gText_ApprenticePleaseTeach10, gText_ApprenticeRejectTeaching10, gText_ApprenticeWhichLevelMode10, gText_ApprenticeLevelModeThanks10},
+ {gText_ApprenticePleaseTeach11, gText_ApprenticeRejectTeaching11, gText_ApprenticeWhichLevelMode11, gText_ApprenticeLevelModeThanks11},
+ {gText_ApprenticePleaseTeach12, gText_ApprenticeRejectTeaching12, gText_ApprenticeWhichLevelMode12, gText_ApprenticeLevelModeThanks12},
+ {gText_ApprenticePleaseTeach13, gText_ApprenticeRejectTeaching13, gText_ApprenticeWhichLevelMode13, gText_ApprenticeLevelModeThanks13},
+ {gText_ApprenticePleaseTeach14, gText_ApprenticeRejectTeaching14, gText_ApprenticeWhichLevelMode14, gText_ApprenticeLevelModeThanks14},
+ {gText_ApprenticePleaseTeach15, gText_ApprenticeRejectTeaching15, gText_ApprenticeWhichLevelMode15, gText_ApprenticeLevelModeThanks15},
+};
+
+static const u8 *const sApprenticeWhichMonTexts[NUM_APPRENTICES][2] =
+{
+ {gText_ApprenticeWhichMon0, gText_ApprenticeMonThanks0},
+ {gText_ApprenticeWhichMon1, gText_ApprenticeMonThanks1},
+ {gText_ApprenticeWhichMon2, gText_ApprenticeMonThanks2},
+ {gText_ApprenticeWhichMon3, gText_ApprenticeMonThanks3},
+ {gText_ApprenticeWhichMon4, gText_ApprenticeMonThanks4},
+ {gText_ApprenticeWhichMon5, gText_ApprenticeMonThanks5},
+ {gText_ApprenticeWhichMon6, gText_ApprenticeMonThanks6},
+ {gText_ApprenticeWhichMon7, gText_ApprenticeMonThanks7},
+ {gText_ApprenticeWhichMon8, gText_ApprenticeMonThanks8},
+ {gText_ApprenticeWhichMon9, gText_ApprenticeMonThanks9},
+ {gText_ApprenticeWhichMon10, gText_ApprenticeMonThanks10},
+ {gText_ApprenticeWhichMon11, gText_ApprenticeMonThanks11},
+ {gText_ApprenticeWhichMon12, gText_ApprenticeMonThanks12},
+ {gText_ApprenticeWhichMon13, gText_ApprenticeMonThanks13},
+ {gText_ApprenticeWhichMon14, gText_ApprenticeMonThanks14},
+ {gText_ApprenticeWhichMon15, gText_ApprenticeMonThanks15},
+};
+
+// Sequence of 5 messages for suggesting a held item to the apprentice
+static const u8 *const sApprenticeHeldItemTexts[NUM_APPRENTICES][5] =
+{
+ {gText_ApprenticeWhatHeldItem0, gText_ApprenticeHoldNothing0, gText_ApprenticeThanksNoHeldItem0, gText_ApprenticeThanksHeldItem0, gText_ApprenticeItemAlreadyRecommended0},
+ {gText_ApprenticeWhatHeldItem1, gText_ApprenticeHoldNothing1, gText_ApprenticeThanksNoHeldItem1, gText_ApprenticeThanksHeldItem1, gText_ApprenticeItemAlreadyRecommended1},
+ {gText_ApprenticeWhatHeldItem2, gText_ApprenticeHoldNothing2, gText_ApprenticeThanksNoHeldItem2, gText_ApprenticeThanksHeldItem2, gText_ApprenticeItemAlreadyRecommended2},
+ {gText_ApprenticeWhatHeldItem3, gText_ApprenticeHoldNothing3, gText_ApprenticeThanksNoHeldItem3, gText_ApprenticeThanksHeldItem3, gText_ApprenticeItemAlreadyRecommended3},
+ {gText_ApprenticeWhatHeldItem4, gText_ApprenticeHoldNothing4, gText_ApprenticeThanksNoHeldItem4, gText_ApprenticeThanksHeldItem4, gText_ApprenticeItemAlreadyRecommended4},
+ {gText_ApprenticeWhatHeldItem5, gText_ApprenticeHoldNothing5, gText_ApprenticeThanksNoHeldItem5, gText_ApprenticeThanksHeldItem5, gText_ApprenticeItemAlreadyRecommended5},
+ {gText_ApprenticeWhatHeldItem6, gText_ApprenticeHoldNothing6, gText_ApprenticeThanksNoHeldItem6, gText_ApprenticeThanksHeldItem6, gText_ApprenticeItemAlreadyRecommended6},
+ {gText_ApprenticeWhatHeldItem7, gText_ApprenticeHoldNothing7, gText_ApprenticeThanksNoHeldItem7, gText_ApprenticeThanksHeldItem7, gText_ApprenticeItemAlreadyRecommended7},
+ {gText_ApprenticeWhatHeldItem8, gText_ApprenticeHoldNothing8, gText_ApprenticeThanksNoHeldItem8, gText_ApprenticeThanksHeldItem8, gText_ApprenticeItemAlreadyRecommended8},
+ {gText_ApprenticeWhatHeldItem9, gText_ApprenticeHoldNothing9, gText_ApprenticeThanksNoHeldItem9, gText_ApprenticeThanksHeldItem9, gText_ApprenticeItemAlreadyRecommended9},
+ {gText_ApprenticeWhatHeldItem10, gText_ApprenticeHoldNothing10, gText_ApprenticeThanksNoHeldItem10, gText_ApprenticeThanksHeldItem10, gText_ApprenticeItemAlreadyRecommended10},
+ {gText_ApprenticeWhatHeldItem11, gText_ApprenticeHoldNothing11, gText_ApprenticeThanksNoHeldItem11, gText_ApprenticeThanksHeldItem11, gText_ApprenticeItemAlreadyRecommended11},
+ {gText_ApprenticeWhatHeldItem12, gText_ApprenticeHoldNothing12, gText_ApprenticeThanksNoHeldItem12, gText_ApprenticeThanksHeldItem12, gText_ApprenticeItemAlreadyRecommended12},
+ {gText_ApprenticeWhatHeldItem13, gText_ApprenticeHoldNothing13, gText_ApprenticeThanksNoHeldItem13, gText_ApprenticeThanksHeldItem13, gText_ApprenticeItemAlreadyRecommended13},
+ {gText_ApprenticeWhatHeldItem14, gText_ApprenticeHoldNothing14, gText_ApprenticeThanksNoHeldItem14, gText_ApprenticeThanksHeldItem14, gText_ApprenticeItemAlreadyRecommended14},
+ {gText_ApprenticeWhatHeldItem15, gText_ApprenticeHoldNothing15, gText_ApprenticeThanksNoHeldItem15, gText_ApprenticeThanksHeldItem15, gText_ApprenticeItemAlreadyRecommended15},
+};
+
+static const u8 *const sApprenticeWhichMoveTexts[NUM_APPRENTICES][2] =
+{
+ {gText_ApprenticeWhichMove0, gText_ApprenticeMoveThanks0},
+ {gText_ApprenticeWhichMove1, gText_ApprenticeMoveThanks1},
+ {gText_ApprenticeWhichMove2, gText_ApprenticeMoveThanks2},
+ {gText_ApprenticeWhichMove3, gText_ApprenticeMoveThanks3},
+ {gText_ApprenticeWhichMove4, gText_ApprenticeMoveThanks4},
+ {gText_ApprenticeWhichMove5, gText_ApprenticeMoveThanks5},
+ {gText_ApprenticeWhichMove6, gText_ApprenticeMoveThanks6},
+ {gText_ApprenticeWhichMove7, gText_ApprenticeMoveThanks7},
+ {gText_ApprenticeWhichMove8, gText_ApprenticeMoveThanks8},
+ {gText_ApprenticeWhichMove9, gText_ApprenticeMoveThanks9},
+ {gText_ApprenticeWhichMove10, gText_ApprenticeMoveThanks10},
+ {gText_ApprenticeWhichMove11, gText_ApprenticeMoveThanks11},
+ {gText_ApprenticeWhichMove12, gText_ApprenticeMoveThanks12},
+ {gText_ApprenticeWhichMove13, gText_ApprenticeMoveThanks13},
+ {gText_ApprenticeWhichMove14, gText_ApprenticeMoveThanks14},
+ {gText_ApprenticeWhichMove15, gText_ApprenticeMoveThanks15},
+};
+
+static const u8 *const sApprenticeWhichMonFirstTexts[NUM_APPRENTICES][2] =
+{
+ {gText_ApprenticeWhichMonFirst0, gText_ApprenticeMonFirstThanks0},
+ {gText_ApprenticeWhichMonFirst1, gText_ApprenticeMonFirstThanks1},
+ {gText_ApprenticeWhichMonFirst2, gText_ApprenticeMonFirstThanks2},
+ {gText_ApprenticeWhichMonFirst3, gText_ApprenticeMonFirstThanks3},
+ {gText_ApprenticeWhichMonFirst4, gText_ApprenticeMonFirstThanks4},
+ {gText_ApprenticeWhichMonFirst5, gText_ApprenticeMonFirstThanks5},
+ {gText_ApprenticeWhichMonFirst6, gText_ApprenticeMonFirstThanks6},
+ {gText_ApprenticeWhichMonFirst7, gText_ApprenticeMonFirstThanks7},
+ {gText_ApprenticeWhichMonFirst8, gText_ApprenticeMonFirstThanks8},
+ {gText_ApprenticeWhichMonFirst9, gText_ApprenticeMonFirstThanks9},
+ {gText_ApprenticeWhichMonFirst10, gText_ApprenticeMonFirstThanks10},
+ {gText_ApprenticeWhichMonFirst11, gText_ApprenticeMonFirstThanks11},
+ {gText_ApprenticeWhichMonFirst12, gText_ApprenticeMonFirstThanks12},
+ {gText_ApprenticeWhichMonFirst13, gText_ApprenticeMonFirstThanks13},
+ {gText_ApprenticeWhichMonFirst14, gText_ApprenticeMonFirstThanks14},
+ {gText_ApprenticeWhichMonFirst15, gText_ApprenticeMonFirstThanks15},
+};
+
+static const u8 *const sApprenticePickWinSpeechTexts[NUM_APPRENTICES][2] =
+{
+ {gText_ApprenticePickWinSpeech0, gText_ApprenticeWinSpeechThanks0},
+ {gText_ApprenticePickWinSpeech1, gText_ApprenticeWinSpeechThanks1},
+ {gText_ApprenticePickWinSpeech2, gText_ApprenticeWinSpeechThanks2},
+ {gText_ApprenticePickWinSpeech3, gText_ApprenticeWinSpeechThanks3},
+ {gText_ApprenticePickWinSpeech4, gText_ApprenticeWinSpeechThanks4},
+ {gText_ApprenticePickWinSpeech5, gText_ApprenticeWinSpeechThanks5},
+ {gText_ApprenticePickWinSpeech6, gText_ApprenticeWinSpeechThanks6},
+ {gText_ApprenticePickWinSpeech7, gText_ApprenticeWinSpeechThanks7},
+ {gText_ApprenticePickWinSpeech8, gText_ApprenticeWinSpeechThanks8},
+ {gText_ApprenticePickWinSpeech9, gText_ApprenticeWinSpeechThanks9},
+ {gText_ApprenticePickWinSpeech10, gText_ApprenticeWinSpeechThanks10},
+ {gText_ApprenticePickWinSpeech11, gText_ApprenticeWinSpeechThanks11},
+ {gText_ApprenticePickWinSpeech12, gText_ApprenticeWinSpeechThanks12},
+ {gText_ApprenticePickWinSpeech13, gText_ApprenticeWinSpeechThanks13},
+ {gText_ApprenticePickWinSpeech14, gText_ApprenticeWinSpeechThanks14},
+ {gText_ApprenticePickWinSpeech15, gText_ApprenticeWinSpeechThanks15},
+};
+
+static const u8 *const sApprenticeChallengeTexts[NUM_APPRENTICES] =
+{
+ gText_ApprenticeChallenge0,
+ gText_ApprenticeChallenge1,
+ gText_ApprenticeChallenge2,
+ gText_ApprenticeChallenge3,
+ gText_ApprenticeChallenge4,
+ gText_ApprenticeChallenge5,
+ gText_ApprenticeChallenge6,
+ gText_ApprenticeChallenge7,
+ gText_ApprenticeChallenge8,
+ gText_ApprenticeChallenge9,
+ gText_ApprenticeChallenge10,
+ gText_ApprenticeChallenge11,
+ gText_ApprenticeChallenge12,
+ gText_ApprenticeChallenge13,
+ gText_ApprenticeChallenge14,
+ gText_ApprenticeChallenge15,
+};
+
+// Unclear what the criteria are for valid moves
+// Notably, a large percentage of multi-strike moves are not valid
+static const bool8 sValidApprenticeMoves[MOVES_COUNT] =
+{
+ [MOVE_NONE] = FALSE,
+ [MOVE_POUND] = FALSE,
+ [MOVE_KARATE_CHOP] = TRUE,
+ [MOVE_DOUBLE_SLAP] = TRUE,
+ [MOVE_COMET_PUNCH] = FALSE,
+ [MOVE_MEGA_PUNCH] = TRUE,
+ [MOVE_PAY_DAY] = FALSE,
+ [MOVE_FIRE_PUNCH] = TRUE,
+ [MOVE_ICE_PUNCH] = TRUE,
+ [MOVE_THUNDER_PUNCH] = TRUE,
+ [MOVE_SCRATCH] = FALSE,
+ [MOVE_VICE_GRIP] = FALSE,
+ [MOVE_GUILLOTINE] = TRUE,
+ [MOVE_RAZOR_WIND] = FALSE,
+ [MOVE_SWORDS_DANCE] = TRUE,
+ [MOVE_CUT] = FALSE,
+ [MOVE_GUST] = FALSE,
+ [MOVE_WING_ATTACK] = FALSE,
+ [MOVE_WHIRLWIND] = TRUE,
+ [MOVE_FLY] = TRUE,
+ [MOVE_BIND] = TRUE,
+ [MOVE_SLAM] = TRUE,
+ [MOVE_VINE_WHIP] = FALSE,
+ [MOVE_STOMP] = TRUE,
+ [MOVE_DOUBLE_KICK] = TRUE,
+ [MOVE_MEGA_KICK] = TRUE,
+ [MOVE_JUMP_KICK] = TRUE,
+ [MOVE_ROLLING_KICK] = TRUE,
+ [MOVE_SAND_ATTACK] = TRUE,
+ [MOVE_HEADBUTT] = TRUE,
+ [MOVE_HORN_ATTACK] = FALSE,
+ [MOVE_FURY_ATTACK] = FALSE,
+ [MOVE_HORN_DRILL] = TRUE,
+ [MOVE_TACKLE] = FALSE,
+ [MOVE_BODY_SLAM] = TRUE,
+ [MOVE_WRAP] = TRUE,
+ [MOVE_TAKE_DOWN] = TRUE,
+ [MOVE_THRASH] = TRUE,
+ [MOVE_DOUBLE_EDGE] = TRUE,
+ [MOVE_TAIL_WHIP] = FALSE,
+ [MOVE_POISON_STING] = FALSE,
+ [MOVE_TWINEEDLE] = TRUE,
+ [MOVE_PIN_MISSILE] = FALSE,
+ [MOVE_LEER] = FALSE,
+ [MOVE_BITE] = TRUE,
+ [MOVE_GROWL] = FALSE,
+ [MOVE_ROAR] = TRUE,
+ [MOVE_SING] = TRUE,
+ [MOVE_SUPERSONIC] = TRUE,
+ [MOVE_SONIC_BOOM] = TRUE,
+ [MOVE_DISABLE] = TRUE,
+ [MOVE_ACID] = FALSE,
+ [MOVE_EMBER] = FALSE,
+ [MOVE_FLAMETHROWER] = TRUE,
+ [MOVE_MIST] = TRUE,
+ [MOVE_WATER_GUN] = FALSE,
+ [MOVE_HYDRO_PUMP] = TRUE,
+ [MOVE_SURF] = TRUE,
+ [MOVE_ICE_BEAM] = TRUE,
+ [MOVE_BLIZZARD] = TRUE,
+ [MOVE_PSYBEAM] = TRUE,
+ [MOVE_BUBBLE_BEAM] = FALSE,
+ [MOVE_AURORA_BEAM] = FALSE,
+ [MOVE_HYPER_BEAM] = TRUE,
+ [MOVE_PECK] = FALSE,
+ [MOVE_DRILL_PECK] = TRUE,
+ [MOVE_SUBMISSION] = TRUE,
+ [MOVE_LOW_KICK] = TRUE,
+ [MOVE_COUNTER] = TRUE,
+ [MOVE_SEISMIC_TOSS] = TRUE,
+ [MOVE_STRENGTH] = TRUE,
+ [MOVE_ABSORB] = FALSE,
+ [MOVE_MEGA_DRAIN] = FALSE,
+ [MOVE_LEECH_SEED] = TRUE,
+ [MOVE_GROWTH] = TRUE,
+ [MOVE_RAZOR_LEAF] = TRUE,
+ [MOVE_SOLAR_BEAM] = TRUE,
+ [MOVE_POISON_POWDER] = TRUE,
+ [MOVE_STUN_SPORE] = TRUE,
+ [MOVE_SLEEP_POWDER] = TRUE,
+ [MOVE_PETAL_DANCE] = TRUE,
+ [MOVE_STRING_SHOT] = FALSE,
+ [MOVE_DRAGON_RAGE] = TRUE,
+ [MOVE_FIRE_SPIN] = TRUE,
+ [MOVE_THUNDER_SHOCK] = FALSE,
+ [MOVE_THUNDERBOLT] = TRUE,
+ [MOVE_THUNDER_WAVE] = TRUE,
+ [MOVE_THUNDER] = TRUE,
+ [MOVE_ROCK_THROW] = FALSE,
+ [MOVE_EARTHQUAKE] = TRUE,
+ [MOVE_FISSURE] = TRUE,
+ [MOVE_DIG] = TRUE,
+ [MOVE_TOXIC] = TRUE,
+ [MOVE_CONFUSION] = FALSE,
+ [MOVE_PSYCHIC] = TRUE,
+ [MOVE_HYPNOSIS] = TRUE,
+ [MOVE_MEDITATE] = TRUE,
+ [MOVE_AGILITY] = TRUE,
+ [MOVE_QUICK_ATTACK] = TRUE,
+ [MOVE_RAGE] = FALSE,
+ [MOVE_TELEPORT] = FALSE,
+ [MOVE_NIGHT_SHADE] = TRUE,
+ [MOVE_MIMIC] = TRUE,
+ [MOVE_SCREECH] = TRUE,
+ [MOVE_DOUBLE_TEAM] = TRUE,
+ [MOVE_RECOVER] = TRUE,
+ [MOVE_HARDEN] = TRUE,
+ [MOVE_MINIMIZE] = TRUE,
+ [MOVE_SMOKESCREEN] = TRUE,
+ [MOVE_CONFUSE_RAY] = TRUE,
+ [MOVE_WITHDRAW] = TRUE,
+ [MOVE_DEFENSE_CURL] = TRUE,
+ [MOVE_BARRIER] = TRUE,
+ [MOVE_LIGHT_SCREEN] = TRUE,
+ [MOVE_HAZE] = TRUE,
+ [MOVE_REFLECT] = TRUE,
+ [MOVE_FOCUS_ENERGY] = TRUE,
+ [MOVE_BIDE] = FALSE,
+ [MOVE_METRONOME] = TRUE,
+ [MOVE_MIRROR_MOVE] = TRUE,
+ [MOVE_SELF_DESTRUCT] = TRUE,
+ [MOVE_EGG_BOMB] = TRUE,
+ [MOVE_LICK] = TRUE,
+ [MOVE_SMOG] = FALSE,
+ [MOVE_SLUDGE] = FALSE,
+ [MOVE_BONE_CLUB] = FALSE,
+ [MOVE_FIRE_BLAST] = TRUE,
+ [MOVE_WATERFALL] = TRUE,
+ [MOVE_CLAMP] = TRUE,
+ [MOVE_SWIFT] = TRUE,
+ [MOVE_SKULL_BASH] = TRUE,
+ [MOVE_SPIKE_CANNON] = FALSE,
+ [MOVE_CONSTRICT] = FALSE,
+ [MOVE_AMNESIA] = TRUE,
+ [MOVE_KINESIS] = TRUE,
+ [MOVE_SOFT_BOILED] = TRUE,
+ [MOVE_HI_JUMP_KICK] = TRUE,
+ [MOVE_GLARE] = TRUE,
+ [MOVE_DREAM_EATER] = TRUE,
+ [MOVE_POISON_GAS] = FALSE,
+ [MOVE_BARRAGE] = FALSE,
+ [MOVE_LEECH_LIFE] = FALSE,
+ [MOVE_LOVELY_KISS] = TRUE,
+ [MOVE_SKY_ATTACK] = TRUE,
+ [MOVE_TRANSFORM] = TRUE,
+ [MOVE_BUBBLE] = FALSE,
+ [MOVE_DIZZY_PUNCH] = TRUE,
+ [MOVE_SPORE] = TRUE,
+ [MOVE_FLASH] = TRUE,
+ [MOVE_PSYWAVE] = TRUE,
+ [MOVE_SPLASH] = FALSE,
+ [MOVE_ACID_ARMOR] = TRUE,
+ [MOVE_CRABHAMMER] = TRUE,
+ [MOVE_EXPLOSION] = TRUE,
+ [MOVE_FURY_SWIPES] = FALSE,
+ [MOVE_BONEMERANG] = TRUE,
+ [MOVE_REST] = TRUE,
+ [MOVE_ROCK_SLIDE] = TRUE,
+ [MOVE_HYPER_FANG] = TRUE,
+ [MOVE_SHARPEN] = TRUE,
+ [MOVE_CONVERSION] = TRUE,
+ [MOVE_TRI_ATTACK] = TRUE,
+ [MOVE_SUPER_FANG] = TRUE,
+ [MOVE_SLASH] = TRUE,
+ [MOVE_SUBSTITUTE] = TRUE,
+ [MOVE_STRUGGLE] = TRUE,
+ [MOVE_SKETCH] = TRUE,
+ [MOVE_TRIPLE_KICK] = TRUE,
+ [MOVE_THIEF] = TRUE,
+ [MOVE_SPIDER_WEB] = TRUE,
+ [MOVE_MIND_READER] = TRUE,
+ [MOVE_NIGHTMARE] = TRUE,
+ [MOVE_FLAME_WHEEL] = FALSE,
+ [MOVE_SNORE] = TRUE,
+ [MOVE_CURSE] = TRUE,
+ [MOVE_FLAIL] = TRUE,
+ [MOVE_CONVERSION_2] = TRUE,
+ [MOVE_AEROBLAST] = TRUE,
+ [MOVE_COTTON_SPORE] = TRUE,
+ [MOVE_REVERSAL] = TRUE,
+ [MOVE_SPITE] = TRUE,
+ [MOVE_POWDER_SNOW] = FALSE,
+ [MOVE_PROTECT] = TRUE,
+ [MOVE_MACH_PUNCH] = TRUE,
+ [MOVE_SCARY_FACE] = TRUE,
+ [MOVE_FAINT_ATTACK] = TRUE,
+ [MOVE_SWEET_KISS] = TRUE,
+ [MOVE_BELLY_DRUM] = TRUE,
+ [MOVE_SLUDGE_BOMB] = TRUE,
+ [MOVE_MUD_SLAP] = TRUE,
+ [MOVE_OCTAZOOKA] = TRUE,
+ [MOVE_SPIKES] = TRUE,
+ [MOVE_ZAP_CANNON] = TRUE,
+ [MOVE_FORESIGHT] = TRUE,
+ [MOVE_DESTINY_BOND] = TRUE,
+ [MOVE_PERISH_SONG] = TRUE,
+ [MOVE_ICY_WIND] = TRUE,
+ [MOVE_DETECT] = TRUE,
+ [MOVE_BONE_RUSH] = FALSE,
+ [MOVE_LOCK_ON] = TRUE,
+ [MOVE_OUTRAGE] = TRUE,
+ [MOVE_SANDSTORM] = TRUE,
+ [MOVE_GIGA_DRAIN] = TRUE,
+ [MOVE_ENDURE] = TRUE,
+ [MOVE_CHARM] = TRUE,
+ [MOVE_ROLLOUT] = TRUE,
+ [MOVE_FALSE_SWIPE] = TRUE,
+ [MOVE_SWAGGER] = TRUE,
+ [MOVE_MILK_DRINK] = TRUE,
+ [MOVE_SPARK] = FALSE,
+ [MOVE_FURY_CUTTER] = TRUE,
+ [MOVE_STEEL_WING] = TRUE,
+ [MOVE_MEAN_LOOK] = TRUE,
+ [MOVE_ATTRACT] = TRUE,
+ [MOVE_SLEEP_TALK] = TRUE,
+ [MOVE_HEAL_BELL] = TRUE,
+ [MOVE_RETURN] = TRUE,
+ [MOVE_PRESENT] = TRUE,
+ [MOVE_FRUSTRATION] = TRUE,
+ [MOVE_SAFEGUARD] = TRUE,
+ [MOVE_PAIN_SPLIT] = TRUE,
+ [MOVE_SACRED_FIRE] = TRUE,
+ [MOVE_MAGNITUDE] = FALSE,
+ [MOVE_DYNAMIC_PUNCH] = TRUE,
+ [MOVE_MEGAHORN] = TRUE,
+ [MOVE_DRAGON_BREATH] = TRUE,
+ [MOVE_BATON_PASS] = TRUE,
+ [MOVE_ENCORE] = TRUE,
+ [MOVE_PURSUIT] = TRUE,
+ [MOVE_RAPID_SPIN] = TRUE,
+ [MOVE_SWEET_SCENT] = TRUE,
+ [MOVE_IRON_TAIL] = TRUE,
+ [MOVE_METAL_CLAW] = TRUE,
+ [MOVE_VITAL_THROW] = TRUE,
+ [MOVE_MORNING_SUN] = TRUE,
+ [MOVE_SYNTHESIS] = TRUE,
+ [MOVE_MOONLIGHT] = TRUE,
+ [MOVE_HIDDEN_POWER] = TRUE,
+ [MOVE_CROSS_CHOP] = TRUE,
+ [MOVE_TWISTER] = FALSE,
+ [MOVE_RAIN_DANCE] = TRUE,
+ [MOVE_SUNNY_DAY] = TRUE,
+ [MOVE_CRUNCH] = TRUE,
+ [MOVE_MIRROR_COAT] = TRUE,
+ [MOVE_PSYCH_UP] = TRUE,
+ [MOVE_EXTREME_SPEED] = TRUE,
+ [MOVE_ANCIENT_POWER] = TRUE,
+ [MOVE_SHADOW_BALL] = TRUE,
+ [MOVE_FUTURE_SIGHT] = TRUE,
+ [MOVE_ROCK_SMASH] = TRUE,
+ [MOVE_WHIRLPOOL] = TRUE,
+ [MOVE_BEAT_UP] = TRUE,
+ [MOVE_FAKE_OUT] = TRUE,
+ [MOVE_UPROAR] = TRUE,
+ [MOVE_STOCKPILE] = TRUE,
+ [MOVE_SPIT_UP] = TRUE,
+ [MOVE_SWALLOW] = TRUE,
+ [MOVE_HEAT_WAVE] = TRUE,
+ [MOVE_HAIL] = TRUE,
+ [MOVE_TORMENT] = TRUE,
+ [MOVE_FLATTER] = TRUE,
+ [MOVE_WILL_O_WISP] = TRUE,
+ [MOVE_MEMENTO] = TRUE,
+ [MOVE_FACADE] = TRUE,
+ [MOVE_FOCUS_PUNCH] = TRUE,
+ [MOVE_SMELLING_SALT] = TRUE,
+ [MOVE_FOLLOW_ME] = TRUE,
+ [MOVE_NATURE_POWER] = TRUE,
+ [MOVE_CHARGE] = TRUE,
+ [MOVE_TAUNT] = TRUE,
+ [MOVE_HELPING_HAND] = TRUE,
+ [MOVE_TRICK] = TRUE,
+ [MOVE_ROLE_PLAY] = TRUE,
+ [MOVE_WISH] = TRUE,
+ [MOVE_ASSIST] = TRUE,
+ [MOVE_INGRAIN] = TRUE,
+ [MOVE_SUPERPOWER] = TRUE,
+ [MOVE_MAGIC_COAT] = TRUE,
+ [MOVE_RECYCLE] = TRUE,
+ [MOVE_REVENGE] = TRUE,
+ [MOVE_BRICK_BREAK] = TRUE,
+ [MOVE_YAWN] = TRUE,
+ [MOVE_KNOCK_OFF] = TRUE,
+ [MOVE_ENDEAVOR] = TRUE,
+ [MOVE_ERUPTION] = TRUE,
+ [MOVE_SKILL_SWAP] = TRUE,
+ [MOVE_IMPRISON] = TRUE,
+ [MOVE_REFRESH] = TRUE,
+ [MOVE_GRUDGE] = TRUE,
+ [MOVE_SNATCH] = TRUE,
+ [MOVE_SECRET_POWER] = TRUE,
+ [MOVE_DIVE] = TRUE,
+ [MOVE_ARM_THRUST] = FALSE,
+ [MOVE_CAMOUFLAGE] = TRUE,
+ [MOVE_TAIL_GLOW] = TRUE,
+ [MOVE_LUSTER_PURGE] = TRUE,
+ [MOVE_MIST_BALL] = TRUE,
+ [MOVE_FEATHER_DANCE] = TRUE,
+ [MOVE_TEETER_DANCE] = TRUE,
+ [MOVE_BLAZE_KICK] = TRUE,
+ [MOVE_MUD_SPORT] = TRUE,
+ [MOVE_ICE_BALL] = FALSE,
+ [MOVE_NEEDLE_ARM] = TRUE,
+ [MOVE_SLACK_OFF] = TRUE,
+ [MOVE_HYPER_VOICE] = TRUE,
+ [MOVE_POISON_FANG] = FALSE,
+ [MOVE_CRUSH_CLAW] = TRUE,
+ [MOVE_BLAST_BURN] = TRUE,
+ [MOVE_HYDRO_CANNON] = TRUE,
+ [MOVE_METEOR_MASH] = TRUE,
+ [MOVE_ASTONISH] = TRUE,
+ [MOVE_WEATHER_BALL] = TRUE,
+ [MOVE_AROMATHERAPY] = TRUE,
+ [MOVE_FAKE_TEARS] = TRUE,
+ [MOVE_AIR_CUTTER] = TRUE,
+ [MOVE_OVERHEAT] = TRUE,
+ [MOVE_ODOR_SLEUTH] = TRUE,
+ [MOVE_ROCK_TOMB] = TRUE,
+ [MOVE_SILVER_WIND] = TRUE,
+ [MOVE_METAL_SOUND] = TRUE,
+ [MOVE_GRASS_WHISTLE] = TRUE,
+ [MOVE_TICKLE] = TRUE,
+ [MOVE_COSMIC_POWER] = TRUE,
+ [MOVE_WATER_SPOUT] = TRUE,
+ [MOVE_SIGNAL_BEAM] = TRUE,
+ [MOVE_SHADOW_PUNCH] = TRUE,
+ [MOVE_EXTRASENSORY] = TRUE,
+ [MOVE_SKY_UPPERCUT] = TRUE,
+ [MOVE_SAND_TOMB] = TRUE,
+ [MOVE_SHEER_COLD] = TRUE,
+ [MOVE_MUDDY_WATER] = TRUE,
+ [MOVE_BULLET_SEED] = FALSE,
+ [MOVE_AERIAL_ACE] = TRUE,
+ [MOVE_ICICLE_SPEAR] = FALSE,
+ [MOVE_IRON_DEFENSE] = TRUE,
+ [MOVE_BLOCK] = TRUE,
+ [MOVE_HOWL] = TRUE,
+ [MOVE_DRAGON_CLAW] = TRUE,
+ [MOVE_FRENZY_PLANT] = TRUE,
+ [MOVE_BULK_UP] = TRUE,
+ [MOVE_BOUNCE] = TRUE,
+ [MOVE_MUD_SHOT] = FALSE,
+ [MOVE_POISON_TAIL] = TRUE,
+ [MOVE_COVET] = TRUE,
+ [MOVE_VOLT_TACKLE] = TRUE,
+ [MOVE_MAGICAL_LEAF] = TRUE,
+ [MOVE_WATER_SPORT] = TRUE,
+ [MOVE_CALM_MIND] = TRUE,
+ [MOVE_LEAF_BLADE] = TRUE,
+ [MOVE_DRAGON_DANCE] = TRUE,
+ [MOVE_ROCK_BLAST] = FALSE,
+ [MOVE_SHOCK_WAVE] = TRUE,
+ [MOVE_WATER_PULSE] = TRUE,
+ [MOVE_DOOM_DESIRE] = TRUE,
+ [MOVE_PSYCHO_BOOST] = TRUE,
+};
+
+// The possible questions to ask after the initial 3 WHICH MON questions. Retrieved from here and shuffled
+// WHAT_ITEM has max 3 occurrences, one for each party member
+// WHICH_MOVE has max 5 occurrences, defined as NUM_WHICH_MOVE_QUESTIONS
+// WHICH_FIRST has max 1 occurrence, lead mon should only be chosen once
+// WHICH_SPEECH has max 1 occurrence, as the apprentice leaves after its asked
+static const u8 sQuestionPossibilities[] =
+{
+ QUESTION_ID_WHAT_ITEM,
+ QUESTION_ID_WHAT_ITEM,
+ QUESTION_ID_WHAT_ITEM,
+ QUESTION_ID_WHICH_MOVE,
+ QUESTION_ID_WHICH_MOVE,
+ QUESTION_ID_WHICH_MOVE,
+ QUESTION_ID_WHICH_MOVE,
+ QUESTION_ID_WHICH_MOVE,
+ QUESTION_ID_WHICH_FIRST,
+ QUESTION_ID_WIN_SPEECH
+};
+
+static void (* const sApprenticeFunctions[])(void) =
+{
+ [APPRENTICE_FUNC_GAVE_LVLMODE] = Script_GivenApprenticeLvlMode,
+ [APPRENTICE_FUNC_SET_LVLMODE] = Script_SetApprenticeLvlMode,
+ [APPRENTICE_FUNC_SET_ID] = Script_SetApprenticeId,
+ [APPRENTICE_FUNC_SHUFFLE_SPECIES] = ShuffleApprenticeSpecies,
+ [APPRENTICE_FUNC_RANDOMIZE_QUESTIONS] = Script_SetRandomQuestionData,
+ [APPRENTICE_FUNC_ANSWERED_QUESTION] = IncrementQuestionsAnswered,
+ [APPRENTICE_FUNC_IS_FINAL_QUESTION] = IsFinalQuestion,
+ [APPRENTICE_FUNC_MENU] = Script_CreateApprenticeMenu,
+ [APPRENTICE_FUNC_PRINT_MSG] = Script_PrintApprenticeMessage,
+ [APPRENTICE_FUNC_RESET] = Script_ResetPlayerApprentice,
+ [APPRENTICE_FUNC_CHECK_GONE] = GetShouldCheckApprenticeGone,
+ [APPRENTICE_FUNC_GET_QUESTION] = ApprenticeGetQuestion,
+ [APPRENTICE_FUNC_GET_NUM_PARTY_MONS] = GetNumApprenticePartyMonsAssigned,
+ [APPRENTICE_FUNC_SET_PARTY_MON] = SetApprenticePartyMon,
+ [APPRENTICE_FUNC_INIT_QUESTION_DATA] = InitQuestionData,
+ [APPRENTICE_FUNC_FREE_QUESTION_DATA] = FreeQuestionData,
+ [APPRENTICE_FUNC_BUFFER_STRING] = ApprenticeBufferString,
+ [APPRENTICE_FUNC_SET_MOVE] = SetApprenticeMonMove,
+ [APPRENTICE_FUNC_SET_LEAD_MON] = SetLeadApprenticeMon,
+ [APPRENTICE_FUNC_OPEN_BAG] = Script_ApprenticeOpenBagMenu,
+ [APPRENTICE_FUNC_TRY_SET_HELD_ITEM] = TrySetApprenticeHeldItem,
+ [APPRENTICE_FUNC_SAVE] = SaveApprentice,
+ [APPRENTICE_FUNC_SET_GFX_SAVED] = SetSavedApprenticeTrainerGfxId,
+ [APPRENTICE_FUNC_SET_GFX] = SetPlayerApprenticeTrainerGfxId,
+ [APPRENTICE_FUNC_SHOULD_LEAVE] = GetShouldApprenticeLeave,
+ [APPRENTICE_FUNC_SHIFT_SAVED] = ShiftSavedApprentices,
+};
+
+// The first Apprentice can only be one of these
+static const u8 sInitialApprenticeIds[8] = {0, 1, 2, 3, 6, 7, 8, 9};
diff --git a/src/data/battle_frontier/battle_frontier_exchange_corner.h b/src/data/battle_frontier/battle_frontier_exchange_corner.h
index bcb3cdd62..d29dbdc44 100644
--- a/src/data/battle_frontier/battle_frontier_exchange_corner.h
+++ b/src/data/battle_frontier/battle_frontier_exchange_corner.h
@@ -50,50 +50,50 @@ static const u16 sFrontierExchangeCorner_HoldItems[] =
static const u8 *const sFrontierExchangeCorner_Decor1Descriptions[] =
{
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2601AA,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2601D0,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260201,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26022F,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26025B,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260287,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2602B5,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2602E0,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26030F,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26033E,
+ BattleFrontier_ExchangeServiceCorner_Text_KissPosterDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_KissCushionDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_SmoochumDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_TogepiDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_MeowthDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_ClefairyDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_DittoDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_CyndaquilDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_ChikoritaDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_TotodileDollDesc,
gText_Exit,
};
static const u8 *const sFrontierExchangeCorner_Decor2Descriptions[] =
{
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26036C,
+ BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_LargeDollDesc,
gText_Exit
};
static const u8 *const sFrontierExchangeCorner_VitaminsDescriptions[] =
{
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260397,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2603BE,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2603E6,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26040E,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260436,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26045C,
+ BattleFrontier_ExchangeServiceCorner_Text_ProteinDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_CalciumDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_IronDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_ZincDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_CarbosDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_HPUpDesc,
gText_Exit
};
static const u8 *const sFrontierExchangeCorner_HoldItemsDescriptions[] =
{
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26047A,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2604AC,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2604D8,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_26050F,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260542,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260575,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2605A8,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_2605E2,
- BattleFrontier_BattlePointExchangeServiceCorner_Text_260613,
+ BattleFrontier_ExchangeServiceCorner_Text_LeftoversDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_WhiteHerbDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_QuickClawDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_MentalHerbDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_BrightpowderDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_ChoiceBandDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_KingsRockDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_FocusBandDesc,
+ BattleFrontier_ExchangeServiceCorner_Text_ScopeLensDesc,
gText_Exit
};
diff --git a/src/data/battle_frontier/trainer_hill.h b/src/data/battle_frontier/trainer_hill.h
index 54d49422a..f38cfcc38 100644
--- a/src/data/battle_frontier/trainer_hill.h
+++ b/src/data/battle_frontier/trainer_hill.h
@@ -1,16 +1,17 @@
#define TRAINER_HILL_OTID 0x10000000
-static const struct TrHillTag gUnknown_0862609C = {
- .unkField_0 = 4,
+static const struct TrHillTag sDataTagJPDefault = {
+ .numTrainers = NUM_TRAINER_HILL_TRAINERS_JP,
.unused1 = 1,
- .numFloors = 2,
+ .numFloors = NUM_TRAINER_HILL_FLOORS_JP,
.checksum = 0x0
};
-static const struct TrHillFloor gUnknown_0862609C_floors[] = {
+
+static const struct TrHillFloor sDataTagJPDefault_Floors[] = {
[0] = {
- .unk0 = 0,
- .unk1 = 0,
+ .trainerNum1 = 0,
+ .trainerNum2 = 0,
.trainers = {
[0] = {
.name = __("シゲノブ$$$$ "),
@@ -33,7 +34,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 100,
.spAttackEV = 0,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -57,7 +58,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 150,
.spDefenseEV = 120,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -81,7 +82,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 0,
.spDefenseEV = 200,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -122,7 +123,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 100,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -146,7 +147,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 100,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -170,7 +171,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 100,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -194,8 +195,8 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
}
},
[1] = {
- .unk0 = 0,
- .unk1 = 0,
+ .trainerNum1 = 0,
+ .trainerNum2 = 0,
.trainers = {
[0] = {
.name = __("シゲゾウ$$$$ "),
@@ -218,7 +219,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 120,
.spAttackEV = 150,
.spDefenseEV = 0,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -242,7 +243,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 100,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -266,7 +267,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 110,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -307,7 +308,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 0,
.spAttackEV = 110,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -331,7 +332,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 100,
.spAttackEV = 110,
.spDefenseEV = 100,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -355,7 +356,7 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
.speedEV = 80,
.spAttackEV = 80,
.spDefenseEV = 80,
- .otId = 0x10000000,
+ .otId = TRAINER_HILL_OTID,
.hpIV = 5,
.attackIV = 5,
.defenseIV = 5,
@@ -382,18 +383,18 @@ static const struct TrHillFloor gUnknown_0862609C_floors[] = {
static const struct TrHillTag sDataTagNormal =
{
- .unkField_0 = 8,
+ .numTrainers = NUM_TRAINER_HILL_TRAINERS,
.unused1 = 2,
- .numFloors = 4,
+ .numFloors = NUM_TRAINER_HILL_FLOORS,
.checksum = 0x00051E05
};
-static const struct TrHillFloor sDataTagNormal_floors[] =
+static const struct TrHillFloor sDataTagNormal_Floors[] =
{
[0] =
{
- .unk0 = 0x11,
- .unk1 = 0x12,
+ .trainerNum1 = 17,
+ .trainerNum2 = 18,
.trainers =
{
[0] =
@@ -694,8 +695,8 @@ static const struct TrHillFloor sDataTagNormal_floors[] =
},
[1] =
{
- .unk0 = 0x13,
- .unk1 = 0x14,
+ .trainerNum1 = 19,
+ .trainerNum2 = 20,
.trainers =
{
[0] =
@@ -999,8 +1000,8 @@ static const struct TrHillFloor sDataTagNormal_floors[] =
},
[2] =
{
- .unk0 = 0x15,
- .unk1 = 0x16,
+ .trainerNum1 = 21,
+ .trainerNum2 = 22,
.trainers =
{
[0] =
@@ -1303,8 +1304,8 @@ static const struct TrHillFloor sDataTagNormal_floors[] =
},
[3] =
{
- .unk0 = 0x17,
- .unk1 = 0x18,
+ .trainerNum1 = 23,
+ .trainerNum2 = 24,
.trainers =
{
[0] =
@@ -1602,17 +1603,17 @@ static const struct TrHillFloor sDataTagNormal_floors[] =
static const struct TrHillTag sDataTagVariety =
{
- .unkField_0 = 8,
+ .numTrainers = NUM_TRAINER_HILL_TRAINERS,
.unused1 = 1,
- .numFloors = 4,
+ .numFloors = NUM_TRAINER_HILL_FLOORS,
.checksum = 0x00054C15
};
-static const struct TrHillFloor sDataTagVariety_floors[] = {
+static const struct TrHillFloor sDataTagVariety_Floors[] = {
[0] =
{
- .unk0 = 0x29,
- .unk1 = 0x2A,
+ .trainerNum1 = 41,
+ .trainerNum2 = 42,
.trainers =
{
[0] =
@@ -1904,8 +1905,8 @@ static const struct TrHillFloor sDataTagVariety_floors[] = {
},
[1] =
{
- .unk0 = 0x2B,
- .unk1 = 0x2C,
+ .trainerNum1 = 43,
+ .trainerNum2 = 44,
.trainers =
{
[0] =
@@ -2227,8 +2228,8 @@ static const struct TrHillFloor sDataTagVariety_floors[] = {
},
[2] =
{
- .unk0 = 0x2D,
- .unk1 = 0x2E,
+ .trainerNum1 = 45,
+ .trainerNum2 = 46,
.trainers =
{
[0] =
@@ -2531,8 +2532,8 @@ static const struct TrHillFloor sDataTagVariety_floors[] = {
},
[3] =
{
- .unk0 = 0x2F,
- .unk1 = 0x30,
+ .trainerNum1 = 47,
+ .trainerNum2 = 48,
.trainers =
{
[0] =
@@ -2828,17 +2829,17 @@ static const struct TrHillFloor sDataTagVariety_floors[] = {
static const struct TrHillTag sDataTagUnique =
{
- .unkField_0 = 8,
+ .numTrainers = NUM_TRAINER_HILL_TRAINERS,
.unused1 = 3,
- .numFloors = 4,
+ .numFloors = NUM_TRAINER_HILL_FLOORS,
.checksum = 0x000652F3
};
-static const struct TrHillFloor sDataTagUnique_floors[] = {
+static const struct TrHillFloor sDataTagUnique_Floors[] = {
[0] =
{
- .unk0 = 0x31,
- .unk1 = 0x32,
+ .trainerNum1 = 49,
+ .trainerNum2 = 50,
.trainers =
{
[0] =
@@ -3135,8 +3136,8 @@ static const struct TrHillFloor sDataTagUnique_floors[] = {
},
[1] =
{
- .unk0 = 0x33,
- .unk1 = 0x34,
+ .trainerNum1 = 51,
+ .trainerNum2 = 52,
.trainers =
{
[0] =
@@ -3439,8 +3440,8 @@ static const struct TrHillFloor sDataTagUnique_floors[] = {
},
[2] =
{
- .unk0 = 0x35,
- .unk1 = 0x36,
+ .trainerNum1 = 53,
+ .trainerNum2 = 54,
.trainers =
{
[0] =
@@ -3743,8 +3744,8 @@ static const struct TrHillFloor sDataTagUnique_floors[] = {
},
[3] =
{
- .unk0 = 0x38,
- .unk1 = 0x37,
+ .trainerNum1 = 56,
+ .trainerNum2 = 55,
.trainers =
{
[0] =
@@ -4039,17 +4040,17 @@ static const struct TrHillFloor sDataTagUnique_floors[] = {
static const struct TrHillTag sDataTagExpert =
{
- .unkField_0 = 8,
+ .numTrainers = NUM_TRAINER_HILL_TRAINERS,
.unused1 = 1,
- .numFloors = 4,
+ .numFloors = NUM_TRAINER_HILL_FLOORS,
.checksum = 0x00061F3F
};
-static const struct TrHillFloor sDataTagExpert_floors[] = {
+static const struct TrHillFloor sDataTagExpert_Floors[] = {
[0] =
{
- .unk0 = 0x39,
- .unk1 = 0x3A,
+ .trainerNum1 = 57,
+ .trainerNum2 = 58,
.trainers =
{
[0] =
@@ -4353,8 +4354,8 @@ static const struct TrHillFloor sDataTagExpert_floors[] = {
},
[1] =
{
- .unk0 = 0x3B,
- .unk1 = 0x3C,
+ .trainerNum1 = 59,
+ .trainerNum2 = 60,
.trainers =
{
[0] =
@@ -4658,8 +4659,8 @@ static const struct TrHillFloor sDataTagExpert_floors[] = {
},
[2] =
{
- .unk0 = 0x3D,
- .unk1 = 0x3E,
+ .trainerNum1 = 61,
+ .trainerNum2 = 62,
.trainers =
{
[0] =
@@ -4963,8 +4964,8 @@ static const struct TrHillFloor sDataTagExpert_floors[] = {
},
[3] =
{
- .unk0 = 0x3F,
- .unk1 = 0x40,
+ .trainerNum1 = 63,
+ .trainerNum2 = 64,
.trainers =
{
[0] =
diff --git a/src/data/contest_text_tables.h b/src/data/contest_text_tables.h
index 8375520d1..f893bc66a 100644
--- a/src/data/contest_text_tables.h
+++ b/src/data/contest_text_tables.h
@@ -1,414 +1,439 @@
#include "global.h"
-extern const u8 gContestEffect00hDescription[];
-extern const u8 gContestEffect01hDescription[];
-extern const u8 gContestEffect02hDescription[];
-extern const u8 gContestEffect03hDescription[];
-extern const u8 gContestEffect04hDescription[];
-extern const u8 gContestEffect05hDescription[];
-extern const u8 gContestEffect06hDescription[];
-extern const u8 gContestEffect07hDescription[];
-extern const u8 gContestEffect08hDescription[];
-extern const u8 gContestEffect09hDescription[];
-extern const u8 gContestEffect0AhDescription[];
-extern const u8 gContestEffect0BhDescription[];
-extern const u8 gContestEffect0ChDescription[];
-extern const u8 gContestEffect0DhDescription[];
-extern const u8 gContestEffect0EhDescription[];
-extern const u8 gContestEffect0FhDescription[];
-extern const u8 gContestEffect10hDescription[];
-extern const u8 gContestEffect11hDescription[];
-extern const u8 gContestEffect12hDescription[];
-extern const u8 gContestEffect13hDescription[];
-extern const u8 gContestEffect14hDescription[];
-extern const u8 gContestEffect15hDescription[];
-extern const u8 gContestEffect16hDescription[];
-extern const u8 gContestEffect17hDescription[];
-extern const u8 gContestEffect18hDescription[];
-extern const u8 gContestEffect19hDescription[];
-extern const u8 gContestEffect1AhDescription[];
-extern const u8 gContestEffect1BhDescription[];
-extern const u8 gContestEffect1ChDescription[];
-extern const u8 gContestEffect1DhDescription[];
-extern const u8 gContestEffect1EhDescription[];
-extern const u8 gContestEffect1FhDescription[];
-extern const u8 gContestEffect20hDescription[];
-extern const u8 gContestEffect21hDescription[];
-extern const u8 gContestEffect22hDescription[];
-extern const u8 gContestEffect23hDescription[];
-extern const u8 gContestEffect24hDescription[];
-extern const u8 gContestEffect25hDescription[];
-extern const u8 gContestEffect26hDescription[];
-extern const u8 gContestEffect27hDescription[];
-extern const u8 gContestEffect28hDescription[];
-extern const u8 gContestEffect29hDescription[];
-extern const u8 gContestEffect2AhDescription[];
-extern const u8 gContestEffect2BhDescription[];
-extern const u8 gContestEffect2ChDescription[];
-extern const u8 gContestEffect2DhDescription[];
-extern const u8 gContestEffect2EhDescription[];
-extern const u8 gContestEffect2FhDescription[];
+// gContestEffectDescriptionPointers
+extern const u8 gText_HighlyAppealingMove[];
+extern const u8 gText_UserMoreEasilyStartled[];
+extern const u8 gText_GreatAppealButNoMoreToEnd[];
+extern const u8 gText_UsedRepeatedlyWithoutBoringJudge[];
+extern const u8 gText_AvoidStartledByOthersOnce[];
+extern const u8 gText_AvoidStartledByOthers[];
+extern const u8 gText_AvoidStartledByOthersLittle[];
+extern const u8 gText_UserLessLikelyStartled[];
+extern const u8 gText_SlightlyStartleFrontMon[];
+extern const u8 gText_SlightlyStartleAppealed[];
+extern const u8 gText_StartleAppealedBeforeUser[];
+extern const u8 gText_StartleAllAppealed[];
+extern const u8 gText_BadlyStartleFrontMon[];
+extern const u8 gText_BadlyStartleAppealed[];
+extern const u8 gText_StartleAppealedBeforeUser2[];
+extern const u8 gText_StartleAllAppealed2[];
+extern const u8 gText_ShiftJudgesAttentionFromOthers[];
+extern const u8 gText_StartleMonHasJudgesAttention[];
+extern const u8 gText_JamOthersMissesTurn[];
+extern const u8 gText_StartleMonsMadeSameTypeAppeal[];
+extern const u8 gText_BadlyStartleCoolAppeals[];
+extern const u8 gText_BadlyStartleBeautyAppeals[];
+extern const u8 gText_BadlyStartleCuteAppeals[];
+extern const u8 gText_BadlyStartleSmartAppeals[];
+extern const u8 gText_BadlyStartleToughAppeals[];
+extern const u8 gText_MakeMonAfterUserNervous[];
+extern const u8 gText_MakeAllMonsAfterUserNervous[];
+extern const u8 gText_WorsenConditionOfThoseMadeAppeals[];
+extern const u8 gText_BadlyStartleMonsGoodCondition[];
+extern const u8 gText_AppealGreatIfPerformedFirst[];
+extern const u8 gText_AppealGreatIfPerformedLast[];
+extern const u8 gText_AppealAsGoodAsThoseBeforeIt[];
+extern const u8 gText_AppealAsGoodAsOneBeforeIt[];
+extern const u8 gText_AppealBetterLaterItsPerformed[];
+extern const u8 gText_AppealVariesDependingOnTiming[];
+extern const u8 gText_WorksWellIfSameTypeAsBefore[];
+extern const u8 gText_WorksWellIfDifferentTypeAsBefore[];
+extern const u8 gText_AffectedByAppealInFront[];
+extern const u8 gText_UpsConditionHelpsPreventNervousness[];
+extern const u8 gText_AppealWorksWellIfConditionGood[];
+extern const u8 gText_NextAppealMadeEarlier[];
+extern const u8 gText_NextAppealMadeLater[];
+extern const u8 gText_TurnOrderMoreEasilyScrambled[];
+extern const u8 gText_ScrambleOrderOfNextAppeals[];
+extern const u8 gText_AppealExcitesAudienceInAnyContest[];
+extern const u8 gText_BadlyStartlesMonsGoodAppeals[];
+extern const u8 gText_AppealBestMoreCrowdExcited[];
+extern const u8 gText_TemporarilyStopCrowdExcited[];
-extern const u8 gUnusedContestMoveName0[];
-extern const u8 gUnusedContestMoveName1[];
-extern const u8 gUnusedContestMoveName2[];
-extern const u8 gUnusedContestMoveName3[];
-extern const u8 gUnusedContestMoveName4[];
-extern const u8 gUnusedContestMoveName5[];
-extern const u8 gUnusedContestMoveName6[];
-extern const u8 gUnusedContestMoveName7[];
-extern const u8 gUnusedContestMoveName8[];
-extern const u8 gUnusedContestMoveName9[];
-extern const u8 gUnusedContestMoveName10[];
-extern const u8 gUnusedContestMoveName11[];
-extern const u8 gUnusedContestMoveName12[];
+// sUnusedComboMoveNameTexts
+extern const u8 gText_RainDance[];
+extern const u8 gText_Rage[];
+extern const u8 gText_FocusEnergy[];
+extern const u8 gText_Hypnosis[];
+extern const u8 gText_Softboiled[];
+extern const u8 gText_HornAttack[];
+extern const u8 gText_SwordsDance[];
+extern const u8 gText_Conversion[];
+extern const u8 gText_SunnyDay[];
+extern const u8 gText_Rest2[];
+extern const u8 gText_Vicegrip[];
+extern const u8 gText_DefenseCurl[];
+extern const u8 gText_LockOn[];
+// gContestMoveTypeTextPointers
extern const u8 gContestMoveTypeCoolText[];
extern const u8 gContestMoveTypeBeautyText[];
extern const u8 gContestMoveTypeCuteText[];
extern const u8 gContestMoveTypeSmartText[];
extern const u8 gContestMoveTypeToughText[];
-extern const u8 gText_0827D5C1[];
-extern const u8 gText_0827D5DC[];
-extern const u8 gText_0827D600[];
-extern const u8 gText_0827D612[];
-extern const u8 gText_0827D612[];
-extern const u8 gText_0827D62D[];
-extern const u8 gText_0827D654[];
-extern const u8 gText_0827D67E[];
-extern const u8 gText_0827D69C[];
-extern const u8 gText_0827D6BA[];
-extern const u8 gText_0827D6E5[];
-extern const u8 gText_0827D706[];
-extern const u8 gText_0827D71D[];
+// sUnusedAppealResultTexts
+extern const u8 gText_ButAppealWasJammed[];
+extern const u8 gText_FollowedAnotherMonsLead[];
+extern const u8 gText_ButItMessedUp[];
+extern const u8 gText_WentBetterThanUsual[];
+extern const u8 gText_JudgeLookedAwayForSomeReason[];
+extern const u8 gText_WorkedHardToBuildOnPastMistakes[];
+extern const u8 gText_CantMakeAnyMoreMoves[];
+extern const u8 gText_WorkedFrighteninglyWell[];
+extern const u8 gText_WorkedHardAsStandoutMon[];
+extern const u8 gText_JudgedLookedOnExpectantly[];
+extern const u8 gText_WorkedRatherWell[];
+extern const u8 gText_WorkedLittleBetterThanUsual[];
-extern const u8 gText_0827D743[];
-extern const u8 gText_0827D764[];
-extern const u8 gText_0827D785[];
-extern const u8 gText_0827D7A5[];
-extern const u8 gText_0827D7C8[];
-extern const u8 gText_0827D7E8[];
-extern const u8 gText_0827D831[];
-extern const u8 gText_0827D855[];
-extern const u8 gText_0827D830[];
-extern const u8 gText_0827D872[];
-extern const u8 gText_0827D88F[];
-extern const u8 gText_0827D8B5[];
-extern const u8 gText_0827D8E4[];
-extern const u8 gText_0827D8FE[];
-extern const u8 gText_0827D926[];
-extern const u8 gText_0827D947[];
-extern const u8 gText_0827D961[];
-extern const u8 gText_0827D986[];
-extern const u8 gText_0827D9B1[];
-extern const u8 gText_0827D9D9[];
-extern const u8 gText_0827DA03[];
-extern const u8 gText_0827DA31[];
-extern const u8 gText_0827DA5B[];
-extern const u8 gText_0827DA85[];
-extern const u8 gText_0827DAB2[];
-extern const u8 gText_0827DADA[];
-extern const u8 gText_0827DB03[];
-extern const u8 gText_0827D830[];
-extern const u8 gText_0827D830[];
-extern const u8 gText_0827D830[];
-extern const u8 gText_0827DB1F[];
-extern const u8 gText_0827DB4E[];
+// sRoundResultTexts
+extern const u8 gText_MonFailedToStandOutAtAll[];
+extern const u8 gText_MonDidntStandOutVeryMuch[];
+extern const u8 gText_MonCaughtALittleAttention[];
+extern const u8 gText_MonAttractedALotOfAttention[];
+extern const u8 gText_MonCommandedTotalAttention[];
+extern const u8 gText_MonHasntMadeItsAppeal[];
+extern const u8 gText_JudgesViewsOnMonHeldFirm[];
+extern const u8 gText_MonsXChangedPerceptions[];
+extern const u8 gText_EmptyContestString[];
+extern const u8 gText_MonsAppealEffectWoreOff[];
+extern const u8 gText_SpecialAppealsEffectWoreOff[];
+extern const u8 gText_EveryonesAppealsMadeToLookSame[];
+extern const u8 gText_CheapenedMonsAppeal[];
+extern const u8 gText_CheapenedMonsAppeal2[];
+extern const u8 gText_CheapenedAppealOfThoseAhead[];
+extern const u8 gText_CheapenedAppealOfThoseAhead2[];
+extern const u8 gText_StoleAttentionAwayFromMon[];
+extern const u8 gText_SeverelyCheapenedOtherAppeals[];
+extern const u8 gText_AnticipationSwelledForMonsAppealNext[];
+extern const u8 gText_CheapenedJudgesFavoriteAppeal[];
+extern const u8 gText_AppealsOfOthersCheapenedByHalf[];
+extern const u8 gText_StoodOutToMakeUpForBeingJammed[];
+extern const u8 gText_CantParticipateInAppealsAnyMore[];
+extern const u8 gText_TouchedJudgeForFantasticAppeal[];
+extern const u8 gText_AnticipationRoseForUpcomingAppeals[];
+extern const u8 gText_StoodOutAsMuchAsSpecialAppeals[];
+extern const u8 gText_StoodOutAsMuchAsMon[];
+extern const u8 gText_JammedAppealsMadeEvenLessNoticeable[];
+extern const u8 gText_EveryonesAppealsMadeSame[];
-extern const u8 gText_827DB75[];
-extern const u8 gText_827DBB0[];
-extern const u8 gText_827DBE0[];
-extern const u8 gText_827DC0F[];
-extern const u8 gText_827DC45[];
-extern const u8 gText_827DC7C[];
-extern const u8 gText_827DCB4[];
-extern const u8 gText_827DCE7[];
-extern const u8 gText_827DD12[];
-extern const u8 gText_827DD3D[];
-extern const u8 gText_827DD6F[];
-extern const u8 gText_827DD8E[];
-extern const u8 gText_827DDC7[];
-extern const u8 gText_827DDF2[];
-extern const u8 gText_827DE14[];
-extern const u8 gText_827DE44[];
-extern const u8 gText_827DE73[];
-extern const u8 gText_827DEA5[];
-extern const u8 gText_827DED9[];
-extern const u8 gText_827DF02[];
-extern const u8 gText_827DF3A[];
-extern const u8 gText_827DF63[];
-extern const u8 gText_827DF8C[];
-extern const u8 gText_827DFB8[];
-extern const u8 gText_827DFE2[];
-extern const u8 gText_827E00C[];
-extern const u8 gText_827E02F[];
-extern const u8 gText_827E05F[];
-extern const u8 gText_827E08B[];
-extern const u8 gText_827E0B5[];
-extern const u8 gText_827E0DD[];
-extern const u8 gText_827E107[];
-extern const u8 gText_827E143[];
-extern const u8 gText_827E17F[];
-extern const u8 gText_827E1BB[];
-extern const u8 gText_827E1F3[];
-extern const u8 gText_827E220[];
-extern const u8 gText_827E254[];
-extern const u8 gText_827E289[];
-extern const u8 gText_827E2C5[];
-extern const u8 gText_0827E2FE[];
-extern const u8 gText_0827E32E[];
-extern const u8 gText_0827E35B[];
-extern const u8 gText_0827E38D[];
-extern const u8 gText_0827E3C1[];
-extern const u8 gText_0827E3EB[];
-extern const u8 gText_0827E416[];
-extern const u8 gText_0827E448[];
-extern const u8 gText_0827E473[];
-extern const u8 gText_0827E4A6[];
-extern const u8 gText_0827E4D5[];
-extern const u8 gText_0827E504[];
-extern const u8 gText_0827E531[];
-extern const u8 gText_0827E55A[];
-extern const u8 gText_0827E5B2[];
-extern const u8 gText_0827E5D0[];
-extern const u8 gText_0827E606[];
-extern const u8 gText_0827E638[];
-extern const u8 gText_0827E658[];
-extern const u8 gText_0827E68B[];
-extern const u8 gText_0827E6C4[];
-extern const u8 gText_0827E7BA[];
+// sAppealResultTexts
+extern const u8 gText_BecameMoreConsciousOfOtherMons[];
+extern const u8 gText_MonCantMakeAnAppealAfterThis[];
+extern const u8 gText_SettledDownJustLittleBit[];
+extern const u8 gText_BecameObliviousToOtherMons[];
+extern const u8 gText_BecameLessAwareOfOtherMons[];
+extern const u8 gText_StoppedCaringAboutOtherMons[];
+extern const u8 gText_TriedToStartleOtherMons[];
+extern const u8 gText_TriedToDazzleOthers[];
+extern const u8 gText_JudgeLookedAwayFromMon[];
+extern const u8 gText_TriedToUnnerveNextMon[];
+extern const u8 gText_MonBecameNervous[];
+extern const u8 gText_AppealTriedToUnnerveWaitingMons[];
+extern const u8 gText_TauntedMonsDoingWell[];
+extern const u8 gText_MonRegainedItsForm[];
+extern const u8 gText_TriedToJamMonDoingWell[];
+extern const u8 gText_StandoutMonHustledEvenMore[];
+extern const u8 gText_LargelyUnnoticedMonWorkedHard[];
+extern const u8 gText_WorkedAsMuchAsMonBefore[];
+extern const u8 gText_WorkedAsMuchAsPrecedingMon[];
+extern const u8 gText_MonsAppealWasDud[];
+extern const u8 gText_MonsAppealDidNotGoWell[];
+extern const u8 gText_MonsAppealDidNotGoWell2[];
+extern const u8 gText_MonsAppealDidNotGoWell3[];
+extern const u8 gText_MonsAppealDidNotWorkVeryWell[];
+extern const u8 gText_MonsAppealWentSlightlyWell[];
+extern const u8 gText_MonsAppealWentSlightlyWell2[];
+extern const u8 gText_MonsAppealWentPrettyWell[];
+extern const u8 gText_MonsAppealWentPrettyWell2[];
+extern const u8 gText_MonsAppealWentVeryWell[];
+extern const u8 gText_MonsAppealWentExcellently[];
+extern const u8 gText_MonsAppealWentExcellently2[];
+extern const u8 gText_SameTypeAsOneBeforeGood[];
+extern const u8 gText_NotSameTypeAsOneBeforeGood[];
+extern const u8 gText_StoodOutMuchMoreThanMonBefore[];
+extern const u8 gText_DidntDoAsWellAsMonBefore[];
+extern const u8 gText_MonsConditionRoseAboveUsual[];
+extern const u8 gText_MonsHotStatusMadeGreatAppeal[];
+extern const u8 gText_MovedUpInLineForNextAppeal[];
+extern const u8 gText_MovedBackInLineForNextAppeal[];
+extern const u8 gText_ScrambledUpOrderForNextTurn[];
+extern const u8 gText_JudgeLookedAtMonExpectantly[];
+extern const u8 gText_AppealComboWentOverWell[];
+extern const u8 gText_AppealComboWentOverVeryWell[];
+extern const u8 gText_AppealComboWentOverExcellently[];
+extern const u8 gText_MonManagedToAvertGaze[];
+extern const u8 gText_MonManagedToAvoidSeeingIt[];
+extern const u8 gText_MonIsntFazedByThatSortOfThing[];
+extern const u8 gText_MonBecameALittleDistracted[];
+extern const u8 gText_TriedToStartleOtherPokemon[];
+extern const u8 gText_MonLookedDownOutOfDistraction[];
+extern const u8 gText_MonTurnedBackOutOfDistraction[];
+extern const u8 gText_MonCouldntHelpUtteringCry[];
+extern const u8 gText_MonCouldntHelpLeapingUp[];
+extern const u8 gText_MonTrippedOutOfDistraction[];
+extern const u8 gText_ButItMessedUp2[];
+extern const u8 gText_ButItFailedToMakeTargetNervous[];
+extern const u8 gText_ButItFailedToMakeAnyoneNervous[];
+extern const u8 gText_ButItWasIgnored[];
+extern const u8 gText_CouldntImproveItsCondition[];
+extern const u8 gText_BadConditionResultedInWeakAppeal[];
+extern const u8 gText_MonWasUnaffected[];
+extern const u8 gText_AttractedCrowdsAttention[];
+
+// sContestConditions
+extern const u8 gText_Contest_Coolness[];
+extern const u8 gText_Contest_Beauty[];
+extern const u8 gText_Contest_Cuteness[];
+extern const u8 gText_Contest_Smartness[];
+extern const u8 gText_Contest_Toughness[];
-extern const u8 gText_0827E85F[];
-extern const u8 gText_0827E868[];
-extern const u8 gText_0827E86F[];
-extern const u8 gText_0827E878[];
-extern const u8 gText_0827E882[];
+// sInvalidContestMoveNames
+extern const u8 gText_CoolMove[];
+extern const u8 gText_BeautyMove[];
+extern const u8 gText_CuteMove[];
+extern const u8 gText_SmartMove[];
+extern const u8 gText_ToughMove[];
+extern const u8 gText_3QuestionMarks[];
-extern const u8 gText_0827E894[];
-extern const u8 gText_0827E89E[];
-extern const u8 gText_0827E8AA[];
-extern const u8 gText_0827E8B4[];
-extern const u8 gText_0827E8BF[];
-extern const u8 gText_0827E8CA[];
+// Misc, used directly
+extern const u8 gText_MonAppealedWithMove[];
+extern const u8 gText_MonCantAppealNextTurn[];
+extern const u8 gText_RepeatedAppeal[];
+extern const u8 gText_MonsXDidntGoOverWell[];
+extern const u8 gText_MonsXWentOverGreat[];
+extern const u8 gText_MonsXGotTheCrowdGoing[];
+extern const u8 gText_CrowdContinuesToWatchMon[];
+extern const u8 gText_MonsMoveIsIgnored[];
+extern const u8 gText_MonWasTooNervousToMove[];
+extern const u8 gText_MonWasWatchingOthers[];
+extern const u8 gText_AllOutOfAppealTime[];
+extern const u8 gText_Contest_Shyness[];
+extern const u8 gText_Contest_Anxiety[];
+extern const u8 gText_Contest_Laziness[];
+extern const u8 gText_Contest_Hesitancy[];
+extern const u8 gText_Contest_Fear[];
+extern const u8 gText_AppealNumWhichMoveWillBePlayed[];
+extern const u8 gText_AppealNumButItCantParticipate[];
const u8 *const gContestEffectDescriptionPointers[] =
{
- gContestEffect00hDescription,
- gContestEffect01hDescription,
- gContestEffect02hDescription,
- gContestEffect03hDescription,
- gContestEffect04hDescription,
- gContestEffect05hDescription,
- gContestEffect06hDescription,
- gContestEffect07hDescription,
- gContestEffect08hDescription,
- gContestEffect09hDescription,
- gContestEffect0AhDescription,
- gContestEffect0BhDescription,
- gContestEffect0ChDescription,
- gContestEffect0DhDescription,
- gContestEffect0EhDescription,
- gContestEffect0FhDescription,
- gContestEffect10hDescription,
- gContestEffect11hDescription,
- gContestEffect12hDescription,
- gContestEffect13hDescription,
- gContestEffect14hDescription,
- gContestEffect15hDescription,
- gContestEffect16hDescription,
- gContestEffect17hDescription,
- gContestEffect18hDescription,
- gContestEffect19hDescription,
- gContestEffect1AhDescription,
- gContestEffect1BhDescription,
- gContestEffect1ChDescription,
- gContestEffect1DhDescription,
- gContestEffect1EhDescription,
- gContestEffect1FhDescription,
- gContestEffect20hDescription,
- gContestEffect21hDescription,
- gContestEffect22hDescription,
- gContestEffect23hDescription,
- gContestEffect24hDescription,
- gContestEffect25hDescription,
- gContestEffect26hDescription,
- gContestEffect27hDescription,
- gContestEffect28hDescription,
- gContestEffect29hDescription,
- gContestEffect2AhDescription,
- gContestEffect2BhDescription,
- gContestEffect2ChDescription,
- gContestEffect2DhDescription,
- gContestEffect2EhDescription,
- gContestEffect2FhDescription
+ [CONTEST_EFFECT_HIGHLY_APPEALING] = gText_HighlyAppealingMove,
+ [CONTEST_EFFECT_USER_MORE_EASILY_STARTLED] = gText_UserMoreEasilyStartled,
+ [CONTEST_EFFECT_GREAT_APPEAL_BUT_NO_MORE_MOVES] = gText_GreatAppealButNoMoreToEnd,
+ [CONTEST_EFFECT_REPETITION_NOT_BORING] = gText_UsedRepeatedlyWithoutBoringJudge,
+ [CONTEST_EFFECT_AVOID_STARTLE_ONCE] = gText_AvoidStartledByOthersOnce,
+ [CONTEST_EFFECT_AVOID_STARTLE] = gText_AvoidStartledByOthers,
+ [CONTEST_EFFECT_AVOID_STARTLE_SLIGHTLY] = gText_AvoidStartledByOthersLittle,
+ [CONTEST_EFFECT_USER_LESS_EASILY_STARTLED] = gText_UserLessLikelyStartled,
+ [CONTEST_EFFECT_STARTLE_FRONT_MON] = gText_SlightlyStartleFrontMon,
+ [CONTEST_EFFECT_SLIGHTLY_STARTLE_PREV_MONS] = gText_SlightlyStartleAppealed,
+ [CONTEST_EFFECT_STARTLE_PREV_MON] = gText_StartleAppealedBeforeUser,
+ [CONTEST_EFFECT_STARTLE_PREV_MONS] = gText_StartleAllAppealed,
+ [CONTEST_EFFECT_BADLY_STARTLE_FRONT_MON] = gText_BadlyStartleFrontMon,
+ [CONTEST_EFFECT_BADLY_STARTLE_PREV_MONS] = gText_BadlyStartleAppealed,
+ [CONTEST_EFFECT_STARTLE_PREV_MON_2] = gText_StartleAppealedBeforeUser2,
+ [CONTEST_EFFECT_STARTLE_PREV_MONS_2] = gText_StartleAllAppealed2,
+ [CONTEST_EFFECT_SHIFT_JUDGE_ATTENTION] = gText_ShiftJudgesAttentionFromOthers,
+ [CONTEST_EFFECT_STARTLE_MON_WITH_JUDGES_ATTENTION] = gText_StartleMonHasJudgesAttention,
+ [CONTEST_EFFECT_JAMS_OTHERS_BUT_MISS_ONE_TURN] = gText_JamOthersMissesTurn,
+ [CONTEST_EFFECT_STARTLE_MONS_SAME_TYPE_APPEAL] = gText_StartleMonsMadeSameTypeAppeal,
+ [CONTEST_EFFECT_STARTLE_MONS_COOL_APPEAL] = gText_BadlyStartleCoolAppeals,
+ [CONTEST_EFFECT_STARTLE_MONS_BEAUTY_APPEAL] = gText_BadlyStartleBeautyAppeals,
+ [CONTEST_EFFECT_STARTLE_MONS_CUTE_APPEAL] = gText_BadlyStartleCuteAppeals,
+ [CONTEST_EFFECT_STARTLE_MONS_SMART_APPEAL] = gText_BadlyStartleSmartAppeals,
+ [CONTEST_EFFECT_STARTLE_MONS_TOUGH_APPEAL] = gText_BadlyStartleToughAppeals,
+ [CONTEST_EFFECT_MAKE_FOLLOWING_MON_NERVOUS] = gText_MakeMonAfterUserNervous,
+ [CONTEST_EFFECT_MAKE_FOLLOWING_MONS_NERVOUS] = gText_MakeAllMonsAfterUserNervous,
+ [CONTEST_EFFECT_WORSEN_CONDITION_OF_PREV_MONS] = gText_WorsenConditionOfThoseMadeAppeals,
+ [CONTEST_EFFECT_BADLY_STARTLES_MONS_IN_GOOD_CONDITION] = gText_BadlyStartleMonsGoodCondition,
+ [CONTEST_EFFECT_BETTER_IF_FIRST] = gText_AppealGreatIfPerformedFirst,
+ [CONTEST_EFFECT_BETTER_IF_LAST] = gText_AppealGreatIfPerformedLast,
+ [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONES] = gText_AppealAsGoodAsThoseBeforeIt,
+ [CONTEST_EFFECT_APPEAL_AS_GOOD_AS_PREV_ONE] = gText_AppealAsGoodAsOneBeforeIt,
+ [CONTEST_EFFECT_BETTER_WHEN_LATER] = gText_AppealBetterLaterItsPerformed,
+ [CONTEST_EFFECT_QUALITY_DEPENDS_ON_TIMING] = gText_AppealVariesDependingOnTiming,
+ [CONTEST_EFFECT_BETTER_IF_SAME_TYPE] = gText_WorksWellIfSameTypeAsBefore,
+ [CONTEST_EFFECT_BETTER_IF_DIFF_TYPE] = gText_WorksWellIfDifferentTypeAsBefore,
+ [CONTEST_EFFECT_AFFECTED_BY_PREV_APPEAL] = gText_AffectedByAppealInFront,
+ [CONTEST_EFFECT_IMPROVE_CONDITION_PREVENT_NERVOUSNESS] = gText_UpsConditionHelpsPreventNervousness,
+ [CONTEST_EFFECT_BETTER_WITH_GOOD_CONDITION] = gText_AppealWorksWellIfConditionGood,
+ [CONTEST_EFFECT_NEXT_APPEAL_EARLIER] = gText_NextAppealMadeEarlier,
+ [CONTEST_EFFECT_NEXT_APPEAL_LATER] = gText_NextAppealMadeLater,
+ [CONTEST_EFFECT_MAKE_SCRAMBLING_TURN_ORDER_EASIER] = gText_TurnOrderMoreEasilyScrambled,
+ [CONTEST_EFFECT_SCRAMBLE_NEXT_TURN_ORDER] = gText_ScrambleOrderOfNextAppeals,
+ [CONTEST_EFFECT_EXCITE_AUDIENCE_IN_ANY_CONTEST] = gText_AppealExcitesAudienceInAnyContest,
+ [CONTEST_EFFECT_BADLY_STARTLE_MONS_WITH_GOOD_APPEALS] = gText_BadlyStartlesMonsGoodAppeals,
+ [CONTEST_EFFECT_BETTER_WHEN_AUDIENCE_EXCITED] = gText_AppealBestMoreCrowdExcited,
+ [CONTEST_EFFECT_DONT_EXCITE_AUDIENCE] = gText_TemporarilyStopCrowdExcited
};
// Unreferenced array of pointers to move names.
// All of the moves except Conversion are combo starters, so this may have
// been an early list of combo starters.
-const u8 *const gUnknown_8587D10[] =
+static const u8 *const sUnusedComboMoveNameTexts[] =
{
- gUnusedContestMoveName0,
- gUnusedContestMoveName0,
- gUnusedContestMoveName1,
- gUnusedContestMoveName2,
- gUnusedContestMoveName3,
- gUnusedContestMoveName4,
- gUnusedContestMoveName5,
- gUnusedContestMoveName6,
- gUnusedContestMoveName7,
- gUnusedContestMoveName8,
- gUnusedContestMoveName9,
- gUnusedContestMoveName10,
- gUnusedContestMoveName11,
- gUnusedContestMoveName12
+ gText_RainDance,
+ gText_RainDance,
+ gText_Rage,
+ gText_FocusEnergy,
+ gText_Hypnosis,
+ gText_Softboiled,
+ gText_HornAttack,
+ gText_SwordsDance,
+ gText_Conversion,
+ gText_SunnyDay,
+ gText_Rest2,
+ gText_Vicegrip,
+ gText_DefenseCurl,
+ gText_LockOn
};
const u8 *const gContestMoveTypeTextPointers[] =
{
- gContestMoveTypeCoolText,
- gContestMoveTypeBeautyText,
- gContestMoveTypeCuteText,
- gContestMoveTypeSmartText,
- gContestMoveTypeToughText
+ [CONTEST_CATEGORY_COOL] = gContestMoveTypeCoolText,
+ [CONTEST_CATEGORY_BEAUTY] = gContestMoveTypeBeautyText,
+ [CONTEST_CATEGORY_CUTE] = gContestMoveTypeCuteText,
+ [CONTEST_CATEGORY_SMART] = gContestMoveTypeSmartText,
+ [CONTEST_CATEGORY_TOUGH] = gContestMoveTypeToughText
};
-const u8 *const gUnknown_08587D5C[] =
+static const u8 *const sUnusedAppealResultTexts[] =
{
- gText_0827D5C1,
- gText_0827D5DC,
- gText_0827D600,
- gText_0827D612,
- gText_0827D612,
- gText_0827D62D,
- gText_0827D654,
- gText_0827D67E,
- gText_0827D69C,
- gText_0827D6BA,
- gText_0827D6E5,
- gText_0827D706,
- gText_0827D71D
+ gText_ButAppealWasJammed,
+ gText_FollowedAnotherMonsLead,
+ gText_ButItMessedUp,
+ gText_WentBetterThanUsual,
+ gText_WentBetterThanUsual,
+ gText_JudgeLookedAwayForSomeReason,
+ gText_WorkedHardToBuildOnPastMistakes,
+ gText_CantMakeAnyMoreMoves,
+ gText_WorkedFrighteninglyWell,
+ gText_WorkedHardAsStandoutMon,
+ gText_JudgedLookedOnExpectantly,
+ gText_WorkedRatherWell,
+ gText_WorkedLittleBetterThanUsual
};
-const u8 *const gUnknown_08587D90[] =
+// Takes the .attentionLevel of a contestant as an index. Only 0-5 are used
+static const u8 *const sRoundResultTexts[] =
{
- gText_0827D743,
- gText_0827D764,
- gText_0827D785,
- gText_0827D7A5,
- gText_0827D7C8,
- gText_0827D7E8,
- gText_0827D831,
- gText_0827D855,
- gText_0827D830,
- gText_0827D872,
- gText_0827D88F,
- gText_0827D8B5,
- gText_0827D8E4,
- gText_0827D8FE,
- gText_0827D926,
- gText_0827D947,
- gText_0827D961,
- gText_0827D986,
- gText_0827D9B1,
- gText_0827D9D9,
- gText_0827DA03,
- gText_0827DA31,
- gText_0827DA5B,
- gText_0827DA85,
- gText_0827DAB2,
- gText_0827DADA,
- gText_0827DB03,
- gText_0827D830,
- gText_0827D830,
- gText_0827D830,
- gText_0827DB1F,
- gText_0827DB4E
+ gText_MonFailedToStandOutAtAll,
+ gText_MonDidntStandOutVeryMuch,
+ gText_MonCaughtALittleAttention,
+ gText_MonAttractedALotOfAttention,
+ gText_MonCommandedTotalAttention,
+ gText_MonHasntMadeItsAppeal,
+ gText_JudgesViewsOnMonHeldFirm, // here below unused
+ gText_MonsXChangedPerceptions,
+ gText_EmptyContestString,
+ gText_MonsAppealEffectWoreOff,
+ gText_SpecialAppealsEffectWoreOff,
+ gText_EveryonesAppealsMadeToLookSame,
+ gText_CheapenedMonsAppeal,
+ gText_CheapenedAppealOfThoseAhead,
+ gText_StoleAttentionAwayFromMon,
+ gText_CheapenedMonsAppeal2,
+ gText_SeverelyCheapenedOtherAppeals,
+ gText_AnticipationSwelledForMonsAppealNext,
+ gText_CheapenedAppealOfThoseAhead2,
+ gText_CheapenedJudgesFavoriteAppeal,
+ gText_AppealsOfOthersCheapenedByHalf,
+ gText_StoodOutToMakeUpForBeingJammed,
+ gText_CantParticipateInAppealsAnyMore,
+ gText_TouchedJudgeForFantasticAppeal,
+ gText_AnticipationRoseForUpcomingAppeals,
+ gText_StoodOutAsMuchAsSpecialAppeals,
+ gText_StoodOutAsMuchAsMon,
+ gText_EmptyContestString,
+ gText_EmptyContestString,
+ gText_EmptyContestString,
+ gText_JammedAppealsMadeEvenLessNoticeable,
+ gText_EveryonesAppealsMadeSame
};
-const u8 *const gUnknown_08587E10[] =
+static const u8 *const sAppealResultTexts[] =
{
- gText_827DB75,
- gText_827DBB0,
- gText_827DBE0,
- gText_827DC0F,
- gText_827DC45,
- gText_827DC7C,
- gText_827DCB4,
- gText_827DCE7,
- gText_827DD12,
- gText_827DD3D,
- gText_827DD6F,
- gText_827DD8E,
- gText_827DDC7,
- gText_827DDF2,
- gText_827DE14,
- gText_827DE44,
- gText_827DE73,
- gText_827DEA5,
- gText_827DED9,
- gText_827DF02,
- gText_827DF3A,
- gText_827DF63,
- gText_827DF8C,
- gText_827DFB8,
- gText_827DFE2,
- gText_827E00C,
- gText_827E02F,
- gText_827E05F,
- gText_827E08B,
- gText_827E0B5,
- gText_827E0DD,
- gText_827E107,
- gText_827E143,
- gText_827E17F,
- gText_827E1BB,
- gText_827E1F3,
- gText_827E220,
- gText_827E254,
- gText_827E289,
- gText_827E2C5,
- gText_0827E2FE,
- gText_0827E32E,
- gText_0827E35B,
- gText_0827E38D,
- gText_0827E3C1,
- gText_0827E3EB,
- gText_0827E416,
- gText_0827E448,
- gText_0827E473,
- gText_0827E4A6,
- gText_0827E4D5,
- gText_0827E504,
- gText_0827E531,
- gText_0827E55A,
- gText_0827E5B2,
- gText_0827E5D0,
- gText_0827E606,
- gText_0827E638,
- gText_0827E658,
- gText_0827E68B,
- gText_0827E6C4,
- gText_0827E7BA
+ [CONTEST_STRING_MORE_CONSCIOUS] = gText_BecameMoreConsciousOfOtherMons,
+ [CONTEST_STRING_NO_APPEAL] = gText_MonCantMakeAnAppealAfterThis,
+ [CONTEST_STRING_SETTLE_DOWN] = gText_SettledDownJustLittleBit,
+ [CONTEST_STRING_OBLIVIOUS_TO_OTHERS] = gText_BecameObliviousToOtherMons,
+ [CONTEST_STRING_LESS_AWARE] = gText_BecameLessAwareOfOtherMons,
+ [CONTEST_STRING_STOPPED_CARING] = gText_StoppedCaringAboutOtherMons,
+ [CONTEST_STRING_STARTLE_ATTEMPT] = gText_TriedToStartleOtherMons,
+ [CONTEST_STRING_DAZZLE_ATTEMPT] = gText_TriedToDazzleOthers,
+ [CONTEST_STRING_JUDGE_LOOK_AWAY2] = gText_JudgeLookedAwayFromMon,
+ [CONTEST_STRING_UNNERVE_ATTEMPT] = gText_TriedToUnnerveNextMon,
+ [CONTEST_STRING_NERVOUS] = gText_MonBecameNervous,
+ [CONTEST_STRING_UNNERVE_WAITING] = gText_AppealTriedToUnnerveWaitingMons,
+ [CONTEST_STRING_TAUNT_WELL] = gText_TauntedMonsDoingWell,
+ [CONTEST_STRING_REGAINED_FORM] = gText_MonRegainedItsForm,
+ [CONTEST_STRING_JAM_WELL] = gText_TriedToJamMonDoingWell,
+ [CONTEST_STRING_HUSTLE_STANDOUT] = gText_StandoutMonHustledEvenMore,
+ [CONTEST_STRING_WORK_HARD_UNNOTICED] = gText_LargelyUnnoticedMonWorkedHard,
+ [CONTEST_STRING_WORK_BEFORE] = gText_WorkedAsMuchAsMonBefore,
+ [CONTEST_STRING_APPEAL_NOT_WELL] = gText_MonsAppealDidNotGoWell,
+ [CONTEST_STRING_WORK_PRECEDING] = gText_WorkedAsMuchAsPrecedingMon,
+ [CONTEST_STRING_APPEAL_NOT_WELL2] = gText_MonsAppealDidNotGoWell2,
+ [CONTEST_STRING_APPEAL_NOT_SHOWN_WELL] = gText_MonsAppealDidNotGoWell3,
+ [CONTEST_STRING_APPEAL_SLIGHTLY_WELL] = gText_MonsAppealWentSlightlyWell,
+ [CONTEST_STRING_APPEAL_PRETTY_WELL] = gText_MonsAppealWentPrettyWell,
+ [CONTEST_STRING_APPEAL_EXCELLENTLY] = gText_MonsAppealWentExcellently,
+ [CONTEST_STRING_APPEAL_DUD] = gText_MonsAppealWasDud,
+ [CONTEST_STRING_APPEAL_NOT_VERY_WELL] = gText_MonsAppealDidNotWorkVeryWell,
+ [CONTEST_STRING_APPEAL_SLIGHTLY_WELL2] = gText_MonsAppealWentSlightlyWell2,
+ [CONTEST_STRING_APPEAL_PRETTY_WELL2] = gText_MonsAppealWentPrettyWell2,
+ [CONTEST_STRING_APPEAL_VERY_WELL] = gText_MonsAppealWentVeryWell,
+ [CONTEST_STRING_APPEAL_EXCELLENTLY2] = gText_MonsAppealWentExcellently2,
+ [CONTEST_STRING_SAME_TYPE_GOOD] = gText_SameTypeAsOneBeforeGood,
+ [CONTEST_STRING_DIFF_TYPE_GOOD] = gText_NotSameTypeAsOneBeforeGood,
+ [CONTEST_STRING_STOOD_OUT_AS_MUCH] = gText_StoodOutMuchMoreThanMonBefore,
+ [CONTEST_STRING_NOT_AS_WELL] = gText_DidntDoAsWellAsMonBefore,
+ [CONTEST_STRING_CONDITION_ROSE] = gText_MonsConditionRoseAboveUsual,
+ [CONTEST_STRING_HOT_STATUS] = gText_MonsHotStatusMadeGreatAppeal,
+ [CONTEST_STRING_MOVE_UP_LINE] = gText_MovedUpInLineForNextAppeal,
+ [CONTEST_STRING_MOVE_BACK_LINE] = gText_MovedBackInLineForNextAppeal,
+ [CONTEST_STRING_SCRAMBLE_ORDER] = gText_ScrambledUpOrderForNextTurn,
+ [CONTEST_STRING_JUDGE_EXPECTANTLY2] = gText_JudgeLookedAtMonExpectantly,
+ [CONTEST_STRING_WENT_OVER_WELL] = gText_AppealComboWentOverWell,
+ [CONTEST_STRING_WENT_OVER_VERY_WELL] = gText_AppealComboWentOverVeryWell,
+ [CONTEST_STRING_APPEAL_COMBO_EXCELLENTLY] = gText_AppealComboWentOverExcellently,
+ [CONTEST_STRING_AVERT_GAZE] = gText_MonManagedToAvertGaze,
+ [CONTEST_STRING_AVOID_SEEING] = gText_MonManagedToAvoidSeeingIt,
+ [CONTEST_STRING_NOT_FAZED] = gText_MonIsntFazedByThatSortOfThing,
+ [CONTEST_STRING_LITTLE_DISTRACTED] = gText_MonBecameALittleDistracted,
+ [CONTEST_STRING_ATTEMPT_STARTLE] = gText_TriedToStartleOtherPokemon,
+ [CONTEST_STRING_LOOKED_DOWN] = gText_MonLookedDownOutOfDistraction,
+ [CONTEST_STRING_TURNED_BACK] = gText_MonTurnedBackOutOfDistraction,
+ [CONTEST_STRING_UTTER_CRY] = gText_MonCouldntHelpUtteringCry,
+ [CONTEST_STRING_LEAPT_UP] = gText_MonCouldntHelpLeapingUp,
+ [CONTEST_STRING_TRIPPED_OVER] = gText_MonTrippedOutOfDistraction,
+ [CONTEST_STRING_MESSED_UP2] = gText_ButItMessedUp2,
+ [CONTEST_STRING_FAILED_TARGET_NERVOUS] = gText_ButItFailedToMakeTargetNervous,
+ [CONTEST_STRING_FAILED_ANYONE_NERVOUS] = gText_ButItFailedToMakeAnyoneNervous,
+ [CONTEST_STRING_IGNORED] = gText_ButItWasIgnored,
+ [CONTEST_STRING_NO_CONDITION_IMPROVE] = gText_CouldntImproveItsCondition,
+ [CONTEST_STRING_BAD_CONDITION_WEAK_APPEAL] = gText_BadConditionResultedInWeakAppeal,
+ [CONTEST_STRING_UNAFFECTED] = gText_MonWasUnaffected,
+ [CONTEST_STRING_ATTRACTED_ATTENTION] = gText_AttractedCrowdsAttention
};
-const u8 *const gUnknown_08587F08[] =
+static const u8 *const sContestConditions[] =
{
- gText_0827E85F,
- gText_0827E868,
- gText_0827E86F,
- gText_0827E878,
- gText_0827E882
+ [CONTEST_CATEGORY_COOL] = gText_Contest_Coolness,
+ [CONTEST_CATEGORY_BEAUTY] = gText_Contest_Beauty,
+ [CONTEST_CATEGORY_CUTE] = gText_Contest_Cuteness,
+ [CONTEST_CATEGORY_SMART] = gText_Contest_Smartness,
+ [CONTEST_CATEGORY_TOUGH] = gText_Contest_Toughness
};
-const u8 *const gUnknown_08587F1C[] =
+static const u8 *const sInvalidContestMoveNames[] =
{
- gText_0827E894,
- gText_0827E89E,
- gText_0827E8AA,
- gText_0827E8B4,
- gText_0827E8BF,
- gText_0827E8CA
+ [CONTEST_CATEGORY_COOL] = gText_CoolMove,
+ [CONTEST_CATEGORY_BEAUTY] = gText_BeautyMove,
+ [CONTEST_CATEGORY_CUTE] = gText_CuteMove,
+ [CONTEST_CATEGORY_SMART] = gText_SmartMove,
+ [CONTEST_CATEGORY_TOUGH] = gText_ToughMove,
+ [CONTEST_CATEGORIES_COUNT] = gText_3QuestionMarks
};
diff --git a/src/data/field_event_obj/event_object_graphics_info_pointers.h b/src/data/field_event_obj/event_object_graphics_info_pointers.h
index 0b8aa79b2..661539d57 100755
--- a/src/data/field_event_obj/event_object_graphics_info_pointers.h
+++ b/src/data/field_event_obj/event_object_graphics_info_pointers.h
@@ -489,11 +489,11 @@ const struct EventObjectGraphicsInfo *const gEventObjectGraphicsInfoPointers[] =
};
const struct EventObjectGraphicsInfo *const gMauvilleOldManGraphicsInfoPointers[] = {
- &gEventObjectGraphicsInfo_Bard,
- &gEventObjectGraphicsInfo_Hipster,
- &gEventObjectGraphicsInfo_Trader,
- &gEventObjectGraphicsInfo_Storyteller,
- &gEventObjectGraphicsInfo_Giddy,
- &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
- &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
+ [MAUVILLE_MAN_BARD] = &gEventObjectGraphicsInfo_Bard,
+ [MAUVILLE_MAN_HIPSTER] = &gEventObjectGraphicsInfo_Hipster,
+ [MAUVILLE_MAN_TRADER] = &gEventObjectGraphicsInfo_Trader,
+ [MAUVILLE_MAN_STORYTELLER] = &gEventObjectGraphicsInfo_Storyteller,
+ [MAUVILLE_MAN_GIDDY] = &gEventObjectGraphicsInfo_Giddy,
+ [MAUVILLE_MAN_UNUSED1] = &gEventObjectGraphicsInfo_UnusedMauvilleOldMan1,
+ [MAUVILLE_MAN_UNUSED2] = &gEventObjectGraphicsInfo_UnusedMauvilleOldMan2,
};
diff --git a/src/data/party_menu.h b/src/data/party_menu.h
new file mode 100644
index 000000000..6af8ee2a6
--- /dev/null
+++ b/src/data/party_menu.h
@@ -0,0 +1,1255 @@
+static const struct BgTemplate sPartyMenuBgTemplates[] =
+{
+ {
+ .bg = 0,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 31,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 1,
+ .baseTile = 0
+ },
+ {
+ .bg = 1,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 30,
+ .screenSize = 0,
+ .paletteMode = 0,
+ .priority = 2,
+ .baseTile = 0
+ },
+ {
+ .bg = 2,
+ .charBaseIndex = 0,
+ .mapBaseIndex = 28,
+ .screenSize = 1,
+ .paletteMode = 0,
+ .priority = 0,
+ .baseTile = 0
+ },
+};
+
+enum
+{
+ PARTY_BOX_LEFT_COLUMN,
+ PARTY_BOX_RIGHT_COLUMN
+};
+
+static const struct PartyMenuBoxInfoRects sPartyBoxInfoRects[] =
+{
+ [PARTY_BOX_LEFT_COLUMN] =
+ {
+ BlitBitmapToPartyWindow_LeftColumn,
+ {
+ //The below are the x, y, width, and height for each of the following info
+ 24, 11, 40, 13, // Nickname
+ 32, 20, 32, 8, // Level
+ 64, 20, 8, 8, // Gender
+ 38, 37, 24, 8, // HP
+ 53, 37, 24, 8, // Max HP
+ 24, 35, 48, 3 // HP bar
+ },
+ 12, 34, 64, 16 // Description text (e.g. NO USE)
+ },
+ [PARTY_BOX_RIGHT_COLUMN] =
+ {
+ BlitBitmapToPartyWindow_RightColumn,
+ {
+ // See above comment
+ 22, 3, 40, 13, // Nickname
+ 30, 12, 32, 8, // Level
+ 62, 12, 8, 8, // Gender
+ 102, 12, 24, 8, // HP
+ 117, 12, 24, 8, // Max HP
+ 88, 10, 48, 3 // HP bar
+ },
+ 77, 4, 64, 16 // Description text
+ },
+};
+
+
+// Each layout array has an array for each of the 6 party slots
+// The array for each slot has the sprite coords of its various sprites in the following order
+// Pokemon icon (x, y), held item (x, y), status condition (x, y), menu pokeball (x, y)
+static const u8 sPartyMenuSpriteCoords[PARTY_LAYOUT_COUNT][PARTY_SIZE][4 * 2] =
+{
+ [PARTY_LAYOUT_SINGLE] =
+ {
+ { 16, 40, 20, 50, 50, 52, 16, 34},
+ {104, 18, 108, 28, 136, 27, 102, 25},
+ {104, 42, 108, 52, 136, 51, 102, 49},
+ {104, 66, 108, 76, 136, 75, 102, 73},
+ {104, 90, 108, 100, 136, 99, 102, 97},
+ {104, 114, 108, 124, 136, 123, 102, 121},
+ },
+ [PARTY_LAYOUT_DOUBLE] =
+ {
+ {16, 24, 20, 34, 50, 36, 16, 18},
+ {16, 80, 20, 90, 50, 92, 16, 74},
+ {104, 18, 108, 28, 136, 27, 102, 25},
+ {104, 50, 108, 60, 136, 59, 102, 57},
+ {104, 82, 108, 92, 136, 91, 102, 89},
+ {104, 114, 108, 124, 136, 123, 102, 121},
+ },
+ [PARTY_LAYOUT_MULTI] =
+ {
+ {16, 24, 20, 34, 50, 36, 16, 18},
+ {16, 80, 20, 90, 50, 92, 16, 74},
+ {104, 26, 106, 36, 136, 35, 102, 33},
+ {104, 50, 106, 60, 136, 59, 102, 57},
+ {104, 82, 106, 92, 136, 91, 102, 89},
+ {104, 106, 106, 116, 136, 115, 102, 113},
+ },
+ [PARTY_LAYOUT_MULTI_SHOWCASE] =
+ {
+ {16, 32, 20, 42, 50, 44, 16, 26},
+ {104, 34, 106, 44, 136, 43, 102, 41},
+ {104, 58, 106, 68, 136, 67, 102, 65},
+ {16, 104, 20, 114, 50, 116, 16, 98},
+ {104, 106, 106, 116, 136, 115, 102, 113},
+ {104, 130, 106, 140, 136, 139, 102, 137},
+ },
+};
+
+// Used only when both Cancel and Confirm are present
+static const u32 sConfirmButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_confirm_button.bin");
+static const u32 sCancelButton_Tilemap[] = INCBIN_U32("graphics/interface/party_menu_cancel_button.bin");
+
+// Text colors for BG, FG, and Shadow in that order
+static const u8 sFontColorTable[][3] =
+{
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_LIGHT_GREY, TEXT_COLOR_DARK_GREY}, // Default
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_GREEN}, // Unused
+ {TEXT_COLOR_TRANSPARENT, TEXT_DYNAMIC_COLOR_2, TEXT_DYNAMIC_COLOR_3}, // Gender symbol
+ {TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_GREY}, // Selection actions
+ {TEXT_COLOR_WHITE, TEXT_COLOR_BLUE, TEXT_COLOR_LIGHT_BLUE}, // Field moves
+ {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_WHITE, TEXT_COLOR_DARK_GREY}, // Unused
+};
+
+static const struct WindowTemplate sSinglePartyMenuWindowTemplate[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 3,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 1,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 4,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xDF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 7,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x115,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 10,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x14B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x181,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sDoublePartyMenuWindowTemplate[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 8,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 1,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xEF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 5,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x125,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 9,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x15B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x191,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sMultiPartyMenuWindowTemplate[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 8,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 2,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xEF,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 5,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0x125,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 9,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x15B,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 12,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x191,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 28,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sShowcaseMultiPartyMenuWindowTemplate[] =
+{
+ {
+ .bg = 0,
+ .tilemapLeft = 1,
+ .tilemapTop = 2,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 3,
+ .baseBlock = 0x63,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 3,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 5,
+ .baseBlock = 0xA9,
+ },
+ {
+ .bg = 0,
+ .tilemapLeft = 12,
+ .tilemapTop = 6,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 6,
+ .baseBlock = 0xDF,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 11,
+ .width = 10,
+ .height = 7,
+ .paletteNum = 4,
+ .baseBlock = 0x115,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 12,
+ .tilemapTop = 12,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 7,
+ .baseBlock = 0x16B,
+ },
+ {
+ .bg = 2,
+ .tilemapLeft = 12,
+ .tilemapTop = 15,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 8,
+ .baseBlock = 0x1A1,
+ },
+ DUMMY_WIN_TEMPLATE
+};
+
+static const struct WindowTemplate sCancelButtonWindowTemplate =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 17,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1C7,
+};
+
+static const struct WindowTemplate sMultiCancelButtonWindowTemplate =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 18,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1C7,
+};
+
+static const struct WindowTemplate sConfirmButtonWindowTemplate =
+{
+ .bg = 0,
+ .tilemapLeft = 24,
+ .tilemapTop = 16,
+ .width = 6,
+ .height = 2,
+ .paletteNum = 3,
+ .baseBlock = 0x1D3,
+};
+
+static const struct WindowTemplate sDefaultPartyMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 21,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x24F,
+};
+
+static const struct WindowTemplate sDoWhatWithMonMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 16,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x279,
+};
+
+static const struct WindowTemplate sDoWhatWithItemMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 20,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate sDoWhatWithMailMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 18,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate sWhichMoveMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 17,
+ .width = 16,
+ .height = 2,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate sAlreadyHoldingOneMsgWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 1,
+ .tilemapTop = 15,
+ .width = 20,
+ .height = 4,
+ .paletteNum = 15,
+ .baseBlock = 0x299,
+};
+
+static const struct WindowTemplate sItemGiveTakeWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 23,
+ .tilemapTop = 13,
+ .width = 6,
+ .height = 6,
+ .paletteNum = 14,
+ .baseBlock = 0x39D,
+};
+
+static const struct WindowTemplate sMailReadTakeWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 21,
+ .tilemapTop = 13,
+ .width = 8,
+ .height = 6,
+ .paletteNum = 14,
+ .baseBlock = 0x39D,
+};
+
+static const struct WindowTemplate sMoveSelectWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 19,
+ .tilemapTop = 11,
+ .width = 10,
+ .height = 8,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+
+static const struct WindowTemplate sPartyMenuYesNoWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 21,
+ .tilemapTop = 9,
+ .width = 5,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+
+static const struct WindowTemplate sLevelUpStatsWindowTemplate =
+{
+ .bg = 2,
+ .tilemapLeft = 19,
+ .tilemapTop = 1,
+ .width = 10,
+ .height = 11,
+ .paletteNum = 14,
+ .baseBlock = 0x2E9,
+};
+
+static const struct WindowTemplate sUnusedWindowTemplate_08615978 =
+{
+ .bg = 2,
+ .tilemapLeft = 2,
+ .tilemapTop = 15,
+ .width = 27,
+ .height = 4,
+ .paletteNum = 14,
+ .baseBlock = 0x1DF,
+};
+
+static const struct WindowTemplate sUnusedWindowTemplate_08615980 =
+{
+ .bg = 2,
+ .tilemapLeft = 0,
+ .tilemapTop = 13,
+ .width = 18,
+ .height = 3,
+ .paletteNum = 12,
+ .baseBlock = 0x39D,
+};
+
+// Tile nums
+static const u8 sMainSlotTileNums[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 40, 59, 60, 58, 58, 58, 58, 58, 58, 61,
+ 15, 16, 16, 16, 16, 16, 16, 16, 16, 17,
+ 46, 47, 47, 47, 47, 47, 47, 47, 47, 48};
+
+static const u8 sMainSlotTileNums_Egg[] = {24, 25, 25, 25, 25, 25, 25, 25, 25, 26,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 32, 33, 33, 33, 33, 33, 33, 33, 33, 34,
+ 40, 41, 41, 41, 41, 41, 41, 41, 41, 42,
+ 15, 16, 16, 16, 16, 16, 16, 16, 16, 17,
+ 46, 47, 47, 47, 47, 47, 47, 47, 47, 48};
+
+static const u8 sOtherSlotsTileNums[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45,
+ 49, 33, 33, 33, 33, 33, 33, 33, 33, 52, 53, 51, 51, 51, 51, 51, 51, 54,
+ 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57};
+
+static const u8 sOtherSlotsTileNums_Egg[] = {43, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 44, 45,
+ 49, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 33, 50,
+ 55, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 56, 57};
+
+static const u8 sEmptySlotTileNums[] = {21, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 22, 23,
+ 30, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 31,
+ 37, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 38, 39};
+
+// Palette offsets
+static const u8 sGenderPalOffsets[] = {11, 12};
+static const u8 sHPBarPalOffsets[] = {9, 10};
+static const u8 sPartyBoxPalOffsets1[] = {4, 5, 6};
+static const u8 sPartyBoxPalOffsets2[] = {1, 7, 8};
+static const u8 sPartyBoxNoMonPalOffsets[] = {1, 11, 12};
+
+// Palette ids
+static const u8 sGenderMalePalIds[] = {59, 60};
+static const u8 sGenderFemalePalIds[] = {75, 76};
+static const u8 sHPBarGreenPalIds[] = {57, 58};
+static const u8 sHPBarYellowPalIds[] = {73, 74};
+static const u8 sHPBarRedPalIds[] = {89, 90};
+static const u8 sPartyBoxEmptySlotPalIds1[] = {52, 53, 54};
+static const u8 sPartyBoxMultiPalIds1[] = {68, 69, 70};
+static const u8 sPartyBoxFaintedPalIds1[] = {84, 85, 86};
+static const u8 sPartyBoxCurrSelectionPalIds1[] = {116, 117, 118};
+static const u8 sPartyBoxCurrSelectionMultiPalIds[] = {132, 133, 134};
+static const u8 sPartyBoxCurrSelectionFaintedPalIds[] = {148, 149, 150};
+static const u8 sPartyBoxSelectedForActionPalIds1[] = {100, 101, 102};
+static const u8 sPartyBoxEmptySlotPalIds2[] = {49, 55, 56};
+static const u8 sPartyBoxMultiPalIds2[] = {65, 71, 72};
+static const u8 sPartyBoxFaintedPalIds2[] = {81, 87, 88};
+static const u8 sPartyBoxCurrSelectionPalIds2[] = {97, 103, 104};
+static const u8 sPartyBoxSelectedForActionPalIds2[] = {161, 167, 168};
+static const u8 sPartyBoxNoMonPalIds[] = {17, 27, 28};
+
+static const u8 *const sActionStringTable[] =
+{
+ [PARTY_MSG_CHOOSE_MON] = gText_ChoosePokemon,
+ [PARTY_MSG_CHOOSE_MON_OR_CANCEL] = gText_ChoosePokemonCancel,
+ [PARTY_MSG_CHOOSE_MON_AND_CONFIRM] = gText_ChoosePokemonConfirm,
+ [PARTY_MSG_MOVE_TO_WHERE] = gText_MoveToWhere,
+ [PARTY_MSG_TEACH_WHICH_MON] = gText_TeachWhichPokemon,
+ [PARTY_MSG_USE_ON_WHICH_MON] = gText_UseOnWhichPokemon,
+ [PARTY_MSG_GIVE_TO_WHICH_MON] = gText_GiveToWhichPokemon,
+ [PARTY_MSG_NOTHING_TO_CUT] = gText_NothingToCut,
+ [PARTY_MSG_CANT_SURF_HERE] = gText_CantSurfHere,
+ [PARTY_MSG_ALREADY_SURFING] = gText_AlreadySurfing,
+ [PARTY_MSG_CURRENT_TOO_FAST] = gText_CurrentIsTooFast,
+ [PARTY_MSG_ENJOY_CYCLING] = gText_EnjoyCycling,
+ [PARTY_MSG_ALREADY_IN_USE] = gText_InUseAlready_PM,
+ [PARTY_MSG_CANT_USE_HERE] = gText_CantUseHere,
+ [PARTY_MSG_NO_MON_FOR_BATTLE] = gText_NoPokemonForBattle,
+ [PARTY_MSG_CHOOSE_MON_2] = gText_ChoosePokemon2,
+ [PARTY_MSG_NOT_ENOUGH_HP] = gText_NotEnoughHp,
+ [PARTY_MSG_X_MONS_ARE_NEEDED] = gText_PokemonAreNeeded,
+ [PARTY_MSG_MONS_CANT_BE_SAME] = gText_PokemonCantBeSame,
+ [PARTY_MSG_NO_SAME_HOLD_ITEMS] = gText_NoIdenticalHoldItems,
+ [PARTY_MSG_UNUSED] = gText_EmptyString2,
+ [PARTY_MSG_DO_WHAT_WITH_MON] = gText_DoWhatWithPokemon,
+ [PARTY_MSG_RESTORE_WHICH_MOVE] = gText_RestoreWhichMove,
+ [PARTY_MSG_BOOST_PP_WHICH_MOVE] = gText_BoostPp,
+ [PARTY_MSG_DO_WHAT_WITH_ITEM] = gText_DoWhatWithItem,
+ [PARTY_MSG_DO_WHAT_WITH_MAIL] = gText_DoWhatWithMail,
+ [PARTY_MSG_ALREADY_HOLDING_ONE] = gText_AlreadyHoldingOne,
+};
+
+static const u8 *const sDescriptionStringTable[] =
+{
+ [PARTYBOX_DESC_NO_USE] = gText_NoUse,
+ [PARTYBOX_DESC_ABLE_3] = gText_Able,
+ [PARTYBOX_DESC_FIRST] = gText_First_PM,
+ [PARTYBOX_DESC_SECOND] = gText_Second_PM,
+ [PARTYBOX_DESC_THIRD] = gText_Third_PM,
+ [PARTYBOX_DESC_FOURTH] = gText_Fourth,
+ [PARTYBOX_DESC_ABLE] = gText_Able2,
+ [PARTYBOX_DESC_NOT_ABLE] = gText_NotAble,
+ [PARTYBOX_DESC_ABLE_2] = gText_Able3,
+ [PARTYBOX_DESC_NOT_ABLE_2] = gText_NotAble2,
+ [PARTYBOX_DESC_LEARNED] = gText_Learned,
+ [PARTYBOX_DESC_HAVE] = gText_Have,
+ [PARTYBOX_DESC_DONT_HAVE] = gText_DontHave,
+};
+
+static const u16 sUnused_08615B94[] =
+{
+ 0x0108, 0x0151, 0x0160, 0x015b, 0x002e, 0x005c, 0x0102, 0x0153, 0x014b, 0x00ed, 0x00f1, 0x010d, 0x003a, 0x003b, 0x003f, 0x0071,
+ 0x00b6, 0x00f0, 0x00ca, 0x00db, 0x00da, 0x004c, 0x00e7, 0x0055, 0x0057, 0x0059, 0x00d8, 0x005b, 0x005e, 0x00f7, 0x0118, 0x0068,
+ 0x0073, 0x015f, 0x0035, 0x00bc, 0x00c9, 0x007e, 0x013d, 0x014c, 0x0103, 0x0107, 0x0122, 0x009c, 0x00d5, 0x00a8, 0x00d3, 0x011d,
+ 0x0121, 0x013b, 0x000f, 0x0013, 0x0039, 0x0046, 0x0094, 0x00f9, 0x007f, 0x0123,
+};
+
+enum
+{
+ MENU_SUMMARY,
+ MENU_SWITCH,
+ MENU_CANCEL1,
+ MENU_ITEM,
+ MENU_GIVE,
+ MENU_TAKE_ITEM,
+ MENU_MAIL,
+ MENU_TAKE_MAIL,
+ MENU_READ,
+ MENU_CANCEL2,
+ MENU_SHIFT,
+ MENU_SEND_OUT,
+ MENU_ENTER,
+ MENU_NO_ENTRY,
+ MENU_STORE,
+ MENU_REGISTER,
+ MENU_TRADE1,
+ MENU_TRADE2,
+ MENU_TOSS,
+ MENU_FIELD_MOVES,
+};
+
+enum
+{
+ FIELD_MOVE_CUT,
+ FIELD_MOVE_FLASH,
+ FIELD_MOVE_ROCK_SMASH,
+ FIELD_MOVE_STRENGTH,
+ FIELD_MOVE_SURF,
+ FIELD_MOVE_FLY,
+ FIELD_MOVE_DIVE,
+ FIELD_MOVE_WATERFALL,
+ FIELD_MOVE_TELEPORT,
+ FIELD_MOVE_DIG,
+ FIELD_MOVE_SECRET_POWER,
+ FIELD_MOVE_MILK_DRINK,
+ FIELD_MOVE_SOFT_BOILED,
+ FIELD_MOVE_SWEET_SCENT,
+};
+
+// What a weird choice of table termination;
+#define FIELD_MOVE_TERMINATOR MOVE_SWORDS_DANCE
+
+struct
+{
+ const u8 *text;
+ TaskFunc func;
+} static const sCursorOptions[] =
+{
+ [MENU_SUMMARY] = {gText_Summary5, CursorCb_Summary},
+ [MENU_SWITCH] = {gText_Switch2, CursorCb_Switch},
+ [MENU_CANCEL1] = {gText_Cancel2, CursorCb_Cancel1},
+ [MENU_ITEM] = {gText_Item, CursorCb_Item},
+ [MENU_GIVE] = {gMenuText_Give, CursorCb_Give},
+ [MENU_TAKE_ITEM] = {gText_Take, CursorCb_TakeItem},
+ [MENU_MAIL] = {gText_Mail, CursorCb_Mail},
+ [MENU_TAKE_MAIL] = {gText_Take2, CursorCb_TakeMail},
+ [MENU_READ] = {gText_Read2, CursorCb_Read},
+ [MENU_CANCEL2] = {gText_Cancel2, CursorCb_Cancel2},
+ [MENU_SHIFT] = {gText_Shift, CursorCb_SendMon},
+ [MENU_SEND_OUT] = {gText_SendOut, CursorCb_SendMon},
+ [MENU_ENTER] = {gText_Enter, CursorCb_Enter},
+ [MENU_NO_ENTRY] = {gText_NoEntry, CursorCb_NoEntry},
+ [MENU_STORE] = {gText_Store, CursorCb_Store},
+ [MENU_REGISTER] = {gText_Register, CursorCb_Register},
+ [MENU_TRADE1] = {gText_Trade4, CursorCb_Trade1},
+ [MENU_TRADE2] = {gText_Trade4, CursorCb_Trade2},
+ [MENU_TOSS] = {gMenuText_Toss, CursorCb_Toss},
+ [MENU_FIELD_MOVES + FIELD_MOVE_CUT] = {gMoveNames[MOVE_CUT], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_FLASH] = {gMoveNames[MOVE_FLASH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_ROCK_SMASH] = {gMoveNames[MOVE_ROCK_SMASH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_STRENGTH] = {gMoveNames[MOVE_STRENGTH], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SURF] = {gMoveNames[MOVE_SURF], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_FLY] = {gMoveNames[MOVE_FLY], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_DIVE] = {gMoveNames[MOVE_DIVE], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_WATERFALL] = {gMoveNames[MOVE_WATERFALL], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_TELEPORT] = {gMoveNames[MOVE_TELEPORT], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_DIG] = {gMoveNames[MOVE_DIG], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SECRET_POWER] = {gMoveNames[MOVE_SECRET_POWER], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_MILK_DRINK] = {gMoveNames[MOVE_MILK_DRINK], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SOFT_BOILED] = {gMoveNames[MOVE_SOFT_BOILED], CursorCb_FieldMove},
+ [MENU_FIELD_MOVES + FIELD_MOVE_SWEET_SCENT] = {gMoveNames[MOVE_SWEET_SCENT], CursorCb_FieldMove},
+};
+
+static const u8 sPartyMenuAction_SummarySwitchCancel[] = {MENU_SUMMARY, MENU_SWITCH, MENU_CANCEL1};
+static const u8 sPartyMenuAction_ShiftSummaryCancel[] = {MENU_SHIFT, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_SendOutSummaryCancel[] = {MENU_SEND_OUT, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_SummaryCancel[] = {MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_EnterSummaryCancel[] = {MENU_ENTER, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_NoEntrySummaryCancel[] = {MENU_NO_ENTRY, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_StoreSummaryCancel[] = {MENU_STORE, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_GiveTakeItemCancel[] = {MENU_GIVE, MENU_TAKE_ITEM, MENU_CANCEL2};
+static const u8 sPartyMenuAction_ReadTakeMailCancel[] = {MENU_READ, MENU_TAKE_MAIL, MENU_CANCEL2};
+static const u8 sPartyMenuAction_RegisterSummaryCancel[] = {MENU_REGISTER, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_TradeSummaryCancel1[] = {MENU_TRADE1, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_TradeSummaryCancel2[] = {MENU_TRADE2, MENU_SUMMARY, MENU_CANCEL1};
+static const u8 sPartyMenuAction_TakeItemTossCancel[] = {MENU_TAKE_ITEM, MENU_TOSS, MENU_CANCEL1};
+
+// IDs for the action lists that appear when a party mon is selected
+enum
+{
+ ACTIONS_NONE,
+ ACTIONS_SWITCH,
+ ACTIONS_SHIFT,
+ ACTIONS_SEND_OUT,
+ ACTIONS_ENTER,
+ ACTIONS_NO_ENTRY,
+ ACTIONS_STORE,
+ ACTIONS_SUMMARY_ONLY,
+ ACTIONS_ITEM,
+ ACTIONS_MAIL,
+ ACTIONS_REGISTER,
+ ACTIONS_TRADE,
+ ACTIONS_SPIN_TRADE,
+ ACTIONS_TAKEITEM_TOSS
+};
+
+static const u8 *const sPartyMenuActions[] =
+{
+ [ACTIONS_NONE] = NULL,
+ [ACTIONS_SWITCH] = sPartyMenuAction_SummarySwitchCancel,
+ [ACTIONS_SHIFT] = sPartyMenuAction_ShiftSummaryCancel,
+ [ACTIONS_SEND_OUT] = sPartyMenuAction_SendOutSummaryCancel,
+ [ACTIONS_ENTER] = sPartyMenuAction_EnterSummaryCancel,
+ [ACTIONS_NO_ENTRY] = sPartyMenuAction_NoEntrySummaryCancel,
+ [ACTIONS_STORE] = sPartyMenuAction_StoreSummaryCancel,
+ [ACTIONS_SUMMARY_ONLY] = sPartyMenuAction_SummaryCancel,
+ [ACTIONS_ITEM] = sPartyMenuAction_GiveTakeItemCancel,
+ [ACTIONS_MAIL] = sPartyMenuAction_ReadTakeMailCancel,
+ [ACTIONS_REGISTER] = sPartyMenuAction_RegisterSummaryCancel,
+ [ACTIONS_TRADE] = sPartyMenuAction_TradeSummaryCancel1,
+ [ACTIONS_SPIN_TRADE] = sPartyMenuAction_TradeSummaryCancel2,
+ [ACTIONS_TAKEITEM_TOSS] = sPartyMenuAction_TakeItemTossCancel,
+};
+
+static const u8 sPartyMenuActionCounts[] =
+{
+ [ACTIONS_NONE] = 0,
+ [ACTIONS_SWITCH] = ARRAY_COUNT(sPartyMenuAction_SummarySwitchCancel),
+ [ACTIONS_SHIFT] = ARRAY_COUNT(sPartyMenuAction_ShiftSummaryCancel),
+ [ACTIONS_SEND_OUT] = ARRAY_COUNT(sPartyMenuAction_SendOutSummaryCancel),
+ [ACTIONS_ENTER] = ARRAY_COUNT(sPartyMenuAction_EnterSummaryCancel),
+ [ACTIONS_NO_ENTRY] = ARRAY_COUNT(sPartyMenuAction_NoEntrySummaryCancel),
+ [ACTIONS_STORE] = ARRAY_COUNT(sPartyMenuAction_StoreSummaryCancel),
+ [ACTIONS_SUMMARY_ONLY] = ARRAY_COUNT(sPartyMenuAction_SummaryCancel),
+ [ACTIONS_ITEM] = ARRAY_COUNT(sPartyMenuAction_GiveTakeItemCancel),
+ [ACTIONS_MAIL] = ARRAY_COUNT(sPartyMenuAction_ReadTakeMailCancel),
+ [ACTIONS_REGISTER] = ARRAY_COUNT(sPartyMenuAction_RegisterSummaryCancel),
+ [ACTIONS_TRADE] = ARRAY_COUNT(sPartyMenuAction_TradeSummaryCancel1),
+ [ACTIONS_SPIN_TRADE] = ARRAY_COUNT(sPartyMenuAction_TradeSummaryCancel2),
+ [ACTIONS_TAKEITEM_TOSS] = ARRAY_COUNT(sPartyMenuAction_TakeItemTossCancel)
+};
+
+static const u16 sFieldMoves[] =
+{
+ MOVE_CUT, MOVE_FLASH, MOVE_ROCK_SMASH, MOVE_STRENGTH, MOVE_SURF, MOVE_FLY, MOVE_DIVE, MOVE_WATERFALL, MOVE_TELEPORT,
+ MOVE_DIG, MOVE_SECRET_POWER, MOVE_MILK_DRINK, MOVE_SOFT_BOILED, MOVE_SWEET_SCENT, FIELD_MOVE_TERMINATOR
+};
+
+struct
+{
+ bool8 (*fieldMoveFunc)(void);
+ u8 msgId;
+} static const sFieldMoveCursorCallbacks[] =
+{
+ [FIELD_MOVE_CUT] = {SetUpFieldMove_Cut, PARTY_MSG_NOTHING_TO_CUT},
+ [FIELD_MOVE_FLASH] = {SetUpFieldMove_Flash, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_ROCK_SMASH] = {SetUpFieldMove_RockSmash, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_STRENGTH] = {SetUpFieldMove_Strength, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_SURF] = {SetUpFieldMove_Surf, PARTY_MSG_CANT_SURF_HERE},
+ [FIELD_MOVE_FLY] = {SetUpFieldMove_Fly, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_DIVE] = {SetUpFieldMove_Dive, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_WATERFALL] = {SetUpFieldMove_Waterfall, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_TELEPORT] = {SetUpFieldMove_Teleport, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_DIG] = {SetUpFieldMove_Dig, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_SECRET_POWER] = {SetUpFieldMove_SecretPower, PARTY_MSG_CANT_USE_HERE},
+ [FIELD_MOVE_MILK_DRINK] = {SetUpFieldMove_SoftBoiled, PARTY_MSG_NOT_ENOUGH_HP},
+ [FIELD_MOVE_SOFT_BOILED] = {SetUpFieldMove_SoftBoiled, PARTY_MSG_NOT_ENOUGH_HP},
+ [FIELD_MOVE_SWEET_SCENT] = {SetUpFieldMove_SweetScent, PARTY_MSG_CANT_USE_HERE},
+};
+
+static const u8 *const sUnionRoomTradeMessages[] =
+{
+ [UR_TRADE_MSG_NOT_MON_PARTNER_WANTS - 1] = gText_NotPkmnOtherTrainerWants,
+ [UR_TRADE_MSG_NOT_EGG - 1] = gText_ThatIsntAnEgg,
+ [UR_TRADE_MSG_MON_CANT_BE_TRADED_1 - 1] = gText_PkmnCantBeTradedNow,
+ [UR_TRADE_MSG_MON_CANT_BE_TRADED_2 - 1] = gText_PkmnCantBeTradedNow,
+ [UR_TRADE_MSG_PARTNERS_MON_CANT_BE_TRADED - 1] = gText_OtherTrainersPkmnCantBeTraded,
+ [UR_TRADE_MSG_EGG_CANT_BE_TRADED -1] = gText_EggCantBeTradedNow,
+ [UR_TRADE_MSG_PARTNER_CANT_ACCEPT_MON - 1] = gText_OtherTrainerCantAcceptPkmn,
+ [UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_1 - 1] = gText_CantTradeWithTrainer,
+ [UR_TRADE_MSG_CANT_TRADE_WITH_PARTNER_2 - 1] = gText_CantTradeWithTrainer,
+};
+
+static const u32 sHeldItemGfx[] = INCBIN_U32("graphics/interface/hold_icons.4bpp");
+static const u16 sHeldItemPalette[] = INCBIN_U16("graphics/interface/hold_icons.gbapal");
+
+static const struct OamData sOamData_HeldItem =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(8x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(8x8),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0,
+};
+
+static const union AnimCmd sSpriteAnim_HeldItem[] =
+{
+ ANIMCMD_FRAME(0, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_HeldMail[] =
+{
+ ANIMCMD_FRAME(1, 1),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_HeldItem[] =
+{
+ sSpriteAnim_HeldItem,
+ sSpriteAnim_HeldMail,
+};
+
+static const struct SpriteSheet sSpriteSheet_HeldItem =
+{
+ sHeldItemGfx, sizeof(sHeldItemGfx), 0xd750
+};
+
+static const struct SpritePalette sSpritePalette_HeldItem =
+{
+ sHeldItemPalette, 0xd750
+};
+
+static const struct SpriteTemplate sSpriteTemplate_HeldItem =
+{
+ 0xd750,
+ 0xd750,
+ &sOamData_HeldItem,
+ sSpriteAnimTable_HeldItem,
+ NULL,
+ gDummySpriteAffineAnimTable,
+ SpriteCallbackDummy
+};
+
+static const struct OamData sOamData_MenuPokeball =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x32),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x32),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sPokeballAnim_Closed[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sPokeballAnim_Open[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteAnimTable_MenuPokeball[] =
+{
+ sPokeballAnim_Closed,
+ sPokeballAnim_Open
+};
+
+static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeball =
+{
+ gPartyMenuPokeball_Gfx, 0x400, 0x04b0
+};
+
+static const struct CompressedSpritePalette sSpritePalette_MenuPokeball =
+{
+ gPartyMenuPokeball_Pal, 0x04b0
+};
+
+// Used for the pokeball sprite on each party slot / Cancel button
+static const struct SpriteTemplate sSpriteTemplate_MenuPokeball =
+{
+ .tileTag = 0x04b0,
+ .paletteTag = 0x04b0,
+ .oam = &sOamData_MenuPokeball,
+ .anims = sSpriteAnimTable_MenuPokeball,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_MenuPokeballSmall =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(16x16),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(16x16),
+ .tileNum = 0,
+ .priority = 2,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSmallPokeballAnim_Closed[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSmallPokeballAnim_Open[] =
+{
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSmallPokeballAnim_Blank1[] =
+{
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSmallPokeballAnim_Blank2[] =
+{
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSmallPokeballAnim_Blank3[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSmallPokeballAnim_Blank4[] =
+{
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END
+};
+
+// The blanks below are never used. See SpriteCB_BounceConfirmCancelButton, where they were intended to be used
+static const union AnimCmd *const sSpriteAnimTable_MenuPokeballSmall[] =
+{
+ sSmallPokeballAnim_Closed,
+ sSmallPokeballAnim_Open,
+ sSmallPokeballAnim_Blank1,
+ sSmallPokeballAnim_Blank2,
+ sSmallPokeballAnim_Blank3,
+ sSmallPokeballAnim_Blank4
+};
+
+static const struct CompressedSpriteSheet sSpriteSheet_MenuPokeballSmall =
+{
+ gPartyMenuPokeballSmall_Gfx, 0x0300, 0x04b1
+};
+
+// Used for the pokeball sprite next to Cancel and Confirm when both are present, otherwise sSpriteTemplate_MenuPokeball is used
+static const struct SpriteTemplate sSpriteTemplate_MenuPokeballSmall =
+{
+ .tileTag = 1201,
+ .paletteTag = 1200,
+ .oam = &sOamData_MenuPokeballSmall,
+ .anims = sSpriteAnimTable_MenuPokeballSmall,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+static const struct OamData sOamData_StatusCondition =
+{
+ .y = 0,
+ .affineMode = 0,
+ .objMode = 0,
+ .mosaic = 0,
+ .bpp = 0,
+ .shape = SPRITE_SHAPE(32x8),
+ .x = 0,
+ .matrixNum = 0,
+ .size = SPRITE_SIZE(32x8),
+ .tileNum = 0,
+ .priority = 1,
+ .paletteNum = 0,
+ .affineParam = 0
+};
+
+static const union AnimCmd sSpriteAnim_StatusPoison[] =
+{
+ ANIMCMD_FRAME(0, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusParalyzed[] =
+{
+ ANIMCMD_FRAME(4, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusSleep[] =
+{
+ ANIMCMD_FRAME(8, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusFrozen[] =
+{
+ ANIMCMD_FRAME(12, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusBurn[] =
+{
+ ANIMCMD_FRAME(16, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusPokerus[] =
+{
+ ANIMCMD_FRAME(20, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_StatusFaint[] =
+{
+ ANIMCMD_FRAME(24, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd sSpriteAnim_Blank[] =
+{
+ ANIMCMD_FRAME(28, 0),
+ ANIMCMD_END
+};
+
+static const union AnimCmd *const sSpriteTemplate_StatusCondition[] =
+{
+ sSpriteAnim_StatusPoison,
+ sSpriteAnim_StatusParalyzed,
+ sSpriteAnim_StatusSleep,
+ sSpriteAnim_StatusFrozen,
+ sSpriteAnim_StatusBurn,
+ sSpriteAnim_StatusPokerus,
+ sSpriteAnim_StatusFaint,
+ sSpriteAnim_Blank
+};
+
+static const struct CompressedSpriteSheet sSpriteSheet_StatusIcons =
+{
+ gStatusGfx_Icons, 0x400, 1202
+};
+
+static const struct CompressedSpritePalette sSpritePalette_StatusIcons =
+{
+ gStatusPal_Icons, 1202
+};
+
+static const struct SpriteTemplate sSpriteTemplate_StatusIcons =
+{
+ .tileTag = 1202,
+ .paletteTag = 1202,
+ .oam = &sOamData_StatusCondition,
+ .anims = sSpriteTemplate_StatusCondition,
+ .images = NULL,
+ .affineAnims = gDummySpriteAffineAnimTable,
+ .callback = SpriteCallbackDummy,
+};
+
+// Mask for the partners party in a multi battle. TRUE if in the partners party, FALSE otherwise
+// The 7th slot is Cancel, and the 8th slot is unreachable
+// Used only to determine whether or not to show the Deoxys form icon sprite
+static const bool8 sMultiBattlePartnersPartyMask[PARTY_SIZE + 2] =
+{
+ FALSE,
+ TRUE,
+ FALSE,
+ FALSE,
+ TRUE,
+ TRUE,
+ FALSE
+};
+
+static const u8 *const sUnused_StatStrings[] =
+{
+ gText_HP4,
+ gText_Attack3,
+ gText_Defense3,
+ gText_SpAtk4,
+ gText_SpDef4,
+ gText_Speed2
+};
+
+static const u16 sTMHMMoves[] =
+{
+ MOVE_FOCUS_PUNCH,
+ MOVE_DRAGON_CLAW,
+ MOVE_WATER_PULSE,
+ MOVE_CALM_MIND,
+ MOVE_ROAR,
+ MOVE_TOXIC,
+ MOVE_HAIL,
+ MOVE_BULK_UP,
+ MOVE_BULLET_SEED,
+ MOVE_HIDDEN_POWER,
+ MOVE_SUNNY_DAY,
+ MOVE_TAUNT,
+ MOVE_ICE_BEAM,
+ MOVE_BLIZZARD,
+ MOVE_HYPER_BEAM,
+ MOVE_LIGHT_SCREEN,
+ MOVE_PROTECT,
+ MOVE_RAIN_DANCE,
+ MOVE_GIGA_DRAIN,
+ MOVE_SAFEGUARD,
+ MOVE_FRUSTRATION,
+ MOVE_SOLAR_BEAM,
+ MOVE_IRON_TAIL,
+ MOVE_THUNDERBOLT,
+ MOVE_THUNDER,
+ MOVE_EARTHQUAKE,
+ MOVE_RETURN,
+ MOVE_DIG,
+ MOVE_PSYCHIC,
+ MOVE_SHADOW_BALL,
+ MOVE_BRICK_BREAK,
+ MOVE_DOUBLE_TEAM,
+ MOVE_REFLECT,
+ MOVE_SHOCK_WAVE,
+ MOVE_FLAMETHROWER,
+ MOVE_SLUDGE_BOMB,
+ MOVE_SANDSTORM,
+ MOVE_FIRE_BLAST,
+ MOVE_ROCK_TOMB,
+ MOVE_AERIAL_ACE,
+ MOVE_TORMENT,
+ MOVE_FACADE,
+ MOVE_SECRET_POWER,
+ MOVE_REST,
+ MOVE_ATTRACT,
+ MOVE_THIEF,
+ MOVE_STEEL_WING,
+ MOVE_SKILL_SWAP,
+ MOVE_SNATCH,
+ MOVE_OVERHEAT,
+ MOVE_CUT,
+ MOVE_FLY,
+ MOVE_SURF,
+ MOVE_STRENGTH,
+ MOVE_FLASH,
+ MOVE_ROCK_SMASH,
+ MOVE_WATERFALL,
+ MOVE_DIVE,
+};
diff --git a/src/data/pokemon/level_up_learnsets.h b/src/data/pokemon/level_up_learnsets.h
index 727cc0959..c78b9ef0a 100644
--- a/src/data/pokemon/level_up_learnsets.h
+++ b/src/data/pokemon/level_up_learnsets.h
@@ -1,5 +1,4 @@
#define LEVEL_UP_MOVE(lvl, move) ((lvl << 9) | move)
-#define LEVEL_UP_END 0xffff
static const u16 sBulbasaurLevelUpLearnset[] = {
LEVEL_UP_MOVE( 1, MOVE_TACKLE),
diff --git a/src/data/trainer_parties.h b/src/data/trainer_parties.h
index 252eed760..477967b95 100644
--- a/src/data/trainer_parties.h
+++ b/src/data/trainer_parties.h
@@ -6,7 +6,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Sawyer1[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt1[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout1[] = {
{
.iv = 0,
.lvl = 32,
@@ -14,7 +14,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt1[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt2[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout2[] = {
{
.iv = 0,
.lvl = 31,
@@ -27,7 +27,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt2[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt3[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout3[] = {
{
.iv = 0,
.lvl = 32,
@@ -35,7 +35,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt3[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt4[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout4[] = {
{
.iv = 0,
.lvl = 32,
@@ -43,7 +43,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt4[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt5[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSeafloorCavern1[] = {
{
.iv = 0,
.lvl = 36,
@@ -51,7 +51,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt5[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt6[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSeafloorCavern2[] = {
{
.iv = 0,
.lvl = 36,
@@ -59,7 +59,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt6[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt7[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSeafloorCavern3[] = {
{
.iv = 0,
.lvl = 36,
@@ -100,7 +100,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Gabrielle1[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt8[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntPetalburgWoods[] = {
{
.iv = 0,
.lvl = 9,
@@ -147,7 +147,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Ed[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt9[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSeafloorCavern4[] = {
{
.iv = 0,
.lvl = 36,
@@ -163,7 +163,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Declan[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt10[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntRusturfTunnel[] = {
{
.iv = 0,
.lvl = 11,
@@ -171,7 +171,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt10[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt11[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst1[] = {
{
.iv = 0,
.lvl = 27,
@@ -184,7 +184,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt11[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt12[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst2[] = {
{
.iv = 0,
.lvl = 27,
@@ -197,7 +197,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt12[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt13[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst3[] = {
{
.iv = 0,
.lvl = 26,
@@ -215,7 +215,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt13[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt14[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMuseum1[] = {
{
.iv = 0,
.lvl = 15,
@@ -223,7 +223,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt14[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt15[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMuseum2[] = {
{
.iv = 0,
.lvl = 14,
@@ -236,7 +236,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt15[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt16[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter1[] = {
{
.iv = 0,
.lvl = 32,
@@ -244,7 +244,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt16[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt17[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtPyre1[] = {
{
.iv = 0,
.lvl = 32,
@@ -252,7 +252,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt17[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt18[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtPyre2[] = {
{
.iv = 0,
.lvl = 32,
@@ -260,7 +260,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt18[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt19[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtPyre3[] = {
{
.iv = 0,
.lvl = 30,
@@ -273,7 +273,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt19[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt20[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst4[] = {
{
.iv = 0,
.lvl = 28,
@@ -281,7 +281,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt20[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt21[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout5[] = {
{
.iv = 0,
.lvl = 32,
@@ -289,7 +289,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt21[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt22[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout6[] = {
{
.iv = 0,
.lvl = 32,
@@ -1474,7 +1474,7 @@ static const struct TrainerMonItemCustomMoves sParty_Daphne[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt23[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter2[] = {
{
.iv = 0,
.lvl = 26,
@@ -1803,7 +1803,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Mark[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt24[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtChimney1[] = {
{
.iv = 0,
.lvl = 20,
@@ -2312,7 +2312,7 @@ static const struct TrainerMonNoItemCustomMoves sParty_Kirk[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt25[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout7[] = {
{
.iv = 0,
.lvl = 31,
@@ -2325,7 +2325,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt25[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt26[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntAquaHideout8[] = {
{
.iv = 0,
.lvl = 32,
@@ -7594,7 +7594,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Julio[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt27[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSeafloorCavern5[] = {
{
.iv = 50,
.lvl = 35,
@@ -7607,7 +7607,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt27[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt28[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntUnused[] = {
{
.iv = 0,
.lvl = 31,
@@ -7620,7 +7620,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt28[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt29[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtPyre4[] = {
{
.iv = 0,
.lvl = 30,
@@ -7633,7 +7633,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt29[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt30[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntJaggedPass[] = {
{
.iv = 50,
.lvl = 22,
@@ -7724,7 +7724,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Harrison[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt31[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMtChimney2[] = {
{
.iv = 0,
.lvl = 20,
@@ -7780,7 +7780,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Nicholas[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt32[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter3[] = {
{
.iv = 0,
.lvl = 31,
@@ -7793,7 +7793,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt32[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt33[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter4[] = {
{
.iv = 0,
.lvl = 32,
@@ -7801,7 +7801,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt33[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt34[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter5[] = {
{
.iv = 0,
.lvl = 32,
@@ -7809,7 +7809,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt34[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt35[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter6[] = {
{
.iv = 0,
.lvl = 32,
@@ -7817,7 +7817,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt35[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt36[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntSpaceCenter7[] = {
{
.iv = 0,
.lvl = 32,
@@ -7880,7 +7880,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Isabella[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt37[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntWeatherInst5[] = {
{
.iv = 0,
.lvl = 27,
@@ -9645,7 +9645,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Deandre[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt38[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout1[] = {
{
.iv = 0,
.lvl = 29,
@@ -9653,7 +9653,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt38[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt39[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout2[] = {
{
.iv = 0,
.lvl = 29,
@@ -9661,7 +9661,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt39[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt40[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout3[] = {
{
.iv = 0,
.lvl = 29,
@@ -9669,7 +9669,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt40[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt41[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout4[] = {
{
.iv = 0,
.lvl = 28,
@@ -9682,7 +9682,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt41[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt42[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout5[] = {
{
.iv = 0,
.lvl = 28,
@@ -9695,7 +9695,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt42[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt43[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout6[] = {
{
.iv = 0,
.lvl = 29,
@@ -9703,7 +9703,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt43[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt44[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout7[] = {
{
.iv = 0,
.lvl = 29,
@@ -9711,7 +9711,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt44[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt45[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout8[] = {
{
.iv = 0,
.lvl = 29,
@@ -9719,7 +9719,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt45[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt46[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout9[] = {
{
.iv = 0,
.lvl = 29,
@@ -9727,7 +9727,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt46[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt47[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout10[] = {
{
.iv = 0,
.lvl = 29,
@@ -9735,7 +9735,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt47[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt48[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout11[] = {
{
.iv = 0,
.lvl = 29,
@@ -9743,7 +9743,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt48[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt49[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout12[] = {
{
.iv = 0,
.lvl = 29,
@@ -9751,7 +9751,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt49[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt50[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout13[] = {
{
.iv = 0,
.lvl = 29,
@@ -9759,7 +9759,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt50[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt51[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout14[] = {
{
.iv = 0,
.lvl = 29,
@@ -9767,7 +9767,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt51[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt52[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout15[] = {
{
.iv = 0,
.lvl = 29,
@@ -9775,7 +9775,7 @@ static const struct TrainerMonNoItemDefaultMoves sParty_Grunt52[] = {
}
};
-static const struct TrainerMonNoItemDefaultMoves sParty_Grunt53[] = {
+static const struct TrainerMonNoItemDefaultMoves sParty_GruntMagmaHideout16[] = {
{
.iv = 0,
.lvl = 29,
diff --git a/src/data/trainers.h b/src/data/trainers.h
index c30d21afd..327107007 100644
--- a/src/data/trainers.h
+++ b/src/data/trainers.h
@@ -27,7 +27,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Sawyer1},
},
- [TRAINER_GRUNT_1] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -37,11 +37,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt1),
- .party = {.NoItemDefaultMoves = sParty_Grunt1},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout1),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout1},
},
- [TRAINER_GRUNT_2] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -51,11 +51,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt2),
- .party = {.NoItemDefaultMoves = sParty_Grunt2},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout2),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout2},
},
- [TRAINER_GRUNT_3] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -65,11 +65,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt3),
- .party = {.NoItemDefaultMoves = sParty_Grunt3},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout3),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout3},
},
- [TRAINER_GRUNT_4] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -79,11 +79,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt4),
- .party = {.NoItemDefaultMoves = sParty_Grunt4},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout4),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout4},
},
- [TRAINER_GRUNT_5] =
+ [TRAINER_GRUNT_SEAFLOOR_CAVERN_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -93,11 +93,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt5),
- .party = {.NoItemDefaultMoves = sParty_Grunt5},
+ .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern1),
+ .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern1},
},
- [TRAINER_GRUNT_6] =
+ [TRAINER_GRUNT_SEAFLOOR_CAVERN_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -107,11 +107,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt6),
- .party = {.NoItemDefaultMoves = sParty_Grunt6},
+ .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern2),
+ .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern2},
},
- [TRAINER_GRUNT_7] =
+ [TRAINER_GRUNT_SEAFLOOR_CAVERN_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -121,8 +121,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt7),
- .party = {.NoItemDefaultMoves = sParty_Grunt7},
+ .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern3),
+ .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern3},
},
[TRAINER_GABRIELLE_1] =
@@ -139,7 +139,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Gabrielle1},
},
- [TRAINER_GRUNT_8] =
+ [TRAINER_GRUNT_PETALBURG_WOODS] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -149,8 +149,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt8),
- .party = {.NoItemDefaultMoves = sParty_Grunt8},
+ .partySize = ARRAY_COUNT(sParty_GruntPetalburgWoods),
+ .party = {.NoItemDefaultMoves = sParty_GruntPetalburgWoods},
},
[TRAINER_MARCEL] =
@@ -195,7 +195,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Ed},
},
- [TRAINER_GRUNT_9] =
+ [TRAINER_GRUNT_SEAFLOOR_CAVERN_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -205,8 +205,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt9),
- .party = {.NoItemDefaultMoves = sParty_Grunt9},
+ .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern4),
+ .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern4},
},
[TRAINER_DECLAN] =
@@ -223,7 +223,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Declan},
},
- [TRAINER_GRUNT_10] =
+ [TRAINER_GRUNT_RUSTURF_TUNNEL] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -233,11 +233,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt10),
- .party = {.NoItemDefaultMoves = sParty_Grunt10},
+ .partySize = ARRAY_COUNT(sParty_GruntRusturfTunnel),
+ .party = {.NoItemDefaultMoves = sParty_GruntRusturfTunnel},
},
- [TRAINER_GRUNT_11] =
+ [TRAINER_GRUNT_WEATHER_INST_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -247,11 +247,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt11),
- .party = {.NoItemDefaultMoves = sParty_Grunt11},
+ .partySize = ARRAY_COUNT(sParty_GruntWeatherInst1),
+ .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst1},
},
- [TRAINER_GRUNT_12] =
+ [TRAINER_GRUNT_WEATHER_INST_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -261,11 +261,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt12),
- .party = {.NoItemDefaultMoves = sParty_Grunt12},
+ .partySize = ARRAY_COUNT(sParty_GruntWeatherInst2),
+ .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst2},
},
- [TRAINER_GRUNT_13] =
+ [TRAINER_GRUNT_WEATHER_INST_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -275,11 +275,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt13),
- .party = {.NoItemDefaultMoves = sParty_Grunt13},
+ .partySize = ARRAY_COUNT(sParty_GruntWeatherInst3),
+ .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst3},
},
- [TRAINER_GRUNT_14] =
+ [TRAINER_GRUNT_MUSEUM_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -289,11 +289,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt14),
- .party = {.NoItemDefaultMoves = sParty_Grunt14},
+ .partySize = ARRAY_COUNT(sParty_GruntMuseum1),
+ .party = {.NoItemDefaultMoves = sParty_GruntMuseum1},
},
- [TRAINER_GRUNT_15] =
+ [TRAINER_GRUNT_MUSEUM_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -303,11 +303,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt15),
- .party = {.NoItemDefaultMoves = sParty_Grunt15},
+ .partySize = ARRAY_COUNT(sParty_GruntMuseum2),
+ .party = {.NoItemDefaultMoves = sParty_GruntMuseum2},
},
- [TRAINER_GRUNT_16] =
+ [TRAINER_GRUNT_SPACE_CENTER_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -317,11 +317,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt16),
- .party = {.NoItemDefaultMoves = sParty_Grunt16},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter1),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter1},
},
- [TRAINER_GRUNT_17] =
+ [TRAINER_GRUNT_MT_PYRE_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -331,11 +331,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt17),
- .party = {.NoItemDefaultMoves = sParty_Grunt17},
+ .partySize = ARRAY_COUNT(sParty_GruntMtPyre1),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtPyre1},
},
- [TRAINER_GRUNT_18] =
+ [TRAINER_GRUNT_MT_PYRE_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -345,11 +345,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt18),
- .party = {.NoItemDefaultMoves = sParty_Grunt18},
+ .partySize = ARRAY_COUNT(sParty_GruntMtPyre2),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtPyre2},
},
- [TRAINER_GRUNT_19] =
+ [TRAINER_GRUNT_MT_PYRE_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -359,11 +359,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt19),
- .party = {.NoItemDefaultMoves = sParty_Grunt19},
+ .partySize = ARRAY_COUNT(sParty_GruntMtPyre3),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtPyre3},
},
- [TRAINER_GRUNT_20] =
+ [TRAINER_GRUNT_WEATHER_INST_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -373,11 +373,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt20),
- .party = {.NoItemDefaultMoves = sParty_Grunt20},
+ .partySize = ARRAY_COUNT(sParty_GruntWeatherInst4),
+ .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst4},
},
- [TRAINER_GRUNT_21] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_5] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -387,11 +387,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt21),
- .party = {.NoItemDefaultMoves = sParty_Grunt21},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout5),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout5},
},
- [TRAINER_GRUNT_22] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_6] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -401,8 +401,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt22),
- .party = {.NoItemDefaultMoves = sParty_Grunt22},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout6),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout6},
},
[TRAINER_FREDRICK] =
@@ -1623,7 +1623,7 @@ const struct Trainer gTrainers[] = {
.party = {.ItemCustomMoves = sParty_Daphne},
},
- [TRAINER_GRUNT_23] =
+ [TRAINER_GRUNT_SPACE_CENTER_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -1633,8 +1633,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt23),
- .party = {.NoItemDefaultMoves = sParty_Grunt23},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter2),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter2},
},
[TRAINER_CINDY_2] =
@@ -2043,7 +2043,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Mark},
},
- [TRAINER_GRUNT_24] =
+ [TRAINER_GRUNT_MT_CHIMNEY_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -2053,8 +2053,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt24),
- .party = {.NoItemDefaultMoves = sParty_Grunt24},
+ .partySize = ARRAY_COUNT(sParty_GruntMtChimney1),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtChimney1},
},
[TRAINER_STEVE_2] =
@@ -2687,7 +2687,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemCustomMoves = sParty_Kirk},
},
- [TRAINER_GRUNT_25] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_7] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -2697,11 +2697,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt25),
- .party = {.NoItemDefaultMoves = sParty_Grunt25},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout7),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout7},
},
- [TRAINER_GRUNT_26] =
+ [TRAINER_GRUNT_AQUA_HIDEOUT_8] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -2711,8 +2711,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt26),
- .party = {.NoItemDefaultMoves = sParty_Grunt26},
+ .partySize = ARRAY_COUNT(sParty_GruntAquaHideout8),
+ .party = {.NoItemDefaultMoves = sParty_GruntAquaHideout8},
},
[TRAINER_SHAWN] =
@@ -7937,7 +7937,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Julio},
},
- [TRAINER_GRUNT_27] =
+ [TRAINER_GRUNT_SEAFLOOR_CAVERN_5] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -7947,11 +7947,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt27),
- .party = {.NoItemDefaultMoves = sParty_Grunt27},
+ .partySize = ARRAY_COUNT(sParty_GruntSeafloorCavern5),
+ .party = {.NoItemDefaultMoves = sParty_GruntSeafloorCavern5},
},
- [TRAINER_GRUNT_28] =
+ [TRAINER_GRUNT_UNUSED] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -7961,11 +7961,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt28),
- .party = {.NoItemDefaultMoves = sParty_Grunt28},
+ .partySize = ARRAY_COUNT(sParty_GruntUnused),
+ .party = {.NoItemDefaultMoves = sParty_GruntUnused},
},
- [TRAINER_GRUNT_29] =
+ [TRAINER_GRUNT_MT_PYRE_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -7975,11 +7975,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt29),
- .party = {.NoItemDefaultMoves = sParty_Grunt29},
+ .partySize = ARRAY_COUNT(sParty_GruntMtPyre4),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtPyre4},
},
- [TRAINER_GRUNT_30] =
+ [TRAINER_GRUNT_JAGGED_PASS] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -7989,8 +7989,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt30),
- .party = {.NoItemDefaultMoves = sParty_Grunt30},
+ .partySize = ARRAY_COUNT(sParty_GruntJaggedPass),
+ .party = {.NoItemDefaultMoves = sParty_GruntJaggedPass},
},
[TRAINER_MARC] =
@@ -8105,7 +8105,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Harrison},
},
- [TRAINER_GRUNT_31] =
+ [TRAINER_GRUNT_MT_CHIMNEY_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8115,8 +8115,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt31),
- .party = {.NoItemDefaultMoves = sParty_Grunt31},
+ .partySize = ARRAY_COUNT(sParty_GruntMtChimney2),
+ .party = {.NoItemDefaultMoves = sParty_GruntMtChimney2},
},
[TRAINER_CLARENCE] =
@@ -8203,7 +8203,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Nicholas},
},
- [TRAINER_GRUNT_32] =
+ [TRAINER_GRUNT_SPACE_CENTER_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8213,11 +8213,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt32),
- .party = {.NoItemDefaultMoves = sParty_Grunt32},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter3),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter3},
},
- [TRAINER_GRUNT_33] =
+ [TRAINER_GRUNT_SPACE_CENTER_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8227,11 +8227,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt33),
- .party = {.NoItemDefaultMoves = sParty_Grunt33},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter4),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter4},
},
- [TRAINER_GRUNT_34] =
+ [TRAINER_GRUNT_SPACE_CENTER_5] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8241,11 +8241,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt34),
- .party = {.NoItemDefaultMoves = sParty_Grunt34},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter5),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter5},
},
- [TRAINER_GRUNT_35] =
+ [TRAINER_GRUNT_SPACE_CENTER_6] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8255,11 +8255,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt35),
- .party = {.NoItemDefaultMoves = sParty_Grunt35},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter6),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter6},
},
- [TRAINER_GRUNT_36] =
+ [TRAINER_GRUNT_SPACE_CENTER_7] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -8269,8 +8269,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt36),
- .party = {.NoItemDefaultMoves = sParty_Grunt36},
+ .partySize = ARRAY_COUNT(sParty_GruntSpaceCenter7),
+ .party = {.NoItemDefaultMoves = sParty_GruntSpaceCenter7},
},
[TRAINER_MACEY] =
@@ -8343,7 +8343,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Isabella},
},
- [TRAINER_GRUNT_37] =
+ [TRAINER_GRUNT_WEATHER_INST_5] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_AQUA,
@@ -8353,8 +8353,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt37),
- .party = {.NoItemDefaultMoves = sParty_Grunt37},
+ .partySize = ARRAY_COUNT(sParty_GruntWeatherInst5),
+ .party = {.NoItemDefaultMoves = sParty_GruntWeatherInst5},
},
[TRAINER_TABITHA_2] =
@@ -10023,7 +10023,7 @@ const struct Trainer gTrainers[] = {
.party = {.NoItemDefaultMoves = sParty_Deandre},
},
- [TRAINER_GRUNT_38] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_1] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10033,11 +10033,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt38),
- .party = {.NoItemDefaultMoves = sParty_Grunt38},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout1),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout1},
},
- [TRAINER_GRUNT_39] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_2] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10047,11 +10047,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt39),
- .party = {.NoItemDefaultMoves = sParty_Grunt39},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout2),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout2},
},
- [TRAINER_GRUNT_40] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_3] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10061,11 +10061,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt40),
- .party = {.NoItemDefaultMoves = sParty_Grunt40},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout3),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout3},
},
- [TRAINER_GRUNT_41] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_4] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10075,11 +10075,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt41),
- .party = {.NoItemDefaultMoves = sParty_Grunt41},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout4),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout4},
},
- [TRAINER_GRUNT_42] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_5] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10089,11 +10089,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt42),
- .party = {.NoItemDefaultMoves = sParty_Grunt42},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout5),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout5},
},
- [TRAINER_GRUNT_43] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_6] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10103,11 +10103,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt43),
- .party = {.NoItemDefaultMoves = sParty_Grunt43},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout6),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout6},
},
- [TRAINER_GRUNT_44] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_7] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10117,11 +10117,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt44),
- .party = {.NoItemDefaultMoves = sParty_Grunt44},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout7),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout7},
},
- [TRAINER_GRUNT_45] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_8] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10131,11 +10131,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt45),
- .party = {.NoItemDefaultMoves = sParty_Grunt45},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout8),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout8},
},
- [TRAINER_GRUNT_46] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_9] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10145,11 +10145,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt46),
- .party = {.NoItemDefaultMoves = sParty_Grunt46},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout9),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout9},
},
- [TRAINER_GRUNT_47] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_10] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10159,11 +10159,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt47),
- .party = {.NoItemDefaultMoves = sParty_Grunt47},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout10),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout10},
},
- [TRAINER_GRUNT_48] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_11] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10173,11 +10173,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt48),
- .party = {.NoItemDefaultMoves = sParty_Grunt48},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout11),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout11},
},
- [TRAINER_GRUNT_49] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_12] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10187,11 +10187,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt49),
- .party = {.NoItemDefaultMoves = sParty_Grunt49},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout12),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout12},
},
- [TRAINER_GRUNT_50] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_13] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10201,11 +10201,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt50),
- .party = {.NoItemDefaultMoves = sParty_Grunt50},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout13),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout13},
},
- [TRAINER_GRUNT_51] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_14] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10215,11 +10215,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt51),
- .party = {.NoItemDefaultMoves = sParty_Grunt51},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout14),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout14},
},
- [TRAINER_GRUNT_52] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_15] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10229,11 +10229,11 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt52),
- .party = {.NoItemDefaultMoves = sParty_Grunt52},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout15),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout15},
},
- [TRAINER_GRUNT_53] =
+ [TRAINER_GRUNT_MAGMA_HIDEOUT_16] =
{
.partyFlags = 0,
.trainerClass = TRAINER_CLASS_TEAM_MAGMA,
@@ -10243,8 +10243,8 @@ const struct Trainer gTrainers[] = {
.items = {},
.doubleBattle = FALSE,
.aiFlags = AI_SCRIPT_CHECK_BAD_MOVE,
- .partySize = ARRAY_COUNT(sParty_Grunt53),
- .party = {.NoItemDefaultMoves = sParty_Grunt53},
+ .partySize = ARRAY_COUNT(sParty_GruntMagmaHideout16),
+ .party = {.NoItemDefaultMoves = sParty_GruntMagmaHideout16},
},
[TRAINER_TABITHA_3] =
diff --git a/src/data/union_room.h b/src/data/union_room.h
index abe91b010..de155aee8 100644
--- a/src/data/union_room.h
+++ b/src/data/union_room.h
@@ -440,7 +440,7 @@ ALIGNED(4) const u8 sText_CancelRegistrationOfMon[] = _("Cancel the registration
ALIGNED(4) const u8 sText_CancelRegistrationOfEgg[] = _("Cancel the registration of your\nEGG?");
ALIGNED(4) const u8 sText_RegistrationCanceled2[] = _("The registration has been canceled.\p");
ALIGNED(4) const u8 sText_TradeTrainersWillBeListed[] = _("TRAINERS wishing to make a trade\nwill be listed."); // unused
-ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused
+ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith2[] = _("Please choose the TRAINER with whom\nyou would like to trade POKéMON."); // unused
ALIGNED(4) const u8 sText_AskTrainerToMakeTrade[] = _("Would you like to ask {STR_VAR_1} to\nmake a trade?");
ALIGNED(4) const u8 sText_AwaitingResponseFromTrainer[] = _("Awaiting a response from\nthe other TRAINER…"); // unused
ALIGNED(4) const u8 sText_NotRegisteredAMonForTrade[] = _("You have not registered a POKéMON\nfor trading.\p"); // unused
@@ -457,50 +457,51 @@ const u8 *const sUnionRoomTexts_CantTradeRightNow[] = {
ALIGNED(4) const u8 sText_TradeOfferRejected[] = _("Your trade offer was rejected.\p");
ALIGNED(4) const u8 sText_EggTrade[] = _("EGG TRADE");
-ALIGNED(4) const u8 gUnknown_082EF7DC[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL");
-ALIGNED(4) const u8 gUnknown_082EF7F8[] = _("Please choose a TRAINER.");
-ALIGNED(4) const u8 gUnknown_082EF814[] = _("Please choose a TRAINER for\na SINGLE BATTLE.");
-ALIGNED(4) const u8 gUnknown_082EF844[] = _("Please choose a TRAINER for\na DOUBLE BATTLE.");
-ALIGNED(4) const u8 gUnknown_082EF874[] = _("Please choose the LEADER\nfor a MULTI BATTLE.");
-ALIGNED(4) const u8 gUnknown_082EF8A4[] = _("Please choose the TRAINER to\ntrade with.");
-ALIGNED(4) const u8 gUnknown_082EF8D0[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS.");
-ALIGNED(4) const u8 gUnknown_082EF908[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS.");
-ALIGNED(4) const u8 gUnknown_082EF940[] = _("Jump with mini POKéMON!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EF974[] = _("BERRY CRUSH!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EF99C[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EF9CC[] = _("BERRY BLENDER!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EF9F8[] = _("RECORD CORNER!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFA24[] = _("COOLNESS CONTEST!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFA50[] = _("BEAUTY CONTEST!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFA7C[] = _("CUTENESS CONTEST!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFAA8[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFAD8[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFB08[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER.");
-ALIGNED(4) const u8 gUnknown_082EFB3C[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER.");
-
-const u8 *const gUnknown_082EFB70[] = {
- gUnknown_082EF814,
- gUnknown_082EF844,
- gUnknown_082EF874,
- gUnknown_082EF8A4,
- gUnknown_082EF940,
- gUnknown_082EF974,
- gUnknown_082EF99C,
- gUnknown_082EF8D0,
- gUnknown_082EF908,
- NULL,
- NULL,
- NULL,
- gUnknown_082EF9F8,
- gUnknown_082EF9CC,
- NULL,
- gUnknown_082EFA24,
- gUnknown_082EFA50,
- gUnknown_082EFA7C,
- gUnknown_082EFAA8,
- gUnknown_082EFAD8,
- gUnknown_082EFB08,
- gUnknown_082EFB3C
+ALIGNED(4) const u8 sText_ChooseJoinCancel[] = _("{DPAD_UPDOWN}CHOOSE {A_BUTTON}JOIN {B_BUTTON}CANCEL");
+ALIGNED(4) const u8 sText_ChooseTrainer[] = _("Please choose a TRAINER.");
+ALIGNED(4) const u8 sText_ChooseTrainerSingleBattle[] = _("Please choose a TRAINER for\na SINGLE BATTLE.");
+ALIGNED(4) const u8 sText_ChooseTrainerDoubleBattle[] = _("Please choose a TRAINER for\na DOUBLE BATTLE.");
+ALIGNED(4) const u8 sText_ChooseLeaderMultiBattle[] = _("Please choose the LEADER\nfor a MULTI BATTLE.");
+ALIGNED(4) const u8 sText_ChooseTrainerToTradeWith[] = _("Please choose the TRAINER to\ntrade with.");
+ALIGNED(4) const u8 sText_ChooseTrainerToShareWonderCards[] = _("Please choose the TRAINER who is\nsharing WONDER CARDS.");
+ALIGNED(4) const u8 sText_ChooseTrainerToShareWonderNews[] = _("Please choose the TRAINER who is\nsharing WONDER NEWS.");
+ALIGNED(4) const u8 sText_ChooseLeaderPokemonJump[] = _("Jump with mini POKéMON!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBerryCrush[] = _("BERRY CRUSH!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBerryPicking[] = _("DODRIO BERRY-PICKING!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBerryBlender[] = _("BERRY BLENDER!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderRecordCorner[] = _("RECORD CORNER!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderCoolContest[] = _("COOLNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBeautyContest[] = _("BEAUTY CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderCuteContest[] = _("CUTENESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderSmartContest[] = _("SMARTNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderToughContest[] = _("TOUGHNESS CONTEST!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBattleTowerLv50[] = _("BATTLE TOWER LEVEL 50!\nPlease choose the LEADER.");
+ALIGNED(4) const u8 sText_ChooseLeaderBattleTowerOpenLv[] = _("BATTLE TOWER OPEN LEVEL!\nPlease choose the LEADER.");
+
+static const u8 *const sChooseTrainerTexts[NUM_LINK_GROUP_TYPES] =
+{
+ [LINK_GROUP_SINGLE_BATTLE] = sText_ChooseTrainerSingleBattle,
+ [LINK_GROUP_DOUBLE_BATTLE] = sText_ChooseTrainerDoubleBattle,
+ [LINK_GROUP_MULTI_BATTLE] = sText_ChooseLeaderMultiBattle,
+ [LINK_GROUP_TRADE] = sText_ChooseTrainerToTradeWith,
+ [LINK_GROUP_POKEMON_JUMP] = sText_ChooseLeaderPokemonJump,
+ [LINK_GROUP_BERRY_CRUSH] = sText_ChooseLeaderBerryCrush,
+ [LINK_GROUP_BERRY_PICKING] = sText_ChooseLeaderBerryPicking,
+ [LINK_GROUP_WONDER_CARD] = sText_ChooseTrainerToShareWonderCards,
+ [LINK_GROUP_WONDER_NEWS] = sText_ChooseTrainerToShareWonderNews,
+ [LINK_GROUP_UNK_9] = NULL,
+ [LINK_GROUP_UNK_10] = NULL,
+ [LINK_GROUP_UNK_11] = NULL,
+ [LINK_GROUP_RECORD_CORNER] = sText_ChooseLeaderRecordCorner,
+ [LINK_GROUP_BERRY_BLENDER] = sText_ChooseLeaderBerryBlender,
+ [LINK_GROUP_UNK_14] = NULL,
+ [LINK_GROUP_COOL_CONTEST] = sText_ChooseLeaderCoolContest,
+ [LINK_GROUP_BEAUTY_CONTEST] = sText_ChooseLeaderBeautyContest,
+ [LINK_GROUP_CUTE_CONTEST] = sText_ChooseLeaderCuteContest,
+ [LINK_GROUP_SMART_CONTEST] = sText_ChooseLeaderSmartContest,
+ [LINK_GROUP_TOUGH_CONTEST] = sText_ChooseLeaderToughContest,
+ [LINK_GROUP_BATTLE_TOWER] = sText_ChooseLeaderBattleTowerLv50,
+ [LINK_GROUP_BATTLE_TOWER_OPEN] = sText_ChooseLeaderBattleTowerOpenLv
};
ALIGNED(4) const u8 gUnknown_082EFBC8[] = _("Searching for a WIRELESS\nCOMMUNICATION SYSTEM. Wait...");
@@ -524,39 +525,39 @@ ALIGNED(4) const u8 gUnknown_082EFD7C[] = _("EXIT");
ALIGNED(4) const u8 gUnknown_082EFD84[] = _("EXIT");
ALIGNED(4) const u8 gUnknown_082EFD8C[] = _("INFO");
ALIGNED(4) const u8 gUnknown_082EFD94[] = _("NAME{CLEAR_TO 0x3C}WANTED{CLEAR_TO 0x6E}OFFER{CLEAR_TO 0xC6}LV.");
-ALIGNED(4) const u8 gUnknown_082EFDB0[] = _("SINGLE BATTLE");
-ALIGNED(4) const u8 gUnknown_082EFDC0[] = _("DOUBLE BATTLE");
-ALIGNED(4) const u8 gUnknown_082EFDD0[] = _("MULTI BATTLE");
-ALIGNED(4) const u8 gUnknown_082EFDE0[] = _("POKéMON TRADES");
-ALIGNED(4) const u8 gUnknown_082EFDF0[] = _("CHAT");
-ALIGNED(4) const u8 gUnknown_082EFDF8[] = _("CARDS");
-ALIGNED(4) const u8 gUnknown_082EFE00[] = _("WONDER CARDS");
-ALIGNED(4) const u8 gUnknown_082EFE10[] = _("WONDER NEWS");
-ALIGNED(4) const u8 gUnknown_082EFE1C[] = _("POKéMON JUMP");
-ALIGNED(4) const u8 gUnknown_082EFE2C[] = _("BERRY CRUSH");
-ALIGNED(4) const u8 gUnknown_082EFE38[] = _("BERRY-PICKING");
-ALIGNED(4) const u8 gUnknown_082EFE48[] = _("SEARCH");
-ALIGNED(4) const u8 gUnknown_082EFE50[] = _("BERRY BLENDER");
-ALIGNED(4) const u8 gUnknown_082EFE60[] = _("RECORD CORNER");
-ALIGNED(4) const u8 gUnknown_082EFE70[] = _("COOL CONTEST");
-ALIGNED(4) const u8 gUnknown_082EFE80[] = _("BEAUTY CONTEST");
-ALIGNED(4) const u8 gUnknown_082EFE90[] = _("CUTE CONTEST");
-ALIGNED(4) const u8 gUnknown_082EFEA0[] = _("SMART CONTEST");
-ALIGNED(4) const u8 gUnknown_082EFEB0[] = _("TOUGH CONTEST");
-ALIGNED(4) const u8 gUnknown_082EFEC0[] = _("BATTLE TOWER LV. 50");
-ALIGNED(4) const u8 gUnknown_082EFED4[] = _("BATTLE TOWER OPEN LEVEL");
-ALIGNED(4) const u8 gUnknown_082EFEEC[] = _("It's a NORMAL CARD.");
-ALIGNED(4) const u8 gUnknown_082EFF00[] = _("It's a BRONZE CARD!");
-ALIGNED(4) const u8 gUnknown_082EFF14[] = _("It's a COPPER CARD!");
-ALIGNED(4) const u8 gUnknown_082EFF28[] = _("It's a SILVER CARD!");
-ALIGNED(4) const u8 gUnknown_082EFF3C[] = _("It's a GOLD CARD!");
-
-const u8 *const gUnknown_082EFF50[] = {
- gUnknown_082EFEEC,
- gUnknown_082EFF00,
- gUnknown_082EFF14,
- gUnknown_082EFF28,
- gUnknown_082EFF3C
+ALIGNED(4) const u8 sText_SingleBattle[] = _("SINGLE BATTLE");
+ALIGNED(4) const u8 sText_DoubleBattle[] = _("DOUBLE BATTLE");
+ALIGNED(4) const u8 sText_MultiBattle[] = _("MULTI BATTLE");
+ALIGNED(4) const u8 sText_PokemonTrades[] = _("POKéMON TRADES");
+ALIGNED(4) const u8 sText_Chat[] = _("CHAT");
+ALIGNED(4) const u8 sText_Cards[] = _("CARDS");
+ALIGNED(4) const u8 sText_WonderCards[] = _("WONDER CARDS");
+ALIGNED(4) const u8 sText_WonderNews[] = _("WONDER NEWS");
+ALIGNED(4) const u8 sText_PokemonJump[] = _("POKéMON JUMP");
+ALIGNED(4) const u8 sText_BerryCrush[] = _("BERRY CRUSH");
+ALIGNED(4) const u8 sText_BerryPicking[] = _("BERRY-PICKING");
+ALIGNED(4) const u8 sText_Search[] = _("SEARCH");
+ALIGNED(4) const u8 sText_BerryBlender[] = _("BERRY BLENDER");
+ALIGNED(4) const u8 sText_RecordCorner[] = _("RECORD CORNER");
+ALIGNED(4) const u8 sText_CoolContest[] = _("COOL CONTEST");
+ALIGNED(4) const u8 sText_BeautyContest[] = _("BEAUTY CONTEST");
+ALIGNED(4) const u8 sText_CuteContest[] = _("CUTE CONTEST");
+ALIGNED(4) const u8 sText_SmartContest[] = _("SMART CONTEST");
+ALIGNED(4) const u8 sText_ToughContest[] = _("TOUGH CONTEST");
+ALIGNED(4) const u8 sText_BattleTowerLv50[] = _("BATTLE TOWER LV. 50");
+ALIGNED(4) const u8 sText_BattleTowerOpenLv[] = _("BATTLE TOWER OPEN LEVEL");
+ALIGNED(4) const u8 sText_ItsNormalCard[] = _("It's a NORMAL CARD.");
+ALIGNED(4) const u8 sText_ItsBronzeCard[] = _("It's a BRONZE CARD!");
+ALIGNED(4) const u8 sText_ItsCopperCard[] = _("It's a COPPER CARD!");
+ALIGNED(4) const u8 sText_ItsSilverCard[] = _("It's a SILVER CARD!");
+ALIGNED(4) const u8 sText_ItsGoldCard[] = _("It's a GOLD CARD!");
+
+static const u8 *const sCardColorTexts[] = {
+ sText_ItsNormalCard,
+ sText_ItsBronzeCard,
+ sText_ItsCopperCard,
+ sText_ItsSilverCard,
+ sText_ItsGoldCard
};
ALIGNED(4) const u8 gUnknown_082EFF64[] = _("This is {SPECIAL_F7 0x00} {SPECIAL_F7 0x01}'s\nTRAINER CARD…\l{SPECIAL_F7 0x02}\pPOKéDEX: {SPECIAL_F7 0x03}\nTIME: {SPECIAL_F7 0x04}:{SPECIAL_F7 0x05}\p");
@@ -573,34 +574,34 @@ ALIGNED(4) const u8 gUnknown_082F0020[] = _("Finished checking {SPECIAL_F7 0x01}
const u8 *const gUnknown_082F0048[] = {
gText_EmptyString,
- gUnknown_082EFDB0,
- gUnknown_082EFDC0,
- gUnknown_082EFDD0,
- gUnknown_082EFDE0,
- gUnknown_082EFDF0,
- gUnknown_082EFE00,
- gUnknown_082EFE10,
- gUnknown_082EFDF8,
- gUnknown_082EFE1C,
- gUnknown_082EFE2C,
- gUnknown_082EFE38,
- gUnknown_082EFE48,
+ sText_SingleBattle,
+ sText_DoubleBattle,
+ sText_MultiBattle,
+ sText_PokemonTrades,
+ sText_Chat,
+ sText_WonderCards,
+ sText_WonderNews,
+ sText_Cards,
+ sText_PokemonJump,
+ sText_BerryCrush,
+ sText_BerryPicking,
+ sText_Search,
gText_EmptyString,
- gUnknown_082EFED4,
- gUnknown_082EFE60,
- gUnknown_082EFE50,
+ sText_BattleTowerOpenLv,
+ sText_RecordCorner,
+ sText_BerryBlender,
gText_EmptyString,
gText_EmptyString,
gText_EmptyString,
gText_EmptyString,
- gUnknown_082EFE00,
- gUnknown_082EFE10,
- gUnknown_082EFE70,
- gUnknown_082EFE80,
- gUnknown_082EFE90,
- gUnknown_082EFEA0,
- gUnknown_082EFEB0,
- gUnknown_082EFEC0
+ sText_WonderCards,
+ sText_WonderNews,
+ sText_CoolContest,
+ sText_BeautyContest,
+ sText_CuteContest,
+ sText_SmartContest,
+ sText_ToughContest,
+ sText_BattleTowerLv50
};
const struct WindowTemplate gUnknown_082F00BC = {
@@ -613,7 +614,7 @@ const struct WindowTemplate gUnknown_082F00BC = {
.baseBlock = 0x0008
};
-const u32 gUnknown_082F00C4[] = {
+const u32 gUnknown_082F00C4[NUM_LINK_GROUP_TYPES] = {
0x0201,
0x0202,
0x0403,
@@ -1012,7 +1013,7 @@ ALIGNED(4) const u8 gUnknown_082F04CC[] = {0x1b, 0xff};
ALIGNED(4) const u8 gUnknown_082F04D0[] = {0x1c, 0xff};
ALIGNED(4) const u8 gUnknown_082F04D4[] = {0x0e, 0xff};
-const u8 *const gUnknown_082F04D8[] = {
+const u8 *const gUnknown_082F04D8[NUM_LINK_GROUP_TYPES] = {
gUnknown_082F0474,
gUnknown_082F0478,
gUnknown_082F047C,
@@ -1037,8 +1038,29 @@ const u8 *const gUnknown_082F04D8[] = {
gUnknown_082F04D4
};
-const u8 gUnknown_082F0530[] = {
- 0x01, 0x02, 0x03, 0x04, 0x09, 0x0a, 0x0b, 0x15,
- 0x16, 0x00, 0x00, 0x00, 0x0f, 0x10, 0x00, 0x17,
- 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x0e, 0x00, 0x00
+// Link group type to ID for gUnknown_02022C2C
+const u8 gUnknown_082F0530[NUM_LINK_GROUP_TYPES + 2] =
+{
+ 0x01,
+ 0x02,
+ 0x03,
+ 0x04,
+ 0x09,
+ 0x0a,
+ 0x0b,
+ 0x15,
+ 0x16,
+ 0x00,
+ 0x00,
+ 0x00,
+ 0x0f,
+ 0x10,
+ 0x00,
+ 0x17,
+ 0x18,
+ 0x19,
+ 0x1a,
+ 0x1b,
+ 0x1c,
+ 0x0e
};