Merge branch 'master' into fix-eventobj

This commit is contained in:
GriffinR
2019-12-15 11:47:27 -05:00
committed by GitHub
30 changed files with 2053 additions and 1955 deletions

View File

@@ -357,12 +357,12 @@ MossdeepCity_SpaceCenter_2F_EventScript_RivalRayquazaCall:: @ 8224175
end end
MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall:: @ 8224193 MossdeepCity_SpaceCenter_2F_EventScript_MayRayquazaCall:: @ 8224193
pokenavcall MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall pokenavcall MatchCall_Text_MayRayquazaCall
waitmessage waitmessage
return return
MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall:: @ 822419A MossdeepCity_SpaceCenter_2F_EventScript_BrendanRayquazaCall:: @ 822419A
pokenavcall MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall pokenavcall MatchCall_Text_BrendanRayquazaCall
waitmessage waitmessage
return return

View File

@@ -2014,7 +2014,7 @@ MatchCall_BattlePyramidText14:: @ 82B21FC
.string "You're an inspiration!\n" .string "You're an inspiration!\n"
.string "See you again!$" .string "See you again!$"
gText_Mom_Pokenav_2B227B:: @ 82B227B MatchCall_Text_Mom1:: @ 82B227B
.string "MOM: Your father and you…\n" .string "MOM: Your father and you…\n"
.string "Everyone is captivated by POKéMON.\p" .string "Everyone is captivated by POKéMON.\p"
.string "What is the charm of 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 "I adore POKéMON that help me with\l"
.string "my everyday chores.$" .string "my everyday chores.$"
gText_Mom_Pokenav_2B2310:: @ 82B2310 MatchCall_Text_Mom2:: @ 82B2310
.string "MOM: Hi, {PLAYER}!\n" .string "MOM: Hi, {PLAYER}!\n"
.string "Your father keeps himself locked\l" .string "Your father keeps himself locked\l"
.string "away in the PETALBURG GYM.\p" .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 "I'm guessing that losing to you\n"
.string "was a big blow to his pride!$" .string "was a big blow to his pride!$"
gText_Mom_Pokenav_2B23F3:: @ 82B23F3 MatchCall_Text_Mom3:: @ 82B23F3
.string "MOM: {PLAYER}…\n" .string "MOM: {PLAYER}…\n"
.string "Don't worry about me or the house.\p" .string "Don't worry about me or the house.\p"
.string "Wear those RUNNING SHOES until\n" .string "Wear those RUNNING SHOES until\n"
.string "they fall apart, honey!$" .string "they fall apart, honey!$"
gText_Roxanne_Pokenav_2B2456:: @ 82B2456 MatchCall_Text_Roxanne1:: @ 82B2456
.string "ROXANNE: Oh, hello, {PLAYER}!\p" .string "ROXANNE: Oh, hello, {PLAYER}!\p"
.string "I've been hard at work retraining\n" .string "I've been hard at work retraining\n"
.string "since we met.\p" .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 "But when I do, please visit my GYM\n"
.string "for a rematch!$" .string "for a rematch!$"
gText_Roxanne_Pokenav_2B250E:: @ 82B250E MatchCall_Text_Roxanne2:: @ 82B250E
.string "ROXANNE: Is this {PLAYER}?\n" .string "ROXANNE: Is this {PLAYER}?\n"
.string "Congratulations!\l" .string "Congratulations!\l"
.string "I've been hearing about you!\p" .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 "But when I do, please visit my GYM\n"
.string "for a rematch!$" .string "for a rematch!$"
gText_Roxanne_Pokenav_2B25C1:: @ 82B25C1 MatchCall_Text_Roxanne3:: @ 82B25C1
.string "ROXANNE: {PLAYER}!\n" .string "ROXANNE: {PLAYER}!\n"
.string "My GYM is ready!\p" .string "My GYM is ready!\p"
.string "Please visit RUSTBORO whenever\n" .string "Please visit RUSTBORO whenever\n"
.string "you can!$" .string "you can!$"
gText_Roxanne_Pokenav_2B2607:: @ 82B2607 MatchCall_Text_Roxanne4:: @ 82B2607
.string "ROXANNE: At the RUSTBORO GYM,\n" .string "ROXANNE: At the RUSTBORO GYM,\n"
.string "the fact that we battled, {PLAYER},\l" .string "the fact that we battled, {PLAYER},\l"
.string "is a matter of pride.$" .string "is a matter of pride.$"
gText_Brawly_Pokenav_2B2659:: @ 82B2659 MatchCall_Text_Brawly1:: @ 82B2659
.string "BRAWLY: Hey, there, {PLAYER}{KUN}!\p" .string "BRAWLY: Hey, there, {PLAYER}{KUN}!\p"
.string "I learned a lot from the battle we\n" .string "I learned a lot from the battle we\n"
.string "had together.\p" .string "had together.\p"
@@ -2078,7 +2078,7 @@ gText_Brawly_Pokenav_2B2659:: @ 82B2659
.string "But if I can reopen the GYM,\n" .string "But if I can reopen the GYM,\n"
.string "I want you to challenge us again.$" .string "I want you to challenge us again.$"
gText_Brawly_Pokenav_2B275D:: @ 82B275D MatchCall_Text_Brawly2:: @ 82B275D
.string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "BRAWLY: Hey, {PLAYER}{KUN}!\n"
.string "Congratulations!\p" .string "Congratulations!\p"
.string "Word about your exploits arrived\n" .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 "But if I can reopen the GYM,\n"
.string "I want you to challenge us again.$" .string "I want you to challenge us again.$"
gText_Brawly_Pokenav_2B286F:: @ 82B286F MatchCall_Text_Brawly3:: @ 82B286F
.string "BRAWLY: Hey, {PLAYER}{KUN}!\n" .string "BRAWLY: Hey, {PLAYER}{KUN}!\n"
.string "My GYM's ready for action!\p" .string "My GYM's ready for action!\p"
.string "Come back to DEWFORD anytime\n" .string "Come back to DEWFORD anytime\n"
.string "for another challenge!$" .string "for another challenge!$"
gText_Brawly_Pokenav_2B28D1:: @ 82B28D1 MatchCall_Text_Brawly4:: @ 82B28D1
.string "BRAWLY: {PLAYER}{KUN}, I don't think\n" .string "BRAWLY: {PLAYER}{KUN}, I don't think\n"
.string "I'll ever get bored of battling you!$" .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 "WATTSON: Oh, it's you!\p"
.string "After you left, I've been redoing\n" .string "After you left, I've been redoing\n"
.string "my training from scratch.\p" .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 "You'll have to wait till then!\n"
.string "Wahahahaha!$" .string "Wahahahaha!$"
gText_Wattson_Pokenav_2B29CA:: @ 82B29CA MatchCall_Text_Wattson2:: @ 82B29CA
.string "WATTSON: Wahahahaha!\p" .string "WATTSON: Wahahahaha!\p"
.string "You've really done it, haven't you?\n" .string "You've really done it, haven't you?\n"
.string "I've been getting word about you!\p" .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 "You'll have to wait till then!\n"
.string "Wahahahaha!$" .string "Wahahahaha!$"
gText_Wattson_Pokenav_2B2AB6:: @ 82B2AB6 MatchCall_Text_Wattson3:: @ 82B2AB6
.string "WATTSON: Oh, it's you!\n" .string "WATTSON: Oh, it's you!\n"
.string "My GYM's ready!\p" .string "My GYM's ready!\p"
.string "Visit MAUVILLE anytime!\n" .string "Visit MAUVILLE anytime!\n"
.string "Wahahahaha!$" .string "Wahahahaha!$"
gText_Wattson_Pokenav_2B2B01:: @ 82B2B01 MatchCall_Text_Wattson4:: @ 82B2B01
.string "WATTSON: Wahahaha!\p" .string "WATTSON: Wahahaha!\p"
.string "A battle with you is always charged\n" .string "A battle with you is always charged\n"
.string "with shocking power!$" .string "with shocking power!$"
gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D MatchCall_Text_Flannery1:: @ 82B2B4D
.string "FLANNERY: {PLAYER}…\p" .string "FLANNERY: {PLAYER}…\p"
.string "When we battled, I learned exactly\n" .string "When we battled, I learned exactly\n"
.string "how immature I was.\p" .string "how immature I was.\p"
@@ -2141,7 +2141,7 @@ gText_Flannery_Pokenav_2B2B4D:: @ 82B2B4D
.string "When the time comes, {PLAYER},\n" .string "When the time comes, {PLAYER},\n"
.string "please challenge us again.$" .string "please challenge us again.$"
gText_Flannery_Pokenav_2B2C0E:: @ 82B2C0E MatchCall_Text_Flannery2:: @ 82B2C0E
.string "FLANNERY: Hello, {PLAYER}?\n" .string "FLANNERY: Hello, {PLAYER}?\n"
.string "Congratulations!\p" .string "Congratulations!\p"
.string "Word of your success has reached\n" .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 "appear beside my name in the\l"
.string "MATCH CALL list.$" .string "MATCH CALL list.$"
gText_Flannery_Pokenav_2B2CF1:: @ 82B2CF1 MatchCall_Text_Flannery3:: @ 82B2CF1
.string "FLANNERY: Oh, {PLAYER}?\n" .string "FLANNERY: Oh, {PLAYER}?\n"
.string "Our GYM's ready!\p" .string "Our GYM's ready!\p"
.string "Come to LAVARIDGE for a soak\n" .string "Come to LAVARIDGE for a soak\n"
.string "in the hot spring and a challenge!$" .string "in the hot spring and a challenge!$"
gText_Flannery_Pokenav_2B2D54:: @ 82B2D54 MatchCall_Text_Flannery4:: @ 82B2D54
.string "FLANNERY: {PLAYER}…\n" .string "FLANNERY: {PLAYER}…\n"
.string "I'm positive that you keep getting\l" .string "I'm positive that you keep getting\l"
.string "better at training every time.$" .string "better at training every time.$"
gText_Winona_Pokenav_2B2DA4:: @ 82B2DA4 MatchCall_Text_Winona1:: @ 82B2DA4
.string "WINONA: Hello, {PLAYER}!\p" .string "WINONA: Hello, {PLAYER}!\p"
.string "Thanks to our battle, I've come\n" .string "Thanks to our battle, I've come\n"
.string "to understand my weak points!\p" .string "to understand my weak points!\p"
.string "When I reopen the GYM, I won't go\n" .string "When I reopen the GYM, I won't go\n"
.string "down in defeat again!$" .string "down in defeat again!$"
gText_Winona_Pokenav_2B2E2B:: @ 82B2E2B MatchCall_Text_Winona2:: @ 82B2E2B
.string "WINONA: You've done it, {PLAYER}!\p" .string "WINONA: You've done it, {PLAYER}!\p"
.string "News about the new CHAMPION\n" .string "News about the new CHAMPION\n"
.string "has reached us in FORTREE!\p" .string "has reached us in FORTREE!\p"
.string "But… The next time we battle,\n" .string "But… The next time we battle,\n"
.string "it's not going to end the same way.$" .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 "WINONA: Is this {PLAYER}?\n"
.string "Our GYM is back in operation!\p" .string "Our GYM is back in operation!\p"
.string "We're waiting for you in FORTREE!$" .string "We're waiting for you in FORTREE!$"
gText_Winona_Pokenav_2B2F16:: @ 82B2F16 MatchCall_Text_Winona4:: @ 82B2F16
.string "WINONA: {PLAYER}…\n" .string "WINONA: {PLAYER}…\n"
.string "Though I have lost, my wings will\l" .string "Though I have lost, my wings will\l"
.string "never break.\p" .string "never break.\p"
.string "Yes, in exactly the same way that\n" .string "Yes, in exactly the same way that\n"
.string "you never lost sight of your dream.$" .string "you never lost sight of your dream.$"
gText_TateLiza_Pokenav_2B2F97:: @ 82B2F97 MatchCall_Text_TateLiza1:: @ 82B2F97
.string "TATE: Oh! You're…\n" .string "TATE: Oh! You're…\n"
.string "LIZA: {PLAYER}!\p" .string "LIZA: {PLAYER}!\p"
.string "TATE: We're in training again…\n" .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 "TATE: A mark'll appear by our name…\n"
.string "LIZA: On the MATCH CALL list.$" .string "LIZA: On the MATCH CALL list.$"
gText_TateLiza_Pokenav_2B306E:: @ 82B306E MatchCall_Text_TateLiza2:: @ 82B306E
.string "TATE: {PLAYER}, congratulations!\n" .string "TATE: {PLAYER}, congratulations!\n"
.string "LIZA: {PLAYER}, congratulations!\p" .string "LIZA: {PLAYER}, congratulations!\p"
.string "TATE: The two of us are…\n" .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 "TATE: A mark'll appear by our name…\n"
.string "LIZA: On the MATCH CALL list.$" .string "LIZA: On the MATCH CALL list.$"
gText_TateLiza_Pokenav_2B3158:: @ 82B3158 MatchCall_Text_TateLiza3:: @ 82B3158
.string "TATE: {PLAYER}!\n" .string "TATE: {PLAYER}!\n"
.string "LIZA: {PLAYER}!\p" .string "LIZA: {PLAYER}!\p"
.string "TATE: Our GYM is ready!\n" .string "TATE: Our GYM is ready!\n"
@@ -2217,13 +2217,13 @@ gText_TateLiza_Pokenav_2B3158:: @ 82B3158
.string "TATE: Please come visit…\n" .string "TATE: Please come visit…\n"
.string "LIZA: MOSSDEEP anytime!$" .string "LIZA: MOSSDEEP anytime!$"
gText_TateLiza_Pokenav_2B31CD:: @ 82B31CD MatchCall_Text_TateLiza4:: @ 82B31CD
.string "TATE: {PLAYER}, the battle we had…\n" .string "TATE: {PLAYER}, the battle we had…\n"
.string "LIZA: Is an invaluable experience.\p" .string "LIZA: Is an invaluable experience.\p"
.string "TATE: It would be nice if…\n" .string "TATE: It would be nice if…\n"
.string "LIZA: We could all battle again!$" .string "LIZA: We could all battle again!$"
gText_Juan_Pokenav_2B3249:: @ 82B3249 MatchCall_Text_Juan1:: @ 82B3249
.string "JUAN: Hmm…\n" .string "JUAN: Hmm…\n"
.string "{PLAYER}{KUN}… Was it?\p" .string "{PLAYER}{KUN}… Was it?\p"
.string "Our battle together--it brought\n" .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 "Perhaps you are a genius who may\n"
.string "yet surpass WALLACE!$" .string "yet surpass WALLACE!$"
gText_Juan_Pokenav_2B32EC:: @ 82B32EC MatchCall_Text_Juan2:: @ 82B32EC
.string "JUAN: Fufu… {PLAYER}{KUN}…\n" .string "JUAN: Fufu… {PLAYER}{KUN}…\n"
.string "You've finally achieved your goal.\p" .string "You've finally achieved your goal.\p"
.string "My eye for appraising talent wasn't\n" .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 "you, for you have scaled the peak\l"
.string "of power and prestige.$" .string "of power and prestige.$"
gText_Juan_Pokenav_2B33AA:: @ 82B33AA MatchCall_Text_Juan3:: @ 82B33AA
.string "JUAN: Hoho… {PLAYER}{KUN}…\p" .string "JUAN: Hoho… {PLAYER}{KUN}…\p"
.string "Our SOOTOPOLIS GYM has finally\n" .string "Our SOOTOPOLIS GYM has finally\n"
.string "reopened.\p" .string "reopened.\p"
.string "If you wish to see me, you are\n" .string "If you wish to see me, you are\n"
.string "welcome to visit anytime.$" .string "welcome to visit anytime.$"
gText_Juan_Pokenav_2B341E:: @ 82B341E MatchCall_Text_Juan4:: @ 82B341E
.string "JUAN: {PLAYER}{KUN}…\p" .string "JUAN: {PLAYER}{KUN}…\p"
.string "Like the finest music, the battles\n" .string "Like the finest music, the battles\n"
.string "we wage together strike chords\l" .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 "When I close my eyes, I see visions\n"
.string "of you soaring with the melody…$" .string "of you soaring with the melody…$"
gText_Sidney_Pokenav_2B34CC:: @ 82B34CC MatchCall_Text_Sidney:: @ 82B34CC
.string "SIDNEY: Yo, {PLAYER}!\p" .string "SIDNEY: Yo, {PLAYER}!\p"
.string "If you want to battle with me\n" .string "If you want to battle with me\n"
.string "again, you come on back whenever\l" .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 always be here!\n"
.string "I'll be waiting!$" .string "I'll be waiting!$"
gText_Phoebe_Pokenav_2B3561:: @ 82B3561 MatchCall_Text_Phoebe:: @ 82B3561
.string "PHOEBE: Hi, {PLAYER}!\p" .string "PHOEBE: Hi, {PLAYER}!\p"
.string "How about coming back here again\n" .string "How about coming back here again\n"
.string "sometime?\p" .string "sometime?\p"
@@ -2272,7 +2272,7 @@ gText_Phoebe_Pokenav_2B3561:: @ 82B3561
.string "your bond has grown with your\l" .string "your bond has grown with your\l"
.string "POKéMON.$" .string "POKéMON.$"
gText_Glacia_Pokenav_2B35E4:: @ 82B35E4 MatchCall_Text_Glacia:: @ 82B35E4
.string "GLACIA: Hello, {PLAYER}.\p" .string "GLACIA: Hello, {PLAYER}.\p"
.string "I trust you haven't become\n" .string "I trust you haven't become\n"
.string "complacent with your power?\p" .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 "hot emotions just a little, do come\l"
.string "to the POKéMON LEAGUE…$" .string "to the POKéMON LEAGUE…$"
gText_Drake_Pokenav_2B368B:: @ 82B368B MatchCall_Text_Drake:: @ 82B368B
.string "DRAKE: That voice… {PLAYER}, is it?\n" .string "DRAKE: That voice… {PLAYER}, is it?\n"
.string "You sound well…\p" .string "You sound well…\p"
.string "I understand that there is now\n" .string "I understand that there is now\n"
@@ -2292,7 +2292,7 @@ gText_Drake_Pokenav_2B368B:: @ 82B368B
.string "the POKéMON LEAGUE!\p" .string "the POKéMON LEAGUE!\p"
.string "Don't you agree, {PLAYER}?$" .string "Don't you agree, {PLAYER}?$"
gText_Wallace_Pokenav_2B3790:: @ 82B3790 MatchCall_Text_Wallace:: @ 82B3790
.string "WALLACE: Hello, {PLAYER}{KUN}.\n" .string "WALLACE: Hello, {PLAYER}{KUN}.\n"
.string "Have you met STEVEN?\p" .string "Have you met STEVEN?\p"
.string "He is…\n" .string "He is…\n"
@@ -2306,7 +2306,7 @@ gText_Wallace_Pokenav_2B3790:: @ 82B3790
.string "But what is a rare stone exactly?\n" .string "But what is a rare stone exactly?\n"
.string "All I can think of is a METEORITE…$" .string "All I can think of is a METEORITE…$"
MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall: @ 82B38C1 MatchCall_Text_MayRayquazaCall: @ 82B38C1
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … Beep!\p" .string "… … … … … Beep!\p"
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
@@ -2321,7 +2321,7 @@ MossdeepCity_SpaceCenter_2F_Text_MayRayquazaCall: @ 82B38C1
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … Click!$" .string "… … … … … Click!$"
MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall: @ 82B39C6 MatchCall_Text_BrendanRayquazaCall: @ 82B39C6
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … Beep!\p" .string "… … … … … Beep!\p"
.string "BRENDAN: Hey, {PLAYER}!\n" .string "BRENDAN: Hey, {PLAYER}!\n"
@@ -2335,14 +2335,14 @@ MossdeepCity_SpaceCenter_2F_Text_BrendanRayquazaCall: @ 82B39C6
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … Click!$" .string "… … … … … Click!$"
gText_May_Pokenav_2B3AB3:: @ 2B3AB3 MatchCall_Text_May1:: @ 2B3AB3
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "MR. BRINEY retired as a SAILOR,\n" .string "MR. BRINEY retired as a SAILOR,\n"
.string "but I still see him out on the sea\l" .string "but I still see him out on the sea\l"
.string "with his pet PEEKO sometimes.\p" .string "with his pet PEEKO sometimes.\p"
.string "He must love the sea still.$" .string "He must love the sea still.$"
gText_May_Pokenav_2B3B3F:: @ 2B3B3F MatchCall_Text_May2:: @ 2B3B3F
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "You know how little towns like\n" .string "You know how little towns like\n"
.string "PETALBURG and DEWFORD have GYMS?\p" .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 "When they finally build a GYM there,\n"
.string "I should apply to be the LEADER.$" .string "I should apply to be the LEADER.$"
gText_May_Pokenav_2B3C13:: @ 2B3C13 MatchCall_Text_May3:: @ 2B3C13
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "Do you remember a man named\n" .string "Do you remember a man named\n"
.string "the CUTTER in RUSTBORO?\l" .string "the CUTTER in RUSTBORO?\l"
@@ -2363,13 +2363,13 @@ gText_May_Pokenav_2B3C13:: @ 2B3C13
.string "… … … … … …\p" .string "… … … … … …\p"
.string "The ROCK SMASH GUY!$" .string "The ROCK SMASH GUY!$"
gText_May_Pokenav_2B3CF3:: @ 2B3CF3 MatchCall_Text_May4:: @ 2B3CF3
.string "MAY: {PLAYER}{KUN}?\p" .string "MAY: {PLAYER}{KUN}?\p"
.string "RUSTURF TUNNEL…\n" .string "RUSTURF TUNNEL…\n"
.string "They named it that because it\l" .string "They named it that because it\l"
.string "joins RUSTBORO and VERDANTURF.$" .string "joins RUSTBORO and VERDANTURF.$"
gText_May_Pokenav_2B3D4B:: @ 2B3D4B MatchCall_Text_May5:: @ 2B3D4B
.string "MAY: {PLAYER}{KUN}, how are you?\p" .string "MAY: {PLAYER}{KUN}, how are you?\p"
.string "I'm out on ROUTE 111 now.\p" .string "I'm out on ROUTE 111 now.\p"
.string "I'm going to get a rest at an old\n" .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 "She lives just north of\n"
.string "the desert.$" .string "the desert.$"
gText_May_Pokenav_2B3DD1:: @ 2B3DD1 MatchCall_Text_May6:: @ 2B3DD1
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "Did you know about the MIRAGE\n" .string "Did you know about the MIRAGE\n"
.string "TOWER in the desert?\p" .string "TOWER in the desert?\p"
@@ -2385,21 +2385,21 @@ gText_May_Pokenav_2B3DD1:: @ 2B3DD1
.string "to mysteriously come and go.\p" .string "to mysteriously come and go.\p"
.string "I wish I could see it.$" .string "I wish I could see it.$"
gText_May_Pokenav_2B3E69:: @ 2B3E69 MatchCall_Text_May7:: @ 2B3E69
.string "MAY: {PLAYER}{KUN}, yahoo!\n" .string "MAY: {PLAYER}{KUN}, yahoo!\n"
.string "I'm on ROUTE 119 now.\p" .string "I'm on ROUTE 119 now.\p"
.string "There's a big river here, and\n" .string "There's a big river here, and\n"
.string "it often rains.\p" .string "it often rains.\p"
.string "I got soaked!$" .string "I got soaked!$"
gText_May_Pokenav_2B3ECD:: @ 2B3ECD MatchCall_Text_May8:: @ 2B3ECD
.string "MAY: {PLAYER}{KUN}, hi.\p" .string "MAY: {PLAYER}{KUN}, hi.\p"
.string "MT. PYRE is a memorial to POKéMON\n" .string "MT. PYRE is a memorial to POKéMON\n"
.string "whose lives have ended.\p" .string "whose lives have ended.\p"
.string "Maybe as a result, it's infested\n" .string "Maybe as a result, it's infested\n"
.string "with many GHOST-type POKéMON!$" .string "with many GHOST-type POKéMON!$"
gText_May_Pokenav_2B3F2B:: @ 2B3F2B MatchCall_Text_May9:: @ 2B3F2B
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "I was thinking of going to the hot\n" .string "I was thinking of going to the hot\n"
.string "spring in LAVARIDGE.\p" .string "spring in LAVARIDGE.\p"
@@ -2407,14 +2407,14 @@ gText_May_Pokenav_2B3F2B:: @ 2B3F2B
.string "PASS, I ran into some bad-looking\l" .string "PASS, I ran into some bad-looking\l"
.string "characters. The mood was ugly!$" .string "characters. The mood was ugly!$"
gText_May_Pokenav_2B3FFB:: @ 2B3FFB MatchCall_Text_May10:: @ 2B3FFB
.string "MAY: Hi, {PLAYER}{KUN}!\n" .string "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Did you see the news?\p" .string "Did you see the news?\p"
.string "They say CAPT. STERN discovered\n" .string "They say CAPT. STERN discovered\n"
.string "the SEAFLOOR CAVERN while on his\l" .string "the SEAFLOOR CAVERN while on his\l"
.string "submarine expedition.$" .string "submarine expedition.$"
gText_May_Pokenav_2B402B:: @ 2B402B MatchCall_Text_May11:: @ 2B402B
.string "MAY: Hi, {PLAYER}{KUN}!\n" .string "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Don't you think it's neat?\p" .string "Don't you think it's neat?\p"
.string "Even if you don't have a boat,\n" .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 "There's a POKéMON move that lets\n"
.string "you go to the bottom of the sea.$" .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 "MAY: Hi, {PLAYER}{KUN}!\n"
.string "Hope things are okay!\p" .string "Hope things are okay!\p"
.string "Have you been on the sea and\n" .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 "When you get to the other side,\n"
.string "come up to the surface. Easy!$" .string "come up to the surface. Easy!$"
gText_May_Pokenav_2B4228:: @ 2B4228 MatchCall_Text_May13:: @ 2B4228
.string "MAY: Hi, {PLAYER}{KUN}!\p" .string "MAY: Hi, {PLAYER}{KUN}!\p"
.string "How's it going?\n" .string "How's it going?\n"
.string "Are you filling your POKéDEX?\p" .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 "And there are three of them!\p"
.string "I would love to see even one…$" .string "I would love to see even one…$"
gText_May_Pokenav_2B42E0:: @ 2B42E0 MatchCall_Text_May14:: @ 2B42E0
.string "MAY: {PLAYER}{KUN}!\n" .string "MAY: {PLAYER}{KUN}!\n"
.string "I heard the rumors!\p" .string "I heard the rumors!\p"
.string "You beat the SOOTOPOLIS GYM\n" .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 "That means you don't have far\n"
.string "to go, do you?$" .string "to go, do you?$"
gText_May_Pokenav_2B4350:: @ 2B4350 MatchCall_Text_May15:: @ 2B4350
.string "MAY: There isn't a single TRAINER\n" .string "MAY: There isn't a single TRAINER\n"
.string "left in HOENN who doesn't know who\l" .string "left in HOENN who doesn't know who\l"
.string "you are, {PLAYER}{KUN}!\p" .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 "with you, {PLAYER}{KUN}, they're all\l"
.string "surprised!$" .string "surprised!$"
gText_Brendan_Pokenav_2B43EF:: @ 2B43EF MatchCall_Text_Brendan1:: @ 2B43EF
.string "BRENDAN: Hey, {PLAYER}!\p" .string "BRENDAN: Hey, {PLAYER}!\p"
.string "MR. BRINEY retired as a SAILOR,\n" .string "MR. BRINEY retired as a SAILOR,\n"
.string "but I still see him out on the sea\l" .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 "I guess he must love\n"
.string "the sea still.$" .string "the sea still.$"
gText_Brendan_Pokenav_2B4486:: @ 2B4486 MatchCall_Text_Brendan2:: @ 2B4486
.string "BRENDAN: Hey, {PLAYER}!\p" .string "BRENDAN: Hey, {PLAYER}!\p"
.string "I don't get how little towns like\n" .string "I don't get how little towns like\n"
.string "PETALBURG and DEWFORD have GYMS.\p" .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 "When they finally build a GYM there,\n"
.string "I should apply to be the LEADER.$" .string "I should apply to be the LEADER.$"
gText_Brendan_Pokenav_2B4560:: @ 2B4560 MatchCall_Text_Brendan3:: @ 2B4560
.string "BRENDAN: Yo, {PLAYER}!\p" .string "BRENDAN: Yo, {PLAYER}!\p"
.string "Do you remember a guy named\n" .string "Do you remember a guy named\n"
.string "the CUTTER in RUSTBORO?\l" .string "the CUTTER in RUSTBORO?\l"
@@ -2489,14 +2489,14 @@ gText_Brendan_Pokenav_2B4560:: @ 2B4560
.string "… … … … … …\p" .string "… … … … … …\p"
.string "The ROCK SMASH GUY!$" .string "The ROCK SMASH GUY!$"
gText_Brendan_Pokenav_2B463F:: @ 2B463F MatchCall_Text_Brendan4:: @ 2B463F
.string "BRENDAN: This voice… {PLAYER}?\p" .string "BRENDAN: This voice… {PLAYER}?\p"
.string "They gave RUSTURF TUNNEL its name\n" .string "They gave RUSTURF TUNNEL its name\n"
.string "because it joins RUSTBORO and\l" .string "because it joins RUSTBORO and\l"
.string "VERDANTURF.\p" .string "VERDANTURF.\p"
.string "Did you know that?$" .string "Did you know that?$"
gText_Brendan_Pokenav_2B46B7:: @ 2B46B7 MatchCall_Text_Brendan5:: @ 2B46B7
.string "BRENDAN: {PLAYER}, what's up?\p" .string "BRENDAN: {PLAYER}, what's up?\p"
.string "Hey, I'm out on ROUTE 111 now.\p" .string "Hey, I'm out on ROUTE 111 now.\p"
.string "I'm going to rest up at an old\n" .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 "If you're in the area, you should\n"
.string "visit her, too.$" .string "visit her, too.$"
gText_Brendan_Pokenav_2B4761:: @ 2B4761 MatchCall_Text_Brendan6:: @ 2B4761
.string "BRENDAN: Hey, {PLAYER}!\p" .string "BRENDAN: Hey, {PLAYER}!\p"
.string "Did you know about the MIRAGE\n" .string "Did you know about the MIRAGE\n"
.string "TOWER in the desert?\p" .string "TOWER in the desert?\p"
@@ -2512,21 +2512,21 @@ gText_Brendan_Pokenav_2B4761:: @ 2B4761
.string "seen only sometimes.\p" .string "seen only sometimes.\p"
.string "I'd like to see that!$" .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 "BRENDAN: Who's this? Oh, {PLAYER}?\n"
.string "Guess what? I'm on ROUTE 119 now.\p" .string "Guess what? I'm on ROUTE 119 now.\p"
.string "There's a big river here, and\n" .string "There's a big river here, and\n"
.string "it rains all the time.\p" .string "it rains all the time.\p"
.string "I got soaked to the bone!$" .string "I got soaked to the bone!$"
gText_Brendan_Pokenav_2B4882:: @ 2B4882 MatchCall_Text_Brendan8:: @ 2B4882
.string "BRENDAN: {PLAYER}!\p" .string "BRENDAN: {PLAYER}!\p"
.string "MT. PYRE is a memorial to POKéMON\n" .string "MT. PYRE is a memorial to POKéMON\n"
.string "whose lives have ended.\p" .string "whose lives have ended.\p"
.string "That's probably why it's infested\n" .string "That's probably why it's infested\n"
.string "with many GHOST-type POKéMON!$" .string "with many GHOST-type POKéMON!$"
gText_Brendan_Pokenav_2B4909:: @ 2B4909 MatchCall_Text_Brendan9:: @ 2B4909
.string "BRENDAN: Hey there, {PLAYER}.\p" .string "BRENDAN: Hey there, {PLAYER}.\p"
.string "I was on my way back to the hot\n" .string "I was on my way back to the hot\n"
.string "spring in LAVARIDGE.\p" .string "spring in LAVARIDGE.\p"
@@ -2535,14 +2535,14 @@ gText_Brendan_Pokenav_2B4909:: @ 2B4909
.string "Those creeps…\n" .string "Those creeps…\n"
.string "I think they were TEAM MAGMA.$" .string "I think they were TEAM MAGMA.$"
gText_Brendan_Pokenav_2B49C4:: @ 2B49C4 MatchCall_Text_Brendan10:: @ 2B49C4
.string "BRENDAN: Hi, {PLAYER}!\n" .string "BRENDAN: Hi, {PLAYER}!\n"
.string "Did you catch the news?\p" .string "Did you catch the news?\p"
.string "They say CAPT. STERN discovered\n" .string "They say CAPT. STERN discovered\n"
.string "the SEAFLOOR CAVERN while on his\l" .string "the SEAFLOOR CAVERN while on his\l"
.string "submarine expedition.$" .string "submarine expedition.$"
gText_Brendan_Pokenav_2B4A44:: @ 2B4A44 MatchCall_Text_Brendan11:: @ 2B4A44
.string "BRENDAN: Hey there, {PLAYER}!\n" .string "BRENDAN: Hey there, {PLAYER}!\n"
.string "Don't you think it's awesome?\p" .string "Don't you think it's awesome?\p"
.string "Even if you don't have a boat,\n" .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 "travel to the bottom of the sea.\p"
.string "Man, POKéMON can do anything!$" .string "Man, POKéMON can do anything!$"
gText_Brendan_Pokenav_2B4B28:: @ 2B4B28 MatchCall_Text_Brendan12:: @ 2B4B28
.string "BRENDAN: Howdy, {PLAYER}!\n" .string "BRENDAN: Howdy, {PLAYER}!\n"
.string "How are you holding up?\p" .string "How are you holding up?\p"
.string "Ever found your way to the other\n" .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 "When you get to the other side,\n"
.string "come up to the surface. Simple!$" .string "come up to the surface. Simple!$"
gText_Brendan_Pokenav_2B4C15:: @ 2B4C15 MatchCall_Text_Brendan13:: @ 2B4C15
.string "BRENDAN: Hey there, {PLAYER}!\p" .string "BRENDAN: Hey there, {PLAYER}!\p"
.string "How's it going? Filling up your\n" .string "How's it going? Filling up your\n"
.string "POKéDEX successfully?\p" .string "POKéDEX successfully?\p"
@@ -2571,14 +2571,14 @@ gText_Brendan_Pokenav_2B4C15:: @ 2B4C15
.string "And not just one--three!\p" .string "And not just one--three!\p"
.string "I'd love to catch even one…$" .string "I'd love to catch even one…$"
gText_Brendan_Pokenav_2B4CD8:: @ 2B4CD8 MatchCall_Text_Brendan14:: @ 2B4CD8
.string "BRENDAN: {PLAYER}!\n" .string "BRENDAN: {PLAYER}!\n"
.string "I heard the rumors!\p" .string "I heard the rumors!\p"
.string "You beat the SOOTOPOLIS GYM\n" .string "You beat the SOOTOPOLIS GYM\n"
.string "LEADER? Awesome!\p" .string "LEADER? Awesome!\p"
.string "You're getting awful close now!$" .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 "BRENDAN: There isn't a TRAINER in\n"
.string "all of HOENN who doesn't know who\l" .string "all of HOENN who doesn't know who\l"
.string "you are, {PLAYER}!\p" .string "you are, {PLAYER}!\p"
@@ -2586,19 +2586,19 @@ gText_Brendan_Pokenav_2B4D46:: @ 2B4D46
.string "with you, {PLAYER}, they get pretty\l" .string "with you, {PLAYER}, they get pretty\l"
.string "envious!$" .string "envious!$"
gText_Wally_Pokenav_2B4DE2:: @ 2B4DE2 MatchCall_Text_Wally1:: @ 2B4DE2
.string "WALLY: Oh, {PLAYER}!\p" .string "WALLY: Oh, {PLAYER}!\p"
.string "I've been getting healthier and\n" .string "I've been getting healthier and\n"
.string "more physically fit.\p" .string "more physically fit.\p"
.string "I hope I can become a TRAINER like\n" .string "I hope I can become a TRAINER like\n"
.string "you soon, {PLAYER}!$" .string "you soon, {PLAYER}!$"
gText_Wally_Pokenav_2B4E57:: @ 2B4E57 MatchCall_Text_Wally2:: @ 2B4E57
.string "WALLY: {PLAYER}, hello!\p" .string "WALLY: {PLAYER}, hello!\p"
.string "After RUSTURF TUNNEL went\n" .string "After RUSTURF TUNNEL went\n"
.string "through, WANDA's been very happy!$" .string "through, WANDA's been very happy!$"
gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5 MatchCall_Text_Wally3:: @ 2B4EA5
.string "WALLY: Oh, {PLAYER}!\p" .string "WALLY: Oh, {PLAYER}!\p"
.string "I… I left my uncle's place in\n" .string "I… I left my uncle's place in\n"
.string "VERDANTURF without telling anyone.\p" .string "VERDANTURF without telling anyone.\p"
@@ -2606,7 +2606,7 @@ gText_Wally_Pokenav_2B4EA5:: @ 2B4EA5
.string "{PLAYER}, you understand how\n" .string "{PLAYER}, you understand how\n"
.string "I feel, don't you?$" .string "I feel, don't you?$"
gText_Wally_Pokenav_2B4F41:: @ 2B4F41 MatchCall_Text_Wally4:: @ 2B4F41
.string "WALLY: {PLAYER}?\n" .string "WALLY: {PLAYER}?\n"
.string "It's me, WALLY!\p" .string "It's me, WALLY!\p"
.string "The world of TRAINERS is amazing!\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 "It's as if everyone's getting\n"
.string "connected through POKéMON!$" .string "connected through POKéMON!$"
gText_Wally_Pokenav_2B4FF3:: @ 2B4FF3 MatchCall_Text_Wally5:: @ 2B4FF3
.string "WALLY: {PLAYER}? It's awesome!\n" .string "WALLY: {PLAYER}? It's awesome!\n"
.string "That RALTS we caught together?\l" .string "That RALTS we caught together?\l"
.string "It evolved, {PLAYER}!\p" .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 "After all, it's the POKéMON that\n"
.string "should be praised!$" .string "should be praised!$"
gText_Wally_Pokenav_2B50B1:: @ 2B50B1 MatchCall_Text_Wally6:: @ 2B50B1
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … …\p" .string "… … … … … …\p"
.string "WALLY appears to be out of\n" .string "WALLY appears to be out of\n"
.string "the POKéNAV's service area…$" .string "the POKéNAV's service area…$"
gText_Wally_Pokenav_2B5100:: @ 2B5100 MatchCall_Text_Wally7:: @ 2B5100
.string "WALLY: Oh, {PLAYER}!\p" .string "WALLY: Oh, {PLAYER}!\p"
.string "Before I met you, I hardly ever\n" .string "Before I met you, I hardly ever\n"
.string "left my house…\p" .string "left my house…\p"
@@ -2640,7 +2640,7 @@ gText_Wally_Pokenav_2B5100:: @ 2B5100
.string "{PLAYER}…\n" .string "{PLAYER}…\n"
.string "Thank you…$" .string "Thank you…$"
gText_Scott_Pokenav_2B5184:: @ 2B5184 MatchCall_Text_Scott1:: @ 2B5184
.string "SCOTT: Howdy, {PLAYER}{KUN}!\p" .string "SCOTT: Howdy, {PLAYER}{KUN}!\p"
.string "You know how POKéMON can be found\n" .string "You know how POKéMON can be found\n"
.string "everywhere?\p" .string "everywhere?\p"
@@ -2651,7 +2651,7 @@ gText_Scott_Pokenav_2B5184:: @ 2B5184
.string "As a result, I have to hurry\n" .string "As a result, I have to hurry\n"
.string "everywhere, too. Busy, busy!$" .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 "SCOTT: I'm on ROUTE 119 right now.\n"
.string "It's teeming with TRAINERS!\p" .string "It's teeming with TRAINERS!\p"
.string "It's also overgrown with tall grass\n" .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 "Walking around in shorts here\n"
.string "makes me all ticklish!$" .string "makes me all ticklish!$"
gText_Scott_Pokenav_2B5323:: @ 2B5323 MatchCall_Text_Scott3:: @ 2B5323
.string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p" .string "SCOTT: Hi, hi, {PLAYER}{KUN}!\p"
.string "Have you had the chance to climb\n" .string "Have you had the chance to climb\n"
.string "MT. PYRE?\p" .string "MT. PYRE?\p"
@@ -2668,7 +2668,7 @@ gText_Scott_Pokenav_2B5323:: @ 2B5323
.string "It's somewhere every TRAINER\n" .string "It's somewhere every TRAINER\n"
.string "should climb to the top of once.$" .string "should climb to the top of once.$"
gText_Scott_Pokenav_2B53DB:: @ 2B53DB MatchCall_Text_Scott4:: @ 2B53DB
.string "SCOTT: Hi, {PLAYER}{KUN}!\p" .string "SCOTT: Hi, {PLAYER}{KUN}!\p"
.string "I've been hearing about these odd\n" .string "I've been hearing about these odd\n"
.string "gangs being a nuisance.\p" .string "gangs being a nuisance.\p"
@@ -2678,7 +2678,7 @@ gText_Scott_Pokenav_2B53DB:: @ 2B53DB
.string "skilled TRAINERS among them.\p" .string "skilled TRAINERS among them.\p"
.string "…But if they're thugs…$" .string "…But if they're thugs…$"
gText_Scott_Pokenav_2B54A5:: @ 2B54A5 MatchCall_Text_Scott5:: @ 2B54A5
.string "SCOTT: Oh, hi, {PLAYER}{KUN}.\p" .string "SCOTT: Oh, hi, {PLAYER}{KUN}.\p"
.string "Might there be tough TRAINERS\n" .string "Might there be tough TRAINERS\n"
.string "at the bottom of the sea?\p" .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 "I can't swim, for one.\l"
.string "And I don't raise POKéMON…$" .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 "SCOTT: Hi, hi, {PLAYER}{KUN}!\p"
.string "You know that you can challenge\n" .string "You know that you can challenge\n"
.string "the POKéMON LEAGUE when you've\l" .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 "the POKéMON LEAGUE into the HALL\l"
.string "OF FAME!$" .string "OF FAME!$"
gText_Scott_Pokenav_2B56CA:: @ 2B56CA MatchCall_Text_Scott7:: @ 2B56CA
.string "… … … … … …\n" .string "… … … … … …\n"
.string "… … … … … …\p" .string "… … … … … …\p"
.string "SCOTT appears to be out of\n" .string "SCOTT appears to be out of\n"
.string "the POKéNAV's service area…$" .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 "DAD: In RUSTBORO, there's a man\n"
.string "that goes by the odd name of\l" .string "that goes by the odd name of\l"
.string "the CUTTER.\p" .string "the CUTTER.\p"
.string "If you're in the area, you should\n" .string "If you're in the area, you should\n"
.string "pay him a visit.$" .string "pay him a visit.$"
gText_Norman_Pokenav_2B5795:: @ 82B5795 MatchCall_Text_Norman2:: @ 82B5795
.string "DAD: Hm… Little by little, but also\n" .string "DAD: Hm… Little by little, but also\n"
.string "very surely, you're getting\l" .string "very surely, you're getting\l"
.string "tougher, {PLAYER}.\p" .string "tougher, {PLAYER}.\p"
@@ -2725,7 +2725,7 @@ gText_Norman_Pokenav_2B5795:: @ 82B5795
.string "and me…\p" .string "and me…\p"
.string "This feeling is hard to explain.$" .string "This feeling is hard to explain.$"
gText_Norman_Pokenav_2B584D:: @ 82B584D MatchCall_Text_Norman3:: @ 82B584D
.string "DAD: I see…\n" .string "DAD: I see…\n"
.string "You've collected four GYM BADGES…\p" .string "You've collected four GYM BADGES…\p"
.string "There's no avoiding it now.\n" .string "There's no avoiding it now.\n"
@@ -2733,7 +2733,7 @@ gText_Norman_Pokenav_2B584D:: @ 82B584D
.string "Come anytime.\n" .string "Come anytime.\n"
.string "We'll all be waiting for you!$" .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 "DAD: {PLAYER}! You'd better go visit\n"
.string "Mother every so often.\p" .string "Mother every so often.\p"
.string "I'm going to remain here and\n" .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 "The way of battling is deep\n"
.string "and unforgiving!$" .string "and unforgiving!$"
gText_Norman_Pokenav_2B5979:: @ 82B5979 MatchCall_Text_Norman5:: @ 82B5979
.string "DAD: Oh, hi, {PLAYER}!\p" .string "DAD: Oh, hi, {PLAYER}!\p"
.string "What's that? MAGMA EMBLEM?\n" .string "What's that? MAGMA EMBLEM?\n"
.string "I don't know what that's about.\p" .string "I don't know what that's about.\p"
.string "But with a name like that, it may\n" .string "But with a name like that, it may\n"
.string "be somehow linked to a volcano!$" .string "be somehow linked to a volcano!$"
gText_Norman_Pokenav_2B5A07:: @ 82B5A07 MatchCall_Text_Norman6:: @ 82B5A07
.string "DAD: Hiyah! Haah! Dwah!\p" .string "DAD: Hiyah! Haah! Dwah!\p"
.string "…Oh? {PLAYER}!\p" .string "…Oh? {PLAYER}!\p"
.string "You caught me right in the middle\n" .string "You caught me right in the middle\n"
.string "of a POKéMON training session!$" .string "of a POKéMON training session!$"
gText_Norman_Pokenav_2B5A69:: @ 82B5A69 MatchCall_Text_Norman7:: @ 82B5A69
.string "DAD: {PLAYER}!\p" .string "DAD: {PLAYER}!\p"
.string "Who would've thought you'd become\n" .string "Who would've thought you'd become\n"
.string "the POKéMON LEAGUE CHAMPION…\p" .string "the POKéMON LEAGUE CHAMPION…\p"
.string "Okay!\n" .string "Okay!\n"
.string "I won't be left behind!$" .string "I won't be left behind!$"
gText_Norman_Pokenav_2B5ACF:: @ 82B5ACF MatchCall_Text_Norman8:: @ 82B5ACF
.string "DAD: Hm? {PLAYER}?\n" .string "DAD: Hm? {PLAYER}?\n"
.string "What good timing!\p" .string "What good timing!\p"
.string "This time, I'm going to challenge\n" .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 "I'm waiting in the PETALBURG GYM.\n"
.string "Accept my challenge anytime!$" .string "Accept my challenge anytime!$"
gText_Norman_Pokenav_2B5B5E:: @ 82B5B5E MatchCall_Text_Norman9:: @ 82B5B5E
.string "DAD: …You amaze me, {PLAYER}.\n" .string "DAD: …You amaze me, {PLAYER}.\n"
.string "How much higher will you soar?$" .string "How much higher will you soar?$"
gText_Steven_Pokenav_2B5B95:: @ 82B5B95 MatchCall_Text_Steven1:: @ 82B5B95
.string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "Have you been to MAUVILLE\n" .string "Have you been to MAUVILLE\n"
.string "already?\p" .string "already?\p"
@@ -2784,14 +2784,14 @@ gText_Steven_Pokenav_2B5B95:: @ 82B5B95
.string "You may make a new discovery\n" .string "You may make a new discovery\n"
.string "there.$" .string "there.$"
gText_Steven_Pokenav_2B5C53:: @ 82B5C53 MatchCall_Text_Steven2:: @ 82B5C53
.string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "I've met a lot of different\n" .string "I've met a lot of different\n"
.string "TRAINERS so far.\p" .string "TRAINERS so far.\p"
.string "But you're one of a kind.\n" .string "But you're one of a kind.\n"
.string "You're not like anyone else.$" .string "You're not like anyone else.$"
gText_Steven_Pokenav_2B5CC9:: @ 82B5CC9 MatchCall_Text_Steven3:: @ 82B5CC9
.string "STEVEN: Hi, {PLAYER}{KUN}!\p" .string "STEVEN: Hi, {PLAYER}{KUN}!\p"
.string "When you're on an adventure with\n" .string "When you're on an adventure with\n"
.string "your POKéMON, what do you think?\p" .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 "Depending on how you think, your\n"
.string "adventure's significance changes.$" .string "adventure's significance changes.$"
gText_Steven_Pokenav_2B5DB4:: @ 82B5DB4 MatchCall_Text_Steven4:: @ 82B5DB4
.string "STEVEN: Hello?\n" .string "STEVEN: Hello?\n"
.string "{PLAYER}{KUN}?\p" .string "{PLAYER}{KUN}?\p"
.string "I'm involved in a spot of trouble\n" .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 "I'm sorry, but I can't talk now.\n"
.string "Bye!$" .string "Bye!$"
gText_Steven_Pokenav_2B5E26:: @ 82B5E26 MatchCall_Text_Steven5:: @ 82B5E26
.string "STEVEN: Oh!\n" .string "STEVEN: Oh!\n"
.string "{PLAYER}{KUN}!\p" .string "{PLAYER}{KUN}!\p"
.string "There's no need to talk.\n" .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 "You have to believe in yourself\n"
.string "and do what's right.$" .string "and do what's right.$"
gText_Steven_Pokenav_2B5EA2:: @ 82B5EA2 MatchCall_Text_Steven6:: @ 82B5EA2
.string "… … … … … …\p" .string "… … … … … …\p"
.string "STEVEN appears not to be getting\n" .string "STEVEN appears not to be getting\n"
.string "the call…$" .string "the call…$"
gText_Steven_Pokenav_2B5ED9:: @ 82B5ED9 MatchCall_Text_Steven7:: @ 82B5ED9
.string "STEVEN: {PLAYER}{KUN}… Congratulations\n" .string "STEVEN: {PLAYER}{KUN}… Congratulations\n"
.string "for entering the HALL OF FAME.\p" .string "for entering the HALL OF FAME.\p"
.string "… … … … … …\n" .string "… … … … … …\n"
@@ -2851,7 +2851,7 @@ MatchCall_Text_UnusedProfBirch:
.string "the POKéDEX and POKéNAV, studying\l" .string "the POKéDEX and POKéNAV, studying\l"
.string "POKéMON becomes more fun, eh?$" .string "POKéMON becomes more fun, eh?$"
gText_MrStone_Pokenav_2B60C0:: @ 82B60C0 MatchCall_Text_MrStone1:: @ 82B60C0
.string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "MR. STONE: Oh? {PLAYER}{KUN}!\p"
.string "Since you called me, the POKéNAV\n" .string "Since you called me, the POKéNAV\n"
.string "must be working properly!\p" .string "must be working properly!\p"
@@ -2866,7 +2866,7 @@ gText_MrStone_Pokenav_2B60C0:: @ 82B60C0
.string "Wahahaha!\n" .string "Wahahaha!\n"
.string "See you again!$" .string "See you again!$"
gText_MrStone_Pokenav_2B61E6:: @ 82B61E6 MatchCall_Text_MrStone2:: @ 82B61E6
.string "MR. STONE: Oh? {PLAYER}{KUN}!\p" .string "MR. STONE: Oh? {PLAYER}{KUN}!\p"
.string "What's wrong? Have you forgotten\n" .string "What's wrong? Have you forgotten\n"
.string "about that little errand of mine?\p" .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 "Now, since I am a busy PRESIDENT,\n"
.string "I have to go! Bye-bye!$" .string "I have to go! Bye-bye!$"
gText_MrStone_Pokenav_2B6302:: @ 82B6302 MatchCall_Text_MrStone3:: @ 82B6302
.string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "MR. STONE: Oh! {PLAYER}{KUN}!\p"
.string "Ah, so you've met STEVEN!\n" .string "Ah, so you've met STEVEN!\n"
.string "I'd better reward you, then!\p" .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 "come see me at my office.\p"
.string "I'll be waiting for you!$" .string "I'll be waiting for you!$"
gText_MrStone_Pokenav_2B63A0:: @ 82B63A0 MatchCall_Text_MrStone4:: @ 82B63A0
.string "MR. STONE: Oh! {PLAYER}{KUN}!\p" .string "MR. STONE: Oh! {PLAYER}{KUN}!\p"
.string "Did you know that DEVON was\n" .string "Did you know that DEVON was\n"
.string "digging the RUSTURF TUNNEL?\p" .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 "live in peace than worry about our\l"
.string "own convenience.$" .string "own convenience.$"
gText_MrStone_Pokenav_2B64A2:: @ 82B64A2 MatchCall_Text_MrStone5:: @ 82B64A2
.string "MR. STONE: Hello, hello, {PLAYER}{KUN}!\p" .string "MR. STONE: Hello, hello, {PLAYER}{KUN}!\p"
.string "I heard from someone in PETALBURG\n" .string "I heard from someone in PETALBURG\n"
.string "that you're NORMAN's child!\p" .string "that you're NORMAN's child!\p"
.string "No wonder you're such a capable\n" .string "No wonder you're such a capable\n"
.string "being!$" .string "being!$"
gText_MrStone_Pokenav_2B6526:: @ 82B6526 MatchCall_Text_MrStone6:: @ 82B6526
.string "MR. STONE: What's that?\p" .string "MR. STONE: What's that?\p"
.string "You battled your own father and\n" .string "You battled your own father and\n"
.string "defeated him?\p" .string "defeated him?\p"
@@ -2912,7 +2912,7 @@ gText_MrStone_Pokenav_2B6526:: @ 82B6526
.string "I had no idea that I befriended\n" .string "I had no idea that I befriended\n"
.string "someone so special! Wahaha!$" .string "someone so special! Wahaha!$"
gText_MrStone_Pokenav_2B65BB:: @ 82B65BB MatchCall_Text_MrStone7:: @ 82B65BB
.string "Hello!\n" .string "Hello!\n"
.string "This is DEVON CORPORATI…\l" .string "This is DEVON CORPORATI…\l"
.string "Oh, hello, {PLAYER}!\p" .string "Oh, hello, {PLAYER}!\p"
@@ -2921,21 +2921,21 @@ gText_MrStone_Pokenav_2B65BB:: @ 82B65BB
.string "Our PRESIDENT is busy, but you\n" .string "Our PRESIDENT is busy, but you\n"
.string "seem to be just as busy, {PLAYER}.$" .string "seem to be just as busy, {PLAYER}.$"
gText_MrStone_Pokenav_2B6664:: @ 82B6664 MatchCall_Text_MrStone8:: @ 82B6664
.string "…Huh? …What's that?\p" .string "…Huh? …What's that?\p"
.string "GROU… Yes? …DON?\p" .string "GROU… Yes? …DON?\p"
.string "You're breaking up…\n" .string "You're breaking up…\n"
.string "…can't hear…\p" .string "…can't hear…\p"
.string "BZZZZ…$" .string "BZZZZ…$"
gText_MrStone_Pokenav_2B66B1:: @ 82B66B1 MatchCall_Text_MrStone9:: @ 82B66B1
.string "…Huh? …What's that?\p" .string "…Huh? …What's that?\p"
.string "Seaflo… Yes? …Caver…?\p" .string "Seaflo… Yes? …Caver…?\p"
.string "You're breaking up…\n" .string "You're breaking up…\n"
.string "…can't hear…\p" .string "…can't hear…\p"
.string "BZZZZ…$" .string "BZZZZ…$"
gText_MrStone_Pokenav_2B6703:: @ 82B6703 MatchCall_Text_MrStone10:: @ 82B6703
.string "MR. STONE: {PLAYER}{KUN}! It's me!\p" .string "MR. STONE: {PLAYER}{KUN}! It's me!\p"
.string "You were apparently involved in all\n" .string "You were apparently involved in all\n"
.string "sorts of things, but I, being busy,\l" .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 "I'll always be in your corner!\n"
.string "Take care!$" .string "Take care!$"
gText_MrStone_Pokenav_2B67ED:: @ 82B67ED MatchCall_Text_MrStone11:: @ 82B67ED
.string "MR. STONE: … … … … … …\n" .string "MR. STONE: … … … … … …\n"
.string "Is this maybe {PLAYER}{KUN}?\p" .string "Is this maybe {PLAYER}{KUN}?\p"
.string "Your voice is so full of confidence,\n" .string "Your voice is so full of confidence,\n"

