summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/battle_setup.c6
-rw-r--r--src/data/text/match_call_messages.h787
-rw-r--r--src/daycare.c4
-rw-r--r--src/match_call.c8
-rw-r--r--src/naming_screen.c3
-rw-r--r--src/pokenav.c2
-rw-r--r--src/pokenav_main_menu.c70
-rw-r--r--src/pokenav_match_call_data.c1098
-rw-r--r--src/pokenav_match_call_ui.c53
-rw-r--r--src/pokenav_unk_1.c26
-rw-r--r--src/pokenav_unk_10.c6
-rw-r--r--src/pokenav_unk_2.c6
-rwxr-xr-xsrc/pokenav_unk_3.c296
-rwxr-xr-xsrc/pokenav_unk_4.c809
-rwxr-xr-xsrc/pokenav_unk_5.c8
-rw-r--r--src/pokenav_unk_6.c6
-rw-r--r--src/pokenav_unk_7.c90
-rw-r--r--src/pokenav_unk_8.c28
-rw-r--r--src/pokenav_unk_9.c24
-rw-r--r--src/strings.c102
20 files changed, 1657 insertions, 1775 deletions
diff --git a/src/battle_setup.c b/src/battle_setup.c
index b98b5df06..3234e8974 100644
--- a/src/battle_setup.c
+++ b/src/battle_setup.c
@@ -1582,7 +1582,7 @@ static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u
s32 i;
bool32 ret = FALSE;
- for (i = 0; i <= REMATCH_WALLY_3; i++)
+ for (i = 0; i <= REMATCH_SPECIAL_TRAINER_START; i++)
{
if (table[i].mapGroup == mapGroup && table[i].mapNum == mapNum && !sub_80B1D94(i))
{
@@ -1641,7 +1641,7 @@ static bool8 IsFirstTrainerIdReadyForRematch(const struct RematchTrainer *table,
if (tableId == -1)
return FALSE;
- if (tableId >= 100)
+ if (tableId >= MAX_REMATCH_ENTRIES)
return FALSE;
if (gSaveBlock1Ptr->trainerRematches[tableId] == 0)
return FALSE;
@@ -1655,7 +1655,7 @@ static bool8 IsTrainerReadyForRematch_(const struct RematchTrainer *table, u16 t
if (tableId == -1)
return FALSE;
- if (tableId >= 100)
+ if (tableId >= MAX_REMATCH_ENTRIES)
return FALSE;
if (gSaveBlock1Ptr->trainerRematches[tableId] == 0)
return FALSE;
diff --git a/src/data/text/match_call_messages.h b/src/data/text/match_call_messages.h
index c3015b5a7..6ea3b549f 100644
--- a/src/data/text/match_call_messages.h
+++ b/src/data/text/match_call_messages.h
@@ -1,399 +1,394 @@
-#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \
- gMatchCallFlavorText_##name##_Pokemon, \
- gMatchCallFlavorText_##name##_Intro1, \
- gMatchCallFlavorText_##name##_Intro2}
-
-const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
-const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
-const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the");
-const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy.");
-
-const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
-const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
-const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea");
-const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics.");
-
-const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
-const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
-const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
-const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world.");
-
-const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!");
-const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
-const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without");
-const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube.");
-
-const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
-const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
-const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim.");
-const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube.");
-
-const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
-const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
-const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
-const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
-
-const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
-const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
-const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
-const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!");
-
-const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
-const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
-const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the");
-const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
-
-const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
-const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
-const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
-const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
-
-const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
-const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
-const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others");
-const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see...");
-
-const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win.");
-const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!");
-const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for");
-const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home.");
-
-const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!");
-const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type.");
-const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around");
-const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner.");
-
-const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray.");
-const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course.");
-const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
-const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there.");
-
-const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
-const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!");
-const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
-const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
-
-const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
-const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
-const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
-const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
-
-const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!");
-const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!");
-const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,");
-const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights.");
-
-const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
-const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
-const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
-const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!");
-
-const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!");
-const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!");
-const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
-const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!");
-
-const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
-const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
-const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock");
-const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!");
-
-const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!");
-const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
-const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry");
-const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart.");
-
-const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!");
-const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
-const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,");
-const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water.");
-
-const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!");
-const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
-const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild");
-const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!");
-
-const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
-const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
-const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
-const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
-
-const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
-const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
-const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
-const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
-
-const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!");
-const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers.");
-const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly");
-const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!");
-
-const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power.");
-const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
-const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really");
-const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy.");
-
-const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected.");
-const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
-const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
-const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported.");
-
-const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle.");
-const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
-const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
-const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test.");
-
-const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
-const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
-const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
-const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future.");
-
-const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
-const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
-const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
-const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
-
-const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!");
-const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
-const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for");
-const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too.");
-
-const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!");
-const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
-const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build");
-const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
-
-const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!");
-const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
-const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way");
-const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!");
-
-const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending.");
-const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type.");
-const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own");
-const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling.");
-
-const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can.");
-const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types.");
-const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working");
-const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
-
-const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently.");
-const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
-const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
-const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
-
-const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!");
-const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
-const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
-const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
-
-const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!");
-const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
-const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge");
-const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self.");
-
-const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial.");
-const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
-const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,");
-const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it.");
-
-const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!");
-const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
-const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
-const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind.");
-
-const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!");
-const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
-const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
-const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day.");
-
-const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!");
-const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
-const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get");
-const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
-
-const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
-const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
-const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
-const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
-
-const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
-const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
-const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
-const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!");
-
-const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
-const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
-const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
-const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!");
-
-const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
-const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
-const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so");
-const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
-
-const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
-const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
-const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
-const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
-
-const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
-const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
-const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
-const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
-
-const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!");
-const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
-const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans.");
-const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
-
-const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that.");
-const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON.");
-const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that");
-const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?");
-
-const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!");
-const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!");
-const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
-const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts.");
-
-const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!");
-const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
-const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
-const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?");
-
-const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!");
-const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
-const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,");
-const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!");
-
-const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
-const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON.");
-const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the");
-const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON.");
-
-const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power.");
-const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
-const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
-const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
-
-const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
-const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
-const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
-const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
-
-const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
-const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
-const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
-const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
-
-const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
-const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
-const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
-const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
-
-const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
-const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types.");
-const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
-const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
-
-const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!");
-const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
-const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always");
-const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON.");
-
-const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!");
-const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
-const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG");
-const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
-
-const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power.");
-const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
-const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month");
-const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike.");
-
-const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!");
-const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
-const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
-const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!");
-
-const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
-const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
-const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
-const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
-
-const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
-const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
-const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
-const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together.");
-
-const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
-const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
-const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
-const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
-
-const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!");
-const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
-const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
-const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!");
-
-const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify.");
-const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
-const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a");
-const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not.");
-
-const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
-const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
-const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
-const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
-
-const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
-const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
-const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
-const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day.");
-
-const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
-const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
-const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to");
-const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature.");
-
-const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
-const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
-const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
-const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
-
-const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
-const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
-const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
-const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
-
-const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!");
-const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
-const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
-const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
-
-const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
-const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
-const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
-const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
-
-const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help.");
-const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
-const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better");
-const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land.");
-
-const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities.");
-const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
-const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the");
-const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
-
-const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect.");
-const u8 gMatchCallFlavorText_Champion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
-const u8 gMatchCallFlavorText_Champion_Wallace_Intro1[] = _("I represent beauty as");
-const u8 gMatchCallFlavorText_Champion_Wallace_Intro2[] = _("well as intelligence.");
-
-const u8 *const gMatchCallMessages[][4] =
+const u8 gText_MatchCallAromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
+const u8 gText_MatchCallAromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
+const u8 gText_MatchCallAromaLady_Rose_Intro1[] = _("Soothing aromas make the");
+const u8 gText_MatchCallAromaLady_Rose_Intro2[] = _("body and mind healthy.");
+
+const u8 gText_MatchCallRuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
+const u8 gText_MatchCallRuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
+const u8 gText_MatchCallRuinManiac_Andres_Intro1[] = _("I am searching for undersea");
+const u8 gText_MatchCallRuinManiac_Andres_Intro2[] = _("ruins and relics.");
+
+const u8 gText_MatchCallRuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
+const u8 gText_MatchCallRuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
+const u8 gText_MatchCallRuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
+const u8 gText_MatchCallRuinManiac_Dusty_Intro2[] = _("I travel the world.");
+
+const u8 gText_MatchCallTuber_Lola_Strategy[] = _("I'm going to try hard!");
+const u8 gText_MatchCallTuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
+const u8 gText_MatchCallTuber_Lola_Intro1[] = _("I wish I could swim without");
+const u8 gText_MatchCallTuber_Lola_Intro2[] = _("using an inner tube.");
+
+const u8 gText_MatchCallTuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
+const u8 gText_MatchCallTuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
+const u8 gText_MatchCallTuber_Ricky_Intro1[] = _("It's not like I can't swim.");
+const u8 gText_MatchCallTuber_Ricky_Intro2[] = _("I just like my inner tube.");
+
+const u8 gText_MatchCallSisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
+const u8 gText_MatchCallSisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
+const u8 gText_MatchCallSisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
+const u8 gText_MatchCallSisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
+
+const u8 gText_MatchCallCooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
+const u8 gText_MatchCallCooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
+const u8 gText_MatchCallCooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
+const u8 gText_MatchCallCooltrainer_Cristin_Intro2[] = _("TRAINER!");
+
+const u8 gText_MatchCallCooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
+const u8 gText_MatchCallCooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
+const u8 gText_MatchCallCooltrainer_Brooke_Intro1[] = _("My goal is to become the");
+const u8 gText_MatchCallCooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
+
+const u8 gText_MatchCallCooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
+const u8 gText_MatchCallCooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
+const u8 gText_MatchCallCooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
+const u8 gText_MatchCallCooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
+
+const u8 gText_MatchCallHexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
+const u8 gText_MatchCallHexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
+const u8 gText_MatchCallHexManiac_Valerie_Intro1[] = _("I see things that others");
+const u8 gText_MatchCallHexManiac_Valerie_Intro2[] = _("can't see...");
+
+const u8 gText_MatchCallLady_Cindy_Strategy[] = _("Anything to win.");
+const u8 gText_MatchCallLady_Cindy_Pokemon[] = _("Gorgeous type!");
+const u8 gText_MatchCallLady_Cindy_Intro1[] = _("I have a pool specially for");
+const u8 gText_MatchCallLady_Cindy_Intro2[] = _("my POKéMON at home.");
+
+const u8 gText_MatchCallBeauty_Thalia_Strategy[] = _("You'll fall under my spell!");
+const u8 gText_MatchCallBeauty_Thalia_Pokemon[] = _("Mature WATER type.");
+const u8 gText_MatchCallBeauty_Thalia_Intro1[] = _("I dream of cruising around");
+const u8 gText_MatchCallBeauty_Thalia_Intro2[] = _("the world on a luxury liner.");
+
+const u8 gText_MatchCallBeauty_Jessica_Strategy[] = _("I'll lead you astray.");
+const u8 gText_MatchCallBeauty_Jessica_Pokemon[] = _("Cute, of course.");
+const u8 gText_MatchCallBeauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
+const u8 gText_MatchCallBeauty_Jessica_Intro2[] = _("I seem to end up there.");
+
+const u8 gText_MatchCallRichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
+const u8 gText_MatchCallRichBoy_Winston_Pokemon[] = _("I spent big money on it!");
+const u8 gText_MatchCallRichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
+const u8 gText_MatchCallRichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
+
+const u8 gText_MatchCallPokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
+const u8 gText_MatchCallPokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
+const u8 gText_MatchCallPokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
+const u8 gText_MatchCallPokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
+
+const u8 gText_MatchCallSwimmer_Tony_Strategy[] = _("Ram at full speed!");
+const u8 gText_MatchCallSwimmer_Tony_Pokemon[] = _("Funky WATER type!");
+const u8 gText_MatchCallSwimmer_Tony_Intro1[] = _("If I can't be out swimming,");
+const u8 gText_MatchCallSwimmer_Tony_Intro2[] = _("I'll be pumping weights.");
+
+const u8 gText_MatchCallBlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
+const u8 gText_MatchCallBlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
+const u8 gText_MatchCallBlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
+const u8 gText_MatchCallBlackBelt_Nob_Intro2[] = _("ten roof tiles!");
+
+const u8 gText_MatchCallBlackBelt_Koji_Strategy[] = _("Witness karate power!");
+const u8 gText_MatchCallBlackBelt_Koji_Pokemon[] = _("My partners in training!");
+const u8 gText_MatchCallBlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
+const u8 gText_MatchCallBlackBelt_Koji_Intro2[] = _("the world with bare fists!");
+
+const u8 gText_MatchCallGuitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
+const u8 gText_MatchCallGuitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
+const u8 gText_MatchCallGuitarist_Fernando_Intro1[] = _("My compositions will shock");
+const u8 gText_MatchCallGuitarist_Fernando_Intro2[] = _("you and stun you!");
+
+const u8 gText_MatchCallGuitarist_Dalton_Strategy[] = _("I'll electrify you!");
+const u8 gText_MatchCallGuitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
+const u8 gText_MatchCallGuitarist_Dalton_Intro1[] = _("I want to make people cry");
+const u8 gText_MatchCallGuitarist_Dalton_Intro2[] = _("with songs from my heart.");
+
+const u8 gText_MatchCallKindler_Bernie_Strategy[] = _("Burn it all down!");
+const u8 gText_MatchCallKindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
+const u8 gText_MatchCallKindler_Bernie_Intro1[] = _("When you light a campfire,");
+const u8 gText_MatchCallKindler_Bernie_Intro2[] = _("be sure there's some water.");
+
+const u8 gText_MatchCallCamper_Ethan_Strategy[] = _("Hang in and be tenacious!");
+const u8 gText_MatchCallCamper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
+const u8 gText_MatchCallCamper_Ethan_Intro1[] = _("POKéMON raised in the wild");
+const u8 gText_MatchCallCamper_Ethan_Intro2[] = _("grow strong!");
+
+const u8 gText_MatchCallOldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
+const u8 gText_MatchCallOldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
+const u8 gText_MatchCallOldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
+const u8 gText_MatchCallOldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
+
+const u8 gText_MatchCallBugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
+const u8 gText_MatchCallBugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
+const u8 gText_MatchCallBugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
+const u8 gText_MatchCallBugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
+
+const u8 gText_MatchCallPsychic_Cameron_Strategy[] = _("Daze and confuse!");
+const u8 gText_MatchCallPsychic_Cameron_Pokemon[] = _("Ones with weird powers.");
+const u8 gText_MatchCallPsychic_Cameron_Intro1[] = _("I can see through exactly");
+const u8 gText_MatchCallPsychic_Cameron_Intro2[] = _("what you're thinking!");
+
+const u8 gText_MatchCallPsychic_Jacki_Strategy[] = _("Battle at full power.");
+const u8 gText_MatchCallPsychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
+const u8 gText_MatchCallPsychic_Jacki_Intro1[] = _("When we spoke, I was really");
+const u8 gText_MatchCallPsychic_Jacki_Intro2[] = _("using telepathy.");
+
+const u8 gText_MatchCallGentleman_Walter_Strategy[] = _("Calm and collected.");
+const u8 gText_MatchCallGentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
+const u8 gText_MatchCallGentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
+const u8 gText_MatchCallGentleman_Walter_Intro2[] = _("every day. It's imported.");
+
+const u8 gText_MatchCallSchoolKid_Karen_Strategy[] = _("I use my head to battle.");
+const u8 gText_MatchCallSchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
+const u8 gText_MatchCallSchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
+const u8 gText_MatchCallSchoolKid_Karen_Intro2[] = _("money if I ace a test.");
+
+const u8 gText_MatchCallSchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
+const u8 gText_MatchCallSchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
+const u8 gText_MatchCallSchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
+const u8 gText_MatchCallSchoolKid_Jerry_Intro2[] = _("researcher in the future.");
+
+const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
+const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
+const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
+const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
+
+const u8 gText_MatchCallPokefan_Isabel_Strategy[] = _("Go for it, my dears!");
+const u8 gText_MatchCallPokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
+const u8 gText_MatchCallPokefan_Isabel_Intro1[] = _("While out shopping for");
+const u8 gText_MatchCallPokefan_Isabel_Intro2[] = _("supper, I battle too.");
+
+const u8 gText_MatchCallPokefan_Miguel_Strategy[] = _("I battle with love!");
+const u8 gText_MatchCallPokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
+const u8 gText_MatchCallPokefan_Miguel_Intro1[] = _("It's important to build");
+const u8 gText_MatchCallPokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
+
+const u8 gText_MatchCallExpert_Timothy_Strategy[] = _("I see through your moves!");
+const u8 gText_MatchCallExpert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
+const u8 gText_MatchCallExpert_Timothy_Intro1[] = _("I'm not ready to give way");
+const u8 gText_MatchCallExpert_Timothy_Intro2[] = _("to the young yet!");
+
+const u8 gText_MatchCallExpert_Shelby_Strategy[] = _("Attack while defending.");
+const u8 gText_MatchCallExpert_Shelby_Pokemon[] = _("The FIGHTING type.");
+const u8 gText_MatchCallExpert_Shelby_Intro1[] = _("Being old, I have my own");
+const u8 gText_MatchCallExpert_Shelby_Intro2[] = _("style of battling.");
+
+const u8 gText_MatchCallYoungster_Calvin_Strategy[] = _("I do what I can.");
+const u8 gText_MatchCallYoungster_Calvin_Pokemon[] = _("I use different types.");
+const u8 gText_MatchCallYoungster_Calvin_Intro1[] = _("I'm going to keep working");
+const u8 gText_MatchCallYoungster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
+
+const u8 gText_MatchCallFisherman_Elliot_Strategy[] = _("I battle patiently.");
+const u8 gText_MatchCallFisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
+const u8 gText_MatchCallFisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
+const u8 gText_MatchCallFisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
+
+const u8 gText_MatchCallTriathlete_Isaiah_Strategy[] = _("Exploit the environment!");
+const u8 gText_MatchCallTriathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
+const u8 gText_MatchCallTriathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
+const u8 gText_MatchCallTriathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
+
+const u8 gText_MatchCallTriathlete_Maria_Strategy[] = _("Speed above all!");
+const u8 gText_MatchCallTriathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
+const u8 gText_MatchCallTriathlete_Maria_Intro1[] = _("A marathon is a challenge");
+const u8 gText_MatchCallTriathlete_Maria_Intro2[] = _("against your own self.");
+
+const u8 gText_MatchCallTriathlete_Abigail_Strategy[] = _("Defense is crucial.");
+const u8 gText_MatchCallTriathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
+const u8 gText_MatchCallTriathlete_Abigail_Intro1[] = _("I started this for dieting,");
+const u8 gText_MatchCallTriathlete_Abigail_Intro2[] = _("but I got right into it.");
+
+const u8 gText_MatchCallTriathlete_Dylan_Strategy[] = _("Strike before stricken!");
+const u8 gText_MatchCallTriathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
+const u8 gText_MatchCallTriathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
+const u8 gText_MatchCallTriathlete_Dylan_Intro2[] = _("become one with the wind.");
+
+const u8 gText_MatchCallTriathlete_Katelyn_Strategy[] = _("All-out offensive!");
+const u8 gText_MatchCallTriathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
+const u8 gText_MatchCallTriathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
+const u8 gText_MatchCallTriathlete_Katelyn_Intro2[] = _("every day.");
+
+const u8 gText_MatchCallTriathlete_Benjamin_Strategy[] = _("Push and push again!");
+const u8 gText_MatchCallTriathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
+const u8 gText_MatchCallTriathlete_Benjamin_Intro1[] = _("If you're sweating, get");
+const u8 gText_MatchCallTriathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
+
+const u8 gText_MatchCallTriathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
+const u8 gText_MatchCallTriathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
+const u8 gText_MatchCallTriathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
+const u8 gText_MatchCallTriathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
+
+const u8 gText_MatchCallDragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
+const u8 gText_MatchCallDragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
+const u8 gText_MatchCallDragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
+const u8 gText_MatchCallDragonTamer_Nicolas_Intro2[] = _("strongest one day!");
+
+const u8 gText_MatchCallBirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
+const u8 gText_MatchCallBirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
+const u8 gText_MatchCallBirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
+const u8 gText_MatchCallBirdKeeper_Robert_Intro2[] = _("love to that girl!");
+
+const u8 gText_MatchCallNinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
+const u8 gText_MatchCallNinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
+const u8 gText_MatchCallNinjaBoy_Lao_Intro1[] = _("I undertake training so");
+const u8 gText_MatchCallNinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
+
+const u8 gText_MatchCallBattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
+const u8 gText_MatchCallBattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
+const u8 gText_MatchCallBattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
+const u8 gText_MatchCallBattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
+
+const u8 gText_MatchCallParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
+const u8 gText_MatchCallParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
+const u8 gText_MatchCallParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
+const u8 gText_MatchCallParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
+
+const u8 gText_MatchCallSwimmer_Jenny_Strategy[] = _("No mercy!");
+const u8 gText_MatchCallSwimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
+const u8 gText_MatchCallSwimmer_Jenny_Intro1[] = _("I have too many fans.");
+const u8 gText_MatchCallSwimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
+
+const u8 gText_MatchCallPicnicker_Diana_Strategy[] = _("I think about this & that.");
+const u8 gText_MatchCallPicnicker_Diana_Pokemon[] = _("I like all POKéMON.");
+const u8 gText_MatchCallPicnicker_Diana_Intro1[] = _("What lies beyond that");
+const u8 gText_MatchCallPicnicker_Diana_Intro2[] = _("yonder hill?");
+
+const u8 gText_MatchCallTwins_AmyAndLiv_Strategy[] = _("We battle together!");
+const u8 gText_MatchCallTwins_AmyAndLiv_Pokemon[] = _("We train together!");
+const u8 gText_MatchCallTwins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
+const u8 gText_MatchCallTwins_AmyAndLiv_Intro2[] = _("but different desserts.");
+
+const u8 gText_MatchCallSailor_Ernest_Strategy[] = _("I force things with power!");
+const u8 gText_MatchCallSailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
+const u8 gText_MatchCallSailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
+const u8 gText_MatchCallSailor_Ernest_Intro2[] = _("Any complaints?");
+
+const u8 gText_MatchCallSailor_Cory_Strategy[] = _("Up for a fight anytime!");
+const u8 gText_MatchCallSailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
+const u8 gText_MatchCallSailor_Cory_Intro1[] = _("If you want to shout loud,");
+const u8 gText_MatchCallSailor_Cory_Intro2[] = _("suck in air with your belly!");
+
+const u8 gText_MatchCallCollector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
+const u8 gText_MatchCallCollector_Edwin_Pokemon[] = _("I love rare POKéMON.");
+const u8 gText_MatchCallCollector_Edwin_Intro1[] = _("I want to collect all the");
+const u8 gText_MatchCallCollector_Edwin_Intro2[] = _("world's rare POKéMON.");
+
+const u8 gText_MatchCallPkmnBreeder_Lydia_Strategy[] = _("I count on power.");
+const u8 gText_MatchCallPkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
+const u8 gText_MatchCallPkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
+const u8 gText_MatchCallPkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
+
+const u8 gText_MatchCallPkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
+const u8 gText_MatchCallPkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
+const u8 gText_MatchCallPkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
+const u8 gText_MatchCallPkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
+
+const u8 gText_MatchCallPkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
+const u8 gText_MatchCallPkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
+const u8 gText_MatchCallPkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
+const u8 gText_MatchCallPkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
+
+const u8 gText_MatchCallPkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
+const u8 gText_MatchCallPkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
+const u8 gText_MatchCallPkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
+const u8 gText_MatchCallPkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
+
+const u8 gText_MatchCallPkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
+const u8 gText_MatchCallPkmnRanger_Jackson_Pokemon[] = _("I use different types.");
+const u8 gText_MatchCallPkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
+const u8 gText_MatchCallPkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
+
+const u8 gText_MatchCallLass_Haley_Strategy[] = _("I'll show you some guts!");
+const u8 gText_MatchCallLass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
+const u8 gText_MatchCallLass_Haley_Intro1[] = _("After a battle, I always");
+const u8 gText_MatchCallLass_Haley_Intro2[] = _("bathe with my POKéMON.");
+
+const u8 gText_MatchCallBugCatcher_James_Strategy[] = _("Lightning-fast attack!");
+const u8 gText_MatchCallBugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
+const u8 gText_MatchCallBugCatcher_James_Intro1[] = _("If you want to catch BUG");
+const u8 gText_MatchCallBugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
+
+const u8 gText_MatchCallHiker_Trent_Strategy[] = _("I battle with power.");
+const u8 gText_MatchCallHiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
+const u8 gText_MatchCallHiker_Trent_Intro1[] = _("I've been planning a month");
+const u8 gText_MatchCallHiker_Trent_Intro2[] = _("for today's hike.");
+
+const u8 gText_MatchCallHiker_Sawyer_Strategy[] = _("I like it hot!");
+const u8 gText_MatchCallHiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
+const u8 gText_MatchCallHiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
+const u8 gText_MatchCallHiker_Sawyer_Intro2[] = _("I surely like hiking!");
+
+const u8 gText_MatchCallYoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
+const u8 gText_MatchCallYoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
+const u8 gText_MatchCallYoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
+const u8 gText_MatchCallYoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
+
+const u8 gText_MatchCallPkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
+const u8 gText_MatchCallPkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
+const u8 gText_MatchCallPkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
+const u8 gText_MatchCallPkmnTrainer_Wally_Intro2[] = _("stronger together.");
+
+const u8 gText_MatchCallRockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
+const u8 gText_MatchCallRockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
+const u8 gText_MatchCallRockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
+const u8 gText_MatchCallRockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
+
+const u8 gText_MatchCallTheBigHit_Brawly_Strategy[] = _("Direct physical action!");
+const u8 gText_MatchCallTheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
+const u8 gText_MatchCallTheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
+const u8 gText_MatchCallTheBigHit_Brawly_Intro2[] = _("next big wave!");
+
+const u8 gText_MatchCallSwellShock_Wattson_Strategy[] = _("I choose to electrify.");
+const u8 gText_MatchCallSwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
+const u8 gText_MatchCallSwellShock_Wattson_Intro1[] = _("One must never throw a");
+const u8 gText_MatchCallSwellShock_Wattson_Intro2[] = _("match. Even I must not.");
+
+const u8 gText_MatchCallPassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
+const u8 gText_MatchCallPassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
+const u8 gText_MatchCallPassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
+const u8 gText_MatchCallPassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
+
+const u8 gText_MatchCallReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
+const u8 gText_MatchCallReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
+const u8 gText_MatchCallReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
+const u8 gText_MatchCallReliableOne_Dad_Intro2[] = _("home to here every day.");
+
+const u8 gText_MatchCallSkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
+const u8 gText_MatchCallSkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
+const u8 gText_MatchCallSkyTamer_Winona_Intro1[] = _("The ultimate would be to");
+const u8 gText_MatchCallSkyTamer_Winona_Intro2[] = _("live as one with nature.");
+
+const u8 gText_MatchCallMysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
+const u8 gText_MatchCallMysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
+const u8 gText_MatchCallMysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
+const u8 gText_MatchCallMysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
+
+const u8 gText_MatchCallDandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
+const u8 gText_MatchCallDandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
+const u8 gText_MatchCallDandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
+const u8 gText_MatchCallDandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
+
+const u8 gText_MatchCallEliteFour_Sidney_Strategy[] = _("Offense over defense!");
+const u8 gText_MatchCallEliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
+const u8 gText_MatchCallEliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
+const u8 gText_MatchCallEliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
+
+const u8 gText_MatchCallEliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
+const u8 gText_MatchCallEliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
+const u8 gText_MatchCallEliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
+const u8 gText_MatchCallEliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
+
+const u8 gText_MatchCallEliteFour_Glacia_Strategy[] = _("I use items for help.");
+const u8 gText_MatchCallEliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
+const u8 gText_MatchCallEliteFour_Glacia_Intro1[] = _("The ICE type can be better");
+const u8 gText_MatchCallEliteFour_Glacia_Intro2[] = _("trained in this hot land.");
+
+const u8 gText_MatchCallEliteFour_Drake_Strategy[] = _("Harness strong abilities.");
+const u8 gText_MatchCallEliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
+const u8 gText_MatchCallEliteFour_Drake_Intro1[] = _("I dedicate myself to the");
+const u8 gText_MatchCallEliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
+
+const u8 gText_MatchCallChampion_Wallace_Strategy[] = _("Dignity and respect.");
+const u8 gText_MatchCallChampion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
+const u8 gText_MatchCallChampion_Wallace_Intro1[] = _("I represent beauty as");
+const u8 gText_MatchCallChampion_Wallace_Intro2[] = _("well as intelligence.");
+
+const u8 *const gMatchCallFlavorTexts[REMATCH_TABLE_ENTRIES][CHECK_PAGE_ENTRY_COUNT] =
{
[REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose),
[REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres),
diff --git a/src/daycare.c b/src/daycare.c
index 42c69465b..dcbadeba8 100644
--- a/src/daycare.c
+++ b/src/daycare.c
@@ -54,8 +54,8 @@ static const struct WindowTemplate sDaycareLevelMenuWindowTemplate =
// which is copied to VAR_0x8004 and used as an index for GetDaycareCost
static const struct ListMenuItem sLevelMenuItems[] =
{
- {gExpandedPlaceholder_Empty, 0},
- {gExpandedPlaceholder_Empty, 1},
+ {gText_ExpandedPlaceholder_Empty, 0},
+ {gText_ExpandedPlaceholder_Empty, 1},
{gText_Exit, DAYCARE_LEVEL_MENU_EXIT}
};
diff --git a/src/match_call.c b/src/match_call.c
index 646b14cea..dac98e559 100644
--- a/src/match_call.c
+++ b/src/match_call.c
@@ -1060,7 +1060,7 @@ static bool32 SelectMatchCallTrainer(void)
static u32 GetNumRegisteredNPCs(void)
{
u32 i, count;
- for (i = 0, count = 0; i < 64; i++)
+ for (i = 0, count = 0; i < REMATCH_SPECIAL_TRAINER_START; i++)
{
if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
count++;
@@ -1072,7 +1072,7 @@ static u32 GetNumRegisteredNPCs(void)
static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId)
{
u32 i;
- for (i = 0; i < 64; i++)
+ for (i = 0; i < REMATCH_SPECIAL_TRAINER_START; i++)
{
if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
{
@@ -1384,7 +1384,7 @@ static u16 GetRematchTrainerLocation(int matchCallId)
static u32 GetNumRematchTrainersFought(void)
{
u32 i, count;
- for (i = 0, count = 0; i < 64; i++)
+ for (i = 0, count = 0; i < REMATCH_SPECIAL_TRAINER_START; i++)
{
if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
count++;
@@ -1961,7 +1961,7 @@ static const u8 *const sBirchDexRatingTexts[] =
gBirchDexRatingText_DexCompleted,
};
-void sub_8197080(u8 *destStr)
+void BufferPokedexRatingForMatchCall(u8 *destStr)
{
int numSeen, numCaught;
u8 *str;
diff --git a/src/naming_screen.c b/src/naming_screen.c
index 3d0d71866..68eeded91 100644
--- a/src/naming_screen.c
+++ b/src/naming_screen.c
@@ -33,7 +33,6 @@ EWRAM_DATA static struct NamingScreenData *gNamingScreenData = NULL;
extern u16 gKeyRepeatStartDelay;
// extern text
-extern const u8 gExpandedPlaceholder_Empty[];
extern const u8 gText_MoveOkBack[];
extern const u8 gText_YourName[];
extern const u8 gText_BoxName[];
@@ -1679,7 +1678,7 @@ static void sub_80E4D10(void)
for (i = 0; i < maxChars; i++)
{
temp[0] = gNamingScreenData->textBuffer[i];
- temp[1] = gExpandedPlaceholder_Empty[0];
+ temp[1] = gText_ExpandedPlaceholder_Empty[0];
unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0;
AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL);
diff --git a/src/pokenav.c b/src/pokenav.c
index 9f12380df..6b971bc00 100644
--- a/src/pokenav.c
+++ b/src/pokenav.c
@@ -337,7 +337,7 @@ static void CB2_InitPokenavForTutorial(void)
else
{
InitPokenavResources(gPokenavResources);
- gPokenavResources->mode = POKENAV_MODE_FORCE_CALL_1;
+ gPokenavResources->mode = POKENAV_MODE_FORCE_CALL_READY;
ResetTasks();
ResetSpriteData();
FreeAllSpritePalettes();
diff --git a/src/pokenav_main_menu.c b/src/pokenav_main_menu.c
index b61757399..583d23a55 100644
--- a/src/pokenav_main_menu.c
+++ b/src/pokenav_main_menu.c
@@ -41,7 +41,7 @@ struct PokenavMainMenuResources
u32 (*unk4)(void);
u32 unk8;
u32 currentTaskId;
- u32 unk10;
+ u32 helpBarWindowId;
u32 unk14;
struct Sprite *spinningPokenav;
struct Sprite *leftHeaderSprites[2];
@@ -68,10 +68,10 @@ static void MoveLeftHeader(struct Sprite *sprite, s32 startX, s32 endX, s32 dura
static void SpriteCB_MoveLeftHeader(struct Sprite *sprite);
static void InitPokenavMainMenuResources(void);
static void InitHoennMapHeaderSprites(void);
-static void sub_81C7B74(void);
+static void InitHelpBar(void);
static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0);
static u32 LoopedTask_ScrollMenuHeaderUp(s32 a0);
-static void sub_81C7BF8(u32 a0);
+static void DrawHelpBar(u32 windowId);
static void SpriteCB_SpinningPokenav(struct Sprite* sprite);
static u32 LoopedTask_InitPokenavMenu(s32 a0);
@@ -92,7 +92,7 @@ const struct BgTemplate gPokenavMainMenuBgTemplates[] =
}
};
-const struct WindowTemplate gUnknown_0861FA08[2] =
+static const struct WindowTemplate sHelpBarWindowTemplate[] =
{
{
.bg = 0,
@@ -103,31 +103,23 @@ const struct WindowTemplate gUnknown_0861FA08[2] =
.paletteNum = 0,
.baseBlock = 0x36,
},
- {
- .bg = 0xFF,
- .tilemapLeft = 0,
- .tilemapTop = 0,
- .width = 0,
- .height = 0,
- .paletteNum = 0,
- .baseBlock = 0,
- },
+ DUMMY_WIN_TEMPLATE
};
-const u8 *const sHelpBarTexts[12] =
-{
- gText_Pokenav_ClearButtonList,
- gText_PokenavMap_ZoomedOutButtons,
- gText_PokenavMap_ZoomedInButtons,
- gText_PokenavCondition_MonListButtons,
- gText_PokenavCondition_MonStatusButtons,
- gText_PokenavCondition_MarkingButtons,
- gText_PokenavMatchCall_TrainerListButtons,
- gText_PokenavMatchCall_CallMenuButtons,
- gText_PokenavMatchCall_CheckTrainerButtons,
- gText_PokenavRibbons_MonListButtons,
- gText_PokenavRibbons_RibbonListButtons,
- gText_PokenavRibbons_RibbonCheckButtons,
+static const u8 *const sHelpBarTexts[HELPBAR_COUNT] =
+{
+ [HELPBAR_NONE] = gText_Pokenav_ClearButtonList,
+ [HELPBAR_MAP_ZOOMED_OUT] = gText_PokenavMap_ZoomedOutButtons,
+ [HELPBAR_MAP_ZOOMED_IN] = gText_PokenavMap_ZoomedInButtons,
+ [HELPBAR_CONDITION_MON_LIST] = gText_PokenavCondition_MonListButtons,
+ [HELPBAR_CONDITION_MON_STATUS] = gText_PokenavCondition_MonStatusButtons,
+ [HELPBAR_CONDITION_MARKINGS] = gText_PokenavCondition_MarkingButtons,
+ [HELPBAR_MC_TRAINER_LIST] = gText_PokenavMatchCall_TrainerListButtons,
+ [HELPBAR_MC_CALL_MENU] = gText_PokenavMatchCall_CallMenuButtons,
+ [HELPBAR_MC_CHECK_PAGE] = gText_PokenavMatchCall_CheckTrainerButtons,
+ [HELPBAR_RIBBONS_MON_LIST] = gText_PokenavRibbons_MonListButtons,
+ [HELPBAR_RIBBONS_LIST] = gText_PokenavRibbons_RibbonListButtons,
+ [HELPBAR_RIBBONS_CHECK] = gText_PokenavRibbons_RibbonCheckButtons,
};
static const u8 sHelpBarTextColors[3] =
@@ -386,7 +378,7 @@ static u32 LoopedTask_InitPokenavMenu(s32 a0)
if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE;
- sub_81C7B74();
+ InitHelpBar();
return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
@@ -676,31 +668,31 @@ void InitBgTemplates(const struct BgTemplate *templates, int count)
InitBgFromTemplate(templates++);
}
-static void sub_81C7B74(void)
+static void InitHelpBar(void)
{
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- InitWindows(&gUnknown_0861FA08[0]);
- structPtr->unk10 = 0;
- sub_81C7BF8(structPtr->unk10);
- PutWindowTilemap(structPtr->unk10);
- CopyWindowToVram(structPtr->unk10, 3); // TODO: Use a defined constant here.
+ InitWindows(&sHelpBarWindowTemplate[0]);
+ structPtr->helpBarWindowId = 0;
+ DrawHelpBar(structPtr->helpBarWindowId);
+ PutWindowTilemap(structPtr->helpBarWindowId);
+ CopyWindowToVram(structPtr->helpBarWindowId, 3); // TODO: Use a defined constant here.
}
-void sub_81C7BA4(u32 helpBarIndex)
+void PrintHelpBarText(u32 textId)
{
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
- sub_81C7BF8(structPtr->unk10);
- AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, sHelpBarTextColors, 0, sHelpBarTexts[helpBarIndex]);
+ DrawHelpBar(structPtr->helpBarWindowId);
+ AddTextPrinterParameterized3(structPtr->helpBarWindowId, 1, 0, 1, sHelpBarTextColors, 0, sHelpBarTexts[textId]);
}
-bool32 IsDma3ManagerBusyWithBgCopy_(void)
+bool32 WaitForHelpBar(void)
{
return IsDma3ManagerBusyWithBgCopy();
}
-static void sub_81C7BF8(u32 windowId)
+static void DrawHelpBar(u32 windowId)
{
FillWindowPixelBuffer(windowId, PIXEL_FILL(4));
FillWindowPixelRect(windowId, PIXEL_FILL(5), 0, 0, 0x80, 1);
diff --git a/src/pokenav_match_call_data.c b/src/pokenav_match_call_data.c
index 5379ee88e..91dbe4005 100644
--- a/src/pokenav_match_call_data.c
+++ b/src/pokenav_match_call_data.c
@@ -7,9 +7,23 @@
#include "gym_leader_rematch.h"
#include "match_call.h"
#include "pokenav.h"
+#include "strings.h"
#include "constants/region_map_sections.h"
#include "constants/trainers.h"
+
+// NPC below means non-trainer character (no rematch or check page)
+// Steven also uses this type but has a check page by using a MatchCallCheckPageOverride
+enum
+{
+ MC_TYPE_NPC,
+ MC_TYPE_TRAINER,
+ MC_TYPE_WALLY,
+ MC_TYPE_BIRCH,
+ MC_TYPE_RIVAL,
+ MC_TYPE_LEADER
+};
+
// Static type declarations
typedef struct MatchCallTextDataStruct {
@@ -24,7 +38,7 @@ struct MatchCallStructCommon {
u16 flag;
};
-struct MatchCallStruct0 {
+struct MatchCallStructNPC {
u8 type;
u8 mapSec;
u16 flag;
@@ -33,7 +47,8 @@ struct MatchCallStruct0 {
const match_call_text_data_t *textData;
};
-struct MatchCallStruct1 {
+// Shared by MC_TYPE_TRAINER and MC_TYPE_LEADER
+struct MatchCallStructTrainer {
u8 type;
u8 mapSec;
u16 flag;
@@ -43,22 +58,22 @@ struct MatchCallStruct1 {
const match_call_text_data_t *textData;
};
-struct MatchCallSubstruct2 {
+struct MatchCallLocationOverride {
u16 flag;
u8 mapSec;
};
-struct MatchCallStruct2 {
+struct MatchCallWally {
u8 type;
u8 mapSec;
u16 flag;
u16 rematchTableIdx;
const u8 *desc;
const match_call_text_data_t *textData;
- const struct MatchCallSubstruct2 *v10;
+ const struct MatchCallLocationOverride *locationData;
};
-struct MatchCallStruct3 {
+struct MatchCallBirch {
u8 type;
u8 mapSec;
u16 flag;
@@ -66,21 +81,10 @@ struct MatchCallStruct3 {
const u8 *name;
};
-struct MatchCallStruct4 {
- u8 type;
- u8 gender;
- u16 flag;
- const u8 *desc;
- const u8 *name;
- const match_call_text_data_t *textData;
-};
-
-// Note: Type1 and Type5 have identical struct layouts.
-struct MatchCallStruct5 {
+struct MatchCallRival {
u8 type;
- u8 mapSec;
+ u8 playerGender;
u16 flag;
- u16 rematchTableIdx;
const u8 *desc;
const u8 *name;
const match_call_text_data_t *textData;
@@ -88,731 +92,606 @@ struct MatchCallStruct5 {
typedef union {
const struct MatchCallStructCommon *common;
- const struct MatchCallStruct0 *type0;
- const struct MatchCallStruct1 *type1;
- const struct MatchCallStruct2 *type2;
- const struct MatchCallStruct3 *type3;
- const struct MatchCallStruct4 *type4;
- const struct MatchCallStruct5 *type5;
+ const struct MatchCallStructNPC *npc;
+ const struct MatchCallStructTrainer *trainer;
+ const struct MatchCallWally *wally;
+ const struct MatchCallBirch *birch;
+ const struct MatchCallRival *rival;
+ const struct MatchCallStructTrainer *leader;
} match_call_t;
-struct MatchCallOverride {
+struct MatchCallCheckPageOverride {
u16 idx;
u16 facilityClass;
u32 flag;
- const u8 *flavorTexts[4];
+ const u8 *flavorTexts[CHECK_PAGE_ENTRY_COUNT];
};
// Static RAM declarations
// Static ROM declarations
-static bool32 MatchCallGetFlag_Type0(match_call_t);
-static bool32 MatchCallGetFlag_Type1(match_call_t);
-static bool32 MatchCallGetFlag_Type2(match_call_t);
-static bool32 MatchCallGetFlag_Type3(match_call_t);
-static bool32 MatchCallGetFlag_Type4(match_call_t);
-
-static u8 MatchCallGetMapSec_Type0(match_call_t);
-static u8 MatchCallGetMapSec_Type1(match_call_t);
-static u8 MatchCallGetMapSec_Type2(match_call_t);
-static u8 MatchCallGetMapSec_Type3(match_call_t);
-static u8 MatchCallGetMapSec_Type4(match_call_t);
-
-static bool32 MatchCall_IsRematchable_Type0(match_call_t);
-static bool32 MatchCall_IsRematchable_Type1(match_call_t);
-static bool32 MatchCall_IsRematchable_Type2(match_call_t);
-static bool32 MatchCall_IsRematchable_Type3(match_call_t);
-static bool32 MatchCall_IsRematchable_Type4(match_call_t);
-
-static bool32 MatchCall_HasCheckPage_Type0(match_call_t);
-static bool32 MatchCall_HasCheckPage_Type1(match_call_t);
-static bool32 MatchCall_HasCheckPage_Type2(match_call_t);
-static bool32 MatchCall_HasCheckPage_Type3(match_call_t);
-static bool32 MatchCall_HasCheckPage_Type4(match_call_t);
-
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t);
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t);
-
-static void MatchCall_GetMessage_Type0(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type1(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type2(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type3(match_call_t, u8 *);
-static void MatchCall_GetMessage_Type4(match_call_t, u8 *);
-
-static void MatchCall_GetNameAndDesc_Type0(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type1(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type2(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type3(match_call_t, const u8 **, const u8 **);
-static void MatchCall_GetNameAndDesc_Type4(match_call_t, const u8 **, const u8 **);
-
-static void sub_81D1920(const match_call_text_data_t *, u8 *);
-static void sub_81D199C(const match_call_text_data_t *, u16, u8 *);
+static bool32 MatchCall_GetEnabled_NPC(match_call_t);
+static bool32 MatchCall_GetEnabled_Trainer(match_call_t);
+static bool32 MatchCall_GetEnabled_Wally(match_call_t);
+static bool32 MatchCall_GetEnabled_Birch(match_call_t);
+static bool32 MatchCall_GetEnabled_Rival(match_call_t);
+
+static u8 MatchCall_GetMapSec_NPC(match_call_t);
+static u8 MatchCall_GetMapSec_Trainer(match_call_t);
+static u8 MatchCall_GetMapSec_Wally(match_call_t);
+static u8 MatchCall_GetMapSec_Birch(match_call_t);
+static u8 MatchCall_GetMapSec_Rival(match_call_t);
+
+static bool32 MatchCall_IsRematchable_NPC(match_call_t);
+static bool32 MatchCall_IsRematchable_Trainer(match_call_t);
+static bool32 MatchCall_IsRematchable_Wally(match_call_t);
+static bool32 MatchCall_IsRematchable_Birch(match_call_t);
+static bool32 MatchCall_IsRematchable_Rival(match_call_t);
+
+static bool32 MatchCall_HasCheckPage_NPC(match_call_t);
+static bool32 MatchCall_HasCheckPage_Trainer(match_call_t);
+static bool32 MatchCall_HasCheckPage_Wally(match_call_t);
+static bool32 MatchCall_HasCheckPage_Birch(match_call_t);
+static bool32 MatchCall_HasCheckPage_Rival(match_call_t);
+
+static u32 MatchCall_GetRematchTableIdx_NPC(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Trainer(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Wally(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Birch(match_call_t);
+static u32 MatchCall_GetRematchTableIdx_Rival(match_call_t);
+
+static void MatchCall_GetMessage_NPC(match_call_t, u8 *);
+static void MatchCall_GetMessage_Trainer(match_call_t, u8 *);
+static void MatchCall_GetMessage_Wally(match_call_t, u8 *);
+static void MatchCall_GetMessage_Birch(match_call_t, u8 *);
+static void MatchCall_GetMessage_Rival(match_call_t, u8 *);
+
+static void MatchCall_GetNameAndDesc_NPC(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Trainer(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Wally(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Birch(match_call_t, const u8 **, const u8 **);
+static void MatchCall_GetNameAndDesc_Rival(match_call_t, const u8 **, const u8 **);
+
+static void MatchCall_BufferCallMessageText(const match_call_text_data_t *, u8 *);
+static void MatchCall_BufferCallMessageTextByRematchTeam(const match_call_text_data_t *, u16, u8 *);
static void MatchCall_GetNameAndDescByRematchIdx(u32, const u8 **, const u8 **);
-extern const u8 gText_MrStone_Pokenav_2B60C0[];
-extern const u8 gText_MrStone_Pokenav_2B61E6[];
-extern const u8 gText_MrStone_Pokenav_2B6302[];
-extern const u8 gText_MrStone_Pokenav_2B63A0[];
-extern const u8 gText_MrStone_Pokenav_2B64A2[];
-extern const u8 gText_MrStone_Pokenav_2B6526[];
-extern const u8 gText_MrStone_Pokenav_2B65BB[];
-extern const u8 gText_MrStone_Pokenav_2B6664[];
-extern const u8 gText_MrStone_Pokenav_2B66B1[];
-extern const u8 gText_MrStone_Pokenav_2B6703[];
-extern const u8 gText_MrStone_Pokenav_2B67ED[];
-
-extern const u8 gMrStoneMatchCallDesc[];
-extern const u8 gMrStoneMatchCallName[];
-
-extern const u8 gText_Norman_Pokenav_2B5719[];
-extern const u8 gText_Norman_Pokenav_2B5795[];
-extern const u8 gText_Norman_Pokenav_2B584D[];
-extern const u8 gText_Norman_Pokenav_2B58E3[];
-extern const u8 gText_Norman_Pokenav_2B5979[];
-extern const u8 gText_Norman_Pokenav_2B5A07[];
-extern const u8 gText_Norman_Pokenav_2B5A69[];
-extern const u8 gText_Norman_Pokenav_2B5ACF[];
-extern const u8 gText_Norman_Pokenav_2B5B5E[];
-
-extern const u8 gNormanMatchCallDesc[];
-extern const u8 gNormanMatchCallName[];
-
-extern const u8 gProfBirchMatchCallDesc[];
-extern const u8 gProfBirchMatchCallName[];
-
-extern const u8 gText_Mom_Pokenav_2B227B[];
-extern const u8 gText_Mom_Pokenav_2B2310[];
-extern const u8 gText_Mom_Pokenav_2B23F3[];
-
-extern const u8 gMomMatchCallDesc[];
-extern const u8 gMomMatchCallName[];
-
-extern const u8 gText_Steven_Pokenav_2B5B95[];
-extern const u8 gText_Steven_Pokenav_2B5C53[];
-extern const u8 gText_Steven_Pokenav_2B5CC9[];
-extern const u8 gText_Steven_Pokenav_2B5DB4[];
-extern const u8 gText_Steven_Pokenav_2B5E26[];
-extern const u8 gText_Steven_Pokenav_2B5EA2[];
-extern const u8 gText_Steven_Pokenav_2B5ED9[];
-
-extern const u8 gStevenMatchCallDesc[];
-extern const u8 gStevenMatchCallName[];
-
-extern const u8 gText_May_Pokenav_2B3AB3[];
-extern const u8 gText_May_Pokenav_2B3B3F[];
-extern const u8 gText_May_Pokenav_2B3C13[];
-extern const u8 gText_May_Pokenav_2B3CF3[];
-extern const u8 gText_May_Pokenav_2B3D4B[];
-extern const u8 gText_May_Pokenav_2B3DD1[];
-extern const u8 gText_May_Pokenav_2B3E69[];
-extern const u8 gText_May_Pokenav_2B3ECD[];
-extern const u8 gText_May_Pokenav_2B3F2B[];
-extern const u8 gText_May_Pokenav_2B3FFB[];
-extern const u8 gText_May_Pokenav_2B402B[];
-extern const u8 gText_May_Pokenav_2B414B[];
-extern const u8 gText_May_Pokenav_2B4228[];
-extern const u8 gText_May_Pokenav_2B42E0[];
-extern const u8 gText_May_Pokenav_2B4350[];
-extern const u8 gMayBrendanMatchCallDesc[];
-extern const u8 gExpandedPlaceholder_May[];
-extern const u8 gText_Brendan_Pokenav_2B43EF[];
-extern const u8 gText_Brendan_Pokenav_2B4486[];
-extern const u8 gText_Brendan_Pokenav_2B4560[];
-extern const u8 gText_Brendan_Pokenav_2B463F[];
-extern const u8 gText_Brendan_Pokenav_2B46B7[];
-extern const u8 gText_Brendan_Pokenav_2B4761[];
-extern const u8 gText_Brendan_Pokenav_2B47F4[];
-extern const u8 gText_Brendan_Pokenav_2B4882[];
-extern const u8 gText_Brendan_Pokenav_2B4909[];
-extern const u8 gText_Brendan_Pokenav_2B49C4[];
-extern const u8 gText_Brendan_Pokenav_2B4A44[];
-extern const u8 gText_Brendan_Pokenav_2B4B28[];
-extern const u8 gText_Brendan_Pokenav_2B4C15[];
-extern const u8 gText_Brendan_Pokenav_2B4CD8[];
-extern const u8 gText_Brendan_Pokenav_2B4D46[];
-extern const u8 gExpandedPlaceholder_Brendan[];
-extern const u8 gText_Wally_Pokenav_2B4DE2[];
-extern const u8 gText_Wally_Pokenav_2B4E57[];
-extern const u8 gText_Wally_Pokenav_2B4EA5[];
-extern const u8 gText_Wally_Pokenav_2B4F41[];
-extern const u8 gText_Wally_Pokenav_2B4FF3[];
-extern const u8 gText_Wally_Pokenav_2B50B1[];
-extern const u8 gText_Wally_Pokenav_2B5100[];
-extern const u8 gWallyMatchCallDesc[];
-extern const u8 gText_Scott_Pokenav_2B5184[];
-extern const u8 gText_Scott_Pokenav_2B5275[];
-extern const u8 gText_Scott_Pokenav_2B5323[];
-extern const u8 gText_Scott_Pokenav_2B53DB[];
-extern const u8 gText_Scott_Pokenav_2B54A5[];
-extern const u8 gText_Scott_Pokenav_2B5541[];
-extern const u8 gText_Scott_Pokenav_2B56CA[];
-extern const u8 gScottMatchCallDesc[];
-extern const u8 gScottMatchCallName[];
-extern const u8 gText_Roxanne_Pokenav_2B2456[];
-extern const u8 gText_Roxanne_Pokenav_2B250E[];
-extern const u8 gText_Roxanne_Pokenav_2B25C1[];
-extern const u8 gText_Roxanne_Pokenav_2B2607[];
-extern const u8 gRoxanneMatchCallDesc[];
-extern const u8 gText_Brawly_Pokenav_2B2659[];
-extern const u8 gText_Brawly_Pokenav_2B275D[];
-extern const u8 gText_Brawly_Pokenav_2B286F[];
-extern const u8 gText_Brawly_Pokenav_2B28D1[];
-extern const u8 gBrawlyMatchCallDesc[];
-extern const u8 gText_Wattson_Pokenav_2B2912[];
-extern const u8 gText_Wattson_Pokenav_2B29CA[];
-extern const u8 gText_Wattson_Pokenav_2B2AB6[];
-extern const u8 gText_Wattson_Pokenav_2B2B01[];
-extern const u8 gWattsonMatchCallDesc[];
-extern const u8 gText_Flannery_Pokenav_2B2B4D[];
-extern const u8 gText_Flannery_Pokenav_2B2C0E[];
-extern const u8 gText_Flannery_Pokenav_2B2CF1[];
-extern const u8 gText_Flannery_Pokenav_2B2D54[];
-extern const u8 gFlanneryMatchCallDesc[];
-extern const u8 gText_Winona_Pokenav_2B2DA4[];
-extern const u8 gText_Winona_Pokenav_2B2E2B[];
-extern const u8 gText_Winona_Pokenav_2B2EC2[];
-extern const u8 gText_Winona_Pokenav_2B2F16[];
-extern const u8 gWinonaMatchCallDesc[];
-extern const u8 gText_TateLiza_Pokenav_2B2F97[];
-extern const u8 gText_TateLiza_Pokenav_2B306E[];
-extern const u8 gText_TateLiza_Pokenav_2B3158[];
-extern const u8 gText_TateLiza_Pokenav_2B31CD[];
-extern const u8 gTateLizaMatchCallDesc[];
-extern const u8 gText_Juan_Pokenav_2B3249[];
-extern const u8 gText_Juan_Pokenav_2B32EC[];
-extern const u8 gText_Juan_Pokenav_2B33AA[];
-extern const u8 gText_Juan_Pokenav_2B341E[];
-extern const u8 gJuanMatchCallDesc[];
-extern const u8 gText_Sidney_Pokenav_2B34CC[];
-extern const u8 gEliteFourMatchCallDesc[];
-extern const u8 gText_Phoebe_Pokenav_2B3561[];
-extern const u8 gText_Glacia_Pokenav_2B35E4[];
-extern const u8 gText_Drake_Pokenav_2B368B[];
-extern const u8 gText_Wallace_Pokenav_2B3790[];
-extern const u8 gChampionMatchCallDesc[];
-extern const u8 gMatchCallStevenStrategyText[];
-extern const u8 gMatchCall_StevenTrainersPokemonText[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[];
-extern const u8 gMatchCall_BrendanStrategyText[];
-extern const u8 gMatchCall_BrendanTrainersPokemonText[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line1[];
-extern const u8 gMatchCall_BrendanSelfIntroductionText_Line2[];
-extern const u8 gMatchCall_MayStrategyText[];
-extern const u8 gMatchCall_MayTrainersPokemonText[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line1[];
-extern const u8 gMatchCall_MaySelfIntroductionText_Line2[];
// .rodata
static const match_call_text_data_t sMrStoneTextScripts[] = {
- { gText_MrStone_Pokenav_2B60C0, 0xFFFF, FLAG_ENABLE_MR_STONE_POKENAV },
- { gText_MrStone_Pokenav_2B61E6, FLAG_ENABLE_MR_STONE_POKENAV, 0xFFFF },
- { gText_MrStone_Pokenav_2B6302, FLAG_DELIVERED_STEVEN_LETTER, 0xFFFF },
- { gText_MrStone_Pokenav_2B63A0, FLAG_RECEIVED_EXP_SHARE, 0xFFFF },
- { gText_MrStone_Pokenav_2B64A2, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_MrStone_Pokenav_2B6526, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_MrStone_Pokenav_2B65BB, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_MrStone_Pokenav_2B6664, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_MrStone_Pokenav_2B66B1, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_MrStone_Pokenav_2B6703, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_MrStone_Pokenav_2B67ED, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_MrStone1, 0xFFFF, FLAG_ENABLE_MR_STONE_POKENAV },
+ { MatchCall_Text_MrStone2, FLAG_ENABLE_MR_STONE_POKENAV, 0xFFFF },
+ { MatchCall_Text_MrStone3, FLAG_DELIVERED_STEVEN_LETTER, 0xFFFF },
+ { MatchCall_Text_MrStone4, FLAG_RECEIVED_EXP_SHARE, 0xFFFF },
+ { MatchCall_Text_MrStone5, FLAG_RECEIVED_HM04, 0xFFFF },
+ { MatchCall_Text_MrStone6, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { MatchCall_Text_MrStone7, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { MatchCall_Text_MrStone8, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { MatchCall_Text_MrStone9, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { MatchCall_Text_MrStone10, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { MatchCall_Text_MrStone11, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct0 sMrStoneMatchCallHeader =
+static const struct MatchCallStructNPC sMrStoneMatchCallHeader =
{
- .type = 0,
+ .type = MC_TYPE_NPC,
.mapSec = MAPSEC_RUSTBORO_CITY,
.flag = 0xFFFF,
- .desc = gMrStoneMatchCallDesc,
- .name = gMrStoneMatchCallName,
+ .desc = gText_MrStoneMatchCallDesc,
+ .name = gText_MrStoneMatchCallName,
.textData = sMrStoneTextScripts
};
static const match_call_text_data_t sNormanTextScripts[] = {
- { gText_Norman_Pokenav_2B5719, FLAG_ENABLE_NORMAN_MATCH_CALL, 0xFFFF },
- { gText_Norman_Pokenav_2B5795, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B584D, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B58E3, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_Norman_Pokenav_2B5979, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Norman_Pokenav_2B5A07, 0xFFFE, 0xFFFF },
- { gText_Norman_Pokenav_2B5A69, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5ACF, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { gText_Norman_Pokenav_2B5B5E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Norman1, FLAG_ENABLE_NORMAN_MATCH_CALL, 0xFFFF },
+ { MatchCall_Text_Norman2, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { MatchCall_Text_Norman3, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { MatchCall_Text_Norman4, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { MatchCall_Text_Norman5, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { MatchCall_Text_Norman6, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Norman7, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { MatchCall_Text_Norman8, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { MatchCall_Text_Norman9, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sNormanMatchCallHeader =
+static const struct MatchCallStructTrainer sNormanMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_PETALBURG_CITY,
.flag = FLAG_ENABLE_NORMAN_MATCH_CALL,
.rematchTableIdx = REMATCH_NORMAN,
- .desc = gNormanMatchCallDesc,
- .name = gNormanMatchCallName,
+ .desc = gText_NormanMatchCallDesc,
+ .name = gText_NormanMatchCallName,
.textData = sNormanTextScripts
};
-static const struct MatchCallStruct3 sProfBirchMatchCallHeader =
+static const struct MatchCallBirch sProfBirchMatchCallHeader =
{
- .type = 3,
+ .type = MC_TYPE_BIRCH,
.mapSec = 0,
.flag = FLAG_ENABLE_PROF_BIRCH_MATCH_CALL,
- .desc = gProfBirchMatchCallDesc,
- .name = gProfBirchMatchCallName
+ .desc = gText_ProfBirchMatchCallDesc,
+ .name = gText_ProfBirchMatchCallName
};
static const match_call_text_data_t sMomTextScripts[] = {
- { gText_Mom_Pokenav_2B227B, 0xffff, 0xffff },
- { gText_Mom_Pokenav_2B2310, FLAG_DEFEATED_PETALBURG_GYM, 0xffff },
- { gText_Mom_Pokenav_2B23F3, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff }
+ { MatchCall_Text_Mom1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Mom2, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { MatchCall_Text_Mom3, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct0 sMomMatchCallHeader =
+static const struct MatchCallStructNPC sMomMatchCallHeader =
{
- .type = 0,
+ .type = MC_TYPE_NPC,
.mapSec = MAPSEC_LITTLEROOT_TOWN,
.flag = FLAG_ENABLE_MOM_MATCH_CALL,
- .desc = gMomMatchCallDesc,
- .name = gMomMatchCallName,
+ .desc = gText_MomMatchCallDesc,
+ .name = gText_MomMatchCallName,
.textData = sMomTextScripts
};
static const match_call_text_data_t sStevenTextScripts[] = {
- { gText_Steven_Pokenav_2B5B95, 0xffff, 0xffff },
- { gText_Steven_Pokenav_2B5C53, FLAG_RUSTURF_TUNNEL_OPENED, 0xffff },
- { gText_Steven_Pokenav_2B5CC9, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xffff },
- { gText_Steven_Pokenav_2B5DB4, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xffff },
- { gText_Steven_Pokenav_2B5E26, FLAG_DEFEATED_MOSSDEEP_GYM, 0xffff },
- { gText_Steven_Pokenav_2B5EA2, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xffff },
- { gText_Steven_Pokenav_2B5ED9, FLAG_SYS_GAME_CLEAR, 0xffff },
- { NULL, 0xffff, 0xffff },
+ { MatchCall_Text_Steven1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Steven2, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
+ { MatchCall_Text_Steven3, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { MatchCall_Text_Steven4, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { MatchCall_Text_Steven5, FLAG_DEFEATED_MOSSDEEP_GYM, 0xFFFF },
+ { MatchCall_Text_Steven6, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { MatchCall_Text_Steven7, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF },
};
-static const struct MatchCallStruct0 sStevenMatchCallHeader =
+static const struct MatchCallStructNPC sStevenMatchCallHeader =
{
- .type = 0,
+ .type = MC_TYPE_NPC,
.mapSec = MAPSEC_NONE,
.flag = FLAG_REGISTERED_STEVEN_POKENAV,
- .desc = gStevenMatchCallDesc,
- .name = gStevenMatchCallName,
+ .desc = gText_StevenMatchCallDesc,
+ .name = gText_StevenMatchCallName,
.textData = sStevenTextScripts
};
static const match_call_text_data_t sMayTextScripts[] = {
- { gText_May_Pokenav_2B3AB3, 0xFFFF, 0xFFFF },
- { gText_May_Pokenav_2B3B3F, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3C13, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
- { gText_May_Pokenav_2B3CF3, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_May_Pokenav_2B3D4B, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_May_Pokenav_2B3DD1, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3E69, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_May_Pokenav_2B3ECD, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_May_Pokenav_2B3F2B, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_May_Pokenav_2B3FFB, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_May_Pokenav_2B402B, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
- { gText_May_Pokenav_2B414B, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_May_Pokenav_2B4228, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_May_Pokenav_2B42E0, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_May_Pokenav_2B4350, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_May1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_May2, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { MatchCall_Text_May3, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
+ { MatchCall_Text_May4, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { MatchCall_Text_May5, FLAG_RECEIVED_HM04, 0xFFFF },
+ { MatchCall_Text_May6, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { MatchCall_Text_May7, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { MatchCall_Text_May8, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { MatchCall_Text_May9, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { MatchCall_Text_May10, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { MatchCall_Text_May11, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
+ { MatchCall_Text_May12, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { MatchCall_Text_May13, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { MatchCall_Text_May14, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { MatchCall_Text_May15, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct4 sMayMatchCallHeader =
+static const struct MatchCallRival sMayMatchCallHeader =
{
- .type = 4,
- .gender = MALE, //Gender of player
+ .type = MC_TYPE_RIVAL,
+ .playerGender = MALE,
.flag = FLAG_ENABLE_RIVAL_MATCH_CALL,
- .desc = gMayBrendanMatchCallDesc,
- .name = gExpandedPlaceholder_May,
+ .desc = gText_MayBrendanMatchCallDesc,
+ .name = gText_ExpandedPlaceholder_May,
.textData = sMayTextScripts
};
static const match_call_text_data_t sBrendanTextScripts[] = {
- { gText_Brendan_Pokenav_2B43EF, 0xFFFF, 0xFFFF },
- { gText_Brendan_Pokenav_2B4486, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4560, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
- { gText_Brendan_Pokenav_2B463F, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
- { gText_Brendan_Pokenav_2B46B7, FLAG_RECEIVED_HM04, 0xFFFF },
- { gText_Brendan_Pokenav_2B4761, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B47F4, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4882, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4909, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Brendan_Pokenav_2B49C4, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_Brendan_Pokenav_2B4A44, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
- { gText_Brendan_Pokenav_2B4B28, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_Brendan_Pokenav_2B4C15, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_Brendan_Pokenav_2B4CD8, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_Brendan_Pokenav_2B4D46, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Brendan1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Brendan2, FLAG_DEFEATED_DEWFORD_GYM, 0xFFFF },
+ { MatchCall_Text_Brendan3, FLAG_DELIVERED_DEVON_GOODS, 0xFFFF },
+ { MatchCall_Text_Brendan4, FLAG_HIDE_MAUVILLE_CITY_WALLY, 0xFFFF },
+ { MatchCall_Text_Brendan5, FLAG_RECEIVED_HM04, 0xFFFF },
+ { MatchCall_Text_Brendan6, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { MatchCall_Text_Brendan7, FLAG_DEFEATED_PETALBURG_GYM, 0xFFFF },
+ { MatchCall_Text_Brendan8, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { MatchCall_Text_Brendan9, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { MatchCall_Text_Brendan10, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { MatchCall_Text_Brendan11, FLAG_MET_TEAM_AQUA_HARBOR, 0xFFFF },
+ { MatchCall_Text_Brendan12, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { MatchCall_Text_Brendan13, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { MatchCall_Text_Brendan14, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { MatchCall_Text_Brendan15, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct4 sBrendanMatchCallHeader =
+static const struct MatchCallRival sBrendanMatchCallHeader =
{
- .type = 4,
- .gender = FEMALE, //Gender of player
+ .type = MC_TYPE_RIVAL,
+ .playerGender = FEMALE,
.flag = FLAG_ENABLE_RIVAL_MATCH_CALL,
- .desc = gMayBrendanMatchCallDesc,
- .name = gExpandedPlaceholder_Brendan,
+ .desc = gText_MayBrendanMatchCallDesc,
+ .name = gText_ExpandedPlaceholder_Brendan,
.textData = sBrendanTextScripts
};
static const match_call_text_data_t sWallyTextScripts[] = {
- { gText_Wally_Pokenav_2B4DE2, 0xFFFF, 0xFFFF },
- { gText_Wally_Pokenav_2B4E57, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
- { gText_Wally_Pokenav_2B4EA5, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
- { gText_Wally_Pokenav_2B4F41, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Wally_Pokenav_2B4FF3, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
- { gText_Wally_Pokenav_2B50B1, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
- { gText_Wally_Pokenav_2B5100, FLAG_DEFEATED_WALLY_VICTORY_ROAD, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Wally1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Wally2, FLAG_RUSTURF_TUNNEL_OPENED, 0xFFFF },
+ { MatchCall_Text_Wally3, FLAG_DEFEATED_LAVARIDGE_GYM, 0xFFFF },
+ { MatchCall_Text_Wally4, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { MatchCall_Text_Wally5, FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, 0xFFFF },
+ { MatchCall_Text_Wally6, FLAG_KYOGRE_ESCAPED_SEAFLOOR_CAVERN, 0xFFFF },
+ { MatchCall_Text_Wally7, FLAG_DEFEATED_WALLY_VICTORY_ROAD, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-const struct MatchCallSubstruct2 sWallyAdditionalData[] = {
+const struct MatchCallLocationOverride sWallyLocationData[] = {
{ FLAG_HIDE_MAUVILLE_CITY_WALLY, MAPSEC_VERDANTURF_TOWN },
{ FLAG_GROUDON_AWAKENED_MAGMA_HIDEOUT, MAPSEC_NONE },
{ FLAG_HIDE_VICTORY_ROAD_ENTRANCE_WALLY, MAPSEC_VICTORY_ROAD },
{ 0xFFFF, MAPSEC_NONE }
};
-static const struct MatchCallStruct2 sWallyMatchCallHeader =
+static const struct MatchCallWally sWallyMatchCallHeader =
{
- .type = 2,
+ .type = MC_TYPE_WALLY,
.mapSec = 0,
.flag = FLAG_ENABLE_WALLY_MATCH_CALL,
.rematchTableIdx = REMATCH_WALLY_3,
- .desc = gWallyMatchCallDesc,
+ .desc = gText_WallyMatchCallDesc,
.textData = sWallyTextScripts,
- .v10 = sWallyAdditionalData
+ .locationData = sWallyLocationData
};
static const match_call_text_data_t sScottTextScripts[] = {
- { gText_Scott_Pokenav_2B5184, 0xFFFF, 0xFFFF },
- { gText_Scott_Pokenav_2B5275, FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, 0xFFFF },
- { gText_Scott_Pokenav_2B5323, FLAG_RECEIVED_CASTFORM, 0xFFFF },
- { gText_Scott_Pokenav_2B53DB, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
- { gText_Scott_Pokenav_2B54A5, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
- { gText_Scott_Pokenav_2B5541, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
- { gText_Scott_Pokenav_2B56CA, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Scott1, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Scott2, FLAG_DEFEATED_EVIL_TEAM_MT_CHIMNEY, 0xFFFF },
+ { MatchCall_Text_Scott3, FLAG_RECEIVED_CASTFORM, 0xFFFF },
+ { MatchCall_Text_Scott4, FLAG_RECEIVED_RED_OR_BLUE_ORB, 0xFFFF },
+ { MatchCall_Text_Scott5, FLAG_TEAM_AQUA_ESCAPED_IN_SUBMARINE, 0xFFFF },
+ { MatchCall_Text_Scott6, FLAG_DEFEATED_SOOTOPOLIS_GYM, 0xFFFF },
+ { MatchCall_Text_Scott7, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct0 sScottMatchCallHeader =
+static const struct MatchCallStructNPC sScottMatchCallHeader =
{
.type = 0,
.mapSec = MAPSEC_NONE,
.flag = FLAG_ENABLE_SCOTT_MATCH_CALL,
- .desc = gScottMatchCallDesc,
- .name = gScottMatchCallName,
+ .desc = gText_ScottMatchCallDesc,
+ .name = gText_ScottMatchCallName,
.textData = sScottTextScripts
};
static const match_call_text_data_t sRoxanneTextScripts[] = {
- { gText_Roxanne_Pokenav_2B2456, 0xFFFE, 0xFFFF },
- { gText_Roxanne_Pokenav_2B250E, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B25C1, 0xFFFF, 0xFFFF },
- { gText_Roxanne_Pokenav_2B2607, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Roxanne1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Roxanne2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Roxanne3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Roxanne4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sRoxanneMatchCallHeader =
+static const struct MatchCallStructTrainer sRoxanneMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_RUSTBORO_CITY,
.flag = FLAG_ENABLE_ROXANNE_MATCH_CALL,
.rematchTableIdx = REMATCH_ROXANNE,
- .desc = gRoxanneMatchCallDesc,
+ .desc = gText_RoxanneMatchCallDesc,
.name = NULL,
.textData = sRoxanneTextScripts
};
static const match_call_text_data_t sBrawlyTextScripts[] = {
- { gText_Brawly_Pokenav_2B2659, 0xFFFE, 0xFFFF },
- { gText_Brawly_Pokenav_2B275D, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B286F, 0xFFFF, 0xFFFF },
- { gText_Brawly_Pokenav_2B28D1, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Brawly1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Brawly2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Brawly3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Brawly4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sBrawlyMatchCallHeader =
+static const struct MatchCallStructTrainer sBrawlyMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_DEWFORD_TOWN,
.flag = FLAG_ENABLE_BRAWLY_MATCH_CALL,
.rematchTableIdx = REMATCH_BRAWLY,
- .desc = gBrawlyMatchCallDesc,
+ .desc = gText_BrawlyMatchCallDesc,
.name = NULL,
.textData = sBrawlyTextScripts
};
static const match_call_text_data_t sWattsonTextScripts[] = {
- { gText_Wattson_Pokenav_2B2912, 0xFFFE, 0xFFFF },
- { gText_Wattson_Pokenav_2B29CA, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2AB6, 0xFFFF, 0xFFFF },
- { gText_Wattson_Pokenav_2B2B01, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Wattson1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Wattson2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Wattson3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Wattson4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sWattsonMatchCallHeader =
+static const struct MatchCallStructTrainer sWattsonMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_MAUVILLE_CITY,
.flag = FLAG_ENABLE_WATTSON_MATCH_CALL,
.rematchTableIdx = REMATCH_WATTSON,
- .desc = gWattsonMatchCallDesc,
+ .desc = gText_WattsonMatchCallDesc,
.name = NULL,
.textData = sWattsonTextScripts
};
static const match_call_text_data_t sFlanneryTextScripts[] = {
- { gText_Flannery_Pokenav_2B2B4D, 0xFFFE, 0xFFFF },
- { gText_Flannery_Pokenav_2B2C0E, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2CF1, 0xFFFF, 0xFFFF },
- { gText_Flannery_Pokenav_2B2D54, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Flannery1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Flannery2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Flannery3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Flannery4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sFlanneryMatchCallHeader =
+static const struct MatchCallStructTrainer sFlanneryMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_LAVARIDGE_TOWN,
.flag = FLAG_ENABLE_FLANNERY_MATCH_CALL,
.rematchTableIdx = REMATCH_FLANNERY,
- .desc = gFlanneryMatchCallDesc,
+ .desc = gText_FlanneryMatchCallDesc,
.name = NULL,
.textData = sFlanneryTextScripts
};
static const match_call_text_data_t sWinonaTextScripts[] = {
- { gText_Winona_Pokenav_2B2DA4, 0xFFFE, 0xFFFF },
- { gText_Winona_Pokenav_2B2E2B, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2EC2, 0xFFFF, 0xFFFF },
- { gText_Winona_Pokenav_2B2F16, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Winona1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Winona2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Winona3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Winona4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sWinonaMatchCallHeader =
+static const struct MatchCallStructTrainer sWinonaMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_FORTREE_CITY,
.flag = FLAG_ENABLE_WINONA_MATCH_CALL,
.rematchTableIdx = REMATCH_WINONA,
- .desc = gWinonaMatchCallDesc,
+ .desc = gText_WinonaMatchCallDesc,
.name = NULL,
.textData = sWinonaTextScripts
};
static const match_call_text_data_t sTateLizaTextScripts[] = {
- { gText_TateLiza_Pokenav_2B2F97, 0xFFFE, 0xFFFF },
- { gText_TateLiza_Pokenav_2B306E, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B3158, 0xFFFF, 0xFFFF },
- { gText_TateLiza_Pokenav_2B31CD, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_TateLiza1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_TateLiza2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_TateLiza3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_TateLiza4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sTateLizaMatchCallHeader =
+static const struct MatchCallStructTrainer sTateLizaMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_MOSSDEEP_CITY,
.flag = FLAG_ENABLE_TATE_AND_LIZA_MATCH_CALL,
.rematchTableIdx = REMATCH_TATE_AND_LIZA,
- .desc = gTateLizaMatchCallDesc,
+ .desc = gText_TateLizaMatchCallDesc,
.name = NULL,
.textData = sTateLizaTextScripts
};
static const match_call_text_data_t sJuanTextScripts[] = {
- { gText_Juan_Pokenav_2B3249, 0xFFFE, 0xFFFF },
- { gText_Juan_Pokenav_2B32EC, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B33AA, 0xFFFF, 0xFFFF },
- { gText_Juan_Pokenav_2B341E, FLAG_SYS_GAME_CLEAR, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Juan1, 0xFFFE, 0xFFFF },
+ { MatchCall_Text_Juan2, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Juan3, 0xFFFF, 0xFFFF },
+ { MatchCall_Text_Juan4, FLAG_SYS_GAME_CLEAR, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sJuanMatchCallHeader =
+static const struct MatchCallStructTrainer sJuanMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_SOOTOPOLIS_CITY,
.flag = FLAG_ENABLE_JUAN_MATCH_CALL,
.rematchTableIdx = REMATCH_JUAN,
- .desc = gJuanMatchCallDesc,
+ .desc = gText_JuanMatchCallDesc,
.name = NULL,
.textData = sJuanTextScripts
};
static const match_call_text_data_t sSidneyTextScripts[] = {
- { gText_Sidney_Pokenav_2B34CC, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Sidney, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sSidneyMatchCallHeader =
+static const struct MatchCallStructTrainer sSidneyMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_SIDNEY,
.rematchTableIdx = REMATCH_SIDNEY,
- .desc = gEliteFourMatchCallDesc,
+ .desc = gText_EliteFourMatchCallDesc,
.name = NULL,
.textData = sSidneyTextScripts
};
static const match_call_text_data_t sPhoebeTextScripts[] = {
- { gText_Phoebe_Pokenav_2B3561, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Phoebe, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sPhoebeMatchCallHeader =
+static const struct MatchCallStructTrainer sPhoebeMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_PHOEBE,
.rematchTableIdx = REMATCH_PHOEBE,
- .desc = gEliteFourMatchCallDesc,
+ .desc = gText_EliteFourMatchCallDesc,
.name = NULL,
.textData = sPhoebeTextScripts
};
static const match_call_text_data_t sGlaciaTextScripts[] = {
- { gText_Glacia_Pokenav_2B35E4, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Glacia, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sGlaciaMatchCallHeader =
+static const struct MatchCallStructTrainer sGlaciaMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_GLACIA,
.rematchTableIdx = REMATCH_GLACIA,
- .desc = gEliteFourMatchCallDesc,
+ .desc = gText_EliteFourMatchCallDesc,
.name = NULL,
.textData = sGlaciaTextScripts
};
static const match_call_text_data_t sDrakeTextScripts[] = {
- { gText_Drake_Pokenav_2B368B, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Drake, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sDrakeMatchCallHeader =
+static const struct MatchCallStructTrainer sDrakeMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_DRAKE,
.rematchTableIdx = REMATCH_DRAKE,
- .desc = gEliteFourMatchCallDesc,
+ .desc = gText_EliteFourMatchCallDesc,
.name = NULL,
.textData = sDrakeTextScripts
};
static const match_call_text_data_t sWallaceTextScripts[] = {
- { gText_Wallace_Pokenav_2B3790, 0xFFFF, 0xFFFF },
- { NULL, 0xFFFF, 0xFFFF }
+ { MatchCall_Text_Wallace, 0xFFFF, 0xFFFF },
+ { NULL, 0xFFFF, 0xFFFF }
};
-static const struct MatchCallStruct5 sWallaceMatchCallHeader =
+static const struct MatchCallStructTrainer sWallaceMatchCallHeader =
{
- .type = 5,
+ .type = MC_TYPE_LEADER,
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_WALLACE,
.rematchTableIdx = REMATCH_WALLACE,
- .desc = gChampionMatchCallDesc,
+ .desc = gText_ChampionMatchCallDesc,
.name = NULL,
.textData = sWallaceTextScripts
};
static const match_call_t sMatchCallHeaders[] = {
- [MC_HEADER_MR_STONE] = {.type0 = &sMrStoneMatchCallHeader},
- [MC_HEADER_PROF_BIRCH] = {.type3 = &sProfBirchMatchCallHeader},
- [MC_HEADER_BRENDAN] = {.type4 = &sBrendanMatchCallHeader},
- [MC_HEADER_MAY] = {.type4 = &sMayMatchCallHeader},
- [MC_HEADER_WALLY] = {.type2 = &sWallyMatchCallHeader},
- [MC_HEADER_NORMAN] = {.type5 = &sNormanMatchCallHeader},
- [MC_HEADER_MOM] = {.type0 = &sMomMatchCallHeader},
- [MC_HEADER_STEVEN] = {.type0 = &sStevenMatchCallHeader},
- [MC_HEADER_SCOTT] = {.type0 = &sScottMatchCallHeader},
- [MC_HEADER_ROXANNE] = {.type5 = &sRoxanneMatchCallHeader},
- [MC_HEADER_BRAWLY] = {.type5 = &sBrawlyMatchCallHeader},
- [MC_HEADER_WATTSON] = {.type5 = &sWattsonMatchCallHeader},
- [MC_HEADER_FLANNERY] = {.type5 = &sFlanneryMatchCallHeader},
- [MC_HEADER_WINONA] = {.type5 = &sWinonaMatchCallHeader},
- [MC_HEADER_TATE_LIZA] = {.type5 = &sTateLizaMatchCallHeader},
- [MC_HEADER_JUAN] = {.type5 = &sJuanMatchCallHeader},
- [MC_HEADER_SIDNEY] = {.type5 = &sSidneyMatchCallHeader},
- [MC_HEADER_PHOEBE] = {.type5 = &sPhoebeMatchCallHeader},
- [MC_HEADER_GLACIA] = {.type5 = &sGlaciaMatchCallHeader},
- [MC_HEADER_DRAKE] = {.type5 = &sDrakeMatchCallHeader},
- [MC_HEADER_WALLACE] = {.type5 = &sWallaceMatchCallHeader}
+ [MC_HEADER_MR_STONE] = {.npc = &sMrStoneMatchCallHeader},
+ [MC_HEADER_PROF_BIRCH] = {.birch = &sProfBirchMatchCallHeader},
+ [MC_HEADER_BRENDAN] = {.rival = &sBrendanMatchCallHeader},
+ [MC_HEADER_MAY] = {.rival = &sMayMatchCallHeader},
+ [MC_HEADER_WALLY] = {.wally = &sWallyMatchCallHeader},
+ [MC_HEADER_NORMAN] = {.leader = &sNormanMatchCallHeader},
+ [MC_HEADER_MOM] = {.npc = &sMomMatchCallHeader},
+ [MC_HEADER_STEVEN] = {.npc = &sStevenMatchCallHeader},
+ [MC_HEADER_SCOTT] = {.npc = &sScottMatchCallHeader},
+ [MC_HEADER_ROXANNE] = {.leader = &sRoxanneMatchCallHeader},
+ [MC_HEADER_BRAWLY] = {.leader = &sBrawlyMatchCallHeader},
+ [MC_HEADER_WATTSON] = {.leader = &sWattsonMatchCallHeader},
+ [MC_HEADER_FLANNERY] = {.leader = &sFlanneryMatchCallHeader},
+ [MC_HEADER_WINONA] = {.leader = &sWinonaMatchCallHeader},
+ [MC_HEADER_TATE_LIZA] = {.leader = &sTateLizaMatchCallHeader},
+ [MC_HEADER_JUAN] = {.leader = &sJuanMatchCallHeader},
+ [MC_HEADER_SIDNEY] = {.leader = &sSidneyMatchCallHeader},
+ [MC_HEADER_PHOEBE] = {.leader = &sPhoebeMatchCallHeader},
+ [MC_HEADER_GLACIA] = {.leader = &sGlaciaMatchCallHeader},
+ [MC_HEADER_DRAKE] = {.leader = &sDrakeMatchCallHeader},
+ [MC_HEADER_WALLACE] = {.leader = &sWallaceMatchCallHeader}
};
-static bool32 (*const sMatchCallGetFlagFuncs[])(match_call_t) = {
- MatchCallGetFlag_Type0,
- MatchCallGetFlag_Type1,
- MatchCallGetFlag_Type2,
- MatchCallGetFlag_Type4,
- MatchCallGetFlag_Type3
+static bool32 (*const sMatchCallGetEnabledFuncs[])(match_call_t) = {
+ MatchCall_GetEnabled_NPC,
+ MatchCall_GetEnabled_Trainer,
+ MatchCall_GetEnabled_Wally,
+ MatchCall_GetEnabled_Rival,
+ MatchCall_GetEnabled_Birch
};
static u8 (*const sMatchCallGetMapSecFuncs[])(match_call_t) = {
- MatchCallGetMapSec_Type0,
- MatchCallGetMapSec_Type1,
- MatchCallGetMapSec_Type2,
- MatchCallGetMapSec_Type4,
- MatchCallGetMapSec_Type3
+ MatchCall_GetMapSec_NPC,
+ MatchCall_GetMapSec_Trainer,
+ MatchCall_GetMapSec_Wally,
+ MatchCall_GetMapSec_Rival,
+ MatchCall_GetMapSec_Birch
};
static bool32 (*const sMatchCall_IsRematchableFunctions[])(match_call_t) = {
- MatchCall_IsRematchable_Type0,
- MatchCall_IsRematchable_Type1,
- MatchCall_IsRematchable_Type2,
- MatchCall_IsRematchable_Type4,
- MatchCall_IsRematchable_Type3
+ MatchCall_IsRematchable_NPC,
+ MatchCall_IsRematchable_Trainer,
+ MatchCall_IsRematchable_Wally,
+ MatchCall_IsRematchable_Rival,
+ MatchCall_IsRematchable_Birch
};
static bool32 (*const sMatchCall_HasCheckPageFunctions[])(match_call_t) = {
- MatchCall_HasCheckPage_Type0,
- MatchCall_HasCheckPage_Type1,
- MatchCall_HasCheckPage_Type2,
- MatchCall_HasCheckPage_Type4,
- MatchCall_HasCheckPage_Type3
+ MatchCall_HasCheckPage_NPC,
+ MatchCall_HasCheckPage_Trainer,
+ MatchCall_HasCheckPage_Wally,
+ MatchCall_HasCheckPage_Rival,
+ MatchCall_HasCheckPage_Birch
};
static u32 (*const sMatchCall_GetRematchTableIdxFunctions[])(match_call_t) = {
- MatchCall_GetRematchTableIdx_Type0,
- MatchCall_GetRematchTableIdx_Type1,
- MatchCall_GetRematchTableIdx_Type2,
- MatchCall_GetRematchTableIdx_Type4,
- MatchCall_GetRematchTableIdx_Type3
+ MatchCall_GetRematchTableIdx_NPC,
+ MatchCall_GetRematchTableIdx_Trainer,
+ MatchCall_GetRematchTableIdx_Wally,
+ MatchCall_GetRematchTableIdx_Rival,
+ MatchCall_GetRematchTableIdx_Birch
};
static void (*const sMatchCall_GetMessageFunctions[])(match_call_t, u8 *) = {
- MatchCall_GetMessage_Type0,
- MatchCall_GetMessage_Type1,
- MatchCall_GetMessage_Type2,
- MatchCall_GetMessage_Type4,
- MatchCall_GetMessage_Type3
+ MatchCall_GetMessage_NPC,
+ MatchCall_GetMessage_Trainer,
+ MatchCall_GetMessage_Wally,
+ MatchCall_GetMessage_Rival,
+ MatchCall_GetMessage_Birch
};
static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8 **, const u8 **) = {
- MatchCall_GetNameAndDesc_Type0,
- MatchCall_GetNameAndDesc_Type1,
- MatchCall_GetNameAndDesc_Type2,
- MatchCall_GetNameAndDesc_Type4,
- MatchCall_GetNameAndDesc_Type3
+ MatchCall_GetNameAndDesc_NPC,
+ MatchCall_GetNameAndDesc_Trainer,
+ MatchCall_GetNameAndDesc_Wally,
+ MatchCall_GetNameAndDesc_Rival,
+ MatchCall_GetNameAndDesc_Birch
};
-static const struct MatchCallOverride sMatchCallCheckPageOverrides[] = {
- { MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, 0xFFFF, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle } }, // STEVEN
- { MC_HEADER_STEVEN, FACILITY_CLASS_STEVEN, FLAG_DEFEATED_MOSSDEEP_GYM, { gMatchCallStevenStrategyText, gMatchCall_StevenTrainersPokemonText, gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle, gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle } }, // STEVEN
- { MC_HEADER_BRENDAN, FACILITY_CLASS_BRENDAN, 0xFFFF, { gMatchCall_BrendanStrategyText, gMatchCall_BrendanTrainersPokemonText, gMatchCall_BrendanSelfIntroductionText_Line1, gMatchCall_BrendanSelfIntroductionText_Line2 } }, // Brendan
- { MC_HEADER_MAY, FACILITY_CLASS_MAY, 0xFFFF, { gMatchCall_MayStrategyText, gMatchCall_MayTrainersPokemonText, gMatchCall_MaySelfIntroductionText_Line1, gMatchCall_MaySelfIntroductionText_Line2 } } // May
+static const struct MatchCallCheckPageOverride sCheckPageOverrides[] = {
+ {
+ .idx = MC_HEADER_STEVEN,
+ .facilityClass = FACILITY_CLASS_STEVEN,
+ .flag = 0xFFFF,
+ .flavorTexts = {
+ [CHECK_PAGE_STRATEGY] = gText_MatchCallSteven_Strategy,
+ [CHECK_PAGE_POKEMON] = gText_MatchCallSteven_Pokemon,
+ [CHECK_PAGE_INTRO_1] = gText_MatchCallSteven_Intro1_BeforeMeteorFallsBattle,
+ [CHECK_PAGE_INTRO_2] = gText_MatchCallSteven_Intro2_BeforeMeteorFallsBattle
+ }
+ },
+ {
+ .idx = MC_HEADER_STEVEN,
+ .facilityClass = FACILITY_CLASS_STEVEN,
+ .flag = FLAG_DEFEATED_MOSSDEEP_GYM,
+ .flavorTexts = {
+ [CHECK_PAGE_STRATEGY] = gText_MatchCallSteven_Strategy,
+ [CHECK_PAGE_POKEMON] = gText_MatchCallSteven_Pokemon,
+ [CHECK_PAGE_INTRO_1] = gText_MatchCallSteven_Intro1_AfterMeteorFallsBattle,
+ [CHECK_PAGE_INTRO_2] = gText_MatchCallSteven_Intro2_AfterMeteorFallsBattle
+ }
+ },
+ {
+ .idx = MC_HEADER_BRENDAN,
+ .facilityClass = FACILITY_CLASS_BRENDAN,
+ .flag = 0xFFFF,
+ .flavorTexts = MCFLAVOR(Brendan)
+ },
+ {
+ .idx = MC_HEADER_MAY,
+ .facilityClass = FACILITY_CLASS_MAY,
+ .flag = 0xFFFF,
+ .flavorTexts = MCFLAVOR(May)
+ }
};
// .text
@@ -821,17 +700,17 @@ static u32 MatchCallGetFunctionIndex(match_call_t matchCall)
{
switch (matchCall.common->type)
{
- case 0:
default:
+ case MC_TYPE_NPC:
return 0;
- case 1:
- case 5:
+ case MC_TYPE_TRAINER:
+ case MC_TYPE_LEADER:
return 1;
- case 2:
+ case MC_TYPE_WALLY:
return 2;
- case 4:
+ case MC_TYPE_RIVAL:
return 3;
- case 3:
+ case MC_TYPE_BIRCH:
return 4;
}
}
@@ -853,93 +732,93 @@ s32 GetRematchIdxByTrainerIdx(s32 trainerIdx)
return -1;
}
-bool32 MatchCallFlagGetByIndex(u32 idx)
+bool32 MatchCall_GetEnabled(u32 idx)
{
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return FALSE;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
- return sMatchCallGetFlagFuncs[i](matchCall);
+ return sMatchCallGetEnabledFuncs[i](matchCall);
}
-static bool32 MatchCallGetFlag_Type0(match_call_t matchCall)
+static bool32 MatchCall_GetEnabled_NPC(match_call_t matchCall)
{
- if (matchCall.type0->flag == 0xffff)
+ if (matchCall.npc->flag == 0xFFFF)
return TRUE;
- return FlagGet(matchCall.type0->flag);
+ return FlagGet(matchCall.npc->flag);
}
-static bool32 MatchCallGetFlag_Type1(match_call_t matchCall)
+static bool32 MatchCall_GetEnabled_Trainer(match_call_t matchCall)
{
- if (matchCall.type1->flag == 0xffff)
+ if (matchCall.trainer->flag == 0xFFFF)
return TRUE;
- return FlagGet(matchCall.type1->flag);
+ return FlagGet(matchCall.trainer->flag);
}
-static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
+static bool32 MatchCall_GetEnabled_Wally(match_call_t matchCall)
{
- if (matchCall.type2->flag == 0xffff)
+ if (matchCall.wally->flag == 0xFFFF)
return TRUE;
- return FlagGet(matchCall.type2->flag);
+ return FlagGet(matchCall.wally->flag);
}
-static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
+static bool32 MatchCall_GetEnabled_Rival(match_call_t matchCall)
{
- if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
+ if (matchCall.rival->playerGender != gSaveBlock2Ptr->playerGender)
return FALSE;
- if (matchCall.type4->flag == 0xffff)
+ if (matchCall.rival->flag == 0xFFFF)
return TRUE;
- return FlagGet(matchCall.type4->flag);
+ return FlagGet(matchCall.rival->flag);
}
-static bool32 MatchCallGetFlag_Type3(match_call_t matchCall)
+static bool32 MatchCall_GetEnabled_Birch(match_call_t matchCall)
{
- return FlagGet(matchCall.type3->flag);
+ return FlagGet(matchCall.birch->flag);
}
-u8 MatchCallMapSecGetByIndex(u32 idx)
+u8 MatchCall_GetMapSec(u32 idx)
{
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return 0;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
return sMatchCallGetMapSecFuncs[i](matchCall);
}
-static u8 MatchCallGetMapSec_Type0(match_call_t matchCall)
+static u8 MatchCall_GetMapSec_NPC(match_call_t matchCall)
{
- return matchCall.type0->mapSec;
+ return matchCall.npc->mapSec;
}
-static u8 MatchCallGetMapSec_Type1(match_call_t matchCall)
+static u8 MatchCall_GetMapSec_Trainer(match_call_t matchCall)
{
- return matchCall.type1->mapSec;
+ return matchCall.trainer->mapSec;
}
-static u8 MatchCallGetMapSec_Type2(match_call_t matchCall)
+static u8 MatchCall_GetMapSec_Wally(match_call_t matchCall)
{
s32 i;
- for (i = 0; matchCall.type2->v10[i].flag != 0xffff; i++)
+ for (i = 0; matchCall.wally->locationData[i].flag != 0xFFFF; i++)
{
- if (!FlagGet(matchCall.type2->v10[i].flag))
+ if (!FlagGet(matchCall.wally->locationData[i].flag))
break;
}
- return matchCall.type2->v10[i].mapSec;
+ return matchCall.wally->locationData[i].mapSec;
}
-static u8 MatchCallGetMapSec_Type4(match_call_t matchCall)
+static u8 MatchCall_GetMapSec_Rival(match_call_t matchCall)
{
return MAPSEC_NONE;
}
-static u8 MatchCallGetMapSec_Type3(match_call_t matchCall)
+static u8 MatchCall_GetMapSec_Birch(match_call_t matchCall)
{
return MAPSEC_NONE;
}
@@ -949,36 +828,36 @@ bool32 MatchCall_IsRematchable(u32 idx)
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return 0;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
return sMatchCall_IsRematchableFunctions[i](matchCall);
}
-static bool32 MatchCall_IsRematchable_Type0(match_call_t matchCall)
+static bool32 MatchCall_IsRematchable_NPC(match_call_t matchCall)
{
return FALSE;
}
-static bool32 MatchCall_IsRematchable_Type1(match_call_t matchCall)
+static bool32 MatchCall_IsRematchable_Trainer(match_call_t matchCall)
{
- if (matchCall.type1->rematchTableIdx >= REMATCH_ELITE_FOUR_ENTRIES)
+ if (matchCall.trainer->rematchTableIdx >= REMATCH_ELITE_FOUR_ENTRIES)
return FALSE;
- return gSaveBlock1Ptr->trainerRematches[matchCall.type1->rematchTableIdx] ? TRUE : FALSE;
+ return gSaveBlock1Ptr->trainerRematches[matchCall.trainer->rematchTableIdx] ? TRUE : FALSE;
}
-static bool32 MatchCall_IsRematchable_Type2(match_call_t matchCall)
+static bool32 MatchCall_IsRematchable_Wally(match_call_t matchCall)
{
- return gSaveBlock1Ptr->trainerRematches[matchCall.type2->rematchTableIdx] ? TRUE : FALSE;
+ return gSaveBlock1Ptr->trainerRematches[matchCall.wally->rematchTableIdx] ? TRUE : FALSE;
}
-static bool32 MatchCall_IsRematchable_Type4(match_call_t matchCall)
+static bool32 MatchCall_IsRematchable_Rival(match_call_t matchCall)
{
return FALSE;
}
-static bool32 MatchCall_IsRematchable_Type3(match_call_t matchCall)
+static bool32 MatchCall_IsRematchable_Birch(match_call_t matchCall)
{
return FALSE;
}
@@ -988,41 +867,41 @@ bool32 MatchCall_HasCheckPage(u32 idx)
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return FALSE;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
if (sMatchCall_HasCheckPageFunctions[i](matchCall))
return TRUE;
- for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++)
+ for (i = 0; i < ARRAY_COUNT(sCheckPageOverrides); i++)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
+ if (sCheckPageOverrides[i].idx == idx)
return TRUE;
}
return FALSE;
}
-static bool32 MatchCall_HasCheckPage_Type0(match_call_t matchCall)
+static bool32 MatchCall_HasCheckPage_NPC(match_call_t matchCall)
{
return FALSE;
}
-static bool32 MatchCall_HasCheckPage_Type1(match_call_t matchCall)
+static bool32 MatchCall_HasCheckPage_Trainer(match_call_t matchCall)
{
return TRUE;
}
-static bool32 MatchCall_HasCheckPage_Type2(match_call_t matchCall)
+static bool32 MatchCall_HasCheckPage_Wally(match_call_t matchCall)
{
return TRUE;
}
-static bool32 MatchCall_HasCheckPage_Type4(match_call_t matchCall)
+static bool32 MatchCall_HasCheckPage_Rival(match_call_t matchCall)
{
return FALSE;
}
-static bool32 MatchCall_HasCheckPage_Type3(match_call_t matchCall)
+static bool32 MatchCall_HasCheckPage_Birch(match_call_t matchCall)
{
return FALSE;
}
@@ -1032,34 +911,34 @@ u32 MatchCall_GetRematchTableIdx(u32 idx)
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return REMATCH_TABLE_ENTRIES;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
return sMatchCall_GetRematchTableIdxFunctions[i](matchCall);
}
-static u32 MatchCall_GetRematchTableIdx_Type0(match_call_t matchCall)
+static u32 MatchCall_GetRematchTableIdx_NPC(match_call_t matchCall)
{
return REMATCH_TABLE_ENTRIES;
}
-static u32 MatchCall_GetRematchTableIdx_Type1(match_call_t matchCall)
+static u32 MatchCall_GetRematchTableIdx_Trainer(match_call_t matchCall)
{
- return matchCall.type1->rematchTableIdx;
+ return matchCall.trainer->rematchTableIdx;
}
-static u32 MatchCall_GetRematchTableIdx_Type2(match_call_t matchCall)
+static u32 MatchCall_GetRematchTableIdx_Wally(match_call_t matchCall)
{
- return matchCall.type2->rematchTableIdx;
+ return matchCall.wally->rematchTableIdx;
}
-static u32 MatchCall_GetRematchTableIdx_Type4(match_call_t matchCall)
+static u32 MatchCall_GetRematchTableIdx_Rival(match_call_t matchCall)
{
return REMATCH_TABLE_ENTRIES;
}
-static u32 MatchCall_GetRematchTableIdx_Type3(match_call_t matchCall)
+static u32 MatchCall_GetRematchTableIdx_Birch(match_call_t matchCall)
{
return REMATCH_TABLE_ENTRIES;
}
@@ -1069,76 +948,77 @@ void MatchCall_GetMessage(u32 idx, u8 *dest)
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
sMatchCall_GetMessageFunctions[i](matchCall, dest);
}
-static void MatchCall_GetMessage_Type0(match_call_t matchCall, u8 *dest)
+static void MatchCall_GetMessage_NPC(match_call_t matchCall, u8 *dest)
{
- sub_81D1920(matchCall.type0->textData, dest);
+ MatchCall_BufferCallMessageText(matchCall.npc->textData, dest);
}
-static void MatchCall_GetMessage_Type1(match_call_t matchCall, u8 *dest)
+// This is the one functional difference between MC_TYPE_TRAINER and MC_TYPE_LEADER
+static void MatchCall_GetMessage_Trainer(match_call_t matchCall, u8 *dest)
{
- if (matchCall.common->type != 5)
- sub_81D1920(matchCall.type1->textData, dest);
+ if (matchCall.common->type != MC_TYPE_LEADER)
+ MatchCall_BufferCallMessageText(matchCall.trainer->textData, dest);
else
- sub_81D199C(matchCall.type5->textData, matchCall.type5->rematchTableIdx, dest);
+ MatchCall_BufferCallMessageTextByRematchTeam(matchCall.leader->textData, matchCall.leader->rematchTableIdx, dest);
}
-static void MatchCall_GetMessage_Type2(match_call_t matchCall, u8 *dest)
+static void MatchCall_GetMessage_Wally(match_call_t matchCall, u8 *dest)
{
- sub_81D1920(matchCall.type2->textData, dest);
+ MatchCall_BufferCallMessageText(matchCall.wally->textData, dest);
}
-static void MatchCall_GetMessage_Type4(match_call_t matchCall, u8 *dest)
+static void MatchCall_GetMessage_Rival(match_call_t matchCall, u8 *dest)
{
- sub_81D1920(matchCall.type4->textData, dest);
+ MatchCall_BufferCallMessageText(matchCall.rival->textData, dest);
}
-static void MatchCall_GetMessage_Type3(match_call_t matchCall, u8 *dest)
+static void MatchCall_GetMessage_Birch(match_call_t matchCall, u8 *dest)
{
- sub_8197080(dest);
+ BufferPokedexRatingForMatchCall(dest);
}
-static void sub_81D1920(const match_call_text_data_t *sub0, u8 *dest)
+static void MatchCall_BufferCallMessageText(const match_call_text_data_t *textData, u8 *dest)
{
u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
+ for (i = 0; textData[i].text != NULL; i++)
;
if (i)
i--;
while (i)
{
- if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE)
+ if (textData[i].flag != 0xFFFF && FlagGet(textData[i].flag) == TRUE)
break;
i--;
}
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
+ if (textData[i].flag2 != 0xFFFF)
+ FlagSet(textData[i].flag2);
+ StringExpandPlaceholders(dest, textData[i].text);
}
-static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
+static void MatchCall_BufferCallMessageTextByRematchTeam(const match_call_text_data_t *textData, u16 idx, u8 *dest)
{
u32 i;
- for (i = 0; sub0[i].text != NULL; i++)
+ for (i = 0; textData[i].text != NULL; i++)
{
- if (sub0[i].flag == 0xfffe)
+ if (textData[i].flag == 0xFFFE)
break;
- if (sub0[i].flag != 0xffff && !FlagGet(sub0[i].flag))
+ if (textData[i].flag != 0xFFFF && !FlagGet(textData[i].flag))
break;
}
- if (sub0[i].flag != 0xfffe)
+ if (textData[i].flag != 0xFFFE)
{
if (i)
i--;
- if (sub0[i].flag2 != 0xffff)
- FlagSet(sub0[i].flag2);
- StringExpandPlaceholders(dest, sub0[i].text);
+ if (textData[i].flag2 != 0xFFFF)
+ FlagSet(textData[i].flag2);
+ StringExpandPlaceholders(dest, textData[i].text);
}
else
{
@@ -1155,54 +1035,54 @@ static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
} while (0);
}
- StringExpandPlaceholders(dest, sub0[i].text);
+ StringExpandPlaceholders(dest, textData[i].text);
}
}
-void sub_81D1A78(u32 idx, const u8 **desc, const u8 **name)
+void MatchCall_GetNameAndDesc(u32 idx, const u8 **desc, const u8 **name)
{
match_call_t matchCall;
u32 i;
- if (idx > ARRAY_COUNT(sMatchCallHeaders) - 1)
+ if (idx >= ARRAY_COUNT(sMatchCallHeaders))
return;
matchCall = sMatchCallHeaders[idx];
i = MatchCallGetFunctionIndex(matchCall);
sMatchCall_GetNameAndDescFunctions[i](matchCall, desc, name);
}
-static void MatchCall_GetNameAndDesc_Type0(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void MatchCall_GetNameAndDesc_NPC(match_call_t matchCall, const u8 **desc, const u8 **name)
{
- *desc = matchCall.type0->desc;
- *name = matchCall.type0->name;
+ *desc = matchCall.npc->desc;
+ *name = matchCall.npc->name;
}
-static void MatchCall_GetNameAndDesc_Type1(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void MatchCall_GetNameAndDesc_Trainer(match_call_t matchCall, const u8 **desc, const u8 **name)
{
match_call_t _matchCall = matchCall;
- if (_matchCall.type1->name == NULL)
- MatchCall_GetNameAndDescByRematchIdx(_matchCall.type1->rematchTableIdx, desc, name);
+ if (_matchCall.trainer->name == NULL)
+ MatchCall_GetNameAndDescByRematchIdx(_matchCall.trainer->rematchTableIdx, desc, name);
else
- *name = _matchCall.type1->name;
- *desc = _matchCall.type1->desc;
+ *name = _matchCall.trainer->name;
+ *desc = _matchCall.trainer->desc;
}
-static void MatchCall_GetNameAndDesc_Type2(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void MatchCall_GetNameAndDesc_Wally(match_call_t matchCall, const u8 **desc, const u8 **name)
{
- MatchCall_GetNameAndDescByRematchIdx(matchCall.type2->rematchTableIdx, desc, name);
- *desc = matchCall.type2->desc;
+ MatchCall_GetNameAndDescByRematchIdx(matchCall.wally->rematchTableIdx, desc, name);
+ *desc = matchCall.wally->desc;
}
-static void MatchCall_GetNameAndDesc_Type4(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void MatchCall_GetNameAndDesc_Rival(match_call_t matchCall, const u8 **desc, const u8 **name)
{
- *desc = matchCall.type4->desc;
- *name = matchCall.type4->name;
+ *desc = matchCall.rival->desc;
+ *name = matchCall.rival->name;
}
-static void MatchCall_GetNameAndDesc_Type3(match_call_t matchCall, const u8 **desc, const u8 **name)
+static void MatchCall_GetNameAndDesc_Birch(match_call_t matchCall, const u8 **desc, const u8 **name)
{
- *desc = matchCall.type3->desc;
- *name = matchCall.type3->name;
+ *desc = matchCall.birch->desc;
+ *name = matchCall.birch->name;
}
static void MatchCall_GetNameAndDescByRematchIdx(u32 idx, const u8 **desc, const u8 **name)
@@ -1216,21 +1096,21 @@ const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset)
{
u32 i;
- for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++)
+ for (i = 0; i < ARRAY_COUNT(sCheckPageOverrides); i++)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
+ if (sCheckPageOverrides[i].idx == idx)
{
while (1)
{
- if (i + 1 >= ARRAY_COUNT(sMatchCallCheckPageOverrides))
+ if (i + 1 >= ARRAY_COUNT(sCheckPageOverrides))
break;
- if (sMatchCallCheckPageOverrides[i + 1].idx != idx)
+ if (sCheckPageOverrides[i + 1].idx != idx)
break;
- if (!FlagGet(sMatchCallCheckPageOverrides[i + 1].flag))
+ if (!FlagGet(sCheckPageOverrides[i + 1].flag))
break;
i++;
}
- return sMatchCallCheckPageOverrides[i].flavorTexts[offset];
+ return sCheckPageOverrides[i].flavorTexts[offset];
}
}
return NULL;
@@ -1240,22 +1120,22 @@ int MatchCall_GetOverrideFacilityClass(u32 idx)
{
u32 i;
- for (i = 0; i < ARRAY_COUNT(sMatchCallCheckPageOverrides); i++)
+ for (i = 0; i < ARRAY_COUNT(sCheckPageOverrides); i++)
{
- if (sMatchCallCheckPageOverrides[i].idx == idx)
- return sMatchCallCheckPageOverrides[i].facilityClass;
+ if (sCheckPageOverrides[i].idx == idx)
+ return sCheckPageOverrides[i].facilityClass;
}
return -1;
}
-bool32 sub_81D1BF8(u32 idx)
+bool32 MatchCall_HasRematchId(u32 idx)
{
int i;
for (i = 0; i < (int)ARRAY_COUNT(sMatchCallHeaders); i++)
{
- u32 r0 = MatchCall_GetRematchTableIdx(i);
- if (r0 != REMATCH_TABLE_ENTRIES && r0 == idx)
+ u32 id = MatchCall_GetRematchTableIdx(i);
+ if (id != REMATCH_TABLE_ENTRIES && id == idx)
return TRUE;
}
return FALSE;
diff --git a/src/pokenav_match_call_ui.c b/src/pokenav_match_call_ui.c
index f8ae02b65..fd346393e 100644
--- a/src/pokenav_match_call_ui.c
+++ b/src/pokenav_match_call_ui.c
@@ -46,7 +46,7 @@ struct PokenavSub17Substruct
u32 unk28;
s32 unk2C;
u32 unk30;
- void (*unk34)(struct PokenavMonList *, u8*);
+ void (*unk34)(struct PokenavMatchCallEntries *, u8*);
void (*unk38)(u16, u32, u32);
struct Sprite *rightArrow;
struct Sprite *upArrow;
@@ -67,8 +67,8 @@ struct PokenavSub17
extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4);
void sub_81C82E4(struct PokenavSub17 *a0);
-bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3);
-void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1);
+bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3);
+void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(struct Sprite *sprite);
@@ -76,7 +76,7 @@ void ToggleMatchCallArrows(struct PokenavSub17Substruct *a0, u32 a1);
void sub_81C8FE0(struct PokenavSub17Substruct *a0);
void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8ED0(void);
-void sub_81C8E54(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2);
+static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2);
void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 a1);
void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
@@ -91,14 +91,14 @@ u32 LoopedTask_sub_81C83F0(s32 state);
u32 LoopedTask_sub_81C85A0(s32 state);
u32 LoopedTask_sub_81C8870(s32 state);
u32 LoopedTask_sub_81C8A28(s32 state);
-u32 LoopedTask_sub_81C8958(s32 state);
+u32 LoopedTask_PrintCheckPageInfo(s32 state);
static const u16 sMatchcallArrowPaletteData[] = INCBIN_U16("graphics/pokenav/arrows_matchcall.gbapal");
static const u32 sMatchcallArrowSpriteSheetData[] = INCBIN_U32("graphics/pokenav/arrows_matchcall.4bpp.lz");
EWRAM_DATA u32 gUnknown_0203CF44 = 0;
-bool32 sub_81C81D4(const struct BgTemplate *arg0, struct MatchCallListTemplate *arg1, s32 arg2)
+bool32 sub_81C81D4(const struct BgTemplate *arg0, struct PokenavListTemplate *arg1, s32 arg2)
{
struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
if (structPtr == NULL)
@@ -467,12 +467,12 @@ void sub_81C877C(void)
structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
}
-void sub_81C87AC(s16 a0)
+void PrintCheckPageInfo(s16 a0)
{
struct PokenavSub17 *structPtr = GetSubstructPtr(17);
structPtr->unk888.windowTopIndex += a0;
structPtr->unk89C = 0;
- structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8958, 6);
+ structPtr->unk8A0 = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
}
void sub_81C87F0(void)
@@ -496,6 +496,7 @@ void sub_81C8838(void)
CopyWindowToVram(structPtr->unk0.unk0.windowId, 1);
}
+// TODO:
u32 LoopedTask_sub_81C8870(s32 state)
{
struct PokenavSub17 *structPtr = GetSubstructPtr(17);
@@ -543,7 +544,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
return LT_FINISH;
}
-u32 LoopedTask_sub_81C8958(s32 state)
+u32 LoopedTask_PrintCheckPageInfo(s32 state)
{
struct PokenavSub17 *structPtr = GetSubstructPtr(17);
if (IsDma3ManagerBusyWithBgCopy())
@@ -558,22 +559,22 @@ u32 LoopedTask_sub_81C8958(s32 state)
PrintMatchCallFieldNames(&structPtr->unk0, 0);
break;
case 2:
- sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 0);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_STRATEGY);
break;
case 3:
PrintMatchCallFieldNames(&structPtr->unk0, 1);
break;
case 4:
- sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 1);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_POKEMON);
break;
case 5:
PrintMatchCallFieldNames(&structPtr->unk0, 2);
break;
case 6:
- sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 2);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_1);
break;
case 7:
- sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 3);
+ PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_2);
break;
default:
return LT_FINISH;
@@ -683,7 +684,7 @@ void sub_81C8B70(struct UnknownSubSubStruct_0203CF40 *a0, s32 a1, s32 a2)
}
for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--)
- sub_81CBD48(a0->windowId, a1);
+ ClearRematchPokeballIcon(a0->windowId, a1);
CopyWindowToVram(a0->windowId, 1);
}
@@ -735,11 +736,19 @@ void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 fieldId)
CopyWindowRectToVram(a0->unk0.windowId, 2, 0, top << 1, a0->unk0.unk4, 2);
}
-void sub_81C8E54(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 a2)
+static void PrintMatchCallFlavorText(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1, u32 checkPageEntry)
{
- static const u8 array[] = {2, 4, 6, 7};
- u32 r6 = (a1->unk0.unkA + array[a2]) & 0xF;
- const u8 *str = sub_81CAFD8(a0->windowTopIndex, a2);
+ // lines 1, 3, and 5 are the field names printed by PrintMatchCallFieldNames
+ static const u8 lineOffsets[CHECK_PAGE_ENTRY_COUNT] =
+ {
+ [CHECK_PAGE_STRATEGY] = 2,
+ [CHECK_PAGE_POKEMON] = 4,
+ [CHECK_PAGE_INTRO_1] = 6,
+ [CHECK_PAGE_INTRO_2] = 7
+ };
+
+ u32 r6 = (a1->unk0.unkA + lineOffsets[checkPageEntry]) & 0xF;
+ const u8 *str = GetMatchCallFlavorText(a0->windowTopIndex, checkPageEntry);
if (str != NULL)
{
@@ -925,9 +934,9 @@ void ToggleMatchCallVerticalArrows(bool32 shouldHide)
structPtr->unk0.downArrow->data[7] = shouldHide;
}
-void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1)
+void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1)
{
- a0->unk10 = a1->unk0;
+ a0->unk10 = a1->list.matchCallEntries;
a0->windowTopIndex = a1->unk6;
a0->listLength = a1->unk4;
a0->unkC = a1->unk8;
@@ -953,13 +962,13 @@ void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *
}
}
-bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct MatchCallListTemplate *a2, s32 a3)
+bool32 sub_81C91AC(struct PokenavSub17Substruct *a0, const struct BgTemplate *a1, struct PokenavListTemplate *a2, s32 a3)
{
struct WindowTemplate window;
a0->unk0.bg = a1->bg;
a0->unk0.unk6 = a3;
- a0->unk34 = a2->unk10;
+ a0->unk34 = a2->listFunc.unk10_2;
a0->unk38 = a2->unk14;
a0->unk0.unk1 = a2->unkD;
a0->unk0.unk2 = a2->unk9;
diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c
index b5bbc4b74..8bf3ebd2a 100644
--- a/src/pokenav_unk_1.c
+++ b/src/pokenav_unk_1.c
@@ -64,7 +64,7 @@ bool32 PokenavCallback_Init_0(void)
state->menuType = GetPokenavMainMenuType();
state->cursorPos = 0;
state->descriptionId = 0;
- state->helpBarIndex = 0;
+ state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state);
return TRUE;
}
@@ -78,7 +78,7 @@ bool32 PokenavCallback_Init_4(void)
state->menuType = GetPokenavMainMenuType();
state->cursorPos = 2;
state->descriptionId = 2;
- state->helpBarIndex = 0;
+ state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state);
return TRUE;
}
@@ -105,7 +105,7 @@ bool32 PokenavCallback_Init_2(void)
state->menuType = 3;
state->cursorPos = 0;
state->descriptionId = 5;
- state->helpBarIndex = 0;
+ state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state);
return TRUE;
}
@@ -119,7 +119,7 @@ bool32 PokenavCallback_Init_3(void)
state->menuType = 4;
state->cursorPos = sub_81C76AC();
state->descriptionId = state->cursorPos + 8;
- state->helpBarIndex = 0;
+ state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state);
return TRUE;
}
@@ -151,9 +151,9 @@ static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
default:
case POKENAV_MODE_NORMAL:
return sub_81C943C;
- case POKENAV_MODE_FORCE_CALL_1:
+ case POKENAV_MODE_FORCE_CALL_READY:
return sub_81C9520;
- case POKENAV_MODE_FORCE_CALL_2:
+ case POKENAV_MODE_FORCE_CALL_EXIT:
return sub_81C9588;
}
}
@@ -179,7 +179,7 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0)
switch (sDescriptionIds[a0->menuType][a0->cursorPos])
{
case 0:
- a0->helpBarIndex = gSaveBlock2Ptr->regionMapZoom ? 2 : 1;
+ a0->helpBarIndex = gSaveBlock2Ptr->regionMapZoom ? HELPBAR_MAP_ZOOMED_IN : HELPBAR_MAP_ZOOMED_OUT;
sub_81C97B0(a0, POKENAV_MENU_6);
return 8;
case 1:
@@ -189,13 +189,13 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0)
a0->callback = sub_81C963C;
return 2;
case 2:
- a0->helpBarIndex = 6;
+ a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B);
return 8;
case 3:
if (CanViewRibbonsMenu())
{
- a0->helpBarIndex = 9;
+ a0->helpBarIndex = HELPBAR_RIBBONS_MON_LIST;
sub_81C97B0(a0, POKENAV_MENU_C);
return 8;
}
@@ -224,7 +224,7 @@ static u32 sub_81C9520(struct Pokenav1Struct *a0)
{
if (sDescriptionIds[a0->menuType][a0->cursorPos] == 2)
{
- a0->helpBarIndex = 6;
+ a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B);
return 8;
}
@@ -259,7 +259,7 @@ static u32 sub_81C9588(struct Pokenav1Struct *a0)
}
else if (v0 == 2)
{
- a0->helpBarIndex = 6;
+ a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B);
return 8;
}
@@ -349,7 +349,7 @@ static u32 sub_81C96FC(struct Pokenav1Struct *a0)
{
sub_81C7694(v0 - 8);
sub_81C97B0(a0, POKENAV_MENU_8);
- a0->helpBarIndex = 3;
+ a0->helpBarIndex = HELPBAR_CONDITION_MON_LIST;
return 8;
}
else
@@ -459,7 +459,7 @@ int sub_81C98B4(void)
return state->descriptionId;
}
-u16 sub_81C98C4(void)
+u16 GetHelpBarTextId(void)
{
struct Pokenav1Struct *state = GetSubstructPtr(1);
return state->helpBarIndex;
diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c
index 8da9cc270..099843f83 100644
--- a/src/pokenav_unk_10.c
+++ b/src/pokenav_unk_10.c
@@ -573,7 +573,7 @@ u32 sub_81D0A6C(s32 state)
return LT_PAUSE;
case 7:
sub_81D12D8(structPtr);
- sub_81C7BA4(10);
+ PrintHelpBarText(HELPBAR_RIBBONS_LIST);
return LT_INC_AND_PAUSE;
case 8:
if (!IsDma3ManagerBusyWithBgCopy())
@@ -667,7 +667,7 @@ u32 sub_81D0D2C(s32 state)
if (!sub_81D1524(structPtr))
{
sub_81D0EFC(structPtr);
- sub_81C7BA4(11);
+ PrintHelpBarText(HELPBAR_RIBBONS_CHECK);
return LT_INC_AND_PAUSE;
}
return LT_PAUSE;
@@ -721,7 +721,7 @@ u32 sub_81D0E00(s32 state)
if (!sub_81D1524(structPtr))
{
sub_81D0E84(structPtr);
- sub_81C7BA4(10);
+ PrintHelpBarText(HELPBAR_RIBBONS_LIST);
return LT_INC_AND_PAUSE;
}
return LT_PAUSE;
diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c
index befe63f0b..de962ccd6 100644
--- a/src/pokenav_unk_2.c
+++ b/src/pokenav_unk_2.c
@@ -323,7 +323,7 @@ static bool32 sub_81C98D4(void)
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
{
if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId
- && sub_81CAE08(i)
+ && IsRematchEntryRegistered(i)
&& gSaveBlock1Ptr->trainerRematches[i])
return TRUE;
}
@@ -706,10 +706,10 @@ static u32 sub_81C9F28(s32 state)
switch (state)
{
case 0:
- sub_81C7BA4(sub_81C98C4());
+ PrintHelpBarText(GetHelpBarTextId());
return LT_INC_AND_PAUSE;
case 1:
- if (IsDma3ManagerBusyWithBgCopy_())
+ if (WaitForHelpBar())
return LT_PAUSE;
sub_81C7880();
sub_81CA9C8();
diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c
index c66434192..28e84b50b 100755
--- a/src/pokenav_unk_3.c
+++ b/src/pokenav_unk_3.c
@@ -17,30 +17,40 @@
struct Pokenav3Struct
{
- u16 unk0;
- u16 unk2;
- const u8 *unk4;
- u16 unk8;
- u16 unkA;
+ u16 optionCursorPos;
+ u16 maxOptionId;
+ const u8 *matchCallOptions;
+ u16 headerId;
+ u16 numRegistered;
u16 unkC;
u32 unk10;
u32 unk14;
u32 (*callback)(struct Pokenav3Struct*);
- struct PokenavMonList unk1C[99];
+ struct PokenavMatchCallEntries matchCallEntries[MAX_REMATCH_ENTRIES - 1];
};
-static u32 sub_81CAB44(struct Pokenav3Struct *);
+static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *);
static u32 sub_81CABFC(struct Pokenav3Struct *);
-static u32 sub_81CAC04(struct Pokenav3Struct *);
-static u32 sub_81CACB8(struct Pokenav3Struct *);
-static u32 sub_81CACF8(struct Pokenav3Struct *);
+static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *);
+static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *);
+static u32 CB2_HandleCallInput(struct Pokenav3Struct *);
static u32 sub_81CAD20(s32);
static bool32 sub_81CB1D0(void);
#include "data/text/match_call_messages.h"
-const u8 gUnknown_08622508[] = {0, 2};
-const u8 gUnknown_0862250A[] = {0, 1, 2};
+static const u8 sMatchCallOptionsNoCheckPage[] =
+{
+ MATCH_CALL_OPTION_CALL,
+ MATCH_CALL_OPTION_CANCEL
+};
+
+static const u8 sMatchCallOptionsHasCheckPage[] =
+{
+ MATCH_CALL_OPTION_CALL,
+ MATCH_CALL_OPTION_CHECK,
+ MATCH_CALL_OPTION_CANCEL
+};
bool32 PokenavCallback_Init_11(void)
{
@@ -48,8 +58,8 @@ bool32 PokenavCallback_Init_11(void)
if (!state)
return FALSE;
- state->callback = sub_81CAB44;
- state->unk8 = 0;
+ state->callback = CB2_HandleMatchCallInput;
+ state->headerId = 0;
state->unk10 = 0;
state->unk14 = CreateLoopedTask(sub_81CAD20, 1);
return TRUE;
@@ -66,52 +76,54 @@ void sub_81CAB38(void)
FreePokenavSubstruct(5);
}
-static u32 sub_81CAB44(struct Pokenav3Struct *state)
+static u32 CB2_HandleMatchCallInput(struct Pokenav3Struct *state)
{
- int selectedMatchCall;
+ int selection;
if (gMain.newAndRepeatedKeys & DPAD_UP)
- return 2;
+ return POKENAV_MC_FUNC_UP;
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
- return 1;
+ return POKENAV_MC_FUNC_DOWN;
if (gMain.newAndRepeatedKeys & DPAD_LEFT)
- return 4;
+ return POKENAV_MC_FUNC_PG_UP;
if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
- return 3;
+ return POKENAV_MC_FUNC_PG_DOWN;
if (gMain.newKeys & A_BUTTON)
{
- state->callback = sub_81CAC04;
- state->unk0 = 0;
- selectedMatchCall = GetSelectedMatchCall();
- if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6))
+ state->callback = CB2_HandleMatchCallOptionsInput;
+ state->optionCursorPos = 0;
+ selection = GetSelectedMatchCall();
+
+ if (!state->matchCallEntries[selection].isSpecialTrainer || MatchCall_HasCheckPage(state->matchCallEntries[selection].headerId))
{
- state->unk4 = gUnknown_0862250A;
- state->unk2 = 2;
+ state->matchCallOptions = sMatchCallOptionsHasCheckPage;
+ state->maxOptionId = ARRAY_COUNT(sMatchCallOptionsHasCheckPage) - 1;
}
else
{
- state->unk4 = gUnknown_08622508;
- state->unk2 = 1;
+ state->matchCallOptions = sMatchCallOptionsNoCheckPage;
+ state->maxOptionId = ARRAY_COUNT(sMatchCallOptionsNoCheckPage) - 1;
}
- return 5;
+ return POKENAV_MC_FUNC_SELECT;
}
if (gMain.newKeys & B_BUTTON)
{
- if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_1)
+ if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_READY)
{
state->callback = sub_81CABFC;
- return 15;
+ return POKENAV_MC_FUNC_EXIT;
}
else
{
+ // Cant exit Match Call menu before calling Mr Stone during tutorial
PlaySE(SE_HAZURE);
}
}
- return 0;
+ return POKENAV_MC_FUNC_NONE;
}
static u32 sub_81CABFC(struct Pokenav3Struct *state)
@@ -119,76 +131,76 @@ static u32 sub_81CABFC(struct Pokenav3Struct *state)
return POKENAV_MENU_4;
}
-static u32 sub_81CAC04(struct Pokenav3Struct *state)
+static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *state)
{
- if ((gMain.newKeys & DPAD_UP) && state->unk0)
+ if ((gMain.newKeys & DPAD_UP) && state->optionCursorPos)
{
- state->unk0--;
- return 6;
+ state->optionCursorPos--;
+ return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
}
- if ((gMain.newKeys & DPAD_DOWN) && state->unk0 < state->unk2)
+ if ((gMain.newKeys & DPAD_DOWN) && state->optionCursorPos < state->maxOptionId)
{
- state->unk0++;
- return 6;
+ state->optionCursorPos++;
+ return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
}
if (gMain.newKeys & A_BUTTON)
{
- switch (state->unk4[state->unk0])
+ switch (state->matchCallOptions[state->optionCursorPos])
{
- case 2:
- state->callback = sub_81CAB44;
- return 7;
- case 0:
- if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_1)
- SetPokenavMode(POKENAV_MODE_FORCE_CALL_2);
-
- state->callback = sub_81CACF8;
+ case MATCH_CALL_OPTION_CANCEL:
+ state->callback = CB2_HandleMatchCallInput;
+ return POKENAV_MC_FUNC_CANCEL;
+ case MATCH_CALL_OPTION_CALL:
+ if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_READY)
+ SetPokenavMode(POKENAV_MODE_FORCE_CALL_EXIT);
+
+ state->callback = CB2_HandleCallInput;
if (sub_81CB1D0())
- return 9;
+ return POKENAV_MC_FUNC_NEARBY_MSG;
- return 8;
- case 1:
- state->callback = sub_81CACB8;
- return 11;
+ return POKENAV_MC_FUNC_CALL_MSG;
+ case MATCH_CALL_OPTION_CHECK:
+ state->callback = CB2_HandleCheckPageInput;
+ return POKENAV_MC_FUNC_SHOW_CHECK_PAGE;
}
}
if (gMain.newKeys & B_BUTTON)
{
- state->callback = sub_81CAB44;
- return 7;
+ state->callback = CB2_HandleMatchCallInput;
+ return POKENAV_MC_FUNC_CANCEL;
}
- return 0;
+ return POKENAV_MC_FUNC_NONE;
}
-static u32 sub_81CACB8(struct Pokenav3Struct *state)
+static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *state)
{
if (gMain.newAndRepeatedKeys & DPAD_UP)
- return 12;
+ return POKENAV_MC_FUNC_CHECK_PAGE_UP;
if (gMain.newAndRepeatedKeys & DPAD_DOWN)
- return 13;
+ return POKENAV_MC_FUNC_CHECK_PAGE_DOWN;
if (gMain.newKeys & B_BUTTON)
{
- state->callback = sub_81CAB44;
- return 14;
+ state->callback = CB2_HandleMatchCallInput;
+ return POKENAV_MC_FUNC_EXIT_CHECK_PAGE;
}
- return 0;
+ return POKENAV_MC_FUNC_NONE;
}
-static u32 sub_81CACF8(struct Pokenav3Struct *state)
+static u32 CB2_HandleCallInput(struct Pokenav3Struct *state)
{
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
- state->callback = sub_81CAB44;
- return 10;
+ state->callback = CB2_HandleMatchCallInput;
+ return POKENAV_MC_FUNC_10;
}
- return 0;
+ return POKENAV_MC_FUNC_NONE;
}
static u32 sub_81CAD20(s32 taskState)
@@ -198,41 +210,41 @@ static u32 sub_81CAD20(s32 taskState)
switch (taskState)
{
case 0:
- state->unk8 = 0;
- state->unkA = 0;
+ state->headerId = 0;
+ state->numRegistered = 0;
return LT_INC_AND_CONTINUE;
case 1:
- for (i = 0, j = state->unk8; i < 30; i++, j++)
+ for (i = 0, j = state->headerId; i < 30; i++, j++)
{
- if (MatchCallFlagGetByIndex(j))
+ if (MatchCall_GetEnabled(j))
{
- state->unk1C[state->unkA].unk6 = j;
- state->unk1C[state->unkA].boxId = 1;
- state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j);
- state->unkA++;
+ state->matchCallEntries[state->numRegistered].headerId = j;
+ state->matchCallEntries[state->numRegistered].isSpecialTrainer = TRUE;
+ state->matchCallEntries[state->numRegistered].mapSec = MatchCall_GetMapSec(j);
+ state->numRegistered++;
}
- if (++state->unk8 >= MC_HEADER_COUNT)
+ if (++state->headerId >= MC_HEADER_COUNT)
{
- state->unkC = state->unk8;
- state->unk8 = 0;
+ state->unkC = state->headerId;
+ state->headerId = 0;
return LT_INC_AND_CONTINUE;
}
}
return LT_CONTINUE;
case 2:
- for (i = 0, j = state->unk8; i < 30; i++, j++)
+ for (i = 0, j = state->headerId; i < 30; i++, j++)
{
- if (!sub_81D1BF8(state->unk8) && sub_81CAE08(state->unk8))
+ if (!MatchCall_HasRematchId(state->headerId) && IsRematchEntryRegistered(state->headerId))
{
- state->unk1C[state->unkA].unk6 = state->unk8;
- state->unk1C[state->unkA].boxId = 0;
- state->unk1C[state->unkA].monId = sub_81CB0C8(j);
- state->unkA++;
+ state->matchCallEntries[state->numRegistered].headerId = state->headerId;
+ state->matchCallEntries[state->numRegistered].isSpecialTrainer = FALSE;
+ state->matchCallEntries[state->numRegistered].mapSec = sub_81CB0C8(j);
+ state->numRegistered++;
}
- if (++state->unk8 > REMATCH_TABLE_ENTRIES - 1)
+ if (++state->headerId > REMATCH_TABLE_ENTRIES - 1)
return LT_INC_AND_CONTINUE;
}
@@ -245,7 +257,7 @@ static u32 sub_81CAD20(s32 taskState)
return LT_FINISH;
}
-bool32 sub_81CAE08(int rematchIndex)
+bool32 IsRematchEntryRegistered(int rematchIndex)
{
if (rematchIndex < REMATCH_TABLE_ENTRIES)
return FlagGet(FLAG_MATCH_CALL_REGISTERED + rematchIndex);
@@ -259,10 +271,10 @@ int sub_81CAE28(void)
return state->unk10;
}
-int sub_81CAE38(void)
+int GetNumberRegistered(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unkA;
+ return state->numRegistered;
}
int sub_81CAE48(void)
@@ -274,38 +286,38 @@ int sub_81CAE48(void)
int unref_sub_81CAE58(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unkA - state->unkC;
+ return state->numRegistered - state->unkC;
}
int unref_sub_81CAE6C(int arg0)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
arg0 += state->unkC;
- if (arg0 >= state->unkA)
+ if (arg0 >= state->numRegistered)
return REMATCH_TABLE_ENTRIES;
- return state->unk1C[arg0].unk6;
+ return state->matchCallEntries[arg0].headerId;
}
-struct PokenavMonList *sub_81CAE94(void)
+struct PokenavMatchCallEntries *sub_81CAE94(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unk1C;
+ return state->matchCallEntries;
}
-u16 sub_81CAEA4(int index)
+u16 GetMatchCallMapSec(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unk1C[index].monId;
+ return state->matchCallEntries[index].mapSec;
}
-bool32 sub_81CAEBC(int index)
+bool32 ShouldDrawRematchPokeballIcon(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (!state->unk1C[index].boxId)
- index = state->unk1C[index].unk6;
+ if (!state->matchCallEntries[index].isSpecialTrainer)
+ index = state->matchCallEntries[index].headerId;
else
- index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6);
+ index = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
if (index == REMATCH_TABLE_ENTRIES)
return FALSE;
@@ -313,83 +325,83 @@ bool32 sub_81CAEBC(int index)
return gSaveBlock1Ptr->trainerRematches[index] != 0;
}
-int sub_81CAF04(int index)
+int GetMatchCallTrainerPic(int index)
{
- int var0;
+ int headerId;
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].isSpecialTrainer)
{
- index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk6);
+ index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId);
return gTrainers[index].trainerPic;
}
- var0 = state->unk1C[index].unk6;
- index = MatchCall_GetRematchTableIdx(var0);
+ headerId = state->matchCallEntries[index].headerId;
+ index = MatchCall_GetRematchTableIdx(headerId);
if (index != REMATCH_TABLE_ENTRIES)
{
index = GetTrainerIdxByRematchIdx(index);
return gTrainers[index].trainerPic;
}
- index = MatchCall_GetOverrideFacilityClass(var0);
+ index = MatchCall_GetOverrideFacilityClass(headerId);
return gFacilityClassToPicIndex[index];
}
-const u8 *sub_81CAF78(int index, u8 *arg1)
+const u8 *GetMatchCallMessageText(int index, u8 *arg1)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
*arg1 = 0;
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
return gText_CallCantBeMadeHere;
- if (!state->unk1C[index].boxId)
- *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk6), gStringVar4);
+ if (!state->matchCallEntries[index].isSpecialTrainer)
+ *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId), gStringVar4);
else
- MatchCall_GetMessage(state->unk1C[index].unk6, gStringVar4);
+ MatchCall_GetMessage(state->matchCallEntries[index].headerId, gStringVar4);
return gStringVar4;
}
-const u8 *sub_81CAFD8(int index, int textType)
+const u8 *GetMatchCallFlavorText(int index, int checkPageEntry)
{
- int var0;
+ int rematchId;
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (state->unk1C[index].boxId)
+ if (state->matchCallEntries[index].isSpecialTrainer)
{
- var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6);
- if (var0 == REMATCH_TABLE_ENTRIES)
- return MatchCall_GetOverrideFlavorText(state->unk1C[index].unk6, textType);
+ rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
+ if (rematchId == REMATCH_TABLE_ENTRIES)
+ return MatchCall_GetOverrideFlavorText(state->matchCallEntries[index].headerId, checkPageEntry);
}
else
{
- var0 = state->unk1C[index].unk6;
+ rematchId = state->matchCallEntries[index].headerId;
}
- return gMatchCallMessages[var0][textType];
+ return gMatchCallFlavorTexts[rematchId][checkPageEntry];
}
-u16 sub_81CB01C(void)
+u16 GetMatchCallOptionCursorPos(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unk0;
+ return state->optionCursorPos;
}
-u16 sub_81CB02C(int arg0)
+u16 GetMatchCallOptionId(int optionId)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (state->unk2 < arg0)
- return 3;
+ if (state->maxOptionId < optionId)
+ return MATCH_CALL_OPTION_COUNT;
- return state->unk4[arg0];
+ return state->matchCallOptions[optionId];
}
-void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
+void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries *matchCallEntry, u8 *str)
{
const u8 *trainerName;
const u8 *className;
- if (!arg0->boxId)
+ if (!matchCallEntry->isSpecialTrainer)
{
- int index = GetTrainerIdxByRematchIdx(arg0->unk6);
+ int index = GetTrainerIdxByRematchIdx(matchCallEntry->headerId);
const struct Trainer *trainer = &gTrainers[index];
int class = trainer->trainerClass;
className = gTrainerClassNames[class];
@@ -397,7 +409,7 @@ void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
}
else
{
- sub_81D1A78(arg0->unk6, &className, &trainerName);
+ MatchCall_GetNameAndDesc(matchCallEntry->headerId, &className, &trainerName);
}
if (className && trainerName)
@@ -418,15 +430,15 @@ u8 sub_81CB0C8(int rematchIndex)
return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId;
}
-int sub_81CB0E4(int index)
+int GetIndexDeltaOfNextCheckPageDown(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
int count = 1;
- while (++index < state->unkA)
+ while (++index < state->numRegistered)
{
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].isSpecialTrainer)
return count;
- if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
+ if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count;
count++;
@@ -435,15 +447,15 @@ int sub_81CB0E4(int index)
return 0;
}
-int sub_81CB128(int index)
+int GetIndexDeltaOfNextCheckPageUp(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
int count = -1;
while (--index >= 0)
{
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].isSpecialTrainer)
return count;
- if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
+ if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count;
count--;
@@ -458,13 +470,13 @@ bool32 unref_sub_81CB16C(void)
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
{
- if (sub_81CAE08(i) && gSaveBlock1Ptr->trainerRematches[i])
+ if (IsRematchEntryRegistered(i) && gSaveBlock1Ptr->trainerRematches[i])
return TRUE;
}
for (i = 0; i < MC_HEADER_COUNT; i++)
{
- if (MatchCallFlagGetByIndex(i))
+ if (MatchCall_GetEnabled(i))
{
int index = MatchCall_GetRematchTableIdx(i);
if (gSaveBlock1Ptr->trainerRematches[index])
@@ -478,20 +490,20 @@ bool32 unref_sub_81CB16C(void)
static bool32 sub_81CB1D0(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- int index = GetSelectedMatchCall();
- if (!state->unk1C[index].boxId)
+ int selection = GetSelectedMatchCall();
+ if (!state->matchCallEntries[selection].isSpecialTrainer)
{
- if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId)
+ if (GetMatchCallMapSec(selection) == gMapHeader.regionMapSectionId)
{
- if (!gSaveBlock1Ptr->trainerRematches[state->unk1C[index].unk6])
+ if (!gSaveBlock1Ptr->trainerRematches[state->matchCallEntries[selection].headerId])
return TRUE;
}
}
else
{
- if (state->unk1C[index].unk6 == 11)
+ if (state->matchCallEntries[selection].headerId == MC_HEADER_WATTSON)
{
- if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId
+ if (GetMatchCallMapSec(selection) == gMapHeader.regionMapSectionId
&& FlagGet(FLAG_BADGE05_GET) == TRUE)
{
if (!FlagGet(FLAG_WATTSON_REMATCH_AVAILABLE))
diff --git a/src/pokenav_unk_4.c b/src/pokenav_unk_4.c
index 36459e56b..d8a1a0dfa 100755
--- a/src/pokenav_unk_4.c
+++ b/src/pokenav_unk_4.c
@@ -32,15 +32,15 @@ struct Pokenav4Struct
u8 filler8[0x6];
u8 unkE;
u8 unkF;
- u16 unk10;
- u16 unk12;
- u16 unk14;
+ u16 locWindowId;
+ u16 infoBoxWindowId;
+ u16 msgBoxWindowId;
s16 unk16;
u8 unused18;
u8 unk19;
u16 unk1A;
- struct Sprite *unk1C;
- struct Sprite *unk20;
+ struct Sprite *optionsCursorSprite;
+ struct Sprite *trainerPicSprite;
u8 unk24[0x800];
u8 unk824[0x800];
u8 unk1024[0x800];
@@ -55,74 +55,70 @@ static void sub_81CBBB8(void);
static void sub_81CBC1C(void);
static void sub_81CC2B4(void);
static void sub_81CC034(struct Pokenav4Struct *);
-static void sub_81CBD78(struct Pokenav4Struct *);
-static void sub_81CBDC0(struct Pokenav4Struct *);
-static void sub_81CBEF8(struct Pokenav4Struct *, int);
+static void DrawMatchCallLeftColumnWindows(struct Pokenav4Struct *);
+static void UpdateMatchCallInfoBox(struct Pokenav4Struct *);
+static void PrintMatchCallLocation(struct Pokenav4Struct *, int);
static void sub_81CC214(void);
static void sub_81CBC38(int);
-static void sub_81CBF60(struct Pokenav4Struct *);
+static void PrintMatchCallSelectionOptions(struct Pokenav4Struct *);
static bool32 sub_81CBFC4(struct Pokenav4Struct *);
-static void sub_81CC344(struct Pokenav4Struct *, int);
-static bool32 sub_81CC004(struct Pokenav4Struct *);
-static void sub_81CBFF0(struct Pokenav4Struct *);
-static void sub_81CC058(struct Pokenav4Struct *);
-static bool32 sub_81CC0D0(struct Pokenav4Struct *);
-static void sub_81CC0E0(struct Pokenav4Struct *);
-static bool32 sub_81CC104(struct Pokenav4Struct *);
-static void sub_81CC158(struct Pokenav4Struct *);
-static bool32 sub_81CC194(struct Pokenav4Struct *);
-static void sub_81CC09C(struct Pokenav4Struct *);
-static void sub_81CC11C(struct Pokenav4Struct *);
-static bool32 sub_81CC140(struct Pokenav4Struct *);
-static void sub_81CC1DC(struct Pokenav4Struct *);
-static bool32 sub_81CC204(struct Pokenav4Struct *);
-static void sub_81CC014(struct Pokenav4Struct *);
-static void sub_81CC39C(struct Pokenav4Struct *);
-static bool32 sub_81CC42C(struct Pokenav4Struct *);
-static void sub_81CC420(struct Pokenav4Struct *);
+static void UpdateCursorGfxPos(struct Pokenav4Struct *, int);
+static bool32 IsDma3ManagerBusyWithBgCopy1(struct Pokenav4Struct *);
+static void UpdateWindowsReturnToTrainerList(struct Pokenav4Struct *);
+static void DrawMsgBoxForMatchCallMsg(struct Pokenav4Struct *);
+static bool32 IsDma3ManagerBusyWithBgCopy2(struct Pokenav4Struct *);
+static void PrintCallingDots(struct Pokenav4Struct *);
+static bool32 WaitForCallingDotsText(struct Pokenav4Struct *);
+static void PrintMatchCallMessage(struct Pokenav4Struct *);
+static bool32 WaitForMatchCallMessageText(struct Pokenav4Struct *);
+static void DrawMsgBoxForCloseByMsg(struct Pokenav4Struct *);
+static void PrintTrainerIsCloseBy(struct Pokenav4Struct *);
+static bool32 WaitForTrainerIsCloseByText(struct Pokenav4Struct *);
+static void DrawSpinningPokenavForCall(struct Pokenav4Struct *);
+static bool32 WaitForSpinningPokenav(struct Pokenav4Struct *);
+static void UpdateWindowsToShowCheckPage(struct Pokenav4Struct *);
+static void LoadCheckPageTrainerPic(struct Pokenav4Struct *);
+static bool32 WaitForTrainerPic(struct Pokenav4Struct *);
+static void TrainerPicSlideOffscreen(struct Pokenav4Struct *);
static void sub_81CBC64(u8 taskId);
-static void sub_81CBCEC(u16 windowId, u32, u32);
-static void sub_81CBDF4(u16 windowId);
-static void sub_81CBE0C(u16 windowId);
-static void sub_81CBE38(u16 windowId);
-static void sub_81CBE50(u16 windowId);
-static void sub_81CBE88(u16 windowId, const u8 *str, int top);
-static void sub_81CBEB4(u16 windowId, const u8 *str, int top);
+static void TryDrawRematchPokeballIcon(u16 windowId, u32, u32);
+static void PrintNumberRegisteredLabel(u16 windowId);
+static void PrintNumberRegistered(u16 windowId);
+static void PrintNumberOfBattlesLabel(u16 windowId);
+static void PrintNumberOfBattles(u16 windowId);
+static void PrintMatchCallInfoLabel(u16 windowId, const u8 *str, int top);
+static void PrintMatchCallInfoNumber(u16 windowId, const u8 *str, int top);
static void sub_81CC2F0(struct Pokenav4Struct *, int);
-static void sub_81CC330(struct Pokenav4Struct *);
-static struct Sprite *sub_81CC370(void);
-static void sub_81CC440(struct Sprite *sprite);
-static void sub_81CC4A4(struct Sprite *sprite);
-void sub_81CC34C(struct Sprite *sprite);
-u32 sub_81CB510(s32);
-u32 sub_81CB588(s32);
-u32 sub_81CB600(s32);
-u32 sub_81CB678(s32);
-u32 sub_81CB6F0(s32);
-u32 sub_81CB734(s32);
-u32 sub_81CB75C(s32);
-u32 sub_81CB7A0(s32);
-u32 sub_81CB824(s32);
+static void CloseMatchCallSelectOptionsWindow(struct Pokenav4Struct *);
+static struct Sprite *CreateTrainerPicSprite(void);
+static void SpriteCB_TrainerPicSlideOnscreen(struct Sprite *sprite);
+static void SpriteCB_TrainerPicSlideOffscreen(struct Sprite *sprite);
+void SpriteCB_OptionsCursor(struct Sprite *sprite);
+u32 MatchCallListCursorDown(s32);
+u32 MatchCallListCursorUp(s32);
+u32 MatchCallListPageDown(s32);
+u32 MatchCallListPageUp(s32);
+u32 SelectMatchCallEntry(s32);
+u32 MoveMatchCallOptionsCursor(s32);
+static u32 CancelMatchCallSelection(s32);
+u32 DoMatchCallMessage(s32);
+u32 DoTrainerCloseByMessage(s32);
u32 sub_81CB888(s32);
-u32 sub_81CB93C(s32);
-u32 sub_81CBAD4(s32);
-u32 sub_81CB9C8(s32);
-u32 sub_81CBA68(s32);
-u32 sub_81CBB74(s32);
-
-extern const struct WindowTemplate gUnknown_08622808;
-extern const struct SpriteTemplate gUnknown_08622830;
-extern const struct SpriteTemplate gUnknown_08622850;
-
-const u16 gUnknown_08622510[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal");
-const u32 gUnknown_08622530[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz");
-const u32 gUnknown_086225D4[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz");
-const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal");
-const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz");
-const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal");
-const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal");
-const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal");
-const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz");
+u32 ShowCheckPage(s32);
+u32 ShowCheckPageUp(s32);
+u32 ShowCheckPageDown(s32);
+u32 ExitCheckPage(s32);
+u32 ExitMatchCall(s32);
+
+static const u16 sMatchCallUI_Pal[] = INCBIN_U16("graphics/pokenav/ui_matchcall.gbapal");
+static const u32 sMatchCallUI_Gfx[] = INCBIN_U32("graphics/pokenav/ui_matchcall.4bpp.lz");
+static const u32 sMatchCallUI_Tilemap[] = INCBIN_U32("graphics/pokenav/ui_matchcall.bin.lz");
+static const u16 gUnknown_08622698[] = INCBIN_U16("graphics/pokenav/arrow2.gbapal");
+static const u32 gUnknown_086226B8[] = INCBIN_U32("graphics/pokenav/arrow2.4bpp.lz");
+static const u16 gUnknown_086226E0[] = INCBIN_U16("graphics/pokenav/86226E0.gbapal");
+static const u16 gUnknown_08622700[] = INCBIN_U16("graphics/pokenav/8622700.gbapal");
+static const u16 gUnknown_08622720[] = INCBIN_U16("graphics/pokenav/pokeball_matchcall.gbapal");
+static const u32 gUnknown_08622760[] = INCBIN_U32("graphics/pokenav/pokeball_matchcall.4bpp.lz");
const struct BgTemplate gUnknown_0862278C[3] =
{
@@ -155,27 +151,27 @@ const struct BgTemplate gUnknown_0862278C[3] =
}
};
-const LoopedTask gUnknown_08622798[] =
-{
- NULL,
- sub_81CB510,
- sub_81CB588,
- sub_81CB600,
- sub_81CB678,
- sub_81CB6F0,
- sub_81CB734,
- sub_81CB75C,
- sub_81CB7A0,
- sub_81CB824,
- sub_81CB888,
- sub_81CB93C,
- sub_81CBAD4,
- sub_81CB9C8,
- sub_81CBA68,
- sub_81CBB74
+static const LoopedTask sMatchCallLoopTaskFuncs[] =
+{
+ [POKENAV_MC_FUNC_NONE] = NULL,
+ [POKENAV_MC_FUNC_DOWN] = MatchCallListCursorDown,
+ [POKENAV_MC_FUNC_UP] = MatchCallListCursorUp,
+ [POKENAV_MC_FUNC_PG_DOWN] = MatchCallListPageDown,
+ [POKENAV_MC_FUNC_PG_UP] = MatchCallListPageUp,
+ [POKENAV_MC_FUNC_SELECT] = SelectMatchCallEntry,
+ [POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR] = MoveMatchCallOptionsCursor,
+ [POKENAV_MC_FUNC_CANCEL] = CancelMatchCallSelection,
+ [POKENAV_MC_FUNC_CALL_MSG] = DoMatchCallMessage,
+ [POKENAV_MC_FUNC_NEARBY_MSG] = DoTrainerCloseByMessage,
+ [POKENAV_MC_FUNC_10] = sub_81CB888,
+ [POKENAV_MC_FUNC_SHOW_CHECK_PAGE] = ShowCheckPage,
+ [POKENAV_MC_FUNC_CHECK_PAGE_UP] = ShowCheckPageUp,
+ [POKENAV_MC_FUNC_CHECK_PAGE_DOWN] = ShowCheckPageDown,
+ [POKENAV_MC_FUNC_EXIT_CHECK_PAGE] = ExitCheckPage,
+ [POKENAV_MC_FUNC_EXIT] = ExitMatchCall
};
-const struct WindowTemplate gUnknown_086227D8 =
+static const struct WindowTemplate sMatchCallLocationWindowTemplate =
{
.bg = 2,
.tilemapLeft = 0,
@@ -186,7 +182,7 @@ const struct WindowTemplate gUnknown_086227D8 =
.baseBlock = 16
};
-const struct WindowTemplate gUnknown_086227E0 =
+static const struct WindowTemplate sMatchCallInfoBoxWindowTemplate =
{
.bg = 2,
.tilemapLeft = 0,
@@ -197,17 +193,17 @@ const struct WindowTemplate gUnknown_086227E0 =
.baseBlock = 38
};
-const u8 *const gUnknown_086227E8[] =
+static const u8 *const sMatchCallOptionTexts[MATCH_CALL_OPTION_COUNT] =
{
- gText_Call,
- gText_Check,
- gText_Cancel6
+ [MATCH_CALL_OPTION_CALL] = gText_Call,
+ [MATCH_CALL_OPTION_CHECK] = gText_Check,
+ [MATCH_CALL_OPTION_CANCEL] = gText_Cancel6
};
// The series of 5 dots that appear when someone is called with Match Call
static const u8 sText_CallingDots[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p");
-const struct WindowTemplate gUnknown_08622808 =
+static const struct WindowTemplate sCallMsgBoxWindowTemplate =
{
.bg = 1,
.tilemapLeft = 1,
@@ -223,13 +219,12 @@ const struct CompressedSpriteSheet gUnknown_08622810[1] =
{gUnknown_086226B8, 0x40, 7}
};
-const struct SpritePalette gUnknown_08622818[] =
+const struct SpritePalette gUnknown_08622818[2] =
{
- {gUnknown_08622698, 12},
- {}
+ {gUnknown_08622698, 12}
};
-const struct OamData gUnknown_08622828 =
+static const struct OamData sOptionsCursorOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -243,18 +238,18 @@ const struct OamData gUnknown_08622828 =
.paletteNum = 0,
};
-const struct SpriteTemplate gUnknown_08622830 =
+static const struct SpriteTemplate sOptionsCursorSpriteTemplate =
{
.tileTag = 7,
.paletteTag = 12,
- .oam = &gUnknown_08622828,
+ .oam = &sOptionsCursorOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
- .callback = sub_81CC34C,
+ .callback = SpriteCB_OptionsCursor,
};
-const struct OamData gUnknown_08622848 =
+static const struct OamData sTrainerPicOamData =
{
.y = 0,
.affineMode = ST_OAM_AFFINE_OFF,
@@ -268,11 +263,11 @@ const struct OamData gUnknown_08622848 =
.paletteNum = 0,
};
-const struct SpriteTemplate gUnknown_08622850 =
+static const struct SpriteTemplate sTrainerPicSpriteTemplate =
{
.tileTag = 8,
.paletteTag = 13,
- .oam = &gUnknown_08622848,
+ .oam = &sTrainerPicOamData,
.anims = gDummySpriteAnimTable,
.images = NULL,
.affineAnims = gDummySpriteAffineAnimTable,
@@ -294,7 +289,7 @@ bool32 sub_81CB260(void)
void sub_81CB29C(s32 index)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
- state->unk4 = CreateLoopedTask(gUnknown_08622798[index], 1);
+ state->unk4 = CreateLoopedTask(sMatchCallLoopTaskFuncs[index], 1);
state->unk0 = sub_81CB310;
}
@@ -309,9 +304,9 @@ void sub_81CB2E0(void)
struct Pokenav4Struct *state = GetSubstructPtr(6);
sub_81CC2B4();
sub_81CBC1C();
- RemoveWindow(state->unk12);
- RemoveWindow(state->unk10);
- RemoveWindow(state->unk14);
+ RemoveWindow(state->infoBoxWindowId);
+ RemoveWindow(state->locWindowId);
+ RemoveWindow(state->msgBoxWindowId);
FreePokenavSubstruct(6);
}
@@ -330,48 +325,48 @@ static u32 sub_81CB324(s32 taskState)
InitBgTemplates(gUnknown_0862278C, ARRAY_COUNT(gUnknown_0862278C));
ChangeBgX(2, 0, 0);
ChangeBgY(2, 0, 0);
- decompress_and_copy_tile_data_to_vram(2, gUnknown_08622530, 0, 0, 0);
+ decompress_and_copy_tile_data_to_vram(2, sMatchCallUI_Gfx, 0, 0, 0);
SetBgTilemapBuffer(2, state->unk1024);
- CopyToBgTilemapBuffer(2, gUnknown_086225D4, 0, 0);
+ CopyToBgTilemapBuffer(2, sMatchCallUI_Tilemap, 0, 0);
CopyBgTilemapBufferToVram(2);
- CopyPaletteIntoBufferUnfaded(gUnknown_08622510, 0x20, 0x20);
+ CopyPaletteIntoBufferUnfaded(sMatchCallUI_Pal, 0x20, 0x20);
CopyBgTilemapBufferToVram(2);
- return 0;
+ return LT_INC_AND_PAUSE;
case 1:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
sub_8199DF0(1, 0, 0, 1);
SetBgTilemapBuffer(1, state->unk24);
FillBgTilemapBufferRect_Palette0(1, 0x1000, 0, 0, 32, 20);
CopyPaletteIntoBufferUnfaded(gUnknown_086226E0, 0x10, 0x20);
CopyBgTilemapBufferToVram(1);
- return 0;
+ return LT_INC_AND_PAUSE;
case 2:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
sub_81CC034(state);
decompress_and_copy_tile_data_to_vram(3, gUnknown_08622760, 0, 0, 0);
CopyPaletteIntoBufferUnfaded(gUnknown_08622700, 0x30, 0x20);
CopyPaletteIntoBufferUnfaded(gUnknown_08622720, 0x50, 0x20);
- return 0;
+ return LT_INC_AND_PAUSE;
case 3:
if (free_temp_tile_data_buffers_if_possible() || !sub_81CAE28())
- return 2;
+ return LT_PAUSE;
sub_81CBBB8();
- return 0;
+ return LT_INC_AND_PAUSE;
case 4:
if (sub_81C8224())
- return 2;
+ return LT_PAUSE;
- sub_81CBD78(state);
- return 0;
+ DrawMatchCallLeftColumnWindows(state);
+ return LT_INC_AND_PAUSE;
case 5:
- sub_81CBDC0(state);
- sub_81CBEF8(state, 0);
- return 0;
+ UpdateMatchCallInfoBox(state);
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 6:
ChangeBgX(1, 0, 0);
ChangeBgY(1, 0, 0);
@@ -382,19 +377,19 @@ static u32 sub_81CB324(s32 taskState)
LoadLeftHeaderGfxForIndex(3);
sub_81C7FA0(3, 1, 0);
sub_81C7AC0(1);
- return 0;
+ return LT_INC_AND_PAUSE;
case 7:
if (IsPaletteFadeActive() || sub_81C8010())
- return 2;
+ return LT_PAUSE;
sub_81CBC38(1);
- return 4;
+ return LT_FINISH;
default:
- return 4;
+ return LT_FINISH;
}
}
-u32 sub_81CB510(s32 taskState)
+u32 MatchCallListCursorDown(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -411,27 +406,27 @@ u32 sub_81CB510(s32 taskState)
PlaySE(SE_SELECT);
// fall through
default:
- return 0;
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
if (sub_81C8630())
- return 2;
+ return LT_PAUSE;
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB588(s32 taskState)
+u32 MatchCallListCursorUp(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -448,27 +443,27 @@ u32 sub_81CB588(s32 taskState)
PlaySE(SE_SELECT);
// fall through
default:
- return 0;
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
if (sub_81C8630())
- return 2;
+ return LT_PAUSE;
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB600(s32 taskState)
+u32 MatchCallListPageDown(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -485,27 +480,27 @@ u32 sub_81CB600(s32 taskState)
PlaySE(SE_SELECT);
// fall through
default:
- return 0;
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
if (sub_81C8630())
- return 2;
+ return LT_PAUSE;
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB678(s32 taskState)
+u32 MatchCallListPageUp(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -522,138 +517,138 @@ u32 sub_81CB678(s32 taskState)
PlaySE(SE_SELECT);
// fall through
default:
- return 0;
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
if (sub_81C8630())
- return 2;
+ return LT_PAUSE;
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81CBEF8(state, 0);
- return 0;
+ PrintMatchCallLocation(state, 0);
+ return LT_INC_AND_PAUSE;
case 3:
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB6F0(s32 taskState)
+u32 SelectMatchCallEntry(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
PlaySE(SE_SELECT);
- sub_81CBF60(state);
- sub_81C7BA4(7);
- return 0;
+ PrintMatchCallSelectionOptions(state);
+ PrintHelpBarText(HELPBAR_MC_CALL_MENU);
+ return LT_INC_AND_PAUSE;
case 1:
if (sub_81CBFC4(state))
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB734(s32 taskState)
+u32 MoveMatchCallOptionsCursor(s32 taskState)
{
struct Pokenav4Struct *state;
- u16 var0;
+ u16 cursorPos;
PlaySE(SE_SELECT);
state = GetSubstructPtr(6);
- var0 = sub_81CB01C();
- sub_81CC344(state, var0);
- return 4;
+ cursorPos = GetMatchCallOptionCursorPos();
+ UpdateCursorGfxPos(state, cursorPos);
+ return LT_FINISH;
}
-u32 sub_81CB75C(s32 taskState)
+u32 CancelMatchCallSelection(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
PlaySE(SE_SELECT);
- sub_81CBFF0(state);
- sub_81C7BA4(6);
- return 0;
+ UpdateWindowsReturnToTrainerList(state);
+ PrintHelpBarText(HELPBAR_MC_TRAINER_LIST);
+ return LT_INC_AND_PAUSE;
case 1:
- if (sub_81CC004(state))
- return 2;
+ if (IsDma3ManagerBusyWithBgCopy1(state))
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB7A0(s32 taskState)
+u32 DoMatchCallMessage(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
ToggleMatchCallVerticalArrows(TRUE);
- sub_81CC058(state);
- return 0;
+ DrawMsgBoxForMatchCallMsg(state);
+ return LT_INC_AND_PAUSE;
case 1:
- if (sub_81CC0D0(state))
- return 2;
+ if (IsDma3ManagerBusyWithBgCopy2(state))
+ return LT_PAUSE;
- sub_81CC0E0(state);
+ PrintCallingDots(state);
PlaySE(SE_TOREEYE);
state->unkE = 0;
- return 0;
+ return LT_INC_AND_PAUSE;
case 2:
- if (sub_81CC104(state))
- return 2;
+ if (WaitForCallingDotsText(state))
+ return LT_PAUSE;
- sub_81CC158(state);
- return 0;
+ PrintMatchCallMessage(state);
+ return LT_INC_AND_PAUSE;
case 3:
- if (sub_81CC194(state))
- return 2;
+ if (WaitForMatchCallMessageText(state))
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB824(s32 taskState)
+u32 DoTrainerCloseByMessage(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
PlaySE(SE_SELECT);
- sub_81CC09C(state);
+ DrawMsgBoxForCloseByMsg(state);
ToggleMatchCallVerticalArrows(TRUE);
state->unkE = 1;
- return 0;
+ return LT_INC_AND_PAUSE;
case 1:
- if (sub_81CC0D0(state))
- return 2;
+ if (IsDma3ManagerBusyWithBgCopy2(state))
+ return LT_PAUSE;
- sub_81CC11C(state);
- return 0;
+ PrintTrainerIsCloseBy(state);
+ return LT_INC_AND_PAUSE;
case 2:
- if (sub_81CC140(state))
- return 2;
+ if (WaitForTrainerIsCloseByText(state))
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CB888(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
- u32 result = 0;
+ u32 result = LT_INC_AND_PAUSE;
switch (taskState)
{
@@ -664,49 +659,49 @@ u32 sub_81CB888(s32 taskState)
PlaySE(SE_SELECT);
break;
case 1:
- sub_81CC1DC(state);
+ DrawSpinningPokenavForCall(state);
break;
case 2:
- if (sub_81CC204(state))
- result = 2;
+ if (WaitForSpinningPokenav(state))
+ result = LT_PAUSE;
break;
case 3:
- sub_81CBFF0(state);
+ UpdateWindowsReturnToTrainerList(state);
break;
case 4:
- if (sub_81CC004(state))
- result = 2;
+ if (IsDma3ManagerBusyWithBgCopy1(state))
+ result = LT_PAUSE;
- sub_81C7BA4(6);
+ PrintHelpBarText(HELPBAR_MC_TRAINER_LIST);
break;
case 5:
- if (IsDma3ManagerBusyWithBgCopy_())
+ if (WaitForHelpBar())
{
- result = 2;
+ result = LT_PAUSE;
}
else
{
if (state->unkF)
{
sub_81C8838();
- result = 1;
+ result = LT_INC_AND_CONTINUE;
}
else
{
ToggleMatchCallVerticalArrows(FALSE);
- result = 4;
+ result = LT_FINISH;
}
}
break;
case 6:
if (IsDma3ManagerBusyWithBgCopy())
{
- result = 2;
+ result = LT_PAUSE;
}
else
{
ToggleMatchCallVerticalArrows(FALSE);
- result = 4;
+ result = LT_FINISH;
}
break;
}
@@ -714,7 +709,7 @@ u32 sub_81CB888(s32 taskState)
return result;
}
-u32 sub_81CB93C(s32 taskState)
+u32 ShowCheckPage(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
@@ -722,132 +717,132 @@ u32 sub_81CB93C(s32 taskState)
case 0:
PlaySE(SE_SELECT);
sub_81C877C();
- sub_81CC014(state);
- return 0;
+ UpdateWindowsToShowCheckPage(state);
+ return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8820() || sub_81CC004(state))
- return 2;
+ if (sub_81C8820() || IsDma3ManagerBusyWithBgCopy1(state))
+ return LT_PAUSE;
- sub_81C7BA4(8);
- return 0;
+ PrintHelpBarText(HELPBAR_MC_CHECK_PAGE);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81C87AC(0);
- sub_81CC39C(state);
- return 0;
+ PrintCheckPageInfo(0);
+ LoadCheckPageTrainerPic(state);
+ return LT_INC_AND_PAUSE;
case 3:
- if (sub_81C8820() || sub_81CC42C(state) || IsDma3ManagerBusyWithBgCopy_())
- return 2;
+ if (sub_81C8820() || WaitForTrainerPic(state) || WaitForHelpBar())
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CB9C8(s32 taskState)
+u32 ShowCheckPageDown(s32 taskState)
{
- int index;
- int var0;
+ int topId;
+ int delta;
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
- index = GetMatchCallListTopIndex();
- var0 = sub_81CB0E4(index);
- if (var0)
+ topId = GetMatchCallListTopIndex();
+ delta = GetIndexDeltaOfNextCheckPageDown(topId);
+ if (delta)
{
PlaySE(SE_SELECT);
- state->unk16 = var0;
- sub_81CC420(state);
- return 0;
+ state->unk16 = delta;
+ TrainerPicSlideOffscreen(state);
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
- if (sub_81CC42C(state))
- return 2;
+ if (WaitForTrainerPic(state))
+ return LT_PAUSE;
- sub_81CBEF8(state, state->unk16);
- return 0;
+ PrintMatchCallLocation(state, state->unk16);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81C87AC(state->unk16);
- return 0;
+ PrintCheckPageInfo(state->unk16);
+ return LT_INC_AND_PAUSE;
case 3:
- sub_81CC39C(state);
- return 0;
+ LoadCheckPageTrainerPic(state);
+ return LT_INC_AND_PAUSE;
case 4:
- if (sub_81C8820() || sub_81CC42C(state))
- return 2;
+ if (sub_81C8820() || WaitForTrainerPic(state))
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CBA68(s32 taskState)
+u32 ExitCheckPage(s32 taskState)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
PlaySE(SE_SELECT);
- sub_81CC420(state);
+ TrainerPicSlideOffscreen(state);
sub_81C87F0();
- return 0;
+ return LT_INC_AND_PAUSE;
case 1:
- if (sub_81C8820() || sub_81CC42C(state))
- return 2;
+ if (sub_81C8820() || WaitForTrainerPic(state))
+ return LT_PAUSE;
- sub_81C7BA4(6);
- sub_81CBDC0(state);
- return 0;
+ PrintHelpBarText(HELPBAR_MC_TRAINER_LIST);
+ UpdateMatchCallInfoBox(state);
+ return LT_INC_AND_PAUSE;
case 2:
if (IsDma3ManagerBusyWithBgCopy())
- return 2;
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CBAD4(s32 taskState)
+u32 ShowCheckPageUp(s32 taskState)
{
- int index;
- int var0;
+ int topId;
+ int delta;
struct Pokenav4Struct *state = GetSubstructPtr(6);
switch (taskState)
{
case 0:
- index = GetMatchCallListTopIndex();
- var0 = sub_81CB128(index);
- if (var0)
+ topId = GetMatchCallListTopIndex();
+ delta = GetIndexDeltaOfNextCheckPageUp(topId);
+ if (delta)
{
PlaySE(SE_SELECT);
- state->unk16 = var0;
- sub_81CC420(state);
- return 0;
+ state->unk16 = delta;
+ TrainerPicSlideOffscreen(state);
+ return LT_INC_AND_PAUSE;
}
break;
case 1:
- if (sub_81CC42C(state))
- return 2;
+ if (WaitForTrainerPic(state))
+ return LT_PAUSE;
- sub_81CBEF8(state, state->unk16);
- return 0;
+ PrintMatchCallLocation(state, state->unk16);
+ return LT_INC_AND_PAUSE;
case 2:
- sub_81C87AC(state->unk16);
- return 0;
+ PrintCheckPageInfo(state->unk16);
+ return LT_INC_AND_PAUSE;
case 3:
- sub_81CC39C(state);
- return 0;
+ LoadCheckPageTrainerPic(state);
+ return LT_INC_AND_PAUSE;
case 4:
- if (sub_81C8820() || sub_81CC42C(state))
- return 2;
+ if (sub_81C8820() || WaitForTrainerPic(state))
+ return LT_PAUSE;
break;
}
- return 4;
+ return LT_FINISH;
}
-u32 sub_81CBB74(s32 taskState)
+u32 ExitMatchCall(s32 taskState)
{
switch (taskState)
{
@@ -856,23 +851,23 @@ u32 sub_81CBB74(s32 taskState)
sub_81CBC38(0);
sub_81C7AC0(0);
sub_81C78A0();
- return 0;
+ return LT_INC_AND_PAUSE;
case 1:
if (IsPaletteFadeActive() || MainMenuLoopedTaskIsBusy())
- return 2;
+ return LT_PAUSE;
sub_81C7FDC();
break;
}
- return 4;
+ return LT_FINISH;
}
static void sub_81CBBB8(void)
{
- struct MatchCallListTemplate template;
- template.unk0 = sub_81CAE94();
- template.unk4 = sub_81CAE38();
+ struct PokenavListTemplate template;
+ template.list.matchCallEntries = sub_81CAE94();
+ template.unk4 = GetNumberRegistered();
template.unk8 = 4;
template.unk6 = 0;
template.unk9 = 13;
@@ -881,8 +876,8 @@ static void sub_81CBBB8(void)
template.unkC = 8;
template.unkD = 3;
template.unkE = 7;
- template.unk10 = sub_81CB050;
- template.unk14 = sub_81CBCEC;
+ template.listFunc.unk10_2 = BufferMatchCallNameAndDesc;
+ template.unk14 = TryDrawRematchPokeballIcon;
sub_81C81D4(&gUnknown_0862278C[2], &template, 2);
CreateTask(sub_81CBC64, 7);
}
@@ -914,12 +909,12 @@ static void sub_81CBC64(u8 taskId)
}
}
-static void sub_81CBCEC(u16 windowId, u32 arg1, u32 arg2)
+static void TryDrawRematchPokeballIcon(u16 windowId, u32 rematchId, u32 arg2)
{
u8 bg = GetWindowAttribute(windowId, WINDOW_BG);
u16 *tilemap = GetBgTilemapBuffer(bg);
tilemap += arg2 * 0x40 + 0x1D;
- if (sub_81CAEBC(arg1))
+ if (ShouldDrawRematchPokeballIcon(rematchId))
{
tilemap[0] = 0x5000;
tilemap[0x20] = 0x5001;
@@ -931,7 +926,7 @@ static void sub_81CBCEC(u16 windowId, u32 arg1, u32 arg2)
}
}
-void sub_81CBD48(u16 windowId, u32 arg0)
+void ClearRematchPokeballIcon(u16 windowId, u32 arg0)
{
u8 bg = GetWindowAttribute(windowId, WINDOW_BG);
u16 *tilemap = GetBgTilemapBuffer(bg);
@@ -940,45 +935,45 @@ void sub_81CBD48(u16 windowId, u32 arg0)
tilemap[0x20] = 0x5002;
}
-static void sub_81CBD78(struct Pokenav4Struct *state)
+static void DrawMatchCallLeftColumnWindows(struct Pokenav4Struct *state)
{
- state->unk10 = AddWindow(&gUnknown_086227D8);
- state->unk12 = AddWindow(&gUnknown_086227E0);
- FillWindowPixelBuffer(state->unk10, PIXEL_FILL(1));
- PutWindowTilemap(state->unk10);
- FillWindowPixelBuffer(state->unk12, PIXEL_FILL(1));
- PutWindowTilemap(state->unk12);
- CopyWindowToVram(state->unk10, 1);
+ state->locWindowId = AddWindow(&sMatchCallLocationWindowTemplate);
+ state->infoBoxWindowId = AddWindow(&sMatchCallInfoBoxWindowTemplate);
+ FillWindowPixelBuffer(state->locWindowId, PIXEL_FILL(1));
+ PutWindowTilemap(state->locWindowId);
+ FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
+ PutWindowTilemap(state->infoBoxWindowId);
+ CopyWindowToVram(state->locWindowId, 1);
}
-static void sub_81CBDC0(struct Pokenav4Struct *state)
+static void UpdateMatchCallInfoBox(struct Pokenav4Struct *state)
{
- FillWindowPixelBuffer(state->unk12, PIXEL_FILL(1));
- sub_81CBDF4(state->unk12);
- sub_81CBE0C(state->unk12);
- sub_81CBE38(state->unk12);
- sub_81CBE50(state->unk12);
- CopyWindowToVram(state->unk12, 2);
+ FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
+ PrintNumberRegisteredLabel(state->infoBoxWindowId);
+ PrintNumberRegistered(state->infoBoxWindowId);
+ PrintNumberOfBattlesLabel(state->infoBoxWindowId);
+ PrintNumberOfBattles(state->infoBoxWindowId);
+ CopyWindowToVram(state->infoBoxWindowId, 2);
}
-static void sub_81CBDF4(u16 windowId)
+static void PrintNumberRegisteredLabel(u16 windowId)
{
- sub_81CBE88(windowId, gText_NumberRegistered, 0);
+ PrintMatchCallInfoLabel(windowId, gText_NumberRegistered, 0);
}
-static void sub_81CBE0C(u16 windowId)
+static void PrintNumberRegistered(u16 windowId)
{
u8 str[3];
- ConvertIntToDecimalStringN(str, sub_81CAE38(), STR_CONV_MODE_LEFT_ALIGN, 3);
- sub_81CBEB4(windowId, str, 1);
+ ConvertIntToDecimalStringN(str, GetNumberRegistered(), STR_CONV_MODE_LEFT_ALIGN, 3);
+ PrintMatchCallInfoNumber(windowId, str, 1);
}
-static void sub_81CBE38(u16 windowId)
+static void PrintNumberOfBattlesLabel(u16 windowId)
{
- sub_81CBE88(windowId, gText_NumberOfBattles, 2);
+ PrintMatchCallInfoLabel(windowId, gText_NumberOfBattles, 2);
}
-static void sub_81CBE50(u16 windowId)
+static void PrintNumberOfBattles(u16 windowId)
{
u8 str[5];
int numTrainerBattles = GetGameStat(GAME_STAT_TRAINER_BATTLES);
@@ -986,150 +981,150 @@ static void sub_81CBE50(u16 windowId)
numTrainerBattles = 99999;
ConvertIntToDecimalStringN(str, numTrainerBattles, STR_CONV_MODE_LEFT_ALIGN, 5);
- sub_81CBEB4(windowId, str, 3);
+ PrintMatchCallInfoNumber(windowId, str, 3);
}
-static void sub_81CBE88(u16 windowId, const u8 *str, int top)
+static void PrintMatchCallInfoLabel(u16 windowId, const u8 *str, int top)
{
int y = top * 16 + 1;
AddTextPrinterParameterized(windowId, 7, str, 2, y, TEXT_SPEED_FF, NULL);
}
-static void sub_81CBEB4(u16 windowId, const u8 *str, int top)
+static void PrintMatchCallInfoNumber(u16 windowId, const u8 *str, int top)
{
int x = GetStringRightAlignXOffset(7, str, 86);
int y = top * 16 + 1;
AddTextPrinterParameterized(windowId, 7, str, x, y, TEXT_SPEED_FF, NULL);
}
-static void sub_81CBEF8(struct Pokenav4Struct *state, int arg1)
+static void PrintMatchCallLocation(struct Pokenav4Struct *state, int arg1)
{
u8 mapName[32];
int x;
int index = GetSelectedMatchCall() + arg1;
- int regionMapSection = sub_81CAEA4(index);
- if (regionMapSection != MAPSEC_NONE)
- GetMapName(mapName, regionMapSection, 0);
+ int mapSec = GetMatchCallMapSec(index);
+ if (mapSec != MAPSEC_NONE)
+ GetMapName(mapName, mapSec, 0);
else
StringCopy(mapName, gText_Unknown);
x = GetStringCenterAlignXOffset(7, mapName, 88);
- FillWindowPixelBuffer(state->unk10, PIXEL_FILL(1));
- AddTextPrinterParameterized(state->unk10, 7, mapName, x, 1, 0, NULL);
+ FillWindowPixelBuffer(state->locWindowId, PIXEL_FILL(1));
+ AddTextPrinterParameterized(state->locWindowId, 7, mapName, x, 1, 0, NULL);
}
-static void sub_81CBF60(struct Pokenav4Struct *state)
+static void PrintMatchCallSelectionOptions(struct Pokenav4Struct *state)
{
u32 i;
- FillWindowPixelBuffer(state->unk12, PIXEL_FILL(1));
- for (i = 0; i < 3; i++)
+ FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
+ for (i = 0; i < MATCH_CALL_OPTION_COUNT; i++)
{
- int messageId = sub_81CB02C(i);
- if (messageId == 3)
+ int optionText = GetMatchCallOptionId(i);
+ if (optionText == MATCH_CALL_OPTION_COUNT)
break;
- AddTextPrinterParameterized(state->unk12, 7, gUnknown_086227E8[messageId], 16, i * 16 + 1, TEXT_SPEED_FF, NULL);
+ AddTextPrinterParameterized(state->infoBoxWindowId, 7, sMatchCallOptionTexts[optionText], 16, i * 16 + 1, TEXT_SPEED_FF, NULL);
}
- CopyWindowToVram(state->unk12, 2);
+ CopyWindowToVram(state->infoBoxWindowId, 2);
}
static bool32 sub_81CBFC4(struct Pokenav4Struct *state)
{
if (!IsDma3ManagerBusyWithBgCopy())
{
- sub_81CC2F0(state, sub_81CB01C());
+ sub_81CC2F0(state, GetMatchCallOptionCursorPos());
return FALSE;
}
return TRUE;
}
-static void sub_81CBFF0(struct Pokenav4Struct *state)
+static void UpdateWindowsReturnToTrainerList(struct Pokenav4Struct *state)
{
- sub_81CC330(state);
- sub_81CBDC0(state);
+ CloseMatchCallSelectOptionsWindow(state);
+ UpdateMatchCallInfoBox(state);
}
-static bool32 sub_81CC004(struct Pokenav4Struct *state)
+static bool32 IsDma3ManagerBusyWithBgCopy1(struct Pokenav4Struct *state)
{
return IsDma3ManagerBusyWithBgCopy();
}
-static void sub_81CC014(struct Pokenav4Struct *state)
+static void UpdateWindowsToShowCheckPage(struct Pokenav4Struct *state)
{
- sub_81CC330(state);
- FillWindowPixelBuffer(state->unk12, PIXEL_FILL(1));
- CopyWindowToVram(state->unk12, 2);
+ CloseMatchCallSelectOptionsWindow(state);
+ FillWindowPixelBuffer(state->infoBoxWindowId, PIXEL_FILL(1));
+ CopyWindowToVram(state->infoBoxWindowId, 2);
}
static void sub_81CC034(struct Pokenav4Struct *state)
{
- state->unk14 = AddWindow(&gUnknown_08622808);
- sub_8197184(state->unk14, 1, 4);
+ state->msgBoxWindowId = AddWindow(&sCallMsgBoxWindowTemplate);
+ sub_8197184(state->msgBoxWindowId, 1, 4);
sub_81C7B40();
}
-static void sub_81CC058(struct Pokenav4Struct *state)
+static void DrawMsgBoxForMatchCallMsg(struct Pokenav4Struct *state)
{
struct Sprite *sprite;
- sub_8197184(state->unk14, 1, 4);
- sub_81971C4(state->unk14, 1, 4);
- FillWindowPixelBuffer(state->unk14, PIXEL_FILL(1));
- PutWindowTilemap(state->unk14);
- CopyWindowToVram(state->unk14, 3);
+ sub_8197184(state->msgBoxWindowId, 1, 4);
+ sub_81971C4(state->msgBoxWindowId, 1, 4);
+ FillWindowPixelBuffer(state->msgBoxWindowId, PIXEL_FILL(1));
+ PutWindowTilemap(state->msgBoxWindowId);
+ CopyWindowToVram(state->msgBoxWindowId, 3);
sprite = PauseSpinningPokenavSprite();
sprite->pos1.x = 24;
sprite->pos1.y = 112;
sprite->pos2.y = 0;
}
-static void sub_81CC09C(struct Pokenav4Struct *state)
+static void DrawMsgBoxForCloseByMsg(struct Pokenav4Struct *state)
{
- LoadUserWindowBorderGfx(state->unk14, 1, 0x40);
- DrawTextBorderOuter(state->unk14, 1, 4);
- FillWindowPixelBuffer(state->unk14, PIXEL_FILL(1));
- PutWindowTilemap(state->unk14);
- CopyWindowToVram(state->unk14, 3);
+ LoadUserWindowBorderGfx(state->msgBoxWindowId, 1, 0x40);
+ DrawTextBorderOuter(state->msgBoxWindowId, 1, 4);
+ FillWindowPixelBuffer(state->msgBoxWindowId, PIXEL_FILL(1));
+ PutWindowTilemap(state->msgBoxWindowId);
+ CopyWindowToVram(state->msgBoxWindowId, 3);
}
-static bool32 sub_81CC0D0(struct Pokenav4Struct *state)
+static bool32 IsDma3ManagerBusyWithBgCopy2(struct Pokenav4Struct *state)
{
return IsDma3ManagerBusyWithBgCopy();
}
-static void sub_81CC0E0(struct Pokenav4Struct *state)
+static void PrintCallingDots(struct Pokenav4Struct *state)
{
- AddTextPrinterParameterized(state->unk14, 1, sText_CallingDots, 32, 1, 1, NULL);
+ AddTextPrinterParameterized(state->msgBoxWindowId, 1, sText_CallingDots, 32, 1, 1, NULL);
}
-static bool32 sub_81CC104(struct Pokenav4Struct *state)
+static bool32 WaitForCallingDotsText(struct Pokenav4Struct *state)
{
RunTextPrinters();
- return IsTextPrinterActive(state->unk14);
+ return IsTextPrinterActive(state->msgBoxWindowId);
}
-static void sub_81CC11C(struct Pokenav4Struct *state)
+static void PrintTrainerIsCloseBy(struct Pokenav4Struct *state)
{
- AddTextPrinterParameterized(state->unk14, 1, gText_TrainerCloseBy, 0, 1, 1, NULL);
+ AddTextPrinterParameterized(state->msgBoxWindowId, 1, gText_TrainerCloseBy, 0, 1, 1, NULL);
}
-static bool32 sub_81CC140(struct Pokenav4Struct *state)
+static bool32 WaitForTrainerIsCloseByText(struct Pokenav4Struct *state)
{
RunTextPrinters();
- return IsTextPrinterActive(state->unk14);
+ return IsTextPrinterActive(state->msgBoxWindowId);
}
-static void sub_81CC158(struct Pokenav4Struct *state)
+static void PrintMatchCallMessage(struct Pokenav4Struct *state)
{
int index = GetSelectedMatchCall();
- const u8 *str = sub_81CAF78(index, &state->unkF);
+ const u8 *str = GetMatchCallMessageText(index, &state->unkF);
u8 speed = GetPlayerTextSpeedDelay();
- AddTextPrinterParameterized(state->unk14, 1, str, 32, 1, speed, NULL);
+ AddTextPrinterParameterized(state->msgBoxWindowId, 1, str, 32, 1, speed, NULL);
}
-static bool32 sub_81CC194(struct Pokenav4Struct *state)
+static bool32 WaitForMatchCallMessageText(struct Pokenav4Struct *state)
{
if (gMain.heldKeys & A_BUTTON)
gTextFlags.canABSpeedUpPrint = 1;
@@ -1137,19 +1132,19 @@ static bool32 sub_81CC194(struct Pokenav4Struct *state)
gTextFlags.canABSpeedUpPrint = 0;
RunTextPrinters();
- return IsTextPrinterActive(state->unk14);
+ return IsTextPrinterActive(state->msgBoxWindowId);
}
-static void sub_81CC1DC(struct Pokenav4Struct *state)
+static void DrawSpinningPokenavForCall(struct Pokenav4Struct *state)
{
ResumeSpinningPokenavSprite();
FillBgTilemapBufferRect_Palette0(1, 0, 0, 0, 32, 20);
CopyBgTilemapBufferToVram(1);
}
-static bool32 sub_81CC204(struct Pokenav4Struct *state)
+static bool32 WaitForSpinningPokenav(struct Pokenav4Struct *state)
{
- return IsDma3ManagerBusyWithBgCopy();
+ return IsDma3ManagerBusyWithBgCopy();
}
static void sub_81CC214(void)
@@ -1163,24 +1158,24 @@ static void sub_81CC214(void)
LoadCompressedSpriteSheet(&gUnknown_08622810[i]);
Pokenav_AllocAndLoadPalettes(gUnknown_08622818);
- state->unk1C = NULL;
+ state->optionsCursorSprite = NULL;
spriteSheet.data = state->unk1828;
spriteSheet.size = 0x800;
spriteSheet.tag = 8;
state->unk1824 = (u8 *)OBJ_VRAM0 + LoadSpriteSheet(&spriteSheet) * 0x20;
paletteNum = AllocSpritePalette(13);
state->unk1A = 0x100 + paletteNum * 0x10;
- state->unk20 = sub_81CC370();
- state->unk20->invisible = 1;
+ state->trainerPicSprite = CreateTrainerPicSprite();
+ state->trainerPicSprite->invisible = TRUE;
}
static void sub_81CC2B4(void)
{
struct Pokenav4Struct *state = GetSubstructPtr(6);
- if (state->unk1C)
- DestroySprite(state->unk1C);
- if (state->unk20)
- DestroySprite(state->unk20);
+ if (state->optionsCursorSprite)
+ DestroySprite(state->optionsCursorSprite);
+ if (state->trainerPicSprite)
+ DestroySprite(state->trainerPicSprite);
FreeSpriteTilesByTag(8);
FreeSpriteTilesByTag(7);
@@ -1190,26 +1185,26 @@ static void sub_81CC2B4(void)
static void sub_81CC2F0(struct Pokenav4Struct *state, int top)
{
- if (!state->unk1C)
+ if (!state->optionsCursorSprite)
{
- u8 spriteId = CreateSprite(&gUnknown_08622830, 4, 80, 5);
- state->unk1C = &gSprites[spriteId];
- sub_81CC344(state, top);
+ u8 spriteId = CreateSprite(&sOptionsCursorSpriteTemplate, 4, 80, 5);
+ state->optionsCursorSprite = &gSprites[spriteId];
+ UpdateCursorGfxPos(state, top);
}
}
-static void sub_81CC330(struct Pokenav4Struct *state)
+static void CloseMatchCallSelectOptionsWindow(struct Pokenav4Struct *state)
{
- DestroySprite(state->unk1C);
- state->unk1C = NULL;
+ DestroySprite(state->optionsCursorSprite);
+ state->optionsCursorSprite = NULL;
}
-static void sub_81CC344(struct Pokenav4Struct *state, int top)
+static void UpdateCursorGfxPos(struct Pokenav4Struct *state, int top)
{
- state->unk1C->pos2.y = top * 16;
+ state->optionsCursorSprite->pos2.y = top * 16;
}
-void sub_81CC34C(struct Sprite *sprite)
+void SpriteCB_OptionsCursor(struct Sprite *sprite)
{
if (++sprite->data[0] > 3)
{
@@ -1218,39 +1213,39 @@ void sub_81CC34C(struct Sprite *sprite)
}
}
-static struct Sprite *sub_81CC370(void)
+static struct Sprite *CreateTrainerPicSprite(void)
{
- u8 spriteId = CreateSprite(&gUnknown_08622850, 44, 104, 6);
+ u8 spriteId = CreateSprite(&sTrainerPicSpriteTemplate, 44, 104, 6);
return &gSprites[spriteId];
}
-static void sub_81CC39C(struct Pokenav4Struct *state)
+static void LoadCheckPageTrainerPic(struct Pokenav4Struct *state)
{
u16 cursor;
- int trainerId = sub_81CAF04(GetSelectedMatchCall());
- if (trainerId >= 0)
+ int trainerPic = GetMatchCallTrainerPic(GetSelectedMatchCall());
+ if (trainerPic >= 0)
{
- DecompressPicFromTable(&gTrainerFrontPicTable[trainerId], state->unk1828, SPECIES_NONE);
- LZ77UnCompWram(gTrainerFrontPicPaletteTable[trainerId].data, state->unk2028);
+ DecompressPicFromTable(&gTrainerFrontPicTable[trainerPic], state->unk1828, SPECIES_NONE);
+ LZ77UnCompWram(gTrainerFrontPicPaletteTable[trainerPic].data, state->unk2028);
cursor = RequestDma3Copy(state->unk1828, state->unk1824, 0x800, 1);
LoadPalette(state->unk2028, state->unk1A, 0x20);
- state->unk20->data[0] = 0;
- state->unk20->data[7] = cursor;
- state->unk20->callback = sub_81CC440;
+ state->trainerPicSprite->data[0] = 0;
+ state->trainerPicSprite->data[7] = cursor;
+ state->trainerPicSprite->callback = SpriteCB_TrainerPicSlideOnscreen;
}
}
-static void sub_81CC420(struct Pokenav4Struct *state)
+static void TrainerPicSlideOffscreen(struct Pokenav4Struct *state)
{
- state->unk20->callback = sub_81CC4A4;
+ state->trainerPicSprite->callback = SpriteCB_TrainerPicSlideOffscreen;
}
-static bool32 sub_81CC42C(struct Pokenav4Struct *state)
+static bool32 WaitForTrainerPic(struct Pokenav4Struct *state)
{
- return state->unk20->callback != SpriteCallbackDummy;
+ return state->trainerPicSprite->callback != SpriteCallbackDummy;
}
-static void sub_81CC440(struct Sprite *sprite)
+static void SpriteCB_TrainerPicSlideOnscreen(struct Sprite *sprite)
{
switch (sprite->data[0])
{
@@ -1258,7 +1253,7 @@ static void sub_81CC440(struct Sprite *sprite)
if (CheckForSpaceForDma3Request(sprite->data[7]) != -1)
{
sprite->pos2.x = -80;
- sprite->invisible = 0;
+ sprite->invisible = FALSE;
sprite->data[0]++;
}
break;
@@ -1273,12 +1268,12 @@ static void sub_81CC440(struct Sprite *sprite)
}
}
-static void sub_81CC4A4(struct Sprite *sprite)
+static void SpriteCB_TrainerPicSlideOffscreen(struct Sprite *sprite)
{
sprite->pos2.x -= 8;
if (sprite->pos2.x <= -80)
{
- sprite->invisible = 1;
+ sprite->invisible = TRUE;
sprite->callback = SpriteCallbackDummy;
}
}
diff --git a/src/pokenav_unk_5.c b/src/pokenav_unk_5.c
index a42d08e15..be30ca94d 100755
--- a/src/pokenav_unk_5.c
+++ b/src/pokenav_unk_5.c
@@ -401,10 +401,10 @@ u32 sub_81CC878(s32 taskState)
if (sub_8123514() || sub_81CCC88())
return 2;
- sub_81C7BA4(1);
+ PrintHelpBarText(HELPBAR_MAP_ZOOMED_OUT);
return 0;
case 2:
- if (IsDma3ManagerBusyWithBgCopy_())
+ if (WaitForHelpBar())
return 2;
sub_81C7E14(4);
@@ -434,10 +434,10 @@ u32 sub_81CC8D8(s32 taskState)
if (sub_8123514() || sub_81CCC88())
return 2;
- sub_81C7BA4(2);
+ PrintHelpBarText(HELPBAR_MAP_ZOOMED_IN);
return 0;
case 3:
- if (IsDma3ManagerBusyWithBgCopy_())
+ if (WaitForHelpBar())
return 2;
sub_81C7E14(5);
diff --git a/src/pokenav_unk_6.c b/src/pokenav_unk_6.c
index ac8237793..4c93c0d41 100644
--- a/src/pokenav_unk_6.c
+++ b/src/pokenav_unk_6.c
@@ -463,14 +463,14 @@ void sub_81CD970(void)
{
unkPtr->unk4[count].boxId = TOTAL_BOXES_COUNT;
unkPtr->unk4[count].monId = i;
- unkPtr->unk4[count].unk6 = 0;
+ unkPtr->unk4[count].data = 0;
count++;
}
}
unkPtr->unk4[count].boxId = 0;
unkPtr->unk4[count].monId = 0;
- unkPtr->unk4[count].unk6 = 0;
+ unkPtr->unk4[count].data = 0;
unkPtr->unk2 = 0;
unkPtr->unk0 = count + 1;
structPtr->unk678A = 0;
@@ -597,7 +597,7 @@ u8 *sub_81CDD24(u8 id)
u16 sub_81CDD48(void)
{
struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
- return unkPtr->unk4[unkPtr->unk2].unk6;
+ return unkPtr->unk4[unkPtr->unk2].data;
}
bool32 sub_81CDD5C(void)
diff --git a/src/pokenav_unk_7.c b/src/pokenav_unk_7.c
index bcc608380..11fdaa425 100644
--- a/src/pokenav_unk_7.c
+++ b/src/pokenav_unk_7.c
@@ -195,8 +195,8 @@ u32 sub_81CDE94(s32 state)
{
case 0:
if (sub_81CD3C4() != TRUE)
- return 2;
- return 0;
+ return LT_PAUSE;
+ return LT_INC_AND_PAUSE;
case 1:
InitBgTemplates(gUnknown_08623358, ARRAY_COUNT(gUnknown_08623358));
ChangeBgX(1, 0, 0);
@@ -209,15 +209,15 @@ u32 sub_81CDE94(s32 state)
SetGpuReg(REG_OFFSET_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
decompress_and_copy_tile_data_to_vram(3, gPokenavCondition_Gfx, 0, 0, 0);
- return 0;
+ return LT_INC_AND_PAUSE;
case 2:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
decompress_and_copy_tile_data_to_vram(2, gUnknown_08623228, 0, 0, 0);
- return 0;
+ return LT_INC_AND_PAUSE;
case 3:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
LZ77UnCompVram(gPokenavCondition_Tilemap, structPtr->tilemapBuffers[0]);
SetBgTilemapBuffer(3, structPtr->tilemapBuffers[0]);
@@ -228,26 +228,26 @@ u32 sub_81CDE94(s32 state)
CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20);
CopyPaletteIntoBufferUnfaded(gUnknown_08623208, 0xF0, 0x20);
structPtr->unk1814 = -80;
- return 0;
+ return LT_INC_AND_PAUSE;
case 4:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]);
SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]);
CopyBgTilemapBufferToVram(2);
CopyPaletteIntoBufferUnfaded(gUnknown_086231E8, 0x30, 0x20);
sub_81D21DC(2);
- return 0;
+ return LT_INC_AND_PAUSE;
case 5:
sub_8199DF0(1, 0, 0, 1);
sub_8199DF0(1, 17, 1, 1);
CpuFill32(0, structPtr->tilemapBuffers[1], BG_SCREEN_SIZE);
SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]);
- return 0;
+ return LT_INC_AND_PAUSE;
case 6:
if (free_temp_tile_data_buffers_if_possible())
- return 2;
+ return LT_PAUSE;
structPtr->unk1820 = AddWindow(&gUnknown_08623364);
if (sub_81CDD5C() == TRUE)
@@ -257,29 +257,29 @@ u32 sub_81CDE94(s32 state)
structPtr->unk1823 = AddWindow(&gUnknown_0862337C);
}
DeactivateAllTextPrinters();
- return 0;
+ return LT_INC_AND_PAUSE;
case 7:
sub_81CED30(0);
- return 0;
+ return LT_INC_AND_PAUSE;
case 8:
sub_81CE9E4();
- return 0;
+ return LT_INC_AND_PAUSE;
case 9:
if (sub_81CDD5C() == TRUE)
sub_81CE934();
- return 0;
+ return LT_INC_AND_PAUSE;
case 10:
sub_81CE754(0, sub_81CDC84(), TRUE);
- return 0;
+ return LT_INC_AND_PAUSE;
case 11:
sub_81CE754(1, sub_81CDC84(), TRUE);
- return 0;
+ return LT_INC_AND_PAUSE;
case 12:
sub_81CE754(2, sub_81CDC84(), TRUE);
- return 0;
+ return LT_INC_AND_PAUSE;
case 13:
if (sub_81CE754(3, sub_81CDC84(), TRUE) != TRUE)
- return 2;
+ return LT_PAUSE;
PutWindowTilemap(structPtr->unk1820);
if (sub_81CDD5C() == TRUE)
{
@@ -287,14 +287,14 @@ u32 sub_81CDE94(s32 state)
PutWindowTilemap(structPtr->unk1822);
PutWindowTilemap(structPtr->unk1823);
}
- return 0;
+ return LT_INC_AND_PAUSE;
case 14:
ShowBg(1);
HideBg(2);
ShowBg(3);
if (sub_81CDD5C() == TRUE)
- sub_81C7BA4(4);
- return 0;
+ PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
+ return LT_INC_AND_PAUSE;
case 15:
sub_81C7AC0(1);
if (!sub_81CDD5C())
@@ -303,25 +303,25 @@ u32 sub_81CDE94(s32 state)
sub_81C7FA0(1, TRUE, 0);
sub_81C7FA0(6, TRUE, 0);
}
- return 0;
+ return LT_INC_AND_PAUSE;
case 16:
if (IsPaletteFadeActive())
- return 2;
+ return LT_PAUSE;
if (!sub_81CDD5C() && sub_81C8010())
- return 2;
+ return LT_PAUSE;
SetVBlankCallback_(sub_81CEE44);
- return 0;
+ return LT_INC_AND_PAUSE;
case 17:
sub_81CEE90();
sub_81D20AC(sub_81CDC70());
- return 0;
+ return LT_INC_AND_PAUSE;
case 18:
if (sub_81D20BC(sub_81CDC70()))
- return 2;
- return 0;
+ return LT_PAUSE;
+ return LT_INC_AND_PAUSE;
case 19:
sub_81CEE74(TRUE);
- return 0;
+ return LT_INC_AND_PAUSE;
case 20:
if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814))
{
@@ -329,12 +329,12 @@ u32 sub_81CDE94(s32 state)
if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50())
sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0());
- return 4;
+ return LT_FINISH;
}
- return 2;
+ return LT_PAUSE;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE2D0(s32 state)
@@ -367,7 +367,7 @@ u32 sub_81CE2D0(s32 state)
return 1;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE37C(s32 state)
@@ -424,7 +424,7 @@ u32 sub_81CE37C(s32 state)
return 2;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE4D8(s32 state)
@@ -468,7 +468,7 @@ u32 sub_81CE4D8(s32 state)
return 2;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE5E4(s32 state)
@@ -506,7 +506,7 @@ u32 sub_81CE5E4(s32 state)
return 2;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE6BC(s32 state)
@@ -514,18 +514,18 @@ u32 sub_81CE6BC(s32 state)
switch (state)
{
case 0:
- sub_811FAA4(sub_81CDD7C(), 0xb0, 0x20);
+ sub_811FAA4(sub_81CDD7C(), 176, 32);
return 1;
case 1:
- sub_81C7BA4(5);
+ PrintHelpBarText(HELPBAR_CONDITION_MARKINGS);
return 1;
case 2:
- if (IsDma3ManagerBusyWithBgCopy_() == TRUE)
+ if (WaitForHelpBar() == TRUE)
return 2;
return 1;
}
- return 4;
+ return LT_FINISH;
}
u32 sub_81CE700(s32 state)
@@ -536,18 +536,18 @@ u32 sub_81CE700(s32 state)
sub_811FAF8();
return 1;
case 1:
- sub_81C7BA4(4);
+ PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
return 1;
case 2:
- if (IsDma3ManagerBusyWithBgCopy_() == TRUE)
+ if (WaitForHelpBar() == TRUE)
return 2;
return 1;
}
- return 4;
+ return LT_FINISH;
}
-u8 *sub_81CE738(u8 *dst, u16 num)
+static u8 *UnusedPrintNumberString(u8 *dst, u16 num)
{
u8 *txtPtr = ConvertIntToDecimalStringN(dst, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
txtPtr = StringCopy(txtPtr, gText_Number2);
diff --git a/src/pokenav_unk_8.c b/src/pokenav_unk_8.c
index c52932a79..6c1460dd1 100644
--- a/src/pokenav_unk_8.c
+++ b/src/pokenav_unk_8.c
@@ -227,7 +227,7 @@ static s32 sub_81CF0F0(void)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 i = GetSelectedMatchCall();
- return ptr->unkPtr->unk4[i].unk6;
+ return ptr->unkPtr->unk4[i].data;
}
static u16 sub_81CF10C(void)
@@ -258,7 +258,7 @@ static u32 sub_81CF134(s32 state)
if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG))
{
item.monId = i;
- item.unk6 = GetMonData(pokemon, ptr->unk14);
+ item.data = GetMonData(pokemon, ptr->unk14);
sub_81CF2C4(ptr, &item);
}
}
@@ -290,7 +290,7 @@ static u32 sub_81CF1D8(s32 state)
{
item.boxId = boxId;
item.monId = monId;
- item.unk6 = GetBoxMonDataAt(boxId, monId, ptr->unk14);
+ item.data = GetBoxMonDataAt(boxId, monId, ptr->unk14);
sub_81CF2C4(ptr, &item);
}
boxCount++;
@@ -313,19 +313,19 @@ static u32 sub_81CF278(s32 state)
{
struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 r6 = ptr->unkPtr->unk0;
- s32 r4 = ptr->unkPtr->unk4[0].unk6;
+ s32 r4 = ptr->unkPtr->unk4[0].data;
s32 i;
- ptr->unkPtr->unk4[0].unk6 = 1;
+ ptr->unkPtr->unk4[0].data = 1;
for (i = 1; i < r6; i++)
{
- if (ptr->unkPtr->unk4[i].unk6 == r4)
+ if (ptr->unkPtr->unk4[i].data == r4)
{
- ptr->unkPtr->unk4[i].unk6 = ptr->unkPtr->unk4[i - 1].unk6;
+ ptr->unkPtr->unk4[i].data = ptr->unkPtr->unk4[i - 1].data;
}
else
{
- r4 = ptr->unkPtr->unk4[i].unk6;
- ptr->unkPtr->unk4[i].unk6 = i + 1;
+ r4 = ptr->unkPtr->unk4[i].data;
+ ptr->unkPtr->unk4[i].data = i + 1;
}
}
ptr->unk18 = 1;
@@ -340,7 +340,7 @@ static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *it
while (right != insertionIdx)
{
- if (item->unk6 > structPtr->unkPtr->unk4[insertionIdx].unk6)
+ if (item->data > structPtr->unkPtr->unk4[insertionIdx].data)
right = insertionIdx;
else
left = insertionIdx + 1;
@@ -431,7 +431,7 @@ static u32 sub_81CF418(s32 state)
if (sub_81C8224())
return LT_PAUSE;
sub_81CF7C8(unk);
- sub_81C7BA4(3);
+ PrintHelpBarText(HELPBAR_CONDITION_MON_LIST);
return LT_INC_AND_PAUSE;
case 4:
if (free_temp_tile_data_buffers_if_possible())
@@ -651,8 +651,8 @@ static void sub_81CF7F4(struct PokenavSub8 * ptr)
static void sub_81CF88C(void)
{
- struct MatchCallListTemplate template;
- template.unk0 = sub_81CF0D0();
+ struct PokenavListTemplate template;
+ template.list.monList = sub_81CF0D0();
template.unk4 = sub_81CF0E0();
template.unk8 = 4;
template.unk6 = sub_81CF10C();
@@ -662,7 +662,7 @@ static void sub_81CF88C(void)
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
- template.unk10 = sub_81CF8E4;
+ template.listFunc.unk10_1 = sub_81CF8E4;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_08623590[1], &template, 0);
}
diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c
index 05d590a87..b1a344de9 100644
--- a/src/pokenav_unk_9.c
+++ b/src/pokenav_unk_9.c
@@ -218,7 +218,7 @@ static s32 sub_81CFB48(void)
{
struct PokenavSub9 * ptr = GetSubstructPtr(9);
s32 idx = GetSelectedMatchCall();
- return ptr->unk1C->unk4[idx].unk6;
+ return ptr->unk1C->unk4[idx].data;
}
static s32 sub_81CFB64(void)
@@ -240,7 +240,7 @@ static u32 sub_81CFB8C(s32 state)
ptr->unk1C->unk0 = 0;
ptr->unk1C->unk2 = 0;
- item.boxId = 14;
+ item.boxId = TOTAL_BOXES_COUNT;
for (i = 0; i < PARTY_SIZE; i++)
{
struct Pokemon * pokemon = &gPlayerParty[i];
@@ -252,7 +252,7 @@ static u32 sub_81CFB8C(s32 state)
if (ribbonCount != 0)
{
item.monId = i;
- item.unk6 = ribbonCount;
+ item.data = ribbonCount;
sub_81CFCEC(ptr, &item);
}
}
@@ -288,13 +288,13 @@ static u32 sub_81CFC40(s32 state)
{
item.boxId = boxId;
item.monId = monId;
- item.unk6 = ribbonCount;
+ item.data = ribbonCount;
sub_81CFCEC(ptr, &item);
}
}
boxCount++;
monId++;
- if (boxCount > 14)
+ if (boxCount > TOTAL_BOXES_COUNT)
{
ptr->unkC = boxId;
ptr->unk10 = monId;
@@ -317,7 +317,7 @@ static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *it
while (right != insertionIdx)
{
- if (item->unk6 > structPtr->unk1C->unk4[insertionIdx].unk6)
+ if (item->data > structPtr->unk1C->unk4[insertionIdx].data)
right = insertionIdx;
else
left = insertionIdx + 1;
@@ -445,7 +445,7 @@ static u32 sub_81CFEB8(s32 state)
return LT_PAUSE;
ShowBg(2);
HideBg(3);
- sub_81C7BA4(9);
+ PrintHelpBarText(HELPBAR_RIBBONS_MON_LIST);
sub_81C7AC0(1);
if (!unk->unkC)
{
@@ -665,8 +665,8 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
static void sub_81D0304(void)
{
- struct MatchCallListTemplate template;
- template.unk0 = sub_81CFB28();
+ struct PokenavListTemplate template;
+ template.list.monList = sub_81CFB28();
template.unk4 = sub_81CFB38();
template.unk8 = 4;
template.unk6 = sub_81CFB64();
@@ -676,7 +676,7 @@ static void sub_81D0304(void)
template.unkC = 8;
template.unkD = 2;
template.unkE = 1;
- template.unk10 = sub_81D035C;
+ template.listFunc.unk10_1 = sub_81D035C;
template.unk14 = NULL;
sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
}
@@ -688,7 +688,7 @@ static void sub_81D035C(struct PokenavMonList * item0, u8 * dest)
u8 * s;
const u8 * genderStr;
struct PokenavMonList * item = item0;
- if (item->boxId == 14)
+ if (item->boxId == TOTAL_BOXES_COUNT)
{
struct Pokemon * mon = &gPlayerParty[item->monId];
gender = GetMonGender(mon);
@@ -722,5 +722,5 @@ static void sub_81D035C(struct PokenavMonList * item0, u8 * dest)
*s++ = 5; // LV
ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3);
dest = sub_81DB494(dest, 1, gStringVar1, 54);
- ConvertIntToDecimalStringN(dest, item->unk6, STR_CONV_MODE_RIGHT_ALIGN, 2);
+ ConvertIntToDecimalStringN(dest, item->data, STR_CONV_MODE_RIGHT_ALIGN, 2);
}
diff --git a/src/strings.c b/src/strings.c
index 8190ffc45..f0566c859 100644
--- a/src/strings.c
+++ b/src/strings.c
@@ -2,23 +2,23 @@
#include "strings.h"
ALIGNED(4)
-const u8 gExpandedPlaceholder_Empty[] = _("");
-const u8 gExpandedPlaceholder_Kun[] = _("");
-const u8 gExpandedPlaceholder_Chan[] = _("");
-const u8 gExpandedPlaceholder_Sapphire[] = _("SAPPHIRE");
-const u8 gExpandedPlaceholder_Ruby[] = _("RUBY");
-const u8 gExpandedPlaceholder_Emerald[] = _("EMERALD");
-const u8 gExpandedPlaceholder_Aqua[] = _("AQUA");
-const u8 gExpandedPlaceholder_Magma[] = _("MAGMA");
-const u8 gExpandedPlaceholder_Archie[] = _("ARCHIE");
-const u8 gExpandedPlaceholder_Maxie[] = _("MAXIE");
-const u8 gExpandedPlaceholder_Kyogre[] = _("KYOGRE");
-const u8 gExpandedPlaceholder_Groudon[] = _("GROUDON");
-const u8 gExpandedPlaceholder_Brendan[] = _("BRENDAN");
-const u8 gExpandedPlaceholder_May[] = _("MAY");
+const u8 gText_ExpandedPlaceholder_Empty[] = _("");
+const u8 gText_ExpandedPlaceholder_Kun[] = _("");
+const u8 gText_ExpandedPlaceholder_Chan[] = _("");
+const u8 gText_ExpandedPlaceholder_Sapphire[] = _("SAPPHIRE");
+const u8 gText_ExpandedPlaceholder_Ruby[] = _("RUBY");
+const u8 gText_ExpandedPlaceholder_Emerald[] = _("EMERALD");
+const u8 gText_ExpandedPlaceholder_Aqua[] = _("AQUA");
+const u8 gText_ExpandedPlaceholder_Magma[] = _("MAGMA");
+const u8 gText_ExpandedPlaceholder_Archie[] = _("ARCHIE");
+const u8 gText_ExpandedPlaceholder_Maxie[] = _("MAXIE");
+const u8 gText_ExpandedPlaceholder_Kyogre[] = _("KYOGRE");
+const u8 gText_ExpandedPlaceholder_Groudon[] = _("GROUDON");
+const u8 gText_ExpandedPlaceholder_Brendan[] = _("BRENDAN");
+const u8 gText_ExpandedPlaceholder_May[] = _("MAY");
const u8 gText_EggNickname[] = _("EGG");
const u8 gText_Pokemon[] = _("POKéMON");
-const u8 gProfBirchMatchCallName[] = _("PROF. BIRCH");
+const u8 gText_ProfBirchMatchCallName[] = _("PROF. BIRCH");
const u8 gText_MainMenuNewGame[] = _("NEW GAME");
const u8 gText_MainMenuContinue[] = _("CONTINUE");
const u8 gText_MainMenuOption[] = _("OPTION");
@@ -1276,20 +1276,20 @@ const u8 gText_Sorry[] = _("SORRY");
const u8 gText_YaySmileEmoji[] = _("YAY{EMOJI_BIGSMILE}");
const u8 gText_ThankYou[] = _("THANK YOU");
const u8 gText_ByeBye[] = _("BYE-BYE!");
-const u8 gMatchCallStevenStrategyText[] = _("Attack the weak points!");
-const u8 gMatchCall_StevenTrainersPokemonText[] = _("Ultimate STEEL POKéMON.");
-const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[] = _("I'd climb even waterfalls");
-const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[] = _("to find a rare stone!");
-const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[] = _("I'm the strongest and most");
-const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[] = _("energetic after all!");
-const u8 gMatchCall_BrendanStrategyText[] = _("Battle with knowledge!");
-const u8 gMatchCall_BrendanTrainersPokemonText[] = _("I will use various POKéMON.");
-const u8 gMatchCall_BrendanSelfIntroductionText_Line1[] = _("I'll be a better POKéMON");
-const u8 gMatchCall_BrendanSelfIntroductionText_Line2[] = _("prof than my father is!");
-const u8 gMatchCall_MayStrategyText[] = _("I'm not so good at battles.");
-const u8 gMatchCall_MayTrainersPokemonText[] = _("I'll use any POKéMON!");
-const u8 gMatchCall_MaySelfIntroductionText_Line1[] = _("My POKéMON and I help");
-const u8 gMatchCall_MaySelfIntroductionText_Line2[] = _("my father's research.");
+const u8 gText_MatchCallSteven_Strategy[] = _("Attack the weak points!");
+const u8 gText_MatchCallSteven_Pokemon[] = _("Ultimate STEEL POKéMON.");
+const u8 gText_MatchCallSteven_Intro1_BeforeMeteorFallsBattle[] = _("I'd climb even waterfalls");
+const u8 gText_MatchCallSteven_Intro2_BeforeMeteorFallsBattle[] = _("to find a rare stone!");
+const u8 gText_MatchCallSteven_Intro1_AfterMeteorFallsBattle[] = _("I'm the strongest and most");
+const u8 gText_MatchCallSteven_Intro2_AfterMeteorFallsBattle[] = _("energetic after all!");
+const u8 gText_MatchCallBrendan_Strategy[] = _("Battle with knowledge!");
+const u8 gText_MatchCallBrendan_Pokemon[] = _("I will use various POKéMON.");
+const u8 gText_MatchCallBrendan_Intro1[] = _("I'll be a better POKéMON");
+const u8 gText_MatchCallBrendan_Intro2[] = _("prof than my father is!");
+const u8 gText_MatchCallMay_Strategy[] = _("I'm not so good at battles.");
+const u8 gText_MatchCallMay_Pokemon[] = _("I'll use any POKéMON!");
+const u8 gText_MatchCallMay_Intro1[] = _("My POKéMON and I help");
+const u8 gText_MatchCallMay_Intro2[] = _("my father's research.");
const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!");
const u8 gText_NicknameHatchPrompt[] = _("Would you like to nickname the newly\nhatched {STR_VAR_1}?");
ALIGNED(4) const u8 gText_ReadyToBerryCrush[] = _("Are you ready to BERRY-CRUSH?\nPlease pick a BERRY for use.\p");
@@ -1769,28 +1769,28 @@ const u8 gText_ClearingData[] = _("Clearing data…\nPlease wait.");
const u8 gText_IsThisTheCorrectTime[] = _("Is this the correct time?");
const u8 gText_Confirm3[] = _("CONFIRM");
const u8 gText_Cancel4[] = _("CANCEL");
-const u8 gMrStoneMatchCallDesc[] = _("DEVON PRES");
-const u8 gMrStoneMatchCallName[] = _("MR. STONE");
-const u8 gStevenMatchCallDesc[] = _("HARD AS ROCK");
-const u8 gStevenMatchCallName[] = _("STEVEN");
-const u8 gMayBrendanMatchCallDesc[] = _("RAD NEIGHBOR");
-const u8 gNormanMatchCallDesc[] = _("RELIABLE ONE");
-const u8 gMomMatchCallDesc[] = _("CALM & KIND");
-const u8 gWallyMatchCallDesc[] = _("{PKMN} LOVER");
-const u8 gNormanMatchCallName[] = _("DAD");
-const u8 gMomMatchCallName[] = _("MOM");
-const u8 gScottMatchCallDesc[] = _("ELUSIVE EYES");
-const u8 gScottMatchCallName[] = _("SCOTT");
-const u8 gRoxanneMatchCallDesc[] = _("ROCKIN' WHIZ");
-const u8 gBrawlyMatchCallDesc[] = _("THE BIG HIT");
-const u8 gWattsonMatchCallDesc[] = _("SWELL SHOCK");
-const u8 gFlanneryMatchCallDesc[] = _("PASSION BURN");
-const u8 gWinonaMatchCallDesc[] = _("SKY TAMER");
-const u8 gTateLizaMatchCallDesc[] = _("MYSTIC DUO");
-const u8 gJuanMatchCallDesc[] = _("DANDY CHARM");
-const u8 gEliteFourMatchCallDesc[] = _("ELITE FOUR");
-const u8 gChampionMatchCallDesc[] = _("CHAMPION");
-const u8 gProfBirchMatchCallDesc[] = _("{PKMN} PROF.");
+const u8 gText_MrStoneMatchCallDesc[] = _("DEVON PRES");
+const u8 gText_MrStoneMatchCallName[] = _("MR. STONE");
+const u8 gText_StevenMatchCallDesc[] = _("HARD AS ROCK");
+const u8 gText_StevenMatchCallName[] = _("STEVEN");
+const u8 gText_MayBrendanMatchCallDesc[] = _("RAD NEIGHBOR");
+const u8 gText_NormanMatchCallDesc[] = _("RELIABLE ONE");
+const u8 gText_MomMatchCallDesc[] = _("CALM & KIND");
+const u8 gText_WallyMatchCallDesc[] = _("{PKMN} LOVER");
+const u8 gText_NormanMatchCallName[] = _("DAD");
+const u8 gText_MomMatchCallName[] = _("MOM");
+const u8 gText_ScottMatchCallDesc[] = _("ELUSIVE EYES");
+const u8 gText_ScottMatchCallName[] = _("SCOTT");
+const u8 gText_RoxanneMatchCallDesc[] = _("ROCKIN' WHIZ");
+const u8 gText_BrawlyMatchCallDesc[] = _("THE BIG HIT");
+const u8 gText_WattsonMatchCallDesc[] = _("SWELL SHOCK");
+const u8 gText_FlanneryMatchCallDesc[] = _("PASSION BURN");
+const u8 gText_WinonaMatchCallDesc[] = _("SKY TAMER");
+const u8 gText_TateLizaMatchCallDesc[] = _("MYSTIC DUO");
+const u8 gText_JuanMatchCallDesc[] = _("DANDY CHARM");
+const u8 gText_EliteFourMatchCallDesc[] = _("ELITE FOUR");
+const u8 gText_ChampionMatchCallDesc[] = _("CHAMPION");
+const u8 gText_ProfBirchMatchCallDesc[] = _("{PKMN} PROF.");
const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby…\nAwaiting another player to choose.");
const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 60}");
const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 60}");