diff options
Diffstat (limited to 'src/data')
-rw-r--r-- | src/data/battle_frontier/apprentice.h | 982 | ||||
-rw-r--r-- | src/data/battle_frontier/battle_frontier_exchange_corner.h | 60 | ||||
-rw-r--r-- | src/data/battle_frontier/trainer_hill.h | 129 | ||||
-rw-r--r-- | src/data/contest_text_tables.h | 765 | ||||
-rwxr-xr-x | src/data/field_event_obj/event_object_graphics_info_pointers.h | 14 | ||||
-rw-r--r-- | src/data/party_menu.h | 1255 | ||||
-rw-r--r-- | src/data/pokemon/level_up_learnsets.h | 1 | ||||
-rw-r--r-- | src/data/trainer_parties.h | 106 | ||||
-rw-r--r-- | src/data/trainers.h | 318 | ||||
-rw-r--r-- | src/data/union_room.h | 236 |
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 }; |