View File

@@ -1,6 +1,7 @@
#include "global.h" #include "global.h"
#include "string_util.h" #include "string_util.h"
#include "text.h" #include "text.h"
#include "strings.h"
EWRAM_DATA u8 gStringVar1[0x100] = {0}; EWRAM_DATA u8 gStringVar1[0x100] = {0};
EWRAM_DATA u8 gStringVar2[0x100] = {0}; EWRAM_DATA u8 gStringVar2[0x100] = {0};
@@ -24,21 +25,6 @@ static const s32 sPowersOfTen[] =
1000000000, 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 *StringCopy10(u8 *dest, const u8 *src)
{ {
u8 i; u8 i;
@@ -451,52 +437,52 @@ static const u8 *ExpandPlaceholder_StringVar3(void)
static const u8 *ExpandPlaceholder_KunChan(void) static const u8 *ExpandPlaceholder_KunChan(void)
{ {
if (gSaveBlock2Ptr->playerGender == MALE) if (gSaveBlock2Ptr->playerGender == MALE)
return gExpandedPlaceholder_Kun; return gText_ExpandedPlaceholder_Kun;
else else
return gExpandedPlaceholder_Chan; return gText_ExpandedPlaceholder_Chan;
} }
static const u8 *ExpandPlaceholder_RivalName(void) static const u8 *ExpandPlaceholder_RivalName(void)
{ {
if (gSaveBlock2Ptr->playerGender == MALE) if (gSaveBlock2Ptr->playerGender == MALE)
return gExpandedPlaceholder_May; return gText_ExpandedPlaceholder_May;
else else
return gExpandedPlaceholder_Brendan; return gText_ExpandedPlaceholder_Brendan;
} }
static const u8 *ExpandPlaceholder_Version(void) static const u8 *ExpandPlaceholder_Version(void)
{ {
return gExpandedPlaceholder_Emerald; return gText_ExpandedPlaceholder_Emerald;
} }
static const u8 *ExpandPlaceholder_Aqua(void) static const u8 *ExpandPlaceholder_Aqua(void)
{ {
return gExpandedPlaceholder_Aqua; return gText_ExpandedPlaceholder_Aqua;
} }
static const u8 *ExpandPlaceholder_Magma(void) static const u8 *ExpandPlaceholder_Magma(void)
{ {
return gExpandedPlaceholder_Magma; return gText_ExpandedPlaceholder_Magma;
} }
static const u8 *ExpandPlaceholder_Archie(void) static const u8 *ExpandPlaceholder_Archie(void)
{ {
return gExpandedPlaceholder_Archie; return gText_ExpandedPlaceholder_Archie;
} }
static const u8 *ExpandPlaceholder_Maxie(void) static const u8 *ExpandPlaceholder_Maxie(void)
{ {
return gExpandedPlaceholder_Maxie; return gText_ExpandedPlaceholder_Maxie;
} }
static const u8 *ExpandPlaceholder_Kyogre(void) static const u8 *ExpandPlaceholder_Kyogre(void)
{ {
return gExpandedPlaceholder_Kyogre; return gText_ExpandedPlaceholder_Kyogre;
} }
static const u8 *ExpandPlaceholder_Groudon(void) static const u8 *ExpandPlaceholder_Groudon(void)
{ {
return gExpandedPlaceholder_Groudon; return gText_ExpandedPlaceholder_Groudon;
} }
const u8 *GetExpandedPlaceholder(u32 id) const u8 *GetExpandedPlaceholder(u32 id)
@@ -522,7 +508,7 @@ const u8 *GetExpandedPlaceholder(u32 id)
}; };
if (id >= ARRAY_COUNT(funcs)) if (id >= ARRAY_COUNT(funcs))
return gExpandedPlaceholder_Empty; return gText_ExpandedPlaceholder_Empty;
else else
return funcs[id](); return funcs[id]();
} }

