diff options
author | huderlem <huderlem@gmail.com> | 2019-12-15 09:42:13 -0600 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-12-15 09:42:13 -0600 |
commit | fee36224eda1acc4329646caf0e65a891928afc0 (patch) | |
tree | d2f222de1bee8df2adee05b778cc9a34e3567848 | |
parent | 6967caefb246f9709032049b0ae2baee71f71eb6 (diff) | |
parent | a04347816f71a9a6d92579d0d6b54268c6c8a96d (diff) |
Merge pull request #925 from GriffinRichards/doc-matchcall
Document some pokenav match call
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}"); |