summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGriffinR <griffin.richards@comcast.net>2019-12-05 15:33:36 -0500
committerGriffinR <griffin.richards@comcast.net>2019-12-05 15:33:36 -0500
commit548af3c0f1a2807e791fe7bbfe1fc57ddb726c5e (patch)
treee4ef44282b7599b1bdefb729ba33e74d15ba0d86
parent70d1f54ab96235b0e0d07d40526f16449e7cb1e7 (diff)
Document a bit of Match Call
-rw-r--r--data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc4
-rw-r--r--data/text/match_call.inc218
-rw-r--r--gflib/string_util.c40
-rw-r--r--include/constants/global.h1
-rw-r--r--include/global.h2
-rw-r--r--include/gym_leader_rematch.h9
-rw-r--r--include/pokenav.h39
-rw-r--r--include/strings.h59
-rw-r--r--src/data/text/match_call_messages.h787
-rw-r--r--src/daycare.c4
-rw-r--r--src/naming_screen.c3
-rw-r--r--src/pokenav.c2
-rw-r--r--src/pokenav_match_call_data.c653
-rw-r--r--src/pokenav_match_call_ui.c30
-rw-r--r--src/pokenav_unk_1.c4
-rw-r--r--src/pokenav_unk_10.c3
-rw-r--r--src/pokenav_unk_2.c2
-rwxr-xr-xsrc/pokenav_unk_3.c168
-rwxr-xr-xsrc/pokenav_unk_4.c24
-rw-r--r--src/pokenav_unk_6.c9
-rw-r--r--src/pokenav_unk_8.c24
-rw-r--r--src/pokenav_unk_9.c19
-rw-r--r--src/strings.c108
23 files changed, 1149 insertions, 1063 deletions
diff --git a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
index 403377161..46dfe025f 100644
--- a/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
+++ b/data/maps/MossdeepCity_SpaceCenter_2F/scripts.inc
@@ -357,12 +357,12 @@ MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: @ 8224175
end
MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall:: @ 8224193
- pokenavcall MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall
+ pokenavcall MatchCall_Text_MayRayquazaCall
waitmessage
return
MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall:: @ 822419A
- pokenavcall MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall
+ pokenavcall MatchCall_Text_BrendanRayquazaCall
waitmessage
return
diff --git a/data/text/match_call.inc b/data/text/match_call.inc
index 9ecdd03c7..568ed2a86 100644
--- a/data/text/match_call.inc
+++ b/data/text/match_call.inc
@@ -2014,7 +2014,7 @@ MatchCall_BattlePyramidText14:: @ 82B21FC
.string "You're an inspiration!\n"
.string "See you again!$"
-gText_Mom_Pokenav_2B227B:: @ 82B227B
+MatchCall_Text_Mom1:: @ 82B227B
.string "MOM: Your father and you…\n"
.string "Everyone is captivated by POKéMON.\p"
.string "What is the charm of POKéMON?\p"
@@ -2022,7 +2022,7 @@ gText_Mom_Pokenav_2B227B:: @ 82B227B
.string "I adore POKéMON that help me with\l"
.string "my everyday chores.$"
-gText_Mom_Pokenav_2B2310:: @ 82B2310
+MatchCall_Text_Mom2:: @ 82B2310
.string "MOM: Hi, {PLAYER}!\n"
.string "Your father keeps himself locked\l"
.string "away in the PETALBURG GYM.\p"
@@ -2032,13 +2032,13 @@ gText_Mom_Pokenav_2B2310:: @ 82B2310
.string "I'm guessing that losing to you\n"
.string "was a big blow to his pride!$"
-gText_Mom_Pokenav_2B23F3:: @ 82B23F3
+MatchCall_Text_Mom3:: @ 82B23F3
.string "MOM: {PLAYER}…\n"
.string "Don't worry about me or the house.\p"
.string "Wear those RUNNING SHOES until\n"
.string "they fall apart, honey!$"
-gText_Roxanne_Pokenav_2B2456:: @ 82B2456
+MatchCall_Text_Roxanne1:: @ 82B2456
.string "ROXANNE: Oh, hello, {PLAYER}!\p"
.string "I've been hard at work retraining\n"
.string "since we met.\p"
@@ -2047,7 +2047,7 @@ gText_Roxanne_Pokenav_2B2456:: @ 82B2456
.string "But when I do, please visit my GYM\n"
.string "for a rematch!$"
-gText_Roxanne_Pokenav_2B250E:: @ 82B250E
+MatchCall_Text_Roxanne2:: @ 82B250E
.string "ROXANNE: Is this {PLAYER}?\n"
.string "Congratulations!\l"
.string "I've been hearing about you!\p"
@@ -2056,18 +2056,18 @@ gText_Roxanne_Pokenav_2B250E:: @ 82B250E
.string "But when I do, please visit my GYM\n"
.string "for a rematch!$"
-gText_Roxanne_Pokenav_2B25C1:: @ 82B25C1
+MatchCall_Text_Roxanne3:: @ 82B25C1
.string "ROXANNE: {PLAYER}!\n"
.string "My GYM is ready!\p"
.string "Please visit RUSTBORO whenever\n"
.string "you can!$"
-gText_Roxanne_Pokenav_2B2607:: @ 82B2607
+MatchCall_Text_Roxanne4:: @ 82B2607
.string "ROXANNE: At the RUSTBORO GYM,\n"
.string "the fact that we battled, {PLAYER},\l"
.string "is a matter of pride.$"
-gText_Brawly_Pokenav_2B2659:: @ 82B2659
+MatchCall_Text_Brawly1:: @ 82B2659
.string "BRAWLY: Hey, there, {PLAYER}{KUN}!\p"
.string "I learned a lot from the battle we\n"
.string "had together.\p"
@@ -2078,7 +2078,7 @@ gText_Brawly_Pokenav_2B2659:: @ 82B2659
.string "But if I can reopen the GYM,\n"
.string "I want you to challenge us again.$"
-gText_Brawly_Pokenav_2B275D:: @ 82B275D
+MatchCall_Text_Brawly2:: @ 82B275D
.string "BRAWLY: Hey, {PLAYER}{KUN}!\n"
.string "Congratulations!\p"
.string "Word about your exploits arrived\n"
@@ -2090,17 +2090,17 @@ gText_Brawly_Pokenav_2B275D:: @ 82B275D
.string "But if I can reopen the GYM,\n"
.string "I want you to challenge us again.$"
-gText_Brawly_Pokenav_2B286F:: @ 82B286F
+MatchCall_Text_Brawly3:: @ 82B286F
.string "BRAWLY: Hey, {PLAYER}{KUN}!\n"
.string "My GYM's ready for action!\p"
.string "Come back to DEWFORD anytime\n"
.string "for another challenge!$"
-gText_Brawly_Pokenav_2B28D1:: @ 82B28D1
+MatchCall_Text_Brawly4:: @ 82B28D1
.string "BRAWLY: {PLAYER}{KUN}, I don't think\n"
.string "I'll ever get bored of battling you!$"
-gText_Wattson_Pokenav_2B2912:: @ 82B2912
+MatchCall_Text_Wattson1:: @ 82B2912
.string "WATTSON: Oh, it's you!\p"
.string "After you left, I've been redoing\n"
.string "my training from scratch.\p"
@@ -2109,7 +2109,7 @@ gText_Wattson_Pokenav_2B2912:: @ 82B2912
.string "You'll have to wait till then!\n"
.string "Wahahahaha!$"
-gText_Wattson_Pokenav_2B29CA:: @ 82B29CA
+MatchCall_Text_Wattson2:: @ 82B29CA
.string "WATTSON: Wahahahaha!\p"
.string "You've really done it, haven't you?\n"
.string "I've been getting word about you!\p"
@@ -2120,18 +2120,18 @@ gText_Wattson_Pokenav_2B29CA:: @ 82B29CA
.string "You'll have to wait till then!\n"
.string "Wahahahaha!$"
-gText_Wattson_Pokenav_2B2AB6:: @ 82B2AB6
+MatchCall_Text_Wattson3:: @ 82B2AB6
.string "WATTSON: Oh, it's you!\n"
.string "My GYM's ready!\p"
.string "Visit MAUVILLE anytime!\n"
.string "Wahahahaha!$"
-gText_Wattson_Pokenav_2B2B01:: @ 82B2B01
+MatchCall_Text_Wattson4:: @ 82B2B01
.string "WATTSON: Wahahaha!\p"
.string "A battle with you is always charged\n"
.string "with shocking power!$"
-gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D
+MatchCall_Text_Flannery1:: @ 82B2B4D
.string "FLANNERY: {PLAYER}…\p"
.string "When we battled, I learned exactly\n"
.string "how immature I was.\p"
@@ -2141,7 +2141,7 @@ gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D
.string "When the time comes, {PLAYER},\n"
.string "please challenge us again.$"
-gText_Flannery_Pokenav_2B2C0E:: @ 82B2C0E
+MatchCall_Text_Flannery2:: @ 82B2C0E
.string "FLANNERY: Hello, {PLAYER}?\n"
.string "Congratulations!\p"
.string "Word of your success has reached\n"
@@ -2152,44 +2152,44 @@ gText_Flannery_Pokenav_2B2C0E:: @ 82B2C0E
.string "appear beside my name in the\l"
.string "MATCH CALL list.$"
-gText_Flannery_Pokenav_2B2CF1:: @ 82B2CF1
+MatchCall_Text_Flannery3:: @ 82B2CF1
.string "FLANNERY: Oh, {PLAYER}?\n"
.string "Our GYM's ready!\p"
.string "Come to LAVARIDGE for a soak\n"
.string "in the hot spring and a challenge!$"
-gText_Flannery_Pokenav_2B2D54:: @ 82B2D54
+MatchCall_Text_Flannery4:: @ 82B2D54
.string "FLANNERY: {PLAYER}…\n"
.string "I'm positive that you keep getting\l"
.string "better at training every time.$"
-gText_Winona_Pokenav_2B2DA4:: @ 82B2DA4
+MatchCall_Text_Winona1:: @ 82B2DA4
.string "WINONA: Hello, {PLAYER}!\p"
.string "Thanks to our battle, I've come\n"
.string "to understand my weak points!\p"
.string "When I reopen the GYM, I won't go\n"
.string "down in defeat again!$"
-gText_Winona_Pokenav_2B2E2B:: @ 82B2E2B
+MatchCall_Text_Winona2:: @ 82B2E2B
.string "WINONA: You've done it, {PLAYER}!\p"
.string "News about the new CHAMPION\n"
.string "has reached us in FORTREE!\p"
.string "But… The next time we battle,\n"
.string "it's not going to end the same way.$"
-gText_Winona_Pokenav_2B2EC2:: @ 82B2EC2
+MatchCall_Text_Winona3:: @ 82B2EC2
.string "WINONA: Is this {PLAYER}?\n"
.string "Our GYM is back in operation!\p"
.string "We're waiting for you in FORTREE!$"
-gText_Winona_Pokenav_2B2F16:: @ 82B2F16
+MatchCall_Text_Winona4:: @ 82B2F16
.string "WINONA: {PLAYER}…\n"
.string "Though I have lost, my wings will\l"
.string "never break.\p"
.string "Yes, in exactly the same way that\n"
.string "you never lost sight of your dream.$"
-gText_TateLiza_Pokenav_2B2F97:: @ 82B2F97
+MatchCall_Text_TateLiza1:: @ 82B2F97
.string "TATE: Oh! You're…\n"
.string "LIZA: {PLAYER}!\p"
.string "TATE: We're in training again…\n"
@@ -2199,7 +2199,7 @@ gText_TateLiza_Pokenav_2B2F97:: @ 82B2F97
.string "TATE: A mark'll appear by our name…\n"
.string "LIZA: On the MATCH CALL list.$"
-gText_TateLiza_Pokenav_2B306E:: @ 82B306E
+MatchCall_Text_TateLiza2:: @ 82B306E
.string "TATE: {PLAYER}, congratulations!\n"
.string "LIZA: {PLAYER}, congratulations!\p"
.string "TATE: The two of us are…\n"
@@ -2209,7 +2209,7 @@ gText_TateLiza_Pokenav_2B306E:: @ 82B306E
.string "TATE: A mark'll appear by our name…\n"
.string "LIZA: On the MATCH CALL list.$"
-gText_TateLiza_Pokenav_2B3158:: @ 82B3158
+MatchCall_Text_TateLiza3:: @ 82B3158
.string "TATE: {PLAYER}!\n"
.string "LIZA: {PLAYER}!\p"
.string "TATE: Our GYM is ready!\n"
@@ -2217,13 +2217,13 @@ gText_TateLiza_Pokenav_2B3158:: @ 82B3158
.string "TATE: Please come visit…\n"
.string "LIZA: MOSSDEEP anytime!$"
-gText_TateLiza_Pokenav_2B31CD:: @ 82B31CD
+MatchCall_Text_TateLiza4:: @ 82B31CD
.string "TATE: {PLAYER}, the battle we had…\n"
.string "LIZA: Is an invaluable experience.\p"
.string "TATE: It would be nice if…\n"
.string "LIZA: We could all battle again!$"
-gText_Juan_Pokenav_2B3249:: @ 82B3249
+MatchCall_Text_Juan1:: @ 82B3249
.string "JUAN: Hmm…\n"
.string "{PLAYER}{KUN}… Was it?\p"
.string "Our battle together--it brought\n"
@@ -2232,7 +2232,7 @@ gText_Juan_Pokenav_2B3249:: @ 82B3249
.string "Perhaps you are a genius who may\n"
.string "yet surpass WALLACE!$"
-gText_Juan_Pokenav_2B32EC:: @ 82B32EC
+MatchCall_Text_Juan2:: @ 82B32EC
.string "JUAN: Fufu… {PLAYER}{KUN}…\n"
.string "You've finally achieved your goal.\p"
.string "My eye for appraising talent wasn't\n"
@@ -2241,14 +2241,14 @@ gText_Juan_Pokenav_2B32EC:: @ 82B32EC
.string "you, for you have scaled the peak\l"
.string "of power and prestige.$"
-gText_Juan_Pokenav_2B33AA:: @ 82B33AA
+MatchCall_Text_Juan3:: @ 82B33AA
.string "JUAN: Hoho… {PLAYER}{KUN}…\p"
.string "Our SOOTOPOLIS GYM has finally\n"
.string "reopened.\p"
.string "If you wish to see me, you are\n"
.string "welcome to visit anytime.$"
-gText_Juan_Pokenav_2B341E:: @ 82B341E
+MatchCall_Text_Juan4:: @ 82B341E
.string "JUAN: {PLAYER}{KUN}…\p"
.string "Like the finest music, the battles\n"
.string "we wage together strike chords\l"
@@ -2256,7 +2256,7 @@ gText_Juan_Pokenav_2B341E:: @ 82B341E
.string "When I close my eyes, I see visions\n"
.string "of you soaring with the melody…$"
-gText_Sidney_Pokenav_2B34CC:: @ 82B34CC
+MatchCall_Text_Sidney:: @ 82B34CC
.string "SIDNEY: Yo, {PLAYER}!\p"
.string "If you want to battle with me\n"
.string "again, you come on back whenever\l"
@@ -2264,7 +2264,7 @@ gText_Sidney_Pokenav_2B34CC:: @ 82B34CC
.string "I'll always be here!\n"
.string "I'll be waiting!$"
-gText_Phoebe_Pokenav_2B3561:: @ 82B3561
+MatchCall_Text_Phoebe:: @ 82B3561
.string "PHOEBE: Hi, {PLAYER}!\p"
.string "How about coming back here again\n"
.string "sometime?\p"
@@ -2272,7 +2272,7 @@ gText_Phoebe_Pokenav_2B3561:: @ 82B3561
.string "your bond has grown with your\l"
.string "POKéMON.$"
-gText_Glacia_Pokenav_2B35E4:: @ 82B35E4
+MatchCall_Text_Glacia:: @ 82B35E4
.string "GLACIA: Hello, {PLAYER}.\p"
.string "I trust you haven't become\n"
.string "complacent with your power?\p"
@@ -2280,7 +2280,7 @@ gText_Glacia_Pokenav_2B35E4:: @ 82B35E4
.string "hot emotions just a little, do come\l"
.string "to the POKéMON LEAGUE…$"
-gText_Drake_Pokenav_2B368B:: @ 82B368B
+MatchCall_Text_Drake:: @ 82B368B
.string "DRAKE: That voice… {PLAYER}, is it?\n"
.string "You sound well…\p"
.string "I understand that there is now\n"
@@ -2292,7 +2292,7 @@ gText_Drake_Pokenav_2B368B:: @ 82B368B
.string "the POKéMON LEAGUE!\p"
.string "Don't you agree, {PLAYER}?$"
-gText_Wallace_Pokenav_2B3790:: @ 82B3790
+MatchCall_Text_Wallace:: @ 82B3790
.string "WALLACE: Hello, {PLAYER}{KUN}.\n"
.string "Have you met STEVEN?\p"
.string "He is…\n"
@@ -2306,7 +2306,7 @@ gText_Wallace_Pokenav_2B3790:: @ 82B3790
.string "But what is a rare stone exactly?\n"
.string "All I can think of is a METEORITE…$"
-MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall: @ 82B38C1
+MatchCall_Text_MayRayquazaCall: @ 82B38C1
.string "… … … … … …\n"
.string "… … … … … Beep!\p"
.string "MAY: Hi, {PLAYER}{KUN}!\p"
@@ -2321,7 +2321,7 @@ MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall: @ 82B38C1
.string "… … … … … …\n"
.string "… … … … … Click!$"
-MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall: @ 82B39C6
+MatchCall_Text_BrendanRayquazaCall: @ 82B39C6
.string "… … … … … …\n"
.string "… … … … … Beep!\p"
.string "BRENDAN: Hey, {PLAYER}!\n"
@@ -2335,14 +2335,14 @@ MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall: @ 82B39C6
.string "… … … … … …\n"
.string "… … … … … Click!$"
-gText_May_Pokenav_2B3AB3:: @ 2B3AB3
+MatchCall_Text_May1:: @ 2B3AB3
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "MR. BRINEY retired as a SAILOR,\n"
.string "but I still see him out on the sea\l"
.string "with his pet PEEKO sometimes.\p"
.string "He must love the sea still.$"
-gText_May_Pokenav_2B3B3F:: @ 2B3B3F
+MatchCall_Text_May2:: @ 2B3B3F
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "You know how little towns like\n"
.string "PETALBURG and DEWFORD have GYMS?\p"
@@ -2351,7 +2351,7 @@ gText_May_Pokenav_2B3B3F:: @ 2B3B3F
.string "When they finally build a GYM there,\n"
.string "I should apply to be the LEADER.$"
-gText_May_Pokenav_2B3C13:: @ 2B3C13
+MatchCall_Text_May3:: @ 2B3C13
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "Do you remember a man named\n"
.string "the CUTTER in RUSTBORO?\l"
@@ -2363,13 +2363,13 @@ gText_May_Pokenav_2B3C13:: @ 2B3C13
.string "… … … … … …\p"
.string "The ROCK SMASH GUY!$"
-gText_May_Pokenav_2B3CF3:: @ 2B3CF3
+MatchCall_Text_May4:: @ 2B3CF3
.string "MAY: {PLAYER}{KUN}?\p"
.string "RUSTURF TUNNEL…\n"
.string "They named it that because it\l"
.string "joins RUSTBORO and VERDANTURF.$"
-gText_May_Pokenav_2B3D4B:: @ 2B3D4B
+MatchCall_Text_May5:: @ 2B3D4B
.string "MAY: {PLAYER}{KUN}, how are you?\p"
.string "I'm out on ROUTE 111 now.\p"
.string "I'm going to get a rest at an old\n"
@@ -2377,7 +2377,7 @@ gText_May_Pokenav_2B3D4B:: @ 2B3D4B
.string "She lives just north of\n"
.string "the desert.$"
-gText_May_Pokenav_2B3DD1:: @ 2B3DD1
+MatchCall_Text_May6:: @ 2B3DD1
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "Did you know about the MIRAGE\n"
.string "TOWER in the desert?\p"
@@ -2385,21 +2385,21 @@ gText_May_Pokenav_2B3DD1:: @ 2B3DD1
.string "to mysteriously come and go.\p"
.string "I wish I could see it.$"
-gText_May_Pokenav_2B3E69:: @ 2B3E69
+MatchCall_Text_May7:: @ 2B3E69
.string "MAY: {PLAYER}{KUN}, yahoo!\n"
.string "I'm on ROUTE 119 now.\p"
.string "There's a big river here, and\n"
.string "it often rains.\p"
.string "I got soaked!$"
-gText_May_Pokenav_2B3ECD:: @ 2B3ECD
+MatchCall_Text_May8:: @ 2B3ECD
.string "MAY: {PLAYER}{KUN}, hi.\p"
.string "MT. PYRE is a memorial to POKéMON\n"
.string "whose lives have ended.\p"
.string "Maybe as a result, it's infested\n"
.string "with many GHOST-type POKéMON!$"
-gText_May_Pokenav_2B3F2B:: @ 2B3F2B
+MatchCall_Text_May9:: @ 2B3F2B
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "I was thinking of going to the hot\n"
.string "spring in LAVARIDGE.\p"
@@ -2407,14 +2407,14 @@ gText_May_Pokenav_2B3F2B:: @ 2B3F2B
.string "PASS, I ran into some bad-looking\l"
.string "characters. The mood was ugly!$"
-gText_May_Pokenav_2B3FFB:: @ 2B3FFB
+MatchCall_Text_May10:: @ 2B3FFB
.string "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Did you see the news?\p"
.string "They say CAPT. STERN discovered\n"
.string "the SEAFLOOR CAVERN while on his\l"
.string "submarine expedition.$"
-gText_May_Pokenav_2B402B:: @ 2B402B
+MatchCall_Text_May11:: @ 2B402B
.string "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Don't you think it's neat?\p"
.string "Even if you don't have a boat,\n"
@@ -2424,7 +2424,7 @@ gText_May_Pokenav_2B402B:: @ 2B402B
.string "There's a POKéMON move that lets\n"
.string "you go to the bottom of the sea.$"
-gText_May_Pokenav_2B414B:: @ 2B414B
+MatchCall_Text_May12:: @ 2B414B
.string "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Hope things are okay!\p"
.string "Have you been on the sea and\n"
@@ -2435,7 +2435,7 @@ gText_May_Pokenav_2B414B:: @ 2B414B
.string "When you get to the other side,\n"
.string "come up to the surface. Easy!$"
-gText_May_Pokenav_2B4228:: @ 2B4228
+MatchCall_Text_May13:: @ 2B4228
.string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "How's it going?\n"
.string "Are you filling your POKéDEX?\p"
@@ -2444,7 +2444,7 @@ gText_May_Pokenav_2B4228:: @ 2B4228
.string "And there are three of them!\p"
.string "I would love to see even one…$"
-gText_May_Pokenav_2B42E0:: @ 2B42E0
+MatchCall_Text_May14:: @ 2B42E0
.string "MAY: {PLAYER}{KUN}!\n"
.string "I heard the rumors!\p"
.string "You beat the SOOTOPOLIS GYM\n"
@@ -2452,7 +2452,7 @@ gText_May_Pokenav_2B42E0:: @ 2B42E0
.string "That means you don't have far\n"
.string "to go, do you?$"
-gText_May_Pokenav_2B4350:: @ 2B4350
+MatchCall_Text_May15:: @ 2B4350
.string "MAY: There isn't a single TRAINER\n"
.string "left in HOENN who doesn't know who\l"
.string "you are, {PLAYER}{KUN}!\p"
@@ -2460,7 +2460,7 @@ gText_May_Pokenav_2B4350:: @ 2B4350
.string "with you, {PLAYER}{KUN}, they're all\l"
.string "surprised!$"
-gText_Brendan_Pokenav_2B43EF:: @ 2B43EF
+MatchCall_Text_Brendan1:: @ 2B43EF
.string "BRENDAN: Hey, {PLAYER}!\p"
.string "MR. BRINEY retired as a SAILOR,\n"
.string "but I still see him out on the sea\l"
@@ -2468,7 +2468,7 @@ gText_Brendan_Pokenav_2B43EF:: @ 2B43EF
.string "I guess he must love\n"
.string "the sea still.$"
-gText_Brendan_Pokenav_2B4486:: @ 2B4486
+MatchCall_Text_Brendan2:: @ 2B4486
.string "BRENDAN: Hey, {PLAYER}!\p"
.string "I don't get how little towns like\n"
.string "PETALBURG and DEWFORD have GYMS.\p"
@@ -2477,7 +2477,7 @@ gText_Brendan_Pokenav_2B4486:: @ 2B4486
.string "When they finally build a GYM there,\n"
.string "I should apply to be the LEADER.$"
-gText_Brendan_Pokenav_2B4560:: @ 2B4560
+MatchCall_Text_Brendan3:: @ 2B4560
.string "BRENDAN: Yo, {PLAYER}!\p"
.string "Do you remember a guy named\n"
.string "the CUTTER in RUSTBORO?\l"
@@ -2489,14 +2489,14 @@ gText_Brendan_Pokenav_2B4560:: @ 2B4560
.string "… … … … … …\p"
.string "The ROCK SMASH GUY!$"
-gText_Brendan_Pokenav_2B463F:: @ 2B463F
+MatchCall_Text_Brendan4:: @ 2B463F
.string "BRENDAN: This voice… {PLAYER}?\p"
.string "They gave RUSTURF TUNNEL its name\n"
.string "because it joins RUSTBORO and\l"
.string "VERDANTURF.\p"
.string "Did you know that?$"
-gText_Brendan_Pokenav_2B46B7:: @ 2B46B7
+MatchCall_Text_Brendan5:: @ 2B46B7
.string "BRENDAN: {PLAYER}, what's up?\p"
.string "Hey, I'm out on ROUTE 111 now.\p"
.string "I'm going to rest up at an old\n"
@@ -2504,7 +2504,7 @@ gText_Brendan_Pokenav_2B46B7:: @ 2B46B7
.string "If you're in the area, you should\n"
.string "visit her, too.$"
-gText_Brendan_Pokenav_2B4761:: @ 2B4761
+MatchCall_Text_Brendan6:: @ 2B4761
.string "BRENDAN: Hey, {PLAYER}!\p"
.string "Did you know about the MIRAGE\n"
.string "TOWER in the desert?\p"
@@ -2512,21 +2512,21 @@ gText_Brendan_Pokenav_2B4761:: @ 2B4761
.string "seen only sometimes.\p"
.string "I'd like to see that!$"
-gText_Brendan_Pokenav_2B47F4:: @ 2B47F4
+MatchCall_Text_Brendan7:: @ 2B47F4
.string "BRENDAN: Who's this? Oh, {PLAYER}?\n"
.string "Guess what? I'm on ROUTE 119 now.\p"
.string "There's a big river here, and\n"
.string "it rains all the time.\p"
.string "I got soaked to the bone!$"
-gText_Brendan_Pokenav_2B4882:: @ 2B4882
+MatchCall_Text_Brendan8:: @ 2B4882
.string "BRENDAN: {PLAYER}!\p"
.string "MT. PYRE is a memorial to POKéMON\n"
.string "whose lives have ended.\p"
.string "That's probably why it's infested\n"
.string "with many GHOST-type POKéMON!$"
-gText_Brendan_Pokenav_2B4909:: @ 2B4909
+MatchCall_Text_Brendan9:: @ 2B4909
.string "BRENDAN: Hey there, {PLAYER}.\p"
.string "I was on my way back to the hot\n"
.string "spring in LAVARIDGE.\p"
@@ -2535,14 +2535,14 @@ gText_Brendan_Pokenav_2B4909:: @ 2B4909
.string "Those creeps…\n"
.string "I think they were TEAM MAGMA.$"
-gText_Brendan_Pokenav_2B49C4:: @ 2B49C4
+MatchCall_Text_Brendan10:: @ 2B49C4
.string "BRENDAN: Hi, {PLAYER}!\n"
.string "Did you catch the news?\p"
.string "They say CAPT. STERN discovered\n"
.string "the SEAFLOOR CAVERN while on his\l"
.string "submarine expedition.$"
-gText_Brendan_Pokenav_2B4A44:: @ 2B4A44
+MatchCall_Text_Brendan11:: @ 2B4A44
.string "BRENDAN: Hey there, {PLAYER}!\n"
.string "Don't you think it's awesome?\p"
.string "Even if you don't have a boat,\n"
@@ -2552,7 +2552,7 @@ gText_Brendan_Pokenav_2B4A44:: @ 2B4A44
.string "travel to the bottom of the sea.\p"
.string "Man, POKéMON can do anything!$"
-gText_Brendan_Pokenav_2B4B28:: @ 2B4B28
+MatchCall_Text_Brendan12:: @ 2B4B28
.string "BRENDAN: Howdy, {PLAYER}!\n"
.string "How are you holding up?\p"
.string "Ever found your way to the other\n"
@@ -2562,7 +2562,7 @@ gText_Brendan_Pokenav_2B4B28:: @ 2B4B28
.string "When you get to the other side,\n"
.string "come up to the surface. Simple!$"
-gText_Brendan_Pokenav_2B4C15:: @ 2B4C15
+MatchCall_Text_Brendan13:: @ 2B4C15
.string "BRENDAN: Hey there, {PLAYER}!\p"
.string "How's it going? Filling up your\n"
.string "POKéDEX successfully?\p"
@@ -2571,14 +2571,14 @@ gText_Brendan_Pokenav_2B4C15:: @ 2B4C15
.string "And not just one--three!\p"
.string "I'd love to catch even one…$"
-gText_Brendan_Pokenav_2B4CD8:: @ 2B4CD8
+MatchCall_Text_Brendan14:: @ 2B4CD8
.string "BRENDAN: {PLAYER}!\n"
.string "I heard the rumors!\p"
.string "You beat the SOOTOPOLIS GYM\n"
.string "LEADER? Awesome!\p"
.string "You're getting awful close now!$"
-gText_Brendan_Pokenav_2B4D46:: @ 2B4D46
+MatchCall_Text_Brendan15:: @ 2B4D46
.string "BRENDAN: There isn't a TRAINER in\n"
.string "all of HOENN who doesn't know who\l"
.string "you are, {PLAYER}!\p"
@@ -2586,19 +2586,19 @@ gText_Brendan_Pokenav_2B4D46:: @ 2B4D46
.string "with you, {PLAYER}, they get pretty\l"
.string "envious!$"
-gText_Wally_Pokenav_2B4DE2:: @ 2B4DE2
+MatchCall_Text_Wally1:: @ 2B4DE2
.string "WALLY: Oh, {PLAYER}!\p"
.string "I've been getting healthier and\n"
.string "more physically fit.\p"
.string "I hope I can become a TRAINER like\n"
.string "you soon, {PLAYER}!$"
-gText_Wally_Pokenav_2B4E57:: @ 2B4E57
+MatchCall_Text_Wally2:: @ 2B4E57
.string "WALLY: {PLAYER}, hello!\p"
.string "After RUSTURF TUNNEL went\n"
.string "through, WANDA's been very happy!$"
-gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5
+MatchCall_Text_Wally3:: @ 2B4EA5
.string "WALLY: Oh, {PLAYER}!\p"
.string "I… I left my uncle's place in\n"
.string "VERDANTURF without telling anyone.\p"
@@ -2606,7 +2606,7 @@ gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5
.string "{PLAYER}, you understand how\n"
.string "I feel, don't you?$"
-gText_Wally_Pokenav_2B4F41:: @ 2B4F41
+MatchCall_Text_Wally4:: @ 2B4F41
.string "WALLY: {PLAYER}?\n"
.string "It's me, WALLY!\p"
.string "The world of TRAINERS is amazing!\p"
@@ -2615,7 +2615,7 @@ gText_Wally_Pokenav_2B4F41:: @ 2B4F41
.string "It's as if everyone's getting\n"
.string "connected through POKéMON!$"
-gText_Wally_Pokenav_2B4FF3:: @ 2B4FF3
+MatchCall_Text_Wally5:: @ 2B4FF3
.string "WALLY: {PLAYER}? It's awesome!\n"
.string "That RALTS we caught together?\l"
.string "It evolved, {PLAYER}!\p"
@@ -2625,13 +2625,13 @@ gText_Wally_Pokenav_2B4FF3:: @ 2B4FF3
.string "After all, it's the POKéMON that\n"
.string "should be praised!$"
-gText_Wally_Pokenav_2B50B1:: @ 2B50B1
+MatchCall_Text_Wally6:: @ 2B50B1
.string "… … … … … …\n"
.string "… … … … … …\p"
.string "WALLY appears to be out of\n"
.string "the POKéNAV's service area…$"
-gText_Wally_Pokenav_2B5100:: @ 2B5100
+MatchCall_Text_Wally7:: @ 2B5100
.string "WALLY: Oh, {PLAYER}!\p"
.string "Before I met you, I hardly ever\n"
.string "left my house…\p"
@@ -2640,7 +2640,7 @@ gText_Wally_Pokenav_2B5100:: @ 2B5100
.string "{PLAYER}…\n"
.string "Thank you…$"
-gText_Scott_Pokenav_2B5184:: @ 2B5184
+MatchCall_Text_Scott1:: @ 2B5184
.string "SCOTT: Howdy, {PLAYER}{KUN}!\p"
.string "You know how POKéMON can be found\n"
.string "everywhere?\p"
@@ -2651,7 +2651,7 @@ gText_Scott_Pokenav_2B5184:: @ 2B5184
.string "As a result, I have to hurry\n"
.string "everywhere, too. Busy, busy!$"
-gText_Scott_Pokenav_2B5275:: @ 2B5275
+MatchCall_Text_Scott2:: @ 2B5275
.string "SCOTT: I'm on ROUTE 119 right now.\n"
.string "It's teeming with TRAINERS!\p"
.string "It's also overgrown with tall grass\n"
@@ -2659,7 +2659,7 @@ gText_Scott_Pokenav_2B5275:: @ 2B5275
.string "Walking around in shorts here\n"
.string "makes me all ticklish!$"
-gText_Scott_Pokenav_2B5323:: @ 2B5323
+MatchCall_Text_Scott3:: @ 2B5323
.string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p"
.string "Have you had the chance to climb\n"
.string "MT. PYRE?\p"
@@ -2668,7 +2668,7 @@ gText_Scott_Pokenav_2B5323:: @ 2B5323
.string "It's somewhere every TRAINER\n"
.string "should climb to the top of once.$"
-gText_Scott_Pokenav_2B53DB:: @ 2B53DB
+MatchCall_Text_Scott4:: @ 2B53DB
.string "SCOTT: Hi, {PLAYER}{KUN}!\p"
.string "I've been hearing about these odd\n"
.string "gangs being a nuisance.\p"
@@ -2678,7 +2678,7 @@ gText_Scott_Pokenav_2B53DB:: @ 2B53DB
.string "skilled TRAINERS among them.\p"
.string "…But if they're thugs…$"
-gText_Scott_Pokenav_2B54A5:: @ 2B54A5
+MatchCall_Text_Scott5:: @ 2B54A5
.string "SCOTT: Oh, hi, {PLAYER}{KUN}.\p"
.string "Might there be tough TRAINERS\n"
.string "at the bottom of the sea?\p"
@@ -2686,7 +2686,7 @@ gText_Scott_Pokenav_2B54A5:: @ 2B54A5
.string "I can't swim, for one.\l"
.string "And I don't raise POKéMON…$"
-gText_Scott_Pokenav_2B5541:: @ 2B5541
+MatchCall_Text_Scott6:: @ 2B5541
.string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p"
.string "You know that you can challenge\n"
.string "the POKéMON LEAGUE when you've\l"
@@ -2703,20 +2703,20 @@ gText_Scott_Pokenav_2B5541:: @ 2B5541
.string "the POKéMON LEAGUE into the HALL\l"
.string "OF FAME!$"
-gText_Scott_Pokenav_2B56CA:: @ 2B56CA
+MatchCall_Text_Scott7:: @ 2B56CA
.string "… … … … … …\n"
.string "… … … … … …\p"
.string "SCOTT appears to be out of\n"
.string "the POKéNAV's service area…$"
-gText_Norman_Pokenav_2B5719:: @ 82B5719
+MatchCall_Text_Norman1:: @ 82B5719
.string "DAD: In RUSTBORO, there's a man\n"
.string "that goes by the odd name of\l"
.string "the CUTTER.\p"
.string "If you're in the area, you should\n"
.string "pay him a visit.$"
-gText_Norman_Pokenav_2B5795:: @ 82B5795
+MatchCall_Text_Norman2:: @ 82B5795
.string "DAD: Hm… Little by little, but also\n"
.string "very surely, you're getting\l"
.string "tougher, {PLAYER}.\p"
@@ -2725,7 +2725,7 @@ gText_Norman_Pokenav_2B5795:: @ 82B5795
.string "and me…\p"
.string "This feeling is hard to explain.$"
-gText_Norman_Pokenav_2B584D:: @ 82B584D
+MatchCall_Text_Norman3:: @ 82B584D
.string "DAD: I see…\n"
.string "You've collected four GYM BADGES…\p"
.string "There's no avoiding it now.\n"
@@ -2733,7 +2733,7 @@ gText_Norman_Pokenav_2B584D:: @ 82B584D
.string "Come anytime.\n"
.string "We'll all be waiting for you!$"
-gText_Norman_Pokenav_2B58E3:: @ 82B58E3
+MatchCall_Text_Norman4:: @ 82B58E3
.string "DAD: {PLAYER}! You'd better go visit\n"
.string "Mother every so often.\p"
.string "I'm going to remain here and\n"
@@ -2741,27 +2741,27 @@ gText_Norman_Pokenav_2B58E3:: @ 82B58E3
.string "The way of battling is deep\n"
.string "and unforgiving!$"
-gText_Norman_Pokenav_2B5979:: @ 82B5979
+MatchCall_Text_Norman5:: @ 82B5979
.string "DAD: Oh, hi, {PLAYER}!\p"
.string "What's that? MAGMA EMBLEM?\n"
.string "I don't know what that's about.\p"
.string "But with a name like that, it may\n"
.string "be somehow linked to a volcano!$"
-gText_Norman_Pokenav_2B5A07:: @ 82B5A07
+MatchCall_Text_Norman6:: @ 82B5A07
.string "DAD: Hiyah! Haah! Dwah!\p"
.string "…Oh? {PLAYER}!\p"
.string "You caught me right in the middle\n"
.string "of a POKéMON training session!$"
-gText_Norman_Pokenav_2B5A69:: @ 82B5A69
+MatchCall_Text_Norman7:: @ 82B5A69
.string "DAD: {PLAYER}!\p"
.string "Who would've thought you'd become\n"
.string "the POKéMON LEAGUE CHAMPION…\p"
.string "Okay!\n"
.string "I won't be left behind!$"
-gText_Norman_Pokenav_2B5ACF:: @ 82B5ACF
+MatchCall_Text_Norman8:: @ 82B5ACF
.string "DAD: Hm? {PLAYER}?\n"
.string "What good timing!\p"
.string "This time, I'm going to challenge\n"
@@ -2769,11 +2769,11 @@ gText_Norman_Pokenav_2B5ACF:: @ 82B5ACF
.string "I'm waiting in the PETALBURG GYM.\n"
.string "Accept my challenge anytime!$"
-gText_Norman_Pokenav_2B5B5E:: @ 82B5B5E
+MatchCall_Text_Norman9:: @ 82B5B5E
.string "DAD: …You amaze me, {PLAYER}.\n"
.string "How much higher will you soar?$"
-gText_Steven_Pokenav_2B5B95:: @ 82B5B95
+MatchCall_Text_Steven1:: @ 82B5B95
.string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "Have you been to MAUVILLE\n"
.string "already?\p"
@@ -2784,14 +2784,14 @@ gText_Steven_Pokenav_2B5B95:: @ 82B5B95
.string "You may make a new discovery\n"
.string "there.$"
-gText_Steven_Pokenav_2B5C53:: @ 82B5C53
+MatchCall_Text_Steven2:: @ 82B5C53
.string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "I've met a lot of different\n"
.string "TRAINERS so far.\p"
.string "But you're one of a kind.\n"
.string "You're not like anyone else.$"
-gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9
+MatchCall_Text_Steven3:: @ 82B5CC9
.string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "When you're on an adventure with\n"
.string "your POKéMON, what do you think?\p"
@@ -2802,7 +2802,7 @@ gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9
.string "Depending on how you think, your\n"
.string "adventure's significance changes.$"
-gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4
+MatchCall_Text_Steven4:: @ 82B5DB4
.string "STEVEN: Hello?\n"
.string "{PLAYER}{KUN}?\p"
.string "I'm involved in a spot of trouble\n"
@@ -2810,7 +2810,7 @@ gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4
.string "I'm sorry, but I can't talk now.\n"
.string "Bye!$"
-gText_Steven_Pokenav_2B5E26:: @ 82B5E26
+MatchCall_Text_Steven5:: @ 82B5E26
.string "STEVEN: Oh!\n"
.string "{PLAYER}{KUN}!\p"
.string "There's no need to talk.\n"
@@ -2818,12 +2818,12 @@ gText_Steven_Pokenav_2B5E26:: @ 82B5E26
.string "You have to believe in yourself\n"
.string "and do what's right.$"
-gText_Steven_Pokenav_2B5EA2:: @ 82B5EA2
+MatchCall_Text_Steven6:: @ 82B5EA2
.string "… … … … … …\p"
.string "STEVEN appears not to be getting\n"
.string "the call…$"
-gText_Steven_Pokenav_2B5ED9:: @ 82B5ED9
+MatchCall_Text_Steven7:: @ 82B5ED9
.string "STEVEN: {PLAYER}{KUN}… Congratulations\n"
.string "for entering the HALL OF FAME.\p"
.string "… … … … … …\n"
@@ -2851,7 +2851,7 @@ MatchCall_Text_UnusedProfBirch:
.string "the POKéDEX and POKéNAV, studying\l"
.string "POKéMON becomes more fun, eh?$"
-gText_MrStone_Pokenav_2B60C0:: @ 82B60C0
+MatchCall_Text_MrStone1:: @ 82B60C0
.string "MR. STONE: Oh? {PLAYER}{KUN}!\p"
.string "Since you called me, the POKéNAV\n"
.string "must be working properly!\p"
@@ -2866,7 +2866,7 @@ gText_MrStone_Pokenav_2B60C0:: @ 82B60C0
.string "Wahahaha!\n"
.string "See you again!$"
-gText_MrStone_Pokenav_2B61E6:: @ 82B61E6
+MatchCall_Text_MrStone2:: @ 82B61E6
.string "MR. STONE: Oh? {PLAYER}{KUN}!\p"
.string "What's wrong? Have you forgotten\n"
.string "about that little errand of mine?\p"
@@ -2878,7 +2878,7 @@ gText_MrStone_Pokenav_2B61E6:: @ 82B61E6
.string "Now, since I am a busy PRESIDENT,\n"
.string "I have to go! Bye-bye!$"
-gText_MrStone_Pokenav_2B6302:: @ 82B6302
+MatchCall_Text_MrStone3:: @ 82B6302
.string "MR. STONE: Oh! {PLAYER}{KUN}!\p"
.string "Ah, so you've met STEVEN!\n"
.string "I'd better reward you, then!\p"
@@ -2886,7 +2886,7 @@ gText_MrStone_Pokenav_2B6302:: @ 82B6302
.string "come see me at my office.\p"
.string "I'll be waiting for you!$"
-gText_MrStone_Pokenav_2B63A0:: @ 82B63A0
+MatchCall_Text_MrStone4:: @ 82B63A0
.string "MR. STONE: Oh! {PLAYER}{KUN}!\p"
.string "Did you know that DEVON was\n"
.string "digging the RUSTURF TUNNEL?\p"
@@ -2897,14 +2897,14 @@ gText_MrStone_Pokenav_2B63A0:: @ 82B63A0
.string "live in peace than worry about our\l"
.string "own convenience.$"
-gText_MrStone_Pokenav_2B64A2:: @ 82B64A2
+MatchCall_Text_MrStone5:: @ 82B64A2
.string "MR. STONE: Hello, hello, {PLAYER}{KUN}!\p"
.string "I heard from someone in PETALBURG\n"
.string "that you're NORMAN's child!\p"
.string "No wonder you're such a capable\n"
.string "being!$"
-gText_MrStone_Pokenav_2B6526:: @ 82B6526
+MatchCall_Text_MrStone6:: @ 82B6526
.string "MR. STONE: What's that?\p"
.string "You battled your own father and\n"
.string "defeated him?\p"
@@ -2912,7 +2912,7 @@ gText_MrStone_Pokenav_2B6526:: @ 82B6526
.string "I had no idea that I befriended\n"
.string "someone so special! Wahaha!$"
-gText_MrStone_Pokenav_2B65BB:: @ 82B65BB
+MatchCall_Text_MrStone7:: @ 82B65BB
.string "Hello!\n"
.string "This is DEVON CORPORATI…\l"
.string "Oh, hello, {PLAYER}!\p"
@@ -2921,21 +2921,21 @@ gText_MrStone_Pokenav_2B65BB:: @ 82B65BB
.string "Our PRESIDENT is busy, but you\n"
.string "seem to be just as busy, {PLAYER}.$"
-gText_MrStone_Pokenav_2B6664:: @ 82B6664
+MatchCall_Text_MrStone8:: @ 82B6664
.string "…Huh? …What's that?\p"
.string "GROU… Yes? …DON?\p"
.string "You're breaking up…\n"
.string "…can't hear…\p"
.string "BZZZZ…$"
-gText_MrStone_Pokenav_2B66B1:: @ 82B66B1
+MatchCall_Text_MrStone9:: @ 82B66B1
.string "…Huh? …What's that?\p"
.string "Seaflo… Yes? …Caver…?\p"
.string "You're breaking up…\n"
.string "…can't hear…\p"
.string "BZZZZ…$"
-gText_MrStone_Pokenav_2B6703:: @ 82B6703
+MatchCall_Text_MrStone10:: @ 82B6703
.string "MR. STONE: {PLAYER}{KUN}! It's me!\p"
.string "You were apparently involved in all\n"
.string "sorts of things, but I, being busy,\l"
@@ -2945,7 +2945,7 @@ gText_MrStone_Pokenav_2B6703:: @ 82B6703
.string "I'll always be in your corner!\n"
.string "Take care!$"
-gText_MrStone_Pokenav_2B67ED:: @ 82B67ED
+MatchCall_Text_MrStone11:: @ 82B67ED
.string "MR. STONE: … … … … … …\n"
.string "Is this maybe {PLAYER}{KUN}?\p"
.string "Your voice is so full of confidence,\n"
diff --git a/gflib/string_util.c b/gflib/string_util.c
index bce299057..db972a8ed 100644
--- a/gflib/string_util.c
+++ b/gflib/string_util.c
@@ -1,6 +1,7 @@
#include "global.h"
#include "string_util.h"
#include "text.h"
+#include "strings.h"
EWRAM_DATA u8 gStringVar1[0x100] = {0};
EWRAM_DATA u8 gStringVar2[0x100] = {0};
@@ -24,21 +25,6 @@ static const s32 sPowersOfTen[] =
1000000000,
};
-extern const u8 gExpandedPlaceholder_Empty[];
-extern const u8 gExpandedPlaceholder_Kun[];
-extern const u8 gExpandedPlaceholder_Chan[];
-extern const u8 gExpandedPlaceholder_Sapphire[];
-extern const u8 gExpandedPlaceholder_Ruby[];
-extern const u8 gExpandedPlaceholder_Emerald[];
-extern const u8 gExpandedPlaceholder_Aqua[];
-extern const u8 gExpandedPlaceholder_Magma[];
-extern const u8 gExpandedPlaceholder_Archie[];
-extern const u8 gExpandedPlaceholder_Maxie[];
-extern const u8 gExpandedPlaceholder_Kyogre[];
-extern const u8 gExpandedPlaceholder_Groudon[];
-extern const u8 gExpandedPlaceholder_Brendan[];
-extern const u8 gExpandedPlaceholder_May[];
-
u8 *StringCopy10(u8 *dest, const u8 *src)
{
u8 i;
@@ -451,52 +437,52 @@ static const u8 *ExpandPlaceholder_StringVar3(void)
static const u8 *ExpandPlaceholder_KunChan(void)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- return gExpandedPlaceholder_Kun;
+ return gText_ExpandedPlaceholder_Kun;
else
- return gExpandedPlaceholder_Chan;
+ return gText_ExpandedPlaceholder_Chan;
}
static const u8 *ExpandPlaceholder_RivalName(void)
{
if (gSaveBlock2Ptr->playerGender == MALE)
- return gExpandedPlaceholder_May;
+ return gText_ExpandedPlaceholder_May;
else
- return gExpandedPlaceholder_Brendan;
+ return gText_ExpandedPlaceholder_Brendan;
}
static const u8 *ExpandPlaceholder_Version(void)
{
- return gExpandedPlaceholder_Emerald;
+ return gText_ExpandedPlaceholder_Emerald;
}
static const u8 *ExpandPlaceholder_Aqua(void)
{
- return gExpandedPlaceholder_Aqua;
+ return gText_ExpandedPlaceholder_Aqua;
}
static const u8 *ExpandPlaceholder_Magma(void)
{
- return gExpandedPlaceholder_Magma;
+ return gText_ExpandedPlaceholder_Magma;
}
static const u8 *ExpandPlaceholder_Archie(void)
{
- return gExpandedPlaceholder_Archie;
+ return gText_ExpandedPlaceholder_Archie;
}
static const u8 *ExpandPlaceholder_Maxie(void)
{
- return gExpandedPlaceholder_Maxie;
+ return gText_ExpandedPlaceholder_Maxie;
}
static const u8 *ExpandPlaceholder_Kyogre(void)
{
- return gExpandedPlaceholder_Kyogre;
+ return gText_ExpandedPlaceholder_Kyogre;
}
static const u8 *ExpandPlaceholder_Groudon(void)
{
- return gExpandedPlaceholder_Groudon;
+ return gText_ExpandedPlaceholder_Groudon;
}
const u8 *GetExpandedPlaceholder(u32 id)
@@ -522,7 +508,7 @@ const u8 *GetExpandedPlaceholder(u32 id)
};
if (id >= ARRAY_COUNT(funcs))
- return gExpandedPlaceholder_Empty;
+ return gText_ExpandedPlaceholder_Empty;
else
return funcs[id]();
}
diff --git a/include/constants/global.h b/include/constants/global.h
index 4c638d63f..f4d81e563 100644
--- a/include/constants/global.h
+++ b/include/constants/global.h
@@ -51,6 +51,7 @@
#define DECOR_MAX_PLAYERS_HOUSE 12
#define APPRENTICE_COUNT 4
#define APPRENTICE_MAX_QUESTIONS 9
+#define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used
#define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.
diff --git a/include/global.h b/include/global.h
index 61186d084..9bf1a5b34 100644
--- a/include/global.h
+++ b/include/global.h
@@ -923,7 +923,7 @@ struct SaveBlock1
/*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6];
/*0x9C8*/ u16 trainerRematchStepCounter;
- /*0x9CA*/ u8 trainerRematches[100];
+ /*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES];
/*0xA30*/ struct EventObject eventObjects[EVENT_OBJECTS_COUNT];
/*0xC70*/ struct EventObjectTemplate eventObjectTemplates[EVENT_OBJECT_TEMPLATES_COUNT];
/*0x1270*/ u8 flags[FLAGS_COUNT];
diff --git a/include/gym_leader_rematch.h b/include/gym_leader_rematch.h
index 778d7a1e8..473d7b1c1 100644
--- a/include/gym_leader_rematch.h
+++ b/include/gym_leader_rematch.h
@@ -75,17 +75,12 @@ enum {
REMATCH_WINONA,
REMATCH_TATE_AND_LIZA,
REMATCH_JUAN,
-
- // Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES.
- REMATCH_SIDNEY,
+ REMATCH_SIDNEY, // Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES.
REMATCH_PHOEBE,
REMATCH_GLACIA,
REMATCH_DRAKE,
REMATCH_WALLACE,
-
- // The total number of rematch entries. This must be the last element
- // in the enum.
- REMATCH_TABLE_ENTRIES
+ REMATCH_TABLE_ENTRIES // The total number of rematch entries. Must be last in enum
};
void UpdateGymLeaderRematch(void);
diff --git a/include/pokenav.h b/include/pokenav.h
index b1c3287f1..5edde5900 100644
--- a/include/pokenav.h
+++ b/include/pokenav.h
@@ -7,11 +7,12 @@
typedef u32 (*LoopedTask)(s32 state);
+// TODO: This struct is also used generally by Match Call, should probably be renamed
struct PokenavMonList
{
- u8 boxId;
- u8 monId;
- u16 unk6;
+ u8 id1;
+ u8 id2;
+ u16 data;
};
struct PokenavSub18
@@ -32,8 +33,8 @@ struct PokenavSub18
enum
{
POKENAV_MODE_NORMAL, // Chosen from Start menu.
- POKENAV_MODE_FORCE_CALL_1, // Used for the script's special. Has to choose Match Call and make a call.
- POKENAV_MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav.
+ POKENAV_MODE_FORCE_CALL_READY, // When player is forced to call Mr. Stone for pokenav tutorial
+ POKENAV_MODE_FORCE_CALL_EXIT, // Forced to exit fter being calling Mr. Stone for pokenav tutorial
};
#define POKENAV_MENU_IDS_START 100000
@@ -82,6 +83,28 @@ enum
MC_HEADER_COUNT
};
+enum
+{
+ MATCH_CALL_OPTION_CALL,
+ MATCH_CALL_OPTION_CHECK,
+ MATCH_CALL_OPTION_CANCEL,
+ MATCH_CALL_OPTION_COUNT
+};
+
+enum
+{
+ CHECK_PAGE_STRATEGY,
+ CHECK_PAGE_POKEMON,
+ CHECK_PAGE_INTRO_1,
+ CHECK_PAGE_INTRO_2,
+ CHECK_PAGE_ENTRY_COUNT
+};
+
+#define MCFLAVOR(name) {[CHECK_PAGE_STRATEGY] = gText_MatchCall##name##_Strategy, \
+ [CHECK_PAGE_POKEMON] = gText_MatchCall##name##_Pokemon, \
+ [CHECK_PAGE_INTRO_1] = gText_MatchCall##name##_Intro1, \
+ [CHECK_PAGE_INTRO_2] = gText_MatchCall##name##_Intro2}
+
// pokenav.c
void sub_81C7694(u32);
u32 sub_81C76AC(void);
@@ -207,14 +230,14 @@ int sub_81CAE48(void);
struct PokenavMonList *sub_81CAE94(void);
u16 sub_81CAEA4(int);
bool32 sub_81CAEBC(int index);
-int sub_81CAF04(int index);
-const u8 *sub_81CAFD8(int index, int textType);
+int GetMatchCallTrainerPic(int index);
+const u8 *GetMatchCallFlavorText(int index, int textType);
u16 sub_81CB01C(void);
u16 sub_81CB02C(int arg0);
void sub_81CB050(struct PokenavMonList * arg0, u8 *str);
u8 sub_81CB0C8(int rematchIndex);
int sub_81CB0E4(int index);
-bool32 sub_81CAE08(int);
+bool32 IsRematchEntryRegistered(int index);
int sub_81CB128(int index);
// pokenav_unk_4.c
diff --git a/include/strings.h b/include/strings.h
index f814ad29f..8cebdcfa0 100644
--- a/include/strings.h
+++ b/include/strings.h
@@ -1,6 +1,22 @@
#ifndef GUARD_STRINGS_H
#define GUARD_STRINGS_H
+// Placeholders
+extern const u8 gText_ExpandedPlaceholder_Empty[];
+extern const u8 gText_ExpandedPlaceholder_Kun[];
+extern const u8 gText_ExpandedPlaceholder_Chan[];
+extern const u8 gText_ExpandedPlaceholder_Sapphire[];
+extern const u8 gText_ExpandedPlaceholder_Ruby[];
+extern const u8 gText_ExpandedPlaceholder_Emerald[];
+extern const u8 gText_ExpandedPlaceholder_Aqua[];
+extern const u8 gText_ExpandedPlaceholder_Magma[];
+extern const u8 gText_ExpandedPlaceholder_Archie[];
+extern const u8 gText_ExpandedPlaceholder_Maxie[];
+extern const u8 gText_ExpandedPlaceholder_Kyogre[];
+extern const u8 gText_ExpandedPlaceholder_Groudon[];
+extern const u8 gText_ExpandedPlaceholder_Brendan[];
+extern const u8 gText_ExpandedPlaceholder_May[];
+
extern const u8 gText_FromSpace[];
extern const u8 gText_Lv50[];
@@ -2332,6 +2348,43 @@ extern const u8 MatchCall_BattlePyramidText11[];
extern const u8 MatchCall_BattlePyramidText12[];
extern const u8 MatchCall_BattlePyramidText13[];
extern const u8 MatchCall_BattlePyramidText14[];
+extern const u8 gText_MrStoneMatchCallDesc[];
+extern const u8 gText_MrStoneMatchCallName[];
+extern const u8 gText_StevenMatchCallDesc[];
+extern const u8 gText_StevenMatchCallName[];
+extern const u8 gText_MayBrendanMatchCallDesc[];
+extern const u8 gText_WallyMatchCallDesc[];
+extern const u8 gText_NormanMatchCallDesc[];
+extern const u8 gText_NormanMatchCallName[];
+extern const u8 gText_MomMatchCallDesc[];
+extern const u8 gText_MomMatchCallName[];
+extern const u8 gText_ScottMatchCallDesc[];
+extern const u8 gText_ScottMatchCallName[];
+extern const u8 gText_RoxanneMatchCallDesc[];
+extern const u8 gText_BrawlyMatchCallDesc[];
+extern const u8 gText_WattsonMatchCallDesc[];
+extern const u8 gText_FlanneryMatchCallDesc[];
+extern const u8 gText_WinonaMatchCallDesc[];
+extern const u8 gText_TateLizaMatchCallDesc[];
+extern const u8 gText_JuanMatchCallDesc[];
+extern const u8 gText_EliteFourMatchCallDesc[];
+extern const u8 gText_ChampionMatchCallDesc[];
+extern const u8 gText_ProfBirchMatchCallDesc[];
+extern const u8 gText_ProfBirchMatchCallName[];
+extern const u8 gText_MatchCallSteven_Strategy[];
+extern const u8 gText_MatchCallSteven_Pokemon[];
+extern const u8 gText_MatchCallSteven_Intro1_BeforeMeteorFallsBattle[];
+extern const u8 gText_MatchCallSteven_Intro2_BeforeMeteorFallsBattle[];
+extern const u8 gText_MatchCallSteven_Intro1_AfterMeteorFallsBattle[];
+extern const u8 gText_MatchCallSteven_Intro2_AfterMeteorFallsBattle[];
+extern const u8 gText_MatchCallBrendan_Strategy[];
+extern const u8 gText_MatchCallBrendan_Pokemon[];
+extern const u8 gText_MatchCallBrendan_Intro1[];
+extern const u8 gText_MatchCallBrendan_Intro2[];
+extern const u8 gText_MatchCallMay_Strategy[];
+extern const u8 gText_MatchCallMay_Pokemon[];
+extern const u8 gText_MatchCallMay_Intro1[];
+extern const u8 gText_MatchCallMay_Intro2[];
// Contest Link
extern const u8 gText_ColorDarkGrey[];
@@ -2762,9 +2815,9 @@ extern const u8 gUnknown_085EBE41[];
extern const u8 gText_NoRibbonWinners[];
// pokenav_unk_4
-extern const u8 gUnknown_085EC017[];
-extern const u8 gUnknown_085EC01C[];
-extern const u8 gUnknown_085EC022[];
+extern const u8 gText_Call[];
+extern const u8 gText_Check[];
+extern const u8 gText_Cancel6[];
// pokenav_unk_8
extern const u8 gText_NumberF700[];
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/naming_screen.c b/src/naming_screen.c
index 73eda32c8..a282b728a 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 = (sub_80E503C(temp[0]) == 1) ? 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_match_call_data.c b/src/pokenav_match_call_data.c
index 5379ee88e..15374ca89 100644
--- a/src/pokenav_match_call_data.c
+++ b/src/pokenav_match_call_data.c
@@ -7,6 +7,7 @@
#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"
@@ -100,7 +101,7 @@ struct MatchCallOverride {
u16 idx;
u16 facilityClass;
u32 flag;
- const u8 *flavorTexts[4];
+ const u8 *flavorTexts[CHECK_PAGE_ENTRY_COUNT];
};
// Static RAM declarations
@@ -153,176 +154,144 @@ static void sub_81D1920(const match_call_text_data_t *, u8 *);
static void sub_81D199C(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[];
+extern const u8 MatchCall_Text_MrStone1[];
+extern const u8 MatchCall_Text_MrStone2[];
+extern const u8 MatchCall_Text_MrStone3[];
+extern const u8 MatchCall_Text_MrStone4[];
+extern const u8 MatchCall_Text_MrStone5[];
+extern const u8 MatchCall_Text_MrStone6[];
+extern const u8 MatchCall_Text_MrStone7[];
+extern const u8 MatchCall_Text_MrStone8[];
+extern const u8 MatchCall_Text_MrStone9[];
+extern const u8 MatchCall_Text_MrStone10[];
+extern const u8 MatchCall_Text_MrStone11[];
+
+extern const u8 MatchCall_Text_Norman1[];
+extern const u8 MatchCall_Text_Norman2[];
+extern const u8 MatchCall_Text_Norman3[];
+extern const u8 MatchCall_Text_Norman4[];
+extern const u8 MatchCall_Text_Norman5[];
+extern const u8 MatchCall_Text_Norman6[];
+extern const u8 MatchCall_Text_Norman7[];
+extern const u8 MatchCall_Text_Norman8[];
+extern const u8 MatchCall_Text_Norman9[];
+
+extern const u8 MatchCall_Text_Mom1[];
+extern const u8 MatchCall_Text_Mom2[];
+extern const u8 MatchCall_Text_Mom3[];
+
+extern const u8 MatchCall_Text_Steven1[];
+extern const u8 MatchCall_Text_Steven2[];
+extern const u8 MatchCall_Text_Steven3[];
+extern const u8 MatchCall_Text_Steven4[];
+extern const u8 MatchCall_Text_Steven5[];
+extern const u8 MatchCall_Text_Steven6[];
+extern const u8 MatchCall_Text_Steven7[];
+
+extern const u8 MatchCall_Text_May1[];
+extern const u8 MatchCall_Text_May2[];
+extern const u8 MatchCall_Text_May3[];
+extern const u8 MatchCall_Text_May4[];
+extern const u8 MatchCall_Text_May5[];
+extern const u8 MatchCall_Text_May6[];
+extern const u8 MatchCall_Text_May7[];
+extern const u8 MatchCall_Text_May8[];
+extern const u8 MatchCall_Text_May9[];
+extern const u8 MatchCall_Text_May10[];
+extern const u8 MatchCall_Text_May11[];
+extern const u8 MatchCall_Text_May12[];
+extern const u8 MatchCall_Text_May13[];
+extern const u8 MatchCall_Text_May14[];
+extern const u8 MatchCall_Text_May15[];
+
+extern const u8 MatchCall_Text_Brendan1[];
+extern const u8 MatchCall_Text_Brendan2[];
+extern const u8 MatchCall_Text_Brendan3[];
+extern const u8 MatchCall_Text_Brendan4[];
+extern const u8 MatchCall_Text_Brendan5[];
+extern const u8 MatchCall_Text_Brendan6[];
+extern const u8 MatchCall_Text_Brendan7[];
+extern const u8 MatchCall_Text_Brendan8[];
+extern const u8 MatchCall_Text_Brendan9[];
+extern const u8 MatchCall_Text_Brendan10[];
+extern const u8 MatchCall_Text_Brendan11[];
+extern const u8 MatchCall_Text_Brendan12[];
+extern const u8 MatchCall_Text_Brendan13[];
+extern const u8 MatchCall_Text_Brendan14[];
+extern const u8 MatchCall_Text_Brendan15[];
+
+extern const u8 MatchCall_Text_Wally1[];
+extern const u8 MatchCall_Text_Wally2[];
+extern const u8 MatchCall_Text_Wally3[];
+extern const u8 MatchCall_Text_Wally4[];
+extern const u8 MatchCall_Text_Wally5[];
+extern const u8 MatchCall_Text_Wally6[];
+extern const u8 MatchCall_Text_Wally7[];
+
+extern const u8 MatchCall_Text_Scott1[];
+extern const u8 MatchCall_Text_Scott2[];
+extern const u8 MatchCall_Text_Scott3[];
+extern const u8 MatchCall_Text_Scott4[];
+extern const u8 MatchCall_Text_Scott5[];
+extern const u8 MatchCall_Text_Scott6[];
+extern const u8 MatchCall_Text_Scott7[];
+
+extern const u8 MatchCall_Text_Roxanne1[];
+extern const u8 MatchCall_Text_Roxanne2[];
+extern const u8 MatchCall_Text_Roxanne3[];
+extern const u8 MatchCall_Text_Roxanne4[];
+
+extern const u8 MatchCall_Text_Brawly1[];
+extern const u8 MatchCall_Text_Brawly2[];
+extern const u8 MatchCall_Text_Brawly3[];
+extern const u8 MatchCall_Text_Brawly4[];
+
+extern const u8 MatchCall_Text_Wattson1[];
+extern const u8 MatchCall_Text_Wattson2[];
+extern const u8 MatchCall_Text_Wattson3[];
+extern const u8 MatchCall_Text_Wattson4[];
+
+extern const u8 MatchCall_Text_Flannery1[];
+extern const u8 MatchCall_Text_Flannery2[];
+extern const u8 MatchCall_Text_Flannery3[];
+extern const u8 MatchCall_Text_Flannery4[];
+
+extern const u8 MatchCall_Text_Winona1[];
+extern const u8 MatchCall_Text_Winona2[];
+extern const u8 MatchCall_Text_Winona3[];
+extern const u8 MatchCall_Text_Winona4[];
+
+extern const u8 MatchCall_Text_TateLiza1[];
+extern const u8 MatchCall_Text_TateLiza2[];
+extern const u8 MatchCall_Text_TateLiza3[];
+extern const u8 MatchCall_Text_TateLiza4[];
+
+extern const u8 MatchCall_Text_Juan1[];
+extern const u8 MatchCall_Text_Juan2[];
+extern const u8 MatchCall_Text_Juan3[];
+extern const u8 MatchCall_Text_Juan4[];
+
+extern const u8 MatchCall_Text_Sidney[];
+extern const u8 MatchCall_Text_Phoebe[];
+extern const u8 MatchCall_Text_Glacia[];
+extern const u8 MatchCall_Text_Drake[];
+extern const u8 MatchCall_Text_Wallace[];
+
// .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 =
@@ -330,22 +299,22 @@ static const struct MatchCallStruct0 sMrStoneMatchCallHeader =
.type = 0,
.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 =
@@ -354,8 +323,8 @@ static const struct MatchCallStruct5 sNormanMatchCallHeader =
.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
};
@@ -364,15 +333,15 @@ static const struct MatchCallStruct3 sProfBirchMatchCallHeader =
.type = 3,
.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 =
@@ -380,20 +349,20 @@ static const struct MatchCallStruct0 sMomMatchCallHeader =
.type = 0,
.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 =
@@ -401,28 +370,28 @@ static const struct MatchCallStruct0 sStevenMatchCallHeader =
.type = 0,
.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 =
@@ -430,28 +399,28 @@ static const struct MatchCallStruct4 sMayMatchCallHeader =
.type = 4,
.gender = MALE, //Gender of player
.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 =
@@ -459,20 +428,20 @@ static const struct MatchCallStruct4 sBrendanMatchCallHeader =
.type = 4,
.gender = FEMALE, //Gender of player
.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[] = {
@@ -488,20 +457,20 @@ static const struct MatchCallStruct2 sWallyMatchCallHeader =
.mapSec = 0,
.flag = FLAG_ENABLE_WALLY_MATCH_CALL,
.rematchTableIdx = REMATCH_WALLY_3,
- .desc = gWallyMatchCallDesc,
+ .desc = gText_WallyMatchCallDesc,
.textData = sWallyTextScripts,
.v10 = sWallyAdditionalData
};
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 }
};
@@ -510,17 +479,17 @@ static const struct MatchCallStruct0 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 =
@@ -529,17 +498,17 @@ static const struct MatchCallStruct5 sRoxanneMatchCallHeader =
.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 =
@@ -548,17 +517,17 @@ static const struct MatchCallStruct5 sBrawlyMatchCallHeader =
.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 =
@@ -567,17 +536,17 @@ static const struct MatchCallStruct5 sWattsonMatchCallHeader =
.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 =
@@ -586,17 +555,17 @@ static const struct MatchCallStruct5 sFlanneryMatchCallHeader =
.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 =
@@ -605,17 +574,17 @@ static const struct MatchCallStruct5 sWinonaMatchCallHeader =
.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 =
@@ -624,17 +593,17 @@ static const struct MatchCallStruct5 sTateLizaMatchCallHeader =
.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 =
@@ -643,14 +612,14 @@ static const struct MatchCallStruct5 sJuanMatchCallHeader =
.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 =
@@ -659,14 +628,14 @@ static const struct MatchCallStruct5 sSidneyMatchCallHeader =
.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 =
@@ -675,14 +644,14 @@ static const struct MatchCallStruct5 sPhoebeMatchCallHeader =
.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 =
@@ -691,14 +660,14 @@ static const struct MatchCallStruct5 sGlaciaMatchCallHeader =
.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 =
@@ -707,14 +676,14 @@ static const struct MatchCallStruct5 sDrakeMatchCallHeader =
.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 =
@@ -723,7 +692,7 @@ static const struct MatchCallStruct5 sWallaceMatchCallHeader =
.mapSec = MAPSEC_EVER_GRANDE_CITY,
.flag = FLAG_REMATCH_WALLACE,
.rematchTableIdx = REMATCH_WALLACE,
- .desc = gChampionMatchCallDesc,
+ .desc = gText_ChampionMatchCallDesc,
.name = NULL,
.textData = sWallaceTextScripts
};
@@ -809,10 +778,40 @@ static void (*const sMatchCall_GetNameAndDescFunctions[])(match_call_t, const u8
};
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
+ {
+ .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
@@ -867,21 +866,21 @@ bool32 MatchCallFlagGetByIndex(u32 idx)
static bool32 MatchCallGetFlag_Type0(match_call_t matchCall)
{
- if (matchCall.type0->flag == 0xffff)
+ if (matchCall.type0->flag == 0xFFFF)
return TRUE;
return FlagGet(matchCall.type0->flag);
}
static bool32 MatchCallGetFlag_Type1(match_call_t matchCall)
{
- if (matchCall.type1->flag == 0xffff)
+ if (matchCall.type1->flag == 0xFFFF)
return TRUE;
return FlagGet(matchCall.type1->flag);
}
static bool32 MatchCallGetFlag_Type2(match_call_t matchCall)
{
- if (matchCall.type2->flag == 0xffff)
+ if (matchCall.type2->flag == 0xFFFF)
return TRUE;
return FlagGet(matchCall.type2->flag);
}
@@ -890,7 +889,7 @@ static bool32 MatchCallGetFlag_Type4(match_call_t matchCall)
{
if (matchCall.type4->gender != gSaveBlock2Ptr->playerGender)
return FALSE;
- if (matchCall.type4->flag == 0xffff)
+ if (matchCall.type4->flag == 0xFFFF)
return TRUE;
return FlagGet(matchCall.type4->flag);
}
@@ -926,7 +925,7 @@ static u8 MatchCallGetMapSec_Type2(match_call_t matchCall)
{
s32 i;
- for (i = 0; matchCall.type2->v10[i].flag != 0xffff; i++)
+ for (i = 0; matchCall.type2->v10[i].flag != 0xFFFF; i++)
{
if (!FlagGet(matchCall.type2->v10[i].flag))
break;
@@ -1113,11 +1112,11 @@ static void sub_81D1920(const match_call_text_data_t *sub0, u8 *dest)
i--;
while (i)
{
- if (sub0[i].flag != 0xffff && FlagGet(sub0[i].flag) == TRUE)
+ if (sub0[i].flag != 0xFFFF && FlagGet(sub0[i].flag) == TRUE)
break;
i--;
}
- if (sub0[i].flag2 != 0xffff)
+ if (sub0[i].flag2 != 0xFFFF)
FlagSet(sub0[i].flag2);
StringExpandPlaceholders(dest, sub0[i].text);
}
@@ -1129,14 +1128,14 @@ static void sub_81D199C(const match_call_text_data_t *sub0, u16 idx, u8 *dest)
{
if (sub0[i].flag == 0xfffe)
break;
- if (sub0[i].flag != 0xffff && !FlagGet(sub0[i].flag))
+ if (sub0[i].flag != 0xFFFF && !FlagGet(sub0[i].flag))
break;
}
if (sub0[i].flag != 0xfffe)
{
if (i)
i--;
- if (sub0[i].flag2 != 0xffff)
+ if (sub0[i].flag2 != 0xFFFF)
FlagSet(sub0[i].flag2);
StringExpandPlaceholders(dest, sub0[i].text);
}
@@ -1254,8 +1253,8 @@ bool32 sub_81D1BF8(u32 idx)
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 275a4063e..552bf2cb7 100644
--- a/src/pokenav_match_call_ui.c
+++ b/src/pokenav_match_call_ui.c
@@ -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);
@@ -558,22 +558,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;
@@ -705,7 +705,7 @@ void sub_81C8C64(struct UnknownSubSubStruct_0203CF40 *a0, u32 a1)
void sub_81C8CB4(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1)
{
- u8 colors[3] = {0, 2, 5};
+ u8 colors[3] = {TEXT_COLOR_TRANSPARENT, TEXT_COLOR_DARK_GREY, TEXT_COLOR_LIGHT_RED};
a1->unk34(a0->unk10 + a0->unkC * a0->windowTopIndex, a1->unkTextBuffer);
a1->unk38(a1->unk0.windowId, a0->windowTopIndex, a1->unk0.unkA);
@@ -727,7 +727,7 @@ void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *
void PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 fieldId)
{
const u8 *fieldNames[] = {gText_PokenavMatchCall_Strategy, gText_PokenavMatchCall_TrainerPokemon, gText_PokenavMatchCall_SelfIntroduction};
- u8 colors[3] = {1, 4, 5};
+ u8 colors[3] = {TEXT_COLOR_WHITE, TEXT_COLOR_RED, TEXT_COLOR_LIGHT_RED};
u32 top = (a0->unk0.unkA + 1 + (fieldId * 2)) & 0xF;
FillWindowPixelRect(a0->unk0.windowId, PIXEL_FILL(1), 0, top << 4, a0->unk0.unk4, 16);
@@ -735,11 +735,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)
{
diff --git a/src/pokenav_unk_1.c b/src/pokenav_unk_1.c
index b5bbc4b74..7d531c2f7 100644
--- a/src/pokenav_unk_1.c
+++ b/src/pokenav_unk_1.c
@@ -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;
}
}
diff --git a/src/pokenav_unk_10.c b/src/pokenav_unk_10.c
index 135ff24b3..0d82f1a9c 100644
--- a/src/pokenav_unk_10.c
+++ b/src/pokenav_unk_10.c
@@ -13,6 +13,9 @@
#include "window.h"
#include "constants/songs.h"
+#define boxId id1 // naming multi-purpose field
+#define monId id2 // naming multi-purpose field
+
struct PokenavSub13
{
u8 filler0[0x8];
diff --git a/src/pokenav_unk_2.c b/src/pokenav_unk_2.c
index cb9467a9c..ed9da0800 100644
--- a/src/pokenav_unk_2.c
+++ b/src/pokenav_unk_2.c
@@ -324,7 +324,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;
}
diff --git a/src/pokenav_unk_3.c b/src/pokenav_unk_3.c
index c66434192..09aef6a0c 100755
--- a/src/pokenav_unk_3.c
+++ b/src/pokenav_unk_3.c
@@ -15,21 +15,25 @@
#include "constants/flags.h"
#include "constants/songs.h"
+//#define ?? id1
+#define mapSec id2 // naming multi-purpose field
+#define headerId data // naming multi-purpose field
+
struct Pokenav3Struct
{
u16 unk0;
u16 unk2;
- const u8 *unk4;
- u16 unk8;
+ const u8 *matchCallOptions;
+ u16 headerId;
u16 unkA;
u16 unkC;
u32 unk10;
u32 unk14;
u32 (*callback)(struct Pokenav3Struct*);
- struct PokenavMonList unk1C[99];
+ struct PokenavMonList 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 *);
@@ -39,8 +43,18 @@ 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 +62,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,9 +80,9 @@ 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;
@@ -83,15 +97,15 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state)
{
state->callback = sub_81CAC04;
state->unk0 = 0;
- selectedMatchCall = GetSelectedMatchCall();
- if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6))
+ selection = GetSelectedMatchCall();
+ if (!state->matchCallEntries[selection].id1 || MatchCall_HasCheckPage(state->matchCallEntries[selection].headerId))
{
- state->unk4 = gUnknown_0862250A;
+ state->matchCallOptions = sMatchCallOptionsHasCheckPage;
state->unk2 = 2;
}
else
{
- state->unk4 = gUnknown_08622508;
+ state->matchCallOptions = sMatchCallOptionsNoCheckPage;
state->unk2 = 1;
}
@@ -100,7 +114,7 @@ static u32 sub_81CAB44(struct Pokenav3Struct *state)
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;
@@ -135,21 +149,21 @@ static u32 sub_81CAC04(struct Pokenav3Struct *state)
if (gMain.newKeys & A_BUTTON)
{
- switch (state->unk4[state->unk0])
+ switch (state->matchCallOptions[state->unk0])
{
- case 2:
- state->callback = sub_81CAB44;
+ case MATCH_CALL_OPTION_CANCEL:
+ state->callback = CB2_HandleMatchCallInput;
return 7;
- case 0:
- if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_1)
- SetPokenavMode(POKENAV_MODE_FORCE_CALL_2);
+ case MATCH_CALL_OPTION_CALL:
+ if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_READY)
+ SetPokenavMode(POKENAV_MODE_FORCE_CALL_EXIT);
state->callback = sub_81CACF8;
if (sub_81CB1D0())
return 9;
return 8;
- case 1:
+ case MATCH_CALL_OPTION_CHECK:
state->callback = sub_81CACB8;
return 11;
}
@@ -157,7 +171,7 @@ static u32 sub_81CAC04(struct Pokenav3Struct *state)
if (gMain.newKeys & B_BUTTON)
{
- state->callback = sub_81CAB44;
+ state->callback = CB2_HandleMatchCallInput;
return 7;
}
@@ -173,7 +187,7 @@ static u32 sub_81CACB8(struct Pokenav3Struct *state)
if (gMain.newKeys & B_BUTTON)
{
- state->callback = sub_81CAB44;
+ state->callback = CB2_HandleMatchCallInput;
return 14;
}
@@ -184,7 +198,7 @@ static u32 sub_81CACF8(struct Pokenav3Struct *state)
{
if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{
- state->callback = sub_81CAB44;
+ state->callback = CB2_HandleMatchCallInput;
return 10;
}
@@ -198,41 +212,41 @@ static u32 sub_81CAD20(s32 taskState)
switch (taskState)
{
case 0:
- state->unk8 = 0;
+ state->headerId = 0;
state->unkA = 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))
{
- state->unk1C[state->unkA].unk6 = j;
- state->unk1C[state->unkA].boxId = 1;
- state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j);
+ state->matchCallEntries[state->unkA].headerId = j;
+ state->matchCallEntries[state->unkA].id1 = TRUE;
+ state->matchCallEntries[state->unkA].mapSec = MatchCallMapSecGetByIndex(j);
state->unkA++;
}
- 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 (!sub_81D1BF8(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->matchCallEntries[state->unkA].headerId = state->headerId;
+ state->matchCallEntries[state->unkA].id1 = FALSE;
+ state->matchCallEntries[state->unkA].mapSec = sub_81CB0C8(j);
state->unkA++;
}
- if (++state->unk8 > REMATCH_TABLE_ENTRIES - 1)
+ if (++state->headerId > REMATCH_TABLE_ENTRIES - 1)
return LT_INC_AND_CONTINUE;
}
@@ -245,7 +259,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);
@@ -284,28 +298,28 @@ int unref_sub_81CAE6C(int arg0)
if (arg0 >= state->unkA)
return REMATCH_TABLE_ENTRIES;
- return state->unk1C[arg0].unk6;
+ return state->matchCallEntries[arg0].headerId;
}
struct PokenavMonList *sub_81CAE94(void)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unk1C;
+ return state->matchCallEntries;
}
u16 sub_81CAEA4(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- return state->unk1C[index].monId;
+ return state->matchCallEntries[index].mapSec;
}
bool32 sub_81CAEBC(int index)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (!state->unk1C[index].boxId)
- index = state->unk1C[index].unk6;
+ if (!state->matchCallEntries[index].id1)
+ 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,17 +327,17 @@ bool32 sub_81CAEBC(int index)
return gSaveBlock1Ptr->trainerRematches[index] != 0;
}
-int sub_81CAF04(int index)
+int GetMatchCallTrainerPic(int index)
{
int var0;
struct Pokenav3Struct *state = GetSubstructPtr(5);
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].id1)
{
- index = GetTrainerIdxByRematchIdx(state->unk1C[index].unk6);
+ index = GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId);
return gTrainers[index].trainerPic;
}
- var0 = state->unk1C[index].unk6;
+ var0 = state->matchCallEntries[index].headerId;
index = MatchCall_GetRematchTableIdx(var0);
if (index != REMATCH_TABLE_ENTRIES)
{
@@ -342,30 +356,30 @@ const u8 *sub_81CAF78(int index, u8 *arg1)
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].id1)
+ *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].id1)
{
- 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)
@@ -378,18 +392,18 @@ u16 sub_81CB02C(int arg0)
{
struct Pokenav3Struct *state = GetSubstructPtr(5);
if (state->unk2 < arg0)
- return 3;
+ return MATCH_CALL_OPTION_COUNT;
- return state->unk4[arg0];
+ return state->matchCallOptions[arg0];
}
void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
{
const u8 *trainerName;
const u8 *className;
- if (!arg0->boxId)
+ if (!arg0->id1)
{
- int index = GetTrainerIdxByRematchIdx(arg0->unk6);
+ int index = GetTrainerIdxByRematchIdx(arg0->headerId);
const struct Trainer *trainer = &gTrainers[index];
int class = trainer->trainerClass;
className = gTrainerClassNames[class];
@@ -397,7 +411,7 @@ void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
}
else
{
- sub_81D1A78(arg0->unk6, &className, &trainerName);
+ sub_81D1A78(arg0->headerId, &className, &trainerName);
}
if (className && trainerName)
@@ -424,9 +438,9 @@ int sub_81CB0E4(int index)
int count = 1;
while (++index < state->unkA)
{
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].id1)
return count;
- if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
+ if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count;
count++;
@@ -441,9 +455,9 @@ int sub_81CB128(int index)
int count = -1;
while (--index >= 0)
{
- if (!state->unk1C[index].boxId)
+ if (!state->matchCallEntries[index].id1)
return count;
- if (MatchCall_HasCheckPage(state->unk1C[index].unk6))
+ if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count;
count--;
@@ -458,7 +472,7 @@ 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;
}
@@ -478,20 +492,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].id1)
{
- if (sub_81CAEA4(index) == gMapHeader.regionMapSectionId)
+ if (sub_81CAEA4(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 (sub_81CAEA4(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 0f05c6f5d..4ac2ed41e 100755
--- a/src/pokenav_unk_4.c
+++ b/src/pokenav_unk_4.c
@@ -197,11 +197,11 @@ const struct WindowTemplate gUnknown_086227E0 =
.baseBlock = 38
};
-const u8 *const gUnknown_086227E8[] =
+static const u8 *const sMatchCallOptionTexts[MATCH_CALL_OPTION_COUNT] =
{
- gUnknown_085EC017,
- gUnknown_085EC01C,
- gUnknown_085EC022
+ [MATCH_CALL_OPTION_CALL] = gText_Call,
+ [MATCH_CALL_OPTION_CHECK] = gText_Check,
+ [MATCH_CALL_OPTION_CANCEL] = gText_Cancel6
};
const u8 gUnknown_086227F4[] = _("·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·{PAUSE 0x04}·\p");
@@ -1022,13 +1022,13 @@ static void sub_81CBF60(struct Pokenav4Struct *state)
u32 i;
FillWindowPixelBuffer(state->unk12, PIXEL_FILL(1));
- for (i = 0; i < 3; i++)
+ for (i = 0; i < MATCH_CALL_OPTION_COUNT; i++)
{
- int messageId = sub_81CB02C(i);
- if (messageId == 3)
+ int optionText = sub_81CB02C(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->unk12, 7, sMatchCallOptionTexts[optionText], 16, i * 16 + 1, TEXT_SPEED_FF, NULL);
}
CopyWindowToVram(state->unk12, 2);
@@ -1226,11 +1226,11 @@ static struct Sprite *sub_81CC370(void)
static void sub_81CC39C(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;
diff --git a/src/pokenav_unk_6.c b/src/pokenav_unk_6.c
index ac8237793..c96c3ac1c 100644
--- a/src/pokenav_unk_6.c
+++ b/src/pokenav_unk_6.c
@@ -14,6 +14,9 @@
#include "constants/songs.h"
#include "constants/species.h"
+#define boxId id1 // naming multi-purpose field
+#define monId id2 // naming multi-purpose field
+
struct PokenavSub11
{
u32 monPal[3][0x20];
@@ -463,14 +466,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 +600,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_8.c b/src/pokenav_unk_8.c
index c52932a79..f3d0b76f9 100644
--- a/src/pokenav_unk_8.c
+++ b/src/pokenav_unk_8.c
@@ -10,6 +10,10 @@
#include "international_string_util.h"
#include "constants/songs.h"
+#define boxId id1 // naming multi-purpose field
+#define monId id2 // naming multi-purpose field
+
+
struct PokenavSub7
{
u32 (*unk0)(struct PokenavSub7 *);
@@ -227,7 +231,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 +262,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 +294,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 +317,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 +344,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;
diff --git a/src/pokenav_unk_9.c b/src/pokenav_unk_9.c
index 05d590a87..e8078ea02 100644
--- a/src/pokenav_unk_9.c
+++ b/src/pokenav_unk_9.c
@@ -8,6 +8,9 @@
#include "international_string_util.h"
#include "constants/songs.h"
+#define boxId id1 // naming multi-purpose field
+#define monId id2 // naming multi-purpose field
+
struct PokenavSub9
{
u32 (*unk0)(struct PokenavSub9*);
@@ -218,7 +221,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 +243,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 +255,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 +291,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 +320,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;
@@ -688,7 +691,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 +725,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 afa567b9f..0efeb7249 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");
@@ -985,9 +985,9 @@ const u8 gUnknown_085EBFE4[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT
const u8 gUnknown_085EBFF6[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_GREEN WHITE BLUE}♀{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}");
const u8 gUnknown_085EC008[] = _("{SPECIAL_F7 0x00}/{LV}{SPECIAL_F7 0x01}");
const u8 gText_Unknown[] = _("UNKNOWN");
-const u8 gUnknown_085EC017[] = _("CALL");
-const u8 gUnknown_085EC01C[] = _("CHECK");
-const u8 gUnknown_085EC022[] = _("CANCEL");
+const u8 gText_Call[] = _("CALL");
+const u8 gText_Check[] = _("CHECK");
+const u8 gText_Cancel6[] = _("CANCEL");
const u8 gText_NumberF700[] = _("No. {SPECIAL_F7 0x00}");
const u8 gText_RibbonsF700[] = _("RIBBONS {SPECIAL_F7 0x00}");
const u8 gUnknown_085EC03B[] = _("{SPECIAL_F7 0x00}{COLOR_HIGHLIGHT_SHADOW LIGHT_RED WHITE GREEN}♂{COLOR_HIGHLIGHT_SHADOW DARK_GREY WHITE LIGHT_GREY}/{LV}{SPECIAL_F7 0x01}{SPECIAL_F7 0x02}");
@@ -1276,20 +1276,20 @@ const u8 gText_Sorry[] = _("SORRY");
const u8 gText_YayUnkF9F9[] = _("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}");