View File

@@ -4,7 +4,6 @@
#include "gym_leader_rematch.h" #include "gym_leader_rematch.h"
#define REMATCHES_COUNT 5 #define REMATCHES_COUNT 5
#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY
struct RematchTrainer struct RematchTrainer
{ {

View File

@@ -51,6 +51,7 @@
#define DECOR_MAX_PLAYERS_HOUSE 12 #define DECOR_MAX_PLAYERS_HOUSE 12
#define APPRENTICE_COUNT 4 #define APPRENTICE_COUNT 4
#define APPRENTICE_MAX_QUESTIONS 9 #define APPRENTICE_MAX_QUESTIONS 9
#define MAX_REMATCH_ENTRIES 100 // only REMATCH_TABLE_ENTRIES (78) are used
#define PYRAMID_BAG_ITEMS_COUNT 10 #define PYRAMID_BAG_ITEMS_COUNT 10
#define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode. #define HALL_FACILITIES_COUNT 9 // 7 facilities for single mode + tower double mode + tower multi mode.

View File

@@ -923,7 +923,7 @@ struct SaveBlock1
/*0x9BC*/ u16 berryBlenderRecords[3]; /*0x9BC*/ u16 berryBlenderRecords[3];
/*0x9C2*/ u8 field_9C2[6]; /*0x9C2*/ u8 field_9C2[6];
/*0x9C8*/ u16 trainerRematchStepCounter; /*0x9C8*/ u16 trainerRematchStepCounter;
/*0x9CA*/ u8 trainerRematches[100]; /*0x9CA*/ u8 trainerRematches[MAX_REMATCH_ENTRIES];
/*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT]; /*0xA30*/ struct ObjectEvent objectEvents[OBJECT_EVENTS_COUNT];
/*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT]; /*0xC70*/ struct ObjectEventTemplate objectEventTemplates[OBJECT_EVENT_TEMPLATES_COUNT];
/*0x1270*/ u8 flags[FLAGS_COUNT]; /*0x1270*/ u8 flags[FLAGS_COUNT];

View File

@@ -66,7 +66,7 @@ enum {
REMATCH_TRENT, REMATCH_TRENT,
REMATCH_SAWYER, REMATCH_SAWYER,
REMATCH_KIRA_AND_DAN, 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_ROXANNE,
REMATCH_BRAWLY, REMATCH_BRAWLY,
REMATCH_WATTSON, REMATCH_WATTSON,
@@ -75,19 +75,17 @@ enum {
REMATCH_WINONA, REMATCH_WINONA,
REMATCH_TATE_AND_LIZA, REMATCH_TATE_AND_LIZA,
REMATCH_JUAN, REMATCH_JUAN,
REMATCH_SIDNEY, // Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES.
// Entries below SIDNEY are considered part of REMATCH_ELITE_FOUR_ENTRIES.
REMATCH_SIDNEY,
REMATCH_PHOEBE, REMATCH_PHOEBE,
REMATCH_GLACIA, REMATCH_GLACIA,
REMATCH_DRAKE, REMATCH_DRAKE,
REMATCH_WALLACE, REMATCH_WALLACE,
REMATCH_TABLE_ENTRIES // The total number of rematch entries. Must be last in enum
// The total number of rematch entries. This must be the last element
// in the enum.
REMATCH_TABLE_ENTRIES
}; };
#define REMATCH_SPECIAL_TRAINER_START REMATCH_WALLY_3
#define REMATCH_ELITE_FOUR_ENTRIES REMATCH_SIDNEY
void UpdateGymLeaderRematch(void); void UpdateGymLeaderRematch(void);
#endif //GUARD_TRAINER_REMATCH_H #endif //GUARD_TRAINER_REMATCH_H

View File

@@ -15,7 +15,7 @@ void InitMatchCallCounters(void);
bool32 TryStartMatchCall(void); bool32 TryStartMatchCall(void);
bool32 IsMatchCallTaskActive(void); bool32 IsMatchCallTaskActive(void);
void StartMatchCallFromScript(u8 *message); void StartMatchCallFromScript(u8 *message);
void sub_8197080(u8 *destStr); void BufferPokedexRatingForMatchCall(u8 *destStr);
bool32 SelectMatchCallMessage(int, u8 *); bool32 SelectMatchCallMessage(int, u8 *);
void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId); void sub_8197184(u32 windowId, u32 destOffset, u32 paletteId);
void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId); void sub_81971C4(u32 windowId, u32 tileOffset, u32 paletteId);

View File

