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