@@ -11,7 +11,36 @@ struct PokenavMonList
{ {
u8 boxId; u8 boxId;
u8 monId; 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; 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 struct PokenavSub18
@@ -31,9 +60,9 @@ struct PokenavSub18
enum enum
{ {
POKENAV_MODE_NORMAL, // Chosen from Start menu. 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_READY, // Pokenav tutorial before calling Mr. Stone
POKENAV_MODE_FORCE_CALL_2, // Set after making a call, has to exit Pokenav. POKENAV_MODE_FORCE_CALL_EXIT, // Pokenav tutorial after calling Mr. Stone
}; };
#define POKENAV_MENU_IDS_START 100000 #define POKENAV_MENU_IDS_START 100000
@@ -56,6 +85,23 @@ enum
POKENAV_MENU_E, POKENAV_MENU_E,
}; };
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 enum
{ {
MC_HEADER_MR_STONE, MC_HEADER_MR_STONE,
@@ -82,6 +128,48 @@ enum
MC_HEADER_COUNT 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 // pokenav.c
void sub_81C7694(u32); void sub_81C7694(u32);
u32 sub_81C76AC(void); u32 sub_81C76AC(void);
@@ -101,22 +189,6 @@ void SetPokenavVBlankCallback(void);
void SetVBlankCallback_(IntrCallback callback); void SetVBlankCallback_(IntrCallback callback);
// pokenav_match_call_ui.c // 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); u32 GetSelectedMatchCall(void);
bool32 sub_81C8224(void); bool32 sub_81C8224(void);
int MatchCall_MoveCursorUp(void); int MatchCall_MoveCursorUp(void);
@@ -128,23 +200,23 @@ void ToggleMatchCallVerticalArrows(bool32 shouldHide);
void sub_81C8838(void); void sub_81C8838(void);
void sub_81C877C(void); void sub_81C877C(void);
bool32 sub_81C8820(void); bool32 sub_81C8820(void);
void sub_81C87AC(s16 a0); void PrintCheckPageInfo(s16 a0);
u32 GetMatchCallListTopIndex(void); u32 GetMatchCallListTopIndex(void);
void sub_81C87F0(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); void sub_81C8234(void);
// pokenav_match_call_data.c // pokenav_match_call_data.c
bool32 MatchCall_HasCheckPage(u32 idx); bool32 MatchCall_HasCheckPage(u32 idx);
u8 MatchCallMapSecGetByIndex(u32 idx); u8 MatchCall_GetMapSec(u32 idx);
bool32 sub_81D1BF8(u32 idx); bool32 MatchCall_HasRematchId(u32 idx);
bool32 MatchCallFlagGetByIndex(u32 idx); bool32 MatchCall_GetEnabled(u32 idx);
u32 MatchCall_GetRematchTableIdx(u32 idx); u32 MatchCall_GetRematchTableIdx(u32 idx);
u32 GetTrainerIdxByRematchIdx(u32 rematchIdx); u32 GetTrainerIdxByRematchIdx(u32 rematchIdx);
int MatchCall_GetOverrideFacilityClass(u32 idx); int MatchCall_GetOverrideFacilityClass(u32 idx);
void MatchCall_GetMessage(u32 idx, u8 *dest); void MatchCall_GetMessage(u32 idx, u8 *dest);
const u8 *MatchCall_GetOverrideFlavorText(u32 idx, u32 offset); 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 // pokenav_main_menu.c
bool32 InitPokenavMainMenu(void); bool32 InitPokenavMainMenu(void);
@@ -157,8 +229,8 @@ void sub_81C7AC0(s32 a0);
bool32 sub_81C8010(void); bool32 sub_81C8010(void);
void InitBgTemplates(const struct BgTemplate *templates, int count); void InitBgTemplates(const struct BgTemplate *templates, int count);
bool32 IsPaletteFadeActive(void); bool32 IsPaletteFadeActive(void);
void sub_81C7BA4(u32 helpBarIndex); void PrintHelpBarText(u32 textId);
bool32 IsDma3ManagerBusyWithBgCopy_(void); bool32 WaitForHelpBar(void);
void sub_81C78A0(void); void sub_81C78A0(void);
bool32 MainMenuLoopedTaskIsBusy(void); bool32 MainMenuLoopedTaskIsBusy(void);
void sub_81C7FDC(void); void sub_81C7FDC(void);
@@ -184,10 +256,9 @@ bool32 PokenavCallback_Init_3(void);
u32 sub_81C941C(void); u32 sub_81C941C(void);
void sub_81C9430(void); void sub_81C9430(void);
int sub_81C9894(void); int sub_81C9894(void);
const u8 *sub_81CAF78(int index, u8 *arg1);
int sub_81C98A4(void); int sub_81C98A4(void);
int sub_81C98B4(void); int sub_81C98B4(void);
u16 sub_81C98C4(void); u16 GetHelpBarTextId(void);
// pokenav_unk_2.c // pokenav_unk_2.c
bool32 sub_81C9924(void); bool32 sub_81C9924(void);
@@ -202,27 +273,28 @@ bool32 PokenavCallback_Init_11(void);
u32 sub_81CAB24(void); u32 sub_81CAB24(void);
void sub_81CAB38(void); void sub_81CAB38(void);
int sub_81CAE28(void); int sub_81CAE28(void);
int sub_81CAE38(void); int GetNumberRegistered(void);
int sub_81CAE48(void); int sub_81CAE48(void);
struct PokenavMonList *sub_81CAE94(void); struct PokenavMatchCallEntries *sub_81CAE94(void);
u16 sub_81CAEA4(int); u16 GetMatchCallMapSec(int);
bool32 sub_81CAEBC(int index); bool32 ShouldDrawRematchPokeballIcon(int index);
int sub_81CAF04(int index); void ClearRematchPokeballIcon(u16 windowId, u32 a1);
const u8 *sub_81CAFD8(int index, int textType); int GetMatchCallTrainerPic(int index);
u16 sub_81CB01C(void); const u8 *GetMatchCallFlavorText(int index, int textType);
u16 sub_81CB02C(int arg0); const u8 *GetMatchCallMessageText(int index, u8 *arg1);
void sub_81CB050(struct PokenavMonList * arg0, u8 *str); u16 GetMatchCallOptionCursorPos(void);
u16 GetMatchCallOptionId(int arg0);
void BufferMatchCallNameAndDesc(struct PokenavMatchCallEntries * arg0, u8 *str);
u8 sub_81CB0C8(int rematchIndex); u8 sub_81CB0C8(int rematchIndex);
int sub_81CB0E4(int index); int GetIndexDeltaOfNextCheckPageDown(int index);
bool32 sub_81CAE08(int); int GetIndexDeltaOfNextCheckPageUp(int index);
int sub_81CB128(int index); bool32 IsRematchEntryRegistered(int index);
// pokenav_unk_4.c // pokenav_unk_4.c
bool32 sub_81CB260(void); bool32 sub_81CB260(void);
void sub_81CB29C(s32 index); void sub_81CB29C(s32 index);
u32 sub_81CB2CC(void); u32 sub_81CB2CC(void);
void sub_81CB2E0(void); void sub_81CB2E0(void);
void sub_81CBD48(u16 windowId, u32 a1);
// pokenav_unk_5.c // pokenav_unk_5.c
u32 PokenavCallback_Init_6(void); u32 PokenavCallback_Init_6(void);

View File

@@ -1,6 +1,22 @@
#ifndef GUARD_STRINGS_H #ifndef GUARD_STRINGS_H
#define 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_FromSpace[];
extern const u8 gText_Lv50[]; extern const u8 gText_Lv50[];
@@ -2329,6 +2345,150 @@ extern const u8 MatchCall_BattlePyramidText11[];
extern const u8 MatchCall_BattlePyramidText12[]; extern const u8 MatchCall_BattlePyramidText12[];
extern const u8 MatchCall_BattlePyramidText13[]; extern const u8 MatchCall_BattlePyramidText13[];
extern const u8 MatchCall_BattlePyramidText14[]; 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 // Contest Link
extern const u8 gText_ColorDarkGrey[]; extern const u8 gText_ColorDarkGrey[];

View File

@@ -1582,7 +1582,7 @@ static bool32 UpdateRandomTrainerRematches(const struct RematchTrainer *table, u
s32 i; s32 i;
bool32 ret = FALSE; 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)) 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) if (tableId == -1)
return FALSE; return FALSE;
if (tableId >= 100) if (tableId >= MAX_REMATCH_ENTRIES)
return FALSE; return FALSE;
if (gSaveBlock1Ptr->trainerRematches[tableId] == 0) if (gSaveBlock1Ptr->trainerRematches[tableId] == 0)
return FALSE; return FALSE;
@@ -1655,7 +1655,7 @@ static bool8 IsTrainerReadyForRematch_(const struct RematchTrainer *table, u16 t
if (tableId == -1) if (tableId == -1)
return FALSE; return FALSE;
if (tableId >= 100) if (tableId >= MAX_REMATCH_ENTRIES)
return FALSE; return FALSE;
if (gSaveBlock1Ptr->trainerRematches[tableId] == 0) if (gSaveBlock1Ptr->trainerRematches[tableId] == 0)
return FALSE; return FALSE;

View File

@@ -1,399 +1,394 @@
#define MCFLAVOR(name) {gMatchCallFlavorText_##name##_Strategy, \ const u8 gText_MatchCallAromaLady_Rose_Strategy[] = _("Becalm fighting emotions.");
gMatchCallFlavorText_##name##_Pokemon, \ const u8 gText_MatchCallAromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON.");
gMatchCallFlavorText_##name##_Intro1, \ const u8 gText_MatchCallAromaLady_Rose_Intro1[] = _("Soothing aromas make the");
gMatchCallFlavorText_##name##_Intro2} const u8 gText_MatchCallAromaLady_Rose_Intro2[] = _("body and mind healthy.");
const u8 gMatchCallFlavorText_AromaLady_Rose_Strategy[] = _("Becalm fighting emotions."); const u8 gText_MatchCallRuinManiac_Andres_Strategy[] = _("I'm not very good at this.");
const u8 gMatchCallFlavorText_AromaLady_Rose_Pokemon[] = _("Fragrant GRASS POKéMON."); const u8 gText_MatchCallRuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners.");
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro1[] = _("Soothing aromas make the"); const u8 gText_MatchCallRuinManiac_Andres_Intro1[] = _("I am searching for undersea");
const u8 gMatchCallFlavorText_AromaLady_Rose_Intro2[] = _("body and mind healthy."); const u8 gText_MatchCallRuinManiac_Andres_Intro2[] = _("ruins and relics.");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Strategy[] = _("I'm not very good at this."); const u8 gText_MatchCallRuinManiac_Dusty_Strategy[] = _("Overwhelm with power!");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Pokemon[] = _("Ruin-exploration partners."); const u8 gText_MatchCallRuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON.");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro1[] = _("I am searching for undersea"); const u8 gText_MatchCallRuinManiac_Dusty_Intro1[] = _("In search of ancient lore,");
const u8 gMatchCallFlavorText_RuinManiac_Andres_Intro2[] = _("ruins and relics."); const u8 gText_MatchCallRuinManiac_Dusty_Intro2[] = _("I travel the world.");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Strategy[] = _("Overwhelm with power!"); const u8 gText_MatchCallTuber_Lola_Strategy[] = _("I'm going to try hard!");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Pokemon[] = _("Craggy ROCK POKéMON."); const u8 gText_MatchCallTuber_Lola_Pokemon[] = _("Good swimmer POKéMON.");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro1[] = _("In search of ancient lore,"); const u8 gText_MatchCallTuber_Lola_Intro1[] = _("I wish I could swim without");
const u8 gMatchCallFlavorText_RuinManiac_Dusty_Intro2[] = _("I travel the world."); const u8 gText_MatchCallTuber_Lola_Intro2[] = _("using an inner tube.");
const u8 gMatchCallFlavorText_Tuber_Lola_Strategy[] = _("I'm going to try hard!"); const u8 gText_MatchCallTuber_Ricky_Strategy[] = _("I don't know. I'll try hard.");
const u8 gMatchCallFlavorText_Tuber_Lola_Pokemon[] = _("Good swimmer POKéMON."); const u8 gText_MatchCallTuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies.");
const u8 gMatchCallFlavorText_Tuber_Lola_Intro1[] = _("I wish I could swim without"); const u8 gText_MatchCallTuber_Ricky_Intro1[] = _("It's not like I can't swim.");
const u8 gMatchCallFlavorText_Tuber_Lola_Intro2[] = _("using an inner tube."); const u8 gText_MatchCallTuber_Ricky_Intro2[] = _("I just like my inner tube.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Strategy[] = _("I don't know. I'll try hard."); const u8 gText_MatchCallSisAndBro_LilaAndRoy_Strategy[] = _("We split our duties.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Pokemon[] = _("WATER POKéMON are buddies."); const u8 gText_MatchCallSisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON.");
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro1[] = _("It's not like I can't swim."); const u8 gText_MatchCallSisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together");
const u8 gMatchCallFlavorText_Tuber_Ricky_Intro2[] = _("I just like my inner tube."); const u8 gText_MatchCallSisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother.");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Strategy[] = _("We split our duties."); const u8 gText_MatchCallCooltrainer_Cristin_Strategy[] = _("I finish with power moves!");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Pokemon[] = _("We like friendly POKéMON."); const u8 gText_MatchCallCooltrainer_Cristin_Pokemon[] = _("A mix of different types.");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro1[] = _("We enjoy POKéMON together"); const u8 gText_MatchCallCooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate");
const u8 gMatchCallFlavorText_SisAndBro_LilaAndRoy_Intro2[] = _("as sister and brother."); const u8 gText_MatchCallCooltrainer_Cristin_Intro2[] = _("TRAINER!");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Strategy[] = _("I finish with power moves!"); const u8 gText_MatchCallCooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness.");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Pokemon[] = _("A mix of different types."); const u8 gText_MatchCallCooltrainer_Brooke_Pokemon[] = _("Balance is crucial.");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro1[] = _("I aim to become the ultimate"); const u8 gText_MatchCallCooltrainer_Brooke_Intro1[] = _("My goal is to become the");
const u8 gMatchCallFlavorText_Cooltrainer_Cristin_Intro2[] = _("TRAINER!"); const u8 gText_MatchCallCooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION.");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Strategy[] = _("Exploit the foe's weakness."); const u8 gText_MatchCallCooltrainer_Wilton_Strategy[] = _("Upset the opponent.");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Pokemon[] = _("Balance is crucial."); const u8 gText_MatchCallCooltrainer_Wilton_Pokemon[] = _("Type doesn't matter.");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro1[] = _("My goal is to become the"); const u8 gText_MatchCallCooltrainer_Wilton_Intro1[] = _("I'm a top student at the");
const u8 gMatchCallFlavorText_Cooltrainer_Brooke_Intro2[] = _("POKéMON CHAMPION."); const u8 gText_MatchCallCooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Strategy[] = _("Upset the opponent."); const u8 gText_MatchCallHexManiac_Valerie_Strategy[] = _("Slow, steady suffering.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Pokemon[] = _("Type doesn't matter."); const u8 gText_MatchCallHexManiac_Valerie_Pokemon[] = _("Scary to meet at night.");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro1[] = _("I'm a top student at the"); const u8 gText_MatchCallHexManiac_Valerie_Intro1[] = _("I see things that others");
const u8 gMatchCallFlavorText_Cooltrainer_Wilton_Intro2[] = _("TRAINER'S SCHOOL."); const u8 gText_MatchCallHexManiac_Valerie_Intro2[] = _("can't see...");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Strategy[] = _("Slow, steady suffering."); const u8 gText_MatchCallLady_Cindy_Strategy[] = _("Anything to win.");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Pokemon[] = _("Scary to meet at night."); const u8 gText_MatchCallLady_Cindy_Pokemon[] = _("Gorgeous type!");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro1[] = _("I see things that others"); const u8 gText_MatchCallLady_Cindy_Intro1[] = _("I have a pool specially for");
const u8 gMatchCallFlavorText_HexManiac_Valerie_Intro2[] = _("can't see..."); const u8 gText_MatchCallLady_Cindy_Intro2[] = _("my POKéMON at home.");
const u8 gMatchCallFlavorText_Lady_Cindy_Strategy[] = _("Anything to win."); const u8 gText_MatchCallBeauty_Thalia_Strategy[] = _("You'll fall under my spell!");
const u8 gMatchCallFlavorText_Lady_Cindy_Pokemon[] = _("Gorgeous type!"); const u8 gText_MatchCallBeauty_Thalia_Pokemon[] = _("Mature WATER type.");
const u8 gMatchCallFlavorText_Lady_Cindy_Intro1[] = _("I have a pool specially for"); const u8 gText_MatchCallBeauty_Thalia_Intro1[] = _("I dream of cruising around");
const u8 gMatchCallFlavorText_Lady_Cindy_Intro2[] = _("my POKéMON at home."); const u8 gText_MatchCallBeauty_Thalia_Intro2[] = _("the world on a luxury liner.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Strategy[] = _("You'll fall under my spell!"); const u8 gText_MatchCallBeauty_Jessica_Strategy[] = _("I'll lead you astray.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Pokemon[] = _("Mature WATER type."); const u8 gText_MatchCallBeauty_Jessica_Pokemon[] = _("Cute, of course.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro1[] = _("I dream of cruising around"); const u8 gText_MatchCallBeauty_Jessica_Intro1[] = _("I love the SAFARI ZONE.");
const u8 gMatchCallFlavorText_Beauty_Thalia_Intro2[] = _("the world on a luxury liner."); const u8 gText_MatchCallBeauty_Jessica_Intro2[] = _("I seem to end up there.");
const u8 gMatchCallFlavorText_Beauty_Jessica_Strategy[] = _("I'll lead you astray."); const u8 gText_MatchCallRichBoy_Winston_Strategy[] = _("Strategy? Who needs it?");
const u8 gMatchCallFlavorText_Beauty_Jessica_Pokemon[] = _("Cute, of course."); const u8 gText_MatchCallRichBoy_Winston_Pokemon[] = _("I spent big money on it!");
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro1[] = _("I love the SAFARI ZONE."); const u8 gText_MatchCallRichBoy_Winston_Intro1[] = _("I, being rich, sleep in a");
const u8 gMatchCallFlavorText_Beauty_Jessica_Intro2[] = _("I seem to end up there."); const u8 gText_MatchCallRichBoy_Winston_Intro2[] = _("custom POKéMON bed.");
const u8 gMatchCallFlavorText_RichBoy_Winston_Strategy[] = _("Strategy? Who needs it?"); const u8 gText_MatchCallPokeManiac_Steve_Strategy[] = _("Wrestle down with power.");
const u8 gMatchCallFlavorText_RichBoy_Winston_Pokemon[] = _("I spent big money on it!"); const u8 gText_MatchCallPokeManiac_Steve_Pokemon[] = _("Took all night to catch.");
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro1[] = _("I, being rich, sleep in a"); const u8 gText_MatchCallPokeManiac_Steve_Intro1[] = _("Big, burly, and buff");
const u8 gMatchCallFlavorText_RichBoy_Winston_Intro2[] = _("custom POKéMON bed."); const u8 gText_MatchCallPokeManiac_Steve_Intro2[] = _("POKéMON are the best...");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Strategy[] = _("Wrestle down with power."); const u8 gText_MatchCallSwimmer_Tony_Strategy[] = _("Ram at full speed!");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Pokemon[] = _("Took all night to catch."); const u8 gText_MatchCallSwimmer_Tony_Pokemon[] = _("Funky WATER type!");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro1[] = _("Big, burly, and buff"); const u8 gText_MatchCallSwimmer_Tony_Intro1[] = _("If I can't be out swimming,");
const u8 gMatchCallFlavorText_PokeManiac_Steve_Intro2[] = _("POKéMON are the best..."); const u8 gText_MatchCallSwimmer_Tony_Intro2[] = _("I'll be pumping weights.");
const u8 gMatchCallFlavorText_Swimmer_Tony_Strategy[] = _("Ram at full speed!"); const u8 gText_MatchCallBlackBelt_Nob_Strategy[] = _("Grand slam pummeling!");
const u8 gMatchCallFlavorText_Swimmer_Tony_Pokemon[] = _("Funky WATER type!"); const u8 gText_MatchCallBlackBelt_Nob_Pokemon[] = _("FIGHTING type.");
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro1[] = _("If I can't be out swimming,"); const u8 gText_MatchCallBlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust");
const u8 gMatchCallFlavorText_Swimmer_Tony_Intro2[] = _("I'll be pumping weights."); const u8 gText_MatchCallBlackBelt_Nob_Intro2[] = _("ten roof tiles!");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Strategy[] = _("Grand slam pummeling!"); const u8 gText_MatchCallBlackBelt_Koji_Strategy[] = _("Witness karate power!");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Pokemon[] = _("FIGHTING type."); const u8 gText_MatchCallBlackBelt_Koji_Pokemon[] = _("My partners in training!");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro1[] = _("Not to brag, but I can bust"); const u8 gText_MatchCallBlackBelt_Koji_Intro1[] = _("Let us discuss matters of");
const u8 gMatchCallFlavorText_BlackBelt_Nob_Intro2[] = _("ten roof tiles!"); const u8 gText_MatchCallBlackBelt_Koji_Intro2[] = _("the world with bare fists!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Strategy[] = _("Witness karate power!"); const u8 gText_MatchCallGuitarist_Fernando_Strategy[] = _("Rock to stunning sounds!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Pokemon[] = _("My partners in training!"); const u8 gText_MatchCallGuitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro1[] = _("Let us discuss matters of"); const u8 gText_MatchCallGuitarist_Fernando_Intro1[] = _("My compositions will shock");
const u8 gMatchCallFlavorText_BlackBelt_Koji_Intro2[] = _("the world with bare fists!"); const u8 gText_MatchCallGuitarist_Fernando_Intro2[] = _("you and stun you!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Strategy[] = _("Rock to stunning sounds!"); const u8 gText_MatchCallGuitarist_Dalton_Strategy[] = _("I'll electrify you!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Pokemon[] = _("Electric-and-sound combo!"); const u8 gText_MatchCallGuitarist_Dalton_Pokemon[] = _("They're ELECTRIC!");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro1[] = _("My compositions will shock"); const u8 gText_MatchCallGuitarist_Dalton_Intro1[] = _("I want to make people cry");
const u8 gMatchCallFlavorText_Guitarist_Fernando_Intro2[] = _("you and stun you!"); const u8 gText_MatchCallGuitarist_Dalton_Intro2[] = _("with songs from my heart.");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Strategy[] = _("I'll electrify you!"); const u8 gText_MatchCallKindler_Bernie_Strategy[] = _("Burn it all down!");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Pokemon[] = _("They're ELECTRIC!"); const u8 gText_MatchCallKindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON.");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro1[] = _("I want to make people cry"); const u8 gText_MatchCallKindler_Bernie_Intro1[] = _("When you light a campfire,");
const u8 gMatchCallFlavorText_Guitarist_Dalton_Intro2[] = _("with songs from my heart."); const u8 gText_MatchCallKindler_Bernie_Intro2[] = _("be sure there's some water.");
const u8 gMatchCallFlavorText_Kindler_Bernie_Strategy[] = _("Burn it all down!"); const u8 gText_MatchCallCamper_Ethan_Strategy[] = _("Hang in and be tenacious!");
const u8 gMatchCallFlavorText_Kindler_Bernie_Pokemon[] = _("Burn-inducing POKéMON."); const u8 gText_MatchCallCamper_Ethan_Pokemon[] = _("I'll raise any POKéMON.");
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro1[] = _("When you light a campfire,"); const u8 gText_MatchCallCamper_Ethan_Intro1[] = _("POKéMON raised in the wild");
const u8 gMatchCallFlavorText_Kindler_Bernie_Intro2[] = _("be sure there's some water."); const u8 gText_MatchCallCamper_Ethan_Intro2[] = _("grow strong!");
const u8 gMatchCallFlavorText_Camper_Ethan_Strategy[] = _("Hang in and be tenacious!"); const u8 gText_MatchCallOldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail.");
const u8 gMatchCallFlavorText_Camper_Ethan_Pokemon[] = _("I'll raise any POKéMON."); const u8 gText_MatchCallOldCouple_JohnAndJay_Pokemon[] = _("We've had them for years.");
const u8 gMatchCallFlavorText_Camper_Ethan_Intro1[] = _("POKéMON raised in the wild"); const u8 gText_MatchCallOldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've");
const u8 gMatchCallFlavorText_Camper_Ethan_Intro2[] = _("grow strong!"); const u8 gText_MatchCallOldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON.");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Strategy[] = _("Our love lets us prevail."); const u8 gText_MatchCallBugManiac_Jeffrey_Strategy[] = _("Attack in waves!");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Pokemon[] = _("We've had them for years."); const u8 gText_MatchCallBugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool.");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro1[] = _("Married 50 years, we've"); const u8 gText_MatchCallBugManiac_Jeffrey_Intro1[] = _("I go into the forest every");
const u8 gMatchCallFlavorText_OldCouple_JohnAndJay_Intro2[] = _("devotedly raised POKéMON."); const u8 gText_MatchCallBugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON.");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Strategy[] = _("Attack in waves!"); const u8 gText_MatchCallPsychic_Cameron_Strategy[] = _("Daze and confuse!");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Pokemon[] = _("BUG POKéMON are cool."); const u8 gText_MatchCallPsychic_Cameron_Pokemon[] = _("Ones with weird powers.");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro1[] = _("I go into the forest every"); const u8 gText_MatchCallPsychic_Cameron_Intro1[] = _("I can see through exactly");
const u8 gMatchCallFlavorText_BugManiac_Jeffrey_Intro2[] = _("day to catch BUG POKéMON."); const u8 gText_MatchCallPsychic_Cameron_Intro2[] = _("what you're thinking!");
const u8 gMatchCallFlavorText_Psychic_Cameron_Strategy[] = _("Daze and confuse!"); const u8 gText_MatchCallPsychic_Jacki_Strategy[] = _("Battle at full power.");
const u8 gMatchCallFlavorText_Psychic_Cameron_Pokemon[] = _("Ones with weird powers."); const u8 gText_MatchCallPsychic_Jacki_Pokemon[] = _("POKéMON of many mysteries.");
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro1[] = _("I can see through exactly"); const u8 gText_MatchCallPsychic_Jacki_Intro1[] = _("When we spoke, I was really");
const u8 gMatchCallFlavorText_Psychic_Cameron_Intro2[] = _("what you're thinking!"); const u8 gText_MatchCallPsychic_Jacki_Intro2[] = _("using telepathy.");
const u8 gMatchCallFlavorText_Psychic_Jacki_Strategy[] = _("Battle at full power."); const u8 gText_MatchCallGentleman_Walter_Strategy[] = _("Calm and collected.");
const u8 gMatchCallFlavorText_Psychic_Jacki_Pokemon[] = _("POKéMON of many mysteries."); const u8 gText_MatchCallGentleman_Walter_Pokemon[] = _("POKéMON of distinction.");
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro1[] = _("When we spoke, I was really"); const u8 gText_MatchCallGentleman_Walter_Intro1[] = _("We enjoy a spot of tea");
const u8 gMatchCallFlavorText_Psychic_Jacki_Intro2[] = _("using telepathy."); const u8 gText_MatchCallGentleman_Walter_Intro2[] = _("every day. It's imported.");
const u8 gMatchCallFlavorText_Gentleman_Walter_Strategy[] = _("Calm and collected."); const u8 gText_MatchCallSchoolKid_Karen_Strategy[] = _("I use my head to battle.");
const u8 gMatchCallFlavorText_Gentleman_Walter_Pokemon[] = _("POKéMON of distinction."); const u8 gText_MatchCallSchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!");
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro1[] = _("We enjoy a spot of tea"); const u8 gText_MatchCallSchoolKid_Karen_Intro1[] = _("My daddy gives me spending");
const u8 gMatchCallFlavorText_Gentleman_Walter_Intro2[] = _("every day. It's imported."); const u8 gText_MatchCallSchoolKid_Karen_Intro2[] = _("money if I ace a test.");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Strategy[] = _("I use my head to battle."); const u8 gText_MatchCallSchoolKid_Jerry_Strategy[] = _("My knowledge rules!");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Pokemon[] = _("I love any kind of POKéMON!"); const u8 gText_MatchCallSchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro1[] = _("My daddy gives me spending"); const u8 gText_MatchCallSchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON");
const u8 gMatchCallFlavorText_SchoolKid_Karen_Intro2[] = _("money if I ace a test."); const u8 gText_MatchCallSchoolKid_Jerry_Intro2[] = _("researcher in the future.");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Strategy[] = _("My knowledge rules!"); const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first.");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Pokemon[] = _("Any smart POKéMON!"); const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like.");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro1[] = _("I want to be a POKéMON"); const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior");
const u8 gMatchCallFlavorText_SchoolKid_Jerry_Intro2[] = _("researcher in the future."); const u8 gText_MatchCallSrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Strategy[] = _("We talk it over first."); const u8 gText_MatchCallPokefan_Isabel_Strategy[] = _("Go for it, my dears!");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Pokemon[] = _("POKéMON that we both like."); const u8 gText_MatchCallPokefan_Isabel_Pokemon[] = _("I have no likes or dislikes.");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro1[] = _("We're senior and junior"); const u8 gText_MatchCallPokefan_Isabel_Intro1[] = _("While out shopping for");
const u8 gMatchCallFlavorText_SrAndJr_AnnaAndMeg_Intro2[] = _("students into POKéMON!"); const u8 gText_MatchCallPokefan_Isabel_Intro2[] = _("supper, I battle too.");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Strategy[] = _("Go for it, my dears!"); const u8 gText_MatchCallPokefan_Miguel_Strategy[] = _("I battle with love!");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Pokemon[] = _("I have no likes or dislikes."); const u8 gText_MatchCallPokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro1[] = _("While out shopping for"); const u8 gText_MatchCallPokefan_Miguel_Intro1[] = _("It's important to build");
const u8 gMatchCallFlavorText_Pokefan_Isabel_Intro2[] = _("supper, I battle too."); const u8 gText_MatchCallPokefan_Miguel_Intro2[] = _("trust with your POKéMON.");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Strategy[] = _("I battle with love!"); const u8 gText_MatchCallExpert_Timothy_Strategy[] = _("I see through your moves!");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Pokemon[] = _("A POKéMON raised with love!"); const u8 gText_MatchCallExpert_Timothy_Pokemon[] = _("The essence of FIGHTING.");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro1[] = _("It's important to build"); const u8 gText_MatchCallExpert_Timothy_Intro1[] = _("I'm not ready to give way");
const u8 gMatchCallFlavorText_Pokefan_Miguel_Intro2[] = _("trust with your POKéMON."); const u8 gText_MatchCallExpert_Timothy_Intro2[] = _("to the young yet!");
const u8 gMatchCallFlavorText_Expert_Timothy_Strategy[] = _("I see through your moves!"); const u8 gText_MatchCallExpert_Shelby_Strategy[] = _("Attack while defending.");
const u8 gMatchCallFlavorText_Expert_Timothy_Pokemon[] = _("The essence of FIGHTING."); const u8 gText_MatchCallExpert_Shelby_Pokemon[] = _("The FIGHTING type.");
const u8 gMatchCallFlavorText_Expert_Timothy_Intro1[] = _("I'm not ready to give way"); const u8 gText_MatchCallExpert_Shelby_Intro1[] = _("Being old, I have my own");
const u8 gMatchCallFlavorText_Expert_Timothy_Intro2[] = _("to the young yet!"); const u8 gText_MatchCallExpert_Shelby_Intro2[] = _("style of battling.");
const u8 gMatchCallFlavorText_Expert_Shelby_Strategy[] = _("Attack while defending."); const u8 gText_MatchCallYoungster_Calvin_Strategy[] = _("I do what I can.");
const u8 gMatchCallFlavorText_Expert_Shelby_Pokemon[] = _("The FIGHTING type."); const u8 gText_MatchCallYoungster_Calvin_Pokemon[] = _("I use different types.");
const u8 gMatchCallFlavorText_Expert_Shelby_Intro1[] = _("Being old, I have my own"); const u8 gText_MatchCallYoungster_Calvin_Intro1[] = _("I'm going to keep working");
const u8 gMatchCallFlavorText_Expert_Shelby_Intro2[] = _("style of battling."); const u8 gText_MatchCallYoungster_Calvin_Intro2[] = _("until I beat a GYM LEADER.");
const u8 gMatchCallFlavorText_Youngster_Calvin_Strategy[] = _("I do what I can."); const u8 gText_MatchCallFisherman_Elliot_Strategy[] = _("I battle patiently.");
const u8 gMatchCallFlavorText_Youngster_Calvin_Pokemon[] = _("I use different types."); const u8 gText_MatchCallFisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!");
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro1[] = _("I'm going to keep working"); const u8 gText_MatchCallFisherman_Elliot_Intro1[] = _("I'm the world's only guy to");
const u8 gMatchCallFlavorText_Youngster_Calvin_Intro2[] = _("until I beat a GYM LEADER."); const u8 gText_MatchCallFisherman_Elliot_Intro2[] = _("catch a huge POKéMON!");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Strategy[] = _("I battle patiently."); const u8 gText_MatchCallTriathlete_Isaiah_Strategy[] = _("Exploit the environment!");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Pokemon[] = _("WATER POKéMON to battle!"); const u8 gText_MatchCallTriathlete_Isaiah_Pokemon[] = _("All hail the WATER type!");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro1[] = _("I'm the world's only guy to"); const u8 gText_MatchCallTriathlete_Isaiah_Intro1[] = _("I won't be beaten by some");
const u8 gMatchCallFlavorText_Fisherman_Elliot_Intro2[] = _("catch a huge POKéMON!"); const u8 gText_MatchCallTriathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Strategy[] = _("Exploit the environment!"); const u8 gText_MatchCallTriathlete_Maria_Strategy[] = _("Speed above all!");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Pokemon[] = _("All hail the WATER type!"); const u8 gText_MatchCallTriathlete_Maria_Pokemon[] = _("I use a speedy POKéMON.");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro1[] = _("I won't be beaten by some"); const u8 gText_MatchCallTriathlete_Maria_Intro1[] = _("A marathon is a challenge");
const u8 gMatchCallFlavorText_Triathlete_Isaiah_Intro2[] = _("beach bum SWIMMER!"); const u8 gText_MatchCallTriathlete_Maria_Intro2[] = _("against your own self.");
const u8 gMatchCallFlavorText_Triathlete_Maria_Strategy[] = _("Speed above all!"); const u8 gText_MatchCallTriathlete_Abigail_Strategy[] = _("Defense is crucial.");
const u8 gMatchCallFlavorText_Triathlete_Maria_Pokemon[] = _("I use a speedy POKéMON."); const u8 gText_MatchCallTriathlete_Abigail_Pokemon[] = _("My POKéMON is solid.");
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro1[] = _("A marathon is a challenge"); const u8 gText_MatchCallTriathlete_Abigail_Intro1[] = _("I started this for dieting,");
const u8 gMatchCallFlavorText_Triathlete_Maria_Intro2[] = _("against your own self."); const u8 gText_MatchCallTriathlete_Abigail_Intro2[] = _("but I got right into it.");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Strategy[] = _("Defense is crucial."); const u8 gText_MatchCallTriathlete_Dylan_Strategy[] = _("Strike before stricken!");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Pokemon[] = _("My POKéMON is solid."); const u8 gText_MatchCallTriathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro1[] = _("I started this for dieting,"); const u8 gText_MatchCallTriathlete_Dylan_Intro1[] = _("If you ran and ran, you'd");
const u8 gMatchCallFlavorText_Triathlete_Abigail_Intro2[] = _("but I got right into it."); const u8 gText_MatchCallTriathlete_Dylan_Intro2[] = _("become one with the wind.");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Strategy[] = _("Strike before stricken!"); const u8 gText_MatchCallTriathlete_Katelyn_Strategy[] = _("All-out offensive!");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Pokemon[] = _("A fast-running POKéMON!"); const u8 gText_MatchCallTriathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro1[] = _("If you ran and ran, you'd"); const u8 gText_MatchCallTriathlete_Katelyn_Intro1[] = _("I must swim over 6 miles");
const u8 gMatchCallFlavorText_Triathlete_Dylan_Intro2[] = _("become one with the wind."); const u8 gText_MatchCallTriathlete_Katelyn_Intro2[] = _("every day.");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Strategy[] = _("All-out offensive!"); const u8 gText_MatchCallTriathlete_Benjamin_Strategy[] = _("Push and push again!");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Pokemon[] = _("WATER POKéMON rule!"); const u8 gText_MatchCallTriathlete_Benjamin_Pokemon[] = _("The strength of STEEL.");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro1[] = _("I must swim over 6 miles"); const u8 gText_MatchCallTriathlete_Benjamin_Intro1[] = _("If you're sweating, get");
const u8 gMatchCallFlavorText_Triathlete_Katelyn_Intro2[] = _("every day."); const u8 gText_MatchCallTriathlete_Benjamin_Intro2[] = _("fluids into you regularly.");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Strategy[] = _("Push and push again!"); const u8 gText_MatchCallTriathlete_Pablo_Strategy[] = _("Draw the power of WATER.");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Pokemon[] = _("The strength of STEEL."); const u8 gText_MatchCallTriathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON.");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro1[] = _("If you're sweating, get"); const u8 gText_MatchCallTriathlete_Pablo_Intro1[] = _("Training POKéMON is good,");
const u8 gMatchCallFlavorText_Triathlete_Benjamin_Intro2[] = _("fluids into you regularly."); const u8 gText_MatchCallTriathlete_Pablo_Intro2[] = _("but don't neglect yourself.");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Strategy[] = _("Draw the power of WATER."); const u8 gText_MatchCallDragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Pokemon[] = _("Toughened WATER POKéMON."); const u8 gText_MatchCallDragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro1[] = _("Training POKéMON is good,"); const u8 gText_MatchCallDragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the");
const u8 gMatchCallFlavorText_Triathlete_Pablo_Intro2[] = _("but don't neglect yourself."); const u8 gText_MatchCallDragonTamer_Nicolas_Intro2[] = _("strongest one day!");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Strategy[] = _("It's about POKéMON power!"); const u8 gText_MatchCallBirdKeeper_Robert_Strategy[] = _("I'll show you my technique!");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Pokemon[] = _("See the power of DRAGONS!"); const u8 gText_MatchCallBirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS.");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro1[] = _("I'll become legendary as the"); const u8 gText_MatchCallBirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my");
const u8 gMatchCallFlavorText_DragonTamer_Nicolas_Intro2[] = _("strongest one day!"); const u8 gText_MatchCallBirdKeeper_Robert_Intro2[] = _("love to that girl!");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Strategy[] = _("I'll show you my technique!"); const u8 gText_MatchCallNinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Pokemon[] = _("Elegantly wheeling BIRDS."); const u8 gText_MatchCallNinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON.");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro1[] = _("My BIRD POKéMON, deliver my"); const u8 gText_MatchCallNinjaBoy_Lao_Intro1[] = _("I undertake training so");
const u8 gMatchCallFlavorText_BirdKeeper_Robert_Intro2[] = _("love to that girl!"); const u8 gText_MatchCallNinjaBoy_Lao_Intro2[] = _("that I may become a ninja.");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Strategy[] = _("You'll suffer from poison!"); const u8 gText_MatchCallBattleGirl_Cyndy_Strategy[] = _("The first strike wins!");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Pokemon[] = _("Poisonous POKéMON."); const u8 gText_MatchCallBattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type.");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro1[] = _("I undertake training so"); const u8 gText_MatchCallBattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,");
const u8 gMatchCallFlavorText_NinjaBoy_Lao_Intro2[] = _("that I may become a ninja."); const u8 gText_MatchCallBattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Strategy[] = _("The first strike wins!"); const u8 gText_MatchCallParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Pokemon[] = _("Speedy FIGHTING type."); const u8 gText_MatchCallParasolLady_Madeline_Pokemon[] = _("I'll raise anything.");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro1[] = _("If my POKéMON lose,"); const u8 gText_MatchCallParasolLady_Madeline_Intro1[] = _("UV rays are your skin's");
const u8 gMatchCallFlavorText_BattleGirl_Cyndy_Intro2[] = _("I'll carry on the fight!"); const u8 gText_MatchCallParasolLady_Madeline_Intro2[] = _("enemy. Get protected.");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Strategy[] = _("Go, go, my POKéMON!"); const u8 gText_MatchCallSwimmer_Jenny_Strategy[] = _("No mercy!");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Pokemon[] = _("I'll raise anything."); const u8 gText_MatchCallSwimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON.");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro1[] = _("UV rays are your skin's"); const u8 gText_MatchCallSwimmer_Jenny_Intro1[] = _("I have too many fans.");
const u8 gMatchCallFlavorText_ParasolLady_Madeline_Intro2[] = _("enemy. Get protected."); const u8 gText_MatchCallSwimmer_Jenny_Intro2[] = _("I was interviewed on TV.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Strategy[] = _("No mercy!"); const u8 gText_MatchCallPicnicker_Diana_Strategy[] = _("I think about this & that.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Pokemon[] = _("Cute WATER POKéMON."); const u8 gText_MatchCallPicnicker_Diana_Pokemon[] = _("I like all POKéMON.");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro1[] = _("I have too many fans."); const u8 gText_MatchCallPicnicker_Diana_Intro1[] = _("What lies beyond that");
const u8 gMatchCallFlavorText_Swimmer_Jenny_Intro2[] = _("I was interviewed on TV."); const u8 gText_MatchCallPicnicker_Diana_Intro2[] = _("yonder hill?");
const u8 gMatchCallFlavorText_Picnicker_Diana_Strategy[] = _("I think about this & that."); const u8 gText_MatchCallTwins_AmyAndLiv_Strategy[] = _("We battle together!");
const u8 gMatchCallFlavorText_Picnicker_Diana_Pokemon[] = _("I like all POKéMON."); const u8 gText_MatchCallTwins_AmyAndLiv_Pokemon[] = _("We train together!");
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro1[] = _("What lies beyond that"); const u8 gText_MatchCallTwins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,");
const u8 gMatchCallFlavorText_Picnicker_Diana_Intro2[] = _("yonder hill?"); const u8 gText_MatchCallTwins_AmyAndLiv_Intro2[] = _("but different desserts.");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Strategy[] = _("We battle together!"); const u8 gText_MatchCallSailor_Ernest_Strategy[] = _("I force things with power!");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Pokemon[] = _("We train together!"); const u8 gText_MatchCallSailor_Ernest_Pokemon[] = _("WATER and FIGHTING types.");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro1[] = _("We like the same POKéMON,"); const u8 gText_MatchCallSailor_Ernest_Intro1[] = _("Seamen are rough spirits!");
const u8 gMatchCallFlavorText_Twins_AmyAndLiv_Intro2[] = _("but different desserts."); const u8 gText_MatchCallSailor_Ernest_Intro2[] = _("Any complaints?");
const u8 gMatchCallFlavorText_Sailor_Ernest_Strategy[] = _("I force things with power!"); const u8 gText_MatchCallSailor_Cory_Strategy[] = _("Up for a fight anytime!");
const u8 gMatchCallFlavorText_Sailor_Ernest_Pokemon[] = _("WATER and FIGHTING types."); const u8 gText_MatchCallSailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!");
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro1[] = _("Seamen are rough spirits!"); const u8 gText_MatchCallSailor_Cory_Intro1[] = _("If you want to shout loud,");
const u8 gMatchCallFlavorText_Sailor_Ernest_Intro2[] = _("Any complaints?"); const u8 gText_MatchCallSailor_Cory_Intro2[] = _("suck in air with your belly!");
const u8 gMatchCallFlavorText_Sailor_Cory_Strategy[] = _("Up for a fight anytime!"); const u8 gText_MatchCallCollector_Edwin_Strategy[] = _("Protect POKéMON from harm.");
const u8 gMatchCallFlavorText_Sailor_Cory_Pokemon[] = _("WATER POKéMON are my faves!"); const u8 gText_MatchCallCollector_Edwin_Pokemon[] = _("I love rare POKéMON.");
const u8 gMatchCallFlavorText_Sailor_Cory_Intro1[] = _("If you want to shout loud,"); const u8 gText_MatchCallCollector_Edwin_Intro1[] = _("I want to collect all the");
const u8 gMatchCallFlavorText_Sailor_Cory_Intro2[] = _("suck in air with your belly!"); const u8 gText_MatchCallCollector_Edwin_Intro2[] = _("world's rare POKéMON.");
const u8 gMatchCallFlavorText_Collector_Edwin_Strategy[] = _("Protect POKéMON from harm."); const u8 gText_MatchCallPkmnBreeder_Lydia_Strategy[] = _("I count on power.");
const u8 gMatchCallFlavorText_Collector_Edwin_Pokemon[] = _("I love rare POKéMON."); const u8 gText_MatchCallPkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children.");
const u8 gMatchCallFlavorText_Collector_Edwin_Intro1[] = _("I want to collect all the"); const u8 gText_MatchCallPkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and");
const u8 gMatchCallFlavorText_Collector_Edwin_Intro2[] = _("world's rare POKéMON."); const u8 gText_MatchCallPkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Strategy[] = _("I count on power."); const u8 gText_MatchCallPkmnBreeder_Isaac_Strategy[] = _("Full-on attack!");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Pokemon[] = _("POKéMON are my children."); const u8 gText_MatchCallPkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it.");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro1[] = _("It takes knowledge and"); const u8 gText_MatchCallPkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for");
const u8 gMatchCallFlavorText_PkmnBreeder_Lydia_Intro2[] = _("love to raise POKéMON."); const u8 gText_MatchCallPkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles.");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Strategy[] = _("Full-on attack!"); const u8 gText_MatchCallPkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care.");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Pokemon[] = _("Anything. I'll raise it."); const u8 gText_MatchCallPkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro1[] = _("I give them {POKEBLOCK}S for"); const u8 gText_MatchCallPkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you");
const u8 gMatchCallFlavorText_PkmnBreeder_Isaac_Intro2[] = _("going after CONTEST titles."); const u8 gText_MatchCallPkmnBreeder_Gabrielle_Intro2[] = _("meet with respect.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Strategy[] = _("I raise POKéMON with care."); const u8 gText_MatchCallPkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Pokemon[] = _("Fun-to-raise POKéMON."); const u8 gText_MatchCallPkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON.");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro1[] = _("Treat every POKéMON you"); const u8 gText_MatchCallPkmnRanger_Catherine_Intro1[] = _("I'm training for rescue");
const u8 gMatchCallFlavorText_PkmnBreeder_Gabrielle_Intro2[] = _("meet with respect."); const u8 gText_MatchCallPkmnRanger_Catherine_Intro2[] = _("work with my POKéMON.");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Strategy[] = _("I believe in my POKéMON."); const u8 gText_MatchCallPkmnRanger_Jackson_Strategy[] = _("Attack in waves!");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Pokemon[] = _("I like strong POKéMON."); const u8 gText_MatchCallPkmnRanger_Jackson_Pokemon[] = _("I use different types.");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro1[] = _("I'm training for rescue"); const u8 gText_MatchCallPkmnRanger_Jackson_Intro1[] = _("Those who destroy nature");
const u8 gMatchCallFlavorText_PkmnRanger_Catherine_Intro2[] = _("work with my POKéMON."); const u8 gText_MatchCallPkmnRanger_Jackson_Intro2[] = _("must never be forgiven!");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Strategy[] = _("Attack in waves!"); const u8 gText_MatchCallLass_Haley_Strategy[] = _("I'll show you some guts!");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Pokemon[] = _("I use different types."); const u8 gText_MatchCallLass_Haley_Pokemon[] = _("Cute POKéMON are my faves!");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro1[] = _("Those who destroy nature"); const u8 gText_MatchCallLass_Haley_Intro1[] = _("After a battle, I always");
const u8 gMatchCallFlavorText_PkmnRanger_Jackson_Intro2[] = _("must never be forgiven!"); const u8 gText_MatchCallLass_Haley_Intro2[] = _("bathe with my POKéMON.");
const u8 gMatchCallFlavorText_Lass_Haley_Strategy[] = _("I'll show you some guts!"); const u8 gText_MatchCallBugCatcher_James_Strategy[] = _("Lightning-fast attack!");
const u8 gMatchCallFlavorText_Lass_Haley_Pokemon[] = _("Cute POKéMON are my faves!"); const u8 gText_MatchCallBugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!");
const u8 gMatchCallFlavorText_Lass_Haley_Intro1[] = _("After a battle, I always"); const u8 gText_MatchCallBugCatcher_James_Intro1[] = _("If you want to catch BUG");
const u8 gMatchCallFlavorText_Lass_Haley_Intro2[] = _("bathe with my POKéMON."); const u8 gText_MatchCallBugCatcher_James_Intro2[] = _("POKéMON, wake up early.");
const u8 gMatchCallFlavorText_BugCatcher_James_Strategy[] = _("Lightning-fast attack!"); const u8 gText_MatchCallHiker_Trent_Strategy[] = _("I battle with power.");
const u8 gMatchCallFlavorText_BugCatcher_James_Pokemon[] = _("BUG POKéMON are number 1!"); const u8 gText_MatchCallHiker_Trent_Pokemon[] = _("Hard-bodied POKéMON.");
const u8 gMatchCallFlavorText_BugCatcher_James_Intro1[] = _("If you want to catch BUG"); const u8 gText_MatchCallHiker_Trent_Intro1[] = _("I've been planning a month");
const u8 gMatchCallFlavorText_BugCatcher_James_Intro2[] = _("POKéMON, wake up early."); const u8 gText_MatchCallHiker_Trent_Intro2[] = _("for today's hike.");
const u8 gMatchCallFlavorText_Hiker_Trent_Strategy[] = _("I battle with power."); const u8 gText_MatchCallHiker_Sawyer_Strategy[] = _("I like it hot!");
const u8 gMatchCallFlavorText_Hiker_Trent_Pokemon[] = _("Hard-bodied POKéMON."); const u8 gText_MatchCallHiker_Sawyer_Pokemon[] = _("Hot POKéMON!");
const u8 gMatchCallFlavorText_Hiker_Trent_Intro1[] = _("I've been planning a month"); const u8 gText_MatchCallHiker_Sawyer_Intro1[] = _("As much as I love POKéMON,");
const u8 gMatchCallFlavorText_Hiker_Trent_Intro2[] = _("for today's hike."); const u8 gText_MatchCallHiker_Sawyer_Intro2[] = _("I surely like hiking!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Strategy[] = _("I like it hot!"); const u8 gText_MatchCallYoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Pokemon[] = _("Hot POKéMON!"); const u8 gText_MatchCallYoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro1[] = _("As much as I love POKéMON,"); const u8 gText_MatchCallYoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!");
const u8 gMatchCallFlavorText_Hiker_Sawyer_Intro2[] = _("I surely like hiking!"); const u8 gText_MatchCallYoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Strategy[] = _("Lovey-dovey strategy!"); const u8 gText_MatchCallPkmnTrainer_Wally_Strategy[] = _("We let it all hang out.");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Pokemon[] = _("Lovey-dovey POKéMON!"); const u8 gText_MatchCallPkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught.");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro1[] = _("We're lovey-dovey!"); const u8 gText_MatchCallPkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown");
const u8 gMatchCallFlavorText_YoungCouple_LoisAndHal_Intro2[] = _("Forever lovey-dovey!"); const u8 gText_MatchCallPkmnTrainer_Wally_Intro2[] = _("stronger together.");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Strategy[] = _("We let it all hang out."); const u8 gText_MatchCallRockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack.");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Pokemon[] = _("The 1st POKéMON I caught."); const u8 gText_MatchCallRockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON.");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro1[] = _("POKéMON and I have grown"); const u8 gText_MatchCallRockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears");
const u8 gMatchCallFlavorText_PkmnTrainer_Wally_Intro2[] = _("stronger together."); const u8 gText_MatchCallRockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility.");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Strategy[] = _("ROCK-type power attack."); const u8 gText_MatchCallTheBigHit_Brawly_Strategy[] = _("Direct physical action!");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Pokemon[] = _("I prefer rock-hard POKéMON."); const u8 gText_MatchCallTheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro1[] = _("A LEADER of a big GYM bears"); const u8 gText_MatchCallTheBigHit_Brawly_Intro1[] = _("The world awaits me as the");
const u8 gMatchCallFlavorText_RockinWhiz_Roxanne_Intro2[] = _("a lot of responsibility."); const u8 gText_MatchCallTheBigHit_Brawly_Intro2[] = _("next big wave!");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Strategy[] = _("Direct physical action!"); const u8 gText_MatchCallSwellShock_Wattson_Strategy[] = _("I choose to electrify.");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Pokemon[] = _("FIGHTING POKéMON rule!"); const u8 gText_MatchCallSwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro1[] = _("The world awaits me as the"); const u8 gText_MatchCallSwellShock_Wattson_Intro1[] = _("One must never throw a");
const u8 gMatchCallFlavorText_TheBigHit_Brawly_Intro2[] = _("next big wave!"); const u8 gText_MatchCallSwellShock_Wattson_Intro2[] = _("match. Even I must not.");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Strategy[] = _("I choose to electrify."); const u8 gText_MatchCallPassionBurn_Flannery_Strategy[] = _("Battle aggressively.");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Pokemon[] = _("Get shocked by electricity!"); const u8 gText_MatchCallPassionBurn_Flannery_Pokemon[] = _("Burn with passion!");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro1[] = _("One must never throw a"); const u8 gText_MatchCallPassionBurn_Flannery_Intro1[] = _("Completely wash away daily");
const u8 gMatchCallFlavorText_SwellShock_Wattson_Intro2[] = _("match. Even I must not."); const u8 gText_MatchCallPassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Strategy[] = _("Battle aggressively."); const u8 gText_MatchCallReliableOne_Dad_Strategy[] = _("I flexibly adapt my style.");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Pokemon[] = _("Burn with passion!"); const u8 gText_MatchCallReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner.");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro1[] = _("Completely wash away daily"); const u8 gText_MatchCallReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from");
const u8 gMatchCallFlavorText_PassionBurn_Flannery_Intro2[] = _("fatigue in hot springs!"); const u8 gText_MatchCallReliableOne_Dad_Intro2[] = _("home to here every day.");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Strategy[] = _("I flexibly adapt my style."); const u8 gText_MatchCallSkyTamer_Winona_Strategy[] = _("I take advantage of speed.");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Pokemon[] = _("Grown in a balanced manner."); const u8 gText_MatchCallSkyTamer_Winona_Pokemon[] = _("Graceful sky dancers.");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro1[] = _("I walk the 30 minutes from"); const u8 gText_MatchCallSkyTamer_Winona_Intro1[] = _("The ultimate would be to");
const u8 gMatchCallFlavorText_ReliableOne_Dad_Intro2[] = _("home to here every day."); const u8 gText_MatchCallSkyTamer_Winona_Intro2[] = _("live as one with nature.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Strategy[] = _("I take advantage of speed."); const u8 gText_MatchCallMysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Pokemon[] = _("Graceful sky dancers."); const u8 gText_MatchCallMysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON.");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro1[] = _("The ultimate would be to"); const u8 gText_MatchCallMysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling");
const u8 gMatchCallFlavorText_SkyTamer_Winona_Intro2[] = _("live as one with nature."); const u8 gText_MatchCallMysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Strategy[] = _("We battle in cooperation."); const u8 gText_MatchCallDandyCharm_Juan_Strategy[] = _("I use splendid waterpower.");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Pokemon[] = _("Always friendly POKéMON."); const u8 gText_MatchCallDandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro1[] = _("Papa has trouble telling"); const u8 gText_MatchCallDandyCharm_Juan_Intro1[] = _("The adulation of beautiful");
const u8 gMatchCallFlavorText_MysticDuo_TateAndLiza_Intro2[] = _("the two of us apart!"); const u8 gText_MatchCallDandyCharm_Juan_Intro2[] = _("ladies fills me with energy!");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Strategy[] = _("I use splendid waterpower."); const u8 gText_MatchCallEliteFour_Sidney_Strategy[] = _("Offense over defense!");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Pokemon[] = _("POKéMON of elegance!"); const u8 gText_MatchCallEliteFour_Sidney_Pokemon[] = _("The DARK side's beauties.");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro1[] = _("The adulation of beautiful"); const u8 gText_MatchCallEliteFour_Sidney_Intro1[] = _("They said I was a punk, but");
const u8 gMatchCallFlavorText_DandyCharm_Juan_Intro2[] = _("ladies fills me with energy!"); const u8 gText_MatchCallEliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Strategy[] = _("Offense over defense!"); const u8 gText_MatchCallEliteFour_Phoebe_Strategy[] = _("Confuse and confound.");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Pokemon[] = _("The DARK side's beauties."); const u8 gText_MatchCallEliteFour_Phoebe_Pokemon[] = _("There's nothing definite.");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro1[] = _("They said I was a punk, but"); const u8 gText_MatchCallEliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at");
const u8 gMatchCallFlavorText_EliteFour_Sidney_Intro2[] = _("I'm one of the ELITE FOUR!"); const u8 gText_MatchCallEliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Strategy[] = _("Confuse and confound."); const u8 gText_MatchCallEliteFour_Glacia_Strategy[] = _("I use items for help.");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Pokemon[] = _("There's nothing definite."); const u8 gText_MatchCallEliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro1[] = _("I wonder how my grandma at"); const u8 gText_MatchCallEliteFour_Glacia_Intro1[] = _("The ICE type can be better");
const u8 gMatchCallFlavorText_EliteFour_Phoebe_Intro2[] = _("MT. PYRE is doing?"); const u8 gText_MatchCallEliteFour_Glacia_Intro2[] = _("trained in this hot land.");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Strategy[] = _("I use items for help."); const u8 gText_MatchCallEliteFour_Drake_Strategy[] = _("Harness strong abilities.");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Pokemon[] = _("Flaming passion in icy cold!"); const u8 gText_MatchCallEliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro1[] = _("The ICE type can be better"); const u8 gText_MatchCallEliteFour_Drake_Intro1[] = _("I dedicate myself to the");
const u8 gMatchCallFlavorText_EliteFour_Glacia_Intro2[] = _("trained in this hot land."); const u8 gText_MatchCallEliteFour_Drake_Intro2[] = _("POKéMON that saved me.");
const u8 gMatchCallFlavorText_EliteFour_Drake_Strategy[] = _("Harness strong abilities."); const u8 gText_MatchCallChampion_Wallace_Strategy[] = _("Dignity and respect.");
const u8 gMatchCallFlavorText_EliteFour_Drake_Pokemon[] = _("The raw power of DRAGONS!"); const u8 gText_MatchCallChampion_Wallace_Pokemon[] = _("I prefer POKéMON of grace.");
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro1[] = _("I dedicate myself to the"); const u8 gText_MatchCallChampion_Wallace_Intro1[] = _("I represent beauty as");
const u8 gMatchCallFlavorText_EliteFour_Drake_Intro2[] = _("POKéMON that saved me."); const u8 gText_MatchCallChampion_Wallace_Intro2[] = _("well as intelligence.");
const u8 gMatchCallFlavorText_Champion_Wallace_Strategy[] = _("Dignity and respect."); const u8 *const gMatchCallFlavorTexts[REMATCH_TABLE_ENTRIES][CHECK_PAGE_ENTRY_COUNT] =
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] =
{ {
[REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose), [REMATCH_ROSE] = MCFLAVOR(AromaLady_Rose),
[REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres), [REMATCH_ANDRES] = MCFLAVOR(RuinManiac_Andres),

View File

@@ -54,8 +54,8 @@ static const struct WindowTemplate sDaycareLevelMenuWindowTemplate =
// which is copied to VAR_0x8004 and used as an index for GetDaycareCost // which is copied to VAR_0x8004 and used as an index for GetDaycareCost
static const struct ListMenuItem sLevelMenuItems[] = static const struct ListMenuItem sLevelMenuItems[] =
{ {
{gExpandedPlaceholder_Empty, 0}, {gText_ExpandedPlaceholder_Empty, 0},
{gExpandedPlaceholder_Empty, 1}, {gText_ExpandedPlaceholder_Empty, 1},
{gText_Exit, DAYCARE_LEVEL_MENU_EXIT} {gText_Exit, DAYCARE_LEVEL_MENU_EXIT}
}; };

View File

@@ -1060,7 +1060,7 @@ static bool32 SelectMatchCallTrainer(void)
static u32 GetNumRegisteredNPCs(void) static u32 GetNumRegisteredNPCs(void)
{ {
u32 i, count; 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)) if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
count++; count++;
@@ -1072,7 +1072,7 @@ static u32 GetNumRegisteredNPCs(void)
static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId) static u32 GetActiveMatchCallTrainerId(u32 activeMatchCallId)
{ {
u32 i; u32 i;
for (i = 0; i < 64; i++) for (i = 0; i < REMATCH_SPECIAL_TRAINER_START; i++)
{ {
if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i)) if (FlagGet(FLAG_MATCH_CALL_REGISTERED + i))
{ {
@@ -1384,7 +1384,7 @@ static u16 GetRematchTrainerLocation(int matchCallId)
static u32 GetNumRematchTrainersFought(void) static u32 GetNumRematchTrainersFought(void)
{ {
u32 i, count; 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])) if (HasTrainerBeenFought(gRematchTable[i].trainerIds[0]))
count++; count++;
@@ -1961,7 +1961,7 @@ static const u8 *const sBirchDexRatingTexts[] =
gBirchDexRatingText_DexCompleted, gBirchDexRatingText_DexCompleted,
}; };
void sub_8197080(u8 *destStr) void BufferPokedexRatingForMatchCall(u8 *destStr)
{ {
int numSeen, numCaught; int numSeen, numCaught;
u8 *str; u8 *str;

View File

@@ -33,7 +33,6 @@ EWRAM_DATA static struct NamingScreenData *gNamingScreenData = NULL;
extern u16 gKeyRepeatStartDelay; extern u16 gKeyRepeatStartDelay;
// extern text // extern text
extern const u8 gExpandedPlaceholder_Empty[];
extern const u8 gText_MoveOkBack[]; extern const u8 gText_MoveOkBack[];
extern const u8 gText_YourName[]; extern const u8 gText_YourName[];
extern const u8 gText_BoxName[]; extern const u8 gText_BoxName[];
@@ -1679,7 +1678,7 @@ static void sub_80E4D10(void)
for (i = 0; i < maxChars; i++) for (i = 0; i < maxChars; i++)
{ {
temp[0] = gNamingScreenData->textBuffer[i]; temp[0] = gNamingScreenData->textBuffer[i];
temp[1] = gExpandedPlaceholder_Empty[0]; temp[1] = gText_ExpandedPlaceholder_Empty[0];
unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0; unk2 = (IsLetter(temp[0]) == TRUE) ? 2 : 0;
AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL); AddTextPrinterParameterized(gNamingScreenData->windows[2], 1, temp, i * 8 + unk + unk2, 1, 0xFF, NULL);

View File

@@ -337,7 +337,7 @@ static void CB2_InitPokenavForTutorial(void)
else else
{ {
InitPokenavResources(gPokenavResources); InitPokenavResources(gPokenavResources);
gPokenavResources->mode = POKENAV_MODE_FORCE_CALL_1; gPokenavResources->mode = POKENAV_MODE_FORCE_CALL_READY;
ResetTasks(); ResetTasks();
ResetSpriteData(); ResetSpriteData();
FreeAllSpritePalettes(); FreeAllSpritePalettes();

View File

@@ -41,7 +41,7 @@ struct PokenavMainMenuResources
u32 (*unk4)(void); u32 (*unk4)(void);
u32 unk8; u32 unk8;
u32 currentTaskId; u32 currentTaskId;
u32 unk10; u32 helpBarWindowId;
u32 unk14; u32 unk14;
struct Sprite *spinningPokenav; struct Sprite *spinningPokenav;
struct Sprite *leftHeaderSprites[2]; 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 SpriteCB_MoveLeftHeader(struct Sprite *sprite);
static void InitPokenavMainMenuResources(void); static void InitPokenavMainMenuResources(void);
static void InitHoennMapHeaderSprites(void); static void InitHoennMapHeaderSprites(void);
static void sub_81C7B74(void); static void InitHelpBar(void);
static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0); static u32 LoopedTask_ScrollMenuHeaderDown(s32 a0);
static u32 LoopedTask_ScrollMenuHeaderUp(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 void SpriteCB_SpinningPokenav(struct Sprite* sprite);
static u32 LoopedTask_InitPokenavMenu(s32 a0); 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, .bg = 0,
@@ -103,31 +103,23 @@ const struct WindowTemplate gUnknown_0861FA08[2] =
.paletteNum = 0, .paletteNum = 0,
.baseBlock = 0x36, .baseBlock = 0x36,
}, },
{ DUMMY_WIN_TEMPLATE
.bg = 0xFF,
.tilemapLeft = 0,
.tilemapTop = 0,
.width = 0,
.height = 0,
.paletteNum = 0,
.baseBlock = 0,
},
}; };
const u8 *const sHelpBarTexts[12] = static const u8 *const sHelpBarTexts[HELPBAR_COUNT] =
{ {
gText_Pokenav_ClearButtonList, [HELPBAR_NONE] = gText_Pokenav_ClearButtonList,
gText_PokenavMap_ZoomedOutButtons, [HELPBAR_MAP_ZOOMED_OUT] = gText_PokenavMap_ZoomedOutButtons,
gText_PokenavMap_ZoomedInButtons, [HELPBAR_MAP_ZOOMED_IN] = gText_PokenavMap_ZoomedInButtons,
gText_PokenavCondition_MonListButtons, [HELPBAR_CONDITION_MON_LIST] = gText_PokenavCondition_MonListButtons,
gText_PokenavCondition_MonStatusButtons, [HELPBAR_CONDITION_MON_STATUS] = gText_PokenavCondition_MonStatusButtons,
gText_PokenavCondition_MarkingButtons, [HELPBAR_CONDITION_MARKINGS] = gText_PokenavCondition_MarkingButtons,
gText_PokenavMatchCall_TrainerListButtons, [HELPBAR_MC_TRAINER_LIST] = gText_PokenavMatchCall_TrainerListButtons,
gText_PokenavMatchCall_CallMenuButtons, [HELPBAR_MC_CALL_MENU] = gText_PokenavMatchCall_CallMenuButtons,
gText_PokenavMatchCall_CheckTrainerButtons, [HELPBAR_MC_CHECK_PAGE] = gText_PokenavMatchCall_CheckTrainerButtons,
gText_PokenavRibbons_MonListButtons, [HELPBAR_RIBBONS_MON_LIST] = gText_PokenavRibbons_MonListButtons,
gText_PokenavRibbons_RibbonListButtons, [HELPBAR_RIBBONS_LIST] = gText_PokenavRibbons_RibbonListButtons,
gText_PokenavRibbons_RibbonCheckButtons, [HELPBAR_RIBBONS_CHECK] = gText_PokenavRibbons_RibbonCheckButtons,
}; };
static const u8 sHelpBarTextColors[3] = static const u8 sHelpBarTextColors[3] =
@@ -386,7 +378,7 @@ static u32 LoopedTask_InitPokenavMenu(s32 a0)
if (free_temp_tile_data_buffers_if_possible()) if (free_temp_tile_data_buffers_if_possible())
return LT_PAUSE; return LT_PAUSE;
sub_81C7B74(); InitHelpBar();
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
case 3: case 3:
if (IsDma3ManagerBusyWithBgCopy()) if (IsDma3ManagerBusyWithBgCopy())
@@ -676,31 +668,31 @@ void InitBgTemplates(const struct BgTemplate *templates, int count)
InitBgFromTemplate(templates++); InitBgFromTemplate(templates++);
} }
static void sub_81C7B74(void) static void InitHelpBar(void)
{ {
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0); struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
InitWindows(&gUnknown_0861FA08[0]); InitWindows(&sHelpBarWindowTemplate[0]);
structPtr->unk10 = 0; structPtr->helpBarWindowId = 0;
sub_81C7BF8(structPtr->unk10); DrawHelpBar(structPtr->helpBarWindowId);
PutWindowTilemap(structPtr->unk10); PutWindowTilemap(structPtr->helpBarWindowId);
CopyWindowToVram(structPtr->unk10, 3); // TODO: Use a defined constant here. CopyWindowToVram(structPtr->helpBarWindowId, 3); // TODO: Use a defined constant here.
} }
void sub_81C7BA4(u32 helpBarIndex) void PrintHelpBarText(u32 textId)
{ {
struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0); struct PokenavMainMenuResources *structPtr = GetSubstructPtr(0);
sub_81C7BF8(structPtr->unk10); DrawHelpBar(structPtr->helpBarWindowId);
AddTextPrinterParameterized3(structPtr->unk10, 1, 0, 1, sHelpBarTextColors, 0, sHelpBarTexts[helpBarIndex]); AddTextPrinterParameterized3(structPtr->helpBarWindowId, 1, 0, 1, sHelpBarTextColors, 0, sHelpBarTexts[textId]);
} }
bool32 IsDma3ManagerBusyWithBgCopy_(void) bool32 WaitForHelpBar(void)
{ {
return IsDma3ManagerBusyWithBgCopy(); return IsDma3ManagerBusyWithBgCopy();
} }
static void sub_81C7BF8(u32 windowId) static void DrawHelpBar(u32 windowId)
{ {
FillWindowPixelBuffer(windowId, PIXEL_FILL(4)); FillWindowPixelBuffer(windowId, PIXEL_FILL(4));
FillWindowPixelRect(windowId, PIXEL_FILL(5), 0, 0, 0x80, 1); FillWindowPixelRect(windowId, PIXEL_FILL(5), 0, 0, 0x80, 1);

File diff suppressed because it is too large Load Diff

View File

@@ -46,7 +46,7 @@ struct PokenavSub17Substruct
u32 unk28; u32 unk28;
s32 unk2C; s32 unk2C;
u32 unk30; u32 unk30;
void (*unk34)(struct PokenavMonList *, u8*); void (*unk34)(struct PokenavMatchCallEntries *, u8*);
void (*unk38)(u16, u32, u32); void (*unk38)(u16, u32, u32);
struct Sprite *rightArrow; struct Sprite *rightArrow;
struct Sprite *upArrow; struct Sprite *upArrow;
@@ -67,8 +67,8 @@ struct PokenavSub17
extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4); extern void sub_81DB620(u32 windowId, u32 a1, u32 a2, u32 a3, u32 a4);
void sub_81C82E4(struct PokenavSub17 *a0); void sub_81C82E4(struct PokenavSub17 *a0);
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);
void sub_81C9160(struct MatchCallWindowState *a0, struct MatchCallListTemplate *a1); void sub_81C9160(struct MatchCallWindowState *a0, struct PokenavListTemplate *a1);
void SpriteCB_MatchCallUpArrow(struct Sprite *sprite); void SpriteCB_MatchCallUpArrow(struct Sprite *sprite);
void SpriteCB_MatchCallDownArrow(struct Sprite *sprite); void SpriteCB_MatchCallDownArrow(struct Sprite *sprite);
void SpriteCB_MatchCallRightArrow(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_81C8FE0(struct PokenavSub17Substruct *a0);
void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); void sub_81C8EF8(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8ED0(void); 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 PrintMatchCallFieldNames(struct PokenavSub17Substruct *a0, u32 a1);
void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1); void sub_81C8D4C(struct MatchCallWindowState *a0, struct PokenavSub17Substruct *a1);
void sub_81C8CB4(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_81C85A0(s32 state);
u32 LoopedTask_sub_81C8870(s32 state); u32 LoopedTask_sub_81C8870(s32 state);
u32 LoopedTask_sub_81C8A28(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 u16 sMatchcallArrowPaletteData[] = INCBIN_U16("graphics/pokenav/arrows_matchcall.gbapal");
static const u32 sMatchcallArrowSpriteSheetData[] = INCBIN_U32("graphics/pokenav/arrows_matchcall.4bpp.lz"); static const u32 sMatchcallArrowSpriteSheetData[] = INCBIN_U32("graphics/pokenav/arrows_matchcall.4bpp.lz");
EWRAM_DATA u32 gUnknown_0203CF44 = 0; 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)); struct PokenavSub17 *structPtr = AllocSubstruct(17, sizeof(struct PokenavSub17));
if (structPtr == NULL) if (structPtr == NULL)
@@ -467,12 +467,12 @@ void sub_81C877C(void)
structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6); structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8870, 6);
} }
void sub_81C87AC(s16 a0) void PrintCheckPageInfo(s16 a0)
{ {
struct PokenavSub17 *structPtr = GetSubstructPtr(17); struct PokenavSub17 *structPtr = GetSubstructPtr(17);
structPtr->unk888.windowTopIndex += a0; structPtr->unk888.windowTopIndex += a0;
structPtr->unk89C = 0; structPtr->unk89C = 0;
structPtr->unk8A0 = CreateLoopedTask(LoopedTask_sub_81C8958, 6); structPtr->unk8A0 = CreateLoopedTask(LoopedTask_PrintCheckPageInfo, 6);
} }
void sub_81C87F0(void) void sub_81C87F0(void)
@@ -496,6 +496,7 @@ void sub_81C8838(void)
CopyWindowToVram(structPtr->unk0.unk0.windowId, 1); CopyWindowToVram(structPtr->unk0.unk0.windowId, 1);
} }
// TODO:
u32 LoopedTask_sub_81C8870(s32 state) u32 LoopedTask_sub_81C8870(s32 state)
{ {
struct PokenavSub17 *structPtr = GetSubstructPtr(17); struct PokenavSub17 *structPtr = GetSubstructPtr(17);
@@ -543,7 +544,7 @@ u32 LoopedTask_sub_81C8870(s32 state)
return LT_FINISH; return LT_FINISH;
} }
u32 LoopedTask_sub_81C8958(s32 state) u32 LoopedTask_PrintCheckPageInfo(s32 state)
{ {
struct PokenavSub17 *structPtr = GetSubstructPtr(17); struct PokenavSub17 *structPtr = GetSubstructPtr(17);
if (IsDma3ManagerBusyWithBgCopy()) if (IsDma3ManagerBusyWithBgCopy())
@@ -558,22 +559,22 @@ u32 LoopedTask_sub_81C8958(s32 state)
PrintMatchCallFieldNames(&structPtr->unk0, 0); PrintMatchCallFieldNames(&structPtr->unk0, 0);
break; break;
case 2: case 2:
sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 0); PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_STRATEGY);
break; break;
case 3: case 3:
PrintMatchCallFieldNames(&structPtr->unk0, 1); PrintMatchCallFieldNames(&structPtr->unk0, 1);
break; break;
case 4: case 4:
sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 1); PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_POKEMON);
break; break;
case 5: case 5:
PrintMatchCallFieldNames(&structPtr->unk0, 2); PrintMatchCallFieldNames(&structPtr->unk0, 2);
break; break;
case 6: case 6:
sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 2); PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_1);
break; break;
case 7: case 7:
sub_81C8E54(&structPtr->unk888, &structPtr->unk0, 3); PrintMatchCallFlavorText(&structPtr->unk888, &structPtr->unk0, CHECK_PAGE_INTRO_2);
break; break;
default: default:
return LT_FINISH; 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--) for (a2--; a2 != -1; a1 = (a1 + 1) & 0xF, a2--)
sub_81CBD48(a0->windowId, a1); ClearRematchPokeballIcon(a0->windowId, a1);
CopyWindowToVram(a0->windowId, 1); 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); 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}; // lines 1, 3, and 5 are the field names printed by PrintMatchCallFieldNames
u32 r6 = (a1->unk0.unkA + array[a2]) & 0xF; static const u8 lineOffsets[CHECK_PAGE_ENTRY_COUNT] =
const u8 *str = sub_81CAFD8(a0->windowTopIndex, a2); {
[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) if (str != NULL)
{ {
@@ -925,9 +934,9 @@ void ToggleMatchCallVerticalArrows(bool32 shouldHide)
structPtr->unk0.downArrow->data[7] = 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->windowTopIndex = a1->unk6;
a0->listLength = a1->unk4; a0->listLength = a1->unk4;
a0->unkC = a1->unk8; 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; struct WindowTemplate window;
a0->unk0.bg = a1->bg; a0->unk0.bg = a1->bg;
a0->unk0.unk6 = a3; a0->unk0.unk6 = a3;
a0->unk34 = a2->unk10; a0->unk34 = a2->listFunc.unk10_2;
a0->unk38 = a2->unk14; a0->unk38 = a2->unk14;
a0->unk0.unk1 = a2->unkD; a0->unk0.unk1 = a2->unkD;
a0->unk0.unk2 = a2->unk9; a0->unk0.unk2 = a2->unk9;

View File

@@ -64,7 +64,7 @@ bool32 PokenavCallback_Init_0(void)
state->menuType = GetPokenavMainMenuType(); state->menuType = GetPokenavMainMenuType();
state->cursorPos = 0; state->cursorPos = 0;
state->descriptionId = 0; state->descriptionId = 0;
state->helpBarIndex = 0; state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state); sub_81C939C(state);
return TRUE; return TRUE;
} }
@@ -78,7 +78,7 @@ bool32 PokenavCallback_Init_4(void)
state->menuType = GetPokenavMainMenuType(); state->menuType = GetPokenavMainMenuType();
state->cursorPos = 2; state->cursorPos = 2;
state->descriptionId = 2; state->descriptionId = 2;
state->helpBarIndex = 0; state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state); sub_81C939C(state);
return TRUE; return TRUE;
} }
@@ -105,7 +105,7 @@ bool32 PokenavCallback_Init_2(void)
state->menuType = 3; state->menuType = 3;
state->cursorPos = 0; state->cursorPos = 0;
state->descriptionId = 5; state->descriptionId = 5;
state->helpBarIndex = 0; state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state); sub_81C939C(state);
return TRUE; return TRUE;
} }
@@ -119,7 +119,7 @@ bool32 PokenavCallback_Init_3(void)
state->menuType = 4; state->menuType = 4;
state->cursorPos = sub_81C76AC(); state->cursorPos = sub_81C76AC();
state->descriptionId = state->cursorPos + 8; state->descriptionId = state->cursorPos + 8;
state->helpBarIndex = 0; state->helpBarIndex = HELPBAR_NONE;
sub_81C939C(state); sub_81C939C(state);
return TRUE; return TRUE;
} }
@@ -151,9 +151,9 @@ static u32 (*sub_81C93EC(void))(struct Pokenav1Struct*)
default: default:
case POKENAV_MODE_NORMAL: case POKENAV_MODE_NORMAL:
return sub_81C943C; return sub_81C943C;
case POKENAV_MODE_FORCE_CALL_1: case POKENAV_MODE_FORCE_CALL_READY:
return sub_81C9520; return sub_81C9520;
case POKENAV_MODE_FORCE_CALL_2: case POKENAV_MODE_FORCE_CALL_EXIT:
return sub_81C9588; return sub_81C9588;
} }
} }
@@ -179,7 +179,7 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0)
switch (sDescriptionIds[a0->menuType][a0->cursorPos]) switch (sDescriptionIds[a0->menuType][a0->cursorPos])
{ {
case 0: 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); sub_81C97B0(a0, POKENAV_MENU_6);
return 8; return 8;
case 1: case 1:
@@ -189,13 +189,13 @@ static u32 sub_81C943C(struct Pokenav1Struct *a0)
a0->callback = sub_81C963C; a0->callback = sub_81C963C;
return 2; return 2;
case 2: case 2:
a0->helpBarIndex = 6; a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B); sub_81C97B0(a0, POKENAV_MENU_B);
return 8; return 8;
case 3: case 3:
if (CanViewRibbonsMenu()) if (CanViewRibbonsMenu())
{ {
a0->helpBarIndex = 9; a0->helpBarIndex = HELPBAR_RIBBONS_MON_LIST;
sub_81C97B0(a0, POKENAV_MENU_C); sub_81C97B0(a0, POKENAV_MENU_C);
return 8; return 8;
} }
@@ -224,7 +224,7 @@ static u32 sub_81C9520(struct Pokenav1Struct *a0)
{ {
if (sDescriptionIds[a0->menuType][a0->cursorPos] == 2) if (sDescriptionIds[a0->menuType][a0->cursorPos] == 2)
{ {
a0->helpBarIndex = 6; a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B); sub_81C97B0(a0, POKENAV_MENU_B);
return 8; return 8;
} }
@@ -259,7 +259,7 @@ static u32 sub_81C9588(struct Pokenav1Struct *a0)
} }
else if (v0 == 2) else if (v0 == 2)
{ {
a0->helpBarIndex = 6; a0->helpBarIndex = HELPBAR_MC_TRAINER_LIST;
sub_81C97B0(a0, POKENAV_MENU_B); sub_81C97B0(a0, POKENAV_MENU_B);
return 8; return 8;
} }
@@ -349,7 +349,7 @@ static u32 sub_81C96FC(struct Pokenav1Struct *a0)
{ {
sub_81C7694(v0 - 8); sub_81C7694(v0 - 8);
sub_81C97B0(a0, POKENAV_MENU_8); sub_81C97B0(a0, POKENAV_MENU_8);
a0->helpBarIndex = 3; a0->helpBarIndex = HELPBAR_CONDITION_MON_LIST;
return 8; return 8;
} }
else else
@@ -459,7 +459,7 @@ int sub_81C98B4(void)
return state->descriptionId; return state->descriptionId;
} }
u16 sub_81C98C4(void) u16 GetHelpBarTextId(void)
{ {
struct Pokenav1Struct *state = GetSubstructPtr(1); struct Pokenav1Struct *state = GetSubstructPtr(1);
return state->helpBarIndex; return state->helpBarIndex;

View File

@@ -573,7 +573,7 @@ u32 sub_81D0A6C(s32 state)
return LT_PAUSE; return LT_PAUSE;
case 7: case 7:
sub_81D12D8(structPtr); sub_81D12D8(structPtr);
sub_81C7BA4(10); PrintHelpBarText(HELPBAR_RIBBONS_LIST);
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
case 8: case 8:
if (!IsDma3ManagerBusyWithBgCopy()) if (!IsDma3ManagerBusyWithBgCopy())
@@ -667,7 +667,7 @@ u32 sub_81D0D2C(s32 state)
if (!sub_81D1524(structPtr)) if (!sub_81D1524(structPtr))
{ {
sub_81D0EFC(structPtr); sub_81D0EFC(structPtr);
sub_81C7BA4(11); PrintHelpBarText(HELPBAR_RIBBONS_CHECK);
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
} }
return LT_PAUSE; return LT_PAUSE;
@@ -721,7 +721,7 @@ u32 sub_81D0E00(s32 state)
if (!sub_81D1524(structPtr)) if (!sub_81D1524(structPtr))
{ {
sub_81D0E84(structPtr); sub_81D0E84(structPtr);
sub_81C7BA4(10); PrintHelpBarText(HELPBAR_RIBBONS_LIST);
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
} }
return LT_PAUSE; return LT_PAUSE;

View File

@@ -323,7 +323,7 @@ static bool32 sub_81C98D4(void)
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
{ {
if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId if (sub_81CB0C8(i) == gMapHeader.regionMapSectionId
&& sub_81CAE08(i) && IsRematchEntryRegistered(i)
&& gSaveBlock1Ptr->trainerRematches[i]) && gSaveBlock1Ptr->trainerRematches[i])
return TRUE; return TRUE;
} }
@@ -706,10 +706,10 @@ static u32 sub_81C9F28(s32 state)
switch (state) switch (state)
{ {
case 0: case 0:
sub_81C7BA4(sub_81C98C4()); PrintHelpBarText(GetHelpBarTextId());
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
case 1: case 1:
if (IsDma3ManagerBusyWithBgCopy_()) if (WaitForHelpBar())
return LT_PAUSE; return LT_PAUSE;
sub_81C7880(); sub_81C7880();
sub_81CA9C8(); sub_81CA9C8();

View File

@@ -17,30 +17,40 @@
struct Pokenav3Struct struct Pokenav3Struct
{ {
u16 unk0; u16 optionCursorPos;
u16 unk2; u16 maxOptionId;
const u8 *unk4; const u8 *matchCallOptions;
u16 unk8; u16 headerId;
u16 unkA; u16 numRegistered;
u16 unkC; u16 unkC;
u32 unk10; u32 unk10;
u32 unk14; u32 unk14;
u32 (*callback)(struct Pokenav3Struct*); 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_81CABFC(struct Pokenav3Struct *);
static u32 sub_81CAC04(struct Pokenav3Struct *); static u32 CB2_HandleMatchCallOptionsInput(struct Pokenav3Struct *);
static u32 sub_81CACB8(struct Pokenav3Struct *); static u32 CB2_HandleCheckPageInput(struct Pokenav3Struct *);
static u32 sub_81CACF8(struct Pokenav3Struct *); static u32 CB2_HandleCallInput(struct Pokenav3Struct *);
static u32 sub_81CAD20(s32); static u32 sub_81CAD20(s32);
static bool32 sub_81CB1D0(void); static bool32 sub_81CB1D0(void);
#include "data/text/match_call_messages.h" #include "data/text/match_call_messages.h"
const u8 gUnknown_08622508[] = {0, 2}; static const u8 sMatchCallOptionsNoCheckPage[] =
const u8 gUnknown_0862250A[] = {0, 1, 2}; {
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) bool32 PokenavCallback_Init_11(void)
{ {
@@ -48,8 +58,8 @@ bool32 PokenavCallback_Init_11(void)
if (!state) if (!state)
return FALSE; return FALSE;
state->callback = sub_81CAB44; state->callback = CB2_HandleMatchCallInput;
state->unk8 = 0; state->headerId = 0;
state->unk10 = 0; state->unk10 = 0;
state->unk14 = CreateLoopedTask(sub_81CAD20, 1); state->unk14 = CreateLoopedTask(sub_81CAD20, 1);
return TRUE; return TRUE;
@@ -66,52 +76,54 @@ void sub_81CAB38(void)
FreePokenavSubstruct(5); 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) if (gMain.newAndRepeatedKeys & DPAD_UP)
return 2; return POKENAV_MC_FUNC_UP;
if (gMain.newAndRepeatedKeys & DPAD_DOWN) if (gMain.newAndRepeatedKeys & DPAD_DOWN)
return 1; return POKENAV_MC_FUNC_DOWN;
if (gMain.newAndRepeatedKeys & DPAD_LEFT) if (gMain.newAndRepeatedKeys & DPAD_LEFT)
return 4; return POKENAV_MC_FUNC_PG_UP;
if (gMain.newAndRepeatedKeys & DPAD_RIGHT) if (gMain.newAndRepeatedKeys & DPAD_RIGHT)
return 3; return POKENAV_MC_FUNC_PG_DOWN;
if (gMain.newKeys & A_BUTTON) if (gMain.newKeys & A_BUTTON)
{ {
state->callback = sub_81CAC04; state->callback = CB2_HandleMatchCallOptionsInput;
state->unk0 = 0; state->optionCursorPos = 0;
selectedMatchCall = GetSelectedMatchCall(); selection = GetSelectedMatchCall();
if (!state->unk1C[selectedMatchCall].boxId || MatchCall_HasCheckPage(state->unk1C[selectedMatchCall].unk6))
if (!state->matchCallEntries[selection].isSpecialTrainer || MatchCall_HasCheckPage(state->matchCallEntries[selection].headerId))
{ {
state->unk4 = gUnknown_0862250A; state->matchCallOptions = sMatchCallOptionsHasCheckPage;
state->unk2 = 2; state->maxOptionId = ARRAY_COUNT(sMatchCallOptionsHasCheckPage) - 1;
} }
else else
{ {
state->unk4 = gUnknown_08622508; state->matchCallOptions = sMatchCallOptionsNoCheckPage;
state->unk2 = 1; state->maxOptionId = ARRAY_COUNT(sMatchCallOptionsNoCheckPage) - 1;
} }
return 5; return POKENAV_MC_FUNC_SELECT;
} }
if (gMain.newKeys & B_BUTTON) if (gMain.newKeys & B_BUTTON)
{ {
if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_1) if (GetPokenavMode() != POKENAV_MODE_FORCE_CALL_READY)
{ {
state->callback = sub_81CABFC; state->callback = sub_81CABFC;
return 15; return POKENAV_MC_FUNC_EXIT;
} }
else else
{ {
// Cant exit Match Call menu before calling Mr Stone during tutorial
PlaySE(SE_HAZURE); PlaySE(SE_HAZURE);
} }
} }
return 0; return POKENAV_MC_FUNC_NONE;
} }
static u32 sub_81CABFC(struct Pokenav3Struct *state) static u32 sub_81CABFC(struct Pokenav3Struct *state)
@@ -119,76 +131,76 @@ static u32 sub_81CABFC(struct Pokenav3Struct *state)
return POKENAV_MENU_4; 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--; state->optionCursorPos--;
return 6; 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++; state->optionCursorPos++;
return 6; return POKENAV_MC_FUNC_MOVE_OPTIONS_CURSOR;
} }
if (gMain.newKeys & A_BUTTON) if (gMain.newKeys & A_BUTTON)
{ {
switch (state->unk4[state->unk0]) switch (state->matchCallOptions[state->optionCursorPos])
{ {
case 2: case MATCH_CALL_OPTION_CANCEL:
state->callback = sub_81CAB44; state->callback = CB2_HandleMatchCallInput;
return 7; return POKENAV_MC_FUNC_CANCEL;
case 0: case MATCH_CALL_OPTION_CALL:
if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_1) if (GetPokenavMode() == POKENAV_MODE_FORCE_CALL_READY)
SetPokenavMode(POKENAV_MODE_FORCE_CALL_2); SetPokenavMode(POKENAV_MODE_FORCE_CALL_EXIT);
state->callback = sub_81CACF8; state->callback = CB2_HandleCallInput;
if (sub_81CB1D0()) if (sub_81CB1D0())
return 9; return POKENAV_MC_FUNC_NEARBY_MSG;
return 8; return POKENAV_MC_FUNC_CALL_MSG;
case 1: case MATCH_CALL_OPTION_CHECK:
state->callback = sub_81CACB8; state->callback = CB2_HandleCheckPageInput;
return 11; return POKENAV_MC_FUNC_SHOW_CHECK_PAGE;
} }
} }
if (gMain.newKeys & B_BUTTON) if (gMain.newKeys & B_BUTTON)
{ {
state->callback = sub_81CAB44; state->callback = CB2_HandleMatchCallInput;
return 7; 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) if (gMain.newAndRepeatedKeys & DPAD_UP)
return 12; return POKENAV_MC_FUNC_CHECK_PAGE_UP;
if (gMain.newAndRepeatedKeys & DPAD_DOWN) if (gMain.newAndRepeatedKeys & DPAD_DOWN)
return 13; return POKENAV_MC_FUNC_CHECK_PAGE_DOWN;
if (gMain.newKeys & B_BUTTON) if (gMain.newKeys & B_BUTTON)
{ {
state->callback = sub_81CAB44; state->callback = CB2_HandleMatchCallInput;
return 14; 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)) if (gMain.newKeys & (A_BUTTON | B_BUTTON))
{ {
state->callback = sub_81CAB44; state->callback = CB2_HandleMatchCallInput;
return 10; return POKENAV_MC_FUNC_10;
} }
return 0; return POKENAV_MC_FUNC_NONE;
} }
static u32 sub_81CAD20(s32 taskState) static u32 sub_81CAD20(s32 taskState)
@@ -198,41 +210,41 @@ static u32 sub_81CAD20(s32 taskState)
switch (taskState) switch (taskState)
{ {
case 0: case 0:
state->unk8 = 0; state->headerId = 0;
state->unkA = 0; state->numRegistered = 0;
return LT_INC_AND_CONTINUE; return LT_INC_AND_CONTINUE;
case 1: 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->matchCallEntries[state->numRegistered].headerId = j;
state->unk1C[state->unkA].boxId = 1; state->matchCallEntries[state->numRegistered].isSpecialTrainer = TRUE;
state->unk1C[state->unkA].monId = MatchCallMapSecGetByIndex(j); state->matchCallEntries[state->numRegistered].mapSec = MatchCall_GetMapSec(j);
state->unkA++; state->numRegistered++;
} }
if (++state->unk8 >= MC_HEADER_COUNT) if (++state->headerId >= MC_HEADER_COUNT)
{ {
state->unkC = state->unk8; state->unkC = state->headerId;
state->unk8 = 0; state->headerId = 0;
return LT_INC_AND_CONTINUE; return LT_INC_AND_CONTINUE;
} }
} }
return LT_CONTINUE; return LT_CONTINUE;
case 2: 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->matchCallEntries[state->numRegistered].headerId = state->headerId;
state->unk1C[state->unkA].boxId = 0; state->matchCallEntries[state->numRegistered].isSpecialTrainer = FALSE;
state->unk1C[state->unkA].monId = sub_81CB0C8(j); state->matchCallEntries[state->numRegistered].mapSec = sub_81CB0C8(j);
state->unkA++; state->numRegistered++;
} }
if (++state->unk8 > REMATCH_TABLE_ENTRIES - 1) if (++state->headerId > REMATCH_TABLE_ENTRIES - 1)
return LT_INC_AND_CONTINUE; return LT_INC_AND_CONTINUE;
} }
@@ -245,7 +257,7 @@ static u32 sub_81CAD20(s32 taskState)
return LT_FINISH; return LT_FINISH;
} }
bool32 sub_81CAE08(int rematchIndex) bool32 IsRematchEntryRegistered(int rematchIndex)
{ {
if (rematchIndex < REMATCH_TABLE_ENTRIES) if (rematchIndex < REMATCH_TABLE_ENTRIES)
return FlagGet(FLAG_MATCH_CALL_REGISTERED + rematchIndex); return FlagGet(FLAG_MATCH_CALL_REGISTERED + rematchIndex);
@@ -259,10 +271,10 @@ int sub_81CAE28(void)
return state->unk10; return state->unk10;
} }
int sub_81CAE38(void) int GetNumberRegistered(void)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->unkA; return state->numRegistered;
} }
int sub_81CAE48(void) int sub_81CAE48(void)
@@ -274,38 +286,38 @@ int sub_81CAE48(void)
int unref_sub_81CAE58(void) int unref_sub_81CAE58(void)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
return state->unkA - state->unkC; return state->numRegistered - state->unkC;
} }
int unref_sub_81CAE6C(int arg0) int unref_sub_81CAE6C(int arg0)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
arg0 += state->unkC; arg0 += state->unkC;
if (arg0 >= state->unkA) if (arg0 >= state->numRegistered)
return REMATCH_TABLE_ENTRIES; 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); 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); 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); struct Pokenav3Struct *state = GetSubstructPtr(5);
if (!state->unk1C[index].boxId) if (!state->matchCallEntries[index].isSpecialTrainer)
index = state->unk1C[index].unk6; index = state->matchCallEntries[index].headerId;
else else
index = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); index = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
if (index == REMATCH_TABLE_ENTRIES) if (index == REMATCH_TABLE_ENTRIES)
return FALSE; return FALSE;
@@ -313,83 +325,83 @@ bool32 sub_81CAEBC(int index)
return gSaveBlock1Ptr->trainerRematches[index] != 0; return gSaveBlock1Ptr->trainerRematches[index] != 0;
} }
int sub_81CAF04(int index) int GetMatchCallTrainerPic(int index)
{ {
int var0; int headerId;
struct Pokenav3Struct *state = GetSubstructPtr(5); 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; return gTrainers[index].trainerPic;
} }
var0 = state->unk1C[index].unk6; headerId = state->matchCallEntries[index].headerId;
index = MatchCall_GetRematchTableIdx(var0); index = MatchCall_GetRematchTableIdx(headerId);
if (index != REMATCH_TABLE_ENTRIES) if (index != REMATCH_TABLE_ENTRIES)
{ {
index = GetTrainerIdxByRematchIdx(index); index = GetTrainerIdxByRematchIdx(index);
return gTrainers[index].trainerPic; return gTrainers[index].trainerPic;
} }
index = MatchCall_GetOverrideFacilityClass(var0); index = MatchCall_GetOverrideFacilityClass(headerId);
return gFacilityClassToPicIndex[index]; return gFacilityClassToPicIndex[index];
} }
const u8 *sub_81CAF78(int index, u8 *arg1) const u8 *GetMatchCallMessageText(int index, u8 *arg1)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
*arg1 = 0; *arg1 = 0;
if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType)) if (!Overworld_MapTypeAllowsTeleportAndFly(gMapHeader.mapType))
return gText_CallCantBeMadeHere; return gText_CallCantBeMadeHere;
if (!state->unk1C[index].boxId) if (!state->matchCallEntries[index].isSpecialTrainer)
*arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->unk1C[index].unk6), gStringVar4); *arg1 = SelectMatchCallMessage(GetTrainerIdxByRematchIdx(state->matchCallEntries[index].headerId), gStringVar4);
else else
MatchCall_GetMessage(state->unk1C[index].unk6, gStringVar4); MatchCall_GetMessage(state->matchCallEntries[index].headerId, gStringVar4);
return 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); struct Pokenav3Struct *state = GetSubstructPtr(5);
if (state->unk1C[index].boxId) if (state->matchCallEntries[index].isSpecialTrainer)
{ {
var0 = MatchCall_GetRematchTableIdx(state->unk1C[index].unk6); rematchId = MatchCall_GetRematchTableIdx(state->matchCallEntries[index].headerId);
if (var0 == REMATCH_TABLE_ENTRIES) if (rematchId == REMATCH_TABLE_ENTRIES)
return MatchCall_GetOverrideFlavorText(state->unk1C[index].unk6, textType); return MatchCall_GetOverrideFlavorText(state->matchCallEntries[index].headerId, checkPageEntry);
} }
else 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); 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); struct Pokenav3Struct *state = GetSubstructPtr(5);
if (state->unk2 < arg0) if (state->maxOptionId < optionId)
return 3; 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 *trainerName;
const u8 *className; 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]; const struct Trainer *trainer = &gTrainers[index];
int class = trainer->trainerClass; int class = trainer->trainerClass;
className = gTrainerClassNames[class]; className = gTrainerClassNames[class];
@@ -397,7 +409,7 @@ void sub_81CB050(struct PokenavMonList * arg0, u8 *str)
} }
else else
{ {
sub_81D1A78(arg0->unk6, &className, &trainerName); MatchCall_GetNameAndDesc(matchCallEntry->headerId, &className, &trainerName);
} }
if (className && trainerName) if (className && trainerName)
@@ -418,15 +430,15 @@ u8 sub_81CB0C8(int rematchIndex)
return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId; return Overworld_GetMapHeaderByGroupAndId(mapGroup, mapNum)->regionMapSectionId;
} }
int sub_81CB0E4(int index) int GetIndexDeltaOfNextCheckPageDown(int index)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
int count = 1; int count = 1;
while (++index < state->unkA) while (++index < state->numRegistered)
{ {
if (!state->unk1C[index].boxId) if (!state->matchCallEntries[index].isSpecialTrainer)
return count; return count;
if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count; return count;
count++; count++;
@@ -435,15 +447,15 @@ int sub_81CB0E4(int index)
return 0; return 0;
} }
int sub_81CB128(int index) int GetIndexDeltaOfNextCheckPageUp(int index)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
int count = -1; int count = -1;
while (--index >= 0) while (--index >= 0)
{ {
if (!state->unk1C[index].boxId) if (!state->matchCallEntries[index].isSpecialTrainer)
return count; return count;
if (MatchCall_HasCheckPage(state->unk1C[index].unk6)) if (MatchCall_HasCheckPage(state->matchCallEntries[index].headerId))
return count; return count;
count--; count--;
@@ -458,13 +470,13 @@ bool32 unref_sub_81CB16C(void)
for (i = 0; i < REMATCH_TABLE_ENTRIES; i++) for (i = 0; i < REMATCH_TABLE_ENTRIES; i++)
{ {
if (sub_81CAE08(i) && gSaveBlock1Ptr->trainerRematches[i]) if (IsRematchEntryRegistered(i) && gSaveBlock1Ptr->trainerRematches[i])
return TRUE; return TRUE;
} }
for (i = 0; i < MC_HEADER_COUNT; i++) for (i = 0; i < MC_HEADER_COUNT; i++)
{ {
if (MatchCallFlagGetByIndex(i)) if (MatchCall_GetEnabled(i))
{ {
int index = MatchCall_GetRematchTableIdx(i); int index = MatchCall_GetRematchTableIdx(i);
if (gSaveBlock1Ptr->trainerRematches[index]) if (gSaveBlock1Ptr->trainerRematches[index])
@@ -478,20 +490,20 @@ bool32 unref_sub_81CB16C(void)
static bool32 sub_81CB1D0(void) static bool32 sub_81CB1D0(void)
{ {
struct Pokenav3Struct *state = GetSubstructPtr(5); struct Pokenav3Struct *state = GetSubstructPtr(5);
int index = GetSelectedMatchCall(); int selection = GetSelectedMatchCall();
if (!state->unk1C[index].boxId) 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; return TRUE;
} }
} }
else 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) && FlagGet(FLAG_BADGE05_GET) == TRUE)
{ {
if (!FlagGet(FLAG_WATTSON_REMATCH_AVAILABLE)) if (!FlagGet(FLAG_WATTSON_REMATCH_AVAILABLE))

File diff suppressed because it is too large Load Diff

View File

@@ -401,10 +401,10 @@ u32 sub_81CC878(s32 taskState)
if (sub_8123514() || sub_81CCC88()) if (sub_8123514() || sub_81CCC88())
return 2; return 2;
sub_81C7BA4(1); PrintHelpBarText(HELPBAR_MAP_ZOOMED_OUT);
return 0; return 0;
case 2: case 2:
if (IsDma3ManagerBusyWithBgCopy_()) if (WaitForHelpBar())
return 2; return 2;
sub_81C7E14(4); sub_81C7E14(4);
@@ -434,10 +434,10 @@ u32 sub_81CC8D8(s32 taskState)
if (sub_8123514() || sub_81CCC88()) if (sub_8123514() || sub_81CCC88())
return 2; return 2;
sub_81C7BA4(2); PrintHelpBarText(HELPBAR_MAP_ZOOMED_IN);
return 0; return 0;
case 3: case 3:
if (IsDma3ManagerBusyWithBgCopy_()) if (WaitForHelpBar())
return 2; return 2;
sub_81C7E14(5); sub_81C7E14(5);

View File

@@ -463,14 +463,14 @@ void sub_81CD970(void)
{ {
unkPtr->unk4[count].boxId = TOTAL_BOXES_COUNT; unkPtr->unk4[count].boxId = TOTAL_BOXES_COUNT;
unkPtr->unk4[count].monId = i; unkPtr->unk4[count].monId = i;
unkPtr->unk4[count].unk6 = 0; unkPtr->unk4[count].data = 0;
count++; count++;
} }
} }
unkPtr->unk4[count].boxId = 0; unkPtr->unk4[count].boxId = 0;
unkPtr->unk4[count].monId = 0; unkPtr->unk4[count].monId = 0;
unkPtr->unk4[count].unk6 = 0; unkPtr->unk4[count].data = 0;
unkPtr->unk2 = 0; unkPtr->unk2 = 0;
unkPtr->unk0 = count + 1; unkPtr->unk0 = count + 1;
structPtr->unk678A = 0; structPtr->unk678A = 0;
@@ -597,7 +597,7 @@ u8 *sub_81CDD24(u8 id)
u16 sub_81CDD48(void) u16 sub_81CDD48(void)
{ {
struct PokenavSub18 *unkPtr = GetSubstructPtr(18); struct PokenavSub18 *unkPtr = GetSubstructPtr(18);
return unkPtr->unk4[unkPtr->unk2].unk6; return unkPtr->unk4[unkPtr->unk2].data;
} }
bool32 sub_81CDD5C(void) bool32 sub_81CDD5C(void)

View File

@@ -195,8 +195,8 @@ u32 sub_81CDE94(s32 state)
{ {
case 0: case 0:
if (sub_81CD3C4() != TRUE) if (sub_81CD3C4() != TRUE)
return 2; return LT_PAUSE;
return 0; return LT_INC_AND_PAUSE;
case 1: case 1:
InitBgTemplates(gUnknown_08623358, ARRAY_COUNT(gUnknown_08623358)); InitBgTemplates(gUnknown_08623358, ARRAY_COUNT(gUnknown_08623358));
ChangeBgX(1, 0, 0); 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_BLDCNT, BLDCNT_TGT1_BG2 | BLDCNT_EFFECT_BLEND | BLDCNT_TGT2_BG3);
SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4)); SetGpuReg(REG_OFFSET_BLDALPHA, BLDALPHA_BLEND(11, 4));
decompress_and_copy_tile_data_to_vram(3, gPokenavCondition_Gfx, 0, 0, 0); decompress_and_copy_tile_data_to_vram(3, gPokenavCondition_Gfx, 0, 0, 0);
return 0; return LT_INC_AND_PAUSE;
case 2: case 2:
if (free_temp_tile_data_buffers_if_possible()) 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); decompress_and_copy_tile_data_to_vram(2, gUnknown_08623228, 0, 0, 0);
return 0; return LT_INC_AND_PAUSE;
case 3: case 3:
if (free_temp_tile_data_buffers_if_possible()) if (free_temp_tile_data_buffers_if_possible())
return 2; return LT_PAUSE;
LZ77UnCompVram(gPokenavCondition_Tilemap, structPtr->tilemapBuffers[0]); LZ77UnCompVram(gPokenavCondition_Tilemap, structPtr->tilemapBuffers[0]);
SetBgTilemapBuffer(3, structPtr->tilemapBuffers[0]); SetBgTilemapBuffer(3, structPtr->tilemapBuffers[0]);
@@ -228,26 +228,26 @@ u32 sub_81CDE94(s32 state)
CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20); CopyPaletteIntoBufferUnfaded(gPokenavCondition_Pal, 0x10, 0x20);
CopyPaletteIntoBufferUnfaded(gUnknown_08623208, 0xF0, 0x20); CopyPaletteIntoBufferUnfaded(gUnknown_08623208, 0xF0, 0x20);
structPtr->unk1814 = -80; structPtr->unk1814 = -80;
return 0; return LT_INC_AND_PAUSE;
case 4: case 4:
if (free_temp_tile_data_buffers_if_possible()) if (free_temp_tile_data_buffers_if_possible())
return 2; return LT_PAUSE;
LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]); LZ77UnCompVram(gUnknown_0862323C, structPtr->tilemapBuffers[2]);
SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]); SetBgTilemapBuffer(2, structPtr->tilemapBuffers[2]);
CopyBgTilemapBufferToVram(2); CopyBgTilemapBufferToVram(2);
CopyPaletteIntoBufferUnfaded(gUnknown_086231E8, 0x30, 0x20); CopyPaletteIntoBufferUnfaded(gUnknown_086231E8, 0x30, 0x20);
sub_81D21DC(2); sub_81D21DC(2);
return 0; return LT_INC_AND_PAUSE;
case 5: case 5:
sub_8199DF0(1, 0, 0, 1); sub_8199DF0(1, 0, 0, 1);
sub_8199DF0(1, 17, 1, 1); sub_8199DF0(1, 17, 1, 1);
CpuFill32(0, structPtr->tilemapBuffers[1], BG_SCREEN_SIZE); CpuFill32(0, structPtr->tilemapBuffers[1], BG_SCREEN_SIZE);
SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]); SetBgTilemapBuffer(1, structPtr->tilemapBuffers[1]);
return 0; return LT_INC_AND_PAUSE;
case 6: case 6:
if (free_temp_tile_data_buffers_if_possible()) if (free_temp_tile_data_buffers_if_possible())
return 2; return LT_PAUSE;
structPtr->unk1820 = AddWindow(&gUnknown_08623364); structPtr->unk1820 = AddWindow(&gUnknown_08623364);
if (sub_81CDD5C() == TRUE) if (sub_81CDD5C() == TRUE)
@@ -257,29 +257,29 @@ u32 sub_81CDE94(s32 state)
structPtr->unk1823 = AddWindow(&gUnknown_0862337C); structPtr->unk1823 = AddWindow(&gUnknown_0862337C);
} }
DeactivateAllTextPrinters(); DeactivateAllTextPrinters();
return 0; return LT_INC_AND_PAUSE;
case 7: case 7:
sub_81CED30(0); sub_81CED30(0);
return 0; return LT_INC_AND_PAUSE;
case 8: case 8:
sub_81CE9E4(); sub_81CE9E4();
return 0; return LT_INC_AND_PAUSE;
case 9: case 9:
if (sub_81CDD5C() == TRUE) if (sub_81CDD5C() == TRUE)
sub_81CE934(); sub_81CE934();
return 0; return LT_INC_AND_PAUSE;
case 10: case 10:
sub_81CE754(0, sub_81CDC84(), TRUE); sub_81CE754(0, sub_81CDC84(), TRUE);
return 0; return LT_INC_AND_PAUSE;
case 11: case 11:
sub_81CE754(1, sub_81CDC84(), TRUE); sub_81CE754(1, sub_81CDC84(), TRUE);
return 0; return LT_INC_AND_PAUSE;
case 12: case 12:
sub_81CE754(2, sub_81CDC84(), TRUE); sub_81CE754(2, sub_81CDC84(), TRUE);
return 0; return LT_INC_AND_PAUSE;
case 13: case 13:
if (sub_81CE754(3, sub_81CDC84(), TRUE) != TRUE) if (sub_81CE754(3, sub_81CDC84(), TRUE) != TRUE)
return 2; return LT_PAUSE;
PutWindowTilemap(structPtr->unk1820); PutWindowTilemap(structPtr->unk1820);
if (sub_81CDD5C() == TRUE) if (sub_81CDD5C() == TRUE)
{ {
@@ -287,14 +287,14 @@ u32 sub_81CDE94(s32 state)
PutWindowTilemap(structPtr->unk1822); PutWindowTilemap(structPtr->unk1822);
PutWindowTilemap(structPtr->unk1823); PutWindowTilemap(structPtr->unk1823);
} }
return 0; return LT_INC_AND_PAUSE;
case 14: case 14:
ShowBg(1); ShowBg(1);
HideBg(2); HideBg(2);
ShowBg(3); ShowBg(3);
if (sub_81CDD5C() == TRUE) if (sub_81CDD5C() == TRUE)
sub_81C7BA4(4); PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
return 0; return LT_INC_AND_PAUSE;
case 15: case 15:
sub_81C7AC0(1); sub_81C7AC0(1);
if (!sub_81CDD5C()) if (!sub_81CDD5C())
@@ -303,25 +303,25 @@ u32 sub_81CDE94(s32 state)
sub_81C7FA0(1, TRUE, 0); sub_81C7FA0(1, TRUE, 0);
sub_81C7FA0(6, TRUE, 0); sub_81C7FA0(6, TRUE, 0);
} }
return 0; return LT_INC_AND_PAUSE;
case 16: case 16:
if (IsPaletteFadeActive()) if (IsPaletteFadeActive())
return 2; return LT_PAUSE;
if (!sub_81CDD5C() && sub_81C8010()) if (!sub_81CDD5C() && sub_81C8010())
return 2; return LT_PAUSE;
SetVBlankCallback_(sub_81CEE44); SetVBlankCallback_(sub_81CEE44);
return 0; return LT_INC_AND_PAUSE;
case 17: case 17:
sub_81CEE90(); sub_81CEE90();
sub_81D20AC(sub_81CDC70()); sub_81D20AC(sub_81CDC70());
return 0; return LT_INC_AND_PAUSE;
case 18: case 18:
if (sub_81D20BC(sub_81CDC70())) if (sub_81D20BC(sub_81CDC70()))
return 2; return LT_PAUSE;
return 0; return LT_INC_AND_PAUSE;
case 19: case 19:
sub_81CEE74(TRUE); sub_81CEE74(TRUE);
return 0; return LT_INC_AND_PAUSE;
case 20: case 20:
if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814)) if (!sub_81D3178(sub_81CDC70(), &structPtr->unk1814))
{ {
@@ -329,12 +329,12 @@ u32 sub_81CDE94(s32 state)
if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50()) if (sub_81CDD5C() == TRUE || sub_81CDC60() != sub_81CDC50())
sub_81D3480(structPtr->unk28e0, structPtr->unk1816, sub_81CDDB0()); 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) u32 sub_81CE2D0(s32 state)
@@ -367,7 +367,7 @@ u32 sub_81CE2D0(s32 state)
return 1; return 1;
} }
return 4; return LT_FINISH;
} }
u32 sub_81CE37C(s32 state) u32 sub_81CE37C(s32 state)
@@ -424,7 +424,7 @@ u32 sub_81CE37C(s32 state)
return 2; return 2;
} }
return 4; return LT_FINISH;
} }
u32 sub_81CE4D8(s32 state) u32 sub_81CE4D8(s32 state)
@@ -468,7 +468,7 @@ u32 sub_81CE4D8(s32 state)
return 2; return 2;
} }
return 4; return LT_FINISH;
} }
u32 sub_81CE5E4(s32 state) u32 sub_81CE5E4(s32 state)
@@ -506,7 +506,7 @@ u32 sub_81CE5E4(s32 state)
return 2; return 2;
} }
return 4; return LT_FINISH;
} }
u32 sub_81CE6BC(s32 state) u32 sub_81CE6BC(s32 state)
@@ -514,18 +514,18 @@ u32 sub_81CE6BC(s32 state)
switch (state) switch (state)
{ {
case 0: case 0:
sub_811FAA4(sub_81CDD7C(), 0xb0, 0x20); sub_811FAA4(sub_81CDD7C(), 176, 32);
return 1; return 1;
case 1: case 1:
sub_81C7BA4(5); PrintHelpBarText(HELPBAR_CONDITION_MARKINGS);
return 1; return 1;
case 2: case 2:
if (IsDma3ManagerBusyWithBgCopy_() == TRUE) if (WaitForHelpBar() == TRUE)
return 2; return 2;
return 1; return 1;
} }
return 4; return LT_FINISH;
} }
u32 sub_81CE700(s32 state) u32 sub_81CE700(s32 state)
@@ -536,18 +536,18 @@ u32 sub_81CE700(s32 state)
sub_811FAF8(); sub_811FAF8();
return 1; return 1;
case 1: case 1:
sub_81C7BA4(4); PrintHelpBarText(HELPBAR_CONDITION_MON_STATUS);
return 1; return 1;
case 2: case 2:
if (IsDma3ManagerBusyWithBgCopy_() == TRUE) if (WaitForHelpBar() == TRUE)
return 2; return 2;
return 1; 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); u8 *txtPtr = ConvertIntToDecimalStringN(dst, num, STR_CONV_MODE_RIGHT_ALIGN, 4);
txtPtr = StringCopy(txtPtr, gText_Number2); txtPtr = StringCopy(txtPtr, gText_Number2);

View File

@@ -227,7 +227,7 @@ static s32 sub_81CF0F0(void)
{ {
struct PokenavSub7 * ptr = GetSubstructPtr(7); struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 i = GetSelectedMatchCall(); s32 i = GetSelectedMatchCall();
return ptr->unkPtr->unk4[i].unk6; return ptr->unkPtr->unk4[i].data;
} }
static u16 sub_81CF10C(void) static u16 sub_81CF10C(void)
@@ -258,7 +258,7 @@ static u32 sub_81CF134(s32 state)
if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG)) if (!GetMonData(pokemon, MON_DATA_SANITY_IS_EGG))
{ {
item.monId = i; item.monId = i;
item.unk6 = GetMonData(pokemon, ptr->unk14); item.data = GetMonData(pokemon, ptr->unk14);
sub_81CF2C4(ptr, &item); sub_81CF2C4(ptr, &item);
} }
} }
@@ -290,7 +290,7 @@ static u32 sub_81CF1D8(s32 state)
{ {
item.boxId = boxId; item.boxId = boxId;
item.monId = monId; item.monId = monId;
item.unk6 = GetBoxMonDataAt(boxId, monId, ptr->unk14); item.data = GetBoxMonDataAt(boxId, monId, ptr->unk14);
sub_81CF2C4(ptr, &item); sub_81CF2C4(ptr, &item);
} }
boxCount++; boxCount++;
@@ -313,19 +313,19 @@ static u32 sub_81CF278(s32 state)
{ {
struct PokenavSub7 * ptr = GetSubstructPtr(7); struct PokenavSub7 * ptr = GetSubstructPtr(7);
s32 r6 = ptr->unkPtr->unk0; s32 r6 = ptr->unkPtr->unk0;
s32 r4 = ptr->unkPtr->unk4[0].unk6; s32 r4 = ptr->unkPtr->unk4[0].data;
s32 i; s32 i;
ptr->unkPtr->unk4[0].unk6 = 1; ptr->unkPtr->unk4[0].data = 1;
for (i = 1; i < r6; i++) 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 else
{ {
r4 = ptr->unkPtr->unk4[i].unk6; r4 = ptr->unkPtr->unk4[i].data;
ptr->unkPtr->unk4[i].unk6 = i + 1; ptr->unkPtr->unk4[i].data = i + 1;
} }
} }
ptr->unk18 = 1; ptr->unk18 = 1;
@@ -340,7 +340,7 @@ static void sub_81CF2C4(struct PokenavSub7 *structPtr, struct PokenavMonList *it
while (right != insertionIdx) while (right != insertionIdx)
{ {
if (item->unk6 > structPtr->unkPtr->unk4[insertionIdx].unk6) if (item->data > structPtr->unkPtr->unk4[insertionIdx].data)
right = insertionIdx; right = insertionIdx;
else else
left = insertionIdx + 1; left = insertionIdx + 1;
@@ -431,7 +431,7 @@ static u32 sub_81CF418(s32 state)
if (sub_81C8224()) if (sub_81C8224())
return LT_PAUSE; return LT_PAUSE;
sub_81CF7C8(unk); sub_81CF7C8(unk);
sub_81C7BA4(3); PrintHelpBarText(HELPBAR_CONDITION_MON_LIST);
return LT_INC_AND_PAUSE; return LT_INC_AND_PAUSE;
case 4: case 4:
if (free_temp_tile_data_buffers_if_possible()) if (free_temp_tile_data_buffers_if_possible())
@@ -651,8 +651,8 @@ static void sub_81CF7F4(struct PokenavSub8 * ptr)
static void sub_81CF88C(void) static void sub_81CF88C(void)
{ {
struct MatchCallListTemplate template; struct PokenavListTemplate template;
template.unk0 = sub_81CF0D0(); template.list.monList = sub_81CF0D0();
template.unk4 = sub_81CF0E0(); template.unk4 = sub_81CF0E0();
template.unk8 = 4; template.unk8 = 4;
template.unk6 = sub_81CF10C(); template.unk6 = sub_81CF10C();
@@ -662,7 +662,7 @@ static void sub_81CF88C(void)
template.unkC = 8; template.unkC = 8;
template.unkD = 2; template.unkD = 2;
template.unkE = 1; template.unkE = 1;
template.unk10 = sub_81CF8E4; template.listFunc.unk10_1 = sub_81CF8E4;
template.unk14 = NULL; template.unk14 = NULL;
sub_81C81D4(&gUnknown_08623590[1], &template, 0); sub_81C81D4(&gUnknown_08623590[1], &template, 0);
} }

View File

@@ -218,7 +218,7 @@ static s32 sub_81CFB48(void)
{ {
struct PokenavSub9 * ptr = GetSubstructPtr(9); struct PokenavSub9 * ptr = GetSubstructPtr(9);
s32 idx = GetSelectedMatchCall(); s32 idx = GetSelectedMatchCall();
return ptr->unk1C->unk4[idx].unk6; return ptr->unk1C->unk4[idx].data;
} }
static s32 sub_81CFB64(void) static s32 sub_81CFB64(void)
@@ -240,7 +240,7 @@ static u32 sub_81CFB8C(s32 state)
ptr->unk1C->unk0 = 0; ptr->unk1C->unk0 = 0;
ptr->unk1C->unk2 = 0; ptr->unk1C->unk2 = 0;
item.boxId = 14; item.boxId = TOTAL_BOXES_COUNT;
for (i = 0; i < PARTY_SIZE; i++) for (i = 0; i < PARTY_SIZE; i++)
{ {
struct Pokemon * pokemon = &gPlayerParty[i]; struct Pokemon * pokemon = &gPlayerParty[i];
@@ -252,7 +252,7 @@ static u32 sub_81CFB8C(s32 state)
if (ribbonCount != 0) if (ribbonCount != 0)
{ {
item.monId = i; item.monId = i;
item.unk6 = ribbonCount; item.data = ribbonCount;
sub_81CFCEC(ptr, &item); sub_81CFCEC(ptr, &item);
} }
} }
@@ -288,13 +288,13 @@ static u32 sub_81CFC40(s32 state)
{ {
item.boxId = boxId; item.boxId = boxId;
item.monId = monId; item.monId = monId;
item.unk6 = ribbonCount; item.data = ribbonCount;
sub_81CFCEC(ptr, &item); sub_81CFCEC(ptr, &item);
} }
} }
boxCount++; boxCount++;
monId++; monId++;
if (boxCount > 14) if (boxCount > TOTAL_BOXES_COUNT)
{ {
ptr->unkC = boxId; ptr->unkC = boxId;
ptr->unk10 = monId; ptr->unk10 = monId;
@@ -317,7 +317,7 @@ static void sub_81CFCEC(struct PokenavSub9 *structPtr, struct PokenavMonList *it
while (right != insertionIdx) while (right != insertionIdx)
{ {
if (item->unk6 > structPtr->unk1C->unk4[insertionIdx].unk6) if (item->data > structPtr->unk1C->unk4[insertionIdx].data)
right = insertionIdx; right = insertionIdx;
else else
left = insertionIdx + 1; left = insertionIdx + 1;
@@ -445,7 +445,7 @@ static u32 sub_81CFEB8(s32 state)
return LT_PAUSE; return LT_PAUSE;
ShowBg(2); ShowBg(2);
HideBg(3); HideBg(3);
sub_81C7BA4(9); PrintHelpBarText(HELPBAR_RIBBONS_MON_LIST);
sub_81C7AC0(1); sub_81C7AC0(1);
if (!unk->unkC) if (!unk->unkC)
{ {
@@ -665,8 +665,8 @@ static void sub_81D02B0(s32 windowId, s32 val1, s32 val2)
static void sub_81D0304(void) static void sub_81D0304(void)
{ {
struct MatchCallListTemplate template; struct PokenavListTemplate template;
template.unk0 = sub_81CFB28(); template.list.monList = sub_81CFB28();
template.unk4 = sub_81CFB38(); template.unk4 = sub_81CFB38();
template.unk8 = 4; template.unk8 = 4;
template.unk6 = sub_81CFB64(); template.unk6 = sub_81CFB64();
@@ -676,7 +676,7 @@ static void sub_81D0304(void)
template.unkC = 8; template.unkC = 8;
template.unkD = 2; template.unkD = 2;
template.unkE = 1; template.unkE = 1;
template.unk10 = sub_81D035C; template.listFunc.unk10_1 = sub_81D035C;
template.unk14 = NULL; template.unk14 = NULL;
sub_81C81D4(&gUnknown_086237B0[1], &template, 0); sub_81C81D4(&gUnknown_086237B0[1], &template, 0);
} }
@@ -688,7 +688,7 @@ static void sub_81D035C(struct PokenavMonList * item0, u8 * dest)
u8 * s; u8 * s;
const u8 * genderStr; const u8 * genderStr;
struct PokenavMonList * item = item0; struct PokenavMonList * item = item0;
if (item->boxId == 14) if (item->boxId == TOTAL_BOXES_COUNT)
{ {
struct Pokemon * mon = &gPlayerParty[item->monId]; struct Pokemon * mon = &gPlayerParty[item->monId];
gender = GetMonGender(mon); gender = GetMonGender(mon);
@@ -722,5 +722,5 @@ static void sub_81D035C(struct PokenavMonList * item0, u8 * dest)
*s++ = 5; // LV *s++ = 5; // LV
ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3); ConvertIntToDecimalStringN(s, level, STR_CONV_MODE_LEFT_ALIGN, 3);
dest = sub_81DB494(dest, 1, gStringVar1, 54); 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);
} }

View File

@@ -2,23 +2,23 @@
#include "strings.h" #include "strings.h"
ALIGNED(4) ALIGNED(4)
const u8 gExpandedPlaceholder_Empty[] = _(""); const u8 gText_ExpandedPlaceholder_Empty[] = _("");
const u8 gExpandedPlaceholder_Kun[] = _(""); const u8 gText_ExpandedPlaceholder_Kun[] = _("");
const u8 gExpandedPlaceholder_Chan[] = _(""); const u8 gText_ExpandedPlaceholder_Chan[] = _("");
const u8 gExpandedPlaceholder_Sapphire[] = _("SAPPHIRE"); const u8 gText_ExpandedPlaceholder_Sapphire[] = _("SAPPHIRE");
const u8 gExpandedPlaceholder_Ruby[] = _("RUBY"); const u8 gText_ExpandedPlaceholder_Ruby[] = _("RUBY");
const u8 gExpandedPlaceholder_Emerald[] = _("EMERALD"); const u8 gText_ExpandedPlaceholder_Emerald[] = _("EMERALD");
const u8 gExpandedPlaceholder_Aqua[] = _("AQUA"); const u8 gText_ExpandedPlaceholder_Aqua[] = _("AQUA");
const u8 gExpandedPlaceholder_Magma[] = _("MAGMA"); const u8 gText_ExpandedPlaceholder_Magma[] = _("MAGMA");
const u8 gExpandedPlaceholder_Archie[] = _("ARCHIE"); const u8 gText_ExpandedPlaceholder_Archie[] = _("ARCHIE");
const u8 gExpandedPlaceholder_Maxie[] = _("MAXIE"); const u8 gText_ExpandedPlaceholder_Maxie[] = _("MAXIE");
const u8 gExpandedPlaceholder_Kyogre[] = _("KYOGRE"); const u8 gText_ExpandedPlaceholder_Kyogre[] = _("KYOGRE");
const u8 gExpandedPlaceholder_Groudon[] = _("GROUDON"); const u8 gText_ExpandedPlaceholder_Groudon[] = _("GROUDON");
const u8 gExpandedPlaceholder_Brendan[] = _("BRENDAN"); const u8 gText_ExpandedPlaceholder_Brendan[] = _("BRENDAN");
const u8 gExpandedPlaceholder_May[] = _("MAY"); const u8 gText_ExpandedPlaceholder_May[] = _("MAY");
const u8 gText_EggNickname[] = _("EGG"); const u8 gText_EggNickname[] = _("EGG");
const u8 gText_Pokemon[] = _("POKéMON"); 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_MainMenuNewGame[] = _("NEW GAME");
const u8 gText_MainMenuContinue[] = _("CONTINUE"); const u8 gText_MainMenuContinue[] = _("CONTINUE");
const u8 gText_MainMenuOption[] = _("OPTION"); const u8 gText_MainMenuOption[] = _("OPTION");
@@ -1276,20 +1276,20 @@ const u8 gText_Sorry[] = _("SORRY");
const u8 gText_YaySmileEmoji[] = _("YAY{EMOJI_BIGSMILE}"); const u8 gText_YaySmileEmoji[] = _("YAY{EMOJI_BIGSMILE}");
const u8 gText_ThankYou[] = _("THANK YOU"); const u8 gText_ThankYou[] = _("THANK YOU");
const u8 gText_ByeBye[] = _("BYE-BYE!"); const u8 gText_ByeBye[] = _("BYE-BYE!");
const u8 gMatchCallStevenStrategyText[] = _("Attack the weak points!"); const u8 gText_MatchCallSteven_Strategy[] = _("Attack the weak points!");
const u8 gMatchCall_StevenTrainersPokemonText[] = _("Ultimate STEEL POKéMON."); const u8 gText_MatchCallSteven_Pokemon[] = _("Ultimate STEEL POKéMON.");
const u8 gMatchCall_StevenSelfIntroductionText_Line1_BeforeMeteorFallsBattle[] = _("I'd climb even waterfalls"); const u8 gText_MatchCallSteven_Intro1_BeforeMeteorFallsBattle[] = _("I'd climb even waterfalls");
const u8 gMatchCall_StevenSelfIntroductionText_Line2_BeforeMeteorFallsBattle[] = _("to find a rare stone!"); const u8 gText_MatchCallSteven_Intro2_BeforeMeteorFallsBattle[] = _("to find a rare stone!");
const u8 gMatchCall_StevenSelfIntroductionText_Line1_AfterMeteorFallsBattle[] = _("I'm the strongest and most"); const u8 gText_MatchCallSteven_Intro1_AfterMeteorFallsBattle[] = _("I'm the strongest and most");
const u8 gMatchCall_StevenSelfIntroductionText_Line2_AfterMeteorFallsBattle[] = _("energetic after all!"); const u8 gText_MatchCallSteven_Intro2_AfterMeteorFallsBattle[] = _("energetic after all!");
const u8 gMatchCall_BrendanStrategyText[] = _("Battle with knowledge!"); const u8 gText_MatchCallBrendan_Strategy[] = _("Battle with knowledge!");
const u8 gMatchCall_BrendanTrainersPokemonText[] = _("I will use various POKéMON."); const u8 gText_MatchCallBrendan_Pokemon[] = _("I will use various POKéMON.");
const u8 gMatchCall_BrendanSelfIntroductionText_Line1[] = _("I'll be a better POKéMON"); const u8 gText_MatchCallBrendan_Intro1[] = _("I'll be a better POKéMON");
const u8 gMatchCall_BrendanSelfIntroductionText_Line2[] = _("prof than my father is!"); const u8 gText_MatchCallBrendan_Intro2[] = _("prof than my father is!");
const u8 gMatchCall_MayStrategyText[] = _("I'm not so good at battles."); const u8 gText_MatchCallMay_Strategy[] = _("I'm not so good at battles.");
const u8 gMatchCall_MayTrainersPokemonText[] = _("I'll use any POKéMON!"); const u8 gText_MatchCallMay_Pokemon[] = _("I'll use any POKéMON!");
const u8 gMatchCall_MaySelfIntroductionText_Line1[] = _("My POKéMON and I help"); const u8 gText_MatchCallMay_Intro1[] = _("My POKéMON and I help");
const u8 gMatchCall_MaySelfIntroductionText_Line2[] = _("my father's research."); const u8 gText_MatchCallMay_Intro2[] = _("my father's research.");
const u8 gText_HatchedFromEgg[] = _("{STR_VAR_1} hatched from the EGG!"); 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}?"); 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"); 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_IsThisTheCorrectTime[] = _("Is this the correct time?");
const u8 gText_Confirm3[] = _("CONFIRM"); const u8 gText_Confirm3[] = _("CONFIRM");
const u8 gText_Cancel4[] = _("CANCEL"); const u8 gText_Cancel4[] = _("CANCEL");
const u8 gMrStoneMatchCallDesc[] = _("DEVON PRES"); const u8 gText_MrStoneMatchCallDesc[] = _("DEVON PRES");
const u8 gMrStoneMatchCallName[] = _("MR. STONE"); const u8 gText_MrStoneMatchCallName[] = _("MR. STONE");
const u8 gStevenMatchCallDesc[] = _("HARD AS ROCK"); const u8 gText_StevenMatchCallDesc[] = _("HARD AS ROCK");
const u8 gStevenMatchCallName[] = _("STEVEN"); const u8 gText_StevenMatchCallName[] = _("STEVEN");
const u8 gMayBrendanMatchCallDesc[] = _("RAD NEIGHBOR"); const u8 gText_MayBrendanMatchCallDesc[] = _("RAD NEIGHBOR");
const u8 gNormanMatchCallDesc[] = _("RELIABLE ONE"); const u8 gText_NormanMatchCallDesc[] = _("RELIABLE ONE");
const u8 gMomMatchCallDesc[] = _("CALM & KIND"); const u8 gText_MomMatchCallDesc[] = _("CALM & KIND");
const u8 gWallyMatchCallDesc[] = _("{PKMN} LOVER"); const u8 gText_WallyMatchCallDesc[] = _("{PKMN} LOVER");
const u8 gNormanMatchCallName[] = _("DAD"); const u8 gText_NormanMatchCallName[] = _("DAD");
const u8 gMomMatchCallName[] = _("MOM"); const u8 gText_MomMatchCallName[] = _("MOM");
const u8 gScottMatchCallDesc[] = _("ELUSIVE EYES"); const u8 gText_ScottMatchCallDesc[] = _("ELUSIVE EYES");
const u8 gScottMatchCallName[] = _("SCOTT"); const u8 gText_ScottMatchCallName[] = _("SCOTT");
const u8 gRoxanneMatchCallDesc[] = _("ROCKIN' WHIZ"); const u8 gText_RoxanneMatchCallDesc[] = _("ROCKIN' WHIZ");
const u8 gBrawlyMatchCallDesc[] = _("THE BIG HIT"); const u8 gText_BrawlyMatchCallDesc[] = _("THE BIG HIT");
const u8 gWattsonMatchCallDesc[] = _("SWELL SHOCK"); const u8 gText_WattsonMatchCallDesc[] = _("SWELL SHOCK");
const u8 gFlanneryMatchCallDesc[] = _("PASSION BURN"); const u8 gText_FlanneryMatchCallDesc[] = _("PASSION BURN");
const u8 gWinonaMatchCallDesc[] = _("SKY TAMER"); const u8 gText_WinonaMatchCallDesc[] = _("SKY TAMER");
const u8 gTateLizaMatchCallDesc[] = _("MYSTIC DUO"); const u8 gText_TateLizaMatchCallDesc[] = _("MYSTIC DUO");
const u8 gJuanMatchCallDesc[] = _("DANDY CHARM"); const u8 gText_JuanMatchCallDesc[] = _("DANDY CHARM");
const u8 gEliteFourMatchCallDesc[] = _("ELITE FOUR"); const u8 gText_EliteFourMatchCallDesc[] = _("ELITE FOUR");
const u8 gChampionMatchCallDesc[] = _("CHAMPION"); const u8 gText_ChampionMatchCallDesc[] = _("CHAMPION");
const u8 gProfBirchMatchCallDesc[] = _("{PKMN} PROF."); const u8 gText_ProfBirchMatchCallDesc[] = _("{PKMN} PROF.");
const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby…\nAwaiting another player to choose."); const u8 gText_CommStandbyAwaitingOtherPlayer[] = _("Communication standby…\nAwaiting another player to choose.");
const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 60}"); const u8 gText_BattleWasRefused[] = _("The battle was refused.{PAUSE 60}");
const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 60}"); const u8 gText_RefusedBattle[] = _("Refused the battle.{PAUSE 60}");